@innovastudio/contentbox 1.2.18 → 1.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -109,7 +109,7 @@ var ContentBox=function(){"use strict";class e{appendHtml(e,t,i="beforeend"){e.i
109
109
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
110
110
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
111
111
  PERFORMANCE OF THIS SOFTWARE.
112
- ***************************************************************************** */var op=function(e,t){return(op=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function sp(e,t){function i(){this.constructor=e}op(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var ap=function(){return(ap=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var o in t=arguments[i])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function rp(){for(var e=0,t=0,i=arguments.length;t<i;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<i;t++)for(var s=arguments[t],a=0,r=s.length;a<r;a++,o++)n[o]=s[a];return n}function lp(e,t){var i;return ap({events:{},props:(i={},i[e]=Boolean,i),name:e},t)}function dp(e,t){return'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="'+32*e+'px" height="'+32*e+'px" viewBox="0 0 32 32" ><path d="M 16,5 L 12,10 L 14.5,10 L 14.5,22 L 12,22 L 16,27 L 20,22 L 17.5,22 L 17.5,10 L 20, 10 L 16,5 Z" stroke-linejoin="round" stroke-width="1.2" fill="black" stroke="white" style="transform:rotate('+t+'deg);transform-origin: 16px 16px"></path></svg>'}var cp,up=function(e){return void 0===e&&function(){if("undefined"==typeof navigator||!navigator||!navigator.userAgentData)return!1;var e=navigator.userAgentData,t=e.brands||e.uaList;return!(!t||!t.length)}()?function(e){var t=navigator.userAgentData,i=(t.uaList||t.brands).slice(),n=t.mobile||!1,o=i[0],s={name:o.brand,version:o.version,majorVersion:-1,webkit:!1,webkitVersion:"-1",chromium:!1,chromiumVersion:"-1",webview:!!Hc(Wc,i).brand},a={name:"unknown",version:"-1",majorVersion:-1};s.webkit=!s.chromium&&Bc(Uc,(function(e){return zc(i,e)}));var r=Hc(jc,i);if(s.chromium=!!r.brand,s.chromiumVersion=r.version,!s.chromium){var l=Hc(Uc,i);s.webkit=!!l.brand,s.webkitVersion=l.version}if(e){var d=e.platform.toLowerCase(),c=Ic(Gc,(function(e){return new RegExp(""+e.test,"g").exec(d)}));a.name=c?c.id:d,a.version=e.platformVersion}var u=Hc(Fc,i);return u.brand&&(s.name=u.brand,s.version=e?e.uaFullVersion:u.version),"Linux armv8l"===navigator.platform?a.name="android":s.webkit&&(a.name=n?"ios":"mac"),"ios"===a.name&&s.webview&&(s.version="-1"),a.version=$c(a.version),s.version=$c(s.version),a.majorVersion=parseInt(a.version,10),s.majorVersion=parseInt(s.version,10),{browser:s,os:a,isMobile:n,isHints:!0}}():Vc(e)}().browser.webkit,pp=up&&(!!(cp=/applewebkit\/([^\s]+)/g.exec(navigator.userAgent.toLowerCase()))&&parseFloat(cp[1])<605),hp="moveable-",gp="\n{\n\tposition: absolute;\n\twidth: 1px;\n\theight: 1px;\n\tleft: 0;\n\ttop: 0;\n z-index: 3000;\n --moveable-color: #4af;\n --zoom: 1;\n --zoompx: 1px;\n will-change: transform;\n}\n.control-box {\n z-index: 0;\n}\n.line, .control {\n position: absolute;\n\tleft: 0;\n top: 0;\n will-change: transform;\n}\n.control {\n\twidth: 14px;\n\theight: 14px;\n\tborder-radius: 50%;\n\tborder: 2px solid #fff;\n\tbox-sizing: border-box;\n background: #4af;\n background: var(--moveable-color);\n\tmargin-top: -7px;\n margin-left: -7px;\n border: 2px solid #fff;\n z-index: 10;\n}\n.padding {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100px;\n height: 100px;\n transform-origin: 0 0;\n}\n.line {\n\twidth: 1px;\n height: 1px;\n background: #4af;\n background: var(--moveable-color);\n\ttransform-origin: 0px 50%;\n}\n.line.dashed {\n box-sizing: border-box;\n background: transparent;\n}\n.line.dashed.horizontal {\n border-top: 1px dashed #4af;\n border-top-color: #4af;\n border-top-color: var(--moveable-color);\n}\n.line.dashed.vertical {\n border-left: 1px dashed #4af;\n border-left-color: #4af;\n border-left-color: var(--moveable-color);\n}\n.line.vertical {\n transform: translateX(-50%);\n}\n.line.horizontal {\n transform: translateY(-50%);\n}\n.line.vertical.bold {\n width: 2px;\n}\n.line.horizontal.bold {\n height: 2px;\n}\n\n.control.origin {\n\tborder-color: #f55;\n\tbackground: #fff;\n\twidth: 12px;\n\theight: 12px;\n\tmargin-top: -6px;\n margin-left: -6px;\n\tpointer-events: none;\n}\n"+[0,15,30,45,60,75,90,105,120,135,150,165].map((function(e){return'\n.direction[data-rotation="'+e+'"] {\n\t'+function(e){var t=dp(1,e),i=dp(2,e),n=45*Math.round(e/45)%180,o="ns-resize";return 135===n?o="nwse-resize":45===n?o="nesw-resize":90===n&&(o="ew-resize"),"cursor:"+o+";cursor: url('"+t+"') 16 16, "+o+";cursor: -webkit-image-set(url('"+t+"') 1x, url('"+i+"') 2x) 16 16, "+o+";"}(e)+"\n}\n"})).join("\n")+"\n.group {\n z-index: -1;\n}\n.area {\n position: absolute;\n}\n.area-pieces {\n position: absolute;\n top: 0;\n left: 0;\n display: none;\n}\n.area.avoid, .area.pass {\n pointer-events: none;\n}\n.area.avoid+.area-pieces {\n display: block;\n}\n.area-piece {\n position: absolute;\n}\n\n"+(pp?':global svg *:before {\n\tcontent:"";\n\ttransform-origin: inherit;\n}':"")+"\n",fp=[[0,1,2],[1,0,3],[2,0,3],[3,1,2]],mp=1e-4,vp=1e-7,bp=1e-9,yp=Math.pow(10,10),_p=-yp,xp=["n","w","s","e","nw","ne","sw","se"],wp={n:[0,1],s:[2,3],w:[2,0],e:[1,3],nw:[0],ne:[1],sw:[2],se:[3]},Sp={n:0,s:180,w:270,e:90,nw:315,ne:45,sw:225,se:135},Cp=["isMoveableElement","updateRect","updateTarget","destroy","dragStart","isInside","hitTest","setState","getRect","request","isDragging","getManager"];function kp(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return md.apply(void 0,rp([hp],e))}function Ep(e,t,i){return tu(t,vu(i,t),e,vu(i.map((function(e){return-e})),t))}function Ap(e){return qp(oh(e,":before")).map((function(t,i){var n=Fd(t),o=n.value,s=n.unit;return o*function(e,t,i){return"%"===t?Ip(e.ownerSVGElement)[i?"width":"height"]/100:1}(e,s,0===i)}))}function qp(e){var t=e.transformOrigin;return t?t.split(" "):["0","0"]}function Tp(e,t,i){for(var n=document.body,o=!e||i?e:e.parentElement,s=e===t||o===t,a="relative";o&&o!==n;){t===o&&(s=!0);var r=oh(o),l=r.transform;if(a=r.position,"svg"===o.tagName.toLowerCase()||"static"!==a||l&&"none"!==l)break;o=o.parentElement,a="relative"}return{isStatic:"static"===a,isEnd:s||!o||o===n,offsetParent:o||n}}function Lp(e,t,i,n){var o,s=e.tagName.toLowerCase(),a=e.offsetLeft,r=e.offsetTop;if(n){var l=(t||document.documentElement).getBoundingClientRect();a-=l.left,r-=l.top}var d,c,u=Md(a),p=!u;return p||"svg"===s?c=(d=qp(i).map((function(e){return parseFloat(e)}))).slice():(c=(d=pp?Ap(e):qp(i).map((function(e){return parseFloat(e)}))).slice(),p=!0,a=(o=function(e,t){if(!e.getBBox)return[0,0];var i=e.getBBox(),n=Ip(e.ownerSVGElement),o=i.x-n.x,s=i.y-n.y;return[o,s,t[0]-o,t[1]-s]}(e,d))[0],r=o[1],d[0]=o[2],d[1]=o[3]),{tagName:s,isSVG:u,hasOffset:p,offset:[a||0,r||0],origin:d,targetOrigin:c}}function Mp(e,t,i){void 0===i&&(i=oh(e));var n=oh(document.body),o=n.position;if(!(t||o&&"static"!==o))return[0,0];var s=parseInt(n.marginLeft,10),a=parseInt(n.marginTop,10);return"absolute"===i.position&&("auto"===i.top&&"auto"===i.bottom||(a=0),"auto"===i.left&&"auto"===i.right||(s=0)),[s,a]}function Op(e){e.forEach((function(e){var t=e.matrix;t&&(e.matrix=eu(t,3,4))}))}function Rp(e,t){for(var i,n,o,s,a,r,l=e,d=[],c=e===t,u=!1,p=3,h=Tp(t,t,!0).offsetParent;l&&!c;){var g=oh(l),f=g.position,m="fixed"===f,v=(r=g.transform,s=r&&"none"!==r?Od(r)?r:zd(r).value.split(/s*,\s*/g).map((function(e){return parseFloat(e)})):[1,0,0,1,0,0],void 0===(a=void 0)&&(a=6===s.length),a?[s[0],s[1],0,s[2],s[3],0,s[4],s[5],1]:s),b=v.length;u||16!==b||(u=!0,p=4,Op(d)),u&&9===b&&(v=eu(v,3,4));var y=Lp(l,t,g,m),_=y.tagName,x=y.hasOffset,w=y.isSVG,S=y.origin,C=y.targetOrigin,k=y.offset,E=k[0],A=k[1];"svg"===_&&o?(d.push({type:"target",target:l,matrix:Dp(l,p)}),d.push({type:"offset",target:l,matrix:fu(p)})):"g"===_&&e!==l&&(E=0,A=0);var q=Tp(l,t),T=q.offsetParent,L=q.isEnd,M=q.isStatic;up&&x&&!w&&M&&("relative"===f||"static"===f)&&(E-=T.offsetLeft,A-=T.offsetTop,c=c||L);var O=0,R=0;if(x&&h!==T&&(O=T.clientLeft,R=T.clientTop),x&&T===document.body){var N=Mp(l,!1,g);E+=N[0],A+=N[1]}if(d.push({type:"target",target:l,matrix:Ep(v,p,S)}),x?d.push({type:"offset",target:l,matrix:vu([E-l.scrollLeft+O,A-l.scrollTop+R],p)}):d.push({type:"offset",target:l,origin:S}),o||(o=v),i||(i=S),n||(n=C),c||m)break;l=T,c=L}return o||(o=fu(p)),i||(i=[0,0]),n||(n=[0,0]),{offsetContainer:h,matrixes:d,targetMatrix:o,transformOrigin:i,targetOrigin:n,is3d:u}}function Np(e,t,i,n){var o;void 0===i&&(i=t);var s=0,a=0,r=0,l={};if(e){var d=oh(e);s=e.offsetWidth,a=e.offsetHeight,Md(s)&&(s=(o=Vp(e,d,!0))[0],a=o[1])}if(e){var c=function(e,t,i,n){void 0===i&&(i=t);var o=Rp(e,t),s=o.matrixes,a=o.is3d,r=o.targetMatrix,l=o.transformOrigin,d=o.targetOrigin,c=Rp(o.offsetContainer,i),u=c.matrixes,p=c.is3d,h=n||p||a,g=h?4:3,f="svg"!==e.tagName.toLowerCase()&&"ownerSVGElement"in e,m=r,v=fu(g),b=fu(g),y=fu(g),_=fu(g),x=s.length,w=i||document.body,S=Tp(w,w,!0).offsetParent;u.reverse(),s.reverse(),!a&&h&&(m=eu(m,3,4),Op(s));!p&&h&&Op(u);u.forEach((function(e){b=iu(b,e.matrix,g)})),s.forEach((function(e,t){if(x-2===t&&(y=v.slice()),x-1===t&&(_=v.slice()),!e.matrix){var i=function(e,t,i,n,o){var s,a=e.target,r=e.origin,l=t.matrix,d=Vp(a,void 0,!0),c=d[0],u=d[1],p=i.getBoundingClientRect(),h=[0,0];i===document.body&&(h=Mp(a,!0));var g=a.getBoundingClientRect(),f=g.left-p.left+i.scrollLeft-(i.clientLeft||0)+h[0],m=g.top-p.top+i.scrollTop-(i.clientTop||0)+h[1],v=g.width,b=g.height,y=tu(n,o,l),_=zp(y,c,u,n),x=_.left,w=_.top,S=_.width,C=_.height,k=$p(y,r,n),E=ou(k,[x,w]),A=[f+E[0]*v/S,m+E[1]*b/C],q=[0,0],T=0;for(;++T<10;){var L=Qc(o,n);s=ou($p(L,A,n),$p(L,k,n)),q[0]=s[0],q[1]=s[1];var M=zp(tu(n,o,vu(q,n),l),c,u,n),O=M.left-f,R=M.top-m;if(Math.abs(O)<2&&Math.abs(R)<2)break;A[0]-=O,A[1]-=R}return q.map((function(e){return Math.round(e)}))}(e,s[t+1],S,g,iu(b,v,g));e.matrix=vu(i,g)}v=iu(v,e.matrix,g)}));var C=!f&&a;m||(m=fu(C?4:3));var k=Bp(f&&16===m.length?eu(m,4,3):m,C);return{rootMatrix:b=Zc(b,g,g),beforeMatrix:y,offsetMatrix:_,allMatrix:v,targetMatrix:m,targetTransform:k,transformOrigin:l,targetOrigin:d,is3d:h}}(e,t,i,n),u=Fp(c.allMatrix,c.transformOrigin,s,a);l=ap(ap({},c),u);var p=Fp(c.allMatrix,[50,50],100,100);r=Yp([p.pos1,p.pos2],p.direction)}var h=n?4:3;return ap({width:s,height:a,rotation:r,rootMatrix:fu(h),beforeMatrix:fu(h),offsetMatrix:fu(h),allMatrix:fu(h),targetMatrix:fu(h),targetTransform:"",transformOrigin:[0,0],targetOrigin:[0,0],is3d:!!n,left:0,top:0,right:0,bottom:0,origin:[0,0],pos1:[0,0],pos2:[0,0],pos3:[0,0],pos4:[0,0],direction:1},l)}function Bp(e,t){return void 0===t&&(t=e.length>9),(t?"matrix3d":"matrix")+"("+su(e,!t).join(",")+")"}function Ip(e){var t=e.clientWidth,i=e.clientHeight;if(!e)return{x:0,y:0,width:0,height:0,clientWidth:t,clientHeight:i};var n=e.viewBox,o=n&&n.baseVal||{x:0,y:0,width:0,height:0};return{x:o.x,y:o.y,width:o.width||t,height:o.height||i,clientWidth:t,clientHeight:i}}function Dp(e,t){var i=Ip(e),n=i.width,o=i.height,s=i.clientWidth,a=i.clientHeight,r=s/n,l=a/o,d=e.preserveAspectRatio.baseVal,c=d.align,u=d.meetOrSlice,p=[0,0],h=[r,l],g=[0,0];if(1!==c){var f=(c-2)%3,m=Math.floor((c-2)/3);p[0]=n*f/2,p[1]=o*m/2;var v=2===u?Math.max(l,r):Math.min(r,l);h[0]=v,h[1]=v,g[0]=(s-n)/2*f,g[1]=(a-o)/2*m}var b=mu(h,t);return b[t*(t-1)]=g[0],b[t*(t-1)+1]=g[1],Ep(b,t,p)}function $p(e,t,i){return au(e,Jc(t,i),i)}function Pp(e,t,i,n){return[[0,0],[t,0],[0,i],[t,i]].map((function(t){return $p(e,t,n)}))}function Hp(e){var t=e.map((function(e){return e[0]})),i=e.map((function(e){return e[1]})),n=Math.min.apply(Math,t),o=Math.min.apply(Math,i),s=Math.max.apply(Math,t),a=Math.max.apply(Math,i);return{left:n,top:o,right:s,bottom:a,width:s-n,height:a-o}}function zp(e,t,i,n){return Hp(Pp(e,t,i,n))}function Fp(e,t,i,n){var o=16===e.length?4:3,s=Pp(e,i,n,o),a=s[0],r=a[0],l=a[1],d=s[1],c=d[0],u=d[1],p=s[2],h=p[0],g=p[1],f=s[3],m=f[0],v=f[1],b=$p(e,t,o),y=b[0],_=b[1],x=Math.min(r,c,h,m),w=Math.min(l,u,g,v),S=Math.max(r,c,h,m);return r=r-x||0,{left:x,top:w,right:S,bottom:Math.max(l,u,g,v),origin:[y=y-x||0,_=_-w||0],pos1:[r,l=l-w||0],pos2:[c=c-x||0,u=u-w||0],pos3:[h=h-x||0,g=g-w||0],pos4:[m=m-x||0,v=v-w||0],direction:Jd(s)}}function jp(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function Up(e,t){return jp([t[0]-e[0],t[1]-e[1]])}function Wp(e,t,i,n){void 0===i&&(i=1),void 0===n&&(n=Qd(e,t));var o=Up(e,t);return{transform:"translateY(-50%) translate("+e[0]+"px, "+e[1]+"px) rotate("+n+"rad) scaleY("+i+")",width:o+"px"}}function Gp(e,t){for(var i=[],n=2;n<arguments.length;n++)i[n-2]=arguments[n];var o=i.length,s=i.reduce((function(e,t){return e+t[0]}),0)/o,a=i.reduce((function(e,t){return e+t[1]}),0)/o;return{transform:"translateZ(0px) translate("+s+"px, "+a+"px) rotate("+e+"rad) scale("+t+")"}}function Vp(e,t,i,n){void 0===t&&(t=oh(e)),void 0===n&&(n=i||"border-box"===t.boxSizing);var o=e.offsetWidth,s=e.offsetHeight,a=!Md(o);if((i||n)&&a)return[o,s];if(!a&&"svg"!==e.tagName.toLowerCase()){var r=e.getBBox();return[r.width,r.height]}return o=e.clientWidth,s=e.clientHeight,i||n?[o+(parseFloat(t.borderLeftWidth)||0)+(parseFloat(t.borderRightWidth)||0),s+(parseFloat(t.borderTopWidth)||0)+(parseFloat(t.borderBottomWidth)||0)]:[o-(parseFloat(t.paddingLeft)||0)-(parseFloat(t.paddingRight)||0),s-(parseFloat(t.paddingTop)||0)-(parseFloat(t.paddingBottom)||0)]}function Yp(e,t){return Qd(t>0?e[0]:e[1],t>0?e[1]:e[0])}function Xp(e,t,i,n,o){var s=1,a=[0,0],r={left:0,right:0,top:0,bottom:0,width:0,height:0,clientLeft:0,clientTop:0,clientWidth:0,clientHeight:0,scrollWidth:0,scrollHeight:0},l={left:0,right:0,top:0,bottom:0,width:0,height:0,clientLeft:0,clientTop:0,clientWidth:0,clientHeight:0,scrollWidth:0,scrollHeight:0},d={left:0,right:0,top:0,bottom:0,width:0,height:0,clientLeft:0,clientTop:0,clientWidth:0,clientHeight:0,scrollWidth:0,scrollHeight:0},c=Np(t,i,o,!1);if(t){var u=c.is3d?4:3,p=Fp(c.offsetMatrix,nu(c.transformOrigin,function(e,t){void 0===t&&(t=Math.sqrt(e.length));for(var i=[],n=e[t*t-1],o=0;o<t-1;++o)i[o]=e[t*(t-1)+o]/n;return i[t-1]=0,i}(c.targetMatrix,u)),c.width,c.height);s=p.direction,a=nu(p.origin,[p.left-c.left,p.top-c.top]),r=Kp(t),l=Kp(Tp(n,n,!0).offsetParent||document.body,!0),e&&(d=Kp(e))}return ap({targetClientRect:r,containerClientRect:l,moveableClientRect:d,beforeDirection:s,beforeOrigin:a,originalBeforeOrigin:a,target:t},c)}function Kp(e,t){var i=0,n=0,o=0,s=0;if(e===document.body||e===document.documentElement)o=window.innerWidth,s=window.innerHeight,i=-(document.documentElement.scrollLeft||document.body.scrollLeft),n=-(document.documentElement.scrollTop||document.body.scrollTop);else{var a=e.getBoundingClientRect();i=a.left,n=a.top,o=a.width,s=a.height}var r={left:i,right:i+o,top:n,bottom:n+s,width:o,height:s};return t&&(r.clientLeft=e.clientLeft,r.clientTop=e.clientTop,r.clientWidth=e.clientWidth,r.clientHeight=e.clientHeight,r.scrollWidth=e.scrollWidth,r.scrollHeight=e.scrollHeight,r.overflow="visible"!==oh(e).overflow),r}function Zp(e){if(e){var t=e.getAttribute("data-direction");if(t){var i=[0,0];return t.indexOf("w")>-1&&(i[0]=-1),t.indexOf("e")>-1&&(i[0]=1),t.indexOf("n")>-1&&(i[1]=-1),t.indexOf("s")>-1&&(i[1]=1),i}}}function Qp(e,t){return[nu(t,e[0]),nu(t,e[1]),nu(t,e[2]),nu(t,e[3])]}function Jp(e){var t=e.left,i=e.top;return Qp([e.pos1,e.pos2,e.pos3,e.pos4],[t,i])}function eh(e,t){e[t]&&(e[t].unset(),e[t]=null)}function th(e,t,i){var n=t.datas;n.datas||(n.datas={});var o=ap(ap({},i),{target:e.state.target,clientX:t.clientX,clientY:t.clientY,inputEvent:t.inputEvent,currentTarget:e,moveable:e,datas:n.datas});return n.isStartEvent?n.lastEvent=o:n.isStartEvent=!0,o}function ih(e,t,i){var n=t.datas,o="isDrag"in i?i.isDrag:t.isDrag;return n.datas||(n.datas={}),ap(ap({isDrag:o},i),{moveable:e,target:e.state.target,clientX:t.clientX,clientY:t.clientY,inputEvent:t.inputEvent,currentTarget:e,lastEvent:n.lastEvent,isDouble:t.isDouble,datas:n.datas})}function nh(e,t,i,n){return e.triggerEvent(t,i,n)}function oh(e,t){return window.getComputedStyle(e,t)}function sh(e,t,i){var n={},o={};return e.filter((function(e){var s=e.name;if(n[s]||!t.some((function(t){return e[t]})))return!1;if(!i&&e.ableGroup){if(o[e.ableGroup])return!1;o[e.ableGroup]=!0}return n[s]=!0,!0}))}function ah(e,t){return e===t||null==e&&null==t}function rh(e,t){var i=[],n=[];return e.forEach((function(o,s){var a=t(o,s,e),r=n.indexOf(a),l=i[r]||[];-1===r&&(n.push(a),i.push(l)),l.push(o)})),i}function lh(e){return e.reduce((function(e,t){return e.concat(t)}),[])}function dh(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.sort((function(e,t){return Math.abs(t)-Math.abs(e)})),e[0]}function ch(e,t,i){return au(Qc(e,i),Jc(t,i),i)}function uh(e,t){var i,n=e.is3d?4:3;return i=ch(e.rootMatrix,[t.distX,t.distY],n),t.distX=i[0],t.distY=i[1],t}function ph(e,t,i,n,o){return ou($p(e,nu(i,t),o),n)}function hh(e,t,i){return i?e/t*100+"%":e+"px"}function gh(e){return Math.abs(e)<=vp?0:e}function fh(e,t){return t.isRequest?("resizable"===t.requestAble||"scalable"===t.requestAble)&&t.parentDirection:nc(t.inputEvent.target,kp("direction"))}function mh(e){var t={};for(var i in e)t[e[i]]=i;return t}function vh(e,t){return e?Nd(e)?t?document.querySelector(e):e:Bd(e)?e():"current"in e?e.current:e:null}function bh(e,t){return e?((i=e)&&Od(i)&&(Rd(i)||"length"in i)?[].slice.call(e):[e]).reduce((function(e,i){return Nd(i)&&t?rp(e,[].slice.call(document.querySelectorAll(i))):(e.push(vh(i,t)),e)}),[]):[];var i}function yh(e,t){var i=e.rootMatrix,n=e.is3d,o=Qc(i,n?4:3);return n||(o=eu(o,3,4)),o[12]=0,o[13]=0,o[14]=0,function(e,t){var i=au(e,[t[0],t[1]||0,t[2]||0,1],4),n=i[3]||1;return[i[0]/n,i[1]/n,i[2]/n]}(o,t)}var _h=lp("pinchable",{events:{onPinchStart:"pinchStart",onPinch:"pinch",onPinchEnd:"pinchEnd",onPinchGroupStart:"pinchGroupStart",onPinchGroup:"pinchGroup",onPinchGroupEnd:"pinchGroupEnd"},dragStart:function(){return!0},pinchStart:function(e,t){var i=t.datas,n=t.targets,o=t.angle,s=t.originalDatas,a=e.props,r=a.pinchable,l=a.ables;if(!r)return!1;var d="onPinch"+(n?"Group":"")+"Start",c="drag"+(n?"Group":"")+"ControlStart",u=(!0===r?e.controlAbles:l.filter((function(e){return r.indexOf(e.name)>-1}))).filter((function(e){return e.canPinch&&e[c]})),p=th(e,t,{});n&&(p.targets=n);var h=nh(e,d,p);i.isPinch=!1!==h,i.ables=u;var g=i.isPinch;return!!g&&(u.forEach((function(i){if(s[i.name]=s[i.name]||{},i[c]){var n=ap(ap({},t),{datas:s[i.name],parentRotate:o,isPinch:!0});i[c](e,n)}})),e.state.snapRenderInfo={request:t.isRequest,direction:[0,0]},g)},pinch:function(e,t){var i=t.datas,n=t.scale,o=t.distance,s=t.originalDatas,a=t.inputEvent,r=t.targets,l=t.angle;if(i.isPinch){var d=o*(1-1/n),c=th(e,t,{});r&&(c.targets=r),nh(e,"onPinch"+(r?"Group":""),c);var u=i.ables,p="drag"+(r?"Group":"")+"Control";return u.forEach((function(i){i[p]&&i[p](e,ap(ap({},t),{datas:s[i.name],inputEvent:a,parentDistance:d,parentRotate:l,isPinch:!0}))})),c}},pinchEnd:function(e,t){var i=t.datas,n=t.isPinch,o=t.inputEvent,s=t.targets,a=t.originalDatas;if(i.isPinch){var r="onPinch"+(s?"Group":"")+"End",l=ih(e,t,{isDrag:n});s&&(l.targets=s),nh(e,r,l);var d=i.ables,c="drag"+(s?"Group":"")+"ControlEnd";return d.forEach((function(i){i[c]&&i[c](e,ap(ap({},t),{isDrag:n,datas:a[i.name],inputEvent:o,isPinch:!0}))})),n}},pinchGroupStart:function(e,t){return this.pinchStart(e,ap(ap({},t),{targets:e.props.targets}))},pinchGroup:function(e,t){return this.pinch(e,ap(ap({},t),{targets:e.props.targets}))},pinchGroupEnd:function(e,t){return this.pinchEnd(e,ap(ap({},t),{targets:e.props.targets}))}});function xh(e,t,i,n,o){var s=t.gesto.move(i,e.inputEvent),a=s.originalDatas||s.datas,r=a.draggable||(a.draggable={});return ap(ap({},o?uh(t,s):s),{isDrag:!0,isPinch:!!n,parentEvent:!0,datas:r,originalDatas:e.originalDatas})}var wh=function(){function e(){this.prevX=0,this.prevY=0,this.startX=0,this.startY=0,this.isDrag=!1,this.isFlag=!1,this.datas={draggable:{}}}var t=e.prototype;return t.dragStart=function(e,t){this.isDrag=!1,this.isFlag=!1;var i=t.originalDatas;return this.datas=i,i.draggable||(i.draggable={}),ap(ap({},this.move(e,t.inputEvent)),{type:"dragstart"})},t.drag=function(e,t){return this.move([e[0]-this.prevX,e[1]-this.prevY],t)},t.move=function(e,t){var i,n;return this.isFlag?(i=this.prevX+e[0],n=this.prevY+e[1],this.isDrag=!0):(this.prevX=e[0],this.prevY=e[1],this.startX=e[0],this.startY=e[1],i=e[0],n=e[1],this.isFlag=!0),this.prevX=i,this.prevY=n,{type:"drag",clientX:i,clientY:n,inputEvent:t,isDrag:this.isDrag,distX:i-this.startX,distY:n-this.startY,deltaX:e[0],deltaY:e[1],datas:this.datas.draggable,originalDatas:this.datas,parentEvent:!0,parentGesto:this}},e}();function Sh(e,t,i){var n=i.originalDatas;n.groupable=n.groupable||{};var o=n.groupable;o.childDatas=o.childDatas||[];var s=o.childDatas;return e.moveables.map((function(e,n){return s[n]=s[n]||{},s[n][t]=s[n][t]||{},ap(ap({},i),{datas:s[n][t],originalDatas:s[n]})}))}function Ch(e,t,i,n,o,s){var a=!!i.match(/Start$/g),r=!!i.match(/End$/g),l=o.isPinch,d=o.datas,c=Sh(e,t.name,o),u=e.moveables,p=c.map((function(e,o){var c=u[o],p=e;a?p=(new wh).dragStart(n,e):(c.state.gesto||(c.state.gesto=d.childGestos[o]),p=xh(e,c.state,n,l,s));var h=t[i](c,ap(ap({},p),{parentFlag:!0}));return r&&(c.state.gesto=null),h}));return a&&(d.childGestos=u.map((function(e){return e.state.gesto}))),p}function kh(e,t,i,n,o,s){void 0===o&&(o=function(e,t){return t});var a=!!i.match(/End$/g),r=Sh(e,t.name,n),l=e.moveables;return r.map((function(e,n){var r,d=l[n];r=o(d,e);var c=t[i](d,ap(ap({},r),{parentFlag:!0}));return c&&s&&s(d,e,c,n),a&&(d.state.gesto=null),c}))}function Eh(e,t){var i=t.clientX,n=t.clientY,o=t.datas,s=e.state,a=s.moveableClientRect,r=s.rootMatrix,l=s.is3d,d=s.pos1,c=ou(ch(r,[i-a.left,n-a.top],l?4:3),d),u=Rh({datas:o,distX:c[0],distY:c[1]});return[u[0],u[1]]}function Ah(e,t){var i=t.datas,n=e.state,o=n.allMatrix,s=n.beforeMatrix,a=n.is3d,r=n.left,l=n.top,d=n.origin,c=n.offsetMatrix,u=n.targetMatrix,p=n.transformOrigin,h=a?4:3;i.is3d=a,i.matrix=o,i.targetMatrix=u,i.beforeMatrix=s,i.offsetMatrix=c,i.transformOrigin=p,i.inverseMatrix=Qc(o,h),i.inverseBeforeMatrix=Qc(s,h),i.absoluteOrigin=Jc(nu([r,l],d),h),i.startDragBeforeDist=au(i.inverseBeforeMatrix,i.absoluteOrigin,h),i.startDragDist=au(i.inverseMatrix,i.absoluteOrigin,h)}function qh(e,t){var i=e.datas,n=e.originalDatas.beforeRenderable,o=i.transformIndex,s=n.nextTransforms,a=n.nextTransformAppendedIndexes,r=-1===o?s.length:o+a.filter((function(e){return e<o})).length,l=function(e,t){var i=e.slice(0,t<0?void 0:t),n=e.slice(0,t<0?void 0:t+1),o=e[t]||"",s=t<0?[]:e.slice(t),a=t<0?[]:e.slice(t+1),r=_u(i),l=_u(n),d=_u([o]),c=_u(s),u=_u(a),p=yu(r),h=yu(l),g=yu(c),f=yu(u),m=iu(p,g,4);return{transforms:e,beforeFunctionMatrix:p,beforeFunctionMatrix2:h,targetFunctionMatrix:yu(d),afterFunctionMatrix:g,afterFunctionMatrix2:f,allFunctionMatrix:m,beforeFunctions:r,beforeFunctions2:l,targetFunction:d[0],afterFunctions:c,afterFunctions2:u,beforeFunctionTexts:i,beforeFunctionTexts2:n,targetFunctionText:o,afterFunctionTexts:s,afterFunctionTexts2:a}}(s,r),d=l.targetFunction,c="rotate"===t?"rotateZ":t;i.beforeFunctionTexts=l.beforeFunctionTexts,i.afterFunctionTexts=l.afterFunctionTexts,i.beforeTransform=l.beforeFunctionMatrix,i.beforeTransform2=l.beforeFunctionMatrix2,i.targetTansform=l.targetFunctionMatrix,i.afterTransform=l.afterFunctionMatrix,i.afterTransform2=l.afterFunctionMatrix2,i.targetAllTransform=l.allFunctionMatrix,d.functionName===c?(i.afterFunctionTexts.splice(0,1),i.isAppendTransform=!1):(i.isAppendTransform=!0,n.nextTransformAppendedIndexes=rp(a,[r]))}function Th(e,t,i){return e.beforeFunctionTexts.join(" ")+" "+(e.isAppendTransform?i:t)+" "+e.afterFunctionTexts.join(" ")}function Lh(e){var t=e.datas,i=Oh({datas:t,distX:e.distX,distY:e.distY});return au(Mh(t,function(e,t){for(var i=fu(t),n=0;n<t-1;++n)i[t*(t-1)+n]=e[n]||0;return i}([i[0],i[1]],4)),Jc([0,0,0],4),4)}function Mh(e,t,i){var n=e.beforeTransform,o=e.afterTransform,s=e.beforeTransform2,a=e.afterTransform2,r=e.targetAllTransform,l=i?iu(r,t,4):iu(t,r,4),d=iu(Qc(i?s:n,4),l,4);return iu(d,Qc(i?a:o,4),4)}function Oh(e){var t=e.datas,i=e.distX,n=e.distY,o=t.inverseBeforeMatrix,s=t.is3d,a=t.startDragBeforeDist,r=s?4:3;return ou(au(o,nu(t.absoluteOrigin,[i,n]),r),a)}function Rh(e,t){var i=e.datas,n=e.distX,o=e.distY,s=i.inverseBeforeMatrix,a=i.inverseMatrix,r=i.is3d,l=i.startDragBeforeDist,d=i.startDragDist,c=r?4:3;return ou(au(t?s:a,nu(i.absoluteOrigin,[n,o]),c),t?l:d)}function Nh(e){var t=[];return e[1]>=0&&(e[0]>=0&&t.push(3),e[0]<=0&&t.push(2)),e[1]<=0&&(e[0]>=0&&t.push(1),e[0]<=0&&t.push(0)),t}function Bh(e,t){return Nh(t).map((function(t){return e[t]}))}function Ih(e,t){var i=Bh(e,t);return[Zd(i.map((function(e){return e[0]}))),Zd(i.map((function(e){return e[1]})))]}function Dh(e,t,i,n){return iu(e,Ep(t,n,i),n)}function $h(e,t,i){var n=e.transformOrigin,o=e.offsetMatrix,s=e.is3d,a=t.beforeTransform,r=t.afterTransform,l=s?4:3;return Dh(o,eu(iu(iu(a,function(e){return yu(_u(e))}([i]),4),r,4),4,l),n,l)}function Ph(e){var t=e.originalDatas.beforeRenderable;return{setTransform:function(i,n){void 0===n&&(n=-1),t.startTransforms=Rd(i)?i:Pd(i),zh(e,n)},setTransformIndex:function(t){zh(e,t)}}}function Hh(e,t){zh(e,Wd(e.originalDatas.beforeRenderable.startTransforms,(function(e){return 0===e.indexOf(t+"(")})))}function zh(e,t){var i=e.originalDatas.beforeRenderable,n=e.datas;if(n.transformIndex=t,-1!==t){var o=i.startTransforms[t];if(o){var s=_u([o]);n.startValue=s[0].functionValue}}}function Fh(e,t){e.originalDatas.beforeRenderable.nextTransforms=Pd(t)}function jh(e,t,i,n,o){return Fh(o,t),{transform:t,drag:Kg.drag(e,xh(o,e.state,i,n,!1))}}function Uh(e,t,i,n,o){var s=e.state,a=s.left,r=s.top,l=e.props.groupable,d=l?a:0,c=l?r:0,u=ou(n,Gh(e,i,$h(e.state,o,t)));return ou(u,[d,c])}function Wh(e){var t=e.state,i=t.width,n=t.height,o=t.transformOrigin;return[o[0]/(i/2)-1,o[1]/(n/2)-1]}function Gh(e,t,i){void 0===i&&(i=e.state.allMatrix);var n=e.state,o=n.width,s=n.height,a=n.is3d?4:3;return $p(i,[o/2*(1+t[0]),s/2*(1+t[1])],a)}function Vh(e,t,i,n,o,s){var a=e.props.groupable,r=e.state,l=r.transformOrigin,d=r.targetMatrix,c=r.offsetMatrix,u=r.is3d,p=r.width,h=r.height,g=r.left,f=r.top,m=u?4:3,v=a?g:0,b=a?f:0;return ou(function(e,t,i,n,o,s){var a=Ih(Pp(t,i,n,o),s);return[e[0]-a[0],e[1]-a[1]]}(o,Dh(c,d,function(e,t,i,n,o,s){return void 0===n&&(n=t),void 0===o&&(o=i),void 0===s&&(s=[0,0]),e?e.map((function(e,a){var r=Fd(e),l=r.value,d=r.unit,c=a?o:n,u=a?i:t;return"%"===e||isNaN(l)?u*(c?s[a]/c:0):"%"!==d?l:u*l/100})):s}(s,t,i,p,h,l),m),t,i,m,n),[v,b])}function Yh(e,t){return Ih(Jp(e.state),t)}function Xh(e,t,i){var n=$p(e,[t.clientLeft,t.clientTop],i);return[t.left+n[0],t.top+n[1]]}function Kh(e,t,i,n,o,s){var a=o[0],r=o[1],l=s[0],d=s[1],c=[],u=n?0:1,p="vertical"===t?"horizontal":"vertical",h=rh(e.filter((function(e){return e.type===t})),(function(e){return e.element})).map((function(e){return e[0]})).filter((function(e){var t=e.pos,i=e.sizes;return t[u]<=d&&l<=t[u]+i[u]}));return h.forEach((function(e){var t=e.pos[n],o=t+e.sizes[n];h.forEach((function(e){var s=e.pos,l=e.sizes,d=e.element,u=e.className,g=s[n],f=g+l[n],m=0,v=0,b=!0;if(o<=g)a<(m=f-(v=o-g))-i&&(b=!1);else{if(!(f<=t))return;r>(m=g-(v=t-f))+i&&(b=!1)}if(b&&c.push({pos:"vertical"===p?[m,s[1]]:[s[0],m],element:d,sizes:l,size:0,type:p,gap:v,className:u,gapGuidelines:h}),o<=a&&r<=g){var y=(g+o-(r-a))/2;tc(a-(y-i),.1)>=0&&c.push({pos:"vertical"===p?[y,s[1]]:[s[0],y],className:u,element:d,sizes:l,size:0,type:p,gap:o-a,gapGuidelines:h})}}))})),c}function Zh(e,t,i,n,o,s,a){void 0===o&&(o=0),void 0===s&&(s=0),void 0===a&&(a={left:0,top:0,right:0,bottom:0});var r=[],l=a.left,d=a.top,c=a.bottom,u=i+a.right-l,p=n+c-d;return e&&e.forEach((function(e){r.push({type:"horizontal",pos:[l,tc(e-s+d,.1)],size:u})})),t&&t.forEach((function(e){r.push({type:"vertical",pos:[tc(e-o+l,.1),d],size:p})})),r}function Qh(e,t){var i=[];if(!t.length)return i;var n=e.state,o=e.props.snapCenter,s=n.containerClientRect,a=n.targetClientRect,r=a.top,l=a.left,d=n.rootMatrix,c=n.is3d?4:3,u=Xh(d,s,c),p=u[0],h=u[1],g=Su(Jp(n)),f=ou([g.minX,g.minY],ch(d,[l-p,r-h],c)).map((function(e){return t=e,Math.round(t%1==-.5?t-1:t);var t})),m=f[0],v=f[1];return t.forEach((function(e){var t=e.element,n=e.top,s=e.left,a=e.right,r=e.bottom,l=e.className,u=t.getBoundingClientRect(),g=u.left-p,f=u.top-h,b=f+u.height,y=g+u.width,_=ch(d,[g,f],c),x=_[0],w=_[1],S=ch(d,[y,b],c),C=S[0],k=S[1],E=C-x,A=k-w,q=[E,A];!1!==n&&i.push({type:"vertical",element:t,pos:[tc(x+m,.1),w],size:A,sizes:q,className:l}),!1!==r&&i.push({type:"vertical",element:t,pos:[tc(C+m,.1),w],size:A,sizes:q,className:l}),!1!==s&&i.push({type:"horizontal",element:t,pos:[x,tc(w+v,.1)],size:E,sizes:q,className:l}),!1!==a&&i.push({type:"horizontal",element:t,pos:[x,tc(k+v,.1)],size:E,sizes:q,className:l}),o&&(i.push({type:"vertical",element:t,pos:[tc((x+C)/2+m,.1),w],size:A,sizes:q,center:!0,className:l}),i.push({type:"horizontal",element:t,pos:[x,tc((w+k)/2+v,.1)],size:E,sizes:q,center:!0,className:l}))})),i}function Jh(e,t,i){void 0===i&&(i=[]);var n=[],o=e.state;if(t&&o.guidelines&&o.guidelines.length)return n;var s=e.props.elementGuidelines,a=void 0===s?[]:s;if(!a.length)return n;var r=o.elementGuidelineValues||[],l=a.map((function(e){return Od(e)&&"element"in e?e:{element:vh(e,!0)}})).filter((function(e){return e.element}));o.elementGuidelineValues=l;var d,c,u=(d=r.map((function(e){return e.element})),c=l.map((function(e){return e.element})),Ed(d,c,Ou)),p=u.added,h=u.removed.map((function(e){return r[e].element})),g=Qh(e,p.map((function(e){return l[e]})).filter((function(e){return e.refresh&&t||!e.refresh&&!t})));return rp(i.filter((function(e){return-1===h.indexOf(e.element)})),g)}function eg(e){var t=e.state,i=t.snapOffset,n=t.staticGuidelines,o=t.containerClientRect,s=o.overflow,a=o.scrollHeight,r=o.scrollWidth,l=o.clientHeight,d=o.clientWidth,c=o.clientLeft,u=o.clientTop,p=e.props,h=p.snapHorizontal,g=void 0===h||h,f=p.snapVertical,m=void 0===f||f,v=p.snapGap,b=void 0===v||v,y=p.verticalGuidelines,_=p.horizontalGuidelines,x=p.snapThreshold,w=void 0===x?5:x,S=p.snapGridWidth,C=void 0===S?0:S,k=p.snapGridHeight,E=void 0===k?0:k,A=rp(n,Jh(e,!0));if(b){var q=Hp(Jp(e.state)),T=q.top,L=q.left,M=q.bottom,O=q.right,R=n.filter((function(e){return e.element}));A.push.apply(A,rp(Kh(R,"horizontal",w,0,[L,O],[T,M]),Kh(R,"vertical",w,1,[T,M],[L,O])))}return A.push.apply(A,function(e,t,i,n,o,s){void 0===o&&(o=0);void 0===s&&(s=0);var a=[];if(t)for(var r=0;r<=n;r+=t)a.push({type:"horizontal",pos:[0,tc(r-s,.1)],size:i,hide:!0});if(e)for(r=0;r<=i;r+=e)a.push({type:"vertical",pos:[tc(r-o,.1),0],size:n,hide:!0});return a}(C,E,s?r:d,s?a:l,c,u)),A.push.apply(A,Zh(g&&_||!1,m&&y||!1,s?r:d,s?a:l,c,u,i)),A}function tg(e,t,i,n,o){var s=e.props,a=s.snapElement,r=void 0===a||a,l=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var i=e.length-1,n=0;n<i;++n){var o=e[n];if(!Md(o))return o}return e[i]}(o,s.snapThreshold,5);return ig(e.state.guidelines,t,i,{snapThreshold:l,snapCenter:n,snapElement:r})}function ig(e,t,i,n){return{vertical:sg(e,"vertical",t,n),horizontal:sg(e,"horizontal",i,n)}}function ng(e,t,i,n){var o=e.props.snapCenter&&i,s=["left","right"],a=["top","bottom"];return o&&(s.push("center"),a.push("middle")),s=s.filter((function(e){return e in t})),a=a.filter((function(e){return e in t})),tg(e,s.map((function(e){return t[e]})),a.map((function(e){return t[e]})),o,n)}function og(e){var t=e.isSnap;if(!t)return{isSnap:!1,offset:0,dist:-1,pos:0,guideline:null};var i=e.posInfos[0],n=i.guidelineInfos[0],o=n.offset,s=n.dist,a=n.guideline;return{isSnap:t,offset:o,dist:s,pos:i.pos,guideline:a}}function sg(e,t,i,n){var o=void 0===n?{}:n,s=o.snapThreshold,a=void 0===s?5:s,r=o.snapElement,l=o.snapCenter;if(!e||!e.length)return{isSnap:!1,index:-1,posInfos:[]};var d="vertical"===t?0:1,c=i.map((function(i,n){var o=e.map((function(e){var t=e.pos,n=i-t[d];return{offset:n,dist:Math.abs(n),guideline:e}})).filter((function(e){var i=e.guideline,n=e.dist,o=i.type,s=i.center,d=i.element;return!(!r&&d||!l&&s||o!==t||n>a)})).sort((function(e,t){return e.dist-t.dist}));return{pos:i,index:n,guidelineInfos:o}})).filter((function(e){return e.guidelineInfos.length>0})).sort((function(e,t){return e.guidelineInfos[0].dist-t.guidelineInfos[0].dist})),u=c.length>0;return{isSnap:u,index:u?c[0].index:-1,posInfos:c}}function ag(e,t){var i=Math.abs(e.offset),n=Math.abs(t.offset);return e.isBound&&t.isBound?n-i:e.isBound?-1:t.isBound?1:e.isSnap&&t.isSnap?n-i:e.isSnap?-1:t.isSnap||i<vp?1:n<vp?-1:i-n}function rg(e,t){return e.slice().sort((function(e,i){var n=e.sign[t],o=i.sign[t],s=e.offset[t],a=i.offset[t];return n?o?ag({isBound:e.isBound,isSnap:e.isSnap,offset:s},{isBound:i.isBound,isSnap:i.isSnap,offset:a}):-1:1}))[0]}function lg(e,t){var i=Zd([t[0][0],t[1][0]]),n=Zd([t[0][1],t[1][1]]);return{vertical:i<=e[0],horizontal:n<=e[1]}}function dg(e,t){var i,n,o=t[0],s=t[1],a=s[0]-o[0],r=s[1]-o[1];if(Math.abs(a)<vp&&(a=0),Math.abs(r)<vp&&(r=0),a)if(r){i=r/a*(e[0]-o[0])+o[1],n=e[1]}else i=o[1],n=e[1];else i=o[0],n=e[0];return i-n}function cg(e,t,i){void 0===i&&(i=vp);var n=dg(e[0],t)<=0;return e.slice(1).every((function(e){var o=dg(e,t);return o<=0===n||Math.abs(o)<=i}))}function ug(e,t,i,n,o){return void 0===o&&(o=0),n&&t-o<=e||!n&&e<=i+o?{isBound:!0,offset:n?t-e:i-e}:{isBound:!1,offset:0}}function pg(e,t,i,n,o){var s=e[0],a=e[1],r=t[0],l=t[1],d=gh(a[1]-s[1]),c=gh(a[0]-s[0]),u=gh(l[1]-r[1]);if(!gh(l[0]-r[0])){if(o&&!d)return{isBound:!1,offset:0};if(c)return ug(d/c*(r[0]-s[0])+s[1],r[1],l[1],i,n);var p=r[0]-s[0];return{isBound:h=Math.abs(p)<=(n||0),offset:h?p:0}}if(!u){if(o&&!c)return{isBound:!1,offset:0};if(d)return ug((r[1]-s[1])/(d/c)+s[0],r[0],l[0],i,n);var h;p=r[1]-s[1];return{isBound:h=Math.abs(p)<=(n||0),offset:h?p:0}}return{isBound:!1,offset:0}}function hg(e,t,i,n){return t.map((function(t){var o=t[0],s=t[1],a=t[2],r=function(e,t,i){var n=e.props.innerBounds;if(!n)return{isAllBound:!1,isBound:!1,isVerticalBound:!1,isHorizontalBound:!1,offset:[0,0]};var o=n.left,s=n.top,a=n.width,r=n.height,l=[[o,s],[o,s+r]],d=[[o,s],[o+a,s]],c=[[o+a,s],[o+a,s+r]],u=[[o,s+r],[o+a,s+r]],p=lg(i,t),h=p.horizontal,g=p.vertical;if(cg([i,[o,s],[o+a,s],[o,s+r],[o+a,s+r]],t))return{isAllBound:!1,isBound:!1,isVerticalBound:!1,isHorizontalBound:!1,offset:[0,0]};var f=pg(t,d,g),m=pg(t,u,g),v=pg(t,l,h),b=pg(t,c,h),y=f.isBound&&m.isBound,_=f.isBound||m.isBound,x=v.isBound&&b.isBound,w=v.isBound||b.isBound,S=dh(f.offset,m.offset),C=dh(v.offset,b.offset),k=[0,0],E=!1,A=!1;return Math.abs(C)<Math.abs(S)?(k=[S,0],E=_,A=y):(k=[0,C],E=w,A=x),{isAllBound:A,isVerticalBound:_,isHorizontalBound:w,isBound:E,offset:k}}(e,[s,a],i),l=r.isBound,d=r.offset,c=r.isVerticalBound,u=r.isHorizontalBound,p=Rh({datas:n,distX:d[0],distY:d[1]}).map((function(e,t){return e*(o[t]?2/o[t]:0)}));return{sign:o,isBound:l,isVerticalBound:c,isHorizontalBound:u,isSnap:!1,offset:p}}))}function gg(e,t,i){var n,o=hg(e,fg(t,[0,0],!1).map((function(e){var t=e[0],i=e[1],n=e[2];return[t.map((function(e){return 2*Math.abs(e)})),i,n]})),Ih(t,[0,0]),i),s=rg(o,0),a=rg(o,1),r=0,l=0,d=s.isVerticalBound||a.isVerticalBound,c=s.isHorizontalBound||a.isHorizontalBound;return(d||c)&&(r=(n=function(e,t){var i=e.datas,n=e.distX,o=e.distY,s=i.beforeMatrix,a=i.matrix,r=i.is3d,l=i.startDragBeforeDist,d=i.startDragDist,c=i.absoluteOrigin,u=r?4:3;return ou(au(t?s:a,nu(t?l:d,[n,o]),u),c)}({datas:i,distX:-s.offset[0],distY:-a.offset[1]}))[0],l=n[1]),{vertical:{isBound:d,offset:r},horizontal:{isBound:c,offset:l}}}function fg(e,t,i){return function(e,t){var i=[],n=e[0],o=e[1];return n&&o?i.push([[0,2*o],e,[-n,o]],[[2*n,0],e,[n,-o]]):n?(i.push([[2*n,0],[n,1],[n,-1]]),t&&i.push([[0,-1],[n,-1],[-n,-1]],[[0,1],[n,1],[-n,1]])):o?(i.push([[0,2*o],[1,o],[-1,o]]),t&&i.push([[-1,0],[-1,o],[-1,-o]],[[1,0],[1,o],[1,-o]])):i.push([[-1,0],[-1,-1],[-1,1]],[[1,0],[1,-1],[1,1]],[[0,-1],[-1,-1],[1,-1]],[[0,1],[-1,1],[1,1]]),i}(t,i).map((function(t){var i=t[0],n=t[1],o=t[2];return[i,Ih(e,n),Ih(e,o)]}))}function mg(e,t,i,n){var o=n?e.map((function(e){return uu(e,n)})):e,s=rp([i],t);return[[o[0],o[1]],[o[1],o[3]],[o[3],o[2]],[o[2],o[0]]].some((function(e){return!cg(s,e)}))}function vg(e,t,i,n,o){var s=e.props.innerBounds,a=o*Math.PI/180;if(!s)return[];var r=s.left,l=s.top,d=s.width,c=s.height,u=r-n[0],p=r+d-n[0],h=l-n[1],g=l+c-n[1],f=[[u,h],[p,h],[u,g],[p,g]],m=Ih(i,[0,0]);if(!mg(i,f,m,0))return[];var v=[],b=f.map((function(e){return[jp(e),Qd([0,0],e)]}));return[[i[0],i[1]],[i[1],i[3]],[i[3],i[2]],[i[2],i[0]]].forEach((function(e){var i=Qd([0,0],function(e){var t=e[0],i=e[1],n=i[0]-t[0],o=i[1]-t[1];if(!n)return[t[0],0];if(!o)return[0,t[1]];var s=o/n,a=-s*t[0]+t[1];return[-a/(s+1/s),a/(s*s+1)]}(e)),n=function(e){var t=e[0],i=e[1],n=i[0]-t[0],o=i[1]-t[1];if(!n)return Math.abs(t[0]);if(!o)return Math.abs(t[1]);var s=o/n;return Math.abs((-s*t[0]+t[1])/Math.sqrt(Math.pow(s,2)+1))}(e);v.push.apply(v,b.filter((function(e){var t=e[0];return t&&n<=t})).map((function(e){var t=e[0],o=e[1],s=Math.acos(t?n/t:0);return[a+(o+s)-i,a+(o-s)-i]})).reduce((function(e,t){return e.push.apply(e,t),e}),[]).filter((function(e){return!mg(t,f,m,e)})).map((function(e){return tc(180*e/Math.PI,vp)})))})),v}function bg(e,t,i){var n=e||{},o=n.position,s=void 0===o?"client":o,a=n.left,r=void 0===a?-1/0:a,l=n.top,d=void 0===l?-1/0:l,c=n.right,u=void 0===c?1/0:c,p=n.bottom,h={position:s,left:r,top:d,right:u,bottom:void 0===p?1/0:p};return{vertical:_g(h,t,!0),horizontal:_g(h,i,!1)}}function yg(e,t){var i=e.state,n=i.containerClientRect,o=n.clientHeight,s=n.clientWidth,a=n.clientLeft,r=n.clientTop,l=i.snapOffset,d=l.left,c=l.top,u=l.right,p=l.bottom,h=t||e.props.bounds||{},g="css"===(h.position||"client"),f=h.left,m=void 0===f?-1/0:f,v=h.top,b=void 0===v?-1/0:v,y=h.right,_=void 0===y?g?-1/0:1/0:y,x=h.bottom,w=void 0===x?g?-1/0:1/0:x;return g&&(_=s+u-d-_,w=o+p-c-w),{left:m+d-a,right:_+d-a,top:b+c-r,bottom:w+c-r}}function _g(e,t,i){var n=e[i?"left":"top"],o=e[i?"right":"bottom"],s=Math.min.apply(Math,t),a=Math.max.apply(Math,t),r=[];return n+1>s&&r.push({isBound:!0,offset:s-n,pos:n}),o-1<a&&r.push({isBound:!0,offset:a-o,pos:o}),r.length||r.push({isBound:!1,offset:0,pos:0}),r.sort((function(e,t){return Math.abs(t.offset)-Math.abs(e.offset)}))}function xg(e,t,i){return(i?e.map((function(e){return uu(e,i)})):e).some((function(e){return e[0]<t.left&&Math.abs(e[0]-t.left)>.1||e[0]>t.right&&Math.abs(e[0]-t.right)>.1||e[1]<t.top&&Math.abs(e[1]-t.top)>.1||e[1]>t.bottom&&Math.abs(e[1]-t.bottom)>.1}))}function wg(e,t,i,n,o){if(!e.props.bounds)return[];var s=o*Math.PI/180,a=yg(e),r=a.left,l=a.top,d=a.right,c=a.bottom,u=r-n[0],p=d-n[0],h=l-n[1],g=c-n[1],f={left:u,top:h,right:p,bottom:g};if(!xg(i,f,0))return[];var m=[];return[[u,0],[p,0],[h,1],[g,1]].forEach((function(e){var n=e[0],o=e[1];i.forEach((function(e){var i=Qd([0,0],e);m.push.apply(m,function(e,t,i){var n=jp(e),o=Math.sqrt(n*n-t*t)||0;return[o,-o].sort((function(t,n){return Math.abs(t-e[i?0:1])-Math.abs(n-e[i?0:1])})).map((function(e){return Qd([0,0],i?[e,t]:[t,e])}))}(e,n,o).map((function(e){return s+e-i})).filter((function(e){return!xg(t,f,e)})).map((function(e){return tc(180*e/Math.PI,vp)})))}))})),m}var Sg={horizontal:["left","top","width","Y","X"],vertical:["top","left","height","X","Y"]};function Cg(e,t,i,n){var o=e-i,s=o<0?o+t:n;return{size:(o<0?0:o)-s,pos:s}}function kg(e,t){return function(e,t){var i,n=e.direction,o=e.classNames,s=e.size,a=e.pos,r=e.zoom,l=e.key,d="horizontal"===n,c=d?"Y":"X";return t.createElement("div",{key:l,className:o.join(" "),style:(i={},i[d?"width":"height"]=""+s,i.transform="translate("+a[0]+", "+a[1]+") translate"+c+"(-50%) scale"+c+"("+r+")",i)})}(ap(ap({},e),{classNames:rp([kp("line","guideline",e.direction)],e.classNames).filter((function(e){return e})),size:e.size||e.sizeValue+"px",pos:e.pos||e.posValue.map((function(e){return tc(e,.1)+"px"}))}),t)}function Eg(e,t,i,n,o,s,a,r,l,d,c,u){var p=e.props,h=p.zoom,g=p.isDisplaySnapDigit,f=void 0===g||g,m=Sg[t],v=m[0],b=m[1],y=m[2],_=m[4];return lh(i.map((function(e,i){var p=!0;return e.map((function(e,g){var m,x=e.pos,w=e.size,S=Cg(x[d],w,o,s),C=S.pos,k=S.size;if(k<r)return null;var E=p;p=!1;var A=f&&E?parseFloat(k.toFixed(l)):0;return u.createElement("div",{key:t+"LinkGuideline"+i+"-"+g,className:kp("guideline-group",t),style:(m={},m[v]=n+C+"px",m[b]=-a+x[d?0:1]+"px",m[y]=k+"px",m)},kg({direction:t,classNames:[kp("dashed")],size:"100%",posValue:[0,0],sizeValue:k,zoom:h},u),u.createElement("div",{className:kp("size-value"),style:{transform:"translate"+_+"(-50%) scale("+h+")"}},A>0?c(A):""))}))})))}function Ag(e,t,i,n,o,s,a,r){var l=e.props.zoom;return i.map((function(e,i){var d=e.type,c=e.pos,u=[0,0];return u[a]=n,u[a?0:1]=-o+c,kg({key:t+"TargetGuideline"+i,classNames:[kp("target","bold",d)],posValue:u,sizeValue:s,zoom:l,direction:t},r)}))}function qg(e,t,i,n,o,s){var a=e.props.isDisplayInnerSnapDigit,r=i?0:1,l=n[i],d=s[i],c=[],u=t.filter((function(e){var t=e.element,o=e.pos,s=e.size;if(a&&t&&o[i]<l&&l+d<o[i]+s){var u=o[i]-l,p=o[r]-n[r];return c.push(ap(ap({},e),{inner:!0,gap:u,renderPos:i?[p,u]:[u,p]})),c.push(ap(ap({},e),{inner:!0,gap:o[i]+s-l-d,renderPos:i?[p,d]:[d,p]})),!1}return!0})),p=function(e,t,i,n){var o=[],s=rh(e.filter((function(e){var t=e.element,i=e.gap;return t&&!i})),(function(e){var i=e.element,s=e.pos,a=s[n],r=(Math.min(0,a-t)<0?-1:1)+"_"+s[n?0:1],l=Gd(o,(function(e){var t=e[0],n=e[1];return i===t&&a===n}));return l?l[2]:(o.push([i,a,r]),r)}));return s.forEach((function(e){e.sort((function(e,o){return Cg(e.pos[n],e.size,t,i).size-Cg(o.pos[n],e.size,t,i).size||e.pos[n?0:1]-o.pos[n?0:1]}))})),s}(u=u.filter((function(e){var t=e.element,n=e.pos,o=e.size,s=n[i];return!t||u.every((function(t){var n=t.element,a=t.pos,r=t.size,l=a[i];return!n||e===t||(s+o<=l||l+r<=s||s<l&&l+r<s+o)}))})),o[i],d,i);return c=c.filter((function(e){var t=e.gap,n=e.pos[r];return p.every((function(e){return e.every((function(e){var o=e.pos,a=-l+o[i];return o[r]!==n||!(t<0&&a<0)&&!(t>0&&a>s[i])}))}))})),{guidelines:u,groups:p,gapGuidelines:c}}function Tg(e,t,i,n,o){var s=e.props.zoom;return i.filter((function(e){return!e.hide})).map((function(e,i){var a=e.pos,r=e.size,l=e.element,d=[-n[0]+a[0],-n[1]+a[1]];return kg({key:t+"Guideline"+i,classNames:l?[kp("bold")]:[],direction:t,posValue:d,sizeValue:r,zoom:s},o)}))}function Lg(e,t,i,n,o){var s=e.props,a=s.snapDigit,r=void 0===a?0:a,l=s.isDisplaySnapDigit,d=void 0===l||l,c=s.zoom,u="horizontal"===t?"X":"Y",p="horizontal"===t?"width":"height";return i.map((function(e,i){var s,a=e.renderPos,l=e.gap,h=e.className,g=e.inner,f=Math.abs(l),m=d?parseFloat(f.toFixed(r)):0;return o.createElement("div",{key:t+"GapGuideline"+i,className:kp("guideline-group",t),style:(s={left:a[0]+"px",top:a[1]+"px"},s[p]=f+"px",s)},kg({direction:t,classNames:[kp(g?"dashed":"gap"),h],size:"100%",posValue:[0,0],sizeValue:f,zoom:c},o),o.createElement("div",{className:kp("size-value","gap"),style:{transform:"translate"+u+"(-50%) scale("+c+")"}},m>0?n(m):""))}))}function Mg(e){var t=e.state;if(!t.guidelines||!t.guidelines.length){var i=e.state.container,n=e.props.snapContainer||i,o=t.containerClientRect,s={left:0,top:0,bottom:0,right:0};if(i!==n){var a=vh(n,!0);if(a){var r=Kp(a),l=yh(t,[r.left-o.left,r.top-o.top]),d=yh(t,[r.right-o.right,r.bottom-o.bottom]);s.left=tc(l[0],.1),s.top=tc(l[1],.1),s.right=tc(d[0],.1),s.bottom=tc(d[1],.1)}}t.snapOffset=s,t.elementGuidelineValues=[],t.staticGuidelines=Jh(e,!1),t.guidelines=eg(e),t.enableSnap=!0}}function Og(e,t){var i=e.props,n=i.snappable,o=i.bounds,s=i.innerBounds,a=i.verticalGuidelines,r=i.horizontalGuidelines,l=i.snapGridWidth,d=i.snapGridHeight,c=e.state,u=c.guidelines,p=c.enableSnap;return!(!n||!p||t&&!0!==n&&n.indexOf(t)<0)&&!!(l||d||o||s||u&&u.length||a&&a.length||r&&r.length)}function Rg(e,t,i,n,o){var s=function(e,t,i,n){var o=t[0]-e[0],s=t[1]-e[1];Math.abs(o)<vp&&(o=0);Math.abs(s)<vp&&(s=0);if(!o)return n?[0,0]:[0,i];if(!s)return n?[i,0]:[0,0];var a=s/o,r=e[1]-a*e[0];return n?[i,a*(t[0]+i)+r-t[1]]:[(t[1]+i-r)/a-t[0],i]}(e,t,i,n);if(!s)return{isOutside:!1,offset:[0,0]};var a=ec(e,t),r=ec(s,e),l=ec(s,t),d=r>a||l>a,c=Rh({datas:o,distX:s[0],distY:s[1]});return{offset:[c[0],c[1]],isOutside:d}}function Ng(e,t,i,n,o,s){var a=Pp(e,t,i,s?4:3);return Qp(a,ou(n,function(e,t){return Ih(e,t.map((function(e){return-e})))}(a,o)))}function Bg(e,t){return e.isBound?e.offset:t.isSnap?t.offset:0}function Ig(e,t){return e.isBound?e.offset:t.isSnap?og(t).offset:0}function Dg(e,t,i,n){var o=function(e,t,i){var n=yg(e),o=n.left,s=n.top,a=n.right,r=n.bottom,l=i[0],d=i[1],c=ou(i,t),u=c[0],p=c[1];Math.abs(u)<vp&&(u=0),Math.abs(p)<vp&&(p=0);var h=p>0,g=u>0,f={isBound:!1,offset:0,pos:0},m={isBound:!1,offset:0,pos:0};if(0===u&&0===p)return{vertical:f,horizontal:m};if(0===u)h?r<d&&(m.pos=r,m.offset=d-r):s>d&&(m.pos=s,m.offset=d-s);else if(0===p)g?a<l&&(f.pos=a,f.offset=l-a):o>l&&(f.pos=o,f.offset=l-o);else{var v=p/u,b=i[1]-v*l,y=0,_=0,x=!1;g&&a<=l?(y=v*a+b,_=a,x=!0):!g&&l<=o&&(y=v*o+b,_=o,x=!0),x&&(y<s||y>r)&&(x=!1),x||(h&&r<=d?(_=((y=r)-b)/v,x=!0):!h&&d<=s&&(_=((y=s)-b)/v,x=!0)),x&&(f.isBound=!0,f.pos=_,f.offset=l-_,m.isBound=!0,m.pos=y,m.offset=d-y)}return{vertical:f,horizontal:m}}(e,t,i),s=o.horizontal,a=o.vertical,r=n?{horizontal:{isSnap:!1},vertical:{isSnap:!1}}:function(e,t,i){var n=i[0],o=i[1],s=t[0],a=t[1],r=ou(i,t),l=r[0],d=r[1],c=d>0,u=l>0;l=gh(l),d=gh(d);var p={isSnap:!1,offset:0,pos:0},h={isSnap:!1,offset:0,pos:0};if(0===l&&0===d)return{vertical:p,horizontal:h};var g=tg(e,l?[n]:[],d?[o]:[]),f=g.vertical,m=g.horizontal;f.posInfos.filter((function(e){var t=e.pos;return u?t>=s:t<=s})),m.posInfos.filter((function(e){var t=e.pos;return c?t>=a:t<=a})),f.isSnap=f.posInfos.length>0,m.isSnap=m.posInfos.length>0;var v=og(f),b=v.isSnap,y=v.guideline,_=og(m),x=_.isSnap,w=_.guideline,S=x?w.pos[1]:0,C=b?y.pos[0]:0;if(0===l)x&&(h.isSnap=!0,h.pos=w.pos[1],h.offset=o-h.pos);else if(0===d)b&&(p.isSnap=!0,p.pos=C,p.offset=n-C);else{var k=d/l,E=i[1]-k*n,A=0,q=0,T=!1;b?(A=k*(q=C)+E,T=!0):x&&(q=((A=S)-E)/k,T=!0),T&&(p.isSnap=!0,p.pos=q,p.offset=n-q,h.isSnap=!0,h.pos=A,h.offset=o-A)}return{vertical:p,horizontal:h}}(e,t,i),l=r.horizontal,d=r.vertical,c=Bg(s,l),u=Bg(a,d),p=Math.abs(c),h=Math.abs(u);return{horizontal:{isBound:s.isBound,isSnap:l.isSnap,offset:c,dist:p},vertical:{isBound:a.isBound,isSnap:d.isSnap,offset:u,dist:h}}}function $g(e,t,i,n){void 0===n&&(n=i);var o=bg(yg(e),n.map((function(e){return e[0]})),n.map((function(e){return e[1]}))),s=o.horizontal,a=o.vertical,r=t?{horizontal:{isSnap:!1,index:-1},vertical:{isSnap:!1,index:-1}}:tg(e,i.map((function(e){return e[0]})),i.map((function(e){return e[1]})),e.props.snapCenter),l=r.horizontal,d=r.vertical,c=Ig(s[0],l),u=Ig(a[0],d),p=Math.abs(c),h=Math.abs(u);return{horizontal:{isBound:s[0].isBound,isSnap:l.isSnap,snapIndex:l.index,offset:c,dist:p,bounds:s,snap:l},vertical:{isBound:a[0].isBound,isSnap:d.isSnap,snapIndex:d.index,offset:u,dist:h,bounds:a,snap:d}}}function Pg(e,t,i,n,o){void 0===o&&(o={});var s=bg(t,i,n),a=s.horizontal,r=s.vertical,l=o.isRequest?{horizontal:{isSnap:!1,index:-1},vertical:{isSnap:!1,index:-1}}:ig(e,i,n,o),d=l.horizontal,c=l.vertical,u=Ig(a[0],d),p=Ig(r[0],c),h=Math.abs(u),g=Math.abs(p);return{horizontal:{isBound:a[0].isBound,isSnap:d.isSnap,snapIndex:d.index,offset:u,dist:h,bounds:a,snap:d},vertical:{isBound:r[0].isBound,isSnap:c.isSnap,snapIndex:c.index,offset:p,dist:g,bounds:r,snap:c}}}function Hg(e,t,i,n,o,s){return i.map((function(i){var a=i[0],r=i[1],l=Ih(t,a),d=Ih(t,r),c=n?Dg(e,l,d,o):$g(e,o,[d]),u=c.horizontal,p=u.offset,h=u.isBound,g=u.isSnap,f=c.vertical,m=f.offset,v=f.isBound,b=f.isSnap,y=ou(r,a);if(!m&&!p)return{isBound:v||h,isSnap:b||g,sign:y,offset:[0,0]};var _=function(e,t,i,n){var o=Qd(e,t)/Math.PI*180,s=i.vertical,a=s.isBound,r=s.isSnap,l=s.dist,d=i.horizontal,c=d.isBound,u=d.isSnap,p=o%180,h=p<3||p>177,g=p>87&&p<93;return d.dist<l&&(a||r&&!g&&(!n||!h))?"vertical":!c&&(!u||h||n&&g)?"":"horizontal"}(l,d,c,n);if(!_)return{sign:y,isBound:!1,isSnap:!1,offset:[0,0]};var x="vertical"===_,w=Rg(l,d,-(x?m:p),x,s).offset.map((function(e,t){return e*(y[t]?2/y[t]:0)}));return{sign:y,isBound:x?v:h,isSnap:x?b:g,offset:w}}))}function zg(e,t,i,n,o,s){var a=function(e,t){var i=[],n=[-e[0],-e[1]];return e[0]&&e[1]?(i.push([n,[e[0],-e[1]]],[n,[-e[0],e[1]]]),t&&i.push([n,e])):e[0]?t?i.push([n,[n[0],-1]],[n,[n[0],1]],[n,[e[0],-1]],[n,e],[n,[e[0],1]]):i.push([[n[0],-1],[e[0],-1]],[[n[0],0],[e[0],0]],[[n[0],1],[e[0],1]]):e[1]?t?i.push([n,[-1,n[1]]],[n,[1,n[1]]],[n,[-1,e[1]]],[n,[1,e[1]]],[n,e]):i.push([[-1,n[1]],[-1,e[1]]],[[0,n[1]],[0,e[1]]],[[1,n[1]],[1,e[1]]]):i.push([n,[1,0]],[n,[-1,0]],[n,[0,-1]],[n,[0,1]],[[1,0],[1,-1]],[[1,0],[1,1]],[[0,1],[1,1]],[[0,1],[-1,1]],[[-1,0],[-1,-1]],[[-1,0],[-1,1]],[[0,-1],[1,-1]],[[0,-1],[-1,-1]]),i}(i,n),r=fg(t,i,n),l=rp(Hg(e,t,a,n,o,s),hg(e,r,Ih(t,[0,0]),s)),d=rg(l,0),c=rg(l,1);return{width:{isBound:d.isBound,offset:d.offset[0]},height:{isBound:c.isBound,offset:c.offset[1]}}}function Fg(e,t,i,n,o,s,a,r){for(var l=Jp(e.state),d=e.props.keepRatio,c=0,u=0,p=0;p<2;++p){var h=zg(e,t(c,u),o,d,a,r),g=h.width,f=h.height,m=g.isBound,v=f.isBound,b=g.offset,y=f.offset;if(1===p&&(m||(b=0),v||(y=0)),0===p&&a&&!m&&!v)return[0,0];if(d){var _=Math.abs(b)*(i?1/i:1),x=Math.abs(y)*(n?1/n:1);(m&&v?_<x:v||!m&&_<x)?b=i*y/n:y=n*b/i}c+=b,u+=y}if(o[0]&&o[1]){var w=function(e,t,i,n,o){var s=[-i[0],-i[1]],a=e.state,r=a.width,l=a.height,d=e.props.bounds,c=1/0,u=1/0;if(d){var p=[[i[0],-i[1]],[-i[0],i[1]]],h=d.left,g=void 0===h?-1/0:h,f=d.top,m=void 0===f?-1/0:f,v=d.right,b=void 0===v?1/0:v,y=d.bottom,_=void 0===y?1/0:y;p.forEach((function(e){var i=e[0]!==s[0],a=e[1]!==s[1],d=Ih(t,e),p=360*Qd(n,d)/Math.PI;if(a){var h=d.slice();(Math.abs(p-360)<2||Math.abs(p-180)<2)&&(h[1]=n[1]);var f=Rg(n,h,(n[1]<d[1]?_:m)-d[1],!1,o),v=f.offset[1],y=f.isOutside;isNaN(v)||(u=l+(y?1:-1)*Math.abs(v))}if(i){h=d.slice(),(Math.abs(p-90)<2||Math.abs(p-270)<2)&&(h[0]=n[0]);var x=Rg(n,h,(n[0]<d[0]?b:g)-d[0],!0,o),w=x.offset[0],S=x.isOutside;isNaN(w)||(c=r+(S?1:-1)*Math.abs(w))}}))}return{maxWidth:c,maxHeight:u}}(e,l,o,s,r),S=w.maxWidth,C=w.maxHeight,k=function(e,t,i,n,o,s,a,r,l){var d=$g(e,r,[Ih(t,a)]),c=d.horizontal.offset,u=d.vertical.offset;if(u||c){var p=Rh({datas:l,distX:-u,distY:-c}),h=p[0],g=p[1];return[Math.min(o||1/0,i+a[0]*h)-i,Math.min(s||1/0,n+a[1]*g)-n]}return[0,0]}(e,t(c,u).map((function(e){return e.map((function(e){return tc(e,mp)}))})),i+c,n+u,S,C,o,a,r);c+=b=k[0],u+=y=k[1]}return[c,u]}function jg(e,t,i,n){if(!Og(e,"rotatable"))return n;var o=t.pos1,s=t.pos2,a=t.pos3,r=t.pos4,l=n*Math.PI/180,d=[o,s,a,r].map((function(e){return ou(e,i)})),c=d.map((function(e){return uu(e,l)})),u=rp(wg(e,d,c,i,n),vg(e,d,c,i,n));return u.sort((function(e,t){return Math.abs(e-n)-Math.abs(t-n)})),u.length?u[0]:n}function Ug(e,t,i,n,o){var s=o.width,a=o.height,r=o.fixedPosition;if(!Og(e,"scalable"))return[0,0];var l=o.is3d,d=Fg(e,(function(e,n){return Ng(function(e,t){var i=e.transformOrigin,n=e.offsetMatrix,o=e.is3d?4:3;return Dh(n,iu(e.targetMatrix,mu(t,o),o),i,o)}(o,nu(t,[e/s,n/a])),s,a,r,i,l)}),s,a,i,r,n,o);return[d[0]/s,d[1]/a]}function Wg(e,t,i,n,o,s){if(!Og(e,"draggable"))return[{isSnap:!1,isBound:!1,offset:0},{isSnap:!1,isBound:!1,offset:0}];var a=Qp(s.absolutePoses,[t,i]),r=Hp(a),l=r.left,d=r.right,c=r.top,u=r.bottom,p=[[l,c],[d,c],[l,u],[d,u]];e.props.snapCenter&&p.push([(l+d)/2,(c+u)/2]);var h=$g(e,o,p,a),g=h.vertical,f=h.horizontal,m=gg(e,a,s),v=m.vertical,b=m.horizontal,y=g.isSnap,_=f.isSnap,x=g.isBound||v.isBound,w=f.isBound||b.isBound,S=function(e,t,i,n,o){var s=t[0],a=t[1],r=i[0],l=i[1],d=n[0],c=n[1],u=o[0],p=o[1],h=-u,g=-p;if(e&&s&&a){h=0,g=0;var f=[];if(r&&l?f.push([0,p],[u,0]):r?f.push([u,0]):l?f.push([0,p]):d&&c?f.push([0,p],[u,0]):d?f.push([u,0]):c&&f.push([0,p]),f.length){f.sort((function(e,t){return jp(ou([s,a],e))-jp(ou([s,a],t))}));var m=f[0];if(m[0]&&Math.abs(s)>vp)h=-m[0],g=a*Math.abs(s+h)/Math.abs(s)-a;else if(m[1]&&Math.abs(a)>vp){var v=a;g=-m[1],h=s*Math.abs(a+g)/Math.abs(v)-s}if(e&&l&&r)if(Math.abs(h)>vp&&Math.abs(h)<Math.abs(u))h*=b=Math.abs(u)/Math.abs(h),g*=b;else if(Math.abs(g)>vp&&Math.abs(g)<Math.abs(p)){var b;h*=b=Math.abs(p)/Math.abs(g),g*=b}else h=dh(-u,h),g=dh(-p,g)}}else h=s||r?-u:0,g=a||l?-p:0;return[h,g]}(n,[t,i],[x,w],[y,_],[dh(g.offset,v.offset),dh(f.offset,b.offset)]);return[{isBound:x,isSnap:y,offset:S[0]},{isBound:w,isSnap:_,offset:S[1]}]}function Gg(e){var t=[];return e.forEach((function(e){e.guidelineInfos.forEach((function(e){var i=e.guideline;t.indexOf(i)>-1||t.push(i)}))})),t}function Vg(e,t,i,n){var o=e.filter((function(e){var i=e.element,n=e.gap,o=e.type;return i&&n&&o===t})),s="vertical"===t?[0,1]:[1,0],a=s[0],r=s[1];return lh(o.map((function(e){var t=e.pos,o=e.gap,s=e.gapGuidelines,l=e.sizes,d=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.sort((function(e,t){return Math.abs(e)-Math.abs(t)})),e[0]}(t[r]+l[r]-i[r],t[r]-i[r]-n[r]),c=Math.min(l[r],n[r]);if(d>0&&d>c?d=2*(d-c/2):d<0&&d<-c&&(d=2*(d+c/2)),0===d)return[];var u=(d>0?0:n[r])+d/2;return rp(function(e,t,i,n,o,s,a){var r=Math.abs(s),l=o[t]+(s>0?n[0]:0);return e.filter((function(e){return e.pos[t]<=i[t]})).sort((function(e,i){var n=e.pos;return i.pos[t]-n[t]})).filter((function(e){var i=e.pos,n=e.sizes,o=i[t];return tc(o+n[t],mp)===tc(l-r,mp)&&(l=o,!0)})).map((function(e){var n=-i[t]+e.pos[t]+e.sizes[t];return ap(ap({},e),{gap:s,renderPos:t?[a,n]:[n,a]})}))}(s,a,i,n,t,o,u),function(e,t,i,n,o,s,a){var r=Math.abs(s),l=o[t]+(s<0?n[t]:0);return e.filter((function(e){return e.pos[t]>i[t]})).sort((function(e,i){var n=e.pos,o=i.pos;return n[t]-o[t]})).filter((function(e){var i=e.pos,n=e.sizes,o=i[t];return tc(o,mp)===tc(l+r,mp)&&(l=o+n[t],!0)})).map((function(e){var n=-i[t]+e.pos[t]-r;return ap(ap({},e),{gap:s,renderPos:t?[a,n]:[n,a]})}))}(s,a,i,n,t,o,u))})))}function Yg(e,t,i,n,o,s){var a=bg(yg(e,s),t,i),r=a.vertical,l=a.horizontal;r.forEach((function(e){e.isBound&&n.push({type:"bounds",pos:e.pos})})),l.forEach((function(e){e.isBound&&o.push({type:"bounds",pos:e.pos})}));var d=function(e){var t=e.props.innerBounds;if(!t)return{vertical:[],horizontal:[]};var i=e.getRect(),n=i.pos1,o=i.pos2,s=i.pos3,a=i.pos4,r=Ih([n,o,s,a],[0,0]),l=t.left,d=t.top,c=t.width,u=t.height,p=[[l,d],[l,d+u]],h=[[l,d],[l+c,d]],g=[[l+c,d],[l+c,d+u]],f=[[l,d+u],[l+c,d+u]],m=[],v=[],b={top:!1,bottom:!1,left:!1,right:!1};return[[n,o],[o,a],[a,s],[s,n]].forEach((function(e){var t=lg(r,e),i=t.horizontal,n=t.vertical,o=pg(e,h,n,1,!0),s=pg(e,f,n,1,!0),a=pg(e,p,i,1,!0),y=pg(e,g,i,1,!0);o.isBound&&!b.top&&(m.push(d),b.top=!0),s.isBound&&!b.bottom&&(m.push(d+u),b.bottom=!0),a.isBound&&!b.left&&(v.push(l),b.left=!0),y.isBound&&!b.right&&(v.push(l+c),b.right=!0)})),{horizontal:m,vertical:v}}(e),c=d.vertical,u=d.horizontal;c.forEach((function(e){Wd(n,(function(t){var i=t.type,n=t.pos;return"bounds"===i&&n===e}))>=0||n.push({type:"bounds",pos:e})})),u.forEach((function(e){Wd(o,(function(t){var i=t.type,n=t.pos;return"bounds"===i&&n===e}))>=0||o.push({type:"bounds",pos:e})}))}var Xg={name:"snappable",props:{snappable:[Boolean,Array],snapContainer:Object,snapCenter:Boolean,snapHorizontal:Boolean,snapVertical:Boolean,snapElement:Boolean,snapGap:Boolean,snapGridWidth:Number,snapGridHeight:Number,isDisplaySnapDigit:Boolean,isDisplayInnerSnapDigit:Boolean,snapDigit:Number,snapThreshold:Number,horizontalGuidelines:Array,verticalGuidelines:Array,elementGuidelines:Array,bounds:Object,innerBounds:Object,snapDistFormat:Function},events:{onSnap:"snap"},css:[":host {\n --bounds-color: #d66;\n}\n.guideline {\n pointer-events: none;\n z-index: 2;\n}\n.guideline.bounds {\n background: #d66;\n background: var(--bounds-color);\n}\n.guideline-group {\n position: absolute;\n top: 0;\n left: 0;\n}\n.guideline-group .size-value {\n position: absolute;\n color: #f55;\n font-size: 12px;\n font-weight: bold;\n}\n.guideline-group.horizontal .size-value {\n transform-origin: 50% 100%;\n transform: translateX(-50%);\n left: 50%;\n bottom: 5px;\n}\n.guideline-group.vertical .size-value {\n transform-origin: 0% 50%;\n top: 50%;\n transform: translateY(-50%);\n left: 5px;\n}\n.guideline.gap {\n background: #f55;\n}\n.size-value.gap {\n color: #f55;\n}\n"],render:function(e,t){var i=e.state,n=i.top,o=i.left,s=i.pos1,a=i.pos2,r=i.pos3,l=i.pos4,d=i.snapRenderInfo,c=i.targetClientRect,u=i.containerClientRect,p=i.is3d,h=i.rootMatrix;if(!d||!Og(e,""))return[];i.staticGuidelines=Jh(e,!1,i.staticGuidelines),i.guidelines=eg(e);var g=p?4:3,f=Math.min(s[0],a[0],r[0],l[0]),m=Math.min(s[1],a[1],r[1],l[1]),v=Xh(h,u,g),b=ch(h,[c.left-v[0],c.top-v[1]],g),y=b[0],_=b[1],x=e.props,w=x.snapThreshold,S=void 0===w?5:w,C=x.snapDigit,k=void 0===C?0:C,E=x.snapDistFormat,A=void 0===E?function(e){return e}:E,q=d.externalPoses||[],T=Jp(e.state),L=[],M=[],O=[],R=[],N=[],B=Hp(T),I=B.width,D=B.height,$=B.top,P=B.left,H=B.bottom,z=B.right,F=q.length>0,j=F?Hp(q):{};if(!d.request){if(d.direction&&N.push(function(e,t,i){var n=[];if(i[0]&&i[1])n=[i,[-i[0],i[1]],[i[0],-i[1]]].map((function(e){return Ih(t,e)}));else if(i[0]||i[1])e.props.keepRatio?n=[[-1,-1],[-1,1],[1,-1],[1,1],i].map((function(e){return Ih(t,e)})):(n=Bh(t,i)).length>1&&n.push([(n[0][0]+n[1][0])/2,(n[0][1]+n[1][1])/2]);else for(var o=[t[0],t[1],t[3],t[2],t[0]],s=0;s<4;++s)n.push(o[s]),n.push([(o[s][0]+o[s+1][0])/2,(o[s][1]+o[s+1][1])/2]);return tg(e,n.map((function(e){return e[0]})),n.map((function(e){return e[1]})),!0,1)}(e,T,d.direction)),d.snap){var U=Hp(T);d.center&&(U.middle=(U.top+U.bottom)/2,U.center=(U.left+U.right)/2),N.push(ng(e,U,!0,1))}F&&(d.center&&(j.middle=(j.top+j.bottom)/2,j.center=(j.left+j.right)/2),N.push(ng(e,j,!0,1))),N.forEach((function(e){var t=e.vertical.posInfos,i=e.horizontal.posInfos;L.push.apply(L,t.filter((function(e){return e.guidelineInfos.some((function(e){return!e.guideline.hide}))})).map((function(e){return{type:"snap",pos:e.pos}}))),M.push.apply(M,i.filter((function(e){return e.guidelineInfos.some((function(e){return!e.guideline.hide}))})).map((function(e){return{type:"snap",pos:e.pos}}))),O.push.apply(O,Gg(t)),R.push.apply(R,Gg(i))}))}Yg(e,[P,z],[$,H],L,M),F&&Yg(e,[j.left,j.right],[j.top,j.bottom],L,M,d.externalBounds);var W=Vg(O,"vertical",[o,n],[I,D]),G=Vg(R,"horizontal",[o,n],[I,D]),V=rp(O,R);nh(e,"onSnap",{guidelines:V.filter((function(e){return!e.element})),elements:rh(V.filter((function(e){return e.element})),(function(e){return e.element})),gaps:rp(G,W)},!0);var Y=qg(e,R,0,[o,n],[y,_],[I,D]),X=Y.guidelines,K=Y.groups,Z=Y.gapGuidelines,Q=qg(e,O,1,[o,n],[y,_],[I,D]),J=Q.guidelines,ee=Q.groups;return rp(Lg(e,"vertical",rp(G,Q.gapGuidelines),A,t),Lg(e,"horizontal",rp(W,Z),A,t),Eg(e,"horizontal",K,f,y,I,n,S,k,0,A,t),Eg(e,"vertical",ee,m,_,D,o,S,k,1,A,t),Tg(e,"horizontal",X,[o,n],t),Tg(e,"vertical",J,[o,n],t),Ag(e,"horizontal",M,f,n,I,0,t),Ag(e,"vertical",L,m,o,D,1,t))},dragStart:function(e,t){e.state.snapRenderInfo={request:t.isRequest,snap:!0,center:!0},Mg(e)},drag:function(e){var t=e.state;t.staticGuidelines=Jh(e,!1,t.staticGuidelines),t.guidelines=eg(e)},pinchStart:function(e){this.unset(e)},dragEnd:function(e){this.unset(e)},dragControlCondition:function(e,t){return!(!fh(0,t)&&!af(e,t))||(!t.isRequest&&t.inputEvent?nc(t.inputEvent.target,kp("snap-control")):void 0)},dragControlStart:function(e){e.state.snapRenderInfo=null,Mg(e)},dragControl:function(e){this.drag(e)},dragControlEnd:function(e){this.unset(e)},dragGroupStart:function(e,t){this.dragStart(e,t)},dragGroup:function(e){this.drag(e)},dragGroupEnd:function(e){this.unset(e)},dragGroupControlStart:function(e){e.state.snapRenderInfo=null,Mg(e)},dragGroupControl:function(e){this.drag(e)},dragGroupControlEnd:function(e){this.unset(e)},unset:function(e){var t=e.state;t.enableSnap=!1,t.staticGuidelines=[],t.guidelines=[],t.snapRenderInfo=null}},Kg={name:"draggable",props:{draggable:Boolean,throttleDrag:Number,throttleDragRotate:Number,startDragRotate:Number,edgeDraggable:Boolean},events:{onDragStart:"dragStart",onDrag:"drag",onDragEnd:"dragEnd",onDragGroupStart:"dragGroupStart",onDragGroup:"dragGroup",onDragGroupEnd:"dragGroupEnd"},render:function(e,t){var i=e.props,n=i.throttleDragRotate,o=i.zoom,s=e.state,a=s.dragInfo,r=s.beforeOrigin;if(!n||!a)return[];var l=a.dist;if(!l[0]&&!l[1])return[];var d=jp(l),c=Qd(l,[0,0]);return[t.createElement("div",{className:kp("line","horizontal","dragline","dashed"),key:"dragRotateGuideline",style:{width:d+"px",transform:"translate("+r[0]+"px, "+r[1]+"px) rotate("+c+"rad) scaleY("+o+")"}})]},dragStart:function(e,t){var i=t.datas,n=t.parentEvent,o=t.parentGesto,s=e.state,a=s.target;if(s.gesto)return!1;s.gesto=o||e.targetGesto;var r=oh(a);i.datas={},i.left=parseFloat(r.left||"")||0,i.top=parseFloat(r.top||"")||0,i.bottom=parseFloat(r.bottom||"")||0,i.right=parseFloat(r.right||"")||0,i.startValue=[0,0],Ah(e,t),Hh(t,"translate"),function(e,t){t.absolutePoses=Jp(e.state)}(e,i),i.prevDist=[0,0],i.prevBeforeDist=[0,0],i.isDrag=!1;var l=th(e,t,ap({set:function(e){i.startValue=e}},Ph(t)));return!1!==(n||nh(e,"onDragStart",l))?(i.isDrag=!0,e.state.dragInfo={startRect:e.getRect(),dist:[0,0]}):(s.gesto=null,i.isPinch=!1),!!i.isDrag&&l},drag:function(e,t){qh(t,"translate");var i=t.datas,n=t.parentEvent,o=t.parentFlag,s=t.isPinch,a=t.isRequest,r=t.distX,l=t.distY,d=i.isDrag,c=i.prevDist,u=i.prevBeforeDist,p=i.startValue;if(d){var h=e.props,g=h.parentMoveable,f=n?0:h.throttleDrag||0,m=n?0:h.throttleDragRotate||0,v=!1,b=0;if(!n&&m>0&&(r||l)){var y=h.startDragRotate||0,_=tc(y+180*Qd([0,0],[r,l])/Math.PI,m)-y,x=l*Math.abs(Math.cos((_-90)/180*Math.PI)),w=jp([r*Math.abs(Math.cos(_/180*Math.PI)),x]);b=_*Math.PI/180,r=w*Math.cos(b),l=w*Math.sin(b)}if(!s&&!n&&!o&&(!m||r||l)){var S=Wg(e,r,l,m,a,i),C=S[0],k=S[1],E=C.isSnap,A=C.isBound,q=C.offset,T=k.isSnap,L=k.isBound;v=E||T||A||L,r+=q,l+=k.offset}i.passDeltaX=r-(i.passDistX||0),i.passDeltaY=l-(i.passDistY||0),i.passDistX=r,i.passDistY=l;var M=nu(Oh({datas:i,distX:r,distY:l}),p),O=nu(Lh({datas:i,distX:r,distY:l}),p);m||v||(ic(O,f),ic(M,f));var R=ou(M,p),N=ou(O,p),B=ou(N,c),I=ou(R,u);i.prevDist=N,i.prevBeforeDist=R;var D=i.left+R[0],$=i.top+R[1],P=i.right-R[0],H=i.bottom-R[1],z=Th(i,"translate("+O[0]+"px, "+O[1]+"px)","translate("+N[0]+"px, "+N[1]+"px)");if(e.state.dragInfo.dist=n?[0,0]:N,n||g||!B.every((function(e){return!e}))||!I.some((function(e){return!e}))){var F=e.state,j=th(e,t,{transform:z,dist:N,delta:B,translate:O,beforeDist:R,beforeDelta:I,beforeTranslate:M,left:D,top:$,right:P,bottom:H,width:F.width,height:F.height,isPinch:s});return!n&&nh(e,"onDrag",j),j}}},dragEnd:function(e,t){var i=t.parentEvent,n=t.datas,o=t.isDrag;if(e.state.gesto=null,e.state.dragInfo=null,n.isDrag)return n.isDrag=!1,!i&&nh(e,"onDragEnd",ih(e,t,{})),o},dragGroupStart:function(e,t){var i=t.datas,n=t.clientX,o=t.clientY,s=this.dragStart(e,t);if(!s)return!1;var a=Ch(e,this,"dragStart",[n||0,o||0],t,!1),r=nh(e,"onDragGroupStart",ap(ap({},s),{targets:e.props.targets,events:a}));return i.isDrag=!1!==r,!!i.isDrag&&s},dragGroup:function(e,t){if(t.datas.isDrag){var i=this.drag(e,t),n=t.datas,o=Ch(e,this,"drag",[n.passDeltaX,n.passDeltaY],t,!1);if(i){var s=ap({targets:e.props.targets,events:o},i);return nh(e,"onDragGroup",s),s}}},dragGroupEnd:function(e,t){var i=t.isDrag;if(t.datas.isDrag)return this.dragEnd(e,t),Ch(e,this,"dragEnd",[0,0],t,!1),nh(e,"onDragGroupEnd",ih(e,t,{targets:e.props.targets})),i},request:function(e){var t={},i=e.getRect(),n=0,o=0;return{isControl:!1,requestStart:function(){return{datas:t}},request:function(e){return"x"in e?n=e.x-i.left:"deltaX"in e&&(n+=e.deltaX),"y"in e?o=e.y-i.top:"deltaY"in e&&(o+=e.deltaY),{datas:t,distX:n,distY:o}},requestEnd:function(){return{datas:t,isDrag:!0}}}},unset:function(e){e.state.dragInfo=null}};function Zg(e,t,i,n){void 0===n&&(n="");var o=e.state,s=o.renderPoses,a=o.rotation,r=o.direction,l=e.props,d=l.renderDirections,c=void 0===d?t:d,u=l.zoom,p={};if(!c)return[];var h=r>0?1:-1,g=!0===c?xp:c,f=a/Math.PI*180;return g.forEach((function(e){p[e]=!0})),g.map((function(e){var t=wp[e];if(!t||!p[e])return null;var o=(tc(f,15)+h*Sp[e]+720)%180;return i.createElement("div",{className:kp("control","direction",e,n),"data-rotation":o,"data-direction":e,key:"direction-"+e,style:Gp.apply(void 0,rp([a,u],t.map((function(e){return s[e]}))))})}))}function Qg(e,t,i,n,o,s){for(var a=[],r=6;r<arguments.length;r++)a[r-6]=arguments[r];var l=Qd(i,n),d=t?tc(l/Math.PI*180,15)%180:-1;return e.createElement("div",{key:"line"+s,className:kp.apply(void 0,rp(["line","direction",t],a)),"data-rotation":d,"data-line-index":s,"data-direction":t,style:Wp(i,n,o,l)})}function Jg(e,t){return Zg(e,xp,t)}function ef(e,t){return Zg(e,["nw","ne","sw","se"],t)}function tf(e,t,i,n,o,s){var a=e.state.is3d?4:3,r=$p(e.state.rootMatrix,o,a),l=nu([s.left,s.top],r);t.startAbsoluteOrigin=l,t.prevDeg=Qd(l,[i,n])/Math.PI*180,t.prevSnapDeg=t.prevDeg,t.startDeg=t.prevDeg,t.loop=0}function nf(e,t,i,n,o,s){var a=i.prevDeg,r=jg(e,t,i.origin,n);return i.prevDeg=r,[r-a,r,s+r]}function of(e,t,i,n,o,s,a,r){var l=i.prevDeg,d=i.prevSnapDeg,c=i.startDeg,u=i.loop;l>n&&l>270&&n<90?++i.loop:l<n&&l<90&&n>270&&--i.loop;var p=i.loop,h=360*u+d-c+s,g=360*p+n-c+s;i.prevDeg=g-360*p+c-s;var f=o*((g=tc(g,a))-s);return r&&(g=(f=jg(e,t,i.origin,f))/o+s),i.prevSnapDeg=g-360*p+c-s,[o*(g-h),f,s+f]}function sf(e,t,i,n,o,s,a,r){return of(e,t,i,Qd(i.startAbsoluteOrigin,[o,s])/Math.PI*180,n,a,r,!0)}function af(e,t){if(t.isRequest)return"rotatable"===t.requestAble;var i=t.inputEvent.target;if(nc(i,kp("rotation-control")))return!0;var n=e.props.rotationTarget;return!!n&&bh(n,!0).some((function(e){return!!e&&(i===e||i.contains(e))}))}var rf={name:"rotatable",canPinch:!0,props:{rotatable:Boolean,rotationPosition:String,throttleRotate:Number,renderDirections:Object,rotationTarget:Object},events:{onRotateStart:"rotateStart",onRotate:"rotate",onRotateEnd:"rotateEnd",onRotateGroupStart:"rotateGroupStart",onRotateGroup:"rotateGroup",onRotateGroupEnd:"rotateGroupEnd"},css:[".rotation {\n position: absolute;\n height: 40px;\n width: 1px;\n transform-origin: 50% 100%;\n height: calc(40px * var(--zoom));\n top: auto;\n left: 0;\n bottom: 100%;\n will-change: transform;\n }\n .rotation .rotation-line {\n display: block;\n width: 100%;\n height: 100%;\n transform-origin: 50% 50%;\n }\n .rotation .rotation-control {\n border-color: #4af;\n border-color: var(--moveable-color);\n background:#fff;\n cursor: alias;\n }"],render:function(e,t){var i=e.props,n=i.rotatable,o=i.rotationPosition,s=i.zoom,a=i.renderDirections,r=e.state,l=r.renderPoses,d=r.direction;if(!n)return null;var c=function(e,t,i){var n=t[0],o=t[1],s=t[2],a=t[3];if("none"!==e){var r=(e||"top").split("-"),l=r[0],d=r[1],c=[n,o];"left"===l?c=[s,n]:"right"===l?c=[o,a]:"bottom"===l&&(c=[a,s]);var u=[(c[0][0]+c[1][0])/2,(c[0][1]+c[1][1])/2],p=Yp(c,i);if(d){var h="top"===d||"left"===d,g="bottom"===l||"left"===l;u=c[h&&!g||!h&&g?0:1]}return[u,p]}}(o,l,d),u=[];if(c){var p=c[0],h=c[1];u.push(t.createElement("div",{key:"rotation",className:kp("rotation"),style:{transform:"translate(-50%) translate("+p[0]+"px, "+p[1]+"px) rotate("+h+"rad)"}},t.createElement("div",{className:kp("line rotation-line"),style:{transform:"scaleX("+s+")"}}),t.createElement("div",{className:kp("control rotation-control"),style:{transform:"translate(0.5px) scale("+s+")"}})))}return a&&u.push.apply(u,Zg(e,[],t)),u},dragControlCondition:af,dragControlStart:function(e,t){var i=t.datas,n=t.clientX,o=t.clientY,s=t.parentRotate,a=t.parentFlag,r=t.isPinch,l=t.isRequest,d=e.state,c=d.target,u=d.left,p=d.top,h=d.origin,g=d.beforeOrigin,f=d.direction,m=d.beforeDirection,v=d.targetTransform,b=d.moveableClientRect;if(!l&&!c)return!1;var y=e.getRect();if(i.rect=y,i.transform=v,i.left=u,i.top=p,i.fixedPosition=Gh(e,Wh(e)),i.absoluteInfo={origin:y.origin,startValue:y.rotation},tf(e,i.absoluteInfo,n,o,h,b),l||r||a){var _=s||0;i.beforeInfo={origin:y.beforeOrigin,prevDeg:_,startDeg:_,prevSnapDeg:_,loop:0},i.afterInfo={origin:y.origin,prevDeg:_,startDeg:_,prevSnapDeg:_,loop:0}}else i.beforeInfo={origin:y.beforeOrigin},i.afterInfo={origin:y.origin},tf(e,i.beforeInfo,n,o,g,b),tf(e,i.afterInfo,n,o,h,b);i.direction=f,i.beforeDirection=m,i.startValue=0,i.datas={},Hh(t,"rotate");var x=th(e,t,ap(ap({set:function(e){i.startValue=e*Math.PI/180}},Ph(t)),{dragStart:Kg.dragStart(e,(new wh).dragStart([0,0],t))})),w=nh(e,"onRotateStart",x);return i.isRotate=!1!==w,e.state.snapRenderInfo={request:t.isRequest},!!i.isRotate&&x},dragControl:function(e,t){var i,n,o,s,a,r,l,d,c,u=t.datas,p=t.clientX,h=t.clientY,g=t.parentRotate,f=t.parentFlag,m=t.isPinch,v=t.groupDelta,b=u.beforeDirection,y=u.beforeInfo,_=u.afterInfo,x=u.absoluteInfo,w=u.isRotate,S=u.startValue,C=u.rect;if(w){qh(t,"rotate");var k,E,A,q,T,L,M,O,R,N=b*function(e){return Fp(e.datas.beforeTransform,[50,50],100,100).direction}(t),B=e.props,I=B.throttleRotate,D=void 0===I?0:I,$=B.parentMoveable,P=180/Math.PI*S,H=x.startValue;if(!f&&"parentDist"in t){var z=t.parentDist;k=(i=nf(e,C,_,z,0,P))[0],E=i[1],A=i[2],q=(n=nf(e,C,y,z,0,P))[0],T=n[1],L=n[2],M=(o=nf(e,C,x,z,0,H))[0],O=o[1],R=o[2]}else m||f?(k=(s=of(e,C,_,g,N,P,D))[0],E=s[1],A=s[2],q=(a=of(e,C,y,g,b,P,D))[0],T=a[1],L=a[2],M=(r=of(e,C,x,g,N,H,D))[0],O=r[1],R=r[2]):(k=(l=sf(e,C,_,N,p,h,P,D))[0],E=l[1],A=l[2],q=(d=sf(e,C,y,b,p,h,P,D))[0],T=d[1],L=d[2],M=(c=sf(e,C,x,N,p,h,H,D))[0],O=c[1],R=c[2]);if(M||k||q||$){var F=Th(u,"rotate("+A+"deg)","rotate("+E+"deg)"),j=function(e,t,i,n){return Uh(e,"rotate("+t+"deg)",Wh(e),i,n)}(e,E,u.fixedPosition,u),U=ou(nu(v||[0,0],j),u.prevInverseDist||[0,0]);u.prevInverseDist=j;var W=th(e,t,ap({delta:k,dist:E,rotate:A,beforeDist:T,beforeDelta:q,beforeRotate:L,absoluteDist:O,absoluteDelta:M,absoluteRotate:R,isPinch:!!m},jh(e,F,U,m,t)));return nh(e,"onRotate",W),W}}},dragControlEnd:function(e,t){var i=t.datas,n=t.isDrag;return!!i.isRotate&&(i.isRotate=!1,nh(e,"onRotateEnd",ih(e,t,{})),n)},dragGroupControlCondition:af,dragGroupControlStart:function(e,t){var i=t.datas,n=e.state,o=n.left,s=n.top,a=n.beforeOrigin,r=this.dragControlStart(e,t);if(!r)return!1;r.set(i.beforeDirection*e.rotation);var l=kh(e,this,"dragControlStart",t,(function(e,t){var i=e.state,n=i.left,r=i.top,l=i.beforeOrigin,d=nu(ou([n,r],[o,s]),ou(l,a));return t.datas.groupClient=d,ap(ap({},t),{parentRotate:0})})),d=nh(e,"onRotateGroupStart",ap(ap({},r),{targets:e.props.targets,events:l}));return i.isRotate=!1!==d,!!i.isRotate&&r},dragGroupControl:function(e,t){var i=t.datas;if(i.isRotate){var n=this.dragControl(e,t);if(n){var o=i.beforeDirection,s=n.beforeDist,a=n.beforeDelta/180*Math.PI,r=kh(e,this,"dragControl",t,(function(e,t){var i=t.datas.groupClient,n=i[0],r=i[1],l=uu([n,r],a*o),d=l[0],c=l[1],u=[d-n,c-r];return t.datas.groupClient=[d,c],ap(ap({},t),{parentRotate:s,groupDelta:u})}));e.rotation=o*n.beforeRotate;var l=ap({targets:e.props.targets,events:r,set:function(t){e.rotation=t}},n);return nh(e,"onRotateGroup",l),l}}},dragGroupControlEnd:function(e,t){var i=t.isDrag;if(t.datas.isRotate)return this.dragControlEnd(e,t),kh(e,this,"dragControlEnd",t),nh(e,"onRotateGroupEnd",ih(e,t,{targets:e.props.targets})),i},request:function(e){var t={},i=0,n=e.getRotation();return{isControl:!0,requestStart:function(){return{datas:t}},request:function(e){return"deltaRotate"in e?i+=e.deltaRotate:"rotate"in e&&(i=e.rotate-n),{datas:t,parentDist:i}},requestEnd:function(){return{datas:t,isDrag:!0}}}}},lf={name:"resizable",ableGroup:"size",canPinch:!0,props:{resizable:Boolean,throttleResize:Number,renderDirections:Array,keepRatio:Boolean},events:{onResizeStart:"resizeStart",onResize:"resize",onResizeEnd:"resizeEnd",onResizeGroupStart:"resizeGroupStart",onResizeGroup:"resizeGroup",onResizeGroupEnd:"resizeGroupEnd"},render:function(e,t){var i=e.props,n=i.resizable,o=i.edge;if(n)return o?ef(e,t):Jg(e,t)},dragControlCondition:fh,dragControlStart:function(e,t){var i,n=t.inputEvent,o=t.isPinch,s=t.parentDirection,a=t.datas,r=t.parentFlag,l=s||(o?[0,0]:Zp(n.target)),d=e.state,c=d.target,u=d.width,p=d.height;if(!l||!c)return!1;!o&&Ah(e,t),a.datas={},a.direction=l,a.startOffsetWidth=u,a.startOffsetHeight=p,a.prevWidth=0,a.prevHeight=0,i=function(e){var t=oh(e);return[parseFloat(t.width),parseFloat(t.height)]}(c),a.startWidth=i[0],a.startHeight=i[1];var h=[Math.max(0,u-a.startWidth),Math.max(0,p-a.startHeight)];if(a.minSize=h,a.maxSize=[1/0,1/0],!r){var g=oh(c),f=g.position,m=g.minWidth,v=g.minHeight,b=g.maxWidth,y=g.maxHeight,_="static"===f||"relative"===f,x=_?c.parentElement:c.offsetParent,w=u,S=p;if(x&&(w=x.clientWidth,S=x.clientHeight,_)){var C=oh(x);w-=parseFloat(C.paddingLeft)||0,S-=parseFloat(C.paddingTop)||0}a.minSize=nu([Yd(m,w)||0,Yd(v,S)||0],h),a.maxSize=nu([Yd(b,w)||1/0,Yd(y,S)||1/0],h)}var k=e.props.transformOrigin||"% %";function E(e){a.ratio=e&&isFinite(e)?e:0}function A(t){a.fixedDirection=t,a.fixedPosition=Yh(e,t)}a.transformOrigin=k&&Nd(k)?k.split(" "):k,a.isWidth=!l[0]&&!l[1]||l[0]||!l[1],E(u/p),A([-l[0],-l[1]]);var q=th(e,t,{direction:l,set:function(e){var t=e[0],i=e[1];a.startWidth=t,a.startHeight=i},setMin:function(e){a.minSize=e},setMax:function(e){a.maxSize=[e[0]||1/0,e[1]||1/0]},setRatio:E,setFixedDirection:A,setOrigin:function(e){a.transformOrigin=e},dragStart:Kg.dragStart(e,(new wh).dragStart([0,0],t))});return!1!==nh(e,"onResizeStart",q)&&(a.isResize=!0,e.state.snapRenderInfo={request:t.isRequest,direction:l}),!!a.isResize&&q},dragControl:function(e,t){var i,n=t.datas,o=t.distX,s=t.distY,a=t.parentFlag,r=t.isPinch,l=t.parentDistance,d=t.parentScale,c=t.parentKeepRatio,u=t.dragClient,p=t.parentDist,h=t.isRequest,g=n.isResize,f=n.transformOrigin,m=n.fixedDirection,v=n.startWidth,b=n.startHeight,y=n.prevWidth,_=n.prevHeight,x=n.minSize,w=n.maxSize,S=n.ratio,C=n.isWidth,k=n.startOffsetWidth,E=n.startOffsetHeight;if(g){var A=e.props,q=A.throttleResize,T=void 0===q?0:q,L=A.parentMoveable,M=A.snapThreshold,O=void 0===M?5:M,R=n.direction,N=R,B=0,I=0;R[0]||R[1]||(N=[1,1]);var D=S&&(e.props.keepRatio||c),$=u;if(u||($=!a&&r?Yh(e,[0,0]):n.fixedPosition),p)B=p[0],I=p[1],D&&(B?I||(I=B/S):B=I*S);else if(d)B=(d[0]-1)*k,I=(d[1]-1)*E;else if(r)l&&(B=l,I=l*E/k);else{var P=Rh({datas:n,distX:o,distY:s});if(B=N[0]*P[0],I=N[1]*P[1],D&&k&&E){var H=Qd([0,0],P),z=Qd([0,0],N),F=jp([B,I]),j=Math.cos(H-z)*F;if(N[0])if(N[1]){var U=2*N[0]*k,W=2*N[1]*E,G=jp([U+P[0],W+P[1]])-jp([U,W]),V=Qd([0,0],[S,1]);B=Math.cos(V)*G,I=Math.sin(V)*G}else I=(B=j)*S;else B=(I=j)/S}else if(!D){var Y=rp(R);k||(P[0]<0?Y[0]=-1:P[0]>0&&(Y[0]=1)),E||(P[1]<0?Y[1]=-1:P[1]>0&&(Y[1]=1)),R=Y,B=(N=Y)[0]*P[0],I=N[1]*P[1]}}var X=N[0]||D?Math.max(k+B,vp):k,K=N[1]||D?Math.max(E+I,vp):E;D&&k&&E&&(C?K=X/S:X=K*S);var Z=[0,0];if(r||(Z=function(e,t,i,n,o,s,a){if(!Og(e,"resizable"))return[0,0];var r=e.state,l=r.allMatrix,d=r.is3d;return Fg(e,(function(e,s){return Ng(l,t+e,i+s,o,n,d)}),t,i,n,o,s,a)}(e,X,K,R,$,h,n)),p&&(!p[0]&&(Z[0]=0),!p[1]&&(Z[1]=0)),D){N[0]&&N[1]&&Z[0]&&Z[1]&&(Math.abs(Z[0])>Math.abs(Z[1])?Z[1]=0:Z[0]=0);var Q=!Z[0]&&!Z[1];Q&&(C?X=tc(X,T):K=tc(K,T)),N[0]&&!N[1]||Z[0]&&!Z[1]||Q&&C?K=(X+=Z[0])/S:(!N[0]&&N[1]||!Z[0]&&Z[1]||Q&&!C)&&(X=(K+=Z[1])*S)}else k+B<-O&&(Z[0]=0),k+I<-O&&(Z[1]=0),X+=Z[0],K+=Z[1],Z[0]||(X=tc(X,T)),Z[1]||(K=tc(K,T));X=(i=Kd([X,K],x,w,D))[0],K=i[1];var J=[(B=(X=Math.round(X))-k)-y,(I=(K=Math.round(K))-E)-_];n.prevWidth=B,n.prevHeight=I;var ee=Vh(e,X,K,m,$,f);if(L||!J.every((function(e){return!e}))||!ee.every((function(e){return!e}))){var te=th(e,t,{width:v+B,height:b+I,offsetWidth:X,offsetHeight:K,direction:R,dist:[B,I],delta:J,isPinch:!!r,drag:Kg.drag(e,xh(t,e.state,ee,!!r,!1))});return nh(e,"onResize",te),te}}},dragControlAfter:function(e,t){var i=t.datas,n=i.isResize,o=i.startOffsetWidth,s=i.startOffsetHeight,a=i.prevWidth,r=i.prevHeight;if(n){var l=e.state,d=l.width-(o+a),c=l.height-(s+r),u=Math.abs(d)>3,p=Math.abs(c)>3;return u&&(i.startWidth+=d,i.startOffsetWidth+=d,i.prevWidth+=d),p&&(i.startHeight+=c,i.startOffsetHeight+=c,i.prevHeight+=c),u||p?(this.dragControl(e,t),!0):void 0}},dragControlEnd:function(e,t){var i=t.datas,n=t.isDrag;return!!i.isResize&&(i.isResize=!1,nh(e,"onResizeEnd",ih(e,t,{})),n)},dragGroupControlCondition:fh,dragGroupControlStart:function(e,t){var i=t.datas,n=this.dragControlStart(e,t);if(!n)return!1;var o=Sh(e,"resizable",t);function s(t,n){var o=i.fixedDirection,s=i.fixedPosition,a=Yh(t,o),r=au(gu(-e.rotation/180*Math.PI,3),[a[0]-s[0],a[1]-s[1],1],3),l=r[0],d=r[1];return n.datas.originalX=l,n.datas.originalY=d,n}var a=kh(e,this,"dragControlStart",t,(function(e,t){return s(e,t)})),r=ap(ap({},n),{targets:e.props.targets,events:a,setFixedDirection:function(t){n.setFixedDirection(t),a.forEach((function(i,n){i.setFixedDirection(t),s(e.moveables[n],o[n])}))}}),l=nh(e,"onResizeGroupStart",r);return i.isResize=!1!==l,!!i.isResize&&n},dragGroupControl:function(e,t){var i=t.datas;if(i.isResize){var n=this.dragControl(e,t);if(n){var o=n.offsetWidth,s=n.offsetHeight,a=n.dist,r=e.props.keepRatio,l=[o/(o-a[0]),s/(s-a[1])],d=i.fixedPosition,c=kh(e,this,"dragControl",t,(function(t,i){var n=au(gu(e.rotation/180*Math.PI,3),[i.datas.originalX*l[0],i.datas.originalY*l[1],1],3),o=n[0],s=n[1];return ap(ap({},i),{parentDist:null,parentScale:l,dragClient:nu(d,[o,s]),parentKeepRatio:r})})),u=ap({targets:e.props.targets,events:c},n);return nh(e,"onResizeGroup",u),u}}},dragGroupControlEnd:function(e,t){var i=t.isDrag;if(t.datas.isResize)return this.dragControlEnd(e,t),kh(e,this,"dragControlEnd",t),nh(e,"onResizeGroupEnd",ih(e,t,{targets:e.props.targets})),i},request:function(e){var t={},i=0,n=0,o=e.getRect();return{isControl:!0,requestStart:function(e){return{datas:t,parentDirection:e.direction||[1,1]}},request:function(e){return"offsetWidth"in e?i=e.offsetWidth-o.offsetWidth:"deltaWidth"in e&&(i+=e.deltaWidth),"offsetHeight"in e?n=e.offsetHeight-o.offsetHeight:"deltaHeight"in e&&(n+=e.deltaHeight),{datas:t,parentDist:[i,n]}},requestEnd:function(){return{datas:t,isDrag:!0}}}}},df={name:"scalable",ableGroup:"size",canPinch:!0,props:{scalable:Boolean,throttleScale:Number,renderDirections:String,keepRatio:Boolean},events:{onScaleStart:"scaleStart",onScale:"scale",onScaleEnd:"scaleEnd",onScaleGroupStart:"scaleGroupStart",onScaleGroup:"scaleGroup",onScaleGroupEnd:"scaleGroupEnd"},render:function(e,t){var i=e.props,n=i.resizable,o=i.scalable,s=i.edge;if(!n&&o)return s?ef(e,t):Jg(e,t)},dragControlCondition:fh,dragControlStart:function(e,t){var i=t.datas,n=t.isPinch,o=t.inputEvent,s=t.parentDirection||(n?[0,0]:Zp(o.target)),a=e.state,r=a.width,l=a.height,d=a.targetTransform,c=a.target,u=a.pos1,p=a.pos2,h=a.pos4;if(!s||!c)return!1;n||Ah(e,t),i.datas={},i.transform=d,i.prevDist=[1,1],i.direction=s,i.width=r,i.height=l,i.startValue=[1,1];var g=ec(u,p),f=ec(p,h),m=!s[0]&&!s[1]||s[0]||!s[1];function v(e){i.ratio=e&&isFinite(e)?e:0}function b(t){i.fixedDirection=t,i.fixedPosition=Yh(e,t)}i.scaleWidth=g,i.scaleHeight=f,i.scaleXRatio=g/r,i.scaleYRatio=f/l,Hh(t,"scale"),i.isWidth=m,v(ec(u,p)/ec(p,h)),b([-s[0],-s[1]]);var y=th(e,t,ap(ap({direction:s,set:function(e){i.startValue=e},setRatio:v,setFixedDirection:b},Ph(t)),{dragStart:Kg.dragStart(e,(new wh).dragStart([0,0],t))}));return!1!==nh(e,"onScaleStart",y)&&(i.isScale=!0,e.state.snapRenderInfo={request:t.isRequest,direction:s}),!!i.isScale&&y},dragControl:function(e,t){qh(t,"scale");var i=t.datas,n=t.distX,o=t.distY,s=t.parentScale,a=t.parentDistance,r=t.parentKeepRatio,l=t.parentFlag,d=t.isPinch,c=t.dragClient,u=t.parentDist,p=t.isRequest,h=i.prevDist,g=i.direction,f=i.width,m=i.height,v=i.isScale,b=i.startValue,y=i.isWidth,_=i.ratio,x=i.fixedDirection,w=i.scaleXRatio,S=i.scaleYRatio;if(!v)return!1;var C=e.props,k=C.throttleScale,E=C.parentMoveable,A=g;g[0]||g[1]||(A=[1,1]);var q=_&&(e.props.keepRatio||r),T=e.state,L=1,M=1,O=c;if(c||(O=!l&&d?Yh(e,[0,0]):i.fixedPosition),u)L=(f+u[0])/f,M=(m+u[1])/m;else if(s)L=s[0],M=s[1];else if(d)a&&(L=(f+a)/f,M=(m+a*m/f)/m);else{var R=Rh({datas:i,distX:n,distY:o}),N=A[0]*R[0]*w,B=A[1]*R[1]*S;if(q&&f&&m)if(A[0])if(A[1]){var I=jp([N,B]),D=Qd([0,0],R),$=Qd([0,0],A),P=Math.cos(D-$)*I,H=Qd([0,0],[_,1]);N=Math.cos(H)*P,B=Math.sin(H)*P}else B=N/_;else N=B*_;L=(f+N/w)/f,M=(m+B/S)/m}L=A[0]||q?L*b[0]:b[0],M=A[1]||q?M*b[1]:b[1],0===L&&(L=(h[0]>0?1:-1)*bp),0===M&&(M=(h[1]>0?1:-1)*bp);var z=[L/b[0],M/b[1]],F=[L,M];if(!d&&e.props.groupable){var j=(T.snapRenderInfo||{}).direction;Rd(j)&&(j[0]||j[1])&&(T.snapRenderInfo={direction:g,request:t.isRequest})}var U=[0,0];if(d||(U=Ug(e,z,g,p,i)),q){A[0]&&A[1]&&U[0]&&U[1]&&(Math.abs(U[0]*f)>Math.abs(U[1]*m)?U[1]=0:U[0]=0);var W=!U[0]&&!U[1];if(W&&(y?z[0]=tc(z[0]*b[0],k)/b[0]:z[1]=tc(z[1]*b[1],k)/b[1]),A[0]&&!A[1]||U[0]&&!U[1]||W&&y){z[0]+=U[0];var G=f*z[0]*b[0]/_;z[1]=G/m/b[1]}else if(!A[0]&&A[1]||!U[0]&&U[1]||W&&!y){z[1]+=U[1];var V=m*z[1]*b[1]*_;z[0]=V/f/b[0]}}else z[0]+=U[0],z[1]+=U[1],U[0]||(z[0]=tc(z[0]*b[0],k)/b[0]),U[1]||(z[1]=tc(z[1]*b[1],k)/b[1]);0===z[0]&&(z[0]=(h[0]>0?1:-1)*bp),0===z[1]&&(z[1]=(h[1]>0?1:-1)*bp);var Y,X,K=[z[0]/h[0],z[1]/h[1]];X=b,F=[(Y=z)[0]*X[0],Y[1]*X[1]];var Z=function(e,t,i,n,o){return Uh(e,"scale("+t.join(", ")+")",i,n,o)}(e,z,x,O,i),Q=ou(Z,i.prevInverseDist||[0,0]);if(i.prevDist=z,i.prevInverseDist=Z,L===h[0]&&M===h[1]&&Q.every((function(e){return!e}))&&!E)return!1;var J=Th(i,"scale("+F.join(", ")+")","scale("+z.join(", ")+")"),ee=th(e,t,ap({offsetWidth:f,offsetHeight:m,direction:g,scale:F,dist:z,delta:K,isPinch:!!d},jh(e,J,Q,d,t)));return nh(e,"onScale",ee),ee},dragControlEnd:function(e,t){var i=t.datas,n=t.isDrag;return!!i.isScale&&(i.isScale=!1,nh(e,"onScaleEnd",ih(e,t,{})),n)},dragGroupControlCondition:fh,dragGroupControlStart:function(e,t){var i=t.datas,n=this.dragControlStart(e,t);if(!n)return!1;var o=Sh(e,"resizable",t);function s(t,n){var o=i.fixedDirection,s=i.fixedPosition,a=Yh(t,o),r=au(gu(-e.rotation/180*Math.PI,3),[a[0]-s[0],a[1]-s[1],1],3),l=r[0],d=r[1];return n.datas.originalX=l,n.datas.originalY=d,n}i.moveableScale=e.scale;var a=kh(e,this,"dragControlStart",t,(function(e,t){return s(e,t)})),r=ap(ap({},n),{targets:e.props.targets,events:a,setFixedDirection:function(t){n.setFixedDirection(t),a.forEach((function(i,n){i.setFixedDirection(t),s(e.moveables[n],o[n])}))}}),l=nh(e,"onScaleGroupStart",r);return i.isScale=!1!==l,!!i.isScale&&r},dragGroupControl:function(e,t){var i=t.datas;if(i.isScale){var n=this.dragControl(e,t);if(n){var o=i.moveableScale;e.scale=[n.scale[0]*o[0],n.scale[1]*o[1]];var s=e.props.keepRatio,a=n.dist,r=n.scale,l=i.fixedPosition,d=kh(e,this,"dragControl",t,(function(t,i){var n=au(gu(e.rotation/180*Math.PI,3),[i.datas.originalX*a[0],i.datas.originalY*a[1],1],3),o=n[0],d=n[1];return ap(ap({},i),{parentDist:null,parentScale:r,parentKeepRatio:s,dragClient:nu(l,[o,d])})})),c=ap({targets:e.props.targets,events:d},n);return nh(e,"onScaleGroup",c),c}}},dragGroupControlEnd:function(e,t){var i=t.isDrag;if(t.datas.isScale)return this.dragControlEnd(e,t),kh(e,this,"dragControlEnd",t),nh(e,"onScaleGroupEnd",ih(e,t,{targets:e.props.targets})),i},request:function(){var e={},t=0,i=0;return{isControl:!0,requestStart:function(t){return{datas:e,parentDirection:t.direction||[1,1]}},request:function(n){return t+=n.deltaWidth,i+=n.deltaHeight,{datas:e,parentDist:[t,i]}},requestEnd:function(){return{datas:e,isDrag:!0}}}}};function cf(e,t){return e.map((function(e,i){return n=e,o=t[i],(n*(a=2)+o*(s=1))/(s+a);var n,o,s,a}))}function uf(e,t,i){var n=Qd(e,t),o=Qd(e,i)-n;return o>=0?o:o+2*Math.PI}var pf={name:"warpable",ableGroup:"size",props:{warpable:Boolean,renderDirections:Array},events:{onWarpStart:"warpStart",onWarp:"warp",onWarpEnd:"warpEnd"},render:function(e,t){var i=e.props,n=i.resizable,o=i.scalable,s=i.warpable,a=i.zoom;if(n||o||!s)return[];var r=e.state,l=r.pos1,d=r.pos2,c=r.pos3,u=r.pos4,p=cf(l,d),h=cf(d,l),g=cf(l,c),f=cf(c,l),m=cf(c,u),v=cf(u,c),b=cf(d,u),y=cf(u,d);return rp([t.createElement("div",{className:kp("line"),key:"middeLine1",style:Wp(p,m,a)}),t.createElement("div",{className:kp("line"),key:"middeLine2",style:Wp(h,v,a)}),t.createElement("div",{className:kp("line"),key:"middeLine3",style:Wp(g,b,a)}),t.createElement("div",{className:kp("line"),key:"middeLine4",style:Wp(f,y,a)})],Jg(e,t))},dragControlCondition:function(e,t){return!t.isRequest&&nc(t.inputEvent.target,kp("direction"))},dragControlStart:function(e,t){var i=t.datas,n=t.inputEvent,o=e.props.target,s=Zp(n.target);if(!s||!o)return!1;var a=e.state,r=a.transformOrigin,l=a.is3d,d=a.targetTransform,c=a.targetMatrix,u=a.width,p=a.height,h=a.left,g=a.top;return i.datas={},i.targetTransform=d,i.warpTargetMatrix=l?c:eu(c,3,4),i.targetInverseMatrix=Zc(Qc(i.warpTargetMatrix,4),3,4),i.direction=s,i.left=h,i.top=g,i.poses=[[0,0],[u,0],[0,p],[u,p]].map((function(e){return ou(e,r)})),i.nextPoses=i.poses.map((function(e){var t=e[0],n=e[1];return au(i.warpTargetMatrix,[t,n,0,1],4)})),i.startValue=fu(4),i.prevMatrix=fu(4),i.absolutePoses=Jp(a),i.posIndexes=Nh(s),Ah(e,t),Hh(t,"matrix3d"),a.snapRenderInfo={request:t.isRequest,direction:s},!1!==nh(e,"onWarpStart",th(e,t,ap({set:function(e){i.startValue=e}},Ph(t))))&&(i.isWarp=!0),i.isWarp},dragControl:function(e,t){var i=t.datas,n=t.isRequest,o=t.distX,s=t.distY,a=i.targetInverseMatrix,r=i.prevMatrix,l=i.isWarp,d=i.startValue,c=i.poses,u=i.posIndexes,p=i.absolutePoses;if(!l)return!1;if(qh(t,"matrix3d"),Og(e,"warpable")){var h=u.map((function(e){return p[e]}));h.length>1&&h.push([(h[0][0]+h[1][0])/2,(h[0][1]+h[1][1])/2]);var g=$g(e,n,h.map((function(e){return[e[0]+o,e[1]+s]}))),f=g.horizontal,m=g.vertical;s-=f.offset,o-=m.offset}var v=Rh({datas:i,distX:o,distY:s},!0),b=i.nextPoses.slice();if(u.forEach((function(e){b[e]=nu(b[e],v)})),!fp.every((function(e){return t=e.map((function(e){return c[e]})),i=e.map((function(e){return b[e]})),n=uf(t[0],t[1],t[2]),o=uf(i[0],i[1],i[2]),s=Math.PI,!(n>=s&&o<=s||n<=s&&o>=s);var t,i,n,o,s})))return!1;var y=bu(c[0],c[2],c[1],c[3],b[0],b[2],b[1],b[3]);if(!y.length)return!1;var _=Mh(i,iu(a,y,4),!0),x=iu(Qc(r,4),_,4);i.prevMatrix=_;var w=iu(d,_,4),S=Th(i,"matrix3d("+w.join(", ")+")","matrix3d("+_.join(", ")+")");return Fh(t,S),nh(e,"onWarp",th(e,t,{delta:x,matrix:w,dist:_,multiply:iu,transform:S})),!0},dragControlEnd:function(e,t){var i=t.datas,n=t.isDrag;return!!i.isWarp&&(i.isWarp=!1,nh(e,"onWarpEnd",ih(e,t,{})),n)}},hf=kp("area-pieces"),gf=kp("area-piece"),ff=kp("avoid");function mf(e){var t=e.areaElement,i=e.state,n=i.width,o=i.height;!function(e,t){if(e.classList)e.classList.remove(t);else{var i=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className=e.className.replace(i," ")}}(t,ff),t.style.cssText+="left: 0px; top: 0px; width: "+n+"px; height: "+o+"px"}function vf(e){return e.createElement("div",{key:"area_pieces",className:hf},e.createElement("div",{className:gf}),e.createElement("div",{className:gf}),e.createElement("div",{className:gf}),e.createElement("div",{className:gf}))}var bf={name:"dragArea",props:{dragArea:Boolean,passDragArea:Boolean},events:{onClick:"click",onClickGroup:"clickGroup"},render:function(e,t){var i=e.props,n=i.target,o=i.dragArea,s=i.groupable,a=i.passDragArea,r=e.state,l=r.width,d=r.height,c=r.renderPoses,u=a?kp("area","pass"):kp("area");if(s)return[t.createElement("div",{key:"area",ref:vd(e,"areaElement"),className:u}),vf(t)];if(!n||!o)return[];var p=bu([0,0],[l,0],[0,d],[l,d],c[0],c[1],c[2],c[3]),h=p.length?Bp(p,!0):"none";return[t.createElement("div",{key:"area",ref:vd(e,"areaElement"),className:u,style:{top:"0px",left:"0px",width:l+"px",height:d+"px",transformOrigin:"0 0",transform:h}}),vf(t)]},dragStart:function(e,t){var i=t.datas,n=t.clientX,o=t.clientY;if(!t.inputEvent)return!1;i.isDragArea=!1;var s,a,r=e.areaElement,l=e.state,d=l.moveableClientRect,c=l.renderPoses,u=l.rootMatrix,p=l.is3d,h=d.left,g=d.top,f=Hp(c),m=f.left,v=f.top,b=f.width,y=f.height,_=ch(u,[n-h,o-g],p?4:3),x=_[0],w=_[1],S=[{left:m,top:v,width:b,height:(w-=v)-10},{left:m,top:v,width:(x-=m)-10,height:y},{left:m,top:v+w+10,width:b,height:y-w-10},{left:m+x+10,top:v,width:b-x-10,height:y}],C=[].slice.call(r.nextElementSibling.children);S.forEach((function(e,t){C[t].style.cssText="left: "+e.left+"px;top: "+e.top+"px; width: "+e.width+"px; height: "+e.height+"px;"})),a=ff,(s=r).classList?s.classList.add(a):s.className+=" "+a,l.disableNativeEvent=!0},drag:function(e,t){var i=t.datas,n=t.inputEvent;if(this.enableNativeEvent(e),!n)return!1;i.isDragArea||(i.isDragArea=!0,mf(e))},dragEnd:function(e,t){this.enableNativeEvent(e);var i=t.inputEvent,n=t.datas;if(!i)return!1;n.isDragArea||mf(e)},dragGroupStart:function(e,t){return this.dragStart(e,t)},dragGroup:function(e,t){return this.drag(e,t)},dragGroupEnd:function(e,t){return this.dragEnd(e,t)},unset:function(e){mf(e),e.state.disableNativeEvent=!1},enableNativeEvent:function(e){var t=e.state;t.disableNativeEvent&&requestAnimationFrame((function(){t.disableNativeEvent=!1}))}},yf=lp("origin",{render:function(e,t){var i=e.props.zoom,n=e.state,o=n.beforeOrigin,s=n.rotation;return[t.createElement("div",{className:kp("control","origin"),style:Gp(s,i,o),key:"beforeOrigin"})]}});function _f(e){var t=e.scrollContainer;return[t.scrollLeft,t.scrollTop]}var xf={name:"scrollable",canPinch:!0,props:{scrollable:Boolean,scrollContainer:Object,scrollThreshold:Number,getScrollPosition:Function},events:{onScroll:"scroll",onScrollGroup:"scrollGroup"},dragStart:function(e,t){var i=e.props.scrollContainer,n=void 0===i?e.getContainer():i,o=new $u,s=vh(n,!0);t.datas.dragScroll=o;var a=t.isControl?"controlGesto":"targetGesto",r=t.targets;o.on("scroll",(function(i){var n=i.container,o=i.direction,s=th(e,t,{scrollContainer:n,direction:o}),a=r?"onScrollGroup":"onScroll";r&&(s.targets=r),nh(e,a,s)})).on("move",(function(i){var n=i.offsetX,o=i.offsetY;e[a].scrollBy(n,o,t.inputEvent,!1)})),o.dragStart(t,{container:s})},checkScroll:function(e,t){var i=t.datas.dragScroll;if(i){var n=e.props,o=n.scrollContainer,s=void 0===o?e.getContainer():o,a=n.scrollThreshold,r=void 0===a?0:a,l=n.getScrollPosition,d=void 0===l?_f:l;return i.drag(t,{container:s,threshold:r,getScrollPosition:function(e){return d({scrollContainer:e.container,direction:e.direction})}}),!0}},drag:function(e,t){return this.checkScroll(e,t)},dragEnd:function(e,t){t.datas.dragScroll.dragEnd(),t.datas.dragScroll=null},dragControlStart:function(e,t){return this.dragStart(e,ap(ap({},t),{isControl:!0}))},dragControl:function(e,t){return this.drag(e,t)},dragControlEnd:function(e,t){return this.dragEnd(e,t)},dragGroupStart:function(e,t){return this.dragStart(e,ap(ap({},t),{targets:e.props.targets}))},dragGroup:function(e,t){return this.drag(e,ap(ap({},t),{targets:e.props.targets}))},dragGroupEnd:function(e,t){return this.dragEnd(e,ap(ap({},t),{targets:e.props.targets}))},dragGroupControlStart:function(e,t){return this.dragStart(e,ap(ap({},t),{targets:e.props.targets,isControl:!0}))},dragGroupContro:function(e,t){return this.drag(e,ap(ap({},t),{targets:e.props.targets}))},dragGroupControEnd:function(e,t){return this.dragEnd(e,ap(ap({},t),{targets:e.props.targets}))}},wf={name:"",props:{target:Object,dragTarget:Object,container:Object,portalContainer:Object,rootContainer:Object,zoom:Number,transformOrigin:Array,edge:Boolean,ables:Array,className:String,pinchThreshold:Number,pinchOutside:Boolean,triggerAblesSimultaneously:Boolean,checkInput:Boolean,cspNonce:String,translateZ:Number,props:Object},events:{}},Sf=lp("padding",{render:function(e,t){var i=e.props;if(i.dragArea)return[];var n=i.padding||{},o=n.left,s=void 0===o?0:o,a=n.top,r=void 0===a?0:a,l=n.right,d=void 0===l?0:l,c=n.bottom,u=void 0===c?0:c,p=e.state,h=p.renderPoses,g=[p.pos1,p.pos2,p.pos3,p.pos4],f=[];return s>0&&f.push([0,2]),r>0&&f.push([0,1]),d>0&&f.push([1,3]),u>0&&f.push([2,3]),f.map((function(e,i){var n=e[0],o=e[1],s=bu([0,0],[100,0],[0,100],[100,100],g[n],g[o],h[n],h[o]);if(s.length)return t.createElement("div",{key:"padding"+i,className:kp("padding"),style:{transform:Bp(s,!0)}})}))}}),Cf=["nw","ne","se","sw"];function kf(e,t){var i=e[0]+e[1],n=i>t?t/i:1;return e[0]*=n,e[1]=t-e[1]*n,e}var Ef=[1,2,5,6],Af=[0,3,4,7],qf=[1,-1,-1,1],Tf=[1,1,-1,-1];function Lf(e,t,i,n,o,s,a,r,l){void 0===s&&(s=0),void 0===a&&(a=0),void 0===r&&(r=n),void 0===l&&(l=o);var d=[],c=!1,u=e.map((function(e,u){var p=t[u],h=p.horizontal,g=p.vertical;if(g&&!c&&(c=!0,d.push("/")),c){var f=Math.max(0,1===g?e[1]-a:l-e[1]);return d.push(hh(f,o,i)),f}f=Math.max(0,1===h?e[0]-s:r-e[0]);return d.push(hh(f,n,i)),f}));return{styles:d,raws:u}}function Mf(e){for(var t=[0,0],i=[0,0],n=e.length,o=0;o<n;++o){var s=e[o];s.sub&&(s.horizontal&&(0===t[1]&&(t[0]=o),t[1]=o-t[0]+1,i[0]=o+1),s.vertical&&(0===i[1]&&(i[0]=o),i[1]=o-i[0]+1))}return{horizontalRange:t,verticalRange:i}}function Of(e,t,i,n,o,s){var a,r,l,d;void 0===s&&(s=[0,0]);var c=e.indexOf("/"),u=(c>-1?e.slice(0,c):e).length,p=e.slice(0,u),h=e.slice(u+1),g=p[0],f=void 0===g?"0px":g,m=p[1],v=void 0===m?f:m,b=p[2],y=void 0===b?f:b,_=p[3],x=void 0===_?v:_,w=h[0],S=void 0===w?f:w,C=h[1],k=void 0===C?S:C,E=h[2],A=void 0===E?S:E,q=h[3],T=void 0===q?k:q,L=[f,v,y,x].map((function(e){return Yd(e,t)})),M=[S,k,A,T].map((function(e){return Yd(e,i)})),O=L.slice(),R=M.slice();a=kf([O[0],O[1]],t),O[0]=a[0],O[1]=a[1],r=kf([O[3],O[2]],t),O[3]=r[0],O[2]=r[1],l=kf([R[0],R[3]],i),R[0]=l[0],R[3]=l[1],d=kf([R[1],R[2]],i),R[1]=d[0],R[2]=d[1];var N=O.slice(0,Math.max(s[0],p.length)),B=R.slice(0,Math.max(s[1],h.length));return rp(N.map((function(e,t){var s=Cf[t];return{horizontal:qf[t],vertical:0,pos:[n+e,o+(-1===Tf[t]?i:0)],sub:!0,raw:L[t],direction:s}})),B.map((function(e,i){var s=Cf[i];return{horizontal:0,vertical:Tf[i],pos:[n+(-1===qf[i]?t:0),o+e],sub:!0,raw:M[i],direction:s}})))}function Rf(e,t,i,n,o){void 0===o&&(o=t.length);var s=Mf(e.slice(n)),a=s.horizontalRange,r=s.verticalRange,l=i-n,d=0;if(0===l)d=o;else if(l>0&&l<a[1])d=a[1]-l;else{if(!(l>=r[0]))return;d=r[0]+r[1]-l}e.splice(i,d),t.splice(i,d)}function Nf(e,t,i,n,o,s,a,r,l,d,c){void 0===d&&(d=0),void 0===c&&(c=0);var u=Mf(e.slice(i)),p=u.horizontalRange,h=u.verticalRange;if(n>-1)for(var g=1===qf[n]?s-d:r-s,f=p[1];f<=n;++f){var m=1===Tf[f]?c:l,v=0;if(n===f?v=s:0===f?v=d+g:-1===qf[f]&&(v=r-(t[i][0]-d)),e.splice(i+f,0,{horizontal:qf[f],vertical:0,pos:[v,m]}),t.splice(i+f,0,[v,m]),0===f)break}else if(o>-1){var b=1===Tf[o]?a-c:l-a;if(0===p[1]&&0===h[1]){var y=[d+b,c];e.push({horizontal:qf[0],vertical:0,pos:y}),t.push(y)}var _=h[0];for(f=h[1];f<=o;++f){v=1===qf[f]?d:r,m=0;if(o===f?m=a:0===f?m=c+b:1===Tf[f]?m=t[i+_][1]:-1===Tf[f]&&(m=l-(t[i+_][1]-c)),e.push({horizontal:0,vertical:Tf[f],pos:[v,m]}),t.push([v,m]),0===f)break}}}function Bf(e,t){return void 0===t&&(t=e.map((function(e){return e.raw}))),{horizontals:e.map((function(e,i){return e.horizontal?t[i]:null})).filter((function(e){return null!=e})),verticals:e.map((function(e,i){return e.vertical?t[i]:null})).filter((function(e){return null!=e}))}}var If=[[0,-1,"n"],[1,0,"e"]],Df=[[-1,-1,"nw"],[0,-1,"n"],[1,-1,"ne"],[1,0,"e"],[1,1,"se"],[0,1,"s"],[-1,1,"sw"],[-1,0,"w"]];function $f(e,t,i){var n=e.props.clipRelative,o=e.state,s=o.width,a=o.height,r=t,l=r.type,d=r.poses,c="rect"===l,u="circle"===l;if("polygon"===l)return i.map((function(e){return hh(e[0],s,n)+" "+hh(e[1],a,n)}));if(c||"inset"===l){var p=i[1][1],h=i[3][0],g=i[7][0],f=i[5][1];if(c)return[p,h,f,g].map((function(e){return e+"px"}));var m=[p,s-h,a-f,g].map((function(e,t){return hh(e,t%2?s:a,n)}));if(i.length>8){var v=ou(i[4],i[0]),b=v[0],y=v[1];m.push.apply(m,rp(["round"],Lf(i.slice(8),d.slice(8),n,b,y,g,p,h,f).styles))}return m}if(u||"ellipse"===l){var _=i[0],x=hh(Math.abs(i[1][1]-_[1]),u?Math.sqrt((s*s+a*a)/2):a,n);return(m=u?[x]:[hh(Math.abs(i[2][0]-_[0]),s,n),x]).push("at",hh(_[0],s,n),hh(_[1],a,n)),m}}function Pf(e,t,i,n){var o=[n,(n+t)/2,t],s=[e,(e+i)/2,i];return Df.map((function(e){var t=e[0],i=e[1],n=e[2],a=o[t+1],r=s[i+1];return{vertical:Math.abs(i),horizontal:Math.abs(t),direction:n,pos:[a,r]}}))}function Hf(e,t,i,n,o){var s,a,r,l,d,c,u,p=o;if(!p){var h=oh(e),g=h.clipPath;p="none"!==g?g:h.clip}if(p&&"none"!==p&&"auto"!==p||(p=n)){var f=zd(p),m=f.prefix,v=void 0===m?p:m,b=f.value,y=void 0===b?"":b,_="circle"===v,x=" ";if("polygon"===v)return x=",",{type:v,clipText:p,poses:M=(E=Hd(y||"0% 0%, 100% 0%, 100% 100%, 0% 100%")).map((function(e){var n=e.split(" "),o=n[0],s=n[1];return{vertical:1,horizontal:1,pos:[Yd(o,t),Yd(s,i)]}})),splitter:x};if(_||"ellipse"===v){var w="",S="",C=0,k=0,E=Pd(y);if(_){var A;A=void 0===(s=E[0])?"50%":s,w=void 0===(a=E[2])?"50%":a,S=void 0===(r=E[3])?"50%":r,C=Yd(A,Math.sqrt((t*t+i*i)/2)),k=C}else{var q,T;q=void 0===(l=E[0])?"50%":l,T=void 0===(d=E[1])?"50%":d,w=void 0===(c=E[3])?"50%":c,S=void 0===(u=E[4])?"50%":u,C=Yd(q,t),k=Yd(T,i)}var L=[Yd(w,t),Yd(S,i)],M=rp([{vertical:1,horizontal:1,pos:L,direction:"nesw"}],If.slice(0,_?1:2).map((function(e){return{vertical:Math.abs(e[1]),horizontal:e[0],direction:e[2],sub:!0,pos:[L[0]+e[0]*C,L[1]+e[1]*k]}})));return{type:v,clipText:p,radiusX:C,radiusY:k,left:L[0]-C,top:L[1]-k,poses:M,splitter:x}}if("inset"===v){var O=(E=Pd(y||"0 0 0 0")).indexOf("round"),R=(O>-1?E.slice(0,O):E).length,N=E.slice(R+1),B=E.slice(0,R),I=B[0],D=B[1],$=void 0===D?I:D,P=B[2],H=void 0===P?I:P,z=B[3],F=void 0===z?$:z,j=[I,H].map((function(e){return Yd(e,i)})),U=j[0],W=j[1],G=[F,$].map((function(e){return Yd(e,t)})),V=G[0],Y=G[1],X=t-Y,K=i-W,Z=Of(N,X-V,K-U,V,U);return{type:"inset",clipText:p,poses:M=rp(Pf(U,X,K,V),Z),top:U,left:V,right:X,bottom:K,radius:N,splitter:x}}if("rect"===v){x=",";var Q=(E=Hd(y||"0px, "+t+"px, "+i+"px, 0px")).map((function(e){return Fd(e).value}));return{type:"rect",clipText:p,poses:M=Pf(U=Q[0],Y=Q[1],W=Q[2],V=Q[3]),top:U,right:Y,bottom:W,left:V,values:E,splitter:x}}}}var zf={name:"clippable",props:{clippable:Boolean,defaultClipPath:String,customClipPath:String,clipRelative:Boolean,clipArea:Boolean,dragWithClip:Boolean,clipTargetBounds:Boolean,clipVerticalGuidelines:Array,clipHorizontalGuidelines:Array,clipSnapThreshold:Boolean},events:{onClipStart:"clipStart",onClip:"clip",onClipEnd:"clipEnd"},css:[".control.clip-control {\n background: #6d6;\n cursor: pointer;\n}\n.control.clip-control.clip-radius {\n background: #d66;\n}\n.line.clip-line {\n background: #6e6;\n cursor: move;\n z-index: 1;\n}\n.clip-area {\n position: absolute;\n top: 0;\n left: 0;\n}\n.clip-ellipse {\n position: absolute;\n cursor: move;\n border: 1px solid #6d6;\n border: var(--zoompx) solid #6d6;\n border-radius: 50%;\n transform-origin: 0px 0px;\n}",":host {\n --bounds-color: #d66;\n}",".guideline {\n pointer-events: none;\n z-index: 2;\n}",".line.guideline.bounds {\n background: #d66;\n background: var(--bounds-color);\n}"],render:function(e,t){var i=e.props,n=i.customClipPath,o=i.defaultClipPath,s=i.clipArea,a=i.zoom,r=e.state,l=r.target,d=r.width,c=r.height,u=r.allMatrix,p=r.is3d,h=r.left,g=r.top,f=r.pos1,m=r.pos2,v=r.pos3,b=r.pos4,y=r.clipPathState,_=r.snapBoundInfos;if(!l)return[];var x=Hf(l,d,c,o||"inset",y||n);if(!x)return[];var w=p?4:3,S=x.type,C=x.poses.map((function(e){var t=$p(u,e.pos,w);return[t[0]-h,t[1]-g]})),k=[],E=[],A="rect"===S,q="inset"===S,T="polygon"===S;if(A||q||T){var L=q?C.slice(0,8):C;E=L.map((function(e,i){var n=0===i?L[L.length-1]:L[i-1],o=Qd(n,e),s=Up(n,e);return t.createElement("div",{key:"clipLine"+i,className:kp("line","clip-line","snap-control"),"data-clip-index":i,style:{width:s+"px",transform:"translate("+n[0]+"px, "+n[1]+"px) rotate("+o+"rad) scaleY("+a+")"}})}))}if(k=C.map((function(e,i){return t.createElement("div",{key:"clipControl"+i,className:kp("control","clip-control","snap-control"),"data-clip-index":i,style:{transform:"translate("+e[0]+"px, "+e[1]+"px) scale("+a+")"}})})),q&&k.push.apply(k,C.slice(8).map((function(e,i){return t.createElement("div",{key:"clipRadiusControl"+i,className:kp("control","clip-control","clip-radius","snap-control"),"data-clip-index":8+i,style:{transform:"translate("+e[0]+"px, "+e[1]+"px) scale("+a+")"}})}))),"circle"===S||"ellipse"===S){var M=x.left,O=x.top,R=x.radiusX,N=x.radiusY,B=ou($p(u,[M,O],w),$p(u,[0,0],w)),I=B[0],D=B[1],$="none";if(!s){for(var P=Math.max(10,R/5,N/5),H=[],z=0;z<=P;++z){var F=2*Math.PI/P*z;H.push([R+(R-a)*Math.cos(F),N+(N-a)*Math.sin(F)])}H.push([R,-2]),H.push([-2,-2]),H.push([-2,2*N+2]),H.push([2*R+2,2*N+2]),H.push([2*R+2,-2]),H.push([R,-2]),$="polygon("+H.map((function(e){return e[0]+"px "+e[1]+"px"})).join(", ")+")"}k.push(t.createElement("div",{key:"clipEllipse",className:kp("clip-ellipse","snap-control"),style:{width:2*R+"px",height:2*N+"px",clipPath:$,transform:"translate("+(-h+I)+"px, "+(-g+D)+"px) "+Bp(u)}}))}if(s){var j=Hp(rp([f,m,v,b],C)),U=j.width,W=j.height,G=j.left,V=j.top;if(T||A||q){H=q?C.slice(0,8):C;k.push(t.createElement("div",{key:"clipArea",className:kp("clip-area","snap-control"),style:{width:U+"px",height:W+"px",transform:"translate("+G+"px, "+V+"px)",clipPath:"polygon("+H.map((function(e){return e[0]-G+"px "+(e[1]-V)+"px"})).join(", ")+")"}}))}}return _&&["vertical","horizontal"].forEach((function(e){var i=_[e],n="horizontal"===e;i.isSnap&&E.push.apply(E,i.snap.posInfos.map((function(i,o){var s=i.pos,r=ou($p(u,n?[0,s]:[s,0],w),[h,g]),l=ou($p(u,n?[d,s]:[s,c],w),[h,g]);return Qg(t,"",r,l,a,"clip"+e+"snap"+o,"guideline")}))),i.isBound&&E.push.apply(E,i.bounds.map((function(i,o){var s=i.pos,r=ou($p(u,n?[0,s]:[s,0],w),[h,g]),l=ou($p(u,n?[d,s]:[s,c],w),[h,g]);return Qg(t,"",r,l,a,"clip"+e+"bounds"+o,"guideline","bounds","bold")})))})),rp(k,E)},dragControlCondition:function(e,t){return t.inputEvent&&(t.inputEvent.target.getAttribute("class")||"").indexOf("clip")>-1},dragStart:function(e,t){var i=e.props.dragWithClip;return!(void 0===i||i)&&this.dragControlStart(e,t)},drag:function(e,t){return this.dragControl(e,t)},dragEnd:function(e,t){return this.dragControlEnd(e,t)},dragControlStart:function(e,t){var i=e.state,n=e.props,o=n.defaultClipPath,s=n.customClipPath,a=i.target,r=i.width,l=i.height,d=t.inputEvent?t.inputEvent.target:null,c=d?d.getAttribute("class"):"",u=t.datas,p=Hf(a,r,l,o||"inset",s);if(!p)return!1;var h=p.clipText;return!1===nh(e,"onClipStart",th(e,t,{clipType:p.type,clipStyle:h,poses:p.poses.map((function(e){return e.pos}))}))?(u.isClipStart=!1,!1):(u.isControl=c.indexOf("clip-control")>-1,u.isLine=c.indexOf("clip-line")>-1,u.isArea=c.indexOf("clip-area")>-1||c.indexOf("clip-ellipse")>-1,u.index=d?parseInt(d.getAttribute("data-clip-index"),10):-1,u.clipPath=p,u.isClipStart=!0,i.clipPathState=h,Ah(e,t),!0)},dragControl:function(e,t){var i=t.datas,n=t.originalDatas;if(!i.isClipStart)return!1;var o=n&&n.draggable||{},s=i,a=s.isControl,r=s.isLine,l=s.isArea,d=s.index,c=s.clipPath;if(!c)return!1;var u=o.isDrag?o.prevDist:Rh(t),p=u[0],h=u[1],g=e.props,f=e.state,m=f.width,v=f.height,b=!l&&!a&&!r,y=c.type,_=c.poses,x=c.splitter,w=_.map((function(e){return e.pos}));b&&(p=-p,h=-h);var S=!a||"nesw"===_[d].direction,C="inset"===y||"rect"===y,k=_.map((function(){return[0,0]}));if(a&&!S){var E=_[d],A=E.horizontal,q=E.vertical,T=[p*Math.abs(A),h*Math.abs(q)];k=function(e,t,i,n){var o=e[t],s=o.direction,a=o.sub,r=e.map((function(){return[0,0]})),l=s?s.split(""):[];if(n&&t<8){var d=l.filter((function(e){return"w"===e||"e"===e}))[0],c=l.filter((function(e){return"n"===e||"s"===e}))[0];r[t]=i,e.forEach((function(e,t){var n=e.direction;n&&(n.indexOf(d)>-1&&(r[t][0]=i[0]),n.indexOf(c)>-1&&(r[t][1]=i[1]))})),d&&(r[1][0]=i[0]/2,r[5][0]=i[0]/2),c&&(r[3][1]=i[1]/2,r[7][1]=i[1]/2)}else s&&!a?l.forEach((function(t){var n="n"===t||"s"===t;e.forEach((function(e,o){var s=e.direction,a=e.horizontal,l=e.vertical;s&&-1!==s.indexOf(t)&&(r[o]=[n||!a?0:i[0],n&&l?i[1]:0])}))})):r[t]=i;return r}(_,d,T,C)}else S&&(k=w.map((function(){return[p,h]})));var L=w.map((function(e,t){return nu(e,k[t])})),M=rp(L);f.snapBoundInfos=null;var O="circle"===c.type,R="ellipse"===c.type;if(O||R){var N=Hp(L),B=Math.abs(N.bottom-N.top),I=Math.abs(R?N.right-N.left:B),D=L[0][1]+B,$=L[0][0]-I,P=L[0][0]+I;O&&(M.push([P,N.bottom]),k.push([1,0])),M.push([N.left,D]),k.push([0,1]),M.push([$,N.bottom]),k.push([1,0])}var H=Zh((g.clipHorizontalGuidelines||[]).map((function(e){return Yd(""+e,v)})),(g.clipVerticalGuidelines||[]).map((function(e){return Yd(""+e,m)})),m,v),z=[],F=[];if(O||R)z=[M[4][0],M[2][0]],F=[M[1][1],M[3][1]];else if(C){var j=[M[0],M[2],M[4],M[6]],U=[k[0],k[2],k[4],k[6]];z=j.filter((function(e,t){return U[t][0]})).map((function(e){return e[0]})),F=j.filter((function(e,t){return U[t][1]})).map((function(e){return e[1]}))}else z=M.filter((function(e,t){return k[t][0]})).map((function(e){return e[0]})),F=M.filter((function(e,t){return k[t][1]})).map((function(e){return e[1]}));for(var W=function(e){var t=Pg(H,g.clipTargetBounds&&{left:0,top:0,right:m,bottom:v},z,F,{snapThreshold:5}),i=t.horizontal,n=t.vertical,o=i.offset,s=n.offset;if(!R&&!O||0!==k[0][0]||0!==k[0][1])return M.forEach((function(e,t){var i=k[t];i[0]&&(e[0]-=s),i[1]&&(e[1]-=o)})),"break";var a=Hp(L),r=a.bottom-a.top,l=R?a.right-a.left:r;l-=n.isBound?Math.abs(s):0===n.snapIndex?-s:s,r-=i.isBound?Math.abs(o):0===i.snapIndex?-o:o,O&&(l=r=ag(n,i)>0?r:l);var d=M[0];M[1][1]=d[1]-r,M[2][0]=d[0]+l,M[3][1]=d[1]+r,M[4][0]=d[0]-l},G=0;G<2;++G){if("break"===W())break}var V=$f(e,c,L),Y=y+"("+V.join(x)+")";if(f.clipPathState=Y,O||R)z=[M[4][0],M[2][0]],F=[M[1][1],M[3][1]];else if(C){j=[M[0],M[2],M[4],M[6]];z=j.map((function(e){return e[0]})),F=j.map((function(e){return e[1]}))}else z=M.map((function(e){return e[0]})),F=M.map((function(e){return e[1]}));return f.snapBoundInfos=Pg(H,g.clipTargetBounds&&{left:0,top:0,right:m,bottom:v},z,F,{snapThreshold:1}),nh(e,"onClip",th(e,t,{clipEventType:"changed",clipType:y,poses:L,clipStyle:Y,clipStyles:V,distX:p,distY:h})),!0},dragControlEnd:function(e,t){this.unset(e);var i=t.isDrag,n=t.datas,o=t.isDouble,s=n.isLine,a=n.isClipStart,r=n.isControl;return!!a&&(nh(e,"onClipEnd",ih(e,t,{})),o&&(r?function(e,t){var i=t.datas,n=i.clipPath,o=i.index,s=n,a=s.type,r=s.poses,l=s.splitter,d=r.map((function(e){return e.pos})),c=d.length;if("polygon"===a)r.splice(o,1),d.splice(o,1);else{if("inset"!==a)return;if(o<8)return;if(Rf(r,d,o,8,c),c===r.length)return}var u=$f(e,n,d);nh(e,"onClip",th(e,t,{clipEventType:"removed",clipType:a,poses:d,clipStyles:u,clipStyle:a+"("+u.join(l)+")",distX:0,distY:0}))}(e,t):s&&function(e,t){var i=Eh(e,t),n=i[0],o=i[1],s=t.datas,a=s.clipPath,r=s.index,l=a,d=l.type,c=l.poses,u=l.splitter,p=c.map((function(e){return e.pos}));if("polygon"===d)p.splice(r,0,[n,o]);else{if("inset"!==d)return;var h=Ef.indexOf(r),g=Af.indexOf(r),f=c.length;if(Nf(c,p,8,h,g,n,o,p[4][0],p[4][1],p[0][0],p[0][1]),f===c.length)return}var m=$f(e,a,p);nh(e,"onClip",th(e,t,{clipEventType:"added",clipType:d,poses:p,clipStyles:m,clipStyle:d+"("+m.join(u)+")",distX:0,distY:0}))}(e,t)),o||i)},unset:function(e){e.state.clipPathState="",e.state.snapBoundInfos=null}},Ff={name:"originDraggable",props:{originDraggable:Boolean,originRelative:Boolean},events:{onDragOriginStart:"dragOriginStart",onDragOrigin:"dragOrigin",onDragOriginEnd:"dragOriginEnd"},css:[":host[data-able-origindraggable] .control.origin {\n pointer-events: auto;\n}"],dragControlCondition:function(e,t){return t.isRequest?"originDraggable"===t.requestAble:nc(t.inputEvent.target,kp("origin"))},dragControlStart:function(e,t){var i=t.datas;Ah(e,t);var n=th(e,t,{dragStart:Kg.dragStart(e,(new wh).dragStart([0,0],t))}),o=nh(e,"onDragOriginStart",n);return i.startOrigin=e.state.transformOrigin,i.startTargetOrigin=e.state.targetOrigin,i.prevOrigin=[0,0],i.isDragOrigin=!0,!1===o?(i.isDragOrigin=!1,!1):n},dragControl:function(e,t){var i=t.datas,n=t.isPinch,o=t.isRequest;if(!i.isDragOrigin)return!1;var s=Rh(t),a=s[0],r=s[1],l=e.state,d=l.width,c=l.height,u=l.offsetMatrix,p=l.targetMatrix,h=l.is3d,g=e.props.originRelative,f=void 0===g||g,m=h?4:3,v=[a,r];if(o){var b=t.distOrigin;(b[0]||b[1])&&(v=b)}var y=nu(i.startOrigin,v),_=nu(i.startTargetOrigin,v),x=ou(v,i.prevOrigin),w=Dh(u,p,y,m),S=e.getRect(),C=Hp(Pp(w,d,c,m)),k=[S.left-C.left,S.top-C.top];i.prevOrigin=v;var E=th(e,t,{width:d,height:c,origin:y,dist:v,delta:x,transformOrigin:[hh(_[0],d,f),hh(_[1],c,f)].join(" "),drag:Kg.drag(e,xh(t,e.state,k,!!n,!1))});return nh(e,"onDragOrigin",E),E},dragControlEnd:function(e,t){return!!t.datas.isDragOrigin&&(nh(e,"onDragOriginEnd",ih(e,t,{})),!0)},dragGroupControlCondition:function(e,t){return this.dragControlCondition(e,t)},dragGroupControlStart:function(e,t){return!!this.dragControlStart(e,t)},dragGroupControl:function(e,t){var i=this.dragControl(e,t);return!!i&&(e.transformOrigin=i.transformOrigin,!0)},request:function(e){var t={},i=e.getRect(),n=0,o=0,s=i.transformOrigin,a=[0,0];return{isControl:!0,requestStart:function(){return{datas:t}},request:function(e){return"deltaOrigin"in e?(a[0]+=e.deltaOrigin[0],a[1]+=e.deltaOrigin[1]):"origin"in e?(a[0]=e.origin[0]-s[0],a[1]=e.origin[1]-s[1]):("x"in e?n=e.x-i.left:"deltaX"in e&&(n+=e.deltaX),"y"in e?o=e.y-i.top:"deltaY"in e&&(o+=e.deltaY)),{datas:t,distX:n,distY:o,distOrigin:a}},requestEnd:function(){return{datas:t,isDrag:!0}}}}};function jf(e,t,i,n,o){var s;void 0===n&&(n=[0,0]);if(o)s=o;else{var a=oh(e);s=a&&a.borderRadius||""}return Of(!s||!o&&"0px"===s?[]:Pd(s),t,i,0,0,n)}function Uf(e,t,i,n,o,s){var a=e.state,r=a.width,l=a.height,d=Lf(s,o,e.props.roundRelative,r,l),c=d.raws,u=d.styles,p=Bf(o,c),h=p.horizontals,g=p.verticals,f=u.join(" ");a.borderRadiusState=f,nh(e,"onRound",th(e,t,{horizontals:h,verticals:g,borderRadius:f,width:r,height:l,delta:n,dist:i}))}var Wf={name:"roundable",props:{roundable:Boolean,roundRelative:Boolean,minRoundControls:Array,maxRoundControls:Array,roundClickable:Boolean},events:{onRoundStart:"roundStart",onRound:"round",onRoundEnd:"roundEnd"},css:[".control.border-radius {\n background: #d66;\n cursor: pointer;\n}",":host[data-able-roundable] .line.direction {\n cursor: pointer;\n}"],render:function(e,t){var i=e.state,n=i.target,o=i.width,s=i.height,a=i.allMatrix,r=i.is3d,l=i.left,d=i.top,c=i.borderRadiusState,u=e.props,p=u.minRoundControls,h=void 0===p?[0,0]:p,g=u.maxRoundControls,f=void 0===g?[4,4]:g,m=u.zoom;if(!n)return null;var v=r?4:3,b=jf(n,o,s,h,c);if(!b)return null;var y=0,_=0;return b.map((function(e,i){_+=Math.abs(e.horizontal),y+=Math.abs(e.vertical);var n=ou($p(a,e.pos,v),[l,d]),o=e.vertical?y<=f[1]:_<=f[0];return t.createElement("div",{key:"borderRadiusControl"+i,className:kp("control","border-radius"),"data-radius-index":i,style:{display:o?"block":"none",transform:"translate("+n[0]+"px, "+n[1]+"px) scale("+m+")"}})}))},dragControlCondition:function(e,t){if(!t.inputEvent||t.isRequest)return!1;var i=t.inputEvent.target.getAttribute("class")||"";return i.indexOf("border-radius")>-1||i.indexOf("moveable-line")>-1&&i.indexOf("moveable-direction")>-1},dragControlStart:function(e,t){var i=t.inputEvent,n=t.datas,o=i.target,s=o.getAttribute("class")||"",a=s.indexOf("border-radius")>-1,r=s.indexOf("moveable-line")>-1&&s.indexOf("moveable-direction")>-1,l=a?parseInt(o.getAttribute("data-radius-index"),10):-1,d=r?parseInt(o.getAttribute("data-line-index"),10):-1;if(!a&&!r)return!1;if(!1===nh(e,"onRoundStart",th(e,t,{})))return!1;n.lineIndex=d,n.controlIndex=l,n.isControl=a,n.isLine=r,Ah(e,t);var c=e.props,u=c.roundRelative,p=c.minRoundControls,h=void 0===p?[0,0]:p,g=e.state,f=g.target,m=g.width,v=g.height;n.isRound=!0,n.prevDist=[0,0];var b=jf(f,m,v,h)||[];return n.controlPoses=b,g.borderRadiusState=Lf(b.map((function(e){return e.pos})),b,u,m,v).styles.join(" "),!0},dragControl:function(e,t){var i=t.datas;if(!i.isRound||!i.isControl||!i.controlPoses.length)return!1;var n=i.controlIndex,o=i.controlPoses,s=Rh(t),a=s[0],r=s[1],l=[a,r],d=ou(l,i.prevDist),c=e.props.maxRoundControls,u=void 0===c?[4,4]:c,p=e.state,h=p.width,g=p.height,f=o[n],m=f.vertical,v=f.horizontal,b=o.map((function(e){var t=e.horizontal,i=e.vertical,n=[t*v*l[0],i*m*l[1]];if(t){if(1===u[0])return n;if(u[0]<4&&t!==v)return n}else{if(0===u[1])return n[1]=i*v*l[0]/h*g,n;if(m){if(1===u[1])return n;if(u[1]<4&&i!==m)return n}}return[0,0]}));b[n]=l;var y=o.map((function(e,t){return nu(e.pos,b[t])}));return i.prevDist=[a,r],Uf(e,t,l,d,o,y),!0},dragControlEnd:function(e,t){var i=e.state;i.borderRadiusState="";var n=t.datas,o=t.isDouble;if(!n.isRound)return!1;var s=i.width,a=i.height,r=n.isControl,l=n.controlIndex,d=n.isLine,c=n.lineIndex,u=n.controlPoses,p=u.map((function(e){return e.pos})),h=p.length,g=e.props.roundClickable;if(o&&(void 0===g||g)){if(r)Rf(u,p,l,0);else if(d){var f=Eh(e,t);!function(e,t,i,n,o,s,a){var r=Bf(e),l=r.horizontals,d=r.verticals,c=l.length,u=d.length,p=-1,h=-1;0===i?0===c?p=0:1===c&&(p=1):3===i&&(c<=2?p=2:c<=3&&(p=3)),2===i?0===u?h=0:u<4&&(h=3):1===i&&(u<=1?h=1:u<=2&&(h=2)),Nf(e,t,0,p,h,n,o,s,a)}(u,p,c,f[0],f[1],s,a)}h!==u.length&&Uf(e,t,[0,0],[0,0],u,p)}return nh(e,"onRoundEnd",ih(e,t,{})),i.borderRadiusState="",!0},unset:function(e){e.state.borderRadiusState=""}},Gf={isPinch:!0,name:"beforeRenderable",props:{},events:{onBeforeRenderStart:"beforeRenderStart",onBeforeRender:"beforeRender",onBeforeRenderEnd:"beforeRenderEnd",onBeforeRenderGroupStart:"beforeRenderGroupStart",onBeforeRenderGroup:"beforeRenderGroup",onBeforeRenderGroupEnd:"beforeRenderGroupEnd"},setTransform:function(e,t){var i=e.state,n=i.is3d,o=i.target,s=i.targetMatrix,a=null==o?void 0:o.style.transform,r=n?"matrix3d("+s.join(",")+")":"matrix("+su(s,!0)+")";t.datas.startTransforms=a&&"none"!==a?Pd(a):[r]},resetTransform:function(e,t){t.datas.nextTransforms=t.datas.startTransforms,t.datas.nextTransformAppendedIndexes=[]},fillDragStartParams:function(e,t){return th(e,t,{setTransform:function(e){t.datas.startTransforms=Rd(e)?e:Pd(e)},isPinch:!!t.isPinch})},fillDragParams:function(e,t){return th(e,t,{isPinch:!!t.isPinch})},dragStart:function(e,t){this.setTransform(e,t),nh(e,"onBeforeRenderStart",this.fillDragStartParams(e,t))},drag:function(e,t){this.resetTransform(e,t),nh(e,"onBeforeRender",th(e,t,{isPinch:!!t.isPinch}))},dragEnd:function(e,t){nh(e,"onBeforeRenderEnd",th(e,t,{isPinch:!!t.isPinch,isDrag:t.isDrag}))},dragGroupStart:function(e,t){var i=this;this.dragStart(e,t);var n=Sh(e,"beforeRenderable",t),o=e.moveables,s=n.map((function(e,t){var n=o[t];return i.setTransform(n,e),i.fillDragStartParams(n,e)}));nh(e,"onBeforeRenderGroupStart",th(e,t,{isPinch:!!t.isPinch,targets:e.props.targets,setTransform:function(){},events:s}))},dragGroup:function(e,t){var i=this;this.drag(e,t);var n=Sh(e,"beforeRenderable",t),o=e.moveables,s=n.map((function(e,t){var n=o[t];return i.resetTransform(n,e),i.fillDragParams(n,e)}));nh(e,"onBeforeRenderGroup",th(e,t,{isPinch:!!t.isPinch,targets:e.props.targets,events:s}))},dragGroupEnd:function(e,t){this.dragEnd(e,t),nh(e,"onBeforeRenderGroupEnd",th(e,t,{isPinch:!!t.isPinch,isDrag:t.isDrag,targets:e.props.targets}))},dragControlStart:function(e,t){return this.dragStart(e,t)},dragControl:function(e,t){return this.drag(e,t)},dragControlEnd:function(e,t){return this.dragEnd(e,t)},dragGroupControlStart:function(e,t){return this.dragGroupStart(e,t)},dragGroupControl:function(e,t){return this.dragGroup(e,t)},dragGroupControlEnd:function(e,t){return this.dragGroupEnd(e,t)}},Vf={name:"renderable",props:{},events:{onRenderStart:"renderStart",onRender:"render",onRenderEnd:"renderEnd",onRenderGroupStart:"renderGroupStart",onRenderGroup:"renderGroup",onRenderGroupEnd:"renderGroupEnd"},dragStart:function(e,t){nh(e,"onRenderStart",th(e,t,{isPinch:!!t.isPinch}))},drag:function(e,t){nh(e,"onRender",th(e,t,{isPinch:!!t.isPinch}))},dragEnd:function(e,t){nh(e,"onRenderEnd",th(e,t,{isPinch:!!t.isPinch,isDrag:t.isDrag}))},dragGroupStart:function(e,t){nh(e,"onRenderGroupStart",th(e,t,{isPinch:!!t.isPinch,targets:e.props.targets}))},dragGroup:function(e,t){nh(e,"onRenderGroup",th(e,t,{isPinch:!!t.isPinch,targets:e.props.targets}))},dragGroupEnd:function(e,t){nh(e,"onRenderGroupEnd",th(e,t,{isPinch:!!t.isPinch,isDrag:t.isDrag,targets:e.props.targets}))},dragControlStart:function(e,t){return this.dragStart(e,t)},dragControl:function(e,t){return this.drag(e,t)},dragControlEnd:function(e,t){return this.dragEnd(e,t)},dragGroupControlStart:function(e,t){return this.dragGroupStart(e,t)},dragGroupControl:function(e,t){return this.dragGroup(e,t)},dragGroupControlEnd:function(e,t){return this.dragGroupEnd(e,t)}};function Yf(e,t,i,n,o,s,a){var r="Start"===o,l=e.state.target,d=s.isRequest;if(!l||r&&n.indexOf("Control")>-1&&!d&&e.areaElement===s.inputEvent.target)return!1;var c=""+i+n+o,u=""+i+n+"Condition",p="End"===o,h=o.indexOf("After")>-1,g=r&&(!e.targetGesto||!e.controlGesto||!e.targetGesto.isFlag()||!e.controlGesto.isFlag());g&&e.updateRect(o,!0,!1),""!==o||h||d||uh(e.state,s);var f=rp([Gf],e[t].slice(),[Vf]);if(d){var m=s.requestAble;f.some((function(e){return e.name===m}))||f.push.apply(f,e.props.ables.filter((function(e){return e.name===m})))}if(!f.length)return!1;var v=f.filter((function(e){return e[c]})),b=s.datas;g&&v.forEach((function(t){t.unset&&t.unset(e)}));var y,_=s.inputEvent;p&&_&&(y=document.elementFromPoint(s.clientX,s.clientY)||_.target);var x=v.filter((function(t){var i=t.name,n=b[i]||(b[i]={});return r&&(n.isEventStart=!t[u]||t[u](e,s)),!!n.isEventStart&&t[c](e,ap(ap({},s),{datas:n,originalDatas:b,inputTarget:y}))})).length,w=r&&v.length&&!x;return(p||w)&&(e.state.gesto=null,e.moveables&&e.moveables.forEach((function(e){e.state.gesto=null}))),g&&w&&v.forEach((function(t){t.unset&&t.unset(e)})),!e.isUnmounted&&!w&&((!r&&x&&!a||p)&&(e.updateRect(o,!0,!1),e.forceUpdate()),r||p||h||!x||a||Yf(e,t,i,n,o+"After",s),!0)}function Xf(e,t,i){var n=e.controlBox.getElement(),o=[];o.push(n),e.props.dragArea&&!e.props.dragTarget||o.push(t);var s=function(t){var i=t.inputEvent.target;return i===e.areaElement||!e.isMoveableElement(i)||nc(i,"moveable-area")||nc(i,"moveable-padding")};return Kf(e,o,"targetAbles",i,{dragStart:s,pinchStart:s})}function Kf(e,t,i,n,o){void 0===o&&(o={});var s=e.props,a=s.pinchOutside,r=s.pinchThreshold,l={container:window,pinchThreshold:r,pinchOutside:a},d=new Xu(t,l);return["drag","pinch"].forEach((function(t){["Start","","End"].forEach((function(s){d.on(""+t+s,(function(a){var r=a.eventType;!o[r]||o[r](a)?Yf(e,i,t,n,s,a)||a.stop():a.stop()}))}))})),d}var Zf=function(){function e(e,t,i){var n=this;this.target=e,this.moveable=t,this.eventName=i,this.ables=[],this.onEvent=function(e){var t=n.eventName,i=n.moveable;i.state.disableNativeEvent||n.ables.forEach((function(n){n[t](i,{inputEvent:e})}))},this.target.addEventListener(this.eventName.toLowerCase(),this.onEvent)}var t=e.prototype;return t.setAbles=function(e){this.ables=e},t.destroy=function(){this.target.removeEventListener(this.eventName.toLowerCase(),this.onEvent),this.target=null,this.moveable=null},e}(),Qf=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state=ap({container:null,target:null,gesto:null,renderPoses:[[0,0],[0,0],[0,0],[0,0]],disableNativeEvent:!1},Xp(null)),t.enabledAbles=[],t.targetAbles=[],t.controlAbles=[],t.rotation=0,t.scale=[1,1],t.isUnmounted=!1,t.events={mouseEnter:null,mouseLeave:null},t.onPreventClick=function(e){e.stopPropagation(),sc(window,"click",t.onPreventClick,!0)},t}sp(t,e);var i=t.prototype;return i.render=function(){var e=this.props,t=this.state,i=e.edge,n=e.parentPosition,o=e.className,s=e.target,a=e.zoom,r=e.cspNonce,l=e.translateZ,d=e.cssStyled,c=e.portalContainer;this.checkUpdate(),this.updateRenderPoses();var u=n||{left:0,top:0},p=u.left,h=u.top,g=t.left,f=t.top,m=t.target,v=t.direction,b=t.renderPoses,y=e.targets,_=(y&&y.length||s)&&m,x=this.isDragging(),w={},S={createElement:bc};return this.getEnabledAbles().forEach((function(e){w["data-able-"+e.name.toLowerCase()]=!0})),bc(d,ap({cspNonce:r,ref:vd(this,"controlBox"),className:kp("control-box",-1===v?"reverse":"",x?"dragging":"")+" "+o},w,{onClick:this.onPreventClick,portalContainer:c,style:{position:"absolute",display:_?"block":"none",transform:"translate3d("+(g-p)+"px, "+(f-h)+"px, "+l+")","--zoom":a,"--zoompx":a+"px"}}),this.renderAbles(),Qg(S,i?"n":"",b[0],b[1],a,0),Qg(S,i?"e":"",b[1],b[3],a,1),Qg(S,i?"w":"",b[0],b[2],a,2),Qg(S,i?"s":"",b[2],b[3],a,3))},i.componentDidMount=function(){this.controlBox.getElement();var e=this.props,t=e.parentMoveable,i=e.container,n=e.wrapperMoveable;this.updateEvent(e),this.updateNativeEvents(e),i||t||n||this.updateRect("",!1,!0),this.updateCheckInput()},i.componentDidUpdate=function(e){this.updateNativeEvents(e),this.updateEvent(e),this.updateCheckInput()},i.componentWillUnmount=function(){this.isUnmounted=!0,eh(this,"targetGesto"),eh(this,"controlGesto");var e=this.events;for(var t in e){var i=e[t];i&&i.destroy()}},i.getContainer=function(){var e=this.props,t=e.parentMoveable,i=e.wrapperMoveable;return e.container||i&&i.getContainer()||t&&t.getContainer()||this.controlBox.getElement().parentElement},i.isMoveableElement=function(e){return e&&(e.getAttribute("class")||"").indexOf(hp)>-1},i.dragStart=function(e){return this.targetGesto&&this.targetGesto.triggerDragStart(e),this},i.hitTest=function(e){var t,i=this.state,n=i.target,o=i.pos1,s=i.pos2,a=i.pos3,r=i.pos4,l=i.targetClientRect;if(!n)return 0;if(e instanceof Element){var d=e.getBoundingClientRect();t={left:d.left,top:d.top,width:d.width,height:d.height}}else t=ap({width:0,height:0},e);var c=t.left,u=t.top,p=t.width,h=t.height,g=wu([o,s,r,a],l),f=Tu(g,[[c,u],[c+p,u],[c+p,u+h],[c,u+h]]),m=xu(g);return f&&m?Math.min(100,f/m*100):0},i.isInside=function(e,t){var i=this.state,n=i.target,o=i.pos1,s=i.pos2,a=i.pos3,r=i.pos4,l=i.targetClientRect;return!!n&&Cu([e,t],wu([o,s,r,a],l))},i.updateRect=function(e,t,i){void 0===i&&(i=!0);var n=this.props,o=n.parentMoveable,s=this.state.target||this.props.target,a=this.getContainer(),r=o?o.props.rootContainer:n.rootContainer;this.updateState(Xp(this.controlBox&&this.controlBox.getElement(),s,a,a,r||a),!o&&i)},i.isTargetChanged=function(e,t){var i=this.props,n=i.dragTarget||i.target,o=e.dragTarget||e.target,s=i.dragArea,a=e.dragArea;return!s&&o!==n||(t||s)&&a!==s},i.updateNativeEvents=function(e){var t=this,i=this.props.dragArea?this.areaElement:this.state.target,n=this.events,o=Vd(n);if(this.isTargetChanged(e))for(var s in n){var a=n[s];a&&a.destroy(),n[s]=null}if(i){var r=this.enabledAbles;o.forEach((function(e){var o=sh(r,[e]),s=o.length>0,a=n[e];s?(a||(a=new Zf(i,t,e),n[e]=a),a.setAbles(o)):a&&(a.destroy(),n[e]=null)}))}},i.updateEvent=function(e){var t=this.controlBox.getElement(),i=this.targetAbles.length,n=this.controlAbles.length,o=this.props,s=o.dragTarget||o.target,a=this.isTargetChanged(e,!0),r=!i&&this.targetGesto||a;r&&(eh(this,"targetGesto"),this.updateState({gesto:null})),n||eh(this,"controlGesto"),s&&i&&!this.targetGesto&&(this.targetGesto=Xf(this,s,"")),!this.controlGesto&&n&&(this.controlGesto=Kf(this,t,"controlAbles","Control")),r&&this.unsetAbles()},i.isDragging=function(){return!!this.targetGesto&&this.targetGesto.isFlag()||!!this.controlGesto&&this.controlGesto.isFlag()},i.updateTarget=function(e){this.updateRect(e,!0)},i.getRect=function(){var e=this.state,t=Jp(this.state),i=t[0],n=t[1],o=t[2],s=t[3],a=Hp(t),r=e.width,l=e.height,d=a.width,c=a.height,u=a.left,p=a.top,h=[e.left,e.top],g=nu(h,e.origin);return{width:d,height:c,left:u,top:p,pos1:i,pos2:n,pos3:o,pos4:s,offsetWidth:r,offsetHeight:l,beforeOrigin:nu(h,e.beforeOrigin),origin:g,transformOrigin:e.transformOrigin,rotation:this.getRotation()}},i.getManager=function(){return this},i.getRotation=function(){var e=this.state;return function(e,t,i){var n=Qd(e,t)/Math.PI*180;return(n=i>=0?n:180-n)>=0?n:360+n}(e.pos1,e.pos2,e.direction)},i.request=function(e,t,i){void 0===t&&(t={});var n=this.props,o=n.ables,s=n.groupable,a=o.filter((function(t){return t.name===e}))[0];if(this.isDragging()||!a||!a.request)return{request:function(){return this},requestEnd:function(){return this}};var r=this,l=a.request(this),d=i||t.isInstant,c=l.isControl?"controlAbles":"targetAbles",u=(s?"Group":"")+(l.isControl?"Control":""),p={request:function(t){return Yf(r,c,"drag",u,"",ap(ap({},l.request(t)),{requestAble:e,isRequest:!0}),d),this},requestEnd:function(){return Yf(r,c,"drag",u,"End",ap(ap({},l.requestEnd()),{requestAble:e,isRequest:!0}),d),this}};return Yf(r,c,"drag",u,"Start",ap(ap({},l.requestStart(t)),{requestAble:e,isRequest:!0}),d),d?p.request(t).requestEnd():p},i.destroy=function(){this.componentWillUnmount()},i.updateRenderPoses=function(){var e=this.state,t=this.props,i=e.originalBeforeOrigin,n=e.transformOrigin,o=e.allMatrix,s=e.is3d,a=e.pos1,r=e.pos2,l=e.pos3,d=e.pos4,c=e.left,u=e.top,p=t.padding||{},h=p.left,g=void 0===h?0:h,f=p.top,m=void 0===f?0:f,v=p.bottom,b=void 0===v?0:v,y=p.right,_=void 0===y?0:y,x=s?4:3,w=t.groupable?i:nu(i,[c,u]);e.renderPoses=[nu(a,ph(o,[-g,-m],n,w,x)),nu(r,ph(o,[_,-m],n,w,x)),nu(l,ph(o,[-g,b],n,w,x)),nu(d,ph(o,[_,b],n,w,x))]},i.checkUpdate=function(){var e=this.props,t=e.target,i=e.container,n=e.parentMoveable,o=this.state,s=o.target,a=o.container;(s||t)&&(this.updateAbles(),(!ah(s,t)||!ah(a,i))&&(this.updateState({target:t,container:i}),n||!i&&!this.controlBox||this.updateRect("End",!1,!1)))},i.triggerEvent=function(e,t){var i=this.props[e];return i&&i(t)},i.useCSS=function(e,t){var i=this.props.customStyledMap,n=e+t;return i[n]||(i[n]=np(e,t)),i[n]},i.unsetAbles=function(){var e=this;this.targetAbles.filter((function(t){return!!t.unset&&(t.unset(e),!0)})).length&&this.forceUpdate()},i.updateAbles=function(e,t){void 0===e&&(e=this.props.ables),void 0===t&&(t="");var i=this.props,n=i.triggerAblesSimultaneously,o=e.filter((function(e){return e&&(e.always||i[e.name])})),s="drag"+t+"ControlStart",a=sh(o,["drag"+t+"Start","pinch"+t+"Start"],n),r=sh(o,[s],n);this.enabledAbles=o,this.targetAbles=a,this.controlAbles=r},i.updateState=function(e,t){if(t)this.setState(e);else{var i=this.state;for(var n in e)i[n]=e[n]}},i.getEnabledAbles=function(){var e=this.props;return e.ables.filter((function(t){return t&&e[t.name]}))},i.renderAbles=function(){var e,t,i,n,o=this,s=this.props.triggerAblesSimultaneously,a={createElement:bc};return(e=lh(sh(this.getEnabledAbles(),["render"],s).map((function(e){return(0,e.render)(o,a)||[]}))).filter((function(e){return e})),t=function(e){return e.key},i=[],n={},e.forEach((function(o,s){var a=t(o,s,e),r=n[a];r||(r=[],n[a]=r,i.push(r)),r.push(o)})),i).map((function(e){return e[0]}))},i.updateCheckInput=function(){this.targetGesto&&(this.targetGesto.options.checkInput=this.props.checkInput)},t.defaultProps={target:null,dragTarget:null,container:null,rootContainer:null,origin:!0,edge:!1,parentMoveable:null,wrapperMoveable:null,parentPosition:null,portalContainer:null,ables:[],pinchThreshold:20,dragArea:!1,passDragArea:!1,transformOrigin:"",className:"",zoom:1,triggerAblesSimultaneously:!1,padding:{},pinchOutside:!0,checkInput:!1,groupable:!1,cspNonce:"",translateZ:0,cssStyled:null,customStyledMap:{},props:{}},t}(Tc),Jf={name:"groupable",props:{defaultGroupRotate:Number,defaultGroupOrigin:String,groupable:Boolean},events:{},render:function(e,t){var i=e.props.targets||[];e.moveables=[];var n=e.state,o={left:n.left,top:n.top};return i.map((function(i,n){return t.createElement(Qf,{key:"moveable"+n,ref:bd(e,"moveables",n),target:i,origin:!1,cssStyled:e.props.cssStyled,customStyledMap:e.props.customStyledMap,parentMoveable:e,parentPosition:o})}))}},em=lp("clickable",{props:{},events:{onClick:"click",onClickGroup:"clickGroup"},always:!0,dragStart:function(e,t){t.isRequest||oc(window,"click",e.onPreventClick,!0)},dragControlStart:function(e,t){this.dragStart(e,t)},dragGroupStart:function(e,t){this.dragStart(e,t),t.datas.inputTarget=t.inputEvent&&t.inputEvent.target},dragEnd:function(e,t){this.endEvent(e);var i=e.state.target,n=t.inputEvent,o=t.inputTarget;if(n&&o&&!t.isDrag&&!e.isMoveableElement(o)){var s=i.contains(o);nh(e,"onClick",th(e,t,{isDouble:t.isDouble,inputTarget:o,isTarget:i===o,containsTarget:s}))}},dragGroupEnd:function(e,t){this.endEvent(e);var i=t.inputEvent,n=t.inputTarget;if(i&&n&&!t.isDrag&&!e.isMoveableElement(n)&&t.datas.inputTarget!==n){var o=e.props.targets,s=o.indexOf(n),a=s>-1,r=!1;-1===s&&(r=(s=Wd(o,(function(e){return e.contains(n)})))>-1),nh(e,"onClickGroup",th(e,t,{isDouble:t.isDouble,targets:o,inputTarget:n,targetIndex:s,isTarget:a,containsTarget:r}))}},dragControlEnd:function(e){this.endEvent(e)},dragGroupControlEnd:function(e){this.endEvent(e)},endEvent:function(e){var t=this;requestAnimationFrame((function(){t.unset(e)}))},unset:function(e){sc(window,"click",e.onPreventClick,!0)}});function tm(e){var t=e.originalDatas.draggable;return t||(e.originalDatas.draggable={},t=e.originalDatas.draggable),ap(ap({},e),{datas:t})}var im=lp("edgeDraggable",{dragControlCondition:function(e,t){if(!e.props.edgeDraggable||!t.inputEvent)return!1;var i=t.inputEvent.target;return nc(i,kp("direction"))&&nc(i,kp("line"))},dragControlStart:function(e,t){return Kg.dragStart(e,tm(t))},dragControl:function(e,t){return Kg.drag(e,tm(t))},dragControlEnd:function(e,t){return Kg.dragEnd(e,tm(t))},dragGroupControlCondition:function(e,t){if(!e.props.edgeDraggable||!t.inputEvent)return!1;var i=t.inputEvent.target;return nc(i,kp("direction"))&&nc(i,kp("line"))},dragGroupControlStart:function(e,t){return Kg.dragGroupStart(e,tm(t))},dragGroupControl:function(e,t){return Kg.dragGroup(e,tm(t))},dragGroupControlEnd:function(e,t){return Kg.dragGroupEnd(e,tm(t))},unset:function(e){e.state.dragInfo=null}}),nm={name:"individualGroupable",props:{individualGroupable:Boolean},events:{}},om=[Gf,wf,Xg,_h,Kg,im,rf,lf,df,pf,xf,Sf,yf,Ff,zf,Wf,Jf,nm,em,bf,Vf],sm=om.reduce((function(e,t){return ap(ap({},e),"events"in t?t.events:{})}),{}),am=om.reduce((function(e,t){return ap(ap({},e),t.props)}),{}),rm=mh(sm),lm=Object.keys(rm),dm=Object.keys(am);function cm(e,t){return Math.max.apply(Math,e.map((function(e){var i=e[0],n=e[1],o=e[2],s=e[3];return Math.max(i[t],n[t],o[t],s[t])})))}function um(e,t){return Math.min.apply(Math,e.map((function(e){var i=e[0],n=e[1],o=e[2],s=e[3];return Math.min(i[t],n[t],o[t],s[t])})))}var pm=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.differ=new Ru,t.moveables=[],t.transformOrigin="50% 50%",t}sp(t,e);var i=t.prototype;return i.updateEvent=function(e){var t=this.state,i=this.props,n=e.dragTarget||t.target,o=i.dragTarget||this.areaElement;n!==o&&(eh(this,"targetGesto"),eh(this,"controlGesto"),t.target=null),t.target||(t.target=this.areaElement,this.controlBox.getElement().style.display="block",this.targetGesto=Xf(this,o,"Group"),this.controlGesto=Kf(this,this.controlBox.getElement(),"controlAbles","GroupControl"));var s=!ah(e.container,i.container);s&&(t.container=i.container);var a=this.differ.update(i.targets),r=a.added,l=a.changed,d=a.removed;(s||r.length||l.length||d.length)&&this.updateRect()},i.checkUpdate=function(){this.updateAbles()},i.updateRect=function(e,t,i){if(void 0===i&&(i=!0),this.controlBox){this.moveables.forEach((function(t){t.updateRect(e,!1,!1)}));var n=this.state,o=this.props,s=n.target||o.target;(!t||""!==e&&o.updateGroup)&&(this.rotation=o.defaultGroupRotate,this.transformOrigin=o.defaultGroupOrigin||"50% 50%",this.scale=[1,1]);var a=this.rotation,r=this.scale,l=function(e,t){if(!e.length)return[0,0,0,0];var i=e.map((function(e){return Jp(e.state)})),n=yp,o=yp,s=0,a=0,r=tc(t,vp);if(r%90){var l=r/180*Math.PI,d=Math.tan(l),c=-1/d,u=[_p,yp],p=[_p,yp];i.forEach((function(e){e.forEach((function(e){var t=e[1]-d*e[0],i=e[1]-c*e[0];u[0]=Math.max(u[0],t),u[1]=Math.min(u[1],t),p[0]=Math.max(p[0],i),p[1]=Math.min(p[1],i)}))})),u.forEach((function(e){p.forEach((function(t){var i=(t-e)/(d-c),s=d*i+e;n=Math.min(n,i),o=Math.min(o,s)}))}));var h=i.map((function(e){var t=e[0],i=e[1],n=e[2],o=e[3];return[uu(t,-l),uu(i,-l),uu(n,-l),uu(o,-l)]}));s=cm(h,0)-um(h,0),a=cm(h,1)-um(h,1)}else if(n=um(i,0),o=um(i,1),s=cm(i,0)-n,a=cm(i,1)-o,r%180){var g=s;s=a,a=g}return[n,o,s,a]}(this.moveables,a),d=l[0],c=l[1],u=l[2],p=l[3],h="rotate("+a+"deg) scale("+(r[0]>=0?1:-1)+", "+(r[1]>=0?1:-1)+")";s.style.cssText+="left:0px;top:0px; transform-origin: "+this.transformOrigin+"; width:"+u+"px; height:"+p+"px;transform:"+h,n.width=u,n.height=p;var g=this.getContainer(),f=Xp(this.controlBox.getElement(),s,this.controlBox.getElement(),this.getContainer(),this.props.rootContainer||g),m=[f.left,f.top],v=Jp(f),b=v[0],y=v[1],_=v[2],x=v[3],w=Su([b,y,_,x]),S=[w.minX,w.minY];f.pos1=ou(b,S),f.pos2=ou(y,S),f.pos3=ou(_,S),f.pos4=ou(x,S),f.left=d-f.left+S[0],f.top=c-f.top+S[1],f.origin=ou(nu(m,f.origin),S),f.beforeOrigin=ou(nu(m,f.beforeOrigin),S),f.originalBeforeOrigin=nu(m,f.originalBeforeOrigin);var C=f.targetClientRect,k=r[0]*r[1]>0?1:-1;C.top+=f.top-n.top,C.left+=f.left-n.left,s.style.transform="translate("+-S[0]+"px, "+-S[1]+"px) "+h,this.updateState(ap(ap({},f),{direction:k,beforeDirection:k}),i)}},i.getRect=function(){return ap(ap({},e.prototype.getRect.call(this)),{children:this.moveables.map((function(e){return e.getRect()}))})},i.triggerEvent=function(t,i,n){if(n||t.indexOf("Group")>-1)return e.prototype.triggerEvent.call(this,t,i)},i.updateAbles=function(){e.prototype.updateAbles.call(this,rp(this.props.ables,[Jf]),"Group")},t.defaultProps=ap(ap({},Qf.defaultProps),{transformOrigin:["50%","50%"],groupable:!0,dragArea:!0,keepRatio:!0,targets:[],defaultGroupRotate:0,defaultGroupOrigin:"50% 50%"}),t}(Qf),hm=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.moveables=[],t}sp(t,e);var i=t.prototype;return i.render=function(){var e=this,t=this.props,i=t.cspNonce,n=t.cssStyled,o=t.targets;return bc(n,{cspNonce:i,ref:vd(this,"controlBox"),className:kp("control-box")},o.map((function(t,i){return bc(Qf,ap({key:"moveable"+i,ref:bd(e,"moveables",i)},e.props,{target:t,wrapperMoveable:e}))})))},i.componentDidUpdate=function(){},i.updateRect=function(e,t,i){void 0===i&&(i=!0),this.moveables.forEach((function(n){n.updateRect(e,t,i)}))},i.getRect=function(){return ap(ap({},e.prototype.getRect.call(this)),{children:this.moveables.map((function(e){return e.getRect()}))})},i.request=function(){return{request:function(){return this},requestEnd:function(){return this}}},i.dragStart=function(){return this},i.hitTest=function(){return 0},i.isInside=function(){return!1},i.isDragging=function(){return!1},i.updateRenderPoses=function(){},i.updateEvent=function(){},i.checkUpdate=function(){},i.triggerEvent=function(){},i.updateAbles=function(){},t}(Qf),gm=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return sp(t,e),t.defaultAbles=om,t}(function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.refTargets=[],t.selectorMap={},t}sp(t,e);var i=t.prototype;return t.makeStyled=function(){var e={};this.getTotalAbles().forEach((function(t){var i=t.css;i&&i.forEach((function(t){e[t]=!0}))}));var t=Vd(e).join("\n");this.defaultStyled=np("div",function(e,t){return t.replace(/([^}{]*){/gm,(function(t,i){return i.replace(/\.([^{,\s\d.]+)/g,"."+e+"$1")+"{"}))}(hp,gp+t))},t.getTotalAbles=function(){return rp([wf,Jf,nm,bf],this.defaultAbles)},i.render=function(){var e=this.constructor;e.defaultStyled||e.makeStyled();var t=this.props,i=t.ables,n=t.props,o=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(i[n[o]]=e[n[o]])}return i}(t,["ables","props"]),s=bh(o.target||o.targets),a=function(e,t){var i=[];return e.forEach((function(e){e&&(Nd(e)?t[e]&&i.push.apply(i,t[e]):i.push(e))})),i}(s,this.selectorMap);this.refTargets=s;var r=a.length>1,l=rp(e.getTotalAbles(),i||[]),d=ap(ap(ap({},o),n||{}),{ables:l,cssStyled:e.defaultStyled,customStyledMap:e.customStyledMap});return r?o.individualGroupable?bc(hm,ap({key:"individual-group",ref:vd(this,"moveable")},d,{target:null,targets:a})):bc(pm,ap({key:"group",ref:vd(this,"moveable")},d,{target:null,targets:a})):bc(Qf,ap({key:"single",ref:vd(this,"moveable")},d,{target:a[0]}))},i.componentDidMount=function(){this.updateRefs()},i.componentDidUpdate=function(){this.updateRefs()},i.updateRefs=function(e){var t=bh(this.props.target||this.props.targets),i=this.refTargets.some((function(e,i){var n=t[i];return!(!e&&!n)&&e!==n})),n=e?{}:this.selectorMap,o={};this.refTargets.forEach((function(e){Nd(e)&&(n[e]?o[e]=n[e]:(i=!0,o[e]=[].slice.call(document.querySelectorAll(e))))})),this.selectorMap=o,i&&this.forceUpdate()},i.getManager=function(){return this.moveable},t.defaultAbles=[],t.customStyledMap={},t.defaultStyled=null,function(e,t,i,n){var o,s=arguments.length,a=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,n);else for(var r=e.length-1;r>=0;r--)(o=e[r])&&(a=(s<3?o(a):s>3?o(t,i,a):o(t,i))||a);s>3&&a&&Object.defineProperty(t,i,a)}([_d(Cp)],t.prototype,"moveable",void 0),t}(Tc)),fm=function(e,t){return(fm=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function mm(e,t){function i(){this.constructor=e}fm(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var vm=function(){return(vm=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var o in t=arguments[i])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};var bm=function(e){function t(t){var i=e.call(this,t)||this;return i.state={},i.state=i.props,i}return mm(t,e),t.prototype.render=function(){return e=bc(gm,vm({ref:vd(this,"moveable")},this.state)),t=this.state.parentElement,bc(Lc,{element:e,container:t});var e,t},t}(qc),ym=dm,_m=Cp,xm=lm,wm=function(){return(wm=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var o in t=arguments[i])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};var Sm=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return mm(t,e),t}(function(e){function t(t,i){void 0===i&&(i={});var n=e.call(this)||this;n.tempElement=document.createElement("div");var o=vm({container:t||document.body},i),s={};xm.forEach((function(e){var t;s[(t="on "+e,t.replace(/[\s-_]([a-z])/g,(function(e,t){return t.toUpperCase()})))]=function(t){return n.trigger(e,t)}})),Nc(bc(bm,vm({ref:vd(n,"innerMoveable"),parentElement:t},o,s)),n.tempElement);var a=o.target;return Rd(a)&&a.length>1&&n.updateRect(),n}mm(t,e);var i=t.prototype;return i.setState=function(e,t){this.innerMoveable.setState(e,t)},i.destroy=function(){Nc(null,this.tempElement),this.off(),this.tempElement=null,this.innerMoveable=null},i.getMoveable=function(){return this.innerMoveable.moveable},t=function(e,t,i,n){var o,s=arguments.length,a=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,n);else for(var r=e.length-1;r>=0;r--)(o=e[r])&&(a=(s<3?o(a):s>3?o(t,i,a):o(t,i))||a);return s>3&&a&&Object.defineProperty(t,i,a),a}([yd(_m,(function(e,t){e[t]||(e[t]=function(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];var n=this.getMoveable();if(n&&n[t])return n[t].apply(n,e)})})),yd(ym,(function(e,t){Object.defineProperty(e,t,{get:function(){return this.getMoveable().props[t]},set:function(e){var i;this.setState(((i={})[t]=e,i))},enumerable:!0,configurable:!0})}))],t)}(function(){function e(){this._events={}}var t=e.prototype;return t.on=function(e,t){if(Od(e))for(var i in e)this.on(i,e[i]);else this._addEvent(e,t,{});return this},t.off=function(e,t){if(e)if(Od(e))for(var i in e)this.off(i);else if(t){var n=this._events[e];if(n){var o=Wd(n,(function(e){return e.listener===t}));o>-1&&n.splice(o,1)}}else this._events[e]=[];else this._events={};return this},t.once=function(e,t){var i=this;return t&&this._addEvent(e,t,{once:!0}),new Promise((function(t){i._addEvent(e,t,{once:!0})}))},t.emit=function(e,t){var i=this;void 0===t&&(t={});var n=this._events[e];if(!e||!n)return!0;var o=!1;return t.eventType=e,t.stop=function(){o=!0},t.currentTarget=this,function(){for(var e=0,t=0,i=arguments.length;t<i;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<i;t++)for(var s=arguments[t],a=0,r=s.length;a<r;a++,o++)n[o]=s[a];return n}(n).forEach((function(n){n.listener(t),n.once&&i.off(e,n.listener)})),!o},t.trigger=function(e,t){return void 0===t&&(t={}),this.emit(e,t)},t._addEvent=function(e,t,i){var n=this._events;n[e]=n[e]||[],n[e].push(wm({listener:t},i))},e}())),Cm={exports:{}};!function(e){!function(t){var i=t.URL||t.webkitURL;function n(e){return!!i&&i.createObjectURL(e)}function o(e){return!!i&&i.revokeObjectURL(e)}function s(e,t){!e||"blob:"!==e.slice(0,5)||t&&t.noRevoke||o(e)}function a(e,i,n,o){if(!t.FileReader)return!1;var s=new FileReader;s.onload=function(){i.call(s,this.result)},n&&(s.onabort=s.onerror=function(){n.call(s,this.error)});var a=s[o||"readAsDataURL"];return a?(a.call(s,e),s):void 0}function r(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"}function l(e,i,o){function d(i,d){var c,u=document.createElement("img");function p(e,t){i!==d?e instanceof Error?d(e):((t=t||{}).image=e,i(t)):i&&i(e,t)}function h(i,s){s&&t.console&&console.log(s),i&&r("Blob",i)?c=n(e=i):(c=e,o&&o.crossOrigin&&(u.crossOrigin=o.crossOrigin)),u.src=c}return u.onerror=function(e){s(c,o),d&&d.call(u,e)},u.onload=function(){s(c,o);var t={originalWidth:u.naturalWidth||u.width,originalHeight:u.naturalHeight||u.height};try{l.transform(u,o,p,e,t)}catch(e){d&&d(e)}},"string"==typeof e?(l.requiresMetaData(o)?l.fetchBlob(e,h,o):h(),u):r("Blob",e)||r("File",e)?(c=n(e))?(u.src=c,u):a(e,(function(e){u.src=e}),d):void 0}return t.Promise&&"function"!=typeof i?(o=i,new Promise(d)):d(i,i)}l.requiresMetaData=function(e){return e&&e.meta},l.fetchBlob=function(e,t){t()},l.transform=function(e,t,i,n,o){i(e,o)},l.global=t,l.readFile=a,l.isInstanceOf=r,l.createObjectURL=n,l.revokeObjectURL=o,e.exports?e.exports=l:t.loadImage=l}("undefined"!=typeof window&&window||Jt)}(Cm);var km={exports:{}};!function(e){(function(e){var t=e.transform;e.createCanvas=function(t,i,n){if(n&&e.global.OffscreenCanvas)return new OffscreenCanvas(t,i);var o=document.createElement("canvas");return o.width=t,o.height=i,o},e.transform=function(i,n,o,s,a){t.call(e,e.scale(i,n,a),n,o,s,a)},e.transformCoordinates=function(){},e.getTransformedOptions=function(e,t){var i,n,o,s,a=t.aspectRatio;if(!a)return t;for(n in i={},t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=t[n]);return i.crop=!0,(o=e.naturalWidth||e.width)/(s=e.naturalHeight||e.height)>a?(i.maxWidth=s*a,i.maxHeight=s):(i.maxWidth=o,i.maxHeight=o/a),i},e.drawImage=function(e,t,i,n,o,s,a,r,l){var d=t.getContext("2d");return!1===l.imageSmoothingEnabled?(d.msImageSmoothingEnabled=!1,d.imageSmoothingEnabled=!1):l.imageSmoothingQuality&&(d.imageSmoothingQuality=l.imageSmoothingQuality),d.drawImage(e,i,n,o,s,0,0,a,r),d},e.requiresCanvas=function(e){return e.canvas||e.crop||!!e.aspectRatio},e.scale=function(t,i,n){i=i||{},n=n||{};var o,s,a,r,l,d,c,u,p,h,g,f,m=t.getContext||e.requiresCanvas(i)&&!!e.global.HTMLCanvasElement,v=t.naturalWidth||t.width,b=t.naturalHeight||t.height,y=v,_=b;function x(){var e=Math.max((a||y)/y,(r||_)/_);e>1&&(y*=e,_*=e)}function w(){var e=Math.min((o||y)/y,(s||_)/_);e<1&&(y*=e,_*=e)}if(m&&(c=(i=e.getTransformedOptions(t,i,n)).left||0,u=i.top||0,i.sourceWidth?(l=i.sourceWidth,void 0!==i.right&&void 0===i.left&&(c=v-l-i.right)):l=v-c-(i.right||0),i.sourceHeight?(d=i.sourceHeight,void 0!==i.bottom&&void 0===i.top&&(u=b-d-i.bottom)):d=b-u-(i.bottom||0),y=l,_=d),o=i.maxWidth,s=i.maxHeight,a=i.minWidth,r=i.minHeight,m&&o&&s&&i.crop?(y=o,_=s,(g=l/d-o/s)<0?(d=s*l/o,void 0===i.top&&void 0===i.bottom&&(u=(b-d)/2)):g>0&&(l=o*d/s,void 0===i.left&&void 0===i.right&&(c=(v-l)/2))):((i.contain||i.cover)&&(a=o=o||a,r=s=s||r),i.cover?(w(),x()):(x(),w())),m){if((p=i.pixelRatio)>1&&(!t.style.width||Math.floor(parseFloat(t.style.width,10))!==Math.floor(v/p))&&(y*=p,_*=p),e.orientationCropBug&&!t.getContext&&(c||u||l!==v||d!==b)&&(g=t,t=e.createCanvas(v,b,!0),e.drawImage(g,t,0,0,v,b,v,b,i)),(h=i.downsamplingRatio)>0&&h<1&&y<l&&_<d)for(;l*h>y;)f=e.createCanvas(l*h,d*h,!0),e.drawImage(t,f,c,u,l,d,f.width,f.height,i),c=0,u=0,l=f.width,d=f.height,t=f;return f=e.createCanvas(y,_),e.transformCoordinates(f,i,n),p>1&&(f.style.width=f.width/p+"px"),e.drawImage(t,f,c,u,l,d,y,_,i).setTransform(1,0,0,1,0,0),f}return t.width=y,t.height=_,t}})(e.exports?Cm.exports:window.loadImage)}(km);var Em={exports:{}};!function(e){(function(e){var t=e.global,i=e.transform,n=t.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice),o=t.ArrayBuffer&&ArrayBuffer.prototype.slice||function(e,t){t=t||this.byteLength-e;var i=new Uint8Array(this,e,t),n=new Uint8Array(t);return n.set(i),n.buffer},s={jpeg:{65505:[],65517:[]}};function a(i,a,r,l){var d=this;function c(a,c){if(!(t.DataView&&n&&i&&i.size>=12&&"image/jpeg"===i.type))return a(l);var u=r.maxMetaDataSize||262144;e.readFile(n.call(i,0,u),(function(e){var t=new DataView(e);if(65496!==t.getUint16(0))return c(new Error("Invalid JPEG file: Missing JPEG marker."));for(var i,n,u,p,h=2,g=t.byteLength-4,f=h;h<g&&((i=t.getUint16(h))>=65504&&i<=65519||65534===i);){if(h+(n=t.getUint16(h+2)+2)>t.byteLength){console.log("Invalid JPEG metadata: Invalid segment size.");break}if((u=s.jpeg[i])&&!r.disableMetaDataParsers)for(p=0;p<u.length;p+=1)u[p].call(d,t,h,n,l,r);f=h+=n}!r.disableImageHead&&f>6&&(l.imageHead=o.call(e,0,f)),a(l)}),c,"readAsArrayBuffer")||a(l)}return r=r||{},t.Promise&&"function"!=typeof a?(l=r=a||{},new Promise(c)):(l=l||{},c(a,a))}function r(e,t,i){return e&&t&&i?new Blob([i,n.call(e,t.byteLength)],{type:"image/jpeg"}):null}e.transform=function(n,o,s,r,l){e.requiresMetaData(o)?a(r,(function(a){a!==l&&(t.console&&console.log(a),a=l),i.call(e,n,o,s,r,a)}),o,l=l||{}):i.apply(e,arguments)},e.blobSlice=n,e.bufferSlice=o,e.replaceHead=function(e,i,n){var o={maxMetaDataSize:1024,disableMetaDataParsers:!0};if(!n&&t.Promise)return a(e,o).then((function(t){return r(e,t.imageHead,i)}));a(e,(function(t){n(r(e,t.imageHead,i))}),o)},e.parseMetaData=a,e.metaDataParsers=s})(e.exports?Cm.exports:window.loadImage)}(Em);!function(e){(function(e){var t=e.global;t.fetch&&t.Request&&t.Response&&t.Response.prototype.blob?e.fetchBlob=function(e,i,n){function o(e){return e.blob()}if(t.Promise&&"function"!=typeof i)return fetch(new Request(e,i)).then(o);fetch(new Request(e,n)).then(o).then(i).catch((function(e){i(null,e)}))}:t.XMLHttpRequest&&""===(new XMLHttpRequest).responseType&&(e.fetchBlob=function(e,i,n){function o(t,i){n=n||{};var o=new XMLHttpRequest;o.open(n.method||"GET",e),n.headers&&Object.keys(n.headers).forEach((function(e){o.setRequestHeader(e,n.headers[e])})),o.withCredentials="include"===n.credentials,o.responseType="blob",o.onload=function(){t(o.response)},o.onerror=o.onabort=o.ontimeout=function(e){t===i?i(null,e):i(e)},o.send(n.body)}return t.Promise&&"function"!=typeof i?(n=i,new Promise(o)):o(i,i)})})(e.exports?Cm.exports:window.loadImage)}({exports:{}});var Am={exports:{}};!function(e){(function(e){function t(e){e&&(Object.defineProperty(this,"map",{value:this.ifds[e].map}),Object.defineProperty(this,"tags",{value:this.tags&&this.tags[e]||{}}))}t.prototype.map={Orientation:274,Thumbnail:"ifd1",Blob:513,Exif:34665,GPSInfo:34853,Interoperability:40965},t.prototype.ifds={ifd1:{name:"Thumbnail",map:t.prototype.map},34665:{name:"Exif",map:{}},34853:{name:"GPSInfo",map:{}},40965:{name:"Interoperability",map:{}}},t.prototype.get=function(e){return this[e]||this[this.map[e]]};var i={1:{getValue:function(e,t){return e.getUint8(t)},size:1},2:{getValue:function(e,t){return String.fromCharCode(e.getUint8(t))},size:1,ascii:!0},3:{getValue:function(e,t,i){return e.getUint16(t,i)},size:2},4:{getValue:function(e,t,i){return e.getUint32(t,i)},size:4},5:{getValue:function(e,t,i){return e.getUint32(t,i)/e.getUint32(t+4,i)},size:8},9:{getValue:function(e,t,i){return e.getInt32(t,i)},size:4},10:{getValue:function(e,t,i){return e.getInt32(t,i)/e.getInt32(t+4,i)},size:8}};function n(e,t,n,o,s,a){var r,l,d,c,u,p,h=i[o];if(h){if(!((l=(r=h.size*s)>4?t+e.getUint32(n+8,a):n+8)+r>e.byteLength)){if(1===s)return h.getValue(e,l,a);for(d=[],c=0;c<s;c+=1)d[c]=h.getValue(e,l+c*h.size,a);if(h.ascii){for(u="",c=0;c<d.length&&"\0"!==(p=d[c]);c+=1)u+=p;return u}return d}console.log("Invalid Exif data: Invalid data offset.")}else console.log("Invalid Exif data: Invalid tag type.")}function o(e,t,i){return(!e||e[i])&&(!t||!0!==t[i])}function s(e,t,i,s,a,r,l,d){var c,u,p,h,g,f;if(i+6>e.byteLength)console.log("Invalid Exif data: Invalid directory offset.");else{if(!((u=i+2+12*(c=e.getUint16(i,s)))+4>e.byteLength)){for(p=0;p<c;p+=1)h=i+2+12*p,o(l,d,g=e.getUint16(h,s))&&(f=n(e,t,h,e.getUint16(h+2,s),e.getUint32(h+4,s),s),a[g]=f,r&&(r[g]=h));return e.getUint32(u,s)}console.log("Invalid Exif data: Invalid directory size.")}}i[7]=i[1],e.parseExifData=function(i,n,a,r,l){if(!l.disableExif){var d,c,u,p=l.includeExifTags,h=l.excludeExifTags||{34665:{37500:!0}},g=n+10;if(1165519206===i.getUint32(n+4))if(g+8>i.byteLength)console.log("Invalid Exif data: Invalid segment size.");else if(0===i.getUint16(n+8)){switch(i.getUint16(g)){case 18761:d=!0;break;case 19789:d=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}42===i.getUint16(g+2,d)?(c=i.getUint32(g+4,d),r.exif=new t,l.disableExifOffsets||(r.exifOffsets=new t,r.exifTiffOffset=g,r.exifLittleEndian=d),(c=s(i,g,g+c,d,r.exif,r.exifOffsets,p,h))&&o(p,h,"ifd1")&&(r.exif.ifd1=c,r.exifOffsets&&(r.exifOffsets.ifd1=g+c)),Object.keys(r.exif.ifds).forEach((function(e){!function(e,i,n,o,a,r,l){var d=e.exif[i];d&&(e.exif[i]=new t(i),e.exifOffsets&&(e.exifOffsets[i]=new t(i)),s(n,o,o+d,a,e.exif[i],e.exifOffsets&&e.exifOffsets[i],r&&r[i],l&&l[i]))}(r,e,i,g,d,p,h)})),(u=r.exif.ifd1)&&u[513]&&(u[513]=function(t,i,n){if(n){if(!(i+n>t.byteLength))return new Blob([e.bufferSlice.call(t.buffer,i,i+n)],{type:"image/jpeg"});console.log("Invalid Exif data: Invalid thumbnail data.")}}(i,g+u[513],u[514]))):console.log("Invalid Exif data: Missing TIFF marker.")}else console.log("Invalid Exif data: Missing byte alignment offset.")}},e.metaDataParsers.jpeg[65505].push(e.parseExifData),e.exifWriters={274:function(e,t,i){var n=t.exifOffsets[274];return n?(new DataView(e,n+8,2).setUint16(0,i,t.exifLittleEndian),e):e}},e.writeExifData=function(t,i,n,o){return e.exifWriters[i.exif.map[n]](t,i,o)},e.ExifMap=t})(e.exports?Cm.exports:window.loadImage)}(Am);!function(e){(function(e){var t=e.ExifMap.prototype;t.tags={256:"ImageWidth",257:"ImageHeight",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",34665:{36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",36880:"OffsetTime",36881:"OffsetTimeOriginal",36882:"OffsetTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber"},34853:{0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},40965:{1:"InteroperabilityIndex"}},t.tags.ifd1=t.tags,t.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"Original",2:"Horizontal flip",3:"Rotate 180° CCW",4:"Vertical flip",5:"Vertical flip + Rotate 90° CW",6:"Rotate 90° CW",7:"Horizontal flip + Rotate 90° CW",8:"Rotate 90° CCW"}},t.getText=function(e){var t=this.get(e);switch(e){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[e][t];case"ExifVersion":case"FlashpixVersion":if(!t)return;return String.fromCharCode(t[0],t[1],t[2],t[3]);case"ComponentsConfiguration":if(!t)return;return this.stringValues[e][t[0]]+this.stringValues[e][t[1]]+this.stringValues[e][t[2]]+this.stringValues[e][t[3]];case"GPSVersionID":if(!t)return;return t[0]+"."+t[1]+"."+t[2]+"."+t[3]}return String(t)},t.getAll=function(){var e,t,i,n={};for(e in this)Object.prototype.hasOwnProperty.call(this,e)&&((t=this[e])&&t.getAll?n[this.ifds[e].name]=t.getAll():(i=this.tags[e])&&(n[i]=this.getText(i)));return n},t.getName=function(e){var t=this.tags[e];return"object"==typeof t?this.ifds[e].name:t},function(){var e,i,n,o=t.tags;for(e in o)if(Object.prototype.hasOwnProperty.call(o,e))if(i=t.ifds[e])for(e in n=o[e])Object.prototype.hasOwnProperty.call(n,e)&&(i.map[n[e]]=Number(e));else t.map[o[e]]=Number(e)}()})(e.exports?Cm.exports:window.loadImage)}({exports:{}});var qm={exports:{}};!function(e){(function(e){function t(){}function i(e,t,i,n,o){return"binary"===t.types[e]?new Blob([i.buffer.slice(n,n+o)]):"Uint16"===t.types[e]?i.getUint16(n):function(e,t,i){for(var n="",o=t+i,s=t;s<o;s+=1)n+=String.fromCharCode(e.getUint8(s));return n}(i,n,o)}function n(e,t){return void 0===e?t:e instanceof Array?(e.push(t),e):[e,t]}function o(e,t,o,s,a,r){for(var l,d,c,u=t+o,p=t;p<u;)28===e.getUint8(p)&&2===e.getUint8(p+1)&&(c=e.getUint8(p+2),a&&!a[c]||r&&r[c]||(d=e.getInt16(p+3),l=i(c,s.iptc,e,p+5,d),s.iptc[c]=n(s.iptc[c],l),s.iptcOffsets&&(s.iptcOffsets[c]=p))),p+=1}function s(e,t){return 943868237===e.getUint32(t)&&1028===e.getUint16(t+4)}function a(e,t){var i=e.getUint8(t+7);return i%2!=0&&(i+=1),0===i&&(i=4),i}t.prototype.map={ObjectName:5},t.prototype.types={0:"Uint16",200:"Uint16",201:"Uint16",202:"binary"},t.prototype.get=function(e){return this[e]||this[this.map[e]]},e.parseIptcData=function(e,i,n,r,l){if(!l.disableIptc)for(var d=i+n;i+8<d;){if(s(e,i)){var c=a(e,i),u=i+8+c;if(u>d){console.log("Invalid IPTC data: Invalid segment offset.");break}var p=e.getUint16(i+6+c);if(i+p>d){console.log("Invalid IPTC data: Invalid segment size.");break}return r.iptc=new t,l.disableIptcOffsets||(r.iptcOffsets=new t),void o(e,u,p,r,l.includeIptcTags,l.excludeIptcTags||{202:!0})}i+=1}},e.metaDataParsers.jpeg[65517].push(e.parseIptcData),e.IptcMap=t})(e.exports?Cm.exports:window.loadImage)}(qm);!function(e){(function(e){var t=e.IptcMap.prototype;t.tags={0:"ApplicationRecordVersion",3:"ObjectTypeReference",4:"ObjectAttributeReference",5:"ObjectName",7:"EditStatus",8:"EditorialUpdate",10:"Urgency",12:"SubjectReference",15:"Category",20:"SupplementalCategories",22:"FixtureIdentifier",25:"Keywords",26:"ContentLocationCode",27:"ContentLocationName",30:"ReleaseDate",35:"ReleaseTime",37:"ExpirationDate",38:"ExpirationTime",40:"SpecialInstructions",42:"ActionAdvised",45:"ReferenceService",47:"ReferenceDate",50:"ReferenceNumber",55:"DateCreated",60:"TimeCreated",62:"DigitalCreationDate",63:"DigitalCreationTime",65:"OriginatingProgram",70:"ProgramVersion",75:"ObjectCycle",80:"Byline",85:"BylineTitle",90:"City",92:"Sublocation",95:"State",100:"CountryCode",101:"Country",103:"OriginalTransmissionReference",105:"Headline",110:"Credit",115:"Source",116:"CopyrightNotice",118:"Contact",120:"Caption",121:"LocalCaption",122:"Writer",125:"RasterizedCaption",130:"ImageType",131:"ImageOrientation",135:"LanguageIdentifier",150:"AudioType",151:"AudioSamplingRate",152:"AudioSamplingResolution",153:"AudioDuration",154:"AudioOutcue",184:"JobID",185:"MasterDocumentID",186:"ShortDocumentID",187:"UniqueDocumentID",188:"OwnerID",200:"ObjectPreviewFileFormat",201:"ObjectPreviewFileVersion",202:"ObjectPreviewData",221:"Prefs",225:"ClassifyState",228:"SimilarityIndex",230:"DocumentNotes",231:"DocumentHistory",232:"ExifCameraInfo",255:"CatalogSets"},t.stringValues={10:{0:"0 (reserved)",1:"1 (most urgent)",2:"2",3:"3",4:"4",5:"5 (normal urgency)",6:"6",7:"7",8:"8 (least urgent)",9:"9 (user-defined priority)"},75:{a:"Morning",b:"Both Morning and Evening",p:"Evening"},131:{L:"Landscape",P:"Portrait",S:"Square"}},t.getText=function(e){var t=this.get(e),i=this.map[e],n=this.stringValues[i];return n?n[t]:String(t)},t.getAll=function(){var e,t,i={};for(e in this)Object.prototype.hasOwnProperty.call(this,e)&&(t=this.tags[e])&&(i[t]=this.getText(t));return i},t.getName=function(e){return this.tags[e]},function(){var e,i=t.tags,n=t.map||{};for(e in i)Object.prototype.hasOwnProperty.call(i,e)&&(n[i[e]]=Number(e))}()})(e.exports?Cm.exports:window.loadImage)}({exports:{}});!function(e){(function(e){var t=e.transform,i=e.requiresCanvas,n=e.requiresMetaData,o=e.transformCoordinates,s=e.getTransformedOptions;function a(t,i){var n=t&&t.orientation;return!0===n&&!e.orientation||1===n&&e.orientation||(!i||e.orientation)&&n>1&&n<9}function r(e,t){return e!==t&&(1===e&&t>1&&t<9||e>1&&e<9)}function l(e,t){if(t>1&&t<9)switch(e){case 2:case 4:return t>4;case 5:case 7:return t%2==0;case 6:case 8:return 2===t||4===t||5===t||7===t}return!1}!function(e){if(e.global.document){var t=document.createElement("img");t.onload=function(){if(e.orientation=2===t.width&&3===t.height,e.orientation){var i=e.createCanvas(1,1,!0).getContext("2d");i.drawImage(t,1,1,1,1,0,0,1,1),e.orientationCropBug="255,255,255,255"!==i.getImageData(0,0,1,1).data.toString()}},t.src="data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/xABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAAAAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQvoP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXwH/9k="}}(e),e.requiresCanvas=function(t){return a(t)||i.call(e,t)},e.requiresMetaData=function(t){return a(t,!0)||n.call(e,t)},e.transform=function(i,n,o,s,a){t.call(e,i,n,(function(t,i){if(i){var n=e.orientation&&i.exif&&i.exif.get("Orientation");if(n>4&&n<9){var s=i.originalWidth,a=i.originalHeight;i.originalWidth=a,i.originalHeight=s}}o(t,i)}),s,a)},e.getTransformedOptions=function(t,i,n){var o=s.call(e,t,i),a=n.exif&&n.exif.get("Orientation"),d=o.orientation,c=e.orientation&&a;if(!0===d&&(d=a),!r(d,c))return o;var u=o.top,p=o.right,h=o.bottom,g=o.left,f={};for(var m in o)Object.prototype.hasOwnProperty.call(o,m)&&(f[m]=o[m]);if(f.orientation=d,(d>4&&!(c>4)||d<5&&c>4)&&(f.maxWidth=o.maxHeight,f.maxHeight=o.maxWidth,f.minWidth=o.minHeight,f.minHeight=o.minWidth,f.sourceWidth=o.sourceHeight,f.sourceHeight=o.sourceWidth),c>1){switch(c){case 2:p=o.left,g=o.right;break;case 3:u=o.bottom,p=o.left,h=o.top,g=o.right;break;case 4:u=o.bottom,h=o.top;break;case 5:u=o.left,p=o.bottom,h=o.right,g=o.top;break;case 6:u=o.left,p=o.top,h=o.right,g=o.bottom;break;case 7:u=o.right,p=o.top,h=o.left,g=o.bottom;break;case 8:u=o.right,p=o.bottom,h=o.left,g=o.top}if(l(d,c)){var v=u,b=p;u=h,p=g,h=v,g=b}}switch(f.top=u,f.right=p,f.bottom=h,f.left=g,d){case 2:f.right=g,f.left=p;break;case 3:f.top=h,f.right=g,f.bottom=u,f.left=p;break;case 4:f.top=h,f.bottom=u;break;case 5:f.top=g,f.right=h,f.bottom=p,f.left=u;break;case 6:f.top=p,f.right=h,f.bottom=g,f.left=u;break;case 7:f.top=p,f.right=u,f.bottom=g,f.left=h;break;case 8:f.top=g,f.right=u,f.bottom=p,f.left=h}return f},e.transformCoordinates=function(t,i,n){o.call(e,t,i,n);var s=i.orientation,a=e.orientation&&n.exif&&n.exif.get("Orientation");if(r(s,a)){var d=t.getContext("2d"),c=t.width,u=t.height,p=c,h=u;switch((s>4&&!(a>4)||s<5&&a>4)&&(t.width=u,t.height=c),s>4&&(p=u,h=c),a){case 2:d.translate(p,0),d.scale(-1,1);break;case 3:d.translate(p,h),d.rotate(Math.PI);break;case 4:d.translate(0,h),d.scale(1,-1);break;case 5:d.rotate(-.5*Math.PI),d.scale(-1,1);break;case 6:d.rotate(-.5*Math.PI),d.translate(-p,0);break;case 7:d.rotate(-.5*Math.PI),d.translate(-p,h),d.scale(1,-1);break;case 8:d.rotate(.5*Math.PI),d.translate(0,-h)}switch(l(s,a)&&(d.translate(p,h),d.rotate(Math.PI)),s){case 2:d.translate(c,0),d.scale(-1,1);break;case 3:d.translate(c,u),d.rotate(Math.PI);break;case 4:d.translate(0,u),d.scale(1,-1);break;case 5:d.rotate(.5*Math.PI),d.scale(1,-1);break;case 6:d.rotate(.5*Math.PI),d.translate(0,-u);break;case 7:d.rotate(.5*Math.PI),d.translate(c,-u),d.scale(-1,1);break;case 8:d.rotate(-.5*Math.PI),d.translate(-c,0)}}}})(e.exports?Cm.exports:window.loadImage)}({exports:{}});var Tm=Cm.exports;const Lm=new ni;class Mm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t;let n,o=i.querySelector("#divImageTool");if(!o){let e=`\n <div id="divImageTool" class="is-tool">\n <div role="button" tabindex="0" class="image-embed" style="${this.builder.opts.imageEmbed?"":"display:none;"}width:40px;height:40px;overflow:hidden;">\n <div style="position:absolute;width:100%;height:100%;"><svg class="is-icon-flex" style="position: absolute;top: 13px;left: 15px;width: 14px;height: 14px;"><use xlink:href="#ion-image"></use></svg></div>\n <input title="${t.out("Change Image")}" data-title="${t.out("Change Image")}" id="fileEmbedImage" type="file" accept="image/*" style="position:absolute;top:-20px;left:0;width:40px;height:60px;opacity: 0;cursor: pointer;"/>\n </div>\n <button tabindex="0" title="${t.out("Link")}" data-title="${t.out("Link")}" class="image-link" style="width:40px;height:40px;"><svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#ion-link"></use></svg></button> \n <button tabindex="0" title="${t.out("Edit")}" data-title="${t.out("Edit")}" class="image-edit" style="width:40px;height:40px;"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-android-create"></use></svg></button>\n </div>\n <div id="divImageProgress">\n <div>\n <div class="dot"></div>\n <div class="dot"></div>\n <div class="dot"></div>\n </div>\n </div>\n \n <div class="is-modal imageedit">\n <div class="is-modal-content">\n <div class="imageedit-crop" style="display:flex;height:80px;align-items:center;align-self:flex-start;">\n <button title="5x5" data-crop-size="1" style="width: 60px;height: 60px;">5x5</button>\n <button title="4x3" data-crop-size="1.33333" style="width: 60px;height: 45px;">4x3</button>\n <button title="3x4" data-crop-size="0.75" style="width: 45px;height: 60px;">3x4</button>\n <button title="6x4" data-crop-size="1.5" style="width: 60px;height: 40px;">6x4</button>\n <button title="4x6" data-crop-size="0.6666" style="width: 40px;height: 60px;">4x6</button>\n <button title="${t.out("Free")}" data-crop-size="" style="width: 60px;height: 45px;">${t.out("Free")}</button>\n </div>\n <div class="imageedit-preview" style="max-width:1000px;width:100%;max-height:550px;">\n </div>\n <div style="margin-top:15px;text-align:right;align-self:flex-end;">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Apply")}" class="input-ok classic-primary">${t.out("Apply")}</button>\n </div>\n </div>\n </div>\n \n <div class="is-modal imagelink">\n <div class="is-modal-content">\n\n <label for="inpImageLinkSource" style="display:block">${t.out("Source")}:</label>\n <div class="image-src">\n <input id="inpImageLinkSource" class="input-src" type="text"/>\n <button title="${t.out("Select")}" class="input-select" style="flex:none;width:50px;height:50px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <div class="image-larger1" style="position:relative;flex:none;width:50px;height:50px;box-shadow: 0px 3px 6px -6px rgba(0, 0, 0, 0.32);">\n <form class="form-upload-larger" target="frameTargetImageUpload" method="post" action="${this.builder.opts.largerImageHandler}" enctype="multipart/form-data" style="position:absolute;top:0;left:0;width:100%;height:100%;">\n\t\t\t\t <input id="hidRefId1" name="hidRefId" type="hidden" value="" />\n <svg class="is-icon-flex" style="position: absolute;top: 16px;left: 15px;width: 18px;height: 18px;"><use xlink:href="#ion-image"></use></svg>\n <input title="${t.out("Select")}" id="fileImage1" name="fileImage" type="file" accept="image/*" style="position:absolute;top:-30px;left:0;width:100%;height:80px;opacity: 0;cursor: pointer;">\n </form>\n\n <iframe id="frameTargetImageUpload" name="frameTargetImageUpload" src="about:blank" style="width:1px;height:1px;position:absolute;top:0;right:-100000px"></iframe>\n </div>\n </div>\n\n <label for="inpImageLinkTitle" style="margin-top:14px;display:block">${t.out("Title")}:</label>\n <input id="inpImageLinkTitle" class="input-title" type="text" style="width:100%;border-top: none;"/>\n\n <label for="inpImageLinkLink" style="margin-top:14px;display:block">${t.out("Link")}:</label>\n <div class="image-link">\n <input id="inpImageLinkLink" class="input-link" type="text" style="width:100%;border-top: none;"/>\n <button title="${t.out("Select")}" class="input-select2" style="flex:none;width:50px;height:50px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <div class="image-larger2" style="position:relative;flex:none;width:50px;height:50px;box-shadow: 0px 3px 6px -6px rgba(0, 0, 0, 0.32);">\n <form class="form-upload-larger" target="frameTargetImageUpload" method="post" action="${this.builder.opts.largerImageHandler}" enctype="multipart/form-data" style="position:absolute;top:0;left:0;width:100%;height:100%;">\n\t\t\t\t <input id="hidRefId2" name="hidRefId" type="hidden" value="" />\n <svg class="is-icon-flex" style="position: absolute;top: 16px;left: 15px;width: 18px;height: 18px;"><use xlink:href="#ion-image"></use></svg>\n <input title="${t.out("Select")}" id="fileImage2" name="fileImage" type="file" accept="image/*" style="position:absolute;top:-30px;left:0;width:100%;height:80px;opacity: 0;cursor: pointer;">\n </form>\n </div>\n </div>\n\n <label style="display:block;margin-top:14px;">\n <input class="input-newwindow" type="checkbox" /> ${t.out("Open new window")}&nbsp;\n </label>\n <label id="lblImageLinkOpenLightbox" style="${this.builder.useLightbox?"display:block":"display:none"};margin-top:5px;margin-bottom:14px;">\n <input class="input-openlightbox" type="checkbox" /> ${t.out("Open in a lightbox (for image, video or Youtube)")}&nbsp;\n </label>\n \n <div style="text-align:right;margin-top:14px;">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>\n\n <div class="is-modal imageselect" style="z-index:10005">\n <div style="max-width:800px;height:80%;padding:0;">\n <iframe style="width:100%;height:100%;border: none;display: block;" src="about:blank"></iframe>\n </div>\n </div>\n\n <div id="divImageResizer" data-x=0 data-y=0 class="is-tool moveable resizable">\n </div>\n `;Lm.appendHtml(i,e),o=i.querySelector("#divImageTool"),this.imageTool=o,n=document.querySelector("#divImageResizer"),this.imageResizer=n,this.builder.moveable=new Sm(document.body,{target:n,resizable:!0,throttleResize:0,keepRatio:!0}).on("resize",(({target:e,width:t,height:n})=>{if(0===t||0===n||isNaN(t)||isNaN(n))return;this.imageTool.style.display="",i.querySelector(".is-element-tool").style.display="";let o=this.builder.activeImage,s=!1;if(Lm.hasClass(o.parentNode,"img-circular")&&(o=o.parentNode,s=!0),s){let e=parseFloat(window.getComputedStyle(o.parentNode).getPropertyValue("padding-left")),i=parseFloat(window.getComputedStyle(o.parentNode).getPropertyValue("padding-right")),s=o.parentNode.offsetWidth*this.builder.opts.zoom-e-i;t>=s&&(t=s),n>=t?(o.style.width=t/this.builder.opts.zoom+"px",o.style.height=t/this.builder.opts.zoom+"px",o.querySelector("img").style.width=t/this.builder.opts.zoom+"px",o.querySelector("img").style.height=t/this.builder.opts.zoom+"px"):(o.style.width=t/this.builder.opts.zoom+"px",o.style.height=n/this.builder.opts.zoom+"px",o.querySelector("img").style.width=t/this.builder.opts.zoom+"px",o.querySelector("img").style.height=n/this.builder.opts.zoom+"px")}else o.style.width=t/this.builder.opts.zoom+"px",o.style.height="auto";e.style.top=o.getBoundingClientRect().top+window.pageYOffset+"px",e.style.left=o.getBoundingClientRect().left+window.pageXOffset+"px",e.style.width=o.offsetWidth+"px",e.style.height=o.offsetHeight+"px",this.repositionHandler(o.offsetWidth,o.offsetHeight),document.selection?document.selection.empty():window.getSelection().removeAllRanges();let a=i.querySelector(".is-column-tool");Lm.removeClass(a,"active")})).on("resizeEnd",(({target:e})=>{let t=this.builder.activeImage,n=!1;Lm.hasClass(t.parentNode,"img-circular")&&(t=t.parentNode,n=!0);var o=getComputedStyle(t.parentNode),s=parseFloat(o.paddingLeft)+parseFloat(o.paddingRight),a=parseFloat(o.borderLeftWidth)+parseFloat(o.borderRightWidth),r=t.parentNode.offsetWidth-s-a;if(!n){var l=r,d=t.offsetWidth,c=d/l*100;t.style.width=c+"%"}this.builder.opts.emailMode&&t.setAttribute("width",d),e.setAttribute("data-resized",1),setTimeout((()=>{e.setAttribute("data-resized",0)}),300),this.builder.opts.onChange();let u=i.querySelector(".is-column-tool");Lm.addClass(u,"active")})),document.querySelector(".moveable-control-box").style.display="none",n.addEventListener("click",(()=>{this.repositionImageTool(),this.builder.elmTool.repositionElementTool()}));let s=o.querySelector("#fileEmbedImage");Lm.addEventListener(s,"change",(e=>{this.builder.uo.saveForUndo();var t=e.target;let n=this.builder.activeImage,a=i.querySelector("#divImageProgress");a.style.display="table",a.style.width=n.offsetWidth*this.builder.opts.zoom+"px",a.style.height=n.offsetHeight*this.builder.opts.zoom+"px",a.style.top=n.getBoundingClientRect().top+window.pageYOffset+"px",a.style.left=n.getBoundingClientRect().left+window.pageXOffset+"px";try{n.setAttribute("data-filename",t.files[0].name),this.processImage(t.files[0],n,(()=>{a.style.display="none",s=o.querySelector("#fileEmbedImage"),s.value="",this.refreshIfIsModule(n),this.builder.opts.onChange(),this.builder.elmTool.refresh()}))}catch(e){a.style.display="none"}})),this.builder.opts.onImageBrowseClick&&(s=o.querySelector(".image-embed"),Lm.addEventListener(s,"click",(e=>(this.builder.opts.onImageBrowseClick(),e.preventDefault(),!1))));let a=i.querySelector(".imagelink");""!==this.builder.opts.largerImageHandler||this.builder.opts.onLargerImageUpload||(a.querySelector(".image-larger1").style.display="none",a.querySelector(".image-larger2").style.display="none"),this.builder.opts.onImageSelectClick||""!==this.builder.opts.imageselect||(a.querySelector(".input-select").style.display="none",a.querySelector(".input-select2").style.display="none"),s=o.querySelector(".image-link"),Lm.addEventListener(s,"click",(()=>{if(document.querySelector(".moveable-control-box").style.display="none",this.builder.opts.onImageSettingClick)return this.builder.opts.onImageSettingClick(),!1;let e,i=this.builder.activeImage;"a"===i.parentNode.tagName.toLowerCase()&&1===i.parentNode.childElementCount&&(e=i.parentNode);let n=i.getAttribute("src"),o=i.getAttribute("alt"),s=a.querySelector(".input-src");-1===n.indexOf("base64")?s.value=n:s.value="[Image Data]";let r=a.querySelector(".input-title");r.value=o;let l=a.querySelector(".input-link");l.value="";let d=a.querySelector(".input-newwindow");d.checked=!1;let c=a.querySelector(".input-openlightbox");if(c.checked=!1,e){if(l.value=e.getAttribute("href"),""===o){let t=e.getAttribute("title");t&&(r.value=t)}var u=e.getAttribute("target");d.checked="_blank"===u,Lm.hasClass(e,"is-lightbox")?c.checked=!0:c.checked=!1}t.showModal(a,!0,null,!0),s.focus()})),s=a.querySelector(".input-cancel"),Lm.addEventListener(s,"click",(()=>{t.hideModal(a),document.querySelector(".moveable-control-box").style.display="block"})),s=a.querySelector(".input-ok"),Lm.addEventListener(s,"click",(()=>{this.builder.uo.saveForUndo();let e,i=this.builder.activeImage;"a"===i.parentNode.tagName.toLowerCase()&&1===i.parentNode.childElementCount&&(e=i.parentNode);let n=a.querySelector(".input-src").value,o=a.querySelector(".input-title").value,s=a.querySelector(".input-link").value;-1===n.indexOf("[Image Data]")&&i.setAttribute("src",n),i.setAttribute("alt",o),""!==s?e?(e.setAttribute("href",s),e.setAttribute("title",o),a.querySelector(".input-newwindow").checked?e.setAttribute("target","_blank"):e.removeAttribute("target"),a.querySelector(".input-openlightbox").checked?Lm.addClass(e,"is-lightbox"):Lm.removeClass(e,"is-lightbox")):(e=Lm.createElement("a"),e.setAttribute("href",s),e.setAttribute("title",o),e.innerHTML=i.outerHTML,a.querySelector(".input-newwindow").checked?e.setAttribute("target","_blank"):e.removeAttribute("target"),a.querySelector(".input-openlightbox").checked?Lm.addClass(e,"is-lightbox"):Lm.removeClass(e,"is-lightbox"),i.outerHTML=e.outerHTML):e&&(e.outerHTML=e.innerHTML),this.refreshIfIsModule(i),this.builder.opts.onChange(),this.builder.opts.onRender(),t.hideModal(a),this.builder.elmTool.refresh()}));let r=a.querySelector(".image-src");this.builder.opts.onImageSelectClick||this.builder.opts.imageselect?(s=a.querySelector(".input-select"),s&&Lm.addEventListener(s,"click",(()=>{if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:a.querySelector(".input-src"),theTrigger:s});else{let e=i.querySelector(".is-modal.imageselect"),n=e.querySelector("iframe");this.builder.opts.assetRefresh&&(n.src=this.builder.opts.imageselect,this.builder.opts.assetRefresh=!1),"about:blank"===n.src&&(n.src=this.builder.opts.imageselect),t.showModal(e)}this.builder.targetInput=a.querySelector(".input-src"),this.builder.targetCallback=null,this.builder.targetAssetType="image"})),s=a.querySelector(".input-select2"),s&&Lm.addEventListener(s,"click",(()=>{if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:a.querySelector(".input-link"),theTrigger:s});else{let e=i.querySelector(".is-modal.imageselect"),n=e.querySelector("iframe");this.builder.opts.assetRefresh&&(n.src=this.builder.opts.imageselect,this.builder.opts.assetRefresh=!1),"about:blank"===n.src&&(n.src=this.builder.opts.imageselect),t.showModal(e)}this.builder.targetInput=a.querySelector(".input-link"),this.builder.targetCallback=null,this.builder.targetAssetType="media"}))):Lm.removeClass(r,"image-select");let l=a.querySelector("#fileImage1");Lm.addEventListener(l,"change",(e=>{let t=l;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;Lm.addClass(i,"please-wait"),a.querySelector("#hidRefId1").value=this.builder.opts.customval,this.builder.opts.onLargerImageUpload?this.builder.opts.onLargerImageUpload(e):i.submit(),l.value=""}));let d=a.querySelector("#fileImage2");Lm.addEventListener(d,"change",(e=>{let t=d;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;Lm.addClass(i,"please-wait"),a.querySelector("#hidRefId2").value=this.builder.opts.customval,this.builder.opts.onLargerImageUpload?this.builder.opts.onLargerImageUpload(e):i.submit(),d.value=""}));let c=i.querySelector(".imageedit");s=o.querySelector(".image-edit"),Lm.addEventListener(s,"click",(()=>{let e=this.builder.activeImage,i=c.querySelector(".imageedit-preview");i.innerHTML='<img style="max-width:100%;object-fit:contain;height:100%;"/>';let n=c.querySelector("img");if(this.builder.onImageEditClick){if(!this.builder.onImageEditClick(e,n))return}t.showModal(c,!0);if(i.style.height="",e.offsetWidth<800&&e.offsetHeight<550)i.style.width=e.offsetWidth+"px";else{800*e.offsetHeight/e.offsetWidth<=550?i.style.width="800px":i.style.height="550px"}-1===e.src.indexOf("base64")?n.src=e.src+(-1===e.src.indexOf("?")?"?":"&")+`timestamp=${(new Date).getTime()}`:n.src=e.src,this.builder.setCropperConfig?this.cropper=new fd(n,this.builder.setCropperConfig):this.cropper=new fd(n,{zoomable:!1}),document.querySelector(".moveable-control-box").style.display="none"}));let u=c.querySelector(".imageedit-crop").querySelectorAll("button");Array.prototype.forEach.call(u,(e=>{Lm.addEventListener(e,"click",(()=>{let t=1*e.getAttribute("data-crop-size");this.cropper.setAspectRatio(t)}))}));let p=c.querySelector(".input-cancel");Lm.addEventListener(p,"click",(()=>{t.hideModal(c),document.querySelector(".moveable-control-box").style.display="block"})),s=c.querySelector(".input-ok"),Lm.addEventListener(s,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeImage,i=e.getAttribute("data-filename"),n="jpg";if(i)n=i.substr(i.lastIndexOf(".")+1).toLowerCase();else{let t=e.src;t.indexOf("/")>-1?e.setAttribute("data-filename",t.substr(t.lastIndexOf("/")+1)):e.setAttribute("data-filename",t),n=t.substr(t.lastIndexOf(".")+1).toLowerCase()}if(this.builder.opts.imageRenameOnEdit){let t="";if(-1===e.src.indexOf("base64")){let i=e.src.substring(e.src.lastIndexOf("/")+1);t=Lm.baseName(i)}else t=Lm.baseName(e.getAttribute("data-filename"));let i="";-1!==t.indexOf("-edit")&&(t=t.substr(0,t.indexOf("-edit"))),i=t+"-edit"+this.util.makeId(),e.setAttribute("data-filename",i+"."+n)}e.src="jpg"===n?this.cropper.getCroppedCanvas({fillColor:"#fff"}).toDataURL("image/jpeg"):this.cropper.getCroppedCanvas({}).toDataURL(),this.refreshIfIsModule(e),this.builder.opts.onChange(),t.hideModal(c),this.builder.elmTool.refresh()}))}this.builder.imgs=[]}refreshIfIsModule(e){if(Lm.parentsHasAttribute(e,"data-html")){if(this.imageTool.style.display="",e.hasAttribute("data-sync")){let t=e.getAttribute("data-src"),i=e.getAttribute("data-filename");if(t){let n=e;for(;!n.getAttribute("data-html");)n=n.parentNode;let o=n.querySelectorAll("img");Array.prototype.forEach.call(o,(n=>{n.src===t&&(n.src=e.src,n.removeAttribute("data-src"),n.setAttribute("data-filename",i))})),e.removeAttribute("data-src")}}setTimeout((()=>{this.util.refreshModule(),this.imageTool.style.display=""}),1e3)}else this.refresh()}refresh(){if(this.builder.activeImage){let e=this.imageTool;e.style.display="",setTimeout((()=>{let t=this.builder.activeImage;if(!t)return;Lm.hasClass(t.parentNode,"img-circular")&&(t=t.parentNode),e.style.display="flex";let i=e.offsetWidth,n=t.offsetWidth*this.builder.opts.zoom,o=t.getBoundingClientRect().top+window.pageYOffset,s=t.getBoundingClientRect().left+window.pageXOffset;s+=n/2-i/2;i+s>window.innerWidth&&(s=t.getBoundingClientRect().left),e.style.top=o+"px",e.style.left=s+"px";let a=this.imageResizer;a.style.top=t.getBoundingClientRect().top+window.pageYOffset+"px",a.style.left=t.getBoundingClientRect().left+window.pageXOffset+"px",a.style.width=t.offsetWidth*this.builder.opts.zoom+"px",a.style.height=t.offsetHeight*this.builder.opts.zoom+"px",a.style.display="block",this.repositionHandler(t.offsetWidth,t.offsetHeight),this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="block",0===t.offsetWidth&&(e.style.display="",this.builder.activeImage=null,a.style.display="none",a.style.top="-10px",a.style.left="-10px",a.style.width="1px",a.style.height="1px",this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none")}),300)}}repositionImageTool(){if(this.builder.activeImage){let e=this.imageTool,t=this.builder.activeImage;Lm.hasClass(t.parentNode,"img-circular")&&(t=t.parentNode),e.style.display="flex";let i=e.offsetWidth,n=t.offsetWidth*this.builder.opts.zoom,o=t.getBoundingClientRect().top+window.pageYOffset,s=t.getBoundingClientRect().left+window.pageXOffset;s+=n/2-i/2;i+s>window.innerWidth&&(s=t.getBoundingClientRect().left),e.style.top=o+"px",e.style.left=s+"px";let a=this.imageResizer;a.style.top=t.getBoundingClientRect().top+window.pageYOffset+"px",a.style.left=t.getBoundingClientRect().left+window.pageXOffset+"px",a.style.width=t.offsetWidth*this.builder.opts.zoom+"px",a.style.height=t.offsetHeight*this.builder.opts.zoom+"px",a.style.display="block",this.repositionHandler(t.offsetWidth,t.offsetHeight),this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="block"}}click(e){let t=e.target;if("img"===t.tagName.toLowerCase()){let i=!1;if(t.hasAttribute("data-fixed")&&(i=!0),i){this.imageTool.style.display="",this.builder.activeImage=null;let e=this.imageResizer;e.style.display="none",e.style.top="-10px",e.style.left="-10px",e.style.width="1px",e.style.height="1px",this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none"}else{this.builder.activeImage=t,Lm.hasClass(t.parentNode,"img-circular")&&(t=t.parentNode);let i=this.imageTool;i.style.display="flex";let n=i.offsetWidth,o=t.offsetWidth*this.builder.opts.zoom,s=t.getBoundingClientRect().top+window.pageYOffset,a=t.getBoundingClientRect().left+window.pageXOffset;a+=o/2-n/2;if(n+a>window.innerWidth&&(a=t.getBoundingClientRect().left),i.style.top=s+"px",i.style.left=a+"px",t.hasAttribute("data-noresize")){let e=this.imageResizer;e.style.display="none",e.style.top="-10px",e.style.left="-10px",e.style.width="1px",e.style.height="1px",this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none"}else{let e=this.imageResizer;e.style.top=t.getBoundingClientRect().top+window.pageYOffset+"px",e.style.left=t.getBoundingClientRect().left+window.pageXOffset+"px",e.style.width=t.offsetWidth*this.builder.opts.zoom+"px",e.style.height=t.offsetHeight*this.builder.opts.zoom+"px",e.style.display="block",this.repositionHandler(t.offsetWidth,t.offsetHeight);let i,n=t.style.width;-1!==n.indexOf("%")?(n=1*n.replace("%",""),i=100*t.offsetWidth/n):i=t.offsetWidth,e.setAttribute("data-width",Math.round(i)),this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="block"}let r=!1;if(e.screenX&&0!==e.screenX&&e.screenY&&0!==e.screenY||(r=!0),r){i.style.display="";let e=this.imageResizer;e.style.display="none",e.style.top="-10px",e.style.left="-10px",e.style.width="1px",e.style.height="1px",this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none"}}}else{this.imageTool.style.display="",this.builder.activeImage=null;let e=this.imageResizer;e.style.display="none",e.style.top="-10px",e.style.left="-10px",e.style.width="1px",e.style.height="1px",this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none"}}clearImageResizer(){this.builder.imgs.forEach((e=>{try{e.destroy()}catch(e){}let t=this.builder.imgs.indexOf(e);t>-1&&this.builder.imgs.splice(t,1)})),document.querySelectorAll("[data-mov]").forEach((e=>{e.removeAttribute("data-mov")}))}repositionHandler(e,t){let i=document.querySelector("#divImageResizer");i.style.width=e*this.builder.opts.zoom+"px",i.style.height=t*this.builder.opts.zoom+"px"}processImage(e,t,i){if(!e)return i(),!1;if(!document.getElementById("myTmpCanvasNoCrop")){var n=document.createElement("canvas");n.id="myTmpCanvasNoCrop",n.style.display="none",document.querySelector("body").appendChild(n)}var o,s,a;"jpg"===(o=e.name?e.name.substr(e.name.lastIndexOf(".")+1).toLowerCase():e.substr(e.lastIndexOf(".")+1).toLowerCase())||"jpeg"===o?(s="image/jpeg",a=this.builder.opts.imageQuality):(s="image/png",a=1),-1===this.builder.opts.maxEmbedImageWidth?Tm(e,(e=>{t.src=e.toDataURL(s,a),i()}),{canvas:!0}):Tm(e,(e=>{t.src=e.toDataURL(s,a),i()}),{maxWidth:this.builder.opts.maxEmbedImageWidth,maxHeight:this.builder.opts.maxEmbedImageWidth,canvas:!0})}}const Om=new ni;class Rm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.builderStuff=i;let n=i.querySelector(".is-modal.buttoneditor");if(!n){let e=`\n <div class="is-modal is-modal-content buttoneditor">\n <div class="is-modal-bar is-draggable">\n ${t.out("Button")}\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n <div style="padding:0">\n <div class="is-tabs clearfix" data-group="button" style="position:relative;z-index:1">\n <a title="${t.out("Default")}" href="" data-content="divButtonDefault" class="active">${t.out("Default")}</a>\n <a title="${t.out("Hover")}" href="" data-content="divButtonHover">${t.out("Hover")}</a>\n <a title="${t.out("Saved")}" href="" data-content="divMyButtons">${t.out("Saved")}</a>\n <a title="${t.out("Templates")}" href="" data-content="divButtonTemplates">${t.out("Templates")}</a>\n </div>\n <div id="divButtonDefault" class="is-tab-content" data-group="button" style="display:block">\n\n <div class="flex flex-row">\n <div class="flex flex-col" style="margin-right: 40px;">\n <div>\n <label>${t.out("Background Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Background Color")}" class="bg-color-command" style="width:45px;height:40px;border:rgb(0 0 0 / 6%) 1px solid;margin-right:4px"></button>\n </div>\n </div>\n \n <div class="flex flex-col">\n <div>\n <label>${t.out("Text Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Text Color")}" class="text-color-command" style="width:45px;height:40px;border:rgb(0 0 0 / 6%) 1px solid;margin-right:4px"></button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-row" style="margin:15px 0 0">\n <div class="flex flex-col" style="display:none;margin-right: 40px;">\n <div>\n <label>${t.out("Border Thickness")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("No Border")}" data-command="0" class="border-width-command" style="margin-right:4px">${t.out("No Border")}</button>\n <button title="1px" data-command="1" class="border-width-command" style="text-transform:none;margin-right:4px">1px</button>\n <button title="2px" data-command="2" class="border-width-command" style="text-transform:none;margin-right:4px">2px</button>\n </div>\n </div>\n \n <div class="flex flex-col">\n <div>\n <label>${t.out("Border Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Transparent")}" data-command="transparent" class="border-color-command" style="margin-right:4px">${t.out("Transparent")}</button>\n <button title="${t.out("Current")}" data-command="current" class="border-color-command" style="margin-right:4px">${t.out("Current")}</button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-row" style="margin:15px 0 0">\n <div class="flex flex-col" style="margin-right: 20px;">\n <div>\n <label>${t.out("Padding X")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="2" data-command="2" class="paddingx-command" style="margin-right:4px">2</button>\n <button title="3" data-command="3" class="paddingx-command" style="margin-right:4px">3</button>\n <button title="4" data-command="4" class="paddingx-command" style="margin-right:4px">4</button>\n <button title="5" data-command="5" class="paddingx-command" style="margin-right:4px">5</button>\n <button title="6" data-command="6" class="paddingx-command" style="margin-right:4px">6</button>\n <button title="8" data-command="8" class="paddingx-command" style="margin-right:4px">8</button>\n <button title="11" data-command="11" class="paddingx-command" style="margin-right:4px">11</button>\n <button title="12" data-command="12" class="paddingx-command" style="margin-right:4px">12</button>\n </div>\n </div>\n\n <div class="flex flex-col">\n <div>\n <label>${t.out("Padding Y")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="0" data-command="0" class="paddingy-command" style="margin-right:4px">0</button>\n <button title="1" data-command="1" class="paddingy-command" style="margin-right:4px">1</button>\n <button title="2" data-command="2" class="paddingy-command" style="margin-right:4px">2</button>\n <button title="3" data-command="3" class="paddingy-command" style="margin-right:4px">3</button>\n <button title="4" data-command="4" class="paddingy-command" style="margin-right:4px">4</button>\n <button title="5" data-command="5" class="paddingy-command" style="margin-right:4px">5</button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-col" style="margin:15px 0 0">\n <div>\n <label>${t.out("Border Radius")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("None")}" data-command="none" class="border-radius-command" style="margin-right:4px">${t.out("None")}</button>\n <button title="${t.out("SM")}" data-command="sm" class="border-radius-command" style="margin-right:4px">${t.out("SM")}</button>\n <button title="${t.out("Normal")}" data-command="normal" class="border-radius-command" style="margin-right:4px">${t.out("Normal")}</button>\n <button title="${t.out("MD")}" data-command="md" class="border-radius-command" style="margin-right:4px">${t.out("MD")}</button>\n <button title="${t.out("LG")}" data-command="lg" class="border-radius-command" style="margin-right:4px">${t.out("LG")}</button>\n <button title="${t.out("XL")}" data-command="xl" class="border-radius-command" style="margin-right:4px">${t.out("XL")}</button>\n <button title="${t.out("2XL")}" data-command="2xl" class="border-radius-command" style="margin-right:4px">${t.out("2XL")}</button>\n <button title="${t.out("3XL")}" data-command="3xl" class="border-radius-command" style="margin-right:4px">${t.out("3XL")}</button>\n <button title="${t.out("Full")}" data-command="full" class="border-radius-command" style="margin-right:4px">${t.out("Full")}</button>\n </div>\n </div>\n\n <div class="flex flex-row" style="margin:15px 0 0">\n <div class="flex flex-col" style="width:250px;margin-right:40px;">\n <div>\n <label>${t.out("Font Size")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="12" data-command="12" class="font-size-command" style="margin-right:4px">12</button>\n <button title="13" data-command="13" class="font-size-command" style="margin-right:4px">13</button>\n <button title="14" data-command="14" class="font-size-command" style="margin-right:4px">14</button>\n <button title="15" data-command="15" class="font-size-command" style="margin-right:4px">15</button>\n <button title="16" data-command="16" class="font-size-command" style="margin-right:4px">16</button>\n <button title="17" data-command="17" class="font-size-command" style="margin-right:4px">17</button>\n <button title="18" data-command="18" class="font-size-command" style="margin-right:4px">18</button>\n <button title="19" data-command="19" class="font-size-command" style="margin-right:4px">19</button>\n <button title="21" data-command="21" class="font-size-command" style="margin-right:4px">21</button>\n <button title="24" data-command="24" class="font-size-command" style="margin-right:4px">24</button>\n <button title="28" data-command="28" class="font-size-command" style="margin-right:4px">28</button>\n <button title="32" data-command="32" class="font-size-command" style="margin-right:4px">32</button>\n </div>\n </div>\n\n <div class="flex flex-col">\n <div>\n <label>${t.out("Upper/Lower")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Bold")}" class="textbold-command" style="width:38px;font-family:serif;font-size:14px;text-transform:initial;margin-right:4px">B</button>\n <button title="${t.out("Upper/Lower")}" class="textcase-command" style="width:38px;font-family:serif;font-size:14px;text-transform:initial;margin-right:4px">Aa</button>\n <button title="${t.out("Underline")}" class="textunderline-command" style="width:38px;text-decoration:underline;font-family:serif;font-size:14px;text-transform:initial;margin-right:4px">U</button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-row" style="margin:15px 0 0">\n <div class="flex flex-col">\n <div>\n <label>${t.out("Letter Spacing")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="0" data-command="normal" class="letter-spacing-command" style="margin-right:4px">0</button>\n <button title="25" data-command="wide" class="letter-spacing-command" style="margin-right:4px">25</button>\n <button title="50" data-command="wider" class="letter-spacing-command" style="margin-right:4px">50</button>\n <button title="75" data-command="75" class="letter-spacing-command" style="margin-right:4px">75</button>\n <button title="100" data-command="widest" class="letter-spacing-command" style="margin-right:4px">100</button>\n <button title="125" data-command="125" class="letter-spacing-command" style="margin-right:4px">125</button>\n <button title="150" data-command="150" class="letter-spacing-command" style="margin-right:4px">150</button>\n <button title="175" data-command="175" class="letter-spacing-command" style="margin-right:4px">175</button>\n <button title="200" data-command="200" class="letter-spacing-command" style="margin-right:4px">200</button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-row" style="margin:15px 0 0">\n <div class="flex flex-col" style="margin-right: 20px;">\n <div>\n <label>${t.out("Margin Left")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="0" data-command="0" class="ml-command" style="margin-right:4px">0</button>\n <button title="1" data-command="1" class="ml-command" style="margin-right:4px">1</button>\n <button title="2" data-command="2" class="ml-command" style="margin-right:2px">2</button>\n <button title="3" data-command="3" class="ml-command" style="margin-right:4px">3</button>\n <button title="4" data-command="4" class="ml-command" style="margin-right:4px">4</button>\n <button title="5" data-command="5" class="ml-command" style="margin-right:4px">5</button>\n </div>\n </div>\n\n <div class="flex flex-col">\n <div>\n <label>${t.out("Margin Right")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="0" data-command="0" class="mr-command" style="margin-right:4px">0</button>\n <button title="1" data-command="1" class="mr-command" style="margin-right:4px">1</button>\n <button title="2" data-command="2" class="mr-command" style="margin-right:2px">2</button>\n <button title="3" data-command="3" class="mr-command" style="margin-right:4px">3</button>\n <button title="4" data-command="4" class="mr-command" style="margin-right:4px">4</button>\n <button title="5" data-command="5" class="mr-command" style="margin-right:4px">5</button>\n </div>\n </div>\n </div>\n\n </div>\n <div id="divButtonHover" class="is-tab-content" data-group="button">\n \n <div class="flex flex-row">\n <div class="flex-col" style="margin-right: 40px;">\n <div>\n <label>${t.out("Background Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Background Color")}" class="bg-color-hover-command" style="width:45px;height:40px;border:rgb(0 0 0 / 6%) 1px solid;margin-right:4px"></button>\n </div>\n </div>\n \n <div class="flex-col">\n <div>\n <label>${t.out("Text Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Dark")}" data-command="dark" class="text-color-hover-command" style="margin-right:4px">${t.out("Dark")}</button>\n <button title="${t.out("Light")}" data-command="light" class="text-color-hover-command" style="margin-right:4px">${t.out("Light")}</button>\n <button title="${t.out("Current")}" data-command="current" class="text-color-hover-command" style="margin-right:4px">${t.out("Current")}</button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-col" style="margin:15px 0 0">\n <div>\n <label>${t.out("Border Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Transparent")}" data-command="transparent" class="border-color-hover-command" style="margin-right:4px">${t.out("Transparent")}</button>\n <button title="${t.out("Current")}" data-command="current" class="border-color-hover-command" style="margin-right:4px">${t.out("Current")}</button>\n </div>\n </div>\n\n </div>\n <div id="divMyButtons" class="is-tab-content" data-group="button">\n\n\n <button title="${t.out("Save Current Button")}" class="input-save" style="width:220px;position: relative;z-index: 1;">${t.out("Save Current Button")}</button>\n \n <div id="divMyButtonList"></div>\n\n </div>\n <div id="divButtonTemplates" class="is-tab-content" data-group="button">\n\n <div id="divButtonTemplateList"></div>\n\n </div>\n </div>\n </div>\n `;Om.appendHtml(i,e),n=i.querySelector(".is-modal.buttoneditor");let o,s=n.querySelector(".is-modal-close");Om.addEventListener(s,"click",(()=>{Om.removeClass(n,"active")}));const a=n.querySelector(".bg-color-command");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0),this.builder.simpleColorPicker((e=>{const t=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(t,"bg-"),Om.addClass(t,e),this.applyDefault(t),setTimeout((()=>{const e=Om.getStyle(t,"background-color");a.style.backgroundColor=e}),160),this.builder.opts.onChange()}))}));const r=n.querySelector(".text-color-command");r.addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0),this.builder.simpleColorPicker((e=>{const t=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(t,"text-"),Om.addClass(t,e),this.applyDefault(t),setTimeout((function(){const e=Om.getStyle(t,"color");r.style.backgroundColor=e}),160),this.builder.opts.onChange()}),"text")}));const l=n.querySelector(".bg-color-hover-command");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0),this.builder.simpleColorPicker((e=>{const t=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(t,"hover:bg-"),e&&Om.addClass(t,"hover:"+e),this.applyDefault(t),this.getVisibleBgColor(e,(e=>{l.style.backgroundColor=e})),this.builder.opts.onChange()}))}));document.querySelectorAll(".text-color-hover-command").forEach((e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0);const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;i.classList&&i.classList.forEach((e=>{0===e.indexOf("hover:text-")&&Om.removeClass(i,e)})),"dark"===t?Om.addClass(i,"hover:text-black"):"light"===t&&Om.addClass(i,"hover:text-white"),this.applyDefault(i);document.querySelectorAll(".text-color-hover-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".border-color-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClass(i,"border-transparent"),Om.removeClass(i,"border-current"),"transparent"===t?Om.addClass(i,"border-transparent"):"current"===t&&Om.addClass(i,"border-current"),this.applyDefault(i);document.querySelectorAll(".border-color-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".border-color-hover-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClass(i,"hover:border-transparent"),Om.removeClass(i,"hover:border-current"),"transparent"===t?Om.addClass(i,"hover:border-transparent"):"current"===t&&Om.addClass(i,"hover:border-current"),this.applyDefault(i);document.querySelectorAll(".border-color-hover-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".border-width-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClass(i,"border-0"),Om.removeClass(i,"border"),Om.removeClass(i,"border-2"),"0"===t?Om.addClass(i,"border-0"):"1"===t?Om.addClass(i,"border"):"2"===t&&Om.addClass(i,"border-2"),this.applyDefault(i);document.querySelectorAll(".border-width-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".border-radius-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClass(i,"rounded"),Om.removeClassesByPrefix(i,"rounded-"),"normal"===t?Om.addClass(i,"rounded"):Om.addClass(i,"rounded-"+t),this.applyDefault(i);document.querySelectorAll(".border-radius-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".paddingx-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"px-"),"2"===t&&Om.addClass(i,"px-2"),"3"===t&&Om.addClass(i,"px-3"),"4"===t&&Om.addClass(i,"px-4"),"5"===t&&Om.addClass(i,"px-5"),"6"===t&&Om.addClass(i,"px-6"),"8"===t&&Om.addClass(i,"px-8"),"11"===t&&Om.addClass(i,"px-11"),"12"===t&&Om.addClass(i,"px-12"),"14"===t&&Om.addClass(i,"px-14"),this.applyDefault(i);document.querySelectorAll(".paddingx-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".paddingy-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"py-"),"0"===t&&Om.addClass(i,"py-0"),"1"===t&&Om.addClass(i,"py-1"),"2"===t&&Om.addClass(i,"py-2"),"3"===t&&Om.addClass(i,"py-3"),"4"===t&&Om.addClass(i,"py-4"),"5"===t&&Om.addClass(i,"py-5"),"6"===t&&Om.addClass(i,"py-6"),this.applyDefault(i);document.querySelectorAll(".paddingy-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".font-size-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"size-"),Om.addClass(i,"size-"+t),this.applyDefault(i);document.querySelectorAll(".font-size-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))}));n.querySelector(".textcase-command").addEventListener("click",(()=>{this.builder.uo.saveForUndo();const e=this.builder.activeButton||this.builder.activeLinkButton;Om.hasClass(e,"uppercase")?Om.removeClass(e,"uppercase"):Om.addClass(e,"uppercase"),this.applyDefault(e);const t=n.querySelector(".textcase-command");Om.hasClass(t,"on")?Om.removeClass(t,"on"):Om.addClass(t,"on"),this.builder.opts.onChange()}));n.querySelector(".textunderline-command").addEventListener("click",(()=>{this.builder.uo.saveForUndo();const e=this.builder.activeButton||this.builder.activeLinkButton;Om.hasClass(e,"underline")?(Om.removeClass(e,"underline"),Om.addClass(e,"no-underline")):(Om.removeClass(e,"no-underline"),Om.addClass(e,"underline")),this.applyDefault(e);const t=n.querySelector(".textunderline-command");Om.hasClass(t,"on")?Om.removeClass(t,"on"):Om.addClass(t,"on"),this.builder.opts.onChange()}));n.querySelector(".textbold-command").addEventListener("click",(()=>{this.builder.uo.saveForUndo();const e=this.builder.activeButton||this.builder.activeLinkButton;Om.hasClass(e,"font-semibold")?(Om.removeClass(e,"font-semibold"),Om.addClass(e,"font-normal")):(Om.removeClass(e,"font-normal"),Om.addClass(e,"font-semibold")),this.applyDefault(e);const t=n.querySelector(".textbold-command");Om.hasClass(t,"on")?Om.removeClass(t,"on"):Om.addClass(t,"on"),this.builder.opts.onChange()})),o=document.querySelectorAll(".letter-spacing-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"tracking-"),Om.addClass(i,"tracking-"+t),this.applyDefault(i);document.querySelectorAll(".letter-spacing-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".ml-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"ml-"),Om.addClass(i,"ml-"+t),this.applyDefault(i);document.querySelectorAll(".ml-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".mr-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"mr-"),Om.addClass(i,"mr-"+t),this.applyDefault(i);document.querySelectorAll(".mr-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))}));n.querySelector(".input-save").addEventListener("click",(()=>{const e=this.builder.activeButton||this.builder.activeLinkButton;let t=[];null!=localStorage.getItem("_savedbuttons")&&(t=JSON.parse(localStorage.getItem("_savedbuttons"))),Om.removeClass(e,"active"),Om.removeClass(e,"elm-active"),t.push({id:t.length,className:e.className}),localStorage.setItem("_savedbuttons",JSON.stringify(t)),this.renderMyButtons()}))}this.buttonModal=n}open(){Om.addClass(this.buttonModal,"active"),this.realtime(),this.renderMyButtons(),this.renderTemplates()}realtime(){const e=this.builder.activeButton||this.builder.activeLinkButton,t=this.buttonModal.querySelector(".bg-color-command");let i;t.style.backgroundColor="";const n=this.buttonModal.querySelector(".text-color-command");n.style.backgroundColor="";const o=this.buttonModal.querySelector(".bg-color-hover-command");let s;o.style.backgroundColor="",e.classList&&e.classList.forEach((e=>{0===e.indexOf("hover:bg-")&&this.getVisibleBgColor(e.replace("hover:",""),(e=>{o.style.backgroundColor=e})),0===e.indexOf("bg-")&&this.getVisibleBgColor(e,(e=>{t.style.backgroundColor=e})),0===e.indexOf("text-")&&this.getVisibleTextColor(e,(e=>{n.style.backgroundColor=e,i=e}))})),i||(i=Om.getStyle(e,"color"),n.style.backgroundColor=i),s=this.buttonModal.querySelector(".text-color-hover-command.on"),Om.removeClass(s,"on"),Om.hasClass(e,"hover:text-black")?(s=this.buttonModal.querySelector('.text-color-hover-command[data-command="dark"]'),Om.addClass(s,"on")):Om.hasClass(e,"hover:text-white")?(s=this.buttonModal.querySelector('.text-color-hover-command[data-command="light"]'),Om.addClass(s,"on")):(s=this.buttonModal.querySelector('.text-color-hover-command[data-command="current"]'),Om.addClass(s,"on")),s=this.buttonModal.querySelector(".border-color-hover-command.on"),Om.removeClass(s,"on"),Om.hasClass(e,"hover:border-transparent")?(s=this.buttonModal.querySelector('.border-color-hover-command[data-command="transparent"]'),Om.addClass(s,"on")):Om.hasClass(e,"hover:border-current")&&(s=this.buttonModal.querySelector('.border-color-hover-command[data-command="current"]'),Om.addClass(s,"on")),s=this.buttonModal.querySelector(".border-color-command.on"),Om.removeClass(s,"on"),Om.hasClass(e,"border-transparent")?(s=this.buttonModal.querySelector('.border-color-command[data-command="transparent"]'),Om.addClass(s,"on")):Om.hasClass(e,"border-current")&&(s=this.buttonModal.querySelector('.border-color-command[data-command="current"]'),Om.addClass(s,"on")),s=this.buttonModal.querySelector(".textcase-command"),Om.hasClass(e,"uppercase")?Om.addClass(s,"on"):Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".textunderline-command"),Om.hasClass(e,"underline")?Om.addClass(s,"on"):Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".font-size-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".paddingx-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".paddingy-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".border-radius-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".letter-spacing-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".ml-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".mr-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".textbold-command"),Om.hasClass(e,"font-semibold")?Om.addClass(s,"on"):Om.removeClass(s,"on"),Om.hasClass(e,"rounded")&&(s=this.buttonModal.querySelector('.border-radius-command[data-command="normal"]'),Om.addClass(s,"on")),e.classList&&e.classList.forEach((e=>{if(0===e.indexOf("size-")){let t=e.replace("size-",""),i=this.buttonModal.querySelector(`.font-size-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("px-")){let t=e.replace("px-",""),i=this.buttonModal.querySelector(`.paddingx-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("py-")){let t=e.replace("py-",""),i=this.buttonModal.querySelector(`.paddingy-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("rounded-")){let t=e.replace("rounded-",""),i=this.buttonModal.querySelector(`.border-radius-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("tracking-")){let t=e.replace("tracking-",""),i=this.buttonModal.querySelector(`.letter-spacing-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("ml-")){let t=e.replace("ml-",""),i=this.buttonModal.querySelector(`.ml-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("mr-")){let t=e.replace("mr-",""),i=this.buttonModal.querySelector(`.mr-command[data-command="${t}"]`);Om.addClass(i,"on")}}))}hide(){Om.removeClass(this.buttonModal,"active")}getVisibleBgColor(e,t){const i=document.createElement("div");i.className=e,this.builderStuff.appendChild(i),t(Om.getStyle(i,"background-color")),this.builderStuff.removeChild(i)}getVisibleTextColor(e,t){const i=document.createElement("div");i.className=e,this.builderStuff.appendChild(i),t(Om.getStyle(i,"color")),this.builderStuff.removeChild(i)}renderTemplates(){const e=[{text:"Order Now",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid rounded-full border-current ml-1 mr-1 px-8 py-2 text-pink-600 hover:text-white bg-white hover:bg-pink-500 hover:border-transparent size-18 font-semibold tracking-75"},{text:"Explore",className:"transition-all inline-block cursor-pointer no-underline font-semibold border-2 border-solid tracking-200 rounded-full border-current size-12 ml-1 mr-1 py-0 px-3 text-indigo-600 hover:text-white bg-white hover:bg-indigo-500 hover:border-transparent"},{text:"View Demo",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid border-transparent ml-1 mr-1 hover:border-transparent rounded bg-gray-200 hover:bg-gray-300 size-16 py-1 px-5 font-normal tracking-wide text-gray-800"},{text:"Get Started",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid ml-1 mr-1 rounded size-16 text-black py-1 px-5 font-normal border-current hover: hover:border-current tracking-wide"},{text:"Create",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid border-transparent ml-1 mr-1 hover:border-transparent size-12 rounded bg-yellow-300 text-black bg-white hover:bg-yellow-400 font-normal px-3 py-0 tracking-75"},{text:"Hello!",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid border-current ml-1 mr-1 hover:text-white hover:border-transparent rounded-lg size-24 font-normal py-2 tracking-150 px-12 text-orange-500 bg-white hover:bg-orange-500"},{text:"Build",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid border-transparent ml-1 mr-1 text-violet-700 hover:border-transparent hover:bg-cyan-200 rounded uppercase size-12 tracking-75 px-4 py-1 font-semibold bg-cyan-200"},{text:"Contact",className:"transition-all inline-block border-2 border-solid rounded-none no-underline hover:border-transparent ml-1 mr-1 cursor-pointer bg-white text-red-600 border-current hover:bg-red-600 hover:text-white uppercase size-12 font-semibold py-2 px-6 tracking-150"},{text:"Read More",className:"transition-all inline-block cursor-pointer border-2 border-solid border-transparent ml-1 mr-1 hover:border-transparent rounded size-16 py-1 px-5 font-normal tracking-wide text-gray-800 underline"},{text:"Send a Message",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid ml-1 mr-1 rounded tracking-75 uppercase px-6 py-2 size-12 hover:border-transparent font-semibold bg-gray-200 border-transparent hover:bg-gray-300 text-gray-800"},{text:"Our Works",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid ml-1 mr-1 rounded tracking-75 uppercase px-6 py-2 size-12 border-current hover:text-white hover:border-transparent hover:bg-indigo-500 text-indigo-500 font-semibold"},{text:"Read More",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid mr-1 tracking-75 uppercase py-2 size-14 px-8 rounded font-normal ml-1 border-transparent bg-gray-200 hover:bg-gray-300 hover:border-transparent text-gray-800"},{text:"Get a Quote",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid mr-1 tracking-75 uppercase py-2 size-14 px-8 border-current rounded text-black hover:border-current font-normal ml-1"},{text:"Try Demo",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid border-transparent hover:border-transparent bg-gray-200 hover:bg-gray-300 size-16 text-black font-normal uppercase py-3 px-11 tracking-75 mr-3 ml-0 rounded-md"},{text:"Buy Now",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid size-16 tracking-75 font-normal uppercase px-11 py-3 hover:text-white hover:bg-teal-500 bg-teal-400 text-white border-transparent hover:border-transparent ml-0 mr-2 rounded-md"},{text:"Play",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid ml-1 mr-1 size-16 text-black tracking-75 font-normal uppercase px-11 border-current hover:border-current py-3 rounded"}];let t="";for(let i=0;i<e.length;i++)t+=`<a class="${e[i].className}" href="#">${e[i].text}</a>`;document.querySelector("#divButtonTemplateList").innerHTML=t;let i=this.buttonModal.querySelectorAll("#divButtonTemplateList a");Array.prototype.forEach.call(i,(e=>{e.addEventListener("click",(t=>{this.builder.uo.saveForUndo();const i=this.builder.activeButton||this.builder.activeLinkButton;return this.applyStyles(i,e),this.cleanupOldClasses(i),this.builder.opts.onChange(),t.preventDefault(),!1}))}))}renderMyButtons(){if(!localStorage.getItem("_savedbuttons"))return;let e=JSON.parse(localStorage.getItem("_savedbuttons")),t="";for(let i=0;i<e.length;i++)t+=`<a data-id="${e[i].id}" class="${e[i].className}" href="#">Button<span class="is-button-remove"><svg class="is-icon-flex" style="fill:rgba(255, 255, 266, 1);width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></span></a>`;document.querySelector("#divMyButtonList").innerHTML=t;let i=this.buttonModal.querySelectorAll("#divMyButtonList a");Array.prototype.forEach.call(i,(e=>{e.addEventListener("click",(t=>{this.builder.uo.saveForUndo();const i=this.builder.activeButton||this.builder.activeLinkButton;var n=this.buttonModal.querySelectorAll("#divMyButtonList a");return Array.prototype.forEach.call(n,(e=>{Om.removeClass(e,"active")})),Om.addClass(e,"active"),this.applyStyles(i,e),this.cleanupOldClasses(i),this.builder.opts.onChange(),t.preventDefault(),!1}))})),i=this.buttonModal.querySelectorAll(".is-button-remove"),Array.prototype.forEach.call(i,(e=>{e.addEventListener("click",(e=>{const t=e.target.closest("a").getAttribute("data-id");if(null!=localStorage.getItem("_savedbuttons")){let i=JSON.parse(localStorage.getItem("_savedbuttons"));for(let n=0;n<i.length;n++)if(i[n].id===parseInt(t)){i.splice(n,1);for(let e=0;e<i.length;e++)i[e].id=e;return localStorage.setItem("_savedbuttons",JSON.stringify(i)),this.renderMyButtons(),e.stopImmediatePropagation(),e.preventDefault(),!1}}return e.stopImmediatePropagation(),e.preventDefault(),!1}))}))}applyStyles(e,t){e.className=t.className.replace(" active ","").replace("active ","").replace(" active",""),this.applyDefault(e),this.realtime()}applyDefault(e){Om.addClass(e,"transition-all"),Om.addClass(e,"inline-block"),Om.addClass(e,"cursor-pointer"),Om.addClass(e,"border-2"),Om.addClass(e,"border-solid"),e.removeAttribute("style"),e.removeAttribute("onmouseover"),e.removeAttribute("onmouseout"),e.removeAttribute("data-hover-bgcolor"),e.removeAttribute("data-hover-color"),e.removeAttribute("data-hover-bordercolor")}cleanupOldClasses(e){Om.removeClass(e,"is-btn-ghost1"),Om.removeClass(e,"is-btn-ghost2"),Om.removeClass(e,"is-upper"),Om.removeClass(e,"is-btn-small"),Om.removeClass(e,"is-btn"),Om.removeClass(e,"is-rounded-30"),Om.removeClass(e,"btn-primary"),Om.removeClass(e,"btn-default"),Om.removeClass(e,"btn")}}const Nm=new ni;class Bm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.builderStuff=i,this.buttonEditor=new Rm(e);let n=i.querySelector("#divLinkTool");if(!n){let e=`<div id="divLinkTool" class="is-tool">\n <button title="${t.out("Edit Button")}" data-title="${t.out("Edit Button")}" class="link-button-edit" style="display:none;"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-android-create"></use></svg></button>\n <button title="${t.out("Link")}" data-title="${t.out("Link")}" class="link-edit"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-link"></use></svg></button>\n <button title="${t.out("Duplicate")}" data-title="${t.out("Duplicate")}" class="link-duplicate"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>\n <button title="${t.out("Delete")}" data-title="${t.out("Delete")}" class="link-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n <div class="is-modal createlink">\n <div class="is-modal-content"> \n <label for="inpCreateLinkUrl">${t.out("Link")}:</label>\n <div class="link-src">\n <input id="inpCreateLinkUrl" class="input-url" type="text"/>\n <button title="${t.out("Select")}" class="input-select"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n </div>\n <label style="display:block;margin-top:14px;">\n <input class="input-newwindow" type="checkbox" /> ${t.out("Open new window")}&nbsp;\n </label>\n <label id="lblOpenLightbox" style="${this.builder.useLightbox?"display:block":"display:none"};margin-top:5px;margin-bottom:14px;">\n <input class="input-openlightbox" type="checkbox" /> ${t.out("Open in a lightbox (for image, video or Youtube)")}&nbsp;\n </label>\n\n <label id="lblCreateLinkText" for="inpCreateLinkText" style="margin-top:14px;display:block">${t.out("Text")}:</label>\n <input id="inpCreateLinkText" class="input-text" type="text" style="width:100%;"/>\n \n <label for="inpCreateLinkTitle" style="margin-top:14px;display:block">${t.out("Title")}:</label>\n <input id="inpCreateLinkTitle" class="input-title" type="text" style="width:100%;border-top: none;"/>\n \n <div style="text-align:right;margin-top:14px;">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>\n \n <div class="is-modal fileselect">\n <div class="is-modal-content" style="max-width:800px;height:80%;padding:0;">\n <iframe style="width:100%;height:100%;border: none;display: block;" src="about:blank"></iframe>\n </div>\n </div>\n `;Nm.appendHtml(i,e),n=i.querySelector("#divLinkTool");let o=n.querySelector(".link-edit");Nm.addEventListener(o,"click",(()=>{this.editLink()}));let s=n.querySelector(".link-button-edit");Nm.addEventListener(s,"click",(()=>{this.editButton()}));let a=n.querySelector(".link-duplicate");Nm.addEventListener(a,"click",(()=>{if(this.builder.activeLink)if(this.builder.uo.saveForUndo(),this.builder.opts.emailMode){for(var e=this.builder.activeLink;"table"!==e.tagName.toLowerCase()&&!Nm.hasClass(e,"button");)e=e.parentNode;let t=e=e.parentNode;const i=t.cloneNode(!0);let n=i.querySelector(".icon-active");n&&Nm.removeClass(n,"icon-active"),i.style.paddingRight="15px",t.parentNode.insertBefore(i,t),this.showTool(this.builder.activeLink)}else{const e=this.builder.activeLink.cloneNode(!0);let t=e.querySelector(".icon-active");t&&Nm.removeClass(t,"icon-active"),this.builder.activeLink.parentNode.insertBefore(e,this.builder.activeLink),this.showTool(this.builder.activeLink)}}));let r=n.querySelector(".link-remove");Nm.addEventListener(r,"click",(()=>{if(this.builder.uo.saveForUndo(),this.builder.opts.emailMode){for(var e=this.builder.activeLink;"table"!==e.tagName.toLowerCase()&&!Nm.hasClass(e,"button");)e=e.parentNode;let t=e=e.parentNode;t&&t.parentNode.removeChild(t),n.style.display=""}else this.builder.activeLink&&this.builder.activeLink.parentNode.removeChild(this.builder.activeLink),n.style.display="";this.builder.activeLink.querySelector(".icon-active")&&(this.builder.activeIcon=null)}));let l=this.builderStuff.querySelector(".is-modal.createlink"),d=l.querySelector(".input-ok");Nm.addEventListener(d,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeLink;if(e){let t=l.querySelector(".input-url").value,n=l.querySelector(".input-title").value,o=l.querySelector(".input-text").value;if(""===o&&(o=t),""!==t)e.setAttribute("href",t),l.querySelector(".input-newwindow").checked?e.setAttribute("target","_blank"):e.removeAttribute("target"),l.querySelector(".input-openlightbox").checked?Nm.addClass(e,"is-lightbox"):Nm.removeClass(e,"is-lightbox"),this.builder.activeIcon||(e.innerHTML=o),e.setAttribute("title",n);else{var i=e;if(Nm.selectElementContents(i),document.execCommand("unlink",!1,null),this.builder.activeIcon){this.builder.activeIcon.setAttribute("dummy-sel",""),e.outerHTML=this.builder.activeIcon.outerHTML;let t=document.querySelector("[dummy-sel]");t.removeAttribute("dummy-sel"),this.builder.activeIcon=t,this.builder.activeIcon.click()}}this.builder.opts.onChange()}else{t.restoreSelection();let e=l.querySelector(".input-url").value,i=l.querySelector(".input-title").value,n=l.querySelector(".input-text").value;if(""===n&&(n=e),""!==e){let o;if(this.builder.uo.saveForUndo(),this.builder.activeIcon){let n=this.builder.activeIcon.outerHTML;this.builder.activeIcon.outerHTML=`<a class="__dummy" href="${e}">${n}</a>`,o=document.querySelector(".__dummy"),Nm.removeClass(o,"__dummy"),l.querySelector(".input-newwindow").checked?o.setAttribute("target","_blank"):o.removeAttribute("target"),l.querySelector(".input-openlightbox").checked?Nm.addClass(o,"is-lightbox"):Nm.removeClass(o,"is-lightbox"),o.setAttribute("title",i),this.builder.activeIcon=o.childNodes[0],t.appleMobile||(this.builder.activeIcon.click(),Nm.selectElementContents(this.builder.activeIcon),document.selection?document.selection.empty():window.getSelection().removeAllRanges())}else{document.execCommand("createLink",!1,"http://dummy");let o=document.querySelector('a[href="http://dummy"]');o.setAttribute("href",e),o.innerHTML=n,l.querySelector(".input-newwindow").checked?o.setAttribute("target","_blank"):o.removeAttribute("target"),l.querySelector(".input-openlightbox").checked?Nm.addClass(o,"is-lightbox"):Nm.removeClass(o,"is-lightbox"),o.setAttribute("title",i),t.appleMobile||Nm.selectElementContents(o)}}t.saveSelection(),this.builder.opts.onChange(),this.builder.opts.onRender()}t.hideModal(l)}));let c=l.querySelector(".input-cancel");Nm.addEventListener(c,"click",(()=>{t.hideModal(l),t.appleMobile||t.restoreSelection()}))}this.linkTool=n}click(e,t){let i=!1;e.hasAttribute("data-html")&&(i=!0);let n=!1;e.hasAttribute("data-noedit")&&(n=!0);let o=!1;e.hasAttribute("data-protected")&&(o=!0);const s=t.target;if(this.builder.activeLink=null,this.builder.activeLinkButton=null,"a"!==s.tagName.toLowerCase()&&!Nm.parentsHasTag(s,"a")||i||n||o)this.hideTool();else{if(s.childNodes.length>0&&s.childNodes[0].tagName&&"i"===s.childNodes[0].tagName.toLowerCase()&&1===s.childNodes.length&&""===s.childNodes[0].innerHTML){const e=document.querySelectorAll(".icon-active");Array.prototype.forEach.call(e,(e=>{Nm.removeClass(e,"icon-active")})),Nm.addClass(s.childNodes[0],"icon-active"),Nm.selectElementContents(s.childNodes[0]),this.builder.activeIcon=s.childNodes[0]}if("img"===s.tagName.toLowerCase())return;let e,i;if("a"===s.tagName.toLowerCase())e=s;else{let t=s;for(;"a"!==t.tagName.toLowerCase();)t=t.parentNode;e=t}this.builder.activeLink=e;let n=Nm.getStyle(e,"display");"inline-block"!==n&&"block"!==n||(i=!0),i&&(this.builder.activeLinkButton=e),this.showTool(e),t.preventDefault()}}showTool(e){const t=this.linkTool;"inline-block"===Nm.getStyle(e,"display")||this.builder.activeIcon?(t.querySelector(".link-duplicate").style.display="block",t.querySelector(".link-remove").style.display="block"):(t.querySelector(".link-duplicate").style.display="none",t.querySelector(".link-remove").style.display="none"),this.builder.useButtonPlugin?t.querySelector(".link-button-edit").style.display="none":e&&this.builder.activeLinkButton?t.querySelector(".link-button-edit").style.display="block":t.querySelector(".link-button-edit").style.display="none",Nm.hasClass(this.buttonEditor.buttonModal,"active")&&this.buttonEditor.realtime();let i=e.getBoundingClientRect().top;this.builder.activeIcon&&(i=this.builder.activeIcon.getBoundingClientRect().top);const n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;t.style.top=i-s+window.pageYOffset-3+"px",t.style.left=n+e.offsetWidth*this.builder.opts.zoom-o+"px"}hideTool(){this.linkTool.style.display=""}editButton(){this.buttonEditor.open()}createLink(){const e=new ii(this.builder);let t;if(this.builder.activeLink)t=this.builder.activeLink;else{let i;try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,i=3===e.nodeType?e.parentNode:e):document.selection&&(e=document.selection.createRange(),i=document.selection.createRange().parentElement())}catch(e){if(!this.builder.activeIcon)return;i=this.builder.activeIcon}if("a"===i.nodeName.toLowerCase())t=i;else{let e=i;for(;"a"!==e.nodeName.toLowerCase()&&"BODY"!==e.tagName&&"HTML"!==e.tagName;)e.parentNode&&(e=e.parentNode);"a"===e.nodeName.toLowerCase()&&(t=e)}t&&(this.builder.activeLink=t,"i"===i.nodeName.toLowerCase()&&""===i.innerHTML||(Nm.selectElementContents(this.builder.activeLink),e.saveSelection()))}var i=Nm.getSelected();let n=this.builderStuff.querySelector(".is-modal.createlink");if(this.builder.opts.onFileSelectClick||""!==this.builder.opts.fileselect){n.querySelector(".input-select").style.display="block";let t=n.querySelector(".input-select");Nm.addEventListener(t,"click",(t=>{if(this.builder.opts.onFileSelectClick)this.builder.opts.onFileSelectClick({targetInput:n.querySelector(".input-url"),theTrigger:n.querySelector(".input-select")});else{let t=this.builderStuff.querySelector(".is-modal.fileselect");this.builder.opts.assetRefresh&&(t.querySelector("iframe").src=this.builder.opts.fileselect,this.builder.opts.assetRefresh=!1),"about:blank"===t.querySelector("iframe").src&&(t.querySelector("iframe").src=this.builder.opts.fileselect),e.showModal(t,!1,null,!1)}this.builder.targetInput=n.querySelector(".input-url"),this.builder.targetCallback=null,this.builder.targetAssetType="all",t.preventDefault(),t.stopImmediatePropagation()}))}else n.querySelector(".input-select").style.display="none";if(n.querySelector(".input-url").value="",n.querySelector(".input-newwindow").checked=!1,n.querySelector(".input-openlightbox").checked=!1,n.querySelector(".input-title").value="",n.querySelector(".input-text").value="",n.querySelector("#lblCreateLinkText").style.display="",n.querySelector("#inpCreateLinkText").style.display="",t){let e=t.getAttribute("href"),i=t.getAttribute("target"),o=t.getAttribute("title"),s=t.innerHTML;n.querySelector(".input-url").value=e,n.querySelector(".input-newwindow").checked="_blank"===i,Nm.hasClass(t,"is-lightbox")?n.querySelector(".input-openlightbox").checked=!0:n.querySelector(".input-openlightbox").checked=!1,n.querySelector(".input-title").value=o,n.querySelector(".input-text").value=s}else n.querySelector(".input-text").value=i,this.builder.activeIcon&&(n.querySelector("#lblCreateLinkText").style.display="none",n.querySelector("#inpCreateLinkText").style.display="none");e.showModal(n,!0,(()=>{e.appleMobile||e.restoreSelection()}),!0),n.querySelector(".input-url").focus()}editLink(){const e=new ii(this.builder);let t=this.builder.activeLink,i=this.builderStuff.querySelector(".is-modal.createlink"),n=t.querySelector("i");if(i.querySelector("#lblCreateLinkText").style.display="",i.querySelector("#inpCreateLinkText").style.display="",1===t.childElementCount&&n&&Nm.hasClass(n,"icon")&&(i.querySelector("#lblCreateLinkText").style.display="none",i.querySelector("#inpCreateLinkText").style.display="none"),this.builder.opts.onFileSelectClick||""!==this.builder.opts.fileselect){i.querySelector(".input-select").style.display="block",i.querySelector(".input-url").style.width="444px";let t=i.querySelector(".input-select");Nm.addEventListener(t,"click",(()=>{if(this.builder.opts.onFileSelectClick)this.builder.opts.onFileSelectClick({targetInput:i.querySelector(".input-url"),theTrigger:i.querySelector(".input-select")});else{let t=this.builderStuff.querySelector(".is-modal.fileselect");this.builder.opts.assetRefresh&&(t.querySelector("iframe").src=this.builder.opts.fileselect,this.builder.opts.assetRefresh=!1),"about:blank"===t.querySelector("iframe").src&&(t.querySelector("iframe").src=this.builder.opts.fileselect),e.showModal(t,!1,null,!1)}this.builder.targetInput=i.querySelector(".input-url"),this.builder.targetCallback=null,this.builder.targetAssetType="all"}))}else i.querySelector(".input-select").style.display="none",i.querySelector(".input-url").style.width="100%";let o=t.getAttribute("href"),s=t.getAttribute("target"),a=t.getAttribute("title"),r=t.innerHTML;i.querySelector(".input-url").value=o,i.querySelector(".input-newwindow").checked="_blank"===s,Nm.hasClass(t,"is-lightbox")?i.querySelector(".input-openlightbox").checked=!0:i.querySelector(".input-openlightbox").checked=!1,i.querySelector(".input-title").value=a,i.querySelector(".input-text").value=r,e.showModal(i,!0,null,!0),i.querySelector(".input-url").focus()}}const Im=new ni;class Dm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.builderStuff=i,this.buttonEditor=new Rm(e);let n=i.querySelector("#divButtonTool");if(!n){let e=`<div id="divButtonTool" class="is-tool">\n <button title="${t.out("Edit Button")}" data-title="${t.out("Edit Button")}" class="button-edit"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-android-create"></use></svg></button>\n <button title="${t.out("Duplicate")}" data-title="${t.out("Duplicate")}" class="button-duplicate"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>\n <button title="${t.out("Delete")}" data-title="${t.out("Delete")}" class="button-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n `;Im.appendHtml(i,e),n=i.querySelector("#divButtonTool");let o=n.querySelector(".button-edit");Im.addEventListener(o,"click",(()=>{this.editButton()}));let s=n.querySelector(".button-duplicate");Im.addEventListener(s,"click",(()=>{if(this.builder.activeButton){this.builder.uo.saveForUndo();const e=this.builder.activeButton.cloneNode(!0);let t=e.querySelector(".elm-active");t&&Im.removeClass(t,"elm-active"),this.builder.activeButton.parentNode.insertBefore(e,this.builder.activeButton),this.showTool(this.builder.activeButton)}}));let a=n.querySelector(".button-remove");Im.addEventListener(a,"click",(()=>{this.builder.uo.saveForUndo(),this.builder.activeButton&&this.builder.activeButton.parentNode.removeChild(this.builder.activeButton),n.style.display="",this.builder.activeButton=null}))}this.buttonTool=n}click(e,t){let i=!1;e.hasAttribute("data-html")&&(i=!0);let n=!1;e.hasAttribute("data-noedit")&&(n=!0);let o=!1;e.hasAttribute("data-protected")&&(o=!0);const s=t.target;this.builder.activeButton=null;const a=s.closest("button");!a||i||n||o?this.hideTool():(this.builder.activeButton=a,this.showTool(a),t.preventDefault())}editButton(){this.buttonEditor.open()}showTool(e){Im.hasClass(this.buttonEditor.buttonModal,"active")&&this.buttonEditor.realtime();const t=this.buttonTool;let i=e.getBoundingClientRect().top;const n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;t.style.top=i-s+window.pageYOffset-3+"px",t.style.left=n+e.offsetWidth*this.builder.opts.zoom-o+"px"}hideTool(){this.buttonTool.style.display=""}}const $m=new ni;class Pm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector(".is-spacer-tool");if(!n){let e=`\n <div id="divSpacerTool" class="is-tool is-spacer-tool">\n <button title="${t.out("Decrease")}" data-value="-"><svg class="is-icon-flex"><use xlink:href="#ion-ios-minus-empty"></use></svg></button>\n <button title="${t.out("Increase")}" data-value="+" style="border-left: none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n </div>\n `;$m.appendHtml(i,e),n=i.querySelector(".is-spacer-tool");const o=n.querySelectorAll("button");Array.prototype.forEach.call(o,(e=>{$m.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-value");let i=this.builder.activeSpacer;"-"===t?$m.hasClass(i,"height-300")?($m.removeClass(i,"height-300"),$m.addClass(i,"height-280")):$m.hasClass(i,"height-280")?($m.removeClass(i,"height-280"),$m.addClass(i,"height-260")):$m.hasClass(i,"height-260")?($m.removeClass(i,"height-260"),$m.addClass(i,"height-240")):$m.hasClass(i,"height-240")?($m.removeClass(i,"height-240"),$m.addClass(i,"height-220")):$m.hasClass(i,"height-220")?($m.removeClass(i,"height-220"),$m.addClass(i,"height-200")):$m.hasClass(i,"height-200")?($m.removeClass(i,"height-200"),$m.addClass(i,"height-180")):$m.hasClass(i,"height-180")?($m.removeClass(i,"height-180"),$m.addClass(i,"height-160")):$m.hasClass(i,"height-160")?($m.removeClass(i,"height-160"),$m.addClass(i,"height-140")):$m.hasClass(i,"height-140")?($m.removeClass(i,"height-140"),$m.addClass(i,"height-120")):$m.hasClass(i,"height-120")?($m.removeClass(i,"height-120"),$m.addClass(i,"height-100")):$m.hasClass(i,"height-100")?($m.removeClass(i,"height-100"),$m.addClass(i,"height-80")):$m.hasClass(i,"height-80")?($m.removeClass(i,"height-80"),$m.addClass(i,"height-60")):$m.hasClass(i,"height-60")?($m.removeClass(i,"height-60"),$m.addClass(i,"height-40")):$m.hasClass(i,"height-40")&&($m.removeClass(i,"height-40"),$m.addClass(i,"height-20")):$m.hasClass(i,"height-20")?($m.removeClass(i,"height-20"),$m.addClass(i,"height-40")):$m.hasClass(i,"height-40")?($m.removeClass(i,"height-40"),$m.addClass(i,"height-60")):$m.hasClass(i,"height-60")?($m.removeClass(i,"height-60"),$m.addClass(i,"height-80")):$m.hasClass(i,"height-80")?($m.removeClass(i,"height-80"),$m.addClass(i,"height-100")):$m.hasClass(i,"height-100")?($m.removeClass(i,"height-100"),$m.addClass(i,"height-120")):$m.hasClass(i,"height-120")?($m.removeClass(i,"height-120"),$m.addClass(i,"height-140")):$m.hasClass(i,"height-140")?($m.removeClass(i,"height-140"),$m.addClass(i,"height-160")):$m.hasClass(i,"height-160")?($m.removeClass(i,"height-160"),$m.addClass(i,"height-180")):$m.hasClass(i,"height-180")?($m.removeClass(i,"height-180"),$m.addClass(i,"height-200")):$m.hasClass(i,"height-200")?($m.removeClass(i,"height-200"),$m.addClass(i,"height-220")):$m.hasClass(i,"height-220")?($m.removeClass(i,"height-220"),$m.addClass(i,"height-240")):$m.hasClass(i,"height-240")?($m.removeClass(i,"height-240"),$m.addClass(i,"height-260")):$m.hasClass(i,"height-260")?($m.removeClass(i,"height-260"),$m.addClass(i,"height-280")):$m.hasClass(i,"height-280")&&($m.removeClass(i,"height-280"),$m.addClass(i,"height-300")),this.showTool(i),this.builder.opts.onChange(),this.builder.opts.onRender()}))}))}this.spacerTool=n}click(e){const t=e.target;$m.hasClass(t,"spacer")?(this.builder.activeSpacer=t,document.selection?document.selection.empty():window.getSelection().removeAllRanges(),this.showTool(t)):this.hideTool()}showTool(e){const t=e.getBoundingClientRect().top+window.pageYOffset,i=e.getBoundingClientRect().left;this.spacerTool.style.display="flex";const n=this.spacerTool.offsetWidth,o=this.spacerTool.offsetHeight;this.spacerTool.style.top=t+(e.offsetHeight*this.builder.opts.zoom-o)/2+"px",this.spacerTool.style.left=i+(e.offsetWidth*this.builder.opts.zoom-n)/2+"px"}hideTool(){this.spacerTool.style.display=""}}const Hm=new ni;class zm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n,o=i.querySelector(".is-module-tool");if(!o){let e=`\n <div class="is-tool is-module-tool">\n <button title="${t.out("Settings")}" data-title="${t.out("Settings")}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n\n <input id="hidContentModuleCode" type="hidden" />\n <input id="hidContentModuleSettings" type="hidden" />\n \n <div class="is-modal custommodule">\n <div class="is-modal-content">\n <div class="is-modal-bar is-draggable">\n ${t.out("Module Settings")}\n <div class="is-modal-close" ole="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n <iframe style="position: absolute;top: 0;left: 0;width:100%;height:100%;border:none;border-bottom:90px solid transparent;border-top:40px solid transparent;margin:0;box-sizing:border-box;" src="about:blank"></iframe>\n <div style="width:100%;height:90px;padding: 20px; box-sizing: border-box;position:absolute;left:0;bottom:0;overflow:hidden;text-align:right">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div> \n `;Hm.appendHtml(i,e),o=i.querySelector(".is-module-tool"),n=i.querySelector(".is-modal.custommodule");let s=o.querySelector("button");Hm.addEventListener(s,"click",(()=>{let e=this.builder.activeModule;Hm.removeAttributes(document.querySelectorAll("[data-module-active]"),"data-module-active"),e.setAttribute("data-module-active","1");var t=e.getAttribute("data-module"),i=e.getAttribute("data-module-desc");n.querySelector(".is-modal-bar").innerHTML=i?i+'<div class="is-modal-close" style="z-index:1;width:32px;height:32px;position:absolute;top:0px;right:0px;box-sizing:border-box;padding:0;line-height:32px;font-size: 12px;text-align:center;cursor:pointer;">&#10005;</div>':this.util.out("Module Settings")+'<div class="is-modal-close" style="z-index:1;width:32px;height:32px;position:absolute;top:0px;right:0px;box-sizing:border-box;padding:0;line-height:32px;font-size: 12px;text-align:center;cursor:pointer;">&#10005;</div>';var o=e.getAttribute("data-dialog-width");o&&""!==o||(o="900px");var s=e.getAttribute("data-dialog-height");s&&""!==s||(s="570px"),n.querySelector("div:not(.is-modal-overlay)").style.maxWidth=o,n.querySelector("div:not(.is-modal-overlay)").style.height=s;let a=n.querySelector(".is-modal-close");Hm.addEventListener(a,"click",(()=>{this.util.hideModal(n)}));var r=1;const l=e.querySelectorAll("[data-subblock]");Array.prototype.forEach.call(l,(t=>{if(Hm.hasClass(t.parentNode,"glide__slide--clone"))return;let i=t.innerHTML;e.setAttribute("data-html-"+r,encodeURIComponent(i)),r++})),this.util.showModal(n,!0);var d=new Date;n.querySelector("iframe").src=this.builder.opts.modulePath+t+".html?"+d.getTime()}));let a=n.querySelector(".input-ok");Hm.addEventListener(a,"click",(()=>{let e=n.querySelector("iframe");e.contentWindow.construct&&e.contentWindow.construct(),this.builder.uo.saveForUndo();let t=this.builder.activeModule;t.setAttribute("data-html",encodeURIComponent(this.builderStuff.querySelector("#hidContentModuleCode").value)),t.setAttribute("data-settings",encodeURIComponent(this.builderStuff.querySelector("#hidContentModuleSettings").value));let i=this.builderStuff.querySelector("#hidContentModuleCode").value;i=i.replace(/{id}/g,this.util.makeId()),t.innerHTML="";var o=document.createRange();o.setStart(t,0),t.appendChild(o.createContextualFragment(i));let s=t.querySelectorAll("[data-subblock]");var a=1;Array.prototype.forEach.call(s,(e=>{t.getAttribute("data-html-"+a)&&(e.innerHTML=decodeURIComponent(t.getAttribute("data-html-"+a))),a++}));let r=document.querySelector(".builder-active");r&&this.builder.applyBehaviorOn(r),this.builder.opts.onChange(),this.builder.opts.onRender(),this.util.hideModal(n),this.util.hideControls(),this.util.repositionColumnTool(!0),this.builder.onRefreshTool&&this.builder.onRefreshTool()}));let r=n.querySelector(".input-cancel");Hm.addEventListener(r,"click",(()=>{this.util.hideModal(n)}))}this.moduleTool=o,this.moduleModal=n}click(e){let t=!1;if(e.hasAttribute("data-module")&&(t=!0),t){this.builder.activeModule=e;let t=e;this.moduleTool.style.display="flex";let i=this.moduleTool.offsetWidth,n=t.offsetWidth*this.builder.opts.zoom,o=t.getBoundingClientRect().top+window.pageYOffset,s=t.getBoundingClientRect().left-2;s+=n-i;i+s>window.innerWidth&&(s=t.getBoundingClientRect().left),this.moduleTool.style.top=o+"px",this.moduleTool.style.left=s+"px"}else this.builder.activeModule=null,this.moduleTool.style.display=""}}const Fm=new ni;class jm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new Wo(e);this.htmlUtil=n;let o=i.querySelector(".is-code-tool");if(!o){let e=`\n <div class="is-tool is-code-tool">\n <button title="${t.out("Settings")}" data-title="${t.out("Settings")}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n `;Fm.appendHtml(i,e),o=i.querySelector(".is-code-tool");let n=o.querySelector("button");Fm.addEventListener(n,"click",(()=>{let e=this.builder.activeCodeBlock,i=this.builderStuff.querySelector("#tmp_buildercontent");i&&i.parentNode.removeChild(i),Fm.appendHtml(this.builderStuff,'<div id="tmp_buildercontent" style="position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden;visibility:hidden;"></div>'),i=this.builderStuff.querySelector("#tmp_buildercontent");var n=1;const o=e.querySelectorAll("is-builder");Array.prototype.forEach.call(o,(t=>{let o=t.innerHTML;i=this.builderStuff.querySelector("#tmp_buildercontent"),i.innerHTML=o;let s=i.querySelectorAll(".elm-active");Fm.removeClasses(s,"elm-active"),s=i.querySelectorAll(".elm-inspected"),Fm.removeClasses(s,"elm-inspected"),s=i.querySelectorAll(".cell-active"),Fm.removeClasses(s,"cell-active"),s=i.querySelectorAll(".row-active"),Fm.removeClasses(s,"row-active"),s=i.querySelectorAll(".row-outline"),Fm.removeClasses(s,"row-outline"),s=i.querySelectorAll(".row-outline"),Fm.removeClasses(s,"row-outline"),s=i.querySelectorAll("[data-click]"),Fm.removeAttributes(s,"data-click"),s=i.querySelectorAll("[contenteditable]"),Fm.removeAttributes(s,"contenteditable"),s=i.querySelectorAll("[data-module-active]"),Fm.removeAttributes(s,"data-module-active"),Fm.removeElements(i.querySelectorAll(".is-row-tool")),Fm.removeElements(i.querySelectorAll(".is-rowadd-tool")),Fm.removeElements(i.querySelectorAll(".ovl")),Fm.removeElements(i.querySelectorAll(".row-add-initial")),s=i.querySelectorAll("[data-keep]"),Fm.removeAttributes(s,"data-keep"),o=i.innerHTML.trim(),o=o.replace(/<font/g,"<span").replace(/<\/font/g,"</span"),e.setAttribute("data-html-"+n,encodeURIComponent(o)),n++}));let s,a=decodeURIComponent(e.getAttribute("data-html"));a=a.replace(/{id}/g,this.util.makeId()),i.parentNode.removeChild(i),s=this.builder.opts.htmlSyntaxHighlighting?this.builderStuff.querySelector(".viewhtmlformatted"):this.builderStuff.querySelector(".viewhtml"),s.querySelector(".is-modal-footer").innerHTML=`<button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>`,t.showModal(s,!0);let r=s.querySelector("textarea");a=(0,Fo.html)(a),r.value=a;let l=s.querySelector(".input-ok");if(Fm.addEventListener(l,"click",(()=>{this.builder.uo.saveForUndo();var i=s.querySelector("textarea").value;e.setAttribute("data-html",encodeURIComponent(i)),i=i.replace(/{id}/g,this.util.makeId());for(var n=1;n<=20;n++)i=i.replace("[%HTML"+n+"%]",void 0===e.getAttribute("data-html-"+n)?"":decodeURIComponent(e.getAttribute("data-html-"+n)));e.innerHTML="";var o=document.createRange();o.setStart(e,0),e.appendChild(o.createContextualFragment(i));let a=document.querySelector(".builder-active");a&&this.builder.applyBehaviorOn(a),this.builder.opts.onChange(),this.builder.opts.onRender(),t.hideModal(s),t.hideControls()})),l=s.querySelector(".input-cancel"),Fm.addEventListener(l,"click",(()=>{t.hideModal(s)})),this.builder.opts.htmlSyntaxHighlighting){let e=s.querySelector("textarea");e.setAttribute("data-source-active","1"),e.setAttribute("data-source-ok",".viewhtmlformatted .input-ok"),e.setAttribute("data-source-cancel",".viewhtmlformatted .input-cancel"),s.querySelector("iframe").outerHTML='<iframe id="ifrHtmlFormatted" style="width:100%;height:100%;border: none;" src="about:blank"></iframe>';var d=s.querySelector("iframe").contentWindow.document;d.open(),d.write(this.htmlUtil.getIframeHtml()),d.close()}}))}this.codeTool=o}click(e){let t=!1;if(e.hasAttribute("data-html")&&!e.hasAttribute("data-module")&&(t=!0),t){this.builder.activeCodeBlock=e;let t=e;this.codeTool.style.display="flex";let i=this.codeTool.offsetWidth,n=t.offsetWidth*this.builder.opts.zoom,o=t.getBoundingClientRect().top+window.pageYOffset,s=t.getBoundingClientRect().left-2;s+=n-i;i+s>window.innerWidth&&(s=t.getBoundingClientRect().left),this.codeTool.style.top=o+"px",this.codeTool.style.left=s+"px"}else this.builder.activeCodeBlock=null,this.codeTool.style.display=""}}const Um=new ni;class Wm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n,o=i.querySelector(".is-iframe-tool");if(!o){let e=`\n <div class="is-tool is-iframe-tool">\n <button title="${t.out("Settings")}" data-title="${t.out("Settings")}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n \n <div class="is-modal iframelink">\n <div class="is-modal-content">\n <input class="input-src" type="text" placeholder="Source" style="width:100%;margin-bottom:12px;"/>\n <textarea class="input-embedcode" type="text" placeholder="Embed Code" style="width:100%;height:300px;margin-bottom:12px;display:none;"></textarea>\n <div style="text-align:right">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>\n \n `;Um.appendHtml(i,e),o=i.querySelector(".is-iframe-tool"),n=i.querySelector(".is-modal.iframelink");let s=o.querySelector("button");Um.addEventListener(s,"click",(()=>{let e=this.builder.activeIframe;var t=e.src;n.querySelector(".input-src").value="",n.querySelector(".input-embedcode").value="",null!=/^.*\/\/www.youtube.com\/embed\//.exec(t)||null!=/^.*\/\/player.vimeo.com\/video\//.exec(t)?(n.querySelector(".input-embedcode").style.display="none",n.querySelector(".input-src").style.display="block",n.querySelector(".input-src").value=t,n.querySelector(".input-src").focus()):(n.querySelector(".input-src").style.display="none",n.querySelector(".input-embedcode").style.display="block",n.querySelector(".input-embedcode").value=e.outerHTML),this.util.showModal(n,!0)}));let a=n.querySelector(".input-ok");Um.addEventListener(a,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeIframe,t=e.parentNode;if(""!==n.querySelector(".input-src").value){var i=n.querySelector(".input-src").value,o=/^http[s]?:\/\/(((www.youtube.com\/watch\?(feature=player_detailpage&)?)v=)|(youtu.be\/))([^#&?]*)/.exec(i),s=/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/)|(video\/))?([0-9]+)\/?/.exec(i);if(null===o&&null===s||-1!==i.indexOf("player.vimeo.com")||-1!==i.indexOf("youtube.com/embed/"))e.src=i;else{if(null!=o&&o.length>=7)i="https://www.youtube.com/embed/"+o[6]+"?rel=0";if(null!=s&&s.length>=7)i="https://player.vimeo.com/video/"+s[6];e.src=i}this.builder.opts.onChange()}else{var a=n.querySelector(".input-embedcode").value;""!==a&&(e.outerHTML=a),this.builder.activeIframe=t.querySelector("iframe");let i=document.querySelector(".builder-active");i&&this.builder.applyBehaviorOn(i),this.builder.opts.onChange()}this.util.hideModal(n)}));let r=n.querySelector(".input-cancel");Um.addEventListener(r,"click",(()=>{this.util.hideModal(n)}))}this.iframeTool=o,this.iframeModal=n}click(e){if(Um.hasClass(e.target,"ovl")){e.target.style.display="none",this.builder.activeIframe=e.target.parentNode.querySelector("iframe");let t=this.builder.activeIframe;this.iframeTool.style.display="flex";let i=this.iframeTool.offsetWidth,n=t.offsetWidth*this.builder.opts.zoom,o=t.getBoundingClientRect().top+window.pageYOffset,s=t.getBoundingClientRect().left-2;s+=n-i;i+s>window.innerWidth&&(s=t.getBoundingClientRect().left),this.iframeTool.style.top=o+"px",this.iframeTool.style.left=s+"px"}else{let e=document.querySelectorAll(".ovl");Array.prototype.forEach.call(e,(e=>{e.style.display="block"})),this.builder.activeIframe=null,this.iframeTool.style.display=""}}}const Gm=new ni;class Vm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n,o=i.querySelector(".is-table-tool");if(!o){let e=`\n <div class="is-tool is-table-tool">\n <button title="${t.out("Settings")}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n <div class="is-modal is-modal-content edittable">\n <div class="is-modal-bar is-draggable">\n ${t.out("Table")}\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n <div style="padding:0">\n <div class="is-tabs clearfix" data-group="table">\n <a title="${t.out("Style")}" id="tabTableGeneral" href="" data-content="divTableGeneral" class="active">${t.out("Style")}</a>\n <a title="${t.out("Layout")}" id="tabTableLayout" href="" data-content="divTableLayout">${t.out("Layout")}</a>\n </div>\n <div id="divTableGeneral" class="is-tab-content" data-group="table" style="display:block">\n\n <div style="display:flex;padding-bottom:12px">\n <div style="padding-right:15px">\n <div>${t.out("Background")}:</div>\n <div>\n <button title="${t.out("Background Color")}" class="input-table-bgcolor is-btn-color"></button>\n </div>\n </div>\n <div>\n <div>${t.out("Text Color")}:</div>\n <div>\n <button title="${t.out("Text Color")}" class="input-table-textcolor is-btn-color"></button>\n </div>\n </div>\n </div>\n\n <div style="padding-bottom:12px;">\n <div>${t.out("Border Thickness")}:</div>\n <div>\n <select id="selCellBorderWidth" style="width:120px;"><option value="0">No Border</option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select> \n </div>\n </div>\n \n <div style="padding-bottom:12px;">\n <div>${t.out("Border Color")}:</div>\n <div>\n <button title="${t.out("Border Color")}" class="input-table-bordercolor is-btn-color"></button>\n </div>\n </div>\n \n <div style="padding-bottom:12px;">\n <div>${t.out("Apply To")}:</div>\n <div>\n <select id="selTableApplyTo" style="width:120px;">\n <option value="table">${t.out("Table")}</option>\n <option value="currentrow">${t.out("Current Row")}</option>\n <option value="currentcol">${t.out("Current Column")}</option>\n <option value="evenrows">${t.out("Even Rows")}</option>\n <option value="oddrows">${t.out("Odd Rows")}</option> \n <option value="currentcell">${t.out("Current Cell")}</option> \n </select>\n </div>\n </div>\n\n </div>\n\n <div id="divTableLayout" class="is-tab-content" data-group="table">\n \n <div style="padding-bottom:12px;">\n <div>${t.out("Insert Row")}:</div>\n <div style="display:flex">\n <button class="classic" title="${t.out("Above")}" data-table-cmd="rowabove" title="${t.out("Above")}" style="margin-right:15px"> ${t.out("Above")} </button>\n <button class="classic" title="${t.out("Below")}" data-table-cmd="rowbelow" title="${t.out("Below")}" style=""> ${t.out("Below")} </button>\n </div> \n </div>\n \n <div style="padding-bottom:15px;">\n <div>${t.out("Insert Column")}:</div>\n <div style="display:flex">\n <button class="classic" title="${t.out("Left")}" data-table-cmd="columnleft" title="${t.out("Left")}" style="margin-right:15px"> ${t.out("Left")} </button> \n <button class="classic" title="${t.out("Right")}" data-table-cmd="columnright" title="${t.out("Right")}" style=""> ${t.out("Right")} </button> \n </div> \n </div>\n\n <div style="padding-bottom:15px;">\n <button class="classic" title="${t.out("Delete Row")}" data-table-cmd="delrow" title="Delete Row" style=""> ${t.out("Delete Row")} </button> \n </div>\n\n <div style="padding-bottom:15px;"> \n <button class="classic" title="${t.out("Delete Column")}" data-table-cmd="delcolumn" title="Delete Column" style=""> ${t.out("Delete Column")} </button> \n </div>\n \n <div> \n <button class="classic" title="${t.out("Merge Cell")}" data-table-cmd="mergecell" style="">${t.out("Merge Cell")}</button> \n </div>\n </div>\n </div>\n </div>\n \n `;Gm.appendHtml(i,e),o=i.querySelector(".is-table-tool"),n=i.querySelector(".is-modal.edittable");let s=o.querySelector("button");Gm.addEventListener(s,"click",(()=>{Gm.hasClass(n,"active")?Gm.removeClass(n,"active"):Gm.addClass(n,"active")}));let a=n.querySelector(".is-modal-close");Gm.addEventListener(a,"click",(()=>{Gm.removeClass(n,"active")})),s=n.querySelector(".input-table-bgcolor"),s.addEventListener("click",(e=>{this.builder.uo.saveForUndo();let t=e.target;this.builder.colorPicker.open((e=>{if(this.builder.activeTd){var i=n.querySelector("#selTableApplyTo").value,o=this.builder.activeTable,s=this.builder.activeTd.parentNode,a=this.builder.activeTd;"currentcell"===i&&(this.builder.activeTd.style.backgroundColor=e);for(var r=0;r<o.rows.length;r++)for(var l=o.rows[r],d=0;d<l.cells.length;d++){var c=l.cells[d];("table"===i||"evenrows"===i&&Ym(r+1)||"oddrows"===i&&!Ym(r+1)||"currentrow"===i&&l===this.builder.activeTd.parentNode||"currentcol"===i&&d===Xm(o,s,a))&&(c.style.backgroundColor=e)}t.style.backgroundColor=e}}),s.style.backgroundColor)})),s=n.querySelector(".input-table-textcolor"),s.addEventListener("click",(e=>{this.builder.uo.saveForUndo();let t=e.target;this.builder.colorPicker.open((e=>{if(this.builder.activeTd){var i=n.querySelector("#selTableApplyTo").value,o=this.builder.activeTable,s=this.builder.activeTd.parentNode,a=this.builder.activeTd;"currentcell"===i&&(this.builder.activeTd.style.color=e);for(var r=0;r<o.rows.length;r++)for(var l=o.rows[r],d=0;d<l.cells.length;d++){var c=l.cells[d];("table"===i||"evenrows"===i&&Ym(r+1)||"oddrows"===i&&!Ym(r+1)||"currentrow"===i&&l===this.builder.activeTd.parentNode||"currentcol"===i&&d===Xm(o,s,a))&&(c.style.color=e)}t.style.backgroundColor=e}}),s.style.backgroundColor)})),s=n.querySelector(".input-table-bordercolor"),s.addEventListener("click",(e=>{this.builder.uo.saveForUndo();let t=e.target;this.builder.colorPicker.open((e=>{if(this.builder.activeTd){var i=n.querySelector("#selCellBorderWidth").value;"0"===i&&(n.querySelector("#selCellBorderWidth").value=1,i=1);var o=n.querySelector("#selTableApplyTo").value,s=this.builder.activeTable,a=this.builder.activeTd.parentNode,r=this.builder.activeTd;"currentcell"===o&&(this.builder.activeTd.style.borderWidth=i+"px",this.builder.activeTd.style.borderStyle="solid",this.builder.activeTd.style.borderColor=e);for(var l=0;l<s.rows.length;l++)for(var d=s.rows[l],c=0;c<d.cells.length;c++){var u=d.cells[c];("table"===o||"evenrows"===o&&Ym(l+1)||"oddrows"===o&&!Ym(l+1)||"currentrow"===o&&d===this.builder.activeTd.parentNode||"currentcol"===o&&c===Xm(s,a,r))&&(u.style.borderWidth=i+"px",u.style.borderStyle="solid",u.style.borderColor=e)}t.style.backgroundColor=e}}),s.style.backgroundColor)}));let r=n.querySelector("#selCellBorderWidth");r.addEventListener("change",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=r.value,t=n.querySelector(".input-table-bordercolor").style.backgroundColor;""===t&&(t="#000000");var i=n.querySelector("#selTableApplyTo").value,o=this.builder.activeTable,s=this.builder.activeTd.parentNode,a=this.builder.activeTd;"currentcell"===i&&(this.builder.activeTd.style.borderWidth=e+"px",this.builder.activeTd.style.borderStyle="solid",this.builder.activeTd.style.borderColor=t,"0"===e&&(this.builder.activeTd.style.borderWidth="",this.builder.activeTd.style.borderStyle="",this.builder.activeTd.style.borderColor="",n.querySelector(".input-table-bordercolor").style.backgroundColor=""));for(var l=0;l<o.rows.length;l++)for(var d=o.rows[l],c=0;c<d.cells.length;c++){var u=d.cells[c];("table"===i||"evenrows"===i&&Ym(l+1)||"oddrows"===i&&!Ym(l+1)||"currentrow"===i&&d===this.builder.activeTd.parentNode||"currentcol"===i&&c===Xm(o,s,a))&&(u.style.borderWidth=e+"px",u.style.borderStyle="solid",u.style.borderColor=t,"0"===e&&(u.style.borderWidth="",u.style.borderStyle="",u.style.borderColor="",n.querySelector(".input-table-bordercolor").style.backgroundColor=""))}this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="rowabove"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable,t=this.builder.activeTd.parentNode,i=e.insertRow(t.rowIndex);for(var n=0;n<t.cells.length;n++){var o=i.insertCell(i.cells.length);o.setAttribute("style",this.builder.activeTd.getAttribute("style")),o.setAttribute("valign","top"),o.innerHTML="<br>"}this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="rowbelow"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable,t=this.builder.activeTd.parentNode,i=e.insertRow(t.rowIndex+1);for(var n=0;n<t.cells.length;n++){var o=i.insertCell(i.cells.length);o.setAttribute("style",this.builder.activeTd.getAttribute("style")),o.setAttribute("valign","top"),o.innerHTML="<br>"}this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="columnleft"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable;for(var t=this.builder.activeTd.cellIndex,i=0;i<e.rows.length;i++){var n=e.rows[i].insertCell(t);n.setAttribute("style",this.builder.activeTd.getAttribute("style")),n.setAttribute("valign","top"),n.innerHTML="<br>"}this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="columnright"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable;for(var t=this.builder.activeTd.cellIndex,i=0;i<e.rows.length;i++){var n=e.rows[i].insertCell(t+1);n.setAttribute("style",this.builder.activeTd.getAttribute("style")),n.setAttribute("valign","top"),n.innerHTML="<br>"}this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="delrow"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable,t=this.builder.activeTd.parentNode;e.deleteRow(t.rowIndex),this.builder.activeTable=null,this.builder.activeTd=null,0===e.rows.length&&e.parentNode.removeChild(e),this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="delcolumn"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable;for(var t=this.builder.activeTd.cellIndex,i=0;i<e.rows.length;i++)e.rows[i].deleteCell(t);this.builder.activeTable=null,this.builder.activeTd=null,0===e.rows[0].cells.length&&e.parentNode.removeChild(e),this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="mergecell"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable,t=this.builder.activeTd.parentNode,i=this.builder.activeTd;i.colSpan=i.colSpan+1,i.cellIndex+1<e.rows[t.rowIndex].cells.length&&e.rows[t.rowIndex].deleteCell(i.cellIndex+1),this.builder.opts.onChange()}))}this.tableTool=o,this.tableModal=n}click(e){if(Gm.parentsHasElement(e.target,"table")){let t,i,n=e.target;if("td"===n.tagName.toLowerCase())t=n;else{for(;"td"!==n.tagName.toLowerCase();)n=n.parentNode;t=n}for(;"table"!==n.tagName.toLowerCase();)n=n.parentNode;if(i=n,Gm.hasClass(i,"default")){this.builder.activeTd=t,this.builder.activeTable=i;let e=i;this.tableTool.style.display="flex";let n=this.tableTool.offsetWidth,o=e.offsetWidth*this.builder.opts.zoom,s=e.getBoundingClientRect().top+window.pageYOffset,a=e.getBoundingClientRect().left-2;a+=o-n;n+a>window.innerWidth&&(a=e.getBoundingClientRect().left),this.tableTool.style.top=s+"px",this.tableTool.style.left=a+"px"}else this.builder.activeTd=null,this.builder.activeTable=null,this.tableTool.style.display=""}else this.builder.activeTd=null,this.builder.activeTable=null,this.tableTool.style.display="";if(Gm.hasClass(this.tableModal,"active")&&this.builder.activeTable){let e=this.builder.activeTd;this.tableModal.querySelector(".input-table-bgcolor").style.backgroundColor=e.style.backgroundColor,this.tableModal.querySelector(".input-table-textcolor").style.backgroundColor=e.style.color,this.tableModal.querySelector(".input-table-bordercolor").style.backgroundColor=e.style.borderColor,this.tableModal.querySelector("#selCellBorderWidth").value=parseInt(e.style.borderWidth)}else this.tableModal.querySelector(".input-table-bgcolor").style.backgroundColor="",this.tableModal.querySelector(".input-table-textcolor").style.backgroundColor="",this.tableModal.querySelector(".input-table-bordercolor").style.backgroundColor="",this.tableModal.querySelector("#selCellBorderWidth").value=0}}function Ym(e){return e%2==0}function Xm(e,t,i){for(var n=0,o=!1,s=0;s<t.cells.length;s++)!1===o&&(n+=t.cells[s].colSpan),i===t.cells[s]&&(o=!0);return(n-=i.colSpan-1)-1}const Km=new ni;class Zm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector(".is-video-tool");if(!n){let e=`\n <div class="is-tool is-video-tool">\n <button title="${t.out("Settings")}" data-title="${t.out("Settings")}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n \n <div class="is-modal videolink">\n <div class="is-modal-content">\n <label for="inpVideoLinkSource" style="display:block">${t.out("Source")}:</label>\n <div class="video-url">\n <input id="inpVideoLinkSource" class="input-url" type="text"/>\n <button title="${t.out("Select")}" class="input-select" style="flex:none;width:50px;height:50px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <div class="video-larger1" style="position:relative;flex:none;width:50px;height:50px;box-shadow: 0px 3px 6px -6px rgba(0, 0, 0, 0.32);">\n <form class="form-upload-larger" target="frameTargetVideoUpload" method="post" action="${this.builder.opts.videoHandler}" enctype="multipart/form-data" style="position:absolute;top:0;left:0;width:100%;height:100%;">\n <input id="hidRefId5" name="hidRefId" type="hidden" value="" />\n <svg class="is-icon-flex" style="position: absolute;top: 16px;left: 15px;width: 18px;height: 18px;"><use xlink:href="#ion-ios-film-outline"></use></svg>\n <input title="${t.out("Select")}" id="fileVideo1" name="fileImage" type="file" accept="video/mp4" style="position:absolute;top:-30px;left:0;width:100%;height:80px;opacity: 0;cursor: pointer;">\n </form>\n\n <iframe id="frameTargetVideoUpload" name="frameTargetVideoUpload" src="about:blank" style="width:1px;height:1px;position:absolute;top:0;right:-100000px"></iframe>\n </div>\n </div>\n \n <label style="display:block;margin-top:14px;">\n <input class="input-video-controls" type="checkbox" /> ${t.out("Show Controls")}&nbsp;\n </label>\n <label style="display:block;margin-top:5px;">\n <input class="input-video-loop" type="checkbox" /> ${t.out("Loop")}&nbsp;\n </label>\n <label style="display:block;margin-top:5px;">\n <input class="input-video-autoplay" type="checkbox" /> ${t.out("Autoplay")}&nbsp;\n </label>\n \n <div style="text-align:right;margin-top:14px;">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>\n\n <div class="is-modal videoselect" style="z-index:10005">\n <div style="max-width:800px;height:80%;padding:0;">\n <iframe style="width:100%;height:100%;border: none;display: block;" src="about:blank"></iframe>\n </div>\n </div>\n `;Km.appendHtml(i,e),n=i.querySelector(".is-video-tool");const o=i.querySelector(".is-modal.videolink");this.videoTool=n,this.videoModal=o;let s=this.videoTool.querySelector("button");Km.addEventListener(s,"click",(()=>{let e=this.builder.activeVideo,t=e.querySelector("source"),i="";t&&(i=t.getAttribute("src")),o.querySelector(".input-url").value=i;const n=o.querySelector(".input-video-controls");e.hasAttribute("controls")?n.checked=!0:n.checked=!1;const s=o.querySelector(".input-video-loop");e.hasAttribute("loop")?s.checked=!0:s.checked=!1;const a=o.querySelector(".input-video-autoplay");e.hasAttribute("autoplay")?a.checked=!0:a.checked=!1,this.util.showModal(o,!0)})),""!==this.builder.opts.videoHandler||this.builder.opts.onVideoUpload||(o.querySelector(".video-larger1").style.display="none"),this.builder.opts.onVideoSelectClick||""!==this.builder.opts.videoSelect||(o.querySelector(".input-select").style.display="none");let a=o.querySelector(".input-select");a&&Km.addEventListener(a,"click",(()=>{if(this.builder.opts.onVideoSelectClick)this.builder.opts.onVideoSelectClick({targetInput:o.querySelector(".input-url"),theTrigger:a});else{let e=i.querySelector(".is-modal.videoselect"),n=e.querySelector("iframe");this.builder.opts.assetRefresh&&(n.src=this.builder.opts.videoSelect),"about:blank"===n.src&&(n.src=this.builder.opts.videoSelect),t.showModal(e)}this.builder.targetInput=o.querySelector(".input-url"),this.builder.targetCallback=null,this.builder.targetAssetType="video"}));let r=o.querySelector("#fileVideo1");Km.addEventListener(r,"change",(e=>{let t=r;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;Km.addClass(i,"please-wait"),o.querySelector("#hidRefId5").value=this.builder.opts.customval,this.builder.opts.onVideoUpload?this.builder.opts.onVideoUpload(e):i.submit(),r.value=""}));let l=o.querySelector(".input-ok");Km.addEventListener(l,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeVideo;if(o.querySelector(".input-video-controls").checked?e.setAttribute("controls",""):e.removeAttribute("controls"),o.querySelector(".input-video-loop").checked?e.setAttribute("loop",""):e.removeAttribute("loop"),o.querySelector(".input-video-autoplay").checked?e.setAttribute("autoplay",""):e.removeAttribute("autoplay"),""!==o.querySelector(".input-url").value){let t=o.querySelector(".input-url").value,i=e.querySelector("source");t!==i.getAttribute("src")&&(i&&i.setAttribute("src",t),setTimeout((function(){e.pause(),e.load()}),100)),this.builder.opts.onChange()}this.util.hideModal(o)}));let d=o.querySelector(".input-cancel");Km.addEventListener(d,"click",(()=>{this.util.hideModal(o)}))}}click(e){let t=e.target;if("video"===t.tagName.toLowerCase()){this.builder.activeVideo=t,this.videoTool.style.display="flex";let e=this.videoTool.offsetWidth,i=t.offsetWidth*this.builder.opts.zoom,n=t.getBoundingClientRect().top+window.pageYOffset,o=t.getBoundingClientRect().left;o+=i-e;e+o>window.innerWidth&&(o=t.getBoundingClientRect().left),this.videoTool.style.top=n+"px",this.videoTool.style.left=o+"px"}else this.builder.activeVideo=null,this.videoTool.style.display=""}}const Qm=new ni;class Jm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector("#divSvgTool");if(!n){let e='\n <div id="divSvgTool" class="is-tool">\n \n </div>\n ';Qm.appendHtml(i,e),n=i.querySelector("#divSvgTool")}this.svgTool=n}click(){}}const ev=new ni;class tv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i,this.hyperlink=new Bm(e),this.button=new Dm(e),this.image=new Mm(e),this.spacer=new Pm(e),this.module=new zm(e),this.code=new jm(e),this.iframe=new Wm(e),this.table=new Vm(e),this.video=new Zm(e),this.svg=new Jm(e),window.addEventListener("keydown",(e=>{if(46===e.keyCode&&this.builder.activeIcon&&ev.parentsHasClass(e.target,"is-builder")){if("a"===this.builder.activeIcon.parentNode.tagName.toLowerCase()&&1===this.builder.activeIcon.parentNode.childNodes.length){let e=this.builder.activeIcon.parentNode;e.parentNode.removeChild(e);i.querySelector("#divLinkTool").style.display=""}else this.builder.activeIcon.parentNode.removeChild(this.builder.activeIcon);e.preventDefault()}if(8===e.keyCode&&this.builder.activeIcon&&ev.parentsHasClass(e.target,"is-builder")){if("a"===this.builder.activeIcon.parentNode.tagName.toLowerCase()&&1===this.builder.activeIcon.parentNode.childNodes.length){let e=this.builder.activeIcon.parentNode;e.parentNode.removeChild(e);i.querySelector("#divLinkTool").style.display=""}else this.builder.activeIcon.parentNode.removeChild(this.builder.activeIcon);e.preventDefault()}}),!1)}applyBehavior(e){let t=!1;e.hasAttribute("data-html")&&(t=!0);let i=!1;e.hasAttribute("data-noedit")&&(i=!0);let n=!1;if(e.hasAttribute("data-protected")&&(n=!0),t||i||n){if(i){let t=e.querySelectorAll("[contenteditable]");Array.prototype.forEach.call(t,(e=>{e.contentEditable=!1}))}return}let o=e.querySelectorAll(".is-social");Array.prototype.forEach.call(o,(e=>{e.contentEditable=!1}));let s=e.querySelectorAll(".spacer");Array.prototype.forEach.call(s,(e=>{e.contentEditable=!1}));let a=e.querySelectorAll("hr");Array.prototype.forEach.call(a,(e=>{e.contentEditable=!1}));let r=e.querySelectorAll("a");Array.prototype.forEach.call(r,(t=>{"inline-block"===ev.getStyle(t,"display")&&(t.contentEditable=!0,t.parentNode!==e&&(t.parentNode.contentEditable=!1))}));let l=e.querySelectorAll(".embed-responsive");Array.prototype.forEach.call(l,(e=>{let t=e.querySelector(".ovl");t||(ev.appendHtml(e,'<div class="ovl" style="position:absolute;background:#fff;opacity:0.01;cursor:pointer;top:0;left:0px;width:100%;height:100%;z-index:1"></div>'),t=e.querySelector(".ovl"),ev.addEventListener(t,"click",(()=>{t.style.display="none"})))}))}click(e,t){const i=t.target;let n=!1;e.hasAttribute("data-noedit")&&(n=!0);let o=!1;e.hasAttribute("data-protected")&&(o=!0);let s=!1,a=!1;if(e.hasAttribute("data-html")&&(s=!0,ev.parentsHasAttribute(i,"data-subblock")&&(a=!0)),!s&&!n&&!o||a){const n=document.querySelectorAll(".icon-active");Array.prototype.forEach.call(n,(e=>{ev.removeClass(e,"icon-active")})),this.builder.activeIcon=null,"i"===i.tagName.toLowerCase()&&""===i.innerHTML&&(ev.addClass(i,"icon-active"),ev.selectElementContents(i),this.builder.activeIcon=i,document.selection?document.selection.empty():window.getSelection().removeAllRanges()),this.image.click(t),this.button.click(e,t),this.hyperlink.click(e,t),"a"!==i.tagName.toLowerCase()&&!ev.parentsHasTag(i,"a")||s||t.preventDefault(),this.table.click(t),this.iframe.click(t),this.video.click(t),this.spacer.click(t),this.svg.click(t)}else if(this.util.hideControls(),"img"===t.target.tagName.toLowerCase()&&t.target.hasAttribute("data-image-embed")){if(this.image.click(t),t.target.hasAttribute("data-sync")){let e=t.target;e.setAttribute("data-src",e.src)}}else"img"===t.target.tagName.toLowerCase()&&e.hasAttribute("data-image-allowed")&&this.image.click(t);this.code.click(e,t),this.module.click(e,t)}}const iv=new ni;class nv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.grid=new ts(e);const n=new Wo(e);let o=i.querySelector(".rowmore"),s="";if(e.opts.rowHtmlEditor&&(s=`<button type="button" title="${t.out("HTML")}" class="row-html">\n <span><svg class="is-icon-flex" style="margin-right:-3px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></span>${t.out("HTML")}\n </button>`),!o){let e=`<div class="is-pop rowmore" style="z-index:10002;">\n <div style="display:flex;flex-flow:wrap;">\n <button type="button" title="${t.out("Move Up")}" class="row-up"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></span>${t.out("Move Up")}</button>\n <button type="button" title="${t.out("Move Down")}" class="row-down"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></span>${t.out("Move Down")}</button>\n <button type="button" title="${t.out("Duplicate")}" class="row-duplicate"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></span>${t.out("Duplicate")}</button>\n ${s}\n </div>\n </div>`;iv.appendHtml(i,e),o=i.querySelector(".rowmore");let a=o.querySelector(".row-up");a&&iv.addEventListener(a,"click",(()=>{this.grid.moveRowUp(),t.clearControls()})),a=o.querySelector(".row-down"),a&&iv.addEventListener(a,"click",(()=>{this.grid.moveRowDown(),t.clearControls()})),a=o.querySelector(".row-duplicate"),a&&iv.addEventListener(a,"click",(()=>{this.grid.duplicateRow(),this.rowMore.style.display="",t.clearControls()})),a=o.querySelector(".row-html"),a&&iv.addEventListener(a,"click",(()=>{t.cellSelected()&&n.view("row")}))}this.rowMore=o,document.addEventListener("mousedown",(e=>{var t=(e=e||window.event).target||e.srcElement;if("flex"===o.style.display){let e=iv.parentsHasClass(t,"rowmore"),i=iv.parentsHasClass(t,"row-more");if(e||i)return;o.style.display=""}}))}render(e){const t=this.builder.util,i=this.builder.builderStuff;let n=this.rowMore,o=e.querySelector(".is-row-tool");if(!o){let s=`<div class="is-tool is-row-tool">\n <div title="${t.out("Move")}" class="row-handle" style="width:100%;cursor:move;text-align:center;"><svg class="is-icon-flex"><use xlink:href="#ion-move"></use></svg></div>\n <button type="button" title="${t.out("More")}" class="row-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <button type="button" title="${t.out("Grid Editor")}" class="row-grideditor"><svg class="is-icon-flex"><use xlink:href="#ion-grid"></use></svg></button>\n <button type="button" title="${t.out("Delete")}" class="row-remove"><svg class="is-icon-flex"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>`;iv.appendHtml(e,s),o=e.querySelector(".is-row-tool");let a=o.querySelectorAll("[title]");Array.prototype.forEach.call(a,(e=>{e.setAttribute("data-title",e.getAttribute("title")),this.builder.tooltip.set(e,5,3)}));let r=o.querySelector(".row-grideditor");r&&iv.addEventListener(r,"click",(()=>{const e=i.querySelector(".grideditor");if(iv.hasClass(e,"active")){iv.removeClass(e,"active");const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(e=>{e.removeAttribute("grideditor")}))}else{iv.addClass(e,"active");const i=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(i,(e=>{e.setAttribute("grideditor","")}));const n=e.querySelector(".grid-outline");document.querySelector(this.builder.opts.container).hasAttribute("gridoutline")?iv.addClass(n,"on"):iv.removeClass(n,"on");const o=e.querySelector(".cell-locking");let s=t.cellSelected();s&&s.hasAttribute("data-noedit")?iv.addClass(o,"on"):iv.removeClass(o,"on")}})),r=o.querySelector(".row-more"),r&&iv.addEventListener(r,"click",(()=>{let e=t.cellSelected();if(!e)return;let s=e.parentNode;iv.removeClass(s,"row-outline");let a=i.querySelector(".is-column-tool");iv.removeClass(a,"active");const r=o.querySelector(".row-more"),l=r.getBoundingClientRect().top+window.pageYOffset,d=r.getBoundingClientRect().left+window.pageXOffset;n.style.display="flex",n.style.top=l-8+"px",iv.removeClass(n,"arrow-bottom"),iv.removeClass(n,"arrow-left"),iv.removeClass(n,"arrow-right"),iv.removeClass(n,"center"),iv.removeClass(n,"right"),iv.removeClass(n,"left"),"right"===this.builder.opts.rowTool?(n.style.left=d-n.offsetWidth-10+"px",iv.addClass(n,"arrow-right"),iv.addClass(n,"left")):(n.style.left=d+35+"px",iv.addClass(n,"arrow-left"),iv.addClass(n,"left"));let c=n.querySelector(".row-html"),u=n.querySelector(".row-duplicate");e.getAttribute("data-html")?(c&&(c.style.display="none"),u&&(u.style.display="none")):(c&&(c.style.display=""),u&&(u.style.display=""))})),r=o.querySelector(".row-remove"),r&&iv.addEventListener(r,"click",(()=>{this.grid.removeRow(),t.clearControls()}))}}}const ov=new ni;class sv{constructor(e){this.builder=e}render(e){const t=this.builder.util,i=Jo(this.builder);let n=e.querySelector(".is-rowadd-tool");if(!n){const i=`<div class="is-rowadd-tool" style="height:0">\n <button type="button" title="${t.out("Add")}" title="${t.out("Add")}" style="outline:none;line-height:1;margin:0;padding:0;cursor:pointer;background-color:rgba(255,255,255,0.9);"><svg class="is-icon-flex" style="fill:rgba(0, 0, 0, 0.8);width:17px;height:17px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n </div>`;ov.appendHtml(e,i),n=e.querySelector(".is-rowadd-tool");let o=n.querySelectorAll("[title]");Array.prototype.forEach.call(o,(e=>{e.setAttribute("data-title",e.getAttribute("title")),this.builder.tooltip.set(e,5,3)}))}let o=n.querySelector("button");ov.addEventListener(o,"click",(()=>{i.querySelector(".is-pop-tabs").style.display="none";const e=window.innerHeight,t=o.getBoundingClientRect().top,n=o.getBoundingClientRect().left;i.style.display="flex";const s=i.offsetWidth,a=i.offsetHeight;return e-t>a?(i.style.top=t+window.pageYOffset+27+"px",i.style.left=n-s/2+7+"px",ov.removeClass(i,"arrow-bottom"),ov.removeClass(i,"arrow-right"),ov.removeClass(i,"arrow-left"),ov.removeClass(i,"center"),ov.addClass(i,"arrow-top"),ov.addClass(i,"center")):(i.style.top=t+window.pageYOffset-a-8+"px",i.style.left=n-s/2+7+"px",ov.removeClass(i,"arrow-top"),ov.removeClass(i,"arrow-right"),ov.removeClass(i,"arrow-left"),ov.removeClass(i,"center"),ov.addClass(i,"arrow-bottom"),ov.addClass(i,"center")),i.setAttribute("data-mode","row"),!1}))}}class av{constructor(e={}){this.opts=Object.assign(this,{animateModal:!1,elementToAnimate:"",stuffPlacement:"#_cbhtml"},e),this.id=this.makeId();let t=document.querySelector(this.opts.stuffPlacement);t||(t=document.createElement("div"),t.id="_cbhtml",document.body.appendChild(t)),this.builderStuff=t;const i=document.createElement("div");i.id=this.id,t.appendChild(i),this.objStuff=i}confirm(e,t,i){let n=`<div class="is-modal is-confirm">\n <div class="is-modal-content" style="padding-bottom:20px;">\n <p>${e}</p>\n <button title="${this.out("Delete")}" class="input-ok classic">${this.out("Delete")}</button>\n </div>\n </div>`,o=this.objStuff.querySelector(".is-confirm");o||(this.objStuff.insertAdjacentHTML("beforeend",n),o=this.builderStuff.querySelector(".is-confirm")),this.show(o,!1,(()=>{o.parentNode.removeChild(o),t(!1)}),i);let s=o.querySelector(".is-confirm .input-ok");this.addEventListener(s,"click",(()=>{this.hide(o),o.parentNode.removeChild(o),t(!0)}))}show(e,t,i,n){this.addClass(e,"active");let o=!1;if(o=null!=n?n:this.opts.animateModal,o){const e=document.querySelectorAll(this.opts.elementToAnimate);Array.prototype.forEach.call(e,(e=>{e.style.transform=`scale(${this.builder.opts.zoom-.02})`,e.style.WebkitTransform=`scale(${this.builder.opts.zoom-.02})`,e.style.MozTransform=`scale(${this.builder.opts.zoom-.02})`,e.setAttribute("scaled-down","1")}))}if(!e.querySelector(".is-modal-overlay")){let n;if(n=t?'<div class="is-modal-overlay overlay-stay"></div>':'<div class="is-modal-overlay"></div>',e.insertAdjacentHTML("afterbegin",n),!t){let t=e.querySelector(".is-modal-overlay");this.addEventListener(t,"click",(()=>{i&&i(),this.hide(e)}))}}}hide(e){if(""!==this.opts.elementToAnimate){const e=document.querySelectorAll(this.opts.elementToAnimate);Array.prototype.forEach.call(e,(e=>{e.getAttribute("scaled-down")&&(e.style.transform=`scale(${this.builder.opts.zoom})`,e.style.WebkitTransform=`scale(${this.builder.opts.zoom})`,e.style.MozTransform=`scale(${this.builder.opts.zoom})`,e.removeAttribute("scaled-down"))}))}this.removeClass(e,"active")}makeId(){let e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(let i=0;i<2;i++)e+=t.charAt(Math.floor(Math.random()*t.length));let i="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let e=0;e<5;e++)i+=n.charAt(Math.floor(Math.random()*n.length));return e+i}addClass(e,t){e&&(this.hasClass(e,t)||(0===e.classList.length?e.className=t:e.className=e.className+" "+t))}removeClass(e,t){e&&e.classList.length>0&&(e.className=e.className.replace(t,""))}hasClass(e,t){return!!e&&(e.classList?e.classList.contains(t):new RegExp("\\b"+t+"\\b").test(e.className))}addEventListener(e,t,i){e.addEventListener(t,i)}}class rv{constructor(e={}){this.opts=Object.assign(this,{onPick:function(){},color:"",colors:["#ff9f01","#f57c00","#e64918","#d32f2f","#5d4038","#37474f","#353535","#fbc02c","#b0b42a","#689f39","#c21f5b","#7b21a2","#522da8","#616161","#01b8c9","#009688","#388d3c","#0388d0","#1465c0","#2f3f9e","#9e9e9e"],renderOn:"",animateModal:!1,elementToAnimate:"",stuffPlacement:"#_cbhtml",lang:[]},e),this.id=function(){let e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(let i=0;i<2;i++)e+=t.charAt(Math.floor(Math.random()*t.length));let i="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let e=0;e<5;e++)i+=n.charAt(Math.floor(Math.random()*n.length));return e+i}();let t=document.querySelector(this.opts.stuffPlacement);t||(t=document.createElement("div"),t.id="_cbhtml",t.className="is-ui",document.body.appendChild(t)),this.builderStuff=t;const i=document.createElement("div");i.id=this.id,t.appendChild(i),this.objStuff=i;const n=new av({animateModal:this.opts.animateModal,elementToAnimate:this.opts.elementToAnimate,stuffPlacement:this.opts.stuffPlacement});this.modal=n;let o="";if(this.opts.colors.length>0){o+='<div class="color-default clearfix">';for(var s=0;s<this.opts.colors.length;s++)"#ffffff"===this.opts.colors[s]?o+='<button title="'+this.opts.colors[s]+'" data-color="'+this.opts.colors[s]+'" style="background:'+this.opts.colors[s]+';outline:rgba(222,222,222,0.75) 1px solid"></button>':o+='<button title="'+this.opts.colors[s]+'" data-color="'+this.opts.colors[s]+'" style="background:'+this.opts.colors[s]+';"></button>';o+="</div>"}let a="";for(s=0;s<105;s++)a+=s%2==0?'<div class="dot-1"></div>':'<div class="dot-2"></div>';let r="";for(s=0;s<25;s++)r+=s%2==0?'<div class="dot-3"></div>':'<div class="dot-4"></div>';let l,d=`<div class="pickcolor" style="width:269px;padding:12px;box-sizing:border-box;">\n ${o}\n <div class="color-gradient clearfix"></div>\n\n <div class="div-color-opacity" style="height: 10px; margin: 12px 0px 17px;position:relative;">\n <div style="position:absolute;top:0;left:0;width:100%;height:21px;display:flex;flex-direction:column;flex-flow:wrap">\n ${a}\n </div>\n <input type="range" min="0" max="100" value="100" class="color-opacity is-rangeslider" style="position:relative;background: transparent;margin: 0 !important;">\n </div>\n <div class="clearfix" style="margin:25px 0 3px;">\n <button title="${this.out("B")}" data-color="#000000" style="background:#111;color:#f3f3f3;border:transparent 1px solid;width:35px;height:35px;line-height:35px;font-size:10px;border-right:none;">${this.out("B")}</button>\n <button title="${this.out("W")}" data-color="#ffffff" style="border: rgb(0 0 0 / 6%) 1px solid;background:#fff;color:#111;width:35px;height:35px;line-height:35px;font-size:10px;">${this.out("W")}</button>\n <button title="${this.out("Clear")}" data-color="" class="clear" style="width:140px;height:35px;line-height:35px;border-right:none;">${this.out("Clear")}</button>\n <button title="${this.out("More")}" class="input-hsl" style="width:35px;height:35px;line-height:35px;font-size:10px;"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>\n </div>\n <div style="display:flex">\n <div style="flex-grow: 0;flex-shrink: 0;flex-basis: 37px;height:34px;box-sizing:border-box;margin-top:8px;position:relative;">\n <div style="position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;flex-flow:wrap;overflow:hidden;">\n ${r}\n </div>\n <button class="is-color-preview" style="position:absolute;top:0;left:0;width:100%;height:100%;transition:none;"></button>\n </div>\n <input class="input-text" type="text" style="width:209px;height:35px;margin-top:8px;font-size:13px;"/>\n <button title="${this.out("Apply")}" class="input-ok" style="height:35px;margin-top:8px;"><svg class="is-icon-flex"><use xlink:href="#icon-ok"></use></svg></use></svg></svg></button>\n </div>\n </div>`,c=`<div class="is-modal pickcolor" style="">\n <div class="is-modal-content">\n <div class="is-modal-bar is-draggable"></div>\n <div>\n\n ${o}\n <div class="color-gradient clearfix"></div>\n \n <div class="div-color-opacity" style="height: 10px; margin: 12px 0px 17px;position:relative;">\n <div style="position:absolute;top:0;left:0;width:100%;height:21px;display:flex;flex-direction:column;flex-flow:wrap">\n ${a}\n </div>\n <input type="range" min="0" max="100" value="100" class="color-opacity is-rangeslider" style="position:relative;background: transparent;margin: 0 !important;">\n </div>\n <div class="clearfix" style="margin:25px 0 3px;">\n <button title="${this.out("B")}" data-color="#000000" style="background:#111;color:#f3f3f3;border:transparent 1px solid;width:35px;height:35px;line-height:35px;font-size:10px;border-right:none;">${this.out("B")}</button>\n <button title="${this.out("W")}" data-color="#ffffff" style="background:#fff;color:#111;width:35px;height:35px;line-height:35px;font-size:10px;">${this.out("W")}</button>\n <button title="${this.out("Clear")}" data-color="" class="clear" style="width:140px;height:35px;line-height:35px;border-right:none;">${this.out("Clear")}</button>\n <button title="${this.out("More")}" class="input-hsl" style="width:35px;height:35px;line-height:35px;font-size:10px;"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>\n </div>\n <div style="display:flex">\n <div style="flex-grow: 0;flex-shrink: 0;flex-basis: 37px;height:35px;box-sizing:border-box;margin-top:8px;position:relative;">\n <div style="position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;flex-flow:wrap;overflow:hidden;">\n ${r}\n </div>\n <button class="is-color-preview" style="cursor:default;position:absolute;top:0;left:0;width:100%;height:100%;transition:none;"></button>\n </div>\n <input class="input-text" type="text" style="width:209px;height:35px;margin-top:8px;font-size:13px;"/>\n <button title="${this.out("Apply")}" class="input-ok" style="height:35px;margin-top:8px;"><svg class="is-icon-flex"><use xlink:href="#icon-ok"></use></svg></use></svg></svg></button>\n </div>\n \n </div>\n </div>\n </div>`;""!==this.opts.renderOn?(l=document.querySelector(this.opts.renderOn),l.insertAdjacentHTML("beforeend",d)):(i.insertAdjacentHTML("beforeend",c),l=i.querySelector(".is-modal.pickcolor")),i.insertAdjacentHTML("beforeend",'<div class="is-modal pickcolormore">\n <div class="is-modal-content" style="padding: 12px">\n <div class="is-modal-bar is-draggable"></div>\n <div>\n \n <div class="color-swatch clearfix"></div>\n \n <div class="div-color-hue" style="height: 23px;margin: 10px 0 0;position:relative">\n <input type="range" min="0" max="360" value="0" class="color-hue is-rangeslider" style="position:relative;background:transparent;margin:0 !important;z-index:1">\n </div>\n\n </div>\n </div>\n </div>');const u=i.querySelector(".is-modal.pickcolormore");this.pickcolor=l,this.pickcolormore=u,new ps({selector:"#"+this.id+" .is-draggable"});let p=document.createElement("div");p.style.backgroundColor=this.opts.color;let h,g=p.style.backgroundColor;""!==g&&(h=bv.color(g),this.baseRGB=h);let f=u.querySelector(".color-swatch"),m=l.querySelector(".color-gradient");if(h){let e;e=""!==g?mv(h.r,h.g,h.b):0,uv(f,e);let t=yv(h.r,h.g,h.b);pv(m,e,t[1])}else{let e;e=0,uv(f,e);let t=yv(255,255,255);pv(m,e,t[1])}let v=l.querySelector(".input-hsl");this.addEventListener(v,"click",(()=>{this.modal.show(u,!1,null,!1)}));var b=u.querySelector(".color-hue");b.oninput=()=>{let e=b.value/360;uv(f,361*e)};let y=document.createElement("div");y.style.display="flex",y.style.position="absolute",y.style.width="calc(100% + 1px)",y.style.top=0,y.style.left=0;let _=function(e,t,i,n){let o=[],s=Math.trunc(360/n);for(let a=0;a<n;a++){let n=a*s;o.push(`hsla(${n},${t}%,${e}%,${i})`)}return o}(45,100,1,360);for(s=0;s<_.length-1;s++){let e=document.createElement("div");e.style.backgroundColor=_[s],e.style.width="1px",e.style.height="24px",y.appendChild(e)}u.querySelector(".div-color-hue").appendChild(y);const x=l.querySelector(".color-opacity");x.oninput=()=>{let e=x.value/100,t=this.baseRGB;if(t){let i;i=1===e?"rgb("+t.r+","+t.g+","+t.b+")":"rgba("+t.r+","+t.g+","+t.b+","+e+")",l.querySelector(".is-color-preview").style.backgroundColor=i,l.querySelector(".input-text").value=i,this.opts.onPick(i)}},h&&(h.a?x.value=100*h.a:x.value=100);let w=x.value/100,S="",C="";h&&(S=1*w==1?"rgb("+h.r+","+h.g+","+h.b+")":"rgba("+h.r+","+h.g+","+h.b+","+w+")",C="linear-gradient(90deg, rgba("+h.r+","+h.g+","+h.b+",0), rgba("+h.r+","+h.g+","+h.b+",1))"),l.querySelector(".div-color-opacity .color-opacity").style.backgroundImage=C;let k=l.querySelector(".is-color-preview");k.style.background="none",""!==S&&(k.style.backgroundColor=S);let E=l.querySelector(".input-text");E.value=S,this.addEventListener(E,"keydown",(e=>{13!==e.which&&13!==e.keyCode&&"Enter"!==e.key||(this.setColor(e.target.value),e.preventDefault(),e.stopImmediatePropagation())}));let A=l.querySelector(".input-ok");this.addEventListener(A,"click",(()=>{this.setColor(E.value)}));let q=l.querySelectorAll("[data-color]");Array.prototype.forEach.call(q,(e=>{this.addEventListener(e,"click",(e=>{let t=e.target,i=t.getAttribute("data-color"),n=lv(i);if(this.baseRGB=n,!this.parentsHasClass(t,"color-gradient")&&""!==i)if(n.r===n.g&&n.g===n.b)hv(m);else{let e=mv(n.r,n.g,n.b);uv(f,e),pv(l.querySelector(".color-gradient"),e,yv(n.r,n.g,n.b)[1])}let o=x.value/100,s="",a="";n&&(s=1*o==1?"rgb("+n.r+","+n.g+","+n.b+")":"rgba("+n.r+","+n.g+","+n.b+","+o+")",a="linear-gradient(90deg, rgba("+n.r+","+n.g+","+n.b+",0), rgba("+n.r+","+n.g+","+n.b+",1))"),l.querySelector(".div-color-opacity .color-opacity").style.backgroundImage=a,l.querySelector(".is-color-preview").style.backgroundColor=s,l.querySelector(".input-text").value=s,this.opts.onPick(s)}))})),q=u.querySelectorAll("[data-color]"),Array.prototype.forEach.call(q,(e=>{this.addEventListener(e,"click",(()=>{let t=lv(e.getAttribute("data-color"));this.baseRGB=t;let i=mv(t.r,t.g,t.b),n=yv(t.r,t.g,t.b);pv(m,i,n[1]);let o=x.value/100,s="",a="";t&&(s=1*o==1?"rgb("+t.r+","+t.g+","+t.b+")":"rgba("+t.r+","+t.g+","+t.b+","+o+")",a="linear-gradient(90deg, rgba("+t.r+","+t.g+","+t.b+",0), rgba("+t.r+","+t.g+","+t.b+",1))"),l.querySelector(".div-color-opacity .color-opacity").style.backgroundImage=a,l.querySelector(".is-color-preview").style.backgroundColor=s,l.querySelector(".input-text").value=s,this.opts.onPick(s)}))}))}out(e){if(this.opts.lang){let t=this.opts.lang[e];return t||e}return e}open(e,t){e&&(this.opts.onPick=e),t&&(this.opts.color=t,this.setColor(t,!0)),this.modal.show(this.pickcolor,!1,null,!1)}setColor(e,t){let i=this.pickcolor,n=this.pickcolormore;var o=i.querySelector(".color-opacity");let s,a=i.querySelector(".color-gradient"),r=e;if(-1!==r.indexOf("rgb")&&(s=bv.color(r)),-1!==r.indexOf("#")&&(s=lv(r)),!s){return hv(a),o.value=100,i.querySelector(".div-color-opacity .color-opacity").style.backgroundImage="",i.querySelector(".is-color-preview").style.background="none",void(i.querySelector(".input-text").value="")}if(this.baseRGB=s,s.r===s.g&&s.g===s.b)hv(a);else{let e=n.querySelector(".color-swatch"),t=mv(s.r,s.g,s.b);uv(e,t),pv(a,t,yv(s.r,s.g,s.b)[1])}s.a||0===s.a?o.value=100*s.a:o.value=100;let l=o.value/100,d="",c="";s&&(d=1*l==1?"rgb("+s.r+","+s.g+","+s.b+")":"rgba("+s.r+","+s.g+","+s.b+","+l+")",c="linear-gradient(90deg, rgba("+s.r+","+s.g+","+s.b+",0), rgba("+s.r+","+s.g+","+s.b+",1))"),i.querySelector(".div-color-opacity .color-opacity").style.backgroundImage=c,i.querySelector(".is-color-preview").style.backgroundColor=d,i.querySelector(".input-text").value=d,t||this.opts.onPick(d)}addEventListener(e,t,i){e.addEventListener(t,i)}parentsHasClass(e,t){for(;e;){if("BODY"===e.tagName||"HTML"===e.tagName)return!1;if(!e.classList)return!1;if(e.classList.contains(t))return!0;e=e.parentNode}}}function lv(e){if(""===e)return null;var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function dv(e){var t="0123456789abcdef",i=parseInt(e);return 0===i||isNaN(e)?"00":(i=Math.round(Math.min(Math.max(0,i),255)),t.charAt((i-i%16)/16)+t.charAt(i%16))}function cv(e){return dv(e[0])+dv(e[1])+dv(e[2])}function uv(e,t){let i,n,o=10;if(""===e.innerHTML)for(i=0;i<o;++i){let s=document.createElement("div");for(s.style.width="100%",s.id="row-"+i,e.appendChild(s),n=0;n<o;++n){let o=i*(100/9)+5,s=10*n+5;s>50&&s<=55&&(s=50),o>100&&(o=100);let a="#"+cv(fv(t,o,s)),r=document.createElement("div");r.title=a,r.style.background=a,r.setAttribute("data-color",a),e.querySelector("#row-"+i).appendChild(r)}}else for(i=0;i<o;++i){let s=e.childNodes[i];for(n=0;n<o;++n){let e=s.childNodes[n],o=i*(100/9)+5,a=10*n+5;a>50&&a<=55&&(a=50),o>100&&(o=100);let r="#"+cv(fv(t,o,a));e.title=r,e.style.background=r,e.setAttribute("data-color",r)}}}function pv(e,t,i){let n,o,s=100/7*2-100/7;if(""===e.innerHTML)for(n=0;n<5;++n){let a=document.createElement("div");for(a.style.width="100%",a.id="row-"+n,e.appendChild(a),o=0;o<7;++o){let a=o*(100/7);a+=(-1*(n-5)-1)*(s/5),0===o&&(a=o*(100/7));let r="#"+cv(fv(t,i,a)),l=document.createElement("div");l.title=r,l.style.background=r,l.setAttribute("data-color",r),e.querySelector("#row-"+n).appendChild(l)}}else{let a,r;for(n=0;n<5;++n)for(a=e.childNodes[n],o=0;o<7;++o){r=a.childNodes[o];let e=o*(100/7);e+=(-1*(n-5)-1)*(s/5),6===n&&0===o&&(e=0);let l="#"+cv(fv(t,i,e));r.title=l,r.style.background=l,r.setAttribute("data-color",l)}}}function hv(e){let t,i,n=100/7*2-100/7;if(""===e.innerHTML)for(t=0;t<5;++t){let o=document.createElement("div");for(o.style.width="100%",o.id="row-"+t,e.appendChild(o),i=0;i<7;++i){let o=i*(100/7);o+=(-1*(t-5)-1)*(n/5),0===i&&(o=i*(100/7));let s="#"+cv(fv(0,0,o)),a=document.createElement("div");a.title=s,a.style.background=s,a.setAttribute("data-color",s),e.querySelector("#row-"+t).appendChild(a)}}else{let o,s;for(t=0;t<5;++t)for(o=e.childNodes[t],i=0;i<7;++i){s=o.childNodes[i];let e=i*(100/7);e+=(-1*(t-5)-1)*(n/5),6===t&&0===i&&(e=0);let a="#"+cv(fv(0,0,e));s.title=a,s.style.background=a,s.setAttribute("data-color",a)}}}function gv(e,t,i){return i<0?i+=1:i>1&&(i-=1),6*i<1?e+(t-e)*i*6:2*i<1?t:3*i<2?e+(t-e)*(2/3-i)*6:e}function fv(e,t,i){e/=360,t/=100;var n=(i/=100)<=.5?i*(t+1):i+t-i*t,o=2*i-n;return[parseInt(255*gv(o,n,e+1/3)),parseInt(255*gv(o,n,e)),parseInt(255*gv(o,n,e-1/3))]}function mv(e,t,i){e/=255,t/=255,i/=255;var n,o,s,a=Math.max(e,t,i),r=a-Math.min(e,t,i);if(0===r)n=0;else switch(a){case e:s=0,(o=(t-i)/r)<0&&(s=6),n=o+s;break;case t:n=(o=(i-e)/r)+(s=2);break;case i:n=(o=(e-t)/r)+(s=4)}return 60*n}var vv,bv=(vv=function(e){return parseInt(e,16)},{color:function(e){var t,i,n,o,s=e.slice(0,1);return"#"===s?function(e){var t;return 4===e.length?(t=e.replace("#","").split(""),{r:vv(t[0]+t[0]),g:vv(t[1]+t[1]),b:vv(t[2]+t[2])}):{r:vv(e.slice(1,3)),g:vv(e.slice(3,5)),b:vv(e.slice(5))}}(e):"r"===s.toLowerCase()?(n=(t=e).slice(t.indexOf("(")+1,t.indexOf(")")).split(","),o=!1,i={r:(n=n.map((function(e,t){return 3!==t?parseInt(e,10):(o=!0,parseFloat(e))})))[0],g:n[1],b:n[2]},o&&(i.a=n[3]),i):void console.log("!Ooops! RGBvalues.color("+e+") : HEX, RGB, or RGBa strings only")}});function yv(e,t,i){e/=255,t/=255,i/=255;var n,o,s=Math.max(e,t,i),a=Math.min(e,t,i),r=(s+a)/2;if(s===a)n=o=0;else{var l=s-a;switch(o=r>.5?l/(2-s-a):l/(s+a),s){case e:n=(t-i)/l+(t<i?6:0);break;case t:n=(i-e)/l+2;break;case i:n=(e-t)/l+4}n/=6}return[100*n+.5|0,100*o+.5|0,100*r+.5|0]}class _v{constructor(e={}){this.opts=Object.assign(this,{colors:["#ff9f01","#f57c00","#e64918","#d32f2f","#5d4038","#37474f","#353535","#fbc02c","#b0b42a","#689f39","#c21f5b","#7b21a2","#522da8","#616161","#01b8c9","#009688","#388d3c","#0388d0","#1465c0","#2f3f9e","#9e9e9e"],gradientcolors:[["linear-gradient(0deg, rgb(255, 57, 25), rgb(249, 168, 37))"],["linear-gradient(0deg, rgb(255, 57, 25), rgb(255, 104, 15))"],["linear-gradient(0deg, #FF5722, #FF9800)"],["linear-gradient(0deg, #613ca2, rgb(110, 123, 217))"],["linear-gradient(0deg, rgb(65, 70, 206), rgb(236, 78, 130))"],["linear-gradient(0deg, rgb(0, 150, 102), rgb(90, 103, 197))"],["linear-gradient(30deg, rgb(249, 119, 148), rgb(98, 58, 162))"],["linear-gradient(0deg, rgb(223, 70, 137), rgb(90, 103, 197))"],["linear-gradient(0deg, rgb(40, 53, 147), rgb(90, 103, 197))"],["linear-gradient(0deg, rgb(21, 101, 192), rgb(52, 169, 239))"],["linear-gradient(0deg, rgb(32, 149, 219), rgb(139, 109, 230))"],["linear-gradient(0deg, rgb(90, 103, 197), rgb(0, 184, 201))"],["linear-gradient(0deg, rgb(0, 184, 201), rgb(253, 187, 45))"],["linear-gradient(0deg, rgb(255, 208, 100), rgb(239, 98, 159))"],["linear-gradient(0deg, rgb(0, 214, 223), rgb(130, 162, 253))"],["linear-gradient(0deg, rgb(50, 234, 251), rgb(248, 247, 126))"],["linear-gradient(0deg, rgb(141, 221, 255), rgb(255, 227, 255))"],["linear-gradient(0deg, rgb(255, 170, 170), rgb(255, 255, 200))"],["linear-gradient(0deg, rgb(239, 239, 239), rgb(252, 252, 252))"]],animateModal:!1,elementToAnimate:"",stuffPlacement:"#_cbhtml",lang:[]},e),this.id=function(){let e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(let i=0;i<2;i++)e+=t.charAt(Math.floor(Math.random()*t.length));let i="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let e=0;e<5;e++)i+=n.charAt(Math.floor(Math.random()*n.length));return e+i}();let t=document.querySelector(this.opts.stuffPlacement);t||(t=document.createElement("div"),t.id="_cbhtml",t.className="is-ui",document.body.appendChild(t)),this.builderStuff=t;const i=document.createElement("div");i.id=this.id,t.appendChild(i),this.objStuff=i;const n=new av({animateModal:this.opts.animateModal,elementToAnimate:this.opts.elementToAnimate,stuffPlacement:this.opts.stuffPlacement});this.modal=n;let o="";for(var s=0;s<this.opts.gradientcolors.length;s++)o+=`<button data-elmgradient="${this.opts.gradientcolors[s][0]}" data-textcolor="${this.opts.gradientcolors[s][1]?this.opts.gradientcolors[s][1]:""}" style="background-image:${this.opts.gradientcolors[s][0]};width:35px;height:35px;border:none;"></button>`;let a=`\n <div class="is-modal pickgradientcolor">\n <div class="is-modal-content">\n <div class="is-modal-bar is-draggable"></div>\n <div style="padding:12px 12px 12px">\n <div class="div-gradients" style="display: flex;flex-flow: wrap;margin-bottom:10px;">\n ${o}\n <button class="input-gradient-clear" title="${this.out("Clear")}" data-value="" style="width:35px;height:35px;"><svg class="is-icon-flex" style="width:23px;height:23px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n <div class="is-settings" style="margin-bottom:0">\n <div class="is-label" style="margin-top:0">${this.out("Custom")}:</div>\n <div class="div-custom-gradients clearfix" style="height:auto;display: flex;flex-flow: wrap;"></div>\n <div>\n <button title="${this.out("Select Color")}" class="input-gradient-color1 is-btn-color" data-value="dark" style="border-right:none"></button>\n <button title="${this.out("Select Color")}" class="input-gradient-color2 is-btn-color" data-value="dark"></button>\n <input type="text" class="input-gradient-deg" value="0" style="width:60px;height:35px;margin-left:7px;margin-right:5px;font-size:14px;"/> deg\n </div>\n </div>\n <div class="is-settings clearfix" style="margin-bottom:0">\n <button title="${this.out("Add")}" class="input-gradient-save classic" style="width:100%;border:none;"> ${this.out("Add")} </button>\n </div>\n </div>\n </div>\n </div>\n `;i.insertAdjacentHTML("beforeend",a);const r=i.querySelector(".is-modal.pickgradientcolor");this.pickGradient=r,new ps({selector:"#"+this.id+" .is-draggable"});const l=new rv({colors:this.opts.colors,animateModal:this.opts.animateModal,elementToAnimate:this.opts.container,lang:this.opts.lang});let d=i.querySelector(".input-gradient-color1");d.addEventListener("click",(()=>{l.open((e=>{""===e&&(e="transparent");let t=e,n=i.querySelector(".input-gradient-color2").style.backgroundColor;""===n&&(n="#ffffff");let o=`linear-gradient(${i.querySelector(".input-gradient-deg").value}deg, ${t}, ${n})`;this.targetElement.style.backgroundImage=o,this.opts.onChange&&this.opts.onChange(o),d.style.backgroundColor=e}),d.style.backgroundColor)}));let c=i.querySelector(".input-gradient-color2");c.addEventListener("click",(()=>{l.open((e=>{""===e&&(e="transparent");let t=i.querySelector(".input-gradient-color1").style.backgroundColor,n=e;""===t&&(t="#ffffff");let o=`linear-gradient(${i.querySelector(".input-gradient-deg").value}deg, ${t}, ${n})`;this.targetElement.style.backgroundImage=o,this.opts.onChange&&this.opts.onChange(o),c.style.backgroundColor=e}),c.style.backgroundColor)}));let u=i.querySelectorAll(".div-gradients [data-elmgradient]");Array.prototype.forEach.call(u,(e=>{let t=e.getAttribute("data-elmgradient"),n=e.getAttribute("data-textcolor");e.addEventListener("click",(()=>{this.targetElement.style.backgroundImage=t,this.opts.onChange&&this.opts.onChange(t,n);const o=this.targetElement.style.backgroundImage;if(-1!==o.indexOf("linear-gradient")){const e=xv(o);if(null!==e)try{let t=e.colorStopList[0].color,i=e.colorStopList[1].color,n=e.line;this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor=t,this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor=i,-1!==n.indexOf("deg")&&(this.objStuff.querySelector(".input-gradient-deg").value=n.replace("deg",""))}catch(e){}}let s=i.querySelectorAll(".div-gradients [data-elmgradient]");Array.prototype.forEach.call(s,(e=>{this.removeClass(e,"active")})),this.addClass(e,"active")}))})),i.querySelector(".input-gradient-clear").addEventListener("click",(()=>{this.targetElement.style.backgroundImage="",this.opts.onChange&&this.opts.onChange(""),this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor="",this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor="",this.objStuff.querySelector(".input-gradient-deg").value="0"}));let p=i.querySelector(".input-gradient-deg");p.addEventListener("keyup",(()=>{let e=i.querySelector(".input-gradient-color1").style.backgroundColor,t=i.querySelector(".input-gradient-color2").style.backgroundColor,n=`linear-gradient(${p.value}deg, ${e}, ${t})`;this.targetElement.style.backgroundImage=n,this.opts.onChange&&this.opts.onChange(n)})),i.querySelector(".input-gradient-save").addEventListener("click",(()=>{let e=i.querySelector(".input-gradient-color1").style.backgroundColor,t=i.querySelector(".input-gradient-color2").style.backgroundColor,n=`linear-gradient(${p.value}deg, ${e}, ${t})`,o=[];if(null!==localStorage.getItem("_customgradcolors")&&(o=JSON.parse(localStorage.getItem("_customgradcolors"))),o.push(n),localStorage.setItem("_customgradcolors",JSON.stringify(o)),null!==localStorage.getItem("_customgradcolors")){let e=JSON.parse(localStorage.getItem("_customgradcolors")),t="";for(var s=0;s<e.length;s++)t+=`<button class="is-elmgrad-item" data-elmgradient="${e[s]}" style="background-image:${e[s]};width:35px;height:35px;padding:0;border:none;"><div class="is-elmgrad-remove"><svg class="is-icon-flex" style="fill:rgba(255, 255, 255, 1);width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></div></button>`;this.objStuff.querySelector(".div-custom-gradients").innerHTML=t}let a=this.objStuff.querySelectorAll(".div-custom-gradients [data-elmgradient]");Array.prototype.forEach.call(a,(e=>{let t=e.getAttribute("data-elmgradient");e.addEventListener("click",(()=>{this.targetElement.style.backgroundImage=t,this.opts.onChange&&this.opts.onChange(t);const n=this.targetElement.style.backgroundImage;if(-1!==n.indexOf("linear-gradient")){const e=xv(n);if(null!==e)try{let t=e.colorStopList[0].color,i=e.colorStopList[1].color,n=e.line;this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor=t,this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor=i,-1!==n.indexOf("deg")&&(this.objStuff.querySelector(".input-gradient-deg").value=n.replace("deg",""))}catch(e){}}let o=i.querySelectorAll(".div-custom-gradients [data-elmgradient]");Array.prototype.forEach.call(o,(e=>{this.removeClass(e,"active")})),this.addClass(e,"active")}))}));let r=this.objStuff.querySelectorAll(".div-custom-gradients .is-elmgrad-remove");Array.prototype.forEach.call(r,(e=>{e.addEventListener("click",(()=>{let t=[];null!==localStorage.getItem("_customgradcolors")&&(t=JSON.parse(localStorage.getItem("_customgradcolors")));for(var i=e.parentNode.getAttribute("data-elmgradient"),n=0;n<t.length;n++)t[n]===i&&t.splice(n,1);return localStorage.setItem("_customgradcolors",JSON.stringify(t)),e.parentNode.parentNode.removeChild(e.parentNode),!1}))}))}))}out(e){if(this.opts.lang){let t=this.opts.lang[e];return t||e}return e}open(e,t,i){this.opts.onChange=t,this.opts.onFinish=i,this.targetElement=e,this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor="",this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor="",this.objStuff.querySelector(".input-gradient-deg").value="0";const n=e.style.backgroundImage;if(-1!==n.indexOf("linear-gradient")){const e=xv(n);if(null!==e)try{let t=e.colorStopList[0].color,i=e.colorStopList[1].color,n=e.line;this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor=t,this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor=i,-1!==n.indexOf("deg")&&(this.objStuff.querySelector(".input-gradient-deg").value=n.replace("deg",""))}catch(e){}}this.original=n;let o=[];if(null!==localStorage.getItem("_customgradcolors")){o=JSON.parse(localStorage.getItem("_customgradcolors"));let e="";for(var s=0;s<o.length;s++)e+=`<button class="is-elmgrad-item" data-elmgradient="${o[s]}" style="background-image:${o[s]};width:35px;height:35px;padding:0;border:none;"><div class="is-elmgrad-remove"><svg class="is-icon-flex" style="fill:rgba(255, 255, 255, 1);width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></div></button>`;this.objStuff.querySelector(".div-custom-gradients").innerHTML=e}let a=this.objStuff.querySelectorAll(".div-custom-gradients [data-elmgradient]");Array.prototype.forEach.call(a,(e=>{let t=e.getAttribute("data-elmgradient");e.addEventListener("click",(()=>{this.targetElement.style.backgroundImage=t,this.opts.onChange&&this.opts.onChange(t);const i=this.targetElement.style.backgroundImage;if(-1!==i.indexOf("linear-gradient")){const e=xv(i);if(null!==e)try{let t=e.colorStopList[0].color,i=e.colorStopList[1].color,n=e.line;this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor=t,this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor=i,-1!==n.indexOf("deg")&&(this.objStuff.querySelector(".input-gradient-deg").value=n.replace("deg",""))}catch(e){}}let n=this.objStuff.querySelectorAll(".div-custom-gradients [data-elmgradient]");Array.prototype.forEach.call(n,(e=>{this.removeClass(e,"active")})),this.addClass(e,"active")}))}));let r=this.objStuff.querySelectorAll(".div-custom-gradients .is-elmgrad-remove");Array.prototype.forEach.call(r,(e=>{e.addEventListener("click",(()=>{let t=[];null!==localStorage.getItem("_customgradcolors")&&(t=JSON.parse(localStorage.getItem("_customgradcolors")));for(var i=e.parentNode.getAttribute("data-elmgradient"),n=0;n<t.length;n++)t[n]===i&&t.splice(n,1);return localStorage.setItem("_customgradcolors",JSON.stringify(t)),e.parentNode.parentNode.removeChild(e.parentNode),!1}))})),this.modal.show(this.pickGradient,!1,(()=>{this.original===this.targetElement.style.backgroundImage?this.opts.onFinish&&this.opts.onFinish(!1):this.opts.onFinish&&this.opts.onFinish(!0)}),!1)}addClass(e,t){e&&(this.hasClass(e,t)||(0===e.classList.length?e.className=t:e.className=e.className+" "+t))}removeClass(e,t){e&&e.classList.length>0&&(e.className=e.className.replace(t,""))}hasClass(e,t){return!!e&&(e.classList?e.classList.contains(t):new RegExp("\\b"+t+"\\b").test(e.className))}}function xv(e){var t,i=Sv(),n=/.*gradient\s*\(((?:\([^)]*\)|[^)(]*)*)\)/.exec(e);return null!==n?(t=Cv(i,n[1])).original.trim()!==n[1].trim()&&(t.parseWarning=!0):t="Failed to find gradient",t}var wv=function(e,t){var i,n="";for(i=0;i<e.length;i++)"string"==typeof e[i]?n+=e[i]:n+=e[i].source;return new RegExp(n,t)},Sv=function(){var e=/\s*,\s*/,t=/(?:[+-]?\d*\.?\d+)(?:%|[a-z]+)?/,i=wv(["(?:",/#(?:[a-f0-9]{6}|[a-f0-9]{3})/,"|","(?:rgb|hsl)",/\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*\)/,"|","(?:rgba|hsla)",/\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*,\s*\d*\.?\d+\)/,"|",/[_a-z-][_a-z0-9-]*/,")"],""),n=wv([i,"(?:\\s+",t,"(?:\\s+",t,")?)?"],""),o=wv(["(?:",n,e,")*",n],""),s=wv(["(?:(",/(?:[+-]?\d*\.?\d+)(?:deg|grad|rad|turn)/,")|",/to\s+((?:(?:left|right)(?:\s+(?:top|bottom))?))/,")"],"");return{gradientSearch:wv(["(?:(",s,")",e,")?(",o,")"],"gi"),colorStopSearch:wv(["\\s*(",i,")","(?:\\s+","(",t,"))?","(?:",e,"\\s*)?"],"gi")}},Cv=function(e,t){var i,n,o,s;if(e.gradientSearch.lastIndex=0,null!==(n=e.gradientSearch.exec(t)))for(i={original:n[0],colorStopList:[]},n[1]&&(i.line=n[1]),n[2]&&(i.angle=n[2]),n[3]&&(i.sideCorner=n[3]),e.colorStopSearch.lastIndex=0,o=e.colorStopSearch.exec(n[4]);null!==o;)s={color:o[1]},o[2]&&(s.position=o[2]),i.colorStopList.push(s),o=e.colorStopSearch.exec(n[4]);return i};const kv=new ni;class Ev{constructor(e){this.builder=e,this.grid=new ts(e);const t=this.builder.util,i=this.builder.builderStuff;this.util=t;let n,o=i.querySelector(".is-column-tool"),s="";if(e.opts.columnHtmlEditor&&(s=`<button type="button" title="${t.out("HTML")}" class="cell-html">\n <span><svg class="is-icon-flex" style="margin-right:-3px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></span>${t.out("HTML")}\n </button>`),!o){let a=`<div class="is-tool is-column-tool">\n <button type="button" title="${t.out("Add")}" class="cell-add"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n <button type="button" title="${t.out("More")}" class="cell-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <button type="button" title="${t.out("Delete")}" class="cell-remove"><svg class="is-icon-flex" style="margin-left:-1px"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n \n <div class="is-pop columnmore">\n <div style="display:flex;flex-flow:wrap;">\n <button type="button" title="${t.out("Move Left")}" class="cell-prev"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-left"></use></svg></span>${t.out("Move Left")}</button>\n <button type="button" title="${t.out("Move Right")}" class="cell-next"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-right"></use></svg></span>${t.out("Move Right")}</button>\n <button type="button" title="${t.out("Move Up")}" class="cell-up"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></span>${t.out("Move Up")}</button>\n <button type="button" title="${t.out("Move Down")}" class="cell-down"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></span>${t.out("Move Down")}</button>\n <button type="button" title="${t.out("Increase")}" class="cell-increase"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-increase"></use></svg></span>${t.out("Increase")}</button>\n <button type="button" title="${t.out("Decrease")}" class="cell-decrease"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-decrease"></use></svg></span>${t.out("Decrease")}</button>\n <button type="button" title="${t.out("Duplicate")}" class="cell-duplicate"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></span>${t.out("Duplicate")}</button>\n ${s}\n <div class="is-separator"></div>\n <button type="button" title="${t.out("Lock")}" class="cell-locking"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-lock"></use></svg></span>${t.out("Lock")}</button>\n <button type="button" title="${t.out("Settings")}" class="cell-settings"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></span>${t.out("Settings")}</button>\n \n \x3c!--\n <button title="${t.out("Lock")}" class="cell-locking">\n <svg class="is-icon-flex"><use xlink:href="#icon-lock"></use></svg>\n </button>\n <button title="${t.out("Settings")}" class="cell-settings">\n <svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg>\n <span>${t.out("Settings")}</span>\n </button>\n --\x3e\n </div>\n </div>\n\n <div class="is-modal columnsettings">\n <div class="is-modal-content" style="width:370px;min-height:435px;padding: 0px;">\n <div class="is-modal-bar is-draggable">\n ${t.out("Column Settings")}\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n\n <div style="padding:0;margin-top:35px;">\n\n <div class="is-tabs clearfix" data-group="cellsettings">\n <a title="${t.out("General")}" id="tabCellGeneral" href="" data-content="divCellGeneral" class="active">${t.out("General")}</a>\n <a title="${t.out("Content")}" id="tabCellContent" href="" data-content="divCellContent">${t.out("Content")}</a>\n ${this.builder.useLightbox?`\n <a title="${t.out("On Click")}" id="tabCellClick" href="" data-content="divCellClick">${t.out("On Click")}</a>\n `:""}\n </div>\n <div id="divCellGeneral" class="is-tab-content" data-group="cellsettings" style="display:flex">\n \n <div style="padding-bottom: 3px;">${t.out("Background Color")}:</div>\n <div style="display:flex;">\n <button title="${t.out("Background Color")}" class="input-cell-bgcolor is-btn-color" style="margin-right:15px"></button>\n <button title="${t.out("Gradient")}" class="input-cell-gradient classic" data-value="+"> ${t.out("Gradient")} </button>\n </div>\n\n <div style="padding-top:20px;padding-bottom: 3px;">${t.out("Background Image")}:</div>\n <div>\n <div class="cell-bgimage-preview"></div>\n <div style="display: flex">\n <button title="${t.out("Image")}" class="input-cell-bgimage">\n <svg class="is-icon-flex"><use xlink:href="#ion-image"></use></svg>\n <span>${t.out("Image")}</span>\n </button>\n <button title="${t.out("Remove")}" class="input-cell-bgremove"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>\n <button title="${t.out("Adjust")}" class="input-cell-bgimageadjust"><svg class="is-icon-flex"><use xlink:href="#ion-wrench"></use></svg></button>\n </div>\n </div>\n\n <div style="padding-top:20px;padding-bottom:3px;">${t.out("Text Color")}:</div>\n <div class="div-content-textcolor">\n <button title="0" class="input-cell-textcolor" data-command="dark">${t.out("Dark")}</button>\n <button title="10" class="input-cell-textcolor" data-command="light">${t.out("Light")}</button>\n \n <button title="${t.out("Clear")}" class="input-cell-textcolor" data-command=""><svg class="is-icon-flex" style="flex:none;width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n\n <div style="padding-top:20px;">\n <label class="label-cell-grayscale label-checkbox" for="chkCellGrayscale"><input id="chkCellGrayscale" class="chk-cell-grayscale" type="checkbox" /> ${t.out("Grayscale")}</label>\n </div>\n \n <div style="display:none;padding-top:20px;padding-bottom:3px;">${t.out("Enlarge Row")}:</div>\n <div style="display: none;">\n <button title="${t.out("Normal")}" class="input-row-enlarge" data-command="0" style="margin-right:1px;">${t.out("Normal")}</button>\n <button title="+10%" class="input-row-enlarge" data-command="10" style="width:50px;margin-right:1px;">+10%</button>\n <button title="+20%" class="input-row-enlarge" data-command="20" style="width:50px;margin-right:1px;">+20%</button>\n <button title="+30%" class="input-row-enlarge" data-command="30" style="width:50px;margin-right:1px;">+30%</button>\n <button title="+40%" class="input-row-enlarge" data-command="40" style="width:50px;margin-right:1px;">+40%</button>\n <button title="+50%" class="input-row-enlarge" data-command="50" style="width:50px;margin-right:1px;">+50%</button>\n <button title="+60%" class="input-row-enlarge" data-command="60" style="width:50px;margin-right:1px;">+60%</button>\n </div>\n\n </div>\n\n <div id="divCellContent" class="is-tab-content" data-group="cellsettings">\n\n <div style="padding-bottom:3px;">${t.out("Padding")}:</div>\n\n <div class="div-content-padding-pos" style="align-items:center;${this.builder.useCssClasses?"":"display:none"}">\n <div style="width:130px">\n <div style="display: flex;justify-content: center;">\n <button title="${t.out("Top")}" class="input-cell-padding-pos on" data-command="top">${t.out("Top")}</button>\n </div>\n <div style="display: flex;justify-content: center;">\n <button title="${t.out("Left")}" class="input-cell-padding-pos on" data-command="left">${t.out("Left")}</button>\n <button title="${t.out("Right")}" class="input-cell-padding-pos on" data-command="right">${t.out("Right")}</button>\n </div>\n <div style="display: flex;justify-content: center;">\n <button title="${t.out("Bottom")}" class="input-cell-padding-pos on" data-command="bottom">${t.out("Bottom")}</button>\n </div>\n </div>\n <button title="${t.out("All")}" class="input-cell-padding-pos" data-command="all">${t.out("All")}</button>\n <button title="x" class="input-cell-padding-pos" data-command="x" style="width:50px">x</button>\n <button title="y" class="input-cell-padding-pos" data-command="y" style="width:50px">y</button>\n </div>\n\n <div class="div-content-padding" style="flex-flow:wrap;margin-top:7px">\n <div style="display:flex;flex-flow:wrap;${this.builder.useCssClasses?"display:none":""}">\n <button title="0" class="input-cell-padding" data-command="0">0</button>\n <button title="10" class="input-cell-padding" data-command="10">10</button>\n <button title="20" class="input-cell-padding" data-command="20">20</button>\n <button title="30" class="input-cell-padding" data-command="30">30</button>\n <button title="40" class="input-cell-padding" data-command="40">40</button>\n <button title="50" class="input-cell-padding" data-command="50">50</button>\n <button title="60" class="input-cell-padding" data-command="60">60</button>\n </div>\n\n <div style="display:flex;flex-flow:wrap;${this.builder.useCssClasses?"":"display:none"}">\n <button title="0" class="input-cell-padding" data-command="0">0</button>\n <button title="20" class="input-cell-padding" data-command="1">10</button>\n <button title="40" class="input-cell-padding" data-command="2">20</button>\n <button title="60" class="input-cell-padding" data-command="3">30</button>\n <button title="60" class="input-cell-padding" data-command="4">40</button>\n <button title="60" class="input-cell-padding" data-command="5">50</button>\n <button title="60" class="input-cell-padding" data-command="6">60</button>\n <button title="60" class="input-cell-padding" data-command="7">70</button>\n <button title="60" class="input-cell-padding" data-command="8">80</button>\n <button title="60" class="input-cell-padding" data-command="9">90</button>\n <button title="60" class="input-cell-padding" data-command="10">100</button>\n <button title="60" class="input-cell-padding" data-command="11">110</button>\n <button title="60" class="input-cell-padding" data-command="12">120</button>\n <button title="60" class="input-cell-padding" data-command="14">140</button>\n <button title="60" class="input-cell-padding" data-command="16">160</button>\n <button title="${t.out("Clear")}" class="input-cell-padding" data-command=""><svg class="is-icon-flex" style="flex:none;width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n </div>\n\n <div style="padding-top:20px;padding-bottom:3px;">${t.out("Height")}:</div>\n <div class="div-content-height">\n <button title="Decrease" class="input-cell-height" data-command="-">-</button>\n <button title="Increase" class="input-cell-height" data-command="+">+</button>\n <button title="300" class="input-cell-height" data-command="300">300</button>\n <button title="400" class="input-cell-height" data-command="400">400</button>\n <button title="500" class="input-cell-height" data-command="500">500</button>\n <button title="600" class="input-cell-height" data-command="600">600</button>\n <button title="700" class="input-cell-height" data-command="700">700</button>\n <button title="${t.out("Clear")}" class="input-cell-height" data-command=""><svg class="is-icon-flex" style="flex:none;width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n\n <div style="padding-top:20px;padding-bottom:3px;">${t.out("Content Alignment")}:</div>\n <div style="display:flex;align-items: flex-end;">\n <div style="width:120px">\n <div class="div-content-position">\n <button class="cmd-content-pos" data-pos="topleft" title="${t.out("Top Left")}" type="button" style=""><svg class="is-icon-flex" style="transform: rotate(315deg);"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></button>\n <button class="cmd-content-pos" data-pos="topcenter" title="${t.out("Top Center")}" type="button"><svg class="is-icon-flex" style=""><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></button>\n <button class="cmd-content-pos" data-pos="topright" topright="${t.out("Top Right")}" type="button"><svg class="is-icon-flex" style="transform: rotate(45deg);"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></button>\n </div>\n <div class="div-content-position">\n <button class="cmd-content-pos" data-pos="centerleft" title="${t.out("Center Left")}" type="button"><svg class="is-icon-flex" style=""><use xlink:href="#ion-ios-arrow-thin-left"></use></svg></button>\n <button class="cmd-content-pos" data-pos="center" title="${t.out("Center")}" type="button"><svg class="is-icon-flex" style="width:6px;height:6px;"><use xlink:href="#ion-android-contract"></use></svg></button>\n <button class="cmd-content-pos" data-pos="centerright" title="${t.out("Center Right")}" type="button"><svg class="is-icon-flex" style=""><use xlink:href="#ion-ios-arrow-thin-right"></use></svg></button>\n </div>\n <div class="div-content-position">\n <button class="cmd-content-pos" data-pos="bottomleft" title="${t.out("Bottom Left")}" type="button" style=";"><svg class="is-icon-flex" style="transform: rotate(45deg);"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></button>\n <button class="cmd-content-pos" data-pos="bottomcenter" title="${t.out("Bottom Center")}" type="button"><svg class="is-icon-flex" style=""><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></button>\n <button class="cmd-content-pos" data-pos="bottomright" title="${t.out("Bottom Right")}" type="button"><svg class="is-icon-flex" style="transform: rotate(315deg);"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></button>\n </div>\n </div>\n <div>\n <button title="${t.out("Clear")}" class="cmd-content-pos" data-pos=""><svg class="is-icon-flex" style="flex:none;width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n </div>\n </div>\n\n <div id="divCellClick" class="is-tab-content" data-group="cellsettings">\n\n <label for="inpCellLinkSource" style="display:block">${t.out("Open")}:</label>\n <div class="image-src">\n \x3c!--<div class="div-input-text">--\x3e\n <input id="inpCellLinkSource" class="input-src" type="text" style="height:38px;">\n \x3c!--<button title="${t.out("Clear")}" class="input-clear"><svg class="is-icon-flex"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>--\x3e\n <button title="${t.out("Select")}" class="input-select" style="flex:none;width:40px;height:38px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <div class="image-larger4" style="position: relative; flex: 0 0 auto; width: 40px; height: 38px; box-shadow: rgba(0, 0, 0, 0.32) 0px 3px 6px -6px;">\n <form class="form-upload-larger" target="frameTargetLinkUpload" method="post" action="${this.builder.opts.largerImageHandler}" enctype="multipart/form-data" style="position:absolute;top:0;left:0;width:100%;height:100%;">\n <input id="hidRefId4" name="hidRefId" type="hidden" value="">\n <svg class="is-icon-flex" style="position: absolute;top: 10px;left: 15px;"><use xlink:href="#ion-image"></use></svg>\n <input title="${t.out("Select")}" id="fileImage4" name="fileImage" type="file" accept="image/*,video/mp4" style="position:absolute;top:-30px;left:0;width:100%;height:68px;opacity: 0;cursor: pointer;">\n </form>\n\n <iframe id="frameTargetLinkUpload" name="frameTargetLinkUpload" src="about:blank" style="width:1px;height:1px;position:absolute;top:0;right:-100000px"></iframe>\n </div>\n </div>\n <div style="padding-top:20px">\n <button class="input-testclick">${t.out("Test")}</button>\n </div>\n\n <p>${t.out("You can test the On-Click action on page if you lock the column by clicking the lock button")} <svg class="is-icon-flex"><use xlink:href="#icon-lock"></use></svg>.</p>\n\n </div>\n \n </div>\n \n </div>\n </div>\n\n <div class="is-modal imageadjust">\n <div class="is-modal-content" style="max-width:420px;">\n <div class="is-modal-bar is-draggable">\n ${t.out("Background Image Adjustments")}\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n\n <div style="padding:0;margin-top:25px;">\n\n <div style="padding-bottom:3px;">${t.out("Scale")}:</div>\n <div style="padding-top:4px">\n <input type="range" min="100" max="500" value="0" class="image-scale-slider is-rangeslider">\n </div>\n\n <div style="padding-bottom:3px;padding-top: 20px;">${t.out("Horizontal")}:</div>\n <div style="padding-top:4px">\n <input type="range" min="0" max="100" value="0" class="image-hor-slider is-rangeslider">\n </div>\n\n <div style="padding-bottom:3px;padding-top: 20px;">${t.out("Vertical")}:</div>\n <div style="padding-top:4px">\n <input type="range" min="0" max="100" value="0" class="image-vert-slider is-rangeslider">\n </div>\n\n </div>\n\n </div>\n </div> \n\n\n <div class="is-modal imagesource">\n <div class="is-modal-content" style="max-width:550px;">\n\n <label for="inpCellImageBgSource" style="display:block">${t.out("Source")}:</label>\n <div class="image-src">\n <input id="inpCellImageBgSource" class="input-src" type="text">\n <button title="${t.out("Select")}" class="input-select" style="flex:none;width:50px;height:50px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <div class="image-larger3" style="position: relative; flex: 0 0 auto; width: 50px; height: 50px; box-shadow: rgba(0, 0, 0, 0.32) 0px 3px 6px -6px;">\n <form class="form-upload-larger" target="frameTargetCellImageUpload" method="post" action="${this.builder.opts.largerImageHandler}" enctype="multipart/form-data" style="position:absolute;top:0;left:0;width:100%;height:100%;">\n <input id="hidRefId3" name="hidRefId" type="hidden" value="">\n <svg class="is-icon-flex" style="position: absolute;top: 16px;left: 15px;"><use xlink:href="#ion-image"></use></svg>\n <input title="${t.out("Select")}" id="fileImage3" name="fileImage" type="file" accept="image/*" style="position:absolute;top:-30px;left:0;width:100%;height:80px;opacity: 0;cursor: pointer;">\n </form>\n\n <iframe id="frameTargetCellImageUpload" name="frameTargetCellImageUpload" src="about:blank" style="width:1px;height:1px;position:absolute;top:0;right:-100000px"></iframe>\n </div>\n </div>\n\n <div style="text-align:right;margin-top:20px;">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n\n </div>\n </div>\n\n <div class="is-locked-indicator">\n <svg class="is-icon-flex"><use xlink:href="#icon-lock"></use></svg>\n </div>\n `;kv.appendHtml(i,a),o=i.querySelector(".is-column-tool"),n=i.querySelector(".columnmore"),this.lockIndicator=i.querySelector(".is-locked-indicator"),this.cellSettings=i.querySelector(".is-modal.columnsettings");const r=Jo(e);let l=o.querySelectorAll("[title]");Array.prototype.forEach.call(l,(e=>{e.setAttribute("data-title",e.getAttribute("title"))}));let d=o.querySelector(".cell-add");kv.addEventListener(d,"click",(()=>{if(!t.cellSelected())return;r.querySelector(".is-pop-tabs").style.display="flex";const e=o.querySelector(".cell-add"),i=e.getBoundingClientRect().top+window.pageYOffset,n=e.getBoundingClientRect().left+window.pageXOffset;r.style.display="flex",r.style.top=i+35+"px",r.style.left=n+"px",kv.removeClass(r,"arrow-bottom"),kv.removeClass(r,"arrow-left"),kv.removeClass(r,"arrow-right"),kv.removeClass(r,"center"),kv.removeClass(r,"right"),kv.addClass(r,"arrow-top"),kv.addClass(r,"left"),"left"===r.querySelector(".active").getAttribute("data-value")?r.setAttribute("data-mode","cell-left"):r.setAttribute("data-mode","cell-right")})),d=o.querySelector(".cell-more"),kv.addEventListener(d,"click",(()=>{let e=t.cellSelected();if(!e)return;const i=o.querySelector(".cell-more"),s=i.getBoundingClientRect().top+window.pageYOffset,a=i.getBoundingClientRect().left+window.pageXOffset;n.style.display="flex",n.style.top=s+35+"px",n.style.left=a-7+"px",kv.removeClass(n,"arrow-bottom"),kv.removeClass(n,"arrow-left"),kv.removeClass(n,"arrow-right"),kv.removeClass(n,"center"),kv.removeClass(n,"right"),kv.addClass(n,"arrow-top"),kv.addClass(n,"left");const r=this.columnMore.querySelector(".cell-locking");e.hasAttribute("data-noedit")?kv.addClass(r,"on"):kv.removeClass(r,"on")})),d=o.querySelector(".cell-remove"),kv.addEventListener(d,"click",(()=>{this.grid.removeColumn(),t.clearControls()})),d=n.querySelector(".cell-prev"),kv.addEventListener(d,"click",(()=>{this.grid.moveColumnPrevious(),t.clearControls()})),d=n.querySelector(".cell-next"),kv.addEventListener(d,"click",(()=>{this.grid.moveColumnNext(),t.clearControls()})),d=n.querySelector(".cell-up"),kv.addEventListener(d,"click",(()=>{this.grid.moveColumnUp(),t.clearControls()})),d=n.querySelector(".cell-down"),kv.addEventListener(d,"click",(()=>{this.grid.moveColumnDown(),t.clearControls()})),d=n.querySelector(".cell-increase"),kv.addEventListener(d,"click",(()=>{this.grid.increaseColumn(),t.clearControls()})),d=n.querySelector(".cell-decrease"),kv.addEventListener(d,"click",(()=>{this.grid.decreaseColumn(),t.clearControls()})),d=n.querySelector(".cell-duplicate"),kv.addEventListener(d,"click",(()=>{this.grid.duplicateColumn(),this.columnMore.style.display="",t.clearControls()})),d=n.querySelector(".cell-html"),d&&kv.addEventListener(d,"click",(()=>{if(!t.cellSelected())return;new Wo(this.builder).view("cell")})),document.addEventListener("mousedown",(e=>{var t=(e=e||window.event).target||e.srcElement;if("flex"===n.style.display){let e=kv.parentsHasClass(t,"columnmore"),i=kv.parentsHasClass(t,"cell-more");if(e||i)return;n.style.display=""}}));const c=document.querySelector(".is-modal.columnsettings"),u=document.querySelector(".is-modal.imagesource"),p=document.querySelector(".is-modal.imageadjust");this.cellSettings=c,this.imageSource=u,this.imageAdjust=p;const h=n.querySelector(".cell-locking");h&&kv.addEventListener(h,"click",(e=>{let i=t.cellSelected();i&&(i.hasAttribute("data-noedit")?(i.removeAttribute("data-noedit"),i.contentEditable=!0,kv.removeClass(h,"on")):(i.setAttribute("data-noedit",""),i.contentEditable=!1,kv.addClass(h,"on"),this.util.clearActiveElement(!0)),this.showHideLockIndicator(i),this.builder.element.applyBehavior(i),this.columnMore.style.display="",e.preventDefault())})),d=n.querySelector(".cell-settings"),d&&kv.addEventListener(d,"click",(()=>{let e=t.cellSelected();e&&(this.readCellStyles(e),t.saveSelection(),t.showModal(c,!1,(()=>{"flex"===i.querySelector(".is-rte-tool").style.display&&t.restoreSelection()})),this.columnMore.style.display="")}));c.querySelector(".is-modal-close").addEventListener("click",(()=>{t.hideModal(c)})),c.querySelector(".input-cell-bgcolor").addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let i=e.target;this.builder.colorPicker.open((e=>{t.cellSelected().style.backgroundColor=e,i.style.backgroundColor=e,this.builder.opts.onChange()}),c.querySelector(".input-cell-bgcolor").style.backgroundColor)})),d=c.querySelector(".input-cell-bgimage"),d&&kv.addEventListener(d,"click",(()=>{let e=t.cellSelected();if(!e)return;let i="";e.style.backgroundImage&&-1!==e.style.backgroundImage.indexOf("url(")&&(i=e.style.backgroundImage.slice(4,-1).replace(/["']/g,"")),this.openImagePicker(i,(e=>{let i=t.cellSelected();if(!i)return;this.builder.uo.saveForUndo(),i.style.backgroundImage=`url("${e}")`,i.style.backgroundSize="cover",i.style.backgroundRepeat="no-repeat";const n=c.querySelector(".cell-bgimage-preview"),o=this.cellSettings.querySelector(".input-cell-bgimageadjust"),s=this.cellSettings.querySelector(".input-cell-bgremove");o.style.display="none",s.style.display="none",""!==e?(n.innerHTML=`<img src="${e}">`,o.style.display="flex",s.style.display="flex"):n.innerHTML="",this.builder.opts.onChange()}))})),d=c.querySelector(".input-cell-bgimageadjust"),d&&kv.addEventListener(d,"click",(()=>{let e=t.cellSelected();e&&this.openImageAdjust(e)})),d=c.querySelector(".input-cell-bgremove"),d&&kv.addEventListener(d,"click",(()=>{let e=t.cellSelected();if(!e)return;this.builder.uo.saveForUndo(),e.style.backgroundImage="",e.style.backgroundSize="",e.style.backgroundRepeat="";const i=c.querySelector(".cell-bgimage-preview"),n=this.cellSettings.querySelector(".input-cell-bgimageadjust"),o=this.cellSettings.querySelector(".input-cell-bgremove");n.style.display="none",o.style.display="none",i.innerHTML="",this.builder.opts.onChange()}));p.querySelector(".is-modal-close").addEventListener("click",(()=>{t.hideModal(p)})),""!==this.builder.opts.largerImageHandler||this.builder.opts.onLargerImageUpload||(u.querySelector(".image-larger3").style.display="none"),this.builder.opts.onImageSelectClick||""!==this.builder.opts.imageselect||(u.querySelector(".input-select").style.display="none");let g=u.querySelector(".image-src");this.builder.opts.onImageSelectClick||this.builder.opts.imageselect?(d=u.querySelector(".input-select"),d&&kv.addEventListener(d,"click",(()=>{if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:u.querySelector(".input-src"),theTrigger:d});else{let e=i.querySelector(".is-modal.imageselect"),n=e.querySelector("iframe");this.builder.opts.assetRefresh&&(n.src=this.builder.opts.imageselect,this.builder.opts.assetRefresh=!1),"about:blank"===n.src&&(n.src=this.builder.opts.imageselect),t.showModal(e)}this.builder.targetInput=u.querySelector(".input-src"),this.builder.targetCallback=null,this.builder.targetAssetType="image"}))):kv.removeClass(g,"image-select");let f=u.querySelector("#fileImage3");kv.addEventListener(f,"change",(e=>{let t=f;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;kv.addClass(i,"please-wait"),u.querySelector("#hidRefId3").value=this.builder.opts.customval,this.builder.opts.onLargerImageUpload?this.builder.opts.onLargerImageUpload(e):i.submit(),f.value=""}));const m=u.querySelector(".input-ok");kv.addEventListener(m,"click",(()=>{const e=this.imageSource.querySelector(".input-src").value;this.builder.imageSelectedCallback&&this.builder.imageSelectedCallback(e),t.hideModal(u)}));const v=u.querySelector(".input-cancel");kv.addEventListener(v,"click",(()=>{t.hideModal(u)}));const b=p.querySelector(".image-scale-slider");b.onfocus=()=>{this.builder.uo.saveForUndo(!0),b.blur()},b.oninput=()=>{let e=b.value;this.builder.elementSelected.style.backgroundSize=e+"%"},b.onchange=()=>{this.builder.opts.onChange()};const y=p.querySelector(".image-hor-slider");y.onfocus=()=>{this.builder.uo.saveForUndo(!0),y.blur()},y.oninput=()=>{let e=y.value;this.builder.elementSelected.style.backgroundPositionX=e+"%"},y.onchange=()=>{this.builder.opts.onChange()};const _=p.querySelector(".image-vert-slider");_.onfocus=()=>{this.builder.uo.saveForUndo(!0),_.blur()},_.oninput=()=>{let e=_.value;this.builder.elementSelected.style.backgroundPositionY=e+"%"},_.onchange=()=>{this.builder.opts.onChange()},l=c.querySelectorAll(".input-row-enlarge"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected().parentNode;kv.removeClass(n,"expand-10"),kv.removeClass(n,"expand-20"),kv.removeClass(n,"expand-30"),kv.removeClass(n,"expand-40"),kv.removeClass(n,"expand-50"),kv.removeClass(n,"expand-60"),kv.addClass(n,"expand-"+i),this.builder.opts.onChange()}))}));const x=new _v({colors:this.builder.colors,gradientcolors:this.builder.opts.gradientcolors,lang:this.builder.opts.lang});c.querySelector(".input-cell-gradient").addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0);let e=t.cellSelected();x.open(e,(()=>{this.cellSettings.querySelector(".input-cell-bgimageadjust").style.display="none";this.cellSettings.querySelector(".input-cell-bgremove").style.display="none";this.cellSettings.querySelector(".cell-bgimage-preview").innerHTML="";this.imageSource.querySelector(".input-src").value="",this.builder.opts.onChange()}),(e=>{}))})),l=c.querySelectorAll(".input-cell-textcolor"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected();"dark"===i?(kv.removeClass(n,"is-light-text"),kv.addClass(n,"is-dark-text")):"light"===i?(kv.removeClass(n,"is-dark-text"),kv.addClass(n,"is-light-text")):(kv.removeClass(n,"is-dark-text"),kv.removeClass(n,"is-light-text"));let o=n.querySelectorAll("*");Array.prototype.forEach.call(o,(e=>{e.style.color&&(e.style.color="")})),this.builder.opts.onChange()}))})),l=c.querySelectorAll(".input-cell-padding-pos"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{let t=e.getAttribute("data-command"),i=this.cellSettings.querySelectorAll(".input-cell-padding-pos");Array.prototype.forEach.call(i,(e=>{kv.removeClass(e,"on")})),"all"===t?(kv.addClass(this.cellSettings.querySelector('button[data-command="top"]'),"on"),kv.addClass(this.cellSettings.querySelector('button[data-command="left"]'),"on"),kv.addClass(this.cellSettings.querySelector('button[data-command="right"]'),"on"),kv.addClass(this.cellSettings.querySelector('button[data-command="bottom"]'),"on")):"x"===t?(kv.addClass(this.cellSettings.querySelector('button[data-command="left"]'),"on"),kv.addClass(this.cellSettings.querySelector('button[data-command="right"]'),"on")):"y"===t?(kv.addClass(this.cellSettings.querySelector('button[data-command="top"]'),"on"),kv.addClass(this.cellSettings.querySelector('button[data-command="bottom"]'),"on")):kv.addClass(e,"on");let n=this.cellSettings.querySelectorAll(".input-cell-padding");Array.prototype.forEach.call(n,(e=>{kv.removeClass(e,"on")}))}))})),l=c.querySelectorAll(".input-cell-padding"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected(),o=this.cellSettings.querySelectorAll(".input-cell-padding");if(Array.prototype.forEach.call(o,(e=>{kv.removeClass(e,"on")})),this.builder.useCssClasses){let t;kv.removeClass(n,"padding-0"),kv.removeClass(n,"padding-10"),kv.removeClass(n,"padding-20"),kv.removeClass(n,"padding-30"),kv.removeClass(n,"padding-40"),kv.removeClass(n,"padding-50"),kv.removeClass(n,"padding-60");let o=this.cellSettings.querySelectorAll(".input-cell-padding-pos.on");if(2===o.length)if(t=o[0].getAttribute("data-command"),"left"===t){let e=this.builder.cssClasses.padding.left;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.right;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.x;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.x[`px_${i}`])}else{let e=this.builder.cssClasses.padding.top;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.bottom;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.y;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.y[`py_${i}`])}else if(4===o.length){let e=this.builder.cssClasses.padding.top;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.bottom;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.left;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.right;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.all;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.x;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.y;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.all[`p_${i}`])}else if(t=o[0].getAttribute("data-command"),"top"===t){let e=this.builder.cssClasses.padding.top;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.top[`pt_${i}`])}else if("bottom"===t){let e=this.builder.cssClasses.padding.bottom;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.bottom[`pb_${i}`])}else if("left"===t){let e=this.builder.cssClasses.padding.left;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.left[`pl_${i}`])}else if("right"===t){let e=this.builder.cssClasses.padding.right;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.right[`pr_${i}`])}kv.addClass(e,"on")}else kv.removeClass(n,"padding-0"),kv.removeClass(n,"padding-10"),kv.removeClass(n,"padding-20"),kv.removeClass(n,"padding-30"),kv.removeClass(n,"padding-40"),kv.removeClass(n,"padding-50"),kv.removeClass(n,"padding-60"),""!==i&&(kv.addClass(n,"padding-"+i),kv.addClass(e,"on"));this.builder.opts.onChange()}))}));const w=c.querySelector(".chk-cell-grayscale");if(kv.addEventListener(w,"click",(()=>{this.builder.uo.saveForUndo();let e=t.cellSelected();w.checked?e.style.filter="grayscale(1)":e.style.filter&&(e.style.filter=e.style.filter.replace("grayscale(1)","")),this.builder.opts.onChange()})),l=c.querySelectorAll(".input-cell-height"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{let i=this.builder.colHeight;this.builder.uo.saveForUndo();let n=e.getAttribute("data-command"),o=t.cellSelected(),s=this.cellSettings.querySelectorAll(".input-cell-height");if(Array.prototype.forEach.call(s,(e=>{kv.removeClass(e,"on")})),""===n)Array.prototype.forEach.call(i,(e=>{kv.removeClass(o,"min-height-"+e)}));else if("-"===n){let e=o.offsetHeight;Array.prototype.forEach.call(i,(t=>{if(e-t>0&&e-t<=50)if(Array.prototype.forEach.call(i,(e=>{kv.removeClass(o,"min-height-"+e)})),kv.addClass(o,"min-height-"+t),300===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');kv.addClass(e,"on")}else if(400===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');kv.addClass(e,"on")}else if(500===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');kv.addClass(e,"on")}else if(600===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');kv.addClass(e,"on")}else if(700===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');kv.addClass(e,"on")}}))}else if("+"===n){let e=o.offsetHeight;Array.prototype.forEach.call(i,(t=>{if(t-e>0&&t-e<=50)if(Array.prototype.forEach.call(i,(e=>{kv.removeClass(o,"min-height-"+e)})),kv.addClass(o,"min-height-"+t),300===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');kv.addClass(e,"on")}else if(400===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');kv.addClass(e,"on")}else if(500===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');kv.addClass(e,"on")}else if(600===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');kv.addClass(e,"on")}else if(700===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');kv.addClass(e,"on")}}))}else Array.prototype.forEach.call(i,(e=>{kv.removeClass(o,"min-height-"+e)})),kv.addClass(o,"min-height-"+n),kv.addClass(e,"on");this.builder.opts.onChange()}))})),l=c.querySelectorAll(".cmd-content-pos"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-pos"),n=t.cellSelected();const o=this.cellSettings.querySelectorAll(".cmd-content-pos");if(Array.prototype.forEach.call(o,(e=>{kv.removeClass(e,"on")})),this.builder.useCssClasses)if(""!==i){let t=this.builder.cssClasses.display;if(kv.addCssClass(n,t.flex,t),t=this.builder.cssClasses.flexDirection,kv.addCssClass(n,t.column,t),"topleft"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.start,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.start,t),kv.addClass(e,"on")}if("topcenter"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.start,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.center,t),kv.addClass(e,"on")}if("topright"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.start,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.end,t),kv.addClass(e,"on")}if("centerleft"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.center,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.start,t),kv.addClass(e,"on")}if("center"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.center,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.center,t),kv.addClass(e,"on")}if("centerright"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.center,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.end,t),kv.addClass(e,"on")}if("bottomleft"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.end,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.start,t),kv.addClass(e,"on")}if("bottomcenter"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.end,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.center,t),kv.addClass(e,"on")}if("bottomright"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.end,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.end,t),kv.addClass(e,"on")}}else kv.removeCssClasses(n,this.builder.cssClasses.display),kv.removeCssClasses(n,this.builder.cssClasses.flexDirection),kv.removeCssClasses(n,this.builder.cssClasses.justifyContent),kv.removeCssClasses(n,this.builder.cssClasses.alignItems);else n.style.display="flex",n.style.flexDirection="column","topleft"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="flex-start",kv.addClass(e,"on")),"topcenter"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="center",kv.addClass(e,"on")),"topright"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="flex-end",kv.addClass(e,"on")),"centerleft"===i&&(n.style.justifyContent="center",n.style.alignItems="flex-start",kv.addClass(e,"on")),"center"===i&&(n.style.justifyContent="center",n.style.alignItems="center",kv.addClass(e,"on")),"centerright"===i&&(n.style.justifyContent="center",n.style.alignItems="flex-end",kv.addClass(e,"on")),"bottomleft"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="flex-start",kv.addClass(e,"on")),"bottomcenter"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="center",kv.addClass(e,"on")),"bottomright"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="flex-end",kv.addClass(e,"on"));this.builder.opts.onChange()}))})),""!==this.builder.opts.largerImageHandler||this.builder.opts.onLargerImageUpload||(this.cellSettings.querySelector(".image-larger4").style.display="none"),this.builder.opts.onImageSelectClick||""!==this.builder.opts.imageselect||(this.cellSettings.querySelector(".input-select").style.display="none"),this.builder.opts.onImageSelectClick||this.builder.opts.imageselect||this.builder.opts.onFileSelectClick||this.builder.opts.fileselect){const e=this.cellSettings.querySelector(".input-src");d=this.cellSettings.querySelector(".input-select"),d&&kv.addEventListener(d,"click",(()=>{if(this.builder.targetInput=e,this.builder.targetCallback=()=>{this.applyClick()},this.builder.targetAssetType="media",this.builder.opts.onFileSelectClick)this.builder.opts.onFileSelectClick({targetInput:e,theTrigger:d}),kv.observeElement(e,"value",(()=>{this.applyClick()}));else if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:e,theTrigger:d}),kv.observeElement(e,"value",(()=>{this.applyClick()}));else if(this.builder.opts.fileselect){let n=i.querySelector(".is-modal.fileselect"),o=n.querySelector("iframe");this.builder.opts.assetRefresh&&(o.src=this.builder.opts.fileselect,this.builder.opts.assetRefresh=!1),"about:blank"===o.src&&(o.src=this.builder.opts.fileselect),t.showModal(n),this.builder.targetInput=e,this.builder.targetCallback=()=>{this.applyClick()},this.builder.targetAssetType="media"}else if(this.builder.opts.imageselect){let n=i.querySelector(".is-modal.imageselect"),o=n.querySelector("iframe");this.builder.opts.assetRefresh&&(o.src=this.builder.opts.imageselect,this.builder.opts.assetRefresh=!1),"about:blank"===o.src&&(o.src=this.builder.opts.imageselect),t.showModal(n),this.builder.targetInput=e,this.builder.targetCallback=()=>{this.applyClick()},this.builder.targetAssetType="media"}}))}const S=this.cellSettings.querySelector(".input-src");kv.observeElement(S,"value",(()=>{this.applyClick()}));let C=this.cellSettings.querySelector("#fileImage4");kv.addEventListener(C,"change",(e=>{let t=C;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;kv.addClass(i,"please-wait"),this.cellSettings.querySelector("#hidRefId4").value=this.builder.opts.customval,this.builder.opts.onLargerImageUpload?this.builder.opts.onLargerImageUpload(e):i.submit(),C.value=""}));const k=this.cellSettings.querySelector(".input-src");k.addEventListener("focus",(()=>{this.builder.uo.saveForUndo(!0)})),k.addEventListener("keyup",(()=>{let e=this.util.cellSelected();e&&(""===k.value?(kv.removeClass(e,"block-click"),e.removeAttribute("data-modal-url")):(kv.addClass(e,"block-click"),e.setAttribute("data-modal-url",k.value)),this.builder.opts.onChange())})),this.cellSettings.querySelector(".input-testclick").addEventListener("click",(()=>{let e=this.util.cellSelected();e&&""!==k.value&&this.builder.openMedia(e)}))}this.columnTool=o,this.columnMore=n}applyClick(){let e=this.util.cellSelected();if(!e)return;const t=this.cellSettings.querySelector(".input-src");let i=e.getAttribute("data-modal-url");i||(i=""),i!==t.value&&(this.builder.uo.saveForUndo(),kv.addClass(e,"block-click"),e.setAttribute("data-modal-url",t.value),this.builder.opts.onChange())}readCellStyles(e){this.util.clearActiveElement();let t=e.style.backgroundColor,i=this.cellSettings.querySelector(".input-cell-bgcolor");i.style.backgroundColor=t||"transparent";let n="";const o=this.cellSettings.querySelector(".cell-bgimage-preview"),s=this.cellSettings.querySelector(".input-cell-bgimageadjust");s.style.display="none";const a=this.cellSettings.querySelector(".input-cell-bgremove");a.style.display="none",e.style.backgroundImage&&-1!==e.style.backgroundImage.indexOf("url(")?(n=e.style.backgroundImage.slice(4,-1).replace(/["']/g,""),o.innerHTML=`<img src="${n}">`,s.style.display="flex",a.style.display="flex"):o.innerHTML="";const r=this.cellSettings.querySelector(".input-src");r.value="";let l=e.getAttribute("data-modal-url");l&&(r.value=l);let d=this.cellSettings.querySelectorAll(".input-cell-padding");if(Array.prototype.forEach.call(d,(e=>{kv.removeClass(e,"on")})),kv.hasClass(e,"padding-0")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="0"');kv.addClass(e,"on")}else if(kv.hasClass(e,"padding-10")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="10"');kv.addClass(e,"on")}else if(kv.hasClass(e,"padding-20")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="20"');kv.addClass(e,"on")}else if(kv.hasClass(e,"padding-30")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="30"');kv.addClass(e,"on")}else if(kv.hasClass(e,"padding-40")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="40"');kv.addClass(e,"on")}else if(kv.hasClass(e,"padding-50")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="50"');kv.addClass(e,"on")}const c=this.cellSettings.querySelector(".chk-cell-grayscale");c.checked=!1,e.style.filter&&-1!==e.style.filter.indexOf("grayscale")&&(c.checked=!0),d=this.cellSettings.querySelectorAll(".input-cell-height"),Array.prototype.forEach.call(d,(e=>{kv.removeClass(e,"on")}));let u=0,p=this.builder.colHeight;if(Array.prototype.forEach.call(p,(t=>{kv.hasClass(e,"min-height-"+t)&&(u=t)})),300===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');kv.addClass(e,"on")}else if(400===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');kv.addClass(e,"on")}else if(500===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');kv.addClass(e,"on")}else if(600===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');kv.addClass(e,"on")}else if(700===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');kv.addClass(e,"on")}d=this.cellSettings.querySelectorAll(".cmd-content-pos"),Array.prototype.forEach.call(d,(e=>{kv.removeClass(e,"on")}));let h=e.style.alignItems,g=e.style.justifyContent,f="";if("flex-start"===g?"flex-start"===h?f="topleft":"center"===h?f="topcenter":"flex-end"===h&&(f="topright"):"center"===g?"flex-start"===h?f="centerleft":"center"===h?f="center":"flex-end"===h&&(f="centerright"):"flex-end"===g&&("flex-start"===h?f="bottomleft":"center"===h?f="bottomcenter":"flex-end"===h&&(f="bottomright")),"topleft"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="topleft"');kv.addClass(e,"on")}else if("topcenter"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="topcenter"');kv.addClass(e,"on")}else if("topright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="topright"');kv.addClass(e,"on")}else if("centerleft"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="centerleft"');kv.addClass(e,"on")}else if("center"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="center"');kv.addClass(e,"on")}else if("centerright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="centerright"');kv.addClass(e,"on")}else if("bottomleft"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomleft"');kv.addClass(e,"on")}else if("bottomcenter"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomcenter"');kv.addClass(e,"on")}else if("bottomright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomright"');kv.addClass(e,"on")}}openImagePicker(e,t){const i=this.imageSource;i.querySelector(".input-src").value=e,this.builder.imageSelectedCallback=t,i.style.zIndex="10005",this.util.showModal(i,!1)}openImageAdjust(e){const t=this.imageAdjust,i=t.querySelector(".image-scale-slider"),n=t.querySelector(".image-hor-slider"),o=t.querySelector(".image-vert-slider");if(i.value=100,n.value=0,o.value=0,e.style.backgroundSize){let t,n=e.style.backgroundSize;t=isNaN(parseInt(n))?100:parseInt(n),-1!==n.indexOf("%")&&(i.value=t)}if(e.style.backgroundPositionX){let t,i=e.style.backgroundPositionX;t=isNaN(parseInt(i))?0:parseInt(i),-1!==i.indexOf("%")&&(n.value=t)}if(e.style.backgroundPositionY){let t,i=e.style.backgroundPositionY;t=isNaN(parseInt(i))?0:parseInt(i),-1!==i.indexOf("%")&&(o.value=t)}this.builder.elementSelected=e,t.style.zIndex="10005",this.util.showModal(t,!1)}showHideLockIndicator(e){const t=this.lockIndicator;if(e.hasAttribute("data-noedit")){const i=e.getBoundingClientRect().top+window.pageYOffset,n=e.getBoundingClientRect().left+window.pageXOffset,o=e.offsetWidth*this.builder.zoom;t.style.display="flex",t.style.top=i+4+"px",t.style.left=n+o-33+"px"}else t.style.display=""}click(e){if(kv.addClass(this.columnTool,"active"),this.columnTool.style.top=e.getBoundingClientRect().top-29+window.pageYOffset+"px",this.columnTool.style.left=e.getBoundingClientRect().left-1+"px",kv.parentsHasAttribute(e,"nogrid")){this.columnMore.querySelector(".cell-prev").style.display="none",this.columnMore.querySelector(".cell-next").style.display="none",this.columnMore.querySelector(".cell-up").style.display="none",this.columnMore.querySelector(".cell-down").style.display="none",this.columnMore.querySelector(".cell-increase").style.display="none",this.columnMore.querySelector(".cell-decrease").style.display="none",this.columnMore.querySelector(".cell-duplicate").style.display="none";let t=this.columnMore.querySelector(".cell-html");t&&(t.style.display=""),this.columnTool.querySelector(".cell-add").style.display="none",this.columnTool.querySelector(".cell-remove").style.display="none",e.getAttribute("data-html")&&(this.columnMore.querySelector(".cell-html").style.display="none",this.columnTool.querySelector(".cell-more").style.display="none")}else{this.columnMore.querySelector(".cell-prev").style.display="",this.columnMore.querySelector(".cell-next").style.display="",this.columnMore.querySelector(".cell-up").style.display="",this.columnMore.querySelector(".cell-down").style.display="",this.columnMore.querySelector(".cell-increase").style.display="",this.columnMore.querySelector(".cell-decrease").style.display="",this.columnMore.querySelector(".cell-duplicate").style.display="";let t=this.columnMore.querySelector(".cell-html");t&&(t.style.display=""),this.columnTool.querySelector(".cell-add").style.display="",this.columnTool.querySelector(".cell-remove").style.display="";let i=e.parentNode,n=2;i.querySelector(".is-row-overlay")&&(n=3),i.childElementCount-n==1?(this.columnMore.querySelector(".cell-prev").style.display="none",this.columnMore.querySelector(".cell-next").style.display="none",this.columnMore.querySelector(".cell-increase").style.display="none",this.columnMore.querySelector(".cell-decrease").style.display="none"):(this.columnMore.querySelector(".cell-prev").style.display="",this.columnMore.querySelector(".cell-next").style.display="",this.columnMore.querySelector(".cell-increase").style.display="",this.columnMore.querySelector(".cell-decrease").style.display="");let o=this.columnMore.querySelector(".cell-duplicate");e.getAttribute("data-html")?(t&&(t.style.display="none"),o&&(o.style.display="none")):(t&&(t.style.display=""),o&&(o.style.display=""))}let t=e.parentNode;if(t.hasAttribute("data-protected")){t.querySelector(".is-row-tool").style.display="none",this.columnTool.style.display="none";let e=t.querySelector(".is-rowadd-tool");e&&(e.style.display="none")}else{this.columnTool.style.display="",kv.parentsHasAttribute(e,"data-protected")?(this.columnTool.querySelector(".cell-add").style.display="none",this.columnTool.querySelector(".cell-remove").style.display="none",this.columnTool.querySelector(".cell-more").style.display="none"):(this.columnTool.querySelector(".cell-add").style.display="",this.columnTool.querySelector(".cell-remove").style.display="",this.columnTool.querySelector(".cell-more").style.display="")}}refreshColumnTool(e){this.grid.refreshColumnTool(e)}showColumnTool(e){this.grid.showColumnTool(e)}hideColumnTool(){this.grid.hideColumnTool()}}const Av=new ni;class qv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector(".editstyles");if(!n){let e=`\n <div class="is-modal is-modal-content editstyles">\n <div class="is-modal-bar is-draggable">\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n <div style="padding:12px">\n <div class="is-settings clearfix" style="display:inline-block;width:100%;margin-bottom:0;">\n <div>${t.out("Style")}:</div>\n <div>\n <textarea id="inpElmInlineStyle" style="width:100%;height:256px;margin:0px;border:none;font-size: 14px;line-height: 1.5;letter-spacing: 0;"></textarea>\n </div>\n </div>\n <div class="is-settings clearfix" style="display:inline-block;width:100%;margin-bottom:0;">\n <div>${t.out("Class")}:</div>\n <div>\n <input type="text" id="inpElmClassName" value="" style="width:100%;padding-left: 16px;font-family: courier, monospace;font-size: 14px;line-height: 2;letter-spacing: 1px;border:none;"/>\n </div>\n </div>\n </div>\n </div> \n `;Av.appendHtml(i,e),n=i.querySelector(".editstyles");let o=n.querySelector(".is-modal-close");Av.addEventListener(o,"click",(()=>{Av.removeClass(n,"active");var e=this.builderStuff.querySelector(".is-side.elementstyles");if(!Av.hasClass(e,"active")){let e=document.querySelectorAll("[data-saveforundo]");Array.prototype.forEach.call(e,(e=>{e.removeAttribute("data-saveforundo")})),e=document.querySelectorAll(".elm-inspected"),Array.prototype.forEach.call(e,(e=>{Av.removeClass(e,"elm-inspected")}))}}));let s=n.querySelector("#inpElmClassName");s.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=n.querySelector("#inpElmClassName").value,i=!1;Av.hasClass(e,"elm-active")&&(i=!0);let o=!1;Av.hasClass(e,"elm-active")&&(o=!0);let s=!1;Av.hasClass(e,"row-active")&&(s=!0),e.setAttribute("class",t),i&&Av.addClass(e,"elm-active"),o&&Av.addClass(e,"cell-active"),s&&Av.addClass(e,"row-active"),Av.addClass(e,"elm-inspected"),this.builder.opts.onChange()})),s=n.querySelector("#inpElmInlineStyle"),s.addEventListener("keyup",(()=>{this.builder.inspectedElement.style.cssText=n.querySelector("#inpElmInlineStyle").value,this.builder.opts.onChange()}))}this.modalStyles=n}toggleStyleEditor(){Av.hasClass(this.modalStyles,"active")?Av.removeClass(this.modalStyles,"active"):Av.addClass(this.modalStyles,"active")}refresh(){this.modalStyles.querySelector("#inpElmInlineStyle").value=this.builder.inspectedElement.style.cssText;let e=this.builder.inspectedElement.getAttribute("class");e&&(e=e.replace("elm-active",""),e=e.replace("cell-active",""),e=e.replace("row-active",""),e=e.replace("elm-inspected",""),e=e.replace(" "," ").trim()),this.modalStyles.querySelector("#inpElmClassName").value=e}}const Tv=new ni;class Lv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementBox");this.panelStuff=o;const s=`\n <div class="is-settings clearfix">\n <div class="is-label">${t.out("Background Color")}:</div>\n <div>\n <button title="${t.out("Background Color")}" class="input-elm-bgcolor is-btn-color" style="margin-right:15px"></button>\n <button title="${t.out("Gradient")}" class="input-elm-gradient classic" data-value="+"> ${t.out("Gradient")} </button>\n </div>\n </div>\n\n <div style="margin-top: 25px;font-weight:bold;width:100%;">${t.out("Dimension")}</div>\n \n <div class="is-settings clearfix" style="width:110px">\n <div><label for="inpElmWidth">${t.out("Width")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmWidth" value="" style="width:45px"/>\n <select id="inpElmWidthUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div><label for="inpElmHeight">${t.out("Height")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmHeight" value="" style="width:45px"/>\n <select id="inpElmHeightUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div><label for="inpElmMaxWidth">${t.out("Max Width")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmMaxWidth" value="" style="width:45px"/>\n <select id="inpElmMaxWidthUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div><label for="inpElmMaxHeight">${t.out("Max Height")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmMaxHeight" value="" style="width:45px"/>\n <select id="inpElmMaxHeightUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div><label for="inpElmMinWidth">${t.out("Min Width")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmMinWidth" value="" style="width:45px"/>\n <select id="inpElmMinWidthUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div><label for="inpElmMinHeight">${t.out("Min Height")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmMinHeight" value="" style="width:45px"/>\n <select id="inpElmMinHeightUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n \n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Overflow x")}:</div>\n <div>\n <select id="inpElmOverflowX"">\n <option value=""></option>\n <option value="auto">Auto</option>\n <option value="hidden">Hidden</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Overflow y")}:</div>\n <div>\n <select id="inpElmOverflowY"">\n <option value=""></option>\n <option value="auto">Auto</option>\n <option value="hidden">Hidden</option>\n </select>\n </div>\n </div>\n `;Tv.appendHtml(o,s),o.querySelector(".input-elm-bgcolor").addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.backgroundColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),o.querySelector(".input-elm-bgcolor").style.backgroundColor)}));const a=new _v({colors:this.builder.colors,gradientcolors:this.builder.opts.gradientcolors,lang:this.builder.opts.lang});o.querySelector(".input-elm-gradient").addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0),a.open(this.builder.inspectedElement,(()=>{n.refresh(),this.builder.opts.onChange()}),(e=>{e&&n.refresh()}))}));let r=o.querySelector("#inpElmMaxWidth");r.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),r.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMaxWidth").value,i=o.querySelector("#inpElmMaxWidthUnit").value;isNaN(t)||""===t?e.style.maxWidth="":e.style.maxWidth=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmMaxWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMaxWidth").value,i=o.querySelector("#inpElmMaxWidthUnit").value;isNaN(t)||""===t?e.style.maxWidth="":e.style.maxWidth=t+i,n.refresh(),this.builder.opts.onChange()}));let l=o.querySelector("#inpElmMaxHeight");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),l.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMaxHeight").value,i=o.querySelector("#inpElmMaxHeightUnit").value;isNaN(t)||""===t?e.style.maxHeight="":e.style.maxHeight=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmMaxHeightUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMaxHeight").value,i=o.querySelector("#inpElmMaxHeightUnit").value;isNaN(t)||""===t?e.style.maxHeight="":e.style.maxHeight=t+i,n.refresh(),this.builder.opts.onChange()}));let d=o.querySelector("#inpElmMinWidth");d.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),d.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMinWidth").value,i=o.querySelector("#inpElmMinWidthUnit").value;isNaN(t)||""===t?e.style.minWidth="":e.style.minWidth=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmMinWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMinWidth").value,i=o.querySelector("#inpElmMinWidthUnit").value;isNaN(t)||""===t?e.style.minWidth="":e.style.minWidth=t+i,n.refresh(),this.builder.opts.onChange()}));let c=o.querySelector("#inpElmMinHeight");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMinHeight").value,i=o.querySelector("#inpElmMinHeightUnit").value;isNaN(t)||""===t?e.style.minHeight="":e.style.minHeight=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmMinHeightUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMinHeight").value,i=o.querySelector("#inpElmMinHeightUnit").value;isNaN(t)||""===t?e.style.minHeight="":e.style.minHeight=t+i,n.refresh(),this.builder.opts.onChange()}));let u=o.querySelector("#inpElmWidth");u.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),u.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmWidth").value,i=o.querySelector("#inpElmWidthUnit").value;isNaN(t)||""===t?e.style.width="":e.style.width=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmWidth").value,i=o.querySelector("#inpElmWidthUnit").value;isNaN(t)||""===t?e.style.width="":e.style.width=t+i,n.refresh(),this.builder.opts.onChange()}));let p=o.querySelector("#inpElmHeight");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmHeight").value,i=o.querySelector("#inpElmHeightUnit").value;isNaN(t)||""===t?e.style.height="":e.style.height=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmHeightUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmHeight").value,i=o.querySelector("#inpElmHeightUnit").value;isNaN(t)||""===t?e.style.height="":e.style.height=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmOverflowX").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmOverflowX").value;e.style.overflowX=t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmOverflowY").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmOverflowY").value;e.style.overflowY=t,n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t=this.panelStuff,i=e.style.backgroundColor,n=t.querySelector(".input-elm-bgcolor");n.style.backgroundColor=i||"transparent";const o=t.querySelector("#inpElmMaxWidth"),s=t.querySelector("#inpElmMaxWidthUnit");o.value="",s.value="px",i=e.style.maxWidth;let a=parseInt(i);isNaN(a)||(-1!==i.indexOf("%")&&(s.value="%"),-1!==i.indexOf("px")&&(s.value="px"),-1!==i.indexOf("vw")&&(s.value="vw"),-1!==i.indexOf("vh")&&(s.value="vh"),-1!==i.indexOf("em")&&(s.value="em"),o.value=a);const r=t.querySelector("#inpElmMaxHeight"),l=t.querySelector("#inpElmMaxHeightUnit");r.value="",l.value="px",i=e.style.maxHeight;let d=parseInt(i);isNaN(d)||(-1!==i.indexOf("%")&&(l.value="%"),-1!==i.indexOf("px")&&(l.value="px"),-1!==i.indexOf("vw")&&(l.value="vw"),-1!==i.indexOf("vh")&&(l.value="vh"),-1!==i.indexOf("em")&&(l.value="em"),r.value=d);const c=t.querySelector("#inpElmMinWidth"),u=t.querySelector("#inpElmMinWidthUnit");c.value="",u.value="px",i=e.style.minWidth;let p=parseInt(i);isNaN(p)||(-1!==i.indexOf("%")&&(u.value="%"),-1!==i.indexOf("px")&&(u.value="px"),-1!==i.indexOf("vw")&&(u.value="vw"),-1!==i.indexOf("vh")&&(u.value="vh"),-1!==i.indexOf("em")&&(u.value="em"),c.value=p);const h=t.querySelector("#inpElmMinHeight"),g=t.querySelector("#inpElmMinHeightUnit");h.value="",g.value="px",i=e.style.minHeight;let f=parseInt(i);isNaN(f)||(-1!==i.indexOf("%")&&(g.value="%"),-1!==i.indexOf("px")&&(g.value="px"),-1!==i.indexOf("vw")&&(g.value="vw"),-1!==i.indexOf("vh")&&(g.value="vh"),-1!==i.indexOf("em")&&(g.value="em"),h.value=f);const m=t.querySelector("#inpElmWidth"),v=t.querySelector("#inpElmWidthUnit");m.value="",v.value="px",i=e.style.width;let b=parseInt(i);isNaN(b)||(-1!==i.indexOf("%")&&(v.value="%"),-1!==i.indexOf("px")&&(v.value="px"),-1!==i.indexOf("vw")&&(v.value="vw"),-1!==i.indexOf("vh")&&(v.value="vh"),-1!==i.indexOf("em")&&(v.value="em"),m.value=b);const y=t.querySelector("#inpElmHeight"),_=t.querySelector("#inpElmHeightUnit");y.value="",_.value="px",i=e.style.height;let x=parseInt(i);isNaN(x)||(-1!==i.indexOf("%")&&(_.value="%"),-1!==i.indexOf("px")&&(_.value="px"),-1!==i.indexOf("vw")&&(_.value="vw"),-1!==i.indexOf("vh")&&(_.value="vh"),-1!==i.indexOf("em")&&(_.value="em"),y.value=x);const w=t.querySelector("#inpElmOverflowX");i=e.style.overflowX,w.value=i;const S=t.querySelector("#inpElmOverflowY");i=e.style.overflowY,S.value=i}}const Mv=new ni;class Ov{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementSpacing");this.panelStuff=o;const s=`\n <div style="margin-top: 13px;font-weight: bold;width:100%">${t.out("Padding")}</div>\n \n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Top")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmPaddingTop" value="" style="width:45px"/>\n <select id="inpElmPaddingTopUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Bottom")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmPaddingBottom" value="" style="width:45px"/>\n <select id="inpElmPaddingBottomUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Left")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmPaddingLeft" value="" style="width:45px"/>\n <select id="inpElmPaddingLeftUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Right")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmPaddingRight" value="" style="width:45px"/>\n <select id="inpElmPaddingRightUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n \n <div style="margin-top: 25px;font-weight: bold;width:100%">${t.out("Margin")}</div>\n \n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Top")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmMarginTop" value="" style="width:45px"/>\n <select id="inpElmMarginTopUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n <option value="auto">auto</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Bottom")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmMarginBottom" value="" style="width:45px"/>\n <select id="inpElmMarginBottomUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n <option value="auto">auto</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Left")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmMarginLeft" value="" style="width:45px"/>\n <select id="inpElmMarginLeftUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n <option value="auto">auto</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Right")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmMarginRight" value="" style="width:45px"/>\n <select id="inpElmMarginRightUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n <option value="auto">auto</option>\n </select>\n </div>\n </div>\n \n <div style="margin-top: 25px;font-weight: bold;width:100%">${t.out("Responsive Positioning")}:</div>\n \n <div class="is-settings clearfix" style="width:100%;">\n <div>\n <label for="chkResetMarginLeft" style="letter-spacing: 0.5px;"><input type="checkbox" id="chkResetMarginLeft" value="" /> ${t.out("Reset margin left on small screen")} </label>\n </div>\n </div>\n <div class="is-settings clearfix" style="margin-top:0;width:100%;">\n <div>\n <label for="chkResetMarginRight" style="letter-spacing: 0.5px;"><input type="checkbox" id="chkResetMarginRight" value="" /> ${t.out("Reset margin right on small screen")} </label>\n </div>\n </div>\n `;Mv.appendHtml(o,s);let a=o.querySelector("#inpElmMarginLeft");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let r=o.querySelector("#inpElmMarginLeftUnit");a.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=a.value,i=r.value;isNaN(t)||""===t?e.style.marginLeft="":e.style.marginLeft=t+i,"auto"===i&&(e.style.marginLeft="auto"),n.refresh(),this.builder.opts.onChange()})),r.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=a.value,i=r.value;"auto"===i?(e.style.marginLeft="auto",a.value=""):e.style.marginLeft=t+i,n.refresh(),this.builder.opts.onChange()}));let l=o.querySelector("#inpElmMarginRight");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let d=o.querySelector("#inpElmMarginRightUnit");l.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=l.value,i=d.value;isNaN(t)||""===t?e.style.marginRight="":e.style.marginRight=t+i,"auto"===i&&(e.style.marginRight="auto"),n.refresh(),this.builder.opts.onChange()})),d.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=l.value,i=d.value;"auto"===i?(e.style.marginRight="auto",l.value=""):e.style.marginRight=t+i,n.refresh(),this.builder.opts.onChange()}));let c=o.querySelector("#inpElmMarginTop");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let u=o.querySelector("#inpElmMarginTopUnit");c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=c.value,i=u.value;isNaN(t)||""===t?e.style.marginTop="":e.style.marginTop=t+i,"auto"===i&&(e.style.marginTop="auto"),n.refresh(),this.builder.opts.onChange()})),u.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=c.value,i=u.value;"auto"===i?(e.style.marginTop="auto",c.value=""):e.style.marginTop=t+i,n.refresh(),this.builder.opts.onChange()}));let p=o.querySelector("#inpElmMarginBottom");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let h=o.querySelector("#inpElmMarginBottomUnit");p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=p.value,i=h.value;isNaN(t)||""===t?e.style.marginBottom="":e.style.marginBottom=t+i,"auto"===i&&(e.style.marginBottom="auto"),n.refresh(),this.builder.opts.onChange()})),h.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=p.value,i=h.value;"auto"===i?(e.style.marginBottom="auto",p.value=""):e.style.marginBottom=t+i,n.refresh(),this.builder.opts.onChange()}));let g=o.querySelector("#inpElmPaddingLeft");g.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let f=o.querySelector("#inpElmPaddingLeftUnit");g.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=g.value,i=f.value;isNaN(t)||""===t?e.style.paddingLeft="":e.style.paddingLeft=t+i,n.refresh(),this.builder.opts.onChange()})),f.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=g.value,i=f.value;isNaN(t)||""===t?e.style.paddingLeft="":e.style.paddingLeft=t+i,n.refresh(),this.builder.opts.onChange()}));let m=o.querySelector("#inpElmPaddingRight");m.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let v=o.querySelector("#inpElmPaddingRightUnit");m.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=m.value,i=v.value;isNaN(t)||""===t?e.style.paddingRight="":e.style.paddingRight=t+i,n.refresh(),this.builder.opts.onChange()})),v.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=m.value,i=v.value;isNaN(t)||""===t?e.style.paddingRight="":e.style.paddingRight=t+i,n.refresh(),this.builder.opts.onChange()}));let b=o.querySelector("#inpElmPaddingTop");b.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let y=o.querySelector("#inpElmPaddingTopUnit");b.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=b.value,i=y.value;isNaN(t)||""===t?e.style.paddingTop="":e.style.paddingTop=t+i,n.refresh(),this.builder.opts.onChange()})),y.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=b.value,i=y.value;isNaN(t)||""===t?e.style.paddingTop="":e.style.paddingTop=t+i,n.refresh(),this.builder.opts.onChange()}));let _=o.querySelector("#inpElmPaddingBottom");_.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let x=o.querySelector("#inpElmPaddingBottomUnit");_.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=_.value,i=x.value;isNaN(t)||""===t?e.style.paddingBottom="":e.style.paddingBottom=t+i,n.refresh(),this.builder.opts.onChange()})),x.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=_.value,i=x.value;isNaN(t)||""===t?e.style.paddingBottom="":e.style.paddingBottom=t+i,n.refresh(),this.builder.opts.onChange()}));let w=o.querySelector("#chkResetMarginLeft");w.addEventListener("click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;w.checked?Mv.addClass(e,"margin-left-1024-reset"):Mv.removeClass(e,"margin-left-1024-reset"),n.refresh(),this.builder.opts.onChange()}));let S=o.querySelector("#chkResetMarginRight");S.addEventListener("click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;S.checked?Mv.addClass(e,"margin-right-1024-reset"):Mv.removeClass(e,"margin-right-1024-reset"),n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t,i=this.panelStuff;const n=i.querySelector("#inpElmMarginTop"),o=i.querySelector("#inpElmMarginTopUnit");n.value="",o.value="px",t=e.style.marginTop;let s=parseInt(t);isNaN(s)?t&&-1!==t.indexOf("auto")&&(o.value="auto",n.value=""):(-1!==t.indexOf("%")&&(o.value="%"),-1!==t.indexOf("px")&&(o.value="px"),-1!==t.indexOf("vw")&&(o.value="vw"),-1!==t.indexOf("vh")&&(o.value="vh"),-1!==t.indexOf("em")&&(o.value="em"),n.value=s);const a=i.querySelector("#inpElmMarginBottom"),r=i.querySelector("#inpElmMarginBottomUnit");a.value="",r.value="px",t=e.style.marginBottom;let l=parseInt(t);isNaN(l)?t&&-1!==t.indexOf("auto")&&(r.value="auto",a.value=""):(-1!==t.indexOf("%")&&(r.value="%"),-1!==t.indexOf("px")&&(r.value="px"),-1!==t.indexOf("vw")&&(r.value="vw"),-1!==t.indexOf("vh")&&(r.value="vh"),-1!==t.indexOf("em")&&(r.value="em"),a.value=l);const d=i.querySelector("#inpElmMarginLeft"),c=i.querySelector("#inpElmMarginLeftUnit");d.value="",c.value="px",t=e.style.marginLeft;let u=parseInt(t);isNaN(u)?t&&-1!==t.indexOf("auto")&&(c.value="auto",d.value=""):(-1!==t.indexOf("%")&&(c.value="%"),-1!==t.indexOf("px")&&(c.value="px"),-1!==t.indexOf("vw")&&(c.value="vw"),-1!==t.indexOf("vh")&&(c.value="vh"),-1!==t.indexOf("em")&&(c.value="em"),d.value=u);const p=i.querySelector("#inpElmMarginRight"),h=i.querySelector("#inpElmMarginRightUnit");p.value="",h.value="px",t=e.style.marginRight;let g=parseInt(t);isNaN(g)?t&&-1!==t.indexOf("auto")&&(h.value="auto",p.value=""):(-1!==t.indexOf("%")&&(h.value="%"),-1!==t.indexOf("px")&&(h.value="px"),-1!==t.indexOf("vw")&&(h.value="vw"),-1!==t.indexOf("vh")&&(h.value="vh"),-1!==t.indexOf("em")&&(h.value="em"),p.value=g);const f=i.querySelector("#inpElmPaddingTop"),m=i.querySelector("#inpElmPaddingTopUnit");f.value="",m.value="px",t=e.style.paddingTop;let v=parseInt(t);isNaN(v)||(-1!==t.indexOf("%")&&(m.value="%"),-1!==t.indexOf("px")&&(m.value="px"),-1!==t.indexOf("vw")&&(m.value="vw"),-1!==t.indexOf("vh")&&(m.value="vh"),-1!==t.indexOf("em")&&(m.value="em"),f.value=v);const b=i.querySelector("#inpElmPaddingBottom"),y=i.querySelector("#inpElmPaddingBottomUnit");b.value="",y.value="px",t=e.style.paddingBottom;let _=parseInt(t);isNaN(_)||(-1!==t.indexOf("%")&&(y.value="%"),-1!==t.indexOf("px")&&(y.value="px"),-1!==t.indexOf("vw")&&(y.value="vw"),-1!==t.indexOf("vh")&&(y.value="vh"),-1!==t.indexOf("em")&&(y.value="em"),b.value=_);const x=i.querySelector("#inpElmPaddingLeft"),w=i.querySelector("#inpElmPaddingLeftUnit");x.value="",w.value="px",t=e.style.paddingLeft;let S=parseInt(t);isNaN(S)||(-1!==t.indexOf("%")&&(w.value="%"),-1!==t.indexOf("px")&&(w.value="px"),-1!==t.indexOf("vw")&&(w.value="vw"),-1!==t.indexOf("vh")&&(w.value="vh"),-1!==t.indexOf("em")&&(w.value="em"),x.value=S);const C=i.querySelector("#inpElmPaddingRight"),k=i.querySelector("#inpElmPaddingRightUnit");C.value="",k.value="px",t=e.style.paddingRight;let E=parseInt(t);isNaN(E)||(-1!==t.indexOf("%")&&(k.value="%"),-1!==t.indexOf("px")&&(k.value="px"),-1!==t.indexOf("vw")&&(k.value="vw"),-1!==t.indexOf("vh")&&(k.value="vh"),-1!==t.indexOf("em")&&(k.value="em"),C.value=E),Mv.hasClass(e,"margin-left-1024-reset")?i.querySelector("#chkResetMarginLeft").checked=!0:i.querySelector("#chkResetMarginLeft").checked=!1,Mv.hasClass(e,"margin-right-1024-reset")?i.querySelector("#chkResetMarginRight").checked=!0:i.querySelector("#chkResetMarginRight").checked=!1}}const Rv=new ni;class Nv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementBorder");this.panelStuff=o;const s=`\n <div style="margin-top: 13px;font-weight: bold;line-height: 1.7;">${t.out("Border")}</div>\n \n <div class="is-settings clearfix">\n <div style="display:flex;">\n <input type="text" id="inpElmBorderWidth" value="" style="width:45px"/>\n <select id="inpElmBorderWidthUnit" style="margin-right:15px;">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="none">none</option>\n </select>\n <select id="inpElmBorderStyle" style="margin-right:15px;">\n <option value=""></option>\n <option value="solid">Solid</option>\n <option value="dashed">Dashed</option>\n <option value="dotted">Dotted</option>\n </select>\n <button title="${t.out("Border Color")}" class="input-elm-bordercolor is-btn-color"></button> \n </div>\n </div>\n \n <div style="margin-top: 25px;font-weight: bold;line-height: 1.7;">${t.out("Individual Sides")}</div>\n \n <div class="is-settings clearfix">\n <div>${t.out("Border Top")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmBorderTopWidth" value="" style="width:45px"/>\n <select id="inpElmBorderTopWidthUnit" style="margin-right:15px;">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="none">none</option>\n </select>\n <select id="inpElmBorderTopStyle" style="margin-right:15px;">\n <option value=""></option>\n <option value="solid">Solid</option>\n <option value="dashed">Dashed</option>\n <option value="dotted">Dotted</option>\n </select>\n <button title="${t.out("Border Top Color")}" class="input-elm-bordertopcolor is-btn-color"></button>\n </div>\n </div>\n \n <div class="is-settings clearfix">\n <div>${t.out("Border Bottom")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmBorderBottomWidth" value="" style="width:45px"/>\n <select id="inpElmBorderBottomWidthUnit" style="margin-right:15px;">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="none">none</option>\n </select>\n <select id="inpElmBorderBottomStyle" style="margin-right:15px;">\n <option value=""></option>\n <option value="solid">Solid</option>\n <option value="dashed">Dashed</option>\n <option value="dotted">Dotted</option>\n </select>\n <button title="${t.out("Border Bottom Color")}" class="input-elm-borderbottomcolor is-btn-color"></button>\n </div>\n </div>\n \n <div class="is-settings clearfix">\n <div>${t.out("Border Left")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmBorderLeftWidth" value="" style="width:45px"/>\n <select id="inpElmBorderLeftWidthUnit" style="margin-right:15px;">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="none">none</option>\n </select>\n <select id="inpElmBorderLeftStyle" style="margin-right:15px;">\n <option value=""></option>\n <option value="solid">Solid</option>\n <option value="dashed">Dashed</option>\n <option value="dotted">Dotted</option>\n </select>\n <button title="${t.out("Border Left Color")}" class="input-elm-borderleftcolor is-btn-color"></button>\n </div>\n </div>\n \n <div class="is-settings clearfix">\n <div>${t.out("Border Right")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmBorderRightWidth" value="" style="width:45px"/>\n <select id="inpElmBorderRightWidthUnit" style="margin-right:15px;">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="none">none</option>\n </select>\n <select id="inpElmBorderRightStyle" style="margin-right:15px;">\n <option value=""></option>\n <option value="solid">Solid</option>\n <option value="dashed">Dashed</option>\n <option value="dotted">Dotted</option>\n </select>\n <button title="${t.out("Border Right Color")}" class="input-elm-borderrightcolor is-btn-color"></button> \n </div>\n </div> \n `;Rv.appendHtml(o,s);let a=o.querySelector(".input-elm-bordercolor");a.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.borderColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),a.style.backgroundColor)}));let r=o.querySelector(".input-elm-bordertopcolor");r.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.borderTopColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),r.style.backgroundColor)}));let l=o.querySelector(".input-elm-borderbottomcolor");l.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.borderBottomColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),l.style.backgroundColor)}));let d=o.querySelector(".input-elm-borderleftcolor");d.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.borderLeftColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),d.style.backgroundColor)}));let c=o.querySelector(".input-elm-borderrightcolor");c.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.borderRightColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),c.style.backgroundColor)}));let u=o.querySelector("#inpElmBorderWidth");u.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),u.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderWidth").value;isNaN(t)||""===t?(e.style.borderStyle="solid",e.style.borderWidth="",e.style.borderStyle=""):(e.style.borderStyle="solid",e.style.borderWidth=t+o.querySelector("#inpElmBorderWidthUnit").value,e.style.borderStyle=o.querySelector("#inpElmBorderStyle").value),n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderWidthUnit").value;"none"===t?(e.style.border="none",e.style.borderWidth="",e.style.borderStyle=""):e.style.borderWidth=o.querySelector("#inpElmBorderWidth").value+t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderStyle").value;e.style.borderStyle=t,n.refresh(),this.builder.opts.onChange()}));let p=o.querySelector("#inpElmBorderTopWidth");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderTopWidth").value;isNaN(t)||""===t?(e.style.borderTopStyle="solid",e.style.borderTopWidth="",e.style.borderTopStyle=""):(e.style.borderTopStyle="solid",e.style.borderTopWidth=t+o.querySelector("#inpElmBorderTopWidthUnit").value,e.style.borderTopStyle=o.querySelector("#inpElmBorderTopStyle").value),n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderTopWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderTopWidthUnit").value;"none"===t?(e.style.borderTop="none",e.style.borderTopWidth="",e.style.borderTopStyle="",this.panelStuff.querySelector("#inpElmBorderTopWidth").value="",this.panelStuff.querySelector("#inpElmBorderTopStyle").value=""):e.style.borderTopWidth=o.querySelector("#inpElmBorderTopWidth").value+t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderTopStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderTopStyle").value;e.style.borderTopStyle=t,n.refresh(),this.builder.opts.onChange()}));let h=o.querySelector("#inpElmBorderBottomWidth");h.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),h.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderBottomWidth").value;isNaN(t)||""===t?(e.style.borderBottomStyle="solid",e.style.borderBottomWidth="",e.style.borderBottomStyle=""):(e.style.borderBottomStyle="solid",e.style.borderBottomWidth=t+o.querySelector("#inpElmBorderBottomWidthUnit").value,e.style.borderBottomStyle=o.querySelector("#inpElmBorderBottomStyle").value),n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderBottomWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderBottomWidthUnit").value;"none"===t?(e.style.borderBottom="none",e.style.borderBottomWidth="",e.style.borderBottomStyle="",this.panelStuff.querySelector("#inpElmBorderBottomWidth").value="",this.panelStuff.querySelector("#inpElmBorderBottomStyle").value=""):e.style.borderBottomWidth=o.querySelector("#inpElmBorderBottomWidth").value+t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderBottomStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderBottomStyle").value;e.style.borderBottomStyle=t,n.refresh(),this.builder.opts.onChange()}));let g=o.querySelector("#inpElmBorderLeftWidth");g.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),g.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderLeftWidth").value;isNaN(t)||""===t?(e.style.borderLeftStyle="solid",e.style.borderLeftWidth="",e.style.borderLeftStyle=""):(e.style.borderLeftStyle="solid",e.style.borderLeftWidth=t+o.querySelector("#inpElmBorderLeftWidthUnit").value,e.style.borderLeftStyle=o.querySelector("#inpElmBorderLeftStyle").value),n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderLeftWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderLeftWidthUnit").value;"none"===t?(e.style.borderLeft="none",e.style.borderLeftWidth="",e.style.borderLeftStyle="",this.panelStuff.querySelector("#inpElmBorderLeftWidth").value="",this.panelStuff.querySelector("#inpElmBorderLeftStyle").value=""):e.style.borderLeftWidth=o.querySelector("#inpElmBorderLeftWidth").value+t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderLeftStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderLeftStyle").value;e.style.borderLeftStyle=t,n.refresh(),this.builder.opts.onChange()}));let f=o.querySelector("#inpElmBorderRightWidth");f.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),f.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderRightWidth").value;isNaN(t)||""===t?(e.style.borderRightStyle="solid",e.style.borderRightWidth="",e.style.borderRightStyle=""):(e.style.borderRightStyle="solid",e.style.borderRightWidth=t+o.querySelector("#inpElmBorderRightWidthUnit").value,e.style.borderRightStyle=o.querySelector("#inpElmBorderRightStyle").value),n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderRightWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderRightWidthUnit").value;"none"===t?(e.style.borderRight="none",e.style.borderRightWidth="",e.style.borderRightStyle="",this.panelStuff.querySelector("#inpElmBorderRightWidth").value="",this.panelStuff.querySelector("#inpElmBorderRightStyle").value=""):e.style.borderRightWidth=o.querySelector("#inpElmBorderRightWidth").value+t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderRightStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderRightStyle").value;e.style.borderRightStyle=t,n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){this.panelStuff.querySelector(".input-elm-bordercolor").style.backgroundColor=e.style.borderColor,this.panelStuff.querySelector(".input-elm-bordertopcolor").style.backgroundColor=e.style.borderTopColor,this.panelStuff.querySelector(".input-elm-borderbottomcolor").style.backgroundColor=e.style.borderBottomColor,this.panelStuff.querySelector(".input-elm-borderleftcolor").style.backgroundColor=e.style.borderLeftColor,this.panelStuff.querySelector(".input-elm-borderrightcolor").style.backgroundColor=e.style.borderRightColor,this.panelStuff.querySelector("#inpElmBorderWidth").value="",this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="",this.panelStuff.querySelector("#inpElmBorderStyle").value="";var t=e.style.borderWidth,i=parseInt(t);isNaN(i)?-1!==(t=e.style.border).indexOf("none")&&(this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="none",this.panelStuff.querySelector("#inpElmBorderWidth").value="",this.panelStuff.querySelector("#inpElmBorderStyle").value=""):(-1!==t.indexOf("px")&&(this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="px"),-1!==t.indexOf("vw")&&(this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="vw"),-1!==t.indexOf("vh")&&(this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="vh"),-1!==t.indexOf("em")&&(this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="em"),this.panelStuff.querySelector("#inpElmBorderWidth").value=i,-1!==(t=e.style.borderStyle).indexOf("solid")&&(this.panelStuff.querySelector("#inpElmBorderStyle").value="solid"),-1!==t.indexOf("dashed")&&(this.panelStuff.querySelector("#inpElmBorderStyle").value="dashed"),-1!==t.indexOf("dotted")&&(this.panelStuff.querySelector("#inpElmBorderStyle").value="dotted")),this.panelStuff.querySelector("#inpElmBorderTopWidth").value="",this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="",this.panelStuff.querySelector("#inpElmBorderTopStyle").value="",t=e.style.borderTopWidth;var n=parseInt(t);isNaN(n)?-1!==(t=e.style.borderTop).indexOf("none")&&(this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="none",this.panelStuff.querySelector("#inpElmBorderTopWidth").value="",this.panelStuff.querySelector("#inpElmBorderTopStyle").value=""):(-1!==t.indexOf("px")&&(this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="px"),-1!==t.indexOf("vw")&&(this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="vw"),-1!==t.indexOf("vh")&&(this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="vh"),-1!==t.indexOf("em")&&(this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="em"),this.panelStuff.querySelector("#inpElmBorderTopWidth").value=n,-1!==t.indexOf("solid")&&(this.panelStuff.querySelector("#inpElmBorderTopStyle").value="solid"),-1!==t.indexOf("dashed")&&(this.panelStuff.querySelector("#inpElmBorderTopStyle").value="dashed"),-1!==t.indexOf("dotted")&&(this.panelStuff.querySelector("#inpElmBorderTopStyle").value="dotted")),this.panelStuff.querySelector("#inpElmBorderBottomWidth").value="",this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="",this.panelStuff.querySelector("#inpElmBorderBottomStyle").value="",t=e.style.borderBottomWidth;var o=parseInt(t);isNaN(o)?-1!==(t=e.style.borderBottom).indexOf("none")&&(this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="none",this.panelStuff.querySelector("#inpElmBorderBottomWidth").value="",this.panelStuff.querySelector("#inpElmBorderBottomStyle").value=""):(-1!==t.indexOf("px")&&(this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="px"),-1!==t.indexOf("vw")&&(this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="vw"),-1!==t.indexOf("vh")&&(this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="vh"),-1!==t.indexOf("em")&&(this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="em"),this.panelStuff.querySelector("#inpElmBorderBottomWidth").value=o,-1!==t.indexOf("solid")&&(this.panelStuff.querySelector("#inpElmBorderBottomStyle").value="solid"),-1!==t.indexOf("dashed")&&(this.panelStuff.querySelector("#inpElmBorderBottomStyle").value="dashed"),-1!==t.indexOf("dotted")&&(this.panelStuff.querySelector("#inpElmBorderBottomStyle").value="dotted")),this.panelStuff.querySelector("#inpElmBorderLeftWidth").value="",this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="",this.panelStuff.querySelector("#inpElmBorderLeftStyle").value="",t=e.style.borderLeftWidth;var s=parseInt(t);isNaN(s)?-1!==(t=e.style.borderLeft).indexOf("none")&&(this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="none",this.panelStuff.querySelector("#inpElmBorderLeftWidth").value="",this.panelStuff.querySelector("#inpElmBorderLeftStyle").value=""):(-1!==t.indexOf("px")&&(this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="px"),-1!==t.indexOf("vw")&&(this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="vw"),-1!==t.indexOf("vh")&&(this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="vh"),-1!==t.indexOf("em")&&(this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="em"),this.panelStuff.querySelector("#inpElmBorderLeftWidth").value=s,-1!==t.indexOf("solid")&&(this.panelStuff.querySelector("#inpElmBorderLeftStyle").value="solid"),-1!==t.indexOf("dashed")&&(this.panelStuff.querySelector("#inpElmBorderLeftStyle").value="dashed"),-1!==t.indexOf("dotted")&&(this.panelStuff.querySelector("#inpElmBorderLeftStyle").value="dotted")),this.panelStuff.querySelector("#inpElmBorderRightWidth").value="",this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="",this.panelStuff.querySelector("#inpElmBorderRightStyle").value="",t=e.style.borderRightWidth;var a=parseInt(t);isNaN(a)?-1!==(t=e.style.borderRight).indexOf("none")&&(this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="none",this.panelStuff.querySelector("#inpElmBorderRightWidth").value="",this.panelStuff.querySelector("#inpElmBorderRightStyle").value=""):(-1!==t.indexOf("px")&&(this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="px"),-1!==t.indexOf("vw")&&(this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="vw"),-1!==t.indexOf("vh")&&(this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="vh"),-1!==t.indexOf("em")&&(this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="em"),this.panelStuff.querySelector("#inpElmBorderRightWidth").value=a,-1!==t.indexOf("solid")&&(this.panelStuff.querySelector("#inpElmBorderRightStyle").value="solid"),-1!==t.indexOf("dashed")&&(this.panelStuff.querySelector("#inpElmBorderRightStyle").value="dashed"),-1!==t.indexOf("dotted")&&(this.panelStuff.querySelector("#inpElmBorderRightStyle").value="dotted"))}}const Bv=new ni;class Iv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementText");this.panelStuff=o;const s=`\n <div class="is-settings clearfix" style="width:115px;">\n <div>Text Color:</div>\n <div>\n <button title="${t.out("Text Color")}" class="input-elm-color is-btn-color"></button>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Font Size")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmFontSize" value="" style="width:45px"/>\n <select id="inpElmFontSizeUnit">\n <option value=""></option>\n <option value="px">px</option>\n <option value="pt">pt</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="vmin">vmin</option>\n <option value="vmax">vmax</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Text Align")}:</div>\n <div>\n <select id="inpElmTextAlign">\n <option value=""></option>\n <option value="left">${t.out("Left")}</option>\n <option value="center">${t.out("Center")}</option>\n <option value="right">${t.out("Right")}</option>\n <option value="justify">${t.out("Full")}</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Line Height")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmLineHeight" value="" style="width:45px"/>\n <select id="inpElmLineHeightUnit">\n <option value=""></option>\n <option value="px">px</option>\n <option value="pt">pt</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Font Weight")}:</div>\n <div>\n <select id="inpElmFontWeight">\n <option value=""></option>\n <option value="100">100</option>\n <option value="200">200</option>\n <option value="300">300</option>\n <option value="400">400</option>\n <option value="500">500</option>\n <option value="600">600</option>\n <option value="700">700</option>\n <option value="800">800</option>\n <option value="900">900</option>\n <option value="bold">${t.out("Bold")}</option>\n <option value="normal">${t.out("Normal")}</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Font Style")}:</div>\n <div>\n <select id="inpElmFontStyle">\n <option value=""></option>\n <option value="italic">${t.out("Italic")}</option>\n <option value="normal">${t.out("Normal")}</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Text Transform")}:</div>\n <div>\n <select id="inpElmTextTransform">\n <option value=""></option>\n <option value="uppercase">${t.out("Uppercase")}</option>\n <option value="lowercase">${t.out("Lowercase")}</option>\n <option value="capitalize">${t.out("Capitalize")}</option>\n <option value="none">${t.out("None")}</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Text Decoration")}:</div>\n <div>\n <select id="inpElmTextDecoration">\n <option value=""></option>\n <option value="underline">${t.out("Underline")}</option>\n <option value="line-through">${t.out("Line Through")}</option>\n <option value="overline">${t.out("Overline")}</option>\n <option value="none">${t.out("None")}</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Letter Spacing")}:</div>\n <div>\n <input type="text" id="inpElmLetterSpacing" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Word Spacing")}:</div>\n <div>\n <input type="text" id="inpElmWordSpacing" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div>${t.out("Font Family")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmFontFamily" value="" style="width:100%"/>\n <button title="${t.out("Select Font")}" class="input-elm-fontfamily classic" style="border-left: none;width:45px;padding:0;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n </div>\n </div>\n `;Bv.appendHtml(o,s);const a=`\n <div class="is-modal pickfontfamily">\n <div class="is-modal-content">\n <div class="is-modal-bar is-draggable"> ${t.out("Font")} </div>\n <div class="clearfix" style="margin-top:28px;padding:0px;height:300px;position:relative;">\n <iframe src="about:blank" style="width:100%;height:100%;position:absolute;top:0;left:0;border: none;"></iframe>\n </div>\n </div>\n </div>\n `;Bv.appendHtml(i,a);const r=i.querySelector(".is-modal.pickfontfamily");let l=o.querySelector(".input-elm-color");l.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.color=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),l.style.backgroundColor)})),o.querySelector("#inpElmTextAlign").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmTextAlign").value;e.style.textAlign=t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmFontWeight").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFontWeight").value;e.style.fontWeight=t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmFontStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFontStyle").value;e.style.fontStyle=t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmTextTransform").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmTextTransform").value;e.style.textTransform=t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmTextDecoration").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmTextDecoration").value;e.style.textDecoration=t,n.refresh(),this.builder.opts.onChange()}));let d=o.querySelector("#inpElmFontSize");d.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),d.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFontSize").value,i=o.querySelector("#inpElmFontSizeUnit").value;""===i&&(o.querySelector("#inpElmFontSizeUnit").value="px",i="px"),isNaN(t)||""===t?e.style.fontSize="":e.style.fontSize=t+i;const s=this.builder.opts.fontSizeClassValues;for(var a=0;a<=s.length-1;a++)Bv.hasClass(e,"size-"+s[a])&&Bv.removeClass(e,"size-"+s[a]);n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmFontSizeUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFontSize").value,i=o.querySelector("#inpElmFontSizeUnit").value;isNaN(t)||""===t?e.style.fontSize="":e.style.fontSize=t+i,n.refresh(),this.builder.opts.onChange()}));let c=o.querySelector("#inpElmLineHeight");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmLineHeight").value,i=o.querySelector("#inpElmLineHeightUnit").value;isNaN(t)||""===t?e.style.lineHeight="":e.style.lineHeight=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmLineHeightUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmLineHeightUnit").value,i=o.querySelector("#inpElmLineHeight").value;isNaN(i)||""===i?e.style.lineHeight="":e.style.lineHeight=i+t,n.refresh(),this.builder.opts.onChange()}));let u=o.querySelector("#inpElmLetterSpacing");u.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),u.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmLetterSpacing").value;isNaN(t)||""===t?e.style.letterSpacing="":e.style.letterSpacing=t+"px",n.refresh(),this.builder.opts.onChange()}));let p=o.querySelector("#inpElmWordSpacing");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmWordSpacing").value;isNaN(t)||""===t?e.style.wordSpacing="":e.style.wordSpacing=t+"px",n.refresh(),this.builder.opts.onChange()}));let h=o.querySelector("#inpElmFontFamily");if(h.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),h.addEventListener("keyup",(()=>{let e=o.querySelector("#inpElmFontFamily").value;this.builder.inspectedElement.style.fontFamily=e,n.refresh(),this.builder.opts.onChange()})),!this.builder.renderIframeLater){let e=r.querySelector("iframe").contentWindow.document;e.open(),this.builder.opts.emailMode?e.write(this.util.getFontFamilyEmail(!0)):e.write(this.util.getFontFamilyHTML(!0)),e.close()}o.querySelector(".input-elm-fontfamily").addEventListener("click",(()=>{let e=this.builder.inspectedElement;this.util.showModal(r);var t=e.style.fontFamily;const i=r.querySelector("iframe");let n=i.contentDocument||i.contentWindow.document;if(""!==t){let e=t.split(",")[0];if(e=e.replace('"',"").replace('"',""),e=e.toLowerCase().trim(),n){[].forEach.call(n.querySelectorAll("#divFontList > div"),(function(t){var i=t.getAttribute("data-font-family");(i=(i=i.split(",")[0]).trim().toLowerCase())===e&&""!==i?Bv.addClass(t,"on"):Bv.removeClass(t,"on")}));let t=n.querySelector("#divFontList");var o=t.querySelector(".on");o&&(t.scrollTop=t.scrollTop+o.getBoundingClientRect().top)}}else n&&[].forEach.call(n.querySelectorAll("#divFontList > div"),(function(e){Bv.removeClass(e,"on")}))}))}readElementStyles(e){this.panelStuff.querySelector(".input-elm-color").style.backgroundColor=e.style.color,this.panelStuff.querySelector("#inpElmTextAlign").value="";var t=e.style.textAlign;this.panelStuff.querySelector("#inpElmTextAlign").value=t,this.panelStuff.querySelector("#inpElmFontSize").value="";var i=parseInt(e.style.fontSize);let n;isNaN(i)||(this.panelStuff.querySelector("#inpElmFontSize").value=i),this.panelStuff.querySelector("#inpElmFontSizeUnit").value="px";var o=e.style.fontSize;-1!==o.indexOf("px")&&(n="px"),-1!==o.indexOf("pt")&&(n="pt"),-1!==o.indexOf("em")&&(n="em"),-1!==o.indexOf("vw")&&(n="vw"),-1!==o.indexOf("vh")&&(n="vh"),-1!==o.indexOf("vmin")&&(n="vmin"),-1!==o.indexOf("vmax")&&(n="vmax"),-1!==o.indexOf("%")&&(n="%"),this.panelStuff.querySelector("#inpElmFontSizeUnit").value=n,this.panelStuff.querySelector("#inpElmFontWeight").value="";var s=e.style.fontWeight;this.panelStuff.querySelector("#inpElmFontWeight").value=s,this.panelStuff.querySelector("#inpElmFontStyle").value="";var a=e.style.fontStyle;this.panelStuff.querySelector("#inpElmFontStyle").value=a,this.panelStuff.querySelector("#inpElmTextTransform").value="";var r=e.style.textTransform;this.panelStuff.querySelector("#inpElmTextTransform").value=r,this.panelStuff.querySelector("#inpElmTextDecoration").value="";var l=e.style.textDecoration;if(this.panelStuff.querySelector("#inpElmTextDecoration").value=l,this.panelStuff.querySelector("#inpElmLineHeight").value="",isNaN(e.style.lineHeight)){var d=parseInt(e.style.lineHeight);isNaN(d)||(this.panelStuff.querySelector("#inpElmLineHeight").value=d)}else this.panelStuff.querySelector("#inpElmLineHeight").value=e.style.lineHeight;let c;this.panelStuff.querySelector("#inpElmLineHeightUnit").value="",-1!==(o=e.style.lineHeight).indexOf("px")&&(c="px"),-1!==o.indexOf("pt")&&(c="pt"),this.panelStuff.querySelector("#inpElmLineHeightUnit").value=c,this.panelStuff.querySelector("#inpElmLetterSpacing").value="";var u=parseInt(e.style.letterSpacing);isNaN(u)||(this.panelStuff.querySelector("#inpElmLetterSpacing").value=u),this.panelStuff.querySelector("#inpElmWordSpacing").value="";var p=parseInt(e.style.wordSpacing);isNaN(p)||(this.panelStuff.querySelector("#inpElmWordSpacing").value=p),this.panelStuff.querySelector("#inpElmFontFamily").value="";var h=e.style.fontFamily;""!==h&&(this.panelStuff.querySelector("#inpElmFontFamily").value=h)}}const Dv=new ni;class $v{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementCorner");this.panelStuff=o;const s=`\n <div style="margin-top: 13px;font-weight: bold;width:100%;">${t.out("Corners")}</div>\n\n <div class="is-settings clearfix" style="width:100%;margin-bottom:9px;">\n <div>${t.out("Border Radius")}:</div>\n <div>\n <input type="text" id="inpElmBorderRadius" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div style="margin-top: 25px;font-weight: bold;width:100%;">${t.out("Individual Corners")}</div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Top Left")}:</div>\n <div>\n <input type="text" id="inpElmBorderTopLeftRadius" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Top Right")}:</div>\n <div>\n <input type="text" id="inpElmBorderTopRightRadius" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Bottom Left")}:</div>\n <div>\n <input type="text" id="inpElmBorderBottomLeftRadius" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Bottom Right")}:</div>\n <div>\n <input type="text" id="inpElmBorderBottomRightRadius" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n `;Dv.appendHtml(o,s);const a=o.querySelector("#inpElmBorderRadius");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),a.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBorderRadius").value;isNaN(t)||""===t?e.style.borderRadius="":e.style.borderRadius=t+"px",n.refresh(),this.builder.opts.onChange()}));const r=o.querySelector("#inpElmBorderTopLeftRadius");r.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),r.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBorderTopLeftRadius").value;isNaN(t)||""===t?e.style.borderTopLeftRadius="":e.style.borderTopLeftRadius=t+"px",n.refresh(),this.builder.opts.onChange()}));const l=o.querySelector("#inpElmBorderTopRightRadius");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),l.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBorderTopRightRadius").value;isNaN(t)||""===t?e.style.borderTopRightRadius="":e.style.borderTopRightRadius=t+"px",n.refresh(),this.builder.opts.onChange()}));const d=o.querySelector("#inpElmBorderBottomLeftRadius");d.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),d.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBorderBottomLeftRadius").value;isNaN(t)||""===t?e.style.borderBottomLeftRadius="":e.style.borderBottomLeftRadius=t+"px",n.refresh(),this.builder.opts.onChange()}));const c=o.querySelector("#inpElmBorderBottomRightRadius");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBorderBottomRightRadius").value;isNaN(t)||""===t?e.style.borderBottomRightRadius="":e.style.borderBottomRightRadius=t+"px",n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t=this.panelStuff;const i=t.querySelector("#inpElmBorderRadius");i.value="";let n=e.style.borderRadius,o=parseInt(n);isNaN(o)||(i.value=o);const s=t.querySelector("#inpElmBorderTopLeftRadius");s.value="",n=e.style.borderTopLeftRadius;let a=parseInt(n);isNaN(a)||(s.value=a);const r=t.querySelector("#inpElmBorderTopRightRadius");r.value="",n=e.style.borderTopRightRadius;let l=parseInt(n);isNaN(l)||(r.value=l);const d=t.querySelector("#inpElmBorderBottomLeftRadius");d.value="",n=e.style.borderBottomLeftRadius;let c=parseInt(n);isNaN(c)||(d.value=c);const u=t.querySelector("#inpElmBorderBottomRightRadius");u.value="",n=e.style.borderBottomRightRadius;let p=parseInt(n);isNaN(p)||(u.value=p)}}const Pv=new ni;class Hv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementShadow");this.panelStuff=o;const s=`\n <div style="margin-top:13px;font-weight:bold;width:100%;">${t.out("Shadow")}</div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("x Offset")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmBoxShadowX" value="" style="width:45px"/>\n <select id="inpElmBoxShadowXUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("y Offset")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmBoxShadowY" value="" style="width:45px"/>\n <select id="inpElmBoxShadowYUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Blur")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmBoxShadowBlur" value="" style="width:45px"/>\n <select id="inpElmBoxShadowBlurUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Spread")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmBoxShadowSpread" value="" style="width:45px"/>\n <select id="inpElmBoxShadowSpreadUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div>${t.out("Shadow Color")}:</div>\n <div>\n <button title="${t.out("Shadow Color")}" class="input-elm-shadowcolor is-btn-color"></button>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div>${t.out("Outer/Inner Shadow")}:</div>\n <div>\n <select id="inpElmBoxShadowInset">\n <option value="">Outset</option>\n <option value="inset">Inset</option>\n </select>\n </div>\n </div>\n `;Pv.appendHtml(o,s);let a=o.querySelector(".input-elm-shadowcolor");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0),this.builder.colorPicker.open((e=>{a.style.backgroundColor=e,this.updateShadow(this.builder.inspectedElement),n.refresh(),this.builder.opts.onChange()}),a.style.backgroundColor)}));let r=o.querySelectorAll("#inpElmBoxShadowX,#inpElmBoxShadowY,#inpElmBoxShadowBlur,#inpElmBoxShadowSpread");Array.prototype.forEach.call(r,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),e.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;this.updateShadow(e),n.refresh(),this.builder.opts.onChange()}))})),r=o.querySelectorAll("#inpElmBoxShadowXUnit,#inpElmBoxShadowYUnit,#inpElmBoxShadowBlurUnit,#inpElmBoxShadowSpreadUnit"),Array.prototype.forEach.call(r,(e=>{e.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;this.updateShadow(e),n.refresh(),this.builder.opts.onChange()}))}));o.querySelector("#inpElmBoxShadowInset").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;this.updateShadow(e),n.refresh(),this.builder.opts.onChange()}))}updateShadow(e){let t=this.panelStuff;var i=t.querySelector(".input-elm-shadowcolor").style.backgroundColor,n=t.querySelector("#inpElmBoxShadowInset").value,o=t.querySelector("#inpElmBoxShadowX").value,s=t.querySelector("#inpElmBoxShadowXUnit").value,a="";isNaN(o)||""===o||(a=o+s),o=t.querySelector("#inpElmBoxShadowY").value,s=t.querySelector("#inpElmBoxShadowYUnit").value;var r="";isNaN(o)||""===o||(r=o+s),o=t.querySelector("#inpElmBoxShadowBlur").value,s=t.querySelector("#inpElmBoxShadowBlurUnit").value;var l="";isNaN(o)||""===o||(l=o+s),o=t.querySelector("#inpElmBoxShadowSpread").value,s=t.querySelector("#inpElmBoxShadowSpreadUnit").value;var d="";isNaN(o)||""===o||(d=o+s),e.style.boxShadow=(a+" "+r+" "+l+" "+d+" "+i+" "+n).trim()}readElementStyles(e){let t,i,n=this.panelStuff,o=e.style.boxShadow,s=n.querySelectorAll("#inpElmBoxShadowX,#inpElmBoxShadowY,#inpElmBoxShadowBlur,#inpElmBoxShadowSpread");if(Array.prototype.forEach.call(s,(e=>{e.value=""})),s=n.querySelectorAll("#inpElmBoxShadowXUnit,#inpElmBoxShadowYUnit,#inpElmBoxShadowBlurUnit,#inpElmBoxShadowSpreadUnit"),Array.prototype.forEach.call(s,(e=>{e.value="px"})),n.querySelector("#inpElmBoxShadowInset").value="",-1!==o.indexOf("inset")&&(n.querySelector("#inpElmBoxShadowInset").value="inset",o=o.replace("inset","")),""!==o){-1!==o.indexOf("rgb")&&(t=o.substr(o.indexOf("rgb")),t=t.substr(0,t.indexOf(")")+1),n.querySelector(".input-elm-shadowcolor").style.backgroundColor=t,i=o.split("rgb")[1].indexOf(")"),o=o.split("rgb")[0]+o.split("rgb")[1].substr(i+2)),-1!==o.indexOf("#")&&(t=o.substr(o.indexOf("#")),t=t.substr(0,t.indexOf(" ")),n.querySelector(".input-elm-shadowcolor").style.backgroundColor=t,i=o.split("#")[1].indexOf(" "),o=o.split("#")[0]+o.split("#")[1].substr(i+2));let e=o.split(" "),s=e.length;i=1;for(let t=0;t<s;t++)1===i&&(n.querySelector("#inpElmBoxShadowX").value=parseInt(e[t]),-1!==e[t].indexOf("px")?n.querySelector("#inpElmBoxShadowXUnit").value="px":-1!==e[t].indexOf("em")?n.querySelector("#inpElmBoxShadowXUnit").value="em":n.querySelector("#inpElmBoxShadowX").value=""),2===i&&(n.querySelector("#inpElmBoxShadowY").value=parseInt(e[t]),-1!==e[t].indexOf("px")?n.querySelector("#inpElmBoxShadowYUnit").value="px":-1!==e[t].indexOf("em")?n.querySelector("#inpElmBoxShadowYUnit").value="em":n.querySelector("#inpElmBoxShadowY").value=""),3===i&&(n.querySelector("#inpElmBoxShadowBlur").value=parseInt(e[t]),-1!==e[t].indexOf("px")?n.querySelector("#inpElmBoxShadowBlurUnit").value="px":-1!==e[t].indexOf("em")?n.querySelector("#inpElmBoxShadowBlurUnit").value="em":n.querySelector("#inpElmBoxShadowBlur").value=""),4===i&&(n.querySelector("#inpElmBoxShadowSpread").value=parseInt(e[t]),-1!==e[t].indexOf("px")?n.querySelector("#inpElmBoxShadowSpreadUnit").value="px":-1!==e[t].indexOf("em")?n.querySelector("#inpElmBoxShadowSpreadUnit").value="em":n.querySelector("#inpElmBoxShadowSpread").value=""),i++}}}const zv=new ni;class Fv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementDisplay");this.panelStuff=o;const s=`\n <div style="margin-top:13px;font-weight:bold;">${t.out("Display")}</div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="display:flex">\n <select id="inpElmDisplay" style="width:110px;">\n <option value=""></option>\n <option value="block">Block</option>\n <option value="inline-block">Inline Block</option>\n <option value="inline">Inline</option>\n <option value="flex">Flex</option>\n <option value="none">None</option>\n </select>\n </div>\n </div>\n\n <div style="margin-top:25px;font-weight:bold;width:100%;">${t.out("Flex")}</div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Direction")}:</div>\n <div style="display:flex">\n <select id="inpElmFlexDirection" style="width:110px;">\n <option value=""></option>\n <option value="row">Row</option>\n <option value="row-reverse">Row Reverse</option>\n <option value="column">Column</option>\n <option value="column-reverse">Column Reverse</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Wrap")}:</div>\n <div style="display:flex">\n <select id="inpElmFlexWrap" style="width:110px;">\n <option value=""></option>\n <option value="no-wrap">No Wrap</option>\n <option value="wrap">Wrap</option>\n <option value="wrap-reverse">Wrap Reverse</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div>${t.out("Justify Content")}:</div>\n <div style="display:flex">\n <select id="inpElmJustifyContent" style="width:110px;">\n <option value=""></option>\n <option value="center">Center</option>\n <option value="flex-start">Flex Start</option>\n <option value="flex-end">Flex End</option>\n <option value="space-around">Space Around</option>\n <option value="space-between">Space Between</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Align Items")}:</div>\n <div style="display:flex">\n <select id="inpElmAlignItems" style="width:110px;">\n <option value=""></option>\n <option value="center">Center</option>\n <option value="flex-start">Flex Start</option>\n <option value="flex-end">Flex End</option>\n <option value="stretch">Stretch</option>\n <option value="baseline">Baseline</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Align Content")}:</div>\n <div style="display:flex">\n <select id="inpElmAlignContent" style="width:110px;">\n <option value=""></option>\n <option value="center">Center</option>\n <option value="flex-start">Flex Start</option>\n <option value="flex-end">Flex End</option>\n <option value="stretch">Stretch</option>\n <option value="space-around">Space Around</option>\n <option value="space-between">Space Between</option>\n </select>\n </div>\n </div>\n `;zv.appendHtml(o,s);o.querySelector("#inpElmDisplay").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmDisplay").value;e.style.display=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmFlexDirection").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFlexDirection").value;e.style.flexDirection=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmFlexWrap").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFlexWrap").value;e.style.flexWrap=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmJustifyContent").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmJustifyContent").value;e.style.justifyContent=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmAlignItems").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmAlignItems").value;e.style.alignItems=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmAlignContent").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmAlignContent").value;e.style.alignContent=t,n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t=this.panelStuff;const i=t.querySelector("#inpElmDisplay");i.value="";let n=e.style.display;n&&(i.value=n);const o=t.querySelector("#inpElmFlexDirection");o.value="",n=e.style.flexDirection,n&&(o.value=n);const s=t.querySelector("#inpElmFlexWrap");s.value="",n=e.style.flexWrap,n&&(s.value=n);const a=t.querySelector("#inpElmJustifyContent");a.value="",n=e.style.justifyContent,n&&(a.value=n);const r=t.querySelector("#inpElmAlignItems");r.value="",n=e.style.alignItems,n&&(r.value=n);const l=t.querySelector("#inpElmAlignContent");l.value="",n=e.style.alignContent,n&&(l.value=n)}}const jv=new ni;class Uv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementPosition");this.panelStuff=o;const s=`\n <div style="margin-top:13px;font-weight:bold;width:100%;">${t.out("Position")}</div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="display:flex">\n <select id="inpElmPosition">\n <option value=""></option>\n <option value="relative">Relative</option>\n <option value="absolute">Absolute</option>\n <option value="fixed">Fixed</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Top")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmTop" value="" style="width:45px"/>\n <select id="inpElmTopUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Left")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmLeft" value="" style="width:45px"/>\n <select id="inpElmLeftUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Bottom")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmBottom" value="" style="width:45px"/>\n <select id="inpElmBottomUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Right")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmRight" value="" style="width:45px"/>\n <select id="inpElmRightUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n\n <div style="margin-top: 25px;font-weight: bold;width:100%;">${t.out("Float")}</div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="display:flex">\n <select id="inpElmFloat">\n <option value=""></option>\n <option value="left">Left</option>\n <option value="right">Right</option>\n <option value="none">None</option>\n </select>\n </div>\n </div>\n `;jv.appendHtml(o,s);o.querySelector("#inpElmPosition").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmPosition").value;e.style.position=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmFloat").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFloat").value;e.style.float=t,n.refresh(),this.builder.opts.onChange()}));const a=o.querySelector("#inpElmTop");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));const r=o.querySelector("#inpElmTopUnit");a.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=a.value,i=r.value;isNaN(t)||""===t?e.style.top="":e.style.top=t+i,n.refresh(),this.builder.opts.onChange()})),r.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=a.value,i=r.value;isNaN(t)||""===t?e.style.top="":e.style.top=t+i,n.refresh(),this.builder.opts.onChange()}));const l=o.querySelector("#inpElmBottom");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));const d=o.querySelector("#inpElmBottomUnit");l.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=l.value,i=d.value;isNaN(t)||""===t?e.style.bottom="":e.style.bottom=t+i,n.refresh(),this.builder.opts.onChange()})),d.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=l.value,i=d.value;isNaN(t)||""===t?e.style.bottom="":e.style.bottom=t+i,n.refresh(),this.builder.opts.onChange()}));const c=o.querySelector("#inpElmLeft");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));const u=o.querySelector("#inpElmLeftUnit");c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=c.value,i=u.value;isNaN(t)||""===t?e.style.left="":e.style.left=t+i,n.refresh(),this.builder.opts.onChange()})),u.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=c.value,i=u.value;isNaN(t)||""===t?e.style.left="":e.style.left=t+i,n.refresh(),this.builder.opts.onChange()}));const p=o.querySelector("#inpElmRight");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));const h=o.querySelector("#inpElmRightUnit");p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=p.value,i=h.value;isNaN(t)||""===t?e.style.right="":e.style.right=t+i,n.refresh(),this.builder.opts.onChange()})),h.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=p.value,i=h.value;isNaN(t)||""===t?e.style.right="":e.style.right=t+i,n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t=this.panelStuff;const i=t.querySelector("#inpElmPosition");i.value="";let n=e.style.position;i.value=n;const o=t.querySelector("#inpElmFloat");o.value="",n=e.style.float,o.value=n;const s=t.querySelector("#inpElmTop"),a=t.querySelector("#inpElmTopUnit");s.value="",a.value="px",n=e.style.top;let r=parseInt(n);isNaN(r)||(-1!==n.indexOf("%")&&(a.value="%"),-1!==n.indexOf("px")&&(a.value="px"),-1!==n.indexOf("vw")&&(a.value="vw"),-1!==n.indexOf("vh")&&(a.value="vh"),-1!==n.indexOf("em")&&(a.value="em"),s.value=r);const l=t.querySelector("#inpElmBottom"),d=t.querySelector("#inpElmBottomUnit");l.value="",d.value="px",n=e.style.bottom;let c=parseInt(n);isNaN(c)||(-1!==n.indexOf("%")&&(d.value="%"),-1!==n.indexOf("px")&&(d.value="px"),-1!==n.indexOf("vw")&&(d.value="vw"),-1!==n.indexOf("vh")&&(d.value="vh"),-1!==n.indexOf("em")&&(d.value="em"),l.value=c);const u=t.querySelector("#inpElmLeft"),p=t.querySelector("#inpElmLeftUnit");u.value="",p.value="px",n=e.style.left;let h=parseInt(n);isNaN(h)||(-1!==n.indexOf("%")&&(p.value="%"),-1!==n.indexOf("px")&&(p.value="px"),-1!==n.indexOf("vw")&&(p.value="vw"),-1!==n.indexOf("vh")&&(p.value="vh"),-1!==n.indexOf("em")&&(p.value="em"),u.value=h);const g=t.querySelector("#inpElmRight"),f=t.querySelector("#inpElmRightUnit");g.value="",f.value="px",n=e.style.right;let m=parseInt(n);isNaN(m)||(-1!==n.indexOf("%")&&(f.value="%"),-1!==n.indexOf("px")&&(f.value="px"),-1!==n.indexOf("vw")&&(f.value="vw"),-1!==n.indexOf("vh")&&(f.value="vh"),-1!==n.indexOf("em")&&(f.value="em"),g.value=m)}}const Wv=new ni;class Gv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementEffect");this.panelStuff=o;const s=`\n <div style="margin-top:13px;font-weight:bold;">${t.out("Effects")}</div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div>${t.out("Opacity")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmOpacity" value="" style="width:45px"/>\n </div>\n </div>\n\n <div style="margin-top:25px;font-weight:bold;width:100%;">${t.out("Filters")}</div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Blur")}:</div>\n <div>\n <input type="text" id="inpElmBlur" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Brightness")}:</div>\n <div>\n <input type="text" id="inpElmBrightness" value="" style="width:45px"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Contrast")}:</div>\n <div>\n <input type="text" id="inpElmContrast" value="" style="width:45px"/> &nbsp;%\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Grayscale")}:</div>\n <div>\n <input type="text" id="inpElmGrayscale" value="" style="width:45px"/> &nbsp;%\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Hue Rotate")}:</div>\n <div>\n <input type="text" id="inpElmHueRotate" value="" style="width:45px"/> &nbsp;<span style="font-size:12px">deg</span>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Invert")}:</div>\n <div>\n <input type="text" id="inpElmInvert" value="" style="width:45px"/> &nbsp;%\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Saturate")}:</div>\n <div>\n <input type="text" id="inpElmSaturate" value="" style="width:45px"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Sepia")}:</div>\n <div>\n <input type="text" id="inpElmSepia" value="" style="width:45px"/> &nbsp;%\n </div>\n </div>\n `;Wv.appendHtml(o,s);const a=o.querySelector("#inpElmOpacity");let r;a.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),a.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmOpacity").value;e.style.opacity=t,n.refresh(),this.builder.opts.onChange()}));const l=o.querySelector("#inpElmBlur");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),l.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBlur").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("blur")&&(isNaN(t)||""===t?s[r]="":s[r]="blur("+t+"px)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" blur("+t+"px)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const d=o.querySelector("#inpElmBrightness");d.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),d.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBrightness").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("brightness")&&(isNaN(t)||""===t?s[r]="":s[r]="brightness("+t+")",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" brightness("+t+")";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const c=o.querySelector("#inpElmContrast");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmContrast").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("contrast")&&(isNaN(t)||""===t?s[r]="":s[r]="contrast("+t+"%)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" contrast("+t+"%)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const u=o.querySelector("#inpElmGrayscale");u.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),u.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmGrayscale").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("grayscale")&&(isNaN(t)||""===t?s[r]="":s[r]="grayscale("+t+"%)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" grayscale("+t+"%)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const p=o.querySelector("#inpElmHueRotate");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmHueRotate").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("hue-rotate")&&(isNaN(t)||""===t?s[r]="":s[r]="hue-rotate("+t+"deg)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" hue-rotate("+t+"deg)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const h=o.querySelector("#inpElmInvert");h.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),h.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmInvert").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("invert")&&(isNaN(t)||""===t?s[r]="":s[r]="invert("+t+"%)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" invert("+t+"%)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const g=o.querySelector("#inpElmSaturate");g.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),g.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmSaturate").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("saturate")&&(isNaN(t)||""===t?s[r]="":s[r]="saturate("+t+")",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" saturate("+t+")";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const f=o.querySelector("#inpElmSepia");f.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),f.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmSepia").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("sepia")&&(isNaN(t)||""===t?s[r]="":s[r]="sepia("+t+"%)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" sepia("+t+"%)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t=this.panelStuff;const i=t.querySelector("#inpElmOpacity");i.value="";let n=e.style.opacity;n&&(i.value=n);let o=e.style.filter.split(" ");const s=t.querySelector("#inpElmBlur");s.value="";const a=t.querySelector("#inpElmBrightness");a.value="";const r=t.querySelector("#inpElmGrayscale");r.value="";const l=t.querySelector("#inpElmContrast");l.value="";const d=t.querySelector("#inpElmHueRotate");d.value="";const c=t.querySelector("#inpElmInvert");c.value="";const u=t.querySelector("#inpElmSaturate");u.value="";const p=t.querySelector("#inpElmSepia");let h;p.value="";for(let e=0;e<o.length;e++)n=o[e],-1!==n.indexOf("blur")&&(h=n.replace("blur(","").replace(")",""),h=parseInt(h),s.value=h),-1!==n.indexOf("brightness")&&(h=n.replace("brightness(","").replace(")",""),h=parseInt(h),a.value=h),-1!==n.indexOf("grayscale")&&(h=n.replace("grayscale(","").replace(")",""),h=parseInt(h),r.value=h),-1!==n.indexOf("contrast")&&(h=n.replace("contrast(","").replace(")",""),h=parseInt(h),l.value=h),-1!==n.indexOf("hue-rotate")&&(h=n.replace("hue-rotate(","").replace(")",""),h=parseInt(h),d.value=h),-1!==n.indexOf("invert")&&(h=n.replace("invert(","").replace(")",""),h=parseInt(h),c.value=h),-1!==n.indexOf("saturate")&&(h=n.replace("saturate(","").replace(")",""),h=parseInt(h),u.value=h),-1!==n.indexOf("sepia")&&(h=n.replace("sepia(","").replace(")",""),h=parseInt(h),p.value=h)}}const Vv=new ni;class Yv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector("#divElementAttribute");this.panelStuff=n;const o=`\n <div style="margin-top:13px;font-weight:bold;width:100%;">${t.out("Attributes")}</div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="width:100%">${t.out("Names")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmAttr1" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="width:100%">${t.out("Values")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmAttrVal1" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttr2" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttrVal2" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttr3" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttrVal3" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttr4" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttrVal4" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttr5" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;float:left;">\n <div style="display:flex">\n <input type="text" id="inpElmAttrVal5" value="" style="width:90%"/>\n </div>\n </div>\n `;Vv.appendHtml(n,o);let s=n.querySelectorAll("#inpElmAttr1,#inpElmAttr2,#inpElmAttr3,#inpElmAttr4,#inpElmAttr5,#inpElmAttrVal1,#inpElmAttrVal2,#inpElmAttrVal3,#inpElmAttrVal4,#inpElmAttrVal5");Array.prototype.forEach.call(s,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),e.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;this.updateAttributes(e),this.builder.opts.onChange()}))}))}updateAttributes(e){let t={};Array.prototype.forEach.call(e.attributes,(e=>{t[e.name]=e.value}));for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&"id"!==i&&"style"!==i&&"class"!==i&&"href"!==i&&"src"!==i&&"contenteditable"!==i&&"data-filename"!==i&&e.removeAttribute(i);const i=this.panelStuff;let n,o;n=i.querySelector("#inpElmAttr1").value,o=i.querySelector("#inpElmAttrVal1").value,""!==n&&e.setAttribute(n,o),n=i.querySelector("#inpElmAttr2").value,o=i.querySelector("#inpElmAttrVal2").value,""!==n&&e.setAttribute(n,o),n=i.querySelector("#inpElmAttr3").value,o=i.querySelector("#inpElmAttrVal3").value,""!==n&&e.setAttribute(n,o),n=i.querySelector("#inpElmAttr4").value,o=i.querySelector("#inpElmAttrVal4").value,""!==n&&e.setAttribute(n,o),n=i.querySelector("#inpElmAttr5").value,o=i.querySelector("#inpElmAttrVal5").value,""!==n&&e.setAttribute(n,o)}readElementStyles(e){const t=this.panelStuff;let i=t.querySelectorAll("#inpElmAttr1,#inpElmAttr2,#inpElmAttr3,#inpElmAttr4,#inpElmAttr5,#inpElmAttrVal1,#inpElmAttrVal2,#inpElmAttrVal3,#inpElmAttrVal4,#inpElmAttrVal5");Array.prototype.forEach.call(i,(e=>{e.value=""}));var n=1;Array.prototype.forEach.call(e.attributes,(e=>{"id"!==e.name&&"style"!==e.name&&"class"!==e.name&&"href"!==e.name&&"src"!==e.name&&"contenteditable"!==e.name&&"data-filename"!==e.name&&"data-saveforundo"!==e.name&&(t.querySelector("#inpElmAttr"+n).value=e.name,t.querySelector("#inpElmAttrVal"+n).value=e.value,n+=1)}))}}const Xv=new ni;class Kv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector("#divElementAnimation");this.panelStuff=n;const o=`\n <div style="margin-top:13px;font-weight:bold;">${t.out("Animate")}</div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="display:flex">\n <select id="selElmAnim">\n <option value=""></option>\n <option value="fade">fade</option>\n <option value="fade-up">fade-up</option>\n <option value="fade-down">fade-down</option>\n <option value="fade-left">fade-left</option>\n <option value="fade-right">fade-right</option>\n <option value="fade-up-right">fade-up-right</option>\n <option value="fade-up-left">fade-up-left</option>\n <option value="fade-down-right">fade-down-right</option>\n <option value="fade-down-left">fade-down-left</option>\n <option value="flip-up">flip-up</option>\n <option value="flip-down">flip-down</option>\n <option value="flip-left">flip-left</option>\n <option value="flip-right">flip-right</option>\n <option value="slide-up">slide-up</option>\n <option value="slide-down">slide-down</option>\n <option value="slide-left">slide-left</option>\n <option value="slide-right">slide-right</option>\n <option value="zoom-in">zoom-in</option>\n <option value="zoom-in-up">zoom-in-up</option>\n <option value="zoom-in-down">zoom-in-down</option>\n <option value="zoom-in-left">zoom-in-left</option>\n <option value="zoom-in-right">zoom-in-right</option>\n <option value="zoom-out">zoom-out</option>\n <option value="zoom-out-up">zoom-out-up</option>\n <option value="zoom-out-down">zoom-out-down</option>\n <option value="zoom-out-left">zoom-out-left</option>\n <option value="zoom-out-right">zoom-out-right</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div> ${t.out("Delay")}:</div>\n <div>\n <select id="selElmAnimDelay">\n <option value=""></option>\n <option value="0">0</option>\n <option value="100">100</option>\n <option value="200">200</option>\n <option value="300">300</option>\n <option value="400">400</option>\n <option value="500">500</option>\n <option value="600">600</option>\n <option value="700">700</option>\n <option value="800">800</option>\n <option value="900">900</option>\n <option value="1000">1000</option>\n <option value="1100">1100</option>\n <option value="1200">1200</option>\n <option value="1300">1300</option>\n <option value="1400">1400</option>\n <option value="1500">1500</option>\n <option value="1600">1600</option>\n <option value="1700">1700</option>\n <option value="1800">1800</option>\n <option value="1900">1900</option>\n <option value="2000">2000</option>\n <option value="2100">2100</option>\n <option value="2200">2200</option>\n <option value="2300">2300</option>\n <option value="2400">2400</option>\n <option value="2500">2500</option>\n <option value="2600">2600</option>\n <option value="2700">2700</option>\n <option value="2800">2800</option>\n <option value="2900">2900</option>\n <option value="3000">3000</option>\n </select> &nbsp;ms\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div> ${t.out("Duration")}:</div>\n <div>\n <select id="selElmAnimDuration">\n <option value=""></option>\n <option value="0">0</option>\n <option value="100">100</option>\n <option value="200">200</option>\n <option value="300">300</option>\n <option value="400">400</option>\n <option value="500">500</option>\n <option value="600">600</option>\n <option value="700">700</option>\n <option value="800">800</option>\n <option value="900">900</option>\n <option value="1000">1000</option>\n <option value="1100">1100</option>\n <option value="1200">1200</option>\n <option value="1300">1300</option>\n <option value="1400">1400</option>\n <option value="1500">1500</option>\n <option value="1600">1600</option>\n <option value="1700">1700</option>\n <option value="1800">1800</option>\n <option value="1900">1900</option>\n <option value="2000">2000</option>\n <option value="2100">2100</option>\n <option value="2200">2200</option>\n <option value="2300">2300</option>\n <option value="2400">2400</option>\n <option value="2500">2500</option>\n <option value="2600">2600</option>\n <option value="2700">2700</option>\n <option value="2800">2800</option>\n <option value="2900">2900</option>\n <option value="3000">3000</option>\n </select> &nbsp;ms\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="margin-top:15px">\n <label for="chkAnimateOnce"><input type="checkbox" id="chkAnimateOnce" value=""> ${t.out("Animate Once")} </label>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="display:flex">\n <button title="${t.out("Test")}" id="btnPreviewAnim" class="classic" value=""> ${t.out("TEST")} </button>\n </div>\n </div>\n `;Xv.appendHtml(n,o);let s=n.querySelector("#selElmAnim");s.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=n.querySelector("#selElmAnim").value;""===t?e.removeAttribute("data-aos"):(e.setAttribute("data-aos",t),n.querySelector("#btnPreviewAnim").click()),this.builder.opts.onChange()})),s=n.querySelector("#selElmAnimDelay"),s.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=n.querySelector("#selElmAnimDelay").value;""===t?e.removeAttribute("data-aos-delay"):e.setAttribute("data-aos-delay",t),this.builder.opts.onChange()})),s=n.querySelector("#selElmAnimDuration"),s.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=n.querySelector("#selElmAnimDuration").value;""===t?e.removeAttribute("data-aos-duration"):e.setAttribute("data-aos-duration",t),this.builder.opts.onChange()}));let a=n.querySelector("#chkAnimateOnce");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;n.querySelector("#chkAnimateOnce").checked?e.setAttribute("data-aos-once","true"):e.removeAttribute("data-aos-once"),this.builder.opts.onChange()})),a=n.querySelector("#btnPreviewAnim"),a.addEventListener("click",(()=>{let e=this.builder.inspectedElement,t=e.getAttribute("data-aos-duration");e.removeAttribute("data-aos-duration"),e.style.visibility="hidden",window.AOS&&window.AOS.init({duration:1}),Xv.removeClass(e,"aos-init"),Xv.removeClass(e,"aos-animate"),setTimeout((function(){e.style.visibility="",window.AOS&&window.AOS.init({duration:1200}),t&&e.setAttribute("data-aos-duration",t)}),10)}))}readElementStyles(e){this.panelStuff.querySelector("#selElmAnimDelay").value="";let t=e.getAttribute("data-aos-delay");this.panelStuff.querySelector("#selElmAnimDelay").value=t,this.panelStuff.querySelector("#selElmAnimDuration").value="",t=e.getAttribute("data-aos-duration"),this.panelStuff.querySelector("#selElmAnimDuration").value=t,this.panelStuff.querySelector("#chkAnimateOnce").checked=!1;let i=e.getAttribute("data-aos-once");i&&"true"===i&&(this.panelStuff.querySelector("#chkAnimateOnce").checked=!0),this.panelStuff.querySelector("#selElmAnim").value="",t=e.getAttribute("data-aos"),this.panelStuff.querySelector("#selElmAnim").value=t}}const Zv=new ni;let Qv=[];class Jv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector(".elementstyles");if(!n){let o=`\n <div class="is-side${"right"===this.builder.opts.sidePanel?"":" fromleft"} elementstyles" style="display:none;">\n <div class="elm-list" style="z-index:1;width:100%;height:100px;position:absolute;top:0px;left:0px;box-sizing:border-box;display:flex;align-items:center;flex-wrap: wrap;padding:10px 23px 10px 18px;"></div>\n \n <button title="${t.out("Close")}" class="is-side-close" style="z-index:1;background:transparent;width:25px;height:25px;position:absolute;top:10px;right:13px;box-sizing:border-box;padding:0;line-height:25px;font-size: 12px;text-align:center;cursor:pointer;"><svg class="is-icon-flex" style="width:25px;height:25px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n \n <div style="position: absolute;bottom:7px;right:7px;width:40px;height:25px;z-index:1;display:flex">\n <button title="${t.out("css")}" class="elm-editstyle classic" style="width: 40px;height: 25px;font-family: sans-serif;font-size: 10px;padding: 0px;font-weight: bold;">${t.out("css")}</button>\n </div>\n \n <div style="width:100%;height:100%;overflow-y:auto;overflow-x:hidden;position:absolute;top:0px;left:0px;box-sizing:border-box;border-top:100px solid transparent;padding:0px;">\n \n <div class="is-tabs clearfix" data-group="element" style="padding-right:0;padding-bottom:0;">\n <a title="${t.out("Box")}" id="tabElementBox" href="" data-content="divElementBox" class="active">${t.out("Box")}</a>\n <a title="${t.out("Spacing")}" id="tabElementSpacing" href="" data-content="divElementSpacing">${t.out("Spacing")}</a>\n <a title="${t.out("Border")}" id="tabElementBorder" href="" data-content="divElementBorder">${t.out("Border")}</a>\n <a title="${t.out("Text")}" id="tabElementText" href="" data-content="divElementText">${t.out("Text")}</a>\n <a title="${t.out("More")}" id="tabElementMore" data-menu="divElementMore" href=""><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-more"></use></svg></a>\n </div>\n \n <div id="divElementMore" class="is-tabs-more" data-group="element">\n <a title="${t.out("Corners")}" id="tabElementCorner" href="" data-content="divElementCorner">${t.out("Corners")}</a>\n <a title="${t.out("Shadow")}" id="tabElementShadow" href="" data-content="divElementShadow">${t.out("Shadow")}</a>\n <a title="${t.out("Display")}" id="tabElementDisplay" href="" data-content="divElementDisplay">${t.out("Display")}</a>\n <a title="${t.out("Position")}" id="tabElementPosition" href="" data-content="divElementPosition">${t.out("Position")}</a>\n <a title="${t.out("Effects")}" id="tabElementEffect" href="" data-content="divElementEffect">${t.out("Effects")}</a>\n <a title="${t.out("Attributes")}" id="tabElementAttribute" href="" data-content="divElementAttribute">${t.out("Attributes")}</a>\n ${!0===this.builder.opts.elementAnimate?`<a title="${t.out("Animation")}" id="tabElementAnimation" href="" data-content="divElementAnimation">${t.out("Animation")}</a>`:""}\n </div>\n\n <div id="divElementBox" class="is-tab-content" data-group="element" style="display:flex;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n <div id="divElementSpacing" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n <div id="divElementBorder" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n <div id="divElementText" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n <div id="divElementCorner" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n <div id="divElementShadow" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n \n <div id="divElementDisplay" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n \n <div id="divElementPosition" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n \n <div id="divElementEffect" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n \n <div id="divElementAttribute" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n \n <div id="divElementAnimation" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n </div>\n </div> \n `;Zv.appendHtml(i,o),this.elementStyleEditor=new qv(e),n=i.querySelector(".elementstyles");let s=n.querySelector(".is-side-close");Zv.addEventListener(s,"click",(()=>{this.hidePanel()})),s=n.querySelector(".elm-editstyle"),Zv.addEventListener(s,"click",(()=>{this.elementStyleEditor.toggleStyleEditor()}))}this.panel=n;const o=new Lv(e);this.elementBoxStyles=o;const s=new Ov(e);this.elementSpacingStyles=s;const a=new Nv(e);this.elementBorderStyles=a;const r=new Iv(e);this.elementTextStyles=r;const l=new $v(e);this.elementCornerStyles=l;const d=new Hv(e);this.elementShadowStyles=d;const c=new Fv(e);this.elementDisplayStyles=c;const u=new Uv(e);this.elementPositionStyles=u;const p=new Gv(e);this.elementEffectStyles=p;const h=new Yv(e);this.elementAttributeStyles=h;const g=new Kv(e);this.elementAnimationStyles=g}click(){(Zv.hasClass(this.panel,"active")||Zv.hasClass(this.elementStyleEditor.modalStyles,"active"))&&this.inspect(this.builder.inspectedElement)}inspect(e){this.elementBoxStyles.readElementStyles(e),this.elementSpacingStyles.readElementStyles(e),this.elementBorderStyles.readElementStyles(e),this.elementTextStyles.readElementStyles(e),this.elementCornerStyles.readElementStyles(e),this.elementShadowStyles.readElementStyles(e),this.elementDisplayStyles.readElementStyles(e),this.elementPositionStyles.readElementStyles(e),this.elementEffectStyles.readElementStyles(e),this.elementAttributeStyles.readElementStyles(e),this.elementAnimationStyles.readElementStyles(e);let t=this.panel,i=document.querySelectorAll("[data-saveforundo]");Array.prototype.forEach.call(i,(e=>{e.removeAttribute("data-saveforundo")})),e.setAttribute("data-saveforundo",""),i=document.querySelectorAll(".elm-inspected"),Array.prototype.forEach.call(i,(e=>{Zv.removeClass(e,"elm-inspected")})),setTimeout((()=>{Zv.addClass(e,"elm-inspected")}),10),t.querySelector(".elm-list").innerHTML="";let n=e,o=0;for(Qv=[];!Zv.hasClass(n,"is-builder")&&(Qv.push(n),n)&&n.tagName;){var s=n.tagName.toLowerCase(),a=Zv.createElement("a");a.setAttribute("data-index",o),o++,a.setAttribute("href","#"),a.innerHTML=s,""===t.querySelector(".elm-list").innerHTML?(Zv.addClass(a,"active"),t.querySelector(".elm-list").insertAdjacentHTML("afterbegin",a.outerHTML)):(t.querySelector(".elm-list").insertAdjacentHTML("afterbegin","&nbsp;>&nbsp; "),t.querySelector(".elm-list").insertAdjacentHTML("afterbegin",a.outerHTML)),n=n.parentNode}const r=t.querySelectorAll(".elm-list a");Array.prototype.forEach.call(r,(e=>{Zv.addEventListener(e,"click",(t=>{let i=e.getAttribute("data-index");this.builder.inspectedElement=Qv[i],this.inspect(Qv[i]),document.querySelector(".elm-inspected.elm-active")||(this.builderStuff.querySelector(".is-element-tool").style.display="none"),t.preventDefault(),t.stopImmediatePropagation()}))})),this.elementStyleEditor.refresh()}showPanel(){var e=this.builderStuff.querySelector(".is-side.elementstyles");e.style.display="block";let t=this.builderStuff.querySelectorAll(".is-side");Array.prototype.forEach.call(t,(e=>{Zv.removeClass(e,"active")})),setTimeout((()=>{Zv.addClass(e,"active")}),10),this.inspect(this.builder.inspectedElement)}hidePanel(){var e=this.builderStuff.querySelector(".is-side.elementstyles");Zv.removeClass(e,"active");let t=document.querySelectorAll("[data-saveforundo]");Array.prototype.forEach.call(t,(e=>{e.removeAttribute("data-saveforundo")})),t=document.querySelectorAll(".elm-inspected"),Array.prototype.forEach.call(t,(e=>{Zv.removeClass(e,"elm-inspected")}))}}const eb=new ni;class tb{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new Jv(e);this.elementPanel=n;let o=i.querySelector(".is-element-tool"),s=i.querySelector(".elmmore");if(!o){let e=`<div class="is-tool is-element-tool">\n <button type="button" title="${t.out("Add")}" class="elm-add"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n <button type="button" title="${t.out("More")}" class="elm-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <button type="button" title="${t.out("Delete")}" class="elm-remove"><svg class="is-icon-flex" style="margin-left:-1px"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n <button type="button" title="${t.out("Settings")}" class="elm-settings"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n <div class="is-pop elmmore" style="z-index:10002;">\n <div style="display:flex;flex-flow:wrap;">\n <button type="button" title="${t.out("Move Up")}" class="elm-up"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></span>${t.out("Move Up")}</button>\n <button type="button" title="${t.out("Move Down")}" class="elm-down"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></span>${t.out("Move Down")}</button>\n <button type="button" title="${t.out("Duplicate")}" class="elm-duplicate"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></span>${t.out("Duplicate")}</button>\n ${this.builder.opts.elementEditor?`\n <button type="button" title="${t.out("Settings")}" class="elm-settings"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></span>${t.out("Settings")}</button>\n `:""} \n </div>\n </div>\n `;eb.appendHtml(i,e),o=i.querySelector(".is-element-tool"),s=i.querySelector(".elmmore");let n=o.querySelectorAll("[title]");Array.prototype.forEach.call(n,(e=>{e.setAttribute("data-title",e.getAttribute("title"))}))}this.elementTool=o,this.elementMore=s;const a=Jo(e),r=o.querySelector(".elm-add");eb.addEventListener(r,"click",(()=>{a.querySelector(".is-pop-tabs").style.display="none";const e=window.innerHeight,t=r.getBoundingClientRect().top,i=r.getBoundingClientRect().left;a.style.display="flex";const n=a.offsetWidth,o=a.offsetHeight;return e-t>o?(a.style.top=t+window.pageYOffset+27+"px",a.style.left=i-n/2+10+"px",eb.removeClass(a,"arrow-bottom"),eb.removeClass(a,"arrow-right"),eb.removeClass(a,"arrow-left"),eb.removeClass(a,"center"),eb.addClass(a,"arrow-top"),eb.addClass(a,"center")):(a.style.top=t+window.pageYOffset-o-8+"px",a.style.left=i-n/2+10+"px",eb.removeClass(a,"arrow-top"),eb.removeClass(a,"arrow-right"),eb.removeClass(a,"arrow-left"),eb.removeClass(a,"center"),eb.addClass(a,"arrow-bottom"),eb.addClass(a,"center")),a.setAttribute("data-mode","elm"),!1}));const l=o.querySelector(".elm-remove");eb.addEventListener(l,"click",(()=>{t.confirm(t.out("Are you sure you want to delete this element?"),(n=>{if(n){this.builder.uo.saveForUndo();let n=this.builder.activeElement;if(eb.hasClass(n.parentNode,"cell-active")||n.parentNode.hasAttribute("data-subblock"))n.parentNode.removeChild(n);else if(n.parentNode.childElementCount>1)n.parentNode.removeChild(n);else{let e=n;if(eb.parentsHasAttribute(e,"data-subblock"))for(;!e.parentNode.hasAttribute("data-subblock")&&1===n.parentNode.childElementCount;)e=e.parentNode;else for(;!eb.hasClass(e.parentNode,"cell-active")&&1===n.parentNode.childElementCount;)e=e.parentNode;e.parentNode.removeChild(e)}this.elementTool.style.display="none";let o=this.builder.activeCol;if(o){let n=o.parentNode;if(0===o.childElementCount&&3===n.childElementCount){n.parentNode.removeChild(n);let e=i.querySelector(".is-column-tool");eb.removeClass(e,"active"),t.checkEmpty()}else if(0===o.childElementCount){n.removeChild(o),t.fixLayout(n,e);let s=i.querySelector(".is-column-tool");eb.removeClass(s,"active")}}const s=document.querySelectorAll(".is-subblock");Array.prototype.forEach.call(s,(e=>{const t=eb.elementChildren(e);let i=!0;t.forEach((()=>{i=!1})),i&&(e.innerHTML='<div class="spacer height-40" contentEditable="false"></div>')})),t.clearControls(),this.builder.opts.onChange()}}))}));const d=o.querySelector(".elm-more");eb.addEventListener(d,"click",(()=>{const e=window.innerHeight,t=d.getBoundingClientRect().top,i=d.getBoundingClientRect().left;s.style.display="flex";const n=s.offsetWidth,o=s.offsetHeight;e-t>o?(s.style.top=t+window.pageYOffset+27+"px",s.style.left=i-n/2+10+"px",eb.removeClass(s,"arrow-bottom"),eb.removeClass(s,"arrow-right"),eb.removeClass(s,"arrow-left"),eb.removeClass(s,"center"),eb.addClass(s,"arrow-top"),eb.addClass(s,"center")):(s.style.top=t+window.pageYOffset-o-8+"px",s.style.left=i-n/2+10+"px",eb.removeClass(s,"arrow-top"),eb.removeClass(s,"arrow-right"),eb.removeClass(s,"arrow-left"),eb.removeClass(s,"center"),eb.addClass(s,"arrow-bottom"),eb.addClass(s,"center"))}));const c=s.querySelector(".elm-up");eb.addEventListener(c,"click",(()=>{let e=this.builder.activeElement;if(e.previousElementSibling)this.builder.uo.saveForUndo(),e.parentNode.insertBefore(e,e.previousElementSibling),e.click(),this.position(e),this.builder.opts.onChange();else{let t=e;for(;!eb.hasClass(t.parentNode,"cell-active")&&!t.parentNode.hasAttribute("data-subblock");)t=t.parentNode;t.previousElementSibling&&t!==e&&(this.builder.uo.saveForUndo(),t.parentNode.insertBefore(t,t.previousElementSibling),e.click(),this.position(e),this.builder.opts.onChange())}e.click(),o.querySelector(".elm-more").click()}));const u=s.querySelector(".elm-down");eb.addEventListener(u,"click",(()=>{let e=this.builder.activeElement;if(e.nextElementSibling)this.builder.uo.saveForUndo(),e.parentNode.insertBefore(e.nextElementSibling,e),e.click(),this.position(e),this.builder.opts.onChange();else{let t=e;for(;!eb.hasClass(t.parentNode,"cell-active")&&!t.parentNode.hasAttribute("data-subblock");)t=t.parentNode;t.nextElementSibling&&t!==e&&(this.builder.uo.saveForUndo(),t.parentNode.insertBefore(t.nextElementSibling,t),e.click(),this.position(e),this.builder.opts.onChange())}}));const p=s.querySelector(".elm-duplicate");eb.addEventListener(p,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeElement;const t=e.cloneNode(!0);eb.moveAfter(t,e),setTimeout((()=>{t.click(),this.position(t);let e=document.querySelector(".builder-active");e&&this.builder.applyBehaviorOn(e),this.builder.opts.onChange()}),100)}));const h=o.querySelector(".elm-settings");h&&eb.addEventListener(h,"click",(()=>{s.style.display="",this.elementPanel.showPanel()}));const g=s.querySelector(".elm-settings");g&&eb.addEventListener(g,"click",(()=>{s.style.display="",this.elementPanel.showPanel()})),document.addEventListener("mousedown",(e=>{var t=(e=e||window.event).target||e.srcElement;if("flex"===s.style.display){let e=eb.parentsHasClass(t,"elmmore"),i=eb.parentsHasClass(t,"elm-more");if(e||i)return;s.style.display=""}}))}hide(){this.elementTool.style.display="";let e=document.querySelectorAll(".elm-active");Array.prototype.forEach.call(e,(e=>{eb.removeClass(e,"elm-active")}))}position(){let e=this.elementTool,t=this.elementMore;eb.addClass(t,"transition1");let i=e.querySelector(".elm-more");const n=window.innerHeight,o=i.getBoundingClientRect().top,s=i.getBoundingClientRect().left;t.style.display="flex";const a=t.offsetWidth,r=t.offsetHeight;n-o>r?(t.style.top=o+window.pageYOffset+27+"px",t.style.left=s-a/2+10+"px",eb.removeClass(t,"arrow-bottom"),eb.removeClass(t,"arrow-right"),eb.removeClass(t,"arrow-left"),eb.removeClass(t,"center"),eb.addClass(t,"arrow-top"),eb.addClass(t,"center")):(t.style.top=o+window.pageYOffset-r-8+"px",t.style.left=s-a/2+10+"px",eb.removeClass(t,"arrow-top"),eb.removeClass(t,"arrow-right"),eb.removeClass(t,"arrow-left"),eb.removeClass(t,"center"),eb.addClass(t,"arrow-bottom"),eb.addClass(t,"center")),setTimeout((()=>{eb.removeClass(t,"transition1")}),300)}click(e,t){const i=t.target;this.elementTool.style.display="none";let n=document.querySelectorAll(".elm-active");Array.prototype.forEach.call(n,(e=>{eb.removeClass(e,"elm-active")}));let o=null,s=!1;e.hasAttribute("data-noedit")&&(s=!0);let a=!1;e.hasAttribute("data-protected")&&(a=!0);let r=!1;e.hasAttribute("data-html")&&(r=!0);let l=!1;if(eb.parentsHasClass(i,"is-subblock")&&(l=!0),(r||s||a)&&!l);else{const e=i.tagName.toLowerCase();if("h1"===e||"h2"===e||"h3"===e||"h4"===e||"h5"===e||"h6"===e||"p"===e||"pre"===e||"blockquote"===e||"li"===e||"img"===e||"iframe"===e){if(o=i,"img"===e){eb.hasClass(i.parentNode,"img-circular")&&(o=i.parentNode),eb.getParentByTag(i,"a")&&(o=i.parentNode)}}else if(eb.hasClass(i,"cell-active")||i.hasAttribute("data-subblock"));else if(eb.hasClass(i,"cell-active")||i.parentNode.hasAttribute("data-subblock"))o=i;else{let e=i;for(;"BODY"!==e.tagName&&"HTML"!==e.tagName;){let t=e.tagName.toLowerCase();if(eb.hasClass(e,"spacer")||"h1"===t||"h2"===t||"h3"===t||"h4"===t||"h5"===t||"h6"===t||"p"===t||"pre"===t||"blockquote"===t||"li"===t||"img"===t||"iframe"===t){o=e;break}if(eb.hasClass(e.parentNode,"cell-active")||e.parentNode.hasAttribute("data-subblock")){o=e;break}e=e.parentNode}}}if(this.builder.activeElement=o,o){let e=o;this.pos(),eb.addClass(e,"elm-active")}this.builder.inspectedElement=t.target,this.elementPanel.click(t)}refresh(){if(this.builder.activeElement){this.elementTool.style.display="",setTimeout((()=>{this.pos()}),300)}}repositionElementTool(e){if(this.builder.activeElement)try{if(e){"flex"===this.elementTool.style.display&&this.pos()}else this.pos()}catch(e){}}pos(){let e=this.elementTool,t=this.builder.activeElement;const i=t.getBoundingClientRect().top+window.pageYOffset,n=t.getBoundingClientRect().left+window.pageXOffset,o=t.offsetWidth*this.builder.opts.zoom,s=t.offsetHeight*this.builder.opts.zoom;e.style.display="flex",e.style.top=i+s+"px",e.style.left=n+o-e.offsetWidth+"px";const a=window.innerWidth;n+o>a&&(e.style.left=a-e.offsetWidth+"px")}}const ib=new ni;class nb{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;let n="";if(this.builder.themes){n='<div class="div-themes">';let e=0;this.builder.themes.forEach((i=>{""===i[1]?n+=`<button type="button" title="${t.out("Set theme")}" class="input-setcolor" data-index="${e}" style="background:${i[0]};border:rgba(0,0,0,0.15) 1px solid;"></button>`:"light"===i[1]?n+=`<button type="button" title="${t.out("Set theme")}" class="input-setcolor" data-index="${e}" style="background:${i[0]};border:rgb(132 132 132 / 16%) 1px solid;"></button>`:n+=`<button type="button" title="${t.out("Set theme")}" class="input-setcolor" data-index="${e}" style="background:${i[0]};"></button>`,e++})),n+="</div>"}let o=i.querySelector(".viewconfig");if(!o){let s=`<div class="is-modal viewconfig">\n <div class="is-modal-content">\n <div class="is-modal-bar is-draggable">${t.out("Preferences")}</div>\n \n <div style="display:flex;flex-wrap:wrap;width:100%;padding-top:32px;">\n <div style="width:50%">\n <label id="divBuilderMode" style="display:block;margin-top:14px;margin-bottom:5px;">\n ${t.out("Builder Mode")}:&nbsp;\n <select class="select-buildermode">\n <option value="">${t.out("Default")}</option>\n <option value="minimal">${t.out("Minimal")}</option>\n <option value="clean">${t.out("Clean")}</option>\n </select>\n </label>\n \n <label id="divOutlineMode" style="display:block;margin-top:14px;margin-bottom:5px;">\n ${t.out("Outline Mode")}:&nbsp;\n <select class="select-outlinemode">\n <option value="">${t.out("Row & column")}</option>\n <option value="row">${t.out("Row only")}</option>\n </select>\n </label>\n\n <label style="display:block;margin-top:14px;margin-bottom:5px;">\n ${t.out("Outline Style")}:&nbsp;\n <select class="select-outlinestyle">\n <option value="">${t.out("Colored")}</option>\n <option value="grayoutline">${t.out("Gray")}</option>\n </select>\n </label>\n \n <label style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-hiderowcoloutline" type="checkbox" /> ${t.out("Hide Outline")}&nbsp;\n </label> \n\n <label id="divHideCellTool" style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-hidecelltool" type="checkbox" /> ${t.out("Hide Column Tool")}&nbsp;\n </label>\n\n <label style="display:block;margin-top:5px;margin-bottom:5px;">\n ${t.out("Row Tool Position")}:&nbsp;\n <select class="select-rowtool">\n <option value="right">${t.out("Right")}</option>\n <option value="left">${t.out("Left")}</option>\n </select>\n </label> \n\n <label style="display:block;margin-top:5px;margin-bottom:5px;">\n ${t.out("Tool Style")}:&nbsp;\n <select class="select-toolstyle">\n <option value="">${t.out("Colored")}</option>\n <option value="gray">${t.out("Mono")}</option>\n </select>\n </label> \n\n </div>\n <div style="width:50%">\n\n <label style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-hidesnippetaddtool" type="checkbox" /> ${t.out("Hide Snippet (+) Tool")}&nbsp;\n </label>\n\n <label style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-hideelementtool" type="checkbox" /> ${t.out("Hide element tool")}&nbsp;\n </label> \n\n <label style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-hideelementhighlight" type="checkbox" /> ${t.out("Hide element highlight")}&nbsp;\n </label> \n\n <label class="option-opensnippets" style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-opensnippets" type="checkbox" /> ${t.out("Open snippets sidebar on start")}&nbsp;\n </label>\n\n <label style="display:${"#divSnippetList"===e.opts.snippetList?"block":"none"};margin-top:14px;margin-bottom:5px;">\n ${t.out("Snippets sidebar visibility")}:&nbsp;\n <select class="select-snippetssidebardisplay">\n <option value="auto">${t.out("Auto")}</option>\n <option value="always">${t.out("Always Visible")}</option>\n </select>\n </label>\n\n <label style="display:block;margin-top:5px;margin-bottom:5px;">\n ${t.out("Paste result")}:&nbsp;\n <select class="select-pasteresult">\n <option value="html-without-styles">${t.out("HTML (without styles)")}</option>\n <option value="html">${t.out("HTML (with styles)")}</option>\n <option value="text">${t.out("Text only")}</option>\n </select>\n </label> \n\n <label style="display:none;margin-top:14px;margin-bottom:5px;">\n ${t.out("Toolbar visibility")}:&nbsp;\n <select class="select-editingtoolbardisplay">\n <option value="auto">${t.out("Auto")}</option>\n <option value="always">${t.out("Always Visible")}</option>\n </select>\n </label>\n\n <label style="${this.builder.isTouchSupport?"display:none;":"display:block;"}margin-top:5px;margin-bottom:5px;">\n ${t.out("Toolbar position")}:&nbsp;\n <select class="select-editingtoolbar">\n <option value="top">${t.out("Top")}</option>\n <option value="left">${t.out("Left")}</option>\n <option value="right">${t.out("Right")}</option>\n </select>\n </label> \n\n ${this.builder.themes?`\n <label style="${this.builder.isTouchSupport?"display:none;":"display:block;"}margin-top:5px;margin-bottom:5px;">\n ${t.out("Theme")}:&nbsp;\n </label> \n ${n}\n `:""}\n\n </div>\n </div>\n <div style="text-align:right;margin-top:30px">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>`;ib.appendHtml(i,s),o=i.querySelector(".viewconfig"),"#divSnippetList"===e.opts.snippetList&&e.opts.snippetJSON.snippets.length>0||(o.querySelector(".option-opensnippets").style.display="none");let a=o.querySelector(".input-cancel");if(ib.addEventListener(a,"click",(()=>{t.hideModal(o)})),a=o.querySelector(".input-ok"),ib.addEventListener(a,"click",(()=>{this.update(),t.hideModal(o)})),null!==localStorage.getItem("_hiderowcoloutline")&&("1"===localStorage.getItem("_hiderowcoloutline")?this.builder.opts.rowcolOutline=!1:this.builder.opts.rowcolOutline=!0),this.setOutline(!this.builder.opts.rowcolOutline),null!==localStorage.getItem("_outlinemode")&&(this.builder.opts.outlineMode=localStorage.getItem("_outlinemode")),this.setOutlineMode(this.builder.opts.outlineMode),null!==localStorage.getItem("_outlinestyle")&&(this.builder.opts.outlineStyle=localStorage.getItem("_outlinestyle")),this.setOutlineStyle(this.builder.opts.outlineStyle),null!==localStorage.getItem("_pasteresult")&&(this.builder.opts.paste=localStorage.getItem("_pasteresult")),null!==localStorage.getItem("_hidecelltool")&&("1"===localStorage.getItem("_hidecelltool")?this.builder.opts.columnTool=!1:this.builder.opts.columnTool=!0),this.setColumnTool(!this.builder.opts.columnTool),null!==localStorage.getItem("_hidesnippetaddtool")&&("1"===localStorage.getItem("_hidesnippetaddtool")?this.builder.opts.snippetAddTool=!1:this.builder.opts.snippetAddTool=!0),this.setSnippetAddTool(!this.builder.opts.snippetAddTool),null!==localStorage.getItem("_hideelementtool")&&("1"===localStorage.getItem("_hideelementtool")?this.builder.opts.elementTool=!1:this.builder.opts.elementTool=!0),this.setElementTool(!this.builder.opts.elementTool),null!==localStorage.getItem("_hideelementhighlight")&&("1"===localStorage.getItem("_hideelementhighlight")?this.builder.opts.elementHighlight=!1:this.builder.opts.elementHighlight=!0),this.setElementHighlight(!this.builder.opts.elementHighlight),null!==localStorage.getItem("_opensnippets")&&("1"===localStorage.getItem("_opensnippets")?this.builder.opts.snippetOpen=!0:this.builder.opts.snippetOpen=!1),null!==localStorage.getItem("_buildermode")&&(this.builder.opts.builderMode=localStorage.getItem("_buildermode")),this.setBuilderMode(this.builder.opts.builderMode),null!==localStorage.getItem("_rowtool")&&(this.builder.opts.rowTool=localStorage.getItem("_rowtool")),this.setRowToolPosition(this.builder.opts.rowTool),null!==localStorage.getItem("_toolstyle")&&(this.builder.opts.toolStyle=localStorage.getItem("_toolstyle")),this.setToolStyle(this.builder.opts.toolStyle),this.builder.opts.toolbarDisplay="auto",null!==localStorage.getItem("_snippetssidebardisplay")&&(this.builder.opts.snippetsSidebarDisplay=localStorage.getItem("_snippetssidebardisplay")),null!=localStorage.getItem("_editingtoolbar")&&(this.builder.opts.toolbar=localStorage.getItem("_editingtoolbar")),this.setToolbar(this.builder.opts.toolbar),null!=localStorage.getItem("_theme")){const e=localStorage.getItem("_theme");if(this.builder.themeIndex=e,this.builder.themes&&this.builder.themes.length>0){const t=this.builder.themes[e];t&&(this.builder.setUIColor(t[1],t[2]),this.builder.renderIframeLater=!0)}}else this.builder.setUIColor("",""),this.builder.renderIframeLater=!0;this.builder.renderIframeLater||t.getUIStyles(),this.builder.opts.emailMode&&(this.builder.opts.outlineMode="row",this.builder.opts.columnTool=!1,this.builder.opts.builderMode="",null!=localStorage.getItem("_outlinemode")&&localStorage.setItem("_outlinemode","row"),null!==localStorage.getItem("_hidecelltool")&&localStorage.setItem("_hidecelltool","1"),null!==localStorage.getItem("_buildermode")&&localStorage.setItem("_buildermode",""),this.setColumnTool(!0),this.setBuilderMode(""),this.setEmailMode(),i.querySelector("#divHideCellTool").style.display="none",i.querySelector("#divOutlineMode").style.display="none",i.querySelector("#divBuilderMode").style.display="none")}this.config=o;document.querySelectorAll(".input-setcolor").forEach((e=>{e.addEventListener("click",(t=>{const i=e.getAttribute("data-index"),n=this.builder.themes[i];this.builder.setUIColor(n[1],n[2]),this.builder.themeIndex=i,t.preventDefault(),t.stopImmediatePropagation()}))}))}view(){const e=new ii(this.builder);let t=this.config;e.showModal(t,!1,null,!1),this.builder.opts.rowcolOutline?t.querySelector(".input-hiderowcoloutline").checked=!1:t.querySelector(".input-hiderowcoloutline").checked=!0,this.builder.opts.columnTool?t.querySelector(".input-hidecelltool").checked=!1:t.querySelector(".input-hidecelltool").checked=!0,this.builder.opts.snippetAddTool?t.querySelector(".input-hidesnippetaddtool").checked=!1:t.querySelector(".input-hidesnippetaddtool").checked=!0,this.builder.opts.elementTool?t.querySelector(".input-hideelementtool").checked=!1:t.querySelector(".input-hideelementtool").checked=!0,this.builder.opts.elementHighlight?t.querySelector(".input-hideelementhighlight").checked=!1:t.querySelector(".input-hideelementhighlight").checked=!0,this.builder.opts.snippetOpen?t.querySelector(".input-opensnippets").checked=!0:t.querySelector(".input-opensnippets").checked=!1,this.config.querySelector(".select-buildermode").value=this.builder.opts.builderMode,this.config.querySelector(".select-rowtool").value=this.builder.opts.rowTool,this.config.querySelector(".select-outlinemode").value=this.builder.opts.outlineMode,this.config.querySelector(".select-outlinestyle").value=this.builder.opts.outlineStyle,this.config.querySelector(".select-toolstyle").value=this.builder.opts.toolStyle,this.config.querySelector(".select-pasteresult").value=this.builder.opts.paste,this.config.querySelector(".select-editingtoolbardisplay").value=this.builder.opts.toolbarDisplay,this.config.querySelector(".select-editingtoolbar").value=this.builder.opts.toolbar,this.config.querySelector(".select-snippetssidebardisplay").value=this.builder.opts.snippetsSidebarDisplay}update(){let e=this.config.querySelector(".input-hiderowcoloutline").checked;e?(this.builder.opts.rowcolOutline=!1,localStorage.setItem("_hiderowcoloutline","1")):(this.builder.opts.rowcolOutline=!0,localStorage.setItem("_hiderowcoloutline","0")),this.setOutline(e),this.config.querySelector(".input-hidecelltool").checked?(this.builder.opts.columnTool=!1,localStorage.setItem("_hidecelltool","1"),this.setColumnTool(!0)):(this.builder.opts.columnTool=!0,localStorage.setItem("_hidecelltool","0"),this.setColumnTool(!1)),this.config.querySelector(".input-hidesnippetaddtool").checked?(this.builder.opts.snippetAddTool=!1,localStorage.setItem("_hidesnippetaddtool","1"),this.setSnippetAddTool(!0)):(this.builder.opts.snippetAddTool=!0,localStorage.setItem("_hidesnippetaddtool","0"),this.setSnippetAddTool(!1)),this.config.querySelector(".input-hideelementtool").checked?(this.builder.opts.elementTool=!1,localStorage.setItem("_hideelementtool","1"),this.setElementTool(!0)):(this.builder.opts.elementTool=!0,localStorage.setItem("_hideelementtool","0"),this.setElementTool(!1)),this.config.querySelector(".input-hideelementhighlight").checked?(this.builder.opts.elementHighlight=!1,localStorage.setItem("_hideelementhighlight","1"),this.setElementHighlight(!0)):(this.builder.opts.elementHighlight=!0,localStorage.setItem("_hideelementhighlight","0"),this.setElementHighlight(!1)),this.config.querySelector(".input-opensnippets").checked?(this.builder.opts.snippetOpen=!0,localStorage.setItem("_opensnippets","1")):(this.builder.opts.snippetOpen=!1,localStorage.setItem("_opensnippets","0"));let t=this.config.querySelector(".select-buildermode").value;this.builder.opts.builderMode=t,localStorage.setItem("_buildermode",t),this.setBuilderMode(t);let i=this.config.querySelector(".select-rowtool").value;this.builder.opts.rowTool=i,localStorage.setItem("_rowtool",i),this.setRowToolPosition(i);let n=this.config.querySelector(".select-outlinemode").value;this.builder.opts.outlineMode=n,localStorage.setItem("_outlinemode",n),this.setOutlineMode(n);let o=this.config.querySelector(".select-outlinestyle").value;this.builder.opts.outlineStyle=o,localStorage.setItem("_outlinestyle",o),this.setOutlineStyle(o);let s=this.config.querySelector(".select-toolstyle").value;this.builder.opts.toolStyle=s,localStorage.setItem("_toolstyle",s),this.setToolStyle(s);let a=this.config.querySelector(".select-pasteresult").value;this.builder.opts.paste=a,localStorage.setItem("_pasteresult",a);let r=this.config.querySelector(".select-snippetssidebardisplay").value;this.builder.opts.snippetsSidebarDisplay=r,localStorage.setItem("_snippetssidebardisplay",r);let l=this.config.querySelector(".select-editingtoolbar").value;if(this.builder.opts.toolbar=l,localStorage.setItem("_editingtoolbar",l),this.setToolbar(l),this.builder.themes){const e=this.builder.themeIndex;this.builder.themeIndex&&localStorage.setItem("_theme",e)}}setToolbar(e){const t=this.builder.builderStuff;"top"===e?(t.removeAttribute("toolbarleft",""),t.removeAttribute("toolbarright","")):"left"===e?(t.setAttribute("toolbarleft",""),t.removeAttribute("toolbarright","")):"right"===e&&(t.setAttribute("toolbarright",""),t.removeAttribute("toolbarleft",""));const i=t.querySelector(".is-rte-tool"),n=t.querySelector(".rte-more-options"),o=t.querySelector(".elementrte-more-options");i&&this.builder.rte.positionToolbar(),n&&(ib.removeClass(n,"active"),ib.addClass(n,"deactive"),ib.removeClass(o,"active"),ib.addClass(o,"deactive"))}setEmailMode(){this.builder.builderStuff.setAttribute("emailmode","")}setElementTool(e){const t=this.builder.builderStuff;e?t.setAttribute("hideelementtool",""):t.removeAttribute("hideelementtool","")}setElementHighlight(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{e?t.setAttribute("hideelementhighlight",""):t.removeAttribute("hideelementhighlight","")}))}setOutlineStyle(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{"grayoutline"===e?t.setAttribute("grayoutline",""):t.removeAttribute("grayoutline")}))}setColumnTool(e){const t=this.builder.builderStuff;e?t.setAttribute("hidecolumntool",""):t.removeAttribute("hidecolumntool","")}setSnippetAddTool(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{e?t.setAttribute("hidesnippetaddtool",""):t.removeAttribute("hidesnippetaddtool","")}))}setToolStyle(e){const t=this.builder.builderStuff,i=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(i,(i=>{"gray"===e?(i.setAttribute("gray",""),t.setAttribute("gray","")):(i.removeAttribute("gray"),t.removeAttribute("gray",""))}))}setOutlineMode(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{"row"===e?t.setAttribute("rowoutline",""):t.removeAttribute("rowoutline")}))}setOutline(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{e?t.setAttribute("hideoutline",""):t.removeAttribute("hideoutline")}))}setRowToolPosition(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{"right"===e?t.removeAttribute("leftrowtool"):t.setAttribute("leftrowtool","")}))}setBuilderMode(e){const t=this.builder.builderStuff,i=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(i,(i=>{""===e?(i.removeAttribute("minimal"),i.removeAttribute("clean"),t.removeAttribute("minimal"),t.removeAttribute("clean")):"minimal"===e?(i.setAttribute("minimal",""),i.removeAttribute("clean"),t.setAttribute("minimal",""),t.removeAttribute("clean")):"clean"===e&&(i.setAttribute("clean",""),i.removeAttribute("minimal"),t.setAttribute("clean",""),t.removeAttribute("minimal"))}))}initBuilder(e){const t=this.builder.opts.builderMode;""===t?(e.removeAttribute("minimal"),e.removeAttribute("clean")):"minimal"===t?(e.setAttribute("minimal",""),e.removeAttribute("clean")):"clean"===t&&(e.setAttribute("clean",""),e.removeAttribute("minimal"));"right"===this.builder.opts.rowTool?e.removeAttribute("leftrowtool"):e.setAttribute("leftrowtool","");!this.builder.opts.rowcolOutline?e.setAttribute("hideoutline",""):e.removeAttribute("hideoutline");"row"===this.builder.opts.outlineMode?e.setAttribute("rowoutline",""):e.removeAttribute("rowoutline");"gray"===this.builder.opts.toolStyle?e.setAttribute("gray",""):e.removeAttribute("gray");!this.builder.opts.snippetAddTool?e.setAttribute("hidesnippetaddtool",""):e.removeAttribute("hidesnippetaddtool","");"grayoutline"===this.builder.opts.outlineStyle?e.setAttribute("grayoutline",""):e.removeAttribute("grayoutline");!this.builder.opts.elementHighlight?e.setAttribute("hideelementhighlight",""):e.removeAttribute("hideelementhighlight","")}}const ob=new ni;class sb{constructor(e={},t){this.opts=Object.assign(this,{onPick:function(){},quickColors:{black:"bg-black",white:"bg-white",transparent:""},baseColors:{amber:{preview:"bg-amber-500",colors:["bg-amber-50","bg-amber-100","bg-amber-200","bg-amber-300","bg-amber-400","bg-amber-500","bg-amber-600","bg-amber-700","bg-amber-800","bg-amber-900"]},orange:{preview:"bg-orange-500",colors:["bg-orange-50","bg-orange-100","bg-orange-200","bg-orange-300","bg-orange-400","bg-orange-500","bg-orange-600","bg-orange-700","bg-orange-800","bg-orange-900"]},red:{preview:"bg-red-600",colors:["bg-red-50","bg-red-100","bg-red-200","bg-red-300","bg-red-400","bg-red-500","bg-red-600","bg-red-700","bg-red-800","bg-red-900"]},rose:{preview:"bg-rose-700",colors:["bg-rose-50","bg-rose-100","bg-rose-200","bg-rose-300","bg-rose-400","bg-rose-500","bg-rose-600","bg-rose-700","bg-rose-800","bg-rose-900"]},fuchsia:{preview:"bg-fuchsia-700",colors:["bg-fuchsia-50","bg-fuchsia-100","bg-fuchsia-200","bg-fuchsia-300","bg-fuchsia-400","bg-fuchsia-500","bg-fuchsia-600","bg-fuchsia-700","bg-fuchsia-800","bg-fuchsia-900"]},gray:{preview:"bg-gray-700",colors:["bg-gray-50","bg-gray-100","bg-gray-200","bg-gray-300","bg-gray-400","bg-gray-500","bg-gray-600","bg-gray-700","bg-gray-800","bg-gray-900"]},yellow:{preview:"bg-yellow-500",colors:["bg-yellow-50","bg-yellow-100","bg-yellow-200","bg-yellow-300","bg-yellow-400","bg-yellow-500","bg-yellow-600","bg-yellow-700","bg-yellow-800","bg-yellow-900"]},lime:{preview:"bg-lime-600",colors:["bg-lime-50","bg-lime-100","bg-lime-200","bg-lime-300","bg-lime-400","bg-lime-500","bg-lime-600","bg-lime-700","bg-lime-800","bg-lime-900"]},green:{preview:"bg-green-700",colors:["bg-green-50","bg-green-100","bg-green-200","bg-green-300","bg-green-400","bg-green-500","bg-green-600","bg-green-700","bg-green-800","bg-green-900"]},pink:{preview:"bg-pink-600",colors:["bg-pink-50","bg-pink-100","bg-pink-200","bg-pink-300","bg-pink-400","bg-pink-500","bg-pink-600","bg-pink-700","bg-pink-800","bg-pink-900"]},violet:{preview:"bg-violet-700",colors:["bg-violet-50","bg-violet-100","bg-violet-200","bg-violet-300","bg-violet-400","bg-violet-500","bg-violet-600","bg-violet-700","bg-violet-800","bg-violet-900"]},purple:{preview:"bg-purple-700",colors:["bg-purple-50","bg-purple-100","bg-purple-200","bg-purple-300","bg-purple-400","bg-purple-500","bg-purple-600","bg-purple-700","bg-purple-800","bg-purple-900"]},cyan:{preview:"bg-cyan-400",colors:["bg-cyan-50","bg-cyan-100","bg-cyan-200","bg-cyan-300","bg-cyan-400","bg-cyan-500","bg-cyan-600","bg-cyan-700","bg-cyan-800","bg-cyan-900"]},teal:{preview:"bg-teal-500",colors:["bg-teal-50","bg-teal-100","bg-teal-200","bg-teal-300","bg-teal-400","bg-teal-500","bg-teal-600","bg-teal-700","bg-teal-800","bg-teal-900"]},emerald:{preview:"bg-emerald-600",colors:["bg-emerald-50","bg-emerald-100","bg-emerald-200","bg-emerald-300","bg-emerald-400","bg-emerald-500","bg-emerald-600","bg-emerald-700","bg-emerald-800","bg-emerald-900"]},sky:{preview:"bg-sky-500",colors:["bg-sky-50","bg-sky-100","bg-sky-200","bg-sky-300","bg-sky-400","bg-sky-500","bg-sky-600","bg-sky-700","bg-sky-800","bg-sky-900"]},blue:{preview:"bg-blue-600",colors:["bg-blue-50","bg-blue-100","bg-blue-200","bg-blue-300","bg-blue-400","bg-blue-500","bg-blue-600","bg-blue-700","bg-blue-800","bg-blue-900"]},indigo:{preview:"bg-indigo-600",colors:["bg-indigo-50","bg-indigo-100","bg-indigo-200","bg-indigo-300","bg-indigo-400","bg-indigo-500","bg-indigo-600","bg-indigo-700","bg-indigo-800","bg-indigo-900"]}},stuffPlacement:"#_cbhtml",lang:[]},e);let i=document.querySelector(this.opts.stuffPlacement);i||(i=document.createElement("div"),i.id="_cbhtml",i.className="is-ui",document.body.appendChild(i)),this.builderStuff=i,this.mode=t;const n=new av({stuffPlacement:this.opts.stuffPlacement});this.modal=n;let o=document.querySelector(".pickcolorclass");if(!o){let e=`<div class="is-modal pickcolorclass" style="z-index:10005">\n <div class="is-modal-content" style="padding: 12px;max-width:295px;">\n <div class="is-modal-bar is-draggable" style="height:12px"></div>\n <div>\n <div class="color-list"></div>\n <div class="color-details"></div>\n <div class="color-quick" style="display:flex">\n <button class="quick-color" data-value="${this.opts.quickColors.black}" style="background-color:#222;color:#f7f7f7;display:flex;justify-content:center;align-items:center;width:54px;height:54px;cursor:pointer;">${this.out("B")}</button>\n <button class="quick-color" data-value="${this.opts.quickColors.white}" style="border: rgb(0 0 0 / 6%) 1px solid;border-top:none;border-left:none;background-color:#fff;color:#333;display:flex;justify-content:center;align-items:center;width:54px;height:54px;cursor:pointer;">${this.out("W")}</button>\n <button class="quick-color" data-value="${this.opts.quickColors.transparent}" style="display:flex;justify-content:center;align-items:center;width:162px;height:54px;cursor:pointer;">${this.out("Clear")}</button>\n </div>\n </div>\n </div>\n </div>`;i.insertAdjacentHTML("beforeend",e),o=document.querySelector(".pickcolorclass")}this.modalPicker=o;const s=o.querySelector(".color-list"),a=this.opts.baseColors;let r="";for(let e=0;e<Object.keys(a).length;e++){let t=Object.values(a)[e];r+=`<div class="${t.preview} base-color" data-value="${t.preview}" data-base="${Object.keys(a)[e]}" style="width:45px;height:45px;cursor:pointer;"></div>`}r=`<div style="display:flex;flex-flow:wrap;width:270px;height:135px;flex-direction:row;">${r}</div>`,s.innerHTML=r,this.showColorGradient("gray");let l=document.querySelectorAll(".base-color");Array.prototype.forEach.call(l,(e=>{ob.addEventListener(e,"click",(()=>{const t=e.getAttribute("data-base");this.showColorGradient(t);let i=e.getAttribute("data-value");"text"===this.mode&&(i=i.replace("bg-","text-")),this.opts.onPick(i)}))})),l=document.querySelectorAll(".quick-color"),Array.prototype.forEach.call(l,(e=>{ob.addEventListener(e,"click",(t=>{t.preventDefault();let i=e.getAttribute("data-value");"text"===this.mode&&(i=i.replace("bg-","text-")),this.opts.onPick(i)}))}))}showColorGradient(e){const t=this.modalPicker.querySelector(".color-details"),i=this.opts.baseColors[e].colors;let n="";for(let e=i.length-1;e>=0;e--){const t=i[e];n+=`<div class="${t} detail-color" data-value="${t}" style="width:54px;height:54px;cursor:pointer;"></div>`}n=`<div style="display:flex;flex-flow:wrap;width:270px;height:108px;flex-direction:column;">${n}</div>`,t.innerHTML=n;const o=document.querySelectorAll(".detail-color");Array.prototype.forEach.call(o,(e=>{ob.addEventListener(e,"click",(()=>{let t=e.getAttribute("data-value");"text"===this.mode&&(t=t.replace("bg-","text-")),this.opts.onPick(t)}))}))}open(e,t){e&&(this.opts.onPick=e),this.mode=t,this.modal.show(this.modalPicker,!1,null,!1)}out(e){if(this.opts.lang){let t=this.opts.lang[e];return t||e}return e}}const ab=new ni;class rb{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i,this.elementStyleEditor=new qv(e),this.hyperlink=new Bm(e);let n,o,s,a,r,l,d,c,u,p,h,g,f,m,v,b=i.querySelector("#divRteTool");if(!b){let w="";var y="";if(e.opts.customTags.length>0){w=`<button title="${t.out("Tags")}" class="rte-tags"><svg class="is-icon-flex" style="width:14px;height:14px"><use xlink:href="#ion-code-working"></use></svg></button>`;for(let t=0;t<e.opts.customTags.length;t++)y+=`<button data-value="${e.opts.customTags[t][1]}"> ${e.opts.customTags[t][0]} </button>`}let S="";for(var _=0;_<e.opts.buttonsMore.length;_++){var x=e.opts.buttonsMore[_].toLowerCase();"createlink"===x?S+=`<button title="${t.out("Hyperlink")}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`:"icon"!==x||this.builder.opts.emailMode?S+="removeformat"===x?`<button title="${t.out("Clean")}" class="rte-clean"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>`:"bold"===x?`<button title="${t.out("Bold")}" class="rte-format" data-command="bold"><span style="font-family:serif;font-size:14px;">B</span></button>`:"italic"===x?`<button title="${t.out("Italic")}" class="rte-format" data-command="italic"><span style="font-family:serif;font-size:16px;font-style:italic;">i</span></button>`:"underline"===x?`<button title="${t.out("Underline")}" class="rte-format" data-command="underline"><span style="font-family:serif;font-size:14px;text-decoration:underline;">U</span></button>`:"align"===x?`<button title="${t.out("Align")}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"list"===x?`<button title="${t.out("List")}" class="rte-list"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#icon-list-bullet"></use></svg></button>`:"color"===x?`<button title="${t.out("Color")}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`:"formatting"===x?`<button title="${t.out("Formatting")}" class="rte-formatting"><span style="font-family:serif;font-size:15px;display:inline-block;">A</span></button>`:"tags"===x?w:"image"===x?`<button title="${t.out("Image")}" class="rte-image"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-image"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"formatpara"===x?`<button title="${t.out("Paragraph")}" class="rte-paragraph"><span style="font-family:serif;font-size:14px;display:inline-block;margin-top:2px;">H</span></button>`:"font"===x?`<button title="${t.out("Font")}" class="rte-fontfamily"><span style="font-family:serif;font-size:18px;text-transform:none;display:inline-block;margin-top: -3px;">a</span></button>`:"textsettings"===x?`<button title="${t.out("Text Settings")}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`:S+=`<button title="${t.out("Icon")}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`}let C="";for(_=0;_<e.opts.buttons.length;_++)"bold"===(x=e.opts.buttons[_].toLowerCase())?C+=`<button title="${t.out("Bold")}" class="rte-format" data-command="bold"><span style="font-family:serif;font-size:14px;">B</span></button>`:"italic"===x?C+=`<button title="${t.out("Italic")}" class="rte-format" data-command="italic"><span style="font-family:serif;font-size:16px;font-style:italic;">i</span></button>`:"underline"===x?C+=`<button title="${t.out("Underline")}" class="rte-format" data-command="underline"><span style="font-family:serif;font-size:14px;text-decoration:underline;">U</span></button>`:"createlink"===x?C+=`<button title="${t.out("Hyperlink")}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`:"align"===x?C+=`<button title="${t.out("Align")}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"formatpara"===x?C+=`<button title="${t.out("Paragraph")}" class="rte-paragraph"><span style="font-family:serif;font-size:14px;display:inline-block;margin-top:2px;">H</span></button>`:"color"===x?C+=`<button title="${t.out("Color")}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`:"formatting"===x?C+=`<button title="${t.out("Formatting")}" class="rte-formatting"><span style="font-family:serif;font-size:15px;display:inline-block;">A</span></button>`:"list"===x?C+=`<button title="${t.out("List")}" class="rte-list"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#icon-list-bullet"></use></svg></button>`:"textsettings"===x?C+=`<button title="${t.out("Text Settings")}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`:"icon"!==x||this.builder.opts.emailMode?C+="tags"===x?w:"removeformat"===x?`<button title="${t.out("Clean")}" class="rte-format" data-command="clean"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>`:"font"===x?`<button title="${t.out("Font")}" class="rte-fontfamily"><span style="font-family:serif;font-size:18px;text-transform:none;display:inline-block;margin-top: -3px;">a</span></button>`:"image"===x?`<button title="${t.out("Image")}" class="rte-image"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-image"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;width:17px;height:17px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"more"===x&&""!==S?`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`:C+=`<button title="${t.out("Icon")}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px"><use xlink:href="#ion-android-happy"></use></svg></button>`;this.builder.opts.toolbarAddSnippetButton&&-1===C.indexOf("rte-addsnippet")&&-1===S.indexOf("rte-addsnippet")&&(C=`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`+C),""!==S&&-1===C.indexOf("rte-more")&&(C+=`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let k="";for(_=0;_<e.opts.elementButtonsMore.length;_++)k+="left"===(x=e.opts.elementButtonsMore[_].toLowerCase())?`<button title="${t.out("Align Left")}" data-align="left"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-left"></use></svg></button>`:"center"===x?`<button title="${t.out("Align Center")}" data-align="center"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-center"></use></svg></button>`:"right"===x?`<button title="${t.out("Align Right")}" data-align="right"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-right"></use></svg></button>`:"full"===x?`<button title="${t.out("Align Full")}" data-align="justify"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`;let E="";for(_=0;_<e.opts.elementButtons.length;_++)E+="left"===(x=e.opts.elementButtons[_].toLowerCase())?`<button title="${t.out("Align Left")}" data-align="left"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-left"></use></svg></button>`:"center"===x?`<button title="${t.out("Align Center")}" data-align="center"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-center"></use></svg></button>`:"right"===x?`<button title="${t.out("Align Right")}" data-align="right"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-right"></use></svg></button>`:"full"===x?`<button title="${t.out("Align Full")}" data-align="justify"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;width:17px;height:17px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"more"===x&&""!==k?`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`;this.builder.opts.toolbarAddSnippetButton&&-1===E.indexOf("rte-addsnippet")&&-1===k.indexOf("rte-addsnippet")&&(E=`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`+C),""!==k&&-1===E.indexOf("rte-more")&&(E+=`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let A="",q="";for(_=0;_<e.opts.iconButtonsMore.length;_++)"createlink"===(x=e.opts.iconButtonsMore[_].toLowerCase())?A+=`<button title="${t.out("Hyperlink")}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`:"icon"!==x||this.builder.opts.emailMode?A+="align"===x?`<button title="${t.out("Align")}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"color"===x?`<button title="${t.out("Color")}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"textsettings"===x?`<button title="${t.out("Text Settings")}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`:A+=`<button title="${t.out("Icon")}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`;for(_=0;_<e.opts.iconButtons.length;_++)"createlink"===(x=e.opts.iconButtons[_].toLowerCase())?q+=`<button title="${t.out("Hyperlink")}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`:"icon"!==x||this.builder.opts.emailMode?q+="align"===x?`<button title="${t.out("Align")}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"color"===x?`<button title="${t.out("Color")}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"textsettings"===x?`<button title="${t.out("Text Settings")}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"more"===x&&""!==S?`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`:q+=`<button title="${t.out("Icon")}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`;this.builder.opts.toolbarAddSnippetButton&&-1===q.indexOf("rte-addsnippet")&&-1===A.indexOf("rte-addsnippet")&&(q=`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`+C),""!==A&&-1===q.indexOf("rte-more")&&(q+=`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let T="";for(_=0;_<e.opts.defaultFontSizes.length;_++)T+=`<button title="${e.opts.defaultFontSizes[_]}px" data-value="${e.opts.defaultFontSizes[_]}">${e.opts.defaultFontSizes[_]}</button>`;let L=`<div class="is-rte-tool" style="position:fixed;flex-direction:column;display:none;">\n <div class="rte-for-text" style="display:flex">\n ${C}\n </div>\n <div class="rte-for-icon" class="" style="display:flex">\n ${q}\n </div>\n </div>\n\n <div class="is-elementrte-tool" style="position:fixed;flex-direction:column;display:none;">\n <div style="display:flex">\n ${E}\n </div>\n </div>\n\n <div class="rte-formatting-options is-rte-pop">\n <div>\n <button title="${t.out("Strikethrough")}" class="rte-format" data-command="strikethrough" style="float:left"><svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#icon-strike"></use></svg></button>\n <button title="${t.out("Superscript")}" class="rte-format" data-command="superscript" style="float:left"><span style="font-family:serif;font-size:13px;">x</span><sup style="font-size:10px">2</sup></button>\n <button title="${t.out("Subscript")}" class="rte-format" data-command="subscript" style="float:left"><span style="font-family:serif;font-size:13px;">x</span><sub style="font-size:10px">2</sub></button>\n <button title="${t.out("Uppercase")}" class="rte-format" data-command="uppercase" style="float:left"><span style="font-family:serif;font-size:14px;display:inline-block;text-transform: none;">Aa</span></button>\n <button title="${t.out("Clean")}" class="rte-format" data-command="clean"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>\n </div>\n </div>\n\n <div class="rte-align-options is-rte-pop">\n <div>\n <button title="${t.out("Align Left")}" data-align="left"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-left"></use></svg></button>\n <button title="${t.out("Align Center")}" data-align="center"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-center"></use></svg></button>\n <button title="${t.out("Align Right")}" data-align="right"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-right"></use></svg></button>\n <button title="${t.out("Align Full")}" data-align="justify"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-full"></use></svg></button>\n </div>\n </div>\n\n <div class="rte-list-options is-rte-pop">\n <div>\n <button title="${t.out("Bullets")}" data-action="insertUnorderedList"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-list-bullet"></use></svg></button>\n <button title="${t.out("Numbering")}" data-action="insertOrderedList"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-list-number"></use></svg></button>\n <button title="${t.out("Indent")}" data-action="indent"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-indent"></use></svg></button>\n <button title="${t.out("Outdent")}" data-action="outdent"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-outdent"></use></svg></use></svg></svg></button>\n </div>\n </div>\n\n <div class="rte-paragraph-options is-rte-pop">\n <div>\n <div title="${t.out("Heading 1")}" data-block="h1" role="button" tabindex="0"><h1>Heading 1</h1></div>\n <div title="${t.out("Heading 2")}" data-block="h2" role="button" tabindex="0"><h2>Heading 2</h2></div>\n <div title="${t.out("Heading 3")}" data-block="h3" role="button" tabindex="0"><h3>Heading 3</h3></div>\n <div title="${t.out("Heading 4")}" data-block="h4" role="button" tabindex="0"><h4>Heading 4</h4></div>\n <div title="${t.out("Paragraph")}" data-block="p" role="button" tabindex="0"><p>Paragraph</p></div>\n <div title="${t.out("Preformatted")}" data-block="pre" role="button" tabindex="0"><p style="font-family:courier, monospace;">Preformatted</p></div>\n </div>\n </div>\n\n <div class="rte-fontfamily-options is-rte-pop">\n <iframe src="about:blank"></iframe>\n </div>\n\n <div class="rte-color-picker is-rte-pop" data-command="forecolor">\n <div class="is-pop-tabs">\n <div class="is-pop-tab-item active" data-value="forecolor">${t.out("Forecolor")}</div>\n <div class="is-pop-tab-item" data-value="backcolor">${t.out("Backcolor")}</div>\n </div>\n <div class="rte-color-picker-area"></div>\n </div>\n \n <div class="rte-textsetting-options is-rte-pop">\n <div>\n <div class="is-label">${t.out("Font Size")}</div>\n <div class="rte-fontsize-options" style="display: flex;flex-flow: wrap;">\n ${T}\n\n <button title="${t.out("Decrease")}" data-value="-" style="font-size:13px">-</button>\n <button title="${t.out("Increase")}" data-value="+" style="font-size:13px">+</button>\n <button title="${t.out("Clear")}" data-value=""><svg class="is-icon-flex" style="width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n <div class="is-label separator">${t.out("Line Spacing")}</div>\n <div class="rte-lineheight-options" style="display: flex;flex-flow: wrap;">\n <button title="1" data-value="1">1</button>\n <button title="1.2" data-value="1.2">1.2</button>\n <button title="1.4" data-value="1.4">1.4</button>\n <button title="1.6" data-value="1.6">1.6</button>\n <button title="1.8" data-value="1.8">1.8</button>\n <button title="2" data-value="2">2</button>\n <button title="2.2" data-value="2.2">2.2</button>\n <button title="${t.out("Decrease")}" data-value="-" style="font-size:13px">-</button>\n <button title="${t.out("Increase")}" data-value="+" style="font-size:13px">+</button>\n <button title="${t.out("Clear")}" data-value=""><svg class="is-icon-flex" style="width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n <div class="is-label separator">${t.out("Letter Spacing")}</div>\n <div class="rte-letterspacing-options" style="display: flex;flex-flow: wrap;">\n <button title="1" data-value="1">1</button>\n <button title="2" data-value="2">2</button>\n <button title="${t.out("Decrease")}" data-value="-" style="font-size:13px">-</button>\n <button title="${t.out("Increase")}" data-value="+" style="font-size:13px">+</button>\n <button title="${t.out("Clear")}" data-value=""><svg class="is-icon-flex" style="width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n </div>\n </div>\n\n <div class="rte-zoom-options is-rte-pop">\n <div>\n <div class="is-label">${t.out("Zoom")}</div>\n <div style="padding-top:4px">\n <input type="range" min="50" max="100" value="1" class="rte-zoom-slider is-rangeslider">\n </div>\n </div>\n </div>\n\n <div class="is-modal viewzoom">\n <div class="is-modal-content" style="max-width:250px;height:150px;display:flex;flex-flow:column;justify-content:center;">\n <div class="is-modal-bar is-draggable">${t.out("Zoom")}</div>\n \n <div style="display:flex;flex-wrap:wrap;width:100%;padding-top:32px;">\n <input type="range" min="50" max="100" value="1" class="inp-zoom-slider is-rangeslider">\n </div>\n </div>\n </div>\n\n <div class="is-modal insertimage">\n <div class="is-modal-content" style="max-width:560px;">\n <div class="is-browse-area">\n <div class="is-drop-area">\n <input id="fileInsertImage" type="file" accept="image/*" />\n <div class="drag-text">\n <p style="display:flex;justify-content:center;align-items:center;"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-camera"></use></svg> <span style="margin-left:5px;margin-top:3px;"> ${t.out("Drag and drop an image or click to browse.")} </span></p>\n </div>\n </div>\n <div class="is-preview-area">\n <div><img id="imgInsertImagePreview" alt="" /><i class="ion-ios-close-empty" role="button" tabindex="0"></i></div>\n </div>\n </div> \n <label for="inpInsertImageSrc" style="margin:10px 0 5px;display:block;">${t.out("Or Specify Image Source")}:</label>\n ${"function(){}"!==(this.builder.opts.onImageSelectClick+"").replace(/\s/g,"")||""!==this.builder.opts.imageselect?`<div class="image-src clearfix" style="margin-bottom: 12px;"><input id="inpInsertImageSrc" class="input-src" type="text" placeholder="${t.out("Source")}"><button title="${t.out("Select")}" class="input-select" style="flex:none;width:50px;height:50px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button></div>`:`<div class="image-src clearfix" style="margin-bottom: 12px;"><input id="inpInsertImageSrc" class="input-src" type="text" placeholder="${t.out("Source")}"></div>`}\n <div style="text-align:right">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>\n\n <div class="rte-icon-options is-rte-pop">\n <iframe id="ifrIconInsert" src="about:blank"></iframe>\n </div>\n\n <div class="rte-customtag-options is-rte-pop scroll">\n <div>${y}</div>\n </div>\n\n <div class="rte-more-options is-rte-pop">\n <div class="rte-for-text">\n ${S}\n </div>\n <div class="rte-for-icon">\n ${A}\n </div>\n </div>\n\n <div class="elementrte-more-options is-rte-pop">\n <div>\n ${k}\n </div>\n </div>\n `;ab.appendHtml(i,L),b=i.querySelector(".is-rte-tool"),n=i.querySelector(".is-elementrte-tool"),c=i.querySelector(".rte-more-options"),u=i.querySelector(".elementrte-more-options"),o=i.querySelector(".rte-align-options"),s=i.querySelector(".rte-formatting-options"),a=i.querySelector(".rte-color-picker"),r=i.querySelector(".rte-list-options"),l=i.querySelector(".rte-fontfamily-options"),d=i.querySelector(".rte-paragraph-options"),p=i.querySelector(".rte-textsetting-options"),h=i.querySelector(".rte-zoom-options"),g=i.querySelector(".rte-icon-options"),f=i.querySelector(".rte-customtag-options"),m=i.querySelector(".rte-zoom-slider"),v=i.querySelector(".inp-zoom-slider");let M=b.querySelectorAll("[title]");Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=n.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=o.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=s.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=r.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=c.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=u.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),this.builder.isTouchSupport&&document.addEventListener("selectionchange",(function(){ab.checkEditable()&&(""!==ab.getSelected().trim()&&t.saveSelection())}),!1)}if(this.rteTool=b,this.elementRteTool=n,this.rteAlignOptions=o,this.rteFormattingOptions=s,this.rteColorPicker=a,this.rteListOptions=r,this.rteFontFamilyOptions=l,this.rteParagraphOptions=d,this.rteMoreOptions=c,this.elementRteMoreOptions=u,this.rteTextSettingOptions=p,this.rteZoomOptions=h,this.rteIconOptions=g,this.rteCustomTagOptions=f,this.rteZoomSlider=m,this.inpZoomSlider=v,this.positionToolbar(),i.querySelectorAll("button.rte-formatting").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteFormattingOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),i.querySelectorAll("button.rte-align").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteAlignOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),i.querySelectorAll("button.rte-list").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteListOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),i.querySelectorAll("button.rte-tags").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteCustomTagOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";if(ab.parentsHasClass(e,"rte-more-options"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",e.getBoundingClientRect().left+45-parseInt(this.rteMoreOptions.style.left)<t.offsetWidth?t.style.left=parseInt(this.rteMoreOptions.style.left)+"px":parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-e.getBoundingClientRect().left+45<t.offsetWidth&&(t.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-o+"px"),t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),i.querySelectorAll("button.rte-paragraph").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteParagraphOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";if(ab.parentsHasClass(e,"rte-more-options"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-o+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}this.getState()}))})),!this.builder.renderIframeLater){let e=l.querySelector("iframe").contentWindow.document;e.open(),this.builder.opts.emailMode?e.write(t.getFontFamilyEmail()):e.write(t.getFontFamilyHTML()),e.close()}if(i.querySelectorAll("button.rte-fontfamily").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteFontFamilyOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";if(ab.parentsHasClass(e,"rte-more-options"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-o+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}this.getState();let a=t.querySelector("iframe").contentWindow.document.querySelector("#divFontList");var r=a.querySelector(".on");r&&(a.scrollTop=a.scrollTop+r.getBoundingClientRect().top)}))})),!this.builder.renderIframeLater){let e=g.querySelector("iframe").contentWindow.document;e.open(),e.write(this.getIconsHTML()),e.close()}let w=i.querySelectorAll("button.rte-icon");w.forEach((e=>{e.addEventListener("click",(e=>{this.openIcon(e)}))})),i.querySelectorAll("button.rte-color").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteColorPicker,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if(this.builder.uo.saveForUndo(!0),"left"===this.builder.opts.toolbar)t.style.top=this.rteTool.style.top,t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=this.rteTool.style.top,t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),i.querySelectorAll("button.rte-preferences").forEach((e=>{e.addEventListener("click",(()=>{this.builder.viewPreferences()}))})),i.querySelectorAll("button.rte-html").forEach((e=>{e.addEventListener("click",(()=>{this.builder.viewHtml()}))})),i.querySelectorAll("button.rte-grideditor").forEach((e=>{e.addEventListener("click",(()=>{const e=this.builderStuff.querySelector(".grideditor");ab.addClass(e,"active");const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(e=>{e.setAttribute("grideditor","")}))}))})),i.querySelectorAll("button.rte-undo").forEach((e=>{e.addEventListener("click",(()=>{this.builder.uo.doUndo()}))})),i.querySelectorAll("button.rte-redo").forEach((e=>{e.addEventListener("click",(()=>{this.builder.uo.doRedo()}))})),i.querySelectorAll("button.rte-addsnippet").forEach((e=>{e.addEventListener("click",(()=>{this.viewSnippets()}))})),i.querySelectorAll("button.rte-link").forEach((e=>{e.addEventListener("click",(()=>{new ii(this.builder).clearActiveCell(),this.hyperlink.createLink()}))})),i.querySelectorAll("button.rte-image").forEach((e=>{e.addEventListener("click",(()=>{const e=this.builderStuff.querySelector(".insertimage");t.showModal(e,!0,(function(){}),!1),e.querySelector("#fileInsertImage").value="",e.querySelector(".is-preview-area").style.display="none",e.querySelector(".is-drop-area").style.display="block",ab.removeClass(e.querySelector(".is-drop-area"),"image-dropping"),e.querySelector(".input-src").value=""}))}));const S=this.builderStuff.querySelector(".insertimage"),C=S.querySelector("#fileInsertImage");ab.addEventListener(C,"change",(e=>{var t=e.target;if(t.files&&t.files[0]){var i=new FileReader;i.onload=function(e){S.querySelector(".is-drop-area").style.display="none",S.querySelector("#imgInsertImagePreview").src=e.target.result,S.querySelector(".is-preview-area").style.display="block";let i=t.files[0].name;S.querySelector("#imgInsertImagePreview").setAttribute("data-filename",i)},i.readAsDataURL(t.files[0]),S.querySelector(".input-src").value=""}}));const k=S.querySelector(".input-ok");ab.addEventListener(k,"click",(()=>{if(!this.builder.activeCol)return void t.hideModal(S);this.builder.uo.saveForUndo(),t.restoreSelection();let e="";if(e="none"===S.querySelector(".is-drop-area").style.display?S.querySelector("#imgInsertImagePreview").src:S.querySelector(".input-src").value,""===e)return;let i=S.querySelector("#imgInsertImagePreview").getAttribute("data-filename");t.pasteHtmlAtCaret('<img data-filename="'+i+'" src="'+e+'" alt="" />',!1),t.hideModal(S);let n=document.querySelector(".builder-active");n&&this.builder.applyBehaviorOn(n),t.saveSelection(),this.builder.opts.onChange(),this.builder.opts.onRender()}));const E=S.querySelector(".input-cancel");ab.addEventListener(E,"click",(()=>{t.hideModal(S)}));const A=S.querySelector(".is-drop-area");ab.addEventListener(A,"dragover",(()=>{ab.addClass(A,"image-dropping")})),ab.addEventListener(A,"dragleave",(()=>{ab.removeClass(A,"image-dropping")}));const q=S.querySelector(".is-preview-area i");ab.addEventListener(q,"click",(()=>{S.querySelector("#fileInsertImage").value="",S.querySelector(".is-preview-area").style.display="none",A.style.display="block",ab.removeClass(A,"image-dropping")}));const T=S.querySelector(".input-src");if(ab.addEventListener(T,"keyup",(()=>{S.querySelector("#fileInsertImage").value="",S.querySelector(".is-preview-area").style.display="none",A.style.display="block",ab.removeClass(A,"image-dropping")})),this.builder.opts.onImageSelectClick||""!==this.builder.opts.imageselect||(S.querySelector(".input-select").style.display="none"),this.builder.opts.onImageSelectClick||""!==this.builder.opts.imageselect){ab.addClass(S.querySelector(".image-src"),"image-select");const e=S.querySelector(".input-select");e&&ab.addEventListener(e,"click",(()=>{if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:S.querySelector(".input-src"),theTrigger:e});else{let e=this.builderStuff.querySelector(".is-modal.imageselect"),i=e.querySelector("iframe");this.builder.opts.assetRefresh&&(i.src=this.builder.opts.imageselect,this.builder.opts.assetRefresh=!1),"about:blank"===i.src&&(i.src=this.builder.opts.imageselect),t.showModal(e)}this.builder.targetInput=S.querySelector(".input-src"),this.builder.targetCallback=null,this.builder.targetAssetType="image"}))}else ab.removeClass(T,"image-select");i.querySelectorAll("button.rte-zoom").forEach((e=>{ab.addEventListener(e,"click",(()=>{const t=this.rteZoomOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("none"!==this.rteTool.style.display){if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else{t.style.top=i+54-6+"px";const e=parseInt(this.rteTool.style.left)+this.rteTool.offsetWidth,s=n-o/2+23+o,a=0;t.style.left=s>e?parseInt(this.rteTool.style.left)+this.rteTool.offsetWidth-o+a+"px":n-o/2+23+"px",t.style.right="auto"}if(ab.parentsHasClass(e,"rte-more-options"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-o+"px",t.style.right="auto"}else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else{t.style.top=i+54-6+"px";const e=parseInt(this.elementRteTool.style.left)+this.elementRteTool.offsetWidth,s=n-o/2+23+o;t.style.left=s>e?parseInt(this.elementRteTool.style.left)+this.elementRteTool.offsetWidth-o+"px":n-o/2+23+"px",t.style.right="auto"}if(ab.parentsHasClass(e,"elementrte-more-optionss"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.elementRteMoreOptions.style.top)+this.elementRteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.elementRteMoreOptions.style.top)+this.elementRteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=parseInt(this.elementRteMoreOptions.style.left)+this.elementRteMoreOptions.offsetWidth-o+"px",t.style.right="auto"}ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),this.rteZoomSlider.value=100*this.builder.opts.zoom,this.rteZoomSlider.onfocus=()=>{this.builder.onZoomStart&&this.builder.onZoomStart(),this.rteZoomSlider.blur()},this.rteZoomSlider.oninput=()=>{let e=this.rteZoomSlider.value/100;this.builder.opts.zoom=e,localStorage.setItem("_zoom",e),this.builder.setZoomOnArea();let t=this.builderStuff.querySelectorAll(".is-tool");if(Array.prototype.forEach.call(t,(e=>{e.style.display=""})),this.builderStuff.querySelector(".is-column-tool").style.display="none",t=document.querySelectorAll(".is-row-tool"),t.forEach((e=>{e.style.display="none"})),t=document.querySelectorAll(".is-rowadd-tool"),t.forEach((e=>{e.style.opacity=0})),this.builder.onZoom){let e=this.rteZoomSlider.value/100;this.builder.onZoom(e)}},this.rteZoomSlider.onchange=()=>{setTimeout((()=>{if(""!==this.builder.opts.page){const e=document.querySelector(this.builder.opts.page);this.builder.setZoomOnControl(e)}else{document.querySelectorAll(this.builder.opts.container).forEach((e=>{this.builder.setZoomOnControl(e)}))}this.builder.elmTool.repositionElementTool();let e=this.builder.activeCol,t=this.builderStuff.querySelector(".is-column-tool");t.style.display="",t.style.top=e.getBoundingClientRect().top-29+window.pageYOffset+"px",t.style.left=e.getBoundingClientRect().left-1+"px";let i=document.querySelectorAll(".is-row-tool");if(i.forEach((e=>{e.style.display=""})),i=document.querySelectorAll(".is-rowadd-tool"),i.forEach((e=>{e.style.opacity=""})),this.builder.onZoomEnd){let e=this.rteZoomSlider.value/100;this.builder.onZoomEnd(e)}}),300)},this.inpZoomSlider.onfocus=()=>{this.builder.onZoomStart&&this.builder.onZoomStart(),this.inpZoomSlider.blur()},this.inpZoomSlider.oninput=()=>{let e=this.inpZoomSlider.value/100;if(this.builder.opts.zoom=e,localStorage.setItem("_zoom",e),this.builder.setZoomOnArea(),this.builder.onZoom){let e=this.inpZoomSlider.value/100;this.builder.onZoom(e)}},this.inpZoomSlider.onchange=()=>{setTimeout((()=>{if(""!==this.builder.opts.page){const e=document.querySelector(this.builder.opts.page);this.builder.setZoomOnControl(e)}else{document.querySelectorAll(this.builder.opts.container).forEach((e=>{this.builder.setZoomOnControl(e)}))}if(this.builder.onZoomEnd){let e=this.inpZoomSlider.value/100;this.builder.onZoomEnd(e)}this.rteZoomSlider.value=this.inpZoomSlider.value}),300)},i.querySelectorAll("button.rte-textsettings").forEach((e=>{ab.addEventListener(e,"click",(()=>{const t=this.rteTextSettingOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";if(ab.parentsHasClass(e,"rte-more-options"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),this.rteTool.querySelectorAll("button.rte-more").forEach((e=>{e.addEventListener("click",(()=>{this.showRteMore()}))}));let L=this.elementRteTool.querySelector("button.rte-more");L&&ab.addEventListener(L,"click",(()=>{this.showElementRteMore()}));var M=Array.prototype.slice.call(this.rteTool.querySelectorAll(".rte-format")).concat(Array.prototype.slice.call(this.rteFormattingOptions.querySelectorAll(".rte-format"))).concat(Array.prototype.slice.call(this.rteMoreOptions.querySelectorAll(".rte-format")));Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{let i;this.builder.uo.saveForUndo();try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,i=3===e.nodeType?e.parentNode:e):document.selection&&(e=document.selection.createRange(),i=document.selection.createRange().parentElement())}catch(e){return}const n=e.getAttribute("data-command");var o=ab.getSelected();if("bold"===n)if(this.builder.useCssClasses)ab.execCommandToggle("fontWeight","",this.builder.cssClasses);else if(""===o.trim()){var s=i.tagName.toLowerCase();"b"===s?(ab.selectElementContents(i),document.execCommand("bold",!1,null)):"bold"===i.style.fontWeight||i.style.fontWeight>400?i.style.fontWeight="":i.style.fontWeight="bold"}else document.execCommand("bold",!1,null);if("italic"===n)if(this.builder.useCssClasses)ab.execCommandToggle("fontStyle","",this.builder.cssClasses);else if(""===o.trim())if("i"===(s=i.tagName.toLowerCase()))ab.selectElementContents(i),document.execCommand("italic",!1,null);else{let e=window.getComputedStyle(i).getPropertyValue("font-style");i.style.fontStyle="italic"===e?"normal":"italic"}else document.execCommand("italic",!1,null);if("underline"===n&&(this.builder.useCssClasses?ab.execCommandToggle("textUnderline","",this.builder.cssClasses):""===o.trim()?"u"===(s=i.tagName.toLowerCase())?(ab.selectElementContents(i),document.execCommand("underline",!1,null)):-1!==i.style.textDecoration.indexOf("underline")?i.style.textDecoration="":i.style.textDecoration="underline":document.execCommand("underline",!1,null)),"strikethrough"===n&&(this.builder.useCssClasses?ab.execCommandToggle("textLinethrough","",this.builder.cssClasses):""===o.trim()?"strike"===(s=i.tagName.toLowerCase())?(ab.selectElementContents(i),document.execCommand("strikethrough",!1,null)):-1!==i.style.textDecoration.indexOf("line-through")?i.style.textDecoration="":i.style.textDecoration="line-through":document.execCommand("strikethrough",!1,null)),"superscript"===n&&(this.builder.useCssClasses?ab.execCommandToggle("extend","superscript",this.builder.cssClasses):document.execCommand("superscript",!1,null)),"subscript"===n&&(this.builder.useCssClasses?ab.execCommandToggle("extend","subscript",this.builder.cssClasses):document.execCommand("subscript",!1,null)),"uppercase"===n)if(this.builder.useCssClasses)ab.execCommandToggle("textTransform","",this.builder.cssClasses);else{let e=window.getComputedStyle(i).getPropertyValue("text-transform");i.style.textTransform="uppercase"===e?"lowercase":"lowercase"===e?"capitalize":"capitalize"===e?"none":"none"===e?"uppercase":"none"}if("clean"===n&&(this.builder.useCssClasses?(document.execCommand("removeFormat",!1,null),ab.execCommandToggle("clean","",this.builder.cssClasses)):""===o.trim()?(i.style.cssText="",i.className=""):i.innerText.replace(/(\r\n|\n|\r)/gm,"")===o.trim().replace(/(\r\n|\n|\r)/gm,"")?(i.style.cssText="",i.className="",document.execCommand("removeFormat",!1,null),document.execCommand("removeFormat",!1,null)):(document.execCommand("removeFormat",!1,null),document.execCommand("removeFormat",!1,null))),this.getState(),this.builder.isTouchSupport||t.saveSelection(),""===o.trim()&&(t.restoreSelection(),this.builder.isTouchSupport)){this.rteTool.querySelector("button").focus()}this.builder.opts.onChange()}))})),M=this.rteAlignOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{if(this.builder.uo.saveForUndo(),t.restoreSelection(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}const i=e.getAttribute("data-align");let n;try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,n=3===e.nodeType?e.parentNode:e):document.selection&&(e=document.selection.createRange(),n=document.selection.createRange().parentElement())}catch(e){return}let o=n,s=o.closest("table.button");if(s){if("center"===i)if("center"!==s.parentNode.tagName.toLowerCase()){let e=document.createElement("CENTER");s.parentNode.insertBefore(e,s),e.appendChild(s)}else s.setAttribute("align","");else s.setAttribute("align",i);ab.removeClass(s,"float-center")}else{for(;"p"!==o.tagName.toLowerCase()&&"h1"!==o.tagName.toLowerCase()&&"h2"!==o.tagName.toLowerCase()&&"h3"!==o.tagName.toLowerCase()&&"h4"!==o.tagName.toLowerCase()&&"h5"!==o.tagName.toLowerCase()&&"h6"!==o.tagName.toLowerCase()&&"pre"!==o.tagName.toLowerCase()&&"blockquote"!==o.tagName.toLowerCase()&&"div"!==o.tagName.toLowerCase()&&"td"!==o.tagName.toLowerCase()&&"th"!==o.tagName.toLowerCase();)o=o.parentNode;this.builder.useCssClasses?(o.style.textAlign="",ab.removeClass(o,this.builder.cssClasses.textAlign.left),ab.removeClass(o,this.builder.cssClasses.textAlign.center),ab.removeClass(o,this.builder.cssClasses.textAlign.right),ab.removeClass(o,this.builder.cssClasses.textAlign.justify),"left"===i&&ab.addClass(o,this.builder.cssClasses.textAlign.left),"center"===i&&ab.addClass(o,this.builder.cssClasses.textAlign.center),"right"===i&&ab.addClass(o,this.builder.cssClasses.textAlign.right),"justify"===i&&ab.addClass(o,this.builder.cssClasses.textAlign.justify)):o.style.textAlign=i}this.getState(),t.saveSelection(),this.builder.opts.onChange()}))})),M=this.elementRteTool.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-align");let i=this.builder.inspectedElement;for(;"p"!==i.tagName.toLowerCase()&&"h1"!==i.tagName.toLowerCase()&&"h2"!==i.tagName.toLowerCase()&&"h3"!==i.tagName.toLowerCase()&&"h4"!==i.tagName.toLowerCase()&&"h5"!==i.tagName.toLowerCase()&&"h6"!==i.tagName.toLowerCase()&&"pre"!==i.tagName.toLowerCase()&&"blockquote"!==i.tagName.toLowerCase()&&"div"!==i.tagName.toLowerCase()&&"td"!==i.tagName.toLowerCase()&&"th"!==i.tagName.toLowerCase();)i=i.parentNode;this.builder.useCssClasses?(i.style.textAlign="",ab.removeClass(i,this.builder.cssClasses.textAlign.left),ab.removeClass(i,this.builder.cssClasses.textAlign.center),ab.removeClass(i,this.builder.cssClasses.textAlign.right),ab.removeClass(i,this.builder.cssClasses.textAlign.justify),"left"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.left),"center"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.center),"right"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.right),"justify"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.justify)):i.style.textAlign=t,this.getState(),this.builder.opts.onChange()}))})),M=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-align");let i=this.builder.inspectedElement;for(;"p"!==i.tagName.toLowerCase()&&"h1"!==i.tagName.toLowerCase()&&"h2"!==i.tagName.toLowerCase()&&"h3"!==i.tagName.toLowerCase()&&"h4"!==i.tagName.toLowerCase()&&"h5"!==i.tagName.toLowerCase()&&"h6"!==i.tagName.toLowerCase()&&"pre"!==i.tagName.toLowerCase()&&"blockquote"!==i.tagName.toLowerCase()&&"div"!==i.tagName.toLowerCase()&&"td"!==i.tagName.toLowerCase()&&"th"!==i.tagName.toLowerCase();)i=i.parentNode;this.builder.useCssClasses?(i.style.textAlign="",ab.removeClass(i,this.builder.cssClasses.textAlign.left),ab.removeClass(i,this.builder.cssClasses.textAlign.center),ab.removeClass(i,this.builder.cssClasses.textAlign.right),ab.removeClass(i,this.builder.cssClasses.textAlign.justify),"left"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.left),"center"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.center),"right"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.right),"justify"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.justify)):i.style.textAlign=t,this.getState(),this.builder.opts.onChange()}))})),M=this.rteListOptions.querySelectorAll("button[data-action]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo(),t.restoreSelection();let i=this.builder.activeCol,n=i.querySelectorAll("span");Array.prototype.forEach.call(n,(e=>{e.setAttribute("data-keep","")}));const o=e.getAttribute("data-action");if(document.execCommand(o,!1,null),i=this.builder.activeCol,n=i.querySelectorAll("span"),Array.prototype.forEach.call(n,(e=>{e.getAttribute("data-keep")||(e.outerHTML=e.innerHTML)})),Array.prototype.forEach.call(n,(e=>{e.getAttribute("data-keep")&&ab.removeAttribute(e,"data-keep")})),this.getState(),t.saveSelection(),this.builder.opts.onChange(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}}))})),M=this.rteCustomTagOptions.querySelectorAll("[data-value]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();const i=e.getAttribute("data-value");t.pasteHtmlAtCaret(i,!0),this.rteCustomTagOptions.style.display=""}))})),M=this.rteParagraphOptions.querySelectorAll("[data-block]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo(),t.restoreSelection();const i=e.getAttribute("data-block");let n=document.queryCommandValue("FormatBlock");if(n=n.toLowerCase(),"pre"===n){let e=ab.textSelection();if(e){let t=e;for(;"pre"!==t.tagName.toLowerCase();)t=t.parentNode;let n=t.cloneNode(!0).outerHTML.replace("<pre","<"+i);n=n.replace("</pre>","</"+i+">"),t.outerHTML=n;let o=this.rteParagraphOptions.querySelectorAll("[data-block]");Array.prototype.forEach.call(o,(e=>{ab.removeClass(e,"on")})),ab.addClass(this.rteParagraphOptions.querySelector('[data-block="'+i+'"]'),"on")}}else document.execCommand("formatBlock",!1,"<"+i+">");if(this.rteParagraphOptions.style.display="none",ab.removeClass(this.rteParagraphOptions,"active"),ab.addClass(this.rteParagraphOptions,"deactive"),this.getState(),t.saveSelection(),this.builder.opts.onChange(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}}))}));let O=a.querySelectorAll(".is-pop-tab-item");Array.prototype.forEach.call(O,(e=>{ab.addEventListener(e,"click",(e=>{this.builder.uo.saveForUndo(!0);let t=a.querySelectorAll(".is-pop-tab-item");Array.prototype.forEach.call(t,(e=>{ab.removeClass(e,"active")})),ab.addClass(e.target,"active"),"forecolor"===a.querySelector(".active").getAttribute("data-value")?a.setAttribute("data-command","forecolor"):a.setAttribute("data-command","backcolor")}))})),new rv({colors:this.builder.opts.colors,onPick:e=>{let i;t.restoreSelection();try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,i=3===e.nodeType?e.parentNode:e):document.selection&&(e=document.selection.createRange(),i=document.selection.createRange().parentElement())}catch(e){if(!this.builder.activeIcon)return;i=this.builder.activeIcon}this.builder.activeIcon&&(i=this.builder.activeIcon);const n=a.getAttribute("data-command");var o=ab.getSelected();if(""===o.trim())"forecolor"===n?i.style.color=e:i.style.backgroundColor=e;else if(i.innerText===o)"forecolor"===n?i.style.color=e:i.style.backgroundColor=e;else{"forecolor"===n?document.execCommand("ForeColor",!1,e):document.execCommand("BackColor",!1,e);for(var s=document.getElementsByTagName("font"),r=0,l=s.length;r<l;++r){""!==s[r].color&&"forecolor"===n&&(s[r].removeAttribute("color"),s[r].style.color=e)}}if(this.builder.isTouchSupport||t.saveSelection(),""===o.trim()&&t.restoreSelection(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}this.builder.opts.onChange()},renderOn:".rte-color-picker-area",animateModal:this.builder.opts.animateModal,elementToAnimate:this.builder.opts.container,lang:this.builder.opts.lang}),M=p.querySelectorAll(".rte-fontsize-options button"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{let i=e.getAttribute("data-value");t.restoreSelection(),this.builder.uo.saveForUndo();const n=ab.getSelection();if(!n)return;const o=n.anchorNode;let s=1;if(o){const e=o.nodeType!==Node.TEXT_NODE&&o.nodeType!==Node.COMMENT_NODE?o:o.parentElement;s=Number(window.getComputedStyle(e).getPropertyValue("font-size").match(/\d+/)[0])}if(ab.execCommand("font-size",s+1+"px",((e,t)=>{if(!e&&this.builder.activeIcon){let e=this.builder.activeIcon;this.builder.opts.fontSizeClassValues.length>0?this.applyClassFontSize(e,i):this.applyInlineFontSize(e,i)}t&&(this.builder.opts.fontSizeClassValues.length>0?this.applyClassFontSize(t,i):this.applyInlineFontSize(t,i),t.style.fontSize="")})),t.saveSelection(),this.getState(),this.builder.opts.onChange(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}}))})),M=p.querySelectorAll(".rte-lineheight-options button"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{let i=e.getAttribute("data-value");if(t.restoreSelection(),this.builder.uo.saveForUndo(),this.builder.useCssClasses){const e=ab.getSelection();if(!e)return;const t=e.anchorNode;let n,o;if(t&&(n=t.nodeType!==Node.TEXT_NODE&&t.nodeType!==Node.COMMENT_NODE?t:t.parentElement),!n)return;const s=this.builder.cssClasses.leading;if(""===i)o="";else if("+"===i||"-"===i)for(let e=0;e<Object.keys(s).length;e++){let t=Object.values(s)[e];if(ab.hasClass(n,t)){if("+"===i){if(e+1===Object.keys(s).length)return;o=Object.values(s)[e+1];break}if("-"===i){if(e-1<0)return;o=Object.values(s)[e-1];break}}}else"1"===i?o=s.leading_10:"1.2"===i?o=s.leading_12:"1.4"===i?o=s.leading_14:"1.6"===i?o=s.leading_16:"1.8"===i?o=s.leading_18:"2"===i?o=s.leading_20:"2.2"===i&&(o=s.leading_22);o||("+"===i?o=s.leading_16:"-"===i&&(o=s.leading_14)),ab.execCommandClass(o,s,!0,"block")}else{let e;try{let t;window.getSelection?(t=window.getSelection().getRangeAt(0).commonAncestorContainer,e=3===t.nodeType?t.parentNode:t):document.selection&&(t=document.selection.createRange(),e=document.selection.createRange().parentElement())}catch(t){if(!this.builder.activeIcon)return;e=this.builder.activeIcon}this.builder.activeIcon&&(e=this.builder.activeIcon);let t=e;for(;t;){if("BODY"===t.tagName||"HTML"===t.tagName)return!1;if("inline"!==window.getComputedStyle(t).getPropertyValue("display")){e=t;break}t=t.parentNode}let n,o=!1,s=e.style.lineHeight;if(s&&-1===s.indexOf("px")?s=parseFloat(s):o=!0,o){let t=Number(window.getComputedStyle(e).getPropertyValue("font-size").match(/\d+/)[0]);s=Number(window.getComputedStyle(e).getPropertyValue("line-height").match(/\d+/)[0]),t>s?s=t/s:t<s?s/=t:s=1}"+"===i?n=s+.1:"-"===i?(n=s-.1,n<.2&&(n=.2)):n=""===i?"":i,ab.doFunction(e,(function(e){"inline"!==window.getComputedStyle(e).getPropertyValue("display")&&(e.style.lineHeight=n)}),!0)}if(t.saveSelection(),this.getState(),this.builder.opts.onChange(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}}))})),M=p.querySelectorAll(".rte-letterspacing-options button"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{let i=e.getAttribute("data-value");if(t.restoreSelection(),this.builder.uo.saveForUndo(),this.builder.useCssClasses){const e=ab.getSelection();if(!e)return;const t=e.anchorNode;let n,o;if(t&&(n=t.nodeType!==Node.TEXT_NODE&&t.nodeType!==Node.COMMENT_NODE?t:t.parentElement),!n)return;const s=this.builder.cssClasses.tracking;if(""===i)o="";else if("+"===i||"-"===i)for(let e=0;e<Object.keys(s).length;e++){let t=Object.values(s)[e];if(ab.hasClass(n,t)){if("+"===i){if(e+1===Object.keys(s).length)return;o=Object.values(s)[e+1];break}if("-"===i){if(e-1<0)return;o=Object.values(s)[e-1];break}}}else"1"===i&&(o=s.tracking_025),"2"===i&&(o=s.tracking_050);o||("+"===i?o=s.tracking_025:"-"===i&&(o=s.tracking__025)),o===s.tracking_000&&(o=""),ab.execCommandClass(o,s)}else{let e;try{let t;window.getSelection?(t=window.getSelection().getRangeAt(0).commonAncestorContainer,e=3===t.nodeType?t.parentNode:t):document.selection&&(t=document.selection.createRange(),e=document.selection.createRange().parentElement())}catch(t){if(!this.builder.activeIcon)return;e=this.builder.activeIcon}this.builder.activeIcon&&(e=this.builder.activeIcon);let t,n=parseInt(window.getComputedStyle(e).getPropertyValue("letter-spacing"));isNaN(n)&&(n=0),t="+"===i?n+1+"px":"-"===i?n-1+"px":""===i?"":i+"px",ab.doFunction(e,(function(e){e.style.letterSpacing=t}),!0)}if(t.saveSelection(),this.getState(),this.builder.opts.onChange(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}}))})),document.addEventListener("click",(e=>{var t=(e=e||window.event).target||e.srcElement;if(!this.builderStuff)return;if(this.builderStuff.getAttribute("preventDevault"))return void setTimeout((()=>{this.builderStuff.removeAttribute("preventDevault")}),30);let i,n,o,s,a;"flex"===this.rteAlignOptions.style.display&&(i=ab.parentsHasClass(t,"rte-align"),n=ab.parentsHasClass(t,"rte-align-options"),i||n||(this.rteAlignOptions.style.display="",ab.removeClass(this.rteAlignOptions,"active"),ab.addClass(this.rteAlignOptions,"deactive"))),"flex"===this.rteListOptions.style.display&&(i=ab.parentsHasClass(t,"rte-list"),n=ab.parentsHasClass(t,"rte-list-options"),i||n||(this.rteListOptions.style.display="",ab.removeClass(this.rteListOptions,"active"),ab.addClass(this.rteListOptions,"deactive"))),"flex"===this.rteFormattingOptions.style.display&&(i=ab.parentsHasClass(t,"rte-formatting"),n=ab.parentsHasClass(t,"rte-formatting-options"),i||n||(this.rteFormattingOptions.style.display="",ab.removeClass(this.rteFormattingOptions,"active"),ab.addClass(this.rteFormattingOptions,"deactive"))),"flex"===this.rteColorPicker.style.display&&(i=ab.parentsHasClass(t,"rte-color"),n=ab.parentsHasClass(t,"rte-color-picker"),o=ab.parentsHasClass(t,"pickcolormore"),i||n||o||(this.rteColorPicker.style.display="",ab.removeClass(this.rteColorPicker,"active"),ab.addClass(this.rteColorPicker,"deactive"))),"flex"===this.rteFontFamilyOptions.style.display&&(i=ab.parentsHasClass(t,"rte-fontfamily"),n=ab.parentsHasClass(t,"rte-fontfamily-options"),i||n||(this.rteFontFamilyOptions.style.display="",ab.removeClass(this.rteFontFamilyOptions,"active"),ab.addClass(this.rteFontFamilyOptions,"deactive"))),"flex"===this.rteIconOptions.style.display&&(i=ab.parentsHasClass(t,"rte-icon"),n=ab.parentsHasClass(t,"rte-icon-options"),o=!1,t.tagName&&(o="i"===t.tagName.toLowerCase()&&""===t.innerHTML),i||n||o||(this.rteIconOptions.style.display="",ab.removeClass(this.rteIconOptions,"active"),ab.addClass(this.rteIconOptions,"deactive"))),"flex"===this.rteCustomTagOptions.style.display&&(i=ab.parentsHasClass(t,"rte-tags"),n=ab.parentsHasClass(t,"rte-customtag-options"),i||n||(this.rteCustomTagOptions.style.display="",ab.removeClass(this.rteCustomTagOptions,"active"),ab.addClass(this.rteCustomTagOptions,"deactive"))),"flex"===this.rteParagraphOptions.style.display&&(i=ab.parentsHasClass(t,"rte-paragraph"),n=ab.parentsHasClass(t,"rte-paragraph-options"),i||n||(this.rteParagraphOptions.style.display="",ab.removeClass(this.rteParagraphOptions,"active"),ab.addClass(this.rteParagraphOptions,"deactive"))),"flex"===this.rteTextSettingOptions.style.display&&(i=ab.parentsHasClass(t,"rte-textsettings"),n=ab.parentsHasClass(t,"rte-textsetting-options"),i||n||(this.rteTextSettingOptions.style.display="",ab.removeClass(this.rteTextSettingOptions,"active"),ab.addClass(this.rteTextSettingOptions,"deactive"))),"flex"===this.rteZoomOptions.style.display&&(i=ab.parentsHasClass(t,"rte-zoom"),n=ab.parentsHasClass(t,"rte-zoom-options"),i||n||(this.rteZoomOptions.style.display="",ab.removeClass(this.rteZoomOptions,"active"),ab.addClass(this.rteZoomOptions,"deactive"))),"flex"===this.rteMoreOptions.style.display&&(i=ab.parentsHasClass(t,"rte-more"),n=ab.parentsHasClass(t,"rte-more-options"),o=ab.parentsHasClass(t,"is-rte-pop"),s=ab.parentsHasClass(t,"is-modal"),a=!1,t.tagName&&(a="i"===t.tagName.toLowerCase()&&""===t.innerHTML&&ab.parentsHasClass(w,"rte-more-options")),i||n||o||s||a||(this.rteMoreOptions.style.display="",ab.removeClass(this.rteMoreOptions,"active"),ab.addClass(this.rteMoreOptions,"deactive"))),"flex"===this.elementRteMoreOptions.style.display&&(i=ab.parentsHasClass(t,"rte-more"),n=ab.parentsHasClass(t,"elementrte-more-options"),o=ab.parentsHasClass(t,"is-rte-pop"),s=ab.parentsHasClass(t,"is-modal"),a=!1,i||n||o||s||a||(this.elementRteMoreOptions.style.display="",ab.removeClass(this.elementRteMoreOptions,"active"),ab.addClass(this.elementRteMoreOptions,"deactive")))}))}viewSnippets(){const e=new Zo(this.builder);let t=this.builderStuff.querySelector(".snippets");this.util.showModal(t,!1,null,!1);var i=t.querySelector("iframe").contentWindow.document;""===i.body.innerHTML&&(i.open(),i.write(e.getSnippetsHtml()),i.close())}openIcon(e){let t=e.target;const i=this.rteIconOptions,n=t.getBoundingClientRect().top,o=t.getBoundingClientRect().left;i.style.display="flex";const s=i.offsetWidth,a=i.offsetHeight;if(ab.hasClass(i,"active"))ab.removeClass(i,"active"),ab.addClass(i,"deactive");else{if("left"===this.builder.opts.toolbar)i.style.top=n-a/2+20+"px",i.style.left=o+54+"px",i.style.right="auto";else if("right"===this.builder.opts.toolbar){i.style.top=n-a/2+20+"px",i.style.left="auto";const e=window.innerWidth;i.style.right=e-o+9+"px"}else i.style.top=n+54-6+"px",i.style.left=o-s/2+23+"px",i.style.right="auto",t.getBoundingClientRect().left+45-parseInt(this.rteTool.style.left)<i.offsetWidth?i.style.left=parseInt(this.rteTool.style.left)+"px":parseInt(this.rteTool.style.left)+this.rteTool.offsetWidth-t.getBoundingClientRect().left+45<i.offsetWidth&&(i.style.left=parseInt(this.rteTool.style.left)+this.rteTool.offsetWidth-s+"px");if(ab.parentsHasClass(t,"rte-more-options"))if("left"===this.builder.opts.toolbar)i.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-a+"px",i.style.left=o+54+"px",i.style.right="auto";else if("right"===this.builder.opts.toolbar){i.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-a+"px",i.style.left="auto";const e=window.innerWidth;i.style.right=e-o+9+"px"}else i.style.top=n+54-6+"px",t.getBoundingClientRect().left+45-parseInt(this.rteMoreOptions.style.left)<i.offsetWidth?i.style.left=parseInt(this.rteMoreOptions.style.left)+"px":parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-t.getBoundingClientRect().left+45<i.offsetWidth&&(i.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-s+"px"),ab.hasClass(this.builder.inspectedElement,"icon")&&(i.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-s+"px"),i.style.right="auto";ab.removeClass(i,"deactive"),ab.addClass(i,"active")}}showRteMore(){const e=this.rteMoreOptions;ab.hasClass(e,"active")?(ab.removeClass(e,"active"),ab.addClass(e,"deactive")):(this.positionRteMore(),ab.removeClass(e,"deactive"),ab.addClass(e,"active"))}positionRteMore(){let e,t;this.rteTool.querySelectorAll("button.rte-more").forEach((i=>{i.getBoundingClientRect().top>0&&(e=i.getBoundingClientRect().top,t=i.getBoundingClientRect().left)}));const i=this.rteMoreOptions;i.style.display="flex";const n=i.offsetWidth,o=i.offsetHeight;if("left"===this.builder.opts.toolbar)i.style.top=parseFloat(this.rteTool.style.top)+this.rteTool.offsetHeight-o+"px",i.style.left=t+54+"px",i.style.right="auto";else if("right"===this.builder.opts.toolbar){i.style.top=parseFloat(this.rteTool.style.top)+this.rteTool.offsetHeight-o+"px",i.style.left="auto";const e=window.innerWidth;i.style.right=e-t+9+"px"}else{const t=0;i.style.top=e+54-6+"px",i.style.left=parseFloat(this.rteTool.style.left)+this.rteTool.offsetWidth-n+t+"px",i.style.right="auto"}}showElementRteMore(){const e=this.elementRteMoreOptions;ab.hasClass(e,"active")?(ab.removeClass(e,"active"),ab.addClass(e,"deactive")):(this.positionElementRteMore(),ab.removeClass(e,"deactive"),ab.addClass(e,"active"))}positionElementRteMore(){const e=this.elementRteTool.querySelector("button.rte-more"),t=this.elementRteMoreOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if("left"===this.builder.opts.toolbar)t.style.top=parseFloat(this.elementRteTool.style.top)+this.elementRteTool.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseFloat(this.elementRteTool.style.top)+this.elementRteTool.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else{const e=0;t.style.top=i+54-6+"px",t.style.left=parseFloat(this.elementRteTool.style.left)+this.elementRteTool.offsetWidth-o+e+"px",t.style.right="auto"}}applyInlineFontSize(e,t){let i,n=Number(window.getComputedStyle(e).getPropertyValue("font-size").match(/\d+/)[0]);i="+"===t?n+1+"px":"-"===t?n-1+"px":""===t?"":t+"px",ab.doFunction(e,(function(e){e.style.fontSize=i}),!0)}applyClassFontSize(e,t){let i=Number(window.getComputedStyle(e).getPropertyValue("font-size").match(/\d+/)[0]),n="";n="+"===t||"-"===t||""===t?t:"size-"+t;const o=this.builder.opts.fontSizeClassValues;for(var s="",a=0;a<=o.length-1;a++)if(ab.hasClass(e,"size-"+o[a])){s="size-"+o[a];let t=o[a];ab.doFunction(e,(e=>{ab.removeClass(e,"size-"+t)}),!0)}else{let t=o[a];ab.doFunction(e,(e=>{ab.removeClass(e,"size-"+t)}),!0)}if(""===s&&("+"===n||"-"===n))for(a=0;a<=o.length-1;a++)i>=o[a]&i<o[a+1]&&(s="size-"+o[a]);if("+"===n){a=1*s.replace("size-","");var r=o.indexOf(a);r<o.length-1&&(s="size-"+o[r+1]),ab.doFunction(e,(function(e){ab.addClass(e,s)}),!0)}else"-"===n?(a=1*s.replace("size-",""),(r=o.indexOf(a))>=1&&(s="size-"+o[r-1]),ab.doFunction(e,(function(e){ab.addClass(e,s)}),!0)):""===n||ab.doFunction(e,(function(e){ab.addClass(e,n)}),!0);ab.doFunction(e,(function(e){e.style.fontSize=""}),!0),ab.cleanClassSize(e,n)}click(e){let t=this.builder.inspectedElement;this.rteTool.style.display="none",this.elementRteTool.style.display="none";let i=!1;e.hasAttribute("data-noedit")&&(i=!0);let n=!1;e.hasAttribute("data-protected")&&(n=!0);let o=!1,s=!1;if(e.hasAttribute("data-html")&&(o=!0,ab.parentsHasAttribute(t,"data-subblock")&&(s=!0)),this.rteTool.querySelector(".rte-for-text").style.display="flex",this.rteTool.querySelector(".rte-for-icon").style.display="none",this.rteMoreOptions.querySelector(".rte-for-text").style.display="flex",this.rteMoreOptions.querySelector(".rte-for-icon").style.display="none",!o&&!i&&!n||s){if(("img"===t.tagName.toLowerCase()||ab.hasClass(t,"is-social")||ab.hasClass(t,"is-rounded-button-medium")||ab.hasClass(t,"cell-active"))&&!ab.getSelected()){if("none"===this.elementRteTool.style.display||""===this.elementRteTool.style.display){this.elementRteTool.style.display="flex",this.rteTool.style.display="none";let e=this.elementRteTool.querySelectorAll("button[data-align]");Array.prototype.forEach.call(e,(e=>{e.style.display=""})),e=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(e,(e=>{e.style.display=""})),this.positionToolbar()}}else if(ab.hasClass(t,"spacer")||"video"===t.tagName.toLowerCase()||ab.hasClass(t,"ovl")||e.getAttribute("data-html")){if("none"===this.elementRteTool.style.display||""===this.elementRteTool.style.display){this.elementRteTool.style.display="flex",this.rteTool.style.display="none";let e=this.elementRteTool.querySelectorAll("button[data-align]");Array.prototype.forEach.call(e,(e=>{e.style.display="none"})),e=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(e,(e=>{e.style.display="none"})),this.positionToolbar()}}else if(ab.hasClass(t,"icon"))"none"!==this.rteTool.style.display&&""!==this.rteTool.style.display||(this.rteTool.style.display="flex",this.elementRteTool.style.display="none",this.rteTool.querySelector(".rte-for-text").style.display="none",this.rteTool.querySelector(".rte-for-icon").style.display="flex",this.rteMoreOptions.querySelector(".rte-for-text").style.display="none",this.rteMoreOptions.querySelector(".rte-for-icon").style.display="flex",this.positionToolbar());else if(ab.textSelection())"none"!==this.rteTool.style.display&&""!==this.rteTool.style.display||(this.rteTool.style.display="flex",this.elementRteTool.style.display="none",this.positionToolbar());else if("none"===this.elementRteTool.style.display||""===this.elementRteTool.style.display){this.elementRteTool.style.display="flex",this.rteTool.style.display="none";let e=this.elementRteTool.querySelectorAll("button[data-align]");Array.prototype.forEach.call(e,(e=>{e.style.display=""})),e=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(e,(e=>{e.style.display=""})),this.positionToolbar()}}else if("none"===this.elementRteTool.style.display||""===this.elementRteTool.style.display){this.elementRteTool.style.display="flex",this.rteTool.style.display="none";let e=this.elementRteTool.querySelectorAll("button[data-align]");Array.prototype.forEach.call(e,(e=>{e.style.display="none"})),e=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(e,(e=>{e.style.display="none"})),this.positionToolbar()}this.util.saveSelection(),this.getState()}getState(){document.queryCommandState("bold")?ab.addClass(this.rteTool.querySelector("button[data-command=bold]"),"on"):ab.removeClass(this.rteTool.querySelector("button[data-command=bold]"),"on"),document.queryCommandState("italic")?ab.addClass(this.rteTool.querySelector("button[data-command=italic]"),"on"):ab.removeClass(this.rteTool.querySelector("button[data-command=italic]"),"on"),document.queryCommandState("underline")?ab.addClass(this.rteTool.querySelector("button[data-command=underline]"),"on"):ab.removeClass(this.rteTool.querySelector("button[data-command=underline]"),"on"),document.queryCommandState("strikethrough")?ab.addClass(this.rteFormattingOptions.querySelector("[data-command=strikethrough]"),"on"):ab.removeClass(this.rteFormattingOptions.querySelector("[data-command=strikethrough]"),"on"),document.queryCommandState("superscript")?ab.addClass(this.rteFormattingOptions.querySelector("[data-command=superscript]"),"on"):ab.removeClass(this.rteFormattingOptions.querySelector("[data-command=superscript]"),"on"),document.queryCommandState("subscript")?ab.addClass(this.rteFormattingOptions.querySelector("[data-command=subscript]"),"on"):ab.removeClass(this.rteFormattingOptions.querySelector("[data-command=subscript]"),"on");let e=ab.textSelection();if(!e)return;"uppercase"===e.style.textTransform?ab.addClass(this.rteFormattingOptions.querySelector("[data-command=uppercase]"),"on"):ab.removeClass(this.rteFormattingOptions.querySelector("[data-command=uppercase]"),"on"),document.queryCommandState("JustifyFull")?ab.addClass(this.rteAlignOptions.querySelector("[data-align=justify]"),"on"):ab.removeClass(this.rteAlignOptions.querySelector("[data-align=justify]"),"on"),document.queryCommandState("JustifyLeft")?ab.addClass(this.rteAlignOptions.querySelector("[data-align=left]"),"on"):ab.removeClass(this.rteAlignOptions.querySelector("[data-align=left]"),"on"),document.queryCommandState("JustifyRight")?ab.addClass(this.rteAlignOptions.querySelector("[data-align=right]"),"on"):ab.removeClass(this.rteAlignOptions.querySelector("[data-align=right]"),"on"),document.queryCommandState("JustifyCenter")?ab.addClass(this.rteAlignOptions.querySelector("[data-align=center]"),"on"):ab.removeClass(this.rteAlignOptions.querySelector("[data-align=center]"),"on");var t=document.queryCommandValue("FontName").split(",")[0];t=(t=(t=(t=t.replace(/"/g,"")).replace(/'/g,"")).replace(/&quot;/g,"")).trim().toLowerCase();let i=this.rteTool.querySelector("button.rte-fontfamily");if(i=i||this.rteMoreOptions.querySelector("button.rte-fontfamily"),i){const e=this.rteFontFamilyOptions.querySelector("iframe");let i=e.contentDocument||e.contentWindow.document;i&&[].forEach.call(i.querySelectorAll("#divFontList > div"),(function(e){var i=e.getAttribute("data-font-family");(i=(i=(i=i.split(",")[0]).replace(/'/g,"")).trim().toLowerCase())===t&&""!==i?ab.addClass(e,"on"):ab.removeClass(e,"on")}))}let n=this.rteParagraphOptions.querySelectorAll("[data-block]");Array.prototype.forEach.call(n,(e=>{ab.removeClass(e,"on")}));var o=document.queryCommandValue("FormatBlock");"normal"===(o=o.toLowerCase())&&(o="p"),"heading 1"===o&&(o="h1"),"heading 2"===o&&(o="h2"),"heading 3"===o&&(o="h3"),"heading 4"===o&&(o="h4"),"formatted"===o&&(o="pre"),"p"!==o&&"h1"!==o&&"h2"!==o&&"h3"!==o&&"h4"!==o&&"pre"!==o||ab.addClass(this.rteParagraphOptions.querySelector('[data-block="'+o+'"]'),"on")}getIconsStyle(){return`\n html, body {height:100%}\n body {overflow:hidden;margin:0;\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n font-size:100%; \n line-height:1.7;\n }\n #divIcons {display:flex;flex-direction:row;flex-wrap:wrap;margin:0;padding:9px 11px 9px 9px;height:100%;overflow-y:scroll !important;box-sizing:border-box;}\n #divIcons > div {width:40px;height:37px;line-height:37px;font-size:14px;cursor:pointer;overflow:hidden;text-align:center;position:relative;} \n // #divIcons > div:hover {background:#f5f5f5;}\n\n #divIcons {\n background: ${this.builder.styleToolBackground};\n }\n #divIcons > div {\n color: ${this.builder.styleButtonColor};\n }\n #divIcons > div svg {\n fill: ${this.builder.styleButtonSvgFill};\n }\n #divIcons > div:hover {\n background: ${this.builder.styleButtonBackgroundHover};\n }\n\n .dark #divIcons > div {\n opacity: 0.93;\n }\n\n /* Scrollbar for toolbar/RTE, not modal */\n\n .dark * {\n scrollbar-width: thin;\n scrollbar-color: rgba(255, 255, 255, 0.3) auto;\n }\n .dark *::-webkit-scrollbar {\n width: 12px;\n }\n .dark *::-webkit-scrollbar-track {\n background: transparent;\n }\n .dark *::-webkit-scrollbar-thumb {\n background-color:rgba(255, 255, 255, 0.3);\n } \n\n .colored-dark * {\n scrollbar-width: thin;\n scrollbar-color: rgb(100, 100, 100) auto;\n }\n .colored-dark *::-webkit-scrollbar {\n width: 12px;\n }\n .colored-dark *::-webkit-scrollbar-track {\n background: transparent;\n }\n .colored-dark *::-webkit-scrollbar-thumb {\n background-color:rgb(100, 100, 100);\n } \n\n .colored * {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.4) auto;\n }\n .colored *::-webkit-scrollbar {\n width: 12px;\n }\n .colored *::-webkit-scrollbar-track {\n background: transparent;\n }\n .colored *::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.4);\n } \n\n .light * {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.4) auto;\n }\n .light *::-webkit-scrollbar {\n width: 12px;\n }\n .light *::-webkit-scrollbar-track {\n background: transparent;\n }\n .light *::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.4);\n }`}refreshIconsStyle(){this.builder.rte.rteIconOptions.querySelector("iframe").contentWindow.document.querySelector("#mainstyle").innerHTML=this.getIconsStyle()}getIcons(){return'\n <div role="button" tabindex="0"><i class="icon ion-alert"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-alert-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-add"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-add-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-alarm-clock"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-alert"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-apps"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-archive"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-back"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-down"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropdown"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropdown-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropleft"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropleft-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropright"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropright-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropup"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropup-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-forward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-up"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-attach"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-bar"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-bicycle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-boat"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-bookmark"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-bulb"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-bus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-calendar"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-call"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-camera"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cancel"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-car"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cart"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-chat"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-checkbox"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-checkbox-blank"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-checkbox-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-checkbox-outline-blank"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-checkmark-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-clipboard"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-close"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cloud"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cloud-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cloud-done"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cloud-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-color-palette"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-compass"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-contact"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-contacts"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-contract"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-create"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-delete"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-desktop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-document"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-done"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-done-all"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-download"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-drafts"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-exit"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-expand"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-favorite"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-favorite-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-film"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-folder"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-folder-open"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-funnel"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-globe"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-hand"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-hangout"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-happy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-home"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-image"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-laptop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-list"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-locate"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-lock"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-mail"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-map"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-menu"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-microphone"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-microphone-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-more-horizontal"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-more-vertical"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-navigate"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-notifications"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-notifications-none"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-notifications-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-open"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-options"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-people"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-person"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-person-add"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-phone-landscape"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-phone-portrait"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-pin"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-plane"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-playstore"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-print"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-radio-button-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-radio-button-on"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-refresh"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-remove"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-remove-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-restaurant"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-sad"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-search"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-send"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-settings"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-share"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-share-alt"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-star"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-star-half"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-star-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-stopwatch"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-subway"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-sunny"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-sync"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-textsms"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-time"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-train"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-unlock"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-upload"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-volume-down"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-volume-mute"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-volume-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-volume-up"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-walk"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-warning"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-watch"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-wifi"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-aperture"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-archive"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-down-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-down-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-down-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-expand"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-graph-down-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-graph-down-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-graph-up-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-graph-up-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-left-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-left-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-left-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-move"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-resize"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-return-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-return-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-right-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-right-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-right-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-shrink"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-swap"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-up-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-up-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-up-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-asterisk"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-at"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-backspace"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-backspace-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-battery-charging"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-battery-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-battery-full"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-battery-half"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-battery-low"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-beaker"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-beer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bluetooth"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bonfire"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bookmark"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bowtie"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-briefcase"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bug"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-calculator"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-calendar"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-camera"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-card"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-cash"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatbox"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatbox-working"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatboxes"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatbubble"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatbubble-working"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatbubbles"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-checkmark"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-checkmark-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-checkmark-round"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chevron-down"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chevron-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chevron-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chevron-up"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-clipboard"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-clock"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-close"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-close-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-close-round"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-closed-captioning"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-cloud"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-code"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-code-download"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-code-working"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-coffee"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-compass"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-compose"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-connection-bars"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-contrast"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-crop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-cube"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-disc"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-document"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-document-text"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-drag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-earth"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-easel"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-edit"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-egg"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-eject"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-email"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-email-unread"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-erlenmeyer-flask"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-erlenmeyer-flask-bubbles"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-eye"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-eye-disabled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-female"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-filing"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-film-marker"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-fireball"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-flag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-flame"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-flash"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-flash-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-folder"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-fork"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-fork-repo"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-forward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-funnel"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-gear-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-gear-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-grid"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-hammer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-happy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-happy-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-headphone"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-heart"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-heart-broken"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-help"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-help-buoy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-help-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-home"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-icecream"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-image"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-images"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-information"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-information-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ionic"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-alarm"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-alarm-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-albums"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-albums-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-americanfootball"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-americanfootball-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-analytics"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-analytics-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-back"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-down"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-forward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-thin-down"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-thin-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-thin-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-thin-up"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-up"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-at"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-at-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-barcode"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-barcode-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-baseball"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-baseball-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-basketball"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-basketball-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bell"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bell-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-body"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-body-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bolt"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bolt-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-book"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-book-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bookmarks"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bookmarks-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-box"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-box-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-briefcase"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-briefcase-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-browsers"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-browsers-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-calculator"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-calculator-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-calendar"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-calendar-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-camera"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-camera-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cart"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cart-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-chatboxes"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-chatboxes-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-chatbubble"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-chatbubble-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-checkmark"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-checkmark-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-checkmark-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-circle-filled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-circle-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-clock"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-clock-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-close"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-close-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-close-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud-download"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud-download-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud-upload"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud-upload-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloudy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloudy-night"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloudy-night-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloudy-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cog"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cog-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-color-filter"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-color-filter-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-color-wand"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-color-wand-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-compose"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-compose-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-contact"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-contact-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-copy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-copy-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-crop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-crop-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-download"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-download-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-drag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-email"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-email-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-eye"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-eye-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-fastforward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-fastforward-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-filing"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-filing-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-film"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-film-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flag-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flame"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flame-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flask"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flask-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flower"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flower-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-folder"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-folder-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-football"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-football-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-game-controller-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-game-controller-a-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-game-controller-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-game-controller-b-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-gear"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-gear-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-glasses"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-glasses-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-grid-view"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-grid-view-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-heart"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-heart-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-help"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-help-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-help-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-home"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-home-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-infinite"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-infinite-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-information"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-information-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-information-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-ionic-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-keypad"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-keypad-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-lightbulb"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-lightbulb-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-list"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-list-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-location"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-location-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-locked"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-locked-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-loop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-loop-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-medical"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-medical-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-medkit"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-medkit-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-mic"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-mic-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-mic-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-minus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-minus-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-minus-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-monitor"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-monitor-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-moon"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-moon-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-more"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-more-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-musical-note"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-musical-notes"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-navigate"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-navigate-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-nutrition"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-nutrition-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paper"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paper-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paperplane"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paperplane-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-partlysunny"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-partlysunny-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pause"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pause-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paw"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paw-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-people"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-people-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-person"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-person-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-personadd"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-personadd-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-photos"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-photos-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pie"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pie-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pint"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pint-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-play"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-play-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-plus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-plus-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-plus-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pricetag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pricetag-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pricetags"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pricetags-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-printer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-printer-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pulse"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pulse-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rainy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rainy-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-recording"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-recording-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-redo"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-redo-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-refresh"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-refresh-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-refresh-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-reload"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-reverse-camera"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-reverse-camera-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rewind"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rewind-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rose"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rose-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-search"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-search-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-settings"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-settings-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-shuffle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-shuffle-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-skipbackward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-skipbackward-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-skipforward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-skipforward-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-snowy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-speedometer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-speedometer-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-star"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-star-half"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-star-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-stopwatch"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-stopwatch-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-sunny"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-sunny-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-telephone"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-telephone-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-tennisball"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-tennisball-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-thunderstorm"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-thunderstorm-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-time"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-time-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-timer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-timer-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-toggle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-toggle-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-trash"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-trash-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-undo"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-undo-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-unlocked"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-unlocked-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-upload"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-upload-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-videocam"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-videocam-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-volume-high"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-volume-low"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-wineglass"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-wineglass-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-world"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-world-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ipad"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-iphone"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ipod"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-jet"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-key"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-knife"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-laptop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-leaf"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-levels"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-lightbulb"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-link"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-load-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-load-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-load-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-load-d"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-location"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-lock-combination"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-locked"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-log-in"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-log-out"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-loop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-magnet"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-male"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-man"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-map"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-medkit"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-merge"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-mic-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-mic-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-mic-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-minus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-minus-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-minus-round"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-model-s"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-monitor"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-more"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-mouse"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-music-note"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-navicon"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-navicon-round"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-navigate"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-network"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-no-smoking"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-nuclear"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-outlet"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-paintbrush"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-paintbucket"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-paper-airplane"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-paperclip"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pause"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-person"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-person-add"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-person-stalker"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pie-graph"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pin"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pinpoint"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pizza"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-plane"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-planet"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-play"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-playstation"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-plus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-plus-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-plus-round"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-podium"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pound"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-power"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pricetag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pricetags"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-printer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pull-request"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-qr-scanner"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-quote"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-radio-waves"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-record"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-refresh"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-reply"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-reply-all"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ribbon-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ribbon-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-sad"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-sad-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-scissors"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-search"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-settings"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-share"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-shuffle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-skip-backward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-skip-forward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-android"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-android-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-angular"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-angular-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-apple"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-apple-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-bitcoin"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-bitcoin-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-buffer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-buffer-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-chrome"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-chrome-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-codepen"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-codepen-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-css3"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-css3-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-designernews"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-designernews-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-dribbble"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-dribbble-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-dropbox"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-dropbox-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-euro"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-euro-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-facebook"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-facebook-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-foursquare"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-foursquare-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-freebsd-devil"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-github"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-github-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-google"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-google-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-googleplus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-googleplus-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-hackernews"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-hackernews-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-html5"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-html5-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-instagram"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-instagram-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-javascript"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-javascript-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-linkedin"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-linkedin-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-markdown"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-nodejs"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-octocat"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-pinterest"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-pinterest-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-python"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-reddit"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-reddit-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-rss"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-rss-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-sass"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-skype"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-skype-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-snapchat"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-snapchat-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-tumblr"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-tumblr-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-tux"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-twitch"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-twitch-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-twitter"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-twitter-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-usd"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-usd-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-vimeo"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-vimeo-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-whatsapp"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-whatsapp-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-windows"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-windows-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-wordpress"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-wordpress-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-yahoo"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-yahoo-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-yen"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-yen-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-youtube"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-youtube-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-soup-can"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-soup-can-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-speakerphone"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-speedometer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-spoon"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-star"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-stats-bars"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-steam"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-stop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-thermometer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-thumbsdown"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-thumbsup"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-toggle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-toggle-filled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-transgender"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-trash-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-trash-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-trophy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-tshirt"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-tshirt-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-umbrella"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-university"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-unlocked"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-upload"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-usb"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-videocamera"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-volume-high"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-volume-low"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-volume-medium"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-volume-mute"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-wand"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-waterdrop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-wifi"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-wineglass"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-woman"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-wrench"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-xbox"> </i></div> \n '}getIconsHTML(){return`\n <!DOCTYPE HTML>\n <html>\n <head>\n <meta charset="utf-8">\n <title>Fonts</title>\n <meta name="viewport" content="width=device-width, initial-scale=1">\n <meta name="description" content=""> \n <link href="${this.builder.assetPath+"ionicons/"}css/ionicons.min.css" rel="stylesheet" type="text/css" />\n <style id="mainstyle">\n html, body {height:100%}\n body {overflow:hidden;margin:0;\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n font-size:100%; \n line-height:1.7;\n }\n #divIcons {display:flex;flex-direction:row;flex-wrap:wrap;margin:0;padding:9px 11px 9px 9px;height:100%;overflow-y:scroll !important;box-sizing:border-box;}\n #divIcons > div {width:40px;height:37px;line-height:37px;font-size:14px;cursor:pointer;overflow:hidden;text-align:center;position:relative;} \n // #divIcons > div:hover {background:#f5f5f5;}\n\n #divIcons {\n background: ${this.builder.styleToolBackground};\n }\n #divIcons > div {\n color: ${this.builder.styleButtonColor};\n }\n #divIcons > div svg {\n fill: ${this.builder.styleButtonSvgFill};\n }\n #divIcons > div:hover {\n background: ${this.builder.styleButtonBackgroundHover};\n }\n\n .dark #divIcons > div {\n opacity: 0.93;\n }\n\n /* Scrollbar for toolbar/RTE, not modal */\n\n .dark * {\n scrollbar-width: thin;\n scrollbar-color: rgba(255, 255, 255, 0.3) auto;\n }\n .dark *::-webkit-scrollbar {\n width: 12px;\n }\n .dark *::-webkit-scrollbar-track {\n background: transparent;\n }\n .dark *::-webkit-scrollbar-thumb {\n background-color:rgba(255, 255, 255, 0.3);\n } \n\n .colored-dark * {\n scrollbar-width: thin;\n scrollbar-color: rgb(100, 100, 100) auto;\n }\n .colored-dark *::-webkit-scrollbar {\n width: 12px;\n }\n .colored-dark *::-webkit-scrollbar-track {\n background: transparent;\n }\n .colored-dark *::-webkit-scrollbar-thumb {\n background-color:rgb(100, 100, 100);\n } \n\n .colored * {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.4) auto;\n }\n .colored *::-webkit-scrollbar {\n width: 12px;\n }\n .colored *::-webkit-scrollbar-track {\n background: transparent;\n }\n .colored *::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.4);\n } \n\n .light * {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.4) auto;\n }\n .light *::-webkit-scrollbar {\n width: 12px;\n }\n .light *::-webkit-scrollbar-track {\n background: transparent;\n }\n .light *::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.4);\n } \n </style>\n </head>\n <body${this.builder.styleDark?' class="dark"':""}${this.builder.styleColored?' class="colored"':""}${this.builder.styleColoredDark?' class="colored-dark"':""}${this.builder.styleLight?' class="light"':""}>\n\n <div id="divIcons">\n ${this.getIcons()}\n </div>\n\n <script type="text/javascript">\n var elms = document.querySelectorAll('#divIcons > div');\n for(var i=0;i<elms.length;i++) {\n elms[i].addEventListener('click', function(e){\n\n var elm = e.target;\n if(!elm.className) elm = elm.childNodes[0];\n parent._cb.addIcon(elm.className)\n\n });\n }\n <\/script>\n\n </body>\n </html>\n \n \n `}addIcon(e){if(this.util.restoreSelection(),this.builder.activeIcon){this.builder.uo.saveForUndo();const n=this.builder.opts.fontSizeClassValues;for(var t="",i=0;i<=n.length-1;i++)ab.hasClass(this.builder.activeIcon,"size-"+n[i])&&(t="size-"+n[i]);this.builder.activeIcon.className=e+(""!==t?" "+t:""),ab.addClass(this.builder.activeIcon,"icon-active"),ab.selectElementContents(this.builder.activeIcon),this.util.saveSelection()}else{if(!ab.textSelection())return;this.builder.uo.saveForUndo(),this.util.pasteHtmlAtCaret('<i class="'+e+' icon-active"></i>',!0),this.builder.activeIcon=document.querySelector(".icon-active"),ab.selectElementContents(this.builder.activeIcon),this.util.saveSelection()}this.builder.opts.onChange(),this.builder.opts.onRender()}clearFont(){this.builder.uo.saveForUndo(),this.applyFont("","","")}applyFont(e,t,i){let n;var o=this.builderStuff.querySelector(".is-side.elementstyles");if(ab.hasClass(o,"active"))this.builder.uo.saveForUndo(),n=this.builder.inspectedElement,n.style.fontFamily=e,this.builderStuff.querySelector("#inpElmFontFamily").value=e,this.elementStyleEditor.refresh();else{try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,n=3===e.nodeType?e.parentNode:e,"H1"!==n.tagName&&"H2"!==n.tagName&&"H3"!==n.tagName&&"H4"!==n.tagName&&"H5"!==n.tagName&&"H6"!==n.tagName&&"P"!==n.tagName&&(n=n.parentNode)):document.selection&&(e=document.selection.createRange(),n=document.selection.createRange().parentElement(),"H1"!==n.tagName&&"H2"!==n.tagName&&"H3"!==n.tagName&&"H4"!==n.tagName&&"H5"!==n.tagName&&"H6"!==n.tagName&&"P"!==n.tagName&&(n=n.parentElement()))}catch(e){return}this.builder.uo.saveForUndo();var s=ab.getSelected();if(""!==s.trim()&&n.innerText!==s){document.execCommand("fontName",!1,e);for(var a=document.getElementsByTagName("font"),r=0,l=a.length;r<l;++r)a[r].face===e&&(a[r].removeAttribute("face"),a[r].style.fontFamily=e,ab.selectElementContents(a[r]))}else""!==s.trim()&&n.innerText,n.style.fontFamily=e}var d=t;d=d?":"+d:"";var c=e.split(",")[0];if("google"===i){var u=!1,p=document.getElementsByTagName("link");for(r=0;r<p.length;r++){var h=p[r].href.toLowerCase();-1!==(h=h.replace(/\+/g," ").replace(/%20/g," ")).indexOf(c.toLowerCase())&&(u=!0)}if(!u){for(var g=n;!ab.hasClass(g,"is-builder");)g=g.parentNode;ab.appendHtml(g,'<link href="//fonts.googleapis.com/css?family='+c+d+'" rel="stylesheet" property="stylesheet" type="text/css">')}}if(!this.builder.inspectedElement){if(this.util.saveSelection(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}this.getState()}for(this.builder.opts.onChange(),setTimeout((()=>{this.builder.opts.onChange()}),300),p=document.getElementsByTagName("link"),r=0;r<p.length;r++){if(-1!==(h=p[r].href.toLowerCase()).indexOf("googleapis"))if(-1!==(c=(h=h.replace(/\+/g," ").replace(/%20/g," ")).substr(h.indexOf("family=")+7)).indexOf(":")&&(c=c.split(":")[0]),-1!==c.indexOf("|")&&(c=c.split("|")[0]),document.body.innerHTML.toLowerCase().split(c).length<3)p[r].getAttribute("data-protect")||p[r].setAttribute("data-rel","_del")}[].forEach.call(document.querySelectorAll('link[data-rel="_del"]'),(function(e){e.parentNode.removeChild(e)}))}setFont(e,t,i,n){let o;var s=this.builderStuff.querySelector(".is-side.elementstyles");if(ab.hasClass(s,"active"))this.builder.uo.saveForUndo(),o=this.builder.inspectedElement,o.style.fontFamily=e,this.builderStuff.querySelector("#inpElmFontFamily").value=e,this.elementStyleEditor.refresh();else{this.builder.isIE&&this.util.restoreSelection();try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,o=3===e.nodeType?e.parentNode:e,"H1"!==o.tagName&&"H2"!==o.tagName&&"H3"!==o.tagName&&"H4"!==o.tagName&&"H5"!==o.tagName&&"H6"!==o.tagName&&"P"!==o.tagName&&(o=o.parentNode)):document.selection&&(e=document.selection.createRange(),o=document.selection.createRange().parentElement(),"H1"!==o.tagName&&"H2"!==o.tagName&&"H3"!==o.tagName&&"H4"!==o.tagName&&"H5"!==o.tagName&&"H6"!==o.tagName&&"P"!==o.tagName&&(o=o.parentElement()))}catch(e){return}this.builder.uo.saveForUndo();var a=ab.getSelected();if(""!==a.trim()&&o.innerText!==a){document.execCommand("fontName",!1,e);for(var r=document.getElementsByTagName("font"),l=0,d=r.length;l<d;++l)r[l].face.replace(/'/g,"")===e.replace(/'/g,"")&&(r[l].removeAttribute("face"),r[l].style.fontFamily=e,ab.selectElementContents(r[l]));for(l=0,d=(r=document.querySelectorAll("[face]")).length;l<d;++l){let e=r[l].getAttribute("face");if(-1!==e.indexOf(",")){var c=e.split(",")[0],u=e.split(",")[1];-1!==c.indexOf(" ")&&(e=`'${c}',${u}`)}r[l].style.fontFamily=e,r[l].removeAttribute("face")}}else if(""!==a.trim()&&o.innerText===a){o.style.fontFamily=e;let t=o.querySelectorAll("*");Array.prototype.forEach.call(t,(e=>{""!==e.style.fontFamily&&(e.style.fontFamily="")}))}else o.style.fontFamily=e}var p=t;p=p?":"+p:"";var h="";i&&(h="&display=swap");var g=e.split(",")[0];if(g=g.replace(/'/g,""),"google"===n){var f=!1,m=document.getElementsByTagName("link");for(l=0;l<m.length;l++){var v=m[l].href.toLowerCase();-1!==(v=v.replace(/\+/g," ").replace(/%20/g," ")).indexOf(g.toLowerCase())&&(f=!0)}if(!f){for(var b=o;!ab.hasClass(b,"is-builder");)b=b.parentNode;ab.appendHtml(b,'<link href="//fonts.googleapis.com/css?family='+g+h+p+'" rel="stylesheet" property="stylesheet" type="text/css">')}}if(!this.builder.inspectedElement){if(this.util.saveSelection(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}this.getState()}for(this.builder.opts.onChange(),m=document.getElementsByTagName("link"),l=0;l<m.length;l++)if(-1!==(v=m[l].href.toLowerCase()).indexOf("googleapis")){if(-1!==(g=(v=v.replace(/\+/g," ").replace(/%20/g," ")).substr(v.indexOf("family=")+7)).indexOf(":")&&(g=g.split(":")[0]),-1!==g.indexOf("|")&&(g=g.split("|")[0]),g=g.replace("&display=swap",""),document.body.innerHTML.toLowerCase().split(g).length<3)m[l].getAttribute("data-protect")||m[l].setAttribute("data-rel","_del")}[].forEach.call(document.querySelectorAll('link[data-rel="_del"]'),(function(e){e.parentNode.removeChild(e)}))}positionToolbar(){const e=window.innerWidth,t=window.innerHeight;if("left"===this.builder.opts.toolbar||"right"===this.builder.opts.toolbar){let e=this.rteTool.offsetHeight,i=t/2-e/2;this.rteTool.style.left="",this.rteTool.style.top=i+"px",e=this.elementRteTool.offsetHeight,i=t/2-e/2,this.elementRteTool.style.left="",this.elementRteTool.style.top=i+"px"}else{let t=this.rteTool.offsetWidth,i=e/2-t/2;this.rteTool.style.top="",this.rteTool.style.left=i+"px",t=this.elementRteTool.offsetWidth,i=e/2-t/2,this.elementRteTool.style.top="",this.elementRteTool.style.left=i+"px"}}viewZoom(){this.builder.onZoomOpen&&this.builder.onZoomOpen(),this.inpZoomSlider.value=100*this.builder.opts.zoom;const e=this.builderStuff.querySelector(".viewzoom");this.util.showModal(e,!1,null,!1)}}const lb=new ni;class db{constructor(e={}){this.opts=Object.assign(this,{page:"",container:".container",handler:"saveimage.php",onComplete:function(){},customval:"",stuffPlacement:"#_cbhtml",hiquality:!1},e),this.count=0;let t=document.querySelector(this.opts.stuffPlacement);t||(t=document.createElement("div"),t.id="_cbhtml",t.className="is-ui",lb.appendChild(document.body,t)),this.builderStuff=t}save(){if(""!==this.opts.page){let e=document.querySelector(this.opts.page);this.uploadImages(e)}else{let e=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(e,(e=>{this.uploadImages(e)}))}var e=setInterval((()=>{let t=!0;if(""!==this.opts.page){let e=document.querySelector(this.opts.page);t=this.checkImages(e)}else{let e=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(e,(e=>{!1===this.checkImages(e)&&(t=!1)}))}t&&(this.opts.onComplete(),window.clearInterval(e))}),2e3)}checkImages(e){const t=e.querySelectorAll("img");let i=!0;return Array.prototype.forEach.call(t,(e=>{let t=e.getAttribute("src");void 0!==t&&!1!==t&&-1!==t.indexOf("base64")&&(i=!1)})),i}uploadImages(e){if(!e)return;const t=e.querySelectorAll("img");Array.prototype.forEach.call(t,(e=>{let t=e.getAttribute("src");if(void 0!==t&&!1!==t&&-1!==t.indexOf("base64"))if(this.opts.onBase64Upload){let i=t;i=i.replace(/^data:image\/(png|jpeg);base64,/,"");let n=e.getAttribute("data-filename");this.opts.onBase64Upload(e,i,n)}else{this.count++;let o=t;if(o=o.replace(/^data:image\/(png|jpeg);base64,/,""),!this.builderStuff.querySelector("#form-"+this.count)){var i='<form id="form-'+this.count+'" target="frame-'+this.count+'" method="post" enctype="multipart/form-data"><input id="hidimg-'+this.count+'" name="hidimg-'+this.count+'" type="hidden" /><input id="hidname-'+this.count+'" name="hidname-'+this.count+'" type="hidden" /><input id="hidtype-'+this.count+'" name="hidtype-'+this.count+'" type="hidden" /><input id="hidcustomval-'+this.count+'" name="hidcustomval-'+this.count+'" type="hidden" /><input name="count" value="'+this.count+'" type="hidden" /><iframe id="frame-'+this.count+'" name="frame-'+this.count+'" style="width:1px;height:1px;border:none;position:absolute;z-index:-100000;left:-5px;"></iframe></form>';this.builderStuff.insertAdjacentHTML("beforeend",i)}e.setAttribute("id","img-"+this.count),this.builderStuff.querySelector("#hidimg-"+this.count).value=o,this.builderStuff.querySelector("#hidcustomval-"+this.count).value=this.customval;let s=e.getAttribute("data-filename");if(s){let e=s.substr(0,s.lastIndexOf("."))||s;e=e.toLowerCase().replace(/ /g,"-"),this.builderStuff.querySelector("#hidname-"+this.count).value=e}if(this.opts.hiquality)this.builderStuff.querySelector("#hidtype-"+this.count).value="png";else{var n=s.substr(s.lastIndexOf(".")+1);n=n.toLowerCase(),this.builderStuff.querySelector("#hidtype-"+this.count).value="jpg"===n||"jpeg"===n?"jpg":"png"}this.builderStuff.querySelector("#form-"+this.count).setAttribute("action",this.opts.handler+(this.opts.handler.indexOf("?")>=0?"&":"?")+"count="+this.count),this.builderStuff.querySelector("#form-"+this.count).submit()}}))}}const cb=new ni;class ub{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector(".is-tooltip");if(!n){let e='<div class="is-tooltip"></div>';cb.appendHtml(i,e),n=i.querySelector(".is-tooltip")}this.tooltip=n}setAll(e){let t;t=e||this.builderStuff;let i=t.querySelectorAll("[data-title]");Array.prototype.forEach.call(i,(e=>{this.set(e,0,0)}))}set(e,t,i){t||(t=0),i||(i=0);let n=this.tooltip;e.addEventListener("mouseover",(function(o){var s=o.relatedTarget;if(this===s||pb(this,s))return;e=this;let a=window.getComputedStyle(e.parentNode).getPropertyValue("flex-direction"),r=e.getAttribute("data-title");n.innerHTML=r;const l=e.getBoundingClientRect().top+window.pageYOffset,d=e.getBoundingClientRect().left+window.pageXOffset;n.style.display="flex",n.style.whiteSpace="nowrap";const c=e.offsetWidth,u=e.offsetHeight;n.style.marginRight="";const p=window.innerWidth;if(n.style.top=l+u+5+t+"px",u<30&&(n.style.top=l+u+2+t+"px"),"column"===a)n.style.top=l+u/2-n.offsetHeight/2+t+"px",n.style.left=d+c+3+i+"px",p-(d+c)<100&&(n.style.left=d-n.offsetWidth-3+i+"px");else{let e=d+c/2-n.offsetWidth/2+i;n.style.left=e+"px";let t=e+n.offsetWidth;if(t>p){let i=t-p;n.style.left=e-i-3+"px",n.offsetHeight>25&&(n.style.marginRight="5px")}e<0&&(n.style.left="3px")}e.hasAttribute("data-tooltip-top")&&(n.style.top=l-n.offsetHeight-3+"px"),e.removeAttribute("title")}),!1),e.addEventListener("mouseout",(function(t){var i=t.relatedTarget;this===i||pb(this,i)||((e=this).setAttribute("title",e.getAttribute("data-title")),n.style.display="none")}),!1),e.addEventListener("click",(function(t){var i=t.relatedTarget;this===i||pb(this,i)||((e=this).setAttribute("title",e.getAttribute("data-title")),n.style.display="none")}),!1)}}function pb(e,t){if(e===t)return!1;for(;t&&t!==e;)t=t.parentNode;return t===e}const hb=new ni;class gb{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=`\n <div class="is-lightbox lightbox-externalvideo">\n <button class="cmd-lightbox-close" title="${t.out("Close")}" type="button" style="flex:none;position:absolute;top:0;right:0;background:none;z-index:1;">\n <svg><use xlink:href="#icon-close"></use></svg>\n </button>\n <div class="lightbox-content" style="width:100%;">\n <div class="embed-responsive embed-responsive-16by9" style="width:100%;">\n <iframe width="560" height="315" src="about:blank" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>\n </div>\n </div>\n </div>\n <div class="is-lightbox lightbox-video light">\n <button class="cmd-lightbox-close" title="${t.out("Close")}" type="button" style="flex:none;position:absolute;top:0;right:0;background:none;z-index:1;">\n <svg><use xlink:href="#icon-close"></use></svg>\n </button>\n <div class="lightbox-content" style="width:100%;"></div>\n </div>\n <div class="is-lightbox lightbox-image light">\n <button class="cmd-lightbox-close" title="${t.out("Close")}" type="button" style="flex:none;position:absolute;top:0;right:0;background:none;z-index:1;">\n <svg><use xlink:href="#icon-close"></use></svg>\n </button>\n <div class="lightbox-content" style="width:100%;"></div>\n </div>\n <svg width="0" height="0" style="position:absolute;display:none;">\n <defs>\n <symbol viewBox="0 0 24 24" id="icon-close" stroke-width="0.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n <path stroke="none" d="M0 0h24v24H0z" fill="none"></path><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>\n </symbol>\n </defs>\n </svg>\n `;hb.appendHtml(this.builderStuff,n);this.builderStuff.querySelectorAll("div.is-lightbox").forEach((e=>{e.addEventListener("click",(t=>{if(hb.parentsHasClass(t.target,"lightbox-content"))return;hb.removeClass(e,"active");e.querySelector(".cmd-lightbox-close").style.opacity=0,document.body.style.overflowY="",setTimeout((()=>{let t=e.querySelector("iframe");t&&t.setAttribute("src","about:blank"),e.style.display="",this.builder.preserveSelection=!1}),300)}))}))}openImage(e,t,i){this.builder.preserveSelection=!0;let n=this.builderStuff.querySelector("div.is-lightbox.lightbox-image");window.frameElement&&!n&&(n=parent.document.querySelector(".is-lightbox.lightbox-image"));const o=n.querySelector(".cmd-lightbox-close");o.style.opacity=0,i&&(n.style.backgroundColor=i);n.querySelector(".lightbox-content").innerHTML="<img src="+e+">","light"===t?(hb.addClass(n,"light"),hb.removeClass(n,"dark")):(hb.addClass(n,"dark"),hb.removeClass(n,"light")),n.style.display="flex",window.frameElement||(document.body.style.overflowY="hidden"),setTimeout((()=>{hb.addClass(n,"active"),setTimeout((()=>{o.style.opacity=1}),450)}),10)}openVideo(e,t,i){this.builder.preserveSelection=!0;let n=document.querySelector(".is-lightbox.lightbox-video");window.frameElement&&!n&&(n=parent.document.querySelector(".is-lightbox.lightbox-video"));const o=n.querySelector(".cmd-lightbox-close");o.style.opacity=0,i&&(n.style.backgroundColor=i);n.querySelector(".lightbox-content").innerHTML='<video class="is-video-bg" playsinline controls autoplay width="100%"><source src="'+e+'" type="video/mp4"></video>',"light"===t?(hb.addClass(n,"light"),hb.removeClass(n,"dark")):(hb.addClass(n,"dark"),hb.removeClass(n,"light")),n.style.display="flex",window.frameElement||(document.body.style.overflowY="hidden"),setTimeout((()=>{hb.addClass(n,"active"),setTimeout((()=>{o.style.opacity=1}),450)}),10)}openExternalVideo(e,t,i){this.builder.preserveSelection=!0;let n=document.querySelector(".is-lightbox.lightbox-externalvideo");window.frameElement&&!n&&(n=parent.document.querySelector(".is-lightbox.lightbox-externalvideo"));const o=n.querySelector(".cmd-lightbox-close");o.style.opacity=0,i&&(n.style.backgroundColor=i),"light"===t?(hb.addClass(n,"light"),hb.removeClass(n,"dark")):(hb.addClass(n,"dark"),hb.removeClass(n,"light"));const s=n.querySelector("iframe");""!==(e=this.getIframeVideoUrl(e))&&s.setAttribute("src",e),n.style.display="flex",window.frameElement||(document.body.style.overflowY="hidden");const a=n.querySelector(".lightbox-content");a.style.width=16*a.offsetHeight/9+"px",setTimeout((()=>{hb.addClass(n,"active"),setTimeout((()=>{o.style.opacity=1}),450)}),10)}getIframeVideoUrl(e){let t=e.match(/^.*(?:https?:)?(?:\/\/)?(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube(?:-nocookie)?\.com\/\S*?[^\w\s-])((?!videoseries)[\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/),i=/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/)|(video\/))?([0-9]+)\/?/.exec(e);if((null!==t||null!==i)&&-1===e.indexOf("player.vimeo.com")&&-1===e.indexOf("youtube.com/embed/")){if(null!==t){e="https://www.youtube.com/embed/"+t[1]+"?rel=0&autoplay=1&color=white"}if(null!==i&&i.length>=7){e="https://player.vimeo.com/video/"+i[6]}}return e}}const fb=new ni;class mb{constructor(){let e=document.querySelectorAll(".is-tabs a");Array.prototype.forEach.call(e,(e=>{fb.addEventListener(e,"click",(t=>{const i=e.getAttribute("data-menu");if(i)return document.querySelector("#"+i).style.display="block",t.preventDefault(),!1;if(fb.hasClass(e,"active"))return t.preventDefault(),!1;const n=e.getAttribute("data-content");if(!n)return t.preventDefault(),!1;const o=e.parentNode.getAttribute("data-group");let s=document.querySelectorAll('.is-tabs[data-group="'+o+'"] > a');Array.prototype.forEach.call(s,(e=>{fb.removeClass(e,"active")})),s=document.querySelectorAll('.is-tabs-more[data-group="'+o+'"] > a'),Array.prototype.forEach.call(s,(e=>{fb.removeClass(e,"active")})),fb.addClass(e,"active");let a=document.querySelectorAll('.is-tab-content[data-group="'+o+'"]');return Array.prototype.forEach.call(a,(e=>{e.style.display="none"})),document.querySelector("#"+n).style.display="flex",document.querySelector(".is-tabs-more").style.display="none",t.preventDefault(),!1}))})),e=document.querySelectorAll(".is-tabs-more a"),Array.prototype.forEach.call(e,(e=>{fb.addEventListener(e,"click",(t=>{if(fb.hasClass(e,"active"))return t.preventDefault(),!1;const i=e.getAttribute("data-content");if(!i)return t.preventDefault(),!1;const n=e.parentNode.getAttribute("data-group");let o=document.querySelectorAll('.is-tabs[data-group="'+n+'"] > a');Array.prototype.forEach.call(o,(e=>{fb.removeClass(e,"active")})),o=document.querySelectorAll('.is-tabs-more[data-group="'+n+'"] > a'),Array.prototype.forEach.call(o,(e=>{fb.removeClass(e,"active")})),fb.addClass(e,"active");const s=document.querySelectorAll('.is-tab-content[data-group="'+n+'"]');return Array.prototype.forEach.call(s,(e=>{e.style.display="none"})),document.querySelector("#"+i)&&(document.querySelector("#"+i).style.display="flex"),document.querySelector(".is-tabs-more")&&(document.querySelector(".is-tabs-more").style.display="none"),t.preventDefault(),!1}))}));let t=!1;document.addEventListener("mousedown",(e=>{var i=(e=e||window.event).target||e.srcElement;let n=document.querySelectorAll(".is-tabs-more");if(Array.prototype.forEach.call(n,(e=>{"block"===e.style.display&&(t=!0)})),t){let e=fb.parentsHasAttribute(i,"data-menu"),t=fb.parentsHasClass(i,"is-tabs-more");e||t||document.querySelector(".is-tabs-more")&&(document.querySelector(".is-tabs-more").style.display="none")}})),document.addEventListener("click",(e=>{var i=(e=e||window.event).target||e.srcElement;if(t){let e=fb.parentsHasAttribute(i,"data-menu"),t=fb.parentsHasClass(i,"is-tabs-more");e||t||document.querySelector(".is-tabs-more")&&(document.querySelector(".is-tabs-more").style.display="none")}}))}}const vb=new ni;class bb{constructor(e={}){if(this.opts=Object.assign(this,{page:"",container:".container",row:"",cols:[],colequal:[],colsizes:[],imageQuality:.92,elementSelection:!0,paste:"text",snippetJSON:{snippets:[]},scriptPath:"",plugins:[],pluginPath:"contentbuilder/",disableConfig:!1,modulePath:"assets/modules/",assetPath:"assets/",fontAssetPath:"assets/fonts/",snippetData:"assets/minimalist-blocks/snippetlist.html",snippetUrl:"assets/minimalist-blocks/content.js",snippetPath:"assets/minimalist-blocks/",snippetPathReplace:[],snippetCategories:[[120,"Basic"],[118,"Article"],[101,"Headline"],[119,"Buttons"],[102,"Photos"],[103,"Profile"],[116,"Contact"],[104,"Products"],[105,"Features"],[106,"Process"],[107,"Pricing"],[108,"Skills"],[109,"Achievements"],[110,"Quotes"],[111,"Partners"],[112,"As Featured On"],[113,"Page Not Found"],[114,"Coming Soon"],[115,"Help, FAQ"]],defaultSnippetCategory:120,snippetHandle:!0,sidePanel:"right",snippetList:"#divSnippetList",onRender:function(){},onChange:function(){},largerImageHandler:"",mediaHandler:"",videoHandler:"",colors:["#ff8f00","#ef6c00","#d84315","#c62828","#58362f","#37474f","#353535","#f9a825","#9e9d24","#558b2f","#ad1457","#6a1b9a","#4527a0","#616161","#00b8c9","#009666","#2e7d32","#0277bd","#1565c0","#283593","#9e9e9e"],builderMode:"",rowTool:"right",rowcolOutline:!0,columnTool:!0,outlineMode:"",toolStyle:"",outlineStyle:"",snippetAddTool:!0,elementTool:!0,elementHighlight:!0,columnHtmlEditor:!0,rowHtmlEditor:!0,htmlSyntaxHighlighting:!0,snippetOpen:!1,toolbar:"top",toolbarDisplay:"auto",snippetsSidebarDisplay:"auto",imageEmbed:!0,imageselect:"",fileselect:"",imageSelect:"",fileSelect:"",videoSelect:"",assetRefresh:!1,customTags:[],buttons:["bold","italic","underline","formatting","color","align","textsettings","createLink","tags","|","undo","redo","zoom","more"],buttonsMore:["icon","image","|","list","font","formatPara","|","html","preferences"],elementButtons:["left","center","right","full","undo","redo","zoom","more"],elementButtonsMore:["|","html","preferences"],iconButtons:["icon","color","textsettings","createLink","|","undo","redo","zoom","more"],iconButtonsMore:["|","html","preferences"],lang:[],checkLang:!1,clearPreferences:!1,toolbarAddSnippetButton:!1,animateModal:!0,defaultFontSizes:[16,17,18,19,24,32,48,76,96,120,200,300],fontSizeClassValues:[12,14,15,16,17,18,19,21,24,28,32,35,38,42,46,48,50,54,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,348,352,356,360,364,368,372,376,380,384,388,392,396,400],gradientcolors:[["linear-gradient(0deg, rgb(255, 57, 25), rgb(249, 168, 37))"],["linear-gradient(0deg, rgb(255, 57, 25), rgb(255, 104, 15))"],["linear-gradient(0deg, #FF5722, #FF9800)"],["linear-gradient(0deg, #613ca2, rgb(110, 123, 217))"],["linear-gradient(0deg, rgb(65, 70, 206), rgb(236, 78, 130))"],["linear-gradient(0deg, rgb(0, 150, 102), rgb(90, 103, 197))"],["linear-gradient(30deg, rgb(249, 119, 148), rgb(98, 58, 162))"],["linear-gradient(0deg, rgb(223, 70, 137), rgb(90, 103, 197))"],["linear-gradient(0deg, rgb(40, 53, 147), rgb(90, 103, 197))"],["linear-gradient(0deg, rgb(21, 101, 192), rgb(52, 169, 239))"],["linear-gradient(0deg, rgb(32, 149, 219), rgb(139, 109, 230))"],["linear-gradient(0deg, rgb(90, 103, 197), rgb(0, 184, 201))"],["linear-gradient(0deg, rgb(0, 184, 201), rgb(253, 187, 45))"],["linear-gradient(0deg, rgb(255, 208, 100), rgb(239, 98, 159))"],["linear-gradient(0deg, rgb(0, 214, 223), rgb(130, 162, 253))"],["linear-gradient(0deg, rgb(50, 234, 251), rgb(248, 247, 126))"],["linear-gradient(0deg, rgb(141, 221, 255), rgb(255, 227, 255))"],["linear-gradient(0deg, rgb(255, 170, 170), rgb(255, 255, 200))"],["linear-gradient(0deg, rgb(239, 239, 239), rgb(252, 252, 252))"]],elementEditor:!0,customval:"",moduleConfig:[],elementAnimate:!1,framework:"",cellFormat:"",rowFormat:"",emailMode:!1,absolutePath:!1,emailSnippetCategories:[[1,"Logo"],[14,"Call to Action"],[2,"Title"],[3,"Title, Subtitle"],[4,"Info, Title"],[7,"Paragraph"],[6,"Heading"],[8,"Buttons"],[9,"Callouts"],[10,"Images + Caption"],[12,"Images"],[13,"List"],[15,"Pricing"],[16,"Quotes"],[17,"Profile"],[18,"Contact Info"],[19,"Footer"],[20,"Separator"]],defaultEmailSnippetCategory:14,undoRedoStyles:!1,maxEmbedImageWidth:1600,zoom:1,useLightbox:!1,imageRenameOnEdit:!0,disableAutoEmbedVideo:!1,colHeight:[300,350,400,450,500,550,600,650,700],cssClasses:{fontWeight:{thin:"font-thin",extralight:"font-extralight",light:"font-light",normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold",extrabold:"font-extrabold",black:"font-black",defaultBold:"font-semibold",defaultNormal:"font-light"},fontStyle:{italic:"italic",normal:"not-italic"},textDecoration:{underline:"underline",linethrough:"line-through",normal:"no-underline"},textTransform:{uppercase:"uppercase",lowercase:"lowercase",capitalize:"capitalize",normal:"normal-case"},tracking:{tracking__100:"tracking--100",tracking__075:"tracking--75",tracking__050:"tracking-tighter",tracking__025:"tracking-tight",tracking_000:"tracking-normal",tracking_025:"tracking-wide",tracking_050:"tracking-wider",tracking_075:"tracking-75",tracking_100:"tracking-widest",tracking_125:"tracking-125",tracking_150:"tracking-150",tracking_175:"tracking-175",tracking_200:"tracking-200",tracking_225:"tracking-225",tracking_250:"tracking-250",tracking_275:"tracking-275",tracking_300:"tracking-300",tracking_325:"tracking-325",tracking_350:"tracking-350",tracking_375:"tracking-375",tracking_400:"tracking-400",tracking_425:"tracking-425",tracking_450:"tracking-450",tracking_475:"tracking-475",tracking_500:"tracking-500"},leading:{leading_5:"leading-05",leading_6:"leading-06",leading_7:"leading-07",leading_8:"leading-08",leading_9:"leading-09",leading_10:"leading-none",leading_11:"leading-11",leading_12:"leading-12",leading_125:"leading-tight",leading_13:"leading-13",leading_1375:"leading-snug",leading_14:"leading-14",leading_15:"leading-normal",leading_16:"leading-16",leading_1625:"leading-relaxed",leading_17:"leading-17",leading_18:"leading-18",leading_19:"leading-19",leading_20:"leading-loose",leading_21:"leading-21",leading_22:"leading-22",leading_23:"leading-23",leading_24:"leading-24",leading_25:"leading-25",leading_26:"leading-26",leading_27:"leading-27",leading_28:"leading-28",leading_29:"leading-29",leading_30:"leading-30"},opacity:{opacity_0:"opacity-0",opacity_2:"opacity-2",opacity_4:"opacity-4",opacity_5:"opacity-5",opacity_6:"opacity-6",opacity_8:"opacity-8",opacity_10:"opacity-10",opacity_12:"opacity-12",opacity_15:"opacity-15",opacity_20:"opacity-20",opacity_25:"opacity-25",opacity_30:"opacity-30",opacity_35:"opacity-35",opacity_40:"opacity-40",opacity_45:"opacity-45",opacity_50:"opacity-50",opacity_55:"opacity-55",opacity_60:"opacity-60",opacity_65:"opacity-65",opacity_70:"opacity-70",opacity_75:"opacity-75",opacity_80:"opacity-80",opacity_85:"opacity-85",opacity_90:"opacity-90",opacity_95:"opacity-95",opacity_100:"opacity-100"},padding:{all:{p_0:"p-0",p_1:"p-1",p_2:"p-2",p_3:"p-3",p_4:"p-4",p_5:"p-5",p_6:"p-6",p_7:"p-7",p_8:"p-8",p_9:"p-9",p_10:"p-10",p_11:"p-11",p_12:"p-12",p_14:"p-14",p_16:"p-16",p_20:"p-20"},x:{px_0:"px-0",px_1:"px-1",px_2:"px-2",px_3:"px-3",px_4:"px-4",px_5:"px-5",px_6:"px-6",px_7:"px-7",px_8:"px-8",px_9:"px-9",px_10:"px-10",px_11:"px-11",px_12:"px-12",px_14:"px-14",px_16:"px-16",px_20:"px-20"},y:{py_0:"py-0",py_1:"py-1",py_2:"py-2",py_3:"py-3",py_4:"py-4",py_5:"py-5",py_6:"py-6",py_7:"py-7",py_8:"py-8",py_9:"py-9",py_10:"py-10",py_11:"py-11",py_12:"py-12",py_14:"py-14",py_16:"py-16",py_20:"py-20"},top:{pt_0:"pt-0",pt_1:"pt-1",pt_2:"pt-2",pt_3:"pt-3",pt_4:"pt-4",pt_5:"pt-5",pt_6:"pt-6",pt_7:"pt-7",pt_8:"pt-8",pt_9:"pt-9",pt_10:"pt-10",pt_11:"pt-11",pt_12:"pt-12",pt_14:"pt-14",pt_16:"pt-16",pt_20:"pt-20"},right:{pr_0:"pr-0",pr_1:"pr-1",pr_2:"pr-2",pr_3:"pr-3",pr_4:"pr-4",pr_5:"pr-5",pr_6:"pr-6",pr_7:"pr-7",pr_8:"pr-8",pr_9:"pr-9",pr_10:"pr-10",pr_11:"pr-11",pr_12:"pr-12",pr_14:"pr-14",pr_16:"pr-16",pr_20:"pr-20"},bottom:{pb_0:"pb-0",pb_1:"pb-1",pb_2:"pb-2",pb_3:"pb-3",pb_4:"pb-4",pb_5:"pb-5",pb_6:"pb-6",pb_7:"pb-7",pb_8:"pb-8",pb_9:"pb-9",pb_10:"pb-10",pb_11:"pb-11",pb_12:"pb-12",pb_14:"pb-14",pb_16:"pb-16",pb_20:"pb-20"},left:{pl_0:"pl-0",pl_1:"pl-1",pl_2:"pl-2",pl_3:"pl-3",pl_4:"pl-4",pl_5:"pl-5",pl_6:"pl-6",pl_7:"pl-7",pl_8:"pl-8",pl_9:"pl-9",pl_10:"pl-10",pl_11:"pl-11",pl_12:"pl-12",pl_14:"pl-14",pl_16:"pl-16",pl_20:"pl-20"}},extend:{superscript:"sup",subscript:"sub"},textAlign:{left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"},display:{flex:"flex",block:"block",inline:"inline",inline_block:"inline-block"},flexDirection:{row:"flex-row",column:"flex-col",row_reverse:"flex-row-reverse",column_reverse:"flex-col-reverse"},flexWrap:{wrap:"flex-wrap",nowrap:"flex-nowrap",wrap_reverse:"flex-wrap-reverse"},justifyContent:{start:"justify-start",end:"justify-end",center:"justify-center",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},alignItems:{start:"items-start",end:"items-end",center:"items-center",baseline:"items-baseline",stretch:"items-stretch"}},useCssClasses:!0,useButtonPlugin:!1},e),window.data_basic&&(this.opts.snippetJSON=window.data_basic,""===this.opts.snippetPath&&(this.opts.snippetPath=window._snippets_path)),this.opts.snippetDisplay&&("auto"===this.opts.snippetDisplay?this.opts.snippetsSidebarDisplay="auto":this.opts.snippetsSidebarDisplay="always"),""===this.opts.scriptPath&&(this.opts.scriptPath=this.currentScriptPath()),window._txt&&(this.opts.lang=window._txt),this.settings=this.opts,""!==this.opts.imageSelect?this.opts.imageselect=this.opts.imageSelect:""!==this.opts.imageselect&&(this.opts.imageSelect=this.opts.imageselect),""!==this.opts.fileSelect?this.opts.fileselect=this.opts.fileSelect:""!==this.opts.fileselect&&(this.opts.fileSelect=this.opts.fileselect),""!==this.opts.videoSelect?this.opts.videoselect=this.opts.videoSelect:""!==this.opts.videoselect&&(this.opts.videoSelect=this.opts.videoselect),""!==this.opts.largerImageHandler?this.opts.mediaHandler=this.opts.largerImageHandler:""!==this.opts.mediaHandler&&(this.opts.largerImageHandler=this.opts.mediaHandler),this.opts.onLargerImageUpload?this.opts.onMediaUpload=this.opts.onLargerImageUpload:this.opts.onMediaUpload&&(this.opts.onLargerImageUpload=this.opts.onMediaUpload),this.opts.emailMode&&(this.useButtonPlugin=!0),!this.useButtonPlugin){let e=this.plugins.filter((e=>"buttoneditor"!==e.name));this.plugins=[...e]}"bootstrap"===this.opts.framework?(this.opts.row="row",this.opts.cols=["col-md-1","col-md-2","col-md-3","col-md-4","col-md-5","col-md-6","col-md-7","col-md-8","col-md-9","col-md-10","col-md-11","col-md-12"],this.opts.colequal=[],this.opts.colsizes=[]):"tailwind"===this.opts.framework?(this.opts.row="flex flex-col md:flex-row",this.opts.cols=["w-full md:w-1/12 px-4","w-full md:w-2/12 px-4","w-full md:w-3/12 px-4","w-full md:w-4/12 px-4","w-full md:w-5/12 px-4","w-full md:w-6/12 px-4","w-full md:w-7/12 px-4","w-full md:w-8/12 px-4","w-full md:w-9/12 px-4","w-full md:w-10/12 px-4","w-full md:w-11/12 px-4","w-full px-4"],this.opts.colequal=[],this.opts.colsizes=[]):"foundation"===this.opts.framework?(this.opts.row="row",this.opts.cols=["large-1 columns","large-2 columns","large-3 columns","large-4 columns","large-5 columns","large-6 columns","large-7 columns","large-8 columns","large-9 columns","large-10 columns","large-11 columns","large-12 columns"],this.opts.colequal=[],this.opts.colsizes=[]):"material"===this.opts.framework?(this.opts.row="mdl-grid",this.opts.cols=["mdl-cell mdl-cell--1-col","mdl-cell mdl-cell--2-col","mdl-cell mdl-cell--3-col","mdl-cell mdl-cell--4-col","mdl-cell mdl-cell--5-col","mdl-cell mdl-cell--6-col","mdl-cell mdl-cell--7-col","mdl-cell mdl-cell--8-col","mdl-cell mdl-cell--9-col","mdl-cell mdl-cell--10-col","mdl-cell mdl-cell--11-col","mdl-cell mdl-cell--12-col"],this.opts.colequal=[],this.opts.colsizes=[]):"uikit"===this.opts.framework?(this.opts.row="",this.opts.cols=[],this.opts.colequal=[],this.opts.colsizes=[],this.opts.cellFormat='<div class="uk-width-1-1"></div>',this.opts.rowFormat='<div class="uk-grid"></div>'):""!==this.opts.row&&this.opts.cols.length>0||""===this.opts.cellFormat&&""===this.opts.rowFormat&&(this.opts.row="row clearfix",this.opts.cols=["column sixth","column fifth","column fourth","column third","column half","column two-third","column two-fourth","column two-fifth","column two-sixth","column full"],this.opts.colequal=[["column sixth","column sixth","column sixth","column sixth","column sixth","column sixth"],["column fifth","column fifth","column fifth","column fifth","column fifth"],["column fourth","column fourth","column fourth","column fourth"],["column third","column third","column third"],["column half","column half"]],this.opts.colsizes=[[["column third","column third","column third"],["column half","column fourth","column fourth"]],[["column sixth","column two-sixth"],["column fifth","column two-fifth"],["column fourth","column two-fourth"],["column third","column two-third"],["column half","column half"],["column two-third","column third"],["column two-fourth","column fourth"],["column two-fifth","column fifth"],["column two-sixth","column sixth"]]]),this.sortableObjects=[];const t=new ii(this);this.util=t,this.isTouchSupport=t.isTouchSupport(),this.isIE=t.detectIE(),this.opts.clearPreferences&&t.clearPreferences(),this.uoTm=null,this.uo=new Vo(this),this.dom=vb,this.cbDom=vb,this.autoclean=!1,this.filesAdded="",this.opts.emailMode&&this.applyStyle("emailmode",".is-builder > div {display: block}");let i=document.querySelector("#_cbhtml");i||(i=vb.createElement("div"),i.id="_cbhtml",i.className="is-ui",vb.appendChild(document.body,i)),this.builderStuff=i,Ko(),this.preferences=new nb(this),(e=>{const t=e.util,i=e.builderStuff,n=new ts(e),o=new Wo(e);let s="";e.opts.rowHtmlEditor&&(s=`<button title="${t.out("HTML")}" class="row-html">\n <svg class="is-icon-flex" style="margin-right:-3px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-right"></use></svg>\n </button>`);let a="";e.opts.columnHtmlEditor&&(a=`<button title="${t.out("HTML")}" class="cell-html">\n <svg class="is-icon-flex" style="margin-right:-3px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-right"></use></svg>\n </button>`);const r=`<div class="is-modal is-modal-content grideditor">\n <div class="is-modal-bar is-draggable">\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n <div style="padding:13px 0 5px 18px;font-size:10px;text-transform:uppercase;letter-spacing:1px;">${t.out("Row")}</div>\n <div style="display:flex;flex-flow:wrap;">\n <button title="${t.out("Add")}" class="row-add"><svg class="is-icon-flex" style="width:19px;height:19px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n <button title="${t.out("Duplicate")}" class="row-duplicate" style="display: block;"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>\n <button title="${t.out("Move Up")}" class="row-up" style="display: block;"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></button>\n <button title="${t.out("Move Down")}" class="row-down" style="display: block;"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></button>\n ${s}\n <button title="${t.out("Delete")}" class="row-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n <div style="padding:8px 0 5px 18px;font-size:11px;text-transform:uppercase;letter-spacing:1px;">${t.out("Column")}</div>\n <div style="display:flex;flex-flow:wrap;">\n <button title="${t.out("Add")}" class="cell-add"><svg class="is-icon-flex" style="width:19px;height:19px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n <button title="${t.out("Duplicate")}" class="cell-duplicate"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>\n <button title="${t.out("Move Up")}" class="cell-up"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></button>\n <button title="${t.out("Move Down")}" class="cell-down"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></button>\n <button title="${t.out("Move Left")}" class="cell-prev"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-left"></use></svg></button>\n <button title="${t.out("Move Right")}" class="cell-next"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-right"></use></svg></button>\n <button title="${t.out("Increase")}" class="cell-increase"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-increase"></use></svg></button>\n <button title="${t.out("Decrease")}" class="cell-decrease"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-decrease"></use></svg></button>\n ${a}\n <button title="${t.out("Delete")}" class="cell-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n <button title="${t.out("Lock")}" class="cell-locking"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#icon-lock"></use></svg></button>\n <button title="${t.out("Column Settings")}" class="cell-settings"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></button>\n \n <div class="is-separator">\n <button title="${t.out("Outline")}" class="grid-outline"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-grid-view-outline"></use></svg></button>\n \x3c!--<button title="${t.out("Element Tool")}" class="cell-elmtool"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></button>--\x3e\n </div>\n </div>\n </div>`;hs.appendHtml(i,r),new ps({selector:".is-draggable"});const l=document.querySelector(".grideditor");document.addEventListener("click",(e=>{var t=(e=e||window.event).target||e.srcElement;if(hs.hasClass(l,"active")){let e=hs.parentsHasClass(t,"is-builder"),i=hs.parentsHasClass(t,"grideditor"),n=hs.parentsHasClass(t,"is-modal"),o=hs.parentsHasClass(t,"is-pop"),s=hs.parentsHasClass(t,"rte-grideditor")||hs.hasClass(t,"rte-grideditor");if(e||i||n||o||s)return void(l.style.display="");l.style.display="none"}}),!1);let d=l.querySelector(".is-modal-close");hs.addEventListener(d,"click",(()=>{hs.removeClass(l,"active");const t=document.querySelectorAll(e.opts.container);Array.prototype.forEach.call(t,(e=>{e.removeAttribute("grideditor")}))}));const c=l.querySelector(".grid-outline");hs.addEventListener(c,"click",(()=>{const t=document.querySelectorAll(e.opts.container);Array.prototype.forEach.call(t,(e=>{e.hasAttribute("gridoutline")?(e.removeAttribute("gridoutline"),hs.removeClass(c,"on")):(e.setAttribute("gridoutline",""),hs.addClass(c,"on"))}))}));const u=Jo(e);d=l.querySelector(".cell-add"),hs.addEventListener(d,"click",(()=>{u.querySelector(".is-pop-tabs").style.display="flex";const e=l.querySelector(".cell-add"),t=e.getBoundingClientRect().top+window.pageYOffset,i=e.getBoundingClientRect().left+window.pageXOffset;u.style.display="flex";const n=u.offsetWidth;u.style.top=t+"px",u.style.left=i-n-8+"px",hs.removeClass(u,"arrow-bottom"),hs.removeClass(u,"arrow-left"),hs.removeClass(u,"arrow-top"),hs.removeClass(u,"center"),hs.removeClass(u,"left"),hs.addClass(u,"arrow-right"),hs.addClass(u,"right"),"left"===u.querySelector(".active").getAttribute("data-value")?u.setAttribute("data-mode","cell-left"):u.setAttribute("data-mode","cell-right")})),d=l.querySelector(".cell-prev"),hs.addEventListener(d,"click",(()=>{n.moveColumnPrevious(),t.clearControls()})),d=l.querySelector(".cell-next"),hs.addEventListener(d,"click",(()=>{n.moveColumnNext(),t.clearControls()})),d=l.querySelector(".cell-increase"),hs.addEventListener(d,"click",(()=>{n.increaseColumn(),t.clearControls()})),d=l.querySelector(".cell-decrease"),hs.addEventListener(d,"click",(()=>{n.decreaseColumn(),t.clearControls()})),d=l.querySelector(".cell-up"),hs.addEventListener(d,"click",(()=>{n.moveColumnUp(),t.clearControls()})),d=l.querySelector(".cell-down"),hs.addEventListener(d,"click",(()=>{n.moveColumnDown(),t.clearControls()})),d=l.querySelector(".cell-duplicate"),hs.addEventListener(d,"click",(()=>{n.duplicateColumn(),t.clearControls()})),d=l.querySelector(".cell-remove"),hs.addEventListener(d,"click",(()=>{n.removeColumn(),t.clearControls()})),d=l.querySelector(".cell-html"),d&&hs.addEventListener(d,"click",(()=>{t.cellSelected()&&o.view("cell")})),d=l.querySelector(".cell-settings"),d&&hs.addEventListener(d,"click",(()=>{const i=t.cellSelected();if(!i)return;e.colTool.readCellStyles(i),t.saveSelection();const n=document.querySelector(".is-modal.columnsettings");t.showModal(n,!1,(()=>{"flex"===e.builderStuff.querySelector(".is-rte-tool").style.display&&t.restoreSelection()}))}));const p=l.querySelector(".cell-locking");p&&hs.addEventListener(p,"click",(i=>{let n=t.cellSelected();n&&(n.hasAttribute("data-noedit")?(n.removeAttribute("data-noedit"),n.contentEditable=!0,hs.removeClass(p,"on")):(n.setAttribute("data-noedit",""),n.contentEditable=!1,hs.addClass(p,"on"),t.clearActiveElement(!0)),e.colTool.showHideLockIndicator(n),e.element.applyBehavior(n),i.preventDefault())})),d=l.querySelector(".row-add"),hs.addEventListener(d,"click",(()=>{u.querySelector(".is-pop-tabs").style.display="none";const e=l.querySelector(".row-add"),t=e.getBoundingClientRect().top+window.pageYOffset,i=e.getBoundingClientRect().left+window.pageXOffset;u.style.display="flex";const n=u.offsetWidth;u.style.top=t+"px",u.style.left=i-n-8+"px",hs.removeClass(u,"arrow-bottom"),hs.removeClass(u,"arrow-left"),hs.removeClass(u,"arrow-top"),hs.removeClass(u,"center"),hs.removeClass(u,"left"),hs.addClass(u,"arrow-right"),hs.addClass(u,"right"),u.setAttribute("data-mode","row")})),d=l.querySelector(".row-up"),hs.addEventListener(d,"click",(()=>{n.moveRowUp(),t.clearControls()})),d=l.querySelector(".row-down"),hs.addEventListener(d,"click",(()=>{n.moveRowDown(),t.clearControls()})),d=l.querySelector(".row-duplicate"),hs.addEventListener(d,"click",(()=>{n.duplicateRow(),t.clearControls()})),d=l.querySelector(".row-remove"),hs.addEventListener(d,"click",(()=>{n.removeRow(),t.clearControls()})),d=l.querySelector(".row-html"),d&&hs.addEventListener(d,"click",(()=>{t.cellSelected()&&o.view("row")}))})(this),this.preview=!1;const n=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(n,(e=>{vb.hasClass(e,"preview")&&(this.preview=!0)})),this.preview||this.opts.snippetJSON.snippets.length>0&&yr(this),this.colTool=new Ev(this);var o=this.opts.onChange;if(this.opts.onChange=()=>{var e=o.apply(this,arguments);return this.activeCol&&this.util.repositionColumnTool(),this.elmTool.repositionElementTool(!0),this.element.image.imageTool.style.display="",this.element.module.moduleTool.style.display="",this.colTool.lockIndicator.style.display="",e},this.elmTool=new tb(this),this.element=new tv(this),this.rte=new rb(this),this.tooltip=new ub(this),this.lightbox=new gb(this),this.preview||this.applyBehavior(),!this.preview)if(this.opts.plugins.length>0)this.loadPlugins();else if(void 0===this.opts.scriptPath&&""===this.opts.pluginPath);else if(!this.opts.disableConfig){let e=this.opts.scriptPath+"config.js";""!==this.opts.pluginPath&&(e=this.opts.pluginPath+"config.js"),this.loadScript(e).then((()=>{this.opts.plugins.length>0&&this.loadPlugins()}),(()=>{console.log("Fail to load config")}))}new mb,this.colorPicker=new rv({lang:this.opts.lang,colors:this.opts.colors}),this.colorClassPicker=new sb({lang:this.opts.lang}),document.addEventListener("click",this.doDocumentClick=e=>{let i,n=(e=e||window.event).target||e.srcElement;if(!n)return;n.parentNode&&(i=vb.hasClass(n.parentNode,"is-builder"));let o=vb.hasClass(n,"is-builder"),s=!1,a=!1,r=!1,l=!1,d=!1,c=!1,u=!1,p=!1,h=!1,g=!1,f=!1,m=!1,v=!1,b=!1,y=n;for(;y&&y.tagName&&"BODY"!==y.tagName&&"HTML"!==y.tagName;){if(vb.hasClass(y,"is-builder")&&(s=!0),vb.hasClass(y,"is-modal")&&(a=!0),vb.hasClass(y,"is-side")&&(r=!0),vb.hasClass(y,"is-pop")&&(l=!0),vb.hasClass(y,"is-tool")&&(d=!0),(vb.hasClass(y,"is-rte-tool")||vb.hasClass(y,"is-elementrte-tool"))&&(c=!0),vb.hasClass(y,"is-rte-pop")&&(u=!0),vb.hasClass(y,"row-add-initial")&&(p=!0),(vb.hasClass(y,"sl-wrapper")||vb.hasClass(y,"sl-overlay")||vb.hasClass(y,"sl-close"))&&(h=!0),(vb.hasClass(y,"is-selectbox")||vb.hasClass(y,"is-selectbox-options"))&&(g=!0),this.opts.specialElementClasses)for(let e=0;e<this.opts.specialElementClasses.length;e++)vb.hasClass(y,this.opts.specialElementClasses[e])&&(b=!0);"divImageTool"===y.id&&(f=!0),"divImageResizer"===y.id&&(m=!0),this.preserveSelection&&(v=!0),y=y.parentNode}if(!g){let e=document.querySelectorAll(".is-selectbox-options");Array.prototype.forEach.call(e,(e=>{e.style.display="none"}))}let _=!1,x=document.querySelector("#divImageResizer");if(x&&"1"===x.getAttribute("data-resized")&&(_=!0),!_){if(!(a||h||f||m||"img"===n.tagName.toLowerCase())){document.querySelector("#divImageTool").style.display="",this.activeImage=null;let e=document.querySelector("#divImageResizer");e.style.display="none",e.style.top="-10px",e.style.left="-10px",e.style.width="1px",e.style.height="1px",this.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none"}if((!(s||a||r||l||d||c||u||p||h||v||b)||i&&!p||o)&&(vb.getSelected()||(t.clearActiveCell(),t.clearControls())),this.activeLinkButton||this.activeButton||n.closest(".buttoneditor")||n.closest(".link-button-edit")||n.closest(".is-modal")||this.element.hyperlink.buttonEditor.hide(),!l&&!vb.parentsHasId(n,"_cbhtml")){const e=document.querySelectorAll(".is-pop");Array.prototype.forEach.call(e,(e=>{vb.parentsHasId(e,"_cbhtml")||(e.style.display="")}))}}}),document.addEventListener("mousedown",this.doDocumentMousedown=e=>{var i=(e=e||window.event).target||e.srcElement;vb.parentsHasClass(i,"row-handle")&&t.clearControls()}),document.addEventListener("keydown",this.doDocumentKeydown=e=>{90===e.which&&(e.ctrlKey||e.metaKey)&&(e.shiftKey?this.uo.doRedo():e.altKey||this.uo.doUndo()),89===e.which&&e.ctrlKey&&(e.altKey||this.uo.doRedo())}),document.body.addEventListener("mscontrolselect",(function(e){e.preventDefault()})),window._cb=this,window.applyLargerImage=this.applyLargerImage,window.returnUrl=this.returnUrl,window.selectFile=this.selectFile.bind(this),window.selectImage=this.selectImage.bind(this),window.selectVideo=this.selectVideo.bind(this),window.selectAsset=this.selectAsset.bind(this),window.imageLoaded=this.imageLoaded.bind(this),window.assetType=this.assetType.bind(this)}static run(e={}){return new bb(e)}setZoom(){if(""!==this.opts.page){const e=document.querySelector(this.opts.page);e.style.transform=`scale(${this.opts.zoom})`,this.setZoomOnControl(e)}else{document.querySelectorAll(this.opts.container).forEach((e=>{let t=!1;e.style.transform||(t=!0),t&&(e.style.transition="none"),e.style.transform=`scale(${this.opts.zoom})`,t&&setTimeout((()=>{e.style.transition=""}),300),this.setZoomOnControl(e)}))}}setZoomOnControl(e){e.querySelectorAll(".is-row-tool").forEach((e=>{e.style.transform=`scale(${1/this.opts.zoom})`,e.style.transformOrigin="top"}));e.querySelectorAll(".is-rowadd-tool button").forEach((e=>{e.style.transform=`scale(${1/this.opts.zoom})`}))}setZoomOnArea(){if(""!==this.opts.page){document.querySelector(this.opts.page).style.transform=`scale(${this.opts.zoom})`}else{document.querySelectorAll(this.opts.container).forEach((e=>{let t=!1;e.style.transform||(t=!0),t&&(e.style.transition="none"),e.style.transform=`scale(${this.opts.zoom})`,t&&setTimeout((()=>{e.style.transition=""}),300)}))}}applyBehavior(){null!==localStorage.getItem("_zoom")&&(this.opts.zoom=localStorage.getItem("_zoom")),this.rte.rteZoomSlider.value=100*this.opts.zoom;const e=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(e,(e=>{this.applyBehaviorOn(e),this.contentReformatOn(e)})),this.opts.onRender(),this.setZoomOnArea()}contentReformatOn(e){this.opts.useCssClasses&&vb.contentReformat(e,this.opts.cssClasses)}applyBehaviorOn(e){const t=this.util;if(this.opts.absolutePath){let t=e.querySelectorAll("a");Array.prototype.forEach.call(t,(e=>{let t=e.href;e.setAttribute("href",t)}));let i=e.querySelectorAll("img");Array.prototype.forEach.call(i,(e=>{let t=e.src;e.setAttribute("src",t)}))}vb.addClass(e,"is-builder"),this.preferences.initBuilder(e);if(vb.elementChildren(e).forEach((e=>{if(vb.hasClass(e,"row-add-initial"))return;(e.style.marginLeft||e.style.marginRight)&&(e.style.border="none"),this.rowtool=new nv(this),this.rowtool.render(e);new sv(this).render(e);vb.elementChildren(e).forEach((e=>{if(vb.hasClass(e,"is-row-tool")||vb.hasClass(e,"is-rowadd-tool"))return;"readonly"===e.getAttribute("data-mode")&&(e.setAttribute("data-noedit",""),e.removeAttribute("data-mode")),"readonly-protected"===e.getAttribute("data-mode")&&(e.setAttribute("data-protected",""),e.removeAttribute("data-mode"));let t=!1;e.hasAttribute("data-noedit")&&(t=!0);let i=!1;e.hasAttribute("data-protected")&&(i=!0);let n=!1;if(e.hasAttribute("data-html")&&(n=!0),!n&&!t&&!i){const t=e.innerText.trim();(e.querySelectorAll("p,h1,h2,h3,h4,h5,h6,table,ul,ol,pre,blockquote,code,figcaption,label,legend,button,a,span").length>0||""!==t)&&(e.contentEditable=!0)}this.element.applyBehavior(e),e.getAttribute("data-click")||(e.addEventListener("click",this.handleCellClick.bind(this,e)),e.addEventListener("keydown",this.handleCellKeypress.bind(this)),e.addEventListener("keydown",this.handleCellKeydown.bind(this,e)),e.addEventListener("keyup",this.handleCellKeyup.bind(this,e)),e.addEventListener("paste",this.handleCellPaste.bind(this)),e.setAttribute("data-click",!0))}))})),!e.getAttribute("data-sort")&&!e.hasAttribute("nogrid")){let i=new Za(e,{scroll:!0,group:"shared",direction:"dummy",animation:300,handle:".row-handle",sort:!0,onStart:()=>{this.uo.saveForUndo(),this.colTool.hideColumnTool(),this.elmTool.hide()},onEnd:()=>{this.opts.emailMode||vb.hasClass(this.activeCol.parentNode,"row-outline")&&(this.colTool.refreshColumnTool(this.activeCol),this.colTool.showColumnTool(this.activeCol)),this.util.checkEmpty()},onAdd:i=>{var n=i.item;if(n.getAttribute("data-id")){let i=n.getAttribute("data-id");const g=this.opts.snippetJSON.snippets.filter((e=>e.id+""===i&&e));var o,s=g[0].html,a=g[0].noedit;o=-1===s.indexOf("row clearfix"),this.opts.emailMode&&(o=!1);var r=this.opts.row,l=this.opts.cols;if(""!==r&&12===l.length&&(s=(s=(s=(s=(s=(s=(s=(s=(s=(s=(s=s.replace(new RegExp("row clearfix","g"),r)).replace(new RegExp("column full","g"),l[11])).replace(new RegExp("column half","g"),l[5])).replace(new RegExp("column third","g"),l[3])).replace(new RegExp("column fourth","g"),l[2])).replace(new RegExp("column fifth","g"),l[1])).replace(new RegExp("column sixth","g"),l[1])).replace(new RegExp("column two-third","g"),l[7])).replace(new RegExp("column two-fourth","g"),l[8])).replace(new RegExp("column two-fifth","g"),l[9])).replace(new RegExp("column two-sixth","g"),l[9])),s=s.replace(/{id}/g,t.makeId()),this.opts.onAdd&&(s=this.opts.onAdd(s)),this.opts.snippetPathReplace.length>0&&""!==this.opts.snippetPathReplace[0]){var d=new RegExp(this.opts.snippetPathReplace[0],"g");s=s.replace(d,this.opts.snippetPathReplace[1]);var c=this.opts.snippetPathReplace[0].replace(/\//g,"%2F"),u=this.opts.snippetPathReplace[1].replace(/\//g,"%2F"),p=new RegExp(c,"g");s=s.replace(p,u)}if(o)s=`<div class="${this.opts.row}"><div class="${this.opts.cols[this.opts.cols.length-1]}"${a?" data-noedit":""}>${s}</div></div>`,n.removeAttribute("draggable"),vb.removeClass(n,"snippet-item"),n.outerHTML=s;else{let e=vb.createElement("div");e.innerHTML=s;let i=e.querySelectorAll("[data-html]");Array.prototype.forEach.call(i,(e=>{s=(s=decodeURIComponent(e.getAttribute("data-html"))).replace(/{id}/g,t.makeId());for(var i=1;i<=20;i++)s=s.replace("[%HTML"+i+"%]",void 0===e.getAttribute("data-html-"+i)?"":decodeURIComponent(e.getAttribute("data-html-"+i)));e.innerHTML=s})),s=e.innerHTML,n.removeAttribute("draggable"),vb.removeClass(n,"snippet-item"),n.innerHTML="";var h=document.createRange();h.setStart(n,0),n.appendChild(h.createContextualFragment(s)),n.outerHTML=n.innerHTML}this.applyBehaviorOn(e),this.opts.onChange(),this.elmTool.hide()}}});this.sortableObjects.push(i),e.setAttribute("data-sort",!0)}const i=e.querySelectorAll(".is-subblock");Array.prototype.forEach.call(i,(e=>{e.contentEditable=!0})),this.util.checkEmptyOn(e),this.setZoomOnControl(e)}html(e){const t=this.util,i=new Wo(this);if(e);else{const i=document.querySelectorAll(this.opts.container);if(i.length>1){const n=t.cellSelected();e=n?n.parentNode.parentNode:i[0]}else e=i[0];if(""!==this.opts.page){const t=document.querySelector(this.opts.page);t&&(e=t)}}this.cleanHtmlFormatting=!0;let n=i.readHtml(e);return this.cleanHtmlFormatting=!1,n}viewHtmlNormal(){new Wo(this).viewHtmlNormal()}viewHtmlLarger(){new Wo(this).viewHtmlLarger()}readHtml(e,t,i){return new Wo(this).readHtml(e,t,i)}fromViewToActual(e){return new Wo(this).fromViewToActual(e)}colorpicker(e,t){return new rv({onPick:e,color:t,colors:this.opts.colors,animateModal:this.opts.animateModal,elementToAnimate:this.opts.container,lang:this.opts.lang})}gradientpicker(){return new _v({gradientcolors:this.opts.gradientcolors,colors:this.opts.colors,animateModal:this.opts.animateModal,elementToAnimate:this.opts.container,lang:this.opts.lang})}dropdown(e,t){new fs(e,t)}simpleColorPicker(e,t){return this.colorClassPicker.open(e,t)}destroy(){if(document.removeEventListener("click",this.doDocumentClick,!1),document.removeEventListener("keydown",this.doDocumentKeydown,!1),document.removeEventListener("mousedown",this.doDocumentMousedown,!1),this.util.clearControls(),!this.util.builderStuff())return;const e=new Wo(this),t=document.querySelectorAll(this.opts.container);if(Array.prototype.forEach.call(t,(t=>{t.innerHTML=e.readHtml(t,!0)})),Array.prototype.forEach.call(t,(e=>{e.removeAttribute("data-sort"),vb.removeClass(e,"is-builder")})),Array.prototype.forEach.call(this.sortableObjects,(e=>{try{e.destroy()}catch(e){}})),this.moveable.destroy(),this.builderStuff.parentNode.removeChild(this.builderStuff),this.builderStuff=null,""!==this.opts.page){document.querySelector(this.opts.page).style.transform=""}else{document.querySelectorAll(this.opts.container).forEach((e=>{e.style.transform=""}))}}saveImages(e,t,i){new db({page:this.opts.page,container:this.opts.container,customval:this.opts.customval,handler:e,onComplete:t,onBase64Upload:i||null}).save()}clearFont(){this.rte.clearFont()}applyFont(e,t,i){this.rte.applyFont(e,t,i)}setFont(e,t,i,n){this.rte.setFont(e,t,i,n)}addIcon(e){this.rte.addIcon(e)}applyLargerImage(e){let t=document.querySelectorAll(".form-upload-larger");Array.prototype.forEach.call(t,(t=>{vb.hasClass(t,"please-wait")&&(vb.removeClass(t,"please-wait"),t.parentNode.parentNode.querySelector('input[type="text"]').value=e,t.parentNode.parentNode.querySelector('input[type="file"]').value="")}))}returnUrl(e){let t=document.querySelectorAll(".form-upload-larger");Array.prototype.forEach.call(t,(t=>{vb.hasClass(t,"please-wait")&&(vb.removeClass(t,"please-wait"),t.parentNode.parentNode.querySelector('input[type="text"]').value=e,t.parentNode.parentNode.querySelector('input[type="file"]').value="")})),this.opts.assetRefresh=!0}openImagePicker(e,t){this.colTool.openImagePicker(e,t)}openImageAdjust(e){this.colTool.openImageAdjust(e)}selectFile(e){this.selectAsset(e)}selectImage(e){this.selectAsset(e)}selectVideo(e){this.selectAsset(e)}selectAsset(e){let t=e.split(".").pop();t=t.toLowerCase();let i=!1;if("all"===this.targetAssetType?i=!0:"media"===this.targetAssetType?"jpg"===t||"jpeg"===t||"png"===t||"gif"===t||"webm"===t||"mp4"===t?i=!0:alert(this.util.out("Please select an image or video file.")):"image"===this.targetAssetType?"jpg"===t||"jpeg"===t||"png"===t||"gif"===t||"webm"===t?i=!0:alert(this.util.out("Please select an image file.")):"video"===this.targetAssetType&&("mp4"===t?i=!0:alert(this.util.out("Please select an mp4 file."))),i){this.targetInput.value=e,"inpCellLinkSource"===this.targetInput.id&&this.targetCallback();let t=document.querySelector(".is-modal.videoselect");vb.removeClass(t,"active"),t=document.querySelector(".is-modal.imageselect"),vb.removeClass(t,"active"),t=document.querySelector(".is-modal.fileselect"),vb.removeClass(t,"active")}}assetType(){return this.targetAssetType}openAsset(e,t,i){if("media"===t&&(this.opts.onFileSelectClick||this.opts.onImageSelectClick))this.opts.onFileSelectClick?this.opts.onFileSelectClick({targetInput:e,theTrigger:i}):this.opts.onImageSelectClick({targetInput:e,theTrigger:i});else if("video"===t&&this.opts.onVideoSelectClick)this.opts.onVideoSelectClick({targetInput:e,theTrigger:i});else if("image"===t&&this.opts.onImageSelectClick)this.opts.onImageSelectClick({targetInput:e,theTrigger:i});else if("all"===t&&this.opts.onFileSelectClick)this.opts.onFileSelectClick({targetInput:e,theTrigger:i});else{let i,n;"media"===t?(n=this.builderStuff.querySelector(".is-modal.fileselect"),i=n.querySelector("iframe"),"about:blank"===i.src&&(i.src=this.opts.fileSelect)):"video"===t?(n=this.builderStuff.querySelector(".is-modal.videoselect"),i=n.querySelector("iframe"),"about:blank"===i.src&&(i.src=this.opts.videoSelect)):"image"===t?(n=this.builderStuff.querySelector(".is-modal.imageselect"),i=n.querySelector("iframe"),"about:blank"===i.src&&(i.src=this.opts.imageSelect)):"all"===t&&(n=this.builderStuff.querySelector(".is-modal.fileselect"),i=n.querySelector("iframe"),"about:blank"===i.src&&(i.src=this.opts.fileSelect)),this.util.showModal(n),this.targetInput=e,this.targetCallback=null,this.targetAssetType=t}}LightenDarkenColor(e,t){return this.util.LightenDarkenColor(e,t)}pickColor(e,t){new rv({colors:this.opts.colors,animateModal:!1,lang:this.opts.lang}).open(e,t)}addSnippet(e,t,i){this.util.addSnippet(e,t,i)}viewSnippets(){this.rte.viewSnippets()}saveForUndo(e){this.uo.saveForUndo(e)}imageLoaded(e){e.removeAttribute("onload"),this.activeCol&&this.colTool.refreshColumnTool(this.activeCol)}getActiveModule(){return document.querySelector("[data-module-active]")}getModuleSettings(){let e=document.querySelector("[data-module-active]");return decodeURIComponent(e.getAttribute("data-settings"))}setModuleHtml(e){document.querySelector("#hidContentModuleCode").value=e}setModuleSettings(e){document.querySelector("#hidContentModuleSettings").value=e}makeId(){return this.util.makeId()}setTooltip(e){this.tooltip.setAll(e)}loadPlugins(){if(!this.builderStuff)return;if(void 0===this.opts.scriptPath&&""===this.opts.pluginPath)return;if(this.numOfPlugins=0,"string"==typeof this.opts.plugins[0])return void this.loadPluginsOldWay();const e=this.builderStuff.querySelector(".is-rte-tool"),t=this.builderStuff.querySelector(".rte-more-options"),i=this.builderStuff.querySelector(".is-elementrte-tool"),n=this.builderStuff.querySelector(".elementrte-more-options");let o;for(o=this.opts.plugins.length-1;o>=0;o--){const s=this.opts.plugins[o].name,a=this.opts.plugins[o].showInMainToolbar,r=this.opts.plugins[o].showInElementToolbar;let l=!1;(e.querySelector('[data-plugin="'+s+'"]')||t.querySelector('[data-plugin="'+s+'"]'))&&(l=!0);let d=!1;if((i.querySelector('[data-plugin="'+s+'"]')||n.querySelector('[data-plugin="'+s+'"]'))&&(d=!0),a&&!l){t.querySelectorAll("div:not(.rte-separator)").forEach((e=>{e.insertAdjacentHTML("afterbegin",'<button style="width:46px;" title="button not found" data-plugin="'+s+'"></button>')}))}r&&!d&&n.querySelector("div").insertAdjacentHTML("afterbegin",'<button style="width:46px;" title="button not found" data-plugin="'+s+'"></button>')}for(o=0;o<this.opts.plugins.length;o++){const e=this.opts.plugins[o].name;let t=this.opts.scriptPath+"plugins/"+e+"/plugin.js";""!==this.opts.pluginPath&&(t=this.opts.pluginPath+"plugins/"+e+"/plugin.js"),this.loadScript(t).then((()=>{this.numOfPlugins++,this.numOfPlugins===this.opts.plugins.length&&(this.opts.onPluginsLoaded&&this.opts.onPluginsLoaded(),this.tooltip.setAll(),new ps({selector:".is-draggable"}))}))}}loadPluginsOldWay(){const e=this.builderStuff.querySelector(".is-rte-tool"),t=this.builderStuff.querySelector(".rte-more-options"),i=this.builderStuff.querySelector(".is-elementrte-tool"),n=this.builderStuff.querySelector(".elementrte-more-options");let o;for(o=this.opts.plugins.length-1;o>=0;o--){const s=this.opts.plugins[o];let a=!1;(e.querySelector('[data-plugin="'+s+'"]')||t.querySelector('[data-plugin="'+s+'"]'))&&(a=!0);let r=!1;(i.querySelector('[data-plugin="'+s+'"]')||n.querySelector('[data-plugin="'+s+'"]'))&&(r=!0),a||t.querySelector("div").insertAdjacentHTML("afterbegin",'<button style="width:46px;" title="button not found" data-plugin="'+this.opts.plugins[o]+'"></button>'),r||n.querySelector("div").insertAdjacentHTML("afterbegin",'<button style="width:46px;" title="button not found" data-plugin="'+this.opts.plugins[o]+'"></button>')}for(o=0;o<this.opts.plugins.length;o++){let e=this.opts.scriptPath+"plugins/"+this.opts.plugins[o]+"/plugin.js";""!==this.opts.pluginPath&&(e=this.opts.pluginPath+"plugins/"+this.opts.plugins[o]+"/plugin.js"),this.loadScript(e).then((()=>{if(this.numOfPlugins++,this.numOfPlugins===this.opts.plugins.length){let e=t.querySelectorAll("[data-plugin]");Array.prototype.forEach.call(e,(e=>{e.outerHTML=""})),e=n.querySelectorAll("[data-plugin]"),Array.prototype.forEach.call(e,(e=>{e.outerHTML=""})),this.opts.onPluginsLoaded&&this.opts.onPluginsLoaded(),this.tooltip.setAll(),new ps({selector:".is-draggable"})}}))}}addHtml(e){vb.appendHtml(this.builderStuff,e)}addCss(e){vb.appendHtml(document.head,e)}addButton_OLD(e,t,i,n){if(!this.builderStuff)return;const o=this.builderStuff.querySelector(".is-rte-tool"),s=this.builderStuff.querySelector(".rte-more-options");var a=!1;if(o.querySelector('[data-plugin="'+e+'"]')?o.querySelector('[data-plugin="'+e+'"]').outerHTML=t:s.querySelector('[data-plugin="'+e+'"]')&&(s.querySelector('[data-plugin="'+e+'"]').outerHTML=t,a=!0),!o.querySelector(".rte-more")&&a){o.insertAdjacentHTML("beforeend",`<button title="${this.util.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let e=this.rteTool.querySelector("button.rte-more");e&&vb.addEventListener(e,"click",(()=>{this.rte.showRteMore()}))}let r=o.querySelector(i);r=r||s.querySelector(i),r&&(r.setAttribute("data-title",r.getAttribute("title")),vb.addEventListener(r,"click",(e=>{n(e)})))}addButton(e,t,i,n){if(!this.builderStuff)return;const o=this.builderStuff.querySelector(".is-rte-tool"),s=this.builderStuff.querySelector(".rte-more-options");var a=!1;s.querySelector('[data-plugin="'+e+'"]')&&(a=!0);if(this.builderStuff.querySelectorAll('[data-plugin="'+e+'"]').forEach((e=>{e.outerHTML=t})),!o.querySelector(".rte-more")&&a){o.insertAdjacentHTML("beforeend",`<button title="${this.util.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let e=this.rteTool.querySelector("button.rte-more");e&&vb.addEventListener(e,"click",(()=>{this.rte.showRteMore()}))}let r=o.querySelectorAll(i);r.forEach((e=>{e.setAttribute("data-title",e.getAttribute("title")),vb.addEventListener(e,"click",(e=>{n(e)}))})),r=s.querySelectorAll(i),r.forEach((e=>{e.setAttribute("data-title",e.getAttribute("title")),vb.addEventListener(e,"click",(e=>{n(e)}))}))}addButton2(e,t,i,n){if(!this.builderStuff)return;const o=this.builderStuff.querySelector(".is-elementrte-tool"),s=this.builderStuff.querySelector(".elementrte-more-options");var a=!1;if(o.querySelector('[data-plugin="'+e+'"]')?o.querySelector('[data-plugin="'+e+'"]').outerHTML=t:s.querySelector('[data-plugin="'+e+'"]')&&(s.querySelector('[data-plugin="'+e+'"]').outerHTML=t,a=!0),!o.querySelector(".rte-more")&&a){o.insertAdjacentHTML("beforeend",`<button title="${this.util.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let e=this.elementRteTool.querySelector("button.rte-more");e&&vb.addEventListener(e,"click",(()=>{this.rte.showElementRteMore()}))}let r=o.querySelector(i);r=r||s.querySelector(i),r&&(r.setAttribute("data-title",r.getAttribute("title")),vb.addEventListener(r,"click",(e=>{n(e)})))}showModal(e,t,i,n){this.util.showModal(e,t,i,n)}hideModal(e){this.util.hideModal(e)}draggable(e){new ps({selector:e})}createModal(e,t,i,n,o){let s=this.builderStuff.querySelector(t);return s||(this.builderStuff.appendChild(e),s=this.builderStuff.querySelector(t)),this.showModal(s,i,n,o),new ps({selector:".is-draggable"}),s}getIcons(){return this.rte.getIcons()}showSidePanel(e){let t=this.builderStuff.querySelectorAll(".is-side");Array.prototype.forEach.call(t,(e=>{vb.removeClass(e,"active")})),vb.addClass(e,"active")}hideSidePanel(e){vb.removeClass(e,"active")}getScriptPath(){return this.opts.scriptPath}getSnippetPath(){return this.opts.snippetPath}out(e){return this.util.out(e)}undo(){this.uo.doUndo()}redo(){this.uo.doRedo()}getScope(){let e;const t=document.querySelectorAll(this.opts.container);if(t.length>1){const i=this.util.cellSelected();e=i?i.parentNode.parentNode:t[0]}else e=t[0];if(""!==this.opts.page){const t=document.querySelector(this.opts.page);t&&(e=t)}return e}pasteHtmlAtCaret(e,t){this.util.pasteHtmlAtCaret(e,t)}getScript(e,t){this.loadScript(e).then((()=>{t&&t()}),(()=>{console.log("Fail to load config")}))}getScripts(e,t){let i=0;this.loadScript(e[i]).then((()=>{i=this._helper1(i,e,t)}))}_helper1(e,t,i){if(++e<t.length){return this.loadScript(t[e]).then((()=>{e=this._helper1(e,t,i)})),e}i&&i()}includeJs(e,t){-1===this.filesAdded.indexOf("["+e+"]")?(this.getScript(e,t),this.filesAdded+="["+e+"]"):t&&t()}includeCss(e){if(-1===this.filesAdded.indexOf("["+e+"]")){var t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("type","text/css"),t.setAttribute("href",e),document.getElementsByTagName("head")[0].appendChild(t),this.filesAdded+="["+e+"]"}}applyStyle(e,t){if(-1===this.filesAdded.indexOf("["+e+"]")){var i=document.createElement("style");i.innerHTML=t,document.getElementsByTagName("head")[0].appendChild(i),this.filesAdded+="["+e+"]"}}viewHtml(e){new Wo(this).view("full",e)}viewPreferences(){this.preferences.view()}viewConfig(){this.preferences.view()}viewZoom(){this.rte.viewZoom()}loadSnippets(e){if(this.preview)return;if(document.querySelector(this.opts.snippetList))return;if(this.isScriptAlreadyIncluded(e))return;const t=document.createElement("script");t.src=e,t.async=!0,t.onload=()=>{this.opts.snippetJSON=window.data_basic,""===this.opts.snippetPath&&(this.opts.snippetPath=window._snippets_path),this.opts.snippetJSON.snippets.length>0&&yr(this)},document.body.appendChild(t)}isScriptAlreadyIncluded(e){const t=document.getElementsByTagName("script");for(let i=0;i<t.length;i++)if(t[i].getAttribute("src")===e)return!0;return!1}loadHtml(e,t){const i=this.util;if(t);else{const e=document.querySelectorAll(this.opts.container);if(e.length>1){const n=i.cellSelected();t=n?n.parentNode.parentNode:e[0]}else t=e[0];if(""!==this.opts.page){const e=document.querySelector(this.opts.page);e&&(t=e)}}let n=document.createRange();t.innerHTML="",t.appendChild(n.createContextualFragment(e)),this.applyBehavior(),this.opts.onChange(),this.opts.onRender()}loadHTML(e){this.loadHtml(e)}setUIColor(e,t){let i=document.querySelector("[data-cb-color]");if(i&&i.setAttribute("data-cb-del",""),t){var n=document.createElement("link");n.rel="stylesheet",n.href=t,n.setAttribute("data-cb-color",""),n.addEventListener("load",(()=>{i=document.querySelector("[data-cb-del]"),i&&i.parentNode.removeChild(i),"dark"===e&&(vb.removeClass(document.body,"colored"),vb.removeClass(document.body,"colored-dark"),vb.removeClass(document.body,"light"),vb.addClass(document.body,"dark")),"colored"===e&&(vb.removeClass(document.body,"dark"),vb.removeClass(document.body,"colored-dark"),vb.removeClass(document.body,"light"),vb.addClass(document.body,"colored")),"colored-dark"===e&&(vb.removeClass(document.body,"dark"),vb.removeClass(document.body,"colored"),vb.removeClass(document.body,"light"),vb.addClass(document.body,"colored-dark")),""===e&&(vb.removeClass(document.body,"dark"),vb.removeClass(document.body,"colored-dark"),vb.removeClass(document.body,"colored"),vb.removeClass(document.body,"light")),"light"===e&&(vb.removeClass(document.body,"dark"),vb.removeClass(document.body,"colored-dark"),vb.removeClass(document.body,"colored"),vb.addClass(document.body,"light"));const t=this.util;setTimeout((()=>{t.getUIStyles(),this.setUIColorRefresh(),this.opts.onThemeChange&&this.opts.onThemeChange()}),300)})),document.head.appendChild(n)}else{i=document.querySelector("[data-cb-del]"),i&&i.parentNode.removeChild(i),""===e&&(vb.removeClass(document.body,"dark"),vb.removeClass(document.body,"colored-dark"),vb.removeClass(document.body,"colored"),vb.removeClass(document.body,"light"));const t=this.util;setTimeout((()=>{t.getUIStyles(),this.setUIColorRefresh(),this.opts.onThemeChange&&this.opts.onThemeChange()}),1e3)}}setUIColorRefresh(){const e=this.util;if(!this.rte||!this.element)return void setTimeout((()=>{this.setUIColorRefresh()}),600);let t=this.rte.rteFontFamilyOptions.querySelector("iframe").contentWindow.document;let i=this.builderStuff.querySelector(".is-modal.pickfontfamily").querySelector("iframe").contentWindow.document,n=this.rte.rteIconOptions.querySelector("iframe").contentWindow.document;""===t.body.innerHTML?(t.open(),this.opts.emailMode?t.write(e.getFontFamilyEmail()):t.write(e.getFontFamilyHTML()),t.close()):this.util.refreshFontFamilyStyle1(),""===i.body.innerHTML?(i.open(),this.opts.emailMode?i.write(e.getFontFamilyEmail(!0)):i.write(e.getFontFamilyHTML(!0)),i.close()):this.util.refreshFontFamilyStyle2(),""===n.body.innerHTML?(n.open(),n.write(this.rte.getIconsHTML()),n.close()):this.rte.refreshIconsStyle(),this.builderStuff.querySelector(".snippets").querySelector("iframe").src="about:blank";let o=document.querySelector(".is-modal.videoselect"),s=document.querySelector(".is-modal.imageselect"),a=document.querySelector(".is-modal.fileselect"),r=o.querySelector("iframe"),l=s.querySelector("iframe"),d=a.querySelector("iframe");r.contentWindow.applyParentStyles&&r.contentWindow.applyParentStyles(),l.contentWindow.applyParentStyles&&l.contentWindow.applyParentStyles(),d.contentWindow.applyParentStyles&&d.contentWindow.applyParentStyles()}openMedia(e){let t="",i=e.getAttribute("data-modal-theme");i||(i="light");const n=e.getAttribute("data-modal-color");if(e.getAttribute("data-modal-url")){t=e.getAttribute("data-modal-url");let o=t.split(".").pop();if("jpg"===o||"jpeg"===o||"png"===o||"gif"===o||"webm"===o)this.lightbox.openImage(t,i,n);else if("mp4"===o)this.lightbox.openVideo(t,"dark",n);else if(-1!==t.toLowerCase().indexOf("youtube.com")||-1!==t.toLowerCase().indexOf("vimeo.com"))this.lightbox.openExternalVideo(t,"dark",n);else{if(0===t.indexOf("#"));else{if(!window.confirm(this.util.out("Do you really want to leave?")))return!1}window.location.href=t}}else e.getAttribute("data-modal-image")&&(t=e.getAttribute("data-modal-image"),this.lightbox.openImage(t,i,n)),e.getAttribute("data-modal-video")&&(t=e.getAttribute("data-modal-video"),this.lightbox.openVideo(t,"dark",n)),e.getAttribute("data-modal-externalvideo")&&(t=e.getAttribute("data-modal-externalvideo"),this.lightbox.openExternalVideo(t,"dark",n))}lightboxOpen(e){this.useLightbox&&(e.hasAttribute("data-noedit")||e.hasAttribute("data-protected"))&&vb.hasClass(e,"block-click")&&this.openMedia(e)}handleCellClick(e,t){this.lightboxOpen(e);this.util.clearActiveCell(),this.activeCol=e;let i=t.target;vb.addClass(e,"cell-active");let n=e.parentNode;vb.addClass(n,"row-active");const o=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(o,(e=>{vb.removeClass(e,"builder-active")})),vb.addClass(n.parentNode,"builder-active"),n.childElementCount-2==1||vb.addClass(n,"row-outline"),e.hasAttribute("data-html")||this.opts.onContentClick&&this.opts.onContentClick(t),this.element.click(e,t),this.colTool.click(e),this.elmTool.click(e,t),this.rte.click(e,t);const s=document.querySelector(".grideditor.active");if(s){const t=s.querySelector(".cell-locking");e.hasAttribute("data-noedit")?vb.addClass(t,"on"):vb.removeClass(t,"on")}let a=vb.getParentElement(i,"a");if(("a"===i.tagName.toLowerCase()||a)&&(e.hasAttribute("data-noedit")||e.hasAttribute("data-protected"))){if("true"===e.getAttribute("contenteditable"))return t.preventDefault(),!1;if("a"===i.tagName.toLowerCase()&&(a=i),this.useLightbox&&vb.hasClass(a,"is-lightbox")){let e=a.getAttribute("href");if(!e)return t.preventDefault(),!1;let n=e.split(".").pop(),o=a.getAttribute("data-modal-theme");o||(o="light");const s=i.getAttribute("data-modal-color");if("jpg"===n||"jpeg"===n||"png"===n||"gif"===n||"webm"===n)return this.lightbox.openImage(e,o,s),t.preventDefault(),!1;if("mp4"===n)return this.lightbox.openVideo(e,"dark",s),t.preventDefault(),!1;if(-1!==e.toLowerCase().indexOf("youtube.com")||-1!==e.toLowerCase().indexOf("vimeo.com"))return this.lightbox.openExternalVideo(e,"dark",s),t.preventDefault(),!1;if(0===e.indexOf("#"));else{if(!window.confirm(this.util.out("Do you really want to leave?")))return t.preventDefault(),!1}}else{let e=a.getAttribute("href");if(!e)return t.preventDefault(),!1;if(0===e.indexOf("#"));else{if(!window.confirm(this.util.out("Do you really want to leave?")))return t.preventDefault(),!1}}}if(1===e.childElementCount){let t=e.children[0];t&&vb.hasClass(t,"spacer")&&(e.contentEditable=!1)}this.colTool.showHideLockIndicator(e);const r=n.querySelector(".is-rowadd-tool").querySelector("button");r.style.marginTop="";const l=Array.from(n.parentNode.children).filter((e=>"div"===e.nodeName.toLowerCase()));if(l&&l.length>0){if(n===l[l.length-1]){const e=n.parentNode.parentNode,t=vb.getElementOffset(e);let i=t.top+t.height;const o=vb.getElementOffset(n);i-(o.top+o.height)<19&&(r.style.marginTop="-14px")}}}handleCellKeypress(e){e.ctrlKey||e.metaKey||(null===this.uoTm?(this.uo.saveForUndo(),this.uoTm=setTimeout((()=>{this.uoTm=null}),1e3)):(clearTimeout(this.uoTm),this.uoTm=setTimeout((()=>{this.uoTm=null}),1e3)))}handleCellKeydown(e,t){let i=e.querySelectorAll("span");if(Array.prototype.forEach.call(i,(e=>{e.setAttribute("data-keep","")})),(t.ctrlKey||t.metaKey)&&86===t.which&&this.handleCellPaste(),this.opts.elementSelection&&!this.emailMode&&(t.ctrlKey||t.metaKey)&&65===t.which){let e;try{window.getSelection?e=window.getSelection().getRangeAt(0).commonAncestorContainer.parentNode:document.selection&&(e=document.selection.createRange().parentElement()),vb.hasClass(e.parentNode.parentNode,"is-builder")||vb.selectElementContents(e),t.preventDefault()}catch(t){}}if(46===t.keyCode){let e;try{if(window.getSelection?e=window.getSelection().getRangeAt(0).commonAncestorContainer:document.selection&&(e=document.selection.createRange()),"<br>"===e.innerHTML){e.nextElementSibling&&(e.parentNode.removeChild(e),t.preventDefault())}}catch(t){}}if(8===t.keyCode){let e;try{if(window.getSelection?e=window.getSelection().getRangeAt(0).commonAncestorContainer:document.selection&&(e=document.selection.createRange()),""===e.textContent){e.previousElementSibling||t.preventDefault()}}catch(t){}}}handleCellKeyup(e,t){vb.textSelection()&&("38"===t.keyCode||"40"===t.keyCode||"37"===t.keyCode||"39"===t.keyCode)&&this.util.saveSelection();let i=e.querySelectorAll("span");var n;Array.prototype.forEach.call(i,(e=>{e.hasAttribute("data-keep")||(e.outerHTML=e.innerHTML)}));try{window.getSelection?n=window.getSelection().getRangeAt(0).commonAncestorContainer.parentNode:document.selection&&(n=document.selection.createRange().parentElement())}catch(t){return}if(13===t.keyCode&&!t.shiftKey){"p"!==n.tagName.toLowerCase()&&"div"!==n.tagName.toLowerCase()||document.execCommand("formatBlock",!1,"<p>");let t=e.querySelectorAll("[data-keep]");Array.prototype.forEach.call(t,(e=>{e.removeAttribute("data-keep")}))}this.opts.onChange(),this.elmTool.hide()}handleCellPaste(){this.uo.saveForUndo();const e=this.util;e.saveSelection();let t=document.querySelector("#idContentWord");var i,n;t&&t.parentNode.removeChild(t),window.getSelection?i=3===(n=window.getSelection().getRangeAt(0).commonAncestorContainer).nodeType?n.parentNode:n:document.selection&&(n=document.selection.createRange(),i=document.selection.createRange().parentElement());const o='<div style="position:absolute;z-index:-1000;top:'+(i.getBoundingClientRect().top+window.pageYOffset)+'px;left:-1000px;width:100px;height:100px;overflow:auto;" name="idContentWord" id="idContentWord" contenteditable="true"></div>';vb.appendHtml(this.builderStuff,o),t=document.querySelector("#idContentWord"),t.focus(),setTimeout((()=>{try{var t="";let u=document.querySelector("#idContentWord");var i=!1,n=u.innerText;if(!this.opts.disableAutoEmbedVideo){var o=/^http[s]?:\/\/(((www.youtube.com\/watch\?(feature=player_detailpage&)?)v=)|(youtu.be\/))([^#&?]*)/.exec(n),s=/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/)|(video\/))?([0-9]+)\/?/.exec(n);if(null!==o||null!==s){if(null!==o&&o.length>=7)n="https://www.youtube.com/embed/"+o[6]+"?rel=0";if(null!==s&&s.length>=7)n="https://player.vimeo.com/video/"+s[6];t='<div class="embed-responsive embed-responsive-16by9"><iframe width="560" height="315" src="'+n+'" frameborder="0" allowfullscreen=""></iframe></div>',i=!0}}if(!i)if("text"===this.opts.paste){let e=u.querySelectorAll("p,h1,h2,h3,h4,h5,h6");Array.prototype.forEach.call(e,(e=>{e.innerHTML=e.innerHTML+" "})),t=u.innerText}else{t=u.innerHTML,t="html"===this.opts.paste?e.cleanHTML(t,!1):e.cleanHTML(t,!0),u.innerHTML=t;let i=u.querySelectorAll("li");Array.prototype.forEach.call(i,(e=>{e.style.whiteSpace="";const t=e.childNodes;let i=t.length;for(;i--;)"P"===t[i].tagName&&(t[i].outerHTML=t[i].innerHTML)})),t=u.innerHTML}u=document.querySelector("#idContentWord"),u&&u.parentNode.removeChild(u),e.restoreSelection();var a=window.getSelection(),r=a.getRangeAt(0);r.extractContents(),r.collapse(!0);var l=r.createContextualFragment(t),d=l.lastChild;if(r.insertNode(l),this.activeCol){this.activeCol.querySelectorAll("*:empty").forEach((e=>{e.remove()}));let e=this.activeCol.querySelector("p.elm-active,h1.elm-active,h2.elm-active,h3.elm-active,h4.elm-active,h5.elm-active,h6.elm-active");if(e){if(e.querySelectorAll("p,h1,h2,h3,h4,h5,h6").length>0){let t=e.nextElementSibling;if(Array.from(e.childNodes).filter((e=>3===e.nodeType&&e.textContent.trim().length>1)).forEach((e=>{const t=document.createElement("p");e.after(t),t.appendChild(e)})),e.firstElementChild&&1===e.childNodes.length&&"SPAN"===e.firstElementChild.tagName){e.outerHTML=e.firstElementChild.innerHTML,this.activeCol.querySelectorAll("*:empty").forEach((e=>{e.remove()})),t?vb.moveCursorToElement(t.previousElementSibling):vb.moveCursorToElement(this.activeCol);let i=document.querySelector(".builder-active");return i&&this.applyBehaviorOn(i),this.opts.onChange(),void this.opts.onRender()}e.outerHTML=e.innerHTML,this.activeCol.querySelectorAll("*:empty").forEach((e=>{e.remove()})),t?vb.moveCursorToElement(t.previousElementSibling):vb.moveCursorToElement(this.activeCol);let i=document.querySelector(".builder-active");return i&&this.applyBehaviorOn(i),this.opts.onChange(),void this.opts.onRender()}}}r.setStartAfter(d),r.setEndAfter(d),r.collapse(!1);var c=r.commonAncestorContainer;if(c&&c.parentNode)try{c.parentNode.normalize()}catch(e){}a.removeAllRanges(),a.addRange(r);let p=document.querySelector(".builder-active");p&&this.applyBehaviorOn(p),this.opts.onChange(),this.opts.onRender()}catch(e){let t=document.querySelector("#idContentWord");t&&t.parentNode.removeChild(t)}}),800)}cellSelected(){return this.util.cellSelected()}loadScript(e,t,i=!0,n=!0){return new Promise(((o,s)=>{let a=document.createElement("script");const r=t||document.getElementsByTagName("script")[0];function l(e,t){(t||!a.readyState||/loaded|complete/.test(a.readyState))&&(a.onload=null,a.onreadystatechange=null,a=void 0,t?s():o())}a.async=i,a.defer=n,a.onload=l,a.onreadystatechange=l,a.src=e,r.parentNode.insertBefore(a,r)}))}currentScriptPath(){let e,t;for(var i=document.getElementsByTagName("script"),n=0;n<i.length;n++){var o=i[n].src;e="contentbuilder.js",o.indexOf(e)>-1&&(t=o.substring(0,o.indexOf(e))),e="contentbuilder.min.js",o.indexOf(e)>-1&&(t=o.substring(0,o.indexOf(e)))}return t}}var yb={exports:{}};!function(e,t){
112
+ ***************************************************************************** */var op=function(e,t){return(op=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function sp(e,t){function i(){this.constructor=e}op(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var ap=function(){return(ap=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var o in t=arguments[i])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function rp(){for(var e=0,t=0,i=arguments.length;t<i;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<i;t++)for(var s=arguments[t],a=0,r=s.length;a<r;a++,o++)n[o]=s[a];return n}function lp(e,t){var i;return ap({events:{},props:(i={},i[e]=Boolean,i),name:e},t)}function dp(e,t){return'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="'+32*e+'px" height="'+32*e+'px" viewBox="0 0 32 32" ><path d="M 16,5 L 12,10 L 14.5,10 L 14.5,22 L 12,22 L 16,27 L 20,22 L 17.5,22 L 17.5,10 L 20, 10 L 16,5 Z" stroke-linejoin="round" stroke-width="1.2" fill="black" stroke="white" style="transform:rotate('+t+'deg);transform-origin: 16px 16px"></path></svg>'}var cp,up=function(e){return void 0===e&&function(){if("undefined"==typeof navigator||!navigator||!navigator.userAgentData)return!1;var e=navigator.userAgentData,t=e.brands||e.uaList;return!(!t||!t.length)}()?function(e){var t=navigator.userAgentData,i=(t.uaList||t.brands).slice(),n=t.mobile||!1,o=i[0],s={name:o.brand,version:o.version,majorVersion:-1,webkit:!1,webkitVersion:"-1",chromium:!1,chromiumVersion:"-1",webview:!!Hc(Wc,i).brand},a={name:"unknown",version:"-1",majorVersion:-1};s.webkit=!s.chromium&&Bc(Uc,(function(e){return zc(i,e)}));var r=Hc(jc,i);if(s.chromium=!!r.brand,s.chromiumVersion=r.version,!s.chromium){var l=Hc(Uc,i);s.webkit=!!l.brand,s.webkitVersion=l.version}if(e){var d=e.platform.toLowerCase(),c=Ic(Gc,(function(e){return new RegExp(""+e.test,"g").exec(d)}));a.name=c?c.id:d,a.version=e.platformVersion}var u=Hc(Fc,i);return u.brand&&(s.name=u.brand,s.version=e?e.uaFullVersion:u.version),"Linux armv8l"===navigator.platform?a.name="android":s.webkit&&(a.name=n?"ios":"mac"),"ios"===a.name&&s.webview&&(s.version="-1"),a.version=$c(a.version),s.version=$c(s.version),a.majorVersion=parseInt(a.version,10),s.majorVersion=parseInt(s.version,10),{browser:s,os:a,isMobile:n,isHints:!0}}():Vc(e)}().browser.webkit,pp=up&&(!!(cp=/applewebkit\/([^\s]+)/g.exec(navigator.userAgent.toLowerCase()))&&parseFloat(cp[1])<605),hp="moveable-",gp="\n{\n\tposition: absolute;\n\twidth: 1px;\n\theight: 1px;\n\tleft: 0;\n\ttop: 0;\n z-index: 3000;\n --moveable-color: #4af;\n --zoom: 1;\n --zoompx: 1px;\n will-change: transform;\n}\n.control-box {\n z-index: 0;\n}\n.line, .control {\n position: absolute;\n\tleft: 0;\n top: 0;\n will-change: transform;\n}\n.control {\n\twidth: 14px;\n\theight: 14px;\n\tborder-radius: 50%;\n\tborder: 2px solid #fff;\n\tbox-sizing: border-box;\n background: #4af;\n background: var(--moveable-color);\n\tmargin-top: -7px;\n margin-left: -7px;\n border: 2px solid #fff;\n z-index: 10;\n}\n.padding {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100px;\n height: 100px;\n transform-origin: 0 0;\n}\n.line {\n\twidth: 1px;\n height: 1px;\n background: #4af;\n background: var(--moveable-color);\n\ttransform-origin: 0px 50%;\n}\n.line.dashed {\n box-sizing: border-box;\n background: transparent;\n}\n.line.dashed.horizontal {\n border-top: 1px dashed #4af;\n border-top-color: #4af;\n border-top-color: var(--moveable-color);\n}\n.line.dashed.vertical {\n border-left: 1px dashed #4af;\n border-left-color: #4af;\n border-left-color: var(--moveable-color);\n}\n.line.vertical {\n transform: translateX(-50%);\n}\n.line.horizontal {\n transform: translateY(-50%);\n}\n.line.vertical.bold {\n width: 2px;\n}\n.line.horizontal.bold {\n height: 2px;\n}\n\n.control.origin {\n\tborder-color: #f55;\n\tbackground: #fff;\n\twidth: 12px;\n\theight: 12px;\n\tmargin-top: -6px;\n margin-left: -6px;\n\tpointer-events: none;\n}\n"+[0,15,30,45,60,75,90,105,120,135,150,165].map((function(e){return'\n.direction[data-rotation="'+e+'"] {\n\t'+function(e){var t=dp(1,e),i=dp(2,e),n=45*Math.round(e/45)%180,o="ns-resize";return 135===n?o="nwse-resize":45===n?o="nesw-resize":90===n&&(o="ew-resize"),"cursor:"+o+";cursor: url('"+t+"') 16 16, "+o+";cursor: -webkit-image-set(url('"+t+"') 1x, url('"+i+"') 2x) 16 16, "+o+";"}(e)+"\n}\n"})).join("\n")+"\n.group {\n z-index: -1;\n}\n.area {\n position: absolute;\n}\n.area-pieces {\n position: absolute;\n top: 0;\n left: 0;\n display: none;\n}\n.area.avoid, .area.pass {\n pointer-events: none;\n}\n.area.avoid+.area-pieces {\n display: block;\n}\n.area-piece {\n position: absolute;\n}\n\n"+(pp?':global svg *:before {\n\tcontent:"";\n\ttransform-origin: inherit;\n}':"")+"\n",fp=[[0,1,2],[1,0,3],[2,0,3],[3,1,2]],mp=1e-4,vp=1e-7,bp=1e-9,yp=Math.pow(10,10),_p=-yp,xp=["n","w","s","e","nw","ne","sw","se"],wp={n:[0,1],s:[2,3],w:[2,0],e:[1,3],nw:[0],ne:[1],sw:[2],se:[3]},Sp={n:0,s:180,w:270,e:90,nw:315,ne:45,sw:225,se:135},Cp=["isMoveableElement","updateRect","updateTarget","destroy","dragStart","isInside","hitTest","setState","getRect","request","isDragging","getManager"];function kp(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return md.apply(void 0,rp([hp],e))}function Ep(e,t,i){return tu(t,vu(i,t),e,vu(i.map((function(e){return-e})),t))}function Ap(e){return qp(oh(e,":before")).map((function(t,i){var n=Fd(t),o=n.value,s=n.unit;return o*function(e,t,i){return"%"===t?Ip(e.ownerSVGElement)[i?"width":"height"]/100:1}(e,s,0===i)}))}function qp(e){var t=e.transformOrigin;return t?t.split(" "):["0","0"]}function Tp(e,t,i){for(var n=document.body,o=!e||i?e:e.parentElement,s=e===t||o===t,a="relative";o&&o!==n;){t===o&&(s=!0);var r=oh(o),l=r.transform;if(a=r.position,"svg"===o.tagName.toLowerCase()||"static"!==a||l&&"none"!==l)break;o=o.parentElement,a="relative"}return{isStatic:"static"===a,isEnd:s||!o||o===n,offsetParent:o||n}}function Lp(e,t,i,n){var o,s=e.tagName.toLowerCase(),a=e.offsetLeft,r=e.offsetTop;if(n){var l=(t||document.documentElement).getBoundingClientRect();a-=l.left,r-=l.top}var d,c,u=Md(a),p=!u;return p||"svg"===s?c=(d=qp(i).map((function(e){return parseFloat(e)}))).slice():(c=(d=pp?Ap(e):qp(i).map((function(e){return parseFloat(e)}))).slice(),p=!0,a=(o=function(e,t){if(!e.getBBox)return[0,0];var i=e.getBBox(),n=Ip(e.ownerSVGElement),o=i.x-n.x,s=i.y-n.y;return[o,s,t[0]-o,t[1]-s]}(e,d))[0],r=o[1],d[0]=o[2],d[1]=o[3]),{tagName:s,isSVG:u,hasOffset:p,offset:[a||0,r||0],origin:d,targetOrigin:c}}function Mp(e,t,i){void 0===i&&(i=oh(e));var n=oh(document.body),o=n.position;if(!(t||o&&"static"!==o))return[0,0];var s=parseInt(n.marginLeft,10),a=parseInt(n.marginTop,10);return"absolute"===i.position&&("auto"===i.top&&"auto"===i.bottom||(a=0),"auto"===i.left&&"auto"===i.right||(s=0)),[s,a]}function Op(e){e.forEach((function(e){var t=e.matrix;t&&(e.matrix=eu(t,3,4))}))}function Rp(e,t){for(var i,n,o,s,a,r,l=e,d=[],c=e===t,u=!1,p=3,h=Tp(t,t,!0).offsetParent;l&&!c;){var g=oh(l),f=g.position,m="fixed"===f,v=(r=g.transform,s=r&&"none"!==r?Od(r)?r:zd(r).value.split(/s*,\s*/g).map((function(e){return parseFloat(e)})):[1,0,0,1,0,0],void 0===(a=void 0)&&(a=6===s.length),a?[s[0],s[1],0,s[2],s[3],0,s[4],s[5],1]:s),b=v.length;u||16!==b||(u=!0,p=4,Op(d)),u&&9===b&&(v=eu(v,3,4));var y=Lp(l,t,g,m),_=y.tagName,x=y.hasOffset,w=y.isSVG,S=y.origin,C=y.targetOrigin,k=y.offset,E=k[0],A=k[1];"svg"===_&&o?(d.push({type:"target",target:l,matrix:Dp(l,p)}),d.push({type:"offset",target:l,matrix:fu(p)})):"g"===_&&e!==l&&(E=0,A=0);var q=Tp(l,t),T=q.offsetParent,L=q.isEnd,M=q.isStatic;up&&x&&!w&&M&&("relative"===f||"static"===f)&&(E-=T.offsetLeft,A-=T.offsetTop,c=c||L);var O=0,R=0;if(x&&h!==T&&(O=T.clientLeft,R=T.clientTop),x&&T===document.body){var N=Mp(l,!1,g);E+=N[0],A+=N[1]}if(d.push({type:"target",target:l,matrix:Ep(v,p,S)}),x?d.push({type:"offset",target:l,matrix:vu([E-l.scrollLeft+O,A-l.scrollTop+R],p)}):d.push({type:"offset",target:l,origin:S}),o||(o=v),i||(i=S),n||(n=C),c||m)break;l=T,c=L}return o||(o=fu(p)),i||(i=[0,0]),n||(n=[0,0]),{offsetContainer:h,matrixes:d,targetMatrix:o,transformOrigin:i,targetOrigin:n,is3d:u}}function Np(e,t,i,n){var o;void 0===i&&(i=t);var s=0,a=0,r=0,l={};if(e){var d=oh(e);s=e.offsetWidth,a=e.offsetHeight,Md(s)&&(s=(o=Vp(e,d,!0))[0],a=o[1])}if(e){var c=function(e,t,i,n){void 0===i&&(i=t);var o=Rp(e,t),s=o.matrixes,a=o.is3d,r=o.targetMatrix,l=o.transformOrigin,d=o.targetOrigin,c=Rp(o.offsetContainer,i),u=c.matrixes,p=c.is3d,h=n||p||a,g=h?4:3,f="svg"!==e.tagName.toLowerCase()&&"ownerSVGElement"in e,m=r,v=fu(g),b=fu(g),y=fu(g),_=fu(g),x=s.length,w=i||document.body,S=Tp(w,w,!0).offsetParent;u.reverse(),s.reverse(),!a&&h&&(m=eu(m,3,4),Op(s));!p&&h&&Op(u);u.forEach((function(e){b=iu(b,e.matrix,g)})),s.forEach((function(e,t){if(x-2===t&&(y=v.slice()),x-1===t&&(_=v.slice()),!e.matrix){var i=function(e,t,i,n,o){var s,a=e.target,r=e.origin,l=t.matrix,d=Vp(a,void 0,!0),c=d[0],u=d[1],p=i.getBoundingClientRect(),h=[0,0];i===document.body&&(h=Mp(a,!0));var g=a.getBoundingClientRect(),f=g.left-p.left+i.scrollLeft-(i.clientLeft||0)+h[0],m=g.top-p.top+i.scrollTop-(i.clientTop||0)+h[1],v=g.width,b=g.height,y=tu(n,o,l),_=zp(y,c,u,n),x=_.left,w=_.top,S=_.width,C=_.height,k=$p(y,r,n),E=ou(k,[x,w]),A=[f+E[0]*v/S,m+E[1]*b/C],q=[0,0],T=0;for(;++T<10;){var L=Qc(o,n);s=ou($p(L,A,n),$p(L,k,n)),q[0]=s[0],q[1]=s[1];var M=zp(tu(n,o,vu(q,n),l),c,u,n),O=M.left-f,R=M.top-m;if(Math.abs(O)<2&&Math.abs(R)<2)break;A[0]-=O,A[1]-=R}return q.map((function(e){return Math.round(e)}))}(e,s[t+1],S,g,iu(b,v,g));e.matrix=vu(i,g)}v=iu(v,e.matrix,g)}));var C=!f&&a;m||(m=fu(C?4:3));var k=Bp(f&&16===m.length?eu(m,4,3):m,C);return{rootMatrix:b=Zc(b,g,g),beforeMatrix:y,offsetMatrix:_,allMatrix:v,targetMatrix:m,targetTransform:k,transformOrigin:l,targetOrigin:d,is3d:h}}(e,t,i,n),u=Fp(c.allMatrix,c.transformOrigin,s,a);l=ap(ap({},c),u);var p=Fp(c.allMatrix,[50,50],100,100);r=Yp([p.pos1,p.pos2],p.direction)}var h=n?4:3;return ap({width:s,height:a,rotation:r,rootMatrix:fu(h),beforeMatrix:fu(h),offsetMatrix:fu(h),allMatrix:fu(h),targetMatrix:fu(h),targetTransform:"",transformOrigin:[0,0],targetOrigin:[0,0],is3d:!!n,left:0,top:0,right:0,bottom:0,origin:[0,0],pos1:[0,0],pos2:[0,0],pos3:[0,0],pos4:[0,0],direction:1},l)}function Bp(e,t){return void 0===t&&(t=e.length>9),(t?"matrix3d":"matrix")+"("+su(e,!t).join(",")+")"}function Ip(e){var t=e.clientWidth,i=e.clientHeight;if(!e)return{x:0,y:0,width:0,height:0,clientWidth:t,clientHeight:i};var n=e.viewBox,o=n&&n.baseVal||{x:0,y:0,width:0,height:0};return{x:o.x,y:o.y,width:o.width||t,height:o.height||i,clientWidth:t,clientHeight:i}}function Dp(e,t){var i=Ip(e),n=i.width,o=i.height,s=i.clientWidth,a=i.clientHeight,r=s/n,l=a/o,d=e.preserveAspectRatio.baseVal,c=d.align,u=d.meetOrSlice,p=[0,0],h=[r,l],g=[0,0];if(1!==c){var f=(c-2)%3,m=Math.floor((c-2)/3);p[0]=n*f/2,p[1]=o*m/2;var v=2===u?Math.max(l,r):Math.min(r,l);h[0]=v,h[1]=v,g[0]=(s-n)/2*f,g[1]=(a-o)/2*m}var b=mu(h,t);return b[t*(t-1)]=g[0],b[t*(t-1)+1]=g[1],Ep(b,t,p)}function $p(e,t,i){return au(e,Jc(t,i),i)}function Pp(e,t,i,n){return[[0,0],[t,0],[0,i],[t,i]].map((function(t){return $p(e,t,n)}))}function Hp(e){var t=e.map((function(e){return e[0]})),i=e.map((function(e){return e[1]})),n=Math.min.apply(Math,t),o=Math.min.apply(Math,i),s=Math.max.apply(Math,t),a=Math.max.apply(Math,i);return{left:n,top:o,right:s,bottom:a,width:s-n,height:a-o}}function zp(e,t,i,n){return Hp(Pp(e,t,i,n))}function Fp(e,t,i,n){var o=16===e.length?4:3,s=Pp(e,i,n,o),a=s[0],r=a[0],l=a[1],d=s[1],c=d[0],u=d[1],p=s[2],h=p[0],g=p[1],f=s[3],m=f[0],v=f[1],b=$p(e,t,o),y=b[0],_=b[1],x=Math.min(r,c,h,m),w=Math.min(l,u,g,v),S=Math.max(r,c,h,m);return r=r-x||0,{left:x,top:w,right:S,bottom:Math.max(l,u,g,v),origin:[y=y-x||0,_=_-w||0],pos1:[r,l=l-w||0],pos2:[c=c-x||0,u=u-w||0],pos3:[h=h-x||0,g=g-w||0],pos4:[m=m-x||0,v=v-w||0],direction:Jd(s)}}function jp(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function Up(e,t){return jp([t[0]-e[0],t[1]-e[1]])}function Wp(e,t,i,n){void 0===i&&(i=1),void 0===n&&(n=Qd(e,t));var o=Up(e,t);return{transform:"translateY(-50%) translate("+e[0]+"px, "+e[1]+"px) rotate("+n+"rad) scaleY("+i+")",width:o+"px"}}function Gp(e,t){for(var i=[],n=2;n<arguments.length;n++)i[n-2]=arguments[n];var o=i.length,s=i.reduce((function(e,t){return e+t[0]}),0)/o,a=i.reduce((function(e,t){return e+t[1]}),0)/o;return{transform:"translateZ(0px) translate("+s+"px, "+a+"px) rotate("+e+"rad) scale("+t+")"}}function Vp(e,t,i,n){void 0===t&&(t=oh(e)),void 0===n&&(n=i||"border-box"===t.boxSizing);var o=e.offsetWidth,s=e.offsetHeight,a=!Md(o);if((i||n)&&a)return[o,s];if(!a&&"svg"!==e.tagName.toLowerCase()){var r=e.getBBox();return[r.width,r.height]}return o=e.clientWidth,s=e.clientHeight,i||n?[o+(parseFloat(t.borderLeftWidth)||0)+(parseFloat(t.borderRightWidth)||0),s+(parseFloat(t.borderTopWidth)||0)+(parseFloat(t.borderBottomWidth)||0)]:[o-(parseFloat(t.paddingLeft)||0)-(parseFloat(t.paddingRight)||0),s-(parseFloat(t.paddingTop)||0)-(parseFloat(t.paddingBottom)||0)]}function Yp(e,t){return Qd(t>0?e[0]:e[1],t>0?e[1]:e[0])}function Xp(e,t,i,n,o){var s=1,a=[0,0],r={left:0,right:0,top:0,bottom:0,width:0,height:0,clientLeft:0,clientTop:0,clientWidth:0,clientHeight:0,scrollWidth:0,scrollHeight:0},l={left:0,right:0,top:0,bottom:0,width:0,height:0,clientLeft:0,clientTop:0,clientWidth:0,clientHeight:0,scrollWidth:0,scrollHeight:0},d={left:0,right:0,top:0,bottom:0,width:0,height:0,clientLeft:0,clientTop:0,clientWidth:0,clientHeight:0,scrollWidth:0,scrollHeight:0},c=Np(t,i,o,!1);if(t){var u=c.is3d?4:3,p=Fp(c.offsetMatrix,nu(c.transformOrigin,function(e,t){void 0===t&&(t=Math.sqrt(e.length));for(var i=[],n=e[t*t-1],o=0;o<t-1;++o)i[o]=e[t*(t-1)+o]/n;return i[t-1]=0,i}(c.targetMatrix,u)),c.width,c.height);s=p.direction,a=nu(p.origin,[p.left-c.left,p.top-c.top]),r=Kp(t),l=Kp(Tp(n,n,!0).offsetParent||document.body,!0),e&&(d=Kp(e))}return ap({targetClientRect:r,containerClientRect:l,moveableClientRect:d,beforeDirection:s,beforeOrigin:a,originalBeforeOrigin:a,target:t},c)}function Kp(e,t){var i=0,n=0,o=0,s=0;if(e===document.body||e===document.documentElement)o=window.innerWidth,s=window.innerHeight,i=-(document.documentElement.scrollLeft||document.body.scrollLeft),n=-(document.documentElement.scrollTop||document.body.scrollTop);else{var a=e.getBoundingClientRect();i=a.left,n=a.top,o=a.width,s=a.height}var r={left:i,right:i+o,top:n,bottom:n+s,width:o,height:s};return t&&(r.clientLeft=e.clientLeft,r.clientTop=e.clientTop,r.clientWidth=e.clientWidth,r.clientHeight=e.clientHeight,r.scrollWidth=e.scrollWidth,r.scrollHeight=e.scrollHeight,r.overflow="visible"!==oh(e).overflow),r}function Zp(e){if(e){var t=e.getAttribute("data-direction");if(t){var i=[0,0];return t.indexOf("w")>-1&&(i[0]=-1),t.indexOf("e")>-1&&(i[0]=1),t.indexOf("n")>-1&&(i[1]=-1),t.indexOf("s")>-1&&(i[1]=1),i}}}function Qp(e,t){return[nu(t,e[0]),nu(t,e[1]),nu(t,e[2]),nu(t,e[3])]}function Jp(e){var t=e.left,i=e.top;return Qp([e.pos1,e.pos2,e.pos3,e.pos4],[t,i])}function eh(e,t){e[t]&&(e[t].unset(),e[t]=null)}function th(e,t,i){var n=t.datas;n.datas||(n.datas={});var o=ap(ap({},i),{target:e.state.target,clientX:t.clientX,clientY:t.clientY,inputEvent:t.inputEvent,currentTarget:e,moveable:e,datas:n.datas});return n.isStartEvent?n.lastEvent=o:n.isStartEvent=!0,o}function ih(e,t,i){var n=t.datas,o="isDrag"in i?i.isDrag:t.isDrag;return n.datas||(n.datas={}),ap(ap({isDrag:o},i),{moveable:e,target:e.state.target,clientX:t.clientX,clientY:t.clientY,inputEvent:t.inputEvent,currentTarget:e,lastEvent:n.lastEvent,isDouble:t.isDouble,datas:n.datas})}function nh(e,t,i,n){return e.triggerEvent(t,i,n)}function oh(e,t){return window.getComputedStyle(e,t)}function sh(e,t,i){var n={},o={};return e.filter((function(e){var s=e.name;if(n[s]||!t.some((function(t){return e[t]})))return!1;if(!i&&e.ableGroup){if(o[e.ableGroup])return!1;o[e.ableGroup]=!0}return n[s]=!0,!0}))}function ah(e,t){return e===t||null==e&&null==t}function rh(e,t){var i=[],n=[];return e.forEach((function(o,s){var a=t(o,s,e),r=n.indexOf(a),l=i[r]||[];-1===r&&(n.push(a),i.push(l)),l.push(o)})),i}function lh(e){return e.reduce((function(e,t){return e.concat(t)}),[])}function dh(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.sort((function(e,t){return Math.abs(t)-Math.abs(e)})),e[0]}function ch(e,t,i){return au(Qc(e,i),Jc(t,i),i)}function uh(e,t){var i,n=e.is3d?4:3;return i=ch(e.rootMatrix,[t.distX,t.distY],n),t.distX=i[0],t.distY=i[1],t}function ph(e,t,i,n,o){return ou($p(e,nu(i,t),o),n)}function hh(e,t,i){return i?e/t*100+"%":e+"px"}function gh(e){return Math.abs(e)<=vp?0:e}function fh(e,t){return t.isRequest?("resizable"===t.requestAble||"scalable"===t.requestAble)&&t.parentDirection:nc(t.inputEvent.target,kp("direction"))}function mh(e){var t={};for(var i in e)t[e[i]]=i;return t}function vh(e,t){return e?Nd(e)?t?document.querySelector(e):e:Bd(e)?e():"current"in e?e.current:e:null}function bh(e,t){return e?((i=e)&&Od(i)&&(Rd(i)||"length"in i)?[].slice.call(e):[e]).reduce((function(e,i){return Nd(i)&&t?rp(e,[].slice.call(document.querySelectorAll(i))):(e.push(vh(i,t)),e)}),[]):[];var i}function yh(e,t){var i=e.rootMatrix,n=e.is3d,o=Qc(i,n?4:3);return n||(o=eu(o,3,4)),o[12]=0,o[13]=0,o[14]=0,function(e,t){var i=au(e,[t[0],t[1]||0,t[2]||0,1],4),n=i[3]||1;return[i[0]/n,i[1]/n,i[2]/n]}(o,t)}var _h=lp("pinchable",{events:{onPinchStart:"pinchStart",onPinch:"pinch",onPinchEnd:"pinchEnd",onPinchGroupStart:"pinchGroupStart",onPinchGroup:"pinchGroup",onPinchGroupEnd:"pinchGroupEnd"},dragStart:function(){return!0},pinchStart:function(e,t){var i=t.datas,n=t.targets,o=t.angle,s=t.originalDatas,a=e.props,r=a.pinchable,l=a.ables;if(!r)return!1;var d="onPinch"+(n?"Group":"")+"Start",c="drag"+(n?"Group":"")+"ControlStart",u=(!0===r?e.controlAbles:l.filter((function(e){return r.indexOf(e.name)>-1}))).filter((function(e){return e.canPinch&&e[c]})),p=th(e,t,{});n&&(p.targets=n);var h=nh(e,d,p);i.isPinch=!1!==h,i.ables=u;var g=i.isPinch;return!!g&&(u.forEach((function(i){if(s[i.name]=s[i.name]||{},i[c]){var n=ap(ap({},t),{datas:s[i.name],parentRotate:o,isPinch:!0});i[c](e,n)}})),e.state.snapRenderInfo={request:t.isRequest,direction:[0,0]},g)},pinch:function(e,t){var i=t.datas,n=t.scale,o=t.distance,s=t.originalDatas,a=t.inputEvent,r=t.targets,l=t.angle;if(i.isPinch){var d=o*(1-1/n),c=th(e,t,{});r&&(c.targets=r),nh(e,"onPinch"+(r?"Group":""),c);var u=i.ables,p="drag"+(r?"Group":"")+"Control";return u.forEach((function(i){i[p]&&i[p](e,ap(ap({},t),{datas:s[i.name],inputEvent:a,parentDistance:d,parentRotate:l,isPinch:!0}))})),c}},pinchEnd:function(e,t){var i=t.datas,n=t.isPinch,o=t.inputEvent,s=t.targets,a=t.originalDatas;if(i.isPinch){var r="onPinch"+(s?"Group":"")+"End",l=ih(e,t,{isDrag:n});s&&(l.targets=s),nh(e,r,l);var d=i.ables,c="drag"+(s?"Group":"")+"ControlEnd";return d.forEach((function(i){i[c]&&i[c](e,ap(ap({},t),{isDrag:n,datas:a[i.name],inputEvent:o,isPinch:!0}))})),n}},pinchGroupStart:function(e,t){return this.pinchStart(e,ap(ap({},t),{targets:e.props.targets}))},pinchGroup:function(e,t){return this.pinch(e,ap(ap({},t),{targets:e.props.targets}))},pinchGroupEnd:function(e,t){return this.pinchEnd(e,ap(ap({},t),{targets:e.props.targets}))}});function xh(e,t,i,n,o){var s=t.gesto.move(i,e.inputEvent),a=s.originalDatas||s.datas,r=a.draggable||(a.draggable={});return ap(ap({},o?uh(t,s):s),{isDrag:!0,isPinch:!!n,parentEvent:!0,datas:r,originalDatas:e.originalDatas})}var wh=function(){function e(){this.prevX=0,this.prevY=0,this.startX=0,this.startY=0,this.isDrag=!1,this.isFlag=!1,this.datas={draggable:{}}}var t=e.prototype;return t.dragStart=function(e,t){this.isDrag=!1,this.isFlag=!1;var i=t.originalDatas;return this.datas=i,i.draggable||(i.draggable={}),ap(ap({},this.move(e,t.inputEvent)),{type:"dragstart"})},t.drag=function(e,t){return this.move([e[0]-this.prevX,e[1]-this.prevY],t)},t.move=function(e,t){var i,n;return this.isFlag?(i=this.prevX+e[0],n=this.prevY+e[1],this.isDrag=!0):(this.prevX=e[0],this.prevY=e[1],this.startX=e[0],this.startY=e[1],i=e[0],n=e[1],this.isFlag=!0),this.prevX=i,this.prevY=n,{type:"drag",clientX:i,clientY:n,inputEvent:t,isDrag:this.isDrag,distX:i-this.startX,distY:n-this.startY,deltaX:e[0],deltaY:e[1],datas:this.datas.draggable,originalDatas:this.datas,parentEvent:!0,parentGesto:this}},e}();function Sh(e,t,i){var n=i.originalDatas;n.groupable=n.groupable||{};var o=n.groupable;o.childDatas=o.childDatas||[];var s=o.childDatas;return e.moveables.map((function(e,n){return s[n]=s[n]||{},s[n][t]=s[n][t]||{},ap(ap({},i),{datas:s[n][t],originalDatas:s[n]})}))}function Ch(e,t,i,n,o,s){var a=!!i.match(/Start$/g),r=!!i.match(/End$/g),l=o.isPinch,d=o.datas,c=Sh(e,t.name,o),u=e.moveables,p=c.map((function(e,o){var c=u[o],p=e;a?p=(new wh).dragStart(n,e):(c.state.gesto||(c.state.gesto=d.childGestos[o]),p=xh(e,c.state,n,l,s));var h=t[i](c,ap(ap({},p),{parentFlag:!0}));return r&&(c.state.gesto=null),h}));return a&&(d.childGestos=u.map((function(e){return e.state.gesto}))),p}function kh(e,t,i,n,o,s){void 0===o&&(o=function(e,t){return t});var a=!!i.match(/End$/g),r=Sh(e,t.name,n),l=e.moveables;return r.map((function(e,n){var r,d=l[n];r=o(d,e);var c=t[i](d,ap(ap({},r),{parentFlag:!0}));return c&&s&&s(d,e,c,n),a&&(d.state.gesto=null),c}))}function Eh(e,t){var i=t.clientX,n=t.clientY,o=t.datas,s=e.state,a=s.moveableClientRect,r=s.rootMatrix,l=s.is3d,d=s.pos1,c=ou(ch(r,[i-a.left,n-a.top],l?4:3),d),u=Rh({datas:o,distX:c[0],distY:c[1]});return[u[0],u[1]]}function Ah(e,t){var i=t.datas,n=e.state,o=n.allMatrix,s=n.beforeMatrix,a=n.is3d,r=n.left,l=n.top,d=n.origin,c=n.offsetMatrix,u=n.targetMatrix,p=n.transformOrigin,h=a?4:3;i.is3d=a,i.matrix=o,i.targetMatrix=u,i.beforeMatrix=s,i.offsetMatrix=c,i.transformOrigin=p,i.inverseMatrix=Qc(o,h),i.inverseBeforeMatrix=Qc(s,h),i.absoluteOrigin=Jc(nu([r,l],d),h),i.startDragBeforeDist=au(i.inverseBeforeMatrix,i.absoluteOrigin,h),i.startDragDist=au(i.inverseMatrix,i.absoluteOrigin,h)}function qh(e,t){var i=e.datas,n=e.originalDatas.beforeRenderable,o=i.transformIndex,s=n.nextTransforms,a=n.nextTransformAppendedIndexes,r=-1===o?s.length:o+a.filter((function(e){return e<o})).length,l=function(e,t){var i=e.slice(0,t<0?void 0:t),n=e.slice(0,t<0?void 0:t+1),o=e[t]||"",s=t<0?[]:e.slice(t),a=t<0?[]:e.slice(t+1),r=_u(i),l=_u(n),d=_u([o]),c=_u(s),u=_u(a),p=yu(r),h=yu(l),g=yu(c),f=yu(u),m=iu(p,g,4);return{transforms:e,beforeFunctionMatrix:p,beforeFunctionMatrix2:h,targetFunctionMatrix:yu(d),afterFunctionMatrix:g,afterFunctionMatrix2:f,allFunctionMatrix:m,beforeFunctions:r,beforeFunctions2:l,targetFunction:d[0],afterFunctions:c,afterFunctions2:u,beforeFunctionTexts:i,beforeFunctionTexts2:n,targetFunctionText:o,afterFunctionTexts:s,afterFunctionTexts2:a}}(s,r),d=l.targetFunction,c="rotate"===t?"rotateZ":t;i.beforeFunctionTexts=l.beforeFunctionTexts,i.afterFunctionTexts=l.afterFunctionTexts,i.beforeTransform=l.beforeFunctionMatrix,i.beforeTransform2=l.beforeFunctionMatrix2,i.targetTansform=l.targetFunctionMatrix,i.afterTransform=l.afterFunctionMatrix,i.afterTransform2=l.afterFunctionMatrix2,i.targetAllTransform=l.allFunctionMatrix,d.functionName===c?(i.afterFunctionTexts.splice(0,1),i.isAppendTransform=!1):(i.isAppendTransform=!0,n.nextTransformAppendedIndexes=rp(a,[r]))}function Th(e,t,i){return e.beforeFunctionTexts.join(" ")+" "+(e.isAppendTransform?i:t)+" "+e.afterFunctionTexts.join(" ")}function Lh(e){var t=e.datas,i=Oh({datas:t,distX:e.distX,distY:e.distY});return au(Mh(t,function(e,t){for(var i=fu(t),n=0;n<t-1;++n)i[t*(t-1)+n]=e[n]||0;return i}([i[0],i[1]],4)),Jc([0,0,0],4),4)}function Mh(e,t,i){var n=e.beforeTransform,o=e.afterTransform,s=e.beforeTransform2,a=e.afterTransform2,r=e.targetAllTransform,l=i?iu(r,t,4):iu(t,r,4),d=iu(Qc(i?s:n,4),l,4);return iu(d,Qc(i?a:o,4),4)}function Oh(e){var t=e.datas,i=e.distX,n=e.distY,o=t.inverseBeforeMatrix,s=t.is3d,a=t.startDragBeforeDist,r=s?4:3;return ou(au(o,nu(t.absoluteOrigin,[i,n]),r),a)}function Rh(e,t){var i=e.datas,n=e.distX,o=e.distY,s=i.inverseBeforeMatrix,a=i.inverseMatrix,r=i.is3d,l=i.startDragBeforeDist,d=i.startDragDist,c=r?4:3;return ou(au(t?s:a,nu(i.absoluteOrigin,[n,o]),c),t?l:d)}function Nh(e){var t=[];return e[1]>=0&&(e[0]>=0&&t.push(3),e[0]<=0&&t.push(2)),e[1]<=0&&(e[0]>=0&&t.push(1),e[0]<=0&&t.push(0)),t}function Bh(e,t){return Nh(t).map((function(t){return e[t]}))}function Ih(e,t){var i=Bh(e,t);return[Zd(i.map((function(e){return e[0]}))),Zd(i.map((function(e){return e[1]})))]}function Dh(e,t,i,n){return iu(e,Ep(t,n,i),n)}function $h(e,t,i){var n=e.transformOrigin,o=e.offsetMatrix,s=e.is3d,a=t.beforeTransform,r=t.afterTransform,l=s?4:3;return Dh(o,eu(iu(iu(a,function(e){return yu(_u(e))}([i]),4),r,4),4,l),n,l)}function Ph(e){var t=e.originalDatas.beforeRenderable;return{setTransform:function(i,n){void 0===n&&(n=-1),t.startTransforms=Rd(i)?i:Pd(i),zh(e,n)},setTransformIndex:function(t){zh(e,t)}}}function Hh(e,t){zh(e,Wd(e.originalDatas.beforeRenderable.startTransforms,(function(e){return 0===e.indexOf(t+"(")})))}function zh(e,t){var i=e.originalDatas.beforeRenderable,n=e.datas;if(n.transformIndex=t,-1!==t){var o=i.startTransforms[t];if(o){var s=_u([o]);n.startValue=s[0].functionValue}}}function Fh(e,t){e.originalDatas.beforeRenderable.nextTransforms=Pd(t)}function jh(e,t,i,n,o){return Fh(o,t),{transform:t,drag:Kg.drag(e,xh(o,e.state,i,n,!1))}}function Uh(e,t,i,n,o){var s=e.state,a=s.left,r=s.top,l=e.props.groupable,d=l?a:0,c=l?r:0,u=ou(n,Gh(e,i,$h(e.state,o,t)));return ou(u,[d,c])}function Wh(e){var t=e.state,i=t.width,n=t.height,o=t.transformOrigin;return[o[0]/(i/2)-1,o[1]/(n/2)-1]}function Gh(e,t,i){void 0===i&&(i=e.state.allMatrix);var n=e.state,o=n.width,s=n.height,a=n.is3d?4:3;return $p(i,[o/2*(1+t[0]),s/2*(1+t[1])],a)}function Vh(e,t,i,n,o,s){var a=e.props.groupable,r=e.state,l=r.transformOrigin,d=r.targetMatrix,c=r.offsetMatrix,u=r.is3d,p=r.width,h=r.height,g=r.left,f=r.top,m=u?4:3,v=a?g:0,b=a?f:0;return ou(function(e,t,i,n,o,s){var a=Ih(Pp(t,i,n,o),s);return[e[0]-a[0],e[1]-a[1]]}(o,Dh(c,d,function(e,t,i,n,o,s){return void 0===n&&(n=t),void 0===o&&(o=i),void 0===s&&(s=[0,0]),e?e.map((function(e,a){var r=Fd(e),l=r.value,d=r.unit,c=a?o:n,u=a?i:t;return"%"===e||isNaN(l)?u*(c?s[a]/c:0):"%"!==d?l:u*l/100})):s}(s,t,i,p,h,l),m),t,i,m,n),[v,b])}function Yh(e,t){return Ih(Jp(e.state),t)}function Xh(e,t,i){var n=$p(e,[t.clientLeft,t.clientTop],i);return[t.left+n[0],t.top+n[1]]}function Kh(e,t,i,n,o,s){var a=o[0],r=o[1],l=s[0],d=s[1],c=[],u=n?0:1,p="vertical"===t?"horizontal":"vertical",h=rh(e.filter((function(e){return e.type===t})),(function(e){return e.element})).map((function(e){return e[0]})).filter((function(e){var t=e.pos,i=e.sizes;return t[u]<=d&&l<=t[u]+i[u]}));return h.forEach((function(e){var t=e.pos[n],o=t+e.sizes[n];h.forEach((function(e){var s=e.pos,l=e.sizes,d=e.element,u=e.className,g=s[n],f=g+l[n],m=0,v=0,b=!0;if(o<=g)a<(m=f-(v=o-g))-i&&(b=!1);else{if(!(f<=t))return;r>(m=g-(v=t-f))+i&&(b=!1)}if(b&&c.push({pos:"vertical"===p?[m,s[1]]:[s[0],m],element:d,sizes:l,size:0,type:p,gap:v,className:u,gapGuidelines:h}),o<=a&&r<=g){var y=(g+o-(r-a))/2;tc(a-(y-i),.1)>=0&&c.push({pos:"vertical"===p?[y,s[1]]:[s[0],y],className:u,element:d,sizes:l,size:0,type:p,gap:o-a,gapGuidelines:h})}}))})),c}function Zh(e,t,i,n,o,s,a){void 0===o&&(o=0),void 0===s&&(s=0),void 0===a&&(a={left:0,top:0,right:0,bottom:0});var r=[],l=a.left,d=a.top,c=a.bottom,u=i+a.right-l,p=n+c-d;return e&&e.forEach((function(e){r.push({type:"horizontal",pos:[l,tc(e-s+d,.1)],size:u})})),t&&t.forEach((function(e){r.push({type:"vertical",pos:[tc(e-o+l,.1),d],size:p})})),r}function Qh(e,t){var i=[];if(!t.length)return i;var n=e.state,o=e.props.snapCenter,s=n.containerClientRect,a=n.targetClientRect,r=a.top,l=a.left,d=n.rootMatrix,c=n.is3d?4:3,u=Xh(d,s,c),p=u[0],h=u[1],g=Su(Jp(n)),f=ou([g.minX,g.minY],ch(d,[l-p,r-h],c)).map((function(e){return t=e,Math.round(t%1==-.5?t-1:t);var t})),m=f[0],v=f[1];return t.forEach((function(e){var t=e.element,n=e.top,s=e.left,a=e.right,r=e.bottom,l=e.className,u=t.getBoundingClientRect(),g=u.left-p,f=u.top-h,b=f+u.height,y=g+u.width,_=ch(d,[g,f],c),x=_[0],w=_[1],S=ch(d,[y,b],c),C=S[0],k=S[1],E=C-x,A=k-w,q=[E,A];!1!==n&&i.push({type:"vertical",element:t,pos:[tc(x+m,.1),w],size:A,sizes:q,className:l}),!1!==r&&i.push({type:"vertical",element:t,pos:[tc(C+m,.1),w],size:A,sizes:q,className:l}),!1!==s&&i.push({type:"horizontal",element:t,pos:[x,tc(w+v,.1)],size:E,sizes:q,className:l}),!1!==a&&i.push({type:"horizontal",element:t,pos:[x,tc(k+v,.1)],size:E,sizes:q,className:l}),o&&(i.push({type:"vertical",element:t,pos:[tc((x+C)/2+m,.1),w],size:A,sizes:q,center:!0,className:l}),i.push({type:"horizontal",element:t,pos:[x,tc((w+k)/2+v,.1)],size:E,sizes:q,center:!0,className:l}))})),i}function Jh(e,t,i){void 0===i&&(i=[]);var n=[],o=e.state;if(t&&o.guidelines&&o.guidelines.length)return n;var s=e.props.elementGuidelines,a=void 0===s?[]:s;if(!a.length)return n;var r=o.elementGuidelineValues||[],l=a.map((function(e){return Od(e)&&"element"in e?e:{element:vh(e,!0)}})).filter((function(e){return e.element}));o.elementGuidelineValues=l;var d,c,u=(d=r.map((function(e){return e.element})),c=l.map((function(e){return e.element})),Ed(d,c,Ou)),p=u.added,h=u.removed.map((function(e){return r[e].element})),g=Qh(e,p.map((function(e){return l[e]})).filter((function(e){return e.refresh&&t||!e.refresh&&!t})));return rp(i.filter((function(e){return-1===h.indexOf(e.element)})),g)}function eg(e){var t=e.state,i=t.snapOffset,n=t.staticGuidelines,o=t.containerClientRect,s=o.overflow,a=o.scrollHeight,r=o.scrollWidth,l=o.clientHeight,d=o.clientWidth,c=o.clientLeft,u=o.clientTop,p=e.props,h=p.snapHorizontal,g=void 0===h||h,f=p.snapVertical,m=void 0===f||f,v=p.snapGap,b=void 0===v||v,y=p.verticalGuidelines,_=p.horizontalGuidelines,x=p.snapThreshold,w=void 0===x?5:x,S=p.snapGridWidth,C=void 0===S?0:S,k=p.snapGridHeight,E=void 0===k?0:k,A=rp(n,Jh(e,!0));if(b){var q=Hp(Jp(e.state)),T=q.top,L=q.left,M=q.bottom,O=q.right,R=n.filter((function(e){return e.element}));A.push.apply(A,rp(Kh(R,"horizontal",w,0,[L,O],[T,M]),Kh(R,"vertical",w,1,[T,M],[L,O])))}return A.push.apply(A,function(e,t,i,n,o,s){void 0===o&&(o=0);void 0===s&&(s=0);var a=[];if(t)for(var r=0;r<=n;r+=t)a.push({type:"horizontal",pos:[0,tc(r-s,.1)],size:i,hide:!0});if(e)for(r=0;r<=i;r+=e)a.push({type:"vertical",pos:[tc(r-o,.1),0],size:n,hide:!0});return a}(C,E,s?r:d,s?a:l,c,u)),A.push.apply(A,Zh(g&&_||!1,m&&y||!1,s?r:d,s?a:l,c,u,i)),A}function tg(e,t,i,n,o){var s=e.props,a=s.snapElement,r=void 0===a||a,l=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var i=e.length-1,n=0;n<i;++n){var o=e[n];if(!Md(o))return o}return e[i]}(o,s.snapThreshold,5);return ig(e.state.guidelines,t,i,{snapThreshold:l,snapCenter:n,snapElement:r})}function ig(e,t,i,n){return{vertical:sg(e,"vertical",t,n),horizontal:sg(e,"horizontal",i,n)}}function ng(e,t,i,n){var o=e.props.snapCenter&&i,s=["left","right"],a=["top","bottom"];return o&&(s.push("center"),a.push("middle")),s=s.filter((function(e){return e in t})),a=a.filter((function(e){return e in t})),tg(e,s.map((function(e){return t[e]})),a.map((function(e){return t[e]})),o,n)}function og(e){var t=e.isSnap;if(!t)return{isSnap:!1,offset:0,dist:-1,pos:0,guideline:null};var i=e.posInfos[0],n=i.guidelineInfos[0],o=n.offset,s=n.dist,a=n.guideline;return{isSnap:t,offset:o,dist:s,pos:i.pos,guideline:a}}function sg(e,t,i,n){var o=void 0===n?{}:n,s=o.snapThreshold,a=void 0===s?5:s,r=o.snapElement,l=o.snapCenter;if(!e||!e.length)return{isSnap:!1,index:-1,posInfos:[]};var d="vertical"===t?0:1,c=i.map((function(i,n){var o=e.map((function(e){var t=e.pos,n=i-t[d];return{offset:n,dist:Math.abs(n),guideline:e}})).filter((function(e){var i=e.guideline,n=e.dist,o=i.type,s=i.center,d=i.element;return!(!r&&d||!l&&s||o!==t||n>a)})).sort((function(e,t){return e.dist-t.dist}));return{pos:i,index:n,guidelineInfos:o}})).filter((function(e){return e.guidelineInfos.length>0})).sort((function(e,t){return e.guidelineInfos[0].dist-t.guidelineInfos[0].dist})),u=c.length>0;return{isSnap:u,index:u?c[0].index:-1,posInfos:c}}function ag(e,t){var i=Math.abs(e.offset),n=Math.abs(t.offset);return e.isBound&&t.isBound?n-i:e.isBound?-1:t.isBound?1:e.isSnap&&t.isSnap?n-i:e.isSnap?-1:t.isSnap||i<vp?1:n<vp?-1:i-n}function rg(e,t){return e.slice().sort((function(e,i){var n=e.sign[t],o=i.sign[t],s=e.offset[t],a=i.offset[t];return n?o?ag({isBound:e.isBound,isSnap:e.isSnap,offset:s},{isBound:i.isBound,isSnap:i.isSnap,offset:a}):-1:1}))[0]}function lg(e,t){var i=Zd([t[0][0],t[1][0]]),n=Zd([t[0][1],t[1][1]]);return{vertical:i<=e[0],horizontal:n<=e[1]}}function dg(e,t){var i,n,o=t[0],s=t[1],a=s[0]-o[0],r=s[1]-o[1];if(Math.abs(a)<vp&&(a=0),Math.abs(r)<vp&&(r=0),a)if(r){i=r/a*(e[0]-o[0])+o[1],n=e[1]}else i=o[1],n=e[1];else i=o[0],n=e[0];return i-n}function cg(e,t,i){void 0===i&&(i=vp);var n=dg(e[0],t)<=0;return e.slice(1).every((function(e){var o=dg(e,t);return o<=0===n||Math.abs(o)<=i}))}function ug(e,t,i,n,o){return void 0===o&&(o=0),n&&t-o<=e||!n&&e<=i+o?{isBound:!0,offset:n?t-e:i-e}:{isBound:!1,offset:0}}function pg(e,t,i,n,o){var s=e[0],a=e[1],r=t[0],l=t[1],d=gh(a[1]-s[1]),c=gh(a[0]-s[0]),u=gh(l[1]-r[1]);if(!gh(l[0]-r[0])){if(o&&!d)return{isBound:!1,offset:0};if(c)return ug(d/c*(r[0]-s[0])+s[1],r[1],l[1],i,n);var p=r[0]-s[0];return{isBound:h=Math.abs(p)<=(n||0),offset:h?p:0}}if(!u){if(o&&!c)return{isBound:!1,offset:0};if(d)return ug((r[1]-s[1])/(d/c)+s[0],r[0],l[0],i,n);var h;p=r[1]-s[1];return{isBound:h=Math.abs(p)<=(n||0),offset:h?p:0}}return{isBound:!1,offset:0}}function hg(e,t,i,n){return t.map((function(t){var o=t[0],s=t[1],a=t[2],r=function(e,t,i){var n=e.props.innerBounds;if(!n)return{isAllBound:!1,isBound:!1,isVerticalBound:!1,isHorizontalBound:!1,offset:[0,0]};var o=n.left,s=n.top,a=n.width,r=n.height,l=[[o,s],[o,s+r]],d=[[o,s],[o+a,s]],c=[[o+a,s],[o+a,s+r]],u=[[o,s+r],[o+a,s+r]],p=lg(i,t),h=p.horizontal,g=p.vertical;if(cg([i,[o,s],[o+a,s],[o,s+r],[o+a,s+r]],t))return{isAllBound:!1,isBound:!1,isVerticalBound:!1,isHorizontalBound:!1,offset:[0,0]};var f=pg(t,d,g),m=pg(t,u,g),v=pg(t,l,h),b=pg(t,c,h),y=f.isBound&&m.isBound,_=f.isBound||m.isBound,x=v.isBound&&b.isBound,w=v.isBound||b.isBound,S=dh(f.offset,m.offset),C=dh(v.offset,b.offset),k=[0,0],E=!1,A=!1;return Math.abs(C)<Math.abs(S)?(k=[S,0],E=_,A=y):(k=[0,C],E=w,A=x),{isAllBound:A,isVerticalBound:_,isHorizontalBound:w,isBound:E,offset:k}}(e,[s,a],i),l=r.isBound,d=r.offset,c=r.isVerticalBound,u=r.isHorizontalBound,p=Rh({datas:n,distX:d[0],distY:d[1]}).map((function(e,t){return e*(o[t]?2/o[t]:0)}));return{sign:o,isBound:l,isVerticalBound:c,isHorizontalBound:u,isSnap:!1,offset:p}}))}function gg(e,t,i){var n,o=hg(e,fg(t,[0,0],!1).map((function(e){var t=e[0],i=e[1],n=e[2];return[t.map((function(e){return 2*Math.abs(e)})),i,n]})),Ih(t,[0,0]),i),s=rg(o,0),a=rg(o,1),r=0,l=0,d=s.isVerticalBound||a.isVerticalBound,c=s.isHorizontalBound||a.isHorizontalBound;return(d||c)&&(r=(n=function(e,t){var i=e.datas,n=e.distX,o=e.distY,s=i.beforeMatrix,a=i.matrix,r=i.is3d,l=i.startDragBeforeDist,d=i.startDragDist,c=i.absoluteOrigin,u=r?4:3;return ou(au(t?s:a,nu(t?l:d,[n,o]),u),c)}({datas:i,distX:-s.offset[0],distY:-a.offset[1]}))[0],l=n[1]),{vertical:{isBound:d,offset:r},horizontal:{isBound:c,offset:l}}}function fg(e,t,i){return function(e,t){var i=[],n=e[0],o=e[1];return n&&o?i.push([[0,2*o],e,[-n,o]],[[2*n,0],e,[n,-o]]):n?(i.push([[2*n,0],[n,1],[n,-1]]),t&&i.push([[0,-1],[n,-1],[-n,-1]],[[0,1],[n,1],[-n,1]])):o?(i.push([[0,2*o],[1,o],[-1,o]]),t&&i.push([[-1,0],[-1,o],[-1,-o]],[[1,0],[1,o],[1,-o]])):i.push([[-1,0],[-1,-1],[-1,1]],[[1,0],[1,-1],[1,1]],[[0,-1],[-1,-1],[1,-1]],[[0,1],[-1,1],[1,1]]),i}(t,i).map((function(t){var i=t[0],n=t[1],o=t[2];return[i,Ih(e,n),Ih(e,o)]}))}function mg(e,t,i,n){var o=n?e.map((function(e){return uu(e,n)})):e,s=rp([i],t);return[[o[0],o[1]],[o[1],o[3]],[o[3],o[2]],[o[2],o[0]]].some((function(e){return!cg(s,e)}))}function vg(e,t,i,n,o){var s=e.props.innerBounds,a=o*Math.PI/180;if(!s)return[];var r=s.left,l=s.top,d=s.width,c=s.height,u=r-n[0],p=r+d-n[0],h=l-n[1],g=l+c-n[1],f=[[u,h],[p,h],[u,g],[p,g]],m=Ih(i,[0,0]);if(!mg(i,f,m,0))return[];var v=[],b=f.map((function(e){return[jp(e),Qd([0,0],e)]}));return[[i[0],i[1]],[i[1],i[3]],[i[3],i[2]],[i[2],i[0]]].forEach((function(e){var i=Qd([0,0],function(e){var t=e[0],i=e[1],n=i[0]-t[0],o=i[1]-t[1];if(!n)return[t[0],0];if(!o)return[0,t[1]];var s=o/n,a=-s*t[0]+t[1];return[-a/(s+1/s),a/(s*s+1)]}(e)),n=function(e){var t=e[0],i=e[1],n=i[0]-t[0],o=i[1]-t[1];if(!n)return Math.abs(t[0]);if(!o)return Math.abs(t[1]);var s=o/n;return Math.abs((-s*t[0]+t[1])/Math.sqrt(Math.pow(s,2)+1))}(e);v.push.apply(v,b.filter((function(e){var t=e[0];return t&&n<=t})).map((function(e){var t=e[0],o=e[1],s=Math.acos(t?n/t:0);return[a+(o+s)-i,a+(o-s)-i]})).reduce((function(e,t){return e.push.apply(e,t),e}),[]).filter((function(e){return!mg(t,f,m,e)})).map((function(e){return tc(180*e/Math.PI,vp)})))})),v}function bg(e,t,i){var n=e||{},o=n.position,s=void 0===o?"client":o,a=n.left,r=void 0===a?-1/0:a,l=n.top,d=void 0===l?-1/0:l,c=n.right,u=void 0===c?1/0:c,p=n.bottom,h={position:s,left:r,top:d,right:u,bottom:void 0===p?1/0:p};return{vertical:_g(h,t,!0),horizontal:_g(h,i,!1)}}function yg(e,t){var i=e.state,n=i.containerClientRect,o=n.clientHeight,s=n.clientWidth,a=n.clientLeft,r=n.clientTop,l=i.snapOffset,d=l.left,c=l.top,u=l.right,p=l.bottom,h=t||e.props.bounds||{},g="css"===(h.position||"client"),f=h.left,m=void 0===f?-1/0:f,v=h.top,b=void 0===v?-1/0:v,y=h.right,_=void 0===y?g?-1/0:1/0:y,x=h.bottom,w=void 0===x?g?-1/0:1/0:x;return g&&(_=s+u-d-_,w=o+p-c-w),{left:m+d-a,right:_+d-a,top:b+c-r,bottom:w+c-r}}function _g(e,t,i){var n=e[i?"left":"top"],o=e[i?"right":"bottom"],s=Math.min.apply(Math,t),a=Math.max.apply(Math,t),r=[];return n+1>s&&r.push({isBound:!0,offset:s-n,pos:n}),o-1<a&&r.push({isBound:!0,offset:a-o,pos:o}),r.length||r.push({isBound:!1,offset:0,pos:0}),r.sort((function(e,t){return Math.abs(t.offset)-Math.abs(e.offset)}))}function xg(e,t,i){return(i?e.map((function(e){return uu(e,i)})):e).some((function(e){return e[0]<t.left&&Math.abs(e[0]-t.left)>.1||e[0]>t.right&&Math.abs(e[0]-t.right)>.1||e[1]<t.top&&Math.abs(e[1]-t.top)>.1||e[1]>t.bottom&&Math.abs(e[1]-t.bottom)>.1}))}function wg(e,t,i,n,o){if(!e.props.bounds)return[];var s=o*Math.PI/180,a=yg(e),r=a.left,l=a.top,d=a.right,c=a.bottom,u=r-n[0],p=d-n[0],h=l-n[1],g=c-n[1],f={left:u,top:h,right:p,bottom:g};if(!xg(i,f,0))return[];var m=[];return[[u,0],[p,0],[h,1],[g,1]].forEach((function(e){var n=e[0],o=e[1];i.forEach((function(e){var i=Qd([0,0],e);m.push.apply(m,function(e,t,i){var n=jp(e),o=Math.sqrt(n*n-t*t)||0;return[o,-o].sort((function(t,n){return Math.abs(t-e[i?0:1])-Math.abs(n-e[i?0:1])})).map((function(e){return Qd([0,0],i?[e,t]:[t,e])}))}(e,n,o).map((function(e){return s+e-i})).filter((function(e){return!xg(t,f,e)})).map((function(e){return tc(180*e/Math.PI,vp)})))}))})),m}var Sg={horizontal:["left","top","width","Y","X"],vertical:["top","left","height","X","Y"]};function Cg(e,t,i,n){var o=e-i,s=o<0?o+t:n;return{size:(o<0?0:o)-s,pos:s}}function kg(e,t){return function(e,t){var i,n=e.direction,o=e.classNames,s=e.size,a=e.pos,r=e.zoom,l=e.key,d="horizontal"===n,c=d?"Y":"X";return t.createElement("div",{key:l,className:o.join(" "),style:(i={},i[d?"width":"height"]=""+s,i.transform="translate("+a[0]+", "+a[1]+") translate"+c+"(-50%) scale"+c+"("+r+")",i)})}(ap(ap({},e),{classNames:rp([kp("line","guideline",e.direction)],e.classNames).filter((function(e){return e})),size:e.size||e.sizeValue+"px",pos:e.pos||e.posValue.map((function(e){return tc(e,.1)+"px"}))}),t)}function Eg(e,t,i,n,o,s,a,r,l,d,c,u){var p=e.props,h=p.zoom,g=p.isDisplaySnapDigit,f=void 0===g||g,m=Sg[t],v=m[0],b=m[1],y=m[2],_=m[4];return lh(i.map((function(e,i){var p=!0;return e.map((function(e,g){var m,x=e.pos,w=e.size,S=Cg(x[d],w,o,s),C=S.pos,k=S.size;if(k<r)return null;var E=p;p=!1;var A=f&&E?parseFloat(k.toFixed(l)):0;return u.createElement("div",{key:t+"LinkGuideline"+i+"-"+g,className:kp("guideline-group",t),style:(m={},m[v]=n+C+"px",m[b]=-a+x[d?0:1]+"px",m[y]=k+"px",m)},kg({direction:t,classNames:[kp("dashed")],size:"100%",posValue:[0,0],sizeValue:k,zoom:h},u),u.createElement("div",{className:kp("size-value"),style:{transform:"translate"+_+"(-50%) scale("+h+")"}},A>0?c(A):""))}))})))}function Ag(e,t,i,n,o,s,a,r){var l=e.props.zoom;return i.map((function(e,i){var d=e.type,c=e.pos,u=[0,0];return u[a]=n,u[a?0:1]=-o+c,kg({key:t+"TargetGuideline"+i,classNames:[kp("target","bold",d)],posValue:u,sizeValue:s,zoom:l,direction:t},r)}))}function qg(e,t,i,n,o,s){var a=e.props.isDisplayInnerSnapDigit,r=i?0:1,l=n[i],d=s[i],c=[],u=t.filter((function(e){var t=e.element,o=e.pos,s=e.size;if(a&&t&&o[i]<l&&l+d<o[i]+s){var u=o[i]-l,p=o[r]-n[r];return c.push(ap(ap({},e),{inner:!0,gap:u,renderPos:i?[p,u]:[u,p]})),c.push(ap(ap({},e),{inner:!0,gap:o[i]+s-l-d,renderPos:i?[p,d]:[d,p]})),!1}return!0})),p=function(e,t,i,n){var o=[],s=rh(e.filter((function(e){var t=e.element,i=e.gap;return t&&!i})),(function(e){var i=e.element,s=e.pos,a=s[n],r=(Math.min(0,a-t)<0?-1:1)+"_"+s[n?0:1],l=Gd(o,(function(e){var t=e[0],n=e[1];return i===t&&a===n}));return l?l[2]:(o.push([i,a,r]),r)}));return s.forEach((function(e){e.sort((function(e,o){return Cg(e.pos[n],e.size,t,i).size-Cg(o.pos[n],e.size,t,i).size||e.pos[n?0:1]-o.pos[n?0:1]}))})),s}(u=u.filter((function(e){var t=e.element,n=e.pos,o=e.size,s=n[i];return!t||u.every((function(t){var n=t.element,a=t.pos,r=t.size,l=a[i];return!n||e===t||(s+o<=l||l+r<=s||s<l&&l+r<s+o)}))})),o[i],d,i);return c=c.filter((function(e){var t=e.gap,n=e.pos[r];return p.every((function(e){return e.every((function(e){var o=e.pos,a=-l+o[i];return o[r]!==n||!(t<0&&a<0)&&!(t>0&&a>s[i])}))}))})),{guidelines:u,groups:p,gapGuidelines:c}}function Tg(e,t,i,n,o){var s=e.props.zoom;return i.filter((function(e){return!e.hide})).map((function(e,i){var a=e.pos,r=e.size,l=e.element,d=[-n[0]+a[0],-n[1]+a[1]];return kg({key:t+"Guideline"+i,classNames:l?[kp("bold")]:[],direction:t,posValue:d,sizeValue:r,zoom:s},o)}))}function Lg(e,t,i,n,o){var s=e.props,a=s.snapDigit,r=void 0===a?0:a,l=s.isDisplaySnapDigit,d=void 0===l||l,c=s.zoom,u="horizontal"===t?"X":"Y",p="horizontal"===t?"width":"height";return i.map((function(e,i){var s,a=e.renderPos,l=e.gap,h=e.className,g=e.inner,f=Math.abs(l),m=d?parseFloat(f.toFixed(r)):0;return o.createElement("div",{key:t+"GapGuideline"+i,className:kp("guideline-group",t),style:(s={left:a[0]+"px",top:a[1]+"px"},s[p]=f+"px",s)},kg({direction:t,classNames:[kp(g?"dashed":"gap"),h],size:"100%",posValue:[0,0],sizeValue:f,zoom:c},o),o.createElement("div",{className:kp("size-value","gap"),style:{transform:"translate"+u+"(-50%) scale("+c+")"}},m>0?n(m):""))}))}function Mg(e){var t=e.state;if(!t.guidelines||!t.guidelines.length){var i=e.state.container,n=e.props.snapContainer||i,o=t.containerClientRect,s={left:0,top:0,bottom:0,right:0};if(i!==n){var a=vh(n,!0);if(a){var r=Kp(a),l=yh(t,[r.left-o.left,r.top-o.top]),d=yh(t,[r.right-o.right,r.bottom-o.bottom]);s.left=tc(l[0],.1),s.top=tc(l[1],.1),s.right=tc(d[0],.1),s.bottom=tc(d[1],.1)}}t.snapOffset=s,t.elementGuidelineValues=[],t.staticGuidelines=Jh(e,!1),t.guidelines=eg(e),t.enableSnap=!0}}function Og(e,t){var i=e.props,n=i.snappable,o=i.bounds,s=i.innerBounds,a=i.verticalGuidelines,r=i.horizontalGuidelines,l=i.snapGridWidth,d=i.snapGridHeight,c=e.state,u=c.guidelines,p=c.enableSnap;return!(!n||!p||t&&!0!==n&&n.indexOf(t)<0)&&!!(l||d||o||s||u&&u.length||a&&a.length||r&&r.length)}function Rg(e,t,i,n,o){var s=function(e,t,i,n){var o=t[0]-e[0],s=t[1]-e[1];Math.abs(o)<vp&&(o=0);Math.abs(s)<vp&&(s=0);if(!o)return n?[0,0]:[0,i];if(!s)return n?[i,0]:[0,0];var a=s/o,r=e[1]-a*e[0];return n?[i,a*(t[0]+i)+r-t[1]]:[(t[1]+i-r)/a-t[0],i]}(e,t,i,n);if(!s)return{isOutside:!1,offset:[0,0]};var a=ec(e,t),r=ec(s,e),l=ec(s,t),d=r>a||l>a,c=Rh({datas:o,distX:s[0],distY:s[1]});return{offset:[c[0],c[1]],isOutside:d}}function Ng(e,t,i,n,o,s){var a=Pp(e,t,i,s?4:3);return Qp(a,ou(n,function(e,t){return Ih(e,t.map((function(e){return-e})))}(a,o)))}function Bg(e,t){return e.isBound?e.offset:t.isSnap?t.offset:0}function Ig(e,t){return e.isBound?e.offset:t.isSnap?og(t).offset:0}function Dg(e,t,i,n){var o=function(e,t,i){var n=yg(e),o=n.left,s=n.top,a=n.right,r=n.bottom,l=i[0],d=i[1],c=ou(i,t),u=c[0],p=c[1];Math.abs(u)<vp&&(u=0),Math.abs(p)<vp&&(p=0);var h=p>0,g=u>0,f={isBound:!1,offset:0,pos:0},m={isBound:!1,offset:0,pos:0};if(0===u&&0===p)return{vertical:f,horizontal:m};if(0===u)h?r<d&&(m.pos=r,m.offset=d-r):s>d&&(m.pos=s,m.offset=d-s);else if(0===p)g?a<l&&(f.pos=a,f.offset=l-a):o>l&&(f.pos=o,f.offset=l-o);else{var v=p/u,b=i[1]-v*l,y=0,_=0,x=!1;g&&a<=l?(y=v*a+b,_=a,x=!0):!g&&l<=o&&(y=v*o+b,_=o,x=!0),x&&(y<s||y>r)&&(x=!1),x||(h&&r<=d?(_=((y=r)-b)/v,x=!0):!h&&d<=s&&(_=((y=s)-b)/v,x=!0)),x&&(f.isBound=!0,f.pos=_,f.offset=l-_,m.isBound=!0,m.pos=y,m.offset=d-y)}return{vertical:f,horizontal:m}}(e,t,i),s=o.horizontal,a=o.vertical,r=n?{horizontal:{isSnap:!1},vertical:{isSnap:!1}}:function(e,t,i){var n=i[0],o=i[1],s=t[0],a=t[1],r=ou(i,t),l=r[0],d=r[1],c=d>0,u=l>0;l=gh(l),d=gh(d);var p={isSnap:!1,offset:0,pos:0},h={isSnap:!1,offset:0,pos:0};if(0===l&&0===d)return{vertical:p,horizontal:h};var g=tg(e,l?[n]:[],d?[o]:[]),f=g.vertical,m=g.horizontal;f.posInfos.filter((function(e){var t=e.pos;return u?t>=s:t<=s})),m.posInfos.filter((function(e){var t=e.pos;return c?t>=a:t<=a})),f.isSnap=f.posInfos.length>0,m.isSnap=m.posInfos.length>0;var v=og(f),b=v.isSnap,y=v.guideline,_=og(m),x=_.isSnap,w=_.guideline,S=x?w.pos[1]:0,C=b?y.pos[0]:0;if(0===l)x&&(h.isSnap=!0,h.pos=w.pos[1],h.offset=o-h.pos);else if(0===d)b&&(p.isSnap=!0,p.pos=C,p.offset=n-C);else{var k=d/l,E=i[1]-k*n,A=0,q=0,T=!1;b?(A=k*(q=C)+E,T=!0):x&&(q=((A=S)-E)/k,T=!0),T&&(p.isSnap=!0,p.pos=q,p.offset=n-q,h.isSnap=!0,h.pos=A,h.offset=o-A)}return{vertical:p,horizontal:h}}(e,t,i),l=r.horizontal,d=r.vertical,c=Bg(s,l),u=Bg(a,d),p=Math.abs(c),h=Math.abs(u);return{horizontal:{isBound:s.isBound,isSnap:l.isSnap,offset:c,dist:p},vertical:{isBound:a.isBound,isSnap:d.isSnap,offset:u,dist:h}}}function $g(e,t,i,n){void 0===n&&(n=i);var o=bg(yg(e),n.map((function(e){return e[0]})),n.map((function(e){return e[1]}))),s=o.horizontal,a=o.vertical,r=t?{horizontal:{isSnap:!1,index:-1},vertical:{isSnap:!1,index:-1}}:tg(e,i.map((function(e){return e[0]})),i.map((function(e){return e[1]})),e.props.snapCenter),l=r.horizontal,d=r.vertical,c=Ig(s[0],l),u=Ig(a[0],d),p=Math.abs(c),h=Math.abs(u);return{horizontal:{isBound:s[0].isBound,isSnap:l.isSnap,snapIndex:l.index,offset:c,dist:p,bounds:s,snap:l},vertical:{isBound:a[0].isBound,isSnap:d.isSnap,snapIndex:d.index,offset:u,dist:h,bounds:a,snap:d}}}function Pg(e,t,i,n,o){void 0===o&&(o={});var s=bg(t,i,n),a=s.horizontal,r=s.vertical,l=o.isRequest?{horizontal:{isSnap:!1,index:-1},vertical:{isSnap:!1,index:-1}}:ig(e,i,n,o),d=l.horizontal,c=l.vertical,u=Ig(a[0],d),p=Ig(r[0],c),h=Math.abs(u),g=Math.abs(p);return{horizontal:{isBound:a[0].isBound,isSnap:d.isSnap,snapIndex:d.index,offset:u,dist:h,bounds:a,snap:d},vertical:{isBound:r[0].isBound,isSnap:c.isSnap,snapIndex:c.index,offset:p,dist:g,bounds:r,snap:c}}}function Hg(e,t,i,n,o,s){return i.map((function(i){var a=i[0],r=i[1],l=Ih(t,a),d=Ih(t,r),c=n?Dg(e,l,d,o):$g(e,o,[d]),u=c.horizontal,p=u.offset,h=u.isBound,g=u.isSnap,f=c.vertical,m=f.offset,v=f.isBound,b=f.isSnap,y=ou(r,a);if(!m&&!p)return{isBound:v||h,isSnap:b||g,sign:y,offset:[0,0]};var _=function(e,t,i,n){var o=Qd(e,t)/Math.PI*180,s=i.vertical,a=s.isBound,r=s.isSnap,l=s.dist,d=i.horizontal,c=d.isBound,u=d.isSnap,p=o%180,h=p<3||p>177,g=p>87&&p<93;return d.dist<l&&(a||r&&!g&&(!n||!h))?"vertical":!c&&(!u||h||n&&g)?"":"horizontal"}(l,d,c,n);if(!_)return{sign:y,isBound:!1,isSnap:!1,offset:[0,0]};var x="vertical"===_,w=Rg(l,d,-(x?m:p),x,s).offset.map((function(e,t){return e*(y[t]?2/y[t]:0)}));return{sign:y,isBound:x?v:h,isSnap:x?b:g,offset:w}}))}function zg(e,t,i,n,o,s){var a=function(e,t){var i=[],n=[-e[0],-e[1]];return e[0]&&e[1]?(i.push([n,[e[0],-e[1]]],[n,[-e[0],e[1]]]),t&&i.push([n,e])):e[0]?t?i.push([n,[n[0],-1]],[n,[n[0],1]],[n,[e[0],-1]],[n,e],[n,[e[0],1]]):i.push([[n[0],-1],[e[0],-1]],[[n[0],0],[e[0],0]],[[n[0],1],[e[0],1]]):e[1]?t?i.push([n,[-1,n[1]]],[n,[1,n[1]]],[n,[-1,e[1]]],[n,[1,e[1]]],[n,e]):i.push([[-1,n[1]],[-1,e[1]]],[[0,n[1]],[0,e[1]]],[[1,n[1]],[1,e[1]]]):i.push([n,[1,0]],[n,[-1,0]],[n,[0,-1]],[n,[0,1]],[[1,0],[1,-1]],[[1,0],[1,1]],[[0,1],[1,1]],[[0,1],[-1,1]],[[-1,0],[-1,-1]],[[-1,0],[-1,1]],[[0,-1],[1,-1]],[[0,-1],[-1,-1]]),i}(i,n),r=fg(t,i,n),l=rp(Hg(e,t,a,n,o,s),hg(e,r,Ih(t,[0,0]),s)),d=rg(l,0),c=rg(l,1);return{width:{isBound:d.isBound,offset:d.offset[0]},height:{isBound:c.isBound,offset:c.offset[1]}}}function Fg(e,t,i,n,o,s,a,r){for(var l=Jp(e.state),d=e.props.keepRatio,c=0,u=0,p=0;p<2;++p){var h=zg(e,t(c,u),o,d,a,r),g=h.width,f=h.height,m=g.isBound,v=f.isBound,b=g.offset,y=f.offset;if(1===p&&(m||(b=0),v||(y=0)),0===p&&a&&!m&&!v)return[0,0];if(d){var _=Math.abs(b)*(i?1/i:1),x=Math.abs(y)*(n?1/n:1);(m&&v?_<x:v||!m&&_<x)?b=i*y/n:y=n*b/i}c+=b,u+=y}if(o[0]&&o[1]){var w=function(e,t,i,n,o){var s=[-i[0],-i[1]],a=e.state,r=a.width,l=a.height,d=e.props.bounds,c=1/0,u=1/0;if(d){var p=[[i[0],-i[1]],[-i[0],i[1]]],h=d.left,g=void 0===h?-1/0:h,f=d.top,m=void 0===f?-1/0:f,v=d.right,b=void 0===v?1/0:v,y=d.bottom,_=void 0===y?1/0:y;p.forEach((function(e){var i=e[0]!==s[0],a=e[1]!==s[1],d=Ih(t,e),p=360*Qd(n,d)/Math.PI;if(a){var h=d.slice();(Math.abs(p-360)<2||Math.abs(p-180)<2)&&(h[1]=n[1]);var f=Rg(n,h,(n[1]<d[1]?_:m)-d[1],!1,o),v=f.offset[1],y=f.isOutside;isNaN(v)||(u=l+(y?1:-1)*Math.abs(v))}if(i){h=d.slice(),(Math.abs(p-90)<2||Math.abs(p-270)<2)&&(h[0]=n[0]);var x=Rg(n,h,(n[0]<d[0]?b:g)-d[0],!0,o),w=x.offset[0],S=x.isOutside;isNaN(w)||(c=r+(S?1:-1)*Math.abs(w))}}))}return{maxWidth:c,maxHeight:u}}(e,l,o,s,r),S=w.maxWidth,C=w.maxHeight,k=function(e,t,i,n,o,s,a,r,l){var d=$g(e,r,[Ih(t,a)]),c=d.horizontal.offset,u=d.vertical.offset;if(u||c){var p=Rh({datas:l,distX:-u,distY:-c}),h=p[0],g=p[1];return[Math.min(o||1/0,i+a[0]*h)-i,Math.min(s||1/0,n+a[1]*g)-n]}return[0,0]}(e,t(c,u).map((function(e){return e.map((function(e){return tc(e,mp)}))})),i+c,n+u,S,C,o,a,r);c+=b=k[0],u+=y=k[1]}return[c,u]}function jg(e,t,i,n){if(!Og(e,"rotatable"))return n;var o=t.pos1,s=t.pos2,a=t.pos3,r=t.pos4,l=n*Math.PI/180,d=[o,s,a,r].map((function(e){return ou(e,i)})),c=d.map((function(e){return uu(e,l)})),u=rp(wg(e,d,c,i,n),vg(e,d,c,i,n));return u.sort((function(e,t){return Math.abs(e-n)-Math.abs(t-n)})),u.length?u[0]:n}function Ug(e,t,i,n,o){var s=o.width,a=o.height,r=o.fixedPosition;if(!Og(e,"scalable"))return[0,0];var l=o.is3d,d=Fg(e,(function(e,n){return Ng(function(e,t){var i=e.transformOrigin,n=e.offsetMatrix,o=e.is3d?4:3;return Dh(n,iu(e.targetMatrix,mu(t,o),o),i,o)}(o,nu(t,[e/s,n/a])),s,a,r,i,l)}),s,a,i,r,n,o);return[d[0]/s,d[1]/a]}function Wg(e,t,i,n,o,s){if(!Og(e,"draggable"))return[{isSnap:!1,isBound:!1,offset:0},{isSnap:!1,isBound:!1,offset:0}];var a=Qp(s.absolutePoses,[t,i]),r=Hp(a),l=r.left,d=r.right,c=r.top,u=r.bottom,p=[[l,c],[d,c],[l,u],[d,u]];e.props.snapCenter&&p.push([(l+d)/2,(c+u)/2]);var h=$g(e,o,p,a),g=h.vertical,f=h.horizontal,m=gg(e,a,s),v=m.vertical,b=m.horizontal,y=g.isSnap,_=f.isSnap,x=g.isBound||v.isBound,w=f.isBound||b.isBound,S=function(e,t,i,n,o){var s=t[0],a=t[1],r=i[0],l=i[1],d=n[0],c=n[1],u=o[0],p=o[1],h=-u,g=-p;if(e&&s&&a){h=0,g=0;var f=[];if(r&&l?f.push([0,p],[u,0]):r?f.push([u,0]):l?f.push([0,p]):d&&c?f.push([0,p],[u,0]):d?f.push([u,0]):c&&f.push([0,p]),f.length){f.sort((function(e,t){return jp(ou([s,a],e))-jp(ou([s,a],t))}));var m=f[0];if(m[0]&&Math.abs(s)>vp)h=-m[0],g=a*Math.abs(s+h)/Math.abs(s)-a;else if(m[1]&&Math.abs(a)>vp){var v=a;g=-m[1],h=s*Math.abs(a+g)/Math.abs(v)-s}if(e&&l&&r)if(Math.abs(h)>vp&&Math.abs(h)<Math.abs(u))h*=b=Math.abs(u)/Math.abs(h),g*=b;else if(Math.abs(g)>vp&&Math.abs(g)<Math.abs(p)){var b;h*=b=Math.abs(p)/Math.abs(g),g*=b}else h=dh(-u,h),g=dh(-p,g)}}else h=s||r?-u:0,g=a||l?-p:0;return[h,g]}(n,[t,i],[x,w],[y,_],[dh(g.offset,v.offset),dh(f.offset,b.offset)]);return[{isBound:x,isSnap:y,offset:S[0]},{isBound:w,isSnap:_,offset:S[1]}]}function Gg(e){var t=[];return e.forEach((function(e){e.guidelineInfos.forEach((function(e){var i=e.guideline;t.indexOf(i)>-1||t.push(i)}))})),t}function Vg(e,t,i,n){var o=e.filter((function(e){var i=e.element,n=e.gap,o=e.type;return i&&n&&o===t})),s="vertical"===t?[0,1]:[1,0],a=s[0],r=s[1];return lh(o.map((function(e){var t=e.pos,o=e.gap,s=e.gapGuidelines,l=e.sizes,d=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.sort((function(e,t){return Math.abs(e)-Math.abs(t)})),e[0]}(t[r]+l[r]-i[r],t[r]-i[r]-n[r]),c=Math.min(l[r],n[r]);if(d>0&&d>c?d=2*(d-c/2):d<0&&d<-c&&(d=2*(d+c/2)),0===d)return[];var u=(d>0?0:n[r])+d/2;return rp(function(e,t,i,n,o,s,a){var r=Math.abs(s),l=o[t]+(s>0?n[0]:0);return e.filter((function(e){return e.pos[t]<=i[t]})).sort((function(e,i){var n=e.pos;return i.pos[t]-n[t]})).filter((function(e){var i=e.pos,n=e.sizes,o=i[t];return tc(o+n[t],mp)===tc(l-r,mp)&&(l=o,!0)})).map((function(e){var n=-i[t]+e.pos[t]+e.sizes[t];return ap(ap({},e),{gap:s,renderPos:t?[a,n]:[n,a]})}))}(s,a,i,n,t,o,u),function(e,t,i,n,o,s,a){var r=Math.abs(s),l=o[t]+(s<0?n[t]:0);return e.filter((function(e){return e.pos[t]>i[t]})).sort((function(e,i){var n=e.pos,o=i.pos;return n[t]-o[t]})).filter((function(e){var i=e.pos,n=e.sizes,o=i[t];return tc(o,mp)===tc(l+r,mp)&&(l=o+n[t],!0)})).map((function(e){var n=-i[t]+e.pos[t]-r;return ap(ap({},e),{gap:s,renderPos:t?[a,n]:[n,a]})}))}(s,a,i,n,t,o,u))})))}function Yg(e,t,i,n,o,s){var a=bg(yg(e,s),t,i),r=a.vertical,l=a.horizontal;r.forEach((function(e){e.isBound&&n.push({type:"bounds",pos:e.pos})})),l.forEach((function(e){e.isBound&&o.push({type:"bounds",pos:e.pos})}));var d=function(e){var t=e.props.innerBounds;if(!t)return{vertical:[],horizontal:[]};var i=e.getRect(),n=i.pos1,o=i.pos2,s=i.pos3,a=i.pos4,r=Ih([n,o,s,a],[0,0]),l=t.left,d=t.top,c=t.width,u=t.height,p=[[l,d],[l,d+u]],h=[[l,d],[l+c,d]],g=[[l+c,d],[l+c,d+u]],f=[[l,d+u],[l+c,d+u]],m=[],v=[],b={top:!1,bottom:!1,left:!1,right:!1};return[[n,o],[o,a],[a,s],[s,n]].forEach((function(e){var t=lg(r,e),i=t.horizontal,n=t.vertical,o=pg(e,h,n,1,!0),s=pg(e,f,n,1,!0),a=pg(e,p,i,1,!0),y=pg(e,g,i,1,!0);o.isBound&&!b.top&&(m.push(d),b.top=!0),s.isBound&&!b.bottom&&(m.push(d+u),b.bottom=!0),a.isBound&&!b.left&&(v.push(l),b.left=!0),y.isBound&&!b.right&&(v.push(l+c),b.right=!0)})),{horizontal:m,vertical:v}}(e),c=d.vertical,u=d.horizontal;c.forEach((function(e){Wd(n,(function(t){var i=t.type,n=t.pos;return"bounds"===i&&n===e}))>=0||n.push({type:"bounds",pos:e})})),u.forEach((function(e){Wd(o,(function(t){var i=t.type,n=t.pos;return"bounds"===i&&n===e}))>=0||o.push({type:"bounds",pos:e})}))}var Xg={name:"snappable",props:{snappable:[Boolean,Array],snapContainer:Object,snapCenter:Boolean,snapHorizontal:Boolean,snapVertical:Boolean,snapElement:Boolean,snapGap:Boolean,snapGridWidth:Number,snapGridHeight:Number,isDisplaySnapDigit:Boolean,isDisplayInnerSnapDigit:Boolean,snapDigit:Number,snapThreshold:Number,horizontalGuidelines:Array,verticalGuidelines:Array,elementGuidelines:Array,bounds:Object,innerBounds:Object,snapDistFormat:Function},events:{onSnap:"snap"},css:[":host {\n --bounds-color: #d66;\n}\n.guideline {\n pointer-events: none;\n z-index: 2;\n}\n.guideline.bounds {\n background: #d66;\n background: var(--bounds-color);\n}\n.guideline-group {\n position: absolute;\n top: 0;\n left: 0;\n}\n.guideline-group .size-value {\n position: absolute;\n color: #f55;\n font-size: 12px;\n font-weight: bold;\n}\n.guideline-group.horizontal .size-value {\n transform-origin: 50% 100%;\n transform: translateX(-50%);\n left: 50%;\n bottom: 5px;\n}\n.guideline-group.vertical .size-value {\n transform-origin: 0% 50%;\n top: 50%;\n transform: translateY(-50%);\n left: 5px;\n}\n.guideline.gap {\n background: #f55;\n}\n.size-value.gap {\n color: #f55;\n}\n"],render:function(e,t){var i=e.state,n=i.top,o=i.left,s=i.pos1,a=i.pos2,r=i.pos3,l=i.pos4,d=i.snapRenderInfo,c=i.targetClientRect,u=i.containerClientRect,p=i.is3d,h=i.rootMatrix;if(!d||!Og(e,""))return[];i.staticGuidelines=Jh(e,!1,i.staticGuidelines),i.guidelines=eg(e);var g=p?4:3,f=Math.min(s[0],a[0],r[0],l[0]),m=Math.min(s[1],a[1],r[1],l[1]),v=Xh(h,u,g),b=ch(h,[c.left-v[0],c.top-v[1]],g),y=b[0],_=b[1],x=e.props,w=x.snapThreshold,S=void 0===w?5:w,C=x.snapDigit,k=void 0===C?0:C,E=x.snapDistFormat,A=void 0===E?function(e){return e}:E,q=d.externalPoses||[],T=Jp(e.state),L=[],M=[],O=[],R=[],N=[],B=Hp(T),I=B.width,D=B.height,$=B.top,P=B.left,H=B.bottom,z=B.right,F=q.length>0,j=F?Hp(q):{};if(!d.request){if(d.direction&&N.push(function(e,t,i){var n=[];if(i[0]&&i[1])n=[i,[-i[0],i[1]],[i[0],-i[1]]].map((function(e){return Ih(t,e)}));else if(i[0]||i[1])e.props.keepRatio?n=[[-1,-1],[-1,1],[1,-1],[1,1],i].map((function(e){return Ih(t,e)})):(n=Bh(t,i)).length>1&&n.push([(n[0][0]+n[1][0])/2,(n[0][1]+n[1][1])/2]);else for(var o=[t[0],t[1],t[3],t[2],t[0]],s=0;s<4;++s)n.push(o[s]),n.push([(o[s][0]+o[s+1][0])/2,(o[s][1]+o[s+1][1])/2]);return tg(e,n.map((function(e){return e[0]})),n.map((function(e){return e[1]})),!0,1)}(e,T,d.direction)),d.snap){var U=Hp(T);d.center&&(U.middle=(U.top+U.bottom)/2,U.center=(U.left+U.right)/2),N.push(ng(e,U,!0,1))}F&&(d.center&&(j.middle=(j.top+j.bottom)/2,j.center=(j.left+j.right)/2),N.push(ng(e,j,!0,1))),N.forEach((function(e){var t=e.vertical.posInfos,i=e.horizontal.posInfos;L.push.apply(L,t.filter((function(e){return e.guidelineInfos.some((function(e){return!e.guideline.hide}))})).map((function(e){return{type:"snap",pos:e.pos}}))),M.push.apply(M,i.filter((function(e){return e.guidelineInfos.some((function(e){return!e.guideline.hide}))})).map((function(e){return{type:"snap",pos:e.pos}}))),O.push.apply(O,Gg(t)),R.push.apply(R,Gg(i))}))}Yg(e,[P,z],[$,H],L,M),F&&Yg(e,[j.left,j.right],[j.top,j.bottom],L,M,d.externalBounds);var W=Vg(O,"vertical",[o,n],[I,D]),G=Vg(R,"horizontal",[o,n],[I,D]),V=rp(O,R);nh(e,"onSnap",{guidelines:V.filter((function(e){return!e.element})),elements:rh(V.filter((function(e){return e.element})),(function(e){return e.element})),gaps:rp(G,W)},!0);var Y=qg(e,R,0,[o,n],[y,_],[I,D]),X=Y.guidelines,K=Y.groups,Z=Y.gapGuidelines,Q=qg(e,O,1,[o,n],[y,_],[I,D]),J=Q.guidelines,ee=Q.groups;return rp(Lg(e,"vertical",rp(G,Q.gapGuidelines),A,t),Lg(e,"horizontal",rp(W,Z),A,t),Eg(e,"horizontal",K,f,y,I,n,S,k,0,A,t),Eg(e,"vertical",ee,m,_,D,o,S,k,1,A,t),Tg(e,"horizontal",X,[o,n],t),Tg(e,"vertical",J,[o,n],t),Ag(e,"horizontal",M,f,n,I,0,t),Ag(e,"vertical",L,m,o,D,1,t))},dragStart:function(e,t){e.state.snapRenderInfo={request:t.isRequest,snap:!0,center:!0},Mg(e)},drag:function(e){var t=e.state;t.staticGuidelines=Jh(e,!1,t.staticGuidelines),t.guidelines=eg(e)},pinchStart:function(e){this.unset(e)},dragEnd:function(e){this.unset(e)},dragControlCondition:function(e,t){return!(!fh(0,t)&&!af(e,t))||(!t.isRequest&&t.inputEvent?nc(t.inputEvent.target,kp("snap-control")):void 0)},dragControlStart:function(e){e.state.snapRenderInfo=null,Mg(e)},dragControl:function(e){this.drag(e)},dragControlEnd:function(e){this.unset(e)},dragGroupStart:function(e,t){this.dragStart(e,t)},dragGroup:function(e){this.drag(e)},dragGroupEnd:function(e){this.unset(e)},dragGroupControlStart:function(e){e.state.snapRenderInfo=null,Mg(e)},dragGroupControl:function(e){this.drag(e)},dragGroupControlEnd:function(e){this.unset(e)},unset:function(e){var t=e.state;t.enableSnap=!1,t.staticGuidelines=[],t.guidelines=[],t.snapRenderInfo=null}},Kg={name:"draggable",props:{draggable:Boolean,throttleDrag:Number,throttleDragRotate:Number,startDragRotate:Number,edgeDraggable:Boolean},events:{onDragStart:"dragStart",onDrag:"drag",onDragEnd:"dragEnd",onDragGroupStart:"dragGroupStart",onDragGroup:"dragGroup",onDragGroupEnd:"dragGroupEnd"},render:function(e,t){var i=e.props,n=i.throttleDragRotate,o=i.zoom,s=e.state,a=s.dragInfo,r=s.beforeOrigin;if(!n||!a)return[];var l=a.dist;if(!l[0]&&!l[1])return[];var d=jp(l),c=Qd(l,[0,0]);return[t.createElement("div",{className:kp("line","horizontal","dragline","dashed"),key:"dragRotateGuideline",style:{width:d+"px",transform:"translate("+r[0]+"px, "+r[1]+"px) rotate("+c+"rad) scaleY("+o+")"}})]},dragStart:function(e,t){var i=t.datas,n=t.parentEvent,o=t.parentGesto,s=e.state,a=s.target;if(s.gesto)return!1;s.gesto=o||e.targetGesto;var r=oh(a);i.datas={},i.left=parseFloat(r.left||"")||0,i.top=parseFloat(r.top||"")||0,i.bottom=parseFloat(r.bottom||"")||0,i.right=parseFloat(r.right||"")||0,i.startValue=[0,0],Ah(e,t),Hh(t,"translate"),function(e,t){t.absolutePoses=Jp(e.state)}(e,i),i.prevDist=[0,0],i.prevBeforeDist=[0,0],i.isDrag=!1;var l=th(e,t,ap({set:function(e){i.startValue=e}},Ph(t)));return!1!==(n||nh(e,"onDragStart",l))?(i.isDrag=!0,e.state.dragInfo={startRect:e.getRect(),dist:[0,0]}):(s.gesto=null,i.isPinch=!1),!!i.isDrag&&l},drag:function(e,t){qh(t,"translate");var i=t.datas,n=t.parentEvent,o=t.parentFlag,s=t.isPinch,a=t.isRequest,r=t.distX,l=t.distY,d=i.isDrag,c=i.prevDist,u=i.prevBeforeDist,p=i.startValue;if(d){var h=e.props,g=h.parentMoveable,f=n?0:h.throttleDrag||0,m=n?0:h.throttleDragRotate||0,v=!1,b=0;if(!n&&m>0&&(r||l)){var y=h.startDragRotate||0,_=tc(y+180*Qd([0,0],[r,l])/Math.PI,m)-y,x=l*Math.abs(Math.cos((_-90)/180*Math.PI)),w=jp([r*Math.abs(Math.cos(_/180*Math.PI)),x]);b=_*Math.PI/180,r=w*Math.cos(b),l=w*Math.sin(b)}if(!s&&!n&&!o&&(!m||r||l)){var S=Wg(e,r,l,m,a,i),C=S[0],k=S[1],E=C.isSnap,A=C.isBound,q=C.offset,T=k.isSnap,L=k.isBound;v=E||T||A||L,r+=q,l+=k.offset}i.passDeltaX=r-(i.passDistX||0),i.passDeltaY=l-(i.passDistY||0),i.passDistX=r,i.passDistY=l;var M=nu(Oh({datas:i,distX:r,distY:l}),p),O=nu(Lh({datas:i,distX:r,distY:l}),p);m||v||(ic(O,f),ic(M,f));var R=ou(M,p),N=ou(O,p),B=ou(N,c),I=ou(R,u);i.prevDist=N,i.prevBeforeDist=R;var D=i.left+R[0],$=i.top+R[1],P=i.right-R[0],H=i.bottom-R[1],z=Th(i,"translate("+O[0]+"px, "+O[1]+"px)","translate("+N[0]+"px, "+N[1]+"px)");if(e.state.dragInfo.dist=n?[0,0]:N,n||g||!B.every((function(e){return!e}))||!I.some((function(e){return!e}))){var F=e.state,j=th(e,t,{transform:z,dist:N,delta:B,translate:O,beforeDist:R,beforeDelta:I,beforeTranslate:M,left:D,top:$,right:P,bottom:H,width:F.width,height:F.height,isPinch:s});return!n&&nh(e,"onDrag",j),j}}},dragEnd:function(e,t){var i=t.parentEvent,n=t.datas,o=t.isDrag;if(e.state.gesto=null,e.state.dragInfo=null,n.isDrag)return n.isDrag=!1,!i&&nh(e,"onDragEnd",ih(e,t,{})),o},dragGroupStart:function(e,t){var i=t.datas,n=t.clientX,o=t.clientY,s=this.dragStart(e,t);if(!s)return!1;var a=Ch(e,this,"dragStart",[n||0,o||0],t,!1),r=nh(e,"onDragGroupStart",ap(ap({},s),{targets:e.props.targets,events:a}));return i.isDrag=!1!==r,!!i.isDrag&&s},dragGroup:function(e,t){if(t.datas.isDrag){var i=this.drag(e,t),n=t.datas,o=Ch(e,this,"drag",[n.passDeltaX,n.passDeltaY],t,!1);if(i){var s=ap({targets:e.props.targets,events:o},i);return nh(e,"onDragGroup",s),s}}},dragGroupEnd:function(e,t){var i=t.isDrag;if(t.datas.isDrag)return this.dragEnd(e,t),Ch(e,this,"dragEnd",[0,0],t,!1),nh(e,"onDragGroupEnd",ih(e,t,{targets:e.props.targets})),i},request:function(e){var t={},i=e.getRect(),n=0,o=0;return{isControl:!1,requestStart:function(){return{datas:t}},request:function(e){return"x"in e?n=e.x-i.left:"deltaX"in e&&(n+=e.deltaX),"y"in e?o=e.y-i.top:"deltaY"in e&&(o+=e.deltaY),{datas:t,distX:n,distY:o}},requestEnd:function(){return{datas:t,isDrag:!0}}}},unset:function(e){e.state.dragInfo=null}};function Zg(e,t,i,n){void 0===n&&(n="");var o=e.state,s=o.renderPoses,a=o.rotation,r=o.direction,l=e.props,d=l.renderDirections,c=void 0===d?t:d,u=l.zoom,p={};if(!c)return[];var h=r>0?1:-1,g=!0===c?xp:c,f=a/Math.PI*180;return g.forEach((function(e){p[e]=!0})),g.map((function(e){var t=wp[e];if(!t||!p[e])return null;var o=(tc(f,15)+h*Sp[e]+720)%180;return i.createElement("div",{className:kp("control","direction",e,n),"data-rotation":o,"data-direction":e,key:"direction-"+e,style:Gp.apply(void 0,rp([a,u],t.map((function(e){return s[e]}))))})}))}function Qg(e,t,i,n,o,s){for(var a=[],r=6;r<arguments.length;r++)a[r-6]=arguments[r];var l=Qd(i,n),d=t?tc(l/Math.PI*180,15)%180:-1;return e.createElement("div",{key:"line"+s,className:kp.apply(void 0,rp(["line","direction",t],a)),"data-rotation":d,"data-line-index":s,"data-direction":t,style:Wp(i,n,o,l)})}function Jg(e,t){return Zg(e,xp,t)}function ef(e,t){return Zg(e,["nw","ne","sw","se"],t)}function tf(e,t,i,n,o,s){var a=e.state.is3d?4:3,r=$p(e.state.rootMatrix,o,a),l=nu([s.left,s.top],r);t.startAbsoluteOrigin=l,t.prevDeg=Qd(l,[i,n])/Math.PI*180,t.prevSnapDeg=t.prevDeg,t.startDeg=t.prevDeg,t.loop=0}function nf(e,t,i,n,o,s){var a=i.prevDeg,r=jg(e,t,i.origin,n);return i.prevDeg=r,[r-a,r,s+r]}function of(e,t,i,n,o,s,a,r){var l=i.prevDeg,d=i.prevSnapDeg,c=i.startDeg,u=i.loop;l>n&&l>270&&n<90?++i.loop:l<n&&l<90&&n>270&&--i.loop;var p=i.loop,h=360*u+d-c+s,g=360*p+n-c+s;i.prevDeg=g-360*p+c-s;var f=o*((g=tc(g,a))-s);return r&&(g=(f=jg(e,t,i.origin,f))/o+s),i.prevSnapDeg=g-360*p+c-s,[o*(g-h),f,s+f]}function sf(e,t,i,n,o,s,a,r){return of(e,t,i,Qd(i.startAbsoluteOrigin,[o,s])/Math.PI*180,n,a,r,!0)}function af(e,t){if(t.isRequest)return"rotatable"===t.requestAble;var i=t.inputEvent.target;if(nc(i,kp("rotation-control")))return!0;var n=e.props.rotationTarget;return!!n&&bh(n,!0).some((function(e){return!!e&&(i===e||i.contains(e))}))}var rf={name:"rotatable",canPinch:!0,props:{rotatable:Boolean,rotationPosition:String,throttleRotate:Number,renderDirections:Object,rotationTarget:Object},events:{onRotateStart:"rotateStart",onRotate:"rotate",onRotateEnd:"rotateEnd",onRotateGroupStart:"rotateGroupStart",onRotateGroup:"rotateGroup",onRotateGroupEnd:"rotateGroupEnd"},css:[".rotation {\n position: absolute;\n height: 40px;\n width: 1px;\n transform-origin: 50% 100%;\n height: calc(40px * var(--zoom));\n top: auto;\n left: 0;\n bottom: 100%;\n will-change: transform;\n }\n .rotation .rotation-line {\n display: block;\n width: 100%;\n height: 100%;\n transform-origin: 50% 50%;\n }\n .rotation .rotation-control {\n border-color: #4af;\n border-color: var(--moveable-color);\n background:#fff;\n cursor: alias;\n }"],render:function(e,t){var i=e.props,n=i.rotatable,o=i.rotationPosition,s=i.zoom,a=i.renderDirections,r=e.state,l=r.renderPoses,d=r.direction;if(!n)return null;var c=function(e,t,i){var n=t[0],o=t[1],s=t[2],a=t[3];if("none"!==e){var r=(e||"top").split("-"),l=r[0],d=r[1],c=[n,o];"left"===l?c=[s,n]:"right"===l?c=[o,a]:"bottom"===l&&(c=[a,s]);var u=[(c[0][0]+c[1][0])/2,(c[0][1]+c[1][1])/2],p=Yp(c,i);if(d){var h="top"===d||"left"===d,g="bottom"===l||"left"===l;u=c[h&&!g||!h&&g?0:1]}return[u,p]}}(o,l,d),u=[];if(c){var p=c[0],h=c[1];u.push(t.createElement("div",{key:"rotation",className:kp("rotation"),style:{transform:"translate(-50%) translate("+p[0]+"px, "+p[1]+"px) rotate("+h+"rad)"}},t.createElement("div",{className:kp("line rotation-line"),style:{transform:"scaleX("+s+")"}}),t.createElement("div",{className:kp("control rotation-control"),style:{transform:"translate(0.5px) scale("+s+")"}})))}return a&&u.push.apply(u,Zg(e,[],t)),u},dragControlCondition:af,dragControlStart:function(e,t){var i=t.datas,n=t.clientX,o=t.clientY,s=t.parentRotate,a=t.parentFlag,r=t.isPinch,l=t.isRequest,d=e.state,c=d.target,u=d.left,p=d.top,h=d.origin,g=d.beforeOrigin,f=d.direction,m=d.beforeDirection,v=d.targetTransform,b=d.moveableClientRect;if(!l&&!c)return!1;var y=e.getRect();if(i.rect=y,i.transform=v,i.left=u,i.top=p,i.fixedPosition=Gh(e,Wh(e)),i.absoluteInfo={origin:y.origin,startValue:y.rotation},tf(e,i.absoluteInfo,n,o,h,b),l||r||a){var _=s||0;i.beforeInfo={origin:y.beforeOrigin,prevDeg:_,startDeg:_,prevSnapDeg:_,loop:0},i.afterInfo={origin:y.origin,prevDeg:_,startDeg:_,prevSnapDeg:_,loop:0}}else i.beforeInfo={origin:y.beforeOrigin},i.afterInfo={origin:y.origin},tf(e,i.beforeInfo,n,o,g,b),tf(e,i.afterInfo,n,o,h,b);i.direction=f,i.beforeDirection=m,i.startValue=0,i.datas={},Hh(t,"rotate");var x=th(e,t,ap(ap({set:function(e){i.startValue=e*Math.PI/180}},Ph(t)),{dragStart:Kg.dragStart(e,(new wh).dragStart([0,0],t))})),w=nh(e,"onRotateStart",x);return i.isRotate=!1!==w,e.state.snapRenderInfo={request:t.isRequest},!!i.isRotate&&x},dragControl:function(e,t){var i,n,o,s,a,r,l,d,c,u=t.datas,p=t.clientX,h=t.clientY,g=t.parentRotate,f=t.parentFlag,m=t.isPinch,v=t.groupDelta,b=u.beforeDirection,y=u.beforeInfo,_=u.afterInfo,x=u.absoluteInfo,w=u.isRotate,S=u.startValue,C=u.rect;if(w){qh(t,"rotate");var k,E,A,q,T,L,M,O,R,N=b*function(e){return Fp(e.datas.beforeTransform,[50,50],100,100).direction}(t),B=e.props,I=B.throttleRotate,D=void 0===I?0:I,$=B.parentMoveable,P=180/Math.PI*S,H=x.startValue;if(!f&&"parentDist"in t){var z=t.parentDist;k=(i=nf(e,C,_,z,0,P))[0],E=i[1],A=i[2],q=(n=nf(e,C,y,z,0,P))[0],T=n[1],L=n[2],M=(o=nf(e,C,x,z,0,H))[0],O=o[1],R=o[2]}else m||f?(k=(s=of(e,C,_,g,N,P,D))[0],E=s[1],A=s[2],q=(a=of(e,C,y,g,b,P,D))[0],T=a[1],L=a[2],M=(r=of(e,C,x,g,N,H,D))[0],O=r[1],R=r[2]):(k=(l=sf(e,C,_,N,p,h,P,D))[0],E=l[1],A=l[2],q=(d=sf(e,C,y,b,p,h,P,D))[0],T=d[1],L=d[2],M=(c=sf(e,C,x,N,p,h,H,D))[0],O=c[1],R=c[2]);if(M||k||q||$){var F=Th(u,"rotate("+A+"deg)","rotate("+E+"deg)"),j=function(e,t,i,n){return Uh(e,"rotate("+t+"deg)",Wh(e),i,n)}(e,E,u.fixedPosition,u),U=ou(nu(v||[0,0],j),u.prevInverseDist||[0,0]);u.prevInverseDist=j;var W=th(e,t,ap({delta:k,dist:E,rotate:A,beforeDist:T,beforeDelta:q,beforeRotate:L,absoluteDist:O,absoluteDelta:M,absoluteRotate:R,isPinch:!!m},jh(e,F,U,m,t)));return nh(e,"onRotate",W),W}}},dragControlEnd:function(e,t){var i=t.datas,n=t.isDrag;return!!i.isRotate&&(i.isRotate=!1,nh(e,"onRotateEnd",ih(e,t,{})),n)},dragGroupControlCondition:af,dragGroupControlStart:function(e,t){var i=t.datas,n=e.state,o=n.left,s=n.top,a=n.beforeOrigin,r=this.dragControlStart(e,t);if(!r)return!1;r.set(i.beforeDirection*e.rotation);var l=kh(e,this,"dragControlStart",t,(function(e,t){var i=e.state,n=i.left,r=i.top,l=i.beforeOrigin,d=nu(ou([n,r],[o,s]),ou(l,a));return t.datas.groupClient=d,ap(ap({},t),{parentRotate:0})})),d=nh(e,"onRotateGroupStart",ap(ap({},r),{targets:e.props.targets,events:l}));return i.isRotate=!1!==d,!!i.isRotate&&r},dragGroupControl:function(e,t){var i=t.datas;if(i.isRotate){var n=this.dragControl(e,t);if(n){var o=i.beforeDirection,s=n.beforeDist,a=n.beforeDelta/180*Math.PI,r=kh(e,this,"dragControl",t,(function(e,t){var i=t.datas.groupClient,n=i[0],r=i[1],l=uu([n,r],a*o),d=l[0],c=l[1],u=[d-n,c-r];return t.datas.groupClient=[d,c],ap(ap({},t),{parentRotate:s,groupDelta:u})}));e.rotation=o*n.beforeRotate;var l=ap({targets:e.props.targets,events:r,set:function(t){e.rotation=t}},n);return nh(e,"onRotateGroup",l),l}}},dragGroupControlEnd:function(e,t){var i=t.isDrag;if(t.datas.isRotate)return this.dragControlEnd(e,t),kh(e,this,"dragControlEnd",t),nh(e,"onRotateGroupEnd",ih(e,t,{targets:e.props.targets})),i},request:function(e){var t={},i=0,n=e.getRotation();return{isControl:!0,requestStart:function(){return{datas:t}},request:function(e){return"deltaRotate"in e?i+=e.deltaRotate:"rotate"in e&&(i=e.rotate-n),{datas:t,parentDist:i}},requestEnd:function(){return{datas:t,isDrag:!0}}}}},lf={name:"resizable",ableGroup:"size",canPinch:!0,props:{resizable:Boolean,throttleResize:Number,renderDirections:Array,keepRatio:Boolean},events:{onResizeStart:"resizeStart",onResize:"resize",onResizeEnd:"resizeEnd",onResizeGroupStart:"resizeGroupStart",onResizeGroup:"resizeGroup",onResizeGroupEnd:"resizeGroupEnd"},render:function(e,t){var i=e.props,n=i.resizable,o=i.edge;if(n)return o?ef(e,t):Jg(e,t)},dragControlCondition:fh,dragControlStart:function(e,t){var i,n=t.inputEvent,o=t.isPinch,s=t.parentDirection,a=t.datas,r=t.parentFlag,l=s||(o?[0,0]:Zp(n.target)),d=e.state,c=d.target,u=d.width,p=d.height;if(!l||!c)return!1;!o&&Ah(e,t),a.datas={},a.direction=l,a.startOffsetWidth=u,a.startOffsetHeight=p,a.prevWidth=0,a.prevHeight=0,i=function(e){var t=oh(e);return[parseFloat(t.width),parseFloat(t.height)]}(c),a.startWidth=i[0],a.startHeight=i[1];var h=[Math.max(0,u-a.startWidth),Math.max(0,p-a.startHeight)];if(a.minSize=h,a.maxSize=[1/0,1/0],!r){var g=oh(c),f=g.position,m=g.minWidth,v=g.minHeight,b=g.maxWidth,y=g.maxHeight,_="static"===f||"relative"===f,x=_?c.parentElement:c.offsetParent,w=u,S=p;if(x&&(w=x.clientWidth,S=x.clientHeight,_)){var C=oh(x);w-=parseFloat(C.paddingLeft)||0,S-=parseFloat(C.paddingTop)||0}a.minSize=nu([Yd(m,w)||0,Yd(v,S)||0],h),a.maxSize=nu([Yd(b,w)||1/0,Yd(y,S)||1/0],h)}var k=e.props.transformOrigin||"% %";function E(e){a.ratio=e&&isFinite(e)?e:0}function A(t){a.fixedDirection=t,a.fixedPosition=Yh(e,t)}a.transformOrigin=k&&Nd(k)?k.split(" "):k,a.isWidth=!l[0]&&!l[1]||l[0]||!l[1],E(u/p),A([-l[0],-l[1]]);var q=th(e,t,{direction:l,set:function(e){var t=e[0],i=e[1];a.startWidth=t,a.startHeight=i},setMin:function(e){a.minSize=e},setMax:function(e){a.maxSize=[e[0]||1/0,e[1]||1/0]},setRatio:E,setFixedDirection:A,setOrigin:function(e){a.transformOrigin=e},dragStart:Kg.dragStart(e,(new wh).dragStart([0,0],t))});return!1!==nh(e,"onResizeStart",q)&&(a.isResize=!0,e.state.snapRenderInfo={request:t.isRequest,direction:l}),!!a.isResize&&q},dragControl:function(e,t){var i,n=t.datas,o=t.distX,s=t.distY,a=t.parentFlag,r=t.isPinch,l=t.parentDistance,d=t.parentScale,c=t.parentKeepRatio,u=t.dragClient,p=t.parentDist,h=t.isRequest,g=n.isResize,f=n.transformOrigin,m=n.fixedDirection,v=n.startWidth,b=n.startHeight,y=n.prevWidth,_=n.prevHeight,x=n.minSize,w=n.maxSize,S=n.ratio,C=n.isWidth,k=n.startOffsetWidth,E=n.startOffsetHeight;if(g){var A=e.props,q=A.throttleResize,T=void 0===q?0:q,L=A.parentMoveable,M=A.snapThreshold,O=void 0===M?5:M,R=n.direction,N=R,B=0,I=0;R[0]||R[1]||(N=[1,1]);var D=S&&(e.props.keepRatio||c),$=u;if(u||($=!a&&r?Yh(e,[0,0]):n.fixedPosition),p)B=p[0],I=p[1],D&&(B?I||(I=B/S):B=I*S);else if(d)B=(d[0]-1)*k,I=(d[1]-1)*E;else if(r)l&&(B=l,I=l*E/k);else{var P=Rh({datas:n,distX:o,distY:s});if(B=N[0]*P[0],I=N[1]*P[1],D&&k&&E){var H=Qd([0,0],P),z=Qd([0,0],N),F=jp([B,I]),j=Math.cos(H-z)*F;if(N[0])if(N[1]){var U=2*N[0]*k,W=2*N[1]*E,G=jp([U+P[0],W+P[1]])-jp([U,W]),V=Qd([0,0],[S,1]);B=Math.cos(V)*G,I=Math.sin(V)*G}else I=(B=j)*S;else B=(I=j)/S}else if(!D){var Y=rp(R);k||(P[0]<0?Y[0]=-1:P[0]>0&&(Y[0]=1)),E||(P[1]<0?Y[1]=-1:P[1]>0&&(Y[1]=1)),R=Y,B=(N=Y)[0]*P[0],I=N[1]*P[1]}}var X=N[0]||D?Math.max(k+B,vp):k,K=N[1]||D?Math.max(E+I,vp):E;D&&k&&E&&(C?K=X/S:X=K*S);var Z=[0,0];if(r||(Z=function(e,t,i,n,o,s,a){if(!Og(e,"resizable"))return[0,0];var r=e.state,l=r.allMatrix,d=r.is3d;return Fg(e,(function(e,s){return Ng(l,t+e,i+s,o,n,d)}),t,i,n,o,s,a)}(e,X,K,R,$,h,n)),p&&(!p[0]&&(Z[0]=0),!p[1]&&(Z[1]=0)),D){N[0]&&N[1]&&Z[0]&&Z[1]&&(Math.abs(Z[0])>Math.abs(Z[1])?Z[1]=0:Z[0]=0);var Q=!Z[0]&&!Z[1];Q&&(C?X=tc(X,T):K=tc(K,T)),N[0]&&!N[1]||Z[0]&&!Z[1]||Q&&C?K=(X+=Z[0])/S:(!N[0]&&N[1]||!Z[0]&&Z[1]||Q&&!C)&&(X=(K+=Z[1])*S)}else k+B<-O&&(Z[0]=0),k+I<-O&&(Z[1]=0),X+=Z[0],K+=Z[1],Z[0]||(X=tc(X,T)),Z[1]||(K=tc(K,T));X=(i=Kd([X,K],x,w,D))[0],K=i[1];var J=[(B=(X=Math.round(X))-k)-y,(I=(K=Math.round(K))-E)-_];n.prevWidth=B,n.prevHeight=I;var ee=Vh(e,X,K,m,$,f);if(L||!J.every((function(e){return!e}))||!ee.every((function(e){return!e}))){var te=th(e,t,{width:v+B,height:b+I,offsetWidth:X,offsetHeight:K,direction:R,dist:[B,I],delta:J,isPinch:!!r,drag:Kg.drag(e,xh(t,e.state,ee,!!r,!1))});return nh(e,"onResize",te),te}}},dragControlAfter:function(e,t){var i=t.datas,n=i.isResize,o=i.startOffsetWidth,s=i.startOffsetHeight,a=i.prevWidth,r=i.prevHeight;if(n){var l=e.state,d=l.width-(o+a),c=l.height-(s+r),u=Math.abs(d)>3,p=Math.abs(c)>3;return u&&(i.startWidth+=d,i.startOffsetWidth+=d,i.prevWidth+=d),p&&(i.startHeight+=c,i.startOffsetHeight+=c,i.prevHeight+=c),u||p?(this.dragControl(e,t),!0):void 0}},dragControlEnd:function(e,t){var i=t.datas,n=t.isDrag;return!!i.isResize&&(i.isResize=!1,nh(e,"onResizeEnd",ih(e,t,{})),n)},dragGroupControlCondition:fh,dragGroupControlStart:function(e,t){var i=t.datas,n=this.dragControlStart(e,t);if(!n)return!1;var o=Sh(e,"resizable",t);function s(t,n){var o=i.fixedDirection,s=i.fixedPosition,a=Yh(t,o),r=au(gu(-e.rotation/180*Math.PI,3),[a[0]-s[0],a[1]-s[1],1],3),l=r[0],d=r[1];return n.datas.originalX=l,n.datas.originalY=d,n}var a=kh(e,this,"dragControlStart",t,(function(e,t){return s(e,t)})),r=ap(ap({},n),{targets:e.props.targets,events:a,setFixedDirection:function(t){n.setFixedDirection(t),a.forEach((function(i,n){i.setFixedDirection(t),s(e.moveables[n],o[n])}))}}),l=nh(e,"onResizeGroupStart",r);return i.isResize=!1!==l,!!i.isResize&&n},dragGroupControl:function(e,t){var i=t.datas;if(i.isResize){var n=this.dragControl(e,t);if(n){var o=n.offsetWidth,s=n.offsetHeight,a=n.dist,r=e.props.keepRatio,l=[o/(o-a[0]),s/(s-a[1])],d=i.fixedPosition,c=kh(e,this,"dragControl",t,(function(t,i){var n=au(gu(e.rotation/180*Math.PI,3),[i.datas.originalX*l[0],i.datas.originalY*l[1],1],3),o=n[0],s=n[1];return ap(ap({},i),{parentDist:null,parentScale:l,dragClient:nu(d,[o,s]),parentKeepRatio:r})})),u=ap({targets:e.props.targets,events:c},n);return nh(e,"onResizeGroup",u),u}}},dragGroupControlEnd:function(e,t){var i=t.isDrag;if(t.datas.isResize)return this.dragControlEnd(e,t),kh(e,this,"dragControlEnd",t),nh(e,"onResizeGroupEnd",ih(e,t,{targets:e.props.targets})),i},request:function(e){var t={},i=0,n=0,o=e.getRect();return{isControl:!0,requestStart:function(e){return{datas:t,parentDirection:e.direction||[1,1]}},request:function(e){return"offsetWidth"in e?i=e.offsetWidth-o.offsetWidth:"deltaWidth"in e&&(i+=e.deltaWidth),"offsetHeight"in e?n=e.offsetHeight-o.offsetHeight:"deltaHeight"in e&&(n+=e.deltaHeight),{datas:t,parentDist:[i,n]}},requestEnd:function(){return{datas:t,isDrag:!0}}}}},df={name:"scalable",ableGroup:"size",canPinch:!0,props:{scalable:Boolean,throttleScale:Number,renderDirections:String,keepRatio:Boolean},events:{onScaleStart:"scaleStart",onScale:"scale",onScaleEnd:"scaleEnd",onScaleGroupStart:"scaleGroupStart",onScaleGroup:"scaleGroup",onScaleGroupEnd:"scaleGroupEnd"},render:function(e,t){var i=e.props,n=i.resizable,o=i.scalable,s=i.edge;if(!n&&o)return s?ef(e,t):Jg(e,t)},dragControlCondition:fh,dragControlStart:function(e,t){var i=t.datas,n=t.isPinch,o=t.inputEvent,s=t.parentDirection||(n?[0,0]:Zp(o.target)),a=e.state,r=a.width,l=a.height,d=a.targetTransform,c=a.target,u=a.pos1,p=a.pos2,h=a.pos4;if(!s||!c)return!1;n||Ah(e,t),i.datas={},i.transform=d,i.prevDist=[1,1],i.direction=s,i.width=r,i.height=l,i.startValue=[1,1];var g=ec(u,p),f=ec(p,h),m=!s[0]&&!s[1]||s[0]||!s[1];function v(e){i.ratio=e&&isFinite(e)?e:0}function b(t){i.fixedDirection=t,i.fixedPosition=Yh(e,t)}i.scaleWidth=g,i.scaleHeight=f,i.scaleXRatio=g/r,i.scaleYRatio=f/l,Hh(t,"scale"),i.isWidth=m,v(ec(u,p)/ec(p,h)),b([-s[0],-s[1]]);var y=th(e,t,ap(ap({direction:s,set:function(e){i.startValue=e},setRatio:v,setFixedDirection:b},Ph(t)),{dragStart:Kg.dragStart(e,(new wh).dragStart([0,0],t))}));return!1!==nh(e,"onScaleStart",y)&&(i.isScale=!0,e.state.snapRenderInfo={request:t.isRequest,direction:s}),!!i.isScale&&y},dragControl:function(e,t){qh(t,"scale");var i=t.datas,n=t.distX,o=t.distY,s=t.parentScale,a=t.parentDistance,r=t.parentKeepRatio,l=t.parentFlag,d=t.isPinch,c=t.dragClient,u=t.parentDist,p=t.isRequest,h=i.prevDist,g=i.direction,f=i.width,m=i.height,v=i.isScale,b=i.startValue,y=i.isWidth,_=i.ratio,x=i.fixedDirection,w=i.scaleXRatio,S=i.scaleYRatio;if(!v)return!1;var C=e.props,k=C.throttleScale,E=C.parentMoveable,A=g;g[0]||g[1]||(A=[1,1]);var q=_&&(e.props.keepRatio||r),T=e.state,L=1,M=1,O=c;if(c||(O=!l&&d?Yh(e,[0,0]):i.fixedPosition),u)L=(f+u[0])/f,M=(m+u[1])/m;else if(s)L=s[0],M=s[1];else if(d)a&&(L=(f+a)/f,M=(m+a*m/f)/m);else{var R=Rh({datas:i,distX:n,distY:o}),N=A[0]*R[0]*w,B=A[1]*R[1]*S;if(q&&f&&m)if(A[0])if(A[1]){var I=jp([N,B]),D=Qd([0,0],R),$=Qd([0,0],A),P=Math.cos(D-$)*I,H=Qd([0,0],[_,1]);N=Math.cos(H)*P,B=Math.sin(H)*P}else B=N/_;else N=B*_;L=(f+N/w)/f,M=(m+B/S)/m}L=A[0]||q?L*b[0]:b[0],M=A[1]||q?M*b[1]:b[1],0===L&&(L=(h[0]>0?1:-1)*bp),0===M&&(M=(h[1]>0?1:-1)*bp);var z=[L/b[0],M/b[1]],F=[L,M];if(!d&&e.props.groupable){var j=(T.snapRenderInfo||{}).direction;Rd(j)&&(j[0]||j[1])&&(T.snapRenderInfo={direction:g,request:t.isRequest})}var U=[0,0];if(d||(U=Ug(e,z,g,p,i)),q){A[0]&&A[1]&&U[0]&&U[1]&&(Math.abs(U[0]*f)>Math.abs(U[1]*m)?U[1]=0:U[0]=0);var W=!U[0]&&!U[1];if(W&&(y?z[0]=tc(z[0]*b[0],k)/b[0]:z[1]=tc(z[1]*b[1],k)/b[1]),A[0]&&!A[1]||U[0]&&!U[1]||W&&y){z[0]+=U[0];var G=f*z[0]*b[0]/_;z[1]=G/m/b[1]}else if(!A[0]&&A[1]||!U[0]&&U[1]||W&&!y){z[1]+=U[1];var V=m*z[1]*b[1]*_;z[0]=V/f/b[0]}}else z[0]+=U[0],z[1]+=U[1],U[0]||(z[0]=tc(z[0]*b[0],k)/b[0]),U[1]||(z[1]=tc(z[1]*b[1],k)/b[1]);0===z[0]&&(z[0]=(h[0]>0?1:-1)*bp),0===z[1]&&(z[1]=(h[1]>0?1:-1)*bp);var Y,X,K=[z[0]/h[0],z[1]/h[1]];X=b,F=[(Y=z)[0]*X[0],Y[1]*X[1]];var Z=function(e,t,i,n,o){return Uh(e,"scale("+t.join(", ")+")",i,n,o)}(e,z,x,O,i),Q=ou(Z,i.prevInverseDist||[0,0]);if(i.prevDist=z,i.prevInverseDist=Z,L===h[0]&&M===h[1]&&Q.every((function(e){return!e}))&&!E)return!1;var J=Th(i,"scale("+F.join(", ")+")","scale("+z.join(", ")+")"),ee=th(e,t,ap({offsetWidth:f,offsetHeight:m,direction:g,scale:F,dist:z,delta:K,isPinch:!!d},jh(e,J,Q,d,t)));return nh(e,"onScale",ee),ee},dragControlEnd:function(e,t){var i=t.datas,n=t.isDrag;return!!i.isScale&&(i.isScale=!1,nh(e,"onScaleEnd",ih(e,t,{})),n)},dragGroupControlCondition:fh,dragGroupControlStart:function(e,t){var i=t.datas,n=this.dragControlStart(e,t);if(!n)return!1;var o=Sh(e,"resizable",t);function s(t,n){var o=i.fixedDirection,s=i.fixedPosition,a=Yh(t,o),r=au(gu(-e.rotation/180*Math.PI,3),[a[0]-s[0],a[1]-s[1],1],3),l=r[0],d=r[1];return n.datas.originalX=l,n.datas.originalY=d,n}i.moveableScale=e.scale;var a=kh(e,this,"dragControlStart",t,(function(e,t){return s(e,t)})),r=ap(ap({},n),{targets:e.props.targets,events:a,setFixedDirection:function(t){n.setFixedDirection(t),a.forEach((function(i,n){i.setFixedDirection(t),s(e.moveables[n],o[n])}))}}),l=nh(e,"onScaleGroupStart",r);return i.isScale=!1!==l,!!i.isScale&&r},dragGroupControl:function(e,t){var i=t.datas;if(i.isScale){var n=this.dragControl(e,t);if(n){var o=i.moveableScale;e.scale=[n.scale[0]*o[0],n.scale[1]*o[1]];var s=e.props.keepRatio,a=n.dist,r=n.scale,l=i.fixedPosition,d=kh(e,this,"dragControl",t,(function(t,i){var n=au(gu(e.rotation/180*Math.PI,3),[i.datas.originalX*a[0],i.datas.originalY*a[1],1],3),o=n[0],d=n[1];return ap(ap({},i),{parentDist:null,parentScale:r,parentKeepRatio:s,dragClient:nu(l,[o,d])})})),c=ap({targets:e.props.targets,events:d},n);return nh(e,"onScaleGroup",c),c}}},dragGroupControlEnd:function(e,t){var i=t.isDrag;if(t.datas.isScale)return this.dragControlEnd(e,t),kh(e,this,"dragControlEnd",t),nh(e,"onScaleGroupEnd",ih(e,t,{targets:e.props.targets})),i},request:function(){var e={},t=0,i=0;return{isControl:!0,requestStart:function(t){return{datas:e,parentDirection:t.direction||[1,1]}},request:function(n){return t+=n.deltaWidth,i+=n.deltaHeight,{datas:e,parentDist:[t,i]}},requestEnd:function(){return{datas:e,isDrag:!0}}}}};function cf(e,t){return e.map((function(e,i){return n=e,o=t[i],(n*(a=2)+o*(s=1))/(s+a);var n,o,s,a}))}function uf(e,t,i){var n=Qd(e,t),o=Qd(e,i)-n;return o>=0?o:o+2*Math.PI}var pf={name:"warpable",ableGroup:"size",props:{warpable:Boolean,renderDirections:Array},events:{onWarpStart:"warpStart",onWarp:"warp",onWarpEnd:"warpEnd"},render:function(e,t){var i=e.props,n=i.resizable,o=i.scalable,s=i.warpable,a=i.zoom;if(n||o||!s)return[];var r=e.state,l=r.pos1,d=r.pos2,c=r.pos3,u=r.pos4,p=cf(l,d),h=cf(d,l),g=cf(l,c),f=cf(c,l),m=cf(c,u),v=cf(u,c),b=cf(d,u),y=cf(u,d);return rp([t.createElement("div",{className:kp("line"),key:"middeLine1",style:Wp(p,m,a)}),t.createElement("div",{className:kp("line"),key:"middeLine2",style:Wp(h,v,a)}),t.createElement("div",{className:kp("line"),key:"middeLine3",style:Wp(g,b,a)}),t.createElement("div",{className:kp("line"),key:"middeLine4",style:Wp(f,y,a)})],Jg(e,t))},dragControlCondition:function(e,t){return!t.isRequest&&nc(t.inputEvent.target,kp("direction"))},dragControlStart:function(e,t){var i=t.datas,n=t.inputEvent,o=e.props.target,s=Zp(n.target);if(!s||!o)return!1;var a=e.state,r=a.transformOrigin,l=a.is3d,d=a.targetTransform,c=a.targetMatrix,u=a.width,p=a.height,h=a.left,g=a.top;return i.datas={},i.targetTransform=d,i.warpTargetMatrix=l?c:eu(c,3,4),i.targetInverseMatrix=Zc(Qc(i.warpTargetMatrix,4),3,4),i.direction=s,i.left=h,i.top=g,i.poses=[[0,0],[u,0],[0,p],[u,p]].map((function(e){return ou(e,r)})),i.nextPoses=i.poses.map((function(e){var t=e[0],n=e[1];return au(i.warpTargetMatrix,[t,n,0,1],4)})),i.startValue=fu(4),i.prevMatrix=fu(4),i.absolutePoses=Jp(a),i.posIndexes=Nh(s),Ah(e,t),Hh(t,"matrix3d"),a.snapRenderInfo={request:t.isRequest,direction:s},!1!==nh(e,"onWarpStart",th(e,t,ap({set:function(e){i.startValue=e}},Ph(t))))&&(i.isWarp=!0),i.isWarp},dragControl:function(e,t){var i=t.datas,n=t.isRequest,o=t.distX,s=t.distY,a=i.targetInverseMatrix,r=i.prevMatrix,l=i.isWarp,d=i.startValue,c=i.poses,u=i.posIndexes,p=i.absolutePoses;if(!l)return!1;if(qh(t,"matrix3d"),Og(e,"warpable")){var h=u.map((function(e){return p[e]}));h.length>1&&h.push([(h[0][0]+h[1][0])/2,(h[0][1]+h[1][1])/2]);var g=$g(e,n,h.map((function(e){return[e[0]+o,e[1]+s]}))),f=g.horizontal,m=g.vertical;s-=f.offset,o-=m.offset}var v=Rh({datas:i,distX:o,distY:s},!0),b=i.nextPoses.slice();if(u.forEach((function(e){b[e]=nu(b[e],v)})),!fp.every((function(e){return t=e.map((function(e){return c[e]})),i=e.map((function(e){return b[e]})),n=uf(t[0],t[1],t[2]),o=uf(i[0],i[1],i[2]),s=Math.PI,!(n>=s&&o<=s||n<=s&&o>=s);var t,i,n,o,s})))return!1;var y=bu(c[0],c[2],c[1],c[3],b[0],b[2],b[1],b[3]);if(!y.length)return!1;var _=Mh(i,iu(a,y,4),!0),x=iu(Qc(r,4),_,4);i.prevMatrix=_;var w=iu(d,_,4),S=Th(i,"matrix3d("+w.join(", ")+")","matrix3d("+_.join(", ")+")");return Fh(t,S),nh(e,"onWarp",th(e,t,{delta:x,matrix:w,dist:_,multiply:iu,transform:S})),!0},dragControlEnd:function(e,t){var i=t.datas,n=t.isDrag;return!!i.isWarp&&(i.isWarp=!1,nh(e,"onWarpEnd",ih(e,t,{})),n)}},hf=kp("area-pieces"),gf=kp("area-piece"),ff=kp("avoid");function mf(e){var t=e.areaElement,i=e.state,n=i.width,o=i.height;!function(e,t){if(e.classList)e.classList.remove(t);else{var i=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className=e.className.replace(i," ")}}(t,ff),t.style.cssText+="left: 0px; top: 0px; width: "+n+"px; height: "+o+"px"}function vf(e){return e.createElement("div",{key:"area_pieces",className:hf},e.createElement("div",{className:gf}),e.createElement("div",{className:gf}),e.createElement("div",{className:gf}),e.createElement("div",{className:gf}))}var bf={name:"dragArea",props:{dragArea:Boolean,passDragArea:Boolean},events:{onClick:"click",onClickGroup:"clickGroup"},render:function(e,t){var i=e.props,n=i.target,o=i.dragArea,s=i.groupable,a=i.passDragArea,r=e.state,l=r.width,d=r.height,c=r.renderPoses,u=a?kp("area","pass"):kp("area");if(s)return[t.createElement("div",{key:"area",ref:vd(e,"areaElement"),className:u}),vf(t)];if(!n||!o)return[];var p=bu([0,0],[l,0],[0,d],[l,d],c[0],c[1],c[2],c[3]),h=p.length?Bp(p,!0):"none";return[t.createElement("div",{key:"area",ref:vd(e,"areaElement"),className:u,style:{top:"0px",left:"0px",width:l+"px",height:d+"px",transformOrigin:"0 0",transform:h}}),vf(t)]},dragStart:function(e,t){var i=t.datas,n=t.clientX,o=t.clientY;if(!t.inputEvent)return!1;i.isDragArea=!1;var s,a,r=e.areaElement,l=e.state,d=l.moveableClientRect,c=l.renderPoses,u=l.rootMatrix,p=l.is3d,h=d.left,g=d.top,f=Hp(c),m=f.left,v=f.top,b=f.width,y=f.height,_=ch(u,[n-h,o-g],p?4:3),x=_[0],w=_[1],S=[{left:m,top:v,width:b,height:(w-=v)-10},{left:m,top:v,width:(x-=m)-10,height:y},{left:m,top:v+w+10,width:b,height:y-w-10},{left:m+x+10,top:v,width:b-x-10,height:y}],C=[].slice.call(r.nextElementSibling.children);S.forEach((function(e,t){C[t].style.cssText="left: "+e.left+"px;top: "+e.top+"px; width: "+e.width+"px; height: "+e.height+"px;"})),a=ff,(s=r).classList?s.classList.add(a):s.className+=" "+a,l.disableNativeEvent=!0},drag:function(e,t){var i=t.datas,n=t.inputEvent;if(this.enableNativeEvent(e),!n)return!1;i.isDragArea||(i.isDragArea=!0,mf(e))},dragEnd:function(e,t){this.enableNativeEvent(e);var i=t.inputEvent,n=t.datas;if(!i)return!1;n.isDragArea||mf(e)},dragGroupStart:function(e,t){return this.dragStart(e,t)},dragGroup:function(e,t){return this.drag(e,t)},dragGroupEnd:function(e,t){return this.dragEnd(e,t)},unset:function(e){mf(e),e.state.disableNativeEvent=!1},enableNativeEvent:function(e){var t=e.state;t.disableNativeEvent&&requestAnimationFrame((function(){t.disableNativeEvent=!1}))}},yf=lp("origin",{render:function(e,t){var i=e.props.zoom,n=e.state,o=n.beforeOrigin,s=n.rotation;return[t.createElement("div",{className:kp("control","origin"),style:Gp(s,i,o),key:"beforeOrigin"})]}});function _f(e){var t=e.scrollContainer;return[t.scrollLeft,t.scrollTop]}var xf={name:"scrollable",canPinch:!0,props:{scrollable:Boolean,scrollContainer:Object,scrollThreshold:Number,getScrollPosition:Function},events:{onScroll:"scroll",onScrollGroup:"scrollGroup"},dragStart:function(e,t){var i=e.props.scrollContainer,n=void 0===i?e.getContainer():i,o=new $u,s=vh(n,!0);t.datas.dragScroll=o;var a=t.isControl?"controlGesto":"targetGesto",r=t.targets;o.on("scroll",(function(i){var n=i.container,o=i.direction,s=th(e,t,{scrollContainer:n,direction:o}),a=r?"onScrollGroup":"onScroll";r&&(s.targets=r),nh(e,a,s)})).on("move",(function(i){var n=i.offsetX,o=i.offsetY;e[a].scrollBy(n,o,t.inputEvent,!1)})),o.dragStart(t,{container:s})},checkScroll:function(e,t){var i=t.datas.dragScroll;if(i){var n=e.props,o=n.scrollContainer,s=void 0===o?e.getContainer():o,a=n.scrollThreshold,r=void 0===a?0:a,l=n.getScrollPosition,d=void 0===l?_f:l;return i.drag(t,{container:s,threshold:r,getScrollPosition:function(e){return d({scrollContainer:e.container,direction:e.direction})}}),!0}},drag:function(e,t){return this.checkScroll(e,t)},dragEnd:function(e,t){t.datas.dragScroll.dragEnd(),t.datas.dragScroll=null},dragControlStart:function(e,t){return this.dragStart(e,ap(ap({},t),{isControl:!0}))},dragControl:function(e,t){return this.drag(e,t)},dragControlEnd:function(e,t){return this.dragEnd(e,t)},dragGroupStart:function(e,t){return this.dragStart(e,ap(ap({},t),{targets:e.props.targets}))},dragGroup:function(e,t){return this.drag(e,ap(ap({},t),{targets:e.props.targets}))},dragGroupEnd:function(e,t){return this.dragEnd(e,ap(ap({},t),{targets:e.props.targets}))},dragGroupControlStart:function(e,t){return this.dragStart(e,ap(ap({},t),{targets:e.props.targets,isControl:!0}))},dragGroupContro:function(e,t){return this.drag(e,ap(ap({},t),{targets:e.props.targets}))},dragGroupControEnd:function(e,t){return this.dragEnd(e,ap(ap({},t),{targets:e.props.targets}))}},wf={name:"",props:{target:Object,dragTarget:Object,container:Object,portalContainer:Object,rootContainer:Object,zoom:Number,transformOrigin:Array,edge:Boolean,ables:Array,className:String,pinchThreshold:Number,pinchOutside:Boolean,triggerAblesSimultaneously:Boolean,checkInput:Boolean,cspNonce:String,translateZ:Number,props:Object},events:{}},Sf=lp("padding",{render:function(e,t){var i=e.props;if(i.dragArea)return[];var n=i.padding||{},o=n.left,s=void 0===o?0:o,a=n.top,r=void 0===a?0:a,l=n.right,d=void 0===l?0:l,c=n.bottom,u=void 0===c?0:c,p=e.state,h=p.renderPoses,g=[p.pos1,p.pos2,p.pos3,p.pos4],f=[];return s>0&&f.push([0,2]),r>0&&f.push([0,1]),d>0&&f.push([1,3]),u>0&&f.push([2,3]),f.map((function(e,i){var n=e[0],o=e[1],s=bu([0,0],[100,0],[0,100],[100,100],g[n],g[o],h[n],h[o]);if(s.length)return t.createElement("div",{key:"padding"+i,className:kp("padding"),style:{transform:Bp(s,!0)}})}))}}),Cf=["nw","ne","se","sw"];function kf(e,t){var i=e[0]+e[1],n=i>t?t/i:1;return e[0]*=n,e[1]=t-e[1]*n,e}var Ef=[1,2,5,6],Af=[0,3,4,7],qf=[1,-1,-1,1],Tf=[1,1,-1,-1];function Lf(e,t,i,n,o,s,a,r,l){void 0===s&&(s=0),void 0===a&&(a=0),void 0===r&&(r=n),void 0===l&&(l=o);var d=[],c=!1,u=e.map((function(e,u){var p=t[u],h=p.horizontal,g=p.vertical;if(g&&!c&&(c=!0,d.push("/")),c){var f=Math.max(0,1===g?e[1]-a:l-e[1]);return d.push(hh(f,o,i)),f}f=Math.max(0,1===h?e[0]-s:r-e[0]);return d.push(hh(f,n,i)),f}));return{styles:d,raws:u}}function Mf(e){for(var t=[0,0],i=[0,0],n=e.length,o=0;o<n;++o){var s=e[o];s.sub&&(s.horizontal&&(0===t[1]&&(t[0]=o),t[1]=o-t[0]+1,i[0]=o+1),s.vertical&&(0===i[1]&&(i[0]=o),i[1]=o-i[0]+1))}return{horizontalRange:t,verticalRange:i}}function Of(e,t,i,n,o,s){var a,r,l,d;void 0===s&&(s=[0,0]);var c=e.indexOf("/"),u=(c>-1?e.slice(0,c):e).length,p=e.slice(0,u),h=e.slice(u+1),g=p[0],f=void 0===g?"0px":g,m=p[1],v=void 0===m?f:m,b=p[2],y=void 0===b?f:b,_=p[3],x=void 0===_?v:_,w=h[0],S=void 0===w?f:w,C=h[1],k=void 0===C?S:C,E=h[2],A=void 0===E?S:E,q=h[3],T=void 0===q?k:q,L=[f,v,y,x].map((function(e){return Yd(e,t)})),M=[S,k,A,T].map((function(e){return Yd(e,i)})),O=L.slice(),R=M.slice();a=kf([O[0],O[1]],t),O[0]=a[0],O[1]=a[1],r=kf([O[3],O[2]],t),O[3]=r[0],O[2]=r[1],l=kf([R[0],R[3]],i),R[0]=l[0],R[3]=l[1],d=kf([R[1],R[2]],i),R[1]=d[0],R[2]=d[1];var N=O.slice(0,Math.max(s[0],p.length)),B=R.slice(0,Math.max(s[1],h.length));return rp(N.map((function(e,t){var s=Cf[t];return{horizontal:qf[t],vertical:0,pos:[n+e,o+(-1===Tf[t]?i:0)],sub:!0,raw:L[t],direction:s}})),B.map((function(e,i){var s=Cf[i];return{horizontal:0,vertical:Tf[i],pos:[n+(-1===qf[i]?t:0),o+e],sub:!0,raw:M[i],direction:s}})))}function Rf(e,t,i,n,o){void 0===o&&(o=t.length);var s=Mf(e.slice(n)),a=s.horizontalRange,r=s.verticalRange,l=i-n,d=0;if(0===l)d=o;else if(l>0&&l<a[1])d=a[1]-l;else{if(!(l>=r[0]))return;d=r[0]+r[1]-l}e.splice(i,d),t.splice(i,d)}function Nf(e,t,i,n,o,s,a,r,l,d,c){void 0===d&&(d=0),void 0===c&&(c=0);var u=Mf(e.slice(i)),p=u.horizontalRange,h=u.verticalRange;if(n>-1)for(var g=1===qf[n]?s-d:r-s,f=p[1];f<=n;++f){var m=1===Tf[f]?c:l,v=0;if(n===f?v=s:0===f?v=d+g:-1===qf[f]&&(v=r-(t[i][0]-d)),e.splice(i+f,0,{horizontal:qf[f],vertical:0,pos:[v,m]}),t.splice(i+f,0,[v,m]),0===f)break}else if(o>-1){var b=1===Tf[o]?a-c:l-a;if(0===p[1]&&0===h[1]){var y=[d+b,c];e.push({horizontal:qf[0],vertical:0,pos:y}),t.push(y)}var _=h[0];for(f=h[1];f<=o;++f){v=1===qf[f]?d:r,m=0;if(o===f?m=a:0===f?m=c+b:1===Tf[f]?m=t[i+_][1]:-1===Tf[f]&&(m=l-(t[i+_][1]-c)),e.push({horizontal:0,vertical:Tf[f],pos:[v,m]}),t.push([v,m]),0===f)break}}}function Bf(e,t){return void 0===t&&(t=e.map((function(e){return e.raw}))),{horizontals:e.map((function(e,i){return e.horizontal?t[i]:null})).filter((function(e){return null!=e})),verticals:e.map((function(e,i){return e.vertical?t[i]:null})).filter((function(e){return null!=e}))}}var If=[[0,-1,"n"],[1,0,"e"]],Df=[[-1,-1,"nw"],[0,-1,"n"],[1,-1,"ne"],[1,0,"e"],[1,1,"se"],[0,1,"s"],[-1,1,"sw"],[-1,0,"w"]];function $f(e,t,i){var n=e.props.clipRelative,o=e.state,s=o.width,a=o.height,r=t,l=r.type,d=r.poses,c="rect"===l,u="circle"===l;if("polygon"===l)return i.map((function(e){return hh(e[0],s,n)+" "+hh(e[1],a,n)}));if(c||"inset"===l){var p=i[1][1],h=i[3][0],g=i[7][0],f=i[5][1];if(c)return[p,h,f,g].map((function(e){return e+"px"}));var m=[p,s-h,a-f,g].map((function(e,t){return hh(e,t%2?s:a,n)}));if(i.length>8){var v=ou(i[4],i[0]),b=v[0],y=v[1];m.push.apply(m,rp(["round"],Lf(i.slice(8),d.slice(8),n,b,y,g,p,h,f).styles))}return m}if(u||"ellipse"===l){var _=i[0],x=hh(Math.abs(i[1][1]-_[1]),u?Math.sqrt((s*s+a*a)/2):a,n);return(m=u?[x]:[hh(Math.abs(i[2][0]-_[0]),s,n),x]).push("at",hh(_[0],s,n),hh(_[1],a,n)),m}}function Pf(e,t,i,n){var o=[n,(n+t)/2,t],s=[e,(e+i)/2,i];return Df.map((function(e){var t=e[0],i=e[1],n=e[2],a=o[t+1],r=s[i+1];return{vertical:Math.abs(i),horizontal:Math.abs(t),direction:n,pos:[a,r]}}))}function Hf(e,t,i,n,o){var s,a,r,l,d,c,u,p=o;if(!p){var h=oh(e),g=h.clipPath;p="none"!==g?g:h.clip}if(p&&"none"!==p&&"auto"!==p||(p=n)){var f=zd(p),m=f.prefix,v=void 0===m?p:m,b=f.value,y=void 0===b?"":b,_="circle"===v,x=" ";if("polygon"===v)return x=",",{type:v,clipText:p,poses:M=(E=Hd(y||"0% 0%, 100% 0%, 100% 100%, 0% 100%")).map((function(e){var n=e.split(" "),o=n[0],s=n[1];return{vertical:1,horizontal:1,pos:[Yd(o,t),Yd(s,i)]}})),splitter:x};if(_||"ellipse"===v){var w="",S="",C=0,k=0,E=Pd(y);if(_){var A;A=void 0===(s=E[0])?"50%":s,w=void 0===(a=E[2])?"50%":a,S=void 0===(r=E[3])?"50%":r,C=Yd(A,Math.sqrt((t*t+i*i)/2)),k=C}else{var q,T;q=void 0===(l=E[0])?"50%":l,T=void 0===(d=E[1])?"50%":d,w=void 0===(c=E[3])?"50%":c,S=void 0===(u=E[4])?"50%":u,C=Yd(q,t),k=Yd(T,i)}var L=[Yd(w,t),Yd(S,i)],M=rp([{vertical:1,horizontal:1,pos:L,direction:"nesw"}],If.slice(0,_?1:2).map((function(e){return{vertical:Math.abs(e[1]),horizontal:e[0],direction:e[2],sub:!0,pos:[L[0]+e[0]*C,L[1]+e[1]*k]}})));return{type:v,clipText:p,radiusX:C,radiusY:k,left:L[0]-C,top:L[1]-k,poses:M,splitter:x}}if("inset"===v){var O=(E=Pd(y||"0 0 0 0")).indexOf("round"),R=(O>-1?E.slice(0,O):E).length,N=E.slice(R+1),B=E.slice(0,R),I=B[0],D=B[1],$=void 0===D?I:D,P=B[2],H=void 0===P?I:P,z=B[3],F=void 0===z?$:z,j=[I,H].map((function(e){return Yd(e,i)})),U=j[0],W=j[1],G=[F,$].map((function(e){return Yd(e,t)})),V=G[0],Y=G[1],X=t-Y,K=i-W,Z=Of(N,X-V,K-U,V,U);return{type:"inset",clipText:p,poses:M=rp(Pf(U,X,K,V),Z),top:U,left:V,right:X,bottom:K,radius:N,splitter:x}}if("rect"===v){x=",";var Q=(E=Hd(y||"0px, "+t+"px, "+i+"px, 0px")).map((function(e){return Fd(e).value}));return{type:"rect",clipText:p,poses:M=Pf(U=Q[0],Y=Q[1],W=Q[2],V=Q[3]),top:U,right:Y,bottom:W,left:V,values:E,splitter:x}}}}var zf={name:"clippable",props:{clippable:Boolean,defaultClipPath:String,customClipPath:String,clipRelative:Boolean,clipArea:Boolean,dragWithClip:Boolean,clipTargetBounds:Boolean,clipVerticalGuidelines:Array,clipHorizontalGuidelines:Array,clipSnapThreshold:Boolean},events:{onClipStart:"clipStart",onClip:"clip",onClipEnd:"clipEnd"},css:[".control.clip-control {\n background: #6d6;\n cursor: pointer;\n}\n.control.clip-control.clip-radius {\n background: #d66;\n}\n.line.clip-line {\n background: #6e6;\n cursor: move;\n z-index: 1;\n}\n.clip-area {\n position: absolute;\n top: 0;\n left: 0;\n}\n.clip-ellipse {\n position: absolute;\n cursor: move;\n border: 1px solid #6d6;\n border: var(--zoompx) solid #6d6;\n border-radius: 50%;\n transform-origin: 0px 0px;\n}",":host {\n --bounds-color: #d66;\n}",".guideline {\n pointer-events: none;\n z-index: 2;\n}",".line.guideline.bounds {\n background: #d66;\n background: var(--bounds-color);\n}"],render:function(e,t){var i=e.props,n=i.customClipPath,o=i.defaultClipPath,s=i.clipArea,a=i.zoom,r=e.state,l=r.target,d=r.width,c=r.height,u=r.allMatrix,p=r.is3d,h=r.left,g=r.top,f=r.pos1,m=r.pos2,v=r.pos3,b=r.pos4,y=r.clipPathState,_=r.snapBoundInfos;if(!l)return[];var x=Hf(l,d,c,o||"inset",y||n);if(!x)return[];var w=p?4:3,S=x.type,C=x.poses.map((function(e){var t=$p(u,e.pos,w);return[t[0]-h,t[1]-g]})),k=[],E=[],A="rect"===S,q="inset"===S,T="polygon"===S;if(A||q||T){var L=q?C.slice(0,8):C;E=L.map((function(e,i){var n=0===i?L[L.length-1]:L[i-1],o=Qd(n,e),s=Up(n,e);return t.createElement("div",{key:"clipLine"+i,className:kp("line","clip-line","snap-control"),"data-clip-index":i,style:{width:s+"px",transform:"translate("+n[0]+"px, "+n[1]+"px) rotate("+o+"rad) scaleY("+a+")"}})}))}if(k=C.map((function(e,i){return t.createElement("div",{key:"clipControl"+i,className:kp("control","clip-control","snap-control"),"data-clip-index":i,style:{transform:"translate("+e[0]+"px, "+e[1]+"px) scale("+a+")"}})})),q&&k.push.apply(k,C.slice(8).map((function(e,i){return t.createElement("div",{key:"clipRadiusControl"+i,className:kp("control","clip-control","clip-radius","snap-control"),"data-clip-index":8+i,style:{transform:"translate("+e[0]+"px, "+e[1]+"px) scale("+a+")"}})}))),"circle"===S||"ellipse"===S){var M=x.left,O=x.top,R=x.radiusX,N=x.radiusY,B=ou($p(u,[M,O],w),$p(u,[0,0],w)),I=B[0],D=B[1],$="none";if(!s){for(var P=Math.max(10,R/5,N/5),H=[],z=0;z<=P;++z){var F=2*Math.PI/P*z;H.push([R+(R-a)*Math.cos(F),N+(N-a)*Math.sin(F)])}H.push([R,-2]),H.push([-2,-2]),H.push([-2,2*N+2]),H.push([2*R+2,2*N+2]),H.push([2*R+2,-2]),H.push([R,-2]),$="polygon("+H.map((function(e){return e[0]+"px "+e[1]+"px"})).join(", ")+")"}k.push(t.createElement("div",{key:"clipEllipse",className:kp("clip-ellipse","snap-control"),style:{width:2*R+"px",height:2*N+"px",clipPath:$,transform:"translate("+(-h+I)+"px, "+(-g+D)+"px) "+Bp(u)}}))}if(s){var j=Hp(rp([f,m,v,b],C)),U=j.width,W=j.height,G=j.left,V=j.top;if(T||A||q){H=q?C.slice(0,8):C;k.push(t.createElement("div",{key:"clipArea",className:kp("clip-area","snap-control"),style:{width:U+"px",height:W+"px",transform:"translate("+G+"px, "+V+"px)",clipPath:"polygon("+H.map((function(e){return e[0]-G+"px "+(e[1]-V)+"px"})).join(", ")+")"}}))}}return _&&["vertical","horizontal"].forEach((function(e){var i=_[e],n="horizontal"===e;i.isSnap&&E.push.apply(E,i.snap.posInfos.map((function(i,o){var s=i.pos,r=ou($p(u,n?[0,s]:[s,0],w),[h,g]),l=ou($p(u,n?[d,s]:[s,c],w),[h,g]);return Qg(t,"",r,l,a,"clip"+e+"snap"+o,"guideline")}))),i.isBound&&E.push.apply(E,i.bounds.map((function(i,o){var s=i.pos,r=ou($p(u,n?[0,s]:[s,0],w),[h,g]),l=ou($p(u,n?[d,s]:[s,c],w),[h,g]);return Qg(t,"",r,l,a,"clip"+e+"bounds"+o,"guideline","bounds","bold")})))})),rp(k,E)},dragControlCondition:function(e,t){return t.inputEvent&&(t.inputEvent.target.getAttribute("class")||"").indexOf("clip")>-1},dragStart:function(e,t){var i=e.props.dragWithClip;return!(void 0===i||i)&&this.dragControlStart(e,t)},drag:function(e,t){return this.dragControl(e,t)},dragEnd:function(e,t){return this.dragControlEnd(e,t)},dragControlStart:function(e,t){var i=e.state,n=e.props,o=n.defaultClipPath,s=n.customClipPath,a=i.target,r=i.width,l=i.height,d=t.inputEvent?t.inputEvent.target:null,c=d?d.getAttribute("class"):"",u=t.datas,p=Hf(a,r,l,o||"inset",s);if(!p)return!1;var h=p.clipText;return!1===nh(e,"onClipStart",th(e,t,{clipType:p.type,clipStyle:h,poses:p.poses.map((function(e){return e.pos}))}))?(u.isClipStart=!1,!1):(u.isControl=c.indexOf("clip-control")>-1,u.isLine=c.indexOf("clip-line")>-1,u.isArea=c.indexOf("clip-area")>-1||c.indexOf("clip-ellipse")>-1,u.index=d?parseInt(d.getAttribute("data-clip-index"),10):-1,u.clipPath=p,u.isClipStart=!0,i.clipPathState=h,Ah(e,t),!0)},dragControl:function(e,t){var i=t.datas,n=t.originalDatas;if(!i.isClipStart)return!1;var o=n&&n.draggable||{},s=i,a=s.isControl,r=s.isLine,l=s.isArea,d=s.index,c=s.clipPath;if(!c)return!1;var u=o.isDrag?o.prevDist:Rh(t),p=u[0],h=u[1],g=e.props,f=e.state,m=f.width,v=f.height,b=!l&&!a&&!r,y=c.type,_=c.poses,x=c.splitter,w=_.map((function(e){return e.pos}));b&&(p=-p,h=-h);var S=!a||"nesw"===_[d].direction,C="inset"===y||"rect"===y,k=_.map((function(){return[0,0]}));if(a&&!S){var E=_[d],A=E.horizontal,q=E.vertical,T=[p*Math.abs(A),h*Math.abs(q)];k=function(e,t,i,n){var o=e[t],s=o.direction,a=o.sub,r=e.map((function(){return[0,0]})),l=s?s.split(""):[];if(n&&t<8){var d=l.filter((function(e){return"w"===e||"e"===e}))[0],c=l.filter((function(e){return"n"===e||"s"===e}))[0];r[t]=i,e.forEach((function(e,t){var n=e.direction;n&&(n.indexOf(d)>-1&&(r[t][0]=i[0]),n.indexOf(c)>-1&&(r[t][1]=i[1]))})),d&&(r[1][0]=i[0]/2,r[5][0]=i[0]/2),c&&(r[3][1]=i[1]/2,r[7][1]=i[1]/2)}else s&&!a?l.forEach((function(t){var n="n"===t||"s"===t;e.forEach((function(e,o){var s=e.direction,a=e.horizontal,l=e.vertical;s&&-1!==s.indexOf(t)&&(r[o]=[n||!a?0:i[0],n&&l?i[1]:0])}))})):r[t]=i;return r}(_,d,T,C)}else S&&(k=w.map((function(){return[p,h]})));var L=w.map((function(e,t){return nu(e,k[t])})),M=rp(L);f.snapBoundInfos=null;var O="circle"===c.type,R="ellipse"===c.type;if(O||R){var N=Hp(L),B=Math.abs(N.bottom-N.top),I=Math.abs(R?N.right-N.left:B),D=L[0][1]+B,$=L[0][0]-I,P=L[0][0]+I;O&&(M.push([P,N.bottom]),k.push([1,0])),M.push([N.left,D]),k.push([0,1]),M.push([$,N.bottom]),k.push([1,0])}var H=Zh((g.clipHorizontalGuidelines||[]).map((function(e){return Yd(""+e,v)})),(g.clipVerticalGuidelines||[]).map((function(e){return Yd(""+e,m)})),m,v),z=[],F=[];if(O||R)z=[M[4][0],M[2][0]],F=[M[1][1],M[3][1]];else if(C){var j=[M[0],M[2],M[4],M[6]],U=[k[0],k[2],k[4],k[6]];z=j.filter((function(e,t){return U[t][0]})).map((function(e){return e[0]})),F=j.filter((function(e,t){return U[t][1]})).map((function(e){return e[1]}))}else z=M.filter((function(e,t){return k[t][0]})).map((function(e){return e[0]})),F=M.filter((function(e,t){return k[t][1]})).map((function(e){return e[1]}));for(var W=function(e){var t=Pg(H,g.clipTargetBounds&&{left:0,top:0,right:m,bottom:v},z,F,{snapThreshold:5}),i=t.horizontal,n=t.vertical,o=i.offset,s=n.offset;if(!R&&!O||0!==k[0][0]||0!==k[0][1])return M.forEach((function(e,t){var i=k[t];i[0]&&(e[0]-=s),i[1]&&(e[1]-=o)})),"break";var a=Hp(L),r=a.bottom-a.top,l=R?a.right-a.left:r;l-=n.isBound?Math.abs(s):0===n.snapIndex?-s:s,r-=i.isBound?Math.abs(o):0===i.snapIndex?-o:o,O&&(l=r=ag(n,i)>0?r:l);var d=M[0];M[1][1]=d[1]-r,M[2][0]=d[0]+l,M[3][1]=d[1]+r,M[4][0]=d[0]-l},G=0;G<2;++G){if("break"===W())break}var V=$f(e,c,L),Y=y+"("+V.join(x)+")";if(f.clipPathState=Y,O||R)z=[M[4][0],M[2][0]],F=[M[1][1],M[3][1]];else if(C){j=[M[0],M[2],M[4],M[6]];z=j.map((function(e){return e[0]})),F=j.map((function(e){return e[1]}))}else z=M.map((function(e){return e[0]})),F=M.map((function(e){return e[1]}));return f.snapBoundInfos=Pg(H,g.clipTargetBounds&&{left:0,top:0,right:m,bottom:v},z,F,{snapThreshold:1}),nh(e,"onClip",th(e,t,{clipEventType:"changed",clipType:y,poses:L,clipStyle:Y,clipStyles:V,distX:p,distY:h})),!0},dragControlEnd:function(e,t){this.unset(e);var i=t.isDrag,n=t.datas,o=t.isDouble,s=n.isLine,a=n.isClipStart,r=n.isControl;return!!a&&(nh(e,"onClipEnd",ih(e,t,{})),o&&(r?function(e,t){var i=t.datas,n=i.clipPath,o=i.index,s=n,a=s.type,r=s.poses,l=s.splitter,d=r.map((function(e){return e.pos})),c=d.length;if("polygon"===a)r.splice(o,1),d.splice(o,1);else{if("inset"!==a)return;if(o<8)return;if(Rf(r,d,o,8,c),c===r.length)return}var u=$f(e,n,d);nh(e,"onClip",th(e,t,{clipEventType:"removed",clipType:a,poses:d,clipStyles:u,clipStyle:a+"("+u.join(l)+")",distX:0,distY:0}))}(e,t):s&&function(e,t){var i=Eh(e,t),n=i[0],o=i[1],s=t.datas,a=s.clipPath,r=s.index,l=a,d=l.type,c=l.poses,u=l.splitter,p=c.map((function(e){return e.pos}));if("polygon"===d)p.splice(r,0,[n,o]);else{if("inset"!==d)return;var h=Ef.indexOf(r),g=Af.indexOf(r),f=c.length;if(Nf(c,p,8,h,g,n,o,p[4][0],p[4][1],p[0][0],p[0][1]),f===c.length)return}var m=$f(e,a,p);nh(e,"onClip",th(e,t,{clipEventType:"added",clipType:d,poses:p,clipStyles:m,clipStyle:d+"("+m.join(u)+")",distX:0,distY:0}))}(e,t)),o||i)},unset:function(e){e.state.clipPathState="",e.state.snapBoundInfos=null}},Ff={name:"originDraggable",props:{originDraggable:Boolean,originRelative:Boolean},events:{onDragOriginStart:"dragOriginStart",onDragOrigin:"dragOrigin",onDragOriginEnd:"dragOriginEnd"},css:[":host[data-able-origindraggable] .control.origin {\n pointer-events: auto;\n}"],dragControlCondition:function(e,t){return t.isRequest?"originDraggable"===t.requestAble:nc(t.inputEvent.target,kp("origin"))},dragControlStart:function(e,t){var i=t.datas;Ah(e,t);var n=th(e,t,{dragStart:Kg.dragStart(e,(new wh).dragStart([0,0],t))}),o=nh(e,"onDragOriginStart",n);return i.startOrigin=e.state.transformOrigin,i.startTargetOrigin=e.state.targetOrigin,i.prevOrigin=[0,0],i.isDragOrigin=!0,!1===o?(i.isDragOrigin=!1,!1):n},dragControl:function(e,t){var i=t.datas,n=t.isPinch,o=t.isRequest;if(!i.isDragOrigin)return!1;var s=Rh(t),a=s[0],r=s[1],l=e.state,d=l.width,c=l.height,u=l.offsetMatrix,p=l.targetMatrix,h=l.is3d,g=e.props.originRelative,f=void 0===g||g,m=h?4:3,v=[a,r];if(o){var b=t.distOrigin;(b[0]||b[1])&&(v=b)}var y=nu(i.startOrigin,v),_=nu(i.startTargetOrigin,v),x=ou(v,i.prevOrigin),w=Dh(u,p,y,m),S=e.getRect(),C=Hp(Pp(w,d,c,m)),k=[S.left-C.left,S.top-C.top];i.prevOrigin=v;var E=th(e,t,{width:d,height:c,origin:y,dist:v,delta:x,transformOrigin:[hh(_[0],d,f),hh(_[1],c,f)].join(" "),drag:Kg.drag(e,xh(t,e.state,k,!!n,!1))});return nh(e,"onDragOrigin",E),E},dragControlEnd:function(e,t){return!!t.datas.isDragOrigin&&(nh(e,"onDragOriginEnd",ih(e,t,{})),!0)},dragGroupControlCondition:function(e,t){return this.dragControlCondition(e,t)},dragGroupControlStart:function(e,t){return!!this.dragControlStart(e,t)},dragGroupControl:function(e,t){var i=this.dragControl(e,t);return!!i&&(e.transformOrigin=i.transformOrigin,!0)},request:function(e){var t={},i=e.getRect(),n=0,o=0,s=i.transformOrigin,a=[0,0];return{isControl:!0,requestStart:function(){return{datas:t}},request:function(e){return"deltaOrigin"in e?(a[0]+=e.deltaOrigin[0],a[1]+=e.deltaOrigin[1]):"origin"in e?(a[0]=e.origin[0]-s[0],a[1]=e.origin[1]-s[1]):("x"in e?n=e.x-i.left:"deltaX"in e&&(n+=e.deltaX),"y"in e?o=e.y-i.top:"deltaY"in e&&(o+=e.deltaY)),{datas:t,distX:n,distY:o,distOrigin:a}},requestEnd:function(){return{datas:t,isDrag:!0}}}}};function jf(e,t,i,n,o){var s;void 0===n&&(n=[0,0]);if(o)s=o;else{var a=oh(e);s=a&&a.borderRadius||""}return Of(!s||!o&&"0px"===s?[]:Pd(s),t,i,0,0,n)}function Uf(e,t,i,n,o,s){var a=e.state,r=a.width,l=a.height,d=Lf(s,o,e.props.roundRelative,r,l),c=d.raws,u=d.styles,p=Bf(o,c),h=p.horizontals,g=p.verticals,f=u.join(" ");a.borderRadiusState=f,nh(e,"onRound",th(e,t,{horizontals:h,verticals:g,borderRadius:f,width:r,height:l,delta:n,dist:i}))}var Wf={name:"roundable",props:{roundable:Boolean,roundRelative:Boolean,minRoundControls:Array,maxRoundControls:Array,roundClickable:Boolean},events:{onRoundStart:"roundStart",onRound:"round",onRoundEnd:"roundEnd"},css:[".control.border-radius {\n background: #d66;\n cursor: pointer;\n}",":host[data-able-roundable] .line.direction {\n cursor: pointer;\n}"],render:function(e,t){var i=e.state,n=i.target,o=i.width,s=i.height,a=i.allMatrix,r=i.is3d,l=i.left,d=i.top,c=i.borderRadiusState,u=e.props,p=u.minRoundControls,h=void 0===p?[0,0]:p,g=u.maxRoundControls,f=void 0===g?[4,4]:g,m=u.zoom;if(!n)return null;var v=r?4:3,b=jf(n,o,s,h,c);if(!b)return null;var y=0,_=0;return b.map((function(e,i){_+=Math.abs(e.horizontal),y+=Math.abs(e.vertical);var n=ou($p(a,e.pos,v),[l,d]),o=e.vertical?y<=f[1]:_<=f[0];return t.createElement("div",{key:"borderRadiusControl"+i,className:kp("control","border-radius"),"data-radius-index":i,style:{display:o?"block":"none",transform:"translate("+n[0]+"px, "+n[1]+"px) scale("+m+")"}})}))},dragControlCondition:function(e,t){if(!t.inputEvent||t.isRequest)return!1;var i=t.inputEvent.target.getAttribute("class")||"";return i.indexOf("border-radius")>-1||i.indexOf("moveable-line")>-1&&i.indexOf("moveable-direction")>-1},dragControlStart:function(e,t){var i=t.inputEvent,n=t.datas,o=i.target,s=o.getAttribute("class")||"",a=s.indexOf("border-radius")>-1,r=s.indexOf("moveable-line")>-1&&s.indexOf("moveable-direction")>-1,l=a?parseInt(o.getAttribute("data-radius-index"),10):-1,d=r?parseInt(o.getAttribute("data-line-index"),10):-1;if(!a&&!r)return!1;if(!1===nh(e,"onRoundStart",th(e,t,{})))return!1;n.lineIndex=d,n.controlIndex=l,n.isControl=a,n.isLine=r,Ah(e,t);var c=e.props,u=c.roundRelative,p=c.minRoundControls,h=void 0===p?[0,0]:p,g=e.state,f=g.target,m=g.width,v=g.height;n.isRound=!0,n.prevDist=[0,0];var b=jf(f,m,v,h)||[];return n.controlPoses=b,g.borderRadiusState=Lf(b.map((function(e){return e.pos})),b,u,m,v).styles.join(" "),!0},dragControl:function(e,t){var i=t.datas;if(!i.isRound||!i.isControl||!i.controlPoses.length)return!1;var n=i.controlIndex,o=i.controlPoses,s=Rh(t),a=s[0],r=s[1],l=[a,r],d=ou(l,i.prevDist),c=e.props.maxRoundControls,u=void 0===c?[4,4]:c,p=e.state,h=p.width,g=p.height,f=o[n],m=f.vertical,v=f.horizontal,b=o.map((function(e){var t=e.horizontal,i=e.vertical,n=[t*v*l[0],i*m*l[1]];if(t){if(1===u[0])return n;if(u[0]<4&&t!==v)return n}else{if(0===u[1])return n[1]=i*v*l[0]/h*g,n;if(m){if(1===u[1])return n;if(u[1]<4&&i!==m)return n}}return[0,0]}));b[n]=l;var y=o.map((function(e,t){return nu(e.pos,b[t])}));return i.prevDist=[a,r],Uf(e,t,l,d,o,y),!0},dragControlEnd:function(e,t){var i=e.state;i.borderRadiusState="";var n=t.datas,o=t.isDouble;if(!n.isRound)return!1;var s=i.width,a=i.height,r=n.isControl,l=n.controlIndex,d=n.isLine,c=n.lineIndex,u=n.controlPoses,p=u.map((function(e){return e.pos})),h=p.length,g=e.props.roundClickable;if(o&&(void 0===g||g)){if(r)Rf(u,p,l,0);else if(d){var f=Eh(e,t);!function(e,t,i,n,o,s,a){var r=Bf(e),l=r.horizontals,d=r.verticals,c=l.length,u=d.length,p=-1,h=-1;0===i?0===c?p=0:1===c&&(p=1):3===i&&(c<=2?p=2:c<=3&&(p=3)),2===i?0===u?h=0:u<4&&(h=3):1===i&&(u<=1?h=1:u<=2&&(h=2)),Nf(e,t,0,p,h,n,o,s,a)}(u,p,c,f[0],f[1],s,a)}h!==u.length&&Uf(e,t,[0,0],[0,0],u,p)}return nh(e,"onRoundEnd",ih(e,t,{})),i.borderRadiusState="",!0},unset:function(e){e.state.borderRadiusState=""}},Gf={isPinch:!0,name:"beforeRenderable",props:{},events:{onBeforeRenderStart:"beforeRenderStart",onBeforeRender:"beforeRender",onBeforeRenderEnd:"beforeRenderEnd",onBeforeRenderGroupStart:"beforeRenderGroupStart",onBeforeRenderGroup:"beforeRenderGroup",onBeforeRenderGroupEnd:"beforeRenderGroupEnd"},setTransform:function(e,t){var i=e.state,n=i.is3d,o=i.target,s=i.targetMatrix,a=null==o?void 0:o.style.transform,r=n?"matrix3d("+s.join(",")+")":"matrix("+su(s,!0)+")";t.datas.startTransforms=a&&"none"!==a?Pd(a):[r]},resetTransform:function(e,t){t.datas.nextTransforms=t.datas.startTransforms,t.datas.nextTransformAppendedIndexes=[]},fillDragStartParams:function(e,t){return th(e,t,{setTransform:function(e){t.datas.startTransforms=Rd(e)?e:Pd(e)},isPinch:!!t.isPinch})},fillDragParams:function(e,t){return th(e,t,{isPinch:!!t.isPinch})},dragStart:function(e,t){this.setTransform(e,t),nh(e,"onBeforeRenderStart",this.fillDragStartParams(e,t))},drag:function(e,t){this.resetTransform(e,t),nh(e,"onBeforeRender",th(e,t,{isPinch:!!t.isPinch}))},dragEnd:function(e,t){nh(e,"onBeforeRenderEnd",th(e,t,{isPinch:!!t.isPinch,isDrag:t.isDrag}))},dragGroupStart:function(e,t){var i=this;this.dragStart(e,t);var n=Sh(e,"beforeRenderable",t),o=e.moveables,s=n.map((function(e,t){var n=o[t];return i.setTransform(n,e),i.fillDragStartParams(n,e)}));nh(e,"onBeforeRenderGroupStart",th(e,t,{isPinch:!!t.isPinch,targets:e.props.targets,setTransform:function(){},events:s}))},dragGroup:function(e,t){var i=this;this.drag(e,t);var n=Sh(e,"beforeRenderable",t),o=e.moveables,s=n.map((function(e,t){var n=o[t];return i.resetTransform(n,e),i.fillDragParams(n,e)}));nh(e,"onBeforeRenderGroup",th(e,t,{isPinch:!!t.isPinch,targets:e.props.targets,events:s}))},dragGroupEnd:function(e,t){this.dragEnd(e,t),nh(e,"onBeforeRenderGroupEnd",th(e,t,{isPinch:!!t.isPinch,isDrag:t.isDrag,targets:e.props.targets}))},dragControlStart:function(e,t){return this.dragStart(e,t)},dragControl:function(e,t){return this.drag(e,t)},dragControlEnd:function(e,t){return this.dragEnd(e,t)},dragGroupControlStart:function(e,t){return this.dragGroupStart(e,t)},dragGroupControl:function(e,t){return this.dragGroup(e,t)},dragGroupControlEnd:function(e,t){return this.dragGroupEnd(e,t)}},Vf={name:"renderable",props:{},events:{onRenderStart:"renderStart",onRender:"render",onRenderEnd:"renderEnd",onRenderGroupStart:"renderGroupStart",onRenderGroup:"renderGroup",onRenderGroupEnd:"renderGroupEnd"},dragStart:function(e,t){nh(e,"onRenderStart",th(e,t,{isPinch:!!t.isPinch}))},drag:function(e,t){nh(e,"onRender",th(e,t,{isPinch:!!t.isPinch}))},dragEnd:function(e,t){nh(e,"onRenderEnd",th(e,t,{isPinch:!!t.isPinch,isDrag:t.isDrag}))},dragGroupStart:function(e,t){nh(e,"onRenderGroupStart",th(e,t,{isPinch:!!t.isPinch,targets:e.props.targets}))},dragGroup:function(e,t){nh(e,"onRenderGroup",th(e,t,{isPinch:!!t.isPinch,targets:e.props.targets}))},dragGroupEnd:function(e,t){nh(e,"onRenderGroupEnd",th(e,t,{isPinch:!!t.isPinch,isDrag:t.isDrag,targets:e.props.targets}))},dragControlStart:function(e,t){return this.dragStart(e,t)},dragControl:function(e,t){return this.drag(e,t)},dragControlEnd:function(e,t){return this.dragEnd(e,t)},dragGroupControlStart:function(e,t){return this.dragGroupStart(e,t)},dragGroupControl:function(e,t){return this.dragGroup(e,t)},dragGroupControlEnd:function(e,t){return this.dragGroupEnd(e,t)}};function Yf(e,t,i,n,o,s,a){var r="Start"===o,l=e.state.target,d=s.isRequest;if(!l||r&&n.indexOf("Control")>-1&&!d&&e.areaElement===s.inputEvent.target)return!1;var c=""+i+n+o,u=""+i+n+"Condition",p="End"===o,h=o.indexOf("After")>-1,g=r&&(!e.targetGesto||!e.controlGesto||!e.targetGesto.isFlag()||!e.controlGesto.isFlag());g&&e.updateRect(o,!0,!1),""!==o||h||d||uh(e.state,s);var f=rp([Gf],e[t].slice(),[Vf]);if(d){var m=s.requestAble;f.some((function(e){return e.name===m}))||f.push.apply(f,e.props.ables.filter((function(e){return e.name===m})))}if(!f.length)return!1;var v=f.filter((function(e){return e[c]})),b=s.datas;g&&v.forEach((function(t){t.unset&&t.unset(e)}));var y,_=s.inputEvent;p&&_&&(y=document.elementFromPoint(s.clientX,s.clientY)||_.target);var x=v.filter((function(t){var i=t.name,n=b[i]||(b[i]={});return r&&(n.isEventStart=!t[u]||t[u](e,s)),!!n.isEventStart&&t[c](e,ap(ap({},s),{datas:n,originalDatas:b,inputTarget:y}))})).length,w=r&&v.length&&!x;return(p||w)&&(e.state.gesto=null,e.moveables&&e.moveables.forEach((function(e){e.state.gesto=null}))),g&&w&&v.forEach((function(t){t.unset&&t.unset(e)})),!e.isUnmounted&&!w&&((!r&&x&&!a||p)&&(e.updateRect(o,!0,!1),e.forceUpdate()),r||p||h||!x||a||Yf(e,t,i,n,o+"After",s),!0)}function Xf(e,t,i){var n=e.controlBox.getElement(),o=[];o.push(n),e.props.dragArea&&!e.props.dragTarget||o.push(t);var s=function(t){var i=t.inputEvent.target;return i===e.areaElement||!e.isMoveableElement(i)||nc(i,"moveable-area")||nc(i,"moveable-padding")};return Kf(e,o,"targetAbles",i,{dragStart:s,pinchStart:s})}function Kf(e,t,i,n,o){void 0===o&&(o={});var s=e.props,a=s.pinchOutside,r=s.pinchThreshold,l={container:window,pinchThreshold:r,pinchOutside:a},d=new Xu(t,l);return["drag","pinch"].forEach((function(t){["Start","","End"].forEach((function(s){d.on(""+t+s,(function(a){var r=a.eventType;!o[r]||o[r](a)?Yf(e,i,t,n,s,a)||a.stop():a.stop()}))}))})),d}var Zf=function(){function e(e,t,i){var n=this;this.target=e,this.moveable=t,this.eventName=i,this.ables=[],this.onEvent=function(e){var t=n.eventName,i=n.moveable;i.state.disableNativeEvent||n.ables.forEach((function(n){n[t](i,{inputEvent:e})}))},this.target.addEventListener(this.eventName.toLowerCase(),this.onEvent)}var t=e.prototype;return t.setAbles=function(e){this.ables=e},t.destroy=function(){this.target.removeEventListener(this.eventName.toLowerCase(),this.onEvent),this.target=null,this.moveable=null},e}(),Qf=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state=ap({container:null,target:null,gesto:null,renderPoses:[[0,0],[0,0],[0,0],[0,0]],disableNativeEvent:!1},Xp(null)),t.enabledAbles=[],t.targetAbles=[],t.controlAbles=[],t.rotation=0,t.scale=[1,1],t.isUnmounted=!1,t.events={mouseEnter:null,mouseLeave:null},t.onPreventClick=function(e){e.stopPropagation(),sc(window,"click",t.onPreventClick,!0)},t}sp(t,e);var i=t.prototype;return i.render=function(){var e=this.props,t=this.state,i=e.edge,n=e.parentPosition,o=e.className,s=e.target,a=e.zoom,r=e.cspNonce,l=e.translateZ,d=e.cssStyled,c=e.portalContainer;this.checkUpdate(),this.updateRenderPoses();var u=n||{left:0,top:0},p=u.left,h=u.top,g=t.left,f=t.top,m=t.target,v=t.direction,b=t.renderPoses,y=e.targets,_=(y&&y.length||s)&&m,x=this.isDragging(),w={},S={createElement:bc};return this.getEnabledAbles().forEach((function(e){w["data-able-"+e.name.toLowerCase()]=!0})),bc(d,ap({cspNonce:r,ref:vd(this,"controlBox"),className:kp("control-box",-1===v?"reverse":"",x?"dragging":"")+" "+o},w,{onClick:this.onPreventClick,portalContainer:c,style:{position:"absolute",display:_?"block":"none",transform:"translate3d("+(g-p)+"px, "+(f-h)+"px, "+l+")","--zoom":a,"--zoompx":a+"px"}}),this.renderAbles(),Qg(S,i?"n":"",b[0],b[1],a,0),Qg(S,i?"e":"",b[1],b[3],a,1),Qg(S,i?"w":"",b[0],b[2],a,2),Qg(S,i?"s":"",b[2],b[3],a,3))},i.componentDidMount=function(){this.controlBox.getElement();var e=this.props,t=e.parentMoveable,i=e.container,n=e.wrapperMoveable;this.updateEvent(e),this.updateNativeEvents(e),i||t||n||this.updateRect("",!1,!0),this.updateCheckInput()},i.componentDidUpdate=function(e){this.updateNativeEvents(e),this.updateEvent(e),this.updateCheckInput()},i.componentWillUnmount=function(){this.isUnmounted=!0,eh(this,"targetGesto"),eh(this,"controlGesto");var e=this.events;for(var t in e){var i=e[t];i&&i.destroy()}},i.getContainer=function(){var e=this.props,t=e.parentMoveable,i=e.wrapperMoveable;return e.container||i&&i.getContainer()||t&&t.getContainer()||this.controlBox.getElement().parentElement},i.isMoveableElement=function(e){return e&&(e.getAttribute("class")||"").indexOf(hp)>-1},i.dragStart=function(e){return this.targetGesto&&this.targetGesto.triggerDragStart(e),this},i.hitTest=function(e){var t,i=this.state,n=i.target,o=i.pos1,s=i.pos2,a=i.pos3,r=i.pos4,l=i.targetClientRect;if(!n)return 0;if(e instanceof Element){var d=e.getBoundingClientRect();t={left:d.left,top:d.top,width:d.width,height:d.height}}else t=ap({width:0,height:0},e);var c=t.left,u=t.top,p=t.width,h=t.height,g=wu([o,s,r,a],l),f=Tu(g,[[c,u],[c+p,u],[c+p,u+h],[c,u+h]]),m=xu(g);return f&&m?Math.min(100,f/m*100):0},i.isInside=function(e,t){var i=this.state,n=i.target,o=i.pos1,s=i.pos2,a=i.pos3,r=i.pos4,l=i.targetClientRect;return!!n&&Cu([e,t],wu([o,s,r,a],l))},i.updateRect=function(e,t,i){void 0===i&&(i=!0);var n=this.props,o=n.parentMoveable,s=this.state.target||this.props.target,a=this.getContainer(),r=o?o.props.rootContainer:n.rootContainer;this.updateState(Xp(this.controlBox&&this.controlBox.getElement(),s,a,a,r||a),!o&&i)},i.isTargetChanged=function(e,t){var i=this.props,n=i.dragTarget||i.target,o=e.dragTarget||e.target,s=i.dragArea,a=e.dragArea;return!s&&o!==n||(t||s)&&a!==s},i.updateNativeEvents=function(e){var t=this,i=this.props.dragArea?this.areaElement:this.state.target,n=this.events,o=Vd(n);if(this.isTargetChanged(e))for(var s in n){var a=n[s];a&&a.destroy(),n[s]=null}if(i){var r=this.enabledAbles;o.forEach((function(e){var o=sh(r,[e]),s=o.length>0,a=n[e];s?(a||(a=new Zf(i,t,e),n[e]=a),a.setAbles(o)):a&&(a.destroy(),n[e]=null)}))}},i.updateEvent=function(e){var t=this.controlBox.getElement(),i=this.targetAbles.length,n=this.controlAbles.length,o=this.props,s=o.dragTarget||o.target,a=this.isTargetChanged(e,!0),r=!i&&this.targetGesto||a;r&&(eh(this,"targetGesto"),this.updateState({gesto:null})),n||eh(this,"controlGesto"),s&&i&&!this.targetGesto&&(this.targetGesto=Xf(this,s,"")),!this.controlGesto&&n&&(this.controlGesto=Kf(this,t,"controlAbles","Control")),r&&this.unsetAbles()},i.isDragging=function(){return!!this.targetGesto&&this.targetGesto.isFlag()||!!this.controlGesto&&this.controlGesto.isFlag()},i.updateTarget=function(e){this.updateRect(e,!0)},i.getRect=function(){var e=this.state,t=Jp(this.state),i=t[0],n=t[1],o=t[2],s=t[3],a=Hp(t),r=e.width,l=e.height,d=a.width,c=a.height,u=a.left,p=a.top,h=[e.left,e.top],g=nu(h,e.origin);return{width:d,height:c,left:u,top:p,pos1:i,pos2:n,pos3:o,pos4:s,offsetWidth:r,offsetHeight:l,beforeOrigin:nu(h,e.beforeOrigin),origin:g,transformOrigin:e.transformOrigin,rotation:this.getRotation()}},i.getManager=function(){return this},i.getRotation=function(){var e=this.state;return function(e,t,i){var n=Qd(e,t)/Math.PI*180;return(n=i>=0?n:180-n)>=0?n:360+n}(e.pos1,e.pos2,e.direction)},i.request=function(e,t,i){void 0===t&&(t={});var n=this.props,o=n.ables,s=n.groupable,a=o.filter((function(t){return t.name===e}))[0];if(this.isDragging()||!a||!a.request)return{request:function(){return this},requestEnd:function(){return this}};var r=this,l=a.request(this),d=i||t.isInstant,c=l.isControl?"controlAbles":"targetAbles",u=(s?"Group":"")+(l.isControl?"Control":""),p={request:function(t){return Yf(r,c,"drag",u,"",ap(ap({},l.request(t)),{requestAble:e,isRequest:!0}),d),this},requestEnd:function(){return Yf(r,c,"drag",u,"End",ap(ap({},l.requestEnd()),{requestAble:e,isRequest:!0}),d),this}};return Yf(r,c,"drag",u,"Start",ap(ap({},l.requestStart(t)),{requestAble:e,isRequest:!0}),d),d?p.request(t).requestEnd():p},i.destroy=function(){this.componentWillUnmount()},i.updateRenderPoses=function(){var e=this.state,t=this.props,i=e.originalBeforeOrigin,n=e.transformOrigin,o=e.allMatrix,s=e.is3d,a=e.pos1,r=e.pos2,l=e.pos3,d=e.pos4,c=e.left,u=e.top,p=t.padding||{},h=p.left,g=void 0===h?0:h,f=p.top,m=void 0===f?0:f,v=p.bottom,b=void 0===v?0:v,y=p.right,_=void 0===y?0:y,x=s?4:3,w=t.groupable?i:nu(i,[c,u]);e.renderPoses=[nu(a,ph(o,[-g,-m],n,w,x)),nu(r,ph(o,[_,-m],n,w,x)),nu(l,ph(o,[-g,b],n,w,x)),nu(d,ph(o,[_,b],n,w,x))]},i.checkUpdate=function(){var e=this.props,t=e.target,i=e.container,n=e.parentMoveable,o=this.state,s=o.target,a=o.container;(s||t)&&(this.updateAbles(),(!ah(s,t)||!ah(a,i))&&(this.updateState({target:t,container:i}),n||!i&&!this.controlBox||this.updateRect("End",!1,!1)))},i.triggerEvent=function(e,t){var i=this.props[e];return i&&i(t)},i.useCSS=function(e,t){var i=this.props.customStyledMap,n=e+t;return i[n]||(i[n]=np(e,t)),i[n]},i.unsetAbles=function(){var e=this;this.targetAbles.filter((function(t){return!!t.unset&&(t.unset(e),!0)})).length&&this.forceUpdate()},i.updateAbles=function(e,t){void 0===e&&(e=this.props.ables),void 0===t&&(t="");var i=this.props,n=i.triggerAblesSimultaneously,o=e.filter((function(e){return e&&(e.always||i[e.name])})),s="drag"+t+"ControlStart",a=sh(o,["drag"+t+"Start","pinch"+t+"Start"],n),r=sh(o,[s],n);this.enabledAbles=o,this.targetAbles=a,this.controlAbles=r},i.updateState=function(e,t){if(t)this.setState(e);else{var i=this.state;for(var n in e)i[n]=e[n]}},i.getEnabledAbles=function(){var e=this.props;return e.ables.filter((function(t){return t&&e[t.name]}))},i.renderAbles=function(){var e,t,i,n,o=this,s=this.props.triggerAblesSimultaneously,a={createElement:bc};return(e=lh(sh(this.getEnabledAbles(),["render"],s).map((function(e){return(0,e.render)(o,a)||[]}))).filter((function(e){return e})),t=function(e){return e.key},i=[],n={},e.forEach((function(o,s){var a=t(o,s,e),r=n[a];r||(r=[],n[a]=r,i.push(r)),r.push(o)})),i).map((function(e){return e[0]}))},i.updateCheckInput=function(){this.targetGesto&&(this.targetGesto.options.checkInput=this.props.checkInput)},t.defaultProps={target:null,dragTarget:null,container:null,rootContainer:null,origin:!0,edge:!1,parentMoveable:null,wrapperMoveable:null,parentPosition:null,portalContainer:null,ables:[],pinchThreshold:20,dragArea:!1,passDragArea:!1,transformOrigin:"",className:"",zoom:1,triggerAblesSimultaneously:!1,padding:{},pinchOutside:!0,checkInput:!1,groupable:!1,cspNonce:"",translateZ:0,cssStyled:null,customStyledMap:{},props:{}},t}(Tc),Jf={name:"groupable",props:{defaultGroupRotate:Number,defaultGroupOrigin:String,groupable:Boolean},events:{},render:function(e,t){var i=e.props.targets||[];e.moveables=[];var n=e.state,o={left:n.left,top:n.top};return i.map((function(i,n){return t.createElement(Qf,{key:"moveable"+n,ref:bd(e,"moveables",n),target:i,origin:!1,cssStyled:e.props.cssStyled,customStyledMap:e.props.customStyledMap,parentMoveable:e,parentPosition:o})}))}},em=lp("clickable",{props:{},events:{onClick:"click",onClickGroup:"clickGroup"},always:!0,dragStart:function(e,t){t.isRequest||oc(window,"click",e.onPreventClick,!0)},dragControlStart:function(e,t){this.dragStart(e,t)},dragGroupStart:function(e,t){this.dragStart(e,t),t.datas.inputTarget=t.inputEvent&&t.inputEvent.target},dragEnd:function(e,t){this.endEvent(e);var i=e.state.target,n=t.inputEvent,o=t.inputTarget;if(n&&o&&!t.isDrag&&!e.isMoveableElement(o)){var s=i.contains(o);nh(e,"onClick",th(e,t,{isDouble:t.isDouble,inputTarget:o,isTarget:i===o,containsTarget:s}))}},dragGroupEnd:function(e,t){this.endEvent(e);var i=t.inputEvent,n=t.inputTarget;if(i&&n&&!t.isDrag&&!e.isMoveableElement(n)&&t.datas.inputTarget!==n){var o=e.props.targets,s=o.indexOf(n),a=s>-1,r=!1;-1===s&&(r=(s=Wd(o,(function(e){return e.contains(n)})))>-1),nh(e,"onClickGroup",th(e,t,{isDouble:t.isDouble,targets:o,inputTarget:n,targetIndex:s,isTarget:a,containsTarget:r}))}},dragControlEnd:function(e){this.endEvent(e)},dragGroupControlEnd:function(e){this.endEvent(e)},endEvent:function(e){var t=this;requestAnimationFrame((function(){t.unset(e)}))},unset:function(e){sc(window,"click",e.onPreventClick,!0)}});function tm(e){var t=e.originalDatas.draggable;return t||(e.originalDatas.draggable={},t=e.originalDatas.draggable),ap(ap({},e),{datas:t})}var im=lp("edgeDraggable",{dragControlCondition:function(e,t){if(!e.props.edgeDraggable||!t.inputEvent)return!1;var i=t.inputEvent.target;return nc(i,kp("direction"))&&nc(i,kp("line"))},dragControlStart:function(e,t){return Kg.dragStart(e,tm(t))},dragControl:function(e,t){return Kg.drag(e,tm(t))},dragControlEnd:function(e,t){return Kg.dragEnd(e,tm(t))},dragGroupControlCondition:function(e,t){if(!e.props.edgeDraggable||!t.inputEvent)return!1;var i=t.inputEvent.target;return nc(i,kp("direction"))&&nc(i,kp("line"))},dragGroupControlStart:function(e,t){return Kg.dragGroupStart(e,tm(t))},dragGroupControl:function(e,t){return Kg.dragGroup(e,tm(t))},dragGroupControlEnd:function(e,t){return Kg.dragGroupEnd(e,tm(t))},unset:function(e){e.state.dragInfo=null}}),nm={name:"individualGroupable",props:{individualGroupable:Boolean},events:{}},om=[Gf,wf,Xg,_h,Kg,im,rf,lf,df,pf,xf,Sf,yf,Ff,zf,Wf,Jf,nm,em,bf,Vf],sm=om.reduce((function(e,t){return ap(ap({},e),"events"in t?t.events:{})}),{}),am=om.reduce((function(e,t){return ap(ap({},e),t.props)}),{}),rm=mh(sm),lm=Object.keys(rm),dm=Object.keys(am);function cm(e,t){return Math.max.apply(Math,e.map((function(e){var i=e[0],n=e[1],o=e[2],s=e[3];return Math.max(i[t],n[t],o[t],s[t])})))}function um(e,t){return Math.min.apply(Math,e.map((function(e){var i=e[0],n=e[1],o=e[2],s=e[3];return Math.min(i[t],n[t],o[t],s[t])})))}var pm=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.differ=new Ru,t.moveables=[],t.transformOrigin="50% 50%",t}sp(t,e);var i=t.prototype;return i.updateEvent=function(e){var t=this.state,i=this.props,n=e.dragTarget||t.target,o=i.dragTarget||this.areaElement;n!==o&&(eh(this,"targetGesto"),eh(this,"controlGesto"),t.target=null),t.target||(t.target=this.areaElement,this.controlBox.getElement().style.display="block",this.targetGesto=Xf(this,o,"Group"),this.controlGesto=Kf(this,this.controlBox.getElement(),"controlAbles","GroupControl"));var s=!ah(e.container,i.container);s&&(t.container=i.container);var a=this.differ.update(i.targets),r=a.added,l=a.changed,d=a.removed;(s||r.length||l.length||d.length)&&this.updateRect()},i.checkUpdate=function(){this.updateAbles()},i.updateRect=function(e,t,i){if(void 0===i&&(i=!0),this.controlBox){this.moveables.forEach((function(t){t.updateRect(e,!1,!1)}));var n=this.state,o=this.props,s=n.target||o.target;(!t||""!==e&&o.updateGroup)&&(this.rotation=o.defaultGroupRotate,this.transformOrigin=o.defaultGroupOrigin||"50% 50%",this.scale=[1,1]);var a=this.rotation,r=this.scale,l=function(e,t){if(!e.length)return[0,0,0,0];var i=e.map((function(e){return Jp(e.state)})),n=yp,o=yp,s=0,a=0,r=tc(t,vp);if(r%90){var l=r/180*Math.PI,d=Math.tan(l),c=-1/d,u=[_p,yp],p=[_p,yp];i.forEach((function(e){e.forEach((function(e){var t=e[1]-d*e[0],i=e[1]-c*e[0];u[0]=Math.max(u[0],t),u[1]=Math.min(u[1],t),p[0]=Math.max(p[0],i),p[1]=Math.min(p[1],i)}))})),u.forEach((function(e){p.forEach((function(t){var i=(t-e)/(d-c),s=d*i+e;n=Math.min(n,i),o=Math.min(o,s)}))}));var h=i.map((function(e){var t=e[0],i=e[1],n=e[2],o=e[3];return[uu(t,-l),uu(i,-l),uu(n,-l),uu(o,-l)]}));s=cm(h,0)-um(h,0),a=cm(h,1)-um(h,1)}else if(n=um(i,0),o=um(i,1),s=cm(i,0)-n,a=cm(i,1)-o,r%180){var g=s;s=a,a=g}return[n,o,s,a]}(this.moveables,a),d=l[0],c=l[1],u=l[2],p=l[3],h="rotate("+a+"deg) scale("+(r[0]>=0?1:-1)+", "+(r[1]>=0?1:-1)+")";s.style.cssText+="left:0px;top:0px; transform-origin: "+this.transformOrigin+"; width:"+u+"px; height:"+p+"px;transform:"+h,n.width=u,n.height=p;var g=this.getContainer(),f=Xp(this.controlBox.getElement(),s,this.controlBox.getElement(),this.getContainer(),this.props.rootContainer||g),m=[f.left,f.top],v=Jp(f),b=v[0],y=v[1],_=v[2],x=v[3],w=Su([b,y,_,x]),S=[w.minX,w.minY];f.pos1=ou(b,S),f.pos2=ou(y,S),f.pos3=ou(_,S),f.pos4=ou(x,S),f.left=d-f.left+S[0],f.top=c-f.top+S[1],f.origin=ou(nu(m,f.origin),S),f.beforeOrigin=ou(nu(m,f.beforeOrigin),S),f.originalBeforeOrigin=nu(m,f.originalBeforeOrigin);var C=f.targetClientRect,k=r[0]*r[1]>0?1:-1;C.top+=f.top-n.top,C.left+=f.left-n.left,s.style.transform="translate("+-S[0]+"px, "+-S[1]+"px) "+h,this.updateState(ap(ap({},f),{direction:k,beforeDirection:k}),i)}},i.getRect=function(){return ap(ap({},e.prototype.getRect.call(this)),{children:this.moveables.map((function(e){return e.getRect()}))})},i.triggerEvent=function(t,i,n){if(n||t.indexOf("Group")>-1)return e.prototype.triggerEvent.call(this,t,i)},i.updateAbles=function(){e.prototype.updateAbles.call(this,rp(this.props.ables,[Jf]),"Group")},t.defaultProps=ap(ap({},Qf.defaultProps),{transformOrigin:["50%","50%"],groupable:!0,dragArea:!0,keepRatio:!0,targets:[],defaultGroupRotate:0,defaultGroupOrigin:"50% 50%"}),t}(Qf),hm=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.moveables=[],t}sp(t,e);var i=t.prototype;return i.render=function(){var e=this,t=this.props,i=t.cspNonce,n=t.cssStyled,o=t.targets;return bc(n,{cspNonce:i,ref:vd(this,"controlBox"),className:kp("control-box")},o.map((function(t,i){return bc(Qf,ap({key:"moveable"+i,ref:bd(e,"moveables",i)},e.props,{target:t,wrapperMoveable:e}))})))},i.componentDidUpdate=function(){},i.updateRect=function(e,t,i){void 0===i&&(i=!0),this.moveables.forEach((function(n){n.updateRect(e,t,i)}))},i.getRect=function(){return ap(ap({},e.prototype.getRect.call(this)),{children:this.moveables.map((function(e){return e.getRect()}))})},i.request=function(){return{request:function(){return this},requestEnd:function(){return this}}},i.dragStart=function(){return this},i.hitTest=function(){return 0},i.isInside=function(){return!1},i.isDragging=function(){return!1},i.updateRenderPoses=function(){},i.updateEvent=function(){},i.checkUpdate=function(){},i.triggerEvent=function(){},i.updateAbles=function(){},t}(Qf),gm=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return sp(t,e),t.defaultAbles=om,t}(function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.refTargets=[],t.selectorMap={},t}sp(t,e);var i=t.prototype;return t.makeStyled=function(){var e={};this.getTotalAbles().forEach((function(t){var i=t.css;i&&i.forEach((function(t){e[t]=!0}))}));var t=Vd(e).join("\n");this.defaultStyled=np("div",function(e,t){return t.replace(/([^}{]*){/gm,(function(t,i){return i.replace(/\.([^{,\s\d.]+)/g,"."+e+"$1")+"{"}))}(hp,gp+t))},t.getTotalAbles=function(){return rp([wf,Jf,nm,bf],this.defaultAbles)},i.render=function(){var e=this.constructor;e.defaultStyled||e.makeStyled();var t=this.props,i=t.ables,n=t.props,o=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(i[n[o]]=e[n[o]])}return i}(t,["ables","props"]),s=bh(o.target||o.targets),a=function(e,t){var i=[];return e.forEach((function(e){e&&(Nd(e)?t[e]&&i.push.apply(i,t[e]):i.push(e))})),i}(s,this.selectorMap);this.refTargets=s;var r=a.length>1,l=rp(e.getTotalAbles(),i||[]),d=ap(ap(ap({},o),n||{}),{ables:l,cssStyled:e.defaultStyled,customStyledMap:e.customStyledMap});return r?o.individualGroupable?bc(hm,ap({key:"individual-group",ref:vd(this,"moveable")},d,{target:null,targets:a})):bc(pm,ap({key:"group",ref:vd(this,"moveable")},d,{target:null,targets:a})):bc(Qf,ap({key:"single",ref:vd(this,"moveable")},d,{target:a[0]}))},i.componentDidMount=function(){this.updateRefs()},i.componentDidUpdate=function(){this.updateRefs()},i.updateRefs=function(e){var t=bh(this.props.target||this.props.targets),i=this.refTargets.some((function(e,i){var n=t[i];return!(!e&&!n)&&e!==n})),n=e?{}:this.selectorMap,o={};this.refTargets.forEach((function(e){Nd(e)&&(n[e]?o[e]=n[e]:(i=!0,o[e]=[].slice.call(document.querySelectorAll(e))))})),this.selectorMap=o,i&&this.forceUpdate()},i.getManager=function(){return this.moveable},t.defaultAbles=[],t.customStyledMap={},t.defaultStyled=null,function(e,t,i,n){var o,s=arguments.length,a=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,n);else for(var r=e.length-1;r>=0;r--)(o=e[r])&&(a=(s<3?o(a):s>3?o(t,i,a):o(t,i))||a);s>3&&a&&Object.defineProperty(t,i,a)}([_d(Cp)],t.prototype,"moveable",void 0),t}(Tc)),fm=function(e,t){return(fm=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function mm(e,t){function i(){this.constructor=e}fm(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var vm=function(){return(vm=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var o in t=arguments[i])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};var bm=function(e){function t(t){var i=e.call(this,t)||this;return i.state={},i.state=i.props,i}return mm(t,e),t.prototype.render=function(){return e=bc(gm,vm({ref:vd(this,"moveable")},this.state)),t=this.state.parentElement,bc(Lc,{element:e,container:t});var e,t},t}(qc),ym=dm,_m=Cp,xm=lm,wm=function(){return(wm=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var o in t=arguments[i])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};var Sm=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return mm(t,e),t}(function(e){function t(t,i){void 0===i&&(i={});var n=e.call(this)||this;n.tempElement=document.createElement("div");var o=vm({container:t||document.body},i),s={};xm.forEach((function(e){var t;s[(t="on "+e,t.replace(/[\s-_]([a-z])/g,(function(e,t){return t.toUpperCase()})))]=function(t){return n.trigger(e,t)}})),Nc(bc(bm,vm({ref:vd(n,"innerMoveable"),parentElement:t},o,s)),n.tempElement);var a=o.target;return Rd(a)&&a.length>1&&n.updateRect(),n}mm(t,e);var i=t.prototype;return i.setState=function(e,t){this.innerMoveable.setState(e,t)},i.destroy=function(){Nc(null,this.tempElement),this.off(),this.tempElement=null,this.innerMoveable=null},i.getMoveable=function(){return this.innerMoveable.moveable},t=function(e,t,i,n){var o,s=arguments.length,a=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,n);else for(var r=e.length-1;r>=0;r--)(o=e[r])&&(a=(s<3?o(a):s>3?o(t,i,a):o(t,i))||a);return s>3&&a&&Object.defineProperty(t,i,a),a}([yd(_m,(function(e,t){e[t]||(e[t]=function(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];var n=this.getMoveable();if(n&&n[t])return n[t].apply(n,e)})})),yd(ym,(function(e,t){Object.defineProperty(e,t,{get:function(){return this.getMoveable().props[t]},set:function(e){var i;this.setState(((i={})[t]=e,i))},enumerable:!0,configurable:!0})}))],t)}(function(){function e(){this._events={}}var t=e.prototype;return t.on=function(e,t){if(Od(e))for(var i in e)this.on(i,e[i]);else this._addEvent(e,t,{});return this},t.off=function(e,t){if(e)if(Od(e))for(var i in e)this.off(i);else if(t){var n=this._events[e];if(n){var o=Wd(n,(function(e){return e.listener===t}));o>-1&&n.splice(o,1)}}else this._events[e]=[];else this._events={};return this},t.once=function(e,t){var i=this;return t&&this._addEvent(e,t,{once:!0}),new Promise((function(t){i._addEvent(e,t,{once:!0})}))},t.emit=function(e,t){var i=this;void 0===t&&(t={});var n=this._events[e];if(!e||!n)return!0;var o=!1;return t.eventType=e,t.stop=function(){o=!0},t.currentTarget=this,function(){for(var e=0,t=0,i=arguments.length;t<i;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<i;t++)for(var s=arguments[t],a=0,r=s.length;a<r;a++,o++)n[o]=s[a];return n}(n).forEach((function(n){n.listener(t),n.once&&i.off(e,n.listener)})),!o},t.trigger=function(e,t){return void 0===t&&(t={}),this.emit(e,t)},t._addEvent=function(e,t,i){var n=this._events;n[e]=n[e]||[],n[e].push(wm({listener:t},i))},e}())),Cm={exports:{}};!function(e){!function(t){var i=t.URL||t.webkitURL;function n(e){return!!i&&i.createObjectURL(e)}function o(e){return!!i&&i.revokeObjectURL(e)}function s(e,t){!e||"blob:"!==e.slice(0,5)||t&&t.noRevoke||o(e)}function a(e,i,n,o){if(!t.FileReader)return!1;var s=new FileReader;s.onload=function(){i.call(s,this.result)},n&&(s.onabort=s.onerror=function(){n.call(s,this.error)});var a=s[o||"readAsDataURL"];return a?(a.call(s,e),s):void 0}function r(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"}function l(e,i,o){function d(i,d){var c,u=document.createElement("img");function p(e,t){i!==d?e instanceof Error?d(e):((t=t||{}).image=e,i(t)):i&&i(e,t)}function h(i,s){s&&t.console&&console.log(s),i&&r("Blob",i)?c=n(e=i):(c=e,o&&o.crossOrigin&&(u.crossOrigin=o.crossOrigin)),u.src=c}return u.onerror=function(e){s(c,o),d&&d.call(u,e)},u.onload=function(){s(c,o);var t={originalWidth:u.naturalWidth||u.width,originalHeight:u.naturalHeight||u.height};try{l.transform(u,o,p,e,t)}catch(e){d&&d(e)}},"string"==typeof e?(l.requiresMetaData(o)?l.fetchBlob(e,h,o):h(),u):r("Blob",e)||r("File",e)?(c=n(e))?(u.src=c,u):a(e,(function(e){u.src=e}),d):void 0}return t.Promise&&"function"!=typeof i?(o=i,new Promise(d)):d(i,i)}l.requiresMetaData=function(e){return e&&e.meta},l.fetchBlob=function(e,t){t()},l.transform=function(e,t,i,n,o){i(e,o)},l.global=t,l.readFile=a,l.isInstanceOf=r,l.createObjectURL=n,l.revokeObjectURL=o,e.exports?e.exports=l:t.loadImage=l}("undefined"!=typeof window&&window||Jt)}(Cm);var km={exports:{}};!function(e){(function(e){var t=e.transform;e.createCanvas=function(t,i,n){if(n&&e.global.OffscreenCanvas)return new OffscreenCanvas(t,i);var o=document.createElement("canvas");return o.width=t,o.height=i,o},e.transform=function(i,n,o,s,a){t.call(e,e.scale(i,n,a),n,o,s,a)},e.transformCoordinates=function(){},e.getTransformedOptions=function(e,t){var i,n,o,s,a=t.aspectRatio;if(!a)return t;for(n in i={},t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=t[n]);return i.crop=!0,(o=e.naturalWidth||e.width)/(s=e.naturalHeight||e.height)>a?(i.maxWidth=s*a,i.maxHeight=s):(i.maxWidth=o,i.maxHeight=o/a),i},e.drawImage=function(e,t,i,n,o,s,a,r,l){var d=t.getContext("2d");return!1===l.imageSmoothingEnabled?(d.msImageSmoothingEnabled=!1,d.imageSmoothingEnabled=!1):l.imageSmoothingQuality&&(d.imageSmoothingQuality=l.imageSmoothingQuality),d.drawImage(e,i,n,o,s,0,0,a,r),d},e.requiresCanvas=function(e){return e.canvas||e.crop||!!e.aspectRatio},e.scale=function(t,i,n){i=i||{},n=n||{};var o,s,a,r,l,d,c,u,p,h,g,f,m=t.getContext||e.requiresCanvas(i)&&!!e.global.HTMLCanvasElement,v=t.naturalWidth||t.width,b=t.naturalHeight||t.height,y=v,_=b;function x(){var e=Math.max((a||y)/y,(r||_)/_);e>1&&(y*=e,_*=e)}function w(){var e=Math.min((o||y)/y,(s||_)/_);e<1&&(y*=e,_*=e)}if(m&&(c=(i=e.getTransformedOptions(t,i,n)).left||0,u=i.top||0,i.sourceWidth?(l=i.sourceWidth,void 0!==i.right&&void 0===i.left&&(c=v-l-i.right)):l=v-c-(i.right||0),i.sourceHeight?(d=i.sourceHeight,void 0!==i.bottom&&void 0===i.top&&(u=b-d-i.bottom)):d=b-u-(i.bottom||0),y=l,_=d),o=i.maxWidth,s=i.maxHeight,a=i.minWidth,r=i.minHeight,m&&o&&s&&i.crop?(y=o,_=s,(g=l/d-o/s)<0?(d=s*l/o,void 0===i.top&&void 0===i.bottom&&(u=(b-d)/2)):g>0&&(l=o*d/s,void 0===i.left&&void 0===i.right&&(c=(v-l)/2))):((i.contain||i.cover)&&(a=o=o||a,r=s=s||r),i.cover?(w(),x()):(x(),w())),m){if((p=i.pixelRatio)>1&&(!t.style.width||Math.floor(parseFloat(t.style.width,10))!==Math.floor(v/p))&&(y*=p,_*=p),e.orientationCropBug&&!t.getContext&&(c||u||l!==v||d!==b)&&(g=t,t=e.createCanvas(v,b,!0),e.drawImage(g,t,0,0,v,b,v,b,i)),(h=i.downsamplingRatio)>0&&h<1&&y<l&&_<d)for(;l*h>y;)f=e.createCanvas(l*h,d*h,!0),e.drawImage(t,f,c,u,l,d,f.width,f.height,i),c=0,u=0,l=f.width,d=f.height,t=f;return f=e.createCanvas(y,_),e.transformCoordinates(f,i,n),p>1&&(f.style.width=f.width/p+"px"),e.drawImage(t,f,c,u,l,d,y,_,i).setTransform(1,0,0,1,0,0),f}return t.width=y,t.height=_,t}})(e.exports?Cm.exports:window.loadImage)}(km);var Em={exports:{}};!function(e){(function(e){var t=e.global,i=e.transform,n=t.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice),o=t.ArrayBuffer&&ArrayBuffer.prototype.slice||function(e,t){t=t||this.byteLength-e;var i=new Uint8Array(this,e,t),n=new Uint8Array(t);return n.set(i),n.buffer},s={jpeg:{65505:[],65517:[]}};function a(i,a,r,l){var d=this;function c(a,c){if(!(t.DataView&&n&&i&&i.size>=12&&"image/jpeg"===i.type))return a(l);var u=r.maxMetaDataSize||262144;e.readFile(n.call(i,0,u),(function(e){var t=new DataView(e);if(65496!==t.getUint16(0))return c(new Error("Invalid JPEG file: Missing JPEG marker."));for(var i,n,u,p,h=2,g=t.byteLength-4,f=h;h<g&&((i=t.getUint16(h))>=65504&&i<=65519||65534===i);){if(h+(n=t.getUint16(h+2)+2)>t.byteLength){console.log("Invalid JPEG metadata: Invalid segment size.");break}if((u=s.jpeg[i])&&!r.disableMetaDataParsers)for(p=0;p<u.length;p+=1)u[p].call(d,t,h,n,l,r);f=h+=n}!r.disableImageHead&&f>6&&(l.imageHead=o.call(e,0,f)),a(l)}),c,"readAsArrayBuffer")||a(l)}return r=r||{},t.Promise&&"function"!=typeof a?(l=r=a||{},new Promise(c)):(l=l||{},c(a,a))}function r(e,t,i){return e&&t&&i?new Blob([i,n.call(e,t.byteLength)],{type:"image/jpeg"}):null}e.transform=function(n,o,s,r,l){e.requiresMetaData(o)?a(r,(function(a){a!==l&&(t.console&&console.log(a),a=l),i.call(e,n,o,s,r,a)}),o,l=l||{}):i.apply(e,arguments)},e.blobSlice=n,e.bufferSlice=o,e.replaceHead=function(e,i,n){var o={maxMetaDataSize:1024,disableMetaDataParsers:!0};if(!n&&t.Promise)return a(e,o).then((function(t){return r(e,t.imageHead,i)}));a(e,(function(t){n(r(e,t.imageHead,i))}),o)},e.parseMetaData=a,e.metaDataParsers=s})(e.exports?Cm.exports:window.loadImage)}(Em);!function(e){(function(e){var t=e.global;t.fetch&&t.Request&&t.Response&&t.Response.prototype.blob?e.fetchBlob=function(e,i,n){function o(e){return e.blob()}if(t.Promise&&"function"!=typeof i)return fetch(new Request(e,i)).then(o);fetch(new Request(e,n)).then(o).then(i).catch((function(e){i(null,e)}))}:t.XMLHttpRequest&&""===(new XMLHttpRequest).responseType&&(e.fetchBlob=function(e,i,n){function o(t,i){n=n||{};var o=new XMLHttpRequest;o.open(n.method||"GET",e),n.headers&&Object.keys(n.headers).forEach((function(e){o.setRequestHeader(e,n.headers[e])})),o.withCredentials="include"===n.credentials,o.responseType="blob",o.onload=function(){t(o.response)},o.onerror=o.onabort=o.ontimeout=function(e){t===i?i(null,e):i(e)},o.send(n.body)}return t.Promise&&"function"!=typeof i?(n=i,new Promise(o)):o(i,i)})})(e.exports?Cm.exports:window.loadImage)}({exports:{}});var Am={exports:{}};!function(e){(function(e){function t(e){e&&(Object.defineProperty(this,"map",{value:this.ifds[e].map}),Object.defineProperty(this,"tags",{value:this.tags&&this.tags[e]||{}}))}t.prototype.map={Orientation:274,Thumbnail:"ifd1",Blob:513,Exif:34665,GPSInfo:34853,Interoperability:40965},t.prototype.ifds={ifd1:{name:"Thumbnail",map:t.prototype.map},34665:{name:"Exif",map:{}},34853:{name:"GPSInfo",map:{}},40965:{name:"Interoperability",map:{}}},t.prototype.get=function(e){return this[e]||this[this.map[e]]};var i={1:{getValue:function(e,t){return e.getUint8(t)},size:1},2:{getValue:function(e,t){return String.fromCharCode(e.getUint8(t))},size:1,ascii:!0},3:{getValue:function(e,t,i){return e.getUint16(t,i)},size:2},4:{getValue:function(e,t,i){return e.getUint32(t,i)},size:4},5:{getValue:function(e,t,i){return e.getUint32(t,i)/e.getUint32(t+4,i)},size:8},9:{getValue:function(e,t,i){return e.getInt32(t,i)},size:4},10:{getValue:function(e,t,i){return e.getInt32(t,i)/e.getInt32(t+4,i)},size:8}};function n(e,t,n,o,s,a){var r,l,d,c,u,p,h=i[o];if(h){if(!((l=(r=h.size*s)>4?t+e.getUint32(n+8,a):n+8)+r>e.byteLength)){if(1===s)return h.getValue(e,l,a);for(d=[],c=0;c<s;c+=1)d[c]=h.getValue(e,l+c*h.size,a);if(h.ascii){for(u="",c=0;c<d.length&&"\0"!==(p=d[c]);c+=1)u+=p;return u}return d}console.log("Invalid Exif data: Invalid data offset.")}else console.log("Invalid Exif data: Invalid tag type.")}function o(e,t,i){return(!e||e[i])&&(!t||!0!==t[i])}function s(e,t,i,s,a,r,l,d){var c,u,p,h,g,f;if(i+6>e.byteLength)console.log("Invalid Exif data: Invalid directory offset.");else{if(!((u=i+2+12*(c=e.getUint16(i,s)))+4>e.byteLength)){for(p=0;p<c;p+=1)h=i+2+12*p,o(l,d,g=e.getUint16(h,s))&&(f=n(e,t,h,e.getUint16(h+2,s),e.getUint32(h+4,s),s),a[g]=f,r&&(r[g]=h));return e.getUint32(u,s)}console.log("Invalid Exif data: Invalid directory size.")}}i[7]=i[1],e.parseExifData=function(i,n,a,r,l){if(!l.disableExif){var d,c,u,p=l.includeExifTags,h=l.excludeExifTags||{34665:{37500:!0}},g=n+10;if(1165519206===i.getUint32(n+4))if(g+8>i.byteLength)console.log("Invalid Exif data: Invalid segment size.");else if(0===i.getUint16(n+8)){switch(i.getUint16(g)){case 18761:d=!0;break;case 19789:d=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}42===i.getUint16(g+2,d)?(c=i.getUint32(g+4,d),r.exif=new t,l.disableExifOffsets||(r.exifOffsets=new t,r.exifTiffOffset=g,r.exifLittleEndian=d),(c=s(i,g,g+c,d,r.exif,r.exifOffsets,p,h))&&o(p,h,"ifd1")&&(r.exif.ifd1=c,r.exifOffsets&&(r.exifOffsets.ifd1=g+c)),Object.keys(r.exif.ifds).forEach((function(e){!function(e,i,n,o,a,r,l){var d=e.exif[i];d&&(e.exif[i]=new t(i),e.exifOffsets&&(e.exifOffsets[i]=new t(i)),s(n,o,o+d,a,e.exif[i],e.exifOffsets&&e.exifOffsets[i],r&&r[i],l&&l[i]))}(r,e,i,g,d,p,h)})),(u=r.exif.ifd1)&&u[513]&&(u[513]=function(t,i,n){if(n){if(!(i+n>t.byteLength))return new Blob([e.bufferSlice.call(t.buffer,i,i+n)],{type:"image/jpeg"});console.log("Invalid Exif data: Invalid thumbnail data.")}}(i,g+u[513],u[514]))):console.log("Invalid Exif data: Missing TIFF marker.")}else console.log("Invalid Exif data: Missing byte alignment offset.")}},e.metaDataParsers.jpeg[65505].push(e.parseExifData),e.exifWriters={274:function(e,t,i){var n=t.exifOffsets[274];return n?(new DataView(e,n+8,2).setUint16(0,i,t.exifLittleEndian),e):e}},e.writeExifData=function(t,i,n,o){return e.exifWriters[i.exif.map[n]](t,i,o)},e.ExifMap=t})(e.exports?Cm.exports:window.loadImage)}(Am);!function(e){(function(e){var t=e.ExifMap.prototype;t.tags={256:"ImageWidth",257:"ImageHeight",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",34665:{36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",36880:"OffsetTime",36881:"OffsetTimeOriginal",36882:"OffsetTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber"},34853:{0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},40965:{1:"InteroperabilityIndex"}},t.tags.ifd1=t.tags,t.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"Original",2:"Horizontal flip",3:"Rotate 180° CCW",4:"Vertical flip",5:"Vertical flip + Rotate 90° CW",6:"Rotate 90° CW",7:"Horizontal flip + Rotate 90° CW",8:"Rotate 90° CCW"}},t.getText=function(e){var t=this.get(e);switch(e){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[e][t];case"ExifVersion":case"FlashpixVersion":if(!t)return;return String.fromCharCode(t[0],t[1],t[2],t[3]);case"ComponentsConfiguration":if(!t)return;return this.stringValues[e][t[0]]+this.stringValues[e][t[1]]+this.stringValues[e][t[2]]+this.stringValues[e][t[3]];case"GPSVersionID":if(!t)return;return t[0]+"."+t[1]+"."+t[2]+"."+t[3]}return String(t)},t.getAll=function(){var e,t,i,n={};for(e in this)Object.prototype.hasOwnProperty.call(this,e)&&((t=this[e])&&t.getAll?n[this.ifds[e].name]=t.getAll():(i=this.tags[e])&&(n[i]=this.getText(i)));return n},t.getName=function(e){var t=this.tags[e];return"object"==typeof t?this.ifds[e].name:t},function(){var e,i,n,o=t.tags;for(e in o)if(Object.prototype.hasOwnProperty.call(o,e))if(i=t.ifds[e])for(e in n=o[e])Object.prototype.hasOwnProperty.call(n,e)&&(i.map[n[e]]=Number(e));else t.map[o[e]]=Number(e)}()})(e.exports?Cm.exports:window.loadImage)}({exports:{}});var qm={exports:{}};!function(e){(function(e){function t(){}function i(e,t,i,n,o){return"binary"===t.types[e]?new Blob([i.buffer.slice(n,n+o)]):"Uint16"===t.types[e]?i.getUint16(n):function(e,t,i){for(var n="",o=t+i,s=t;s<o;s+=1)n+=String.fromCharCode(e.getUint8(s));return n}(i,n,o)}function n(e,t){return void 0===e?t:e instanceof Array?(e.push(t),e):[e,t]}function o(e,t,o,s,a,r){for(var l,d,c,u=t+o,p=t;p<u;)28===e.getUint8(p)&&2===e.getUint8(p+1)&&(c=e.getUint8(p+2),a&&!a[c]||r&&r[c]||(d=e.getInt16(p+3),l=i(c,s.iptc,e,p+5,d),s.iptc[c]=n(s.iptc[c],l),s.iptcOffsets&&(s.iptcOffsets[c]=p))),p+=1}function s(e,t){return 943868237===e.getUint32(t)&&1028===e.getUint16(t+4)}function a(e,t){var i=e.getUint8(t+7);return i%2!=0&&(i+=1),0===i&&(i=4),i}t.prototype.map={ObjectName:5},t.prototype.types={0:"Uint16",200:"Uint16",201:"Uint16",202:"binary"},t.prototype.get=function(e){return this[e]||this[this.map[e]]},e.parseIptcData=function(e,i,n,r,l){if(!l.disableIptc)for(var d=i+n;i+8<d;){if(s(e,i)){var c=a(e,i),u=i+8+c;if(u>d){console.log("Invalid IPTC data: Invalid segment offset.");break}var p=e.getUint16(i+6+c);if(i+p>d){console.log("Invalid IPTC data: Invalid segment size.");break}return r.iptc=new t,l.disableIptcOffsets||(r.iptcOffsets=new t),void o(e,u,p,r,l.includeIptcTags,l.excludeIptcTags||{202:!0})}i+=1}},e.metaDataParsers.jpeg[65517].push(e.parseIptcData),e.IptcMap=t})(e.exports?Cm.exports:window.loadImage)}(qm);!function(e){(function(e){var t=e.IptcMap.prototype;t.tags={0:"ApplicationRecordVersion",3:"ObjectTypeReference",4:"ObjectAttributeReference",5:"ObjectName",7:"EditStatus",8:"EditorialUpdate",10:"Urgency",12:"SubjectReference",15:"Category",20:"SupplementalCategories",22:"FixtureIdentifier",25:"Keywords",26:"ContentLocationCode",27:"ContentLocationName",30:"ReleaseDate",35:"ReleaseTime",37:"ExpirationDate",38:"ExpirationTime",40:"SpecialInstructions",42:"ActionAdvised",45:"ReferenceService",47:"ReferenceDate",50:"ReferenceNumber",55:"DateCreated",60:"TimeCreated",62:"DigitalCreationDate",63:"DigitalCreationTime",65:"OriginatingProgram",70:"ProgramVersion",75:"ObjectCycle",80:"Byline",85:"BylineTitle",90:"City",92:"Sublocation",95:"State",100:"CountryCode",101:"Country",103:"OriginalTransmissionReference",105:"Headline",110:"Credit",115:"Source",116:"CopyrightNotice",118:"Contact",120:"Caption",121:"LocalCaption",122:"Writer",125:"RasterizedCaption",130:"ImageType",131:"ImageOrientation",135:"LanguageIdentifier",150:"AudioType",151:"AudioSamplingRate",152:"AudioSamplingResolution",153:"AudioDuration",154:"AudioOutcue",184:"JobID",185:"MasterDocumentID",186:"ShortDocumentID",187:"UniqueDocumentID",188:"OwnerID",200:"ObjectPreviewFileFormat",201:"ObjectPreviewFileVersion",202:"ObjectPreviewData",221:"Prefs",225:"ClassifyState",228:"SimilarityIndex",230:"DocumentNotes",231:"DocumentHistory",232:"ExifCameraInfo",255:"CatalogSets"},t.stringValues={10:{0:"0 (reserved)",1:"1 (most urgent)",2:"2",3:"3",4:"4",5:"5 (normal urgency)",6:"6",7:"7",8:"8 (least urgent)",9:"9 (user-defined priority)"},75:{a:"Morning",b:"Both Morning and Evening",p:"Evening"},131:{L:"Landscape",P:"Portrait",S:"Square"}},t.getText=function(e){var t=this.get(e),i=this.map[e],n=this.stringValues[i];return n?n[t]:String(t)},t.getAll=function(){var e,t,i={};for(e in this)Object.prototype.hasOwnProperty.call(this,e)&&(t=this.tags[e])&&(i[t]=this.getText(t));return i},t.getName=function(e){return this.tags[e]},function(){var e,i=t.tags,n=t.map||{};for(e in i)Object.prototype.hasOwnProperty.call(i,e)&&(n[i[e]]=Number(e))}()})(e.exports?Cm.exports:window.loadImage)}({exports:{}});!function(e){(function(e){var t=e.transform,i=e.requiresCanvas,n=e.requiresMetaData,o=e.transformCoordinates,s=e.getTransformedOptions;function a(t,i){var n=t&&t.orientation;return!0===n&&!e.orientation||1===n&&e.orientation||(!i||e.orientation)&&n>1&&n<9}function r(e,t){return e!==t&&(1===e&&t>1&&t<9||e>1&&e<9)}function l(e,t){if(t>1&&t<9)switch(e){case 2:case 4:return t>4;case 5:case 7:return t%2==0;case 6:case 8:return 2===t||4===t||5===t||7===t}return!1}!function(e){if(e.global.document){var t=document.createElement("img");t.onload=function(){if(e.orientation=2===t.width&&3===t.height,e.orientation){var i=e.createCanvas(1,1,!0).getContext("2d");i.drawImage(t,1,1,1,1,0,0,1,1),e.orientationCropBug="255,255,255,255"!==i.getImageData(0,0,1,1).data.toString()}},t.src="data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/xABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAAAAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQvoP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXwH/9k="}}(e),e.requiresCanvas=function(t){return a(t)||i.call(e,t)},e.requiresMetaData=function(t){return a(t,!0)||n.call(e,t)},e.transform=function(i,n,o,s,a){t.call(e,i,n,(function(t,i){if(i){var n=e.orientation&&i.exif&&i.exif.get("Orientation");if(n>4&&n<9){var s=i.originalWidth,a=i.originalHeight;i.originalWidth=a,i.originalHeight=s}}o(t,i)}),s,a)},e.getTransformedOptions=function(t,i,n){var o=s.call(e,t,i),a=n.exif&&n.exif.get("Orientation"),d=o.orientation,c=e.orientation&&a;if(!0===d&&(d=a),!r(d,c))return o;var u=o.top,p=o.right,h=o.bottom,g=o.left,f={};for(var m in o)Object.prototype.hasOwnProperty.call(o,m)&&(f[m]=o[m]);if(f.orientation=d,(d>4&&!(c>4)||d<5&&c>4)&&(f.maxWidth=o.maxHeight,f.maxHeight=o.maxWidth,f.minWidth=o.minHeight,f.minHeight=o.minWidth,f.sourceWidth=o.sourceHeight,f.sourceHeight=o.sourceWidth),c>1){switch(c){case 2:p=o.left,g=o.right;break;case 3:u=o.bottom,p=o.left,h=o.top,g=o.right;break;case 4:u=o.bottom,h=o.top;break;case 5:u=o.left,p=o.bottom,h=o.right,g=o.top;break;case 6:u=o.left,p=o.top,h=o.right,g=o.bottom;break;case 7:u=o.right,p=o.top,h=o.left,g=o.bottom;break;case 8:u=o.right,p=o.bottom,h=o.left,g=o.top}if(l(d,c)){var v=u,b=p;u=h,p=g,h=v,g=b}}switch(f.top=u,f.right=p,f.bottom=h,f.left=g,d){case 2:f.right=g,f.left=p;break;case 3:f.top=h,f.right=g,f.bottom=u,f.left=p;break;case 4:f.top=h,f.bottom=u;break;case 5:f.top=g,f.right=h,f.bottom=p,f.left=u;break;case 6:f.top=p,f.right=h,f.bottom=g,f.left=u;break;case 7:f.top=p,f.right=u,f.bottom=g,f.left=h;break;case 8:f.top=g,f.right=u,f.bottom=p,f.left=h}return f},e.transformCoordinates=function(t,i,n){o.call(e,t,i,n);var s=i.orientation,a=e.orientation&&n.exif&&n.exif.get("Orientation");if(r(s,a)){var d=t.getContext("2d"),c=t.width,u=t.height,p=c,h=u;switch((s>4&&!(a>4)||s<5&&a>4)&&(t.width=u,t.height=c),s>4&&(p=u,h=c),a){case 2:d.translate(p,0),d.scale(-1,1);break;case 3:d.translate(p,h),d.rotate(Math.PI);break;case 4:d.translate(0,h),d.scale(1,-1);break;case 5:d.rotate(-.5*Math.PI),d.scale(-1,1);break;case 6:d.rotate(-.5*Math.PI),d.translate(-p,0);break;case 7:d.rotate(-.5*Math.PI),d.translate(-p,h),d.scale(1,-1);break;case 8:d.rotate(.5*Math.PI),d.translate(0,-h)}switch(l(s,a)&&(d.translate(p,h),d.rotate(Math.PI)),s){case 2:d.translate(c,0),d.scale(-1,1);break;case 3:d.translate(c,u),d.rotate(Math.PI);break;case 4:d.translate(0,u),d.scale(1,-1);break;case 5:d.rotate(.5*Math.PI),d.scale(1,-1);break;case 6:d.rotate(.5*Math.PI),d.translate(0,-u);break;case 7:d.rotate(.5*Math.PI),d.translate(c,-u),d.scale(-1,1);break;case 8:d.rotate(-.5*Math.PI),d.translate(-c,0)}}}})(e.exports?Cm.exports:window.loadImage)}({exports:{}});var Tm=Cm.exports;const Lm=new ni;class Mm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t;let n,o=i.querySelector("#divImageTool");if(!o){let e=`\n <div id="divImageTool" class="is-tool">\n <div role="button" tabindex="0" class="image-embed" style="${this.builder.opts.imageEmbed?"":"display:none;"}width:40px;height:40px;overflow:hidden;">\n <div style="position:absolute;width:100%;height:100%;"><svg class="is-icon-flex" style="position: absolute;top: 13px;left: 15px;width: 14px;height: 14px;"><use xlink:href="#ion-image"></use></svg></div>\n <input title="${t.out("Change Image")}" data-title="${t.out("Change Image")}" id="fileEmbedImage" type="file" accept="image/*" style="position:absolute;top:-20px;left:0;width:40px;height:60px;opacity: 0;cursor: pointer;"/>\n </div>\n <button tabindex="0" title="${t.out("Link")}" data-title="${t.out("Link")}" class="image-link" style="width:40px;height:40px;"><svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#ion-link"></use></svg></button> \n <button tabindex="0" title="${t.out("Edit")}" data-title="${t.out("Edit")}" class="image-edit" style="width:40px;height:40px;"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-android-create"></use></svg></button>\n </div>\n <div id="divImageProgress">\n <div>\n <div class="dot"></div>\n <div class="dot"></div>\n <div class="dot"></div>\n </div>\n </div>\n \n <div class="is-modal imageedit">\n <div class="is-modal-content">\n <div class="imageedit-crop" style="display:flex;height:80px;align-items:center;align-self:flex-start;">\n <button title="5x5" data-crop-size="1" style="width: 60px;height: 60px;">5x5</button>\n <button title="4x3" data-crop-size="1.33333" style="width: 60px;height: 45px;">4x3</button>\n <button title="3x4" data-crop-size="0.75" style="width: 45px;height: 60px;">3x4</button>\n <button title="6x4" data-crop-size="1.5" style="width: 60px;height: 40px;">6x4</button>\n <button title="4x6" data-crop-size="0.6666" style="width: 40px;height: 60px;">4x6</button>\n <button title="${t.out("Free")}" data-crop-size="" style="width: 60px;height: 45px;">${t.out("Free")}</button>\n </div>\n <div class="imageedit-preview" style="max-width:1000px;width:100%;max-height:550px;">\n </div>\n <div style="margin-top:15px;text-align:right;align-self:flex-end;">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Apply")}" class="input-ok classic-primary">${t.out("Apply")}</button>\n </div>\n </div>\n </div>\n \n <div class="is-modal imagelink">\n <div class="is-modal-content">\n\n <label for="inpImageLinkSource" style="display:block">${t.out("Source")}:</label>\n <div class="image-src">\n <input id="inpImageLinkSource" class="input-src" type="text"/>\n <button title="${t.out("Select")}" class="input-select" style="flex:none;width:50px;height:50px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <div class="image-larger1" style="position:relative;flex:none;width:50px;height:50px;box-shadow: 0px 3px 6px -6px rgba(0, 0, 0, 0.32);">\n <form class="form-upload-larger" target="frameTargetImageUpload" method="post" action="${this.builder.opts.largerImageHandler}" enctype="multipart/form-data" style="position:absolute;top:0;left:0;width:100%;height:100%;">\n\t\t\t\t <input id="hidRefId1" name="hidRefId" type="hidden" value="" />\n <svg class="is-icon-flex" style="position: absolute;top: 16px;left: 15px;width: 18px;height: 18px;"><use xlink:href="#ion-image"></use></svg>\n <input title="${t.out("Select")}" id="fileImage1" name="fileImage" type="file" accept="image/*" style="position:absolute;top:-30px;left:0;width:100%;height:80px;opacity: 0;cursor: pointer;">\n </form>\n\n <iframe id="frameTargetImageUpload" name="frameTargetImageUpload" src="about:blank" style="width:1px;height:1px;position:absolute;top:0;right:-100000px"></iframe>\n </div>\n </div>\n\n <label for="inpImageLinkTitle" style="margin-top:14px;display:block">${t.out("Title")}:</label>\n <input id="inpImageLinkTitle" class="input-title" type="text" style="width:100%;border-top: none;"/>\n\n <label for="inpImageLinkLink" style="margin-top:14px;display:block">${t.out("Link")}:</label>\n <div class="image-link">\n <input id="inpImageLinkLink" class="input-link" type="text" style="width:100%;border-top: none;"/>\n <button title="${t.out("Select")}" class="input-select2" style="flex:none;width:50px;height:50px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <div class="image-larger2" style="position:relative;flex:none;width:50px;height:50px;box-shadow: 0px 3px 6px -6px rgba(0, 0, 0, 0.32);">\n <form class="form-upload-larger" target="frameTargetImageUpload" method="post" action="${this.builder.opts.largerImageHandler}" enctype="multipart/form-data" style="position:absolute;top:0;left:0;width:100%;height:100%;">\n\t\t\t\t <input id="hidRefId2" name="hidRefId" type="hidden" value="" />\n <svg class="is-icon-flex" style="position: absolute;top: 16px;left: 15px;width: 18px;height: 18px;"><use xlink:href="#ion-image"></use></svg>\n <input title="${t.out("Select")}" id="fileImage2" name="fileImage" type="file" accept="image/*" style="position:absolute;top:-30px;left:0;width:100%;height:80px;opacity: 0;cursor: pointer;">\n </form>\n </div>\n </div>\n\n <label style="display:block;margin-top:14px;">\n <input class="input-newwindow" type="checkbox" /> ${t.out("Open new window")}&nbsp;\n </label>\n <label id="lblImageLinkOpenLightbox" style="${this.builder.useLightbox?"display:block":"display:none"};margin-top:5px;margin-bottom:14px;">\n <input class="input-openlightbox" type="checkbox" /> ${t.out("Open in a lightbox (for image, video or Youtube)")}&nbsp;\n </label>\n \n <div style="text-align:right;margin-top:14px;">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>\n\n <div class="is-modal imageselect" style="z-index:10005">\n <div style="max-width:800px;height:80%;padding:0;">\n <iframe style="width:100%;height:100%;border: none;display: block;" src="about:blank"></iframe>\n </div>\n </div>\n\n <div id="divImageResizer" data-x=0 data-y=0 class="is-tool moveable resizable">\n </div>\n `;Lm.appendHtml(i,e),o=i.querySelector("#divImageTool"),this.imageTool=o,n=document.querySelector("#divImageResizer"),this.imageResizer=n,this.builder.moveable=new Sm(document.body,{target:n,resizable:!0,throttleResize:0,keepRatio:!0}).on("resize",(({target:e,width:t,height:n})=>{if(0===t||0===n||isNaN(t)||isNaN(n))return;this.imageTool.style.display="",i.querySelector(".is-element-tool").style.display="";let o=this.builder.activeImage,s=!1;if(Lm.hasClass(o.parentNode,"img-circular")&&(o=o.parentNode,s=!0),s){let e=parseFloat(window.getComputedStyle(o.parentNode).getPropertyValue("padding-left")),i=parseFloat(window.getComputedStyle(o.parentNode).getPropertyValue("padding-right")),s=o.parentNode.offsetWidth*this.builder.opts.zoom-e-i;t>=s&&(t=s),n>=t?(o.style.width=t/this.builder.opts.zoom+"px",o.style.height=t/this.builder.opts.zoom+"px",o.querySelector("img").style.width=t/this.builder.opts.zoom+"px",o.querySelector("img").style.height=t/this.builder.opts.zoom+"px"):(o.style.width=t/this.builder.opts.zoom+"px",o.style.height=n/this.builder.opts.zoom+"px",o.querySelector("img").style.width=t/this.builder.opts.zoom+"px",o.querySelector("img").style.height=n/this.builder.opts.zoom+"px")}else o.style.width=t/this.builder.opts.zoom+"px",o.style.height="auto";e.style.top=o.getBoundingClientRect().top+window.pageYOffset+"px",e.style.left=o.getBoundingClientRect().left+window.pageXOffset+"px",e.style.width=o.offsetWidth+"px",e.style.height=o.offsetHeight+"px",this.repositionHandler(o.offsetWidth,o.offsetHeight),document.selection?document.selection.empty():window.getSelection().removeAllRanges();let a=i.querySelector(".is-column-tool");Lm.removeClass(a,"active")})).on("resizeEnd",(({target:e})=>{let t=this.builder.activeImage,n=!1;Lm.hasClass(t.parentNode,"img-circular")&&(t=t.parentNode,n=!0);var o=getComputedStyle(t.parentNode),s=parseFloat(o.paddingLeft)+parseFloat(o.paddingRight),a=parseFloat(o.borderLeftWidth)+parseFloat(o.borderRightWidth),r=t.parentNode.offsetWidth-s-a;if(!n){var l=r,d=t.offsetWidth,c=d/l*100;t.style.width=c+"%"}this.builder.opts.emailMode&&t.setAttribute("width",d),e.setAttribute("data-resized",1),setTimeout((()=>{e.setAttribute("data-resized",0)}),300),this.builder.opts.onChange();let u=i.querySelector(".is-column-tool");Lm.addClass(u,"active")})),document.querySelector(".moveable-control-box").style.display="none",n.addEventListener("click",(()=>{this.repositionImageTool(),this.builder.elmTool.repositionElementTool()}));let s=o.querySelector("#fileEmbedImage");Lm.addEventListener(s,"change",(e=>{this.builder.uo.saveForUndo();var t=e.target;let n=this.builder.activeImage,a=i.querySelector("#divImageProgress");a.style.display="table",a.style.width=n.offsetWidth*this.builder.opts.zoom+"px",a.style.height=n.offsetHeight*this.builder.opts.zoom+"px",a.style.top=n.getBoundingClientRect().top+window.pageYOffset+"px",a.style.left=n.getBoundingClientRect().left+window.pageXOffset+"px";try{n.setAttribute("data-filename",t.files[0].name),this.processImage(t.files[0],n,(()=>{a.style.display="none",s=o.querySelector("#fileEmbedImage"),s.value="",this.refreshIfIsModule(n),this.builder.opts.onChange(),this.builder.elmTool.refresh()}))}catch(e){a.style.display="none"}})),this.builder.opts.onImageBrowseClick&&(s=o.querySelector(".image-embed"),Lm.addEventListener(s,"click",(e=>(this.builder.opts.onImageBrowseClick(),e.preventDefault(),!1))));let a=i.querySelector(".imagelink");""!==this.builder.opts.largerImageHandler||this.builder.opts.onLargerImageUpload||(a.querySelector(".image-larger1").style.display="none",a.querySelector(".image-larger2").style.display="none"),this.builder.opts.onImageSelectClick||""!==this.builder.opts.imageselect||(a.querySelector(".input-select").style.display="none",a.querySelector(".input-select2").style.display="none"),s=o.querySelector(".image-link"),Lm.addEventListener(s,"click",(()=>{if(document.querySelector(".moveable-control-box").style.display="none",this.builder.opts.onImageSettingClick)return this.builder.opts.onImageSettingClick(),!1;let e,i=this.builder.activeImage;"a"===i.parentNode.tagName.toLowerCase()&&1===i.parentNode.childElementCount&&(e=i.parentNode);let n=i.getAttribute("src"),o=i.getAttribute("alt"),s=a.querySelector(".input-src");-1===n.indexOf("base64")?s.value=n:s.value="[Image Data]";let r=a.querySelector(".input-title");r.value=o;let l=a.querySelector(".input-link");l.value="";let d=a.querySelector(".input-newwindow");d.checked=!1;let c=a.querySelector(".input-openlightbox");if(c.checked=!1,e){if(l.value=e.getAttribute("href"),""===o){let t=e.getAttribute("title");t&&(r.value=t)}var u=e.getAttribute("target");d.checked="_blank"===u,Lm.hasClass(e,"is-lightbox")?c.checked=!0:c.checked=!1}t.showModal(a,!0,null,!0),s.focus()})),s=a.querySelector(".input-cancel"),Lm.addEventListener(s,"click",(()=>{t.hideModal(a),document.querySelector(".moveable-control-box").style.display="block"})),s=a.querySelector(".input-ok"),Lm.addEventListener(s,"click",(()=>{this.builder.uo.saveForUndo();let e,i=this.builder.activeImage;"a"===i.parentNode.tagName.toLowerCase()&&1===i.parentNode.childElementCount&&(e=i.parentNode);let n=a.querySelector(".input-src").value,o=a.querySelector(".input-title").value,s=a.querySelector(".input-link").value;-1===n.indexOf("[Image Data]")&&i.setAttribute("src",n),i.setAttribute("alt",o),""!==s?e?(e.setAttribute("href",s),e.setAttribute("title",o),a.querySelector(".input-newwindow").checked?e.setAttribute("target","_blank"):e.removeAttribute("target"),a.querySelector(".input-openlightbox").checked?Lm.addClass(e,"is-lightbox"):Lm.removeClass(e,"is-lightbox")):(e=Lm.createElement("a"),e.setAttribute("href",s),e.setAttribute("title",o),e.innerHTML=i.outerHTML,a.querySelector(".input-newwindow").checked?e.setAttribute("target","_blank"):e.removeAttribute("target"),a.querySelector(".input-openlightbox").checked?Lm.addClass(e,"is-lightbox"):Lm.removeClass(e,"is-lightbox"),i.outerHTML=e.outerHTML):e&&(e.outerHTML=e.innerHTML),this.refreshIfIsModule(i),this.builder.opts.onChange(),this.builder.opts.onRender(),t.hideModal(a),this.builder.elmTool.refresh()}));let r=a.querySelector(".image-src");this.builder.opts.onImageSelectClick||this.builder.opts.imageselect?(s=a.querySelector(".input-select"),s&&Lm.addEventListener(s,"click",(()=>{if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:a.querySelector(".input-src"),theTrigger:s});else{let e=i.querySelector(".is-modal.imageselect"),n=e.querySelector("iframe");this.builder.opts.assetRefresh&&(n.src=this.builder.opts.imageselect,this.builder.opts.assetRefresh=!1),"about:blank"===n.src&&(n.src=this.builder.opts.imageselect),t.showModal(e)}this.builder.targetInput=a.querySelector(".input-src"),this.builder.targetCallback=null,this.builder.targetAssetType="image"})),s=a.querySelector(".input-select2"),s&&Lm.addEventListener(s,"click",(()=>{if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:a.querySelector(".input-link"),theTrigger:s});else{let e=i.querySelector(".is-modal.imageselect"),n=e.querySelector("iframe");this.builder.opts.assetRefresh&&(n.src=this.builder.opts.imageselect,this.builder.opts.assetRefresh=!1),"about:blank"===n.src&&(n.src=this.builder.opts.imageselect),t.showModal(e)}this.builder.targetInput=a.querySelector(".input-link"),this.builder.targetCallback=null,this.builder.targetAssetType="media"}))):Lm.removeClass(r,"image-select");let l=a.querySelector("#fileImage1");Lm.addEventListener(l,"change",(e=>{let t=l;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;Lm.addClass(i,"please-wait"),a.querySelector("#hidRefId1").value=this.builder.opts.customval,this.builder.opts.onLargerImageUpload?this.builder.opts.onLargerImageUpload(e):i.submit(),l.value=""}));let d=a.querySelector("#fileImage2");Lm.addEventListener(d,"change",(e=>{let t=d;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;Lm.addClass(i,"please-wait"),a.querySelector("#hidRefId2").value=this.builder.opts.customval,this.builder.opts.onLargerImageUpload?this.builder.opts.onLargerImageUpload(e):i.submit(),d.value=""}));let c=i.querySelector(".imageedit");s=o.querySelector(".image-edit"),Lm.addEventListener(s,"click",(()=>{let e=this.builder.activeImage,i=c.querySelector(".imageedit-preview");i.innerHTML='<img style="max-width:100%;object-fit:contain;height:100%;"/>';let n=c.querySelector("img");if(this.builder.onImageEditClick){if(!this.builder.onImageEditClick(e,n))return}t.showModal(c,!0);if(i.style.height="",e.offsetWidth<800&&e.offsetHeight<550)i.style.width=e.offsetWidth+"px";else{800*e.offsetHeight/e.offsetWidth<=550?i.style.width="800px":i.style.height="550px"}-1===e.src.indexOf("base64")?n.src=e.src+(-1===e.src.indexOf("?")?"?":"&")+`timestamp=${(new Date).getTime()}`:n.src=e.src,this.builder.setCropperConfig?this.cropper=new fd(n,this.builder.setCropperConfig):this.cropper=new fd(n,{zoomable:!1}),document.querySelector(".moveable-control-box").style.display="none"}));let u=c.querySelector(".imageedit-crop").querySelectorAll("button");Array.prototype.forEach.call(u,(e=>{Lm.addEventListener(e,"click",(()=>{let t=1*e.getAttribute("data-crop-size");this.cropper.setAspectRatio(t)}))}));let p=c.querySelector(".input-cancel");Lm.addEventListener(p,"click",(()=>{t.hideModal(c),document.querySelector(".moveable-control-box").style.display="block"})),s=c.querySelector(".input-ok"),Lm.addEventListener(s,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeImage,i=e.getAttribute("data-filename"),n="jpg";if(i)n=i.substr(i.lastIndexOf(".")+1).toLowerCase();else{let t=e.src;t.indexOf("/")>-1?e.setAttribute("data-filename",t.substr(t.lastIndexOf("/")+1)):e.setAttribute("data-filename",t),n=t.substr(t.lastIndexOf(".")+1).toLowerCase()}if(this.builder.opts.imageRenameOnEdit){let t="";if(-1===e.src.indexOf("base64")){let i=e.src.substring(e.src.lastIndexOf("/")+1);t=Lm.baseName(i)}else t=Lm.baseName(e.getAttribute("data-filename"));let i="";-1!==t.indexOf("-edit")&&(t=t.substr(0,t.indexOf("-edit"))),i=t+"-edit"+this.util.makeId(),e.setAttribute("data-filename",i+"."+n)}e.src="jpg"===n?this.cropper.getCroppedCanvas({fillColor:"#fff"}).toDataURL("image/jpeg"):this.cropper.getCroppedCanvas({}).toDataURL(),this.refreshIfIsModule(e),this.builder.opts.onChange(),t.hideModal(c),this.builder.elmTool.refresh()}))}this.builder.imgs=[]}refreshIfIsModule(e){if(Lm.parentsHasAttribute(e,"data-html")){if(this.imageTool.style.display="",e.hasAttribute("data-sync")){let t=e.getAttribute("data-src"),i=e.getAttribute("data-filename");if(t){let n=e;for(;!n.getAttribute("data-html");)n=n.parentNode;let o=n.querySelectorAll("img");Array.prototype.forEach.call(o,(n=>{n.src===t&&(n.src=e.src,n.removeAttribute("data-src"),n.setAttribute("data-filename",i))})),e.removeAttribute("data-src")}}setTimeout((()=>{this.util.refreshModule(),this.imageTool.style.display=""}),1e3)}else this.refresh()}refresh(){if(this.builder.activeImage){let e=this.imageTool;e.style.display="",setTimeout((()=>{let t=this.builder.activeImage;if(!t)return;Lm.hasClass(t.parentNode,"img-circular")&&(t=t.parentNode),e.style.display="flex";let i=e.offsetWidth,n=t.offsetWidth*this.builder.opts.zoom,o=t.getBoundingClientRect().top+window.pageYOffset,s=t.getBoundingClientRect().left+window.pageXOffset;s+=n/2-i/2;i+s>window.innerWidth&&(s=t.getBoundingClientRect().left),e.style.top=o+"px",e.style.left=s+"px";let a=this.imageResizer;a.style.top=t.getBoundingClientRect().top+window.pageYOffset+"px",a.style.left=t.getBoundingClientRect().left+window.pageXOffset+"px",a.style.width=t.offsetWidth*this.builder.opts.zoom+"px",a.style.height=t.offsetHeight*this.builder.opts.zoom+"px",a.style.display="block",this.repositionHandler(t.offsetWidth,t.offsetHeight),this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="block",0===t.offsetWidth&&(e.style.display="",this.builder.activeImage=null,a.style.display="none",a.style.top="-10px",a.style.left="-10px",a.style.width="1px",a.style.height="1px",this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none")}),300)}}repositionImageTool(){if(this.builder.activeImage){let e=this.imageTool,t=this.builder.activeImage;Lm.hasClass(t.parentNode,"img-circular")&&(t=t.parentNode),e.style.display="flex";let i=e.offsetWidth,n=t.offsetWidth*this.builder.opts.zoom,o=t.getBoundingClientRect().top+window.pageYOffset,s=t.getBoundingClientRect().left+window.pageXOffset;s+=n/2-i/2;i+s>window.innerWidth&&(s=t.getBoundingClientRect().left),e.style.top=o+"px",e.style.left=s+"px";let a=this.imageResizer;a.style.top=t.getBoundingClientRect().top+window.pageYOffset+"px",a.style.left=t.getBoundingClientRect().left+window.pageXOffset+"px",a.style.width=t.offsetWidth*this.builder.opts.zoom+"px",a.style.height=t.offsetHeight*this.builder.opts.zoom+"px",a.style.display="block",this.repositionHandler(t.offsetWidth,t.offsetHeight),this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="block"}}click(e){let t=e.target;if("img"===t.tagName.toLowerCase()){let i=!1;if(t.hasAttribute("data-fixed")&&(i=!0),i){this.imageTool.style.display="",this.builder.activeImage=null;let e=this.imageResizer;e.style.display="none",e.style.top="-10px",e.style.left="-10px",e.style.width="1px",e.style.height="1px",this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none"}else{this.builder.activeImage=t,Lm.hasClass(t.parentNode,"img-circular")&&(t=t.parentNode);let i=this.imageTool;i.style.display="flex";let n=i.offsetWidth,o=t.offsetWidth*this.builder.opts.zoom,s=t.getBoundingClientRect().top+window.pageYOffset,a=t.getBoundingClientRect().left+window.pageXOffset;a+=o/2-n/2;if(n+a>window.innerWidth&&(a=t.getBoundingClientRect().left),i.style.top=s+"px",i.style.left=a+"px",t.hasAttribute("data-noresize")){let e=this.imageResizer;e.style.display="none",e.style.top="-10px",e.style.left="-10px",e.style.width="1px",e.style.height="1px",this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none"}else{let e=this.imageResizer;e.style.top=t.getBoundingClientRect().top+window.pageYOffset+"px",e.style.left=t.getBoundingClientRect().left+window.pageXOffset+"px",e.style.width=t.offsetWidth*this.builder.opts.zoom+"px",e.style.height=t.offsetHeight*this.builder.opts.zoom+"px",e.style.display="block",this.repositionHandler(t.offsetWidth,t.offsetHeight);let i,n=t.style.width;-1!==n.indexOf("%")?(n=1*n.replace("%",""),i=100*t.offsetWidth/n):i=t.offsetWidth,e.setAttribute("data-width",Math.round(i)),this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="block"}let r=!1;if(e.screenX&&0!==e.screenX&&e.screenY&&0!==e.screenY||(r=!0),r){i.style.display="";let e=this.imageResizer;e.style.display="none",e.style.top="-10px",e.style.left="-10px",e.style.width="1px",e.style.height="1px",this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none"}}}else{this.imageTool.style.display="",this.builder.activeImage=null;let e=this.imageResizer;e.style.display="none",e.style.top="-10px",e.style.left="-10px",e.style.width="1px",e.style.height="1px",this.builder.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none"}}clearImageResizer(){this.builder.imgs.forEach((e=>{try{e.destroy()}catch(e){}let t=this.builder.imgs.indexOf(e);t>-1&&this.builder.imgs.splice(t,1)})),document.querySelectorAll("[data-mov]").forEach((e=>{e.removeAttribute("data-mov")}))}repositionHandler(e,t){let i=document.querySelector("#divImageResizer");i.style.width=e*this.builder.opts.zoom+"px",i.style.height=t*this.builder.opts.zoom+"px"}processImage(e,t,i){if(!e)return i(),!1;if(!document.getElementById("myTmpCanvasNoCrop")){var n=document.createElement("canvas");n.id="myTmpCanvasNoCrop",n.style.display="none",document.querySelector("body").appendChild(n)}var o,s,a;"jpg"===(o=e.name?e.name.substr(e.name.lastIndexOf(".")+1).toLowerCase():e.substr(e.lastIndexOf(".")+1).toLowerCase())||"jpeg"===o?(s="image/jpeg",a=this.builder.opts.imageQuality):(s="image/png",a=1),-1===this.builder.opts.maxEmbedImageWidth?Tm(e,(e=>{t.src=e.toDataURL(s,a),i()}),{canvas:!0}):Tm(e,(e=>{t.src=e.toDataURL(s,a),i()}),{maxWidth:this.builder.opts.maxEmbedImageWidth,maxHeight:this.builder.opts.maxEmbedImageWidth,canvas:!0})}}const Om=new ni;class Rm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.builderStuff=i;let n=i.querySelector(".is-modal.buttoneditor");if(!n){let e=`\n <div class="is-modal is-modal-content buttoneditor">\n <div class="is-modal-bar is-draggable">\n ${t.out("Button")}\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n <div style="padding:0">\n <div class="is-tabs clearfix" data-group="button" style="position:relative;z-index:1">\n <a title="${t.out("Default")}" href="" data-content="divButtonDefault" class="active">${t.out("Default")}</a>\n <a title="${t.out("Hover")}" href="" data-content="divButtonHover">${t.out("Hover")}</a>\n <a title="${t.out("Saved")}" href="" data-content="divMyButtons">${t.out("Saved")}</a>\n <a title="${t.out("Templates")}" href="" data-content="divButtonTemplates">${t.out("Templates")}</a>\n </div>\n <div id="divButtonDefault" class="is-tab-content" data-group="button" style="display:block">\n\n <div class="flex flex-row">\n <div class="flex flex-col" style="margin-right: 40px;">\n <div>\n <label>${t.out("Background Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Background Color")}" class="bg-color-command" style="width:45px;height:40px;border:rgb(0 0 0 / 6%) 1px solid;margin-right:4px"></button>\n </div>\n </div>\n \n <div class="flex flex-col">\n <div>\n <label>${t.out("Text Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Text Color")}" class="text-color-command" style="width:45px;height:40px;border:rgb(0 0 0 / 6%) 1px solid;margin-right:4px"></button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-row" style="margin:15px 0 0">\n <div class="flex flex-col" style="display:none;margin-right: 40px;">\n <div>\n <label>${t.out("Border Thickness")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("No Border")}" data-command="0" class="border-width-command" style="margin-right:4px">${t.out("No Border")}</button>\n <button title="1px" data-command="1" class="border-width-command" style="text-transform:none;margin-right:4px">1px</button>\n <button title="2px" data-command="2" class="border-width-command" style="text-transform:none;margin-right:4px">2px</button>\n </div>\n </div>\n \n <div class="flex flex-col">\n <div>\n <label>${t.out("Border Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Transparent")}" data-command="transparent" class="border-color-command" style="margin-right:4px">${t.out("Transparent")}</button>\n <button title="${t.out("Current")}" data-command="current" class="border-color-command" style="margin-right:4px">${t.out("Current")}</button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-row" style="margin:15px 0 0">\n <div class="flex flex-col" style="margin-right: 20px;">\n <div>\n <label>${t.out("Padding X")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="2" data-command="2" class="paddingx-command" style="margin-right:4px">2</button>\n <button title="3" data-command="3" class="paddingx-command" style="margin-right:4px">3</button>\n <button title="4" data-command="4" class="paddingx-command" style="margin-right:4px">4</button>\n <button title="5" data-command="5" class="paddingx-command" style="margin-right:4px">5</button>\n <button title="6" data-command="6" class="paddingx-command" style="margin-right:4px">6</button>\n <button title="8" data-command="8" class="paddingx-command" style="margin-right:4px">8</button>\n <button title="11" data-command="11" class="paddingx-command" style="margin-right:4px">11</button>\n <button title="12" data-command="12" class="paddingx-command" style="margin-right:4px">12</button>\n </div>\n </div>\n\n <div class="flex flex-col">\n <div>\n <label>${t.out("Padding Y")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="0" data-command="0" class="paddingy-command" style="margin-right:4px">0</button>\n <button title="1" data-command="1" class="paddingy-command" style="margin-right:4px">1</button>\n <button title="2" data-command="2" class="paddingy-command" style="margin-right:4px">2</button>\n <button title="3" data-command="3" class="paddingy-command" style="margin-right:4px">3</button>\n <button title="4" data-command="4" class="paddingy-command" style="margin-right:4px">4</button>\n <button title="5" data-command="5" class="paddingy-command" style="margin-right:4px">5</button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-col" style="margin:15px 0 0">\n <div>\n <label>${t.out("Border Radius")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("None")}" data-command="none" class="border-radius-command" style="margin-right:4px">${t.out("None")}</button>\n <button title="${t.out("SM")}" data-command="sm" class="border-radius-command" style="margin-right:4px">${t.out("SM")}</button>\n <button title="${t.out("Normal")}" data-command="normal" class="border-radius-command" style="margin-right:4px">${t.out("Normal")}</button>\n <button title="${t.out("MD")}" data-command="md" class="border-radius-command" style="margin-right:4px">${t.out("MD")}</button>\n <button title="${t.out("LG")}" data-command="lg" class="border-radius-command" style="margin-right:4px">${t.out("LG")}</button>\n <button title="${t.out("XL")}" data-command="xl" class="border-radius-command" style="margin-right:4px">${t.out("XL")}</button>\n <button title="${t.out("2XL")}" data-command="2xl" class="border-radius-command" style="margin-right:4px">${t.out("2XL")}</button>\n <button title="${t.out("3XL")}" data-command="3xl" class="border-radius-command" style="margin-right:4px">${t.out("3XL")}</button>\n <button title="${t.out("Full")}" data-command="full" class="border-radius-command" style="margin-right:4px">${t.out("Full")}</button>\n </div>\n </div>\n\n <div class="flex flex-row" style="margin:15px 0 0">\n <div class="flex flex-col" style="width:250px;margin-right:40px;">\n <div>\n <label>${t.out("Font Size")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="12" data-command="12" class="font-size-command" style="margin-right:4px">12</button>\n <button title="13" data-command="13" class="font-size-command" style="margin-right:4px">13</button>\n <button title="14" data-command="14" class="font-size-command" style="margin-right:4px">14</button>\n <button title="15" data-command="15" class="font-size-command" style="margin-right:4px">15</button>\n <button title="16" data-command="16" class="font-size-command" style="margin-right:4px">16</button>\n <button title="17" data-command="17" class="font-size-command" style="margin-right:4px">17</button>\n <button title="18" data-command="18" class="font-size-command" style="margin-right:4px">18</button>\n <button title="19" data-command="19" class="font-size-command" style="margin-right:4px">19</button>\n <button title="21" data-command="21" class="font-size-command" style="margin-right:4px">21</button>\n <button title="24" data-command="24" class="font-size-command" style="margin-right:4px">24</button>\n <button title="28" data-command="28" class="font-size-command" style="margin-right:4px">28</button>\n <button title="32" data-command="32" class="font-size-command" style="margin-right:4px">32</button>\n </div>\n </div>\n\n <div class="flex flex-col">\n <div>\n <label>${t.out("Upper/Lower")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Bold")}" class="textbold-command" style="width:38px;font-family:serif;font-size:14px;text-transform:initial;margin-right:4px">B</button>\n <button title="${t.out("Upper/Lower")}" class="textcase-command" style="width:38px;font-family:serif;font-size:14px;text-transform:initial;margin-right:4px">Aa</button>\n <button title="${t.out("Underline")}" class="textunderline-command" style="width:38px;text-decoration:underline;font-family:serif;font-size:14px;text-transform:initial;margin-right:4px">U</button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-row" style="margin:15px 0 0">\n <div class="flex flex-col">\n <div>\n <label>${t.out("Letter Spacing")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="0" data-command="normal" class="letter-spacing-command" style="margin-right:4px">0</button>\n <button title="25" data-command="wide" class="letter-spacing-command" style="margin-right:4px">25</button>\n <button title="50" data-command="wider" class="letter-spacing-command" style="margin-right:4px">50</button>\n <button title="75" data-command="75" class="letter-spacing-command" style="margin-right:4px">75</button>\n <button title="100" data-command="widest" class="letter-spacing-command" style="margin-right:4px">100</button>\n <button title="125" data-command="125" class="letter-spacing-command" style="margin-right:4px">125</button>\n <button title="150" data-command="150" class="letter-spacing-command" style="margin-right:4px">150</button>\n <button title="175" data-command="175" class="letter-spacing-command" style="margin-right:4px">175</button>\n <button title="200" data-command="200" class="letter-spacing-command" style="margin-right:4px">200</button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-row" style="margin:15px 0 0">\n <div class="flex flex-col" style="margin-right: 20px;">\n <div>\n <label>${t.out("Margin Left")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="0" data-command="0" class="ml-command" style="margin-right:4px">0</button>\n <button title="1" data-command="1" class="ml-command" style="margin-right:4px">1</button>\n <button title="2" data-command="2" class="ml-command" style="margin-right:2px">2</button>\n <button title="3" data-command="3" class="ml-command" style="margin-right:4px">3</button>\n <button title="4" data-command="4" class="ml-command" style="margin-right:4px">4</button>\n <button title="5" data-command="5" class="ml-command" style="margin-right:4px">5</button>\n </div>\n </div>\n\n <div class="flex flex-col">\n <div>\n <label>${t.out("Margin Right")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="0" data-command="0" class="mr-command" style="margin-right:4px">0</button>\n <button title="1" data-command="1" class="mr-command" style="margin-right:4px">1</button>\n <button title="2" data-command="2" class="mr-command" style="margin-right:2px">2</button>\n <button title="3" data-command="3" class="mr-command" style="margin-right:4px">3</button>\n <button title="4" data-command="4" class="mr-command" style="margin-right:4px">4</button>\n <button title="5" data-command="5" class="mr-command" style="margin-right:4px">5</button>\n </div>\n </div>\n </div>\n\n </div>\n <div id="divButtonHover" class="is-tab-content" data-group="button">\n \n <div class="flex flex-row">\n <div class="flex-col" style="margin-right: 40px;">\n <div>\n <label>${t.out("Background Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Background Color")}" class="bg-color-hover-command" style="width:45px;height:40px;border:rgb(0 0 0 / 6%) 1px solid;margin-right:4px"></button>\n </div>\n </div>\n \n <div class="flex-col">\n <div>\n <label>${t.out("Text Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Dark")}" data-command="dark" class="text-color-hover-command" style="margin-right:4px">${t.out("Dark")}</button>\n <button title="${t.out("Light")}" data-command="light" class="text-color-hover-command" style="margin-right:4px">${t.out("Light")}</button>\n <button title="${t.out("Current")}" data-command="current" class="text-color-hover-command" style="margin-right:4px">${t.out("Current")}</button>\n </div>\n </div>\n </div>\n\n <div class="flex flex-col" style="margin:15px 0 0">\n <div>\n <label>${t.out("Border Color")}</label>:\n </div>\n <div class="flex flex-row flex-wrap" style="margin-top:5px">\n <button title="${t.out("Transparent")}" data-command="transparent" class="border-color-hover-command" style="margin-right:4px">${t.out("Transparent")}</button>\n <button title="${t.out("Current")}" data-command="current" class="border-color-hover-command" style="margin-right:4px">${t.out("Current")}</button>\n </div>\n </div>\n\n </div>\n <div id="divMyButtons" class="is-tab-content" data-group="button">\n\n\n <button title="${t.out("Save Current Button")}" class="input-save" style="width:220px;position: relative;z-index: 1;">${t.out("Save Current Button")}</button>\n \n <div id="divMyButtonList"></div>\n\n </div>\n <div id="divButtonTemplates" class="is-tab-content" data-group="button">\n\n <div id="divButtonTemplateList"></div>\n\n </div>\n </div>\n </div>\n `;Om.appendHtml(i,e),n=i.querySelector(".is-modal.buttoneditor");let o,s=n.querySelector(".is-modal-close");Om.addEventListener(s,"click",(()=>{Om.removeClass(n,"active")}));const a=n.querySelector(".bg-color-command");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0),this.builder.simpleColorPicker((e=>{const t=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(t,"bg-"),Om.addClass(t,e),this.applyDefault(t),setTimeout((()=>{const e=Om.getStyle(t,"background-color");a.style.backgroundColor=e}),160),this.builder.opts.onChange()}))}));const r=n.querySelector(".text-color-command");r.addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0),this.builder.simpleColorPicker((e=>{const t=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(t,"text-"),Om.addClass(t,e),this.applyDefault(t),setTimeout((function(){const e=Om.getStyle(t,"color");r.style.backgroundColor=e}),160),this.builder.opts.onChange()}),"text")}));const l=n.querySelector(".bg-color-hover-command");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0),this.builder.simpleColorPicker((e=>{const t=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(t,"hover:bg-"),e&&Om.addClass(t,"hover:"+e),this.applyDefault(t),this.getVisibleBgColor(e,(e=>{l.style.backgroundColor=e})),this.builder.opts.onChange()}))}));document.querySelectorAll(".text-color-hover-command").forEach((e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0);const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;i.classList&&i.classList.forEach((e=>{0===e.indexOf("hover:text-")&&Om.removeClass(i,e)})),"dark"===t?Om.addClass(i,"hover:text-black"):"light"===t&&Om.addClass(i,"hover:text-white"),this.applyDefault(i);document.querySelectorAll(".text-color-hover-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".border-color-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClass(i,"border-transparent"),Om.removeClass(i,"border-current"),"transparent"===t?Om.addClass(i,"border-transparent"):"current"===t&&Om.addClass(i,"border-current"),this.applyDefault(i);document.querySelectorAll(".border-color-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".border-color-hover-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClass(i,"hover:border-transparent"),Om.removeClass(i,"hover:border-current"),"transparent"===t?Om.addClass(i,"hover:border-transparent"):"current"===t&&Om.addClass(i,"hover:border-current"),this.applyDefault(i);document.querySelectorAll(".border-color-hover-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".border-width-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClass(i,"border-0"),Om.removeClass(i,"border"),Om.removeClass(i,"border-2"),"0"===t?Om.addClass(i,"border-0"):"1"===t?Om.addClass(i,"border"):"2"===t&&Om.addClass(i,"border-2"),this.applyDefault(i);document.querySelectorAll(".border-width-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".border-radius-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClass(i,"rounded"),Om.removeClassesByPrefix(i,"rounded-"),"normal"===t?Om.addClass(i,"rounded"):Om.addClass(i,"rounded-"+t),this.applyDefault(i);document.querySelectorAll(".border-radius-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".paddingx-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"px-"),"2"===t&&Om.addClass(i,"px-2"),"3"===t&&Om.addClass(i,"px-3"),"4"===t&&Om.addClass(i,"px-4"),"5"===t&&Om.addClass(i,"px-5"),"6"===t&&Om.addClass(i,"px-6"),"8"===t&&Om.addClass(i,"px-8"),"11"===t&&Om.addClass(i,"px-11"),"12"===t&&Om.addClass(i,"px-12"),"14"===t&&Om.addClass(i,"px-14"),this.applyDefault(i);document.querySelectorAll(".paddingx-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".paddingy-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"py-"),"0"===t&&Om.addClass(i,"py-0"),"1"===t&&Om.addClass(i,"py-1"),"2"===t&&Om.addClass(i,"py-2"),"3"===t&&Om.addClass(i,"py-3"),"4"===t&&Om.addClass(i,"py-4"),"5"===t&&Om.addClass(i,"py-5"),"6"===t&&Om.addClass(i,"py-6"),this.applyDefault(i);document.querySelectorAll(".paddingy-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".font-size-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"size-"),Om.addClass(i,"size-"+t),this.applyDefault(i);document.querySelectorAll(".font-size-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))}));n.querySelector(".textcase-command").addEventListener("click",(()=>{this.builder.uo.saveForUndo();const e=this.builder.activeButton||this.builder.activeLinkButton;Om.hasClass(e,"uppercase")?Om.removeClass(e,"uppercase"):Om.addClass(e,"uppercase"),this.applyDefault(e);const t=n.querySelector(".textcase-command");Om.hasClass(t,"on")?Om.removeClass(t,"on"):Om.addClass(t,"on"),this.builder.opts.onChange()}));n.querySelector(".textunderline-command").addEventListener("click",(()=>{this.builder.uo.saveForUndo();const e=this.builder.activeButton||this.builder.activeLinkButton;Om.hasClass(e,"underline")?(Om.removeClass(e,"underline"),Om.addClass(e,"no-underline")):(Om.removeClass(e,"no-underline"),Om.addClass(e,"underline")),this.applyDefault(e);const t=n.querySelector(".textunderline-command");Om.hasClass(t,"on")?Om.removeClass(t,"on"):Om.addClass(t,"on"),this.builder.opts.onChange()}));n.querySelector(".textbold-command").addEventListener("click",(()=>{this.builder.uo.saveForUndo();const e=this.builder.activeButton||this.builder.activeLinkButton;Om.hasClass(e,"font-semibold")?(Om.removeClass(e,"font-semibold"),Om.addClass(e,"font-normal")):(Om.removeClass(e,"font-normal"),Om.addClass(e,"font-semibold")),this.applyDefault(e);const t=n.querySelector(".textbold-command");Om.hasClass(t,"on")?Om.removeClass(t,"on"):Om.addClass(t,"on"),this.builder.opts.onChange()})),o=document.querySelectorAll(".letter-spacing-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"tracking-"),Om.addClass(i,"tracking-"+t),this.applyDefault(i);document.querySelectorAll(".letter-spacing-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".ml-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"ml-"),Om.addClass(i,"ml-"+t),this.applyDefault(i);document.querySelectorAll(".ml-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))})),o=document.querySelectorAll(".mr-command"),Array.prototype.forEach.call(o,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-command"),i=this.builder.activeButton||this.builder.activeLinkButton;Om.removeClassesByPrefix(i,"mr-"),Om.addClass(i,"mr-"+t),this.applyDefault(i);document.querySelectorAll(".mr-command").forEach((e=>{Om.removeClass(e,"on")})),Om.addClass(e,"on"),this.builder.opts.onChange()}))}));n.querySelector(".input-save").addEventListener("click",(()=>{const e=this.builder.activeButton||this.builder.activeLinkButton;let t=[];null!=localStorage.getItem("_savedbuttons")&&(t=JSON.parse(localStorage.getItem("_savedbuttons"))),Om.removeClass(e,"active"),Om.removeClass(e,"elm-active"),t.push({id:t.length,className:e.className}),localStorage.setItem("_savedbuttons",JSON.stringify(t)),this.renderMyButtons()}))}this.buttonModal=n}open(){Om.addClass(this.buttonModal,"active"),this.realtime(),this.renderMyButtons(),this.renderTemplates()}realtime(){const e=this.builder.activeButton||this.builder.activeLinkButton,t=this.buttonModal.querySelector(".bg-color-command");let i;t.style.backgroundColor="";const n=this.buttonModal.querySelector(".text-color-command");n.style.backgroundColor="";const o=this.buttonModal.querySelector(".bg-color-hover-command");let s;o.style.backgroundColor="",e.classList&&e.classList.forEach((e=>{0===e.indexOf("hover:bg-")&&this.getVisibleBgColor(e.replace("hover:",""),(e=>{o.style.backgroundColor=e})),0===e.indexOf("bg-")&&this.getVisibleBgColor(e,(e=>{t.style.backgroundColor=e})),0===e.indexOf("text-")&&this.getVisibleTextColor(e,(e=>{n.style.backgroundColor=e,i=e}))})),i||(i=Om.getStyle(e,"color"),n.style.backgroundColor=i),s=this.buttonModal.querySelector(".text-color-hover-command.on"),Om.removeClass(s,"on"),Om.hasClass(e,"hover:text-black")?(s=this.buttonModal.querySelector('.text-color-hover-command[data-command="dark"]'),Om.addClass(s,"on")):Om.hasClass(e,"hover:text-white")?(s=this.buttonModal.querySelector('.text-color-hover-command[data-command="light"]'),Om.addClass(s,"on")):(s=this.buttonModal.querySelector('.text-color-hover-command[data-command="current"]'),Om.addClass(s,"on")),s=this.buttonModal.querySelector(".border-color-hover-command.on"),Om.removeClass(s,"on"),Om.hasClass(e,"hover:border-transparent")?(s=this.buttonModal.querySelector('.border-color-hover-command[data-command="transparent"]'),Om.addClass(s,"on")):Om.hasClass(e,"hover:border-current")&&(s=this.buttonModal.querySelector('.border-color-hover-command[data-command="current"]'),Om.addClass(s,"on")),s=this.buttonModal.querySelector(".border-color-command.on"),Om.removeClass(s,"on"),Om.hasClass(e,"border-transparent")?(s=this.buttonModal.querySelector('.border-color-command[data-command="transparent"]'),Om.addClass(s,"on")):Om.hasClass(e,"border-current")&&(s=this.buttonModal.querySelector('.border-color-command[data-command="current"]'),Om.addClass(s,"on")),s=this.buttonModal.querySelector(".textcase-command"),Om.hasClass(e,"uppercase")?Om.addClass(s,"on"):Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".textunderline-command"),Om.hasClass(e,"underline")?Om.addClass(s,"on"):Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".font-size-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".paddingx-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".paddingy-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".border-radius-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".letter-spacing-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".ml-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".mr-command.on"),Om.removeClass(s,"on"),s=this.buttonModal.querySelector(".textbold-command"),Om.hasClass(e,"font-semibold")?Om.addClass(s,"on"):Om.removeClass(s,"on"),Om.hasClass(e,"rounded")&&(s=this.buttonModal.querySelector('.border-radius-command[data-command="normal"]'),Om.addClass(s,"on")),e.classList&&e.classList.forEach((e=>{if(0===e.indexOf("size-")){let t=e.replace("size-",""),i=this.buttonModal.querySelector(`.font-size-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("px-")){let t=e.replace("px-",""),i=this.buttonModal.querySelector(`.paddingx-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("py-")){let t=e.replace("py-",""),i=this.buttonModal.querySelector(`.paddingy-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("rounded-")){let t=e.replace("rounded-",""),i=this.buttonModal.querySelector(`.border-radius-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("tracking-")){let t=e.replace("tracking-",""),i=this.buttonModal.querySelector(`.letter-spacing-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("ml-")){let t=e.replace("ml-",""),i=this.buttonModal.querySelector(`.ml-command[data-command="${t}"]`);Om.addClass(i,"on")}if(0===e.indexOf("mr-")){let t=e.replace("mr-",""),i=this.buttonModal.querySelector(`.mr-command[data-command="${t}"]`);Om.addClass(i,"on")}}))}hide(){Om.removeClass(this.buttonModal,"active")}getVisibleBgColor(e,t){const i=document.createElement("div");i.className=e,this.builderStuff.appendChild(i),t(Om.getStyle(i,"background-color")),this.builderStuff.removeChild(i)}getVisibleTextColor(e,t){const i=document.createElement("div");i.className=e,this.builderStuff.appendChild(i),t(Om.getStyle(i,"color")),this.builderStuff.removeChild(i)}renderTemplates(){const e=[{text:"Order Now",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid rounded-full border-current ml-1 mr-1 px-8 py-2 text-pink-600 hover:text-white bg-white hover:bg-pink-500 hover:border-transparent size-18 font-semibold tracking-75"},{text:"Explore",className:"transition-all inline-block cursor-pointer no-underline font-semibold border-2 border-solid tracking-200 rounded-full border-current size-12 ml-1 mr-1 py-0 px-3 text-indigo-600 hover:text-white bg-white hover:bg-indigo-500 hover:border-transparent"},{text:"View Demo",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid border-transparent ml-1 mr-1 hover:border-transparent rounded bg-gray-200 hover:bg-gray-300 size-16 py-1 px-5 font-normal tracking-wide text-gray-800"},{text:"Get Started",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid ml-1 mr-1 rounded size-16 text-black py-1 px-5 font-normal border-current hover: hover:border-current tracking-wide"},{text:"Create",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid border-transparent ml-1 mr-1 hover:border-transparent size-12 rounded bg-yellow-300 text-black bg-white hover:bg-yellow-400 font-normal px-3 py-0 tracking-75"},{text:"Hello!",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid border-current ml-1 mr-1 hover:text-white hover:border-transparent rounded-lg size-24 font-normal py-2 tracking-150 px-12 text-orange-500 bg-white hover:bg-orange-500"},{text:"Build",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid border-transparent ml-1 mr-1 text-violet-700 hover:border-transparent hover:bg-cyan-200 rounded uppercase size-12 tracking-75 px-4 py-1 font-semibold bg-cyan-200"},{text:"Contact",className:"transition-all inline-block border-2 border-solid rounded-none no-underline hover:border-transparent ml-1 mr-1 cursor-pointer bg-white text-red-600 border-current hover:bg-red-600 hover:text-white uppercase size-12 font-semibold py-2 px-6 tracking-150"},{text:"Read More",className:"transition-all inline-block cursor-pointer border-2 border-solid border-transparent ml-1 mr-1 hover:border-transparent rounded size-16 py-1 px-5 font-normal tracking-wide text-gray-800 underline"},{text:"Send a Message",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid ml-1 mr-1 rounded tracking-75 uppercase px-6 py-2 size-12 hover:border-transparent font-semibold bg-gray-200 border-transparent hover:bg-gray-300 text-gray-800"},{text:"Our Works",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid ml-1 mr-1 rounded tracking-75 uppercase px-6 py-2 size-12 border-current hover:text-white hover:border-transparent hover:bg-indigo-500 text-indigo-500 font-semibold"},{text:"Read More",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid mr-1 tracking-75 uppercase py-2 size-14 px-8 rounded font-normal ml-1 border-transparent bg-gray-200 hover:bg-gray-300 hover:border-transparent text-gray-800"},{text:"Get a Quote",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid mr-1 tracking-75 uppercase py-2 size-14 px-8 border-current rounded text-black hover:border-current font-normal ml-1"},{text:"Try Demo",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid border-transparent hover:border-transparent bg-gray-200 hover:bg-gray-300 size-16 text-black font-normal uppercase py-3 px-11 tracking-75 mr-3 ml-0 rounded-md"},{text:"Buy Now",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid size-16 tracking-75 font-normal uppercase px-11 py-3 hover:text-white hover:bg-teal-500 bg-teal-400 text-white border-transparent hover:border-transparent ml-0 mr-2 rounded-md"},{text:"Play",className:"transition-all inline-block cursor-pointer no-underline border-2 border-solid ml-1 mr-1 size-16 text-black tracking-75 font-normal uppercase px-11 border-current hover:border-current py-3 rounded"}];let t="";for(let i=0;i<e.length;i++)t+=`<a class="${e[i].className}" href="#">${e[i].text}</a>`;document.querySelector("#divButtonTemplateList").innerHTML=t;let i=this.buttonModal.querySelectorAll("#divButtonTemplateList a");Array.prototype.forEach.call(i,(e=>{e.addEventListener("click",(t=>{this.builder.uo.saveForUndo();const i=this.builder.activeButton||this.builder.activeLinkButton;return this.applyStyles(i,e),this.cleanupOldClasses(i),this.builder.opts.onChange(),t.preventDefault(),!1}))}))}renderMyButtons(){if(!localStorage.getItem("_savedbuttons"))return;let e=JSON.parse(localStorage.getItem("_savedbuttons")),t="";for(let i=0;i<e.length;i++)t+=`<a data-id="${e[i].id}" class="${e[i].className}" href="#">Button<span class="is-button-remove"><svg class="is-icon-flex" style="fill:rgba(255, 255, 266, 1);width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></span></a>`;document.querySelector("#divMyButtonList").innerHTML=t;let i=this.buttonModal.querySelectorAll("#divMyButtonList a");Array.prototype.forEach.call(i,(e=>{e.addEventListener("click",(t=>{this.builder.uo.saveForUndo();const i=this.builder.activeButton||this.builder.activeLinkButton;var n=this.buttonModal.querySelectorAll("#divMyButtonList a");return Array.prototype.forEach.call(n,(e=>{Om.removeClass(e,"active")})),Om.addClass(e,"active"),this.applyStyles(i,e),this.cleanupOldClasses(i),this.builder.opts.onChange(),t.preventDefault(),!1}))})),i=this.buttonModal.querySelectorAll(".is-button-remove"),Array.prototype.forEach.call(i,(e=>{e.addEventListener("click",(e=>{const t=e.target.closest("a").getAttribute("data-id");if(null!=localStorage.getItem("_savedbuttons")){let i=JSON.parse(localStorage.getItem("_savedbuttons"));for(let n=0;n<i.length;n++)if(i[n].id===parseInt(t)){i.splice(n,1);for(let e=0;e<i.length;e++)i[e].id=e;return localStorage.setItem("_savedbuttons",JSON.stringify(i)),this.renderMyButtons(),e.stopImmediatePropagation(),e.preventDefault(),!1}}return e.stopImmediatePropagation(),e.preventDefault(),!1}))}))}applyStyles(e,t){e.className=t.className.replace(" active ","").replace("active ","").replace(" active",""),this.applyDefault(e),this.realtime()}applyDefault(e){Om.addClass(e,"transition-all"),Om.addClass(e,"inline-block"),Om.addClass(e,"cursor-pointer"),Om.addClass(e,"border-2"),Om.addClass(e,"border-solid"),e.removeAttribute("style"),e.removeAttribute("onmouseover"),e.removeAttribute("onmouseout"),e.removeAttribute("data-hover-bgcolor"),e.removeAttribute("data-hover-color"),e.removeAttribute("data-hover-bordercolor")}cleanupOldClasses(e){Om.removeClass(e,"is-btn-ghost1"),Om.removeClass(e,"is-btn-ghost2"),Om.removeClass(e,"is-upper"),Om.removeClass(e,"is-btn-small"),Om.removeClass(e,"is-btn"),Om.removeClass(e,"is-rounded-30"),Om.removeClass(e,"btn-primary"),Om.removeClass(e,"btn-default"),Om.removeClass(e,"btn")}}const Nm=new ni;class Bm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.builderStuff=i,this.buttonEditor=new Rm(e);let n=i.querySelector("#divLinkTool");if(!n){let e=`<div id="divLinkTool" class="is-tool">\n <button title="${t.out("Edit Button")}" data-title="${t.out("Edit Button")}" class="link-button-edit" style="display:none;"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-android-create"></use></svg></button>\n <button title="${t.out("Link")}" data-title="${t.out("Link")}" class="link-edit"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-link"></use></svg></button>\n <button title="${t.out("Duplicate")}" data-title="${t.out("Duplicate")}" class="link-duplicate"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>\n <button title="${t.out("Delete")}" data-title="${t.out("Delete")}" class="link-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n <div class="is-modal createlink">\n <div class="is-modal-content"> \n <label for="inpCreateLinkUrl">${t.out("Link")}:</label>\n <div class="link-src">\n <input id="inpCreateLinkUrl" class="input-url" type="text"/>\n <button title="${t.out("Select")}" class="input-select"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n </div>\n <label style="display:block;margin-top:14px;">\n <input class="input-newwindow" type="checkbox" /> ${t.out("Open new window")}&nbsp;\n </label>\n <label id="lblOpenLightbox" style="${this.builder.useLightbox?"display:block":"display:none"};margin-top:5px;margin-bottom:14px;">\n <input class="input-openlightbox" type="checkbox" /> ${t.out("Open in a lightbox (for image, video or Youtube)")}&nbsp;\n </label>\n\n <label id="lblCreateLinkText" for="inpCreateLinkText" style="margin-top:14px;display:block">${t.out("Text")}:</label>\n <input id="inpCreateLinkText" class="input-text" type="text" style="width:100%;"/>\n \n <label for="inpCreateLinkTitle" style="margin-top:14px;display:block">${t.out("Title")}:</label>\n <input id="inpCreateLinkTitle" class="input-title" type="text" style="width:100%;border-top: none;"/>\n \n <div style="text-align:right;margin-top:14px;">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>\n \n <div class="is-modal fileselect">\n <div class="is-modal-content" style="max-width:800px;height:80%;padding:0;">\n <iframe style="width:100%;height:100%;border: none;display: block;" src="about:blank"></iframe>\n </div>\n </div>\n `;Nm.appendHtml(i,e),n=i.querySelector("#divLinkTool");let o=n.querySelector(".link-edit");Nm.addEventListener(o,"click",(()=>{this.editLink()}));let s=n.querySelector(".link-button-edit");Nm.addEventListener(s,"click",(()=>{this.editButton()}));let a=n.querySelector(".link-duplicate");Nm.addEventListener(a,"click",(()=>{if(this.builder.activeLink)if(this.builder.uo.saveForUndo(),this.builder.opts.emailMode){for(var e=this.builder.activeLink;"table"!==e.tagName.toLowerCase()&&!Nm.hasClass(e,"button");)e=e.parentNode;let t=e=e.parentNode;const i=t.cloneNode(!0);let n=i.querySelector(".icon-active");n&&Nm.removeClass(n,"icon-active"),i.style.paddingRight="15px",t.parentNode.insertBefore(i,t),this.showTool(this.builder.activeLink)}else{const e=this.builder.activeLink.cloneNode(!0);let t=e.querySelector(".icon-active");t&&Nm.removeClass(t,"icon-active"),this.builder.activeLink.parentNode.insertBefore(e,this.builder.activeLink),this.showTool(this.builder.activeLink)}}));let r=n.querySelector(".link-remove");Nm.addEventListener(r,"click",(()=>{if(this.builder.uo.saveForUndo(),this.builder.opts.emailMode){for(var e=this.builder.activeLink;"table"!==e.tagName.toLowerCase()&&!Nm.hasClass(e,"button");)e=e.parentNode;let t=e=e.parentNode;t&&t.parentNode.removeChild(t),n.style.display=""}else this.builder.activeLink&&this.builder.activeLink.parentNode.removeChild(this.builder.activeLink),n.style.display="";this.builder.activeLink.querySelector(".icon-active")&&(this.builder.activeIcon=null)}));let l=this.builderStuff.querySelector(".is-modal.createlink"),d=l.querySelector(".input-ok");Nm.addEventListener(d,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeLink;if(e){let t=l.querySelector(".input-url").value,n=l.querySelector(".input-title").value,o=l.querySelector(".input-text").value;if(""===o&&(o=t),""!==t)e.setAttribute("href",t),l.querySelector(".input-newwindow").checked?e.setAttribute("target","_blank"):e.removeAttribute("target"),l.querySelector(".input-openlightbox").checked?Nm.addClass(e,"is-lightbox"):Nm.removeClass(e,"is-lightbox"),this.builder.activeIcon||(e.innerHTML=o),e.setAttribute("title",n);else{var i=e;if(Nm.selectElementContents(i),document.execCommand("unlink",!1,null),this.builder.activeIcon){this.builder.activeIcon.setAttribute("dummy-sel",""),e.outerHTML=this.builder.activeIcon.outerHTML;let t=document.querySelector("[dummy-sel]");t.removeAttribute("dummy-sel"),this.builder.activeIcon=t,this.builder.activeIcon.click()}}this.builder.opts.onChange()}else{t.restoreSelection();let e=l.querySelector(".input-url").value,i=l.querySelector(".input-title").value,n=l.querySelector(".input-text").value;if(""===n&&(n=e),""!==e){let o;if(this.builder.uo.saveForUndo(),this.builder.activeIcon){let n=this.builder.activeIcon.outerHTML;this.builder.activeIcon.outerHTML=`<a class="__dummy" href="${e}">${n}</a>`,o=document.querySelector(".__dummy"),Nm.removeClass(o,"__dummy"),l.querySelector(".input-newwindow").checked?o.setAttribute("target","_blank"):o.removeAttribute("target"),l.querySelector(".input-openlightbox").checked?Nm.addClass(o,"is-lightbox"):Nm.removeClass(o,"is-lightbox"),o.setAttribute("title",i),this.builder.activeIcon=o.childNodes[0],t.appleMobile||(this.builder.activeIcon.click(),Nm.selectElementContents(this.builder.activeIcon),document.selection?document.selection.empty():window.getSelection().removeAllRanges())}else{document.execCommand("createLink",!1,"http://dummy");let o=document.querySelector('a[href="http://dummy"]');o.setAttribute("href",e),o.innerHTML=n,l.querySelector(".input-newwindow").checked?o.setAttribute("target","_blank"):o.removeAttribute("target"),l.querySelector(".input-openlightbox").checked?Nm.addClass(o,"is-lightbox"):Nm.removeClass(o,"is-lightbox"),o.setAttribute("title",i),t.appleMobile||Nm.selectElementContents(o)}}t.saveSelection(),this.builder.opts.onChange(),this.builder.opts.onRender()}t.hideModal(l)}));let c=l.querySelector(".input-cancel");Nm.addEventListener(c,"click",(()=>{t.hideModal(l),t.appleMobile||t.restoreSelection()}))}this.linkTool=n}click(e,t){let i=!1;e.hasAttribute("data-html")&&(i=!0);let n=!1;e.hasAttribute("data-noedit")&&(n=!0);let o=!1;e.hasAttribute("data-protected")&&(o=!0);const s=t.target;if(this.builder.activeLink=null,this.builder.activeLinkButton=null,"a"!==s.tagName.toLowerCase()&&!Nm.parentsHasTag(s,"a")||i||n||o)this.hideTool();else{if(s.childNodes.length>0&&s.childNodes[0].tagName&&"i"===s.childNodes[0].tagName.toLowerCase()&&1===s.childNodes.length&&""===s.childNodes[0].innerHTML){const e=document.querySelectorAll(".icon-active");Array.prototype.forEach.call(e,(e=>{Nm.removeClass(e,"icon-active")})),Nm.addClass(s.childNodes[0],"icon-active"),Nm.selectElementContents(s.childNodes[0]),this.builder.activeIcon=s.childNodes[0]}if("img"===s.tagName.toLowerCase())return;let e,i;if("a"===s.tagName.toLowerCase())e=s;else{let t=s;for(;"a"!==t.tagName.toLowerCase();)t=t.parentNode;e=t}this.builder.activeLink=e;let n=Nm.getStyle(e,"display");"inline-block"!==n&&"block"!==n||(i=!0),i&&(this.builder.activeLinkButton=e),this.showTool(e),t.preventDefault()}}showTool(e){const t=this.linkTool;"inline-block"===Nm.getStyle(e,"display")||this.builder.activeIcon?(t.querySelector(".link-duplicate").style.display="block",t.querySelector(".link-remove").style.display="block"):(t.querySelector(".link-duplicate").style.display="none",t.querySelector(".link-remove").style.display="none"),this.builder.useButtonPlugin?t.querySelector(".link-button-edit").style.display="none":e&&this.builder.activeLinkButton?t.querySelector(".link-button-edit").style.display="block":t.querySelector(".link-button-edit").style.display="none",Nm.hasClass(this.buttonEditor.buttonModal,"active")&&this.buttonEditor.realtime();let i=e.getBoundingClientRect().top;this.builder.activeIcon&&(i=this.builder.activeIcon.getBoundingClientRect().top);const n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;t.style.top=i-s+window.pageYOffset-3+"px",t.style.left=n+e.offsetWidth*this.builder.opts.zoom-o+"px"}hideTool(){this.linkTool.style.display=""}editButton(){this.buttonEditor.open()}createLink(){const e=new ii(this.builder);let t;if(this.builder.activeLink)t=this.builder.activeLink;else{let i;try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,i=3===e.nodeType?e.parentNode:e):document.selection&&(e=document.selection.createRange(),i=document.selection.createRange().parentElement())}catch(e){if(!this.builder.activeIcon)return;i=this.builder.activeIcon}if("a"===i.nodeName.toLowerCase())t=i;else{let e=i;for(;"a"!==e.nodeName.toLowerCase()&&"BODY"!==e.tagName&&"HTML"!==e.tagName;)e.parentNode&&(e=e.parentNode);"a"===e.nodeName.toLowerCase()&&(t=e)}t&&(this.builder.activeLink=t,"i"===i.nodeName.toLowerCase()&&""===i.innerHTML||(Nm.selectElementContents(this.builder.activeLink),e.saveSelection()))}var i=Nm.getSelected();let n=this.builderStuff.querySelector(".is-modal.createlink");if(this.builder.opts.onFileSelectClick||""!==this.builder.opts.fileselect){n.querySelector(".input-select").style.display="block";let t=n.querySelector(".input-select");Nm.addEventListener(t,"click",(t=>{if(this.builder.opts.onFileSelectClick)this.builder.opts.onFileSelectClick({targetInput:n.querySelector(".input-url"),theTrigger:n.querySelector(".input-select")});else{let t=this.builderStuff.querySelector(".is-modal.fileselect");this.builder.opts.assetRefresh&&(t.querySelector("iframe").src=this.builder.opts.fileselect,this.builder.opts.assetRefresh=!1),"about:blank"===t.querySelector("iframe").src&&(t.querySelector("iframe").src=this.builder.opts.fileselect),e.showModal(t,!1,null,!1)}this.builder.targetInput=n.querySelector(".input-url"),this.builder.targetCallback=null,this.builder.targetAssetType="all",t.preventDefault(),t.stopImmediatePropagation()}))}else n.querySelector(".input-select").style.display="none";if(n.querySelector(".input-url").value="",n.querySelector(".input-newwindow").checked=!1,n.querySelector(".input-openlightbox").checked=!1,n.querySelector(".input-title").value="",n.querySelector(".input-text").value="",n.querySelector("#lblCreateLinkText").style.display="",n.querySelector("#inpCreateLinkText").style.display="",t){let e=t.getAttribute("href"),i=t.getAttribute("target"),o=t.getAttribute("title"),s=t.innerHTML;n.querySelector(".input-url").value=e,n.querySelector(".input-newwindow").checked="_blank"===i,Nm.hasClass(t,"is-lightbox")?n.querySelector(".input-openlightbox").checked=!0:n.querySelector(".input-openlightbox").checked=!1,n.querySelector(".input-title").value=o,n.querySelector(".input-text").value=s}else n.querySelector(".input-text").value=i,this.builder.activeIcon&&(n.querySelector("#lblCreateLinkText").style.display="none",n.querySelector("#inpCreateLinkText").style.display="none");e.showModal(n,!0,(()=>{e.appleMobile||e.restoreSelection()}),!0),n.querySelector(".input-url").focus()}editLink(){const e=new ii(this.builder);let t=this.builder.activeLink,i=this.builderStuff.querySelector(".is-modal.createlink"),n=t.querySelector("i");if(i.querySelector("#lblCreateLinkText").style.display="",i.querySelector("#inpCreateLinkText").style.display="",1===t.childElementCount&&n&&Nm.hasClass(n,"icon")&&(i.querySelector("#lblCreateLinkText").style.display="none",i.querySelector("#inpCreateLinkText").style.display="none"),this.builder.opts.onFileSelectClick||""!==this.builder.opts.fileselect){i.querySelector(".input-select").style.display="block",i.querySelector(".input-url").style.width="444px";let t=i.querySelector(".input-select");Nm.addEventListener(t,"click",(()=>{if(this.builder.opts.onFileSelectClick)this.builder.opts.onFileSelectClick({targetInput:i.querySelector(".input-url"),theTrigger:i.querySelector(".input-select")});else{let t=this.builderStuff.querySelector(".is-modal.fileselect");this.builder.opts.assetRefresh&&(t.querySelector("iframe").src=this.builder.opts.fileselect,this.builder.opts.assetRefresh=!1),"about:blank"===t.querySelector("iframe").src&&(t.querySelector("iframe").src=this.builder.opts.fileselect),e.showModal(t,!1,null,!1)}this.builder.targetInput=i.querySelector(".input-url"),this.builder.targetCallback=null,this.builder.targetAssetType="all"}))}else i.querySelector(".input-select").style.display="none",i.querySelector(".input-url").style.width="100%";let o=t.getAttribute("href"),s=t.getAttribute("target"),a=t.getAttribute("title"),r=t.innerHTML;i.querySelector(".input-url").value=o,i.querySelector(".input-newwindow").checked="_blank"===s,Nm.hasClass(t,"is-lightbox")?i.querySelector(".input-openlightbox").checked=!0:i.querySelector(".input-openlightbox").checked=!1,i.querySelector(".input-title").value=a,i.querySelector(".input-text").value=r,e.showModal(i,!0,null,!0),i.querySelector(".input-url").focus()}}const Im=new ni;class Dm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.builderStuff=i,this.buttonEditor=new Rm(e);let n=i.querySelector("#divButtonTool");if(!n){let e=`<div id="divButtonTool" class="is-tool">\n <button title="${t.out("Edit Button")}" data-title="${t.out("Edit Button")}" class="button-edit"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-android-create"></use></svg></button>\n <button title="${t.out("Duplicate")}" data-title="${t.out("Duplicate")}" class="button-duplicate"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>\n <button title="${t.out("Delete")}" data-title="${t.out("Delete")}" class="button-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n `;Im.appendHtml(i,e),n=i.querySelector("#divButtonTool");let o=n.querySelector(".button-edit");Im.addEventListener(o,"click",(()=>{this.editButton()}));let s=n.querySelector(".button-duplicate");Im.addEventListener(s,"click",(()=>{if(this.builder.activeButton){this.builder.uo.saveForUndo();const e=this.builder.activeButton.cloneNode(!0);let t=e.querySelector(".elm-active");t&&Im.removeClass(t,"elm-active"),this.builder.activeButton.parentNode.insertBefore(e,this.builder.activeButton),this.showTool(this.builder.activeButton)}}));let a=n.querySelector(".button-remove");Im.addEventListener(a,"click",(()=>{this.builder.uo.saveForUndo(),this.builder.activeButton&&this.builder.activeButton.parentNode.removeChild(this.builder.activeButton),n.style.display="",this.builder.activeButton=null}))}this.buttonTool=n}click(e,t){let i=!1;e.hasAttribute("data-html")&&(i=!0);let n=!1;e.hasAttribute("data-noedit")&&(n=!0);let o=!1;e.hasAttribute("data-protected")&&(o=!0);const s=t.target;this.builder.activeButton=null;const a=s.closest("button");!a||i||n||o?this.hideTool():(this.builder.activeButton=a,this.showTool(a),t.preventDefault())}editButton(){this.buttonEditor.open()}showTool(e){Im.hasClass(this.buttonEditor.buttonModal,"active")&&this.buttonEditor.realtime();const t=this.buttonTool;let i=e.getBoundingClientRect().top;const n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;t.style.top=i-s+window.pageYOffset-3+"px",t.style.left=n+e.offsetWidth*this.builder.opts.zoom-o+"px"}hideTool(){this.buttonTool.style.display=""}}const $m=new ni;class Pm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector(".is-spacer-tool");if(!n){let e=`\n <div id="divSpacerTool" class="is-tool is-spacer-tool">\n <button title="${t.out("Decrease")}" data-value="-"><svg class="is-icon-flex"><use xlink:href="#ion-ios-minus-empty"></use></svg></button>\n <button title="${t.out("Increase")}" data-value="+" style="border-left: none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n </div>\n `;$m.appendHtml(i,e),n=i.querySelector(".is-spacer-tool");const o=n.querySelectorAll("button");Array.prototype.forEach.call(o,(e=>{$m.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-value");let i=this.builder.activeSpacer;"-"===t?$m.hasClass(i,"height-300")?($m.removeClass(i,"height-300"),$m.addClass(i,"height-280")):$m.hasClass(i,"height-280")?($m.removeClass(i,"height-280"),$m.addClass(i,"height-260")):$m.hasClass(i,"height-260")?($m.removeClass(i,"height-260"),$m.addClass(i,"height-240")):$m.hasClass(i,"height-240")?($m.removeClass(i,"height-240"),$m.addClass(i,"height-220")):$m.hasClass(i,"height-220")?($m.removeClass(i,"height-220"),$m.addClass(i,"height-200")):$m.hasClass(i,"height-200")?($m.removeClass(i,"height-200"),$m.addClass(i,"height-180")):$m.hasClass(i,"height-180")?($m.removeClass(i,"height-180"),$m.addClass(i,"height-160")):$m.hasClass(i,"height-160")?($m.removeClass(i,"height-160"),$m.addClass(i,"height-140")):$m.hasClass(i,"height-140")?($m.removeClass(i,"height-140"),$m.addClass(i,"height-120")):$m.hasClass(i,"height-120")?($m.removeClass(i,"height-120"),$m.addClass(i,"height-100")):$m.hasClass(i,"height-100")?($m.removeClass(i,"height-100"),$m.addClass(i,"height-80")):$m.hasClass(i,"height-80")?($m.removeClass(i,"height-80"),$m.addClass(i,"height-60")):$m.hasClass(i,"height-60")?($m.removeClass(i,"height-60"),$m.addClass(i,"height-40")):$m.hasClass(i,"height-40")&&($m.removeClass(i,"height-40"),$m.addClass(i,"height-20")):$m.hasClass(i,"height-20")?($m.removeClass(i,"height-20"),$m.addClass(i,"height-40")):$m.hasClass(i,"height-40")?($m.removeClass(i,"height-40"),$m.addClass(i,"height-60")):$m.hasClass(i,"height-60")?($m.removeClass(i,"height-60"),$m.addClass(i,"height-80")):$m.hasClass(i,"height-80")?($m.removeClass(i,"height-80"),$m.addClass(i,"height-100")):$m.hasClass(i,"height-100")?($m.removeClass(i,"height-100"),$m.addClass(i,"height-120")):$m.hasClass(i,"height-120")?($m.removeClass(i,"height-120"),$m.addClass(i,"height-140")):$m.hasClass(i,"height-140")?($m.removeClass(i,"height-140"),$m.addClass(i,"height-160")):$m.hasClass(i,"height-160")?($m.removeClass(i,"height-160"),$m.addClass(i,"height-180")):$m.hasClass(i,"height-180")?($m.removeClass(i,"height-180"),$m.addClass(i,"height-200")):$m.hasClass(i,"height-200")?($m.removeClass(i,"height-200"),$m.addClass(i,"height-220")):$m.hasClass(i,"height-220")?($m.removeClass(i,"height-220"),$m.addClass(i,"height-240")):$m.hasClass(i,"height-240")?($m.removeClass(i,"height-240"),$m.addClass(i,"height-260")):$m.hasClass(i,"height-260")?($m.removeClass(i,"height-260"),$m.addClass(i,"height-280")):$m.hasClass(i,"height-280")&&($m.removeClass(i,"height-280"),$m.addClass(i,"height-300")),this.showTool(i),this.builder.opts.onChange(),this.builder.opts.onRender()}))}))}this.spacerTool=n}click(e){const t=e.target;$m.hasClass(t,"spacer")?(this.builder.activeSpacer=t,document.selection?document.selection.empty():window.getSelection().removeAllRanges(),this.showTool(t)):this.hideTool()}showTool(e){const t=e.getBoundingClientRect().top+window.pageYOffset,i=e.getBoundingClientRect().left;this.spacerTool.style.display="flex";const n=this.spacerTool.offsetWidth,o=this.spacerTool.offsetHeight;this.spacerTool.style.top=t+(e.offsetHeight*this.builder.opts.zoom-o)/2+"px",this.spacerTool.style.left=i+(e.offsetWidth*this.builder.opts.zoom-n)/2+"px"}hideTool(){this.spacerTool.style.display=""}}const Hm=new ni;class zm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n,o=i.querySelector(".is-module-tool");if(!o){let e=`\n <div class="is-tool is-module-tool">\n <button title="${t.out("Settings")}" data-title="${t.out("Settings")}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n\n <input id="hidContentModuleCode" type="hidden" />\n <input id="hidContentModuleSettings" type="hidden" />\n \n <div class="is-modal custommodule">\n <div class="is-modal-content">\n <div class="is-modal-bar is-draggable">\n ${t.out("Module Settings")}\n <div class="is-modal-close" ole="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n <iframe style="position: absolute;top: 0;left: 0;width:100%;height:100%;border:none;border-bottom:90px solid transparent;border-top:40px solid transparent;margin:0;box-sizing:border-box;" src="about:blank"></iframe>\n <div style="width:100%;height:90px;padding: 20px; box-sizing: border-box;position:absolute;left:0;bottom:0;overflow:hidden;text-align:right">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div> \n `;Hm.appendHtml(i,e),o=i.querySelector(".is-module-tool"),n=i.querySelector(".is-modal.custommodule");let s=o.querySelector("button");Hm.addEventListener(s,"click",(()=>{let e=this.builder.activeModule;Hm.removeAttributes(document.querySelectorAll("[data-module-active]"),"data-module-active"),e.setAttribute("data-module-active","1");var t=e.getAttribute("data-module"),i=e.getAttribute("data-module-desc");n.querySelector(".is-modal-bar").innerHTML=i?i+'<div class="is-modal-close" style="z-index:1;width:32px;height:32px;position:absolute;top:0px;right:0px;box-sizing:border-box;padding:0;line-height:32px;font-size: 12px;text-align:center;cursor:pointer;">&#10005;</div>':this.util.out("Module Settings")+'<div class="is-modal-close" style="z-index:1;width:32px;height:32px;position:absolute;top:0px;right:0px;box-sizing:border-box;padding:0;line-height:32px;font-size: 12px;text-align:center;cursor:pointer;">&#10005;</div>';var o=e.getAttribute("data-dialog-width");o&&""!==o||(o="900px");var s=e.getAttribute("data-dialog-height");s&&""!==s||(s="570px"),n.querySelector("div:not(.is-modal-overlay)").style.maxWidth=o,n.querySelector("div:not(.is-modal-overlay)").style.height=s;let a=n.querySelector(".is-modal-close");Hm.addEventListener(a,"click",(()=>{this.util.hideModal(n)}));var r=1;const l=e.querySelectorAll("[data-subblock]");Array.prototype.forEach.call(l,(t=>{if(Hm.hasClass(t.parentNode,"glide__slide--clone"))return;let i=t.innerHTML;e.setAttribute("data-html-"+r,encodeURIComponent(i)),r++})),this.util.showModal(n,!0);var d=new Date;n.querySelector("iframe").src=this.builder.opts.modulePath+t+".html?"+d.getTime()}));let a=n.querySelector(".input-ok");Hm.addEventListener(a,"click",(()=>{let e=n.querySelector("iframe");e.contentWindow.construct&&e.contentWindow.construct(),this.builder.uo.saveForUndo();let t=this.builder.activeModule;t.setAttribute("data-html",encodeURIComponent(this.builderStuff.querySelector("#hidContentModuleCode").value)),t.setAttribute("data-settings",encodeURIComponent(this.builderStuff.querySelector("#hidContentModuleSettings").value));let i=this.builderStuff.querySelector("#hidContentModuleCode").value;i=i.replace(/{id}/g,this.util.makeId()),t.innerHTML="";var o=document.createRange();o.setStart(t,0),t.appendChild(o.createContextualFragment(i));let s=t.querySelectorAll("[data-subblock]");var a=1;Array.prototype.forEach.call(s,(e=>{t.getAttribute("data-html-"+a)&&(e.innerHTML=decodeURIComponent(t.getAttribute("data-html-"+a))),a++}));let r=document.querySelector(".builder-active");r&&this.builder.applyBehaviorOn(r),this.builder.opts.onChange(),this.builder.opts.onRender(),this.util.hideModal(n),this.util.hideControls(),this.util.repositionColumnTool(!0),this.builder.onRefreshTool&&this.builder.onRefreshTool()}));let r=n.querySelector(".input-cancel");Hm.addEventListener(r,"click",(()=>{this.util.hideModal(n)}))}this.moduleTool=o,this.moduleModal=n}click(e){let t=!1;if(e.hasAttribute("data-module")&&(t=!0),t){this.builder.activeModule=e;let t=e;this.moduleTool.style.display="flex";let i=this.moduleTool.offsetWidth,n=t.offsetWidth*this.builder.opts.zoom,o=t.getBoundingClientRect().top+window.pageYOffset,s=t.getBoundingClientRect().left-2;s+=n-i;i+s>window.innerWidth&&(s=t.getBoundingClientRect().left),this.moduleTool.style.top=o+"px",this.moduleTool.style.left=s+"px"}else this.builder.activeModule=null,this.moduleTool.style.display=""}}const Fm=new ni;class jm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new Wo(e);this.htmlUtil=n;let o=i.querySelector(".is-code-tool");if(!o){let e=`\n <div class="is-tool is-code-tool">\n <button title="${t.out("Settings")}" data-title="${t.out("Settings")}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n `;Fm.appendHtml(i,e),o=i.querySelector(".is-code-tool");let n=o.querySelector("button");Fm.addEventListener(n,"click",(()=>{let e=this.builder.activeCodeBlock,i=this.builderStuff.querySelector("#tmp_buildercontent");i&&i.parentNode.removeChild(i),Fm.appendHtml(this.builderStuff,'<div id="tmp_buildercontent" style="position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden;visibility:hidden;"></div>'),i=this.builderStuff.querySelector("#tmp_buildercontent");var n=1;const o=e.querySelectorAll("is-builder");Array.prototype.forEach.call(o,(t=>{let o=t.innerHTML;i=this.builderStuff.querySelector("#tmp_buildercontent"),i.innerHTML=o;let s=i.querySelectorAll(".elm-active");Fm.removeClasses(s,"elm-active"),s=i.querySelectorAll(".elm-inspected"),Fm.removeClasses(s,"elm-inspected"),s=i.querySelectorAll(".cell-active"),Fm.removeClasses(s,"cell-active"),s=i.querySelectorAll(".row-active"),Fm.removeClasses(s,"row-active"),s=i.querySelectorAll(".row-outline"),Fm.removeClasses(s,"row-outline"),s=i.querySelectorAll(".row-outline"),Fm.removeClasses(s,"row-outline"),s=i.querySelectorAll("[data-click]"),Fm.removeAttributes(s,"data-click"),s=i.querySelectorAll("[contenteditable]"),Fm.removeAttributes(s,"contenteditable"),s=i.querySelectorAll("[data-module-active]"),Fm.removeAttributes(s,"data-module-active"),Fm.removeElements(i.querySelectorAll(".is-row-tool")),Fm.removeElements(i.querySelectorAll(".is-rowadd-tool")),Fm.removeElements(i.querySelectorAll(".ovl")),Fm.removeElements(i.querySelectorAll(".row-add-initial")),s=i.querySelectorAll("[data-keep]"),Fm.removeAttributes(s,"data-keep"),o=i.innerHTML.trim(),o=o.replace(/<font/g,"<span").replace(/<\/font/g,"</span"),e.setAttribute("data-html-"+n,encodeURIComponent(o)),n++}));let s,a=decodeURIComponent(e.getAttribute("data-html"));a=a.replace(/{id}/g,this.util.makeId()),i.parentNode.removeChild(i),s=this.builder.opts.htmlSyntaxHighlighting?this.builderStuff.querySelector(".viewhtmlformatted"):this.builderStuff.querySelector(".viewhtml"),s.querySelector(".is-modal-footer").innerHTML=`<button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>`,t.showModal(s,!0);let r=s.querySelector("textarea");a=(0,Fo.html)(a),r.value=a;let l=s.querySelector(".input-ok");if(Fm.addEventListener(l,"click",(()=>{this.builder.uo.saveForUndo();var i=s.querySelector("textarea").value;e.setAttribute("data-html",encodeURIComponent(i)),i=i.replace(/{id}/g,this.util.makeId());for(var n=1;n<=20;n++)i=i.replace("[%HTML"+n+"%]",void 0===e.getAttribute("data-html-"+n)?"":decodeURIComponent(e.getAttribute("data-html-"+n)));e.innerHTML="";var o=document.createRange();o.setStart(e,0),e.appendChild(o.createContextualFragment(i));let a=document.querySelector(".builder-active");a&&this.builder.applyBehaviorOn(a),this.builder.opts.onChange(),this.builder.opts.onRender(),t.hideModal(s),t.hideControls()})),l=s.querySelector(".input-cancel"),Fm.addEventListener(l,"click",(()=>{t.hideModal(s)})),this.builder.opts.htmlSyntaxHighlighting){let e=s.querySelector("textarea");e.setAttribute("data-source-active","1"),e.setAttribute("data-source-ok",".viewhtmlformatted .input-ok"),e.setAttribute("data-source-cancel",".viewhtmlformatted .input-cancel"),s.querySelector("iframe").outerHTML='<iframe id="ifrHtmlFormatted" style="width:100%;height:100%;border: none;" src="about:blank"></iframe>';var d=s.querySelector("iframe").contentWindow.document;d.open(),d.write(this.htmlUtil.getIframeHtml()),d.close()}}))}this.codeTool=o}click(e){let t=!1;if(e.hasAttribute("data-html")&&!e.hasAttribute("data-module")&&(t=!0),t){this.builder.activeCodeBlock=e;let t=e;this.codeTool.style.display="flex";let i=this.codeTool.offsetWidth,n=t.offsetWidth*this.builder.opts.zoom,o=t.getBoundingClientRect().top+window.pageYOffset,s=t.getBoundingClientRect().left-2;s+=n-i;i+s>window.innerWidth&&(s=t.getBoundingClientRect().left),this.codeTool.style.top=o+"px",this.codeTool.style.left=s+"px"}else this.builder.activeCodeBlock=null,this.codeTool.style.display=""}}const Um=new ni;class Wm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n,o=i.querySelector(".is-iframe-tool");if(!o){let e=`\n <div class="is-tool is-iframe-tool">\n <button title="${t.out("Settings")}" data-title="${t.out("Settings")}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n \n <div class="is-modal iframelink">\n <div class="is-modal-content">\n <input class="input-src" type="text" placeholder="Source" style="width:100%;margin-bottom:12px;"/>\n <textarea class="input-embedcode" type="text" placeholder="Embed Code" style="width:100%;height:300px;margin-bottom:12px;display:none;"></textarea>\n <div style="text-align:right">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>\n \n `;Um.appendHtml(i,e),o=i.querySelector(".is-iframe-tool"),n=i.querySelector(".is-modal.iframelink");let s=o.querySelector("button");Um.addEventListener(s,"click",(()=>{let e=this.builder.activeIframe;var t=e.src;n.querySelector(".input-src").value="",n.querySelector(".input-embedcode").value="",null!=/^.*\/\/www.youtube.com\/embed\//.exec(t)||null!=/^.*\/\/player.vimeo.com\/video\//.exec(t)?(n.querySelector(".input-embedcode").style.display="none",n.querySelector(".input-src").style.display="block",n.querySelector(".input-src").value=t,n.querySelector(".input-src").focus()):(n.querySelector(".input-src").style.display="none",n.querySelector(".input-embedcode").style.display="block",n.querySelector(".input-embedcode").value=e.outerHTML),this.util.showModal(n,!0)}));let a=n.querySelector(".input-ok");Um.addEventListener(a,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeIframe,t=e.parentNode;if(""!==n.querySelector(".input-src").value){var i=n.querySelector(".input-src").value,o=/^http[s]?:\/\/(((www.youtube.com\/watch\?(feature=player_detailpage&)?)v=)|(youtu.be\/))([^#&?]*)/.exec(i),s=/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/)|(video\/))?([0-9]+)\/?/.exec(i);if(null===o&&null===s||-1!==i.indexOf("player.vimeo.com")||-1!==i.indexOf("youtube.com/embed/"))e.src=i;else{if(null!=o&&o.length>=7)i="https://www.youtube.com/embed/"+o[6]+"?rel=0";if(null!=s&&s.length>=7)i="https://player.vimeo.com/video/"+s[6];e.src=i}this.builder.opts.onChange()}else{var a=n.querySelector(".input-embedcode").value;""!==a&&(e.outerHTML=a),this.builder.activeIframe=t.querySelector("iframe");let i=document.querySelector(".builder-active");i&&this.builder.applyBehaviorOn(i),this.builder.opts.onChange()}this.util.hideModal(n)}));let r=n.querySelector(".input-cancel");Um.addEventListener(r,"click",(()=>{this.util.hideModal(n)}))}this.iframeTool=o,this.iframeModal=n}click(e){if(Um.hasClass(e.target,"ovl")){e.target.style.display="none",this.builder.activeIframe=e.target.parentNode.querySelector("iframe");let t=this.builder.activeIframe;this.iframeTool.style.display="flex";let i=this.iframeTool.offsetWidth,n=t.offsetWidth*this.builder.opts.zoom,o=t.getBoundingClientRect().top+window.pageYOffset,s=t.getBoundingClientRect().left-2;s+=n-i;i+s>window.innerWidth&&(s=t.getBoundingClientRect().left),this.iframeTool.style.top=o+"px",this.iframeTool.style.left=s+"px"}else{let e=document.querySelectorAll(".ovl");Array.prototype.forEach.call(e,(e=>{e.style.display="block"})),this.builder.activeIframe=null,this.iframeTool.style.display=""}}}const Gm=new ni;class Vm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n,o=i.querySelector(".is-table-tool");if(!o){let e=`\n <div class="is-tool is-table-tool">\n <button title="${t.out("Settings")}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n <div class="is-modal is-modal-content edittable">\n <div class="is-modal-bar is-draggable">\n ${t.out("Table")}\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n <div style="padding:0">\n <div class="is-tabs clearfix" data-group="table">\n <a title="${t.out("Style")}" id="tabTableGeneral" href="" data-content="divTableGeneral" class="active">${t.out("Style")}</a>\n <a title="${t.out("Layout")}" id="tabTableLayout" href="" data-content="divTableLayout">${t.out("Layout")}</a>\n </div>\n <div id="divTableGeneral" class="is-tab-content" data-group="table" style="display:block">\n\n <div style="display:flex;padding-bottom:12px">\n <div style="padding-right:15px">\n <div>${t.out("Background")}:</div>\n <div>\n <button title="${t.out("Background Color")}" class="input-table-bgcolor is-btn-color"></button>\n </div>\n </div>\n <div>\n <div>${t.out("Text Color")}:</div>\n <div>\n <button title="${t.out("Text Color")}" class="input-table-textcolor is-btn-color"></button>\n </div>\n </div>\n </div>\n\n <div style="padding-bottom:12px;">\n <div>${t.out("Border Thickness")}:</div>\n <div>\n <select id="selCellBorderWidth" style="width:120px;"><option value="0">No Border</option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select> \n </div>\n </div>\n \n <div style="padding-bottom:12px;">\n <div>${t.out("Border Color")}:</div>\n <div>\n <button title="${t.out("Border Color")}" class="input-table-bordercolor is-btn-color"></button>\n </div>\n </div>\n \n <div style="padding-bottom:12px;">\n <div>${t.out("Apply To")}:</div>\n <div>\n <select id="selTableApplyTo" style="width:120px;">\n <option value="table">${t.out("Table")}</option>\n <option value="currentrow">${t.out("Current Row")}</option>\n <option value="currentcol">${t.out("Current Column")}</option>\n <option value="evenrows">${t.out("Even Rows")}</option>\n <option value="oddrows">${t.out("Odd Rows")}</option> \n <option value="currentcell">${t.out("Current Cell")}</option> \n </select>\n </div>\n </div>\n\n </div>\n\n <div id="divTableLayout" class="is-tab-content" data-group="table">\n \n <div style="padding-bottom:12px;">\n <div>${t.out("Insert Row")}:</div>\n <div style="display:flex">\n <button class="classic" title="${t.out("Above")}" data-table-cmd="rowabove" title="${t.out("Above")}" style="margin-right:15px"> ${t.out("Above")} </button>\n <button class="classic" title="${t.out("Below")}" data-table-cmd="rowbelow" title="${t.out("Below")}" style=""> ${t.out("Below")} </button>\n </div> \n </div>\n \n <div style="padding-bottom:15px;">\n <div>${t.out("Insert Column")}:</div>\n <div style="display:flex">\n <button class="classic" title="${t.out("Left")}" data-table-cmd="columnleft" title="${t.out("Left")}" style="margin-right:15px"> ${t.out("Left")} </button> \n <button class="classic" title="${t.out("Right")}" data-table-cmd="columnright" title="${t.out("Right")}" style=""> ${t.out("Right")} </button> \n </div> \n </div>\n\n <div style="padding-bottom:15px;">\n <button class="classic" title="${t.out("Delete Row")}" data-table-cmd="delrow" title="Delete Row" style=""> ${t.out("Delete Row")} </button> \n </div>\n\n <div style="padding-bottom:15px;"> \n <button class="classic" title="${t.out("Delete Column")}" data-table-cmd="delcolumn" title="Delete Column" style=""> ${t.out("Delete Column")} </button> \n </div>\n \n <div> \n <button class="classic" title="${t.out("Merge Cell")}" data-table-cmd="mergecell" style="">${t.out("Merge Cell")}</button> \n </div>\n </div>\n </div>\n </div>\n \n `;Gm.appendHtml(i,e),o=i.querySelector(".is-table-tool"),n=i.querySelector(".is-modal.edittable");let s=o.querySelector("button");Gm.addEventListener(s,"click",(()=>{Gm.hasClass(n,"active")?Gm.removeClass(n,"active"):Gm.addClass(n,"active")}));let a=n.querySelector(".is-modal-close");Gm.addEventListener(a,"click",(()=>{Gm.removeClass(n,"active")})),s=n.querySelector(".input-table-bgcolor"),s.addEventListener("click",(e=>{this.builder.uo.saveForUndo();let t=e.target;this.builder.colorPicker.open((e=>{if(this.builder.activeTd){var i=n.querySelector("#selTableApplyTo").value,o=this.builder.activeTable,s=this.builder.activeTd.parentNode,a=this.builder.activeTd;"currentcell"===i&&(this.builder.activeTd.style.backgroundColor=e);for(var r=0;r<o.rows.length;r++)for(var l=o.rows[r],d=0;d<l.cells.length;d++){var c=l.cells[d];("table"===i||"evenrows"===i&&Ym(r+1)||"oddrows"===i&&!Ym(r+1)||"currentrow"===i&&l===this.builder.activeTd.parentNode||"currentcol"===i&&d===Xm(o,s,a))&&(c.style.backgroundColor=e)}t.style.backgroundColor=e}}),s.style.backgroundColor)})),s=n.querySelector(".input-table-textcolor"),s.addEventListener("click",(e=>{this.builder.uo.saveForUndo();let t=e.target;this.builder.colorPicker.open((e=>{if(this.builder.activeTd){var i=n.querySelector("#selTableApplyTo").value,o=this.builder.activeTable,s=this.builder.activeTd.parentNode,a=this.builder.activeTd;"currentcell"===i&&(this.builder.activeTd.style.color=e);for(var r=0;r<o.rows.length;r++)for(var l=o.rows[r],d=0;d<l.cells.length;d++){var c=l.cells[d];("table"===i||"evenrows"===i&&Ym(r+1)||"oddrows"===i&&!Ym(r+1)||"currentrow"===i&&l===this.builder.activeTd.parentNode||"currentcol"===i&&d===Xm(o,s,a))&&(c.style.color=e)}t.style.backgroundColor=e}}),s.style.backgroundColor)})),s=n.querySelector(".input-table-bordercolor"),s.addEventListener("click",(e=>{this.builder.uo.saveForUndo();let t=e.target;this.builder.colorPicker.open((e=>{if(this.builder.activeTd){var i=n.querySelector("#selCellBorderWidth").value;"0"===i&&(n.querySelector("#selCellBorderWidth").value=1,i=1);var o=n.querySelector("#selTableApplyTo").value,s=this.builder.activeTable,a=this.builder.activeTd.parentNode,r=this.builder.activeTd;"currentcell"===o&&(this.builder.activeTd.style.borderWidth=i+"px",this.builder.activeTd.style.borderStyle="solid",this.builder.activeTd.style.borderColor=e);for(var l=0;l<s.rows.length;l++)for(var d=s.rows[l],c=0;c<d.cells.length;c++){var u=d.cells[c];("table"===o||"evenrows"===o&&Ym(l+1)||"oddrows"===o&&!Ym(l+1)||"currentrow"===o&&d===this.builder.activeTd.parentNode||"currentcol"===o&&c===Xm(s,a,r))&&(u.style.borderWidth=i+"px",u.style.borderStyle="solid",u.style.borderColor=e)}t.style.backgroundColor=e}}),s.style.backgroundColor)}));let r=n.querySelector("#selCellBorderWidth");r.addEventListener("change",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=r.value,t=n.querySelector(".input-table-bordercolor").style.backgroundColor;""===t&&(t="#000000");var i=n.querySelector("#selTableApplyTo").value,o=this.builder.activeTable,s=this.builder.activeTd.parentNode,a=this.builder.activeTd;"currentcell"===i&&(this.builder.activeTd.style.borderWidth=e+"px",this.builder.activeTd.style.borderStyle="solid",this.builder.activeTd.style.borderColor=t,"0"===e&&(this.builder.activeTd.style.borderWidth="",this.builder.activeTd.style.borderStyle="",this.builder.activeTd.style.borderColor="",n.querySelector(".input-table-bordercolor").style.backgroundColor=""));for(var l=0;l<o.rows.length;l++)for(var d=o.rows[l],c=0;c<d.cells.length;c++){var u=d.cells[c];("table"===i||"evenrows"===i&&Ym(l+1)||"oddrows"===i&&!Ym(l+1)||"currentrow"===i&&d===this.builder.activeTd.parentNode||"currentcol"===i&&c===Xm(o,s,a))&&(u.style.borderWidth=e+"px",u.style.borderStyle="solid",u.style.borderColor=t,"0"===e&&(u.style.borderWidth="",u.style.borderStyle="",u.style.borderColor="",n.querySelector(".input-table-bordercolor").style.backgroundColor=""))}this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="rowabove"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable,t=this.builder.activeTd.parentNode,i=e.insertRow(t.rowIndex);for(var n=0;n<t.cells.length;n++){var o=i.insertCell(i.cells.length);o.setAttribute("style",this.builder.activeTd.getAttribute("style")),o.setAttribute("valign","top"),o.innerHTML="<br>"}this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="rowbelow"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable,t=this.builder.activeTd.parentNode,i=e.insertRow(t.rowIndex+1);for(var n=0;n<t.cells.length;n++){var o=i.insertCell(i.cells.length);o.setAttribute("style",this.builder.activeTd.getAttribute("style")),o.setAttribute("valign","top"),o.innerHTML="<br>"}this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="columnleft"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable;for(var t=this.builder.activeTd.cellIndex,i=0;i<e.rows.length;i++){var n=e.rows[i].insertCell(t);n.setAttribute("style",this.builder.activeTd.getAttribute("style")),n.setAttribute("valign","top"),n.innerHTML="<br>"}this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="columnright"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable;for(var t=this.builder.activeTd.cellIndex,i=0;i<e.rows.length;i++){var n=e.rows[i].insertCell(t+1);n.setAttribute("style",this.builder.activeTd.getAttribute("style")),n.setAttribute("valign","top"),n.innerHTML="<br>"}this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="delrow"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable,t=this.builder.activeTd.parentNode;e.deleteRow(t.rowIndex),this.builder.activeTable=null,this.builder.activeTd=null,0===e.rows.length&&e.parentNode.removeChild(e),this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="delcolumn"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable;for(var t=this.builder.activeTd.cellIndex,i=0;i<e.rows.length;i++)e.rows[i].deleteCell(t);this.builder.activeTable=null,this.builder.activeTd=null,0===e.rows[0].cells.length&&e.parentNode.removeChild(e),this.builder.opts.onChange()})),s=n.querySelector('[data-table-cmd="mergecell"]'),s.addEventListener("click",(()=>{if(!this.builder.activeTd)return;this.builder.uo.saveForUndo();let e=this.builder.activeTable,t=this.builder.activeTd.parentNode,i=this.builder.activeTd;i.colSpan=i.colSpan+1,i.cellIndex+1<e.rows[t.rowIndex].cells.length&&e.rows[t.rowIndex].deleteCell(i.cellIndex+1),this.builder.opts.onChange()}))}this.tableTool=o,this.tableModal=n}click(e){if(Gm.parentsHasElement(e.target,"table")){let t,i,n=e.target;if("td"===n.tagName.toLowerCase())t=n;else{for(;"td"!==n.tagName.toLowerCase();)n=n.parentNode;t=n}for(;"table"!==n.tagName.toLowerCase();)n=n.parentNode;if(i=n,Gm.hasClass(i,"default")){this.builder.activeTd=t,this.builder.activeTable=i;let e=i;this.tableTool.style.display="flex";let n=this.tableTool.offsetWidth,o=e.offsetWidth*this.builder.opts.zoom,s=e.getBoundingClientRect().top+window.pageYOffset,a=e.getBoundingClientRect().left-2;a+=o-n;n+a>window.innerWidth&&(a=e.getBoundingClientRect().left),this.tableTool.style.top=s+"px",this.tableTool.style.left=a+"px"}else this.builder.activeTd=null,this.builder.activeTable=null,this.tableTool.style.display=""}else this.builder.activeTd=null,this.builder.activeTable=null,this.tableTool.style.display="";if(Gm.hasClass(this.tableModal,"active")&&this.builder.activeTable){let e=this.builder.activeTd;this.tableModal.querySelector(".input-table-bgcolor").style.backgroundColor=e.style.backgroundColor,this.tableModal.querySelector(".input-table-textcolor").style.backgroundColor=e.style.color,this.tableModal.querySelector(".input-table-bordercolor").style.backgroundColor=e.style.borderColor,this.tableModal.querySelector("#selCellBorderWidth").value=parseInt(e.style.borderWidth)}else this.tableModal.querySelector(".input-table-bgcolor").style.backgroundColor="",this.tableModal.querySelector(".input-table-textcolor").style.backgroundColor="",this.tableModal.querySelector(".input-table-bordercolor").style.backgroundColor="",this.tableModal.querySelector("#selCellBorderWidth").value=0}}function Ym(e){return e%2==0}function Xm(e,t,i){for(var n=0,o=!1,s=0;s<t.cells.length;s++)!1===o&&(n+=t.cells[s].colSpan),i===t.cells[s]&&(o=!0);return(n-=i.colSpan-1)-1}const Km=new ni;class Zm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector(".is-video-tool");if(!n){let e=`\n <div class="is-tool is-video-tool">\n <button title="${t.out("Settings")}" data-title="${t.out("Settings")}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n \n <div class="is-modal videolink">\n <div class="is-modal-content">\n <label for="inpVideoLinkSource" style="display:block">${t.out("Source")}:</label>\n <div class="video-url">\n <input id="inpVideoLinkSource" class="input-url" type="text"/>\n <button title="${t.out("Select")}" class="input-select" style="flex:none;width:50px;height:50px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <div class="video-larger1" style="position:relative;flex:none;width:50px;height:50px;box-shadow: 0px 3px 6px -6px rgba(0, 0, 0, 0.32);">\n <form class="form-upload-larger" target="frameTargetVideoUpload" method="post" action="${this.builder.opts.videoHandler}" enctype="multipart/form-data" style="position:absolute;top:0;left:0;width:100%;height:100%;">\n <input id="hidRefId5" name="hidRefId" type="hidden" value="" />\n <svg class="is-icon-flex" style="position: absolute;top: 16px;left: 15px;width: 18px;height: 18px;"><use xlink:href="#ion-ios-film-outline"></use></svg>\n <input title="${t.out("Select")}" id="fileVideo1" name="fileImage" type="file" accept="video/mp4" style="position:absolute;top:-30px;left:0;width:100%;height:80px;opacity: 0;cursor: pointer;">\n </form>\n\n <iframe id="frameTargetVideoUpload" name="frameTargetVideoUpload" src="about:blank" style="width:1px;height:1px;position:absolute;top:0;right:-100000px"></iframe>\n </div>\n </div>\n \n <label style="display:block;margin-top:14px;">\n <input class="input-video-controls" type="checkbox" /> ${t.out("Show Controls")}&nbsp;\n </label>\n <label style="display:block;margin-top:5px;">\n <input class="input-video-loop" type="checkbox" /> ${t.out("Loop")}&nbsp;\n </label>\n <label style="display:block;margin-top:5px;">\n <input class="input-video-autoplay" type="checkbox" /> ${t.out("Autoplay")}&nbsp;\n </label>\n \n <div style="text-align:right;margin-top:14px;">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>\n\n <div class="is-modal videoselect" style="z-index:10005">\n <div style="max-width:800px;height:80%;padding:0;">\n <iframe style="width:100%;height:100%;border: none;display: block;" src="about:blank"></iframe>\n </div>\n </div>\n `;Km.appendHtml(i,e),n=i.querySelector(".is-video-tool");const o=i.querySelector(".is-modal.videolink");this.videoTool=n,this.videoModal=o;let s=this.videoTool.querySelector("button");Km.addEventListener(s,"click",(()=>{let e=this.builder.activeVideo,t=e.querySelector("source"),i="";t&&(i=t.getAttribute("src")),o.querySelector(".input-url").value=i;const n=o.querySelector(".input-video-controls");e.hasAttribute("controls")?n.checked=!0:n.checked=!1;const s=o.querySelector(".input-video-loop");e.hasAttribute("loop")?s.checked=!0:s.checked=!1;const a=o.querySelector(".input-video-autoplay");e.hasAttribute("autoplay")?a.checked=!0:a.checked=!1,this.util.showModal(o,!0)})),""!==this.builder.opts.videoHandler||this.builder.opts.onVideoUpload||(o.querySelector(".video-larger1").style.display="none"),this.builder.opts.onVideoSelectClick||""!==this.builder.opts.videoSelect||(o.querySelector(".input-select").style.display="none");let a=o.querySelector(".input-select");a&&Km.addEventListener(a,"click",(()=>{if(this.builder.opts.onVideoSelectClick)this.builder.opts.onVideoSelectClick({targetInput:o.querySelector(".input-url"),theTrigger:a});else{let e=i.querySelector(".is-modal.videoselect"),n=e.querySelector("iframe");this.builder.opts.assetRefresh&&(n.src=this.builder.opts.videoSelect),"about:blank"===n.src&&(n.src=this.builder.opts.videoSelect),t.showModal(e)}this.builder.targetInput=o.querySelector(".input-url"),this.builder.targetCallback=null,this.builder.targetAssetType="video"}));let r=o.querySelector("#fileVideo1");Km.addEventListener(r,"change",(e=>{let t=r;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;Km.addClass(i,"please-wait"),o.querySelector("#hidRefId5").value=this.builder.opts.customval,this.builder.opts.onVideoUpload?this.builder.opts.onVideoUpload(e):i.submit(),r.value=""}));let l=o.querySelector(".input-ok");Km.addEventListener(l,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeVideo;if(o.querySelector(".input-video-controls").checked?e.setAttribute("controls",""):e.removeAttribute("controls"),o.querySelector(".input-video-loop").checked?e.setAttribute("loop",""):e.removeAttribute("loop"),o.querySelector(".input-video-autoplay").checked?e.setAttribute("autoplay",""):e.removeAttribute("autoplay"),""!==o.querySelector(".input-url").value){let t=o.querySelector(".input-url").value,i=e.querySelector("source");t!==i.getAttribute("src")&&(i&&i.setAttribute("src",t),setTimeout((function(){e.pause(),e.load()}),100)),this.builder.opts.onChange()}this.util.hideModal(o)}));let d=o.querySelector(".input-cancel");Km.addEventListener(d,"click",(()=>{this.util.hideModal(o)}))}}click(e){let t=e.target;if("video"===t.tagName.toLowerCase()){this.builder.activeVideo=t,this.videoTool.style.display="flex";let e=this.videoTool.offsetWidth,i=t.offsetWidth*this.builder.opts.zoom,n=t.getBoundingClientRect().top+window.pageYOffset,o=t.getBoundingClientRect().left;o+=i-e;e+o>window.innerWidth&&(o=t.getBoundingClientRect().left),this.videoTool.style.top=n+"px",this.videoTool.style.left=o+"px"}else this.builder.activeVideo=null,this.videoTool.style.display=""}}const Qm=new ni;class Jm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector("#divSvgTool");if(!n){let e='\n <div id="divSvgTool" class="is-tool">\n \n </div>\n ';Qm.appendHtml(i,e),n=i.querySelector("#divSvgTool")}this.svgTool=n}click(){}}const ev=new ni;class tv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i,this.hyperlink=new Bm(e),this.button=new Dm(e),this.image=new Mm(e),this.spacer=new Pm(e),this.module=new zm(e),this.code=new jm(e),this.iframe=new Wm(e),this.table=new Vm(e),this.video=new Zm(e),this.svg=new Jm(e),window.addEventListener("keydown",(e=>{if(46===e.keyCode&&this.builder.activeIcon&&ev.parentsHasClass(e.target,"is-builder")){if("a"===this.builder.activeIcon.parentNode.tagName.toLowerCase()&&1===this.builder.activeIcon.parentNode.childNodes.length){let e=this.builder.activeIcon.parentNode;e.parentNode.removeChild(e);i.querySelector("#divLinkTool").style.display=""}else this.builder.activeIcon.parentNode.removeChild(this.builder.activeIcon);e.preventDefault()}if(8===e.keyCode&&this.builder.activeIcon&&ev.parentsHasClass(e.target,"is-builder")){if("a"===this.builder.activeIcon.parentNode.tagName.toLowerCase()&&1===this.builder.activeIcon.parentNode.childNodes.length){let e=this.builder.activeIcon.parentNode;e.parentNode.removeChild(e);i.querySelector("#divLinkTool").style.display=""}else this.builder.activeIcon.parentNode.removeChild(this.builder.activeIcon);e.preventDefault()}}),!1)}applyBehavior(e){let t=!1;e.hasAttribute("data-html")&&(t=!0);let i=!1;e.hasAttribute("data-noedit")&&(i=!0);let n=!1;if(e.hasAttribute("data-protected")&&(n=!0),t||i||n){if(i){let t=e.querySelectorAll("[contenteditable]");Array.prototype.forEach.call(t,(e=>{e.contentEditable=!1}))}return}let o=e.querySelectorAll(".is-social");Array.prototype.forEach.call(o,(e=>{e.contentEditable=!1}));let s=e.querySelectorAll(".spacer");Array.prototype.forEach.call(s,(e=>{e.contentEditable=!1}));let a=e.querySelectorAll("hr");Array.prototype.forEach.call(a,(e=>{e.contentEditable=!1}));let r=e.querySelectorAll("a");Array.prototype.forEach.call(r,(t=>{"inline-block"===ev.getStyle(t,"display")&&(t.contentEditable=!0,t.parentNode!==e&&(t.parentNode.contentEditable=!1))}));let l=e.querySelectorAll(".embed-responsive");Array.prototype.forEach.call(l,(e=>{let t=e.querySelector(".ovl");t||(ev.appendHtml(e,'<div class="ovl" style="position:absolute;background:#fff;opacity:0.01;cursor:pointer;top:0;left:0px;width:100%;height:100%;z-index:1"></div>'),t=e.querySelector(".ovl"),ev.addEventListener(t,"click",(()=>{t.style.display="none"})))}))}click(e,t){const i=t.target;let n=!1;e.hasAttribute("data-noedit")&&(n=!0);let o=!1;e.hasAttribute("data-protected")&&(o=!0);let s=!1,a=!1;if(e.hasAttribute("data-html")&&(s=!0,ev.parentsHasAttribute(i,"data-subblock")&&(a=!0)),!s&&!n&&!o||a){const n=document.querySelectorAll(".icon-active");Array.prototype.forEach.call(n,(e=>{ev.removeClass(e,"icon-active")})),this.builder.activeIcon=null,"i"===i.tagName.toLowerCase()&&""===i.innerHTML&&(ev.addClass(i,"icon-active"),ev.selectElementContents(i),this.builder.activeIcon=i,document.selection?document.selection.empty():window.getSelection().removeAllRanges()),this.image.click(t),this.button.click(e,t),this.hyperlink.click(e,t),"a"!==i.tagName.toLowerCase()&&!ev.parentsHasTag(i,"a")||s||t.preventDefault(),this.table.click(t),this.iframe.click(t),this.video.click(t),this.spacer.click(t),this.svg.click(t)}else if(this.util.hideControls(),"img"===t.target.tagName.toLowerCase()&&t.target.hasAttribute("data-image-embed")){if(this.image.click(t),t.target.hasAttribute("data-sync")){let e=t.target;e.setAttribute("data-src",e.src)}}else"img"===t.target.tagName.toLowerCase()&&e.hasAttribute("data-image-allowed")&&this.image.click(t);this.code.click(e,t),this.module.click(e,t)}}const iv=new ni;class nv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.grid=new ts(e);const n=new Wo(e);let o=i.querySelector(".rowmore"),s="";if(e.opts.rowHtmlEditor&&(s=`<button type="button" title="${t.out("HTML")}" class="row-html">\n <span><svg class="is-icon-flex" style="margin-right:-3px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></span>${t.out("HTML")}\n </button>`),!o){let e=`<div class="is-pop rowmore" style="z-index:10002;">\n <div style="display:flex;flex-flow:wrap;">\n <button type="button" title="${t.out("Move Up")}" class="row-up"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></span>${t.out("Move Up")}</button>\n <button type="button" title="${t.out("Move Down")}" class="row-down"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></span>${t.out("Move Down")}</button>\n <button type="button" title="${t.out("Duplicate")}" class="row-duplicate"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></span>${t.out("Duplicate")}</button>\n ${s}\n </div>\n </div>`;iv.appendHtml(i,e),o=i.querySelector(".rowmore");let a=o.querySelector(".row-up");a&&iv.addEventListener(a,"click",(()=>{this.grid.moveRowUp(),t.clearControls()})),a=o.querySelector(".row-down"),a&&iv.addEventListener(a,"click",(()=>{this.grid.moveRowDown(),t.clearControls()})),a=o.querySelector(".row-duplicate"),a&&iv.addEventListener(a,"click",(()=>{this.grid.duplicateRow(),this.rowMore.style.display="",t.clearControls()})),a=o.querySelector(".row-html"),a&&iv.addEventListener(a,"click",(()=>{t.cellSelected()&&n.view("row")}))}this.rowMore=o,document.addEventListener("mousedown",(e=>{var t=(e=e||window.event).target||e.srcElement;if("flex"===o.style.display){let e=iv.parentsHasClass(t,"rowmore"),i=iv.parentsHasClass(t,"row-more");if(e||i)return;o.style.display=""}}))}render(e){const t=this.builder.util,i=this.builder.builderStuff;let n=this.rowMore,o=e.querySelector(".is-row-tool");if(!o){let s=`<div class="is-tool is-row-tool">\n <div title="${t.out("Move")}" class="row-handle" style="width:100%;cursor:move;text-align:center;"><svg class="is-icon-flex"><use xlink:href="#ion-move"></use></svg></div>\n <button type="button" title="${t.out("More")}" class="row-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <button type="button" title="${t.out("Grid Editor")}" class="row-grideditor"><svg class="is-icon-flex"><use xlink:href="#ion-grid"></use></svg></button>\n <button type="button" title="${t.out("Delete")}" class="row-remove"><svg class="is-icon-flex"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>`;iv.appendHtml(e,s),o=e.querySelector(".is-row-tool");let a=o.querySelectorAll("[title]");Array.prototype.forEach.call(a,(e=>{e.setAttribute("data-title",e.getAttribute("title")),this.builder.tooltip.set(e,5,3)}));let r=o.querySelector(".row-grideditor");r&&iv.addEventListener(r,"click",(()=>{const e=i.querySelector(".grideditor");if(iv.hasClass(e,"active")){iv.removeClass(e,"active");const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(e=>{e.removeAttribute("grideditor")}))}else{iv.addClass(e,"active");const i=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(i,(e=>{e.setAttribute("grideditor","")}));const n=e.querySelector(".grid-outline");document.querySelector(this.builder.opts.container).hasAttribute("gridoutline")?iv.addClass(n,"on"):iv.removeClass(n,"on");const o=e.querySelector(".cell-locking");let s=t.cellSelected();s&&s.hasAttribute("data-noedit")?iv.addClass(o,"on"):iv.removeClass(o,"on")}})),r=o.querySelector(".row-more"),r&&iv.addEventListener(r,"click",(()=>{let e=t.cellSelected();if(!e)return;let s=e.parentNode;iv.removeClass(s,"row-outline");let a=i.querySelector(".is-column-tool");iv.removeClass(a,"active");const r=o.querySelector(".row-more"),l=r.getBoundingClientRect().top+window.pageYOffset,d=r.getBoundingClientRect().left+window.pageXOffset;n.style.display="flex",n.style.top=l-8+"px",iv.removeClass(n,"arrow-bottom"),iv.removeClass(n,"arrow-left"),iv.removeClass(n,"arrow-right"),iv.removeClass(n,"center"),iv.removeClass(n,"right"),iv.removeClass(n,"left"),"right"===this.builder.opts.rowTool?(n.style.left=d-n.offsetWidth-10+"px",iv.addClass(n,"arrow-right"),iv.addClass(n,"left")):(n.style.left=d+35+"px",iv.addClass(n,"arrow-left"),iv.addClass(n,"left"));let c=n.querySelector(".row-html"),u=n.querySelector(".row-duplicate");e.getAttribute("data-html")?(c&&(c.style.display="none"),u&&(u.style.display="none")):(c&&(c.style.display=""),u&&(u.style.display=""))})),r=o.querySelector(".row-remove"),r&&iv.addEventListener(r,"click",(()=>{this.grid.removeRow(),t.clearControls()}))}}}const ov=new ni;class sv{constructor(e){this.builder=e}render(e){const t=this.builder.util,i=Jo(this.builder);let n=e.querySelector(".is-rowadd-tool");if(!n){const i=`<div class="is-rowadd-tool" style="height:0">\n <button type="button" title="${t.out("Add")}" title="${t.out("Add")}" style="outline:none;line-height:1;margin:0;padding:0;cursor:pointer;background-color:rgba(255,255,255,0.9);"><svg class="is-icon-flex" style="fill:rgba(0, 0, 0, 0.8);width:17px;height:17px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n </div>`;ov.appendHtml(e,i),n=e.querySelector(".is-rowadd-tool");let o=n.querySelectorAll("[title]");Array.prototype.forEach.call(o,(e=>{e.setAttribute("data-title",e.getAttribute("title")),this.builder.tooltip.set(e,5,3)}))}let o=n.querySelector("button");ov.addEventListener(o,"click",(()=>{i.querySelector(".is-pop-tabs").style.display="none";const e=window.innerHeight,t=o.getBoundingClientRect().top,n=o.getBoundingClientRect().left;i.style.display="flex";const s=i.offsetWidth,a=i.offsetHeight;return e-t>a?(i.style.top=t+window.pageYOffset+27+"px",i.style.left=n-s/2+7+"px",ov.removeClass(i,"arrow-bottom"),ov.removeClass(i,"arrow-right"),ov.removeClass(i,"arrow-left"),ov.removeClass(i,"center"),ov.addClass(i,"arrow-top"),ov.addClass(i,"center")):(i.style.top=t+window.pageYOffset-a-8+"px",i.style.left=n-s/2+7+"px",ov.removeClass(i,"arrow-top"),ov.removeClass(i,"arrow-right"),ov.removeClass(i,"arrow-left"),ov.removeClass(i,"center"),ov.addClass(i,"arrow-bottom"),ov.addClass(i,"center")),i.setAttribute("data-mode","row"),!1}))}}class av{constructor(e={}){this.opts=Object.assign(this,{animateModal:!1,elementToAnimate:"",stuffPlacement:"#_cbhtml"},e),this.id=this.makeId();let t=document.querySelector(this.opts.stuffPlacement);t||(t=document.createElement("div"),t.id="_cbhtml",document.body.appendChild(t)),this.builderStuff=t;const i=document.createElement("div");i.id=this.id,t.appendChild(i),this.objStuff=i}confirm(e,t,i){let n=`<div class="is-modal is-confirm">\n <div class="is-modal-content" style="padding-bottom:20px;">\n <p>${e}</p>\n <button title="${this.out("Delete")}" class="input-ok classic">${this.out("Delete")}</button>\n </div>\n </div>`,o=this.objStuff.querySelector(".is-confirm");o||(this.objStuff.insertAdjacentHTML("beforeend",n),o=this.builderStuff.querySelector(".is-confirm")),this.show(o,!1,(()=>{o.parentNode.removeChild(o),t(!1)}),i);let s=o.querySelector(".is-confirm .input-ok");this.addEventListener(s,"click",(()=>{this.hide(o),o.parentNode.removeChild(o),t(!0)}))}show(e,t,i,n){this.addClass(e,"active");let o=!1;if(o=null!=n?n:this.opts.animateModal,o){const e=document.querySelectorAll(this.opts.elementToAnimate);Array.prototype.forEach.call(e,(e=>{e.style.transform=`scale(${this.builder.opts.zoom-.02})`,e.style.WebkitTransform=`scale(${this.builder.opts.zoom-.02})`,e.style.MozTransform=`scale(${this.builder.opts.zoom-.02})`,e.setAttribute("scaled-down","1")}))}if(!e.querySelector(".is-modal-overlay")){let n;if(n=t?'<div class="is-modal-overlay overlay-stay"></div>':'<div class="is-modal-overlay"></div>',e.insertAdjacentHTML("afterbegin",n),!t){let t=e.querySelector(".is-modal-overlay");this.addEventListener(t,"click",(()=>{i&&i(),this.hide(e)}))}}}hide(e){if(""!==this.opts.elementToAnimate){const e=document.querySelectorAll(this.opts.elementToAnimate);Array.prototype.forEach.call(e,(e=>{e.getAttribute("scaled-down")&&(e.style.transform=`scale(${this.builder.opts.zoom})`,e.style.WebkitTransform=`scale(${this.builder.opts.zoom})`,e.style.MozTransform=`scale(${this.builder.opts.zoom})`,e.removeAttribute("scaled-down"))}))}this.removeClass(e,"active")}makeId(){let e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(let i=0;i<2;i++)e+=t.charAt(Math.floor(Math.random()*t.length));let i="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let e=0;e<5;e++)i+=n.charAt(Math.floor(Math.random()*n.length));return e+i}addClass(e,t){e&&(this.hasClass(e,t)||(0===e.classList.length?e.className=t:e.className=e.className+" "+t))}removeClass(e,t){e&&e.classList.length>0&&(e.className=e.className.replace(t,""))}hasClass(e,t){return!!e&&(e.classList?e.classList.contains(t):new RegExp("\\b"+t+"\\b").test(e.className))}addEventListener(e,t,i){e.addEventListener(t,i)}}class rv{constructor(e={}){this.opts=Object.assign(this,{onPick:function(){},color:"",colors:["#ff9f01","#f57c00","#e64918","#d32f2f","#5d4038","#37474f","#353535","#fbc02c","#b0b42a","#689f39","#c21f5b","#7b21a2","#522da8","#616161","#01b8c9","#009688","#388d3c","#0388d0","#1465c0","#2f3f9e","#9e9e9e"],renderOn:"",animateModal:!1,elementToAnimate:"",stuffPlacement:"#_cbhtml",lang:[]},e),this.id=function(){let e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(let i=0;i<2;i++)e+=t.charAt(Math.floor(Math.random()*t.length));let i="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let e=0;e<5;e++)i+=n.charAt(Math.floor(Math.random()*n.length));return e+i}();let t=document.querySelector(this.opts.stuffPlacement);t||(t=document.createElement("div"),t.id="_cbhtml",t.className="is-ui",document.body.appendChild(t)),this.builderStuff=t;const i=document.createElement("div");i.id=this.id,t.appendChild(i),this.objStuff=i;const n=new av({animateModal:this.opts.animateModal,elementToAnimate:this.opts.elementToAnimate,stuffPlacement:this.opts.stuffPlacement});this.modal=n;let o="";if(this.opts.colors.length>0){o+='<div class="color-default clearfix">';for(var s=0;s<this.opts.colors.length;s++)"#ffffff"===this.opts.colors[s]?o+='<button title="'+this.opts.colors[s]+'" data-color="'+this.opts.colors[s]+'" style="background:'+this.opts.colors[s]+';outline:rgba(222,222,222,0.75) 1px solid"></button>':o+='<button title="'+this.opts.colors[s]+'" data-color="'+this.opts.colors[s]+'" style="background:'+this.opts.colors[s]+';"></button>';o+="</div>"}let a="";for(s=0;s<105;s++)a+=s%2==0?'<div class="dot-1"></div>':'<div class="dot-2"></div>';let r="";for(s=0;s<25;s++)r+=s%2==0?'<div class="dot-3"></div>':'<div class="dot-4"></div>';let l,d=`<div class="pickcolor" style="width:269px;padding:12px;box-sizing:border-box;">\n ${o}\n <div class="color-gradient clearfix"></div>\n\n <div class="div-color-opacity" style="height: 10px; margin: 12px 0px 17px;position:relative;">\n <div style="position:absolute;top:0;left:0;width:100%;height:21px;display:flex;flex-direction:column;flex-flow:wrap">\n ${a}\n </div>\n <input type="range" min="0" max="100" value="100" class="color-opacity is-rangeslider" style="position:relative;background: transparent;margin: 0 !important;">\n </div>\n <div class="clearfix" style="margin:25px 0 3px;">\n <button title="${this.out("B")}" data-color="#000000" style="background:#111;color:#f3f3f3;border:transparent 1px solid;width:35px;height:35px;line-height:35px;font-size:10px;border-right:none;">${this.out("B")}</button>\n <button title="${this.out("W")}" data-color="#ffffff" style="border: rgb(0 0 0 / 6%) 1px solid;background:#fff;color:#111;width:35px;height:35px;line-height:35px;font-size:10px;">${this.out("W")}</button>\n <button title="${this.out("Clear")}" data-color="" class="clear" style="width:140px;height:35px;line-height:35px;border-right:none;">${this.out("Clear")}</button>\n <button title="${this.out("More")}" class="input-hsl" style="width:35px;height:35px;line-height:35px;font-size:10px;"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>\n </div>\n <div style="display:flex">\n <div style="flex-grow: 0;flex-shrink: 0;flex-basis: 37px;height:34px;box-sizing:border-box;margin-top:8px;position:relative;">\n <div style="position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;flex-flow:wrap;overflow:hidden;">\n ${r}\n </div>\n <button class="is-color-preview" style="position:absolute;top:0;left:0;width:100%;height:100%;transition:none;"></button>\n </div>\n <input class="input-text" type="text" style="width:209px;height:35px;margin-top:8px;font-size:13px;"/>\n <button title="${this.out("Apply")}" class="input-ok" style="height:35px;margin-top:8px;"><svg class="is-icon-flex"><use xlink:href="#icon-ok"></use></svg></use></svg></svg></button>\n </div>\n </div>`,c=`<div class="is-modal pickcolor" style="">\n <div class="is-modal-content">\n <div class="is-modal-bar is-draggable"></div>\n <div>\n\n ${o}\n <div class="color-gradient clearfix"></div>\n \n <div class="div-color-opacity" style="height: 10px; margin: 12px 0px 17px;position:relative;">\n <div style="position:absolute;top:0;left:0;width:100%;height:21px;display:flex;flex-direction:column;flex-flow:wrap">\n ${a}\n </div>\n <input type="range" min="0" max="100" value="100" class="color-opacity is-rangeslider" style="position:relative;background: transparent;margin: 0 !important;">\n </div>\n <div class="clearfix" style="margin:25px 0 3px;">\n <button title="${this.out("B")}" data-color="#000000" style="background:#111;color:#f3f3f3;border:transparent 1px solid;width:35px;height:35px;line-height:35px;font-size:10px;border-right:none;">${this.out("B")}</button>\n <button title="${this.out("W")}" data-color="#ffffff" style="background:#fff;color:#111;width:35px;height:35px;line-height:35px;font-size:10px;">${this.out("W")}</button>\n <button title="${this.out("Clear")}" data-color="" class="clear" style="width:140px;height:35px;line-height:35px;border-right:none;">${this.out("Clear")}</button>\n <button title="${this.out("More")}" class="input-hsl" style="width:35px;height:35px;line-height:35px;font-size:10px;"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>\n </div>\n <div style="display:flex">\n <div style="flex-grow: 0;flex-shrink: 0;flex-basis: 37px;height:35px;box-sizing:border-box;margin-top:8px;position:relative;">\n <div style="position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;flex-flow:wrap;overflow:hidden;">\n ${r}\n </div>\n <button class="is-color-preview" style="cursor:default;position:absolute;top:0;left:0;width:100%;height:100%;transition:none;"></button>\n </div>\n <input class="input-text" type="text" style="width:209px;height:35px;margin-top:8px;font-size:13px;"/>\n <button title="${this.out("Apply")}" class="input-ok" style="height:35px;margin-top:8px;"><svg class="is-icon-flex"><use xlink:href="#icon-ok"></use></svg></use></svg></svg></button>\n </div>\n \n </div>\n </div>\n </div>`;""!==this.opts.renderOn?(l=document.querySelector(this.opts.renderOn),l.insertAdjacentHTML("beforeend",d)):(i.insertAdjacentHTML("beforeend",c),l=i.querySelector(".is-modal.pickcolor")),i.insertAdjacentHTML("beforeend",'<div class="is-modal pickcolormore">\n <div class="is-modal-content" style="padding: 12px">\n <div class="is-modal-bar is-draggable"></div>\n <div>\n \n <div class="color-swatch clearfix"></div>\n \n <div class="div-color-hue" style="height: 23px;margin: 10px 0 0;position:relative">\n <input type="range" min="0" max="360" value="0" class="color-hue is-rangeslider" style="position:relative;background:transparent;margin:0 !important;z-index:1">\n </div>\n\n </div>\n </div>\n </div>');const u=i.querySelector(".is-modal.pickcolormore");this.pickcolor=l,this.pickcolormore=u,new ps({selector:"#"+this.id+" .is-draggable"});let p=document.createElement("div");p.style.backgroundColor=this.opts.color;let h,g=p.style.backgroundColor;""!==g&&(h=bv.color(g),this.baseRGB=h);let f=u.querySelector(".color-swatch"),m=l.querySelector(".color-gradient");if(h){let e;e=""!==g?mv(h.r,h.g,h.b):0,uv(f,e);let t=yv(h.r,h.g,h.b);pv(m,e,t[1])}else{let e;e=0,uv(f,e);let t=yv(255,255,255);pv(m,e,t[1])}let v=l.querySelector(".input-hsl");this.addEventListener(v,"click",(()=>{this.modal.show(u,!1,null,!1)}));var b=u.querySelector(".color-hue");b.oninput=()=>{let e=b.value/360;uv(f,361*e)};let y=document.createElement("div");y.style.display="flex",y.style.position="absolute",y.style.width="calc(100% + 1px)",y.style.top=0,y.style.left=0;let _=function(e,t,i,n){let o=[],s=Math.trunc(360/n);for(let a=0;a<n;a++){let n=a*s;o.push(`hsla(${n},${t}%,${e}%,${i})`)}return o}(45,100,1,360);for(s=0;s<_.length-1;s++){let e=document.createElement("div");e.style.backgroundColor=_[s],e.style.width="1px",e.style.height="24px",y.appendChild(e)}u.querySelector(".div-color-hue").appendChild(y);const x=l.querySelector(".color-opacity");x.oninput=()=>{let e=x.value/100,t=this.baseRGB;if(t){let i;i=1===e?"rgb("+t.r+","+t.g+","+t.b+")":"rgba("+t.r+","+t.g+","+t.b+","+e+")",l.querySelector(".is-color-preview").style.backgroundColor=i,l.querySelector(".input-text").value=i,this.opts.onPick(i)}},h&&(h.a?x.value=100*h.a:x.value=100);let w=x.value/100,S="",C="";h&&(S=1*w==1?"rgb("+h.r+","+h.g+","+h.b+")":"rgba("+h.r+","+h.g+","+h.b+","+w+")",C="linear-gradient(90deg, rgba("+h.r+","+h.g+","+h.b+",0), rgba("+h.r+","+h.g+","+h.b+",1))"),l.querySelector(".div-color-opacity .color-opacity").style.backgroundImage=C;let k=l.querySelector(".is-color-preview");k.style.background="none",""!==S&&(k.style.backgroundColor=S);let E=l.querySelector(".input-text");E.value=S,this.addEventListener(E,"keydown",(e=>{13!==e.which&&13!==e.keyCode&&"Enter"!==e.key||(this.setColor(e.target.value),e.preventDefault(),e.stopImmediatePropagation())}));let A=l.querySelector(".input-ok");this.addEventListener(A,"click",(()=>{this.setColor(E.value)}));let q=l.querySelectorAll("[data-color]");Array.prototype.forEach.call(q,(e=>{this.addEventListener(e,"click",(e=>{let t=e.target,i=t.getAttribute("data-color"),n=lv(i);if(this.baseRGB=n,!this.parentsHasClass(t,"color-gradient")&&""!==i)if(n.r===n.g&&n.g===n.b)hv(m);else{let e=mv(n.r,n.g,n.b);uv(f,e),pv(l.querySelector(".color-gradient"),e,yv(n.r,n.g,n.b)[1])}let o=x.value/100,s="",a="";n&&(s=1*o==1?"rgb("+n.r+","+n.g+","+n.b+")":"rgba("+n.r+","+n.g+","+n.b+","+o+")",a="linear-gradient(90deg, rgba("+n.r+","+n.g+","+n.b+",0), rgba("+n.r+","+n.g+","+n.b+",1))"),l.querySelector(".div-color-opacity .color-opacity").style.backgroundImage=a,l.querySelector(".is-color-preview").style.backgroundColor=s,l.querySelector(".input-text").value=s,this.opts.onPick(s)}))})),q=u.querySelectorAll("[data-color]"),Array.prototype.forEach.call(q,(e=>{this.addEventListener(e,"click",(()=>{let t=lv(e.getAttribute("data-color"));this.baseRGB=t;let i=mv(t.r,t.g,t.b),n=yv(t.r,t.g,t.b);pv(m,i,n[1]);let o=x.value/100,s="",a="";t&&(s=1*o==1?"rgb("+t.r+","+t.g+","+t.b+")":"rgba("+t.r+","+t.g+","+t.b+","+o+")",a="linear-gradient(90deg, rgba("+t.r+","+t.g+","+t.b+",0), rgba("+t.r+","+t.g+","+t.b+",1))"),l.querySelector(".div-color-opacity .color-opacity").style.backgroundImage=a,l.querySelector(".is-color-preview").style.backgroundColor=s,l.querySelector(".input-text").value=s,this.opts.onPick(s)}))}))}out(e){if(this.opts.lang){let t=this.opts.lang[e];return t||e}return e}open(e,t){e&&(this.opts.onPick=e),t&&(this.opts.color=t,this.setColor(t,!0)),this.modal.show(this.pickcolor,!1,null,!1)}setColor(e,t){let i=this.pickcolor,n=this.pickcolormore;var o=i.querySelector(".color-opacity");let s,a=i.querySelector(".color-gradient"),r=e;if(-1!==r.indexOf("rgb")&&(s=bv.color(r)),-1!==r.indexOf("#")&&(s=lv(r)),!s){return hv(a),o.value=100,i.querySelector(".div-color-opacity .color-opacity").style.backgroundImage="",i.querySelector(".is-color-preview").style.background="none",void(i.querySelector(".input-text").value="")}if(this.baseRGB=s,s.r===s.g&&s.g===s.b)hv(a);else{let e=n.querySelector(".color-swatch"),t=mv(s.r,s.g,s.b);uv(e,t),pv(a,t,yv(s.r,s.g,s.b)[1])}s.a||0===s.a?o.value=100*s.a:o.value=100;let l=o.value/100,d="",c="";s&&(d=1*l==1?"rgb("+s.r+","+s.g+","+s.b+")":"rgba("+s.r+","+s.g+","+s.b+","+l+")",c="linear-gradient(90deg, rgba("+s.r+","+s.g+","+s.b+",0), rgba("+s.r+","+s.g+","+s.b+",1))"),i.querySelector(".div-color-opacity .color-opacity").style.backgroundImage=c,i.querySelector(".is-color-preview").style.backgroundColor=d,i.querySelector(".input-text").value=d,t||this.opts.onPick(d)}addEventListener(e,t,i){e.addEventListener(t,i)}parentsHasClass(e,t){for(;e;){if("BODY"===e.tagName||"HTML"===e.tagName)return!1;if(!e.classList)return!1;if(e.classList.contains(t))return!0;e=e.parentNode}}}function lv(e){if(""===e)return null;var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function dv(e){var t="0123456789abcdef",i=parseInt(e);return 0===i||isNaN(e)?"00":(i=Math.round(Math.min(Math.max(0,i),255)),t.charAt((i-i%16)/16)+t.charAt(i%16))}function cv(e){return dv(e[0])+dv(e[1])+dv(e[2])}function uv(e,t){let i,n,o=10;if(""===e.innerHTML)for(i=0;i<o;++i){let s=document.createElement("div");for(s.style.width="100%",s.id="row-"+i,e.appendChild(s),n=0;n<o;++n){let o=i*(100/9)+5,s=10*n+5;s>50&&s<=55&&(s=50),o>100&&(o=100);let a="#"+cv(fv(t,o,s)),r=document.createElement("div");r.title=a,r.style.background=a,r.setAttribute("data-color",a),e.querySelector("#row-"+i).appendChild(r)}}else for(i=0;i<o;++i){let s=e.childNodes[i];for(n=0;n<o;++n){let e=s.childNodes[n],o=i*(100/9)+5,a=10*n+5;a>50&&a<=55&&(a=50),o>100&&(o=100);let r="#"+cv(fv(t,o,a));e.title=r,e.style.background=r,e.setAttribute("data-color",r)}}}function pv(e,t,i){let n,o,s=100/7*2-100/7;if(""===e.innerHTML)for(n=0;n<5;++n){let a=document.createElement("div");for(a.style.width="100%",a.id="row-"+n,e.appendChild(a),o=0;o<7;++o){let a=o*(100/7);a+=(-1*(n-5)-1)*(s/5),0===o&&(a=o*(100/7));let r="#"+cv(fv(t,i,a)),l=document.createElement("div");l.title=r,l.style.background=r,l.setAttribute("data-color",r),e.querySelector("#row-"+n).appendChild(l)}}else{let a,r;for(n=0;n<5;++n)for(a=e.childNodes[n],o=0;o<7;++o){r=a.childNodes[o];let e=o*(100/7);e+=(-1*(n-5)-1)*(s/5),6===n&&0===o&&(e=0);let l="#"+cv(fv(t,i,e));r.title=l,r.style.background=l,r.setAttribute("data-color",l)}}}function hv(e){let t,i,n=100/7*2-100/7;if(""===e.innerHTML)for(t=0;t<5;++t){let o=document.createElement("div");for(o.style.width="100%",o.id="row-"+t,e.appendChild(o),i=0;i<7;++i){let o=i*(100/7);o+=(-1*(t-5)-1)*(n/5),0===i&&(o=i*(100/7));let s="#"+cv(fv(0,0,o)),a=document.createElement("div");a.title=s,a.style.background=s,a.setAttribute("data-color",s),e.querySelector("#row-"+t).appendChild(a)}}else{let o,s;for(t=0;t<5;++t)for(o=e.childNodes[t],i=0;i<7;++i){s=o.childNodes[i];let e=i*(100/7);e+=(-1*(t-5)-1)*(n/5),6===t&&0===i&&(e=0);let a="#"+cv(fv(0,0,e));s.title=a,s.style.background=a,s.setAttribute("data-color",a)}}}function gv(e,t,i){return i<0?i+=1:i>1&&(i-=1),6*i<1?e+(t-e)*i*6:2*i<1?t:3*i<2?e+(t-e)*(2/3-i)*6:e}function fv(e,t,i){e/=360,t/=100;var n=(i/=100)<=.5?i*(t+1):i+t-i*t,o=2*i-n;return[parseInt(255*gv(o,n,e+1/3)),parseInt(255*gv(o,n,e)),parseInt(255*gv(o,n,e-1/3))]}function mv(e,t,i){e/=255,t/=255,i/=255;var n,o,s,a=Math.max(e,t,i),r=a-Math.min(e,t,i);if(0===r)n=0;else switch(a){case e:s=0,(o=(t-i)/r)<0&&(s=6),n=o+s;break;case t:n=(o=(i-e)/r)+(s=2);break;case i:n=(o=(e-t)/r)+(s=4)}return 60*n}var vv,bv=(vv=function(e){return parseInt(e,16)},{color:function(e){var t,i,n,o,s=e.slice(0,1);return"#"===s?function(e){var t;return 4===e.length?(t=e.replace("#","").split(""),{r:vv(t[0]+t[0]),g:vv(t[1]+t[1]),b:vv(t[2]+t[2])}):{r:vv(e.slice(1,3)),g:vv(e.slice(3,5)),b:vv(e.slice(5))}}(e):"r"===s.toLowerCase()?(n=(t=e).slice(t.indexOf("(")+1,t.indexOf(")")).split(","),o=!1,i={r:(n=n.map((function(e,t){return 3!==t?parseInt(e,10):(o=!0,parseFloat(e))})))[0],g:n[1],b:n[2]},o&&(i.a=n[3]),i):void console.log("!Ooops! RGBvalues.color("+e+") : HEX, RGB, or RGBa strings only")}});function yv(e,t,i){e/=255,t/=255,i/=255;var n,o,s=Math.max(e,t,i),a=Math.min(e,t,i),r=(s+a)/2;if(s===a)n=o=0;else{var l=s-a;switch(o=r>.5?l/(2-s-a):l/(s+a),s){case e:n=(t-i)/l+(t<i?6:0);break;case t:n=(i-e)/l+2;break;case i:n=(e-t)/l+4}n/=6}return[100*n+.5|0,100*o+.5|0,100*r+.5|0]}class _v{constructor(e={}){this.opts=Object.assign(this,{colors:["#ff9f01","#f57c00","#e64918","#d32f2f","#5d4038","#37474f","#353535","#fbc02c","#b0b42a","#689f39","#c21f5b","#7b21a2","#522da8","#616161","#01b8c9","#009688","#388d3c","#0388d0","#1465c0","#2f3f9e","#9e9e9e"],gradientcolors:[["linear-gradient(0deg, rgb(255, 57, 25), rgb(249, 168, 37))"],["linear-gradient(0deg, rgb(255, 57, 25), rgb(255, 104, 15))"],["linear-gradient(0deg, #FF5722, #FF9800)"],["linear-gradient(0deg, #613ca2, rgb(110, 123, 217))"],["linear-gradient(0deg, rgb(65, 70, 206), rgb(236, 78, 130))"],["linear-gradient(0deg, rgb(0, 150, 102), rgb(90, 103, 197))"],["linear-gradient(30deg, rgb(249, 119, 148), rgb(98, 58, 162))"],["linear-gradient(0deg, rgb(223, 70, 137), rgb(90, 103, 197))"],["linear-gradient(0deg, rgb(40, 53, 147), rgb(90, 103, 197))"],["linear-gradient(0deg, rgb(21, 101, 192), rgb(52, 169, 239))"],["linear-gradient(0deg, rgb(32, 149, 219), rgb(139, 109, 230))"],["linear-gradient(0deg, rgb(90, 103, 197), rgb(0, 184, 201))"],["linear-gradient(0deg, rgb(0, 184, 201), rgb(253, 187, 45))"],["linear-gradient(0deg, rgb(255, 208, 100), rgb(239, 98, 159))"],["linear-gradient(0deg, rgb(0, 214, 223), rgb(130, 162, 253))"],["linear-gradient(0deg, rgb(50, 234, 251), rgb(248, 247, 126))"],["linear-gradient(0deg, rgb(141, 221, 255), rgb(255, 227, 255))"],["linear-gradient(0deg, rgb(255, 170, 170), rgb(255, 255, 200))"],["linear-gradient(0deg, rgb(239, 239, 239), rgb(252, 252, 252))"]],animateModal:!1,elementToAnimate:"",stuffPlacement:"#_cbhtml",lang:[]},e),this.id=function(){let e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(let i=0;i<2;i++)e+=t.charAt(Math.floor(Math.random()*t.length));let i="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let e=0;e<5;e++)i+=n.charAt(Math.floor(Math.random()*n.length));return e+i}();let t=document.querySelector(this.opts.stuffPlacement);t||(t=document.createElement("div"),t.id="_cbhtml",t.className="is-ui",document.body.appendChild(t)),this.builderStuff=t;const i=document.createElement("div");i.id=this.id,t.appendChild(i),this.objStuff=i;const n=new av({animateModal:this.opts.animateModal,elementToAnimate:this.opts.elementToAnimate,stuffPlacement:this.opts.stuffPlacement});this.modal=n;let o="";for(var s=0;s<this.opts.gradientcolors.length;s++)o+=`<button data-elmgradient="${this.opts.gradientcolors[s][0]}" data-textcolor="${this.opts.gradientcolors[s][1]?this.opts.gradientcolors[s][1]:""}" style="background-image:${this.opts.gradientcolors[s][0]};width:35px;height:35px;border:none;"></button>`;let a=`\n <div class="is-modal pickgradientcolor">\n <div class="is-modal-content">\n <div class="is-modal-bar is-draggable"></div>\n <div style="padding:12px 12px 12px">\n <div class="div-gradients" style="display: flex;flex-flow: wrap;margin-bottom:10px;">\n ${o}\n <button class="input-gradient-clear" title="${this.out("Clear")}" data-value="" style="width:35px;height:35px;"><svg class="is-icon-flex" style="width:23px;height:23px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n <div class="is-settings" style="margin-bottom:0">\n <div class="is-label" style="margin-top:0">${this.out("Custom")}:</div>\n <div class="div-custom-gradients clearfix" style="height:auto;display: flex;flex-flow: wrap;"></div>\n <div>\n <button title="${this.out("Select Color")}" class="input-gradient-color1 is-btn-color" data-value="dark" style="border-right:none"></button>\n <button title="${this.out("Select Color")}" class="input-gradient-color2 is-btn-color" data-value="dark"></button>\n <input type="text" class="input-gradient-deg" value="0" style="width:60px;height:35px;margin-left:7px;margin-right:5px;font-size:14px;"/> deg\n </div>\n </div>\n <div class="is-settings clearfix" style="margin-bottom:0">\n <button title="${this.out("Add")}" class="input-gradient-save classic" style="width:100%;border:none;"> ${this.out("Add")} </button>\n </div>\n </div>\n </div>\n </div>\n `;i.insertAdjacentHTML("beforeend",a);const r=i.querySelector(".is-modal.pickgradientcolor");this.pickGradient=r,new ps({selector:"#"+this.id+" .is-draggable"});const l=new rv({colors:this.opts.colors,animateModal:this.opts.animateModal,elementToAnimate:this.opts.container,lang:this.opts.lang});let d=i.querySelector(".input-gradient-color1");d.addEventListener("click",(()=>{l.open((e=>{""===e&&(e="transparent");let t=e,n=i.querySelector(".input-gradient-color2").style.backgroundColor;""===n&&(n="#ffffff");let o=`linear-gradient(${i.querySelector(".input-gradient-deg").value}deg, ${t}, ${n})`;this.targetElement.style.backgroundImage=o,this.opts.onChange&&this.opts.onChange(o),d.style.backgroundColor=e}),d.style.backgroundColor)}));let c=i.querySelector(".input-gradient-color2");c.addEventListener("click",(()=>{l.open((e=>{""===e&&(e="transparent");let t=i.querySelector(".input-gradient-color1").style.backgroundColor,n=e;""===t&&(t="#ffffff");let o=`linear-gradient(${i.querySelector(".input-gradient-deg").value}deg, ${t}, ${n})`;this.targetElement.style.backgroundImage=o,this.opts.onChange&&this.opts.onChange(o),c.style.backgroundColor=e}),c.style.backgroundColor)}));let u=i.querySelectorAll(".div-gradients [data-elmgradient]");Array.prototype.forEach.call(u,(e=>{let t=e.getAttribute("data-elmgradient"),n=e.getAttribute("data-textcolor");e.addEventListener("click",(()=>{this.targetElement.style.backgroundImage=t,this.opts.onChange&&this.opts.onChange(t,n);const o=this.targetElement.style.backgroundImage;if(-1!==o.indexOf("linear-gradient")){const e=xv(o);if(null!==e)try{let t=e.colorStopList[0].color,i=e.colorStopList[1].color,n=e.line;this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor=t,this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor=i,-1!==n.indexOf("deg")&&(this.objStuff.querySelector(".input-gradient-deg").value=n.replace("deg",""))}catch(e){}}let s=i.querySelectorAll(".div-gradients [data-elmgradient]");Array.prototype.forEach.call(s,(e=>{this.removeClass(e,"active")})),this.addClass(e,"active")}))})),i.querySelector(".input-gradient-clear").addEventListener("click",(()=>{this.targetElement.style.backgroundImage="",this.opts.onChange&&this.opts.onChange(""),this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor="",this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor="",this.objStuff.querySelector(".input-gradient-deg").value="0"}));let p=i.querySelector(".input-gradient-deg");p.addEventListener("keyup",(()=>{let e=i.querySelector(".input-gradient-color1").style.backgroundColor,t=i.querySelector(".input-gradient-color2").style.backgroundColor,n=`linear-gradient(${p.value}deg, ${e}, ${t})`;this.targetElement.style.backgroundImage=n,this.opts.onChange&&this.opts.onChange(n)})),i.querySelector(".input-gradient-save").addEventListener("click",(()=>{let e=i.querySelector(".input-gradient-color1").style.backgroundColor,t=i.querySelector(".input-gradient-color2").style.backgroundColor,n=`linear-gradient(${p.value}deg, ${e}, ${t})`,o=[];if(null!==localStorage.getItem("_customgradcolors")&&(o=JSON.parse(localStorage.getItem("_customgradcolors"))),o.push(n),localStorage.setItem("_customgradcolors",JSON.stringify(o)),null!==localStorage.getItem("_customgradcolors")){let e=JSON.parse(localStorage.getItem("_customgradcolors")),t="";for(var s=0;s<e.length;s++)t+=`<button class="is-elmgrad-item" data-elmgradient="${e[s]}" style="background-image:${e[s]};width:35px;height:35px;padding:0;border:none;"><div class="is-elmgrad-remove"><svg class="is-icon-flex" style="fill:rgba(255, 255, 255, 1);width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></div></button>`;this.objStuff.querySelector(".div-custom-gradients").innerHTML=t}let a=this.objStuff.querySelectorAll(".div-custom-gradients [data-elmgradient]");Array.prototype.forEach.call(a,(e=>{let t=e.getAttribute("data-elmgradient");e.addEventListener("click",(()=>{this.targetElement.style.backgroundImage=t,this.opts.onChange&&this.opts.onChange(t);const n=this.targetElement.style.backgroundImage;if(-1!==n.indexOf("linear-gradient")){const e=xv(n);if(null!==e)try{let t=e.colorStopList[0].color,i=e.colorStopList[1].color,n=e.line;this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor=t,this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor=i,-1!==n.indexOf("deg")&&(this.objStuff.querySelector(".input-gradient-deg").value=n.replace("deg",""))}catch(e){}}let o=i.querySelectorAll(".div-custom-gradients [data-elmgradient]");Array.prototype.forEach.call(o,(e=>{this.removeClass(e,"active")})),this.addClass(e,"active")}))}));let r=this.objStuff.querySelectorAll(".div-custom-gradients .is-elmgrad-remove");Array.prototype.forEach.call(r,(e=>{e.addEventListener("click",(()=>{let t=[];null!==localStorage.getItem("_customgradcolors")&&(t=JSON.parse(localStorage.getItem("_customgradcolors")));for(var i=e.parentNode.getAttribute("data-elmgradient"),n=0;n<t.length;n++)t[n]===i&&t.splice(n,1);return localStorage.setItem("_customgradcolors",JSON.stringify(t)),e.parentNode.parentNode.removeChild(e.parentNode),!1}))}))}))}out(e){if(this.opts.lang){let t=this.opts.lang[e];return t||e}return e}open(e,t,i){this.opts.onChange=t,this.opts.onFinish=i,this.targetElement=e,this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor="",this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor="",this.objStuff.querySelector(".input-gradient-deg").value="0";const n=e.style.backgroundImage;if(-1!==n.indexOf("linear-gradient")){const e=xv(n);if(null!==e)try{let t=e.colorStopList[0].color,i=e.colorStopList[1].color,n=e.line;this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor=t,this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor=i,-1!==n.indexOf("deg")&&(this.objStuff.querySelector(".input-gradient-deg").value=n.replace("deg",""))}catch(e){}}this.original=n;let o=[];if(null!==localStorage.getItem("_customgradcolors")){o=JSON.parse(localStorage.getItem("_customgradcolors"));let e="";for(var s=0;s<o.length;s++)e+=`<button class="is-elmgrad-item" data-elmgradient="${o[s]}" style="background-image:${o[s]};width:35px;height:35px;padding:0;border:none;"><div class="is-elmgrad-remove"><svg class="is-icon-flex" style="fill:rgba(255, 255, 255, 1);width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></div></button>`;this.objStuff.querySelector(".div-custom-gradients").innerHTML=e}let a=this.objStuff.querySelectorAll(".div-custom-gradients [data-elmgradient]");Array.prototype.forEach.call(a,(e=>{let t=e.getAttribute("data-elmgradient");e.addEventListener("click",(()=>{this.targetElement.style.backgroundImage=t,this.opts.onChange&&this.opts.onChange(t);const i=this.targetElement.style.backgroundImage;if(-1!==i.indexOf("linear-gradient")){const e=xv(i);if(null!==e)try{let t=e.colorStopList[0].color,i=e.colorStopList[1].color,n=e.line;this.objStuff.querySelector(".input-gradient-color1").style.backgroundColor=t,this.objStuff.querySelector(".input-gradient-color2").style.backgroundColor=i,-1!==n.indexOf("deg")&&(this.objStuff.querySelector(".input-gradient-deg").value=n.replace("deg",""))}catch(e){}}let n=this.objStuff.querySelectorAll(".div-custom-gradients [data-elmgradient]");Array.prototype.forEach.call(n,(e=>{this.removeClass(e,"active")})),this.addClass(e,"active")}))}));let r=this.objStuff.querySelectorAll(".div-custom-gradients .is-elmgrad-remove");Array.prototype.forEach.call(r,(e=>{e.addEventListener("click",(()=>{let t=[];null!==localStorage.getItem("_customgradcolors")&&(t=JSON.parse(localStorage.getItem("_customgradcolors")));for(var i=e.parentNode.getAttribute("data-elmgradient"),n=0;n<t.length;n++)t[n]===i&&t.splice(n,1);return localStorage.setItem("_customgradcolors",JSON.stringify(t)),e.parentNode.parentNode.removeChild(e.parentNode),!1}))})),this.modal.show(this.pickGradient,!1,(()=>{this.original===this.targetElement.style.backgroundImage?this.opts.onFinish&&this.opts.onFinish(!1):this.opts.onFinish&&this.opts.onFinish(!0)}),!1)}addClass(e,t){e&&(this.hasClass(e,t)||(0===e.classList.length?e.className=t:e.className=e.className+" "+t))}removeClass(e,t){e&&e.classList.length>0&&(e.className=e.className.replace(t,""))}hasClass(e,t){return!!e&&(e.classList?e.classList.contains(t):new RegExp("\\b"+t+"\\b").test(e.className))}}function xv(e){var t,i=Sv(),n=/.*gradient\s*\(((?:\([^)]*\)|[^)(]*)*)\)/.exec(e);return null!==n?(t=Cv(i,n[1])).original.trim()!==n[1].trim()&&(t.parseWarning=!0):t="Failed to find gradient",t}var wv=function(e,t){var i,n="";for(i=0;i<e.length;i++)"string"==typeof e[i]?n+=e[i]:n+=e[i].source;return new RegExp(n,t)},Sv=function(){var e=/\s*,\s*/,t=/(?:[+-]?\d*\.?\d+)(?:%|[a-z]+)?/,i=wv(["(?:",/#(?:[a-f0-9]{6}|[a-f0-9]{3})/,"|","(?:rgb|hsl)",/\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*\)/,"|","(?:rgba|hsla)",/\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*,\s*\d*\.?\d+\)/,"|",/[_a-z-][_a-z0-9-]*/,")"],""),n=wv([i,"(?:\\s+",t,"(?:\\s+",t,")?)?"],""),o=wv(["(?:",n,e,")*",n],""),s=wv(["(?:(",/(?:[+-]?\d*\.?\d+)(?:deg|grad|rad|turn)/,")|",/to\s+((?:(?:left|right)(?:\s+(?:top|bottom))?))/,")"],"");return{gradientSearch:wv(["(?:(",s,")",e,")?(",o,")"],"gi"),colorStopSearch:wv(["\\s*(",i,")","(?:\\s+","(",t,"))?","(?:",e,"\\s*)?"],"gi")}},Cv=function(e,t){var i,n,o,s;if(e.gradientSearch.lastIndex=0,null!==(n=e.gradientSearch.exec(t)))for(i={original:n[0],colorStopList:[]},n[1]&&(i.line=n[1]),n[2]&&(i.angle=n[2]),n[3]&&(i.sideCorner=n[3]),e.colorStopSearch.lastIndex=0,o=e.colorStopSearch.exec(n[4]);null!==o;)s={color:o[1]},o[2]&&(s.position=o[2]),i.colorStopList.push(s),o=e.colorStopSearch.exec(n[4]);return i};const kv=new ni;class Ev{constructor(e){this.builder=e,this.grid=new ts(e);const t=this.builder.util,i=this.builder.builderStuff;this.util=t;let n,o=i.querySelector(".is-column-tool"),s="";if(e.opts.columnHtmlEditor&&(s=`<button type="button" title="${t.out("HTML")}" class="cell-html">\n <span><svg class="is-icon-flex" style="margin-right:-3px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></span>${t.out("HTML")}\n </button>`),!o){let a=`<div class="is-tool is-column-tool">\n <button type="button" title="${t.out("Add")}" class="cell-add"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n <button type="button" title="${t.out("More")}" class="cell-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <button type="button" title="${t.out("Delete")}" class="cell-remove"><svg class="is-icon-flex" style="margin-left:-1px"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n \n <div class="is-pop columnmore">\n <div style="display:flex;flex-flow:wrap;">\n <button type="button" title="${t.out("Move Left")}" class="cell-prev"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-left"></use></svg></span>${t.out("Move Left")}</button>\n <button type="button" title="${t.out("Move Right")}" class="cell-next"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-right"></use></svg></span>${t.out("Move Right")}</button>\n <button type="button" title="${t.out("Move Up")}" class="cell-up"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></span>${t.out("Move Up")}</button>\n <button type="button" title="${t.out("Move Down")}" class="cell-down"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></span>${t.out("Move Down")}</button>\n <button type="button" title="${t.out("Increase")}" class="cell-increase"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-increase"></use></svg></span>${t.out("Increase")}</button>\n <button type="button" title="${t.out("Decrease")}" class="cell-decrease"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-decrease"></use></svg></span>${t.out("Decrease")}</button>\n <button type="button" title="${t.out("Duplicate")}" class="cell-duplicate"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></span>${t.out("Duplicate")}</button>\n ${s}\n <div class="is-separator"></div>\n <button type="button" title="${t.out("Lock")}" class="cell-locking"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-lock"></use></svg></span>${t.out("Lock")}</button>\n <button type="button" title="${t.out("Settings")}" class="cell-settings"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></span>${t.out("Settings")}</button>\n \n \x3c!--\n <button title="${t.out("Lock")}" class="cell-locking">\n <svg class="is-icon-flex"><use xlink:href="#icon-lock"></use></svg>\n </button>\n <button title="${t.out("Settings")}" class="cell-settings">\n <svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg>\n <span>${t.out("Settings")}</span>\n </button>\n --\x3e\n </div>\n </div>\n\n <div class="is-modal columnsettings">\n <div class="is-modal-content" style="width:370px;min-height:435px;padding: 0px;">\n <div class="is-modal-bar is-draggable">\n ${t.out("Column Settings")}\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n\n <div style="padding:0;margin-top:35px;">\n\n <div class="is-tabs clearfix" data-group="cellsettings">\n <a title="${t.out("General")}" id="tabCellGeneral" href="" data-content="divCellGeneral" class="active">${t.out("General")}</a>\n <a title="${t.out("Content")}" id="tabCellContent" href="" data-content="divCellContent">${t.out("Content")}</a>\n ${this.builder.useLightbox?`\n <a title="${t.out("On Click")}" id="tabCellClick" href="" data-content="divCellClick">${t.out("On Click")}</a>\n `:""}\n </div>\n <div id="divCellGeneral" class="is-tab-content" data-group="cellsettings" style="display:flex">\n \n <div style="padding-bottom: 3px;">${t.out("Background Color")}:</div>\n <div style="display:flex;">\n <button title="${t.out("Background Color")}" class="input-cell-bgcolor is-btn-color" style="margin-right:15px"></button>\n <button title="${t.out("Gradient")}" class="input-cell-gradient classic" data-value="+"> ${t.out("Gradient")} </button>\n </div>\n\n <div style="padding-top:20px;padding-bottom: 3px;">${t.out("Background Image")}:</div>\n <div>\n <div class="cell-bgimage-preview"></div>\n <div style="display: flex">\n <button title="${t.out("Image")}" class="input-cell-bgimage">\n <svg class="is-icon-flex"><use xlink:href="#ion-image"></use></svg>\n <span>${t.out("Image")}</span>\n </button>\n <button title="${t.out("Remove")}" class="input-cell-bgremove"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>\n <button title="${t.out("Adjust")}" class="input-cell-bgimageadjust"><svg class="is-icon-flex"><use xlink:href="#ion-wrench"></use></svg></button>\n </div>\n </div>\n\n <div style="padding-top:20px;padding-bottom:3px;">${t.out("Text Color")}:</div>\n <div class="div-content-textcolor">\n <button title="0" class="input-cell-textcolor" data-command="dark">${t.out("Dark")}</button>\n <button title="10" class="input-cell-textcolor" data-command="light">${t.out("Light")}</button>\n \n <button title="${t.out("Clear")}" class="input-cell-textcolor" data-command=""><svg class="is-icon-flex" style="flex:none;width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n\n <div style="padding-top:20px;">\n <label class="label-cell-grayscale label-checkbox" for="chkCellGrayscale"><input id="chkCellGrayscale" class="chk-cell-grayscale" type="checkbox" /> ${t.out("Grayscale")}</label>\n </div>\n \n <div style="display:none;padding-top:20px;padding-bottom:3px;">${t.out("Enlarge Row")}:</div>\n <div style="display: none;">\n <button title="${t.out("Normal")}" class="input-row-enlarge" data-command="0" style="margin-right:1px;">${t.out("Normal")}</button>\n <button title="+10%" class="input-row-enlarge" data-command="10" style="width:50px;margin-right:1px;">+10%</button>\n <button title="+20%" class="input-row-enlarge" data-command="20" style="width:50px;margin-right:1px;">+20%</button>\n <button title="+30%" class="input-row-enlarge" data-command="30" style="width:50px;margin-right:1px;">+30%</button>\n <button title="+40%" class="input-row-enlarge" data-command="40" style="width:50px;margin-right:1px;">+40%</button>\n <button title="+50%" class="input-row-enlarge" data-command="50" style="width:50px;margin-right:1px;">+50%</button>\n <button title="+60%" class="input-row-enlarge" data-command="60" style="width:50px;margin-right:1px;">+60%</button>\n </div>\n\n </div>\n\n <div id="divCellContent" class="is-tab-content" data-group="cellsettings">\n\n <div style="padding-bottom:3px;">${t.out("Padding")}:</div>\n\n <div class="div-content-padding-pos" style="align-items:center;${this.builder.useCssClasses?"":"display:none"}">\n <div style="width:130px">\n <div style="display: flex;justify-content: center;">\n <button title="${t.out("Top")}" class="input-cell-padding-pos on" data-command="top">${t.out("Top")}</button>\n </div>\n <div style="display: flex;justify-content: center;">\n <button title="${t.out("Left")}" class="input-cell-padding-pos on" data-command="left">${t.out("Left")}</button>\n <button title="${t.out("Right")}" class="input-cell-padding-pos on" data-command="right">${t.out("Right")}</button>\n </div>\n <div style="display: flex;justify-content: center;">\n <button title="${t.out("Bottom")}" class="input-cell-padding-pos on" data-command="bottom">${t.out("Bottom")}</button>\n </div>\n </div>\n <button title="${t.out("All")}" class="input-cell-padding-pos" data-command="all">${t.out("All")}</button>\n <button title="x" class="input-cell-padding-pos" data-command="x" style="width:50px">x</button>\n <button title="y" class="input-cell-padding-pos" data-command="y" style="width:50px">y</button>\n </div>\n\n <div class="div-content-padding" style="flex-flow:wrap;margin-top:7px">\n <div style="display:flex;flex-flow:wrap;${this.builder.useCssClasses?"display:none":""}">\n <button title="0" class="input-cell-padding" data-command="0">0</button>\n <button title="10" class="input-cell-padding" data-command="10">10</button>\n <button title="20" class="input-cell-padding" data-command="20">20</button>\n <button title="30" class="input-cell-padding" data-command="30">30</button>\n <button title="40" class="input-cell-padding" data-command="40">40</button>\n <button title="50" class="input-cell-padding" data-command="50">50</button>\n <button title="60" class="input-cell-padding" data-command="60">60</button>\n </div>\n\n <div style="display:flex;flex-flow:wrap;${this.builder.useCssClasses?"":"display:none"}">\n <button title="0" class="input-cell-padding" data-command="0">0</button>\n <button title="20" class="input-cell-padding" data-command="1">10</button>\n <button title="40" class="input-cell-padding" data-command="2">20</button>\n <button title="60" class="input-cell-padding" data-command="3">30</button>\n <button title="60" class="input-cell-padding" data-command="4">40</button>\n <button title="60" class="input-cell-padding" data-command="5">50</button>\n <button title="60" class="input-cell-padding" data-command="6">60</button>\n <button title="60" class="input-cell-padding" data-command="7">70</button>\n <button title="60" class="input-cell-padding" data-command="8">80</button>\n <button title="60" class="input-cell-padding" data-command="9">90</button>\n <button title="60" class="input-cell-padding" data-command="10">100</button>\n <button title="60" class="input-cell-padding" data-command="11">110</button>\n <button title="60" class="input-cell-padding" data-command="12">120</button>\n <button title="60" class="input-cell-padding" data-command="14">140</button>\n <button title="60" class="input-cell-padding" data-command="16">160</button>\n <button title="${t.out("Clear")}" class="input-cell-padding" data-command=""><svg class="is-icon-flex" style="flex:none;width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n </div>\n\n <div style="padding-top:20px;padding-bottom:3px;">${t.out("Height")}:</div>\n <div class="div-content-height">\n <button title="Decrease" class="input-cell-height" data-command="-">-</button>\n <button title="Increase" class="input-cell-height" data-command="+">+</button>\n <button title="300" class="input-cell-height" data-command="300">300</button>\n <button title="400" class="input-cell-height" data-command="400">400</button>\n <button title="500" class="input-cell-height" data-command="500">500</button>\n <button title="600" class="input-cell-height" data-command="600">600</button>\n <button title="700" class="input-cell-height" data-command="700">700</button>\n <button title="${t.out("Clear")}" class="input-cell-height" data-command=""><svg class="is-icon-flex" style="flex:none;width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n\n <div style="padding-top:20px;padding-bottom:3px;">${t.out("Content Alignment")}:</div>\n <div style="display:flex;align-items: flex-end;">\n <div style="width:120px">\n <div class="div-content-position">\n <button class="cmd-content-pos" data-pos="topleft" title="${t.out("Top Left")}" type="button" style=""><svg class="is-icon-flex" style="transform: rotate(315deg);"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></button>\n <button class="cmd-content-pos" data-pos="topcenter" title="${t.out("Top Center")}" type="button"><svg class="is-icon-flex" style=""><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></button>\n <button class="cmd-content-pos" data-pos="topright" topright="${t.out("Top Right")}" type="button"><svg class="is-icon-flex" style="transform: rotate(45deg);"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></button>\n </div>\n <div class="div-content-position">\n <button class="cmd-content-pos" data-pos="centerleft" title="${t.out("Center Left")}" type="button"><svg class="is-icon-flex" style=""><use xlink:href="#ion-ios-arrow-thin-left"></use></svg></button>\n <button class="cmd-content-pos" data-pos="center" title="${t.out("Center")}" type="button"><svg class="is-icon-flex" style="width:6px;height:6px;"><use xlink:href="#ion-android-contract"></use></svg></button>\n <button class="cmd-content-pos" data-pos="centerright" title="${t.out("Center Right")}" type="button"><svg class="is-icon-flex" style=""><use xlink:href="#ion-ios-arrow-thin-right"></use></svg></button>\n </div>\n <div class="div-content-position">\n <button class="cmd-content-pos" data-pos="bottomleft" title="${t.out("Bottom Left")}" type="button" style=";"><svg class="is-icon-flex" style="transform: rotate(45deg);"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></button>\n <button class="cmd-content-pos" data-pos="bottomcenter" title="${t.out("Bottom Center")}" type="button"><svg class="is-icon-flex" style=""><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></button>\n <button class="cmd-content-pos" data-pos="bottomright" title="${t.out("Bottom Right")}" type="button"><svg class="is-icon-flex" style="transform: rotate(315deg);"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></button>\n </div>\n </div>\n <div>\n <button title="${t.out("Clear")}" class="cmd-content-pos" data-pos=""><svg class="is-icon-flex" style="flex:none;width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n </div>\n </div>\n\n <div id="divCellClick" class="is-tab-content" data-group="cellsettings">\n\n <label for="inpCellLinkSource" style="display:block">${t.out("Open")}:</label>\n <div class="image-src">\n \x3c!--<div class="div-input-text">--\x3e\n <input id="inpCellLinkSource" class="input-src" type="text" style="height:38px;">\n \x3c!--<button title="${t.out("Clear")}" class="input-clear"><svg class="is-icon-flex"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>--\x3e\n <button title="${t.out("Select")}" class="input-select" style="flex:none;width:40px;height:38px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <div class="image-larger4" style="position: relative; flex: 0 0 auto; width: 40px; height: 38px; box-shadow: rgba(0, 0, 0, 0.32) 0px 3px 6px -6px;">\n <form class="form-upload-larger" target="frameTargetLinkUpload" method="post" action="${this.builder.opts.largerImageHandler}" enctype="multipart/form-data" style="position:absolute;top:0;left:0;width:100%;height:100%;">\n <input id="hidRefId4" name="hidRefId" type="hidden" value="">\n <svg class="is-icon-flex" style="position: absolute;top: 10px;left: 15px;"><use xlink:href="#ion-image"></use></svg>\n <input title="${t.out("Select")}" id="fileImage4" name="fileImage" type="file" accept="image/*,video/mp4" style="position:absolute;top:-30px;left:0;width:100%;height:68px;opacity: 0;cursor: pointer;">\n </form>\n\n <iframe id="frameTargetLinkUpload" name="frameTargetLinkUpload" src="about:blank" style="width:1px;height:1px;position:absolute;top:0;right:-100000px"></iframe>\n </div>\n </div>\n <div style="padding-top:20px">\n <button class="input-testclick">${t.out("Test")}</button>\n </div>\n\n <p>${t.out("You can test the On-Click action on page if you lock the column by clicking the lock button")} <svg class="is-icon-flex"><use xlink:href="#icon-lock"></use></svg>.</p>\n\n </div>\n \n </div>\n \n </div>\n </div>\n\n <div class="is-modal imageadjust">\n <div class="is-modal-content" style="max-width:420px;">\n <div class="is-modal-bar is-draggable">\n ${t.out("Background Image Adjustments")}\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n\n <div style="padding:0;margin-top:25px;">\n\n <div style="padding-bottom:3px;">${t.out("Scale")}:</div>\n <div style="padding-top:4px">\n <input type="range" min="100" max="500" value="0" class="image-scale-slider is-rangeslider">\n </div>\n\n <div style="padding-bottom:3px;padding-top: 20px;">${t.out("Horizontal")}:</div>\n <div style="padding-top:4px">\n <input type="range" min="0" max="100" value="0" class="image-hor-slider is-rangeslider">\n </div>\n\n <div style="padding-bottom:3px;padding-top: 20px;">${t.out("Vertical")}:</div>\n <div style="padding-top:4px">\n <input type="range" min="0" max="100" value="0" class="image-vert-slider is-rangeslider">\n </div>\n\n </div>\n\n </div>\n </div> \n\n\n <div class="is-modal imagesource">\n <div class="is-modal-content" style="max-width:550px;">\n\n <label for="inpCellImageBgSource" style="display:block">${t.out("Source")}:</label>\n <div class="image-src">\n <input id="inpCellImageBgSource" class="input-src" type="text">\n <button title="${t.out("Select")}" class="input-select" style="flex:none;width:50px;height:50px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <div class="image-larger3" style="position: relative; flex: 0 0 auto; width: 50px; height: 50px; box-shadow: rgba(0, 0, 0, 0.32) 0px 3px 6px -6px;">\n <form class="form-upload-larger" target="frameTargetCellImageUpload" method="post" action="${this.builder.opts.largerImageHandler}" enctype="multipart/form-data" style="position:absolute;top:0;left:0;width:100%;height:100%;">\n <input id="hidRefId3" name="hidRefId" type="hidden" value="">\n <svg class="is-icon-flex" style="position: absolute;top: 16px;left: 15px;"><use xlink:href="#ion-image"></use></svg>\n <input title="${t.out("Select")}" id="fileImage3" name="fileImage" type="file" accept="image/*" style="position:absolute;top:-30px;left:0;width:100%;height:80px;opacity: 0;cursor: pointer;">\n </form>\n\n <iframe id="frameTargetCellImageUpload" name="frameTargetCellImageUpload" src="about:blank" style="width:1px;height:1px;position:absolute;top:0;right:-100000px"></iframe>\n </div>\n </div>\n\n <div style="text-align:right;margin-top:20px;">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n\n </div>\n </div>\n\n <div class="is-locked-indicator">\n <svg class="is-icon-flex"><use xlink:href="#icon-lock"></use></svg>\n </div>\n `;kv.appendHtml(i,a),o=i.querySelector(".is-column-tool"),n=i.querySelector(".columnmore"),this.lockIndicator=i.querySelector(".is-locked-indicator"),this.cellSettings=i.querySelector(".is-modal.columnsettings");const r=Jo(e);let l=o.querySelectorAll("[title]");Array.prototype.forEach.call(l,(e=>{e.setAttribute("data-title",e.getAttribute("title"))}));let d=o.querySelector(".cell-add");kv.addEventListener(d,"click",(()=>{if(!t.cellSelected())return;r.querySelector(".is-pop-tabs").style.display="flex";const e=o.querySelector(".cell-add"),i=e.getBoundingClientRect().top+window.pageYOffset,n=e.getBoundingClientRect().left+window.pageXOffset;r.style.display="flex",r.style.top=i+35+"px",r.style.left=n+"px",kv.removeClass(r,"arrow-bottom"),kv.removeClass(r,"arrow-left"),kv.removeClass(r,"arrow-right"),kv.removeClass(r,"center"),kv.removeClass(r,"right"),kv.addClass(r,"arrow-top"),kv.addClass(r,"left"),"left"===r.querySelector(".active").getAttribute("data-value")?r.setAttribute("data-mode","cell-left"):r.setAttribute("data-mode","cell-right")})),d=o.querySelector(".cell-more"),kv.addEventListener(d,"click",(()=>{let e=t.cellSelected();if(!e)return;const i=o.querySelector(".cell-more"),s=i.getBoundingClientRect().top+window.pageYOffset,a=i.getBoundingClientRect().left+window.pageXOffset;n.style.display="flex",n.style.top=s+35+"px",n.style.left=a-7+"px",kv.removeClass(n,"arrow-bottom"),kv.removeClass(n,"arrow-left"),kv.removeClass(n,"arrow-right"),kv.removeClass(n,"center"),kv.removeClass(n,"right"),kv.addClass(n,"arrow-top"),kv.addClass(n,"left");const r=this.columnMore.querySelector(".cell-locking");e.hasAttribute("data-noedit")?kv.addClass(r,"on"):kv.removeClass(r,"on")})),d=o.querySelector(".cell-remove"),kv.addEventListener(d,"click",(()=>{this.grid.removeColumn(),t.clearControls()})),d=n.querySelector(".cell-prev"),kv.addEventListener(d,"click",(()=>{this.grid.moveColumnPrevious(),t.clearControls()})),d=n.querySelector(".cell-next"),kv.addEventListener(d,"click",(()=>{this.grid.moveColumnNext(),t.clearControls()})),d=n.querySelector(".cell-up"),kv.addEventListener(d,"click",(()=>{this.grid.moveColumnUp(),t.clearControls()})),d=n.querySelector(".cell-down"),kv.addEventListener(d,"click",(()=>{this.grid.moveColumnDown(),t.clearControls()})),d=n.querySelector(".cell-increase"),kv.addEventListener(d,"click",(()=>{this.grid.increaseColumn(),t.clearControls()})),d=n.querySelector(".cell-decrease"),kv.addEventListener(d,"click",(()=>{this.grid.decreaseColumn(),t.clearControls()})),d=n.querySelector(".cell-duplicate"),kv.addEventListener(d,"click",(()=>{this.grid.duplicateColumn(),this.columnMore.style.display="",t.clearControls()})),d=n.querySelector(".cell-html"),d&&kv.addEventListener(d,"click",(()=>{if(!t.cellSelected())return;new Wo(this.builder).view("cell")})),document.addEventListener("mousedown",(e=>{var t=(e=e||window.event).target||e.srcElement;if("flex"===n.style.display){let e=kv.parentsHasClass(t,"columnmore"),i=kv.parentsHasClass(t,"cell-more");if(e||i)return;n.style.display=""}}));const c=document.querySelector(".is-modal.columnsettings"),u=document.querySelector(".is-modal.imagesource"),p=document.querySelector(".is-modal.imageadjust");this.cellSettings=c,this.imageSource=u,this.imageAdjust=p;const h=n.querySelector(".cell-locking");h&&kv.addEventListener(h,"click",(e=>{let i=t.cellSelected();i&&(i.hasAttribute("data-noedit")?(i.removeAttribute("data-noedit"),i.contentEditable=!0,kv.removeClass(h,"on")):(i.setAttribute("data-noedit",""),i.contentEditable=!1,kv.addClass(h,"on"),this.util.clearActiveElement(!0)),this.showHideLockIndicator(i),this.builder.element.applyBehavior(i),this.columnMore.style.display="",e.preventDefault())})),d=n.querySelector(".cell-settings"),d&&kv.addEventListener(d,"click",(()=>{let e=t.cellSelected();e&&(this.readCellStyles(e),t.saveSelection(),t.showModal(c,!1,(()=>{"flex"===i.querySelector(".is-rte-tool").style.display&&t.restoreSelection()})),this.columnMore.style.display="")}));c.querySelector(".is-modal-close").addEventListener("click",(()=>{t.hideModal(c)})),c.querySelector(".input-cell-bgcolor").addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let i=e.target;this.builder.colorPicker.open((e=>{t.cellSelected().style.backgroundColor=e,i.style.backgroundColor=e,this.builder.opts.onChange()}),c.querySelector(".input-cell-bgcolor").style.backgroundColor)})),d=c.querySelector(".input-cell-bgimage"),d&&kv.addEventListener(d,"click",(()=>{let e=t.cellSelected();if(!e)return;let i="";e.style.backgroundImage&&-1!==e.style.backgroundImage.indexOf("url(")&&(i=e.style.backgroundImage.slice(4,-1).replace(/["']/g,"")),this.openImagePicker(i,(e=>{let i=t.cellSelected();if(!i)return;this.builder.uo.saveForUndo(),i.style.backgroundImage=`url("${e}")`,i.style.backgroundSize="cover",i.style.backgroundRepeat="no-repeat";const n=c.querySelector(".cell-bgimage-preview"),o=this.cellSettings.querySelector(".input-cell-bgimageadjust"),s=this.cellSettings.querySelector(".input-cell-bgremove");o.style.display="none",s.style.display="none",""!==e?(n.innerHTML=`<img src="${e}">`,o.style.display="flex",s.style.display="flex"):n.innerHTML="",this.builder.opts.onChange()}))})),d=c.querySelector(".input-cell-bgimageadjust"),d&&kv.addEventListener(d,"click",(()=>{let e=t.cellSelected();e&&this.openImageAdjust(e)})),d=c.querySelector(".input-cell-bgremove"),d&&kv.addEventListener(d,"click",(()=>{let e=t.cellSelected();if(!e)return;this.builder.uo.saveForUndo(),e.style.backgroundImage="",e.style.backgroundSize="",e.style.backgroundRepeat="";const i=c.querySelector(".cell-bgimage-preview"),n=this.cellSettings.querySelector(".input-cell-bgimageadjust"),o=this.cellSettings.querySelector(".input-cell-bgremove");n.style.display="none",o.style.display="none",i.innerHTML="",this.builder.opts.onChange()}));p.querySelector(".is-modal-close").addEventListener("click",(()=>{t.hideModal(p)})),""!==this.builder.opts.largerImageHandler||this.builder.opts.onLargerImageUpload||(u.querySelector(".image-larger3").style.display="none"),this.builder.opts.onImageSelectClick||""!==this.builder.opts.imageselect||(u.querySelector(".input-select").style.display="none");let g=u.querySelector(".image-src");this.builder.opts.onImageSelectClick||this.builder.opts.imageselect?(d=u.querySelector(".input-select"),d&&kv.addEventListener(d,"click",(()=>{if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:u.querySelector(".input-src"),theTrigger:d});else{let e=i.querySelector(".is-modal.imageselect"),n=e.querySelector("iframe");this.builder.opts.assetRefresh&&(n.src=this.builder.opts.imageselect,this.builder.opts.assetRefresh=!1),"about:blank"===n.src&&(n.src=this.builder.opts.imageselect),t.showModal(e)}this.builder.targetInput=u.querySelector(".input-src"),this.builder.targetCallback=null,this.builder.targetAssetType="image"}))):kv.removeClass(g,"image-select");let f=u.querySelector("#fileImage3");kv.addEventListener(f,"change",(e=>{let t=f;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;kv.addClass(i,"please-wait"),u.querySelector("#hidRefId3").value=this.builder.opts.customval,this.builder.opts.onLargerImageUpload?this.builder.opts.onLargerImageUpload(e):i.submit(),f.value=""}));const m=u.querySelector(".input-ok");kv.addEventListener(m,"click",(()=>{const e=this.imageSource.querySelector(".input-src").value;this.builder.imageSelectedCallback&&this.builder.imageSelectedCallback(e),t.hideModal(u)}));const v=u.querySelector(".input-cancel");kv.addEventListener(v,"click",(()=>{t.hideModal(u)}));const b=p.querySelector(".image-scale-slider");b.onfocus=()=>{this.builder.uo.saveForUndo(!0),b.blur()},b.oninput=()=>{let e=b.value;this.builder.elementSelected.style.backgroundSize=e+"%"},b.onchange=()=>{this.builder.opts.onChange()};const y=p.querySelector(".image-hor-slider");y.onfocus=()=>{this.builder.uo.saveForUndo(!0),y.blur()},y.oninput=()=>{let e=y.value;this.builder.elementSelected.style.backgroundPositionX=e+"%"},y.onchange=()=>{this.builder.opts.onChange()};const _=p.querySelector(".image-vert-slider");_.onfocus=()=>{this.builder.uo.saveForUndo(!0),_.blur()},_.oninput=()=>{let e=_.value;this.builder.elementSelected.style.backgroundPositionY=e+"%"},_.onchange=()=>{this.builder.opts.onChange()},l=c.querySelectorAll(".input-row-enlarge"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected().parentNode;kv.removeClass(n,"expand-10"),kv.removeClass(n,"expand-20"),kv.removeClass(n,"expand-30"),kv.removeClass(n,"expand-40"),kv.removeClass(n,"expand-50"),kv.removeClass(n,"expand-60"),kv.addClass(n,"expand-"+i),this.builder.opts.onChange()}))}));const x=new _v({colors:this.builder.colors,gradientcolors:this.builder.opts.gradientcolors,lang:this.builder.opts.lang});c.querySelector(".input-cell-gradient").addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0);let e=t.cellSelected();x.open(e,(()=>{this.cellSettings.querySelector(".input-cell-bgimageadjust").style.display="none";this.cellSettings.querySelector(".input-cell-bgremove").style.display="none";this.cellSettings.querySelector(".cell-bgimage-preview").innerHTML="";this.imageSource.querySelector(".input-src").value="",this.builder.opts.onChange()}),(e=>{}))})),l=c.querySelectorAll(".input-cell-textcolor"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected();"dark"===i?(kv.removeClass(n,"is-light-text"),kv.addClass(n,"is-dark-text")):"light"===i?(kv.removeClass(n,"is-dark-text"),kv.addClass(n,"is-light-text")):(kv.removeClass(n,"is-dark-text"),kv.removeClass(n,"is-light-text"));let o=n.querySelectorAll("*");Array.prototype.forEach.call(o,(e=>{e.style.color&&(e.style.color="")})),this.builder.opts.onChange()}))})),l=c.querySelectorAll(".input-cell-padding-pos"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{let t=e.getAttribute("data-command"),i=this.cellSettings.querySelectorAll(".input-cell-padding-pos");Array.prototype.forEach.call(i,(e=>{kv.removeClass(e,"on")})),"all"===t?(kv.addClass(this.cellSettings.querySelector('button[data-command="top"]'),"on"),kv.addClass(this.cellSettings.querySelector('button[data-command="left"]'),"on"),kv.addClass(this.cellSettings.querySelector('button[data-command="right"]'),"on"),kv.addClass(this.cellSettings.querySelector('button[data-command="bottom"]'),"on")):"x"===t?(kv.addClass(this.cellSettings.querySelector('button[data-command="left"]'),"on"),kv.addClass(this.cellSettings.querySelector('button[data-command="right"]'),"on")):"y"===t?(kv.addClass(this.cellSettings.querySelector('button[data-command="top"]'),"on"),kv.addClass(this.cellSettings.querySelector('button[data-command="bottom"]'),"on")):kv.addClass(e,"on");let n=this.cellSettings.querySelectorAll(".input-cell-padding");Array.prototype.forEach.call(n,(e=>{kv.removeClass(e,"on")}))}))})),l=c.querySelectorAll(".input-cell-padding"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected(),o=this.cellSettings.querySelectorAll(".input-cell-padding");if(Array.prototype.forEach.call(o,(e=>{kv.removeClass(e,"on")})),this.builder.useCssClasses){let t;kv.removeClass(n,"padding-0"),kv.removeClass(n,"padding-10"),kv.removeClass(n,"padding-20"),kv.removeClass(n,"padding-30"),kv.removeClass(n,"padding-40"),kv.removeClass(n,"padding-50"),kv.removeClass(n,"padding-60");let o=this.cellSettings.querySelectorAll(".input-cell-padding-pos.on");if(2===o.length)if(t=o[0].getAttribute("data-command"),"left"===t){let e=this.builder.cssClasses.padding.left;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.right;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.x;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.x[`px_${i}`])}else{let e=this.builder.cssClasses.padding.top;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.bottom;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.y;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.y[`py_${i}`])}else if(4===o.length){let e=this.builder.cssClasses.padding.top;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.bottom;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.left;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.right;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.all;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.x;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}e=this.builder.cssClasses.padding.y;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.all[`p_${i}`])}else if(t=o[0].getAttribute("data-command"),"top"===t){let e=this.builder.cssClasses.padding.top;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.top[`pt_${i}`])}else if("bottom"===t){let e=this.builder.cssClasses.padding.bottom;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.bottom[`pb_${i}`])}else if("left"===t){let e=this.builder.cssClasses.padding.left;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.left[`pl_${i}`])}else if("right"===t){let e=this.builder.cssClasses.padding.right;for(let t=0;t<Object.keys(e).length;t++){let i=Object.values(e)[t];kv.removeClass(n,i)}""!==i&&kv.addClass(n,this.builder.cssClasses.padding.right[`pr_${i}`])}kv.addClass(e,"on")}else kv.removeClass(n,"padding-0"),kv.removeClass(n,"padding-10"),kv.removeClass(n,"padding-20"),kv.removeClass(n,"padding-30"),kv.removeClass(n,"padding-40"),kv.removeClass(n,"padding-50"),kv.removeClass(n,"padding-60"),""!==i&&(kv.addClass(n,"padding-"+i),kv.addClass(e,"on"));this.builder.opts.onChange()}))}));const w=c.querySelector(".chk-cell-grayscale");if(kv.addEventListener(w,"click",(()=>{this.builder.uo.saveForUndo();let e=t.cellSelected();w.checked?e.style.filter="grayscale(1)":e.style.filter&&(e.style.filter=e.style.filter.replace("grayscale(1)","")),this.builder.opts.onChange()})),l=c.querySelectorAll(".input-cell-height"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{let i=this.builder.colHeight;this.builder.uo.saveForUndo();let n=e.getAttribute("data-command"),o=t.cellSelected(),s=this.cellSettings.querySelectorAll(".input-cell-height");if(Array.prototype.forEach.call(s,(e=>{kv.removeClass(e,"on")})),""===n)Array.prototype.forEach.call(i,(e=>{kv.removeClass(o,"min-height-"+e)}));else if("-"===n){let e=o.offsetHeight;Array.prototype.forEach.call(i,(t=>{if(e-t>0&&e-t<=50)if(Array.prototype.forEach.call(i,(e=>{kv.removeClass(o,"min-height-"+e)})),kv.addClass(o,"min-height-"+t),300===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');kv.addClass(e,"on")}else if(400===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');kv.addClass(e,"on")}else if(500===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');kv.addClass(e,"on")}else if(600===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');kv.addClass(e,"on")}else if(700===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');kv.addClass(e,"on")}}))}else if("+"===n){let e=o.offsetHeight;Array.prototype.forEach.call(i,(t=>{if(t-e>0&&t-e<=50)if(Array.prototype.forEach.call(i,(e=>{kv.removeClass(o,"min-height-"+e)})),kv.addClass(o,"min-height-"+t),300===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');kv.addClass(e,"on")}else if(400===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');kv.addClass(e,"on")}else if(500===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');kv.addClass(e,"on")}else if(600===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');kv.addClass(e,"on")}else if(700===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');kv.addClass(e,"on")}}))}else Array.prototype.forEach.call(i,(e=>{kv.removeClass(o,"min-height-"+e)})),kv.addClass(o,"min-height-"+n),kv.addClass(e,"on");this.builder.opts.onChange()}))})),l=c.querySelectorAll(".cmd-content-pos"),Array.prototype.forEach.call(l,(e=>{kv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-pos"),n=t.cellSelected();const o=this.cellSettings.querySelectorAll(".cmd-content-pos");if(Array.prototype.forEach.call(o,(e=>{kv.removeClass(e,"on")})),this.builder.useCssClasses)if(""!==i){let t=this.builder.cssClasses.display;if(kv.addCssClass(n,t.flex,t),t=this.builder.cssClasses.flexDirection,kv.addCssClass(n,t.column,t),"topleft"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.start,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.start,t),kv.addClass(e,"on")}if("topcenter"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.start,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.center,t),kv.addClass(e,"on")}if("topright"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.start,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.end,t),kv.addClass(e,"on")}if("centerleft"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.center,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.start,t),kv.addClass(e,"on")}if("center"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.center,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.center,t),kv.addClass(e,"on")}if("centerright"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.center,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.end,t),kv.addClass(e,"on")}if("bottomleft"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.end,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.start,t),kv.addClass(e,"on")}if("bottomcenter"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.end,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.center,t),kv.addClass(e,"on")}if("bottomright"===i){let t=this.builder.cssClasses.justifyContent;kv.addCssClass(n,t.end,t),t=this.builder.cssClasses.alignItems,kv.addCssClass(n,t.end,t),kv.addClass(e,"on")}}else kv.removeCssClasses(n,this.builder.cssClasses.display),kv.removeCssClasses(n,this.builder.cssClasses.flexDirection),kv.removeCssClasses(n,this.builder.cssClasses.justifyContent),kv.removeCssClasses(n,this.builder.cssClasses.alignItems);else n.style.display="flex",n.style.flexDirection="column","topleft"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="flex-start",kv.addClass(e,"on")),"topcenter"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="center",kv.addClass(e,"on")),"topright"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="flex-end",kv.addClass(e,"on")),"centerleft"===i&&(n.style.justifyContent="center",n.style.alignItems="flex-start",kv.addClass(e,"on")),"center"===i&&(n.style.justifyContent="center",n.style.alignItems="center",kv.addClass(e,"on")),"centerright"===i&&(n.style.justifyContent="center",n.style.alignItems="flex-end",kv.addClass(e,"on")),"bottomleft"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="flex-start",kv.addClass(e,"on")),"bottomcenter"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="center",kv.addClass(e,"on")),"bottomright"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="flex-end",kv.addClass(e,"on"));this.builder.opts.onChange()}))})),""!==this.builder.opts.largerImageHandler||this.builder.opts.onLargerImageUpload||(this.cellSettings.querySelector(".image-larger4").style.display="none"),this.builder.opts.onImageSelectClick||""!==this.builder.opts.imageselect||(this.cellSettings.querySelector(".input-select").style.display="none"),this.builder.opts.onImageSelectClick||this.builder.opts.imageselect||this.builder.opts.onFileSelectClick||this.builder.opts.fileselect){const e=this.cellSettings.querySelector(".input-src");d=this.cellSettings.querySelector(".input-select"),d&&kv.addEventListener(d,"click",(()=>{if(this.builder.targetInput=e,this.builder.targetCallback=()=>{this.applyClick()},this.builder.targetAssetType="media",this.builder.opts.onFileSelectClick)this.builder.opts.onFileSelectClick({targetInput:e,theTrigger:d}),kv.observeElement(e,"value",(()=>{this.applyClick()}));else if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:e,theTrigger:d}),kv.observeElement(e,"value",(()=>{this.applyClick()}));else if(this.builder.opts.fileselect){let n=i.querySelector(".is-modal.fileselect"),o=n.querySelector("iframe");this.builder.opts.assetRefresh&&(o.src=this.builder.opts.fileselect,this.builder.opts.assetRefresh=!1),"about:blank"===o.src&&(o.src=this.builder.opts.fileselect),t.showModal(n),this.builder.targetInput=e,this.builder.targetCallback=()=>{this.applyClick()},this.builder.targetAssetType="media"}else if(this.builder.opts.imageselect){let n=i.querySelector(".is-modal.imageselect"),o=n.querySelector("iframe");this.builder.opts.assetRefresh&&(o.src=this.builder.opts.imageselect,this.builder.opts.assetRefresh=!1),"about:blank"===o.src&&(o.src=this.builder.opts.imageselect),t.showModal(n),this.builder.targetInput=e,this.builder.targetCallback=()=>{this.applyClick()},this.builder.targetAssetType="media"}}))}const S=this.cellSettings.querySelector(".input-src");kv.observeElement(S,"value",(()=>{this.applyClick()}));let C=this.cellSettings.querySelector("#fileImage4");kv.addEventListener(C,"change",(e=>{let t=C;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;kv.addClass(i,"please-wait"),this.cellSettings.querySelector("#hidRefId4").value=this.builder.opts.customval,this.builder.opts.onLargerImageUpload?this.builder.opts.onLargerImageUpload(e):i.submit(),C.value=""}));const k=this.cellSettings.querySelector(".input-src");k.addEventListener("focus",(()=>{this.builder.uo.saveForUndo(!0)})),k.addEventListener("keyup",(()=>{let e=this.util.cellSelected();e&&(""===k.value?(kv.removeClass(e,"block-click"),e.removeAttribute("data-modal-url")):(kv.addClass(e,"block-click"),e.setAttribute("data-modal-url",k.value)),this.builder.opts.onChange())})),this.cellSettings.querySelector(".input-testclick").addEventListener("click",(()=>{let e=this.util.cellSelected();e&&""!==k.value&&this.builder.openMedia(e)}))}this.columnTool=o,this.columnMore=n}applyClick(){let e=this.util.cellSelected();if(!e)return;const t=this.cellSettings.querySelector(".input-src");let i=e.getAttribute("data-modal-url");i||(i=""),i!==t.value&&(this.builder.uo.saveForUndo(),kv.addClass(e,"block-click"),e.setAttribute("data-modal-url",t.value),this.builder.opts.onChange())}readCellStyles(e){this.util.clearActiveElement();let t=e.style.backgroundColor,i=this.cellSettings.querySelector(".input-cell-bgcolor");i.style.backgroundColor=t||"transparent";let n="";const o=this.cellSettings.querySelector(".cell-bgimage-preview"),s=this.cellSettings.querySelector(".input-cell-bgimageadjust");s.style.display="none";const a=this.cellSettings.querySelector(".input-cell-bgremove");a.style.display="none",e.style.backgroundImage&&-1!==e.style.backgroundImage.indexOf("url(")?(n=e.style.backgroundImage.slice(4,-1).replace(/["']/g,""),o.innerHTML=`<img src="${n}">`,s.style.display="flex",a.style.display="flex"):o.innerHTML="";const r=this.cellSettings.querySelector(".input-src");r.value="";let l=e.getAttribute("data-modal-url");l&&(r.value=l);let d=this.cellSettings.querySelectorAll(".input-cell-padding");if(Array.prototype.forEach.call(d,(e=>{kv.removeClass(e,"on")})),kv.hasClass(e,"padding-0")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="0"');kv.addClass(e,"on")}else if(kv.hasClass(e,"padding-10")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="10"');kv.addClass(e,"on")}else if(kv.hasClass(e,"padding-20")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="20"');kv.addClass(e,"on")}else if(kv.hasClass(e,"padding-30")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="30"');kv.addClass(e,"on")}else if(kv.hasClass(e,"padding-40")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="40"');kv.addClass(e,"on")}else if(kv.hasClass(e,"padding-50")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="50"');kv.addClass(e,"on")}const c=this.cellSettings.querySelector(".chk-cell-grayscale");c.checked=!1,e.style.filter&&-1!==e.style.filter.indexOf("grayscale")&&(c.checked=!0),d=this.cellSettings.querySelectorAll(".input-cell-height"),Array.prototype.forEach.call(d,(e=>{kv.removeClass(e,"on")}));let u=0,p=this.builder.colHeight;if(Array.prototype.forEach.call(p,(t=>{kv.hasClass(e,"min-height-"+t)&&(u=t)})),300===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');kv.addClass(e,"on")}else if(400===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');kv.addClass(e,"on")}else if(500===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');kv.addClass(e,"on")}else if(600===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');kv.addClass(e,"on")}else if(700===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');kv.addClass(e,"on")}d=this.cellSettings.querySelectorAll(".cmd-content-pos"),Array.prototype.forEach.call(d,(e=>{kv.removeClass(e,"on")}));let h=e.style.alignItems,g=e.style.justifyContent,f="";if("flex-start"===g?"flex-start"===h?f="topleft":"center"===h?f="topcenter":"flex-end"===h&&(f="topright"):"center"===g?"flex-start"===h?f="centerleft":"center"===h?f="center":"flex-end"===h&&(f="centerright"):"flex-end"===g&&("flex-start"===h?f="bottomleft":"center"===h?f="bottomcenter":"flex-end"===h&&(f="bottomright")),"topleft"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="topleft"');kv.addClass(e,"on")}else if("topcenter"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="topcenter"');kv.addClass(e,"on")}else if("topright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="topright"');kv.addClass(e,"on")}else if("centerleft"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="centerleft"');kv.addClass(e,"on")}else if("center"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="center"');kv.addClass(e,"on")}else if("centerright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="centerright"');kv.addClass(e,"on")}else if("bottomleft"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomleft"');kv.addClass(e,"on")}else if("bottomcenter"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomcenter"');kv.addClass(e,"on")}else if("bottomright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomright"');kv.addClass(e,"on")}}openImagePicker(e,t){const i=this.imageSource;i.querySelector(".input-src").value=e,this.builder.imageSelectedCallback=t,i.style.zIndex="10005",this.util.showModal(i,!1)}openImageAdjust(e){const t=this.imageAdjust,i=t.querySelector(".image-scale-slider"),n=t.querySelector(".image-hor-slider"),o=t.querySelector(".image-vert-slider");if(i.value=100,n.value=0,o.value=0,e.style.backgroundSize){let t,n=e.style.backgroundSize;t=isNaN(parseInt(n))?100:parseInt(n),-1!==n.indexOf("%")&&(i.value=t)}if(e.style.backgroundPositionX){let t,i=e.style.backgroundPositionX;t=isNaN(parseInt(i))?0:parseInt(i),-1!==i.indexOf("%")&&(n.value=t)}if(e.style.backgroundPositionY){let t,i=e.style.backgroundPositionY;t=isNaN(parseInt(i))?0:parseInt(i),-1!==i.indexOf("%")&&(o.value=t)}this.builder.elementSelected=e,t.style.zIndex="10005",this.util.showModal(t,!1)}showHideLockIndicator(e){const t=this.lockIndicator;if(e.hasAttribute("data-noedit")){const i=e.getBoundingClientRect().top+window.pageYOffset,n=e.getBoundingClientRect().left+window.pageXOffset,o=e.offsetWidth*this.builder.zoom;t.style.display="flex",t.style.top=i+4+"px",t.style.left=n+o-33+"px"}else t.style.display=""}click(e){if(kv.addClass(this.columnTool,"active"),this.columnTool.style.top=e.getBoundingClientRect().top-29+window.pageYOffset+"px",this.columnTool.style.left=e.getBoundingClientRect().left-1+"px",kv.parentsHasAttribute(e,"nogrid")){this.columnMore.querySelector(".cell-prev").style.display="none",this.columnMore.querySelector(".cell-next").style.display="none",this.columnMore.querySelector(".cell-up").style.display="none",this.columnMore.querySelector(".cell-down").style.display="none",this.columnMore.querySelector(".cell-increase").style.display="none",this.columnMore.querySelector(".cell-decrease").style.display="none",this.columnMore.querySelector(".cell-duplicate").style.display="none";let t=this.columnMore.querySelector(".cell-html");t&&(t.style.display=""),this.columnTool.querySelector(".cell-add").style.display="none",this.columnTool.querySelector(".cell-remove").style.display="none",e.getAttribute("data-html")&&(this.columnMore.querySelector(".cell-html").style.display="none",this.columnTool.querySelector(".cell-more").style.display="none")}else{this.columnMore.querySelector(".cell-prev").style.display="",this.columnMore.querySelector(".cell-next").style.display="",this.columnMore.querySelector(".cell-up").style.display="",this.columnMore.querySelector(".cell-down").style.display="",this.columnMore.querySelector(".cell-increase").style.display="",this.columnMore.querySelector(".cell-decrease").style.display="",this.columnMore.querySelector(".cell-duplicate").style.display="";let t=this.columnMore.querySelector(".cell-html");t&&(t.style.display=""),this.columnTool.querySelector(".cell-add").style.display="",this.columnTool.querySelector(".cell-remove").style.display="";let i=e.parentNode,n=2;i.querySelector(".is-row-overlay")&&(n=3),i.childElementCount-n==1?(this.columnMore.querySelector(".cell-prev").style.display="none",this.columnMore.querySelector(".cell-next").style.display="none",this.columnMore.querySelector(".cell-increase").style.display="none",this.columnMore.querySelector(".cell-decrease").style.display="none"):(this.columnMore.querySelector(".cell-prev").style.display="",this.columnMore.querySelector(".cell-next").style.display="",this.columnMore.querySelector(".cell-increase").style.display="",this.columnMore.querySelector(".cell-decrease").style.display="");let o=this.columnMore.querySelector(".cell-duplicate");e.getAttribute("data-html")?(t&&(t.style.display="none"),o&&(o.style.display="none")):(t&&(t.style.display=""),o&&(o.style.display=""))}let t=e.parentNode;if(t.hasAttribute("data-protected")){t.querySelector(".is-row-tool").style.display="none",this.columnTool.style.display="none";let e=t.querySelector(".is-rowadd-tool");e&&(e.style.display="none")}else{this.columnTool.style.display="",kv.parentsHasAttribute(e,"data-protected")?(this.columnTool.querySelector(".cell-add").style.display="none",this.columnTool.querySelector(".cell-remove").style.display="none",this.columnTool.querySelector(".cell-more").style.display="none"):(this.columnTool.querySelector(".cell-add").style.display="",this.columnTool.querySelector(".cell-remove").style.display="",this.columnTool.querySelector(".cell-more").style.display="")}}refreshColumnTool(e){this.grid.refreshColumnTool(e)}showColumnTool(e){this.grid.showColumnTool(e)}hideColumnTool(){this.grid.hideColumnTool()}}const Av=new ni;class qv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector(".editstyles");if(!n){let e=`\n <div class="is-modal is-modal-content editstyles">\n <div class="is-modal-bar is-draggable">\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n <div style="padding:12px">\n <div class="is-settings clearfix" style="display:inline-block;width:100%;margin-bottom:0;">\n <div>${t.out("Style")}:</div>\n <div>\n <textarea id="inpElmInlineStyle" style="width:100%;height:256px;margin:0px;border:none;font-size: 14px;line-height: 1.5;letter-spacing: 0;"></textarea>\n </div>\n </div>\n <div class="is-settings clearfix" style="display:inline-block;width:100%;margin-bottom:0;">\n <div>${t.out("Class")}:</div>\n <div>\n <input type="text" id="inpElmClassName" value="" style="width:100%;padding-left: 16px;font-family: courier, monospace;font-size: 14px;line-height: 2;letter-spacing: 1px;border:none;"/>\n </div>\n </div>\n </div>\n </div> \n `;Av.appendHtml(i,e),n=i.querySelector(".editstyles");let o=n.querySelector(".is-modal-close");Av.addEventListener(o,"click",(()=>{Av.removeClass(n,"active");var e=this.builderStuff.querySelector(".is-side.elementstyles");if(!Av.hasClass(e,"active")){let e=document.querySelectorAll("[data-saveforundo]");Array.prototype.forEach.call(e,(e=>{e.removeAttribute("data-saveforundo")})),e=document.querySelectorAll(".elm-inspected"),Array.prototype.forEach.call(e,(e=>{Av.removeClass(e,"elm-inspected")}))}}));let s=n.querySelector("#inpElmClassName");s.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=n.querySelector("#inpElmClassName").value,i=!1;Av.hasClass(e,"elm-active")&&(i=!0);let o=!1;Av.hasClass(e,"elm-active")&&(o=!0);let s=!1;Av.hasClass(e,"row-active")&&(s=!0),e.setAttribute("class",t),i&&Av.addClass(e,"elm-active"),o&&Av.addClass(e,"cell-active"),s&&Av.addClass(e,"row-active"),Av.addClass(e,"elm-inspected"),this.builder.opts.onChange()})),s=n.querySelector("#inpElmInlineStyle"),s.addEventListener("keyup",(()=>{this.builder.inspectedElement.style.cssText=n.querySelector("#inpElmInlineStyle").value,this.builder.opts.onChange()}))}this.modalStyles=n}toggleStyleEditor(){Av.hasClass(this.modalStyles,"active")?Av.removeClass(this.modalStyles,"active"):Av.addClass(this.modalStyles,"active")}refresh(){this.modalStyles.querySelector("#inpElmInlineStyle").value=this.builder.inspectedElement.style.cssText;let e=this.builder.inspectedElement.getAttribute("class");e&&(e=e.replace("elm-active",""),e=e.replace("cell-active",""),e=e.replace("row-active",""),e=e.replace("elm-inspected",""),e=e.replace(" "," ").trim()),this.modalStyles.querySelector("#inpElmClassName").value=e}}const Tv=new ni;class Lv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementBox");this.panelStuff=o;const s=`\n <div class="is-settings clearfix">\n <div class="is-label">${t.out("Background Color")}:</div>\n <div>\n <button title="${t.out("Background Color")}" class="input-elm-bgcolor is-btn-color" style="margin-right:15px"></button>\n <button title="${t.out("Gradient")}" class="input-elm-gradient classic" data-value="+"> ${t.out("Gradient")} </button>\n </div>\n </div>\n\n <div style="margin-top: 25px;font-weight:bold;width:100%;">${t.out("Dimension")}</div>\n \n <div class="is-settings clearfix" style="width:110px">\n <div><label for="inpElmWidth">${t.out("Width")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmWidth" value="" style="width:45px"/>\n <select id="inpElmWidthUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div><label for="inpElmHeight">${t.out("Height")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmHeight" value="" style="width:45px"/>\n <select id="inpElmHeightUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div><label for="inpElmMaxWidth">${t.out("Max Width")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmMaxWidth" value="" style="width:45px"/>\n <select id="inpElmMaxWidthUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div><label for="inpElmMaxHeight">${t.out("Max Height")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmMaxHeight" value="" style="width:45px"/>\n <select id="inpElmMaxHeightUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div><label for="inpElmMinWidth">${t.out("Min Width")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmMinWidth" value="" style="width:45px"/>\n <select id="inpElmMinWidthUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div><label for="inpElmMinHeight">${t.out("Min Height")}:</label></div>\n <div style="display:flex">\n <input type="text" id="inpElmMinHeight" value="" style="width:45px"/>\n <select id="inpElmMinHeightUnit"">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n \n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Overflow x")}:</div>\n <div>\n <select id="inpElmOverflowX"">\n <option value=""></option>\n <option value="auto">Auto</option>\n <option value="hidden">Hidden</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Overflow y")}:</div>\n <div>\n <select id="inpElmOverflowY"">\n <option value=""></option>\n <option value="auto">Auto</option>\n <option value="hidden">Hidden</option>\n </select>\n </div>\n </div>\n `;Tv.appendHtml(o,s),o.querySelector(".input-elm-bgcolor").addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.backgroundColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),o.querySelector(".input-elm-bgcolor").style.backgroundColor)}));const a=new _v({colors:this.builder.colors,gradientcolors:this.builder.opts.gradientcolors,lang:this.builder.opts.lang});o.querySelector(".input-elm-gradient").addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0),a.open(this.builder.inspectedElement,(()=>{n.refresh(),this.builder.opts.onChange()}),(e=>{e&&n.refresh()}))}));let r=o.querySelector("#inpElmMaxWidth");r.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),r.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMaxWidth").value,i=o.querySelector("#inpElmMaxWidthUnit").value;isNaN(t)||""===t?e.style.maxWidth="":e.style.maxWidth=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmMaxWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMaxWidth").value,i=o.querySelector("#inpElmMaxWidthUnit").value;isNaN(t)||""===t?e.style.maxWidth="":e.style.maxWidth=t+i,n.refresh(),this.builder.opts.onChange()}));let l=o.querySelector("#inpElmMaxHeight");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),l.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMaxHeight").value,i=o.querySelector("#inpElmMaxHeightUnit").value;isNaN(t)||""===t?e.style.maxHeight="":e.style.maxHeight=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmMaxHeightUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMaxHeight").value,i=o.querySelector("#inpElmMaxHeightUnit").value;isNaN(t)||""===t?e.style.maxHeight="":e.style.maxHeight=t+i,n.refresh(),this.builder.opts.onChange()}));let d=o.querySelector("#inpElmMinWidth");d.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),d.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMinWidth").value,i=o.querySelector("#inpElmMinWidthUnit").value;isNaN(t)||""===t?e.style.minWidth="":e.style.minWidth=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmMinWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMinWidth").value,i=o.querySelector("#inpElmMinWidthUnit").value;isNaN(t)||""===t?e.style.minWidth="":e.style.minWidth=t+i,n.refresh(),this.builder.opts.onChange()}));let c=o.querySelector("#inpElmMinHeight");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMinHeight").value,i=o.querySelector("#inpElmMinHeightUnit").value;isNaN(t)||""===t?e.style.minHeight="":e.style.minHeight=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmMinHeightUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmMinHeight").value,i=o.querySelector("#inpElmMinHeightUnit").value;isNaN(t)||""===t?e.style.minHeight="":e.style.minHeight=t+i,n.refresh(),this.builder.opts.onChange()}));let u=o.querySelector("#inpElmWidth");u.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),u.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmWidth").value,i=o.querySelector("#inpElmWidthUnit").value;isNaN(t)||""===t?e.style.width="":e.style.width=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmWidth").value,i=o.querySelector("#inpElmWidthUnit").value;isNaN(t)||""===t?e.style.width="":e.style.width=t+i,n.refresh(),this.builder.opts.onChange()}));let p=o.querySelector("#inpElmHeight");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmHeight").value,i=o.querySelector("#inpElmHeightUnit").value;isNaN(t)||""===t?e.style.height="":e.style.height=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmHeightUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmHeight").value,i=o.querySelector("#inpElmHeightUnit").value;isNaN(t)||""===t?e.style.height="":e.style.height=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmOverflowX").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmOverflowX").value;e.style.overflowX=t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmOverflowY").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmOverflowY").value;e.style.overflowY=t,n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t=this.panelStuff,i=e.style.backgroundColor,n=t.querySelector(".input-elm-bgcolor");n.style.backgroundColor=i||"transparent";const o=t.querySelector("#inpElmMaxWidth"),s=t.querySelector("#inpElmMaxWidthUnit");o.value="",s.value="px",i=e.style.maxWidth;let a=parseInt(i);isNaN(a)||(-1!==i.indexOf("%")&&(s.value="%"),-1!==i.indexOf("px")&&(s.value="px"),-1!==i.indexOf("vw")&&(s.value="vw"),-1!==i.indexOf("vh")&&(s.value="vh"),-1!==i.indexOf("em")&&(s.value="em"),o.value=a);const r=t.querySelector("#inpElmMaxHeight"),l=t.querySelector("#inpElmMaxHeightUnit");r.value="",l.value="px",i=e.style.maxHeight;let d=parseInt(i);isNaN(d)||(-1!==i.indexOf("%")&&(l.value="%"),-1!==i.indexOf("px")&&(l.value="px"),-1!==i.indexOf("vw")&&(l.value="vw"),-1!==i.indexOf("vh")&&(l.value="vh"),-1!==i.indexOf("em")&&(l.value="em"),r.value=d);const c=t.querySelector("#inpElmMinWidth"),u=t.querySelector("#inpElmMinWidthUnit");c.value="",u.value="px",i=e.style.minWidth;let p=parseInt(i);isNaN(p)||(-1!==i.indexOf("%")&&(u.value="%"),-1!==i.indexOf("px")&&(u.value="px"),-1!==i.indexOf("vw")&&(u.value="vw"),-1!==i.indexOf("vh")&&(u.value="vh"),-1!==i.indexOf("em")&&(u.value="em"),c.value=p);const h=t.querySelector("#inpElmMinHeight"),g=t.querySelector("#inpElmMinHeightUnit");h.value="",g.value="px",i=e.style.minHeight;let f=parseInt(i);isNaN(f)||(-1!==i.indexOf("%")&&(g.value="%"),-1!==i.indexOf("px")&&(g.value="px"),-1!==i.indexOf("vw")&&(g.value="vw"),-1!==i.indexOf("vh")&&(g.value="vh"),-1!==i.indexOf("em")&&(g.value="em"),h.value=f);const m=t.querySelector("#inpElmWidth"),v=t.querySelector("#inpElmWidthUnit");m.value="",v.value="px",i=e.style.width;let b=parseInt(i);isNaN(b)||(-1!==i.indexOf("%")&&(v.value="%"),-1!==i.indexOf("px")&&(v.value="px"),-1!==i.indexOf("vw")&&(v.value="vw"),-1!==i.indexOf("vh")&&(v.value="vh"),-1!==i.indexOf("em")&&(v.value="em"),m.value=b);const y=t.querySelector("#inpElmHeight"),_=t.querySelector("#inpElmHeightUnit");y.value="",_.value="px",i=e.style.height;let x=parseInt(i);isNaN(x)||(-1!==i.indexOf("%")&&(_.value="%"),-1!==i.indexOf("px")&&(_.value="px"),-1!==i.indexOf("vw")&&(_.value="vw"),-1!==i.indexOf("vh")&&(_.value="vh"),-1!==i.indexOf("em")&&(_.value="em"),y.value=x);const w=t.querySelector("#inpElmOverflowX");i=e.style.overflowX,w.value=i;const S=t.querySelector("#inpElmOverflowY");i=e.style.overflowY,S.value=i}}const Mv=new ni;class Ov{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementSpacing");this.panelStuff=o;const s=`\n <div style="margin-top: 13px;font-weight: bold;width:100%">${t.out("Padding")}</div>\n \n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Top")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmPaddingTop" value="" style="width:45px"/>\n <select id="inpElmPaddingTopUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Bottom")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmPaddingBottom" value="" style="width:45px"/>\n <select id="inpElmPaddingBottomUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Left")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmPaddingLeft" value="" style="width:45px"/>\n <select id="inpElmPaddingLeftUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Right")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmPaddingRight" value="" style="width:45px"/>\n <select id="inpElmPaddingRightUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n \n <div style="margin-top: 25px;font-weight: bold;width:100%">${t.out("Margin")}</div>\n \n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Top")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmMarginTop" value="" style="width:45px"/>\n <select id="inpElmMarginTopUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n <option value="auto">auto</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Bottom")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmMarginBottom" value="" style="width:45px"/>\n <select id="inpElmMarginBottomUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n <option value="auto">auto</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Left")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmMarginLeft" value="" style="width:45px"/>\n <select id="inpElmMarginLeftUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n <option value="auto">auto</option>\n </select>\n </div>\n </div>\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Right")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmMarginRight" value="" style="width:45px"/>\n <select id="inpElmMarginRightUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n <option value="auto">auto</option>\n </select>\n </div>\n </div>\n \n <div style="margin-top: 25px;font-weight: bold;width:100%">${t.out("Responsive Positioning")}:</div>\n \n <div class="is-settings clearfix" style="width:100%;">\n <div>\n <label for="chkResetMarginLeft" style="letter-spacing: 0.5px;"><input type="checkbox" id="chkResetMarginLeft" value="" /> ${t.out("Reset margin left on small screen")} </label>\n </div>\n </div>\n <div class="is-settings clearfix" style="margin-top:0;width:100%;">\n <div>\n <label for="chkResetMarginRight" style="letter-spacing: 0.5px;"><input type="checkbox" id="chkResetMarginRight" value="" /> ${t.out("Reset margin right on small screen")} </label>\n </div>\n </div>\n `;Mv.appendHtml(o,s);let a=o.querySelector("#inpElmMarginLeft");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let r=o.querySelector("#inpElmMarginLeftUnit");a.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=a.value,i=r.value;isNaN(t)||""===t?e.style.marginLeft="":e.style.marginLeft=t+i,"auto"===i&&(e.style.marginLeft="auto"),n.refresh(),this.builder.opts.onChange()})),r.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=a.value,i=r.value;"auto"===i?(e.style.marginLeft="auto",a.value=""):e.style.marginLeft=t+i,n.refresh(),this.builder.opts.onChange()}));let l=o.querySelector("#inpElmMarginRight");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let d=o.querySelector("#inpElmMarginRightUnit");l.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=l.value,i=d.value;isNaN(t)||""===t?e.style.marginRight="":e.style.marginRight=t+i,"auto"===i&&(e.style.marginRight="auto"),n.refresh(),this.builder.opts.onChange()})),d.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=l.value,i=d.value;"auto"===i?(e.style.marginRight="auto",l.value=""):e.style.marginRight=t+i,n.refresh(),this.builder.opts.onChange()}));let c=o.querySelector("#inpElmMarginTop");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let u=o.querySelector("#inpElmMarginTopUnit");c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=c.value,i=u.value;isNaN(t)||""===t?e.style.marginTop="":e.style.marginTop=t+i,"auto"===i&&(e.style.marginTop="auto"),n.refresh(),this.builder.opts.onChange()})),u.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=c.value,i=u.value;"auto"===i?(e.style.marginTop="auto",c.value=""):e.style.marginTop=t+i,n.refresh(),this.builder.opts.onChange()}));let p=o.querySelector("#inpElmMarginBottom");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let h=o.querySelector("#inpElmMarginBottomUnit");p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=p.value,i=h.value;isNaN(t)||""===t?e.style.marginBottom="":e.style.marginBottom=t+i,"auto"===i&&(e.style.marginBottom="auto"),n.refresh(),this.builder.opts.onChange()})),h.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=p.value,i=h.value;"auto"===i?(e.style.marginBottom="auto",p.value=""):e.style.marginBottom=t+i,n.refresh(),this.builder.opts.onChange()}));let g=o.querySelector("#inpElmPaddingLeft");g.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let f=o.querySelector("#inpElmPaddingLeftUnit");g.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=g.value,i=f.value;isNaN(t)||""===t?e.style.paddingLeft="":e.style.paddingLeft=t+i,n.refresh(),this.builder.opts.onChange()})),f.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=g.value,i=f.value;isNaN(t)||""===t?e.style.paddingLeft="":e.style.paddingLeft=t+i,n.refresh(),this.builder.opts.onChange()}));let m=o.querySelector("#inpElmPaddingRight");m.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let v=o.querySelector("#inpElmPaddingRightUnit");m.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=m.value,i=v.value;isNaN(t)||""===t?e.style.paddingRight="":e.style.paddingRight=t+i,n.refresh(),this.builder.opts.onChange()})),v.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=m.value,i=v.value;isNaN(t)||""===t?e.style.paddingRight="":e.style.paddingRight=t+i,n.refresh(),this.builder.opts.onChange()}));let b=o.querySelector("#inpElmPaddingTop");b.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let y=o.querySelector("#inpElmPaddingTopUnit");b.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=b.value,i=y.value;isNaN(t)||""===t?e.style.paddingTop="":e.style.paddingTop=t+i,n.refresh(),this.builder.opts.onChange()})),y.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=b.value,i=y.value;isNaN(t)||""===t?e.style.paddingTop="":e.style.paddingTop=t+i,n.refresh(),this.builder.opts.onChange()}));let _=o.querySelector("#inpElmPaddingBottom");_.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));let x=o.querySelector("#inpElmPaddingBottomUnit");_.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=_.value,i=x.value;isNaN(t)||""===t?e.style.paddingBottom="":e.style.paddingBottom=t+i,n.refresh(),this.builder.opts.onChange()})),x.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=_.value,i=x.value;isNaN(t)||""===t?e.style.paddingBottom="":e.style.paddingBottom=t+i,n.refresh(),this.builder.opts.onChange()}));let w=o.querySelector("#chkResetMarginLeft");w.addEventListener("click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;w.checked?Mv.addClass(e,"margin-left-1024-reset"):Mv.removeClass(e,"margin-left-1024-reset"),n.refresh(),this.builder.opts.onChange()}));let S=o.querySelector("#chkResetMarginRight");S.addEventListener("click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;S.checked?Mv.addClass(e,"margin-right-1024-reset"):Mv.removeClass(e,"margin-right-1024-reset"),n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t,i=this.panelStuff;const n=i.querySelector("#inpElmMarginTop"),o=i.querySelector("#inpElmMarginTopUnit");n.value="",o.value="px",t=e.style.marginTop;let s=parseInt(t);isNaN(s)?t&&-1!==t.indexOf("auto")&&(o.value="auto",n.value=""):(-1!==t.indexOf("%")&&(o.value="%"),-1!==t.indexOf("px")&&(o.value="px"),-1!==t.indexOf("vw")&&(o.value="vw"),-1!==t.indexOf("vh")&&(o.value="vh"),-1!==t.indexOf("em")&&(o.value="em"),n.value=s);const a=i.querySelector("#inpElmMarginBottom"),r=i.querySelector("#inpElmMarginBottomUnit");a.value="",r.value="px",t=e.style.marginBottom;let l=parseInt(t);isNaN(l)?t&&-1!==t.indexOf("auto")&&(r.value="auto",a.value=""):(-1!==t.indexOf("%")&&(r.value="%"),-1!==t.indexOf("px")&&(r.value="px"),-1!==t.indexOf("vw")&&(r.value="vw"),-1!==t.indexOf("vh")&&(r.value="vh"),-1!==t.indexOf("em")&&(r.value="em"),a.value=l);const d=i.querySelector("#inpElmMarginLeft"),c=i.querySelector("#inpElmMarginLeftUnit");d.value="",c.value="px",t=e.style.marginLeft;let u=parseInt(t);isNaN(u)?t&&-1!==t.indexOf("auto")&&(c.value="auto",d.value=""):(-1!==t.indexOf("%")&&(c.value="%"),-1!==t.indexOf("px")&&(c.value="px"),-1!==t.indexOf("vw")&&(c.value="vw"),-1!==t.indexOf("vh")&&(c.value="vh"),-1!==t.indexOf("em")&&(c.value="em"),d.value=u);const p=i.querySelector("#inpElmMarginRight"),h=i.querySelector("#inpElmMarginRightUnit");p.value="",h.value="px",t=e.style.marginRight;let g=parseInt(t);isNaN(g)?t&&-1!==t.indexOf("auto")&&(h.value="auto",p.value=""):(-1!==t.indexOf("%")&&(h.value="%"),-1!==t.indexOf("px")&&(h.value="px"),-1!==t.indexOf("vw")&&(h.value="vw"),-1!==t.indexOf("vh")&&(h.value="vh"),-1!==t.indexOf("em")&&(h.value="em"),p.value=g);const f=i.querySelector("#inpElmPaddingTop"),m=i.querySelector("#inpElmPaddingTopUnit");f.value="",m.value="px",t=e.style.paddingTop;let v=parseInt(t);isNaN(v)||(-1!==t.indexOf("%")&&(m.value="%"),-1!==t.indexOf("px")&&(m.value="px"),-1!==t.indexOf("vw")&&(m.value="vw"),-1!==t.indexOf("vh")&&(m.value="vh"),-1!==t.indexOf("em")&&(m.value="em"),f.value=v);const b=i.querySelector("#inpElmPaddingBottom"),y=i.querySelector("#inpElmPaddingBottomUnit");b.value="",y.value="px",t=e.style.paddingBottom;let _=parseInt(t);isNaN(_)||(-1!==t.indexOf("%")&&(y.value="%"),-1!==t.indexOf("px")&&(y.value="px"),-1!==t.indexOf("vw")&&(y.value="vw"),-1!==t.indexOf("vh")&&(y.value="vh"),-1!==t.indexOf("em")&&(y.value="em"),b.value=_);const x=i.querySelector("#inpElmPaddingLeft"),w=i.querySelector("#inpElmPaddingLeftUnit");x.value="",w.value="px",t=e.style.paddingLeft;let S=parseInt(t);isNaN(S)||(-1!==t.indexOf("%")&&(w.value="%"),-1!==t.indexOf("px")&&(w.value="px"),-1!==t.indexOf("vw")&&(w.value="vw"),-1!==t.indexOf("vh")&&(w.value="vh"),-1!==t.indexOf("em")&&(w.value="em"),x.value=S);const C=i.querySelector("#inpElmPaddingRight"),k=i.querySelector("#inpElmPaddingRightUnit");C.value="",k.value="px",t=e.style.paddingRight;let E=parseInt(t);isNaN(E)||(-1!==t.indexOf("%")&&(k.value="%"),-1!==t.indexOf("px")&&(k.value="px"),-1!==t.indexOf("vw")&&(k.value="vw"),-1!==t.indexOf("vh")&&(k.value="vh"),-1!==t.indexOf("em")&&(k.value="em"),C.value=E),Mv.hasClass(e,"margin-left-1024-reset")?i.querySelector("#chkResetMarginLeft").checked=!0:i.querySelector("#chkResetMarginLeft").checked=!1,Mv.hasClass(e,"margin-right-1024-reset")?i.querySelector("#chkResetMarginRight").checked=!0:i.querySelector("#chkResetMarginRight").checked=!1}}const Rv=new ni;class Nv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementBorder");this.panelStuff=o;const s=`\n <div style="margin-top: 13px;font-weight: bold;line-height: 1.7;">${t.out("Border")}</div>\n \n <div class="is-settings clearfix">\n <div style="display:flex;">\n <input type="text" id="inpElmBorderWidth" value="" style="width:45px"/>\n <select id="inpElmBorderWidthUnit" style="margin-right:15px;">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="none">none</option>\n </select>\n <select id="inpElmBorderStyle" style="margin-right:15px;">\n <option value=""></option>\n <option value="solid">Solid</option>\n <option value="dashed">Dashed</option>\n <option value="dotted">Dotted</option>\n </select>\n <button title="${t.out("Border Color")}" class="input-elm-bordercolor is-btn-color"></button> \n </div>\n </div>\n \n <div style="margin-top: 25px;font-weight: bold;line-height: 1.7;">${t.out("Individual Sides")}</div>\n \n <div class="is-settings clearfix">\n <div>${t.out("Border Top")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmBorderTopWidth" value="" style="width:45px"/>\n <select id="inpElmBorderTopWidthUnit" style="margin-right:15px;">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="none">none</option>\n </select>\n <select id="inpElmBorderTopStyle" style="margin-right:15px;">\n <option value=""></option>\n <option value="solid">Solid</option>\n <option value="dashed">Dashed</option>\n <option value="dotted">Dotted</option>\n </select>\n <button title="${t.out("Border Top Color")}" class="input-elm-bordertopcolor is-btn-color"></button>\n </div>\n </div>\n \n <div class="is-settings clearfix">\n <div>${t.out("Border Bottom")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmBorderBottomWidth" value="" style="width:45px"/>\n <select id="inpElmBorderBottomWidthUnit" style="margin-right:15px;">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="none">none</option>\n </select>\n <select id="inpElmBorderBottomStyle" style="margin-right:15px;">\n <option value=""></option>\n <option value="solid">Solid</option>\n <option value="dashed">Dashed</option>\n <option value="dotted">Dotted</option>\n </select>\n <button title="${t.out("Border Bottom Color")}" class="input-elm-borderbottomcolor is-btn-color"></button>\n </div>\n </div>\n \n <div class="is-settings clearfix">\n <div>${t.out("Border Left")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmBorderLeftWidth" value="" style="width:45px"/>\n <select id="inpElmBorderLeftWidthUnit" style="margin-right:15px;">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="none">none</option>\n </select>\n <select id="inpElmBorderLeftStyle" style="margin-right:15px;">\n <option value=""></option>\n <option value="solid">Solid</option>\n <option value="dashed">Dashed</option>\n <option value="dotted">Dotted</option>\n </select>\n <button title="${t.out("Border Left Color")}" class="input-elm-borderleftcolor is-btn-color"></button>\n </div>\n </div>\n \n <div class="is-settings clearfix">\n <div>${t.out("Border Right")}:</div>\n <div style="display:flex;">\n <input type="text" id="inpElmBorderRightWidth" value="" style="width:45px"/>\n <select id="inpElmBorderRightWidthUnit" style="margin-right:15px;">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="none">none</option>\n </select>\n <select id="inpElmBorderRightStyle" style="margin-right:15px;">\n <option value=""></option>\n <option value="solid">Solid</option>\n <option value="dashed">Dashed</option>\n <option value="dotted">Dotted</option>\n </select>\n <button title="${t.out("Border Right Color")}" class="input-elm-borderrightcolor is-btn-color"></button> \n </div>\n </div> \n `;Rv.appendHtml(o,s);let a=o.querySelector(".input-elm-bordercolor");a.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.borderColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),a.style.backgroundColor)}));let r=o.querySelector(".input-elm-bordertopcolor");r.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.borderTopColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),r.style.backgroundColor)}));let l=o.querySelector(".input-elm-borderbottomcolor");l.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.borderBottomColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),l.style.backgroundColor)}));let d=o.querySelector(".input-elm-borderleftcolor");d.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.borderLeftColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),d.style.backgroundColor)}));let c=o.querySelector(".input-elm-borderrightcolor");c.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.borderRightColor=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),c.style.backgroundColor)}));let u=o.querySelector("#inpElmBorderWidth");u.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),u.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderWidth").value;isNaN(t)||""===t?(e.style.borderStyle="solid",e.style.borderWidth="",e.style.borderStyle=""):(e.style.borderStyle="solid",e.style.borderWidth=t+o.querySelector("#inpElmBorderWidthUnit").value,e.style.borderStyle=o.querySelector("#inpElmBorderStyle").value),n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderWidthUnit").value;"none"===t?(e.style.border="none",e.style.borderWidth="",e.style.borderStyle=""):e.style.borderWidth=o.querySelector("#inpElmBorderWidth").value+t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderStyle").value;e.style.borderStyle=t,n.refresh(),this.builder.opts.onChange()}));let p=o.querySelector("#inpElmBorderTopWidth");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderTopWidth").value;isNaN(t)||""===t?(e.style.borderTopStyle="solid",e.style.borderTopWidth="",e.style.borderTopStyle=""):(e.style.borderTopStyle="solid",e.style.borderTopWidth=t+o.querySelector("#inpElmBorderTopWidthUnit").value,e.style.borderTopStyle=o.querySelector("#inpElmBorderTopStyle").value),n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderTopWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderTopWidthUnit").value;"none"===t?(e.style.borderTop="none",e.style.borderTopWidth="",e.style.borderTopStyle="",this.panelStuff.querySelector("#inpElmBorderTopWidth").value="",this.panelStuff.querySelector("#inpElmBorderTopStyle").value=""):e.style.borderTopWidth=o.querySelector("#inpElmBorderTopWidth").value+t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderTopStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderTopStyle").value;e.style.borderTopStyle=t,n.refresh(),this.builder.opts.onChange()}));let h=o.querySelector("#inpElmBorderBottomWidth");h.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),h.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderBottomWidth").value;isNaN(t)||""===t?(e.style.borderBottomStyle="solid",e.style.borderBottomWidth="",e.style.borderBottomStyle=""):(e.style.borderBottomStyle="solid",e.style.borderBottomWidth=t+o.querySelector("#inpElmBorderBottomWidthUnit").value,e.style.borderBottomStyle=o.querySelector("#inpElmBorderBottomStyle").value),n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderBottomWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderBottomWidthUnit").value;"none"===t?(e.style.borderBottom="none",e.style.borderBottomWidth="",e.style.borderBottomStyle="",this.panelStuff.querySelector("#inpElmBorderBottomWidth").value="",this.panelStuff.querySelector("#inpElmBorderBottomStyle").value=""):e.style.borderBottomWidth=o.querySelector("#inpElmBorderBottomWidth").value+t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderBottomStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderBottomStyle").value;e.style.borderBottomStyle=t,n.refresh(),this.builder.opts.onChange()}));let g=o.querySelector("#inpElmBorderLeftWidth");g.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),g.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderLeftWidth").value;isNaN(t)||""===t?(e.style.borderLeftStyle="solid",e.style.borderLeftWidth="",e.style.borderLeftStyle=""):(e.style.borderLeftStyle="solid",e.style.borderLeftWidth=t+o.querySelector("#inpElmBorderLeftWidthUnit").value,e.style.borderLeftStyle=o.querySelector("#inpElmBorderLeftStyle").value),n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderLeftWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderLeftWidthUnit").value;"none"===t?(e.style.borderLeft="none",e.style.borderLeftWidth="",e.style.borderLeftStyle="",this.panelStuff.querySelector("#inpElmBorderLeftWidth").value="",this.panelStuff.querySelector("#inpElmBorderLeftStyle").value=""):e.style.borderLeftWidth=o.querySelector("#inpElmBorderLeftWidth").value+t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderLeftStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderLeftStyle").value;e.style.borderLeftStyle=t,n.refresh(),this.builder.opts.onChange()}));let f=o.querySelector("#inpElmBorderRightWidth");f.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),f.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderRightWidth").value;isNaN(t)||""===t?(e.style.borderRightStyle="solid",e.style.borderRightWidth="",e.style.borderRightStyle=""):(e.style.borderRightStyle="solid",e.style.borderRightWidth=t+o.querySelector("#inpElmBorderRightWidthUnit").value,e.style.borderRightStyle=o.querySelector("#inpElmBorderRightStyle").value),n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderRightWidthUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderRightWidthUnit").value;"none"===t?(e.style.borderRight="none",e.style.borderRightWidth="",e.style.borderRightStyle="",this.panelStuff.querySelector("#inpElmBorderRightWidth").value="",this.panelStuff.querySelector("#inpElmBorderRightStyle").value=""):e.style.borderRightWidth=o.querySelector("#inpElmBorderRightWidth").value+t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmBorderRightStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;var t=o.querySelector("#inpElmBorderRightStyle").value;e.style.borderRightStyle=t,n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){this.panelStuff.querySelector(".input-elm-bordercolor").style.backgroundColor=e.style.borderColor,this.panelStuff.querySelector(".input-elm-bordertopcolor").style.backgroundColor=e.style.borderTopColor,this.panelStuff.querySelector(".input-elm-borderbottomcolor").style.backgroundColor=e.style.borderBottomColor,this.panelStuff.querySelector(".input-elm-borderleftcolor").style.backgroundColor=e.style.borderLeftColor,this.panelStuff.querySelector(".input-elm-borderrightcolor").style.backgroundColor=e.style.borderRightColor,this.panelStuff.querySelector("#inpElmBorderWidth").value="",this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="",this.panelStuff.querySelector("#inpElmBorderStyle").value="";var t=e.style.borderWidth,i=parseInt(t);isNaN(i)?-1!==(t=e.style.border).indexOf("none")&&(this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="none",this.panelStuff.querySelector("#inpElmBorderWidth").value="",this.panelStuff.querySelector("#inpElmBorderStyle").value=""):(-1!==t.indexOf("px")&&(this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="px"),-1!==t.indexOf("vw")&&(this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="vw"),-1!==t.indexOf("vh")&&(this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="vh"),-1!==t.indexOf("em")&&(this.panelStuff.querySelector("#inpElmBorderWidthUnit").value="em"),this.panelStuff.querySelector("#inpElmBorderWidth").value=i,-1!==(t=e.style.borderStyle).indexOf("solid")&&(this.panelStuff.querySelector("#inpElmBorderStyle").value="solid"),-1!==t.indexOf("dashed")&&(this.panelStuff.querySelector("#inpElmBorderStyle").value="dashed"),-1!==t.indexOf("dotted")&&(this.panelStuff.querySelector("#inpElmBorderStyle").value="dotted")),this.panelStuff.querySelector("#inpElmBorderTopWidth").value="",this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="",this.panelStuff.querySelector("#inpElmBorderTopStyle").value="",t=e.style.borderTopWidth;var n=parseInt(t);isNaN(n)?-1!==(t=e.style.borderTop).indexOf("none")&&(this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="none",this.panelStuff.querySelector("#inpElmBorderTopWidth").value="",this.panelStuff.querySelector("#inpElmBorderTopStyle").value=""):(-1!==t.indexOf("px")&&(this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="px"),-1!==t.indexOf("vw")&&(this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="vw"),-1!==t.indexOf("vh")&&(this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="vh"),-1!==t.indexOf("em")&&(this.panelStuff.querySelector("#inpElmBorderTopWidthUnit").value="em"),this.panelStuff.querySelector("#inpElmBorderTopWidth").value=n,-1!==t.indexOf("solid")&&(this.panelStuff.querySelector("#inpElmBorderTopStyle").value="solid"),-1!==t.indexOf("dashed")&&(this.panelStuff.querySelector("#inpElmBorderTopStyle").value="dashed"),-1!==t.indexOf("dotted")&&(this.panelStuff.querySelector("#inpElmBorderTopStyle").value="dotted")),this.panelStuff.querySelector("#inpElmBorderBottomWidth").value="",this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="",this.panelStuff.querySelector("#inpElmBorderBottomStyle").value="",t=e.style.borderBottomWidth;var o=parseInt(t);isNaN(o)?-1!==(t=e.style.borderBottom).indexOf("none")&&(this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="none",this.panelStuff.querySelector("#inpElmBorderBottomWidth").value="",this.panelStuff.querySelector("#inpElmBorderBottomStyle").value=""):(-1!==t.indexOf("px")&&(this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="px"),-1!==t.indexOf("vw")&&(this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="vw"),-1!==t.indexOf("vh")&&(this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="vh"),-1!==t.indexOf("em")&&(this.panelStuff.querySelector("#inpElmBorderBottomWidthUnit").value="em"),this.panelStuff.querySelector("#inpElmBorderBottomWidth").value=o,-1!==t.indexOf("solid")&&(this.panelStuff.querySelector("#inpElmBorderBottomStyle").value="solid"),-1!==t.indexOf("dashed")&&(this.panelStuff.querySelector("#inpElmBorderBottomStyle").value="dashed"),-1!==t.indexOf("dotted")&&(this.panelStuff.querySelector("#inpElmBorderBottomStyle").value="dotted")),this.panelStuff.querySelector("#inpElmBorderLeftWidth").value="",this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="",this.panelStuff.querySelector("#inpElmBorderLeftStyle").value="",t=e.style.borderLeftWidth;var s=parseInt(t);isNaN(s)?-1!==(t=e.style.borderLeft).indexOf("none")&&(this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="none",this.panelStuff.querySelector("#inpElmBorderLeftWidth").value="",this.panelStuff.querySelector("#inpElmBorderLeftStyle").value=""):(-1!==t.indexOf("px")&&(this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="px"),-1!==t.indexOf("vw")&&(this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="vw"),-1!==t.indexOf("vh")&&(this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="vh"),-1!==t.indexOf("em")&&(this.panelStuff.querySelector("#inpElmBorderLeftWidthUnit").value="em"),this.panelStuff.querySelector("#inpElmBorderLeftWidth").value=s,-1!==t.indexOf("solid")&&(this.panelStuff.querySelector("#inpElmBorderLeftStyle").value="solid"),-1!==t.indexOf("dashed")&&(this.panelStuff.querySelector("#inpElmBorderLeftStyle").value="dashed"),-1!==t.indexOf("dotted")&&(this.panelStuff.querySelector("#inpElmBorderLeftStyle").value="dotted")),this.panelStuff.querySelector("#inpElmBorderRightWidth").value="",this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="",this.panelStuff.querySelector("#inpElmBorderRightStyle").value="",t=e.style.borderRightWidth;var a=parseInt(t);isNaN(a)?-1!==(t=e.style.borderRight).indexOf("none")&&(this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="none",this.panelStuff.querySelector("#inpElmBorderRightWidth").value="",this.panelStuff.querySelector("#inpElmBorderRightStyle").value=""):(-1!==t.indexOf("px")&&(this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="px"),-1!==t.indexOf("vw")&&(this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="vw"),-1!==t.indexOf("vh")&&(this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="vh"),-1!==t.indexOf("em")&&(this.panelStuff.querySelector("#inpElmBorderRightWidthUnit").value="em"),this.panelStuff.querySelector("#inpElmBorderRightWidth").value=a,-1!==t.indexOf("solid")&&(this.panelStuff.querySelector("#inpElmBorderRightStyle").value="solid"),-1!==t.indexOf("dashed")&&(this.panelStuff.querySelector("#inpElmBorderRightStyle").value="dashed"),-1!==t.indexOf("dotted")&&(this.panelStuff.querySelector("#inpElmBorderRightStyle").value="dotted"))}}const Bv=new ni;class Iv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementText");this.panelStuff=o;const s=`\n <div class="is-settings clearfix" style="width:115px;">\n <div>Text Color:</div>\n <div>\n <button title="${t.out("Text Color")}" class="input-elm-color is-btn-color"></button>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Font Size")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmFontSize" value="" style="width:45px"/>\n <select id="inpElmFontSizeUnit">\n <option value=""></option>\n <option value="px">px</option>\n <option value="pt">pt</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="vmin">vmin</option>\n <option value="vmax">vmax</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Text Align")}:</div>\n <div>\n <select id="inpElmTextAlign">\n <option value=""></option>\n <option value="left">${t.out("Left")}</option>\n <option value="center">${t.out("Center")}</option>\n <option value="right">${t.out("Right")}</option>\n <option value="justify">${t.out("Full")}</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Line Height")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmLineHeight" value="" style="width:45px"/>\n <select id="inpElmLineHeightUnit">\n <option value=""></option>\n <option value="px">px</option>\n <option value="pt">pt</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Font Weight")}:</div>\n <div>\n <select id="inpElmFontWeight">\n <option value=""></option>\n <option value="100">100</option>\n <option value="200">200</option>\n <option value="300">300</option>\n <option value="400">400</option>\n <option value="500">500</option>\n <option value="600">600</option>\n <option value="700">700</option>\n <option value="800">800</option>\n <option value="900">900</option>\n <option value="bold">${t.out("Bold")}</option>\n <option value="normal">${t.out("Normal")}</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Font Style")}:</div>\n <div>\n <select id="inpElmFontStyle">\n <option value=""></option>\n <option value="italic">${t.out("Italic")}</option>\n <option value="normal">${t.out("Normal")}</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Text Transform")}:</div>\n <div>\n <select id="inpElmTextTransform">\n <option value=""></option>\n <option value="uppercase">${t.out("Uppercase")}</option>\n <option value="lowercase">${t.out("Lowercase")}</option>\n <option value="capitalize">${t.out("Capitalize")}</option>\n <option value="none">${t.out("None")}</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Text Decoration")}:</div>\n <div>\n <select id="inpElmTextDecoration">\n <option value=""></option>\n <option value="underline">${t.out("Underline")}</option>\n <option value="line-through">${t.out("Line Through")}</option>\n <option value="overline">${t.out("Overline")}</option>\n <option value="none">${t.out("None")}</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Letter Spacing")}:</div>\n <div>\n <input type="text" id="inpElmLetterSpacing" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:115px;">\n <div>${t.out("Word Spacing")}:</div>\n <div>\n <input type="text" id="inpElmWordSpacing" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div>${t.out("Font Family")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmFontFamily" value="" style="width:100%"/>\n <button title="${t.out("Select Font")}" class="input-elm-fontfamily classic" style="border-left: none;width:45px;padding:0;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n </div>\n </div>\n `;Bv.appendHtml(o,s);const a=`\n <div class="is-modal pickfontfamily">\n <div class="is-modal-content">\n <div class="is-modal-bar is-draggable"> ${t.out("Font")} </div>\n <div class="clearfix" style="margin-top:28px;padding:0px;height:300px;position:relative;">\n <iframe src="about:blank" style="width:100%;height:100%;position:absolute;top:0;left:0;border: none;"></iframe>\n </div>\n </div>\n </div>\n `;Bv.appendHtml(i,a);const r=i.querySelector(".is-modal.pickfontfamily");let l=o.querySelector(".input-elm-color");l.addEventListener("click",(e=>{this.builder.uo.saveForUndo(!0);let t=e.target;this.builder.colorPicker.open((e=>{this.builder.inspectedElement.style.color=e,t.style.backgroundColor=e,n.refresh(),this.builder.opts.onChange()}),l.style.backgroundColor)})),o.querySelector("#inpElmTextAlign").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmTextAlign").value;e.style.textAlign=t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmFontWeight").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFontWeight").value;e.style.fontWeight=t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmFontStyle").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFontStyle").value;e.style.fontStyle=t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmTextTransform").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmTextTransform").value;e.style.textTransform=t,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmTextDecoration").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmTextDecoration").value;e.style.textDecoration=t,n.refresh(),this.builder.opts.onChange()}));let d=o.querySelector("#inpElmFontSize");d.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),d.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFontSize").value,i=o.querySelector("#inpElmFontSizeUnit").value;""===i&&(o.querySelector("#inpElmFontSizeUnit").value="px",i="px"),isNaN(t)||""===t?e.style.fontSize="":e.style.fontSize=t+i;const s=this.builder.opts.fontSizeClassValues;for(var a=0;a<=s.length-1;a++)Bv.hasClass(e,"size-"+s[a])&&Bv.removeClass(e,"size-"+s[a]);n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmFontSizeUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFontSize").value,i=o.querySelector("#inpElmFontSizeUnit").value;isNaN(t)||""===t?e.style.fontSize="":e.style.fontSize=t+i,n.refresh(),this.builder.opts.onChange()}));let c=o.querySelector("#inpElmLineHeight");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmLineHeight").value,i=o.querySelector("#inpElmLineHeightUnit").value;isNaN(t)||""===t?e.style.lineHeight="":e.style.lineHeight=t+i,n.refresh(),this.builder.opts.onChange()})),o.querySelector("#inpElmLineHeightUnit").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmLineHeightUnit").value,i=o.querySelector("#inpElmLineHeight").value;isNaN(i)||""===i?e.style.lineHeight="":e.style.lineHeight=i+t,n.refresh(),this.builder.opts.onChange()}));let u=o.querySelector("#inpElmLetterSpacing");u.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),u.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmLetterSpacing").value;isNaN(t)||""===t?e.style.letterSpacing="":e.style.letterSpacing=t+"px",n.refresh(),this.builder.opts.onChange()}));let p=o.querySelector("#inpElmWordSpacing");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmWordSpacing").value;isNaN(t)||""===t?e.style.wordSpacing="":e.style.wordSpacing=t+"px",n.refresh(),this.builder.opts.onChange()}));let h=o.querySelector("#inpElmFontFamily");if(h.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),h.addEventListener("keyup",(()=>{let e=o.querySelector("#inpElmFontFamily").value;this.builder.inspectedElement.style.fontFamily=e,n.refresh(),this.builder.opts.onChange()})),!this.builder.renderIframeLater){let e=r.querySelector("iframe").contentWindow.document;e.open(),this.builder.opts.emailMode?e.write(this.util.getFontFamilyEmail(!0)):e.write(this.util.getFontFamilyHTML(!0)),e.close()}o.querySelector(".input-elm-fontfamily").addEventListener("click",(()=>{let e=this.builder.inspectedElement;this.util.showModal(r);var t=e.style.fontFamily;const i=r.querySelector("iframe");let n=i.contentDocument||i.contentWindow.document;if(""!==t){let e=t.split(",")[0];if(e=e.replace('"',"").replace('"',""),e=e.toLowerCase().trim(),n){[].forEach.call(n.querySelectorAll("#divFontList > div"),(function(t){var i=t.getAttribute("data-font-family");(i=(i=i.split(",")[0]).trim().toLowerCase())===e&&""!==i?Bv.addClass(t,"on"):Bv.removeClass(t,"on")}));let t=n.querySelector("#divFontList");var o=t.querySelector(".on");o&&(t.scrollTop=t.scrollTop+o.getBoundingClientRect().top)}}else n&&[].forEach.call(n.querySelectorAll("#divFontList > div"),(function(e){Bv.removeClass(e,"on")}))}))}readElementStyles(e){this.panelStuff.querySelector(".input-elm-color").style.backgroundColor=e.style.color,this.panelStuff.querySelector("#inpElmTextAlign").value="";var t=e.style.textAlign;this.panelStuff.querySelector("#inpElmTextAlign").value=t,this.panelStuff.querySelector("#inpElmFontSize").value="";var i=parseInt(e.style.fontSize);let n;isNaN(i)||(this.panelStuff.querySelector("#inpElmFontSize").value=i),this.panelStuff.querySelector("#inpElmFontSizeUnit").value="px";var o=e.style.fontSize;-1!==o.indexOf("px")&&(n="px"),-1!==o.indexOf("pt")&&(n="pt"),-1!==o.indexOf("em")&&(n="em"),-1!==o.indexOf("vw")&&(n="vw"),-1!==o.indexOf("vh")&&(n="vh"),-1!==o.indexOf("vmin")&&(n="vmin"),-1!==o.indexOf("vmax")&&(n="vmax"),-1!==o.indexOf("%")&&(n="%"),this.panelStuff.querySelector("#inpElmFontSizeUnit").value=n,this.panelStuff.querySelector("#inpElmFontWeight").value="";var s=e.style.fontWeight;this.panelStuff.querySelector("#inpElmFontWeight").value=s,this.panelStuff.querySelector("#inpElmFontStyle").value="";var a=e.style.fontStyle;this.panelStuff.querySelector("#inpElmFontStyle").value=a,this.panelStuff.querySelector("#inpElmTextTransform").value="";var r=e.style.textTransform;this.panelStuff.querySelector("#inpElmTextTransform").value=r,this.panelStuff.querySelector("#inpElmTextDecoration").value="";var l=e.style.textDecoration;if(this.panelStuff.querySelector("#inpElmTextDecoration").value=l,this.panelStuff.querySelector("#inpElmLineHeight").value="",isNaN(e.style.lineHeight)){var d=parseInt(e.style.lineHeight);isNaN(d)||(this.panelStuff.querySelector("#inpElmLineHeight").value=d)}else this.panelStuff.querySelector("#inpElmLineHeight").value=e.style.lineHeight;let c;this.panelStuff.querySelector("#inpElmLineHeightUnit").value="",-1!==(o=e.style.lineHeight).indexOf("px")&&(c="px"),-1!==o.indexOf("pt")&&(c="pt"),this.panelStuff.querySelector("#inpElmLineHeightUnit").value=c,this.panelStuff.querySelector("#inpElmLetterSpacing").value="";var u=parseInt(e.style.letterSpacing);isNaN(u)||(this.panelStuff.querySelector("#inpElmLetterSpacing").value=u),this.panelStuff.querySelector("#inpElmWordSpacing").value="";var p=parseInt(e.style.wordSpacing);isNaN(p)||(this.panelStuff.querySelector("#inpElmWordSpacing").value=p),this.panelStuff.querySelector("#inpElmFontFamily").value="";var h=e.style.fontFamily;""!==h&&(this.panelStuff.querySelector("#inpElmFontFamily").value=h)}}const Dv=new ni;class $v{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementCorner");this.panelStuff=o;const s=`\n <div style="margin-top: 13px;font-weight: bold;width:100%;">${t.out("Corners")}</div>\n\n <div class="is-settings clearfix" style="width:100%;margin-bottom:9px;">\n <div>${t.out("Border Radius")}:</div>\n <div>\n <input type="text" id="inpElmBorderRadius" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div style="margin-top: 25px;font-weight: bold;width:100%;">${t.out("Individual Corners")}</div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Top Left")}:</div>\n <div>\n <input type="text" id="inpElmBorderTopLeftRadius" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Top Right")}:</div>\n <div>\n <input type="text" id="inpElmBorderTopRightRadius" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Bottom Left")}:</div>\n <div>\n <input type="text" id="inpElmBorderBottomLeftRadius" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Bottom Right")}:</div>\n <div>\n <input type="text" id="inpElmBorderBottomRightRadius" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n `;Dv.appendHtml(o,s);const a=o.querySelector("#inpElmBorderRadius");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),a.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBorderRadius").value;isNaN(t)||""===t?e.style.borderRadius="":e.style.borderRadius=t+"px",n.refresh(),this.builder.opts.onChange()}));const r=o.querySelector("#inpElmBorderTopLeftRadius");r.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),r.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBorderTopLeftRadius").value;isNaN(t)||""===t?e.style.borderTopLeftRadius="":e.style.borderTopLeftRadius=t+"px",n.refresh(),this.builder.opts.onChange()}));const l=o.querySelector("#inpElmBorderTopRightRadius");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),l.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBorderTopRightRadius").value;isNaN(t)||""===t?e.style.borderTopRightRadius="":e.style.borderTopRightRadius=t+"px",n.refresh(),this.builder.opts.onChange()}));const d=o.querySelector("#inpElmBorderBottomLeftRadius");d.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),d.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBorderBottomLeftRadius").value;isNaN(t)||""===t?e.style.borderBottomLeftRadius="":e.style.borderBottomLeftRadius=t+"px",n.refresh(),this.builder.opts.onChange()}));const c=o.querySelector("#inpElmBorderBottomRightRadius");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBorderBottomRightRadius").value;isNaN(t)||""===t?e.style.borderBottomRightRadius="":e.style.borderBottomRightRadius=t+"px",n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t=this.panelStuff;const i=t.querySelector("#inpElmBorderRadius");i.value="";let n=e.style.borderRadius,o=parseInt(n);isNaN(o)||(i.value=o);const s=t.querySelector("#inpElmBorderTopLeftRadius");s.value="",n=e.style.borderTopLeftRadius;let a=parseInt(n);isNaN(a)||(s.value=a);const r=t.querySelector("#inpElmBorderTopRightRadius");r.value="",n=e.style.borderTopRightRadius;let l=parseInt(n);isNaN(l)||(r.value=l);const d=t.querySelector("#inpElmBorderBottomLeftRadius");d.value="",n=e.style.borderBottomLeftRadius;let c=parseInt(n);isNaN(c)||(d.value=c);const u=t.querySelector("#inpElmBorderBottomRightRadius");u.value="",n=e.style.borderBottomRightRadius;let p=parseInt(n);isNaN(p)||(u.value=p)}}const Pv=new ni;class Hv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementShadow");this.panelStuff=o;const s=`\n <div style="margin-top:13px;font-weight:bold;width:100%;">${t.out("Shadow")}</div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("x Offset")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmBoxShadowX" value="" style="width:45px"/>\n <select id="inpElmBoxShadowXUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("y Offset")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmBoxShadowY" value="" style="width:45px"/>\n <select id="inpElmBoxShadowYUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Blur")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmBoxShadowBlur" value="" style="width:45px"/>\n <select id="inpElmBoxShadowBlurUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Spread")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmBoxShadowSpread" value="" style="width:45px"/>\n <select id="inpElmBoxShadowSpreadUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div>${t.out("Shadow Color")}:</div>\n <div>\n <button title="${t.out("Shadow Color")}" class="input-elm-shadowcolor is-btn-color"></button>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div>${t.out("Outer/Inner Shadow")}:</div>\n <div>\n <select id="inpElmBoxShadowInset">\n <option value="">Outset</option>\n <option value="inset">Inset</option>\n </select>\n </div>\n </div>\n `;Pv.appendHtml(o,s);let a=o.querySelector(".input-elm-shadowcolor");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo(!0),this.builder.colorPicker.open((e=>{a.style.backgroundColor=e,this.updateShadow(this.builder.inspectedElement),n.refresh(),this.builder.opts.onChange()}),a.style.backgroundColor)}));let r=o.querySelectorAll("#inpElmBoxShadowX,#inpElmBoxShadowY,#inpElmBoxShadowBlur,#inpElmBoxShadowSpread");Array.prototype.forEach.call(r,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),e.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;this.updateShadow(e),n.refresh(),this.builder.opts.onChange()}))})),r=o.querySelectorAll("#inpElmBoxShadowXUnit,#inpElmBoxShadowYUnit,#inpElmBoxShadowBlurUnit,#inpElmBoxShadowSpreadUnit"),Array.prototype.forEach.call(r,(e=>{e.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;this.updateShadow(e),n.refresh(),this.builder.opts.onChange()}))}));o.querySelector("#inpElmBoxShadowInset").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;this.updateShadow(e),n.refresh(),this.builder.opts.onChange()}))}updateShadow(e){let t=this.panelStuff;var i=t.querySelector(".input-elm-shadowcolor").style.backgroundColor,n=t.querySelector("#inpElmBoxShadowInset").value,o=t.querySelector("#inpElmBoxShadowX").value,s=t.querySelector("#inpElmBoxShadowXUnit").value,a="";isNaN(o)||""===o||(a=o+s),o=t.querySelector("#inpElmBoxShadowY").value,s=t.querySelector("#inpElmBoxShadowYUnit").value;var r="";isNaN(o)||""===o||(r=o+s),o=t.querySelector("#inpElmBoxShadowBlur").value,s=t.querySelector("#inpElmBoxShadowBlurUnit").value;var l="";isNaN(o)||""===o||(l=o+s),o=t.querySelector("#inpElmBoxShadowSpread").value,s=t.querySelector("#inpElmBoxShadowSpreadUnit").value;var d="";isNaN(o)||""===o||(d=o+s),e.style.boxShadow=(a+" "+r+" "+l+" "+d+" "+i+" "+n).trim()}readElementStyles(e){let t,i,n=this.panelStuff,o=e.style.boxShadow,s=n.querySelectorAll("#inpElmBoxShadowX,#inpElmBoxShadowY,#inpElmBoxShadowBlur,#inpElmBoxShadowSpread");if(Array.prototype.forEach.call(s,(e=>{e.value=""})),s=n.querySelectorAll("#inpElmBoxShadowXUnit,#inpElmBoxShadowYUnit,#inpElmBoxShadowBlurUnit,#inpElmBoxShadowSpreadUnit"),Array.prototype.forEach.call(s,(e=>{e.value="px"})),n.querySelector("#inpElmBoxShadowInset").value="",-1!==o.indexOf("inset")&&(n.querySelector("#inpElmBoxShadowInset").value="inset",o=o.replace("inset","")),""!==o){-1!==o.indexOf("rgb")&&(t=o.substr(o.indexOf("rgb")),t=t.substr(0,t.indexOf(")")+1),n.querySelector(".input-elm-shadowcolor").style.backgroundColor=t,i=o.split("rgb")[1].indexOf(")"),o=o.split("rgb")[0]+o.split("rgb")[1].substr(i+2)),-1!==o.indexOf("#")&&(t=o.substr(o.indexOf("#")),t=t.substr(0,t.indexOf(" ")),n.querySelector(".input-elm-shadowcolor").style.backgroundColor=t,i=o.split("#")[1].indexOf(" "),o=o.split("#")[0]+o.split("#")[1].substr(i+2));let e=o.split(" "),s=e.length;i=1;for(let t=0;t<s;t++)1===i&&(n.querySelector("#inpElmBoxShadowX").value=parseInt(e[t]),-1!==e[t].indexOf("px")?n.querySelector("#inpElmBoxShadowXUnit").value="px":-1!==e[t].indexOf("em")?n.querySelector("#inpElmBoxShadowXUnit").value="em":n.querySelector("#inpElmBoxShadowX").value=""),2===i&&(n.querySelector("#inpElmBoxShadowY").value=parseInt(e[t]),-1!==e[t].indexOf("px")?n.querySelector("#inpElmBoxShadowYUnit").value="px":-1!==e[t].indexOf("em")?n.querySelector("#inpElmBoxShadowYUnit").value="em":n.querySelector("#inpElmBoxShadowY").value=""),3===i&&(n.querySelector("#inpElmBoxShadowBlur").value=parseInt(e[t]),-1!==e[t].indexOf("px")?n.querySelector("#inpElmBoxShadowBlurUnit").value="px":-1!==e[t].indexOf("em")?n.querySelector("#inpElmBoxShadowBlurUnit").value="em":n.querySelector("#inpElmBoxShadowBlur").value=""),4===i&&(n.querySelector("#inpElmBoxShadowSpread").value=parseInt(e[t]),-1!==e[t].indexOf("px")?n.querySelector("#inpElmBoxShadowSpreadUnit").value="px":-1!==e[t].indexOf("em")?n.querySelector("#inpElmBoxShadowSpreadUnit").value="em":n.querySelector("#inpElmBoxShadowSpread").value=""),i++}}}const zv=new ni;class Fv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementDisplay");this.panelStuff=o;const s=`\n <div style="margin-top:13px;font-weight:bold;">${t.out("Display")}</div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="display:flex">\n <select id="inpElmDisplay" style="width:110px;">\n <option value=""></option>\n <option value="block">Block</option>\n <option value="inline-block">Inline Block</option>\n <option value="inline">Inline</option>\n <option value="flex">Flex</option>\n <option value="none">None</option>\n </select>\n </div>\n </div>\n\n <div style="margin-top:25px;font-weight:bold;width:100%;">${t.out("Flex")}</div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Direction")}:</div>\n <div style="display:flex">\n <select id="inpElmFlexDirection" style="width:110px;">\n <option value=""></option>\n <option value="row">Row</option>\n <option value="row-reverse">Row Reverse</option>\n <option value="column">Column</option>\n <option value="column-reverse">Column Reverse</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Wrap")}:</div>\n <div style="display:flex">\n <select id="inpElmFlexWrap" style="width:110px;">\n <option value=""></option>\n <option value="no-wrap">No Wrap</option>\n <option value="wrap">Wrap</option>\n <option value="wrap-reverse">Wrap Reverse</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div>${t.out("Justify Content")}:</div>\n <div style="display:flex">\n <select id="inpElmJustifyContent" style="width:110px;">\n <option value=""></option>\n <option value="center">Center</option>\n <option value="flex-start">Flex Start</option>\n <option value="flex-end">Flex End</option>\n <option value="space-around">Space Around</option>\n <option value="space-between">Space Between</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Align Items")}:</div>\n <div style="display:flex">\n <select id="inpElmAlignItems" style="width:110px;">\n <option value=""></option>\n <option value="center">Center</option>\n <option value="flex-start">Flex Start</option>\n <option value="flex-end">Flex End</option>\n <option value="stretch">Stretch</option>\n <option value="baseline">Baseline</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Align Content")}:</div>\n <div style="display:flex">\n <select id="inpElmAlignContent" style="width:110px;">\n <option value=""></option>\n <option value="center">Center</option>\n <option value="flex-start">Flex Start</option>\n <option value="flex-end">Flex End</option>\n <option value="stretch">Stretch</option>\n <option value="space-around">Space Around</option>\n <option value="space-between">Space Between</option>\n </select>\n </div>\n </div>\n `;zv.appendHtml(o,s);o.querySelector("#inpElmDisplay").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmDisplay").value;e.style.display=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmFlexDirection").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFlexDirection").value;e.style.flexDirection=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmFlexWrap").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFlexWrap").value;e.style.flexWrap=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmJustifyContent").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmJustifyContent").value;e.style.justifyContent=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmAlignItems").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmAlignItems").value;e.style.alignItems=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmAlignContent").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmAlignContent").value;e.style.alignContent=t,n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t=this.panelStuff;const i=t.querySelector("#inpElmDisplay");i.value="";let n=e.style.display;n&&(i.value=n);const o=t.querySelector("#inpElmFlexDirection");o.value="",n=e.style.flexDirection,n&&(o.value=n);const s=t.querySelector("#inpElmFlexWrap");s.value="",n=e.style.flexWrap,n&&(s.value=n);const a=t.querySelector("#inpElmJustifyContent");a.value="",n=e.style.justifyContent,n&&(a.value=n);const r=t.querySelector("#inpElmAlignItems");r.value="",n=e.style.alignItems,n&&(r.value=n);const l=t.querySelector("#inpElmAlignContent");l.value="",n=e.style.alignContent,n&&(l.value=n)}}const jv=new ni;class Uv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementPosition");this.panelStuff=o;const s=`\n <div style="margin-top:13px;font-weight:bold;width:100%;">${t.out("Position")}</div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="display:flex">\n <select id="inpElmPosition">\n <option value=""></option>\n <option value="relative">Relative</option>\n <option value="absolute">Absolute</option>\n <option value="fixed">Fixed</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Top")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmTop" value="" style="width:45px"/>\n <select id="inpElmTopUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Left")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmLeft" value="" style="width:45px"/>\n <select id="inpElmLeftUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Bottom")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmBottom" value="" style="width:45px"/>\n <select id="inpElmBottomUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div>${t.out("Right")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmRight" value="" style="width:45px"/>\n <select id="inpElmRightUnit">\n <option value="px">px</option>\n <option value="em">em</option>\n <option value="vw">vw</option>\n <option value="vh">vh</option>\n <option value="%">%</option>\n </select>\n </div>\n </div>\n\n <div style="margin-top: 25px;font-weight: bold;width:100%;">${t.out("Float")}</div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="display:flex">\n <select id="inpElmFloat">\n <option value=""></option>\n <option value="left">Left</option>\n <option value="right">Right</option>\n <option value="none">None</option>\n </select>\n </div>\n </div>\n `;jv.appendHtml(o,s);o.querySelector("#inpElmPosition").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmPosition").value;e.style.position=t,n.refresh(),this.builder.opts.onChange()}));o.querySelector("#inpElmFloat").addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=o.querySelector("#inpElmFloat").value;e.style.float=t,n.refresh(),this.builder.opts.onChange()}));const a=o.querySelector("#inpElmTop");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));const r=o.querySelector("#inpElmTopUnit");a.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=a.value,i=r.value;isNaN(t)||""===t?e.style.top="":e.style.top=t+i,n.refresh(),this.builder.opts.onChange()})),r.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=a.value,i=r.value;isNaN(t)||""===t?e.style.top="":e.style.top=t+i,n.refresh(),this.builder.opts.onChange()}));const l=o.querySelector("#inpElmBottom");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));const d=o.querySelector("#inpElmBottomUnit");l.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=l.value,i=d.value;isNaN(t)||""===t?e.style.bottom="":e.style.bottom=t+i,n.refresh(),this.builder.opts.onChange()})),d.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=l.value,i=d.value;isNaN(t)||""===t?e.style.bottom="":e.style.bottom=t+i,n.refresh(),this.builder.opts.onChange()}));const c=o.querySelector("#inpElmLeft");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));const u=o.querySelector("#inpElmLeftUnit");c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=c.value,i=u.value;isNaN(t)||""===t?e.style.left="":e.style.left=t+i,n.refresh(),this.builder.opts.onChange()})),u.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=c.value,i=u.value;isNaN(t)||""===t?e.style.left="":e.style.left=t+i,n.refresh(),this.builder.opts.onChange()}));const p=o.querySelector("#inpElmRight");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()}));const h=o.querySelector("#inpElmRightUnit");p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=p.value,i=h.value;isNaN(t)||""===t?e.style.right="":e.style.right=t+i,n.refresh(),this.builder.opts.onChange()})),h.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=p.value,i=h.value;isNaN(t)||""===t?e.style.right="":e.style.right=t+i,n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t=this.panelStuff;const i=t.querySelector("#inpElmPosition");i.value="";let n=e.style.position;i.value=n;const o=t.querySelector("#inpElmFloat");o.value="",n=e.style.float,o.value=n;const s=t.querySelector("#inpElmTop"),a=t.querySelector("#inpElmTopUnit");s.value="",a.value="px",n=e.style.top;let r=parseInt(n);isNaN(r)||(-1!==n.indexOf("%")&&(a.value="%"),-1!==n.indexOf("px")&&(a.value="px"),-1!==n.indexOf("vw")&&(a.value="vw"),-1!==n.indexOf("vh")&&(a.value="vh"),-1!==n.indexOf("em")&&(a.value="em"),s.value=r);const l=t.querySelector("#inpElmBottom"),d=t.querySelector("#inpElmBottomUnit");l.value="",d.value="px",n=e.style.bottom;let c=parseInt(n);isNaN(c)||(-1!==n.indexOf("%")&&(d.value="%"),-1!==n.indexOf("px")&&(d.value="px"),-1!==n.indexOf("vw")&&(d.value="vw"),-1!==n.indexOf("vh")&&(d.value="vh"),-1!==n.indexOf("em")&&(d.value="em"),l.value=c);const u=t.querySelector("#inpElmLeft"),p=t.querySelector("#inpElmLeftUnit");u.value="",p.value="px",n=e.style.left;let h=parseInt(n);isNaN(h)||(-1!==n.indexOf("%")&&(p.value="%"),-1!==n.indexOf("px")&&(p.value="px"),-1!==n.indexOf("vw")&&(p.value="vw"),-1!==n.indexOf("vh")&&(p.value="vh"),-1!==n.indexOf("em")&&(p.value="em"),u.value=h);const g=t.querySelector("#inpElmRight"),f=t.querySelector("#inpElmRightUnit");g.value="",f.value="px",n=e.style.right;let m=parseInt(n);isNaN(m)||(-1!==n.indexOf("%")&&(f.value="%"),-1!==n.indexOf("px")&&(f.value="px"),-1!==n.indexOf("vw")&&(f.value="vw"),-1!==n.indexOf("vh")&&(f.value="vh"),-1!==n.indexOf("em")&&(f.value="em"),g.value=m)}}const Wv=new ni;class Gv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new qv(e);let o=i.querySelector("#divElementEffect");this.panelStuff=o;const s=`\n <div style="margin-top:13px;font-weight:bold;">${t.out("Effects")}</div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div>${t.out("Opacity")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmOpacity" value="" style="width:45px"/>\n </div>\n </div>\n\n <div style="margin-top:25px;font-weight:bold;width:100%;">${t.out("Filters")}</div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Blur")}:</div>\n <div>\n <input type="text" id="inpElmBlur" value="" style="width:45px"/> &nbsp;px\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Brightness")}:</div>\n <div>\n <input type="text" id="inpElmBrightness" value="" style="width:45px"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Contrast")}:</div>\n <div>\n <input type="text" id="inpElmContrast" value="" style="width:45px"/> &nbsp;%\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Grayscale")}:</div>\n <div>\n <input type="text" id="inpElmGrayscale" value="" style="width:45px"/> &nbsp;%\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Hue Rotate")}:</div>\n <div>\n <input type="text" id="inpElmHueRotate" value="" style="width:45px"/> &nbsp;<span style="font-size:12px">deg</span>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Invert")}:</div>\n <div>\n <input type="text" id="inpElmInvert" value="" style="width:45px"/> &nbsp;%\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Saturate")}:</div>\n <div>\n <input type="text" id="inpElmSaturate" value="" style="width:45px"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div>${t.out("Sepia")}:</div>\n <div>\n <input type="text" id="inpElmSepia" value="" style="width:45px"/> &nbsp;%\n </div>\n </div>\n `;Wv.appendHtml(o,s);const a=o.querySelector("#inpElmOpacity");let r;a.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),a.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmOpacity").value;e.style.opacity=t,n.refresh(),this.builder.opts.onChange()}));const l=o.querySelector("#inpElmBlur");l.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),l.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBlur").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("blur")&&(isNaN(t)||""===t?s[r]="":s[r]="blur("+t+"px)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" blur("+t+"px)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const d=o.querySelector("#inpElmBrightness");d.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),d.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmBrightness").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("brightness")&&(isNaN(t)||""===t?s[r]="":s[r]="brightness("+t+")",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" brightness("+t+")";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const c=o.querySelector("#inpElmContrast");c.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),c.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmContrast").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("contrast")&&(isNaN(t)||""===t?s[r]="":s[r]="contrast("+t+"%)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" contrast("+t+"%)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const u=o.querySelector("#inpElmGrayscale");u.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),u.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmGrayscale").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("grayscale")&&(isNaN(t)||""===t?s[r]="":s[r]="grayscale("+t+"%)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" grayscale("+t+"%)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const p=o.querySelector("#inpElmHueRotate");p.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),p.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmHueRotate").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("hue-rotate")&&(isNaN(t)||""===t?s[r]="":s[r]="hue-rotate("+t+"deg)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" hue-rotate("+t+"deg)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const h=o.querySelector("#inpElmInvert");h.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),h.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmInvert").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("invert")&&(isNaN(t)||""===t?s[r]="":s[r]="invert("+t+"%)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" invert("+t+"%)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const g=o.querySelector("#inpElmSaturate");g.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),g.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmSaturate").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("saturate")&&(isNaN(t)||""===t?s[r]="":s[r]="saturate("+t+")",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" saturate("+t+")";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}));const f=o.querySelector("#inpElmSepia");f.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),f.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=o.querySelector("#inpElmSepia").value,i=e.style.filter;i=i.replace("none","");let s=i.split(" "),a=!1;for(r=0;r<s.length;r++){-1!==s[r].indexOf("sepia")&&(isNaN(t)||""===t?s[r]="":s[r]="sepia("+t+"%)",a=!0)}if(a)for(i="",r=0;r<s.length;r++)i+=" "+s[r];else i=i+" sepia("+t+"%)";""===i.trim()?e.style.filter="none":e.style.filter=i,n.refresh(),this.builder.opts.onChange()}))}readElementStyles(e){let t=this.panelStuff;const i=t.querySelector("#inpElmOpacity");i.value="";let n=e.style.opacity;n&&(i.value=n);let o=e.style.filter.split(" ");const s=t.querySelector("#inpElmBlur");s.value="";const a=t.querySelector("#inpElmBrightness");a.value="";const r=t.querySelector("#inpElmGrayscale");r.value="";const l=t.querySelector("#inpElmContrast");l.value="";const d=t.querySelector("#inpElmHueRotate");d.value="";const c=t.querySelector("#inpElmInvert");c.value="";const u=t.querySelector("#inpElmSaturate");u.value="";const p=t.querySelector("#inpElmSepia");let h;p.value="";for(let e=0;e<o.length;e++)n=o[e],-1!==n.indexOf("blur")&&(h=n.replace("blur(","").replace(")",""),h=parseInt(h),s.value=h),-1!==n.indexOf("brightness")&&(h=n.replace("brightness(","").replace(")",""),h=parseInt(h),a.value=h),-1!==n.indexOf("grayscale")&&(h=n.replace("grayscale(","").replace(")",""),h=parseInt(h),r.value=h),-1!==n.indexOf("contrast")&&(h=n.replace("contrast(","").replace(")",""),h=parseInt(h),l.value=h),-1!==n.indexOf("hue-rotate")&&(h=n.replace("hue-rotate(","").replace(")",""),h=parseInt(h),d.value=h),-1!==n.indexOf("invert")&&(h=n.replace("invert(","").replace(")",""),h=parseInt(h),c.value=h),-1!==n.indexOf("saturate")&&(h=n.replace("saturate(","").replace(")",""),h=parseInt(h),u.value=h),-1!==n.indexOf("sepia")&&(h=n.replace("sepia(","").replace(")",""),h=parseInt(h),p.value=h)}}const Vv=new ni;class Yv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector("#divElementAttribute");this.panelStuff=n;const o=`\n <div style="margin-top:13px;font-weight:bold;width:100%;">${t.out("Attributes")}</div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="width:100%">${t.out("Names")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmAttr1" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="width:100%">${t.out("Values")}:</div>\n <div style="display:flex">\n <input type="text" id="inpElmAttrVal1" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttr2" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttrVal2" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttr3" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttrVal3" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttr4" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttrVal4" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;">\n <div style="display:flex">\n <input type="text" id="inpElmAttr5" value="" style="width:90%"/>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:120px;float:left;">\n <div style="display:flex">\n <input type="text" id="inpElmAttrVal5" value="" style="width:90%"/>\n </div>\n </div>\n `;Vv.appendHtml(n,o);let s=n.querySelectorAll("#inpElmAttr1,#inpElmAttr2,#inpElmAttr3,#inpElmAttr4,#inpElmAttr5,#inpElmAttrVal1,#inpElmAttrVal2,#inpElmAttrVal3,#inpElmAttrVal4,#inpElmAttrVal5");Array.prototype.forEach.call(s,(e=>{e.addEventListener("click",(()=>{this.builder.uo.saveForUndo()})),e.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement;this.updateAttributes(e),this.builder.opts.onChange()}))}))}updateAttributes(e){let t={};Array.prototype.forEach.call(e.attributes,(e=>{t[e.name]=e.value}));for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&"id"!==i&&"style"!==i&&"class"!==i&&"href"!==i&&"src"!==i&&"contenteditable"!==i&&"data-filename"!==i&&e.removeAttribute(i);const i=this.panelStuff;let n,o;n=i.querySelector("#inpElmAttr1").value,o=i.querySelector("#inpElmAttrVal1").value,""!==n&&e.setAttribute(n,o),n=i.querySelector("#inpElmAttr2").value,o=i.querySelector("#inpElmAttrVal2").value,""!==n&&e.setAttribute(n,o),n=i.querySelector("#inpElmAttr3").value,o=i.querySelector("#inpElmAttrVal3").value,""!==n&&e.setAttribute(n,o),n=i.querySelector("#inpElmAttr4").value,o=i.querySelector("#inpElmAttrVal4").value,""!==n&&e.setAttribute(n,o),n=i.querySelector("#inpElmAttr5").value,o=i.querySelector("#inpElmAttrVal5").value,""!==n&&e.setAttribute(n,o)}readElementStyles(e){const t=this.panelStuff;let i=t.querySelectorAll("#inpElmAttr1,#inpElmAttr2,#inpElmAttr3,#inpElmAttr4,#inpElmAttr5,#inpElmAttrVal1,#inpElmAttrVal2,#inpElmAttrVal3,#inpElmAttrVal4,#inpElmAttrVal5");Array.prototype.forEach.call(i,(e=>{e.value=""}));var n=1;Array.prototype.forEach.call(e.attributes,(e=>{"id"!==e.name&&"style"!==e.name&&"class"!==e.name&&"href"!==e.name&&"src"!==e.name&&"contenteditable"!==e.name&&"data-filename"!==e.name&&"data-saveforundo"!==e.name&&(t.querySelector("#inpElmAttr"+n).value=e.name,t.querySelector("#inpElmAttrVal"+n).value=e.value,n+=1)}))}}const Xv=new ni;class Kv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector("#divElementAnimation");this.panelStuff=n;const o=`\n <div style="margin-top:13px;font-weight:bold;">${t.out("Animate")}</div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="display:flex">\n <select id="selElmAnim">\n <option value=""></option>\n <option value="fade">fade</option>\n <option value="fade-up">fade-up</option>\n <option value="fade-down">fade-down</option>\n <option value="fade-left">fade-left</option>\n <option value="fade-right">fade-right</option>\n <option value="fade-up-right">fade-up-right</option>\n <option value="fade-up-left">fade-up-left</option>\n <option value="fade-down-right">fade-down-right</option>\n <option value="fade-down-left">fade-down-left</option>\n <option value="flip-up">flip-up</option>\n <option value="flip-down">flip-down</option>\n <option value="flip-left">flip-left</option>\n <option value="flip-right">flip-right</option>\n <option value="slide-up">slide-up</option>\n <option value="slide-down">slide-down</option>\n <option value="slide-left">slide-left</option>\n <option value="slide-right">slide-right</option>\n <option value="zoom-in">zoom-in</option>\n <option value="zoom-in-up">zoom-in-up</option>\n <option value="zoom-in-down">zoom-in-down</option>\n <option value="zoom-in-left">zoom-in-left</option>\n <option value="zoom-in-right">zoom-in-right</option>\n <option value="zoom-out">zoom-out</option>\n <option value="zoom-out-up">zoom-out-up</option>\n <option value="zoom-out-down">zoom-out-down</option>\n <option value="zoom-out-left">zoom-out-left</option>\n <option value="zoom-out-right">zoom-out-right</option>\n </select>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div> ${t.out("Delay")}:</div>\n <div>\n <select id="selElmAnimDelay">\n <option value=""></option>\n <option value="0">0</option>\n <option value="100">100</option>\n <option value="200">200</option>\n <option value="300">300</option>\n <option value="400">400</option>\n <option value="500">500</option>\n <option value="600">600</option>\n <option value="700">700</option>\n <option value="800">800</option>\n <option value="900">900</option>\n <option value="1000">1000</option>\n <option value="1100">1100</option>\n <option value="1200">1200</option>\n <option value="1300">1300</option>\n <option value="1400">1400</option>\n <option value="1500">1500</option>\n <option value="1600">1600</option>\n <option value="1700">1700</option>\n <option value="1800">1800</option>\n <option value="1900">1900</option>\n <option value="2000">2000</option>\n <option value="2100">2100</option>\n <option value="2200">2200</option>\n <option value="2300">2300</option>\n <option value="2400">2400</option>\n <option value="2500">2500</option>\n <option value="2600">2600</option>\n <option value="2700">2700</option>\n <option value="2800">2800</option>\n <option value="2900">2900</option>\n <option value="3000">3000</option>\n </select> &nbsp;ms\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:110px;">\n <div> ${t.out("Duration")}:</div>\n <div>\n <select id="selElmAnimDuration">\n <option value=""></option>\n <option value="0">0</option>\n <option value="100">100</option>\n <option value="200">200</option>\n <option value="300">300</option>\n <option value="400">400</option>\n <option value="500">500</option>\n <option value="600">600</option>\n <option value="700">700</option>\n <option value="800">800</option>\n <option value="900">900</option>\n <option value="1000">1000</option>\n <option value="1100">1100</option>\n <option value="1200">1200</option>\n <option value="1300">1300</option>\n <option value="1400">1400</option>\n <option value="1500">1500</option>\n <option value="1600">1600</option>\n <option value="1700">1700</option>\n <option value="1800">1800</option>\n <option value="1900">1900</option>\n <option value="2000">2000</option>\n <option value="2100">2100</option>\n <option value="2200">2200</option>\n <option value="2300">2300</option>\n <option value="2400">2400</option>\n <option value="2500">2500</option>\n <option value="2600">2600</option>\n <option value="2700">2700</option>\n <option value="2800">2800</option>\n <option value="2900">2900</option>\n <option value="3000">3000</option>\n </select> &nbsp;ms\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="margin-top:15px">\n <label for="chkAnimateOnce"><input type="checkbox" id="chkAnimateOnce" value=""> ${t.out("Animate Once")} </label>\n </div>\n </div>\n\n <div class="is-settings clearfix" style="width:100%;">\n <div style="display:flex">\n <button title="${t.out("Test")}" id="btnPreviewAnim" class="classic" value=""> ${t.out("TEST")} </button>\n </div>\n </div>\n `;Xv.appendHtml(n,o);let s=n.querySelector("#selElmAnim");s.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=n.querySelector("#selElmAnim").value;""===t?e.removeAttribute("data-aos"):(e.setAttribute("data-aos",t),n.querySelector("#btnPreviewAnim").click()),this.builder.opts.onChange()})),s=n.querySelector("#selElmAnimDelay"),s.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=n.querySelector("#selElmAnimDelay").value;""===t?e.removeAttribute("data-aos-delay"):e.setAttribute("data-aos-delay",t),this.builder.opts.onChange()})),s=n.querySelector("#selElmAnimDuration"),s.addEventListener("change",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement,t=n.querySelector("#selElmAnimDuration").value;""===t?e.removeAttribute("data-aos-duration"):e.setAttribute("data-aos-duration",t),this.builder.opts.onChange()}));let a=n.querySelector("#chkAnimateOnce");a.addEventListener("click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.inspectedElement;n.querySelector("#chkAnimateOnce").checked?e.setAttribute("data-aos-once","true"):e.removeAttribute("data-aos-once"),this.builder.opts.onChange()})),a=n.querySelector("#btnPreviewAnim"),a.addEventListener("click",(()=>{let e=this.builder.inspectedElement,t=e.getAttribute("data-aos-duration");e.removeAttribute("data-aos-duration"),e.style.visibility="hidden",window.AOS&&window.AOS.init({duration:1}),Xv.removeClass(e,"aos-init"),Xv.removeClass(e,"aos-animate"),setTimeout((function(){e.style.visibility="",window.AOS&&window.AOS.init({duration:1200}),t&&e.setAttribute("data-aos-duration",t)}),10)}))}readElementStyles(e){this.panelStuff.querySelector("#selElmAnimDelay").value="";let t=e.getAttribute("data-aos-delay");this.panelStuff.querySelector("#selElmAnimDelay").value=t,this.panelStuff.querySelector("#selElmAnimDuration").value="",t=e.getAttribute("data-aos-duration"),this.panelStuff.querySelector("#selElmAnimDuration").value=t,this.panelStuff.querySelector("#chkAnimateOnce").checked=!1;let i=e.getAttribute("data-aos-once");i&&"true"===i&&(this.panelStuff.querySelector("#chkAnimateOnce").checked=!0),this.panelStuff.querySelector("#selElmAnim").value="",t=e.getAttribute("data-aos"),this.panelStuff.querySelector("#selElmAnim").value=t}}const Zv=new ni;let Qv=[];class Jv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector(".elementstyles");if(!n){let o=`\n <div class="is-side${"right"===this.builder.opts.sidePanel?"":" fromleft"} elementstyles" style="display:none;">\n <div class="elm-list" style="z-index:1;width:100%;height:100px;position:absolute;top:0px;left:0px;box-sizing:border-box;display:flex;align-items:center;flex-wrap: wrap;padding:10px 23px 10px 18px;"></div>\n \n <button title="${t.out("Close")}" class="is-side-close" style="z-index:1;background:transparent;width:25px;height:25px;position:absolute;top:10px;right:13px;box-sizing:border-box;padding:0;line-height:25px;font-size: 12px;text-align:center;cursor:pointer;"><svg class="is-icon-flex" style="width:25px;height:25px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n \n <div style="position: absolute;bottom:7px;right:7px;width:40px;height:25px;z-index:1;display:flex">\n <button title="${t.out("css")}" class="elm-editstyle classic" style="width: 40px;height: 25px;font-family: sans-serif;font-size: 10px;padding: 0px;font-weight: bold;">${t.out("css")}</button>\n </div>\n \n <div style="width:100%;height:100%;overflow-y:auto;overflow-x:hidden;position:absolute;top:0px;left:0px;box-sizing:border-box;border-top:100px solid transparent;padding:0px;">\n \n <div class="is-tabs clearfix" data-group="element" style="padding-right:0;padding-bottom:0;">\n <a title="${t.out("Box")}" id="tabElementBox" href="" data-content="divElementBox" class="active">${t.out("Box")}</a>\n <a title="${t.out("Spacing")}" id="tabElementSpacing" href="" data-content="divElementSpacing">${t.out("Spacing")}</a>\n <a title="${t.out("Border")}" id="tabElementBorder" href="" data-content="divElementBorder">${t.out("Border")}</a>\n <a title="${t.out("Text")}" id="tabElementText" href="" data-content="divElementText">${t.out("Text")}</a>\n <a title="${t.out("More")}" id="tabElementMore" data-menu="divElementMore" href=""><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-more"></use></svg></a>\n </div>\n \n <div id="divElementMore" class="is-tabs-more" data-group="element">\n <a title="${t.out("Corners")}" id="tabElementCorner" href="" data-content="divElementCorner">${t.out("Corners")}</a>\n <a title="${t.out("Shadow")}" id="tabElementShadow" href="" data-content="divElementShadow">${t.out("Shadow")}</a>\n <a title="${t.out("Display")}" id="tabElementDisplay" href="" data-content="divElementDisplay">${t.out("Display")}</a>\n <a title="${t.out("Position")}" id="tabElementPosition" href="" data-content="divElementPosition">${t.out("Position")}</a>\n <a title="${t.out("Effects")}" id="tabElementEffect" href="" data-content="divElementEffect">${t.out("Effects")}</a>\n <a title="${t.out("Attributes")}" id="tabElementAttribute" href="" data-content="divElementAttribute">${t.out("Attributes")}</a>\n ${!0===this.builder.opts.elementAnimate?`<a title="${t.out("Animation")}" id="tabElementAnimation" href="" data-content="divElementAnimation">${t.out("Animation")}</a>`:""}\n </div>\n\n <div id="divElementBox" class="is-tab-content" data-group="element" style="display:flex;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n <div id="divElementSpacing" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n <div id="divElementBorder" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n <div id="divElementText" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n <div id="divElementCorner" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n <div id="divElementShadow" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n \n <div id="divElementDisplay" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n \n <div id="divElementPosition" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n \n <div id="divElementEffect" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n \n <div id="divElementAttribute" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n \n <div id="divElementAnimation" class="is-tab-content" data-group="element" style="display:none;flex-flow:wrap;padding:12px 20px;">\n </div>\n\n </div>\n </div> \n `;Zv.appendHtml(i,o),this.elementStyleEditor=new qv(e),n=i.querySelector(".elementstyles");let s=n.querySelector(".is-side-close");Zv.addEventListener(s,"click",(()=>{this.hidePanel()})),s=n.querySelector(".elm-editstyle"),Zv.addEventListener(s,"click",(()=>{this.elementStyleEditor.toggleStyleEditor()}))}this.panel=n;const o=new Lv(e);this.elementBoxStyles=o;const s=new Ov(e);this.elementSpacingStyles=s;const a=new Nv(e);this.elementBorderStyles=a;const r=new Iv(e);this.elementTextStyles=r;const l=new $v(e);this.elementCornerStyles=l;const d=new Hv(e);this.elementShadowStyles=d;const c=new Fv(e);this.elementDisplayStyles=c;const u=new Uv(e);this.elementPositionStyles=u;const p=new Gv(e);this.elementEffectStyles=p;const h=new Yv(e);this.elementAttributeStyles=h;const g=new Kv(e);this.elementAnimationStyles=g}click(){(Zv.hasClass(this.panel,"active")||Zv.hasClass(this.elementStyleEditor.modalStyles,"active"))&&this.inspect(this.builder.inspectedElement)}inspect(e){this.elementBoxStyles.readElementStyles(e),this.elementSpacingStyles.readElementStyles(e),this.elementBorderStyles.readElementStyles(e),this.elementTextStyles.readElementStyles(e),this.elementCornerStyles.readElementStyles(e),this.elementShadowStyles.readElementStyles(e),this.elementDisplayStyles.readElementStyles(e),this.elementPositionStyles.readElementStyles(e),this.elementEffectStyles.readElementStyles(e),this.elementAttributeStyles.readElementStyles(e),this.elementAnimationStyles.readElementStyles(e);let t=this.panel,i=document.querySelectorAll("[data-saveforundo]");Array.prototype.forEach.call(i,(e=>{e.removeAttribute("data-saveforundo")})),e.setAttribute("data-saveforundo",""),i=document.querySelectorAll(".elm-inspected"),Array.prototype.forEach.call(i,(e=>{Zv.removeClass(e,"elm-inspected")})),setTimeout((()=>{Zv.addClass(e,"elm-inspected")}),10),t.querySelector(".elm-list").innerHTML="";let n=e,o=0;for(Qv=[];!Zv.hasClass(n,"is-builder")&&(Qv.push(n),n)&&n.tagName;){var s=n.tagName.toLowerCase(),a=Zv.createElement("a");a.setAttribute("data-index",o),o++,a.setAttribute("href","#"),a.innerHTML=s,""===t.querySelector(".elm-list").innerHTML?(Zv.addClass(a,"active"),t.querySelector(".elm-list").insertAdjacentHTML("afterbegin",a.outerHTML)):(t.querySelector(".elm-list").insertAdjacentHTML("afterbegin","&nbsp;>&nbsp; "),t.querySelector(".elm-list").insertAdjacentHTML("afterbegin",a.outerHTML)),n=n.parentNode}const r=t.querySelectorAll(".elm-list a");Array.prototype.forEach.call(r,(e=>{Zv.addEventListener(e,"click",(t=>{let i=e.getAttribute("data-index");this.builder.inspectedElement=Qv[i],this.inspect(Qv[i]),document.querySelector(".elm-inspected.elm-active")||(this.builderStuff.querySelector(".is-element-tool").style.display="none"),t.preventDefault(),t.stopImmediatePropagation()}))})),this.elementStyleEditor.refresh()}showPanel(){var e=this.builderStuff.querySelector(".is-side.elementstyles");e.style.display="block";let t=this.builderStuff.querySelectorAll(".is-side");Array.prototype.forEach.call(t,(e=>{Zv.removeClass(e,"active")})),setTimeout((()=>{Zv.addClass(e,"active")}),10),this.inspect(this.builder.inspectedElement)}hidePanel(){var e=this.builderStuff.querySelector(".is-side.elementstyles");Zv.removeClass(e,"active");let t=document.querySelectorAll("[data-saveforundo]");Array.prototype.forEach.call(t,(e=>{e.removeAttribute("data-saveforundo")})),t=document.querySelectorAll(".elm-inspected"),Array.prototype.forEach.call(t,(e=>{Zv.removeClass(e,"elm-inspected")}))}}const eb=new ni;class tb{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new Jv(e);this.elementPanel=n;let o=i.querySelector(".is-element-tool"),s=i.querySelector(".elmmore");if(!o){let e=`<div class="is-tool is-element-tool">\n <button type="button" title="${t.out("Add")}" class="elm-add"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n <button type="button" title="${t.out("More")}" class="elm-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>\n <button type="button" title="${t.out("Delete")}" class="elm-remove"><svg class="is-icon-flex" style="margin-left:-1px"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n <button type="button" title="${t.out("Settings")}" class="elm-settings"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>\n </div>\n <div class="is-pop elmmore" style="z-index:10002;">\n <div style="display:flex;flex-flow:wrap;">\n <button type="button" title="${t.out("Move Up")}" class="elm-up"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></span>${t.out("Move Up")}</button>\n <button type="button" title="${t.out("Move Down")}" class="elm-down"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></span>${t.out("Move Down")}</button>\n <button type="button" title="${t.out("Duplicate")}" class="elm-duplicate"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></span>${t.out("Duplicate")}</button>\n ${this.builder.opts.elementEditor?`\n <button type="button" title="${t.out("Settings")}" class="elm-settings"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></span>${t.out("Settings")}</button>\n `:""} \n </div>\n </div>\n `;eb.appendHtml(i,e),o=i.querySelector(".is-element-tool"),s=i.querySelector(".elmmore");let n=o.querySelectorAll("[title]");Array.prototype.forEach.call(n,(e=>{e.setAttribute("data-title",e.getAttribute("title"))}))}this.elementTool=o,this.elementMore=s;const a=Jo(e),r=o.querySelector(".elm-add");eb.addEventListener(r,"click",(()=>{a.querySelector(".is-pop-tabs").style.display="none";const e=window.innerHeight,t=r.getBoundingClientRect().top,i=r.getBoundingClientRect().left;a.style.display="flex";const n=a.offsetWidth,o=a.offsetHeight;return e-t>o?(a.style.top=t+window.pageYOffset+27+"px",a.style.left=i-n/2+10+"px",eb.removeClass(a,"arrow-bottom"),eb.removeClass(a,"arrow-right"),eb.removeClass(a,"arrow-left"),eb.removeClass(a,"center"),eb.addClass(a,"arrow-top"),eb.addClass(a,"center")):(a.style.top=t+window.pageYOffset-o-8+"px",a.style.left=i-n/2+10+"px",eb.removeClass(a,"arrow-top"),eb.removeClass(a,"arrow-right"),eb.removeClass(a,"arrow-left"),eb.removeClass(a,"center"),eb.addClass(a,"arrow-bottom"),eb.addClass(a,"center")),a.setAttribute("data-mode","elm"),!1}));const l=o.querySelector(".elm-remove");eb.addEventListener(l,"click",(()=>{t.confirm(t.out("Are you sure you want to delete this element?"),(n=>{if(n){this.builder.uo.saveForUndo();let n=this.builder.activeElement;if(eb.hasClass(n.parentNode,"cell-active")||n.parentNode.hasAttribute("data-subblock"))n.parentNode.removeChild(n);else if(n.parentNode.childElementCount>1)n.parentNode.removeChild(n);else{let e=n;if(eb.parentsHasAttribute(e,"data-subblock"))for(;!e.parentNode.hasAttribute("data-subblock")&&1===n.parentNode.childElementCount;)e=e.parentNode;else for(;!eb.hasClass(e.parentNode,"cell-active")&&1===n.parentNode.childElementCount;)e=e.parentNode;e.parentNode.removeChild(e)}this.elementTool.style.display="none";let o=this.builder.activeCol;if(o){let n=o.parentNode;if(0===o.childElementCount&&3===n.childElementCount){n.parentNode.removeChild(n);let e=i.querySelector(".is-column-tool");eb.removeClass(e,"active"),t.checkEmpty()}else if(0===o.childElementCount){n.removeChild(o),t.fixLayout(n,e);let s=i.querySelector(".is-column-tool");eb.removeClass(s,"active")}}const s=document.querySelectorAll(".is-subblock");Array.prototype.forEach.call(s,(e=>{const t=eb.elementChildren(e);let i=!0;t.forEach((()=>{i=!1})),i&&(e.innerHTML='<div class="spacer height-40" contentEditable="false"></div>')})),t.clearControls(),this.builder.opts.onChange()}}))}));const d=o.querySelector(".elm-more");eb.addEventListener(d,"click",(()=>{const e=window.innerHeight,t=d.getBoundingClientRect().top,i=d.getBoundingClientRect().left;s.style.display="flex";const n=s.offsetWidth,o=s.offsetHeight;e-t>o?(s.style.top=t+window.pageYOffset+27+"px",s.style.left=i-n/2+10+"px",eb.removeClass(s,"arrow-bottom"),eb.removeClass(s,"arrow-right"),eb.removeClass(s,"arrow-left"),eb.removeClass(s,"center"),eb.addClass(s,"arrow-top"),eb.addClass(s,"center")):(s.style.top=t+window.pageYOffset-o-8+"px",s.style.left=i-n/2+10+"px",eb.removeClass(s,"arrow-top"),eb.removeClass(s,"arrow-right"),eb.removeClass(s,"arrow-left"),eb.removeClass(s,"center"),eb.addClass(s,"arrow-bottom"),eb.addClass(s,"center"))}));const c=s.querySelector(".elm-up");eb.addEventListener(c,"click",(()=>{let e=this.builder.activeElement;if(e.previousElementSibling)this.builder.uo.saveForUndo(),e.parentNode.insertBefore(e,e.previousElementSibling),e.click(),this.position(e),this.builder.opts.onChange();else{let t=e;for(;!eb.hasClass(t.parentNode,"cell-active")&&!t.parentNode.hasAttribute("data-subblock");)t=t.parentNode;t.previousElementSibling&&t!==e&&(this.builder.uo.saveForUndo(),t.parentNode.insertBefore(t,t.previousElementSibling),e.click(),this.position(e),this.builder.opts.onChange())}e.click(),o.querySelector(".elm-more").click()}));const u=s.querySelector(".elm-down");eb.addEventListener(u,"click",(()=>{let e=this.builder.activeElement;if(e.nextElementSibling)this.builder.uo.saveForUndo(),e.parentNode.insertBefore(e.nextElementSibling,e),e.click(),this.position(e),this.builder.opts.onChange();else{let t=e;for(;!eb.hasClass(t.parentNode,"cell-active")&&!t.parentNode.hasAttribute("data-subblock");)t=t.parentNode;t.nextElementSibling&&t!==e&&(this.builder.uo.saveForUndo(),t.parentNode.insertBefore(t.nextElementSibling,t),e.click(),this.position(e),this.builder.opts.onChange())}}));const p=s.querySelector(".elm-duplicate");eb.addEventListener(p,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeElement;const t=e.cloneNode(!0);eb.moveAfter(t,e),setTimeout((()=>{t.click(),this.position(t);let e=document.querySelector(".builder-active");e&&this.builder.applyBehaviorOn(e),this.builder.opts.onChange()}),100)}));const h=o.querySelector(".elm-settings");h&&eb.addEventListener(h,"click",(()=>{s.style.display="",this.elementPanel.showPanel()}));const g=s.querySelector(".elm-settings");g&&eb.addEventListener(g,"click",(()=>{s.style.display="",this.elementPanel.showPanel()})),document.addEventListener("mousedown",(e=>{var t=(e=e||window.event).target||e.srcElement;if("flex"===s.style.display){let e=eb.parentsHasClass(t,"elmmore"),i=eb.parentsHasClass(t,"elm-more");if(e||i)return;s.style.display=""}}))}hide(){this.elementTool.style.display="";let e=document.querySelectorAll(".elm-active");Array.prototype.forEach.call(e,(e=>{eb.removeClass(e,"elm-active")}))}position(){let e=this.elementTool,t=this.elementMore;eb.addClass(t,"transition1");let i=e.querySelector(".elm-more");const n=window.innerHeight,o=i.getBoundingClientRect().top,s=i.getBoundingClientRect().left;t.style.display="flex";const a=t.offsetWidth,r=t.offsetHeight;n-o>r?(t.style.top=o+window.pageYOffset+27+"px",t.style.left=s-a/2+10+"px",eb.removeClass(t,"arrow-bottom"),eb.removeClass(t,"arrow-right"),eb.removeClass(t,"arrow-left"),eb.removeClass(t,"center"),eb.addClass(t,"arrow-top"),eb.addClass(t,"center")):(t.style.top=o+window.pageYOffset-r-8+"px",t.style.left=s-a/2+10+"px",eb.removeClass(t,"arrow-top"),eb.removeClass(t,"arrow-right"),eb.removeClass(t,"arrow-left"),eb.removeClass(t,"center"),eb.addClass(t,"arrow-bottom"),eb.addClass(t,"center")),setTimeout((()=>{eb.removeClass(t,"transition1")}),300)}click(e,t){const i=t.target;this.elementTool.style.display="none";let n=document.querySelectorAll(".elm-active");Array.prototype.forEach.call(n,(e=>{eb.removeClass(e,"elm-active")}));let o=null,s=!1;e.hasAttribute("data-noedit")&&(s=!0);let a=!1;e.hasAttribute("data-protected")&&(a=!0);let r=!1;e.hasAttribute("data-html")&&(r=!0);let l=!1;if(eb.parentsHasClass(i,"is-subblock")&&(l=!0),(r||s||a)&&!l);else{const e=i.tagName.toLowerCase();if("h1"===e||"h2"===e||"h3"===e||"h4"===e||"h5"===e||"h6"===e||"p"===e||"pre"===e||"blockquote"===e||"li"===e||"img"===e||"iframe"===e){if(o=i,"img"===e){eb.hasClass(i.parentNode,"img-circular")&&(o=i.parentNode),eb.getParentByTag(i,"a")&&(o=i.parentNode)}}else if(eb.hasClass(i,"cell-active")||i.hasAttribute("data-subblock"));else if(eb.hasClass(i,"cell-active")||i.parentNode.hasAttribute("data-subblock"))o=i;else{let e=i;for(;"BODY"!==e.tagName&&"HTML"!==e.tagName;){let t=e.tagName.toLowerCase();if(eb.hasClass(e,"spacer")||"h1"===t||"h2"===t||"h3"===t||"h4"===t||"h5"===t||"h6"===t||"p"===t||"pre"===t||"blockquote"===t||"li"===t||"img"===t||"iframe"===t){o=e;break}if(eb.hasClass(e.parentNode,"cell-active")||e.parentNode.hasAttribute("data-subblock")){o=e;break}e=e.parentNode}}}if(this.builder.activeElement=o,o){let e=o;this.pos(),eb.addClass(e,"elm-active")}this.builder.inspectedElement=t.target,this.elementPanel.click(t)}refresh(){if(this.builder.activeElement){this.elementTool.style.display="",setTimeout((()=>{this.pos()}),300)}}repositionElementTool(e){if(this.builder.activeElement)try{if(e){"flex"===this.elementTool.style.display&&this.pos()}else this.pos()}catch(e){}}pos(){let e=this.elementTool,t=this.builder.activeElement;const i=t.getBoundingClientRect().top+window.pageYOffset,n=t.getBoundingClientRect().left+window.pageXOffset,o=t.offsetWidth*this.builder.opts.zoom,s=t.offsetHeight*this.builder.opts.zoom;e.style.display="flex",e.style.top=i+s+"px",e.style.left=n+o-e.offsetWidth+"px";const a=window.innerWidth;n+o>a&&(e.style.left=a-e.offsetWidth+"px")}}const ib=new ni;class nb{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;let n="";if(this.builder.themes){n='<div class="div-themes">';let e=0;this.builder.themes.forEach((i=>{""===i[1]?n+=`<button type="button" title="${t.out("Set theme")}" class="input-setcolor" data-index="${e}" style="background:${i[0]};border:rgba(0,0,0,0.15) 1px solid;"></button>`:"light"===i[1]?n+=`<button type="button" title="${t.out("Set theme")}" class="input-setcolor" data-index="${e}" style="background:${i[0]};border:rgb(132 132 132 / 16%) 1px solid;"></button>`:n+=`<button type="button" title="${t.out("Set theme")}" class="input-setcolor" data-index="${e}" style="background:${i[0]};"></button>`,e++})),n+="</div>"}let o=i.querySelector(".viewconfig");if(!o){let s=`<div class="is-modal viewconfig">\n <div class="is-modal-content">\n <div class="is-modal-bar is-draggable">${t.out("Preferences")}</div>\n \n <div style="display:flex;flex-wrap:wrap;width:100%;padding-top:32px;">\n <div style="width:50%">\n <label id="divBuilderMode" style="display:block;margin-top:14px;margin-bottom:5px;">\n ${t.out("Builder Mode")}:&nbsp;\n <select class="select-buildermode">\n <option value="">${t.out("Default")}</option>\n <option value="minimal">${t.out("Minimal")}</option>\n <option value="clean">${t.out("Clean")}</option>\n </select>\n </label>\n \n <label id="divOutlineMode" style="display:block;margin-top:14px;margin-bottom:5px;">\n ${t.out("Outline Mode")}:&nbsp;\n <select class="select-outlinemode">\n <option value="">${t.out("Row & column")}</option>\n <option value="row">${t.out("Row only")}</option>\n </select>\n </label>\n\n <label style="display:block;margin-top:14px;margin-bottom:5px;">\n ${t.out("Outline Style")}:&nbsp;\n <select class="select-outlinestyle">\n <option value="">${t.out("Colored")}</option>\n <option value="grayoutline">${t.out("Gray")}</option>\n </select>\n </label>\n \n <label style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-hiderowcoloutline" type="checkbox" /> ${t.out("Hide Outline")}&nbsp;\n </label> \n\n <label id="divHideCellTool" style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-hidecelltool" type="checkbox" /> ${t.out("Hide Column Tool")}&nbsp;\n </label>\n\n <label style="display:block;margin-top:5px;margin-bottom:5px;">\n ${t.out("Row Tool Position")}:&nbsp;\n <select class="select-rowtool">\n <option value="right">${t.out("Right")}</option>\n <option value="left">${t.out("Left")}</option>\n </select>\n </label> \n\n <label style="display:block;margin-top:5px;margin-bottom:5px;">\n ${t.out("Tool Style")}:&nbsp;\n <select class="select-toolstyle">\n <option value="">${t.out("Colored")}</option>\n <option value="gray">${t.out("Mono")}</option>\n </select>\n </label> \n\n </div>\n <div style="width:50%">\n\n <label style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-hidesnippetaddtool" type="checkbox" /> ${t.out("Hide Snippet (+) Tool")}&nbsp;\n </label>\n\n <label style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-hideelementtool" type="checkbox" /> ${t.out("Hide element tool")}&nbsp;\n </label> \n\n <label style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-hideelementhighlight" type="checkbox" /> ${t.out("Hide element highlight")}&nbsp;\n </label> \n\n <label class="option-opensnippets" style="display:block;margin-top:14px;margin-bottom:10px;">\n <input class="input-opensnippets" type="checkbox" /> ${t.out("Open snippets sidebar on start")}&nbsp;\n </label>\n\n <label style="display:${"#divSnippetList"===e.opts.snippetList?"block":"none"};margin-top:14px;margin-bottom:5px;">\n ${t.out("Snippets sidebar visibility")}:&nbsp;\n <select class="select-snippetssidebardisplay">\n <option value="auto">${t.out("Auto")}</option>\n <option value="always">${t.out("Always Visible")}</option>\n </select>\n </label>\n\n <label style="display:block;margin-top:5px;margin-bottom:5px;">\n ${t.out("Paste result")}:&nbsp;\n <select class="select-pasteresult">\n <option value="html-without-styles">${t.out("HTML (without styles)")}</option>\n <option value="html">${t.out("HTML (with styles)")}</option>\n <option value="text">${t.out("Text only")}</option>\n </select>\n </label> \n\n <label style="display:none;margin-top:14px;margin-bottom:5px;">\n ${t.out("Toolbar visibility")}:&nbsp;\n <select class="select-editingtoolbardisplay">\n <option value="auto">${t.out("Auto")}</option>\n <option value="always">${t.out("Always Visible")}</option>\n </select>\n </label>\n\n <label style="${this.builder.isTouchSupport?"display:none;":"display:block;"}margin-top:5px;margin-bottom:5px;">\n ${t.out("Toolbar position")}:&nbsp;\n <select class="select-editingtoolbar">\n <option value="top">${t.out("Top")}</option>\n <option value="left">${t.out("Left")}</option>\n <option value="right">${t.out("Right")}</option>\n </select>\n </label> \n\n ${this.builder.themes?`\n <label style="${this.builder.isTouchSupport?"display:none;":"display:block;"}margin-top:5px;margin-bottom:5px;">\n ${t.out("Theme")}:&nbsp;\n </label> \n ${n}\n `:""}\n\n </div>\n </div>\n <div style="text-align:right;margin-top:30px">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>`;ib.appendHtml(i,s),o=i.querySelector(".viewconfig"),"#divSnippetList"===e.opts.snippetList&&e.opts.snippetJSON.snippets.length>0||(o.querySelector(".option-opensnippets").style.display="none");let a=o.querySelector(".input-cancel");if(ib.addEventListener(a,"click",(()=>{t.hideModal(o)})),a=o.querySelector(".input-ok"),ib.addEventListener(a,"click",(()=>{this.update(),t.hideModal(o)})),null!==localStorage.getItem("_hiderowcoloutline")&&("1"===localStorage.getItem("_hiderowcoloutline")?this.builder.opts.rowcolOutline=!1:this.builder.opts.rowcolOutline=!0),this.setOutline(!this.builder.opts.rowcolOutline),null!==localStorage.getItem("_outlinemode")&&(this.builder.opts.outlineMode=localStorage.getItem("_outlinemode")),this.setOutlineMode(this.builder.opts.outlineMode),null!==localStorage.getItem("_outlinestyle")&&(this.builder.opts.outlineStyle=localStorage.getItem("_outlinestyle")),this.setOutlineStyle(this.builder.opts.outlineStyle),null!==localStorage.getItem("_pasteresult")&&(this.builder.opts.paste=localStorage.getItem("_pasteresult")),null!==localStorage.getItem("_hidecelltool")&&("1"===localStorage.getItem("_hidecelltool")?this.builder.opts.columnTool=!1:this.builder.opts.columnTool=!0),this.setColumnTool(!this.builder.opts.columnTool),null!==localStorage.getItem("_hidesnippetaddtool")&&("1"===localStorage.getItem("_hidesnippetaddtool")?this.builder.opts.snippetAddTool=!1:this.builder.opts.snippetAddTool=!0),this.setSnippetAddTool(!this.builder.opts.snippetAddTool),null!==localStorage.getItem("_hideelementtool")&&("1"===localStorage.getItem("_hideelementtool")?this.builder.opts.elementTool=!1:this.builder.opts.elementTool=!0),this.setElementTool(!this.builder.opts.elementTool),null!==localStorage.getItem("_hideelementhighlight")&&("1"===localStorage.getItem("_hideelementhighlight")?this.builder.opts.elementHighlight=!1:this.builder.opts.elementHighlight=!0),this.setElementHighlight(!this.builder.opts.elementHighlight),null!==localStorage.getItem("_opensnippets")&&("1"===localStorage.getItem("_opensnippets")?this.builder.opts.snippetOpen=!0:this.builder.opts.snippetOpen=!1),null!==localStorage.getItem("_buildermode")&&(this.builder.opts.builderMode=localStorage.getItem("_buildermode")),this.setBuilderMode(this.builder.opts.builderMode),null!==localStorage.getItem("_rowtool")&&(this.builder.opts.rowTool=localStorage.getItem("_rowtool")),this.setRowToolPosition(this.builder.opts.rowTool),null!==localStorage.getItem("_toolstyle")&&(this.builder.opts.toolStyle=localStorage.getItem("_toolstyle")),this.setToolStyle(this.builder.opts.toolStyle),this.builder.opts.toolbarDisplay="auto",null!==localStorage.getItem("_snippetssidebardisplay")&&(this.builder.opts.snippetsSidebarDisplay=localStorage.getItem("_snippetssidebardisplay")),null!=localStorage.getItem("_editingtoolbar")&&(this.builder.opts.toolbar=localStorage.getItem("_editingtoolbar")),this.setToolbar(this.builder.opts.toolbar),null!=localStorage.getItem("_theme")){const e=localStorage.getItem("_theme");if(this.builder.themeIndex=e,this.builder.themes&&this.builder.themes.length>0){const t=this.builder.themes[e];t&&(this.builder.setUIColor(t[1],t[2]),this.builder.renderIframeLater=!0)}}else this.builder.setUIColor("",""),this.builder.renderIframeLater=!0;this.builder.renderIframeLater||t.getUIStyles(),this.builder.opts.emailMode&&(this.builder.opts.outlineMode="row",this.builder.opts.columnTool=!1,this.builder.opts.builderMode="",null!=localStorage.getItem("_outlinemode")&&localStorage.setItem("_outlinemode","row"),null!==localStorage.getItem("_hidecelltool")&&localStorage.setItem("_hidecelltool","1"),null!==localStorage.getItem("_buildermode")&&localStorage.setItem("_buildermode",""),this.setColumnTool(!0),this.setBuilderMode(""),this.setEmailMode(),i.querySelector("#divHideCellTool").style.display="none",i.querySelector("#divOutlineMode").style.display="none",i.querySelector("#divBuilderMode").style.display="none")}this.config=o;document.querySelectorAll(".input-setcolor").forEach((e=>{e.addEventListener("click",(t=>{const i=e.getAttribute("data-index"),n=this.builder.themes[i];this.builder.setUIColor(n[1],n[2]),this.builder.themeIndex=i,t.preventDefault(),t.stopImmediatePropagation()}))}))}view(){const e=new ii(this.builder);let t=this.config;e.showModal(t,!1,null,!1),this.builder.opts.rowcolOutline?t.querySelector(".input-hiderowcoloutline").checked=!1:t.querySelector(".input-hiderowcoloutline").checked=!0,this.builder.opts.columnTool?t.querySelector(".input-hidecelltool").checked=!1:t.querySelector(".input-hidecelltool").checked=!0,this.builder.opts.snippetAddTool?t.querySelector(".input-hidesnippetaddtool").checked=!1:t.querySelector(".input-hidesnippetaddtool").checked=!0,this.builder.opts.elementTool?t.querySelector(".input-hideelementtool").checked=!1:t.querySelector(".input-hideelementtool").checked=!0,this.builder.opts.elementHighlight?t.querySelector(".input-hideelementhighlight").checked=!1:t.querySelector(".input-hideelementhighlight").checked=!0,this.builder.opts.snippetOpen?t.querySelector(".input-opensnippets").checked=!0:t.querySelector(".input-opensnippets").checked=!1,this.config.querySelector(".select-buildermode").value=this.builder.opts.builderMode,this.config.querySelector(".select-rowtool").value=this.builder.opts.rowTool,this.config.querySelector(".select-outlinemode").value=this.builder.opts.outlineMode,this.config.querySelector(".select-outlinestyle").value=this.builder.opts.outlineStyle,this.config.querySelector(".select-toolstyle").value=this.builder.opts.toolStyle,this.config.querySelector(".select-pasteresult").value=this.builder.opts.paste,this.config.querySelector(".select-editingtoolbardisplay").value=this.builder.opts.toolbarDisplay,this.config.querySelector(".select-editingtoolbar").value=this.builder.opts.toolbar,this.config.querySelector(".select-snippetssidebardisplay").value=this.builder.opts.snippetsSidebarDisplay}update(){let e=this.config.querySelector(".input-hiderowcoloutline").checked;e?(this.builder.opts.rowcolOutline=!1,localStorage.setItem("_hiderowcoloutline","1")):(this.builder.opts.rowcolOutline=!0,localStorage.setItem("_hiderowcoloutline","0")),this.setOutline(e),this.config.querySelector(".input-hidecelltool").checked?(this.builder.opts.columnTool=!1,localStorage.setItem("_hidecelltool","1"),this.setColumnTool(!0)):(this.builder.opts.columnTool=!0,localStorage.setItem("_hidecelltool","0"),this.setColumnTool(!1)),this.config.querySelector(".input-hidesnippetaddtool").checked?(this.builder.opts.snippetAddTool=!1,localStorage.setItem("_hidesnippetaddtool","1"),this.setSnippetAddTool(!0)):(this.builder.opts.snippetAddTool=!0,localStorage.setItem("_hidesnippetaddtool","0"),this.setSnippetAddTool(!1)),this.config.querySelector(".input-hideelementtool").checked?(this.builder.opts.elementTool=!1,localStorage.setItem("_hideelementtool","1"),this.setElementTool(!0)):(this.builder.opts.elementTool=!0,localStorage.setItem("_hideelementtool","0"),this.setElementTool(!1)),this.config.querySelector(".input-hideelementhighlight").checked?(this.builder.opts.elementHighlight=!1,localStorage.setItem("_hideelementhighlight","1"),this.setElementHighlight(!0)):(this.builder.opts.elementHighlight=!0,localStorage.setItem("_hideelementhighlight","0"),this.setElementHighlight(!1)),this.config.querySelector(".input-opensnippets").checked?(this.builder.opts.snippetOpen=!0,localStorage.setItem("_opensnippets","1")):(this.builder.opts.snippetOpen=!1,localStorage.setItem("_opensnippets","0"));let t=this.config.querySelector(".select-buildermode").value;this.builder.opts.builderMode=t,localStorage.setItem("_buildermode",t),this.setBuilderMode(t);let i=this.config.querySelector(".select-rowtool").value;this.builder.opts.rowTool=i,localStorage.setItem("_rowtool",i),this.setRowToolPosition(i);let n=this.config.querySelector(".select-outlinemode").value;this.builder.opts.outlineMode=n,localStorage.setItem("_outlinemode",n),this.setOutlineMode(n);let o=this.config.querySelector(".select-outlinestyle").value;this.builder.opts.outlineStyle=o,localStorage.setItem("_outlinestyle",o),this.setOutlineStyle(o);let s=this.config.querySelector(".select-toolstyle").value;this.builder.opts.toolStyle=s,localStorage.setItem("_toolstyle",s),this.setToolStyle(s);let a=this.config.querySelector(".select-pasteresult").value;this.builder.opts.paste=a,localStorage.setItem("_pasteresult",a);let r=this.config.querySelector(".select-snippetssidebardisplay").value;this.builder.opts.snippetsSidebarDisplay=r,localStorage.setItem("_snippetssidebardisplay",r);let l=this.config.querySelector(".select-editingtoolbar").value;if(this.builder.opts.toolbar=l,localStorage.setItem("_editingtoolbar",l),this.setToolbar(l),this.builder.themes){const e=this.builder.themeIndex;this.builder.themeIndex&&localStorage.setItem("_theme",e)}}setToolbar(e){const t=this.builder.builderStuff;"top"===e?(t.removeAttribute("toolbarleft",""),t.removeAttribute("toolbarright","")):"left"===e?(t.setAttribute("toolbarleft",""),t.removeAttribute("toolbarright","")):"right"===e&&(t.setAttribute("toolbarright",""),t.removeAttribute("toolbarleft",""));const i=t.querySelector(".is-rte-tool"),n=t.querySelector(".rte-more-options"),o=t.querySelector(".elementrte-more-options");i&&this.builder.rte.positionToolbar(),n&&(ib.removeClass(n,"active"),ib.addClass(n,"deactive"),ib.removeClass(o,"active"),ib.addClass(o,"deactive"))}setEmailMode(){this.builder.builderStuff.setAttribute("emailmode","")}setElementTool(e){const t=this.builder.builderStuff;e?t.setAttribute("hideelementtool",""):t.removeAttribute("hideelementtool","")}setElementHighlight(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{e?t.setAttribute("hideelementhighlight",""):t.removeAttribute("hideelementhighlight","")}))}setOutlineStyle(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{"grayoutline"===e?t.setAttribute("grayoutline",""):t.removeAttribute("grayoutline")}))}setColumnTool(e){const t=this.builder.builderStuff;e?t.setAttribute("hidecolumntool",""):t.removeAttribute("hidecolumntool","")}setSnippetAddTool(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{e?t.setAttribute("hidesnippetaddtool",""):t.removeAttribute("hidesnippetaddtool","")}))}setToolStyle(e){const t=this.builder.builderStuff,i=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(i,(i=>{"gray"===e?(i.setAttribute("gray",""),t.setAttribute("gray","")):(i.removeAttribute("gray"),t.removeAttribute("gray",""))}))}setOutlineMode(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{"row"===e?t.setAttribute("rowoutline",""):t.removeAttribute("rowoutline")}))}setOutline(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{e?t.setAttribute("hideoutline",""):t.removeAttribute("hideoutline")}))}setRowToolPosition(e){const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(t=>{"right"===e?t.removeAttribute("leftrowtool"):t.setAttribute("leftrowtool","")}))}setBuilderMode(e){const t=this.builder.builderStuff,i=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(i,(i=>{""===e?(i.removeAttribute("minimal"),i.removeAttribute("clean"),t.removeAttribute("minimal"),t.removeAttribute("clean")):"minimal"===e?(i.setAttribute("minimal",""),i.removeAttribute("clean"),t.setAttribute("minimal",""),t.removeAttribute("clean")):"clean"===e&&(i.setAttribute("clean",""),i.removeAttribute("minimal"),t.setAttribute("clean",""),t.removeAttribute("minimal"))}))}initBuilder(e){const t=this.builder.opts.builderMode;""===t?(e.removeAttribute("minimal"),e.removeAttribute("clean")):"minimal"===t?(e.setAttribute("minimal",""),e.removeAttribute("clean")):"clean"===t&&(e.setAttribute("clean",""),e.removeAttribute("minimal"));"right"===this.builder.opts.rowTool?e.removeAttribute("leftrowtool"):e.setAttribute("leftrowtool","");!this.builder.opts.rowcolOutline?e.setAttribute("hideoutline",""):e.removeAttribute("hideoutline");"row"===this.builder.opts.outlineMode?e.setAttribute("rowoutline",""):e.removeAttribute("rowoutline");"gray"===this.builder.opts.toolStyle?e.setAttribute("gray",""):e.removeAttribute("gray");!this.builder.opts.snippetAddTool?e.setAttribute("hidesnippetaddtool",""):e.removeAttribute("hidesnippetaddtool","");"grayoutline"===this.builder.opts.outlineStyle?e.setAttribute("grayoutline",""):e.removeAttribute("grayoutline");!this.builder.opts.elementHighlight?e.setAttribute("hideelementhighlight",""):e.removeAttribute("hideelementhighlight","")}}const ob=new ni;class sb{constructor(e={},t){this.opts=Object.assign(this,{onPick:function(){},quickColors:{black:"bg-black",white:"bg-white",transparent:""},baseColors:{amber:{preview:"bg-amber-500",colors:["bg-amber-50","bg-amber-100","bg-amber-200","bg-amber-300","bg-amber-400","bg-amber-500","bg-amber-600","bg-amber-700","bg-amber-800","bg-amber-900"]},orange:{preview:"bg-orange-500",colors:["bg-orange-50","bg-orange-100","bg-orange-200","bg-orange-300","bg-orange-400","bg-orange-500","bg-orange-600","bg-orange-700","bg-orange-800","bg-orange-900"]},red:{preview:"bg-red-600",colors:["bg-red-50","bg-red-100","bg-red-200","bg-red-300","bg-red-400","bg-red-500","bg-red-600","bg-red-700","bg-red-800","bg-red-900"]},rose:{preview:"bg-rose-700",colors:["bg-rose-50","bg-rose-100","bg-rose-200","bg-rose-300","bg-rose-400","bg-rose-500","bg-rose-600","bg-rose-700","bg-rose-800","bg-rose-900"]},fuchsia:{preview:"bg-fuchsia-700",colors:["bg-fuchsia-50","bg-fuchsia-100","bg-fuchsia-200","bg-fuchsia-300","bg-fuchsia-400","bg-fuchsia-500","bg-fuchsia-600","bg-fuchsia-700","bg-fuchsia-800","bg-fuchsia-900"]},gray:{preview:"bg-gray-700",colors:["bg-gray-50","bg-gray-100","bg-gray-200","bg-gray-300","bg-gray-400","bg-gray-500","bg-gray-600","bg-gray-700","bg-gray-800","bg-gray-900"]},yellow:{preview:"bg-yellow-500",colors:["bg-yellow-50","bg-yellow-100","bg-yellow-200","bg-yellow-300","bg-yellow-400","bg-yellow-500","bg-yellow-600","bg-yellow-700","bg-yellow-800","bg-yellow-900"]},lime:{preview:"bg-lime-600",colors:["bg-lime-50","bg-lime-100","bg-lime-200","bg-lime-300","bg-lime-400","bg-lime-500","bg-lime-600","bg-lime-700","bg-lime-800","bg-lime-900"]},green:{preview:"bg-green-700",colors:["bg-green-50","bg-green-100","bg-green-200","bg-green-300","bg-green-400","bg-green-500","bg-green-600","bg-green-700","bg-green-800","bg-green-900"]},pink:{preview:"bg-pink-600",colors:["bg-pink-50","bg-pink-100","bg-pink-200","bg-pink-300","bg-pink-400","bg-pink-500","bg-pink-600","bg-pink-700","bg-pink-800","bg-pink-900"]},violet:{preview:"bg-violet-700",colors:["bg-violet-50","bg-violet-100","bg-violet-200","bg-violet-300","bg-violet-400","bg-violet-500","bg-violet-600","bg-violet-700","bg-violet-800","bg-violet-900"]},purple:{preview:"bg-purple-700",colors:["bg-purple-50","bg-purple-100","bg-purple-200","bg-purple-300","bg-purple-400","bg-purple-500","bg-purple-600","bg-purple-700","bg-purple-800","bg-purple-900"]},cyan:{preview:"bg-cyan-400",colors:["bg-cyan-50","bg-cyan-100","bg-cyan-200","bg-cyan-300","bg-cyan-400","bg-cyan-500","bg-cyan-600","bg-cyan-700","bg-cyan-800","bg-cyan-900"]},teal:{preview:"bg-teal-500",colors:["bg-teal-50","bg-teal-100","bg-teal-200","bg-teal-300","bg-teal-400","bg-teal-500","bg-teal-600","bg-teal-700","bg-teal-800","bg-teal-900"]},emerald:{preview:"bg-emerald-600",colors:["bg-emerald-50","bg-emerald-100","bg-emerald-200","bg-emerald-300","bg-emerald-400","bg-emerald-500","bg-emerald-600","bg-emerald-700","bg-emerald-800","bg-emerald-900"]},sky:{preview:"bg-sky-500",colors:["bg-sky-50","bg-sky-100","bg-sky-200","bg-sky-300","bg-sky-400","bg-sky-500","bg-sky-600","bg-sky-700","bg-sky-800","bg-sky-900"]},blue:{preview:"bg-blue-600",colors:["bg-blue-50","bg-blue-100","bg-blue-200","bg-blue-300","bg-blue-400","bg-blue-500","bg-blue-600","bg-blue-700","bg-blue-800","bg-blue-900"]},indigo:{preview:"bg-indigo-600",colors:["bg-indigo-50","bg-indigo-100","bg-indigo-200","bg-indigo-300","bg-indigo-400","bg-indigo-500","bg-indigo-600","bg-indigo-700","bg-indigo-800","bg-indigo-900"]}},stuffPlacement:"#_cbhtml",lang:[]},e);let i=document.querySelector(this.opts.stuffPlacement);i||(i=document.createElement("div"),i.id="_cbhtml",i.className="is-ui",document.body.appendChild(i)),this.builderStuff=i,this.mode=t;const n=new av({stuffPlacement:this.opts.stuffPlacement});this.modal=n;let o=document.querySelector(".pickcolorclass");if(!o){let e=`<div class="is-modal pickcolorclass" style="z-index:10005">\n <div class="is-modal-content" style="padding: 12px;max-width:295px;">\n <div class="is-modal-bar is-draggable" style="height:12px"></div>\n <div>\n <div class="color-list"></div>\n <div class="color-details"></div>\n <div class="color-quick" style="display:flex">\n <button class="quick-color" data-value="${this.opts.quickColors.black}" style="background-color:#222;color:#f7f7f7;display:flex;justify-content:center;align-items:center;width:54px;height:54px;cursor:pointer;">${this.out("B")}</button>\n <button class="quick-color" data-value="${this.opts.quickColors.white}" style="border: rgb(0 0 0 / 6%) 1px solid;border-top:none;border-left:none;background-color:#fff;color:#333;display:flex;justify-content:center;align-items:center;width:54px;height:54px;cursor:pointer;">${this.out("W")}</button>\n <button class="quick-color" data-value="${this.opts.quickColors.transparent}" style="display:flex;justify-content:center;align-items:center;width:162px;height:54px;cursor:pointer;">${this.out("Clear")}</button>\n </div>\n </div>\n </div>\n </div>`;i.insertAdjacentHTML("beforeend",e),o=document.querySelector(".pickcolorclass")}this.modalPicker=o;const s=o.querySelector(".color-list"),a=this.opts.baseColors;let r="";for(let e=0;e<Object.keys(a).length;e++){let t=Object.values(a)[e];r+=`<div class="${t.preview} base-color" data-value="${t.preview}" data-base="${Object.keys(a)[e]}" style="width:45px;height:45px;cursor:pointer;"></div>`}r=`<div style="display:flex;flex-flow:wrap;width:270px;height:135px;flex-direction:row;">${r}</div>`,s.innerHTML=r,this.showColorGradient("gray");let l=document.querySelectorAll(".base-color");Array.prototype.forEach.call(l,(e=>{ob.addEventListener(e,"click",(()=>{const t=e.getAttribute("data-base");this.showColorGradient(t);let i=e.getAttribute("data-value");"text"===this.mode&&(i=i.replace("bg-","text-")),this.opts.onPick(i)}))})),l=document.querySelectorAll(".quick-color"),Array.prototype.forEach.call(l,(e=>{ob.addEventListener(e,"click",(t=>{t.preventDefault();let i=e.getAttribute("data-value");"text"===this.mode&&(i=i.replace("bg-","text-")),this.opts.onPick(i)}))}))}showColorGradient(e){const t=this.modalPicker.querySelector(".color-details"),i=this.opts.baseColors[e].colors;let n="";for(let e=i.length-1;e>=0;e--){const t=i[e];n+=`<div class="${t} detail-color" data-value="${t}" style="width:54px;height:54px;cursor:pointer;"></div>`}n=`<div style="display:flex;flex-flow:wrap;width:270px;height:108px;flex-direction:column;">${n}</div>`,t.innerHTML=n;const o=document.querySelectorAll(".detail-color");Array.prototype.forEach.call(o,(e=>{ob.addEventListener(e,"click",(()=>{let t=e.getAttribute("data-value");"text"===this.mode&&(t=t.replace("bg-","text-")),this.opts.onPick(t)}))}))}open(e,t){e&&(this.opts.onPick=e),this.mode=t,this.modal.show(this.modalPicker,!1,null,!1)}out(e){if(this.opts.lang){let t=this.opts.lang[e];return t||e}return e}}const ab=new ni;class rb{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i,this.elementStyleEditor=new qv(e),this.hyperlink=new Bm(e);let n,o,s,a,r,l,d,c,u,p,h,g,f,m,v,b=i.querySelector("#divRteTool");if(!b){let w="";var y="";if(e.opts.customTags.length>0){w=`<button title="${t.out("Tags")}" class="rte-tags"><svg class="is-icon-flex" style="width:14px;height:14px"><use xlink:href="#ion-code-working"></use></svg></button>`;for(let t=0;t<e.opts.customTags.length;t++)y+=`<button data-value="${e.opts.customTags[t][1]}"> ${e.opts.customTags[t][0]} </button>`}let S="";for(var _=0;_<e.opts.buttonsMore.length;_++){var x=e.opts.buttonsMore[_].toLowerCase();"createlink"===x?S+=`<button title="${t.out("Hyperlink")}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`:"icon"!==x||this.builder.opts.emailMode?S+="removeformat"===x?`<button title="${t.out("Clean")}" class="rte-clean"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>`:"bold"===x?`<button title="${t.out("Bold")}" class="rte-format" data-command="bold"><span style="font-family:serif;font-size:14px;">B</span></button>`:"italic"===x?`<button title="${t.out("Italic")}" class="rte-format" data-command="italic"><span style="font-family:serif;font-size:16px;font-style:italic;">i</span></button>`:"underline"===x?`<button title="${t.out("Underline")}" class="rte-format" data-command="underline"><span style="font-family:serif;font-size:14px;text-decoration:underline;">U</span></button>`:"align"===x?`<button title="${t.out("Align")}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"list"===x?`<button title="${t.out("List")}" class="rte-list"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#icon-list-bullet"></use></svg></button>`:"color"===x?`<button title="${t.out("Color")}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`:"formatting"===x?`<button title="${t.out("Formatting")}" class="rte-formatting"><span style="font-family:serif;font-size:15px;display:inline-block;">A</span></button>`:"tags"===x?w:"image"===x?`<button title="${t.out("Image")}" class="rte-image"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-image"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"formatpara"===x?`<button title="${t.out("Paragraph")}" class="rte-paragraph"><span style="font-family:serif;font-size:14px;display:inline-block;margin-top:2px;">H</span></button>`:"font"===x?`<button title="${t.out("Font")}" class="rte-fontfamily"><span style="font-family:serif;font-size:18px;text-transform:none;display:inline-block;margin-top: -3px;">a</span></button>`:"textsettings"===x?`<button title="${t.out("Text Settings")}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`:S+=`<button title="${t.out("Icon")}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`}let C="";for(_=0;_<e.opts.buttons.length;_++)"bold"===(x=e.opts.buttons[_].toLowerCase())?C+=`<button title="${t.out("Bold")}" class="rte-format" data-command="bold"><span style="font-family:serif;font-size:14px;">B</span></button>`:"italic"===x?C+=`<button title="${t.out("Italic")}" class="rte-format" data-command="italic"><span style="font-family:serif;font-size:16px;font-style:italic;">i</span></button>`:"underline"===x?C+=`<button title="${t.out("Underline")}" class="rte-format" data-command="underline"><span style="font-family:serif;font-size:14px;text-decoration:underline;">U</span></button>`:"createlink"===x?C+=`<button title="${t.out("Hyperlink")}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`:"align"===x?C+=`<button title="${t.out("Align")}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"formatpara"===x?C+=`<button title="${t.out("Paragraph")}" class="rte-paragraph"><span style="font-family:serif;font-size:14px;display:inline-block;margin-top:2px;">H</span></button>`:"color"===x?C+=`<button title="${t.out("Color")}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`:"formatting"===x?C+=`<button title="${t.out("Formatting")}" class="rte-formatting"><span style="font-family:serif;font-size:15px;display:inline-block;">A</span></button>`:"list"===x?C+=`<button title="${t.out("List")}" class="rte-list"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#icon-list-bullet"></use></svg></button>`:"textsettings"===x?C+=`<button title="${t.out("Text Settings")}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`:"icon"!==x||this.builder.opts.emailMode?C+="tags"===x?w:"removeformat"===x?`<button title="${t.out("Clean")}" class="rte-format" data-command="clean"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>`:"font"===x?`<button title="${t.out("Font")}" class="rte-fontfamily"><span style="font-family:serif;font-size:18px;text-transform:none;display:inline-block;margin-top: -3px;">a</span></button>`:"image"===x?`<button title="${t.out("Image")}" class="rte-image"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-image"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;width:17px;height:17px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"more"===x&&""!==S?`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`:C+=`<button title="${t.out("Icon")}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px"><use xlink:href="#ion-android-happy"></use></svg></button>`;this.builder.opts.toolbarAddSnippetButton&&-1===C.indexOf("rte-addsnippet")&&-1===S.indexOf("rte-addsnippet")&&(C=`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`+C),""!==S&&-1===C.indexOf("rte-more")&&(C+=`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let k="";for(_=0;_<e.opts.elementButtonsMore.length;_++)k+="left"===(x=e.opts.elementButtonsMore[_].toLowerCase())?`<button title="${t.out("Align Left")}" data-align="left"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-left"></use></svg></button>`:"center"===x?`<button title="${t.out("Align Center")}" data-align="center"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-center"></use></svg></button>`:"right"===x?`<button title="${t.out("Align Right")}" data-align="right"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-right"></use></svg></button>`:"full"===x?`<button title="${t.out("Align Full")}" data-align="justify"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`;let E="";for(_=0;_<e.opts.elementButtons.length;_++)E+="left"===(x=e.opts.elementButtons[_].toLowerCase())?`<button title="${t.out("Align Left")}" data-align="left"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-left"></use></svg></button>`:"center"===x?`<button title="${t.out("Align Center")}" data-align="center"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-center"></use></svg></button>`:"right"===x?`<button title="${t.out("Align Right")}" data-align="right"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-right"></use></svg></button>`:"full"===x?`<button title="${t.out("Align Full")}" data-align="justify"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;width:17px;height:17px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"more"===x&&""!==k?`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`;this.builder.opts.toolbarAddSnippetButton&&-1===E.indexOf("rte-addsnippet")&&-1===k.indexOf("rte-addsnippet")&&(E=`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`+C),""!==k&&-1===E.indexOf("rte-more")&&(E+=`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let A="",q="";for(_=0;_<e.opts.iconButtonsMore.length;_++)"createlink"===(x=e.opts.iconButtonsMore[_].toLowerCase())?A+=`<button title="${t.out("Hyperlink")}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`:"icon"!==x||this.builder.opts.emailMode?A+="align"===x?`<button title="${t.out("Align")}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"color"===x?`<button title="${t.out("Color")}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"textsettings"===x?`<button title="${t.out("Text Settings")}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`:A+=`<button title="${t.out("Icon")}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`;for(_=0;_<e.opts.iconButtons.length;_++)"createlink"===(x=e.opts.iconButtons[_].toLowerCase())?q+=`<button title="${t.out("Hyperlink")}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`:"icon"!==x||this.builder.opts.emailMode?q+="align"===x?`<button title="${t.out("Align")}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`:"color"===x?`<button title="${t.out("Color")}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`:"gridtool"===x?`<button title="${t.out("Grid Tool")}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`:"html"===x?`<button title="${t.out("HTML")}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`:"preferences"===x?`<button title="${t.out("Preferences")}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`:"addsnippet"===x?`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`:"textsettings"===x?`<button title="${t.out("Text Settings")}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`:"undo"===x?`<button title="${t.out("Undo")}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`:"redo"===x?`<button title="${t.out("Redo")}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`:"zoom"===x?`<button title="${t.out("Zoom")}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`:"more"===x&&""!==S?`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`:"|"===x?'<div class="rte-separator"></div>':`<button title="button not found" data-plugin="${x}"></button>`:q+=`<button title="${t.out("Icon")}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`;this.builder.opts.toolbarAddSnippetButton&&-1===q.indexOf("rte-addsnippet")&&-1===A.indexOf("rte-addsnippet")&&(q=`<button title="${t.out("Add Snippet")}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`+C),""!==A&&-1===q.indexOf("rte-more")&&(q+=`<button title="${t.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let T="";for(_=0;_<e.opts.defaultFontSizes.length;_++)T+=`<button title="${e.opts.defaultFontSizes[_]}px" data-value="${e.opts.defaultFontSizes[_]}">${e.opts.defaultFontSizes[_]}</button>`;let L=`<div class="is-rte-tool" style="position:fixed;flex-direction:column;display:none;">\n <div class="rte-for-text" style="display:flex">\n ${C}\n </div>\n <div class="rte-for-icon" class="" style="display:flex">\n ${q}\n </div>\n </div>\n\n <div class="is-elementrte-tool" style="position:fixed;flex-direction:column;display:none;">\n <div style="display:flex">\n ${E}\n </div>\n </div>\n\n <div class="rte-formatting-options is-rte-pop">\n <div>\n <button title="${t.out("Strikethrough")}" class="rte-format" data-command="strikethrough" style="float:left"><svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#icon-strike"></use></svg></button>\n <button title="${t.out("Superscript")}" class="rte-format" data-command="superscript" style="float:left"><span style="font-family:serif;font-size:13px;">x</span><sup style="font-size:10px">2</sup></button>\n <button title="${t.out("Subscript")}" class="rte-format" data-command="subscript" style="float:left"><span style="font-family:serif;font-size:13px;">x</span><sub style="font-size:10px">2</sub></button>\n <button title="${t.out("Uppercase")}" class="rte-format" data-command="uppercase" style="float:left"><span style="font-family:serif;font-size:14px;display:inline-block;text-transform: none;">Aa</span></button>\n <button title="${t.out("Clean")}" class="rte-format" data-command="clean"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>\n </div>\n </div>\n\n <div class="rte-align-options is-rte-pop">\n <div>\n <button title="${t.out("Align Left")}" data-align="left"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-left"></use></svg></button>\n <button title="${t.out("Align Center")}" data-align="center"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-center"></use></svg></button>\n <button title="${t.out("Align Right")}" data-align="right"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-right"></use></svg></button>\n <button title="${t.out("Align Full")}" data-align="justify"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-full"></use></svg></button>\n </div>\n </div>\n\n <div class="rte-list-options is-rte-pop">\n <div>\n <button title="${t.out("Bullets")}" data-action="insertUnorderedList"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-list-bullet"></use></svg></button>\n <button title="${t.out("Numbering")}" data-action="insertOrderedList"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-list-number"></use></svg></button>\n <button title="${t.out("Indent")}" data-action="indent"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-indent"></use></svg></button>\n <button title="${t.out("Outdent")}" data-action="outdent"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-outdent"></use></svg></use></svg></svg></button>\n </div>\n </div>\n\n <div class="rte-paragraph-options is-rte-pop">\n <div>\n <div title="${t.out("Heading 1")}" data-block="h1" role="button" tabindex="0"><h1>Heading 1</h1></div>\n <div title="${t.out("Heading 2")}" data-block="h2" role="button" tabindex="0"><h2>Heading 2</h2></div>\n <div title="${t.out("Heading 3")}" data-block="h3" role="button" tabindex="0"><h3>Heading 3</h3></div>\n <div title="${t.out("Heading 4")}" data-block="h4" role="button" tabindex="0"><h4>Heading 4</h4></div>\n <div title="${t.out("Paragraph")}" data-block="p" role="button" tabindex="0"><p>Paragraph</p></div>\n <div title="${t.out("Preformatted")}" data-block="pre" role="button" tabindex="0"><p style="font-family:courier, monospace;">Preformatted</p></div>\n </div>\n </div>\n\n <div class="rte-fontfamily-options is-rte-pop">\n <iframe src="about:blank"></iframe>\n </div>\n\n <div class="rte-color-picker is-rte-pop" data-command="forecolor">\n <div class="is-pop-tabs">\n <div class="is-pop-tab-item active" data-value="forecolor">${t.out("Forecolor")}</div>\n <div class="is-pop-tab-item" data-value="backcolor">${t.out("Backcolor")}</div>\n </div>\n <div class="rte-color-picker-area"></div>\n </div>\n \n <div class="rte-textsetting-options is-rte-pop">\n <div>\n <div class="is-label">${t.out("Font Size")}</div>\n <div class="rte-fontsize-options" style="display: flex;flex-flow: wrap;">\n ${T}\n\n <button title="${t.out("Decrease")}" data-value="-" style="font-size:13px">-</button>\n <button title="${t.out("Increase")}" data-value="+" style="font-size:13px">+</button>\n <button title="${t.out("Clear")}" data-value=""><svg class="is-icon-flex" style="width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n <div class="is-label separator">${t.out("Line Spacing")}</div>\n <div class="rte-lineheight-options" style="display: flex;flex-flow: wrap;">\n <button title="1" data-value="1">1</button>\n <button title="1.2" data-value="1.2">1.2</button>\n <button title="1.4" data-value="1.4">1.4</button>\n <button title="1.6" data-value="1.6">1.6</button>\n <button title="1.8" data-value="1.8">1.8</button>\n <button title="2" data-value="2">2</button>\n <button title="2.2" data-value="2.2">2.2</button>\n <button title="${t.out("Decrease")}" data-value="-" style="font-size:13px">-</button>\n <button title="${t.out("Increase")}" data-value="+" style="font-size:13px">+</button>\n <button title="${t.out("Clear")}" data-value=""><svg class="is-icon-flex" style="width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n <div class="is-label separator">${t.out("Letter Spacing")}</div>\n <div class="rte-letterspacing-options" style="display: flex;flex-flow: wrap;">\n <button title="1" data-value="1">1</button>\n <button title="2" data-value="2">2</button>\n <button title="${t.out("Decrease")}" data-value="-" style="font-size:13px">-</button>\n <button title="${t.out("Increase")}" data-value="+" style="font-size:13px">+</button>\n <button title="${t.out("Clear")}" data-value=""><svg class="is-icon-flex" style="width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n </div>\n </div>\n\n <div class="rte-zoom-options is-rte-pop">\n <div>\n <div class="is-label">${t.out("Zoom")}</div>\n <div style="padding-top:4px">\n <input type="range" min="50" max="100" value="1" class="rte-zoom-slider is-rangeslider">\n </div>\n </div>\n </div>\n\n <div class="is-modal viewzoom">\n <div class="is-modal-content" style="max-width:250px;height:150px;display:flex;flex-flow:column;justify-content:center;">\n <div class="is-modal-bar is-draggable">${t.out("Zoom")}</div>\n \n <div style="display:flex;flex-wrap:wrap;width:100%;padding-top:32px;">\n <input type="range" min="50" max="100" value="1" class="inp-zoom-slider is-rangeslider">\n </div>\n </div>\n </div>\n\n <div class="is-modal insertimage">\n <div class="is-modal-content" style="max-width:560px;">\n <div class="is-browse-area">\n <div class="is-drop-area">\n <input id="fileInsertImage" type="file" accept="image/*" />\n <div class="drag-text">\n <p style="display:flex;justify-content:center;align-items:center;"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-camera"></use></svg> <span style="margin-left:5px;margin-top:3px;"> ${t.out("Drag and drop an image or click to browse.")} </span></p>\n </div>\n </div>\n <div class="is-preview-area">\n <div><img id="imgInsertImagePreview" alt="" /><i class="ion-ios-close-empty" role="button" tabindex="0"></i></div>\n </div>\n </div> \n <label for="inpInsertImageSrc" style="margin:10px 0 5px;display:block;">${t.out("Or Specify Image Source")}:</label>\n ${"function(){}"!==(this.builder.opts.onImageSelectClick+"").replace(/\s/g,"")||""!==this.builder.opts.imageselect?`<div class="image-src clearfix" style="margin-bottom: 12px;"><input id="inpInsertImageSrc" class="input-src" type="text" placeholder="${t.out("Source")}"><button title="${t.out("Select")}" class="input-select" style="flex:none;width:50px;height:50px;"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button></div>`:`<div class="image-src clearfix" style="margin-bottom: 12px;"><input id="inpInsertImageSrc" class="input-src" type="text" placeholder="${t.out("Source")}"></div>`}\n <div style="text-align:right">\n <button title="${t.out("Cancel")}" class="input-cancel classic-secondary">${t.out("Cancel")}</button>\n <button title="${t.out("Ok")}" class="input-ok classic-primary">${t.out("Ok")}</button>\n </div>\n </div>\n </div>\n\n <div class="rte-icon-options is-rte-pop">\n <iframe id="ifrIconInsert" src="about:blank"></iframe>\n </div>\n\n <div class="rte-customtag-options is-rte-pop scroll">\n <div>${y}</div>\n </div>\n\n <div class="rte-more-options is-rte-pop">\n <div class="rte-for-text">\n ${S}\n </div>\n <div class="rte-for-icon">\n ${A}\n </div>\n </div>\n\n <div class="elementrte-more-options is-rte-pop">\n <div>\n ${k}\n </div>\n </div>\n `;ab.appendHtml(i,L),b=i.querySelector(".is-rte-tool"),n=i.querySelector(".is-elementrte-tool"),c=i.querySelector(".rte-more-options"),u=i.querySelector(".elementrte-more-options"),o=i.querySelector(".rte-align-options"),s=i.querySelector(".rte-formatting-options"),a=i.querySelector(".rte-color-picker"),r=i.querySelector(".rte-list-options"),l=i.querySelector(".rte-fontfamily-options"),d=i.querySelector(".rte-paragraph-options"),p=i.querySelector(".rte-textsetting-options"),h=i.querySelector(".rte-zoom-options"),g=i.querySelector(".rte-icon-options"),f=i.querySelector(".rte-customtag-options"),m=i.querySelector(".rte-zoom-slider"),v=i.querySelector(".inp-zoom-slider");let M=b.querySelectorAll("[title]");Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=n.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=o.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=s.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=r.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=c.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),M=u.querySelectorAll("[title]"),Array.prototype.forEach.call(M,(e=>{e.setAttribute("data-title",e.getAttribute("title"))})),this.builder.isTouchSupport&&document.addEventListener("selectionchange",(function(){ab.checkEditable()&&(""!==ab.getSelected().trim()&&t.saveSelection())}),!1)}if(this.rteTool=b,this.elementRteTool=n,this.rteAlignOptions=o,this.rteFormattingOptions=s,this.rteColorPicker=a,this.rteListOptions=r,this.rteFontFamilyOptions=l,this.rteParagraphOptions=d,this.rteMoreOptions=c,this.elementRteMoreOptions=u,this.rteTextSettingOptions=p,this.rteZoomOptions=h,this.rteIconOptions=g,this.rteCustomTagOptions=f,this.rteZoomSlider=m,this.inpZoomSlider=v,this.positionToolbar(),i.querySelectorAll("button.rte-formatting").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteFormattingOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),i.querySelectorAll("button.rte-align").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteAlignOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),i.querySelectorAll("button.rte-list").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteListOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),i.querySelectorAll("button.rte-tags").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteCustomTagOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";if(ab.parentsHasClass(e,"rte-more-options"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",e.getBoundingClientRect().left+45-parseInt(this.rteMoreOptions.style.left)<t.offsetWidth?t.style.left=parseInt(this.rteMoreOptions.style.left)+"px":parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-e.getBoundingClientRect().left+45<t.offsetWidth&&(t.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-o+"px"),t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),i.querySelectorAll("button.rte-paragraph").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteParagraphOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";if(ab.parentsHasClass(e,"rte-more-options"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-o+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}this.getState()}))})),!this.builder.renderIframeLater){let e=l.querySelector("iframe").contentWindow.document;e.open(),this.builder.opts.emailMode?e.write(t.getFontFamilyEmail()):e.write(t.getFontFamilyHTML()),e.close()}if(i.querySelectorAll("button.rte-fontfamily").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteFontFamilyOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";if(ab.parentsHasClass(e,"rte-more-options"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-o+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}this.getState();let a=t.querySelector("iframe").contentWindow.document.querySelector("#divFontList");var r=a.querySelector(".on");r&&(a.scrollTop=a.scrollTop+r.getBoundingClientRect().top)}))})),!this.builder.renderIframeLater){let e=g.querySelector("iframe").contentWindow.document;e.open(),e.write(this.getIconsHTML()),e.close()}let w=i.querySelectorAll("button.rte-icon");w.forEach((e=>{e.addEventListener("click",(e=>{this.openIcon(e)}))})),i.querySelectorAll("button.rte-color").forEach((e=>{e.addEventListener("click",(()=>{const t=this.rteColorPicker,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if(this.builder.uo.saveForUndo(!0),"left"===this.builder.opts.toolbar)t.style.top=this.rteTool.style.top,t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=this.rteTool.style.top,t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),i.querySelectorAll("button.rte-preferences").forEach((e=>{e.addEventListener("click",(()=>{this.builder.viewPreferences()}))})),i.querySelectorAll("button.rte-html").forEach((e=>{e.addEventListener("click",(()=>{this.builder.viewHtml()}))})),i.querySelectorAll("button.rte-grideditor").forEach((e=>{e.addEventListener("click",(()=>{const e=this.builderStuff.querySelector(".grideditor");ab.addClass(e,"active");const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(e=>{e.setAttribute("grideditor","")}))}))})),i.querySelectorAll("button.rte-undo").forEach((e=>{e.addEventListener("click",(()=>{this.builder.uo.doUndo()}))})),i.querySelectorAll("button.rte-redo").forEach((e=>{e.addEventListener("click",(()=>{this.builder.uo.doRedo()}))})),i.querySelectorAll("button.rte-addsnippet").forEach((e=>{e.addEventListener("click",(()=>{this.viewSnippets()}))})),i.querySelectorAll("button.rte-link").forEach((e=>{e.addEventListener("click",(()=>{new ii(this.builder).clearActiveCell(),this.hyperlink.createLink()}))})),i.querySelectorAll("button.rte-image").forEach((e=>{e.addEventListener("click",(()=>{const e=this.builderStuff.querySelector(".insertimage");t.showModal(e,!0,(function(){}),!1),e.querySelector("#fileInsertImage").value="",e.querySelector(".is-preview-area").style.display="none",e.querySelector(".is-drop-area").style.display="block",ab.removeClass(e.querySelector(".is-drop-area"),"image-dropping"),e.querySelector(".input-src").value=""}))}));const S=this.builderStuff.querySelector(".insertimage"),C=S.querySelector("#fileInsertImage");ab.addEventListener(C,"change",(e=>{var t=e.target;if(t.files&&t.files[0]){var i=new FileReader;i.onload=function(e){S.querySelector(".is-drop-area").style.display="none",S.querySelector("#imgInsertImagePreview").src=e.target.result,S.querySelector(".is-preview-area").style.display="block";let i=t.files[0].name;S.querySelector("#imgInsertImagePreview").setAttribute("data-filename",i)},i.readAsDataURL(t.files[0]),S.querySelector(".input-src").value=""}}));const k=S.querySelector(".input-ok");ab.addEventListener(k,"click",(()=>{if(!this.builder.activeCol)return void t.hideModal(S);this.builder.uo.saveForUndo(),t.restoreSelection();let e="";if(e="none"===S.querySelector(".is-drop-area").style.display?S.querySelector("#imgInsertImagePreview").src:S.querySelector(".input-src").value,""===e)return;let i=S.querySelector("#imgInsertImagePreview").getAttribute("data-filename");t.pasteHtmlAtCaret('<img data-filename="'+i+'" src="'+e+'" alt="" />',!1),t.hideModal(S);let n=document.querySelector(".builder-active");n&&this.builder.applyBehaviorOn(n),t.saveSelection(),this.builder.opts.onChange(),this.builder.opts.onRender()}));const E=S.querySelector(".input-cancel");ab.addEventListener(E,"click",(()=>{t.hideModal(S)}));const A=S.querySelector(".is-drop-area");ab.addEventListener(A,"dragover",(()=>{ab.addClass(A,"image-dropping")})),ab.addEventListener(A,"dragleave",(()=>{ab.removeClass(A,"image-dropping")}));const q=S.querySelector(".is-preview-area i");ab.addEventListener(q,"click",(()=>{S.querySelector("#fileInsertImage").value="",S.querySelector(".is-preview-area").style.display="none",A.style.display="block",ab.removeClass(A,"image-dropping")}));const T=S.querySelector(".input-src");if(ab.addEventListener(T,"keyup",(()=>{S.querySelector("#fileInsertImage").value="",S.querySelector(".is-preview-area").style.display="none",A.style.display="block",ab.removeClass(A,"image-dropping")})),this.builder.opts.onImageSelectClick||""!==this.builder.opts.imageselect||(S.querySelector(".input-select").style.display="none"),this.builder.opts.onImageSelectClick||""!==this.builder.opts.imageselect){ab.addClass(S.querySelector(".image-src"),"image-select");const e=S.querySelector(".input-select");e&&ab.addEventListener(e,"click",(()=>{if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:S.querySelector(".input-src"),theTrigger:e});else{let e=this.builderStuff.querySelector(".is-modal.imageselect"),i=e.querySelector("iframe");this.builder.opts.assetRefresh&&(i.src=this.builder.opts.imageselect,this.builder.opts.assetRefresh=!1),"about:blank"===i.src&&(i.src=this.builder.opts.imageselect),t.showModal(e)}this.builder.targetInput=S.querySelector(".input-src"),this.builder.targetCallback=null,this.builder.targetAssetType="image"}))}else ab.removeClass(T,"image-select");i.querySelectorAll("button.rte-zoom").forEach((e=>{ab.addEventListener(e,"click",(()=>{const t=this.rteZoomOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("none"!==this.rteTool.style.display){if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else{t.style.top=i+54-6+"px";const e=parseInt(this.rteTool.style.left)+this.rteTool.offsetWidth,s=n-o/2+23+o,a=0;t.style.left=s>e?parseInt(this.rteTool.style.left)+this.rteTool.offsetWidth-o+a+"px":n-o/2+23+"px",t.style.right="auto"}if(ab.parentsHasClass(e,"rte-more-options"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-o+"px",t.style.right="auto"}else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else{t.style.top=i+54-6+"px";const e=parseInt(this.elementRteTool.style.left)+this.elementRteTool.offsetWidth,s=n-o/2+23+o;t.style.left=s>e?parseInt(this.elementRteTool.style.left)+this.elementRteTool.offsetWidth-o+"px":n-o/2+23+"px",t.style.right="auto"}if(ab.parentsHasClass(e,"elementrte-more-optionss"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.elementRteMoreOptions.style.top)+this.elementRteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.elementRteMoreOptions.style.top)+this.elementRteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=parseInt(this.elementRteMoreOptions.style.left)+this.elementRteMoreOptions.offsetWidth-o+"px",t.style.right="auto"}ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),this.rteZoomSlider.value=100*this.builder.opts.zoom,this.rteZoomSlider.onfocus=()=>{this.builder.onZoomStart&&this.builder.onZoomStart(),this.rteZoomSlider.blur()},this.rteZoomSlider.oninput=()=>{let e=this.rteZoomSlider.value/100;this.builder.opts.zoom=e,localStorage.setItem("_zoom",e),this.builder.setZoomOnArea();let t=this.builderStuff.querySelectorAll(".is-tool");if(Array.prototype.forEach.call(t,(e=>{e.style.display=""})),this.builderStuff.querySelector(".is-column-tool").style.display="none",t=document.querySelectorAll(".is-row-tool"),t.forEach((e=>{e.style.display="none"})),t=document.querySelectorAll(".is-rowadd-tool"),t.forEach((e=>{e.style.opacity=0})),this.builder.onZoom){let e=this.rteZoomSlider.value/100;this.builder.onZoom(e)}},this.rteZoomSlider.onchange=()=>{setTimeout((()=>{if(""!==this.builder.opts.page){const e=document.querySelector(this.builder.opts.page);this.builder.setZoomOnControl(e)}else{document.querySelectorAll(this.builder.opts.container).forEach((e=>{this.builder.setZoomOnControl(e)}))}this.builder.elmTool.repositionElementTool();let e=this.builder.activeCol,t=this.builderStuff.querySelector(".is-column-tool");t.style.display="",t.style.top=e.getBoundingClientRect().top-29+window.pageYOffset+"px",t.style.left=e.getBoundingClientRect().left-1+"px";let i=document.querySelectorAll(".is-row-tool");if(i.forEach((e=>{e.style.display=""})),i=document.querySelectorAll(".is-rowadd-tool"),i.forEach((e=>{e.style.opacity=""})),this.builder.onZoomEnd){let e=this.rteZoomSlider.value/100;this.builder.onZoomEnd(e)}}),300)},this.inpZoomSlider.onfocus=()=>{this.builder.onZoomStart&&this.builder.onZoomStart(),this.inpZoomSlider.blur()},this.inpZoomSlider.oninput=()=>{let e=this.inpZoomSlider.value/100;if(this.builder.opts.zoom=e,localStorage.setItem("_zoom",e),this.builder.setZoomOnArea(),this.builder.onZoom){let e=this.inpZoomSlider.value/100;this.builder.onZoom(e)}},this.inpZoomSlider.onchange=()=>{setTimeout((()=>{if(""!==this.builder.opts.page){const e=document.querySelector(this.builder.opts.page);this.builder.setZoomOnControl(e)}else{document.querySelectorAll(this.builder.opts.container).forEach((e=>{this.builder.setZoomOnControl(e)}))}if(this.builder.onZoomEnd){let e=this.inpZoomSlider.value/100;this.builder.onZoomEnd(e)}this.rteZoomSlider.value=this.inpZoomSlider.value}),300)},i.querySelectorAll("button.rte-textsettings").forEach((e=>{ab.addEventListener(e,"click",(()=>{const t=this.rteTextSettingOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if(ab.hasClass(t,"active"))ab.removeClass(t,"active"),ab.addClass(t,"deactive");else{if("left"===this.builder.opts.toolbar)t.style.top=i-s/2+20+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=i-s/2+20+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";if(ab.parentsHasClass(e,"rte-more-options"))if("left"===this.builder.opts.toolbar)t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else t.style.top=i+54-6+"px",t.style.left=n-o/2+23+"px",t.style.right="auto";ab.removeClass(t,"deactive"),ab.addClass(t,"active")}}))})),this.rteTool.querySelectorAll("button.rte-more").forEach((e=>{e.addEventListener("click",(()=>{this.showRteMore()}))}));let L=this.elementRteTool.querySelector("button.rte-more");L&&ab.addEventListener(L,"click",(()=>{this.showElementRteMore()}));var M=Array.prototype.slice.call(this.rteTool.querySelectorAll(".rte-format")).concat(Array.prototype.slice.call(this.rteFormattingOptions.querySelectorAll(".rte-format"))).concat(Array.prototype.slice.call(this.rteMoreOptions.querySelectorAll(".rte-format")));Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{let i;this.builder.uo.saveForUndo();try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,i=3===e.nodeType?e.parentNode:e):document.selection&&(e=document.selection.createRange(),i=document.selection.createRange().parentElement())}catch(e){return}const n=e.getAttribute("data-command");var o=ab.getSelected();if("bold"===n)if(this.builder.useCssClasses)ab.execCommandToggle("fontWeight","",this.builder.cssClasses);else if(""===o.trim()){var s=i.tagName.toLowerCase();"b"===s?(ab.selectElementContents(i),document.execCommand("bold",!1,null)):"bold"===i.style.fontWeight||i.style.fontWeight>400?i.style.fontWeight="":i.style.fontWeight="bold"}else document.execCommand("bold",!1,null);if("italic"===n)if(this.builder.useCssClasses)ab.execCommandToggle("fontStyle","",this.builder.cssClasses);else if(""===o.trim())if("i"===(s=i.tagName.toLowerCase()))ab.selectElementContents(i),document.execCommand("italic",!1,null);else{let e=window.getComputedStyle(i).getPropertyValue("font-style");i.style.fontStyle="italic"===e?"normal":"italic"}else document.execCommand("italic",!1,null);if("underline"===n&&(this.builder.useCssClasses?ab.execCommandToggle("textUnderline","",this.builder.cssClasses):""===o.trim()?"u"===(s=i.tagName.toLowerCase())?(ab.selectElementContents(i),document.execCommand("underline",!1,null)):-1!==i.style.textDecoration.indexOf("underline")?i.style.textDecoration="":i.style.textDecoration="underline":document.execCommand("underline",!1,null)),"strikethrough"===n&&(this.builder.useCssClasses?ab.execCommandToggle("textLinethrough","",this.builder.cssClasses):""===o.trim()?"strike"===(s=i.tagName.toLowerCase())?(ab.selectElementContents(i),document.execCommand("strikethrough",!1,null)):-1!==i.style.textDecoration.indexOf("line-through")?i.style.textDecoration="":i.style.textDecoration="line-through":document.execCommand("strikethrough",!1,null)),"superscript"===n&&(this.builder.useCssClasses?ab.execCommandToggle("extend","superscript",this.builder.cssClasses):document.execCommand("superscript",!1,null)),"subscript"===n&&(this.builder.useCssClasses?ab.execCommandToggle("extend","subscript",this.builder.cssClasses):document.execCommand("subscript",!1,null)),"uppercase"===n)if(this.builder.useCssClasses)ab.execCommandToggle("textTransform","",this.builder.cssClasses);else{let e=window.getComputedStyle(i).getPropertyValue("text-transform");i.style.textTransform="uppercase"===e?"lowercase":"lowercase"===e?"capitalize":"capitalize"===e?"none":"none"===e?"uppercase":"none"}if("clean"===n&&(this.builder.useCssClasses?(document.execCommand("removeFormat",!1,null),ab.execCommandToggle("clean","",this.builder.cssClasses)):""===o.trim()?(i.style.cssText="",i.className=""):i.innerText.replace(/(\r\n|\n|\r)/gm,"")===o.trim().replace(/(\r\n|\n|\r)/gm,"")?(i.style.cssText="",i.className="",document.execCommand("removeFormat",!1,null),document.execCommand("removeFormat",!1,null)):(document.execCommand("removeFormat",!1,null),document.execCommand("removeFormat",!1,null))),this.getState(),this.builder.isTouchSupport||t.saveSelection(),""===o.trim()&&(t.restoreSelection(),this.builder.isTouchSupport)){this.rteTool.querySelector("button").focus()}this.builder.opts.onChange()}))})),M=this.rteAlignOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{if(this.builder.uo.saveForUndo(),t.restoreSelection(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}const i=e.getAttribute("data-align");let n;try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,n=3===e.nodeType?e.parentNode:e):document.selection&&(e=document.selection.createRange(),n=document.selection.createRange().parentElement())}catch(e){return}let o=n,s=o.closest("table.button");if(s){if("center"===i)if("center"!==s.parentNode.tagName.toLowerCase()){let e=document.createElement("CENTER");s.parentNode.insertBefore(e,s),e.appendChild(s)}else s.setAttribute("align","");else s.setAttribute("align",i);ab.removeClass(s,"float-center")}else{for(;"p"!==o.tagName.toLowerCase()&&"h1"!==o.tagName.toLowerCase()&&"h2"!==o.tagName.toLowerCase()&&"h3"!==o.tagName.toLowerCase()&&"h4"!==o.tagName.toLowerCase()&&"h5"!==o.tagName.toLowerCase()&&"h6"!==o.tagName.toLowerCase()&&"pre"!==o.tagName.toLowerCase()&&"blockquote"!==o.tagName.toLowerCase()&&"div"!==o.tagName.toLowerCase()&&"td"!==o.tagName.toLowerCase()&&"th"!==o.tagName.toLowerCase();)o=o.parentNode;this.builder.useCssClasses?(o.style.textAlign="",ab.removeClass(o,this.builder.cssClasses.textAlign.left),ab.removeClass(o,this.builder.cssClasses.textAlign.center),ab.removeClass(o,this.builder.cssClasses.textAlign.right),ab.removeClass(o,this.builder.cssClasses.textAlign.justify),"left"===i&&ab.addClass(o,this.builder.cssClasses.textAlign.left),"center"===i&&ab.addClass(o,this.builder.cssClasses.textAlign.center),"right"===i&&ab.addClass(o,this.builder.cssClasses.textAlign.right),"justify"===i&&ab.addClass(o,this.builder.cssClasses.textAlign.justify)):o.style.textAlign=i}this.getState(),t.saveSelection(),this.builder.opts.onChange()}))})),M=this.elementRteTool.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-align");let i=this.builder.inspectedElement;for(;"p"!==i.tagName.toLowerCase()&&"h1"!==i.tagName.toLowerCase()&&"h2"!==i.tagName.toLowerCase()&&"h3"!==i.tagName.toLowerCase()&&"h4"!==i.tagName.toLowerCase()&&"h5"!==i.tagName.toLowerCase()&&"h6"!==i.tagName.toLowerCase()&&"pre"!==i.tagName.toLowerCase()&&"blockquote"!==i.tagName.toLowerCase()&&"div"!==i.tagName.toLowerCase()&&"td"!==i.tagName.toLowerCase()&&"th"!==i.tagName.toLowerCase();)i=i.parentNode;this.builder.useCssClasses?(i.style.textAlign="",ab.removeClass(i,this.builder.cssClasses.textAlign.left),ab.removeClass(i,this.builder.cssClasses.textAlign.center),ab.removeClass(i,this.builder.cssClasses.textAlign.right),ab.removeClass(i,this.builder.cssClasses.textAlign.justify),"left"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.left),"center"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.center),"right"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.right),"justify"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.justify)):i.style.textAlign=t,this.getState(),this.builder.opts.onChange()}))})),M=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-align");let i=this.builder.inspectedElement;for(;"p"!==i.tagName.toLowerCase()&&"h1"!==i.tagName.toLowerCase()&&"h2"!==i.tagName.toLowerCase()&&"h3"!==i.tagName.toLowerCase()&&"h4"!==i.tagName.toLowerCase()&&"h5"!==i.tagName.toLowerCase()&&"h6"!==i.tagName.toLowerCase()&&"pre"!==i.tagName.toLowerCase()&&"blockquote"!==i.tagName.toLowerCase()&&"div"!==i.tagName.toLowerCase()&&"td"!==i.tagName.toLowerCase()&&"th"!==i.tagName.toLowerCase();)i=i.parentNode;this.builder.useCssClasses?(i.style.textAlign="",ab.removeClass(i,this.builder.cssClasses.textAlign.left),ab.removeClass(i,this.builder.cssClasses.textAlign.center),ab.removeClass(i,this.builder.cssClasses.textAlign.right),ab.removeClass(i,this.builder.cssClasses.textAlign.justify),"left"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.left),"center"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.center),"right"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.right),"justify"===t&&ab.addClass(i,this.builder.cssClasses.textAlign.justify)):i.style.textAlign=t,this.getState(),this.builder.opts.onChange()}))})),M=this.rteListOptions.querySelectorAll("button[data-action]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo(),t.restoreSelection();let i=this.builder.activeCol,n=i.querySelectorAll("span");Array.prototype.forEach.call(n,(e=>{e.setAttribute("data-keep","")}));const o=e.getAttribute("data-action");if(document.execCommand(o,!1,null),i=this.builder.activeCol,n=i.querySelectorAll("span"),Array.prototype.forEach.call(n,(e=>{e.getAttribute("data-keep")||(e.outerHTML=e.innerHTML)})),Array.prototype.forEach.call(n,(e=>{e.getAttribute("data-keep")&&ab.removeAttribute(e,"data-keep")})),this.getState(),t.saveSelection(),this.builder.opts.onChange(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}}))})),M=this.rteCustomTagOptions.querySelectorAll("[data-value]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();const i=e.getAttribute("data-value");t.pasteHtmlAtCaret(i,!0),this.rteCustomTagOptions.style.display=""}))})),M=this.rteParagraphOptions.querySelectorAll("[data-block]"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo(),t.restoreSelection();const i=e.getAttribute("data-block");let n=document.queryCommandValue("FormatBlock");if(n=n.toLowerCase(),"pre"===n){let e=ab.textSelection();if(e){let t=e;for(;"pre"!==t.tagName.toLowerCase();)t=t.parentNode;let n=t.cloneNode(!0).outerHTML.replace("<pre","<"+i);n=n.replace("</pre>","</"+i+">"),t.outerHTML=n;let o=this.rteParagraphOptions.querySelectorAll("[data-block]");Array.prototype.forEach.call(o,(e=>{ab.removeClass(e,"on")})),ab.addClass(this.rteParagraphOptions.querySelector('[data-block="'+i+'"]'),"on")}}else document.execCommand("formatBlock",!1,"<"+i+">");if(this.rteParagraphOptions.style.display="none",ab.removeClass(this.rteParagraphOptions,"active"),ab.addClass(this.rteParagraphOptions,"deactive"),this.getState(),t.saveSelection(),this.builder.opts.onChange(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}}))}));let O=a.querySelectorAll(".is-pop-tab-item");Array.prototype.forEach.call(O,(e=>{ab.addEventListener(e,"click",(e=>{this.builder.uo.saveForUndo(!0);let t=a.querySelectorAll(".is-pop-tab-item");Array.prototype.forEach.call(t,(e=>{ab.removeClass(e,"active")})),ab.addClass(e.target,"active"),"forecolor"===a.querySelector(".active").getAttribute("data-value")?a.setAttribute("data-command","forecolor"):a.setAttribute("data-command","backcolor")}))})),new rv({colors:this.builder.opts.colors,onPick:e=>{let i;t.restoreSelection();try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,i=3===e.nodeType?e.parentNode:e):document.selection&&(e=document.selection.createRange(),i=document.selection.createRange().parentElement())}catch(e){if(!this.builder.activeIcon)return;i=this.builder.activeIcon}this.builder.activeIcon&&(i=this.builder.activeIcon);const n=a.getAttribute("data-command");var o=ab.getSelected();if(""===o.trim())"forecolor"===n?i.style.color=e:i.style.backgroundColor=e;else if(i.innerText===o)"forecolor"===n?i.style.color=e:i.style.backgroundColor=e;else{"forecolor"===n?document.execCommand("ForeColor",!1,e):document.execCommand("BackColor",!1,e);for(var s=document.getElementsByTagName("font"),r=0,l=s.length;r<l;++r){""!==s[r].color&&"forecolor"===n&&(s[r].removeAttribute("color"),s[r].style.color=e)}}if(this.builder.isTouchSupport||t.saveSelection(),""===o.trim()&&t.restoreSelection(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}this.builder.opts.onChange()},renderOn:".rte-color-picker-area",animateModal:this.builder.opts.animateModal,elementToAnimate:this.builder.opts.container,lang:this.builder.opts.lang}),M=p.querySelectorAll(".rte-fontsize-options button"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{let i=e.getAttribute("data-value");t.restoreSelection(),this.builder.uo.saveForUndo();const n=ab.getSelection();if(!n)return;const o=n.anchorNode;let s=1;if(o){const e=o.nodeType!==Node.TEXT_NODE&&o.nodeType!==Node.COMMENT_NODE?o:o.parentElement;s=Number(window.getComputedStyle(e).getPropertyValue("font-size").match(/\d+/)[0])}if(ab.execCommand("font-size",s+1+"px",((e,t)=>{if(!e&&this.builder.activeIcon){let e=this.builder.activeIcon;this.builder.opts.fontSizeClassValues.length>0?this.applyClassFontSize(e,i):this.applyInlineFontSize(e,i)}t&&(this.builder.opts.fontSizeClassValues.length>0?this.applyClassFontSize(t,i):this.applyInlineFontSize(t,i),t.style.fontSize="")})),t.saveSelection(),this.getState(),this.builder.opts.onChange(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}}))})),M=p.querySelectorAll(".rte-lineheight-options button"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{let i=e.getAttribute("data-value");if(t.restoreSelection(),this.builder.uo.saveForUndo(),this.builder.useCssClasses){const e=ab.getSelection();if(!e)return;const t=e.anchorNode;let n,o;if(t&&(n=t.nodeType!==Node.TEXT_NODE&&t.nodeType!==Node.COMMENT_NODE?t:t.parentElement),!n)return;const s=this.builder.cssClasses.leading;if(""===i)o="";else if("+"===i||"-"===i)for(let e=0;e<Object.keys(s).length;e++){let t=Object.values(s)[e];if(ab.hasClass(n,t)){if("+"===i){if(e+1===Object.keys(s).length)return;o=Object.values(s)[e+1];break}if("-"===i){if(e-1<0)return;o=Object.values(s)[e-1];break}}}else"1"===i?o=s.leading_10:"1.2"===i?o=s.leading_12:"1.4"===i?o=s.leading_14:"1.6"===i?o=s.leading_16:"1.8"===i?o=s.leading_18:"2"===i?o=s.leading_20:"2.2"===i&&(o=s.leading_22);o||("+"===i?o=s.leading_16:"-"===i&&(o=s.leading_14)),ab.execCommandClass(o,s,!0,"block")}else{let e;try{let t;window.getSelection?(t=window.getSelection().getRangeAt(0).commonAncestorContainer,e=3===t.nodeType?t.parentNode:t):document.selection&&(t=document.selection.createRange(),e=document.selection.createRange().parentElement())}catch(t){if(!this.builder.activeIcon)return;e=this.builder.activeIcon}this.builder.activeIcon&&(e=this.builder.activeIcon);let t=e;for(;t;){if("BODY"===t.tagName||"HTML"===t.tagName)return!1;if("inline"!==window.getComputedStyle(t).getPropertyValue("display")){e=t;break}t=t.parentNode}let n,o=!1,s=e.style.lineHeight;if(s&&-1===s.indexOf("px")?s=parseFloat(s):o=!0,o){let t=Number(window.getComputedStyle(e).getPropertyValue("font-size").match(/\d+/)[0]);s=Number(window.getComputedStyle(e).getPropertyValue("line-height").match(/\d+/)[0]),t>s?s=t/s:t<s?s/=t:s=1}"+"===i?n=s+.1:"-"===i?(n=s-.1,n<.2&&(n=.2)):n=""===i?"":i,ab.doFunction(e,(function(e){"inline"!==window.getComputedStyle(e).getPropertyValue("display")&&(e.style.lineHeight=n)}),!0)}if(t.saveSelection(),this.getState(),this.builder.opts.onChange(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}}))})),M=p.querySelectorAll(".rte-letterspacing-options button"),Array.prototype.forEach.call(M,(e=>{ab.addEventListener(e,"click",(()=>{let i=e.getAttribute("data-value");if(t.restoreSelection(),this.builder.uo.saveForUndo(),this.builder.useCssClasses){const e=ab.getSelection();if(!e)return;const t=e.anchorNode;let n,o;if(t&&(n=t.nodeType!==Node.TEXT_NODE&&t.nodeType!==Node.COMMENT_NODE?t:t.parentElement),!n)return;const s=this.builder.cssClasses.tracking;if(""===i)o="";else if("+"===i||"-"===i)for(let e=0;e<Object.keys(s).length;e++){let t=Object.values(s)[e];if(ab.hasClass(n,t)){if("+"===i){if(e+1===Object.keys(s).length)return;o=Object.values(s)[e+1];break}if("-"===i){if(e-1<0)return;o=Object.values(s)[e-1];break}}}else"1"===i&&(o=s.tracking_025),"2"===i&&(o=s.tracking_050);o||("+"===i?o=s.tracking_025:"-"===i&&(o=s.tracking__025)),o===s.tracking_000&&(o=""),ab.execCommandClass(o,s)}else{let e;try{let t;window.getSelection?(t=window.getSelection().getRangeAt(0).commonAncestorContainer,e=3===t.nodeType?t.parentNode:t):document.selection&&(t=document.selection.createRange(),e=document.selection.createRange().parentElement())}catch(t){if(!this.builder.activeIcon)return;e=this.builder.activeIcon}this.builder.activeIcon&&(e=this.builder.activeIcon);let t,n=parseInt(window.getComputedStyle(e).getPropertyValue("letter-spacing"));isNaN(n)&&(n=0),t="+"===i?n+1+"px":"-"===i?n-1+"px":""===i?"":i+"px",ab.doFunction(e,(function(e){e.style.letterSpacing=t}),!0)}if(t.saveSelection(),this.getState(),this.builder.opts.onChange(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}}))})),document.addEventListener("click",(e=>{var t=(e=e||window.event).target||e.srcElement;if(!this.builderStuff)return;if(this.builderStuff.getAttribute("preventDevault"))return void setTimeout((()=>{this.builderStuff.removeAttribute("preventDevault")}),30);let i,n,o,s,a;"flex"===this.rteAlignOptions.style.display&&(i=ab.parentsHasClass(t,"rte-align"),n=ab.parentsHasClass(t,"rte-align-options"),i||n||(this.rteAlignOptions.style.display="",ab.removeClass(this.rteAlignOptions,"active"),ab.addClass(this.rteAlignOptions,"deactive"))),"flex"===this.rteListOptions.style.display&&(i=ab.parentsHasClass(t,"rte-list"),n=ab.parentsHasClass(t,"rte-list-options"),i||n||(this.rteListOptions.style.display="",ab.removeClass(this.rteListOptions,"active"),ab.addClass(this.rteListOptions,"deactive"))),"flex"===this.rteFormattingOptions.style.display&&(i=ab.parentsHasClass(t,"rte-formatting"),n=ab.parentsHasClass(t,"rte-formatting-options"),i||n||(this.rteFormattingOptions.style.display="",ab.removeClass(this.rteFormattingOptions,"active"),ab.addClass(this.rteFormattingOptions,"deactive"))),"flex"===this.rteColorPicker.style.display&&(i=ab.parentsHasClass(t,"rte-color"),n=ab.parentsHasClass(t,"rte-color-picker"),o=ab.parentsHasClass(t,"pickcolormore"),i||n||o||(this.rteColorPicker.style.display="",ab.removeClass(this.rteColorPicker,"active"),ab.addClass(this.rteColorPicker,"deactive"))),"flex"===this.rteFontFamilyOptions.style.display&&(i=ab.parentsHasClass(t,"rte-fontfamily"),n=ab.parentsHasClass(t,"rte-fontfamily-options"),i||n||(this.rteFontFamilyOptions.style.display="",ab.removeClass(this.rteFontFamilyOptions,"active"),ab.addClass(this.rteFontFamilyOptions,"deactive"))),"flex"===this.rteIconOptions.style.display&&(i=ab.parentsHasClass(t,"rte-icon"),n=ab.parentsHasClass(t,"rte-icon-options"),o=!1,t.tagName&&(o="i"===t.tagName.toLowerCase()&&""===t.innerHTML),i||n||o||(this.rteIconOptions.style.display="",ab.removeClass(this.rteIconOptions,"active"),ab.addClass(this.rteIconOptions,"deactive"))),"flex"===this.rteCustomTagOptions.style.display&&(i=ab.parentsHasClass(t,"rte-tags"),n=ab.parentsHasClass(t,"rte-customtag-options"),i||n||(this.rteCustomTagOptions.style.display="",ab.removeClass(this.rteCustomTagOptions,"active"),ab.addClass(this.rteCustomTagOptions,"deactive"))),"flex"===this.rteParagraphOptions.style.display&&(i=ab.parentsHasClass(t,"rte-paragraph"),n=ab.parentsHasClass(t,"rte-paragraph-options"),i||n||(this.rteParagraphOptions.style.display="",ab.removeClass(this.rteParagraphOptions,"active"),ab.addClass(this.rteParagraphOptions,"deactive"))),"flex"===this.rteTextSettingOptions.style.display&&(i=ab.parentsHasClass(t,"rte-textsettings"),n=ab.parentsHasClass(t,"rte-textsetting-options"),i||n||(this.rteTextSettingOptions.style.display="",ab.removeClass(this.rteTextSettingOptions,"active"),ab.addClass(this.rteTextSettingOptions,"deactive"))),"flex"===this.rteZoomOptions.style.display&&(i=ab.parentsHasClass(t,"rte-zoom"),n=ab.parentsHasClass(t,"rte-zoom-options"),i||n||(this.rteZoomOptions.style.display="",ab.removeClass(this.rteZoomOptions,"active"),ab.addClass(this.rteZoomOptions,"deactive"))),"flex"===this.rteMoreOptions.style.display&&(i=ab.parentsHasClass(t,"rte-more"),n=ab.parentsHasClass(t,"rte-more-options"),o=ab.parentsHasClass(t,"is-rte-pop"),s=ab.parentsHasClass(t,"is-modal"),a=!1,t.tagName&&(a="i"===t.tagName.toLowerCase()&&""===t.innerHTML&&ab.parentsHasClass(w,"rte-more-options")),i||n||o||s||a||(this.rteMoreOptions.style.display="",ab.removeClass(this.rteMoreOptions,"active"),ab.addClass(this.rteMoreOptions,"deactive"))),"flex"===this.elementRteMoreOptions.style.display&&(i=ab.parentsHasClass(t,"rte-more"),n=ab.parentsHasClass(t,"elementrte-more-options"),o=ab.parentsHasClass(t,"is-rte-pop"),s=ab.parentsHasClass(t,"is-modal"),a=!1,i||n||o||s||a||(this.elementRteMoreOptions.style.display="",ab.removeClass(this.elementRteMoreOptions,"active"),ab.addClass(this.elementRteMoreOptions,"deactive")))}))}viewSnippets(){const e=new Zo(this.builder);let t=this.builderStuff.querySelector(".snippets");this.util.showModal(t,!1,null,!1);var i=t.querySelector("iframe").contentWindow.document;""===i.body.innerHTML&&(i.open(),i.write(e.getSnippetsHtml()),i.close())}openIcon(e){let t=e.target;const i=this.rteIconOptions,n=t.getBoundingClientRect().top,o=t.getBoundingClientRect().left;i.style.display="flex";const s=i.offsetWidth,a=i.offsetHeight;if(ab.hasClass(i,"active"))ab.removeClass(i,"active"),ab.addClass(i,"deactive");else{if("left"===this.builder.opts.toolbar)i.style.top=n-a/2+20+"px",i.style.left=o+54+"px",i.style.right="auto";else if("right"===this.builder.opts.toolbar){i.style.top=n-a/2+20+"px",i.style.left="auto";const e=window.innerWidth;i.style.right=e-o+9+"px"}else i.style.top=n+54-6+"px",i.style.left=o-s/2+23+"px",i.style.right="auto",t.getBoundingClientRect().left+45-parseInt(this.rteTool.style.left)<i.offsetWidth?i.style.left=parseInt(this.rteTool.style.left)+"px":parseInt(this.rteTool.style.left)+this.rteTool.offsetWidth-t.getBoundingClientRect().left+45<i.offsetWidth&&(i.style.left=parseInt(this.rteTool.style.left)+this.rteTool.offsetWidth-s+"px");if(ab.parentsHasClass(t,"rte-more-options"))if("left"===this.builder.opts.toolbar)i.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-a+"px",i.style.left=o+54+"px",i.style.right="auto";else if("right"===this.builder.opts.toolbar){i.style.top=parseInt(this.rteMoreOptions.style.top)+this.rteMoreOptions.offsetHeight-a+"px",i.style.left="auto";const e=window.innerWidth;i.style.right=e-o+9+"px"}else i.style.top=n+54-6+"px",t.getBoundingClientRect().left+45-parseInt(this.rteMoreOptions.style.left)<i.offsetWidth?i.style.left=parseInt(this.rteMoreOptions.style.left)+"px":parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-t.getBoundingClientRect().left+45<i.offsetWidth&&(i.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-s+"px"),ab.hasClass(this.builder.inspectedElement,"icon")&&(i.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-s+"px"),i.style.right="auto";ab.removeClass(i,"deactive"),ab.addClass(i,"active")}}showRteMore(){const e=this.rteMoreOptions;ab.hasClass(e,"active")?(ab.removeClass(e,"active"),ab.addClass(e,"deactive")):(this.positionRteMore(),ab.removeClass(e,"deactive"),ab.addClass(e,"active"))}positionRteMore(){let e,t;this.rteTool.querySelectorAll("button.rte-more").forEach((i=>{i.getBoundingClientRect().top>0&&(e=i.getBoundingClientRect().top,t=i.getBoundingClientRect().left)}));const i=this.rteMoreOptions;i.style.display="flex";const n=i.offsetWidth,o=i.offsetHeight;if("left"===this.builder.opts.toolbar)i.style.top=parseFloat(this.rteTool.style.top)+this.rteTool.offsetHeight-o+"px",i.style.left=t+54+"px",i.style.right="auto";else if("right"===this.builder.opts.toolbar){i.style.top=parseFloat(this.rteTool.style.top)+this.rteTool.offsetHeight-o+"px",i.style.left="auto";const e=window.innerWidth;i.style.right=e-t+9+"px"}else{const t=0;i.style.top=e+54-6+"px",i.style.left=parseFloat(this.rteTool.style.left)+this.rteTool.offsetWidth-n+t+"px",i.style.right="auto"}}showElementRteMore(){const e=this.elementRteMoreOptions;ab.hasClass(e,"active")?(ab.removeClass(e,"active"),ab.addClass(e,"deactive")):(this.positionElementRteMore(),ab.removeClass(e,"deactive"),ab.addClass(e,"active"))}positionElementRteMore(){const e=this.elementRteTool.querySelector("button.rte-more"),t=this.elementRteMoreOptions,i=e.getBoundingClientRect().top,n=e.getBoundingClientRect().left;t.style.display="flex";const o=t.offsetWidth,s=t.offsetHeight;if("left"===this.builder.opts.toolbar)t.style.top=parseFloat(this.elementRteTool.style.top)+this.elementRteTool.offsetHeight-s+"px",t.style.left=n+54+"px",t.style.right="auto";else if("right"===this.builder.opts.toolbar){t.style.top=parseFloat(this.elementRteTool.style.top)+this.elementRteTool.offsetHeight-s+"px",t.style.left="auto";const e=window.innerWidth;t.style.right=e-n+9+"px"}else{const e=0;t.style.top=i+54-6+"px",t.style.left=parseFloat(this.elementRteTool.style.left)+this.elementRteTool.offsetWidth-o+e+"px",t.style.right="auto"}}applyInlineFontSize(e,t){let i,n=Number(window.getComputedStyle(e).getPropertyValue("font-size").match(/\d+/)[0]);i="+"===t?n+1+"px":"-"===t?n-1+"px":""===t?"":t+"px",ab.doFunction(e,(function(e){e.style.fontSize=i}),!0)}applyClassFontSize(e,t){let i=Number(window.getComputedStyle(e).getPropertyValue("font-size").match(/\d+/)[0]),n="";n="+"===t||"-"===t||""===t?t:"size-"+t;const o=this.builder.opts.fontSizeClassValues;for(var s="",a=0;a<=o.length-1;a++)if(ab.hasClass(e,"size-"+o[a])){s="size-"+o[a];let t=o[a];ab.doFunction(e,(e=>{ab.removeClass(e,"size-"+t)}),!0)}else{let t=o[a];ab.doFunction(e,(e=>{ab.removeClass(e,"size-"+t)}),!0)}if(""===s&&("+"===n||"-"===n))for(a=0;a<=o.length-1;a++)i>=o[a]&i<o[a+1]&&(s="size-"+o[a]);if("+"===n){a=1*s.replace("size-","");var r=o.indexOf(a);r<o.length-1&&(s="size-"+o[r+1]),ab.doFunction(e,(function(e){ab.addClass(e,s)}),!0)}else"-"===n?(a=1*s.replace("size-",""),(r=o.indexOf(a))>=1&&(s="size-"+o[r-1]),ab.doFunction(e,(function(e){ab.addClass(e,s)}),!0)):""===n||ab.doFunction(e,(function(e){ab.addClass(e,n)}),!0);ab.doFunction(e,(function(e){e.style.fontSize=""}),!0),ab.cleanClassSize(e,n)}click(e){let t=this.builder.inspectedElement;this.rteTool.style.display="none",this.elementRteTool.style.display="none";let i=!1;e.hasAttribute("data-noedit")&&(i=!0);let n=!1;e.hasAttribute("data-protected")&&(n=!0);let o=!1,s=!1;if(e.hasAttribute("data-html")&&(o=!0,ab.parentsHasAttribute(t,"data-subblock")&&(s=!0)),this.rteTool.querySelector(".rte-for-text").style.display="flex",this.rteTool.querySelector(".rte-for-icon").style.display="none",this.rteMoreOptions.querySelector(".rte-for-text").style.display="flex",this.rteMoreOptions.querySelector(".rte-for-icon").style.display="none",!o&&!i&&!n||s){if(("img"===t.tagName.toLowerCase()||ab.hasClass(t,"is-social")||ab.hasClass(t,"is-rounded-button-medium")||ab.hasClass(t,"cell-active"))&&!ab.getSelected()){if("none"===this.elementRteTool.style.display||""===this.elementRteTool.style.display){this.elementRteTool.style.display="flex",this.rteTool.style.display="none";let e=this.elementRteTool.querySelectorAll("button[data-align]");Array.prototype.forEach.call(e,(e=>{e.style.display=""})),e=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(e,(e=>{e.style.display=""})),this.positionToolbar()}}else if(ab.hasClass(t,"spacer")||"video"===t.tagName.toLowerCase()||ab.hasClass(t,"ovl")||e.getAttribute("data-html")){if("none"===this.elementRteTool.style.display||""===this.elementRteTool.style.display){this.elementRteTool.style.display="flex",this.rteTool.style.display="none";let e=this.elementRteTool.querySelectorAll("button[data-align]");Array.prototype.forEach.call(e,(e=>{e.style.display="none"})),e=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(e,(e=>{e.style.display="none"})),this.positionToolbar()}}else if(ab.hasClass(t,"icon"))"none"!==this.rteTool.style.display&&""!==this.rteTool.style.display||(this.rteTool.style.display="flex",this.elementRteTool.style.display="none",this.rteTool.querySelector(".rte-for-text").style.display="none",this.rteTool.querySelector(".rte-for-icon").style.display="flex",this.rteMoreOptions.querySelector(".rte-for-text").style.display="none",this.rteMoreOptions.querySelector(".rte-for-icon").style.display="flex",this.positionToolbar());else if(ab.textSelection())"none"!==this.rteTool.style.display&&""!==this.rteTool.style.display||(this.rteTool.style.display="flex",this.elementRteTool.style.display="none",this.positionToolbar());else if("none"===this.elementRteTool.style.display||""===this.elementRteTool.style.display){this.elementRteTool.style.display="flex",this.rteTool.style.display="none";let e=this.elementRteTool.querySelectorAll("button[data-align]");Array.prototype.forEach.call(e,(e=>{e.style.display=""})),e=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(e,(e=>{e.style.display=""})),this.positionToolbar()}}else if("none"===this.elementRteTool.style.display||""===this.elementRteTool.style.display){this.elementRteTool.style.display="flex",this.rteTool.style.display="none";let e=this.elementRteTool.querySelectorAll("button[data-align]");Array.prototype.forEach.call(e,(e=>{e.style.display="none"})),e=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(e,(e=>{e.style.display="none"})),this.positionToolbar()}this.util.saveSelection(),this.getState()}getState(){document.queryCommandState("bold")?ab.addClass(this.rteTool.querySelector("button[data-command=bold]"),"on"):ab.removeClass(this.rteTool.querySelector("button[data-command=bold]"),"on"),document.queryCommandState("italic")?ab.addClass(this.rteTool.querySelector("button[data-command=italic]"),"on"):ab.removeClass(this.rteTool.querySelector("button[data-command=italic]"),"on"),document.queryCommandState("underline")?ab.addClass(this.rteTool.querySelector("button[data-command=underline]"),"on"):ab.removeClass(this.rteTool.querySelector("button[data-command=underline]"),"on"),document.queryCommandState("strikethrough")?ab.addClass(this.rteFormattingOptions.querySelector("[data-command=strikethrough]"),"on"):ab.removeClass(this.rteFormattingOptions.querySelector("[data-command=strikethrough]"),"on"),document.queryCommandState("superscript")?ab.addClass(this.rteFormattingOptions.querySelector("[data-command=superscript]"),"on"):ab.removeClass(this.rteFormattingOptions.querySelector("[data-command=superscript]"),"on"),document.queryCommandState("subscript")?ab.addClass(this.rteFormattingOptions.querySelector("[data-command=subscript]"),"on"):ab.removeClass(this.rteFormattingOptions.querySelector("[data-command=subscript]"),"on");let e=ab.textSelection();if(!e)return;"uppercase"===e.style.textTransform?ab.addClass(this.rteFormattingOptions.querySelector("[data-command=uppercase]"),"on"):ab.removeClass(this.rteFormattingOptions.querySelector("[data-command=uppercase]"),"on"),document.queryCommandState("JustifyFull")?ab.addClass(this.rteAlignOptions.querySelector("[data-align=justify]"),"on"):ab.removeClass(this.rteAlignOptions.querySelector("[data-align=justify]"),"on"),document.queryCommandState("JustifyLeft")?ab.addClass(this.rteAlignOptions.querySelector("[data-align=left]"),"on"):ab.removeClass(this.rteAlignOptions.querySelector("[data-align=left]"),"on"),document.queryCommandState("JustifyRight")?ab.addClass(this.rteAlignOptions.querySelector("[data-align=right]"),"on"):ab.removeClass(this.rteAlignOptions.querySelector("[data-align=right]"),"on"),document.queryCommandState("JustifyCenter")?ab.addClass(this.rteAlignOptions.querySelector("[data-align=center]"),"on"):ab.removeClass(this.rteAlignOptions.querySelector("[data-align=center]"),"on");var t=document.queryCommandValue("FontName").split(",")[0];t=(t=(t=(t=t.replace(/"/g,"")).replace(/'/g,"")).replace(/&quot;/g,"")).trim().toLowerCase();let i=this.rteTool.querySelector("button.rte-fontfamily");if(i=i||this.rteMoreOptions.querySelector("button.rte-fontfamily"),i){const e=this.rteFontFamilyOptions.querySelector("iframe");let i=e.contentDocument||e.contentWindow.document;i&&[].forEach.call(i.querySelectorAll("#divFontList > div"),(function(e){var i=e.getAttribute("data-font-family");(i=(i=(i=i.split(",")[0]).replace(/'/g,"")).trim().toLowerCase())===t&&""!==i?ab.addClass(e,"on"):ab.removeClass(e,"on")}))}let n=this.rteParagraphOptions.querySelectorAll("[data-block]");Array.prototype.forEach.call(n,(e=>{ab.removeClass(e,"on")}));var o=document.queryCommandValue("FormatBlock");"normal"===(o=o.toLowerCase())&&(o="p"),"heading 1"===o&&(o="h1"),"heading 2"===o&&(o="h2"),"heading 3"===o&&(o="h3"),"heading 4"===o&&(o="h4"),"formatted"===o&&(o="pre"),"p"!==o&&"h1"!==o&&"h2"!==o&&"h3"!==o&&"h4"!==o&&"pre"!==o||ab.addClass(this.rteParagraphOptions.querySelector('[data-block="'+o+'"]'),"on")}getIconsStyle(){return`\n html, body {height:100%}\n body {overflow:hidden;margin:0;\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n font-size:100%; \n line-height:1.7;\n }\n #divIcons {display:flex;flex-direction:row;flex-wrap:wrap;margin:0;padding:9px 11px 9px 9px;height:100%;overflow-y:scroll !important;box-sizing:border-box;}\n #divIcons > div {width:40px;height:37px;line-height:37px;font-size:14px;cursor:pointer;overflow:hidden;text-align:center;position:relative;} \n // #divIcons > div:hover {background:#f5f5f5;}\n\n #divIcons {\n background: ${this.builder.styleToolBackground};\n }\n #divIcons > div {\n color: ${this.builder.styleButtonColor};\n }\n #divIcons > div svg {\n fill: ${this.builder.styleButtonSvgFill};\n }\n #divIcons > div:hover {\n background: ${this.builder.styleButtonBackgroundHover};\n }\n\n .dark #divIcons > div {\n opacity: 0.93;\n }\n\n /* Scrollbar for toolbar/RTE, not modal */\n\n .dark * {\n scrollbar-width: thin;\n scrollbar-color: rgba(255, 255, 255, 0.3) auto;\n }\n .dark *::-webkit-scrollbar {\n width: 12px;\n }\n .dark *::-webkit-scrollbar-track {\n background: transparent;\n }\n .dark *::-webkit-scrollbar-thumb {\n background-color:rgba(255, 255, 255, 0.3);\n } \n\n .colored-dark * {\n scrollbar-width: thin;\n scrollbar-color: rgb(100, 100, 100) auto;\n }\n .colored-dark *::-webkit-scrollbar {\n width: 12px;\n }\n .colored-dark *::-webkit-scrollbar-track {\n background: transparent;\n }\n .colored-dark *::-webkit-scrollbar-thumb {\n background-color:rgb(100, 100, 100);\n } \n\n .colored * {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.4) auto;\n }\n .colored *::-webkit-scrollbar {\n width: 12px;\n }\n .colored *::-webkit-scrollbar-track {\n background: transparent;\n }\n .colored *::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.4);\n } \n\n .light * {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.4) auto;\n }\n .light *::-webkit-scrollbar {\n width: 12px;\n }\n .light *::-webkit-scrollbar-track {\n background: transparent;\n }\n .light *::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.4);\n }`}refreshIconsStyle(){this.builder.rte.rteIconOptions.querySelector("iframe").contentWindow.document.querySelector("#mainstyle").innerHTML=this.getIconsStyle()}getIcons(){return'\n <div role="button" tabindex="0"><i class="icon ion-alert"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-alert-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-add"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-add-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-alarm-clock"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-alert"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-apps"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-archive"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-back"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-down"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropdown"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropdown-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropleft"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropleft-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropright"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropright-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropup"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-dropup-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-forward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-arrow-up"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-attach"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-bar"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-bicycle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-boat"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-bookmark"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-bulb"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-bus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-calendar"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-call"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-camera"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cancel"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-car"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cart"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-chat"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-checkbox"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-checkbox-blank"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-checkbox-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-checkbox-outline-blank"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-checkmark-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-clipboard"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-close"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cloud"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cloud-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cloud-done"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-cloud-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-color-palette"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-compass"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-contact"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-contacts"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-contract"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-create"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-delete"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-desktop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-document"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-done"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-done-all"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-download"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-drafts"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-exit"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-expand"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-favorite"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-favorite-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-film"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-folder"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-folder-open"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-funnel"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-globe"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-hand"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-hangout"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-happy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-home"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-image"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-laptop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-list"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-locate"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-lock"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-mail"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-map"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-menu"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-microphone"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-microphone-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-more-horizontal"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-more-vertical"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-navigate"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-notifications"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-notifications-none"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-notifications-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-open"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-options"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-people"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-person"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-person-add"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-phone-landscape"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-phone-portrait"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-pin"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-plane"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-playstore"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-print"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-radio-button-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-radio-button-on"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-refresh"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-remove"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-remove-circle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-restaurant"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-sad"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-search"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-send"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-settings"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-share"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-share-alt"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-star"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-star-half"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-star-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-stopwatch"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-subway"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-sunny"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-sync"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-textsms"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-time"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-train"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-unlock"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-upload"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-volume-down"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-volume-mute"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-volume-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-volume-up"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-walk"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-warning"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-watch"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-android-wifi"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-aperture"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-archive"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-down-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-down-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-down-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-expand"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-graph-down-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-graph-down-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-graph-up-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-graph-up-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-left-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-left-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-left-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-move"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-resize"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-return-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-return-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-right-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-right-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-right-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-shrink"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-swap"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-up-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-up-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-arrow-up-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-asterisk"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-at"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-backspace"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-backspace-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-battery-charging"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-battery-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-battery-full"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-battery-half"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-battery-low"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-beaker"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-beer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bluetooth"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bonfire"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bookmark"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bowtie"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-briefcase"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-bug"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-calculator"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-calendar"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-camera"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-card"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-cash"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatbox"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatbox-working"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatboxes"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatbubble"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatbubble-working"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chatbubbles"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-checkmark"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-checkmark-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-checkmark-round"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chevron-down"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chevron-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chevron-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-chevron-up"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-clipboard"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-clock"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-close"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-close-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-close-round"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-closed-captioning"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-cloud"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-code"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-code-download"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-code-working"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-coffee"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-compass"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-compose"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-connection-bars"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-contrast"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-crop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-cube"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-disc"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-document"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-document-text"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-drag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-earth"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-easel"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-edit"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-egg"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-eject"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-email"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-email-unread"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-erlenmeyer-flask"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-erlenmeyer-flask-bubbles"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-eye"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-eye-disabled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-female"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-filing"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-film-marker"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-fireball"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-flag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-flame"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-flash"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-flash-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-folder"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-fork"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-fork-repo"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-forward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-funnel"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-gear-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-gear-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-grid"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-hammer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-happy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-happy-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-headphone"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-heart"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-heart-broken"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-help"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-help-buoy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-help-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-home"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-icecream"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-image"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-images"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-information"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-information-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ionic"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-alarm"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-alarm-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-albums"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-albums-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-americanfootball"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-americanfootball-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-analytics"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-analytics-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-back"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-down"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-forward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-thin-down"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-thin-left"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-thin-right"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-thin-up"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-arrow-up"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-at"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-at-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-barcode"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-barcode-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-baseball"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-baseball-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-basketball"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-basketball-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bell"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bell-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-body"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-body-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bolt"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bolt-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-book"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-book-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bookmarks"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-bookmarks-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-box"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-box-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-briefcase"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-briefcase-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-browsers"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-browsers-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-calculator"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-calculator-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-calendar"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-calendar-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-camera"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-camera-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cart"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cart-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-chatboxes"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-chatboxes-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-chatbubble"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-chatbubble-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-checkmark"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-checkmark-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-checkmark-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-circle-filled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-circle-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-clock"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-clock-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-close"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-close-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-close-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud-download"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud-download-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud-upload"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloud-upload-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloudy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloudy-night"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloudy-night-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cloudy-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cog"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-cog-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-color-filter"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-color-filter-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-color-wand"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-color-wand-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-compose"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-compose-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-contact"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-contact-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-copy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-copy-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-crop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-crop-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-download"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-download-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-drag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-email"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-email-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-eye"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-eye-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-fastforward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-fastforward-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-filing"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-filing-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-film"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-film-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flag-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flame"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flame-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flask"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flask-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flower"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-flower-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-folder"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-folder-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-football"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-football-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-game-controller-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-game-controller-a-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-game-controller-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-game-controller-b-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-gear"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-gear-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-glasses"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-glasses-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-grid-view"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-grid-view-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-heart"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-heart-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-help"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-help-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-help-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-home"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-home-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-infinite"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-infinite-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-information"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-information-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-information-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-ionic-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-keypad"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-keypad-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-lightbulb"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-lightbulb-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-list"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-list-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-location"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-location-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-locked"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-locked-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-loop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-loop-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-medical"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-medical-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-medkit"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-medkit-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-mic"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-mic-off"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-mic-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-minus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-minus-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-minus-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-monitor"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-monitor-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-moon"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-moon-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-more"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-more-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-musical-note"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-musical-notes"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-navigate"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-navigate-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-nutrition"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-nutrition-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paper"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paper-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paperplane"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paperplane-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-partlysunny"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-partlysunny-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pause"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pause-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paw"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-paw-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-people"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-people-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-person"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-person-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-personadd"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-personadd-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-photos"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-photos-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pie"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pie-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pint"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pint-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-play"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-play-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-plus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-plus-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-plus-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pricetag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pricetag-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pricetags"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pricetags-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-printer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-printer-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pulse"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-pulse-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rainy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rainy-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-recording"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-recording-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-redo"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-redo-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-refresh"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-refresh-empty"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-refresh-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-reload"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-reverse-camera"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-reverse-camera-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rewind"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rewind-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rose"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-rose-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-search"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-search-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-settings"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-settings-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-shuffle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-shuffle-strong"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-skipbackward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-skipbackward-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-skipforward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-skipforward-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-snowy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-speedometer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-speedometer-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-star"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-star-half"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-star-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-stopwatch"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-stopwatch-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-sunny"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-sunny-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-telephone"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-telephone-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-tennisball"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-tennisball-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-thunderstorm"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-thunderstorm-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-time"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-time-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-timer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-timer-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-toggle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-toggle-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-trash"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-trash-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-undo"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-undo-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-unlocked"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-unlocked-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-upload"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-upload-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-videocam"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-videocam-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-volume-high"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-volume-low"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-wineglass"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-wineglass-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-world"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ios-world-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ipad"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-iphone"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ipod"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-jet"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-key"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-knife"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-laptop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-leaf"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-levels"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-lightbulb"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-link"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-load-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-load-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-load-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-load-d"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-location"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-lock-combination"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-locked"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-log-in"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-log-out"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-loop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-magnet"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-male"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-man"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-map"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-medkit"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-merge"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-mic-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-mic-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-mic-c"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-minus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-minus-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-minus-round"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-model-s"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-monitor"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-more"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-mouse"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-music-note"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-navicon"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-navicon-round"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-navigate"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-network"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-no-smoking"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-nuclear"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-outlet"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-paintbrush"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-paintbucket"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-paper-airplane"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-paperclip"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pause"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-person"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-person-add"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-person-stalker"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pie-graph"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pin"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pinpoint"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pizza"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-plane"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-planet"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-play"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-playstation"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-plus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-plus-circled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-plus-round"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-podium"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pound"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-power"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pricetag"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pricetags"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-printer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-pull-request"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-qr-scanner"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-quote"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-radio-waves"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-record"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-refresh"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-reply"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-reply-all"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ribbon-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-ribbon-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-sad"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-sad-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-scissors"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-search"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-settings"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-share"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-shuffle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-skip-backward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-skip-forward"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-android"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-android-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-angular"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-angular-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-apple"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-apple-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-bitcoin"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-bitcoin-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-buffer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-buffer-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-chrome"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-chrome-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-codepen"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-codepen-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-css3"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-css3-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-designernews"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-designernews-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-dribbble"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-dribbble-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-dropbox"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-dropbox-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-euro"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-euro-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-facebook"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-facebook-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-foursquare"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-foursquare-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-freebsd-devil"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-github"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-github-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-google"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-google-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-googleplus"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-googleplus-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-hackernews"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-hackernews-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-html5"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-html5-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-instagram"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-instagram-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-javascript"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-javascript-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-linkedin"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-linkedin-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-markdown"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-nodejs"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-octocat"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-pinterest"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-pinterest-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-python"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-reddit"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-reddit-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-rss"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-rss-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-sass"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-skype"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-skype-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-snapchat"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-snapchat-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-tumblr"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-tumblr-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-tux"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-twitch"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-twitch-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-twitter"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-twitter-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-usd"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-usd-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-vimeo"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-vimeo-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-whatsapp"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-whatsapp-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-windows"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-windows-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-wordpress"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-wordpress-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-yahoo"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-yahoo-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-yen"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-yen-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-youtube"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-social-youtube-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-soup-can"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-soup-can-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-speakerphone"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-speedometer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-spoon"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-star"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-stats-bars"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-steam"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-stop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-thermometer"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-thumbsdown"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-thumbsup"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-toggle"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-toggle-filled"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-transgender"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-trash-a"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-trash-b"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-trophy"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-tshirt"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-tshirt-outline"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-umbrella"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-university"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-unlocked"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-upload"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-usb"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-videocamera"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-volume-high"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-volume-low"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-volume-medium"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-volume-mute"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-wand"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-waterdrop"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-wifi"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-wineglass"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-woman"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-wrench"> </i></div>\n <div role="button" tabindex="0"><i class="icon ion-xbox"> </i></div> \n '}getIconsHTML(){return`\n <!DOCTYPE HTML>\n <html>\n <head>\n <meta charset="utf-8">\n <title>Fonts</title>\n <meta name="viewport" content="width=device-width, initial-scale=1">\n <meta name="description" content=""> \n <link href="${this.builder.assetPath+"ionicons/"}css/ionicons.min.css" rel="stylesheet" type="text/css" />\n <style id="mainstyle">\n html, body {height:100%}\n body {overflow:hidden;margin:0;\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n font-size:100%; \n line-height:1.7;\n }\n #divIcons {display:flex;flex-direction:row;flex-wrap:wrap;margin:0;padding:9px 11px 9px 9px;height:100%;overflow-y:scroll !important;box-sizing:border-box;}\n #divIcons > div {width:40px;height:37px;line-height:37px;font-size:14px;cursor:pointer;overflow:hidden;text-align:center;position:relative;} \n // #divIcons > div:hover {background:#f5f5f5;}\n\n #divIcons {\n background: ${this.builder.styleToolBackground};\n }\n #divIcons > div {\n color: ${this.builder.styleButtonColor};\n }\n #divIcons > div svg {\n fill: ${this.builder.styleButtonSvgFill};\n }\n #divIcons > div:hover {\n background: ${this.builder.styleButtonBackgroundHover};\n }\n\n .dark #divIcons > div {\n opacity: 0.93;\n }\n\n /* Scrollbar for toolbar/RTE, not modal */\n\n .dark * {\n scrollbar-width: thin;\n scrollbar-color: rgba(255, 255, 255, 0.3) auto;\n }\n .dark *::-webkit-scrollbar {\n width: 12px;\n }\n .dark *::-webkit-scrollbar-track {\n background: transparent;\n }\n .dark *::-webkit-scrollbar-thumb {\n background-color:rgba(255, 255, 255, 0.3);\n } \n\n .colored-dark * {\n scrollbar-width: thin;\n scrollbar-color: rgb(100, 100, 100) auto;\n }\n .colored-dark *::-webkit-scrollbar {\n width: 12px;\n }\n .colored-dark *::-webkit-scrollbar-track {\n background: transparent;\n }\n .colored-dark *::-webkit-scrollbar-thumb {\n background-color:rgb(100, 100, 100);\n } \n\n .colored * {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.4) auto;\n }\n .colored *::-webkit-scrollbar {\n width: 12px;\n }\n .colored *::-webkit-scrollbar-track {\n background: transparent;\n }\n .colored *::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.4);\n } \n\n .light * {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.4) auto;\n }\n .light *::-webkit-scrollbar {\n width: 12px;\n }\n .light *::-webkit-scrollbar-track {\n background: transparent;\n }\n .light *::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.4);\n } \n </style>\n </head>\n <body${this.builder.styleDark?' class="dark"':""}${this.builder.styleColored?' class="colored"':""}${this.builder.styleColoredDark?' class="colored-dark"':""}${this.builder.styleLight?' class="light"':""}>\n\n <div id="divIcons">\n ${this.getIcons()}\n </div>\n\n <script type="text/javascript">\n var elms = document.querySelectorAll('#divIcons > div');\n for(var i=0;i<elms.length;i++) {\n elms[i].addEventListener('click', function(e){\n\n var elm = e.target;\n if(!elm.className) elm = elm.childNodes[0];\n parent._cb.addIcon(elm.className)\n\n });\n }\n <\/script>\n\n </body>\n </html>\n \n \n `}addIcon(e){if(this.util.restoreSelection(),this.builder.activeIcon){this.builder.uo.saveForUndo();const n=this.builder.opts.fontSizeClassValues;for(var t="",i=0;i<=n.length-1;i++)ab.hasClass(this.builder.activeIcon,"size-"+n[i])&&(t="size-"+n[i]);this.builder.activeIcon.className=e+(""!==t?" "+t:""),ab.addClass(this.builder.activeIcon,"icon-active"),ab.selectElementContents(this.builder.activeIcon),this.util.saveSelection()}else{if(!ab.textSelection())return;this.builder.uo.saveForUndo(),this.util.pasteHtmlAtCaret('<i class="'+e+' icon-active"></i>',!0),this.builder.activeIcon=document.querySelector(".icon-active"),ab.selectElementContents(this.builder.activeIcon),this.util.saveSelection()}this.builder.opts.onChange(),this.builder.opts.onRender()}clearFont(){this.builder.uo.saveForUndo(),this.applyFont("","","")}applyFont(e,t,i){let n;var o=this.builderStuff.querySelector(".is-side.elementstyles");if(ab.hasClass(o,"active"))this.builder.uo.saveForUndo(),n=this.builder.inspectedElement,n.style.fontFamily=e,this.builderStuff.querySelector("#inpElmFontFamily").value=e,this.elementStyleEditor.refresh();else{try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,n=3===e.nodeType?e.parentNode:e,"H1"!==n.tagName&&"H2"!==n.tagName&&"H3"!==n.tagName&&"H4"!==n.tagName&&"H5"!==n.tagName&&"H6"!==n.tagName&&"P"!==n.tagName&&(n=n.parentNode)):document.selection&&(e=document.selection.createRange(),n=document.selection.createRange().parentElement(),"H1"!==n.tagName&&"H2"!==n.tagName&&"H3"!==n.tagName&&"H4"!==n.tagName&&"H5"!==n.tagName&&"H6"!==n.tagName&&"P"!==n.tagName&&(n=n.parentElement()))}catch(e){return}this.builder.uo.saveForUndo();var s=ab.getSelected();if(""!==s.trim()&&n.innerText!==s){document.execCommand("fontName",!1,e);for(var a=document.getElementsByTagName("font"),r=0,l=a.length;r<l;++r)a[r].face===e&&(a[r].removeAttribute("face"),a[r].style.fontFamily=e,ab.selectElementContents(a[r]))}else""!==s.trim()&&n.innerText,n.style.fontFamily=e}var d=t;d=d?":"+d:"";var c=e.split(",")[0];if("google"===i){var u=!1,p=document.getElementsByTagName("link");for(r=0;r<p.length;r++){var h=p[r].href.toLowerCase();-1!==(h=h.replace(/\+/g," ").replace(/%20/g," ")).indexOf(c.toLowerCase())&&(u=!0)}if(!u){for(var g=n;!ab.hasClass(g,"is-builder");)g=g.parentNode;ab.appendHtml(g,'<link href="//fonts.googleapis.com/css?family='+c+d+'" rel="stylesheet" property="stylesheet" type="text/css">')}}if(!this.builder.inspectedElement){if(this.util.saveSelection(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}this.getState()}for(this.builder.opts.onChange(),setTimeout((()=>{this.builder.opts.onChange()}),300),p=document.getElementsByTagName("link"),r=0;r<p.length;r++){if(-1!==(h=p[r].href.toLowerCase()).indexOf("googleapis"))if(-1!==(c=(h=h.replace(/\+/g," ").replace(/%20/g," ")).substr(h.indexOf("family=")+7)).indexOf(":")&&(c=c.split(":")[0]),-1!==c.indexOf("|")&&(c=c.split("|")[0]),document.body.innerHTML.toLowerCase().split(c).length<3)p[r].getAttribute("data-protect")||p[r].setAttribute("data-rel","_del")}[].forEach.call(document.querySelectorAll('link[data-rel="_del"]'),(function(e){e.parentNode.removeChild(e)}))}setFont(e,t,i,n){let o;var s=this.builderStuff.querySelector(".is-side.elementstyles");if(ab.hasClass(s,"active"))this.builder.uo.saveForUndo(),o=this.builder.inspectedElement,o.style.fontFamily=e,this.builderStuff.querySelector("#inpElmFontFamily").value=e,this.elementStyleEditor.refresh();else{this.builder.isIE&&this.util.restoreSelection();try{let e;window.getSelection?(e=window.getSelection().getRangeAt(0).commonAncestorContainer,o=3===e.nodeType?e.parentNode:e,"H1"!==o.tagName&&"H2"!==o.tagName&&"H3"!==o.tagName&&"H4"!==o.tagName&&"H5"!==o.tagName&&"H6"!==o.tagName&&"P"!==o.tagName&&(o=o.parentNode)):document.selection&&(e=document.selection.createRange(),o=document.selection.createRange().parentElement(),"H1"!==o.tagName&&"H2"!==o.tagName&&"H3"!==o.tagName&&"H4"!==o.tagName&&"H5"!==o.tagName&&"H6"!==o.tagName&&"P"!==o.tagName&&(o=o.parentElement()))}catch(e){return}this.builder.uo.saveForUndo();var a=ab.getSelected();if(""!==a.trim()&&o.innerText!==a){document.execCommand("fontName",!1,e);for(var r=document.getElementsByTagName("font"),l=0,d=r.length;l<d;++l)r[l].face.replace(/'/g,"")===e.replace(/'/g,"")&&(r[l].removeAttribute("face"),r[l].style.fontFamily=e,ab.selectElementContents(r[l]));for(l=0,d=(r=document.querySelectorAll("[face]")).length;l<d;++l){let e=r[l].getAttribute("face");if(-1!==e.indexOf(",")){var c=e.split(",")[0],u=e.split(",")[1];-1!==c.indexOf(" ")&&(e=`'${c}',${u}`)}r[l].style.fontFamily=e,r[l].removeAttribute("face")}}else if(""!==a.trim()&&o.innerText===a){o.style.fontFamily=e;let t=o.querySelectorAll("*");Array.prototype.forEach.call(t,(e=>{""!==e.style.fontFamily&&(e.style.fontFamily="")}))}else o.style.fontFamily=e}var p=t;p=p?":"+p:"";var h="";i&&(h="&display=swap");var g=e.split(",")[0];if(g=g.replace(/'/g,""),"google"===n){var f=!1,m=document.getElementsByTagName("link");for(l=0;l<m.length;l++){var v=m[l].href.toLowerCase();-1!==(v=v.replace(/\+/g," ").replace(/%20/g," ")).indexOf(g.toLowerCase())&&(f=!0)}if(!f){for(var b=o;!ab.hasClass(b,"is-builder");)b=b.parentNode;ab.appendHtml(b,'<link href="//fonts.googleapis.com/css?family='+g+h+p+'" rel="stylesheet" property="stylesheet" type="text/css">')}}if(!this.builder.inspectedElement){if(this.util.saveSelection(),this.builder.isTouchSupport){this.rteTool.querySelector("button").focus()}this.getState()}for(this.builder.opts.onChange(),m=document.getElementsByTagName("link"),l=0;l<m.length;l++)if(-1!==(v=m[l].href.toLowerCase()).indexOf("googleapis")){if(-1!==(g=(v=v.replace(/\+/g," ").replace(/%20/g," ")).substr(v.indexOf("family=")+7)).indexOf(":")&&(g=g.split(":")[0]),-1!==g.indexOf("|")&&(g=g.split("|")[0]),g=g.replace("&display=swap",""),document.body.innerHTML.toLowerCase().split(g).length<3)m[l].getAttribute("data-protect")||m[l].setAttribute("data-rel","_del")}[].forEach.call(document.querySelectorAll('link[data-rel="_del"]'),(function(e){e.parentNode.removeChild(e)}))}positionToolbar(){const e=window.innerWidth,t=window.innerHeight;if("left"===this.builder.opts.toolbar||"right"===this.builder.opts.toolbar){let e=this.rteTool.offsetHeight,i=t/2-e/2;this.rteTool.style.left="",this.rteTool.style.top=i+"px",e=this.elementRteTool.offsetHeight,i=t/2-e/2,this.elementRteTool.style.left="",this.elementRteTool.style.top=i+"px"}else{let t=this.rteTool.offsetWidth,i=e/2-t/2;this.rteTool.style.top="",this.rteTool.style.left=i+"px",t=this.elementRteTool.offsetWidth,i=e/2-t/2,this.elementRteTool.style.top="",this.elementRteTool.style.left=i+"px"}}viewZoom(){this.builder.onZoomOpen&&this.builder.onZoomOpen(),this.inpZoomSlider.value=100*this.builder.opts.zoom;const e=this.builderStuff.querySelector(".viewzoom");this.util.showModal(e,!1,null,!1)}}const lb=new ni;class db{constructor(e={}){this.opts=Object.assign(this,{page:"",container:".container",handler:"saveimage.php",onComplete:function(){},customval:"",stuffPlacement:"#_cbhtml",hiquality:!1},e),this.count=0;let t=document.querySelector(this.opts.stuffPlacement);t||(t=document.createElement("div"),t.id="_cbhtml",t.className="is-ui",lb.appendChild(document.body,t)),this.builderStuff=t}save(){if(""!==this.opts.page){let e=document.querySelector(this.opts.page);this.uploadImages(e)}else{let e=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(e,(e=>{this.uploadImages(e)}))}var e=setInterval((()=>{let t=!0;if(""!==this.opts.page){let e=document.querySelector(this.opts.page);t=this.checkImages(e)}else{let e=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(e,(e=>{!1===this.checkImages(e)&&(t=!1)}))}t&&(this.opts.onComplete(),window.clearInterval(e))}),2e3)}checkImages(e){const t=e.querySelectorAll("img");let i=!0;return Array.prototype.forEach.call(t,(e=>{let t=e.getAttribute("src");void 0!==t&&!1!==t&&-1!==t.indexOf("base64")&&(i=!1)})),i}uploadImages(e){if(!e)return;const t=e.querySelectorAll("img");Array.prototype.forEach.call(t,(e=>{let t=e.getAttribute("src");if(void 0!==t&&!1!==t&&-1!==t.indexOf("base64"))if(this.opts.onBase64Upload){let i=t;i=i.replace(/^data:image\/(png|jpeg);base64,/,"");let n=e.getAttribute("data-filename");this.opts.onBase64Upload(e,i,n)}else{this.count++;let o=t;if(o=o.replace(/^data:image\/(png|jpeg);base64,/,""),!this.builderStuff.querySelector("#form-"+this.count)){var i='<form id="form-'+this.count+'" target="frame-'+this.count+'" method="post" enctype="multipart/form-data"><input id="hidimg-'+this.count+'" name="hidimg-'+this.count+'" type="hidden" /><input id="hidname-'+this.count+'" name="hidname-'+this.count+'" type="hidden" /><input id="hidtype-'+this.count+'" name="hidtype-'+this.count+'" type="hidden" /><input id="hidcustomval-'+this.count+'" name="hidcustomval-'+this.count+'" type="hidden" /><input name="count" value="'+this.count+'" type="hidden" /><iframe id="frame-'+this.count+'" name="frame-'+this.count+'" style="width:1px;height:1px;border:none;position:absolute;z-index:-100000;left:-5px;"></iframe></form>';this.builderStuff.insertAdjacentHTML("beforeend",i)}e.setAttribute("id","img-"+this.count),this.builderStuff.querySelector("#hidimg-"+this.count).value=o,this.builderStuff.querySelector("#hidcustomval-"+this.count).value=this.customval;let s=e.getAttribute("data-filename");if(s){let e=s.substr(0,s.lastIndexOf("."))||s;e=e.toLowerCase().replace(/ /g,"-"),this.builderStuff.querySelector("#hidname-"+this.count).value=e}if(this.opts.hiquality)this.builderStuff.querySelector("#hidtype-"+this.count).value="png";else{var n=s.substr(s.lastIndexOf(".")+1);n=n.toLowerCase(),this.builderStuff.querySelector("#hidtype-"+this.count).value="jpg"===n||"jpeg"===n?"jpg":"png"}this.builderStuff.querySelector("#form-"+this.count).setAttribute("action",this.opts.handler+(this.opts.handler.indexOf("?")>=0?"&":"?")+"count="+this.count),this.builderStuff.querySelector("#form-"+this.count).submit()}}))}}const cb=new ni;class ub{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=i.querySelector(".is-tooltip");if(!n){let e='<div class="is-tooltip"></div>';cb.appendHtml(i,e),n=i.querySelector(".is-tooltip")}this.tooltip=n}setAll(e){let t;t=e||this.builderStuff;let i=t.querySelectorAll("[data-title]");Array.prototype.forEach.call(i,(e=>{this.set(e,0,0)}))}set(e,t,i){t||(t=0),i||(i=0);let n=this.tooltip;e.addEventListener("mouseover",(function(o){var s=o.relatedTarget;if(this===s||pb(this,s))return;e=this;let a=window.getComputedStyle(e.parentNode).getPropertyValue("flex-direction"),r=e.getAttribute("data-title");n.innerHTML=r;const l=e.getBoundingClientRect().top+window.pageYOffset,d=e.getBoundingClientRect().left+window.pageXOffset;n.style.display="flex",n.style.whiteSpace="nowrap";const c=e.offsetWidth,u=e.offsetHeight;n.style.marginRight="";const p=window.innerWidth;if(n.style.top=l+u+5+t+"px",u<30&&(n.style.top=l+u+2+t+"px"),"column"===a)n.style.top=l+u/2-n.offsetHeight/2+t+"px",n.style.left=d+c+3+i+"px",p-(d+c)<100&&(n.style.left=d-n.offsetWidth-3+i+"px");else{let e=d+c/2-n.offsetWidth/2+i;n.style.left=e+"px";let t=e+n.offsetWidth;if(t>p){let i=t-p;n.style.left=e-i-3+"px",n.offsetHeight>25&&(n.style.marginRight="5px")}e<0&&(n.style.left="3px")}e.hasAttribute("data-tooltip-top")&&(n.style.top=l-n.offsetHeight-3+"px"),e.removeAttribute("title")}),!1),e.addEventListener("mouseout",(function(t){var i=t.relatedTarget;this===i||pb(this,i)||((e=this).setAttribute("title",e.getAttribute("data-title")),n.style.display="none")}),!1),e.addEventListener("click",(function(t){var i=t.relatedTarget;this===i||pb(this,i)||((e=this).setAttribute("title",e.getAttribute("data-title")),n.style.display="none")}),!1)}}function pb(e,t){if(e===t)return!1;for(;t&&t!==e;)t=t.parentNode;return t===e}const hb=new ni;class gb{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;let n=`\n <div class="is-lightbox lightbox-externalvideo">\n <button class="cmd-lightbox-close" title="${t.out("Close")}" type="button" style="flex:none;position:absolute;top:0;right:0;background:none;z-index:1;">\n <svg><use xlink:href="#icon-close"></use></svg>\n </button>\n <div class="lightbox-content" style="width:100%;">\n <div class="embed-responsive embed-responsive-16by9" style="width:100%;">\n <iframe width="560" height="315" src="about:blank" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>\n </div>\n </div>\n </div>\n <div class="is-lightbox lightbox-video light">\n <button class="cmd-lightbox-close" title="${t.out("Close")}" type="button" style="flex:none;position:absolute;top:0;right:0;background:none;z-index:1;">\n <svg><use xlink:href="#icon-close"></use></svg>\n </button>\n <div class="lightbox-content" style="width:100%;"></div>\n </div>\n <div class="is-lightbox lightbox-image light">\n <button class="cmd-lightbox-close" title="${t.out("Close")}" type="button" style="flex:none;position:absolute;top:0;right:0;background:none;z-index:1;">\n <svg><use xlink:href="#icon-close"></use></svg>\n </button>\n <div class="lightbox-content" style="width:100%;"></div>\n </div>\n <svg width="0" height="0" style="position:absolute;display:none;">\n <defs>\n <symbol viewBox="0 0 24 24" id="icon-close" stroke-width="0.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n <path stroke="none" d="M0 0h24v24H0z" fill="none"></path><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>\n </symbol>\n </defs>\n </svg>\n `;hb.appendHtml(this.builderStuff,n);this.builderStuff.querySelectorAll("div.is-lightbox").forEach((e=>{e.addEventListener("click",(t=>{if(hb.parentsHasClass(t.target,"lightbox-content"))return;hb.removeClass(e,"active");e.querySelector(".cmd-lightbox-close").style.opacity=0,document.body.style.overflowY="",setTimeout((()=>{let t=e.querySelector("iframe");t&&t.setAttribute("src","about:blank"),e.style.display="",this.builder.preserveSelection=!1}),300)}))}))}openImage(e,t,i){this.builder.preserveSelection=!0;let n=this.builderStuff.querySelector("div.is-lightbox.lightbox-image");window.frameElement&&!n&&(n=parent.document.querySelector(".is-lightbox.lightbox-image"));const o=n.querySelector(".cmd-lightbox-close");o.style.opacity=0,i&&(n.style.backgroundColor=i);n.querySelector(".lightbox-content").innerHTML="<img src="+e+">","light"===t?(hb.addClass(n,"light"),hb.removeClass(n,"dark")):(hb.addClass(n,"dark"),hb.removeClass(n,"light")),n.style.display="flex",window.frameElement||(document.body.style.overflowY="hidden"),setTimeout((()=>{hb.addClass(n,"active"),setTimeout((()=>{o.style.opacity=1}),450)}),10)}openVideo(e,t,i){this.builder.preserveSelection=!0;let n=document.querySelector(".is-lightbox.lightbox-video");window.frameElement&&!n&&(n=parent.document.querySelector(".is-lightbox.lightbox-video"));const o=n.querySelector(".cmd-lightbox-close");o.style.opacity=0,i&&(n.style.backgroundColor=i);n.querySelector(".lightbox-content").innerHTML='<video class="is-video-bg" playsinline controls autoplay width="100%"><source src="'+e+'" type="video/mp4"></video>',"light"===t?(hb.addClass(n,"light"),hb.removeClass(n,"dark")):(hb.addClass(n,"dark"),hb.removeClass(n,"light")),n.style.display="flex",window.frameElement||(document.body.style.overflowY="hidden"),setTimeout((()=>{hb.addClass(n,"active"),setTimeout((()=>{o.style.opacity=1}),450)}),10)}openExternalVideo(e,t,i){this.builder.preserveSelection=!0;let n=document.querySelector(".is-lightbox.lightbox-externalvideo");window.frameElement&&!n&&(n=parent.document.querySelector(".is-lightbox.lightbox-externalvideo"));const o=n.querySelector(".cmd-lightbox-close");o.style.opacity=0,i&&(n.style.backgroundColor=i),"light"===t?(hb.addClass(n,"light"),hb.removeClass(n,"dark")):(hb.addClass(n,"dark"),hb.removeClass(n,"light"));const s=n.querySelector("iframe");""!==(e=this.getIframeVideoUrl(e))&&s.setAttribute("src",e),n.style.display="flex",window.frameElement||(document.body.style.overflowY="hidden");const a=n.querySelector(".lightbox-content");a.style.width=16*a.offsetHeight/9+"px",setTimeout((()=>{hb.addClass(n,"active"),setTimeout((()=>{o.style.opacity=1}),450)}),10)}getIframeVideoUrl(e){let t=e.match(/^.*(?:https?:)?(?:\/\/)?(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube(?:-nocookie)?\.com\/\S*?[^\w\s-])((?!videoseries)[\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/),i=/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/)|(video\/))?([0-9]+)\/?/.exec(e);if((null!==t||null!==i)&&-1===e.indexOf("player.vimeo.com")&&-1===e.indexOf("youtube.com/embed/")){if(null!==t){e="https://www.youtube.com/embed/"+t[1]+"?rel=0&autoplay=1&color=white"}if(null!==i&&i.length>=7){e="https://player.vimeo.com/video/"+i[6]}}return e}}const fb=new ni;class mb{constructor(){let e=document.querySelectorAll(".is-tabs a");Array.prototype.forEach.call(e,(e=>{fb.addEventListener(e,"click",(t=>{const i=e.getAttribute("data-menu");if(i)return document.querySelector("#"+i).style.display="block",t.preventDefault(),!1;if(fb.hasClass(e,"active"))return t.preventDefault(),!1;const n=e.getAttribute("data-content");if(!n)return t.preventDefault(),!1;const o=e.parentNode.getAttribute("data-group");let s=document.querySelectorAll('.is-tabs[data-group="'+o+'"] > a');Array.prototype.forEach.call(s,(e=>{fb.removeClass(e,"active")})),s=document.querySelectorAll('.is-tabs-more[data-group="'+o+'"] > a'),Array.prototype.forEach.call(s,(e=>{fb.removeClass(e,"active")})),fb.addClass(e,"active");let a=document.querySelectorAll('.is-tab-content[data-group="'+o+'"]');return Array.prototype.forEach.call(a,(e=>{e.style.display="none"})),document.querySelector("#"+n).style.display="flex",document.querySelector(".is-tabs-more").style.display="none",t.preventDefault(),!1}))})),e=document.querySelectorAll(".is-tabs-more a"),Array.prototype.forEach.call(e,(e=>{fb.addEventListener(e,"click",(t=>{if(fb.hasClass(e,"active"))return t.preventDefault(),!1;const i=e.getAttribute("data-content");if(!i)return t.preventDefault(),!1;const n=e.parentNode.getAttribute("data-group");let o=document.querySelectorAll('.is-tabs[data-group="'+n+'"] > a');Array.prototype.forEach.call(o,(e=>{fb.removeClass(e,"active")})),o=document.querySelectorAll('.is-tabs-more[data-group="'+n+'"] > a'),Array.prototype.forEach.call(o,(e=>{fb.removeClass(e,"active")})),fb.addClass(e,"active");const s=document.querySelectorAll('.is-tab-content[data-group="'+n+'"]');return Array.prototype.forEach.call(s,(e=>{e.style.display="none"})),document.querySelector("#"+i)&&(document.querySelector("#"+i).style.display="flex"),document.querySelector(".is-tabs-more")&&(document.querySelector(".is-tabs-more").style.display="none"),t.preventDefault(),!1}))}));let t=!1;document.addEventListener("mousedown",(e=>{var i=(e=e||window.event).target||e.srcElement;let n=document.querySelectorAll(".is-tabs-more");if(Array.prototype.forEach.call(n,(e=>{"block"===e.style.display&&(t=!0)})),t){let e=fb.parentsHasAttribute(i,"data-menu"),t=fb.parentsHasClass(i,"is-tabs-more");e||t||document.querySelector(".is-tabs-more")&&(document.querySelector(".is-tabs-more").style.display="none")}})),document.addEventListener("click",(e=>{var i=(e=e||window.event).target||e.srcElement;if(t){let e=fb.parentsHasAttribute(i,"data-menu"),t=fb.parentsHasClass(i,"is-tabs-more");e||t||document.querySelector(".is-tabs-more")&&(document.querySelector(".is-tabs-more").style.display="none")}}))}}const vb=new ni;class bb{constructor(e={}){if(this.opts=Object.assign(this,{page:"",container:".container",row:"",cols:[],colequal:[],colsizes:[],imageQuality:.92,elementSelection:!0,paste:"text",snippetJSON:{snippets:[]},scriptPath:"",plugins:[],pluginPath:"contentbuilder/",disableConfig:!1,modulePath:"assets/modules/",assetPath:"assets/",fontAssetPath:"assets/fonts/",snippetData:"assets/minimalist-blocks/snippetlist.html",snippetUrl:"assets/minimalist-blocks/content.js",snippetPath:"assets/minimalist-blocks/",snippetPathReplace:[],snippetCategories:[[120,"Basic"],[118,"Article"],[101,"Headline"],[119,"Buttons"],[102,"Photos"],[103,"Profile"],[116,"Contact"],[104,"Products"],[105,"Features"],[106,"Process"],[107,"Pricing"],[108,"Skills"],[109,"Achievements"],[110,"Quotes"],[111,"Partners"],[112,"As Featured On"],[113,"Page Not Found"],[114,"Coming Soon"],[115,"Help, FAQ"]],defaultSnippetCategory:120,snippetHandle:!0,sidePanel:"right",snippetList:"#divSnippetList",onRender:function(){},onChange:function(){},largerImageHandler:"",mediaHandler:"",videoHandler:"",colors:["#ff8f00","#ef6c00","#d84315","#c62828","#58362f","#37474f","#353535","#f9a825","#9e9d24","#558b2f","#ad1457","#6a1b9a","#4527a0","#616161","#00b8c9","#009666","#2e7d32","#0277bd","#1565c0","#283593","#9e9e9e"],builderMode:"",rowTool:"right",rowcolOutline:!0,columnTool:!0,outlineMode:"",toolStyle:"",outlineStyle:"",snippetAddTool:!0,elementTool:!0,elementHighlight:!0,columnHtmlEditor:!0,rowHtmlEditor:!0,htmlSyntaxHighlighting:!0,snippetOpen:!1,toolbar:"top",toolbarDisplay:"auto",snippetsSidebarDisplay:"auto",imageEmbed:!0,imageselect:"",fileselect:"",imageSelect:"",fileSelect:"",videoSelect:"",assetRefresh:!1,customTags:[],buttons:["bold","italic","underline","formatting","color","align","textsettings","createLink","tags","|","undo","redo","zoom","more"],buttonsMore:["icon","image","|","list","font","formatPara","|","html","preferences"],elementButtons:["left","center","right","full","undo","redo","zoom","more"],elementButtonsMore:["|","html","preferences"],iconButtons:["icon","color","textsettings","createLink","|","undo","redo","zoom","more"],iconButtonsMore:["|","html","preferences"],lang:[],checkLang:!1,clearPreferences:!1,toolbarAddSnippetButton:!1,animateModal:!0,defaultFontSizes:[16,17,18,19,24,32,48,76,96,120,200,300],fontSizeClassValues:[12,14,15,16,17,18,19,21,24,28,32,35,38,42,46,48,50,54,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,348,352,356,360,364,368,372,376,380,384,388,392,396,400],gradientcolors:[["linear-gradient(0deg, rgb(255, 57, 25), rgb(249, 168, 37))"],["linear-gradient(0deg, rgb(255, 57, 25), rgb(255, 104, 15))"],["linear-gradient(0deg, #FF5722, #FF9800)"],["linear-gradient(0deg, #613ca2, rgb(110, 123, 217))"],["linear-gradient(0deg, rgb(65, 70, 206), rgb(236, 78, 130))"],["linear-gradient(0deg, rgb(0, 150, 102), rgb(90, 103, 197))"],["linear-gradient(30deg, rgb(249, 119, 148), rgb(98, 58, 162))"],["linear-gradient(0deg, rgb(223, 70, 137), rgb(90, 103, 197))"],["linear-gradient(0deg, rgb(40, 53, 147), rgb(90, 103, 197))"],["linear-gradient(0deg, rgb(21, 101, 192), rgb(52, 169, 239))"],["linear-gradient(0deg, rgb(32, 149, 219), rgb(139, 109, 230))"],["linear-gradient(0deg, rgb(90, 103, 197), rgb(0, 184, 201))"],["linear-gradient(0deg, rgb(0, 184, 201), rgb(253, 187, 45))"],["linear-gradient(0deg, rgb(255, 208, 100), rgb(239, 98, 159))"],["linear-gradient(0deg, rgb(0, 214, 223), rgb(130, 162, 253))"],["linear-gradient(0deg, rgb(50, 234, 251), rgb(248, 247, 126))"],["linear-gradient(0deg, rgb(141, 221, 255), rgb(255, 227, 255))"],["linear-gradient(0deg, rgb(255, 170, 170), rgb(255, 255, 200))"],["linear-gradient(0deg, rgb(239, 239, 239), rgb(252, 252, 252))"]],elementEditor:!0,customval:"",moduleConfig:[],elementAnimate:!1,framework:"",cellFormat:"",rowFormat:"",emailMode:!1,absolutePath:!1,emailSnippetCategories:[[1,"Logo"],[14,"Call to Action"],[2,"Title"],[3,"Title, Subtitle"],[4,"Info, Title"],[7,"Paragraph"],[6,"Heading"],[8,"Buttons"],[9,"Callouts"],[10,"Images + Caption"],[12,"Images"],[13,"List"],[15,"Pricing"],[16,"Quotes"],[17,"Profile"],[18,"Contact Info"],[19,"Footer"],[20,"Separator"]],defaultEmailSnippetCategory:14,undoRedoStyles:!1,maxEmbedImageWidth:1600,zoom:1,useLightbox:!1,imageRenameOnEdit:!0,disableAutoEmbedVideo:!1,colHeight:[300,350,400,450,500,550,600,650,700],cssClasses:{fontWeight:{thin:"font-thin",extralight:"font-extralight",light:"font-light",normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold",extrabold:"font-extrabold",black:"font-black",defaultBold:"font-semibold",defaultNormal:"font-light"},fontStyle:{italic:"italic",normal:"not-italic"},textDecoration:{underline:"underline",linethrough:"line-through",normal:"no-underline"},textTransform:{uppercase:"uppercase",lowercase:"lowercase",capitalize:"capitalize",normal:"normal-case"},tracking:{tracking__100:"tracking--100",tracking__075:"tracking--75",tracking__050:"tracking-tighter",tracking__025:"tracking-tight",tracking_000:"tracking-normal",tracking_025:"tracking-wide",tracking_050:"tracking-wider",tracking_075:"tracking-75",tracking_100:"tracking-widest",tracking_125:"tracking-125",tracking_150:"tracking-150",tracking_175:"tracking-175",tracking_200:"tracking-200",tracking_225:"tracking-225",tracking_250:"tracking-250",tracking_275:"tracking-275",tracking_300:"tracking-300",tracking_325:"tracking-325",tracking_350:"tracking-350",tracking_375:"tracking-375",tracking_400:"tracking-400",tracking_425:"tracking-425",tracking_450:"tracking-450",tracking_475:"tracking-475",tracking_500:"tracking-500"},leading:{leading_5:"leading-05",leading_6:"leading-06",leading_7:"leading-07",leading_8:"leading-08",leading_9:"leading-09",leading_10:"leading-none",leading_11:"leading-11",leading_12:"leading-12",leading_125:"leading-tight",leading_13:"leading-13",leading_1375:"leading-snug",leading_14:"leading-14",leading_15:"leading-normal",leading_16:"leading-16",leading_1625:"leading-relaxed",leading_17:"leading-17",leading_18:"leading-18",leading_19:"leading-19",leading_20:"leading-loose",leading_21:"leading-21",leading_22:"leading-22",leading_23:"leading-23",leading_24:"leading-24",leading_25:"leading-25",leading_26:"leading-26",leading_27:"leading-27",leading_28:"leading-28",leading_29:"leading-29",leading_30:"leading-30"},opacity:{opacity_0:"opacity-0",opacity_2:"opacity-2",opacity_4:"opacity-4",opacity_5:"opacity-5",opacity_6:"opacity-6",opacity_8:"opacity-8",opacity_10:"opacity-10",opacity_12:"opacity-12",opacity_15:"opacity-15",opacity_20:"opacity-20",opacity_25:"opacity-25",opacity_30:"opacity-30",opacity_35:"opacity-35",opacity_40:"opacity-40",opacity_45:"opacity-45",opacity_50:"opacity-50",opacity_55:"opacity-55",opacity_60:"opacity-60",opacity_65:"opacity-65",opacity_70:"opacity-70",opacity_75:"opacity-75",opacity_80:"opacity-80",opacity_85:"opacity-85",opacity_90:"opacity-90",opacity_95:"opacity-95",opacity_100:"opacity-100"},padding:{all:{p_0:"p-0",p_1:"p-1",p_2:"p-2",p_3:"p-3",p_4:"p-4",p_5:"p-5",p_6:"p-6",p_7:"p-7",p_8:"p-8",p_9:"p-9",p_10:"p-10",p_11:"p-11",p_12:"p-12",p_14:"p-14",p_16:"p-16",p_20:"p-20"},x:{px_0:"px-0",px_1:"px-1",px_2:"px-2",px_3:"px-3",px_4:"px-4",px_5:"px-5",px_6:"px-6",px_7:"px-7",px_8:"px-8",px_9:"px-9",px_10:"px-10",px_11:"px-11",px_12:"px-12",px_14:"px-14",px_16:"px-16",px_20:"px-20"},y:{py_0:"py-0",py_1:"py-1",py_2:"py-2",py_3:"py-3",py_4:"py-4",py_5:"py-5",py_6:"py-6",py_7:"py-7",py_8:"py-8",py_9:"py-9",py_10:"py-10",py_11:"py-11",py_12:"py-12",py_14:"py-14",py_16:"py-16",py_20:"py-20"},top:{pt_0:"pt-0",pt_1:"pt-1",pt_2:"pt-2",pt_3:"pt-3",pt_4:"pt-4",pt_5:"pt-5",pt_6:"pt-6",pt_7:"pt-7",pt_8:"pt-8",pt_9:"pt-9",pt_10:"pt-10",pt_11:"pt-11",pt_12:"pt-12",pt_14:"pt-14",pt_16:"pt-16",pt_20:"pt-20"},right:{pr_0:"pr-0",pr_1:"pr-1",pr_2:"pr-2",pr_3:"pr-3",pr_4:"pr-4",pr_5:"pr-5",pr_6:"pr-6",pr_7:"pr-7",pr_8:"pr-8",pr_9:"pr-9",pr_10:"pr-10",pr_11:"pr-11",pr_12:"pr-12",pr_14:"pr-14",pr_16:"pr-16",pr_20:"pr-20"},bottom:{pb_0:"pb-0",pb_1:"pb-1",pb_2:"pb-2",pb_3:"pb-3",pb_4:"pb-4",pb_5:"pb-5",pb_6:"pb-6",pb_7:"pb-7",pb_8:"pb-8",pb_9:"pb-9",pb_10:"pb-10",pb_11:"pb-11",pb_12:"pb-12",pb_14:"pb-14",pb_16:"pb-16",pb_20:"pb-20"},left:{pl_0:"pl-0",pl_1:"pl-1",pl_2:"pl-2",pl_3:"pl-3",pl_4:"pl-4",pl_5:"pl-5",pl_6:"pl-6",pl_7:"pl-7",pl_8:"pl-8",pl_9:"pl-9",pl_10:"pl-10",pl_11:"pl-11",pl_12:"pl-12",pl_14:"pl-14",pl_16:"pl-16",pl_20:"pl-20"}},extend:{superscript:"sup",subscript:"sub"},textAlign:{left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"},display:{flex:"flex",block:"block",inline:"inline",inline_block:"inline-block"},flexDirection:{row:"flex-row",column:"flex-col",row_reverse:"flex-row-reverse",column_reverse:"flex-col-reverse"},flexWrap:{wrap:"flex-wrap",nowrap:"flex-nowrap",wrap_reverse:"flex-wrap-reverse"},justifyContent:{start:"justify-start",end:"justify-end",center:"justify-center",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},alignItems:{start:"items-start",end:"items-end",center:"items-center",baseline:"items-baseline",stretch:"items-stretch"}},useCssClasses:!0,useButtonPlugin:!1},e),window.data_basic&&(this.opts.snippetJSON=window.data_basic,""===this.opts.snippetPath&&(this.opts.snippetPath=window._snippets_path)),this.opts.snippetDisplay&&("auto"===this.opts.snippetDisplay?this.opts.snippetsSidebarDisplay="auto":this.opts.snippetsSidebarDisplay="always"),""===this.opts.scriptPath&&(this.opts.scriptPath=this.currentScriptPath()),window._txt&&(this.opts.lang=window._txt),this.settings=this.opts,""!==this.opts.imageSelect?this.opts.imageselect=this.opts.imageSelect:""!==this.opts.imageselect&&(this.opts.imageSelect=this.opts.imageselect),""!==this.opts.fileSelect?this.opts.fileselect=this.opts.fileSelect:""!==this.opts.fileselect&&(this.opts.fileSelect=this.opts.fileselect),""!==this.opts.videoSelect?this.opts.videoselect=this.opts.videoSelect:""!==this.opts.videoselect&&(this.opts.videoSelect=this.opts.videoselect),""!==this.opts.largerImageHandler?this.opts.mediaHandler=this.opts.largerImageHandler:""!==this.opts.mediaHandler&&(this.opts.largerImageHandler=this.opts.mediaHandler),this.opts.onLargerImageUpload?this.opts.onMediaUpload=this.opts.onLargerImageUpload:this.opts.onMediaUpload&&(this.opts.onLargerImageUpload=this.opts.onMediaUpload),this.opts.emailMode&&(this.useButtonPlugin=!0),!this.useButtonPlugin){let e=this.plugins.filter((e=>"buttoneditor"!==e.name));this.plugins=[...e]}"bootstrap"===this.opts.framework?(this.opts.row="row",this.opts.cols=["col-md-1","col-md-2","col-md-3","col-md-4","col-md-5","col-md-6","col-md-7","col-md-8","col-md-9","col-md-10","col-md-11","col-md-12"],this.opts.colequal=[],this.opts.colsizes=[]):"tailwind"===this.opts.framework?(this.opts.row="flex flex-col md:flex-row",this.opts.cols=["w-full md:w-1/12 px-4","w-full md:w-2/12 px-4","w-full md:w-3/12 px-4","w-full md:w-4/12 px-4","w-full md:w-5/12 px-4","w-full md:w-6/12 px-4","w-full md:w-7/12 px-4","w-full md:w-8/12 px-4","w-full md:w-9/12 px-4","w-full md:w-10/12 px-4","w-full md:w-11/12 px-4","w-full px-4"],this.opts.colequal=[],this.opts.colsizes=[]):"foundation"===this.opts.framework?(this.opts.row="row",this.opts.cols=["large-1 columns","large-2 columns","large-3 columns","large-4 columns","large-5 columns","large-6 columns","large-7 columns","large-8 columns","large-9 columns","large-10 columns","large-11 columns","large-12 columns"],this.opts.colequal=[],this.opts.colsizes=[]):"material"===this.opts.framework?(this.opts.row="mdl-grid",this.opts.cols=["mdl-cell mdl-cell--1-col","mdl-cell mdl-cell--2-col","mdl-cell mdl-cell--3-col","mdl-cell mdl-cell--4-col","mdl-cell mdl-cell--5-col","mdl-cell mdl-cell--6-col","mdl-cell mdl-cell--7-col","mdl-cell mdl-cell--8-col","mdl-cell mdl-cell--9-col","mdl-cell mdl-cell--10-col","mdl-cell mdl-cell--11-col","mdl-cell mdl-cell--12-col"],this.opts.colequal=[],this.opts.colsizes=[]):"uikit"===this.opts.framework?(this.opts.row="",this.opts.cols=[],this.opts.colequal=[],this.opts.colsizes=[],this.opts.cellFormat='<div class="uk-width-1-1"></div>',this.opts.rowFormat='<div class="uk-grid"></div>'):""!==this.opts.row&&this.opts.cols.length>0||""===this.opts.cellFormat&&""===this.opts.rowFormat&&(this.opts.row="row clearfix",this.opts.cols=["column sixth","column fifth","column fourth","column third","column half","column two-third","column two-fourth","column two-fifth","column two-sixth","column full"],this.opts.colequal=[["column sixth","column sixth","column sixth","column sixth","column sixth","column sixth"],["column fifth","column fifth","column fifth","column fifth","column fifth"],["column fourth","column fourth","column fourth","column fourth"],["column third","column third","column third"],["column half","column half"]],this.opts.colsizes=[[["column third","column third","column third"],["column half","column fourth","column fourth"]],[["column sixth","column two-sixth"],["column fifth","column two-fifth"],["column fourth","column two-fourth"],["column third","column two-third"],["column half","column half"],["column two-third","column third"],["column two-fourth","column fourth"],["column two-fifth","column fifth"],["column two-sixth","column sixth"]]]),this.sortableObjects=[];const t=new ii(this);this.util=t,this.isTouchSupport=t.isTouchSupport(),this.isIE=t.detectIE(),this.opts.clearPreferences&&t.clearPreferences(),this.uoTm=null,this.uo=new Vo(this),this.dom=vb,this.cbDom=vb,this.autoclean=!1,this.filesAdded="",this.opts.emailMode&&this.applyStyle("emailmode",".is-builder > div {display: block}");let i=document.querySelector("#_cbhtml");i||(i=vb.createElement("div"),i.id="_cbhtml",i.className="is-ui",vb.appendChild(document.body,i)),this.builderStuff=i,Ko(),this.preferences=new nb(this),(e=>{const t=e.util,i=e.builderStuff,n=new ts(e),o=new Wo(e);let s="";e.opts.rowHtmlEditor&&(s=`<button title="${t.out("HTML")}" class="row-html">\n <svg class="is-icon-flex" style="margin-right:-3px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-right"></use></svg>\n </button>`);let a="";e.opts.columnHtmlEditor&&(a=`<button title="${t.out("HTML")}" class="cell-html">\n <svg class="is-icon-flex" style="margin-right:-3px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:12px;height:12px;"><use xlink:href="#ion-ios-arrow-right"></use></svg>\n </button>`);const r=`<div class="is-modal is-modal-content grideditor">\n <div class="is-modal-bar is-draggable">\n <div class="is-modal-close" role="button" tabindex="0" title="${t.out("Close")}">&#10005;</div>\n </div>\n <div style="padding:13px 0 5px 18px;font-size:10px;text-transform:uppercase;letter-spacing:1px;">${t.out("Row")}</div>\n <div style="display:flex;flex-flow:wrap;">\n <button title="${t.out("Add")}" class="row-add"><svg class="is-icon-flex" style="width:19px;height:19px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n <button title="${t.out("Duplicate")}" class="row-duplicate" style="display: block;"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>\n <button title="${t.out("Move Up")}" class="row-up" style="display: block;"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></button>\n <button title="${t.out("Move Down")}" class="row-down" style="display: block;"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></button>\n ${s}\n <button title="${t.out("Delete")}" class="row-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n </div>\n <div style="padding:8px 0 5px 18px;font-size:11px;text-transform:uppercase;letter-spacing:1px;">${t.out("Column")}</div>\n <div style="display:flex;flex-flow:wrap;">\n <button title="${t.out("Add")}" class="cell-add"><svg class="is-icon-flex" style="width:19px;height:19px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>\n <button title="${t.out("Duplicate")}" class="cell-duplicate"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>\n <button title="${t.out("Move Up")}" class="cell-up"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></button>\n <button title="${t.out("Move Down")}" class="cell-down"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></button>\n <button title="${t.out("Move Left")}" class="cell-prev"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-left"></use></svg></button>\n <button title="${t.out("Move Right")}" class="cell-next"><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-right"></use></svg></button>\n <button title="${t.out("Increase")}" class="cell-increase"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-increase"></use></svg></button>\n <button title="${t.out("Decrease")}" class="cell-decrease"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-decrease"></use></svg></button>\n ${a}\n <button title="${t.out("Delete")}" class="cell-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>\n <button title="${t.out("Lock")}" class="cell-locking"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#icon-lock"></use></svg></button>\n <button title="${t.out("Column Settings")}" class="cell-settings"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></button>\n \n <div class="is-separator">\n <button title="${t.out("Outline")}" class="grid-outline"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-grid-view-outline"></use></svg></button>\n \x3c!--<button title="${t.out("Element Tool")}" class="cell-elmtool"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></button>--\x3e\n </div>\n </div>\n </div>`;hs.appendHtml(i,r),new ps({selector:".is-draggable"});const l=document.querySelector(".grideditor");document.addEventListener("click",(e=>{var t=(e=e||window.event).target||e.srcElement;if(hs.hasClass(l,"active")){let e=hs.parentsHasClass(t,"is-builder"),i=hs.parentsHasClass(t,"grideditor"),n=hs.parentsHasClass(t,"is-modal"),o=hs.parentsHasClass(t,"is-pop"),s=hs.parentsHasClass(t,"rte-grideditor")||hs.hasClass(t,"rte-grideditor");if(e||i||n||o||s)return void(l.style.display="");l.style.display="none"}}),!1);let d=l.querySelector(".is-modal-close");hs.addEventListener(d,"click",(()=>{hs.removeClass(l,"active");const t=document.querySelectorAll(e.opts.container);Array.prototype.forEach.call(t,(e=>{e.removeAttribute("grideditor")}))}));const c=l.querySelector(".grid-outline");hs.addEventListener(c,"click",(()=>{const t=document.querySelectorAll(e.opts.container);Array.prototype.forEach.call(t,(e=>{e.hasAttribute("gridoutline")?(e.removeAttribute("gridoutline"),hs.removeClass(c,"on")):(e.setAttribute("gridoutline",""),hs.addClass(c,"on"))}))}));const u=Jo(e);d=l.querySelector(".cell-add"),hs.addEventListener(d,"click",(()=>{u.querySelector(".is-pop-tabs").style.display="flex";const e=l.querySelector(".cell-add"),t=e.getBoundingClientRect().top+window.pageYOffset,i=e.getBoundingClientRect().left+window.pageXOffset;u.style.display="flex";const n=u.offsetWidth;u.style.top=t+"px",u.style.left=i-n-8+"px",hs.removeClass(u,"arrow-bottom"),hs.removeClass(u,"arrow-left"),hs.removeClass(u,"arrow-top"),hs.removeClass(u,"center"),hs.removeClass(u,"left"),hs.addClass(u,"arrow-right"),hs.addClass(u,"right"),"left"===u.querySelector(".active").getAttribute("data-value")?u.setAttribute("data-mode","cell-left"):u.setAttribute("data-mode","cell-right")})),d=l.querySelector(".cell-prev"),hs.addEventListener(d,"click",(()=>{n.moveColumnPrevious(),t.clearControls()})),d=l.querySelector(".cell-next"),hs.addEventListener(d,"click",(()=>{n.moveColumnNext(),t.clearControls()})),d=l.querySelector(".cell-increase"),hs.addEventListener(d,"click",(()=>{n.increaseColumn(),t.clearControls()})),d=l.querySelector(".cell-decrease"),hs.addEventListener(d,"click",(()=>{n.decreaseColumn(),t.clearControls()})),d=l.querySelector(".cell-up"),hs.addEventListener(d,"click",(()=>{n.moveColumnUp(),t.clearControls()})),d=l.querySelector(".cell-down"),hs.addEventListener(d,"click",(()=>{n.moveColumnDown(),t.clearControls()})),d=l.querySelector(".cell-duplicate"),hs.addEventListener(d,"click",(()=>{n.duplicateColumn(),t.clearControls()})),d=l.querySelector(".cell-remove"),hs.addEventListener(d,"click",(()=>{n.removeColumn(),t.clearControls()})),d=l.querySelector(".cell-html"),d&&hs.addEventListener(d,"click",(()=>{t.cellSelected()&&o.view("cell")})),d=l.querySelector(".cell-settings"),d&&hs.addEventListener(d,"click",(()=>{const i=t.cellSelected();if(!i)return;e.colTool.readCellStyles(i),t.saveSelection();const n=document.querySelector(".is-modal.columnsettings");t.showModal(n,!1,(()=>{"flex"===e.builderStuff.querySelector(".is-rte-tool").style.display&&t.restoreSelection()}))}));const p=l.querySelector(".cell-locking");p&&hs.addEventListener(p,"click",(i=>{let n=t.cellSelected();n&&(n.hasAttribute("data-noedit")?(n.removeAttribute("data-noedit"),n.contentEditable=!0,hs.removeClass(p,"on")):(n.setAttribute("data-noedit",""),n.contentEditable=!1,hs.addClass(p,"on"),t.clearActiveElement(!0)),e.colTool.showHideLockIndicator(n),e.element.applyBehavior(n),i.preventDefault())})),d=l.querySelector(".row-add"),hs.addEventListener(d,"click",(()=>{u.querySelector(".is-pop-tabs").style.display="none";const e=l.querySelector(".row-add"),t=e.getBoundingClientRect().top+window.pageYOffset,i=e.getBoundingClientRect().left+window.pageXOffset;u.style.display="flex";const n=u.offsetWidth;u.style.top=t+"px",u.style.left=i-n-8+"px",hs.removeClass(u,"arrow-bottom"),hs.removeClass(u,"arrow-left"),hs.removeClass(u,"arrow-top"),hs.removeClass(u,"center"),hs.removeClass(u,"left"),hs.addClass(u,"arrow-right"),hs.addClass(u,"right"),u.setAttribute("data-mode","row")})),d=l.querySelector(".row-up"),hs.addEventListener(d,"click",(()=>{n.moveRowUp(),t.clearControls()})),d=l.querySelector(".row-down"),hs.addEventListener(d,"click",(()=>{n.moveRowDown(),t.clearControls()})),d=l.querySelector(".row-duplicate"),hs.addEventListener(d,"click",(()=>{n.duplicateRow(),t.clearControls()})),d=l.querySelector(".row-remove"),hs.addEventListener(d,"click",(()=>{n.removeRow(),t.clearControls()})),d=l.querySelector(".row-html"),d&&hs.addEventListener(d,"click",(()=>{t.cellSelected()&&o.view("row")}))})(this),this.preview=!1;const n=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(n,(e=>{vb.hasClass(e,"preview")&&(this.preview=!0)})),this.preview||this.opts.snippetJSON.snippets.length>0&&yr(this),this.colTool=new Ev(this);var o=this.opts.onChange;if(this.opts.onChange=()=>{var e=o.apply(this,arguments);return this.activeCol&&this.util.repositionColumnTool(),this.elmTool.repositionElementTool(!0),this.element.image.imageTool.style.display="",this.element.module.moduleTool.style.display="",this.colTool.lockIndicator.style.display="",e},this.elmTool=new tb(this),this.element=new tv(this),this.rte=new rb(this),this.tooltip=new ub(this),this.lightbox=new gb(this),this.preview||this.applyBehavior(),!this.preview)if(this.opts.plugins.length>0)this.loadPlugins();else if(void 0===this.opts.scriptPath&&""===this.opts.pluginPath);else if(!this.opts.disableConfig){let e=this.opts.scriptPath+"config.js";""!==this.opts.pluginPath&&(e=this.opts.pluginPath+"config.js"),this.loadScript(e).then((()=>{this.opts.plugins.length>0&&this.loadPlugins()}),(()=>{console.log("Fail to load config")}))}new mb,this.colorPicker=new rv({lang:this.opts.lang,colors:this.opts.colors}),this.colorClassPicker=new sb({lang:this.opts.lang}),document.addEventListener("click",this.doDocumentClick=e=>{let i,n=(e=e||window.event).target||e.srcElement;if(!n)return;n.parentNode&&(i=vb.hasClass(n.parentNode,"is-builder"));let o=vb.hasClass(n,"is-builder"),s=!1,a=!1,r=!1,l=!1,d=!1,c=!1,u=!1,p=!1,h=!1,g=!1,f=!1,m=!1,v=!1,b=!1,y=n;for(;y&&y.tagName&&"BODY"!==y.tagName&&"HTML"!==y.tagName;){if(vb.hasClass(y,"is-builder")&&(s=!0),vb.hasClass(y,"is-modal")&&(a=!0),vb.hasClass(y,"is-side")&&(r=!0),vb.hasClass(y,"is-pop")&&(l=!0),vb.hasClass(y,"is-tool")&&(d=!0),(vb.hasClass(y,"is-rte-tool")||vb.hasClass(y,"is-elementrte-tool"))&&(c=!0),vb.hasClass(y,"is-rte-pop")&&(u=!0),vb.hasClass(y,"row-add-initial")&&(p=!0),(vb.hasClass(y,"sl-wrapper")||vb.hasClass(y,"sl-overlay")||vb.hasClass(y,"sl-close"))&&(h=!0),(vb.hasClass(y,"is-selectbox")||vb.hasClass(y,"is-selectbox-options"))&&(g=!0),this.opts.specialElementClasses)for(let e=0;e<this.opts.specialElementClasses.length;e++)vb.hasClass(y,this.opts.specialElementClasses[e])&&(b=!0);"divImageTool"===y.id&&(f=!0),"divImageResizer"===y.id&&(m=!0),this.preserveSelection&&(v=!0),y=y.parentNode}if(!g){let e=document.querySelectorAll(".is-selectbox-options");Array.prototype.forEach.call(e,(e=>{e.style.display="none"}))}let _=!1,x=document.querySelector("#divImageResizer");if(x&&"1"===x.getAttribute("data-resized")&&(_=!0),!_){if(!(a||h||f||m||"img"===n.tagName.toLowerCase())){document.querySelector("#divImageTool").style.display="",this.activeImage=null;let e=document.querySelector("#divImageResizer");e.style.display="none",e.style.top="-10px",e.style.left="-10px",e.style.width="1px",e.style.height="1px",this.moveable.updateRect(),document.querySelector(".moveable-control-box").style.display="none"}if((!(s||a||r||l||d||c||u||p||h||v||b)||i&&!p||o)&&(vb.getSelected()||(t.clearActiveCell(),t.clearControls())),this.activeLinkButton||this.activeButton||n.closest(".buttoneditor")||n.closest(".link-button-edit")||n.closest(".is-modal")||this.element.hyperlink.buttonEditor.hide(),!l&&!vb.parentsHasId(n,"_cbhtml")){const e=document.querySelectorAll(".is-pop");Array.prototype.forEach.call(e,(e=>{vb.parentsHasId(e,"_cbhtml")||(e.style.display="")}))}}}),document.addEventListener("mousedown",this.doDocumentMousedown=e=>{var i=(e=e||window.event).target||e.srcElement;vb.parentsHasClass(i,"row-handle")&&t.clearControls()}),document.addEventListener("keydown",this.doDocumentKeydown=e=>{90===e.which&&(e.ctrlKey||e.metaKey)&&(e.shiftKey?this.uo.doRedo():e.altKey||this.uo.doUndo()),89===e.which&&e.ctrlKey&&(e.altKey||this.uo.doRedo())}),document.body.addEventListener("mscontrolselect",(function(e){e.preventDefault()})),window._cb=this,window.applyLargerImage=this.applyLargerImage,window.returnUrl=this.returnUrl,window.selectFile=this.selectFile.bind(this),window.selectImage=this.selectImage.bind(this),window.selectVideo=this.selectVideo.bind(this),window.selectAsset=this.selectAsset.bind(this),window.imageLoaded=this.imageLoaded.bind(this),window.assetType=this.assetType.bind(this)}static run(e={}){return new bb(e)}setZoom(){if(""!==this.opts.page){const e=document.querySelector(this.opts.page);e.style.transform=`scale(${this.opts.zoom})`,this.setZoomOnControl(e)}else{document.querySelectorAll(this.opts.container).forEach((e=>{let t=!1;e.style.transform||(t=!0),t&&(e.style.transition="none"),e.style.transform=`scale(${this.opts.zoom})`,t&&setTimeout((()=>{e.style.transition=""}),300),this.setZoomOnControl(e)}))}}setZoomOnControl(e){e.querySelectorAll(".is-row-tool").forEach((e=>{e.style.transform=`scale(${1/this.opts.zoom})`,e.style.transformOrigin="top"}));e.querySelectorAll(".is-rowadd-tool button").forEach((e=>{e.style.transform=`scale(${1/this.opts.zoom})`}))}setZoomOnArea(){if(""!==this.opts.page){document.querySelector(this.opts.page).style.transform=`scale(${this.opts.zoom})`}else{document.querySelectorAll(this.opts.container).forEach((e=>{let t=!1;e.style.transform||(t=!0),t&&(e.style.transition="none"),e.style.transform=`scale(${this.opts.zoom})`,t&&setTimeout((()=>{e.style.transition=""}),300)}))}}applyBehavior(){null!==localStorage.getItem("_zoom")&&(this.opts.zoom=localStorage.getItem("_zoom")),this.rte.rteZoomSlider.value=100*this.opts.zoom;const e=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(e,(e=>{this.applyBehaviorOn(e),this.contentReformatOn(e)})),this.opts.onRender(),this.setZoomOnArea()}contentReformatOn(e){this.opts.useCssClasses&&vb.contentReformat(e,this.opts.cssClasses)}applyBehaviorOn(e){const t=this.util;if(this.opts.absolutePath){let t=e.querySelectorAll("a");Array.prototype.forEach.call(t,(e=>{let t=e.href;e.setAttribute("href",t)}));let i=e.querySelectorAll("img");Array.prototype.forEach.call(i,(e=>{let t=e.src;e.setAttribute("src",t)}))}vb.addClass(e,"is-builder"),this.preferences.initBuilder(e);if(vb.elementChildren(e).forEach((e=>{if(vb.hasClass(e,"row-add-initial"))return;(e.style.marginLeft||e.style.marginRight)&&(e.style.border="none"),this.rowtool=new nv(this),this.rowtool.render(e);new sv(this).render(e);vb.elementChildren(e).forEach((e=>{if(vb.hasClass(e,"is-row-tool")||vb.hasClass(e,"is-rowadd-tool"))return;"readonly"===e.getAttribute("data-mode")&&(e.setAttribute("data-noedit",""),e.removeAttribute("data-mode")),"readonly-protected"===e.getAttribute("data-mode")&&(e.setAttribute("data-protected",""),e.removeAttribute("data-mode"));let t=!1;e.hasAttribute("data-noedit")&&(t=!0);let i=!1;e.hasAttribute("data-protected")&&(i=!0);let n=!1;if(e.hasAttribute("data-html")&&(n=!0),!n&&!t&&!i){const t=e.innerText.trim();(e.querySelectorAll("p,h1,h2,h3,h4,h5,h6,table,ul,ol,pre,blockquote,code,figcaption,label,legend,button,a,span").length>0||""!==t)&&(e.contentEditable=!0)}this.element.applyBehavior(e),e.getAttribute("data-click")||(e.addEventListener("click",this.handleCellClick.bind(this,e)),e.addEventListener("keydown",this.handleCellKeypress.bind(this)),e.addEventListener("keydown",this.handleCellKeydown.bind(this,e)),e.addEventListener("keyup",this.handleCellKeyup.bind(this,e)),e.addEventListener("paste",this.handleCellPaste.bind(this)),e.setAttribute("data-click",!0))}))})),!e.getAttribute("data-sort")&&!e.hasAttribute("nogrid")){let i=new Za(e,{scroll:!0,group:"shared",direction:"dummy",animation:300,handle:".row-handle",sort:!0,onStart:()=>{this.uo.saveForUndo(),this.colTool.hideColumnTool(),this.elmTool.hide()},onEnd:()=>{this.opts.emailMode||vb.hasClass(this.activeCol.parentNode,"row-outline")&&(this.colTool.refreshColumnTool(this.activeCol),this.colTool.showColumnTool(this.activeCol)),this.util.checkEmpty()},onAdd:i=>{var n=i.item;if(n.getAttribute("data-id")){let i=n.getAttribute("data-id");const g=this.opts.snippetJSON.snippets.filter((e=>e.id+""===i&&e));var o,s=g[0].html,a=g[0].noedit;o=-1===s.indexOf("row clearfix"),this.opts.emailMode&&(o=!1);var r=this.opts.row,l=this.opts.cols;if(""!==r&&12===l.length&&(s=(s=(s=(s=(s=(s=(s=(s=(s=(s=(s=s.replace(new RegExp("row clearfix","g"),r)).replace(new RegExp("column full","g"),l[11])).replace(new RegExp("column half","g"),l[5])).replace(new RegExp("column third","g"),l[3])).replace(new RegExp("column fourth","g"),l[2])).replace(new RegExp("column fifth","g"),l[1])).replace(new RegExp("column sixth","g"),l[1])).replace(new RegExp("column two-third","g"),l[7])).replace(new RegExp("column two-fourth","g"),l[8])).replace(new RegExp("column two-fifth","g"),l[9])).replace(new RegExp("column two-sixth","g"),l[9])),s=s.replace(/{id}/g,t.makeId()),this.opts.onAdd&&(s=this.opts.onAdd(s)),this.opts.snippetPathReplace.length>0&&""!==this.opts.snippetPathReplace[0]){var d=new RegExp(this.opts.snippetPathReplace[0],"g");s=s.replace(d,this.opts.snippetPathReplace[1]);var c=this.opts.snippetPathReplace[0].replace(/\//g,"%2F"),u=this.opts.snippetPathReplace[1].replace(/\//g,"%2F"),p=new RegExp(c,"g");s=s.replace(p,u)}if(o)s=`<div class="${this.opts.row}"><div class="${this.opts.cols[this.opts.cols.length-1]}"${a?" data-noedit":""}>${s}</div></div>`,n.removeAttribute("draggable"),vb.removeClass(n,"snippet-item"),n.outerHTML=s;else{let e=vb.createElement("div");e.innerHTML=s;let i=e.querySelectorAll("[data-html]");Array.prototype.forEach.call(i,(e=>{s=(s=decodeURIComponent(e.getAttribute("data-html"))).replace(/{id}/g,t.makeId());for(var i=1;i<=20;i++)s=s.replace("[%HTML"+i+"%]",void 0===e.getAttribute("data-html-"+i)?"":decodeURIComponent(e.getAttribute("data-html-"+i)));e.innerHTML=s})),s=e.innerHTML,n.removeAttribute("draggable"),vb.removeClass(n,"snippet-item"),n.innerHTML="";var h=document.createRange();h.setStart(n,0),n.appendChild(h.createContextualFragment(s)),n.outerHTML=n.innerHTML}this.applyBehaviorOn(e),this.opts.onChange(),this.elmTool.hide()}}});this.sortableObjects.push(i),e.setAttribute("data-sort",!0)}const i=e.querySelectorAll(".is-subblock");Array.prototype.forEach.call(i,(e=>{e.contentEditable=!0})),this.util.checkEmptyOn(e),this.setZoomOnControl(e)}html(e){const t=this.util,i=new Wo(this);if(e);else{const i=document.querySelectorAll(this.opts.container);if(i.length>1){const n=t.cellSelected();e=n?n.parentNode.parentNode:i[0]}else e=i[0];if(""!==this.opts.page){const t=document.querySelector(this.opts.page);t&&(e=t)}}this.cleanHtmlFormatting=!0;let n=i.readHtml(e);return this.cleanHtmlFormatting=!1,n}viewHtmlNormal(){new Wo(this).viewHtmlNormal()}viewHtmlLarger(){new Wo(this).viewHtmlLarger()}readHtml(e,t,i){return new Wo(this).readHtml(e,t,i)}fromViewToActual(e){return new Wo(this).fromViewToActual(e)}colorpicker(e,t){return new rv({onPick:e,color:t,colors:this.opts.colors,animateModal:this.opts.animateModal,elementToAnimate:this.opts.container,lang:this.opts.lang})}gradientpicker(){return new _v({gradientcolors:this.opts.gradientcolors,colors:this.opts.colors,animateModal:this.opts.animateModal,elementToAnimate:this.opts.container,lang:this.opts.lang})}dropdown(e,t){new fs(e,t)}simpleColorPicker(e,t){return this.colorClassPicker.open(e,t)}destroy(){if(document.removeEventListener("click",this.doDocumentClick,!1),document.removeEventListener("keydown",this.doDocumentKeydown,!1),document.removeEventListener("mousedown",this.doDocumentMousedown,!1),this.util.clearControls(),!this.util.builderStuff())return;const e=new Wo(this),t=document.querySelectorAll(this.opts.container);if(Array.prototype.forEach.call(t,(t=>{t.innerHTML=e.readHtml(t,!0)})),Array.prototype.forEach.call(t,(e=>{e.removeAttribute("data-sort"),vb.removeClass(e,"is-builder")})),Array.prototype.forEach.call(this.sortableObjects,(e=>{try{e.destroy()}catch(e){}})),this.moveable.destroy(),this.builderStuff.parentNode.removeChild(this.builderStuff),this.builderStuff=null,""!==this.opts.page){document.querySelector(this.opts.page).style.transform=""}else{document.querySelectorAll(this.opts.container).forEach((e=>{e.style.transform=""}))}}saveImages(e,t,i){new db({page:this.opts.page,container:this.opts.container,customval:this.opts.customval,handler:e,onComplete:t,onBase64Upload:i||null}).save()}clearFont(){this.rte.clearFont()}applyFont(e,t,i){this.rte.applyFont(e,t,i)}setFont(e,t,i,n){this.rte.setFont(e,t,i,n)}addIcon(e){this.rte.addIcon(e)}applyLargerImage(e){let t=document.querySelectorAll(".form-upload-larger");Array.prototype.forEach.call(t,(t=>{vb.hasClass(t,"please-wait")&&(vb.removeClass(t,"please-wait"),t.parentNode.parentNode.querySelector('input[type="text"]').value=e,t.parentNode.parentNode.querySelector('input[type="file"]').value="")}))}returnUrl(e){let t=document.querySelectorAll(".form-upload-larger");Array.prototype.forEach.call(t,(t=>{vb.hasClass(t,"please-wait")&&(vb.removeClass(t,"please-wait"),t.parentNode.parentNode.querySelector('input[type="text"]').value=e,t.parentNode.parentNode.querySelector('input[type="file"]').value="")})),this.opts.assetRefresh=!0}openImagePicker(e,t){this.colTool.openImagePicker(e,t)}openImageAdjust(e){this.colTool.openImageAdjust(e)}selectFile(e){this.selectAsset(e)}selectImage(e){this.selectAsset(e)}selectVideo(e){this.selectAsset(e)}selectAsset(e){let t=e.split(".").pop();t=t.toLowerCase();let i=!1;if("all"===this.targetAssetType?i=!0:"media"===this.targetAssetType?"jpg"===t||"jpeg"===t||"png"===t||"gif"===t||"webm"===t||"mp4"===t?i=!0:alert(this.util.out("Please select an image or video file.")):"image"===this.targetAssetType?"jpg"===t||"jpeg"===t||"png"===t||"gif"===t||"webm"===t?i=!0:alert(this.util.out("Please select an image file.")):"video"===this.targetAssetType&&("mp4"===t?i=!0:alert(this.util.out("Please select an mp4 file."))),i){this.targetInput.value=e,"inpCellLinkSource"===this.targetInput.id&&this.targetCallback();let t=document.querySelector(".is-modal.videoselect");vb.removeClass(t,"active"),t=document.querySelector(".is-modal.imageselect"),vb.removeClass(t,"active"),t=document.querySelector(".is-modal.fileselect"),vb.removeClass(t,"active")}}assetType(){return this.targetAssetType}openAsset(e,t,i){if("media"===t&&(this.opts.onFileSelectClick||this.opts.onImageSelectClick))this.opts.onFileSelectClick?this.opts.onFileSelectClick({targetInput:e,theTrigger:i}):this.opts.onImageSelectClick({targetInput:e,theTrigger:i});else if("video"===t&&this.opts.onVideoSelectClick)this.opts.onVideoSelectClick({targetInput:e,theTrigger:i});else if("image"===t&&this.opts.onImageSelectClick)this.opts.onImageSelectClick({targetInput:e,theTrigger:i});else if("all"===t&&this.opts.onFileSelectClick)this.opts.onFileSelectClick({targetInput:e,theTrigger:i});else{let i,n;"media"===t?(n=this.builderStuff.querySelector(".is-modal.fileselect"),i=n.querySelector("iframe"),"about:blank"===i.src&&(i.src=this.opts.fileSelect)):"video"===t?(n=this.builderStuff.querySelector(".is-modal.videoselect"),i=n.querySelector("iframe"),"about:blank"===i.src&&(i.src=this.opts.videoSelect)):"image"===t?(n=this.builderStuff.querySelector(".is-modal.imageselect"),i=n.querySelector("iframe"),"about:blank"===i.src&&(i.src=this.opts.imageSelect)):"all"===t&&(n=this.builderStuff.querySelector(".is-modal.fileselect"),i=n.querySelector("iframe"),"about:blank"===i.src&&(i.src=this.opts.fileSelect)),this.util.showModal(n),this.targetInput=e,this.targetCallback=null,this.targetAssetType=t}}LightenDarkenColor(e,t){return this.util.LightenDarkenColor(e,t)}pickColor(e,t){new rv({colors:this.opts.colors,animateModal:!1,lang:this.opts.lang}).open(e,t)}addSnippet(e,t,i){this.util.addSnippet(e,t,i)}viewSnippets(){this.rte.viewSnippets()}saveForUndo(e){this.uo.saveForUndo(e)}imageLoaded(e){e.removeAttribute("onload"),this.activeCol&&this.colTool.refreshColumnTool(this.activeCol)}getActiveModule(){return document.querySelector("[data-module-active]")}getModuleSettings(){let e=document.querySelector("[data-module-active]");return decodeURIComponent(e.getAttribute("data-settings"))}setModuleHtml(e){document.querySelector("#hidContentModuleCode").value=e}setModuleSettings(e){document.querySelector("#hidContentModuleSettings").value=e}makeId(){return this.util.makeId()}setTooltip(e){this.tooltip.setAll(e)}loadPlugins(){if(!this.builderStuff)return;if(void 0===this.opts.scriptPath&&""===this.opts.pluginPath)return;if(this.numOfPlugins=0,"string"==typeof this.opts.plugins[0])return void this.loadPluginsOldWay();const e=this.builderStuff.querySelector(".is-rte-tool"),t=this.builderStuff.querySelector(".rte-more-options"),i=this.builderStuff.querySelector(".is-elementrte-tool"),n=this.builderStuff.querySelector(".elementrte-more-options");let o;for(o=this.opts.plugins.length-1;o>=0;o--){const s=this.opts.plugins[o].name,a=this.opts.plugins[o].showInMainToolbar,r=this.opts.plugins[o].showInElementToolbar;let l=!1;(e.querySelector('[data-plugin="'+s+'"]')||t.querySelector('[data-plugin="'+s+'"]'))&&(l=!0);let d=!1;if((i.querySelector('[data-plugin="'+s+'"]')||n.querySelector('[data-plugin="'+s+'"]'))&&(d=!0),a&&!l){t.querySelectorAll("div:not(.rte-separator)").forEach((e=>{e.insertAdjacentHTML("afterbegin",'<button style="width:46px;" title="button not found" data-plugin="'+s+'"></button>')}))}r&&!d&&n.querySelector("div").insertAdjacentHTML("afterbegin",'<button style="width:46px;" title="button not found" data-plugin="'+s+'"></button>')}for(o=0;o<this.opts.plugins.length;o++){const e=this.opts.plugins[o].name;let t=this.opts.scriptPath+"plugins/"+e+"/plugin.js";""!==this.opts.pluginPath&&(t=this.opts.pluginPath+"plugins/"+e+"/plugin.js"),this.loadScript(t).then((()=>{this.numOfPlugins++,this.numOfPlugins===this.opts.plugins.length&&(this.opts.onPluginsLoaded&&this.opts.onPluginsLoaded(),this.tooltip.setAll(),new ps({selector:".is-draggable"}))}))}}loadPluginsOldWay(){const e=this.builderStuff.querySelector(".is-rte-tool"),t=this.builderStuff.querySelector(".rte-more-options"),i=this.builderStuff.querySelector(".is-elementrte-tool"),n=this.builderStuff.querySelector(".elementrte-more-options");let o;for(o=this.opts.plugins.length-1;o>=0;o--){const s=this.opts.plugins[o];let a=!1;(e.querySelector('[data-plugin="'+s+'"]')||t.querySelector('[data-plugin="'+s+'"]'))&&(a=!0);let r=!1;(i.querySelector('[data-plugin="'+s+'"]')||n.querySelector('[data-plugin="'+s+'"]'))&&(r=!0),a||t.querySelector("div").insertAdjacentHTML("afterbegin",'<button style="width:46px;" title="button not found" data-plugin="'+this.opts.plugins[o]+'"></button>'),r||n.querySelector("div").insertAdjacentHTML("afterbegin",'<button style="width:46px;" title="button not found" data-plugin="'+this.opts.plugins[o]+'"></button>')}for(o=0;o<this.opts.plugins.length;o++){let e=this.opts.scriptPath+"plugins/"+this.opts.plugins[o]+"/plugin.js";""!==this.opts.pluginPath&&(e=this.opts.pluginPath+"plugins/"+this.opts.plugins[o]+"/plugin.js"),this.loadScript(e).then((()=>{if(this.numOfPlugins++,this.numOfPlugins===this.opts.plugins.length){let e=t.querySelectorAll("[data-plugin]");Array.prototype.forEach.call(e,(e=>{e.outerHTML=""})),e=n.querySelectorAll("[data-plugin]"),Array.prototype.forEach.call(e,(e=>{e.outerHTML=""})),this.opts.onPluginsLoaded&&this.opts.onPluginsLoaded(),this.tooltip.setAll(),new ps({selector:".is-draggable"})}}))}}addHtml(e){vb.appendHtml(this.builderStuff,e)}addCss(e){vb.appendHtml(document.head,e)}addButton_OLD(e,t,i,n){if(!this.builderStuff)return;const o=this.builderStuff.querySelector(".is-rte-tool"),s=this.builderStuff.querySelector(".rte-more-options");var a=!1;if(o.querySelector('[data-plugin="'+e+'"]')?o.querySelector('[data-plugin="'+e+'"]').outerHTML=t:s.querySelector('[data-plugin="'+e+'"]')&&(s.querySelector('[data-plugin="'+e+'"]').outerHTML=t,a=!0),!o.querySelector(".rte-more")&&a){o.insertAdjacentHTML("beforeend",`<button title="${this.util.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let e=this.rteTool.querySelector("button.rte-more");e&&vb.addEventListener(e,"click",(()=>{this.rte.showRteMore()}))}let r=o.querySelector(i);r=r||s.querySelector(i),r&&(r.setAttribute("data-title",r.getAttribute("title")),vb.addEventListener(r,"click",(e=>{n(e)})))}addButton(e,t,i,n){if(!this.builderStuff)return;const o=this.builderStuff.querySelector(".is-rte-tool"),s=this.builderStuff.querySelector(".rte-more-options");var a=!1;s.querySelector('[data-plugin="'+e+'"]')&&(a=!0);if(this.builderStuff.querySelectorAll('[data-plugin="'+e+'"]').forEach((e=>{e.outerHTML=t})),!o.querySelector(".rte-more")&&a){o.insertAdjacentHTML("beforeend",`<button title="${this.util.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let e=this.rteTool.querySelector("button.rte-more");e&&vb.addEventListener(e,"click",(()=>{this.rte.showRteMore()}))}let r=o.querySelectorAll(i);r.forEach((e=>{e.setAttribute("data-title",e.getAttribute("title")),vb.addEventListener(e,"click",(e=>{n(e)}))})),r=s.querySelectorAll(i),r.forEach((e=>{e.setAttribute("data-title",e.getAttribute("title")),vb.addEventListener(e,"click",(e=>{n(e)}))}))}addButton2(e,t,i,n){if(!this.builderStuff)return;const o=this.builderStuff.querySelector(".is-elementrte-tool"),s=this.builderStuff.querySelector(".elementrte-more-options");var a=!1;if(o.querySelector('[data-plugin="'+e+'"]')?o.querySelector('[data-plugin="'+e+'"]').outerHTML=t:s.querySelector('[data-plugin="'+e+'"]')&&(s.querySelector('[data-plugin="'+e+'"]').outerHTML=t,a=!0),!o.querySelector(".rte-more")&&a){o.insertAdjacentHTML("beforeend",`<button title="${this.util.out("More")}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`);let e=this.elementRteTool.querySelector("button.rte-more");e&&vb.addEventListener(e,"click",(()=>{this.rte.showElementRteMore()}))}let r=o.querySelector(i);r=r||s.querySelector(i),r&&(r.setAttribute("data-title",r.getAttribute("title")),vb.addEventListener(r,"click",(e=>{n(e)})))}showModal(e,t,i,n){this.util.showModal(e,t,i,n)}hideModal(e){this.util.hideModal(e)}draggable(e){new ps({selector:e})}createModal(e,t,i,n,o){let s=this.builderStuff.querySelector(t);return s||(this.builderStuff.appendChild(e),s=this.builderStuff.querySelector(t)),this.showModal(s,i,n,o),new ps({selector:".is-draggable"}),s}getIcons(){return this.rte.getIcons()}showSidePanel(e){let t=this.builderStuff.querySelectorAll(".is-side");Array.prototype.forEach.call(t,(e=>{vb.removeClass(e,"active")})),vb.addClass(e,"active")}hideSidePanel(e){vb.removeClass(e,"active")}getScriptPath(){return this.opts.scriptPath}getSnippetPath(){return this.opts.snippetPath}out(e){return this.util.out(e)}undo(){this.uo.doUndo()}redo(){this.uo.doRedo()}getScope(){let e;const t=document.querySelectorAll(this.opts.container);if(t.length>1){const i=this.util.cellSelected();e=i?i.parentNode.parentNode:t[0]}else e=t[0];if(""!==this.opts.page){const t=document.querySelector(this.opts.page);t&&(e=t)}return e}pasteHtmlAtCaret(e,t){this.util.pasteHtmlAtCaret(e,t)}getScript(e,t){this.loadScript(e).then((()=>{t&&t()}),(()=>{console.log("Fail to load config")}))}getScripts(e,t){let i=0;this.loadScript(e[i]).then((()=>{i=this._helper1(i,e,t)}))}_helper1(e,t,i){if(++e<t.length){return this.loadScript(t[e]).then((()=>{e=this._helper1(e,t,i)})),e}i&&i()}includeJs(e,t){-1===this.filesAdded.indexOf("["+e+"]")?(this.getScript(e,t),this.filesAdded+="["+e+"]"):t&&t()}includeCss(e){if(-1===this.filesAdded.indexOf("["+e+"]")){var t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("type","text/css"),t.setAttribute("href",e),document.getElementsByTagName("head")[0].appendChild(t),this.filesAdded+="["+e+"]"}}applyStyle(e,t){if(-1===this.filesAdded.indexOf("["+e+"]")){var i=document.createElement("style");i.innerHTML=t,document.getElementsByTagName("head")[0].appendChild(i),this.filesAdded+="["+e+"]"}}viewHtml(e){new Wo(this).view("full",e)}viewPreferences(){this.preferences.view()}viewConfig(){this.preferences.view()}viewZoom(){this.rte.viewZoom()}loadSnippets(e){if(this.preview)return;if(document.querySelector(this.opts.snippetList))return;if(this.isScriptAlreadyIncluded(e))return;const t=document.createElement("script");t.src=e,t.async=!0,t.onload=()=>{this.opts.snippetJSON=window.data_basic,""===this.opts.snippetPath&&(this.opts.snippetPath=window._snippets_path),this.opts.snippetJSON.snippets.length>0&&yr(this)},document.body.appendChild(t)}isScriptAlreadyIncluded(e){const t=document.getElementsByTagName("script");for(let i=0;i<t.length;i++)if(t[i].getAttribute("src")===e)return!0;return!1}loadHtml(e,t){const i=this.util;if(t);else{const e=document.querySelectorAll(this.opts.container);if(e.length>1){const n=i.cellSelected();t=n?n.parentNode.parentNode:e[0]}else t=e[0];if(""!==this.opts.page){const e=document.querySelector(this.opts.page);e&&(t=e)}}let n=document.createRange();t.innerHTML="",t.appendChild(n.createContextualFragment(e)),this.applyBehavior(),this.opts.onChange(),this.opts.onRender()}loadHTML(e){this.loadHtml(e)}setUIColor(e,t){let i=document.querySelector("[data-cb-color]");if(i&&i.setAttribute("data-cb-del",""),t){var n=document.createElement("link");n.rel="stylesheet",n.href=t,n.setAttribute("data-cb-color",""),n.addEventListener("load",(()=>{i=document.querySelector("[data-cb-del]"),i&&i.parentNode.removeChild(i),"dark"===e&&(vb.removeClass(document.body,"colored"),vb.removeClass(document.body,"colored-dark"),vb.removeClass(document.body,"light"),vb.addClass(document.body,"dark")),"colored"===e&&(vb.removeClass(document.body,"dark"),vb.removeClass(document.body,"colored-dark"),vb.removeClass(document.body,"light"),vb.addClass(document.body,"colored")),"colored-dark"===e&&(vb.removeClass(document.body,"dark"),vb.removeClass(document.body,"colored"),vb.removeClass(document.body,"light"),vb.addClass(document.body,"colored-dark")),""===e&&(vb.removeClass(document.body,"dark"),vb.removeClass(document.body,"colored-dark"),vb.removeClass(document.body,"colored"),vb.removeClass(document.body,"light")),"light"===e&&(vb.removeClass(document.body,"dark"),vb.removeClass(document.body,"colored-dark"),vb.removeClass(document.body,"colored"),vb.addClass(document.body,"light"));const t=this.util;setTimeout((()=>{t.getUIStyles(),this.setUIColorRefresh(),this.opts.onThemeChange&&this.opts.onThemeChange()}),300)})),document.head.appendChild(n)}else{i=document.querySelector("[data-cb-del]"),i&&i.parentNode.removeChild(i),""===e&&(vb.removeClass(document.body,"dark"),vb.removeClass(document.body,"colored-dark"),vb.removeClass(document.body,"colored"),vb.removeClass(document.body,"light"));const t=this.util;setTimeout((()=>{t.getUIStyles(),this.setUIColorRefresh(),this.opts.onThemeChange&&this.opts.onThemeChange()}),1e3)}}setUIColorRefresh(){const e=this.util;if(!this.rte||!this.element)return void setTimeout((()=>{this.setUIColorRefresh()}),600);let t=this.rte.rteFontFamilyOptions.querySelector("iframe").contentWindow.document;let i=this.builderStuff.querySelector(".is-modal.pickfontfamily").querySelector("iframe").contentWindow.document,n=this.rte.rteIconOptions.querySelector("iframe").contentWindow.document;""===t.body.innerHTML?(t.open(),this.opts.emailMode?t.write(e.getFontFamilyEmail()):t.write(e.getFontFamilyHTML()),t.close()):this.util.refreshFontFamilyStyle1(),""===i.body.innerHTML?(i.open(),this.opts.emailMode?i.write(e.getFontFamilyEmail(!0)):i.write(e.getFontFamilyHTML(!0)),i.close()):this.util.refreshFontFamilyStyle2(),""===n.body.innerHTML?(n.open(),n.write(this.rte.getIconsHTML()),n.close()):this.rte.refreshIconsStyle(),this.builderStuff.querySelector(".snippets").querySelector("iframe").src="about:blank";let o=document.querySelector(".is-modal.videoselect"),s=document.querySelector(".is-modal.imageselect"),a=document.querySelector(".is-modal.fileselect"),r=o.querySelector("iframe"),l=s.querySelector("iframe"),d=a.querySelector("iframe");r.contentWindow.applyParentStyles&&r.contentWindow.applyParentStyles(),l.contentWindow.applyParentStyles&&l.contentWindow.applyParentStyles(),d.contentWindow.applyParentStyles&&d.contentWindow.applyParentStyles()}openMedia(e){let t="",i=e.getAttribute("data-modal-theme");i||(i="light");const n=e.getAttribute("data-modal-color");if(e.getAttribute("data-modal-url")){t=e.getAttribute("data-modal-url");let o=t.split(".").pop();if("jpg"===o||"jpeg"===o||"png"===o||"gif"===o||"webm"===o)this.lightbox.openImage(t,i,n);else if("mp4"===o)this.lightbox.openVideo(t,"dark",n);else if(-1!==t.toLowerCase().indexOf("youtube.com")||-1!==t.toLowerCase().indexOf("vimeo.com"))this.lightbox.openExternalVideo(t,"dark",n);else{if(0===t.indexOf("#"));else{if(!window.confirm(this.util.out("Do you really want to leave?")))return!1}window.location.href=t}}else e.getAttribute("data-modal-image")&&(t=e.getAttribute("data-modal-image"),this.lightbox.openImage(t,i,n)),e.getAttribute("data-modal-video")&&(t=e.getAttribute("data-modal-video"),this.lightbox.openVideo(t,"dark",n)),e.getAttribute("data-modal-externalvideo")&&(t=e.getAttribute("data-modal-externalvideo"),this.lightbox.openExternalVideo(t,"dark",n))}lightboxOpen(e){this.useLightbox&&(e.hasAttribute("data-noedit")||e.hasAttribute("data-protected"))&&vb.hasClass(e,"block-click")&&this.openMedia(e)}handleCellClick(e,t){this.lightboxOpen(e);this.util.clearActiveCell(),this.activeCol=e;let i=t.target;vb.addClass(e,"cell-active");let n=e.parentNode;vb.addClass(n,"row-active");const o=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(o,(e=>{vb.removeClass(e,"builder-active")})),vb.addClass(n.parentNode,"builder-active"),n.childElementCount-2==1||vb.addClass(n,"row-outline"),e.hasAttribute("data-html")||this.opts.onContentClick&&this.opts.onContentClick(t),this.element.click(e,t),this.colTool.click(e),this.elmTool.click(e,t),this.rte.click(e,t);const s=document.querySelector(".grideditor.active");if(s){const t=s.querySelector(".cell-locking");e.hasAttribute("data-noedit")?vb.addClass(t,"on"):vb.removeClass(t,"on")}let a=vb.getParentElement(i,"a");if(("a"===i.tagName.toLowerCase()||a)&&(e.hasAttribute("data-noedit")||e.hasAttribute("data-protected"))){if("true"===e.getAttribute("contenteditable"))return t.preventDefault(),!1;if("a"===i.tagName.toLowerCase()&&(a=i),this.useLightbox&&vb.hasClass(a,"is-lightbox")){let e=a.getAttribute("href");if(!e)return t.preventDefault(),!1;let n=e.split(".").pop(),o=a.getAttribute("data-modal-theme");o||(o="light");const s=i.getAttribute("data-modal-color");if("jpg"===n||"jpeg"===n||"png"===n||"gif"===n||"webm"===n)return this.lightbox.openImage(e,o,s),t.preventDefault(),!1;if("mp4"===n)return this.lightbox.openVideo(e,"dark",s),t.preventDefault(),!1;if(-1!==e.toLowerCase().indexOf("youtube.com")||-1!==e.toLowerCase().indexOf("vimeo.com"))return this.lightbox.openExternalVideo(e,"dark",s),t.preventDefault(),!1;if(0===e.indexOf("#"));else{if(!window.confirm(this.util.out("Do you really want to leave?")))return t.preventDefault(),!1}}else{let e=a.getAttribute("href");if(!e)return t.preventDefault(),!1;if(0===e.indexOf("#"));else{if(!window.confirm(this.util.out("Do you really want to leave?")))return t.preventDefault(),!1}}}if(1===e.childElementCount){let t=e.children[0];t&&vb.hasClass(t,"spacer")&&(e.contentEditable=!1)}this.colTool.showHideLockIndicator(e);const r=n.querySelector(".is-rowadd-tool").querySelector("button");r.style.marginTop="";const l=Array.from(n.parentNode.children).filter((e=>"div"===e.nodeName.toLowerCase()));if(l&&l.length>0){if(n===l[l.length-1]){const e=n.parentNode.parentNode,t=vb.getElementOffset(e);let i=t.top+t.height;const o=vb.getElementOffset(n);i-(o.top+o.height)<19&&(r.style.marginTop="-14px")}}}handleCellKeypress(e){e.ctrlKey||e.metaKey||(null===this.uoTm?(this.uo.saveForUndo(),this.uoTm=setTimeout((()=>{this.uoTm=null}),1e3)):(clearTimeout(this.uoTm),this.uoTm=setTimeout((()=>{this.uoTm=null}),1e3)))}handleCellKeydown(e,t){let i=e.querySelectorAll("span");if(Array.prototype.forEach.call(i,(e=>{e.setAttribute("data-keep","")})),(t.ctrlKey||t.metaKey)&&86===t.which&&this.handleCellPaste(),this.opts.elementSelection&&!this.emailMode&&(t.ctrlKey||t.metaKey)&&65===t.which){let e;try{window.getSelection?e=window.getSelection().getRangeAt(0).commonAncestorContainer.parentNode:document.selection&&(e=document.selection.createRange().parentElement()),vb.hasClass(e.parentNode.parentNode,"is-builder")||vb.selectElementContents(e),t.preventDefault()}catch(t){}}if(46===t.keyCode){let e;try{if(window.getSelection?e=window.getSelection().getRangeAt(0).commonAncestorContainer:document.selection&&(e=document.selection.createRange()),"<br>"===e.innerHTML){e.nextElementSibling&&(e.parentNode.removeChild(e),t.preventDefault())}}catch(t){}}if(8===t.keyCode){let e;try{if(window.getSelection?e=window.getSelection().getRangeAt(0).commonAncestorContainer:document.selection&&(e=document.selection.createRange()),""===e.textContent){e.previousElementSibling||t.preventDefault()}}catch(t){}}}handleCellKeyup(e,t){vb.textSelection()&&("38"===t.keyCode||"40"===t.keyCode||"37"===t.keyCode||"39"===t.keyCode)&&this.util.saveSelection();let i=e.querySelectorAll("span");var n;Array.prototype.forEach.call(i,(e=>{e.hasAttribute("data-keep")||(e.outerHTML=e.innerHTML)}));try{window.getSelection?n=window.getSelection().getRangeAt(0).commonAncestorContainer.parentNode:document.selection&&(n=document.selection.createRange().parentElement())}catch(t){return}if(13===t.keyCode&&!t.shiftKey){"p"!==n.tagName.toLowerCase()&&"div"!==n.tagName.toLowerCase()||document.execCommand("formatBlock",!1,"<p>");let t=e.querySelectorAll("[data-keep]");Array.prototype.forEach.call(t,(e=>{e.removeAttribute("data-keep")}))}this.opts.onChange(),this.elmTool.hide()}handleCellPaste(){this.uo.saveForUndo();const e=this.util;e.saveSelection();let t=document.querySelector("#idContentWord");var i,n;t&&t.parentNode.removeChild(t),window.getSelection?i=3===(n=window.getSelection().getRangeAt(0).commonAncestorContainer).nodeType?n.parentNode:n:document.selection&&(n=document.selection.createRange(),i=document.selection.createRange().parentElement());const o='<div style="position:absolute;z-index:-1000;top:'+(i.getBoundingClientRect().top+window.pageYOffset)+'px;left:-1000px;width:100px;height:100px;overflow:auto;" name="idContentWord" id="idContentWord" contenteditable="true"></div>';vb.appendHtml(this.builderStuff,o),t=document.querySelector("#idContentWord"),t.focus(),setTimeout((()=>{try{var t="";let u=document.querySelector("#idContentWord");var i=!1,n=u.innerText;if(!this.opts.disableAutoEmbedVideo){var o=/^http[s]?:\/\/(((www.youtube.com\/watch\?(feature=player_detailpage&)?)v=)|(youtu.be\/))([^#&?]*)/.exec(n),s=/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/)|(video\/))?([0-9]+)\/?/.exec(n);if(null!==o||null!==s){if(null!==o&&o.length>=7)n="https://www.youtube.com/embed/"+o[6]+"?rel=0";if(null!==s&&s.length>=7)n="https://player.vimeo.com/video/"+s[6];t='<div class="embed-responsive embed-responsive-16by9"><iframe width="560" height="315" src="'+n+'" frameborder="0" allowfullscreen=""></iframe></div>',i=!0}}if(!i)if("text"===this.opts.paste){let e=u.querySelectorAll("p,h1,h2,h3,h4,h5,h6");Array.prototype.forEach.call(e,(e=>{e.innerHTML=e.innerHTML+" "})),t=u.innerText}else{t=u.innerHTML,t="html"===this.opts.paste?e.cleanHTML(t,!1):e.cleanHTML(t,!0),u.innerHTML=t;let i=u.querySelectorAll("li");Array.prototype.forEach.call(i,(e=>{e.style.whiteSpace="";const t=e.childNodes;let i=t.length;for(;i--;)"P"===t[i].tagName&&(t[i].outerHTML=t[i].innerHTML)})),t=u.innerHTML}u=document.querySelector("#idContentWord"),u&&u.parentNode.removeChild(u),e.restoreSelection();var a=window.getSelection(),r=a.getRangeAt(0);r.extractContents(),r.collapse(!0);var l=r.createContextualFragment(t),d=l.lastChild;if(r.insertNode(l),this.activeCol){this.activeCol.find("h1:empty,h2:empty,h3:empty,h4:empty,h5:empty,h6:empty,p:empty").remove();let e=this.activeCol.querySelector("p.elm-active,h1.elm-active,h2.elm-active,h3.elm-active,h4.elm-active,h5.elm-active,h6.elm-active");if(e){if(e.querySelectorAll("p,h1,h2,h3,h4,h5,h6").length>0){let t=e.nextElementSibling;if(Array.from(e.childNodes).filter((e=>3===e.nodeType&&e.textContent.trim().length>1)).forEach((e=>{const t=document.createElement("p");e.after(t),t.appendChild(e)})),e.firstElementChild&&1===e.childNodes.length&&"SPAN"===e.firstElementChild.tagName){e.outerHTML=e.firstElementChild.innerHTML,this.activeCol.querySelectorAll("*:empty").forEach((e=>{e.remove()})),t?vb.moveCursorToElement(t.previousElementSibling):vb.moveCursorToElement(this.activeCol);let i=document.querySelector(".builder-active");return i&&this.applyBehaviorOn(i),this.opts.onChange(),void this.opts.onRender()}e.outerHTML=e.innerHTML,this.activeCol.find("h1:empty,h2:empty,h3:empty,h4:empty,h5:empty,h6:empty,p:empty").remove(),t?vb.moveCursorToElement(t.previousElementSibling):vb.moveCursorToElement(this.activeCol);let i=document.querySelector(".builder-active");return i&&this.applyBehaviorOn(i),this.opts.onChange(),void this.opts.onRender()}}}r.setStartAfter(d),r.setEndAfter(d),r.collapse(!1);var c=r.commonAncestorContainer;if(c&&c.parentNode)try{c.parentNode.normalize()}catch(e){}a.removeAllRanges(),a.addRange(r);let p=document.querySelector(".builder-active");p&&this.applyBehaviorOn(p),this.opts.onChange(),this.opts.onRender()}catch(e){let t=document.querySelector("#idContentWord");t&&t.parentNode.removeChild(t)}}),800)}cellSelected(){return this.util.cellSelected()}loadScript(e,t,i=!0,n=!0){return new Promise(((o,s)=>{let a=document.createElement("script");const r=t||document.getElementsByTagName("script")[0];function l(e,t){(t||!a.readyState||/loaded|complete/.test(a.readyState))&&(a.onload=null,a.onreadystatechange=null,a=void 0,t?s():o())}a.async=i,a.defer=n,a.onload=l,a.onreadystatechange=l,a.src=e,r.parentNode.insertBefore(a,r)}))}currentScriptPath(){let e,t;for(var i=document.getElementsByTagName("script"),n=0;n<i.length;n++){var o=i[n].src;e="contentbuilder.js",o.indexOf(e)>-1&&(t=o.substring(0,o.indexOf(e))),e="contentbuilder.min.js",o.indexOf(e)>-1&&(t=o.substring(0,o.indexOf(e)))}return t}}var yb={exports:{}};!function(e,t){
113
113
  /*!
114
114
  * pace.js v1.2.4
115
115
  * https://github.com/CodeByZach/pace/