@innovastudio/contentbox 1.1.1 → 1.1.2
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.
|
@@ -115,10 +115,10 @@ var ContentBox=function(){"use strict";class e{appendHtml(e,t,i="beforeend"){e.i
|
|
|
115
115
|
Copyright (c) 2012 Shinichi Tomita <shinichi.tomita@gmail.com>
|
|
116
116
|
MIT license
|
|
117
117
|
https://github.com/stomita/ios-imagefile-megapixel
|
|
118
|
-
*/function Sm(e,t,i,n){var o=e.naturalWidth,s=e.naturalHeight;if(o+s){var a=i.width,r=i.height,l=t.getContext("2d");l.save(),function(e,t,i,n,o){switch(o){case 5:case 6:case 7:case 8:e.width=n,e.height=i;break;default:e.width=i,e.height=n}switch(o){case 2:t.translate(i,0),t.scale(-1,1);break;case 3:t.translate(i,n),t.rotate(Math.PI);break;case 4:t.translate(0,n),t.scale(1,-1);break;case 5:t.rotate(.5*Math.PI),t.scale(1,-1);break;case 6:t.rotate(.5*Math.PI),t.translate(0,-n);break;case 7:t.rotate(.5*Math.PI),t.translate(i,-n),t.scale(-1,1);break;case 8:t.rotate(-.5*Math.PI),t.translate(-i,0)}}(t,l,a,r,i.orientation),function(e){var t=e.naturalWidth;if(t*e.naturalHeight>1048576){var i=document.createElement("canvas");i.width=i.height=1;var n=i.getContext("2d");return n.drawImage(e,1-t,0),0===n.getImageData(0,0,1,1).data[3]}return!1}(e)&&(o/=2,s/=2);var d=1024,c=document.createElement("canvas");c.width=c.height=d;for(var u=c.getContext("2d"),p=n?function(e,t,i){var n=document.createElement("canvas");n.width=1,n.height=i;var o=n.getContext("2d");o.drawImage(e,0,0);for(var s=o.getImageData(0,0,1,i).data,a=0,r=i,l=i;l>a;)0===s[4*(l-1)+3]?r=l:a=l,l=r+a>>1;var d=l/i;return 0===d?1:d}(e,0,s):1,h=Math.ceil(d*a/o),g=Math.ceil(d*r/s/p),f=0,m=0;f<s;){for(var v=0,b=0;v<o;)u.clearRect(0,0,d,d),u.drawImage(e,-v,-f),l.drawImage(c,0,0,d,d,b,m,h,g),v+=d,b+=h;f+=d,m+=g}l.restore(),c=u=null}}var Cm,km;function Em(e){if(window.Blob&&e instanceof Blob){if(!Cm)throw Error("No createObjectURL function found to create blob url");var t=new wm;t.src=Cm.createObjectURL(e),this.blob=e,e=t}if(!e.naturalWidth&&!e.naturalHeight){var i=this;e.onload=e.onerror=function(){var e=i.imageLoadListeners;if(e){i.imageLoadListeners=null;for(var t=0,n=e.length;t<n;t++)e[t]()}},this.imageLoadListeners=[]}this.srcImage=e}function Am(e,t,i){var n,o=document.createElement("img");return o.onerror=function(n){return Am.onerror(o,n,e,t,i)},o.onload=function(n){return Am.onload(o,n,e,t,i)},"string"==typeof e?(Am.fetchBlob(e,(function(t){t?(e=t,n=Am.createObjectURL(e)):(n=e,i&&i.crossOrigin&&(o.crossOrigin=i.crossOrigin)),o.src=n}),i),o):Am.isInstanceOf("Blob",e)||Am.isInstanceOf("File",e)?(n=o._objectURL=Am.createObjectURL(e))?(o.src=n,o):Am.readFile(e,(function(e){var i=e.target;i&&i.result?o.src=i.result:t&&t(e)})):void 0}function qm(e,t){!e._objectURL||t&&t.noRevoke||(Am.revokeObjectURL(e._objectURL),delete e._objectURL)}"undefined"!=typeof window&&(Cm=window.URL&&window.URL.createObjectURL?window.URL:window.webkitURL&&window.webkitURL.createObjectURL?window.webkitURL:null),Em.prototype.render=function(e,t,i){if(this.imageLoadListeners){var n=this;this.imageLoadListeners.push((function(){n.render(e,t,i)}))}else{t=t||{};var o=this.srcImage.naturalWidth,s=this.srcImage.naturalHeight,a=t.width,r=t.height,l=t.maxWidth,d=t.maxHeight,c=!this.blob||"image/jpeg"===this.blob.type;a&&!r?r=s*a/o<<0:r&&!a?a=o*r/s<<0:(a=o,r=s),l&&a>l&&(r=s*(a=l)/o<<0),d&&r>d&&(a=o*(r=d)/s<<0);var u={width:a,height:r};for(var p in t)u[p]=t[p];var h=e.tagName.toLowerCase();"img"===h?e.src=function(e,t,i){var n=document.createElement("canvas");return Sm(e,n,t,i),n.toDataURL("image/jpeg",t.quality||.8)}(this.srcImage,u,c):"canvas"===h&&Sm(this.srcImage,e,u,c),"function"==typeof this.onrender&&this.onrender(e),i&&i(),this.blob&&(this.blob=null,Cm&&Cm.revokeObjectURL(this.srcImage.src))}},Cm&&(km=Cm.revokeObjectURL&&Cm),Am.fetchBlob=function(e,t){t()},Am.isInstanceOf=function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"},Am.transform=function(e,t,i,n,o){i(e,o)},Am.onerror=function(e,t,i,n,o){qm(e,o),n&&n.call(e,t)},Am.onload=function(e,t,i,n,o){qm(e,o),n&&Am.transform(e,o,n,i,{originalWidth:e.naturalWidth||e.width,originalHeight:e.naturalHeight||e.height})},Am.createObjectURL=function(e){return!!km&&km.createObjectURL(e)},Am.revokeObjectURL=function(e){return!!km&&km.revokeObjectURL(e)},Am.readFile=function(e,t,i){if(FileReader){var n=new FileReader;if(n.onload=n.onerror=t,n[i=i||"readAsDataURL"])return n[i](e),n}return!1};var Lm="undefined"!=typeof Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);Am.blobSlice=Lm&&function(){var e=this.slice||this.webkitSlice||this.mozSlice;return e.apply(this,arguments)},Am.metaDataParsers={jpeg:{65505:[],65517:[]}},Am.parseMetaData=function(e,t,i,n){n=n||{};var o=this,s=(i=i||{}).maxMetaDataSize||262144;!!("undefined"!=typeof DataView&&e&&e.size>=12&&"image/jpeg"===e.type&&Am.blobSlice)&&Am.readFile(Am.blobSlice.call(e,0,s),(function(e){if(e.target.error)return console.log(e.target.error),void t(n);var s,a,r,l,d=e.target.result,c=new DataView(d),u=2,p=c.byteLength-4,h=u;if(65496===c.getUint16(0)){for(;u<p&&((s=c.getUint16(u))>=65504&&s<=65519||65534===s);){if(u+(a=c.getUint16(u+2)+2)>c.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(r=Am.metaDataParsers.jpeg[s])for(l=0;l<r.length;l+=1)r[l].call(o,c,u,a,n,i);h=u+=a}!i.disableImageHead&&h>6&&(d.slice?n.imageHead=d.slice(0,h):n.imageHead=new Uint8Array(d).subarray(0,h))}else console.log("Invalid JPEG file: Missing JPEG marker.");t(n)}),"readAsArrayBuffer")||t(n)},Am.hasMetaOption=function(e){return e&&e.meta};var Tm=Am.transform;Am.transform=function(e,t,i,n,o){Am.hasMetaOption(t)?Am.parseMetaData(n,(function(o){Tm.call(Am,e,t,i,n,o)}),t,o):Tm.apply(Am,arguments)},Am.ExifMap=function(){return this},Am.ExifMap.prototype.map={Orientation:274},Am.ExifMap.prototype.get=function(e){return this[e]||this[this.map[e]]},Am.getExifThumbnail=function(e,t,i){if(i&&!(t+i>e.byteLength))return Am.createObjectURL(new Blob([e.buffer.slice(t,t+i)]));console.log("Invalid Exif data: Invalid thumbnail data.")},Am.exifTagTypes={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}},Am.exifTagTypes[7]=Am.exifTagTypes[1],Am.getExifValue=function(e,t,i,n,o,s){var a,r,l,d,c,u,p=Am.exifTagTypes[n];if(p){if(!((r=(a=p.size*o)>4?t+e.getUint32(i+8,s):i+8)+a>e.byteLength)){if(1===o)return p.getValue(e,r,s);for(l=[],d=0;d<o;d+=1)l[d]=p.getValue(e,r+d*p.size,s);if(p.ascii){for(c="",d=0;d<l.length&&"\0"!==(u=l[d]);d+=1)c+=u;return c}return l}console.log("Invalid Exif data: Invalid data offset.")}else console.log("Invalid Exif data: Invalid tag type.")},Am.parseExifTag=function(e,t,i,n,o){var s=e.getUint16(i,n);o.exif[s]=Am.getExifValue(e,t,i,e.getUint16(i+2,n),e.getUint32(i+4,n),n)},Am.parseExifTags=function(e,t,i,n,o){var s,a,r;if(i+6>e.byteLength)console.log("Invalid Exif data: Invalid directory offset.");else{if(!((a=i+2+12*(s=e.getUint16(i,n)))+4>e.byteLength)){for(r=0;r<s;r+=1)this.parseExifTag(e,t,i+2+12*r,n,o);return e.getUint32(a,n)}console.log("Invalid Exif data: Invalid directory size.")}},Am.parseExifData=function(e,t,i,n,o){if(!o.disableExif){var s,a,r,l=t+10;if(1165519206===e.getUint32(t+4))if(l+8>e.byteLength)console.log("Invalid Exif data: Invalid segment size.");else if(0===e.getUint16(t+8)){switch(e.getUint16(l)){case 18761:s=!0;break;case 19789:s=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}42===e.getUint16(l+2,s)?(a=e.getUint32(l+4,s),n.exif=new Am.ExifMap,(a=Am.parseExifTags(e,l,l+a,s,n))&&!o.disableExifThumbnail&&(r={exif:{}},a=Am.parseExifTags(e,l,l+a,s,r),r.exif[513]&&(n.exif.Thumbnail=Am.getExifThumbnail(e,l+r.exif[513],r.exif[514]))),n.exif[34665]&&!o.disableExifSub&&Am.parseExifTags(e,l,l+n.exif[34665],s,n),n.exif[34853]&&!o.disableExifGps&&Am.parseExifTags(e,l,l+n.exif[34853],s,n)):console.log("Invalid Exif data: Missing TIFF marker.")}else console.log("Invalid Exif data: Missing byte alignment offset.")}},Am.metaDataParsers.jpeg[65505].push(Am.parseExifData);const Mm=new ei;class Om{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.builderStuff=i;let n=i.querySelector("#divLinkTool");if(!n){let e=`<div id="divLinkTool" class="is-tool">\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")} \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)")} \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 `;Mm.appendHtml(i,e),n=i.querySelector("#divLinkTool");let o=n.querySelector(".link-edit");Mm.addEventListener(o,"click",(()=>{this.editLink()}));let s=n.querySelector(".link-duplicate");Mm.addEventListener(s,"click",(()=>{if(this.builder.activeLink)if(this.builder.uo.saveForUndo(),this.builder.opts.emailMode){for(var e=this.builder.activeLink;"table"!==e.tagName.toLowerCase()&&!Mm.hasClass(e,"button");)e=e.parentNode;let t=e=e.parentNode;const i=t.cloneNode(!0);let n=i.querySelector(".icon-active");n&&Mm.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&&Mm.removeClass(t,"icon-active"),this.builder.activeLink.parentNode.insertBefore(e,this.builder.activeLink),this.showTool(this.builder.activeLink)}}));let a=n.querySelector(".link-remove");Mm.addEventListener(a,"click",(()=>{if(this.builder.uo.saveForUndo(),this.builder.opts.emailMode){for(var e=this.builder.activeLink;"table"!==e.tagName.toLowerCase()&&!Mm.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 r=this.builderStuff.querySelector(".is-modal.createlink"),l=r.querySelector(".input-ok");Mm.addEventListener(l,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeLink;if(e){let t=r.querySelector(".input-url").value,n=r.querySelector(".input-title").value,o=r.querySelector(".input-text").value;if(""===o&&(o=t),""!==t)e.setAttribute("href",t),r.querySelector(".input-newwindow").checked?e.setAttribute("target","_blank"):e.removeAttribute("target"),r.querySelector(".input-openlightbox").checked?Mm.addClass(e,"is-lightbox"):Mm.removeClass(e,"is-lightbox"),this.builder.activeIcon||(e.innerHTML=o),e.setAttribute("title",n);else{var i=e;if(Mm.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=r.querySelector(".input-url").value,i=r.querySelector(".input-title").value,n=r.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"),Mm.removeClass(o,"__dummy"),r.querySelector(".input-newwindow").checked?o.setAttribute("target","_blank"):o.removeAttribute("target"),r.querySelector(".input-openlightbox").checked?Mm.addClass(o,"is-lightbox"):Mm.removeClass(o,"is-lightbox"),o.setAttribute("title",i),this.builder.activeIcon=o.childNodes[0],t.appleMobile||(this.builder.activeIcon.click(),Mm.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,r.querySelector(".input-newwindow").checked?o.setAttribute("target","_blank"):o.removeAttribute("target"),r.querySelector(".input-openlightbox").checked?Mm.addClass(o,"is-lightbox"):Mm.removeClass(o,"is-lightbox"),o.setAttribute("title",i),t.appleMobile||Mm.selectElementContents(o)}}t.saveSelection(),this.builder.opts.onChange(),this.builder.opts.onRender()}t.hideModal(r)}));let d=r.querySelector(".input-cancel");Mm.addEventListener(d,"click",(()=>{t.hideModal(r),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,"a"!==s.tagName.toLowerCase()&&!Mm.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=>{Mm.removeClass(e,"icon-active")})),Mm.addClass(s.childNodes[0],"icon-active"),Mm.selectElementContents(s.childNodes[0]),this.builder.activeIcon=s.childNodes[0]}if("img"===s.tagName.toLowerCase())return;let e;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,this.showTool(e),t.preventDefault()}}showTool(e){const t=this.linkTool;"inline-block"===Mm.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");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=""}createLink(){const e=new Jt(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||(Mm.selectElementContents(this.builder.activeLink),e.saveSelection()))}var i=Mm.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");Mm.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),"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,Mm.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 Jt(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&&Mm.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");Mm.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),"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,Mm.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 Rm=new ei;class Bm{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 `;Rm.appendHtml(i,e),n=i.querySelector(".is-spacer-tool");const o=n.querySelectorAll("button");Array.prototype.forEach.call(o,(e=>{Rm.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-value");let i=this.builder.activeSpacer;"-"===t?Rm.hasClass(i,"height-300")?(Rm.removeClass(i,"height-300"),Rm.addClass(i,"height-280")):Rm.hasClass(i,"height-280")?(Rm.removeClass(i,"height-280"),Rm.addClass(i,"height-260")):Rm.hasClass(i,"height-260")?(Rm.removeClass(i,"height-260"),Rm.addClass(i,"height-240")):Rm.hasClass(i,"height-240")?(Rm.removeClass(i,"height-240"),Rm.addClass(i,"height-220")):Rm.hasClass(i,"height-220")?(Rm.removeClass(i,"height-220"),Rm.addClass(i,"height-200")):Rm.hasClass(i,"height-200")?(Rm.removeClass(i,"height-200"),Rm.addClass(i,"height-180")):Rm.hasClass(i,"height-180")?(Rm.removeClass(i,"height-180"),Rm.addClass(i,"height-160")):Rm.hasClass(i,"height-160")?(Rm.removeClass(i,"height-160"),Rm.addClass(i,"height-140")):Rm.hasClass(i,"height-140")?(Rm.removeClass(i,"height-140"),Rm.addClass(i,"height-120")):Rm.hasClass(i,"height-120")?(Rm.removeClass(i,"height-120"),Rm.addClass(i,"height-100")):Rm.hasClass(i,"height-100")?(Rm.removeClass(i,"height-100"),Rm.addClass(i,"height-80")):Rm.hasClass(i,"height-80")?(Rm.removeClass(i,"height-80"),Rm.addClass(i,"height-60")):Rm.hasClass(i,"height-60")?(Rm.removeClass(i,"height-60"),Rm.addClass(i,"height-40")):Rm.hasClass(i,"height-40")&&(Rm.removeClass(i,"height-40"),Rm.addClass(i,"height-20")):Rm.hasClass(i,"height-20")?(Rm.removeClass(i,"height-20"),Rm.addClass(i,"height-40")):Rm.hasClass(i,"height-40")?(Rm.removeClass(i,"height-40"),Rm.addClass(i,"height-60")):Rm.hasClass(i,"height-60")?(Rm.removeClass(i,"height-60"),Rm.addClass(i,"height-80")):Rm.hasClass(i,"height-80")?(Rm.removeClass(i,"height-80"),Rm.addClass(i,"height-100")):Rm.hasClass(i,"height-100")?(Rm.removeClass(i,"height-100"),Rm.addClass(i,"height-120")):Rm.hasClass(i,"height-120")?(Rm.removeClass(i,"height-120"),Rm.addClass(i,"height-140")):Rm.hasClass(i,"height-140")?(Rm.removeClass(i,"height-140"),Rm.addClass(i,"height-160")):Rm.hasClass(i,"height-160")?(Rm.removeClass(i,"height-160"),Rm.addClass(i,"height-180")):Rm.hasClass(i,"height-180")?(Rm.removeClass(i,"height-180"),Rm.addClass(i,"height-200")):Rm.hasClass(i,"height-200")?(Rm.removeClass(i,"height-200"),Rm.addClass(i,"height-220")):Rm.hasClass(i,"height-220")?(Rm.removeClass(i,"height-220"),Rm.addClass(i,"height-240")):Rm.hasClass(i,"height-240")?(Rm.removeClass(i,"height-240"),Rm.addClass(i,"height-260")):Rm.hasClass(i,"height-260")?(Rm.removeClass(i,"height-260"),Rm.addClass(i,"height-280")):Rm.hasClass(i,"height-280")&&(Rm.removeClass(i,"height-280"),Rm.addClass(i,"height-300")),this.showTool(i),this.builder.opts.onChange(),this.builder.opts.onRender()}))}))}this.spacerTool=n}click(e){const t=e.target;Rm.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 Nm=new ei;class Im{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")}">✕</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 `;Nm.appendHtml(i,e),o=i.querySelector(".is-module-tool"),n=i.querySelector(".is-modal.custommodule");let s=o.querySelector("button");Nm.addEventListener(s,"click",(()=>{let e=this.builder.activeModule;Nm.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;">✕</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;">✕</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");Nm.addEventListener(a,"click",(()=>{this.util.hideModal(n)}));var r=1;const l=e.querySelectorAll("[data-subblock]");Array.prototype.forEach.call(l,(t=>{if(Nm.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");Nm.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");Nm.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 $m=new ei;class Hm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new Fo(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 `;$m.appendHtml(i,e),o=i.querySelector(".is-code-tool");let n=o.querySelector("button");$m.addEventListener(n,"click",(()=>{let e=this.builder.activeCodeBlock,i=this.builderStuff.querySelector("#tmp_buildercontent");i&&i.parentNode.removeChild(i),$m.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");$m.removeClasses(s,"elm-active"),s=i.querySelectorAll(".elm-inspected"),$m.removeClasses(s,"elm-inspected"),s=i.querySelectorAll(".cell-active"),$m.removeClasses(s,"cell-active"),s=i.querySelectorAll(".row-active"),$m.removeClasses(s,"row-active"),s=i.querySelectorAll(".row-outline"),$m.removeClasses(s,"row-outline"),s=i.querySelectorAll(".row-outline"),$m.removeClasses(s,"row-outline"),s=i.querySelectorAll("[data-click]"),$m.removeAttributes(s,"data-click"),s=i.querySelectorAll("[contenteditable]"),$m.removeAttributes(s,"contenteditable"),s=i.querySelectorAll("[data-module-active]"),$m.removeAttributes(s,"data-module-active"),$m.removeElements(i.querySelectorAll(".is-row-tool")),$m.removeElements(i.querySelectorAll(".is-rowadd-tool")),$m.removeElements(i.querySelectorAll(".ovl")),$m.removeElements(i.querySelectorAll(".row-add-initial")),s=i.querySelectorAll("[data-keep]"),$m.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,Po.html)(a),r.value=a;let l=s.querySelector(".input-ok");if($m.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"),$m.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 Pm=new ei;class Dm{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 `;Pm.appendHtml(i,e),o=i.querySelector(".is-iframe-tool"),n=i.querySelector(".is-modal.iframelink");let s=o.querySelector("button");Pm.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");Pm.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");Pm.addEventListener(r,"click",(()=>{this.util.hideModal(n)}))}this.iframeTool=o,this.iframeModal=n}click(e){if(Pm.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 zm=new ei;class Fm{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")}">✕</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 `;zm.appendHtml(i,e),o=i.querySelector(".is-table-tool"),n=i.querySelector(".is-modal.edittable");let s=o.querySelector("button");zm.addEventListener(s,"click",(()=>{zm.hasClass(n,"active")?zm.removeClass(n,"active"):zm.addClass(n,"active")}));let a=n.querySelector(".is-modal-close");zm.addEventListener(a,"click",(()=>{zm.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&&Um(r+1)||"oddrows"===i&&!Um(r+1)||"currentrow"===i&&l===this.builder.activeTd.parentNode||"currentcol"===i&&d===jm(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&&Um(r+1)||"oddrows"===i&&!Um(r+1)||"currentrow"===i&&l===this.builder.activeTd.parentNode||"currentcol"===i&&d===jm(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&&Um(l+1)||"oddrows"===o&&!Um(l+1)||"currentrow"===o&&d===this.builder.activeTd.parentNode||"currentcol"===o&&c===jm(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&&Um(l+1)||"oddrows"===i&&!Um(l+1)||"currentrow"===i&&d===this.builder.activeTd.parentNode||"currentcol"===i&&c===jm(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(zm.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,zm.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(zm.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 Um(e){return e%2==0}function jm(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 Wm=new ei;class Gm{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")} \n </label>\n <label style="display:block;margin-top:5px;">\n <input class="input-video-loop" type="checkbox" /> ${t.out("Loop")} \n </label>\n <label style="display:block;margin-top:5px;">\n <input class="input-video-autoplay" type="checkbox" /> ${t.out("Autoplay")} \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 `;Wm.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");Wm.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&&Wm.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");Wm.addEventListener(r,"change",(e=>{let t=r;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;Wm.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");Wm.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");Wm.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 Ym=new ei;class Vm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i,this.hyperlink=new Om(e),this.image=new wm(e),this.spacer=new Bm(e),this.module=new Im(e),this.code=new Hm(e),this.iframe=new Dm(e),this.table=new Fm(e),this.video=new Gm(e),window.addEventListener("keydown",(e=>{if(46===e.keyCode&&this.builder.activeIcon&&Ym.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&&Ym.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,(e=>{"inline-block"===Ym.getStyle(e,"display")&&(e.contentEditable=!0,"span"!==e.parentNode.tagName.toLowerCase()?e.outerHTML='<span contenteditable="false">'+e.outerHTML+"</span>":1===e.parentNode.childElementCount&&(e.parentNode.contentEditable=!1))}));let l=e.querySelectorAll(".embed-responsive");Array.prototype.forEach.call(l,(e=>{let t=e.querySelector(".ovl");t||(Ym.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"),Ym.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,Ym.parentsHasAttribute(i,"data-subblock")&&(a=!0)),!s&&!n&&!o||a){const n=document.querySelectorAll(".icon-active");Array.prototype.forEach.call(n,(e=>{Ym.removeClass(e,"icon-active")})),this.builder.activeIcon=null,"i"===i.tagName.toLowerCase()&&""===i.innerHTML&&(Ym.addClass(i,"icon-active"),Ym.selectElementContents(i),this.builder.activeIcon=i,document.selection?document.selection.empty():window.getSelection().removeAllRanges()),this.image.click(t),this.hyperlink.click(e,t),"a"!==i.tagName.toLowerCase()&&!Ym.parentsHasTag(i,"a")||s||t.preventDefault(),this.table.click(t),this.iframe.click(t),this.video.click(t),this.spacer.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 Xm=new ei;class Km{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.grid=new Qo(e);const n=new Fo(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>`;Xm.appendHtml(i,e),o=i.querySelector(".rowmore");let a=o.querySelector(".row-up");a&&Xm.addEventListener(a,"click",(()=>{this.grid.moveRowUp(),t.clearControls()})),a=o.querySelector(".row-down"),a&&Xm.addEventListener(a,"click",(()=>{this.grid.moveRowDown(),t.clearControls()})),a=o.querySelector(".row-duplicate"),a&&Xm.addEventListener(a,"click",(()=>{this.grid.duplicateRow(),this.rowMore.style.display="",t.clearControls()})),a=o.querySelector(".row-html"),a&&Xm.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=Xm.parentsHasClass(t,"rowmore"),i=Xm.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>`;Xm.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&&Xm.addEventListener(r,"click",(()=>{const e=i.querySelector(".grideditor");if(Xm.hasClass(e,"active")){Xm.removeClass(e,"active");const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(e=>{e.removeAttribute("grideditor")}))}else{Xm.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")?Xm.addClass(n,"on"):Xm.removeClass(n,"on");const o=e.querySelector(".cell-locking");let s=t.cellSelected();s&&s.hasAttribute("data-noedit")?Xm.addClass(o,"on"):Xm.removeClass(o,"on")}})),r=o.querySelector(".row-more"),r&&Xm.addEventListener(r,"click",(()=>{let e=t.cellSelected();if(!e)return;let s=e.parentNode;Xm.removeClass(s,"row-outline");let a=i.querySelector(".is-column-tool");Xm.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",Xm.removeClass(n,"arrow-bottom"),Xm.removeClass(n,"arrow-left"),Xm.removeClass(n,"arrow-right"),Xm.removeClass(n,"center"),Xm.removeClass(n,"right"),Xm.removeClass(n,"left"),"right"===this.builder.opts.rowTool?(n.style.left=d-n.offsetWidth-10+"px",Xm.addClass(n,"arrow-right"),Xm.addClass(n,"left")):(n.style.left=d+35+"px",Xm.addClass(n,"arrow-left"),Xm.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&&Xm.addEventListener(r,"click",(()=>{this.grid.removeRow(),t.clearControls()}))}}}const Zm=new ei;class Qm{constructor(e){this.builder=e}render(e){const t=this.builder.util,i=Ko(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>`;Zm.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");Zm.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",Zm.removeClass(i,"arrow-bottom"),Zm.removeClass(i,"arrow-right"),Zm.removeClass(i,"arrow-left"),Zm.removeClass(i,"center"),Zm.addClass(i,"arrow-top"),Zm.addClass(i,"center")):(i.style.top=t+window.pageYOffset-a-8+"px",i.style.left=n-s/2+7+"px",Zm.removeClass(i,"arrow-top"),Zm.removeClass(i,"arrow-right"),Zm.removeClass(i,"arrow-left"),Zm.removeClass(i,"center"),Zm.addClass(i,"arrow-bottom"),Zm.addClass(i,"center")),i.setAttribute("data-mode","row"),!1}))}}class Jm{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 ev{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 Jm({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 ds({selector:"#"+this.id+" .is-draggable"});let p=document.createElement("div");p.style.backgroundColor=this.opts.color;let h,g=p.style.backgroundColor;""!==g&&(h=uv.color(g),this.baseRGB=h);let f=u.querySelector(".color-swatch"),m=l.querySelector(".color-gradient");if(h){let e;e=""!==g?dv(h.r,h.g,h.b):0,ov(f,e);let t=pv(h.r,h.g,h.b);sv(m,e,t[1])}else{let e;e=0,ov(f,e);let t=pv(255,255,255);sv(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;ov(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=tv(i);if(this.baseRGB=n,!this.parentsHasClass(t,"color-gradient")&&""!==i)if(n.r===n.g&&n.g===n.b)av(m);else{let e=dv(n.r,n.g,n.b);ov(f,e),sv(l.querySelector(".color-gradient"),e,pv(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=tv(e.getAttribute("data-color"));this.baseRGB=t;let i=dv(t.r,t.g,t.b),n=pv(t.r,t.g,t.b);sv(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=uv.color(r)),-1!==r.indexOf("#")&&(s=tv(r)),!s){return av(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)av(a);else{let e=n.querySelector(".color-swatch"),t=dv(s.r,s.g,s.b);ov(e,t),sv(a,t,pv(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 tv(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 iv(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 nv(e){return iv(e[0])+iv(e[1])+iv(e[2])}function ov(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="#"+nv(lv(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="#"+nv(lv(t,o,a));e.title=r,e.style.background=r,e.setAttribute("data-color",r)}}}function sv(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="#"+nv(lv(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="#"+nv(lv(t,i,e));r.title=l,r.style.background=l,r.setAttribute("data-color",l)}}}function av(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="#"+nv(lv(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="#"+nv(lv(0,0,e));s.title=a,s.style.background=a,s.setAttribute("data-color",a)}}}function rv(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 lv(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*rv(o,n,e+1/3)),parseInt(255*rv(o,n,e)),parseInt(255*rv(o,n,e-1/3))]}function dv(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 cv,uv=(cv=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:cv(t[0]+t[0]),g:cv(t[1]+t[1]),b:cv(t[2]+t[2])}):{r:cv(e.slice(1,3)),g:cv(e.slice(3,5)),b:cv(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 pv(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 hv{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 Jm({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 ds({selector:"#"+this.id+" .is-draggable"});const l=new ev({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=gv(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=gv(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=gv(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=gv(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 gv(e){var t,i=mv(),n=/.*gradient\s*\(((?:\([^)]*\)|[^)(]*)*)\)/.exec(e);return null!==n?(t=vv(i,n[1])).original.trim()!==n[1].trim()&&(t.parseWarning=!0):t="Failed to find gradient",t}var fv=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)},mv=function(){var e=/\s*,\s*/,t=/(?:[+-]?\d*\.?\d+)(?:%|[a-z]+)?/,i=fv(["(?:",/#(?:[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=fv([i,"(?:\\s+",t,"(?:\\s+",t,")?)?"],""),o=fv(["(?:",n,e,")*",n],""),s=fv(["(?:(",/(?:[+-]?\d*\.?\d+)(?:deg|grad|rad|turn)/,")|",/to\s+((?:(?:left|right)(?:\s+(?:top|bottom))?))/,")"],"");return{gradientSearch:fv(["(?:(",s,")",e,")?(",o,")"],"gi"),colorStopSearch:fv(["\\s*(",i,")","(?:\\s+","(",t,"))?","(?:",e,"\\s*)?"],"gi")}},vv=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 bv=new ei;class yv{constructor(e){this.builder=e,this.grid=new Qo(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")}">✕</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 <div class="div-content-padding">\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 <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\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 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\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")}">✕</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 `;bv.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=Ko(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");bv.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",bv.removeClass(r,"arrow-bottom"),bv.removeClass(r,"arrow-left"),bv.removeClass(r,"arrow-right"),bv.removeClass(r,"center"),bv.removeClass(r,"right"),bv.addClass(r,"arrow-top"),bv.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"),bv.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",bv.removeClass(n,"arrow-bottom"),bv.removeClass(n,"arrow-left"),bv.removeClass(n,"arrow-right"),bv.removeClass(n,"center"),bv.removeClass(n,"right"),bv.addClass(n,"arrow-top"),bv.addClass(n,"left");const r=this.columnMore.querySelector(".cell-locking");e.hasAttribute("data-noedit")?bv.addClass(r,"on"):bv.removeClass(r,"on")})),d=o.querySelector(".cell-remove"),bv.addEventListener(d,"click",(()=>{this.grid.removeColumn(),t.clearControls()})),d=n.querySelector(".cell-prev"),bv.addEventListener(d,"click",(()=>{this.grid.moveColumnPrevious(),t.clearControls()})),d=n.querySelector(".cell-next"),bv.addEventListener(d,"click",(()=>{this.grid.moveColumnNext(),t.clearControls()})),d=n.querySelector(".cell-up"),bv.addEventListener(d,"click",(()=>{this.grid.moveColumnUp(),t.clearControls()})),d=n.querySelector(".cell-down"),bv.addEventListener(d,"click",(()=>{this.grid.moveColumnDown(),t.clearControls()})),d=n.querySelector(".cell-increase"),bv.addEventListener(d,"click",(()=>{this.grid.increaseColumn(),t.clearControls()})),d=n.querySelector(".cell-decrease"),bv.addEventListener(d,"click",(()=>{this.grid.decreaseColumn(),t.clearControls()})),d=n.querySelector(".cell-duplicate"),bv.addEventListener(d,"click",(()=>{this.grid.duplicateColumn(),this.columnMore.style.display="",t.clearControls()})),d=n.querySelector(".cell-html"),d&&bv.addEventListener(d,"click",(()=>{if(!t.cellSelected())return;new Fo(this.builder).view("cell")})),document.addEventListener("mousedown",(e=>{var t=(e=e||window.event).target||e.srcElement;if("flex"===n.style.display){let e=bv.parentsHasClass(t,"columnmore"),i=bv.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&&bv.addEventListener(h,"click",(e=>{let i=t.cellSelected();i&&(i.hasAttribute("data-noedit")?(i.removeAttribute("data-noedit"),i.contentEditable=!0,bv.removeClass(h,"on")):(i.setAttribute("data-noedit",""),i.contentEditable=!1,bv.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&&bv.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&&bv.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&&bv.addEventListener(d,"click",(()=>{let e=t.cellSelected();e&&this.openImageAdjust(e)})),d=c.querySelector(".input-cell-bgremove"),d&&bv.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&&bv.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");"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"}))):bv.removeClass(g,"image-select");let f=u.querySelector("#fileImage3");bv.addEventListener(f,"change",(e=>{let t=f;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;bv.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");bv.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");bv.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=>{bv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected().parentNode;bv.removeClass(n,"expand-10"),bv.removeClass(n,"expand-20"),bv.removeClass(n,"expand-30"),bv.removeClass(n,"expand-40"),bv.removeClass(n,"expand-50"),bv.removeClass(n,"expand-60"),bv.addClass(n,"expand-"+i),this.builder.opts.onChange()}))}));const x=new hv({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=>{bv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected();"dark"===i?(bv.removeClass(n,"is-light-text"),bv.addClass(n,"is-dark-text")):"light"===i?(bv.removeClass(n,"is-dark-text"),bv.addClass(n,"is-light-text")):(bv.removeClass(n,"is-dark-text"),bv.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"),Array.prototype.forEach.call(l,(e=>{bv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected(),o=this.cellSettings.querySelectorAll(".input-cell-padding");Array.prototype.forEach.call(o,(e=>{bv.removeClass(e,"on")})),bv.removeClass(n,"padding-0"),bv.removeClass(n,"padding-10"),bv.removeClass(n,"padding-20"),bv.removeClass(n,"padding-30"),bv.removeClass(n,"padding-40"),bv.removeClass(n,"padding-50"),bv.removeClass(n,"padding-60"),""!==i&&(bv.addClass(n,"padding-"+i),bv.addClass(e,"on")),this.builder.opts.onChange()}))}));const w=c.querySelector(".chk-cell-grayscale");if(bv.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=>{bv.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=>{bv.removeClass(e,"on")})),""===n)Array.prototype.forEach.call(i,(e=>{bv.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=>{bv.removeClass(o,"min-height-"+e)})),bv.addClass(o,"min-height-"+t),300===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');bv.addClass(e,"on")}else if(400===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');bv.addClass(e,"on")}else if(500===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');bv.addClass(e,"on")}else if(600===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');bv.addClass(e,"on")}else if(700===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');bv.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=>{bv.removeClass(o,"min-height-"+e)})),bv.addClass(o,"min-height-"+t),300===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');bv.addClass(e,"on")}else if(400===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');bv.addClass(e,"on")}else if(500===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');bv.addClass(e,"on")}else if(600===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');bv.addClass(e,"on")}else if(700===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');bv.addClass(e,"on")}}))}else Array.prototype.forEach.call(i,(e=>{bv.removeClass(o,"min-height-"+e)})),bv.addClass(o,"min-height-"+n),bv.addClass(e,"on");this.builder.opts.onChange()}))})),l=c.querySelectorAll(".cmd-content-pos"),Array.prototype.forEach.call(l,(e=>{bv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-pos"),n=t.cellSelected();n.style.display="flex",n.style.flexDirection="column";let o=this.cellSettings.querySelectorAll(".cmd-content-pos");Array.prototype.forEach.call(o,(e=>{bv.removeClass(e,"on")})),"topleft"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="flex-start",bv.addClass(e,"on")),"topcenter"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="center",bv.addClass(e,"on")),"topright"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="flex-end",bv.addClass(e,"on")),"centerleft"===i&&(n.style.justifyContent="center",n.style.alignItems="flex-start",bv.addClass(e,"on")),"center"===i&&(n.style.justifyContent="center",n.style.alignItems="center",bv.addClass(e,"on")),"centerright"===i&&(n.style.justifyContent="center",n.style.alignItems="flex-end",bv.addClass(e,"on")),"bottomleft"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="flex-start",bv.addClass(e,"on")),"bottomcenter"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="center",bv.addClass(e,"on")),"bottomright"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="flex-end",bv.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&&bv.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}),bv.observeElement(e,"value",(()=>{this.applyClick()}));else if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:e,theTrigger:d}),bv.observeElement(e,"value",(()=>{this.applyClick()}));else if(this.builder.opts.fileselect){let n=i.querySelector(".is-modal.fileselect"),o=n.querySelector("iframe");"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");"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");bv.observeElement(S,"value",(()=>{this.applyClick()}));let C=this.cellSettings.querySelector("#fileImage4");bv.addEventListener(C,"change",(e=>{let t=C;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;bv.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?(bv.removeClass(e,"block-click"),e.removeAttribute("data-modal-url")):(bv.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(),bv.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=>{bv.removeClass(e,"on")})),bv.hasClass(e,"padding-0")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="0"');bv.addClass(e,"on")}else if(bv.hasClass(e,"padding-10")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="10"');bv.addClass(e,"on")}else if(bv.hasClass(e,"padding-20")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="20"');bv.addClass(e,"on")}else if(bv.hasClass(e,"padding-30")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="30"');bv.addClass(e,"on")}else if(bv.hasClass(e,"padding-40")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="40"');bv.addClass(e,"on")}else if(bv.hasClass(e,"padding-50")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="50"');bv.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=>{bv.removeClass(e,"on")}));let u=0,p=this.builder.colHeight;if(Array.prototype.forEach.call(p,(t=>{bv.hasClass(e,"min-height-"+t)&&(u=t)})),300===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');bv.addClass(e,"on")}else if(400===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');bv.addClass(e,"on")}else if(500===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');bv.addClass(e,"on")}else if(600===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');bv.addClass(e,"on")}else if(700===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');bv.addClass(e,"on")}d=this.cellSettings.querySelectorAll(".cmd-content-pos"),Array.prototype.forEach.call(d,(e=>{bv.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"');bv.addClass(e,"on")}else if("topcenter"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="topcenter"');bv.addClass(e,"on")}else if("topright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="topright"');bv.addClass(e,"on")}else if("centerleft"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="centerleft"');bv.addClass(e,"on")}else if("center"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="center"');bv.addClass(e,"on")}else if("centerright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="centerright"');bv.addClass(e,"on")}else if("bottomleft"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomleft"');bv.addClass(e,"on")}else if("bottomcenter"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomcenter"');bv.addClass(e,"on")}else if("bottomright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomright"');bv.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(bv.addClass(this.columnTool,"active"),this.columnTool.style.top=e.getBoundingClientRect().top-29+window.pageYOffset+"px",this.columnTool.style.left=e.getBoundingClientRect().left-1+"px",bv.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="",bv.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 _v=new ei;class xv{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")}">✕</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;font-size: 14px;line-height: 2;letter-spacing: 1px;border:none;"/>\n </div>\n </div>\n </div>\n </div> \n `;_v.appendHtml(i,e),n=i.querySelector(".editstyles");let o=n.querySelector(".is-modal-close");_v.addEventListener(o,"click",(()=>{_v.removeClass(n,"active");var e=this.builderStuff.querySelector(".is-side.elementstyles");if(!_v.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=>{_v.removeClass(e,"elm-inspected")}))}}));let s=n.querySelector("#inpElmClassName");s.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=n.querySelector("#inpElmClassName").value,i=!1;_v.hasClass(e,"elm-active")&&(i=!0);let o=!1;_v.hasClass(e,"elm-active")&&(o=!0);let s=!1;_v.hasClass(e,"row-active")&&(s=!0),e.setAttribute("class",t),i&&_v.addClass(e,"elm-active"),o&&_v.addClass(e,"cell-active"),s&&_v.addClass(e,"row-active"),_v.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(){_v.hasClass(this.modalStyles,"active")?_v.removeClass(this.modalStyles,"active"):_v.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 wv=new ei;class Sv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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 `;wv.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 hv({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 Cv=new ei;class kv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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 `;Cv.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?Cv.addClass(e,"margin-left-1024-reset"):Cv.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?Cv.addClass(e,"margin-right-1024-reset"):Cv.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),Cv.hasClass(e,"margin-left-1024-reset")?i.querySelector("#chkResetMarginLeft").checked=!0:i.querySelector("#chkResetMarginLeft").checked=!1,Cv.hasClass(e,"margin-right-1024-reset")?i.querySelector("#chkResetMarginRight").checked=!0:i.querySelector("#chkResetMarginRight").checked=!1}}const Ev=new ei;class Av{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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 `;Ev.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 qv=new ei;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 xv(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="%">%</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"/> 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"/> 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 `;qv.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 `;qv.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++)qv.hasClass(e,"size-"+s[a])&&qv.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?qv.addClass(t,"on"):qv.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){qv.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("%")&&(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 Tv=new ei;class Mv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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"/> 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"/> 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"/> 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"/> 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"/> px\n </div>\n </div>\n `;Tv.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 Ov=new ei;class Rv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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 `;Ov.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 Bv=new ei;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 xv(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 `;Bv.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 Iv=new ei;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 xv(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 `;Iv.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 Hv=new ei;class Pv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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"/> 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"/> %\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"/> %\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"/> <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"/> %\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"/> %\n </div>\n </div>\n `;Hv.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 Dv=new ei;class zv{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 `;Dv.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 Fv=new ei;class Uv{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> 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> 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 `;Fv.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}),Fv.removeClass(e,"aos-init"),Fv.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 jv=new ei;let Wv=[];class Gv{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 `;jv.appendHtml(i,o),this.elementStyleEditor=new xv(e),n=i.querySelector(".elementstyles");let s=n.querySelector(".is-side-close");jv.addEventListener(s,"click",(()=>{this.hidePanel()})),s=n.querySelector(".elm-editstyle"),jv.addEventListener(s,"click",(()=>{this.elementStyleEditor.toggleStyleEditor()}))}this.panel=n;const o=new Sv(e);this.elementBoxStyles=o;const s=new kv(e);this.elementSpacingStyles=s;const a=new Av(e);this.elementBorderStyles=a;const r=new Lv(e);this.elementTextStyles=r;const l=new Mv(e);this.elementCornerStyles=l;const d=new Rv(e);this.elementShadowStyles=d;const c=new Nv(e);this.elementDisplayStyles=c;const u=new $v(e);this.elementPositionStyles=u;const p=new Pv(e);this.elementEffectStyles=p;const h=new zv(e);this.elementAttributeStyles=h;const g=new Uv(e);this.elementAnimationStyles=g}click(){(jv.hasClass(this.panel,"active")||jv.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=>{jv.removeClass(e,"elm-inspected")})),setTimeout((()=>{jv.addClass(e,"elm-inspected")}),10),t.querySelector(".elm-list").innerHTML="";let n=e,o=0;for(Wv=[];!jv.hasClass(n,"is-builder")&&(Wv.push(n),n)&&n.tagName;){var s=n.tagName.toLowerCase(),a=jv.createElement("a");a.setAttribute("data-index",o),o++,a.setAttribute("href","#"),a.innerHTML=s,""===t.querySelector(".elm-list").innerHTML?(jv.addClass(a,"active"),t.querySelector(".elm-list").insertAdjacentHTML("afterbegin",a.outerHTML)):(t.querySelector(".elm-list").insertAdjacentHTML("afterbegin"," > "),t.querySelector(".elm-list").insertAdjacentHTML("afterbegin",a.outerHTML)),n=n.parentNode}const r=t.querySelectorAll(".elm-list a");Array.prototype.forEach.call(r,(e=>{jv.addEventListener(e,"click",(t=>{let i=e.getAttribute("data-index");this.builder.inspectedElement=Wv[i],this.inspect(Wv[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=>{jv.removeClass(e,"active")})),setTimeout((()=>{jv.addClass(e,"active")}),10),this.inspect(this.builder.inspectedElement)}hidePanel(){var e=this.builderStuff.querySelector(".is-side.elementstyles");jv.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=>{jv.removeClass(e,"elm-inspected")}))}}const Yv=new ei;class Vv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new Gv(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 `;Yv.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=Ko(e),r=o.querySelector(".elm-add");Yv.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",Yv.removeClass(a,"arrow-bottom"),Yv.removeClass(a,"arrow-right"),Yv.removeClass(a,"arrow-left"),Yv.removeClass(a,"center"),Yv.addClass(a,"arrow-top"),Yv.addClass(a,"center")):(a.style.top=t+window.pageYOffset-o-8+"px",a.style.left=i-n/2+10+"px",Yv.removeClass(a,"arrow-top"),Yv.removeClass(a,"arrow-right"),Yv.removeClass(a,"arrow-left"),Yv.removeClass(a,"center"),Yv.addClass(a,"arrow-bottom"),Yv.addClass(a,"center")),a.setAttribute("data-mode","elm"),!1}));const l=o.querySelector(".elm-remove");Yv.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(Yv.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(Yv.parentsHasAttribute(e,"data-subblock"))for(;!e.parentNode.hasAttribute("data-subblock")&&1===n.parentNode.childElementCount;)e=e.parentNode;else for(;!Yv.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");Yv.removeClass(e,"active"),t.checkEmpty()}else if(0===o.childElementCount){n.removeChild(o),t.fixLayout(n,e);let s=i.querySelector(".is-column-tool");Yv.removeClass(s,"active")}}const s=document.querySelectorAll(".is-subblock");Array.prototype.forEach.call(s,(e=>{const t=Yv.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");Yv.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",Yv.removeClass(s,"arrow-bottom"),Yv.removeClass(s,"arrow-right"),Yv.removeClass(s,"arrow-left"),Yv.removeClass(s,"center"),Yv.addClass(s,"arrow-top"),Yv.addClass(s,"center")):(s.style.top=t+window.pageYOffset-o-8+"px",s.style.left=i-n/2+10+"px",Yv.removeClass(s,"arrow-top"),Yv.removeClass(s,"arrow-right"),Yv.removeClass(s,"arrow-left"),Yv.removeClass(s,"center"),Yv.addClass(s,"arrow-bottom"),Yv.addClass(s,"center"))}));const c=s.querySelector(".elm-up");Yv.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(;!Yv.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");Yv.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(;!Yv.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");Yv.addEventListener(p,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeElement;const t=e.cloneNode(!0);Yv.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&&Yv.addEventListener(h,"click",(()=>{s.style.display="",this.elementPanel.showPanel()}));const g=s.querySelector(".elm-settings");g&&Yv.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=Yv.parentsHasClass(t,"elmmore"),i=Yv.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=>{Yv.removeClass(e,"elm-active")}))}position(){let e=this.elementTool,t=this.elementMore;Yv.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",Yv.removeClass(t,"arrow-bottom"),Yv.removeClass(t,"arrow-right"),Yv.removeClass(t,"arrow-left"),Yv.removeClass(t,"center"),Yv.addClass(t,"arrow-top"),Yv.addClass(t,"center")):(t.style.top=o+window.pageYOffset-r-8+"px",t.style.left=s-a/2+10+"px",Yv.removeClass(t,"arrow-top"),Yv.removeClass(t,"arrow-right"),Yv.removeClass(t,"arrow-left"),Yv.removeClass(t,"center"),Yv.addClass(t,"arrow-bottom"),Yv.addClass(t,"center")),setTimeout((()=>{Yv.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=>{Yv.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(Yv.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){Yv.hasClass(i.parentNode,"img-circular")&&(o=i.parentNode),Yv.getParentByTag(i,"a")&&(o=i.parentNode)}}else if(Yv.hasClass(i,"cell-active")||i.hasAttribute("data-subblock"));else if(Yv.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(Yv.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(Yv.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(),Yv.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 Xv=new ei;class Kv{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")}: \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")}: \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")}: \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")} \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")} \n </label>\n\n <label style="display:block;margin-top:5px;margin-bottom:5px;">\n ${t.out("Row Tool Position")}: \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")}: \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")} \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")} \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")} \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")} \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")}: \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")}: \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")}: \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")}: \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")}: \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>`;Xv.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(Xv.addEventListener(a,"click",(()=>{t.hideModal(o)})),a=o.querySelector(".input-ok"),Xv.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 Jt(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&&(Xv.removeClass(n,"active"),Xv.addClass(n,"deactive"),Xv.removeClass(o,"active"),Xv.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 Zv=new ei;class Qv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i,this.elementStyleEditor=new xv(e),this.hyperlink=new Om(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 L="";for(_=0;_<e.opts.defaultFontSizes.length;_++)L+=`<button title="${e.opts.defaultFontSizes[_]}px" data-value="${e.opts.defaultFontSizes[_]}">${e.opts.defaultFontSizes[_]}</button>`;let T=`<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;">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 ${L}\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 `;Zv.appendHtml(i,T),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(){Zv.checkEditable()&&(""!==Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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(Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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(Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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(Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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";Zv.removeClass(t,"deactive"),Zv.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");Zv.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 Jt(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",Zv.removeClass(e.querySelector(".is-drop-area"),"image-dropping"),e.querySelector(".input-src").value=""}))}));const S=this.builderStuff.querySelector(".insertimage"),C=S.querySelector("#fileInsertImage");Zv.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");Zv.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");Zv.addEventListener(E,"click",(()=>{t.hideModal(S)}));const A=S.querySelector(".is-drop-area");Zv.addEventListener(A,"dragover",(()=>{Zv.addClass(A,"image-dropping")})),Zv.addEventListener(A,"dragleave",(()=>{Zv.removeClass(A,"image-dropping")}));const q=S.querySelector(".is-preview-area i");Zv.addEventListener(q,"click",(()=>{S.querySelector("#fileInsertImage").value="",S.querySelector(".is-preview-area").style.display="none",A.style.display="block",Zv.removeClass(A,"image-dropping")}));const L=S.querySelector(".input-src");if(Zv.addEventListener(L,"keyup",(()=>{S.querySelector("#fileInsertImage").value="",S.querySelector(".is-preview-area").style.display="none",A.style.display="block",Zv.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){Zv.addClass(S.querySelector(".image-src"),"image-select");const e=S.querySelector(".input-select");e&&Zv.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),"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 Zv.removeClass(L,"image-select");i.querySelectorAll("button.rte-zoom").forEach((e=>{Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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(Zv.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(Zv.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"}Zv.removeClass(t,"deactive"),Zv.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=>{Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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(Zv.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";Zv.removeClass(t,"deactive"),Zv.addClass(t,"active")}}))})),this.rteTool.querySelectorAll("button.rte-more").forEach((e=>{e.addEventListener("click",(()=>{this.showRteMore()}))}));let T=this.elementRteTool.querySelector("button.rte-more");T&&Zv.addEventListener(T,"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=>{Zv.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=Zv.getSelected();if("bold"===n)if(""===o.trim()){var s=i.tagName.toLowerCase();"b"===s?(Zv.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(""===o.trim())if("i"===(s=i.tagName.toLowerCase()))Zv.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&&(""===o.trim()?"u"===(s=i.tagName.toLowerCase())?(Zv.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&&(""===o.trim()?"strike"===(s=i.tagName.toLowerCase())?(Zv.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&&document.execCommand("superscript",!1,null),"subscript"===n&&document.execCommand("subscript",!1,null),"uppercase"===n){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&&(""===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=>{Zv.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);Zv.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;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=>{Zv.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;i.style.textAlign=t,this.getState(),this.builder.opts.onChange()}))})),M=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(M,(e=>{Zv.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;i.style.textAlign=t,this.getState(),this.builder.opts.onChange()}))})),M=this.rteListOptions.querySelectorAll("button[data-action]"),Array.prototype.forEach.call(M,(e=>{Zv.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")&&Zv.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=>{Zv.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=>{Zv.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=Zv.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=>{Zv.removeClass(e,"on")})),Zv.addClass(this.rteParagraphOptions.querySelector('[data-block="'+i+'"]'),"on")}}else document.execCommand("formatBlock",!1,"<"+i+">");if(this.rteParagraphOptions.style.display="none",Zv.removeClass(this.rteParagraphOptions,"active"),Zv.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=>{Zv.addEventListener(e,"click",(e=>{this.builder.uo.saveForUndo(!0);let t=a.querySelectorAll(".is-pop-tab-item");Array.prototype.forEach.call(t,(e=>{Zv.removeClass(e,"active")})),Zv.addClass(e.target,"active"),"forecolor"===a.querySelector(".active").getAttribute("data-value")?a.setAttribute("data-command","forecolor"):a.setAttribute("data-command","backcolor")}))})),new ev({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=Zv.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=>{Zv.addEventListener(e,"click",(()=>{let i,n=e.getAttribute("data-value");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);var o=Zv.getSelected();if(""===o.trim()||""!==o.trim()&&i.innerText===o)this.builder.uo.saveForUndo(),this.builder.opts.fontSizeClassValues.length>0?this.applyClassFontSize(i,n):this.applyInlineFontSize(i,n);else{this.builder.uo.saveForUndo();let e,t=Number(window.getComputedStyle(i).getPropertyValue("font-size").match(/\d+/)[0]);document.execCommand("fontSize",!1,"7");for(var s=document.getElementsByTagName("font"),a=0,r=s.length;a<r;++a)"7"===s[a].size&&(s[a].removeAttribute("size"),s[a].style.fontSize=t+"px",Zv.selectElementContents(s[a]),e=s[a]);e&&(this.builder.opts.fontSizeClassValues.length>0?this.applyClassFontSize(e,n):this.applyInlineFontSize(e,n))}if(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=>{Zv.addEventListener(e,"click",(()=>{let i,n=e.getAttribute("data-value");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);let o=i;for(;o;){if("BODY"===o.tagName||"HTML"===o.tagName)return!1;if("inline"!==window.getComputedStyle(o).getPropertyValue("display")){i=o;break}o=o.parentNode}this.builder.uo.saveForUndo();let s,a=!1,r=i.style.lineHeight;if(r&&-1===r.indexOf("px")?r=parseFloat(r):a=!0,a){let e=Number(window.getComputedStyle(i).getPropertyValue("font-size").match(/\d+/)[0]);r=Number(window.getComputedStyle(i).getPropertyValue("line-height").match(/\d+/)[0]),e>r?r=e/r:e<r?r/=e:r=1}if("+"===n?s=r+.1:"-"===n?(s=r-.1,s<.2&&(s=.2)):s=""===n?"":n,Zv.doFunction(i,(function(e){"inline"!==window.getComputedStyle(e).getPropertyValue("display")&&(e.style.lineHeight=s)}),!0),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=>{Zv.addEventListener(e,"click",(()=>{let i,n=e.getAttribute("data-value");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),this.builder.uo.saveForUndo();let o,s=parseInt(window.getComputedStyle(i).getPropertyValue("letter-spacing"));if(isNaN(s)&&(s=0),o="+"===n?s+1+"px":"-"===n?s-1+"px":""===n?"":n+"px",Zv.doFunction(i,(function(e){e.style.letterSpacing=o}),!0),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=Zv.parentsHasClass(t,"rte-align"),n=Zv.parentsHasClass(t,"rte-align-options"),i||n||(this.rteAlignOptions.style.display="",Zv.removeClass(this.rteAlignOptions,"active"),Zv.addClass(this.rteAlignOptions,"deactive"))),"flex"===this.rteListOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-list"),n=Zv.parentsHasClass(t,"rte-list-options"),i||n||(this.rteListOptions.style.display="",Zv.removeClass(this.rteListOptions,"active"),Zv.addClass(this.rteListOptions,"deactive"))),"flex"===this.rteFormattingOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-formatting"),n=Zv.parentsHasClass(t,"rte-formatting-options"),i||n||(this.rteFormattingOptions.style.display="",Zv.removeClass(this.rteFormattingOptions,"active"),Zv.addClass(this.rteFormattingOptions,"deactive"))),"flex"===this.rteColorPicker.style.display&&(i=Zv.parentsHasClass(t,"rte-color"),n=Zv.parentsHasClass(t,"rte-color-picker"),o=Zv.parentsHasClass(t,"pickcolormore"),i||n||o||(this.rteColorPicker.style.display="",Zv.removeClass(this.rteColorPicker,"active"),Zv.addClass(this.rteColorPicker,"deactive"))),"flex"===this.rteFontFamilyOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-fontfamily"),n=Zv.parentsHasClass(t,"rte-fontfamily-options"),i||n||(this.rteFontFamilyOptions.style.display="",Zv.removeClass(this.rteFontFamilyOptions,"active"),Zv.addClass(this.rteFontFamilyOptions,"deactive"))),"flex"===this.rteIconOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-icon"),n=Zv.parentsHasClass(t,"rte-icon-options"),o=!1,t.tagName&&(o="i"===t.tagName.toLowerCase()&&""===t.innerHTML),i||n||o||(this.rteIconOptions.style.display="",Zv.removeClass(this.rteIconOptions,"active"),Zv.addClass(this.rteIconOptions,"deactive"))),"flex"===this.rteCustomTagOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-tags"),n=Zv.parentsHasClass(t,"rte-customtag-options"),i||n||(this.rteCustomTagOptions.style.display="",Zv.removeClass(this.rteCustomTagOptions,"active"),Zv.addClass(this.rteCustomTagOptions,"deactive"))),"flex"===this.rteParagraphOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-paragraph"),n=Zv.parentsHasClass(t,"rte-paragraph-options"),i||n||(this.rteParagraphOptions.style.display="",Zv.removeClass(this.rteParagraphOptions,"active"),Zv.addClass(this.rteParagraphOptions,"deactive"))),"flex"===this.rteTextSettingOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-textsettings"),n=Zv.parentsHasClass(t,"rte-textsetting-options"),i||n||(this.rteTextSettingOptions.style.display="",Zv.removeClass(this.rteTextSettingOptions,"active"),Zv.addClass(this.rteTextSettingOptions,"deactive"))),"flex"===this.rteZoomOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-zoom"),n=Zv.parentsHasClass(t,"rte-zoom-options"),i||n||(this.rteZoomOptions.style.display="",Zv.removeClass(this.rteZoomOptions,"active"),Zv.addClass(this.rteZoomOptions,"deactive"))),"flex"===this.rteMoreOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-more"),n=Zv.parentsHasClass(t,"rte-more-options"),o=Zv.parentsHasClass(t,"is-rte-pop"),s=Zv.parentsHasClass(t,"is-modal"),a=!1,t.tagName&&(a="i"===t.tagName.toLowerCase()&&""===t.innerHTML&&Zv.parentsHasClass(w,"rte-more-options")),i||n||o||s||a||(this.rteMoreOptions.style.display="",Zv.removeClass(this.rteMoreOptions,"active"),Zv.addClass(this.rteMoreOptions,"deactive"))),"flex"===this.elementRteMoreOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-more"),n=Zv.parentsHasClass(t,"elementrte-more-options"),o=Zv.parentsHasClass(t,"is-rte-pop"),s=Zv.parentsHasClass(t,"is-modal"),a=!1,i||n||o||s||a||(this.elementRteMoreOptions.style.display="",Zv.removeClass(this.elementRteMoreOptions,"active"),Zv.addClass(this.elementRteMoreOptions,"deactive")))}))}viewSnippets(){const e=new Vo(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(Zv.hasClass(i,"active"))Zv.removeClass(i,"active"),Zv.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(Zv.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"),Zv.hasClass(this.builder.inspectedElement,"icon")&&(i.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-s+"px"),i.style.right="auto";Zv.removeClass(i,"deactive"),Zv.addClass(i,"active")}}showRteMore(){const e=this.rteMoreOptions;Zv.hasClass(e,"active")?(Zv.removeClass(e,"active"),Zv.addClass(e,"deactive")):(this.positionRteMore(),Zv.removeClass(e,"deactive"),Zv.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;Zv.hasClass(e,"active")?(Zv.removeClass(e,"active"),Zv.addClass(e,"deactive")):(this.positionElementRteMore(),Zv.removeClass(e,"deactive"),Zv.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",Zv.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(Zv.hasClass(e,"size-"+o[a])){s="size-"+o[a];let t=o[a];Zv.doFunction(e,(e=>{Zv.removeClass(e,"size-"+t)}),!0)}else{let t=o[a];Zv.doFunction(e,(e=>{Zv.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]),Zv.doFunction(e,(function(e){Zv.addClass(e,s)}),!0)}else"-"===n?(a=1*s.replace("size-",""),(r=o.indexOf(a))>=1&&(s="size-"+o[r-1]),Zv.doFunction(e,(function(e){Zv.addClass(e,s)}),!0)):""===n||Zv.doFunction(e,(function(e){Zv.addClass(e,n)}),!0);Zv.doFunction(e,(function(e){e.style.fontSize=""}),!0)}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,Zv.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()||Zv.hasClass(t,"is-social")||Zv.hasClass(t,"is-rounded-button-medium")||Zv.hasClass(t,"cell-active"))&&!Zv.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(Zv.hasClass(t,"spacer")||"video"===t.tagName.toLowerCase()||Zv.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(Zv.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(Zv.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")?Zv.addClass(this.rteTool.querySelector("button[data-command=bold]"),"on"):Zv.removeClass(this.rteTool.querySelector("button[data-command=bold]"),"on"),document.queryCommandState("italic")?Zv.addClass(this.rteTool.querySelector("button[data-command=italic]"),"on"):Zv.removeClass(this.rteTool.querySelector("button[data-command=italic]"),"on"),document.queryCommandState("underline")?Zv.addClass(this.rteTool.querySelector("button[data-command=underline]"),"on"):Zv.removeClass(this.rteTool.querySelector("button[data-command=underline]"),"on"),document.queryCommandState("strikethrough")?Zv.addClass(this.rteFormattingOptions.querySelector("[data-command=strikethrough]"),"on"):Zv.removeClass(this.rteFormattingOptions.querySelector("[data-command=strikethrough]"),"on"),document.queryCommandState("superscript")?Zv.addClass(this.rteFormattingOptions.querySelector("[data-command=superscript]"),"on"):Zv.removeClass(this.rteFormattingOptions.querySelector("[data-command=superscript]"),"on"),document.queryCommandState("subscript")?Zv.addClass(this.rteFormattingOptions.querySelector("[data-command=subscript]"),"on"):Zv.removeClass(this.rteFormattingOptions.querySelector("[data-command=subscript]"),"on");let e=Zv.textSelection();if(!e)return;"uppercase"===e.style.textTransform?Zv.addClass(this.rteFormattingOptions.querySelector("[data-command=uppercase]"),"on"):Zv.removeClass(this.rteFormattingOptions.querySelector("[data-command=uppercase]"),"on"),document.queryCommandState("JustifyFull")?Zv.addClass(this.rteAlignOptions.querySelector("[data-align=justify]"),"on"):Zv.removeClass(this.rteAlignOptions.querySelector("[data-align=justify]"),"on"),document.queryCommandState("JustifyLeft")?Zv.addClass(this.rteAlignOptions.querySelector("[data-align=left]"),"on"):Zv.removeClass(this.rteAlignOptions.querySelector("[data-align=left]"),"on"),document.queryCommandState("JustifyRight")?Zv.addClass(this.rteAlignOptions.querySelector("[data-align=right]"),"on"):Zv.removeClass(this.rteAlignOptions.querySelector("[data-align=right]"),"on"),document.queryCommandState("JustifyCenter")?Zv.addClass(this.rteAlignOptions.querySelector("[data-align=center]"),"on"):Zv.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(/"/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?Zv.addClass(e,"on"):Zv.removeClass(e,"on")}))}let n=this.rteParagraphOptions.querySelectorAll("[data-block]");Array.prototype.forEach.call(n,(e=>{Zv.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||Zv.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++)Zv.hasClass(this.builder.activeIcon,"size-"+n[i])&&(t="size-"+n[i]);this.builder.activeIcon.className=e+(""!==t?" "+t:""),Zv.addClass(this.builder.activeIcon,"icon-active"),Zv.selectElementContents(this.builder.activeIcon),this.util.saveSelection()}else{if(!Zv.textSelection())return;this.builder.uo.saveForUndo(),this.util.pasteHtmlAtCaret('<i class="'+e+' icon-active"></i>',!0),this.builder.activeIcon=document.querySelector(".icon-active"),Zv.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(Zv.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=Zv.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,Zv.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;!Zv.hasClass(g,"is-builder");)g=g.parentNode;Zv.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(Zv.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=Zv.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,Zv.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;!Zv.hasClass(b,"is-builder");)b=b.parentNode;Zv.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 Jv=new ei;class eb{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",Jv.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 tb=new ei;class ib{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>';tb.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||nb(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||nb(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||nb(this,i)||((e=this).setAttribute("title",e.getAttribute("data-title")),n.style.display="none")}),!1)}}function nb(e,t){if(e===t)return!1;for(;t&&t!==e;)t=t.parentNode;return t===e}const ob=new ei;class sb{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 `;ob.appendHtml(this.builderStuff,n);this.builderStuff.querySelectorAll("div.is-lightbox").forEach((e=>{e.addEventListener("click",(t=>{if(ob.parentsHasClass(t.target,"lightbox-content"))return;ob.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?(ob.addClass(n,"light"),ob.removeClass(n,"dark")):(ob.addClass(n,"dark"),ob.removeClass(n,"light")),n.style.display="flex",window.frameElement||(document.body.style.overflowY="hidden"),setTimeout((()=>{ob.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?(ob.addClass(n,"light"),ob.removeClass(n,"dark")):(ob.addClass(n,"dark"),ob.removeClass(n,"light")),n.style.display="flex",window.frameElement||(document.body.style.overflowY="hidden"),setTimeout((()=>{ob.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?(ob.addClass(n,"light"),ob.removeClass(n,"dark")):(ob.addClass(n,"dark"),ob.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((()=>{ob.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 ab=new ei;class rb{constructor(){let e=document.querySelectorAll(".is-tabs a");Array.prototype.forEach.call(e,(e=>{ab.addEventListener(e,"click",(t=>{const i=e.getAttribute("data-menu");if(i)return document.querySelector("#"+i).style.display="block",t.preventDefault(),!1;if(ab.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=>{ab.removeClass(e,"active")})),s=document.querySelectorAll('.is-tabs-more[data-group="'+o+'"] > a'),Array.prototype.forEach.call(s,(e=>{ab.removeClass(e,"active")})),ab.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=>{ab.addEventListener(e,"click",(t=>{if(ab.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=>{ab.removeClass(e,"active")})),o=document.querySelectorAll('.is-tabs-more[data-group="'+n+'"] > a'),Array.prototype.forEach.call(o,(e=>{ab.removeClass(e,"active")})),ab.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=ab.parentsHasAttribute(i,"data-menu"),t=ab.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=ab.parentsHasAttribute(i,"data-menu"),t=ab.parentsHasClass(i,"is-tabs-more");e||t||document.querySelector(".is-tabs-more")&&(document.querySelector(".is-tabs-more").style.display="none")}}))}}const lb=new ei;class db{constructor(e={}){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:!0,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,autoResizeImageEmbed:!0,maxEmbedImageWidth:1600,zoom:1,useLightbox:!1,imageRenameOnEdit:!0,disableAutoEmbedVideo:!1,colHeight:[300,350,400,450,500,550,600,650,700]},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),"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=[]):"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 Jt(this);this.util=t,this.isTouchSupport=t.isTouchSupport(),this.isIE=t.detectIE(),this.opts.clearPreferences&&t.clearPreferences(),this.uoTm=null,this.uo=new jo(this),this.dom=lb,this.cbDom=lb,this.autoclean=!1,this.filesAdded="",this.opts.emailMode&&this.applyStyle("emailmode",".is-builder > div {display: block}");let i=document.querySelector("#_cbhtml");i||(i=lb.createElement("div"),i.id="_cbhtml",i.className="is-ui",lb.appendChild(document.body,i)),this.builderStuff=i,Yo(),this.preferences=new Kv(this),(e=>{const t=e.util,i=e.builderStuff,n=new Qo(e),o=new Fo(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")}">✕</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>`;cs.appendHtml(i,r),new ds({selector:".is-draggable"});const l=document.querySelector(".grideditor");document.addEventListener("click",(e=>{var t=(e=e||window.event).target||e.srcElement;if(cs.hasClass(l,"active")){let e=cs.parentsHasClass(t,"is-builder"),i=cs.parentsHasClass(t,"grideditor"),n=cs.parentsHasClass(t,"is-modal"),o=cs.parentsHasClass(t,"is-pop"),s=cs.parentsHasClass(t,"rte-grideditor")||cs.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");cs.addEventListener(d,"click",(()=>{cs.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");cs.addEventListener(c,"click",(()=>{const t=document.querySelectorAll(e.opts.container);Array.prototype.forEach.call(t,(e=>{e.hasAttribute("gridoutline")?(e.removeAttribute("gridoutline"),cs.removeClass(c,"on")):(e.setAttribute("gridoutline",""),cs.addClass(c,"on"))}))}));const u=Ko(e);d=l.querySelector(".cell-add"),cs.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",cs.removeClass(u,"arrow-bottom"),cs.removeClass(u,"arrow-left"),cs.removeClass(u,"arrow-top"),cs.removeClass(u,"center"),cs.removeClass(u,"left"),cs.addClass(u,"arrow-right"),cs.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"),cs.addEventListener(d,"click",(()=>{n.moveColumnPrevious(),t.clearControls()})),d=l.querySelector(".cell-next"),cs.addEventListener(d,"click",(()=>{n.moveColumnNext(),t.clearControls()})),d=l.querySelector(".cell-increase"),cs.addEventListener(d,"click",(()=>{n.increaseColumn(),t.clearControls()})),d=l.querySelector(".cell-decrease"),cs.addEventListener(d,"click",(()=>{n.decreaseColumn(),t.clearControls()})),d=l.querySelector(".cell-up"),cs.addEventListener(d,"click",(()=>{n.moveColumnUp(),t.clearControls()})),d=l.querySelector(".cell-down"),cs.addEventListener(d,"click",(()=>{n.moveColumnDown(),t.clearControls()})),d=l.querySelector(".cell-duplicate"),cs.addEventListener(d,"click",(()=>{n.duplicateColumn(),t.clearControls()})),d=l.querySelector(".cell-remove"),cs.addEventListener(d,"click",(()=>{n.removeColumn(),t.clearControls()})),d=l.querySelector(".cell-html"),d&&cs.addEventListener(d,"click",(()=>{t.cellSelected()&&o.view("cell")})),d=l.querySelector(".cell-settings"),d&&cs.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&&cs.addEventListener(p,"click",(i=>{let n=t.cellSelected();n&&(n.hasAttribute("data-noedit")?(n.removeAttribute("data-noedit"),n.contentEditable=!0,cs.removeClass(p,"on")):(n.setAttribute("data-noedit",""),n.contentEditable=!1,cs.addClass(p,"on"),t.clearActiveElement(!0)),e.colTool.showHideLockIndicator(n),e.element.applyBehavior(n),i.preventDefault())})),d=l.querySelector(".row-add"),cs.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",cs.removeClass(u,"arrow-bottom"),cs.removeClass(u,"arrow-left"),cs.removeClass(u,"arrow-top"),cs.removeClass(u,"center"),cs.removeClass(u,"left"),cs.addClass(u,"arrow-right"),cs.addClass(u,"right"),u.setAttribute("data-mode","row")})),d=l.querySelector(".row-up"),cs.addEventListener(d,"click",(()=>{n.moveRowUp(),t.clearControls()})),d=l.querySelector(".row-down"),cs.addEventListener(d,"click",(()=>{n.moveRowDown(),t.clearControls()})),d=l.querySelector(".row-duplicate"),cs.addEventListener(d,"click",(()=>{n.duplicateRow(),t.clearControls()})),d=l.querySelector(".row-remove"),cs.addEventListener(d,"click",(()=>{n.removeRow(),t.clearControls()})),d=l.querySelector(".row-html"),d&&cs.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=>{lb.hasClass(e,"preview")&&(this.preview=!0)})),this.preview||this.opts.snippetJSON.snippets.length>0&&mr(this),this.colTool=new yv(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 Vv(this),this.element=new Vm(this),this.rte=new Qv(this),this.tooltip=new ib(this),this.lightbox=new sb(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 rb,this.colorPicker=new ev({lang:this.opts.lang,colors:this.opts.colors}),document.addEventListener("click",this.doDocumentClick=e=>{var i=(e=e||window.event).target||e.srcElement;let n=lb.hasClass(i.parentNode,"is-builder"),o=lb.hasClass(i,"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=i;for(;y&&y.tagName&&"BODY"!==y.tagName&&"HTML"!==y.tagName;){if(lb.hasClass(y,"is-builder")&&(s=!0),lb.hasClass(y,"is-modal")&&(a=!0),lb.hasClass(y,"is-side")&&(r=!0),lb.hasClass(y,"is-pop")&&(l=!0),lb.hasClass(y,"is-tool")&&(d=!0),(lb.hasClass(y,"is-rte-tool")||lb.hasClass(y,"is-elementrte-tool"))&&(c=!0),lb.hasClass(y,"is-rte-pop")&&(u=!0),lb.hasClass(y,"row-add-initial")&&(p=!0),(lb.hasClass(y,"sl-wrapper")||lb.hasClass(y,"sl-overlay")||lb.hasClass(y,"sl-close"))&&(h=!0),(lb.hasClass(y,"is-selectbox")||lb.hasClass(y,"is-selectbox-options"))&&(g=!0),this.opts.specialElementClasses)for(let e=0;e<this.opts.specialElementClasses.length;e++)lb.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"===i.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)||n&&!p||o)&&(lb.getSelected()||(t.clearActiveCell(),t.clearControls())),!l&&!lb.parentsHasId(i,"_cbhtml")){const e=document.querySelectorAll(".is-pop");Array.prototype.forEach.call(e,(e=>{lb.parentsHasId(e,"_cbhtml")||(e.style.display="")}))}}}),document.addEventListener("mousedown",this.doDocumentMousedown=e=>{var i=(e=e||window.event).target||e.srcElement;lb.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 db(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.opts.onRender(),this.setZoomOnArea()}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)}))}lb.addClass(e,"is-builder"),this.preferences.initBuilder(e);if(lb.elementChildren(e).forEach((e=>{if(lb.hasClass(e,"row-add-initial"))return;(e.style.marginLeft||e.style.marginRight)&&(e.style.border="none"),this.rowtool=new Km(this),this.rowtool.render(e);new Qm(this).render(e);lb.elementChildren(e).forEach((e=>{if(lb.hasClass(e,"is-row-tool")||lb.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){e.querySelectorAll("p,h1,h2,h3,h4,h5,h6,table,ul,ol,pre,blockquote,code,figcaption,label,legend,button,a").length>0&&(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 Va(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||lb.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"),lb.removeClass(n,"snippet-item"),n.outerHTML=s;else{let e=lb.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"),lb.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 Fo(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)}}return i.readHtml(e)}viewHtmlNormal(){new Fo(this).viewHtmlNormal()}viewHtmlLarger(){new Fo(this).viewHtmlLarger()}readHtml(e,t,i){return new Fo(this).readHtml(e,t,i)}fromViewToActual(e){return new Fo(this).fromViewToActual(e)}colorpicker(e,t){return new ev({onPick:e,color:t,colors:this.opts.colors,animateModal:this.opts.animateModal,elementToAnimate:this.opts.container,lang:this.opts.lang})}gradientpicker(){return new hv({gradientcolors:this.opts.gradientcolors,colors:this.opts.colors,animateModal:this.opts.animateModal,elementToAnimate:this.opts.container,lang:this.opts.lang})}dropdown(e,t){new ps(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 Fo(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"),lb.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 eb({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=>{lb.hasClass(t,"please-wait")&&(lb.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=>{lb.hasClass(t,"please-wait")&&(lb.removeClass(t,"please-wait"),t.parentNode.parentNode.querySelector('input[type="text"]').value=e,t.parentNode.parentNode.querySelector('input[type="file"]').value="")}))}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");lb.removeClass(t,"active"),t=document.querySelector(".is-modal.imageselect"),lb.removeClass(t,"active"),t=document.querySelector(".is-modal.fileselect"),lb.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 ev({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 ds({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 ds({selector:".is-draggable"})}}))}}addHtml(e){lb.appendHtml(this.builderStuff,e)}addCss(e){lb.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&&lb.addEventListener(e,"click",(()=>{this.rte.showRteMore()}))}let r=o.querySelector(i);r=r||s.querySelector(i),r&&(r.setAttribute("data-title",r.getAttribute("title")),lb.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&&lb.addEventListener(e,"click",(()=>{this.rte.showRteMore()}))}let r=o.querySelectorAll(i);r.forEach((e=>{e.setAttribute("data-title",e.getAttribute("title")),lb.addEventListener(e,"click",(e=>{n(e)}))})),r=s.querySelectorAll(i),r.forEach((e=>{e.setAttribute("data-title",e.getAttribute("title")),lb.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&&lb.addEventListener(e,"click",(()=>{this.rte.showElementRteMore()}))}let r=o.querySelector(i);r=r||s.querySelector(i),r&&(r.setAttribute("data-title",r.getAttribute("title")),lb.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 ds({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 ds({selector:".is-draggable"}),s}getIcons(){return this.rte.getIcons()}showSidePanel(e){let t=this.builderStuff.querySelectorAll(".is-side");Array.prototype.forEach.call(t,(e=>{lb.removeClass(e,"active")})),lb.addClass(e,"active")}hideSidePanel(e){lb.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 Fo(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&&mr(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&&(lb.removeClass(document.body,"colored"),lb.removeClass(document.body,"colored-dark"),lb.removeClass(document.body,"light"),lb.addClass(document.body,"dark")),"colored"===e&&(lb.removeClass(document.body,"dark"),lb.removeClass(document.body,"colored-dark"),lb.removeClass(document.body,"light"),lb.addClass(document.body,"colored")),"colored-dark"===e&&(lb.removeClass(document.body,"dark"),lb.removeClass(document.body,"colored"),lb.removeClass(document.body,"light"),lb.addClass(document.body,"colored-dark")),""===e&&(lb.removeClass(document.body,"dark"),lb.removeClass(document.body,"colored-dark"),lb.removeClass(document.body,"colored"),lb.removeClass(document.body,"light")),"light"===e&&(lb.removeClass(document.body,"dark"),lb.removeClass(document.body,"colored-dark"),lb.removeClass(document.body,"colored"),lb.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&&(lb.removeClass(document.body,"dark"),lb.removeClass(document.body,"colored-dark"),lb.removeClass(document.body,"colored"),lb.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"))&&lb.hasClass(e,"block-click")&&this.openMedia(e)}handleCellClick(e,t){this.lightboxOpen(e);this.util.clearActiveCell(),this.activeCol=e;let i=t.target;lb.addClass(e,"cell-active");let n=e.parentNode;lb.addClass(n,"row-active");const o=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(o,(e=>{lb.removeClass(e,"builder-active")})),lb.addClass(n.parentNode,"builder-active"),n.childElementCount-2==1||lb.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")?lb.addClass(t,"on"):lb.removeClass(t,"on")}let a=lb.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&&lb.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&&lb.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=lb.getElementOffset(e);let i=t.top+t.height;const o=lb.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()),lb.hasClass(e.parentNode.parentNode,"is-builder")||lb.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){lb.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>';lb.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,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;r.insertNode(l),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 cb={exports:{}};!function(e,t){
|
|
118
|
+
*/function Sm(e,t,i,n){var o=e.naturalWidth,s=e.naturalHeight;if(o+s){var a=i.width,r=i.height,l=t.getContext("2d");l.save(),function(e,t,i,n,o){switch(o){case 5:case 6:case 7:case 8:e.width=n,e.height=i;break;default:e.width=i,e.height=n}switch(o){case 2:t.translate(i,0),t.scale(-1,1);break;case 3:t.translate(i,n),t.rotate(Math.PI);break;case 4:t.translate(0,n),t.scale(1,-1);break;case 5:t.rotate(.5*Math.PI),t.scale(1,-1);break;case 6:t.rotate(.5*Math.PI),t.translate(0,-n);break;case 7:t.rotate(.5*Math.PI),t.translate(i,-n),t.scale(-1,1);break;case 8:t.rotate(-.5*Math.PI),t.translate(-i,0)}}(t,l,a,r,i.orientation),function(e){var t=e.naturalWidth;if(t*e.naturalHeight>1048576){var i=document.createElement("canvas");i.width=i.height=1;var n=i.getContext("2d");return n.drawImage(e,1-t,0),0===n.getImageData(0,0,1,1).data[3]}return!1}(e)&&(o/=2,s/=2);var d=1024,c=document.createElement("canvas");c.width=c.height=d;for(var u=c.getContext("2d"),p=n?function(e,t,i){var n=document.createElement("canvas");n.width=1,n.height=i;var o=n.getContext("2d");o.drawImage(e,0,0);for(var s=o.getImageData(0,0,1,i).data,a=0,r=i,l=i;l>a;)0===s[4*(l-1)+3]?r=l:a=l,l=r+a>>1;var d=l/i;return 0===d?1:d}(e,0,s):1,h=Math.ceil(d*a/o),g=Math.ceil(d*r/s/p),f=0,m=0;f<s;){for(var v=0,b=0;v<o;)u.clearRect(0,0,d,d),u.drawImage(e,-v,-f),l.drawImage(c,0,0,d,d,b,m,h,g),v+=d,b+=h;f+=d,m+=g}l.restore(),c=u=null}}var Cm,km;function Em(e){if(window.Blob&&e instanceof Blob){if(!Cm)throw Error("No createObjectURL function found to create blob url");var t=new wm;t.src=Cm.createObjectURL(e),this.blob=e,e=t}if(!e.naturalWidth&&!e.naturalHeight){var i=this;e.onload=e.onerror=function(){var e=i.imageLoadListeners;if(e){i.imageLoadListeners=null;for(var t=0,n=e.length;t<n;t++)e[t]()}},this.imageLoadListeners=[]}this.srcImage=e}function Am(e,t,i){var n,o=document.createElement("img");return o.onerror=function(n){return Am.onerror(o,n,e,t,i)},o.onload=function(n){return Am.onload(o,n,e,t,i)},"string"==typeof e?(Am.fetchBlob(e,(function(t){t?(e=t,n=Am.createObjectURL(e)):(n=e,i&&i.crossOrigin&&(o.crossOrigin=i.crossOrigin)),o.src=n}),i),o):Am.isInstanceOf("Blob",e)||Am.isInstanceOf("File",e)?(n=o._objectURL=Am.createObjectURL(e))?(o.src=n,o):Am.readFile(e,(function(e){var i=e.target;i&&i.result?o.src=i.result:t&&t(e)})):void 0}function qm(e,t){!e._objectURL||t&&t.noRevoke||(Am.revokeObjectURL(e._objectURL),delete e._objectURL)}"undefined"!=typeof window&&(Cm=window.URL&&window.URL.createObjectURL?window.URL:window.webkitURL&&window.webkitURL.createObjectURL?window.webkitURL:null),Em.prototype.render=function(e,t,i){if(this.imageLoadListeners){var n=this;this.imageLoadListeners.push((function(){n.render(e,t,i)}))}else{t=t||{};var o=this.srcImage.naturalWidth,s=this.srcImage.naturalHeight,a=t.width,r=t.height,l=t.maxWidth,d=t.maxHeight,c=!this.blob||"image/jpeg"===this.blob.type;a&&!r?r=s*a/o<<0:r&&!a?a=o*r/s<<0:(a=o,r=s),l&&a>l&&(r=s*(a=l)/o<<0),d&&r>d&&(a=o*(r=d)/s<<0);var u={width:a,height:r};for(var p in t)u[p]=t[p];var h=e.tagName.toLowerCase();"img"===h?e.src=function(e,t,i){var n=document.createElement("canvas");return Sm(e,n,t,i),n.toDataURL("image/jpeg",t.quality||.8)}(this.srcImage,u,c):"canvas"===h&&Sm(this.srcImage,e,u,c),"function"==typeof this.onrender&&this.onrender(e),i&&i(),this.blob&&(this.blob=null,Cm&&Cm.revokeObjectURL(this.srcImage.src))}},Cm&&(km=Cm.revokeObjectURL&&Cm),Am.fetchBlob=function(e,t){t()},Am.isInstanceOf=function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"},Am.transform=function(e,t,i,n,o){i(e,o)},Am.onerror=function(e,t,i,n,o){qm(e,o),n&&n.call(e,t)},Am.onload=function(e,t,i,n,o){qm(e,o),n&&Am.transform(e,o,n,i,{originalWidth:e.naturalWidth||e.width,originalHeight:e.naturalHeight||e.height})},Am.createObjectURL=function(e){return!!km&&km.createObjectURL(e)},Am.revokeObjectURL=function(e){return!!km&&km.revokeObjectURL(e)},Am.readFile=function(e,t,i){if(FileReader){var n=new FileReader;if(n.onload=n.onerror=t,n[i=i||"readAsDataURL"])return n[i](e),n}return!1};var Lm="undefined"!=typeof Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);Am.blobSlice=Lm&&function(){var e=this.slice||this.webkitSlice||this.mozSlice;return e.apply(this,arguments)},Am.metaDataParsers={jpeg:{65505:[],65517:[]}},Am.parseMetaData=function(e,t,i,n){n=n||{};var o=this,s=(i=i||{}).maxMetaDataSize||262144;!!("undefined"!=typeof DataView&&e&&e.size>=12&&"image/jpeg"===e.type&&Am.blobSlice)&&Am.readFile(Am.blobSlice.call(e,0,s),(function(e){if(e.target.error)return console.log(e.target.error),void t(n);var s,a,r,l,d=e.target.result,c=new DataView(d),u=2,p=c.byteLength-4,h=u;if(65496===c.getUint16(0)){for(;u<p&&((s=c.getUint16(u))>=65504&&s<=65519||65534===s);){if(u+(a=c.getUint16(u+2)+2)>c.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(r=Am.metaDataParsers.jpeg[s])for(l=0;l<r.length;l+=1)r[l].call(o,c,u,a,n,i);h=u+=a}!i.disableImageHead&&h>6&&(d.slice?n.imageHead=d.slice(0,h):n.imageHead=new Uint8Array(d).subarray(0,h))}else console.log("Invalid JPEG file: Missing JPEG marker.");t(n)}),"readAsArrayBuffer")||t(n)},Am.hasMetaOption=function(e){return e&&e.meta};var Tm=Am.transform;Am.transform=function(e,t,i,n,o){Am.hasMetaOption(t)?Am.parseMetaData(n,(function(o){Tm.call(Am,e,t,i,n,o)}),t,o):Tm.apply(Am,arguments)},Am.ExifMap=function(){return this},Am.ExifMap.prototype.map={Orientation:274},Am.ExifMap.prototype.get=function(e){return this[e]||this[this.map[e]]},Am.getExifThumbnail=function(e,t,i){if(i&&!(t+i>e.byteLength))return Am.createObjectURL(new Blob([e.buffer.slice(t,t+i)]));console.log("Invalid Exif data: Invalid thumbnail data.")},Am.exifTagTypes={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}},Am.exifTagTypes[7]=Am.exifTagTypes[1],Am.getExifValue=function(e,t,i,n,o,s){var a,r,l,d,c,u,p=Am.exifTagTypes[n];if(p){if(!((r=(a=p.size*o)>4?t+e.getUint32(i+8,s):i+8)+a>e.byteLength)){if(1===o)return p.getValue(e,r,s);for(l=[],d=0;d<o;d+=1)l[d]=p.getValue(e,r+d*p.size,s);if(p.ascii){for(c="",d=0;d<l.length&&"\0"!==(u=l[d]);d+=1)c+=u;return c}return l}console.log("Invalid Exif data: Invalid data offset.")}else console.log("Invalid Exif data: Invalid tag type.")},Am.parseExifTag=function(e,t,i,n,o){var s=e.getUint16(i,n);o.exif[s]=Am.getExifValue(e,t,i,e.getUint16(i+2,n),e.getUint32(i+4,n),n)},Am.parseExifTags=function(e,t,i,n,o){var s,a,r;if(i+6>e.byteLength)console.log("Invalid Exif data: Invalid directory offset.");else{if(!((a=i+2+12*(s=e.getUint16(i,n)))+4>e.byteLength)){for(r=0;r<s;r+=1)this.parseExifTag(e,t,i+2+12*r,n,o);return e.getUint32(a,n)}console.log("Invalid Exif data: Invalid directory size.")}},Am.parseExifData=function(e,t,i,n,o){if(!o.disableExif){var s,a,r,l=t+10;if(1165519206===e.getUint32(t+4))if(l+8>e.byteLength)console.log("Invalid Exif data: Invalid segment size.");else if(0===e.getUint16(t+8)){switch(e.getUint16(l)){case 18761:s=!0;break;case 19789:s=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}42===e.getUint16(l+2,s)?(a=e.getUint32(l+4,s),n.exif=new Am.ExifMap,(a=Am.parseExifTags(e,l,l+a,s,n))&&!o.disableExifThumbnail&&(r={exif:{}},a=Am.parseExifTags(e,l,l+a,s,r),r.exif[513]&&(n.exif.Thumbnail=Am.getExifThumbnail(e,l+r.exif[513],r.exif[514]))),n.exif[34665]&&!o.disableExifSub&&Am.parseExifTags(e,l,l+n.exif[34665],s,n),n.exif[34853]&&!o.disableExifGps&&Am.parseExifTags(e,l,l+n.exif[34853],s,n)):console.log("Invalid Exif data: Missing TIFF marker.")}else console.log("Invalid Exif data: Missing byte alignment offset.")}},Am.metaDataParsers.jpeg[65505].push(Am.parseExifData);const Mm=new ei;class Om{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.builderStuff=i;let n=i.querySelector("#divLinkTool");if(!n){let e=`<div id="divLinkTool" class="is-tool">\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")} \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)")} \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 `;Mm.appendHtml(i,e),n=i.querySelector("#divLinkTool");let o=n.querySelector(".link-edit");Mm.addEventListener(o,"click",(()=>{this.editLink()}));let s=n.querySelector(".link-duplicate");Mm.addEventListener(s,"click",(()=>{if(this.builder.activeLink)if(this.builder.uo.saveForUndo(),this.builder.opts.emailMode){for(var e=this.builder.activeLink;"table"!==e.tagName.toLowerCase()&&!Mm.hasClass(e,"button");)e=e.parentNode;let t=e=e.parentNode;const i=t.cloneNode(!0);let n=i.querySelector(".icon-active");n&&Mm.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&&Mm.removeClass(t,"icon-active"),this.builder.activeLink.parentNode.insertBefore(e,this.builder.activeLink),this.showTool(this.builder.activeLink)}}));let a=n.querySelector(".link-remove");Mm.addEventListener(a,"click",(()=>{if(this.builder.uo.saveForUndo(),this.builder.opts.emailMode){for(var e=this.builder.activeLink;"table"!==e.tagName.toLowerCase()&&!Mm.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 r=this.builderStuff.querySelector(".is-modal.createlink"),l=r.querySelector(".input-ok");Mm.addEventListener(l,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeLink;if(e){let t=r.querySelector(".input-url").value,n=r.querySelector(".input-title").value,o=r.querySelector(".input-text").value;if(""===o&&(o=t),""!==t)e.setAttribute("href",t),r.querySelector(".input-newwindow").checked?e.setAttribute("target","_blank"):e.removeAttribute("target"),r.querySelector(".input-openlightbox").checked?Mm.addClass(e,"is-lightbox"):Mm.removeClass(e,"is-lightbox"),this.builder.activeIcon||(e.innerHTML=o),e.setAttribute("title",n);else{var i=e;if(Mm.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=r.querySelector(".input-url").value,i=r.querySelector(".input-title").value,n=r.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"),Mm.removeClass(o,"__dummy"),r.querySelector(".input-newwindow").checked?o.setAttribute("target","_blank"):o.removeAttribute("target"),r.querySelector(".input-openlightbox").checked?Mm.addClass(o,"is-lightbox"):Mm.removeClass(o,"is-lightbox"),o.setAttribute("title",i),this.builder.activeIcon=o.childNodes[0],t.appleMobile||(this.builder.activeIcon.click(),Mm.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,r.querySelector(".input-newwindow").checked?o.setAttribute("target","_blank"):o.removeAttribute("target"),r.querySelector(".input-openlightbox").checked?Mm.addClass(o,"is-lightbox"):Mm.removeClass(o,"is-lightbox"),o.setAttribute("title",i),t.appleMobile||Mm.selectElementContents(o)}}t.saveSelection(),this.builder.opts.onChange(),this.builder.opts.onRender()}t.hideModal(r)}));let d=r.querySelector(".input-cancel");Mm.addEventListener(d,"click",(()=>{t.hideModal(r),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,"a"!==s.tagName.toLowerCase()&&!Mm.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=>{Mm.removeClass(e,"icon-active")})),Mm.addClass(s.childNodes[0],"icon-active"),Mm.selectElementContents(s.childNodes[0]),this.builder.activeIcon=s.childNodes[0]}if("img"===s.tagName.toLowerCase())return;let e;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,this.showTool(e),t.preventDefault()}}showTool(e){const t=this.linkTool;"inline-block"===Mm.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");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=""}createLink(){const e=new Jt(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||(Mm.selectElementContents(this.builder.activeLink),e.saveSelection()))}var i=Mm.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");Mm.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),"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,Mm.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 Jt(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&&Mm.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");Mm.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),"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,Mm.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 Rm=new ei;class Bm{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 `;Rm.appendHtml(i,e),n=i.querySelector(".is-spacer-tool");const o=n.querySelectorAll("button");Array.prototype.forEach.call(o,(e=>{Rm.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();const t=e.getAttribute("data-value");let i=this.builder.activeSpacer;"-"===t?Rm.hasClass(i,"height-300")?(Rm.removeClass(i,"height-300"),Rm.addClass(i,"height-280")):Rm.hasClass(i,"height-280")?(Rm.removeClass(i,"height-280"),Rm.addClass(i,"height-260")):Rm.hasClass(i,"height-260")?(Rm.removeClass(i,"height-260"),Rm.addClass(i,"height-240")):Rm.hasClass(i,"height-240")?(Rm.removeClass(i,"height-240"),Rm.addClass(i,"height-220")):Rm.hasClass(i,"height-220")?(Rm.removeClass(i,"height-220"),Rm.addClass(i,"height-200")):Rm.hasClass(i,"height-200")?(Rm.removeClass(i,"height-200"),Rm.addClass(i,"height-180")):Rm.hasClass(i,"height-180")?(Rm.removeClass(i,"height-180"),Rm.addClass(i,"height-160")):Rm.hasClass(i,"height-160")?(Rm.removeClass(i,"height-160"),Rm.addClass(i,"height-140")):Rm.hasClass(i,"height-140")?(Rm.removeClass(i,"height-140"),Rm.addClass(i,"height-120")):Rm.hasClass(i,"height-120")?(Rm.removeClass(i,"height-120"),Rm.addClass(i,"height-100")):Rm.hasClass(i,"height-100")?(Rm.removeClass(i,"height-100"),Rm.addClass(i,"height-80")):Rm.hasClass(i,"height-80")?(Rm.removeClass(i,"height-80"),Rm.addClass(i,"height-60")):Rm.hasClass(i,"height-60")?(Rm.removeClass(i,"height-60"),Rm.addClass(i,"height-40")):Rm.hasClass(i,"height-40")&&(Rm.removeClass(i,"height-40"),Rm.addClass(i,"height-20")):Rm.hasClass(i,"height-20")?(Rm.removeClass(i,"height-20"),Rm.addClass(i,"height-40")):Rm.hasClass(i,"height-40")?(Rm.removeClass(i,"height-40"),Rm.addClass(i,"height-60")):Rm.hasClass(i,"height-60")?(Rm.removeClass(i,"height-60"),Rm.addClass(i,"height-80")):Rm.hasClass(i,"height-80")?(Rm.removeClass(i,"height-80"),Rm.addClass(i,"height-100")):Rm.hasClass(i,"height-100")?(Rm.removeClass(i,"height-100"),Rm.addClass(i,"height-120")):Rm.hasClass(i,"height-120")?(Rm.removeClass(i,"height-120"),Rm.addClass(i,"height-140")):Rm.hasClass(i,"height-140")?(Rm.removeClass(i,"height-140"),Rm.addClass(i,"height-160")):Rm.hasClass(i,"height-160")?(Rm.removeClass(i,"height-160"),Rm.addClass(i,"height-180")):Rm.hasClass(i,"height-180")?(Rm.removeClass(i,"height-180"),Rm.addClass(i,"height-200")):Rm.hasClass(i,"height-200")?(Rm.removeClass(i,"height-200"),Rm.addClass(i,"height-220")):Rm.hasClass(i,"height-220")?(Rm.removeClass(i,"height-220"),Rm.addClass(i,"height-240")):Rm.hasClass(i,"height-240")?(Rm.removeClass(i,"height-240"),Rm.addClass(i,"height-260")):Rm.hasClass(i,"height-260")?(Rm.removeClass(i,"height-260"),Rm.addClass(i,"height-280")):Rm.hasClass(i,"height-280")&&(Rm.removeClass(i,"height-280"),Rm.addClass(i,"height-300")),this.showTool(i),this.builder.opts.onChange(),this.builder.opts.onRender()}))}))}this.spacerTool=n}click(e){const t=e.target;Rm.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 Nm=new ei;class Im{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")}">✕</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 `;Nm.appendHtml(i,e),o=i.querySelector(".is-module-tool"),n=i.querySelector(".is-modal.custommodule");let s=o.querySelector("button");Nm.addEventListener(s,"click",(()=>{let e=this.builder.activeModule;Nm.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;">✕</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;">✕</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");Nm.addEventListener(a,"click",(()=>{this.util.hideModal(n)}));var r=1;const l=e.querySelectorAll("[data-subblock]");Array.prototype.forEach.call(l,(t=>{if(Nm.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");Nm.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");Nm.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 $m=new ei;class Hm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new Fo(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 `;$m.appendHtml(i,e),o=i.querySelector(".is-code-tool");let n=o.querySelector("button");$m.addEventListener(n,"click",(()=>{let e=this.builder.activeCodeBlock,i=this.builderStuff.querySelector("#tmp_buildercontent");i&&i.parentNode.removeChild(i),$m.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");$m.removeClasses(s,"elm-active"),s=i.querySelectorAll(".elm-inspected"),$m.removeClasses(s,"elm-inspected"),s=i.querySelectorAll(".cell-active"),$m.removeClasses(s,"cell-active"),s=i.querySelectorAll(".row-active"),$m.removeClasses(s,"row-active"),s=i.querySelectorAll(".row-outline"),$m.removeClasses(s,"row-outline"),s=i.querySelectorAll(".row-outline"),$m.removeClasses(s,"row-outline"),s=i.querySelectorAll("[data-click]"),$m.removeAttributes(s,"data-click"),s=i.querySelectorAll("[contenteditable]"),$m.removeAttributes(s,"contenteditable"),s=i.querySelectorAll("[data-module-active]"),$m.removeAttributes(s,"data-module-active"),$m.removeElements(i.querySelectorAll(".is-row-tool")),$m.removeElements(i.querySelectorAll(".is-rowadd-tool")),$m.removeElements(i.querySelectorAll(".ovl")),$m.removeElements(i.querySelectorAll(".row-add-initial")),s=i.querySelectorAll("[data-keep]"),$m.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,Po.html)(a),r.value=a;let l=s.querySelector(".input-ok");if($m.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"),$m.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 Pm=new ei;class Dm{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 `;Pm.appendHtml(i,e),o=i.querySelector(".is-iframe-tool"),n=i.querySelector(".is-modal.iframelink");let s=o.querySelector("button");Pm.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");Pm.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");Pm.addEventListener(r,"click",(()=>{this.util.hideModal(n)}))}this.iframeTool=o,this.iframeModal=n}click(e){if(Pm.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 zm=new ei;class Fm{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")}">✕</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 `;zm.appendHtml(i,e),o=i.querySelector(".is-table-tool"),n=i.querySelector(".is-modal.edittable");let s=o.querySelector("button");zm.addEventListener(s,"click",(()=>{zm.hasClass(n,"active")?zm.removeClass(n,"active"):zm.addClass(n,"active")}));let a=n.querySelector(".is-modal-close");zm.addEventListener(a,"click",(()=>{zm.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&&Um(r+1)||"oddrows"===i&&!Um(r+1)||"currentrow"===i&&l===this.builder.activeTd.parentNode||"currentcol"===i&&d===jm(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&&Um(r+1)||"oddrows"===i&&!Um(r+1)||"currentrow"===i&&l===this.builder.activeTd.parentNode||"currentcol"===i&&d===jm(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&&Um(l+1)||"oddrows"===o&&!Um(l+1)||"currentrow"===o&&d===this.builder.activeTd.parentNode||"currentcol"===o&&c===jm(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&&Um(l+1)||"oddrows"===i&&!Um(l+1)||"currentrow"===i&&d===this.builder.activeTd.parentNode||"currentcol"===i&&c===jm(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(zm.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,zm.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(zm.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 Um(e){return e%2==0}function jm(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 Wm=new ei;class Gm{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")} \n </label>\n <label style="display:block;margin-top:5px;">\n <input class="input-video-loop" type="checkbox" /> ${t.out("Loop")} \n </label>\n <label style="display:block;margin-top:5px;">\n <input class="input-video-autoplay" type="checkbox" /> ${t.out("Autoplay")} \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 `;Wm.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");Wm.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&&Wm.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");Wm.addEventListener(r,"change",(e=>{let t=r;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;Wm.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");Wm.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");Wm.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 Ym=new ei;class Vm{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i,this.hyperlink=new Om(e),this.image=new wm(e),this.spacer=new Bm(e),this.module=new Im(e),this.code=new Hm(e),this.iframe=new Dm(e),this.table=new Fm(e),this.video=new Gm(e),window.addEventListener("keydown",(e=>{if(46===e.keyCode&&this.builder.activeIcon&&Ym.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&&Ym.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,(e=>{"inline-block"===Ym.getStyle(e,"display")&&(e.contentEditable=!0,"span"!==e.parentNode.tagName.toLowerCase()?e.outerHTML='<span contenteditable="false">'+e.outerHTML+"</span>":1===e.parentNode.childElementCount&&(e.parentNode.contentEditable=!1))}));let l=e.querySelectorAll(".embed-responsive");Array.prototype.forEach.call(l,(e=>{let t=e.querySelector(".ovl");t||(Ym.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"),Ym.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,Ym.parentsHasAttribute(i,"data-subblock")&&(a=!0)),!s&&!n&&!o||a){const n=document.querySelectorAll(".icon-active");Array.prototype.forEach.call(n,(e=>{Ym.removeClass(e,"icon-active")})),this.builder.activeIcon=null,"i"===i.tagName.toLowerCase()&&""===i.innerHTML&&(Ym.addClass(i,"icon-active"),Ym.selectElementContents(i),this.builder.activeIcon=i,document.selection?document.selection.empty():window.getSelection().removeAllRanges()),this.image.click(t),this.hyperlink.click(e,t),"a"!==i.tagName.toLowerCase()&&!Ym.parentsHasTag(i,"a")||s||t.preventDefault(),this.table.click(t),this.iframe.click(t),this.video.click(t),this.spacer.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 Xm=new ei;class Km{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.grid=new Qo(e);const n=new Fo(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>`;Xm.appendHtml(i,e),o=i.querySelector(".rowmore");let a=o.querySelector(".row-up");a&&Xm.addEventListener(a,"click",(()=>{this.grid.moveRowUp(),t.clearControls()})),a=o.querySelector(".row-down"),a&&Xm.addEventListener(a,"click",(()=>{this.grid.moveRowDown(),t.clearControls()})),a=o.querySelector(".row-duplicate"),a&&Xm.addEventListener(a,"click",(()=>{this.grid.duplicateRow(),this.rowMore.style.display="",t.clearControls()})),a=o.querySelector(".row-html"),a&&Xm.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=Xm.parentsHasClass(t,"rowmore"),i=Xm.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>`;Xm.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&&Xm.addEventListener(r,"click",(()=>{const e=i.querySelector(".grideditor");if(Xm.hasClass(e,"active")){Xm.removeClass(e,"active");const t=document.querySelectorAll(this.builder.opts.container);Array.prototype.forEach.call(t,(e=>{e.removeAttribute("grideditor")}))}else{Xm.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")?Xm.addClass(n,"on"):Xm.removeClass(n,"on");const o=e.querySelector(".cell-locking");let s=t.cellSelected();s&&s.hasAttribute("data-noedit")?Xm.addClass(o,"on"):Xm.removeClass(o,"on")}})),r=o.querySelector(".row-more"),r&&Xm.addEventListener(r,"click",(()=>{let e=t.cellSelected();if(!e)return;let s=e.parentNode;Xm.removeClass(s,"row-outline");let a=i.querySelector(".is-column-tool");Xm.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",Xm.removeClass(n,"arrow-bottom"),Xm.removeClass(n,"arrow-left"),Xm.removeClass(n,"arrow-right"),Xm.removeClass(n,"center"),Xm.removeClass(n,"right"),Xm.removeClass(n,"left"),"right"===this.builder.opts.rowTool?(n.style.left=d-n.offsetWidth-10+"px",Xm.addClass(n,"arrow-right"),Xm.addClass(n,"left")):(n.style.left=d+35+"px",Xm.addClass(n,"arrow-left"),Xm.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&&Xm.addEventListener(r,"click",(()=>{this.grid.removeRow(),t.clearControls()}))}}}const Zm=new ei;class Qm{constructor(e){this.builder=e}render(e){const t=this.builder.util,i=Ko(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>`;Zm.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");Zm.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",Zm.removeClass(i,"arrow-bottom"),Zm.removeClass(i,"arrow-right"),Zm.removeClass(i,"arrow-left"),Zm.removeClass(i,"center"),Zm.addClass(i,"arrow-top"),Zm.addClass(i,"center")):(i.style.top=t+window.pageYOffset-a-8+"px",i.style.left=n-s/2+7+"px",Zm.removeClass(i,"arrow-top"),Zm.removeClass(i,"arrow-right"),Zm.removeClass(i,"arrow-left"),Zm.removeClass(i,"center"),Zm.addClass(i,"arrow-bottom"),Zm.addClass(i,"center")),i.setAttribute("data-mode","row"),!1}))}}class Jm{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 ev{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 Jm({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 ds({selector:"#"+this.id+" .is-draggable"});let p=document.createElement("div");p.style.backgroundColor=this.opts.color;let h,g=p.style.backgroundColor;""!==g&&(h=uv.color(g),this.baseRGB=h);let f=u.querySelector(".color-swatch"),m=l.querySelector(".color-gradient");if(h){let e;e=""!==g?dv(h.r,h.g,h.b):0,ov(f,e);let t=pv(h.r,h.g,h.b);sv(m,e,t[1])}else{let e;e=0,ov(f,e);let t=pv(255,255,255);sv(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;ov(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=tv(i);if(this.baseRGB=n,!this.parentsHasClass(t,"color-gradient")&&""!==i)if(n.r===n.g&&n.g===n.b)av(m);else{let e=dv(n.r,n.g,n.b);ov(f,e),sv(l.querySelector(".color-gradient"),e,pv(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=tv(e.getAttribute("data-color"));this.baseRGB=t;let i=dv(t.r,t.g,t.b),n=pv(t.r,t.g,t.b);sv(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=uv.color(r)),-1!==r.indexOf("#")&&(s=tv(r)),!s){return av(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)av(a);else{let e=n.querySelector(".color-swatch"),t=dv(s.r,s.g,s.b);ov(e,t),sv(a,t,pv(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 tv(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 iv(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 nv(e){return iv(e[0])+iv(e[1])+iv(e[2])}function ov(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="#"+nv(lv(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="#"+nv(lv(t,o,a));e.title=r,e.style.background=r,e.setAttribute("data-color",r)}}}function sv(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="#"+nv(lv(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="#"+nv(lv(t,i,e));r.title=l,r.style.background=l,r.setAttribute("data-color",l)}}}function av(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="#"+nv(lv(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="#"+nv(lv(0,0,e));s.title=a,s.style.background=a,s.setAttribute("data-color",a)}}}function rv(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 lv(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*rv(o,n,e+1/3)),parseInt(255*rv(o,n,e)),parseInt(255*rv(o,n,e-1/3))]}function dv(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 cv,uv=(cv=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:cv(t[0]+t[0]),g:cv(t[1]+t[1]),b:cv(t[2]+t[2])}):{r:cv(e.slice(1,3)),g:cv(e.slice(3,5)),b:cv(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 pv(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 hv{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 Jm({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 ds({selector:"#"+this.id+" .is-draggable"});const l=new ev({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=gv(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=gv(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=gv(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=gv(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 gv(e){var t,i=mv(),n=/.*gradient\s*\(((?:\([^)]*\)|[^)(]*)*)\)/.exec(e);return null!==n?(t=vv(i,n[1])).original.trim()!==n[1].trim()&&(t.parseWarning=!0):t="Failed to find gradient",t}var fv=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)},mv=function(){var e=/\s*,\s*/,t=/(?:[+-]?\d*\.?\d+)(?:%|[a-z]+)?/,i=fv(["(?:",/#(?:[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=fv([i,"(?:\\s+",t,"(?:\\s+",t,")?)?"],""),o=fv(["(?:",n,e,")*",n],""),s=fv(["(?:(",/(?:[+-]?\d*\.?\d+)(?:deg|grad|rad|turn)/,")|",/to\s+((?:(?:left|right)(?:\s+(?:top|bottom))?))/,")"],"");return{gradientSearch:fv(["(?:(",s,")",e,")?(",o,")"],"gi"),colorStopSearch:fv(["\\s*(",i,")","(?:\\s+","(",t,"))?","(?:",e,"\\s*)?"],"gi")}},vv=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 bv=new ei;class yv{constructor(e){this.builder=e,this.grid=new Qo(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")}">✕</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 <div class="div-content-padding">\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 <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\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 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\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")}">✕</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 `;bv.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=Ko(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");bv.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",bv.removeClass(r,"arrow-bottom"),bv.removeClass(r,"arrow-left"),bv.removeClass(r,"arrow-right"),bv.removeClass(r,"center"),bv.removeClass(r,"right"),bv.addClass(r,"arrow-top"),bv.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"),bv.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",bv.removeClass(n,"arrow-bottom"),bv.removeClass(n,"arrow-left"),bv.removeClass(n,"arrow-right"),bv.removeClass(n,"center"),bv.removeClass(n,"right"),bv.addClass(n,"arrow-top"),bv.addClass(n,"left");const r=this.columnMore.querySelector(".cell-locking");e.hasAttribute("data-noedit")?bv.addClass(r,"on"):bv.removeClass(r,"on")})),d=o.querySelector(".cell-remove"),bv.addEventListener(d,"click",(()=>{this.grid.removeColumn(),t.clearControls()})),d=n.querySelector(".cell-prev"),bv.addEventListener(d,"click",(()=>{this.grid.moveColumnPrevious(),t.clearControls()})),d=n.querySelector(".cell-next"),bv.addEventListener(d,"click",(()=>{this.grid.moveColumnNext(),t.clearControls()})),d=n.querySelector(".cell-up"),bv.addEventListener(d,"click",(()=>{this.grid.moveColumnUp(),t.clearControls()})),d=n.querySelector(".cell-down"),bv.addEventListener(d,"click",(()=>{this.grid.moveColumnDown(),t.clearControls()})),d=n.querySelector(".cell-increase"),bv.addEventListener(d,"click",(()=>{this.grid.increaseColumn(),t.clearControls()})),d=n.querySelector(".cell-decrease"),bv.addEventListener(d,"click",(()=>{this.grid.decreaseColumn(),t.clearControls()})),d=n.querySelector(".cell-duplicate"),bv.addEventListener(d,"click",(()=>{this.grid.duplicateColumn(),this.columnMore.style.display="",t.clearControls()})),d=n.querySelector(".cell-html"),d&&bv.addEventListener(d,"click",(()=>{if(!t.cellSelected())return;new Fo(this.builder).view("cell")})),document.addEventListener("mousedown",(e=>{var t=(e=e||window.event).target||e.srcElement;if("flex"===n.style.display){let e=bv.parentsHasClass(t,"columnmore"),i=bv.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&&bv.addEventListener(h,"click",(e=>{let i=t.cellSelected();i&&(i.hasAttribute("data-noedit")?(i.removeAttribute("data-noedit"),i.contentEditable=!0,bv.removeClass(h,"on")):(i.setAttribute("data-noedit",""),i.contentEditable=!1,bv.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&&bv.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&&bv.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&&bv.addEventListener(d,"click",(()=>{let e=t.cellSelected();e&&this.openImageAdjust(e)})),d=c.querySelector(".input-cell-bgremove"),d&&bv.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&&bv.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");"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"}))):bv.removeClass(g,"image-select");let f=u.querySelector("#fileImage3");bv.addEventListener(f,"change",(e=>{let t=f;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;bv.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");bv.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");bv.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=>{bv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected().parentNode;bv.removeClass(n,"expand-10"),bv.removeClass(n,"expand-20"),bv.removeClass(n,"expand-30"),bv.removeClass(n,"expand-40"),bv.removeClass(n,"expand-50"),bv.removeClass(n,"expand-60"),bv.addClass(n,"expand-"+i),this.builder.opts.onChange()}))}));const x=new hv({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=>{bv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected();"dark"===i?(bv.removeClass(n,"is-light-text"),bv.addClass(n,"is-dark-text")):"light"===i?(bv.removeClass(n,"is-dark-text"),bv.addClass(n,"is-light-text")):(bv.removeClass(n,"is-dark-text"),bv.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"),Array.prototype.forEach.call(l,(e=>{bv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-command"),n=t.cellSelected(),o=this.cellSettings.querySelectorAll(".input-cell-padding");Array.prototype.forEach.call(o,(e=>{bv.removeClass(e,"on")})),bv.removeClass(n,"padding-0"),bv.removeClass(n,"padding-10"),bv.removeClass(n,"padding-20"),bv.removeClass(n,"padding-30"),bv.removeClass(n,"padding-40"),bv.removeClass(n,"padding-50"),bv.removeClass(n,"padding-60"),""!==i&&(bv.addClass(n,"padding-"+i),bv.addClass(e,"on")),this.builder.opts.onChange()}))}));const w=c.querySelector(".chk-cell-grayscale");if(bv.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=>{bv.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=>{bv.removeClass(e,"on")})),""===n)Array.prototype.forEach.call(i,(e=>{bv.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=>{bv.removeClass(o,"min-height-"+e)})),bv.addClass(o,"min-height-"+t),300===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');bv.addClass(e,"on")}else if(400===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');bv.addClass(e,"on")}else if(500===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');bv.addClass(e,"on")}else if(600===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');bv.addClass(e,"on")}else if(700===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');bv.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=>{bv.removeClass(o,"min-height-"+e)})),bv.addClass(o,"min-height-"+t),300===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');bv.addClass(e,"on")}else if(400===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');bv.addClass(e,"on")}else if(500===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');bv.addClass(e,"on")}else if(600===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');bv.addClass(e,"on")}else if(700===t){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');bv.addClass(e,"on")}}))}else Array.prototype.forEach.call(i,(e=>{bv.removeClass(o,"min-height-"+e)})),bv.addClass(o,"min-height-"+n),bv.addClass(e,"on");this.builder.opts.onChange()}))})),l=c.querySelectorAll(".cmd-content-pos"),Array.prototype.forEach.call(l,(e=>{bv.addEventListener(e,"click",(()=>{this.builder.uo.saveForUndo();let i=e.getAttribute("data-pos"),n=t.cellSelected();n.style.display="flex",n.style.flexDirection="column";let o=this.cellSettings.querySelectorAll(".cmd-content-pos");Array.prototype.forEach.call(o,(e=>{bv.removeClass(e,"on")})),"topleft"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="flex-start",bv.addClass(e,"on")),"topcenter"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="center",bv.addClass(e,"on")),"topright"===i&&(n.style.justifyContent="flex-start",n.style.alignItems="flex-end",bv.addClass(e,"on")),"centerleft"===i&&(n.style.justifyContent="center",n.style.alignItems="flex-start",bv.addClass(e,"on")),"center"===i&&(n.style.justifyContent="center",n.style.alignItems="center",bv.addClass(e,"on")),"centerright"===i&&(n.style.justifyContent="center",n.style.alignItems="flex-end",bv.addClass(e,"on")),"bottomleft"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="flex-start",bv.addClass(e,"on")),"bottomcenter"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="center",bv.addClass(e,"on")),"bottomright"===i&&(n.style.justifyContent="flex-end",n.style.alignItems="flex-end",bv.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&&bv.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}),bv.observeElement(e,"value",(()=>{this.applyClick()}));else if(this.builder.opts.onImageSelectClick)this.builder.opts.onImageSelectClick({targetInput:e,theTrigger:d}),bv.observeElement(e,"value",(()=>{this.applyClick()}));else if(this.builder.opts.fileselect){let n=i.querySelector(".is-modal.fileselect"),o=n.querySelector("iframe");"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");"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");bv.observeElement(S,"value",(()=>{this.applyClick()}));let C=this.cellSettings.querySelector("#fileImage4");bv.addEventListener(C,"change",(e=>{let t=C;for(;"form"!==t.nodeName.toLowerCase();)t=t.parentNode;let i=t;bv.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?(bv.removeClass(e,"block-click"),e.removeAttribute("data-modal-url")):(bv.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(),bv.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=>{bv.removeClass(e,"on")})),bv.hasClass(e,"padding-0")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="0"');bv.addClass(e,"on")}else if(bv.hasClass(e,"padding-10")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="10"');bv.addClass(e,"on")}else if(bv.hasClass(e,"padding-20")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="20"');bv.addClass(e,"on")}else if(bv.hasClass(e,"padding-30")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="30"');bv.addClass(e,"on")}else if(bv.hasClass(e,"padding-40")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="40"');bv.addClass(e,"on")}else if(bv.hasClass(e,"padding-50")){let e=this.cellSettings.querySelector('.input-cell-padding[data-command="50"');bv.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=>{bv.removeClass(e,"on")}));let u=0,p=this.builder.colHeight;if(Array.prototype.forEach.call(p,(t=>{bv.hasClass(e,"min-height-"+t)&&(u=t)})),300===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="300"');bv.addClass(e,"on")}else if(400===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="400"');bv.addClass(e,"on")}else if(500===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="500"');bv.addClass(e,"on")}else if(600===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="600"');bv.addClass(e,"on")}else if(700===u){let e=this.cellSettings.querySelector('.input-cell-height[data-command="700"');bv.addClass(e,"on")}d=this.cellSettings.querySelectorAll(".cmd-content-pos"),Array.prototype.forEach.call(d,(e=>{bv.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"');bv.addClass(e,"on")}else if("topcenter"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="topcenter"');bv.addClass(e,"on")}else if("topright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="topright"');bv.addClass(e,"on")}else if("centerleft"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="centerleft"');bv.addClass(e,"on")}else if("center"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="center"');bv.addClass(e,"on")}else if("centerright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="centerright"');bv.addClass(e,"on")}else if("bottomleft"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomleft"');bv.addClass(e,"on")}else if("bottomcenter"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomcenter"');bv.addClass(e,"on")}else if("bottomright"===f){let e=this.cellSettings.querySelector('.cmd-content-pos[data-pos="bottomright"');bv.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(bv.addClass(this.columnTool,"active"),this.columnTool.style.top=e.getBoundingClientRect().top-29+window.pageYOffset+"px",this.columnTool.style.left=e.getBoundingClientRect().left-1+"px",bv.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="",bv.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 _v=new ei;class xv{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")}">✕</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;font-size: 14px;line-height: 2;letter-spacing: 1px;border:none;"/>\n </div>\n </div>\n </div>\n </div> \n `;_v.appendHtml(i,e),n=i.querySelector(".editstyles");let o=n.querySelector(".is-modal-close");_v.addEventListener(o,"click",(()=>{_v.removeClass(n,"active");var e=this.builderStuff.querySelector(".is-side.elementstyles");if(!_v.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=>{_v.removeClass(e,"elm-inspected")}))}}));let s=n.querySelector("#inpElmClassName");s.addEventListener("keyup",(()=>{let e=this.builder.inspectedElement,t=n.querySelector("#inpElmClassName").value,i=!1;_v.hasClass(e,"elm-active")&&(i=!0);let o=!1;_v.hasClass(e,"elm-active")&&(o=!0);let s=!1;_v.hasClass(e,"row-active")&&(s=!0),e.setAttribute("class",t),i&&_v.addClass(e,"elm-active"),o&&_v.addClass(e,"cell-active"),s&&_v.addClass(e,"row-active"),_v.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(){_v.hasClass(this.modalStyles,"active")?_v.removeClass(this.modalStyles,"active"):_v.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 wv=new ei;class Sv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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 `;wv.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 hv({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 Cv=new ei;class kv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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 `;Cv.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?Cv.addClass(e,"margin-left-1024-reset"):Cv.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?Cv.addClass(e,"margin-right-1024-reset"):Cv.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),Cv.hasClass(e,"margin-left-1024-reset")?i.querySelector("#chkResetMarginLeft").checked=!0:i.querySelector("#chkResetMarginLeft").checked=!1,Cv.hasClass(e,"margin-right-1024-reset")?i.querySelector("#chkResetMarginRight").checked=!0:i.querySelector("#chkResetMarginRight").checked=!1}}const Ev=new ei;class Av{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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 `;Ev.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 qv=new ei;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 xv(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="%">%</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"/> 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"/> 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 `;qv.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 `;qv.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++)qv.hasClass(e,"size-"+s[a])&&qv.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?qv.addClass(t,"on"):qv.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){qv.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("%")&&(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 Tv=new ei;class Mv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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"/> 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"/> 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"/> 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"/> 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"/> px\n </div>\n </div>\n `;Tv.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 Ov=new ei;class Rv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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 `;Ov.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 Bv=new ei;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 xv(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 `;Bv.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 Iv=new ei;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 xv(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 `;Iv.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 Hv=new ei;class Pv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new xv(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"/> 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"/> %\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"/> %\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"/> <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"/> %\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"/> %\n </div>\n </div>\n `;Hv.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 Dv=new ei;class zv{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 `;Dv.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 Fv=new ei;class Uv{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> 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> 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 `;Fv.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}),Fv.removeClass(e,"aos-init"),Fv.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 jv=new ei;let Wv=[];class Gv{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 `;jv.appendHtml(i,o),this.elementStyleEditor=new xv(e),n=i.querySelector(".elementstyles");let s=n.querySelector(".is-side-close");jv.addEventListener(s,"click",(()=>{this.hidePanel()})),s=n.querySelector(".elm-editstyle"),jv.addEventListener(s,"click",(()=>{this.elementStyleEditor.toggleStyleEditor()}))}this.panel=n;const o=new Sv(e);this.elementBoxStyles=o;const s=new kv(e);this.elementSpacingStyles=s;const a=new Av(e);this.elementBorderStyles=a;const r=new Lv(e);this.elementTextStyles=r;const l=new Mv(e);this.elementCornerStyles=l;const d=new Rv(e);this.elementShadowStyles=d;const c=new Nv(e);this.elementDisplayStyles=c;const u=new $v(e);this.elementPositionStyles=u;const p=new Pv(e);this.elementEffectStyles=p;const h=new zv(e);this.elementAttributeStyles=h;const g=new Uv(e);this.elementAnimationStyles=g}click(){(jv.hasClass(this.panel,"active")||jv.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=>{jv.removeClass(e,"elm-inspected")})),setTimeout((()=>{jv.addClass(e,"elm-inspected")}),10),t.querySelector(".elm-list").innerHTML="";let n=e,o=0;for(Wv=[];!jv.hasClass(n,"is-builder")&&(Wv.push(n),n)&&n.tagName;){var s=n.tagName.toLowerCase(),a=jv.createElement("a");a.setAttribute("data-index",o),o++,a.setAttribute("href","#"),a.innerHTML=s,""===t.querySelector(".elm-list").innerHTML?(jv.addClass(a,"active"),t.querySelector(".elm-list").insertAdjacentHTML("afterbegin",a.outerHTML)):(t.querySelector(".elm-list").insertAdjacentHTML("afterbegin"," > "),t.querySelector(".elm-list").insertAdjacentHTML("afterbegin",a.outerHTML)),n=n.parentNode}const r=t.querySelectorAll(".elm-list a");Array.prototype.forEach.call(r,(e=>{jv.addEventListener(e,"click",(t=>{let i=e.getAttribute("data-index");this.builder.inspectedElement=Wv[i],this.inspect(Wv[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=>{jv.removeClass(e,"active")})),setTimeout((()=>{jv.addClass(e,"active")}),10),this.inspect(this.builder.inspectedElement)}hidePanel(){var e=this.builderStuff.querySelector(".is-side.elementstyles");jv.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=>{jv.removeClass(e,"elm-inspected")}))}}const Yv=new ei;class Vv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i;const n=new Gv(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 `;Yv.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=Ko(e),r=o.querySelector(".elm-add");Yv.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",Yv.removeClass(a,"arrow-bottom"),Yv.removeClass(a,"arrow-right"),Yv.removeClass(a,"arrow-left"),Yv.removeClass(a,"center"),Yv.addClass(a,"arrow-top"),Yv.addClass(a,"center")):(a.style.top=t+window.pageYOffset-o-8+"px",a.style.left=i-n/2+10+"px",Yv.removeClass(a,"arrow-top"),Yv.removeClass(a,"arrow-right"),Yv.removeClass(a,"arrow-left"),Yv.removeClass(a,"center"),Yv.addClass(a,"arrow-bottom"),Yv.addClass(a,"center")),a.setAttribute("data-mode","elm"),!1}));const l=o.querySelector(".elm-remove");Yv.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(Yv.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(Yv.parentsHasAttribute(e,"data-subblock"))for(;!e.parentNode.hasAttribute("data-subblock")&&1===n.parentNode.childElementCount;)e=e.parentNode;else for(;!Yv.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");Yv.removeClass(e,"active"),t.checkEmpty()}else if(0===o.childElementCount){n.removeChild(o),t.fixLayout(n,e);let s=i.querySelector(".is-column-tool");Yv.removeClass(s,"active")}}const s=document.querySelectorAll(".is-subblock");Array.prototype.forEach.call(s,(e=>{const t=Yv.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");Yv.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",Yv.removeClass(s,"arrow-bottom"),Yv.removeClass(s,"arrow-right"),Yv.removeClass(s,"arrow-left"),Yv.removeClass(s,"center"),Yv.addClass(s,"arrow-top"),Yv.addClass(s,"center")):(s.style.top=t+window.pageYOffset-o-8+"px",s.style.left=i-n/2+10+"px",Yv.removeClass(s,"arrow-top"),Yv.removeClass(s,"arrow-right"),Yv.removeClass(s,"arrow-left"),Yv.removeClass(s,"center"),Yv.addClass(s,"arrow-bottom"),Yv.addClass(s,"center"))}));const c=s.querySelector(".elm-up");Yv.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(;!Yv.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");Yv.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(;!Yv.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");Yv.addEventListener(p,"click",(()=>{this.builder.uo.saveForUndo();let e=this.builder.activeElement;const t=e.cloneNode(!0);Yv.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&&Yv.addEventListener(h,"click",(()=>{s.style.display="",this.elementPanel.showPanel()}));const g=s.querySelector(".elm-settings");g&&Yv.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=Yv.parentsHasClass(t,"elmmore"),i=Yv.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=>{Yv.removeClass(e,"elm-active")}))}position(){let e=this.elementTool,t=this.elementMore;Yv.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",Yv.removeClass(t,"arrow-bottom"),Yv.removeClass(t,"arrow-right"),Yv.removeClass(t,"arrow-left"),Yv.removeClass(t,"center"),Yv.addClass(t,"arrow-top"),Yv.addClass(t,"center")):(t.style.top=o+window.pageYOffset-r-8+"px",t.style.left=s-a/2+10+"px",Yv.removeClass(t,"arrow-top"),Yv.removeClass(t,"arrow-right"),Yv.removeClass(t,"arrow-left"),Yv.removeClass(t,"center"),Yv.addClass(t,"arrow-bottom"),Yv.addClass(t,"center")),setTimeout((()=>{Yv.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=>{Yv.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(Yv.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){Yv.hasClass(i.parentNode,"img-circular")&&(o=i.parentNode),Yv.getParentByTag(i,"a")&&(o=i.parentNode)}}else if(Yv.hasClass(i,"cell-active")||i.hasAttribute("data-subblock"));else if(Yv.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(Yv.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(Yv.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(),Yv.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 Xv=new ei;class Kv{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")}: \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")}: \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")}: \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")} \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")} \n </label>\n\n <label style="display:block;margin-top:5px;margin-bottom:5px;">\n ${t.out("Row Tool Position")}: \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")}: \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")} \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")} \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")} \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")} \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")}: \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")}: \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")}: \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")}: \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")}: \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>`;Xv.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(Xv.addEventListener(a,"click",(()=>{t.hideModal(o)})),a=o.querySelector(".input-ok"),Xv.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 Jt(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&&(Xv.removeClass(n,"active"),Xv.addClass(n,"deactive"),Xv.removeClass(o,"active"),Xv.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 Zv=new ei;class Qv{constructor(e){this.builder=e;const t=this.builder.util,i=this.builder.builderStuff;this.util=t,this.builderStuff=i,this.elementStyleEditor=new xv(e),this.hyperlink=new Om(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 L="";for(_=0;_<e.opts.defaultFontSizes.length;_++)L+=`<button title="${e.opts.defaultFontSizes[_]}px" data-value="${e.opts.defaultFontSizes[_]}">${e.opts.defaultFontSizes[_]}</button>`;let T=`<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;">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 ${L}\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 `;Zv.appendHtml(i,T),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(){Zv.checkEditable()&&(""!==Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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(Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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(Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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(Zv.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";Zv.removeClass(t,"deactive"),Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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";Zv.removeClass(t,"deactive"),Zv.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");Zv.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 Jt(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",Zv.removeClass(e.querySelector(".is-drop-area"),"image-dropping"),e.querySelector(".input-src").value=""}))}));const S=this.builderStuff.querySelector(".insertimage"),C=S.querySelector("#fileInsertImage");Zv.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");Zv.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");Zv.addEventListener(E,"click",(()=>{t.hideModal(S)}));const A=S.querySelector(".is-drop-area");Zv.addEventListener(A,"dragover",(()=>{Zv.addClass(A,"image-dropping")})),Zv.addEventListener(A,"dragleave",(()=>{Zv.removeClass(A,"image-dropping")}));const q=S.querySelector(".is-preview-area i");Zv.addEventListener(q,"click",(()=>{S.querySelector("#fileInsertImage").value="",S.querySelector(".is-preview-area").style.display="none",A.style.display="block",Zv.removeClass(A,"image-dropping")}));const L=S.querySelector(".input-src");if(Zv.addEventListener(L,"keyup",(()=>{S.querySelector("#fileInsertImage").value="",S.querySelector(".is-preview-area").style.display="none",A.style.display="block",Zv.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){Zv.addClass(S.querySelector(".image-src"),"image-select");const e=S.querySelector(".input-select");e&&Zv.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),"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 Zv.removeClass(L,"image-select");i.querySelectorAll("button.rte-zoom").forEach((e=>{Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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(Zv.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(Zv.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"}Zv.removeClass(t,"deactive"),Zv.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=>{Zv.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(Zv.hasClass(t,"active"))Zv.removeClass(t,"active"),Zv.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(Zv.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";Zv.removeClass(t,"deactive"),Zv.addClass(t,"active")}}))})),this.rteTool.querySelectorAll("button.rte-more").forEach((e=>{e.addEventListener("click",(()=>{this.showRteMore()}))}));let T=this.elementRteTool.querySelector("button.rte-more");T&&Zv.addEventListener(T,"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=>{Zv.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=Zv.getSelected();if("bold"===n)if(""===o.trim()){var s=i.tagName.toLowerCase();"b"===s?(Zv.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(""===o.trim())if("i"===(s=i.tagName.toLowerCase()))Zv.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&&(""===o.trim()?"u"===(s=i.tagName.toLowerCase())?(Zv.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&&(""===o.trim()?"strike"===(s=i.tagName.toLowerCase())?(Zv.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&&document.execCommand("superscript",!1,null),"subscript"===n&&document.execCommand("subscript",!1,null),"uppercase"===n){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&&(""===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=>{Zv.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);Zv.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;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=>{Zv.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;i.style.textAlign=t,this.getState(),this.builder.opts.onChange()}))})),M=this.elementRteMoreOptions.querySelectorAll("button[data-align]"),Array.prototype.forEach.call(M,(e=>{Zv.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;i.style.textAlign=t,this.getState(),this.builder.opts.onChange()}))})),M=this.rteListOptions.querySelectorAll("button[data-action]"),Array.prototype.forEach.call(M,(e=>{Zv.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")&&Zv.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=>{Zv.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=>{Zv.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=Zv.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=>{Zv.removeClass(e,"on")})),Zv.addClass(this.rteParagraphOptions.querySelector('[data-block="'+i+'"]'),"on")}}else document.execCommand("formatBlock",!1,"<"+i+">");if(this.rteParagraphOptions.style.display="none",Zv.removeClass(this.rteParagraphOptions,"active"),Zv.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=>{Zv.addEventListener(e,"click",(e=>{this.builder.uo.saveForUndo(!0);let t=a.querySelectorAll(".is-pop-tab-item");Array.prototype.forEach.call(t,(e=>{Zv.removeClass(e,"active")})),Zv.addClass(e.target,"active"),"forecolor"===a.querySelector(".active").getAttribute("data-value")?a.setAttribute("data-command","forecolor"):a.setAttribute("data-command","backcolor")}))})),new ev({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=Zv.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=>{Zv.addEventListener(e,"click",(()=>{let i,n=e.getAttribute("data-value");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);var o=Zv.getSelected();if(""===o.trim()||""!==o.trim()&&i.innerText===o)this.builder.uo.saveForUndo(),this.builder.opts.fontSizeClassValues.length>0?this.applyClassFontSize(i,n):this.applyInlineFontSize(i,n);else{this.builder.uo.saveForUndo();let e,t=Number(window.getComputedStyle(i).getPropertyValue("font-size").match(/\d+/)[0]);document.execCommand("fontSize",!1,"7");for(var s=document.getElementsByTagName("font"),a=0,r=s.length;a<r;++a)"7"===s[a].size&&(s[a].removeAttribute("size"),s[a].style.fontSize=t+"px",Zv.selectElementContents(s[a]),e=s[a]);e&&(this.builder.opts.fontSizeClassValues.length>0?this.applyClassFontSize(e,n):this.applyInlineFontSize(e,n))}if(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=>{Zv.addEventListener(e,"click",(()=>{let i,n=e.getAttribute("data-value");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);let o=i;for(;o;){if("BODY"===o.tagName||"HTML"===o.tagName)return!1;if("inline"!==window.getComputedStyle(o).getPropertyValue("display")){i=o;break}o=o.parentNode}this.builder.uo.saveForUndo();let s,a=!1,r=i.style.lineHeight;if(r&&-1===r.indexOf("px")?r=parseFloat(r):a=!0,a){let e=Number(window.getComputedStyle(i).getPropertyValue("font-size").match(/\d+/)[0]);r=Number(window.getComputedStyle(i).getPropertyValue("line-height").match(/\d+/)[0]),e>r?r=e/r:e<r?r/=e:r=1}if("+"===n?s=r+.1:"-"===n?(s=r-.1,s<.2&&(s=.2)):s=""===n?"":n,Zv.doFunction(i,(function(e){"inline"!==window.getComputedStyle(e).getPropertyValue("display")&&(e.style.lineHeight=s)}),!0),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=>{Zv.addEventListener(e,"click",(()=>{let i,n=e.getAttribute("data-value");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),this.builder.uo.saveForUndo();let o,s=parseInt(window.getComputedStyle(i).getPropertyValue("letter-spacing"));if(isNaN(s)&&(s=0),o="+"===n?s+1+"px":"-"===n?s-1+"px":""===n?"":n+"px",Zv.doFunction(i,(function(e){e.style.letterSpacing=o}),!0),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=Zv.parentsHasClass(t,"rte-align"),n=Zv.parentsHasClass(t,"rte-align-options"),i||n||(this.rteAlignOptions.style.display="",Zv.removeClass(this.rteAlignOptions,"active"),Zv.addClass(this.rteAlignOptions,"deactive"))),"flex"===this.rteListOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-list"),n=Zv.parentsHasClass(t,"rte-list-options"),i||n||(this.rteListOptions.style.display="",Zv.removeClass(this.rteListOptions,"active"),Zv.addClass(this.rteListOptions,"deactive"))),"flex"===this.rteFormattingOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-formatting"),n=Zv.parentsHasClass(t,"rte-formatting-options"),i||n||(this.rteFormattingOptions.style.display="",Zv.removeClass(this.rteFormattingOptions,"active"),Zv.addClass(this.rteFormattingOptions,"deactive"))),"flex"===this.rteColorPicker.style.display&&(i=Zv.parentsHasClass(t,"rte-color"),n=Zv.parentsHasClass(t,"rte-color-picker"),o=Zv.parentsHasClass(t,"pickcolormore"),i||n||o||(this.rteColorPicker.style.display="",Zv.removeClass(this.rteColorPicker,"active"),Zv.addClass(this.rteColorPicker,"deactive"))),"flex"===this.rteFontFamilyOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-fontfamily"),n=Zv.parentsHasClass(t,"rte-fontfamily-options"),i||n||(this.rteFontFamilyOptions.style.display="",Zv.removeClass(this.rteFontFamilyOptions,"active"),Zv.addClass(this.rteFontFamilyOptions,"deactive"))),"flex"===this.rteIconOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-icon"),n=Zv.parentsHasClass(t,"rte-icon-options"),o=!1,t.tagName&&(o="i"===t.tagName.toLowerCase()&&""===t.innerHTML),i||n||o||(this.rteIconOptions.style.display="",Zv.removeClass(this.rteIconOptions,"active"),Zv.addClass(this.rteIconOptions,"deactive"))),"flex"===this.rteCustomTagOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-tags"),n=Zv.parentsHasClass(t,"rte-customtag-options"),i||n||(this.rteCustomTagOptions.style.display="",Zv.removeClass(this.rteCustomTagOptions,"active"),Zv.addClass(this.rteCustomTagOptions,"deactive"))),"flex"===this.rteParagraphOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-paragraph"),n=Zv.parentsHasClass(t,"rte-paragraph-options"),i||n||(this.rteParagraphOptions.style.display="",Zv.removeClass(this.rteParagraphOptions,"active"),Zv.addClass(this.rteParagraphOptions,"deactive"))),"flex"===this.rteTextSettingOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-textsettings"),n=Zv.parentsHasClass(t,"rte-textsetting-options"),i||n||(this.rteTextSettingOptions.style.display="",Zv.removeClass(this.rteTextSettingOptions,"active"),Zv.addClass(this.rteTextSettingOptions,"deactive"))),"flex"===this.rteZoomOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-zoom"),n=Zv.parentsHasClass(t,"rte-zoom-options"),i||n||(this.rteZoomOptions.style.display="",Zv.removeClass(this.rteZoomOptions,"active"),Zv.addClass(this.rteZoomOptions,"deactive"))),"flex"===this.rteMoreOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-more"),n=Zv.parentsHasClass(t,"rte-more-options"),o=Zv.parentsHasClass(t,"is-rte-pop"),s=Zv.parentsHasClass(t,"is-modal"),a=!1,t.tagName&&(a="i"===t.tagName.toLowerCase()&&""===t.innerHTML&&Zv.parentsHasClass(w,"rte-more-options")),i||n||o||s||a||(this.rteMoreOptions.style.display="",Zv.removeClass(this.rteMoreOptions,"active"),Zv.addClass(this.rteMoreOptions,"deactive"))),"flex"===this.elementRteMoreOptions.style.display&&(i=Zv.parentsHasClass(t,"rte-more"),n=Zv.parentsHasClass(t,"elementrte-more-options"),o=Zv.parentsHasClass(t,"is-rte-pop"),s=Zv.parentsHasClass(t,"is-modal"),a=!1,i||n||o||s||a||(this.elementRteMoreOptions.style.display="",Zv.removeClass(this.elementRteMoreOptions,"active"),Zv.addClass(this.elementRteMoreOptions,"deactive")))}))}viewSnippets(){const e=new Vo(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(Zv.hasClass(i,"active"))Zv.removeClass(i,"active"),Zv.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(Zv.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"),Zv.hasClass(this.builder.inspectedElement,"icon")&&(i.style.left=parseInt(this.rteMoreOptions.style.left)+this.rteMoreOptions.offsetWidth-s+"px"),i.style.right="auto";Zv.removeClass(i,"deactive"),Zv.addClass(i,"active")}}showRteMore(){const e=this.rteMoreOptions;Zv.hasClass(e,"active")?(Zv.removeClass(e,"active"),Zv.addClass(e,"deactive")):(this.positionRteMore(),Zv.removeClass(e,"deactive"),Zv.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;Zv.hasClass(e,"active")?(Zv.removeClass(e,"active"),Zv.addClass(e,"deactive")):(this.positionElementRteMore(),Zv.removeClass(e,"deactive"),Zv.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",Zv.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(Zv.hasClass(e,"size-"+o[a])){s="size-"+o[a];let t=o[a];Zv.doFunction(e,(e=>{Zv.removeClass(e,"size-"+t)}),!0)}else{let t=o[a];Zv.doFunction(e,(e=>{Zv.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]),Zv.doFunction(e,(function(e){Zv.addClass(e,s)}),!0)}else"-"===n?(a=1*s.replace("size-",""),(r=o.indexOf(a))>=1&&(s="size-"+o[r-1]),Zv.doFunction(e,(function(e){Zv.addClass(e,s)}),!0)):""===n||Zv.doFunction(e,(function(e){Zv.addClass(e,n)}),!0);Zv.doFunction(e,(function(e){e.style.fontSize=""}),!0)}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,Zv.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()||Zv.hasClass(t,"is-social")||Zv.hasClass(t,"is-rounded-button-medium")||Zv.hasClass(t,"cell-active"))&&!Zv.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(Zv.hasClass(t,"spacer")||"video"===t.tagName.toLowerCase()||Zv.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(Zv.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(Zv.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")?Zv.addClass(this.rteTool.querySelector("button[data-command=bold]"),"on"):Zv.removeClass(this.rteTool.querySelector("button[data-command=bold]"),"on"),document.queryCommandState("italic")?Zv.addClass(this.rteTool.querySelector("button[data-command=italic]"),"on"):Zv.removeClass(this.rteTool.querySelector("button[data-command=italic]"),"on"),document.queryCommandState("underline")?Zv.addClass(this.rteTool.querySelector("button[data-command=underline]"),"on"):Zv.removeClass(this.rteTool.querySelector("button[data-command=underline]"),"on"),document.queryCommandState("strikethrough")?Zv.addClass(this.rteFormattingOptions.querySelector("[data-command=strikethrough]"),"on"):Zv.removeClass(this.rteFormattingOptions.querySelector("[data-command=strikethrough]"),"on"),document.queryCommandState("superscript")?Zv.addClass(this.rteFormattingOptions.querySelector("[data-command=superscript]"),"on"):Zv.removeClass(this.rteFormattingOptions.querySelector("[data-command=superscript]"),"on"),document.queryCommandState("subscript")?Zv.addClass(this.rteFormattingOptions.querySelector("[data-command=subscript]"),"on"):Zv.removeClass(this.rteFormattingOptions.querySelector("[data-command=subscript]"),"on");let e=Zv.textSelection();if(!e)return;"uppercase"===e.style.textTransform?Zv.addClass(this.rteFormattingOptions.querySelector("[data-command=uppercase]"),"on"):Zv.removeClass(this.rteFormattingOptions.querySelector("[data-command=uppercase]"),"on"),document.queryCommandState("JustifyFull")?Zv.addClass(this.rteAlignOptions.querySelector("[data-align=justify]"),"on"):Zv.removeClass(this.rteAlignOptions.querySelector("[data-align=justify]"),"on"),document.queryCommandState("JustifyLeft")?Zv.addClass(this.rteAlignOptions.querySelector("[data-align=left]"),"on"):Zv.removeClass(this.rteAlignOptions.querySelector("[data-align=left]"),"on"),document.queryCommandState("JustifyRight")?Zv.addClass(this.rteAlignOptions.querySelector("[data-align=right]"),"on"):Zv.removeClass(this.rteAlignOptions.querySelector("[data-align=right]"),"on"),document.queryCommandState("JustifyCenter")?Zv.addClass(this.rteAlignOptions.querySelector("[data-align=center]"),"on"):Zv.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(/"/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?Zv.addClass(e,"on"):Zv.removeClass(e,"on")}))}let n=this.rteParagraphOptions.querySelectorAll("[data-block]");Array.prototype.forEach.call(n,(e=>{Zv.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||Zv.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++)Zv.hasClass(this.builder.activeIcon,"size-"+n[i])&&(t="size-"+n[i]);this.builder.activeIcon.className=e+(""!==t?" "+t:""),Zv.addClass(this.builder.activeIcon,"icon-active"),Zv.selectElementContents(this.builder.activeIcon),this.util.saveSelection()}else{if(!Zv.textSelection())return;this.builder.uo.saveForUndo(),this.util.pasteHtmlAtCaret('<i class="'+e+' icon-active"></i>',!0),this.builder.activeIcon=document.querySelector(".icon-active"),Zv.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(Zv.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=Zv.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,Zv.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;!Zv.hasClass(g,"is-builder");)g=g.parentNode;Zv.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(Zv.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=Zv.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,Zv.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;!Zv.hasClass(b,"is-builder");)b=b.parentNode;Zv.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 Jv=new ei;class eb{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",Jv.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 tb=new ei;class ib{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>';tb.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||nb(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||nb(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||nb(this,i)||((e=this).setAttribute("title",e.getAttribute("data-title")),n.style.display="none")}),!1)}}function nb(e,t){if(e===t)return!1;for(;t&&t!==e;)t=t.parentNode;return t===e}const ob=new ei;class sb{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 `;ob.appendHtml(this.builderStuff,n);this.builderStuff.querySelectorAll("div.is-lightbox").forEach((e=>{e.addEventListener("click",(t=>{if(ob.parentsHasClass(t.target,"lightbox-content"))return;ob.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?(ob.addClass(n,"light"),ob.removeClass(n,"dark")):(ob.addClass(n,"dark"),ob.removeClass(n,"light")),n.style.display="flex",window.frameElement||(document.body.style.overflowY="hidden"),setTimeout((()=>{ob.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?(ob.addClass(n,"light"),ob.removeClass(n,"dark")):(ob.addClass(n,"dark"),ob.removeClass(n,"light")),n.style.display="flex",window.frameElement||(document.body.style.overflowY="hidden"),setTimeout((()=>{ob.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?(ob.addClass(n,"light"),ob.removeClass(n,"dark")):(ob.addClass(n,"dark"),ob.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((()=>{ob.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 ab=new ei;class rb{constructor(){let e=document.querySelectorAll(".is-tabs a");Array.prototype.forEach.call(e,(e=>{ab.addEventListener(e,"click",(t=>{const i=e.getAttribute("data-menu");if(i)return document.querySelector("#"+i).style.display="block",t.preventDefault(),!1;if(ab.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=>{ab.removeClass(e,"active")})),s=document.querySelectorAll('.is-tabs-more[data-group="'+o+'"] > a'),Array.prototype.forEach.call(s,(e=>{ab.removeClass(e,"active")})),ab.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=>{ab.addEventListener(e,"click",(t=>{if(ab.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=>{ab.removeClass(e,"active")})),o=document.querySelectorAll('.is-tabs-more[data-group="'+n+'"] > a'),Array.prototype.forEach.call(o,(e=>{ab.removeClass(e,"active")})),ab.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=ab.parentsHasAttribute(i,"data-menu"),t=ab.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=ab.parentsHasAttribute(i,"data-menu"),t=ab.parentsHasClass(i,"is-tabs-more");e||t||document.querySelector(".is-tabs-more")&&(document.querySelector(".is-tabs-more").style.display="none")}}))}}const lb=new ei;class db{constructor(e={}){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:!0,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,autoResizeImageEmbed:!0,maxEmbedImageWidth:1600,zoom:1,useLightbox:!1,imageRenameOnEdit:!0,disableAutoEmbedVideo:!1,colHeight:[300,350,400,450,500,550,600,650,700]},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),"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=[]):"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 Jt(this);this.util=t,this.isTouchSupport=t.isTouchSupport(),this.isIE=t.detectIE(),this.opts.clearPreferences&&t.clearPreferences(),this.uoTm=null,this.uo=new jo(this),this.dom=lb,this.cbDom=lb,this.autoclean=!1,this.filesAdded="",this.opts.emailMode&&this.applyStyle("emailmode",".is-builder > div {display: block}");let i=document.querySelector("#_cbhtml");i||(i=lb.createElement("div"),i.id="_cbhtml",i.className="is-ui",lb.appendChild(document.body,i)),this.builderStuff=i,Yo(),this.preferences=new Kv(this),(e=>{const t=e.util,i=e.builderStuff,n=new Qo(e),o=new Fo(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")}">✕</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>`;cs.appendHtml(i,r),new ds({selector:".is-draggable"});const l=document.querySelector(".grideditor");document.addEventListener("click",(e=>{var t=(e=e||window.event).target||e.srcElement;if(cs.hasClass(l,"active")){let e=cs.parentsHasClass(t,"is-builder"),i=cs.parentsHasClass(t,"grideditor"),n=cs.parentsHasClass(t,"is-modal"),o=cs.parentsHasClass(t,"is-pop"),s=cs.parentsHasClass(t,"rte-grideditor")||cs.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");cs.addEventListener(d,"click",(()=>{cs.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");cs.addEventListener(c,"click",(()=>{const t=document.querySelectorAll(e.opts.container);Array.prototype.forEach.call(t,(e=>{e.hasAttribute("gridoutline")?(e.removeAttribute("gridoutline"),cs.removeClass(c,"on")):(e.setAttribute("gridoutline",""),cs.addClass(c,"on"))}))}));const u=Ko(e);d=l.querySelector(".cell-add"),cs.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",cs.removeClass(u,"arrow-bottom"),cs.removeClass(u,"arrow-left"),cs.removeClass(u,"arrow-top"),cs.removeClass(u,"center"),cs.removeClass(u,"left"),cs.addClass(u,"arrow-right"),cs.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"),cs.addEventListener(d,"click",(()=>{n.moveColumnPrevious(),t.clearControls()})),d=l.querySelector(".cell-next"),cs.addEventListener(d,"click",(()=>{n.moveColumnNext(),t.clearControls()})),d=l.querySelector(".cell-increase"),cs.addEventListener(d,"click",(()=>{n.increaseColumn(),t.clearControls()})),d=l.querySelector(".cell-decrease"),cs.addEventListener(d,"click",(()=>{n.decreaseColumn(),t.clearControls()})),d=l.querySelector(".cell-up"),cs.addEventListener(d,"click",(()=>{n.moveColumnUp(),t.clearControls()})),d=l.querySelector(".cell-down"),cs.addEventListener(d,"click",(()=>{n.moveColumnDown(),t.clearControls()})),d=l.querySelector(".cell-duplicate"),cs.addEventListener(d,"click",(()=>{n.duplicateColumn(),t.clearControls()})),d=l.querySelector(".cell-remove"),cs.addEventListener(d,"click",(()=>{n.removeColumn(),t.clearControls()})),d=l.querySelector(".cell-html"),d&&cs.addEventListener(d,"click",(()=>{t.cellSelected()&&o.view("cell")})),d=l.querySelector(".cell-settings"),d&&cs.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&&cs.addEventListener(p,"click",(i=>{let n=t.cellSelected();n&&(n.hasAttribute("data-noedit")?(n.removeAttribute("data-noedit"),n.contentEditable=!0,cs.removeClass(p,"on")):(n.setAttribute("data-noedit",""),n.contentEditable=!1,cs.addClass(p,"on"),t.clearActiveElement(!0)),e.colTool.showHideLockIndicator(n),e.element.applyBehavior(n),i.preventDefault())})),d=l.querySelector(".row-add"),cs.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",cs.removeClass(u,"arrow-bottom"),cs.removeClass(u,"arrow-left"),cs.removeClass(u,"arrow-top"),cs.removeClass(u,"center"),cs.removeClass(u,"left"),cs.addClass(u,"arrow-right"),cs.addClass(u,"right"),u.setAttribute("data-mode","row")})),d=l.querySelector(".row-up"),cs.addEventListener(d,"click",(()=>{n.moveRowUp(),t.clearControls()})),d=l.querySelector(".row-down"),cs.addEventListener(d,"click",(()=>{n.moveRowDown(),t.clearControls()})),d=l.querySelector(".row-duplicate"),cs.addEventListener(d,"click",(()=>{n.duplicateRow(),t.clearControls()})),d=l.querySelector(".row-remove"),cs.addEventListener(d,"click",(()=>{n.removeRow(),t.clearControls()})),d=l.querySelector(".row-html"),d&&cs.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=>{lb.hasClass(e,"preview")&&(this.preview=!0)})),this.preview||this.opts.snippetJSON.snippets.length>0&&mr(this),this.colTool=new yv(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 Vv(this),this.element=new Vm(this),this.rte=new Qv(this),this.tooltip=new ib(this),this.lightbox=new sb(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 rb,this.colorPicker=new ev({lang:this.opts.lang,colors:this.opts.colors}),document.addEventListener("click",this.doDocumentClick=e=>{var i=(e=e||window.event).target||e.srcElement;let n=lb.hasClass(i.parentNode,"is-builder"),o=lb.hasClass(i,"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=i;for(;y&&y.tagName&&"BODY"!==y.tagName&&"HTML"!==y.tagName;){if(lb.hasClass(y,"is-builder")&&(s=!0),lb.hasClass(y,"is-modal")&&(a=!0),lb.hasClass(y,"is-side")&&(r=!0),lb.hasClass(y,"is-pop")&&(l=!0),lb.hasClass(y,"is-tool")&&(d=!0),(lb.hasClass(y,"is-rte-tool")||lb.hasClass(y,"is-elementrte-tool"))&&(c=!0),lb.hasClass(y,"is-rte-pop")&&(u=!0),lb.hasClass(y,"row-add-initial")&&(p=!0),(lb.hasClass(y,"sl-wrapper")||lb.hasClass(y,"sl-overlay")||lb.hasClass(y,"sl-close"))&&(h=!0),(lb.hasClass(y,"is-selectbox")||lb.hasClass(y,"is-selectbox-options"))&&(g=!0),this.opts.specialElementClasses)for(let e=0;e<this.opts.specialElementClasses.length;e++)lb.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"===i.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)||n&&!p||o)&&(lb.getSelected()||(t.clearActiveCell(),t.clearControls())),!l&&!lb.parentsHasId(i,"_cbhtml")){const e=document.querySelectorAll(".is-pop");Array.prototype.forEach.call(e,(e=>{lb.parentsHasId(e,"_cbhtml")||(e.style.display="")}))}}}),document.addEventListener("mousedown",this.doDocumentMousedown=e=>{var i=(e=e||window.event).target||e.srcElement;lb.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 db(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.opts.onRender(),this.setZoomOnArea()}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)}))}lb.addClass(e,"is-builder"),this.preferences.initBuilder(e);if(lb.elementChildren(e).forEach((e=>{if(lb.hasClass(e,"row-add-initial"))return;(e.style.marginLeft||e.style.marginRight)&&(e.style.border="none"),this.rowtool=new Km(this),this.rowtool.render(e);new Qm(this).render(e);lb.elementChildren(e).forEach((e=>{if(lb.hasClass(e,"is-row-tool")||lb.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){e.querySelectorAll("p,h1,h2,h3,h4,h5,h6,table,ul,ol,pre,blockquote,code,figcaption,label,legend,button,a").length>0&&(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 Va(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||lb.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"),lb.removeClass(n,"snippet-item"),n.outerHTML=s;else{let e=lb.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"),lb.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 Fo(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)}}return i.readHtml(e)}viewHtmlNormal(){new Fo(this).viewHtmlNormal()}viewHtmlLarger(){new Fo(this).viewHtmlLarger()}readHtml(e,t,i){return new Fo(this).readHtml(e,t,i)}fromViewToActual(e){return new Fo(this).fromViewToActual(e)}colorpicker(e,t){return new ev({onPick:e,color:t,colors:this.opts.colors,animateModal:this.opts.animateModal,elementToAnimate:this.opts.container,lang:this.opts.lang})}gradientpicker(){return new hv({gradientcolors:this.opts.gradientcolors,colors:this.opts.colors,animateModal:this.opts.animateModal,elementToAnimate:this.opts.container,lang:this.opts.lang})}dropdown(e,t){new ps(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 Fo(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"),lb.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 eb({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=>{lb.hasClass(t,"please-wait")&&(lb.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=>{lb.hasClass(t,"please-wait")&&(lb.removeClass(t,"please-wait"),t.parentNode.parentNode.querySelector('input[type="text"]').value=e,t.parentNode.parentNode.querySelector('input[type="file"]').value="")}))}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");lb.removeClass(t,"active"),t=document.querySelector(".is-modal.imageselect"),lb.removeClass(t,"active"),t=document.querySelector(".is-modal.fileselect"),lb.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 ev({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 ds({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 ds({selector:".is-draggable"})}}))}}addHtml(e){lb.appendHtml(this.builderStuff,e)}addCss(e){lb.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&&lb.addEventListener(e,"click",(()=>{this.rte.showRteMore()}))}let r=o.querySelector(i);r=r||s.querySelector(i),r&&(r.setAttribute("data-title",r.getAttribute("title")),lb.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&&lb.addEventListener(e,"click",(()=>{this.rte.showRteMore()}))}let r=o.querySelectorAll(i);r.forEach((e=>{e.setAttribute("data-title",e.getAttribute("title")),lb.addEventListener(e,"click",(e=>{n(e)}))})),r=s.querySelectorAll(i),r.forEach((e=>{e.setAttribute("data-title",e.getAttribute("title")),lb.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&&lb.addEventListener(e,"click",(()=>{this.rte.showElementRteMore()}))}let r=o.querySelector(i);r=r||s.querySelector(i),r&&(r.setAttribute("data-title",r.getAttribute("title")),lb.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 ds({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 ds({selector:".is-draggable"}),s}getIcons(){return this.rte.getIcons()}showSidePanel(e){let t=this.builderStuff.querySelectorAll(".is-side");Array.prototype.forEach.call(t,(e=>{lb.removeClass(e,"active")})),lb.addClass(e,"active")}hideSidePanel(e){lb.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 Fo(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&&mr(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&&(lb.removeClass(document.body,"colored"),lb.removeClass(document.body,"colored-dark"),lb.removeClass(document.body,"light"),lb.addClass(document.body,"dark")),"colored"===e&&(lb.removeClass(document.body,"dark"),lb.removeClass(document.body,"colored-dark"),lb.removeClass(document.body,"light"),lb.addClass(document.body,"colored")),"colored-dark"===e&&(lb.removeClass(document.body,"dark"),lb.removeClass(document.body,"colored"),lb.removeClass(document.body,"light"),lb.addClass(document.body,"colored-dark")),""===e&&(lb.removeClass(document.body,"dark"),lb.removeClass(document.body,"colored-dark"),lb.removeClass(document.body,"colored"),lb.removeClass(document.body,"light")),"light"===e&&(lb.removeClass(document.body,"dark"),lb.removeClass(document.body,"colored-dark"),lb.removeClass(document.body,"colored"),lb.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&&(lb.removeClass(document.body,"dark"),lb.removeClass(document.body,"colored-dark"),lb.removeClass(document.body,"colored"),lb.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"))&&lb.hasClass(e,"block-click")&&this.openMedia(e)}handleCellClick(e,t){this.lightboxOpen(e);this.util.clearActiveCell(),this.activeCol=e;let i=t.target;lb.addClass(e,"cell-active");let n=e.parentNode;lb.addClass(n,"row-active");const o=document.querySelectorAll(this.opts.container);Array.prototype.forEach.call(o,(e=>{lb.removeClass(e,"builder-active")})),lb.addClass(n.parentNode,"builder-active"),n.childElementCount-2==1||lb.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")?lb.addClass(t,"on"):lb.removeClass(t,"on")}let a=lb.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&&lb.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&&lb.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=lb.getElementOffset(e);let i=t.top+t.height;const o=lb.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()),lb.hasClass(e.parentNode.parentNode,"is-builder")||lb.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){lb.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>';lb.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{if(t=u.innerHTML,t="html"===this.opts.paste?e.cleanHTML(t,!1):e.cleanHTML(t,!0),u.innerHTML=t,"html"===this.opts.paste){let e=u.querySelectorAll("*");Array.prototype.forEach.call(e,(e=>{for(let t=0;t<e.attributes.length;t++)"style"!==e.attributes[t].name&&e.removeAttribute(e.attributes[t].name)})),e=u.querySelectorAll("li"),Array.prototype.forEach.call(e,(e=>{e.style.whiteSpace=""}))}else{const e=e=>{for(;e.attributes.length>0;)e.removeAttribute(e.attributes[0].name)};let t=u.querySelectorAll("*");Array.prototype.forEach.call(t,(t=>{e(t)}))}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;r.insertNode(l),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 cb={exports:{}};!function(e,t){
|
|
119
119
|
/*!
|
|
120
120
|
* pace.js v1.2.4
|
|
121
121
|
* https://github.com/CodeByZach/pace/
|
|
122
122
|
* Licensed MIT © HubSpot, Inc.
|
|
123
123
|
*/
|
|
124
|
-
(function(){if("undefined"!=typeof window){var t,i,n,o,s,a,r,l,d,c,u,p,h,g,f,m,v,b,y,_,x,w,S,C,k,E,A,q,L,T,M,O,R,B,N,I,$,H,P,D,z,F,U,j,W,G,Y,V,X,K=[].slice,Z={}.hasOwnProperty,Q=function(e,t){for(var i in t)Z.call(t,i)&&(e[i]=t[i]);function n(){this.constructor=e}return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},J=[].indexOf||function(e){for(var t=0,i=this.length;t<i;t++)if(t in this&&this[t]===e)return t;return-1},ee=function(e,t){return function(){return e.apply(t,arguments)}};for(w={className:"",catchupTime:100,initialRate:.03,minTime:250,ghostTime:100,maxProgressPerFrame:20,easeFactor:1.25,startOnPageLoad:!0,restartOnPushState:!0,restartOnRequestAfter:500,target:"body",elements:{checkInterval:100,selectors:["body"]},eventLag:{minSamples:10,sampleCount:3,lagThreshold:3},ajax:{trackMethods:["GET"],trackWebSockets:!0,ignoreURLs:[]}},T=function(){var e;return null!=(e="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?e:+new Date},O=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,x=window.cancelAnimationFrame||window.mozCancelAnimationFrame,m=function(e,t,i){return"function"==typeof e.addEventListener?e.addEventListener(t,i,!1):function(){if("function"!=typeof e["on"+t]||"object"!=typeof e["on"+t].eventListeners){var n=new l;"function"==typeof e["on"+t]&&n.on(t,e["on"+t]),e["on"+t]=function(e){return n.trigger(t,e)},e["on"+t].eventListeners=n}else n=e["on"+t].eventListeners;n.on(t,i)}()},null==O&&(O=function(e){return setTimeout(e,50)},x=function(e){return clearTimeout(e)}),B=function(e){var t,i;return t=T(),(i=function(){var n;return(n=T()-t)>=33?(t=T(),e(n,(function(){return O(i)}))):setTimeout(i,33-n)})()},R=function(){var e,t,i;return i=arguments[0],t=arguments[1],e=3<=arguments.length?K.call(arguments,2):[],"function"==typeof i[t]?i[t].apply(i,e):i[t]},S=function(){var e,t,i,n,o,s,a;for(t=arguments[0],s=0,a=(n=2<=arguments.length?K.call(arguments,1):[]).length;s<a;s++)if(i=n[s])for(e in i)Z.call(i,e)&&(o=i[e],null!=t[e]&&"object"==typeof t[e]&&null!=o&&"object"==typeof o?S(t[e],o):t[e]=o);return t},b=function(e){var t,i,n,o,s;for(i=t=0,o=0,s=e.length;o<s;o++)n=e[o],i+=Math.abs(n),t++;return i/t},k=function(e,t){var i,n,o;if(null==e&&(e="options"),null==t&&(t=!0),o=document.querySelector("[data-pace-"+e+"]")){if(i=o.getAttribute("data-pace-"+e),!t)return i;try{return JSON.parse(i)}catch(e){return n=e,"undefined"!=typeof console&&null!==console?console.error("Error parsing inline pace options",n):void 0}}},r=function(){function e(){}return e.prototype.on=function(e,t,i,n){var o;return null==n&&(n=!1),null==this.bindings&&(this.bindings={}),null==(o=this.bindings)[e]&&(o[e]=[]),this.bindings[e].push({handler:t,ctx:i,once:n})},e.prototype.once=function(e,t,i){return this.on(e,t,i,!0)},e.prototype.off=function(e,t){var i,n,o;if(null!=(null!=(n=this.bindings)?n[e]:void 0)){if(null==t)return delete this.bindings[e];for(i=0,o=[];i<this.bindings[e].length;)this.bindings[e][i].handler===t?o.push(this.bindings[e].splice(i,1)):o.push(i++);return o}},e.prototype.trigger=function(){var e,t,i,n,o,s,a,r,l;if(i=arguments[0],e=2<=arguments.length?K.call(arguments,1):[],null!=(a=this.bindings)?a[i]:void 0){for(o=0,l=[];o<this.bindings[i].length;)n=(r=this.bindings[i][o]).handler,t=r.ctx,s=r.once,n.apply(null!=t?t:this,e),s?l.push(this.bindings[i].splice(o,1)):l.push(o++);return l}},e}(),c=window.Pace||{},window.Pace=c,S(c,r.prototype),M=c.options=S({},w,window.paceOptions,k()),j=0,G=(V=["ajax","document","eventLag","elements"]).length;j<G;j++)!0===M[H=V[j]]&&(M[H]=w[H]);d=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Q(t,e),t}(Error),i=function(){function e(){this.progress=0}return e.prototype.getElement=function(){var e;if(null==this.el){if(!(e=document.querySelector(M.target)))throw new d;this.el=document.createElement("div"),this.el.className="pace pace-active",document.body.className=document.body.className.replace(/(pace-done )|/,"pace-running ");var t=""!==M.className?" "+M.className:"";this.el.innerHTML='<div class="pace-progress'+t+'">\n <div class="pace-progress-inner"></div>\n</div>\n<div class="pace-activity"></div>',null!=e.firstChild?e.insertBefore(this.el,e.firstChild):e.appendChild(this.el)}return this.el},e.prototype.finish=function(){var e;return(e=this.getElement()).className=e.className.replace("pace-active","pace-inactive"),document.body.className=document.body.className.replace("pace-running ","pace-done ")},e.prototype.update=function(e){return this.progress=e,c.trigger("progress",e),this.render()},e.prototype.destroy=function(){try{this.getElement().parentNode.removeChild(this.getElement())}catch(e){d=e}return this.el=void 0},e.prototype.render=function(){var e,t,i,n,o,s,a;if(null==document.querySelector(M.target))return!1;for(e=this.getElement(),n="translate3d("+this.progress+"%, 0, 0)",o=0,s=(a=["webkitTransform","msTransform","transform"]).length;o<s;o++)t=a[o],e.children[0].style[t]=n;return(!this.lastRenderedProgress||this.lastRenderedProgress|0!==this.progress|0)&&(e.children[0].setAttribute("data-progress-text",(0|this.progress)+"%"),this.progress>=100?i="99":(i=this.progress<10?"0":"",i+=0|this.progress),e.children[0].setAttribute("data-progress",""+i)),c.trigger("change",this.progress),this.lastRenderedProgress=this.progress},e.prototype.done=function(){return this.progress>=100},e}(),l=function(){function e(){this.bindings={}}return e.prototype.trigger=function(e,t){var i,n,o,s,a;if(null!=this.bindings[e]){for(a=[],n=0,o=(s=this.bindings[e]).length;n<o;n++)i=s[n],a.push(i.call(this,t));return a}},e.prototype.on=function(e,t){var i;return null==(i=this.bindings)[e]&&(i[e]=[]),this.bindings[e].push(t)},e}(),U=window.XMLHttpRequest,F=window.XDomainRequest,z=window.WebSocket,C=function(e,t){var i,n;for(i in n=[],t.prototype)try{null==e[i]&&"function"!=typeof t[i]?"function"==typeof Object.defineProperty?n.push(Object.defineProperty(e,i,{get:function(e){return function(){return t.prototype[e]}}(i),configurable:!0,enumerable:!0})):n.push(e[i]=t.prototype[i]):n.push(void 0)}catch(e){}return n},q=[],c.ignore=function(){var e,t,i;return t=arguments[0],e=2<=arguments.length?K.call(arguments,1):[],q.unshift("ignore"),i=t.apply(null,e),q.shift(),i},c.track=function(){var e,t,i;return t=arguments[0],e=2<=arguments.length?K.call(arguments,1):[],q.unshift("track"),i=t.apply(null,e),q.shift(),i},$=function(e){var t;if(null==e&&(e="GET"),"track"===q[0])return"force";if(!q.length&&M.ajax){if("socket"===e&&M.ajax.trackWebSockets)return!0;if(t=e.toUpperCase(),J.call(M.ajax.trackMethods,t)>=0)return!0}return!1},u=function(e){function t(){var e,i=this;t.__super__.constructor.apply(this,arguments),e=function(e){var t;return t=e.open,e.open=function(n,o,s){return $(n)&&i.trigger("request",{type:n,url:o,request:e}),t.apply(e,arguments)}},window.XMLHttpRequest=function(t){var i;return i=new U(t),e(i),i};try{C(window.XMLHttpRequest,U)}catch(e){}if(null!=F){window.XDomainRequest=function(){var t;return t=new F,e(t),t};try{C(window.XDomainRequest,F)}catch(e){}}if(null!=z&&M.ajax.trackWebSockets){window.WebSocket=function(e,t){var n;return n=null!=t?new z(e,t):new z(e),$("socket")&&i.trigger("request",{type:"socket",url:e,protocols:t,request:n}),n};try{C(window.WebSocket,z)}catch(e){}}}return Q(t,e),t}(l),W=null,I=function(e){var t,i,n,o;for(i=0,n=(o=M.ajax.ignoreURLs).length;i<n;i++)if("string"==typeof(t=o[i])){if(-1!==e.indexOf(t))return!0}else if(t.test(e))return!0;return!1},(E=function(){return null==W&&(W=new u),W})().on("request",(function(e){var i,n,o,s,a;if(s=e.type,o=e.request,a=e.url,!I(a))return c.running||!1===M.restartOnRequestAfter&&"force"!==$(s)?void 0:(n=arguments,"boolean"==typeof(i=M.restartOnRequestAfter||0)&&(i=0),setTimeout((function(){var e,i,a,r,l;if("socket"===s?o.readyState<1:0<(a=o.readyState)&&a<4){for(c.restart(),l=[],e=0,i=(r=c.sources).length;e<i;e++){if((H=r[e])instanceof t){H.watch.apply(H,n);break}l.push(void 0)}return l}}),i))})),t=function(){function e(){this.complete=ee(this.complete,this);var e=this;this.elements=[],E().on("request",(function(){return e.watch.apply(e,arguments)}))}return e.prototype.watch=function(e){var t,i,n,o;if(n=e.type,t=e.request,o=e.url,!I(o))return i="socket"===n?new g(t,this.complete):new f(t,this.complete),this.elements.push(i)},e.prototype.complete=function(e){return this.elements=this.elements.filter((function(t){return t!==e}))},e}(),f=function(e,t){var i,n,o,s,a=this;if(this.progress=0,null!=window.ProgressEvent)for(m(e,"progress",(function(e){return e.lengthComputable?a.progress=100*e.loaded/e.total:a.progress=a.progress+(100-a.progress)/2})),i=0,n=(s=["load","abort","timeout","error"]).length;i<n;i++)m(e,s[i],(function(){return t(a),a.progress=100}));else o=e.onreadystatechange,e.onreadystatechange=function(){var i;return 0===(i=e.readyState)||4===i?(t(a),a.progress=100):3===e.readyState&&(a.progress=50),"function"==typeof o?o.apply(null,arguments):void 0}},g=function(e,t){var i,n,o,s=this;for(this.progress=0,i=0,n=(o=["error","open"]).length;i<n;i++)m(e,o[i],(function(){return t(s),s.progress=100}))},o=function(){function e(e){var t,i,n,o;for(null==e&&(e={}),this.complete=ee(this.complete,this),this.elements=[],null==e.selectors&&(e.selectors=[]),i=0,n=(o=e.selectors).length;i<n;i++)t=o[i],this.elements.push(new s(t,this.complete))}return e.prototype.complete=function(e){return this.elements=this.elements.filter((function(t){return t!==e}))},e}(),s=function(){function e(e,t){this.selector=e,this.completeCallback=t,this.progress=0,this.check()}return e.prototype.check=function(){var e=this;return document.querySelector(this.selector)?this.done():setTimeout((function(){return e.check()}),M.elements.checkInterval)},e.prototype.done=function(){return this.completeCallback(this),this.completeCallback=null,this.progress=100},e}(),n=function(){function e(){var e,t,i=this;this.progress=null!=(t=this.states[document.readyState])?t:100,e=document.onreadystatechange,document.onreadystatechange=function(){return null!=i.states[document.readyState]&&(i.progress=i.states[document.readyState]),"function"==typeof e?e.apply(null,arguments):void 0}}return e.prototype.states={loading:0,interactive:50,complete:100},e}(),a=function(){var e,t,i,n,o,s=this;this.progress=0,e=0,o=[],n=0,i=T(),t=setInterval((function(){var a;return a=T()-i-50,i=T(),o.push(a),o.length>M.eventLag.sampleCount&&o.shift(),e=b(o),++n>=M.eventLag.minSamples&&e<M.eventLag.lagThreshold?(s.progress=100,clearInterval(t)):s.progress=3/(e+3)*100}),50)},h=function(){function e(e){this.source=e,this.last=this.sinceLastUpdate=0,this.rate=M.initialRate,this.catchup=0,this.progress=this.lastProgress=0,null!=this.source&&(this.progress=R(this.source,"progress"))}return e.prototype.tick=function(e,t){var i;return null==t&&(t=R(this.source,"progress")),t>=100&&(this.done=!0),t===this.last?this.sinceLastUpdate+=e:(this.sinceLastUpdate&&(this.rate=(t-this.last)/this.sinceLastUpdate),this.catchup=(t-this.progress)/M.catchupTime,this.sinceLastUpdate=0,this.last=t),t>this.progress&&(this.progress+=this.catchup*e),i=1-Math.pow(this.progress/100,M.easeFactor),this.progress+=i*this.rate*e,this.progress=Math.min(this.lastProgress+M.maxProgressPerFrame,this.progress),this.progress=Math.max(0,this.progress),this.progress=Math.min(100,this.progress),this.lastProgress=this.progress,this.progress},e}(),P=null,N=null,y=null,D=null,v=null,_=null,c.running=!1,A=function(){if(M.restartOnPushState)return c.restart()},null!=window.history.pushState&&(Y=window.history.pushState,window.history.pushState=function(){return A(),Y.apply(window.history,arguments)}),null!=window.history.replaceState&&(X=window.history.replaceState,window.history.replaceState=function(){return A(),X.apply(window.history,arguments)}),p={ajax:t,elements:o,document:n,eventLag:a},(L=function(){var e,t,n,o,s,a,r,l;for(c.sources=P=[],t=0,o=(a=["ajax","elements","document","eventLag"]).length;t<o;t++)!1!==M[e=a[t]]&&P.push(new p[e](M[e]));for(n=0,s=(l=null!=(r=M.extraSources)?r:[]).length;n<s;n++)H=l[n],P.push(new H(M));return c.bar=y=new i,N=[],D=new h})(),c.stop=function(){return c.trigger("stop"),c.running=!1,y.destroy(),_=!0,null!=v&&("function"==typeof x&&x(v),v=null),L()},c.restart=function(){return c.trigger("restart"),c.stop(),c.start()},c.go=function(){var e;return c.running=!0,y.render(),e=T(),_=!1,v=B((function(t,i){var n,o,s,a,r,l,d,u,p,g,f,m,v,b,x;for(y.progress,o=g=0,s=!0,l=f=0,v=P.length;f<v;l=++f)for(H=P[l],p=null!=N[l]?N[l]:N[l]=[],d=m=0,b=(r=null!=(x=H.elements)?x:[H]).length;m<b;d=++m)a=r[d],s&=(u=null!=p[d]?p[d]:p[d]=new h(a)).done,u.done||(o++,g+=u.tick(t));return n=g/o,y.update(D.tick(t,n)),y.done()||s||_?(y.update(100),c.trigger("done"),setTimeout((function(){return y.finish(),c.running=!1,c.trigger("hide")}),Math.max(M.ghostTime,Math.max(M.minTime-(T()-e),0)))):i()}))},c.start=function(e){S(M,e),c.running=!0;try{y.render()}catch(e){d=e}return document.querySelector(".pace")?(c.trigger("start"),c.go()):setTimeout(c.start,50)},e.exports=c}}).call(l)}(cb);var ub=cb.exports;const pb=new e;return class{constructor(e={}){if(this.settings=Object.assign(this,{wrapper:".is-wrapper",useSidebar:!0,sidebarData:{buttons:[{name:"section",title:"Sections"},{name:"snippet",title:"Content Blocks"},{name:"typography",title:"Typography"},{name:"code",title:"HTML"}]},htmlSyntaxHighlighting:!0,enableContentStyle:!0,disableStaticSection:!1,framework:"",designUrl1:"assets/designs/basic.js",designUrl2:"assets/designs/examples.js",designPath:"assets/designs/",designPathReplace:[],scriptPath:"",snippetUrl:"assets/minimalist-blocks/content.js",snippetPath:"assets/minimalist-blocks/",snippetPathReplace:[],assetPath:"assets/",modulePath:"assets/modules/",contentStylePath:"assets/styles/",pluginPath:"contentbuilder/",fontAssetPath:"assets/fonts/",plugins:[{name:"preview",showInMainToolbar:!0,showInElementToolbar:!0},{name:"wordcount",showInMainToolbar:!0,showInElementToolbar:!0},{name:"symbols",showInMainToolbar:!0,showInElementToolbar:!1},{name:"buttoneditor",showInMainToolbar:!1,showInElementToolbar:!1}],disableConfig:!1,useLightbox:!0,themes:[["#ffffff","",""],["#282828","dark","contentbuilder/themes/dark.css"],["#0088dc","colored","contentbuilder/themes/colored-blue.css"],["#006add","colored","contentbuilder/themes/colored-blue6.css"],["#0a4d92","colored","contentbuilder/themes/colored-darkblue.css"],["#96af16","colored","contentbuilder/themes/colored-green.css"],["#f3522b","colored","contentbuilder/themes/colored-orange.css"],["#b92ea6","colored","contentbuilder/themes/colored-magenta.css"],["#e73171","colored","contentbuilder/themes/colored-pink.css"],["#782ec5","colored","contentbuilder/themes/colored-purple.css"],["#ed2828","colored","contentbuilder/themes/colored-red.css"],["#f9930f","colored","contentbuilder/themes/colored-yellow.css"],["#13b34b","colored","contentbuilder/themes/colored-green4.css"],["#333333","colored-dark","contentbuilder/themes/colored-dark.css"],["#dbe5f5","light","contentbuilder/themes/light-blue.css"],["#fbe6f2","light","contentbuilder/themes/light-pink.css"],["#dcdaf3","light","contentbuilder/themes/light-purple.css"],["#ffe9e0","light","contentbuilder/themes/light-red.css"],["#fffae5","light","contentbuilder/themes/light-yellow.css"],["#ddf3dc","light","contentbuilder/themes/light-green.css"],["#c7ebfd","light","contentbuilder/themes/light-blue2.css"],["#ffd5f2","light","contentbuilder/themes/light-pink2.css"],["#eadafb","light","contentbuilder/themes/light-purple2.css"],["#c5d4ff","light","contentbuilder/themes/light-blue3.css"],["#ffefb1","light","contentbuilder/themes/light-yellow2.css"],["#fefefe","light","contentbuilder/themes/light-gray3.css"],["#e5e5e5","light","contentbuilder/themes/light-gray2.css"],["#dadada","light","contentbuilder/themes/light-gray.css"],["#3f4ec9","colored","contentbuilder/themes/colored-blue2.css"],["#6779d9","colored","contentbuilder/themes/colored-blue4.css"],["#10b9d7","colored","contentbuilder/themes/colored-blue3.css"],["#006add","colored","contentbuilder/themes/colored-blue5.css"],["#e92f94","colored","contentbuilder/themes/colored-pink3.css"],["#a761d9","colored","contentbuilder/themes/colored-purple2.css"],["#f9930f","colored","contentbuilder/themes/colored-yellow2.css"],["#f3522b","colored","contentbuilder/themes/colored-red3.css"],["#36b741","colored","contentbuilder/themes/colored-green2.css"],["#00c17c","colored","contentbuilder/themes/colored-green3.css"],["#fb3279","colored","contentbuilder/themes/colored-pink2.css"],["#ff6d13","colored","contentbuilder/themes/colored-orange2.css"],["#f13535","colored","contentbuilder/themes/colored-red2.css"],["#646464","colored","contentbuilder/themes/colored-gray.css"],["#3f4ec9","dark","contentbuilder/themes/dark-blue.css"],["#0b4d92","dark","contentbuilder/themes/dark-blue2.css"],["#006add","dark","contentbuilder/themes/dark-blue3.css"],["#5f3ebf","dark","contentbuilder/themes/dark-purple.css"],["#e92f69","dark","contentbuilder/themes/dark-pink.css"],["#4c4c4c","dark","contentbuilder/themes/dark-gray.css"],["#ed2828","dark","contentbuilder/themes/dark-red.css"],["#006add","colored","contentbuilder/themes/colored-blue8.css"],["#ff7723","colored","contentbuilder/themes/colored-orange3.css"],["#ff5722","colored","contentbuilder/themes/colored-red5.css"],["#f13535","colored","contentbuilder/themes/colored-red4.css"],["#00bd79","colored","contentbuilder/themes/colored-green5.css"],["#557ae9","colored","contentbuilder/themes/colored-blue7.css"],["#fb3279","colored","contentbuilder/themes/colored-pink4.css"]],backgroundColor:"#f1f1f1",imageselect:"",fileselect:"",imageSelect:"",fileSelect:"",videoselect:"",videoSelect:"",slider:"",navbar:!1,onRender:function(){},onChange:function(){},onCoverImageSelectClick:null,coverImageHandler:"",customval:"",enableAnimation:!1,colors:["#ff8f00","#ef6c00","#d84315","#c62828","#58362f","#37474f","#353535","#f9a825","#9e9d24","#558b2f","#ad1457","#6a1b9a","#4527a0","#616161","#00b8c9","#009666","#2e7d32","#0277bd","#1565c0","#283593","#9e9e9e"],gradientcolors:[["linear-gradient(0deg, rgb(255, 57, 25), rgb(249, 168, 37))","light"],["linear-gradient(0deg, rgb(255, 57, 25), rgb(255, 104, 15))","light"],["linear-gradient(0deg, #FF5722, #FF9800)","light"],["linear-gradient(0deg, #613ca2, rgb(110, 123, 217))","light"],["linear-gradient(0deg, rgb(65, 70, 206), rgb(236, 78, 130))","light"],["linear-gradient(0deg, rgb(0, 150, 102), rgb(90, 103, 197))","light"],["linear-gradient(30deg, rgb(249, 119, 148), rgb(98, 58, 162))","light"],["linear-gradient(0deg, rgb(223, 70, 137), rgb(90, 103, 197))","light"],["linear-gradient(0deg, rgb(40, 53, 147), rgb(90, 103, 197))","light"],["linear-gradient(0deg, rgb(21, 101, 192), rgb(52, 169, 239))","light"],["linear-gradient(0deg, rgb(32, 149, 219), rgb(139, 109, 230))","light"],["linear-gradient(0deg, rgb(90, 103, 197), rgb(0, 184, 201))","light"],["linear-gradient(0deg, rgb(0, 184, 201), rgb(253, 187, 45))","light"],["linear-gradient(0deg, rgb(255, 208, 100), rgb(239, 98, 159))","light"],["linear-gradient(0deg, rgb(0, 214, 223), rgb(130, 162, 253))","light"],["linear-gradient(0deg, rgb(50, 234, 251), rgb(248, 247, 126))","dark"],["linear-gradient(0deg, rgb(141, 221, 255), rgb(255, 227, 255))","dark"],["linear-gradient(0deg, rgb(255, 170, 170), rgb(255, 255, 200))","dark"],["linear-gradient(0deg, rgb(239, 239, 239), rgb(252, 252, 252))","dark"]],photoselect:"",moduleConfig:[],largerImageHandler:"",mediaHandler:"",videoHandler:"",cellFormat:"",rowFormat:"",row:"",cols:[],colequal:[],colsizes:[],classReplace:[],columnTool:!0,elementTool:!0,buttons:["bold","italic","underline","formatting","color","align","textsettings","createLink","tags","|","undo","redo","zoom","more"],buttonsMore:["icon","image","|","list","font","formatPara","|","preferences"],elementButtons:["left","center","right","full","undo","redo","zoom","more"],elementButtonsMore:["|","preferences"],iconButtons:["icon","color","textsettings","createLink","|","undo","redo","zoom","more"],iconButtonsMore:["|","preferences"],customTags:[],animateModal:!1,elementAnimate:!0,elementEditor:!0,imageQuality:.92,columnHtmlEditor:!0,rowHtmlEditor:!0,rowMoveButtons:!0,scrollableEditingToolbar:!0,toolbar:"top",toolbarDisplay:"auto",toolbarAddSnippetButton:!1,paste:"html-without-styles",builderMode:"",rowcolOutline:!0,elementSelection:!0,animatedSorting:!1,dragWithoutHandle:!1,addButtonPlacement:"",defaultDesignCategory:5,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:101,outlineMode:"",elementHighlight:!0,rowTool:"right",toolStyle:"",outlineStyle:"",snippetAddTool:!0,mobileSimpleEdit:!1,clearPreferences:!1,imageEmbed:!0,undoRedoStyles:!0,undoContainerOnly:!1,absolutePath:!1,zoom:.6,contentStyleWithSample:!1,contentStyles:{data:{categories:[{id:-1,desc:"ALL"},{id:1,desc:"Sans-serif & Sans-serif"},{id:2,desc:"Serif & Serif"},{id:3,desc:"Sans-serif & Serif"},{id:4,desc:"Serif & Sans-serif"},{id:5,desc:"Monospace & Monospace"},{id:6,desc:"Monospace & Sans-serif"},{id:7,desc:"Sans-serif & Monospace"},{id:8,desc:"Display & Sans-serif"},{id:9,desc:"Handwriting & Sans-serif"},{id:10,desc:"Display & Serif"},{id:11,desc:"Handwriting & Serif"},{id:12,desc:"Display & Monospace"},{id:13,desc:"Handwriting & Monospace"},{id:14,desc:"Display & Display"}],styles:[{css:"basetype-opensans.css",sectioncss:"type-opensans.css",classname:"type-opensans",img:"000.png",category:9,default:!0,caption:"Open Sans"},{css:"basetype-spectralsc-karma.css",sectioncss:"type-spectralsc-karma.css",classname:"type-spectralsc-karma",img:"004.png",category:2,default:!0,caption:"Spectral SC & Karma"},{css:"basetype-alegreyasanssc-hind.css",sectioncss:"type-alegreyasanssc-hind.css",classname:"type-alegreyasanssc-hind",img:"006.png",category:1,default:!0,caption:"Alegreya Sans SC & Hind"},{css:"basetype-cabinsketch-montserrat.css",sectioncss:"type-cabinsketch-montserrat.css",classname:"type-cabinsketch-montserrat",img:"007.png",category:8,default:!0,caption:"Cabin Sketch & Montserrat"},{css:"basetype-anonymouspro-catamaran.css",sectioncss:"type-anonymouspro-catamaran.css",classname:"type-anonymouspro-catamaran",img:"010.png",category:6,default:!0,caption:"Anonymous Pro & Catamaran"},{css:"basetype-nothingyouc-ibmplexmono.css",sectioncss:"type-nothingyouc-ibmplexmono.css",classname:"type-nothingyouc-ibmplexmono",img:"011.png",category:13,default:!0,caption:"Nothing You Could Do & IBM Plex Mono"},{css:"basetype-juliussansone-taviraj.css",sectioncss:"type-juliussansone-taviraj.css",classname:"type-juliussansone-taviraj",img:"012.png",category:3,default:!0,caption:"Julius Sans One & Taviraj"},{css:"basetype-voltaire-sourcecodepro.css",sectioncss:"type-voltaire-sourcecodepro.css",classname:"type-voltaire-sourcecodepro",img:"013.png",category:7,default:!0,caption:"Voltaire & Source Code Pro"},{css:"basetype-oregano-zillaslab.css",sectioncss:"type-oregano-zillaslab.css",classname:"type-oregano-zillaslab",img:"014.png",category:10,default:!0,caption:"Oregano & Zilla Slab"},{css:"basetype-anonymouspro.css",sectioncss:"type-anonymouspro.css",classname:"type-anonymouspro",img:"016.png",category:5,default:!1,caption:"Anonymous Pro"},{css:"basetype-dancingscript-anonymouspro.css",sectioncss:"type-dancingscript-anonymouspro.css",classname:"type-dancingscript-anonymouspro",img:"018.png",category:13,default:!1,caption:"Dancing Script & Anonymous Pro"},{css:"basetype-unicaone-cormorantgaramond.css",sectioncss:"type-unicaone-cormorantgaramond.css",classname:"type-unicaone-cormorantgaramond",img:"019.png",category:10,default:!1,caption:"Unica One & Cormorant Garamond"},{css:"basetype-allan-overpassmono.css",sectioncss:"type-allan-overpassmono.css",classname:"type-allan-overpassmono",img:"020.png",category:12,default:!1,caption:"Allan & Overpass Mono"},{css:"basetype-averialibre-barlow.css",sectioncss:"type-averialibre-barlow.css",classname:"type-averialibre-barlow",img:"021.png",category:8,default:!1,caption:"Averia Libre & Barlow"},{css:"basetype-merriweathersans-martel.css",sectioncss:"type-merriweathersans-martel.css",classname:"type-merriweathersans-martel",img:"022.png",category:3,default:!1,caption:"Merriweather Sans & Martel"},{css:"basetype-poppins.css",sectioncss:"type-poppins.css",classname:"type-poppins",img:"023.png",category:1,default:!1,caption:"Poppins"},{css:"basetype-specialelite-encodesans.css",sectioncss:"type-specialelite-encodesans.css",classname:"type-specialelite-encodesans",img:"026.png",category:8,default:!1,caption:"Special Elite & Encode Sans"},{css:"basetype-marcellussc-heebo.css",sectioncss:"type-marcellussc-heebo.css",classname:"type-marcellussc-heebo",img:"028.png",category:4,default:!1,caption:"Marcellus SC & Heebo"},{css:"basetype-oswald-cousine.css",sectioncss:"type-oswald-cousine.css",classname:"type-oswald-cousine",img:"029.png",category:7,default:!1,caption:"Oswald & Cousine"},{css:"basetype-oranienbaum-sourcesanspro.css",sectioncss:"type-oranienbaum-sourcesanspro.css",classname:"type-oranienbaum-sourcesanspro",img:"031.png",category:4,default:!1,caption:"Oranienbaum & Source Sans Pro"},{css:"basetype-sriracha-arvo.css",sectioncss:"type-sriracha-arvo.css",classname:"type-sriracha-arvo",img:"032.png",category:11,default:!1,caption:"Sriracha & Arvo"},{css:"basetype-merriweather.css",sectioncss:"type-merriweather.css",classname:"type-merriweather",img:"033.png",category:2,default:!1,caption:"Merriweather"},{css:"basetype-badscript-rokkitt.css",sectioncss:"type-badscript-rokkitt.css",classname:"type-badscript-rokkitt",img:"034.png",category:11,default:!1,caption:"Bad Script & Rokkitt"},{css:"basetype-inconsolata.css",sectioncss:"type-inconsolata.css",classname:"type-inconsolata",img:"036.png",category:5,default:!1,caption:"Inconsolata"},{css:"basetype-novamono-robotomono.css",sectioncss:"type-novamono-robotomono.css",classname:"type-novamono-robotomono",img:"037.png",category:5,default:!1,caption:"Nova Mono & Roboto Mono"},{css:"basetype-spacemono.css",sectioncss:"type-spacemono.css",classname:"type-spacemono",img:"038.png",category:5,default:!1,caption:"Space Mono"},{css:"basetype-elsie-frankruhllibre.css",sectioncss:"type-elsie-frankruhllibre.css",classname:"type-elsie-frankruhllibre",img:"042.png",category:10,default:!1,caption:"Elsie & Frank Ruhl Libre"},{css:"basetype-playfairdisp-petitformalscr.css",sectioncss:"type-playfairdisp-petitformalscr.css",classname:"type-playfairdisp-petitformalscr",img:"043.png",category:2,default:!1,caption:"Playfair Display"},{css:"basetype-josefinsans-neuton.css",sectioncss:"type-josefinsans-neuton.css",classname:"type-josefinsans-neuton",img:"044.png",category:3,default:!1,caption:"Josefin Sans & Neuton"},{css:"basetype-stintultracon-inconsolata.css",sectioncss:"type-stintultracon-inconsolata.css",classname:"type-stintultracon-inconsolata",img:"045.png",category:12,default:!1,caption:"Stint Ultra Condensed & Inconsolata"},{css:"basetype-raleway-playfairdisplay.css",sectioncss:"type-raleway-playfairdisplay.css",classname:"type-raleway-playfairdisplay",img:"047.png",category:1,default:!1,caption:"Raleway"},{css:"basetype-ubuntumono-sourcecodepro.css",sectioncss:"type-ubuntumono-sourcecodepro.css",classname:"type-ubuntumono-sourcecodepro",img:"049.png",category:5,default:!1,caption:"Ubuntu Mono & Source Code Pro"},{css:"basetype-sharetechmono-nunito.css",sectioncss:"type-sharetechmono-nunito.css",classname:"type-sharetechmono-nunito",img:"050.png",category:6,default:!1,caption:"Share Tech Mono & Nunito"},{css:"basetype-lato.css",sectioncss:"type-lato.css",classname:"type-lato",img:"051.png",category:1,default:!1,caption:"Lato"},{css:"basetype-pathwaygothicone-merriweather.css",sectioncss:"type-pathwaygothicone-merriweather.css",classname:"type-pathwaygothicone-merriweather",img:"052.png",category:3,default:!1,caption:"Pathway Gothic One & Merriweather"},{css:"basetype-forum-nanumgothiccoding.css",sectioncss:"type-forum-nanumgothiccoding.css",classname:"type-forum-nanumgothiccoding",img:"053.png",category:12,default:!1,caption:"Forum & Nanum Gothic Coding"},{css:"basetype-bilbo-halant.css",sectioncss:"type-bilbo-halant.css",classname:"type-bilbo-halant",img:"054.png",category:11,default:!1,caption:"Bilbo & Halant"},{css:"basetype-hammersmithone-poppins.css",sectioncss:"type-hammersmithone-poppins.css",classname:"type-hammersmithone-poppins",img:"057.png",category:1,default:!1,caption:"Hammersmith One & Poppins"},{css:"basetype-arimamadurai.css",sectioncss:"type-arimamadurai.css",classname:"type-arimamadurai",img:"058.png",category:14,default:!1,caption:"Arima Madurai"},{css:"basetype-teko-muktamahee.css",sectioncss:"type-teko-muktamahee.css",classname:"type-teko-muktamahee",img:"059.png",category:1,default:!1,caption:"Teko & Mukta Mahee"},{css:"basetype-heebo-ibmplexmono.css",sectioncss:"type-heebo-ibmplexmono.css",classname:"type-heebo-ibmplexmono",img:"060.png",category:7,default:!1,caption:"Heebo & IBM Plex Mono"},{css:"basetype-sairacon-thegirlnextdoor.css",sectioncss:"type-sairacon-thegirlnextdoor.css",classname:"type-sairacon-thegirlnextdoor",img:"062.png",category:1,default:!1,caption:"Saira Condensed"},{css:"basetype-frankruhllibre-lato.css",sectioncss:"type-frankruhllibre-lato.css",classname:"type-frankruhllibre-lato",img:"063.png",category:4,default:!1,caption:"Frank Ruhl Libre & Lato"},{css:"basetype-yantramanav-ibmplexserif.css",sectioncss:"type-yantramanav-ibmplexserif.css",classname:"type-yantramanav-ibmplexserif",img:"064.png",category:1,default:!1,caption:"Yantramanav & IBM Plex Serif"},{css:"basetype-quicksand-kalam.css",sectioncss:"type-quicksand-kalam.css",classname:"type-quicksand-kalam",img:"065.png",category:1,default:!1,caption:"Quicksand & Kalam"},{css:"basetype-ibmplexmono.css",sectioncss:"type-ibmplexmono.css",classname:"type-ibmplexmono",img:"066.png",category:5,default:!1,caption:"IBM Plex Mono"},{css:"basetype-cinzeldecor-palanquin.css",sectioncss:"type-cinzeldecor-palanquin.css",classname:"type-cinzeldecor-palanquin",img:"067.png",category:8,default:!1,caption:"Cinzel Decorative & Palanquin"},{css:"basetype-oswald-biryani.css",sectioncss:"type-oswald-biryani.css",classname:"type-oswald-biryani",img:"069.png",category:1,default:!1,caption:"Oswald & Biryani"},{css:"basetype-yanonekaff-josefinsans.css",sectioncss:"type-yanonekaff-josefinsans.css",classname:"type-yanonekaff-josefinsans",img:"070.png",category:1,default:!1,caption:"Yanone Kaffeesatz & Josefin Sans"},{css:"basetype-abrilfatface-assistant.css",sectioncss:"type-abrilfatface-assistant.css",classname:"type-abrilfatface-assistant",img:"071.png",category:8,default:!1,caption:"Abril Fatface & Assistant"},{css:"basetype-nanumgothiccod-firasanscon.css",sectioncss:"type-nanumgothiccod-firasanscon.css",classname:"type-nanumgothiccod-firasanscon",img:"072.png",category:6,default:!1,caption:"Nanum Gothic Coding & Fira Sans Condensed"},{css:"basetype-inder-trirong.css",sectioncss:"type-inder-trirong.css",classname:"type-inder-trirong",img:"073.png",category:3,default:!1,caption:"Inder & Trirong"},{css:"basetype-atma-tajawal.css",sectioncss:"type-atma-tajawal.css",classname:"type-atma-tajawal",img:"075.png",category:8,default:!1,caption:"Atma & Tajawal"},{css:"basetype-prata-hindsiliguri.css",sectioncss:"type-prata-hindsiliguri.css",classname:"type-prata-hindsiliguri",img:"076.png",category:4,default:!1,caption:"Prata & Hind Siliguri"},{css:"basetype-federo-gothica1.css",sectioncss:"type-federo-gothica1.css",classname:"type-federo-gothica1",img:"078.png",category:1,default:!1,caption:"Federo & Gothic A1"},{css:"basetype-fjallaone-ibmplexserif.css",sectioncss:"type-fjallaone-ibmplexserif.css",classname:"type-fjallaone-ibmplexserif",img:"079.png",category:3,default:!1,caption:"Fjalla One & IBM Plex Serif"},{css:"basetype-cormorantsc-ibmplexsanscon.css",sectioncss:"type-cormorantsc-ibmplexsanscon.css",classname:"type-cormorantsc-ibmplexsanscon",img:"081.png",category:4,default:!1,caption:"Cormorant SC & IBM Plex Sans Condensed"},{css:"basetype-kalam-robotomono.css",sectioncss:"type-kalam-robotomono.css",classname:"type-kalam-robotomono",img:"082.png",category:13,default:!1,caption:"Kalam & Roboto Mono"},{css:"basetype-fugazone-librefranklin.css",sectioncss:"type-fugazone-librefranklin.css",classname:"type-fugazone-librefranklin",img:"083.png",category:8,default:!1,caption:"Fugaz One & Libre Franklin"},{css:"basetype-yeonsung-palanquin.css",sectioncss:"type-yeonsung-palanquin.css",classname:"type-yeonsung-palanquin",img:"085.png",category:8,default:!1,caption:"Yeon Sung & Palanquin"},{css:"basetype-rancho-robotoslab.css",sectioncss:"type-rancho-robotoslab.css",classname:"type-rancho-robotoslab",img:"086.png",category:11,default:!1,caption:"Rancho & Roboto Slab"},{css:"basetype-tenaram-overpassmono.css",sectioncss:"type-tenaram-overpassmono.css",classname:"type-tenaram-overpassmono",img:"087.png",category:7,default:!1,caption:"Tenali Ramakrishna & Overpass Mono"},{css:"basetype-thegirlnextdoor-sourcesanspro.css",sectioncss:"type-thegirlnextdoor-sourcesanspro.css",classname:"type-thegirlnextdoor-sourcesanspro",img:"088.png",category:9,default:!1,caption:"The Girl Next Door & Source Sans Pro"},{css:"basetype-boogaloo-inconsolata.css",sectioncss:"type-boogaloo-inconsolata.css",classname:"type-boogaloo-inconsolata",img:"090.png",category:12,default:!1,caption:"Boogaloo & Inconsolata"},{css:"basetype-caveat-sourcecodepro.css",sectioncss:"type-caveat-sourcecodepro.css",classname:"type-caveat-sourcecodepro",img:"091.png",category:13,default:!1,caption:"Caveat & Source Code Pro"},{css:"basetype-passionone-worksans.css",sectioncss:"type-passionone-worksans.css",classname:"type-passionone-worksans",img:"092.png",category:8,default:!1,caption:"Passion One & Work Sans"},{css:"basetype-anticdidone-halant.css",sectioncss:"type-anticdidone-halant.css",classname:"type-anticdidone-halant",img:"093.png",category:2,default:!1,caption:"Antic Didone & Halant"},{css:"basetype-adventpro-opensans.css",sectioncss:"type-adventpro-opensans.css",classname:"type-adventpro-opensans",img:"094.png",category:1,default:!1,caption:"Advent Pro & Open Sans"},{css:"basetype-cutivemono-lato.css",sectioncss:"type-cutivemono-lato.css",classname:"type-cutivemono-lato",img:"095.png",category:6,default:!1,caption:"Cutive Mono & Lato"},{css:"basetype-elsie-montserrat.css",sectioncss:"type-elsie-montserrat.css",classname:"type-elsie-montserrat",img:"096.png",category:8,default:!1,caption:"Elsie & Montserrat"},{css:"basetype-macondo-mukta.css",sectioncss:"type-macondo-mukta.css",classname:"type-macondo-mukta",img:"097.png",category:8,default:!1,caption:"Macondo & Mukta"},{css:"basetype-oswald-opensans.css",sectioncss:"type-oswald-opensans.css",classname:"type-oswald-opensans",img:"098.png",category:1,default:!1,caption:"Oswald & Open Sans"},{css:"basetype-poppins-lekton.css",sectioncss:"type-poppins-lekton.css",classname:"type-poppins-lekton",img:"099.png",category:1,default:!1,caption:"Poppins & Lekton"},{css:"basetype-raleway-neuton.css",sectioncss:"type-raleway-neuton.css",classname:"type-raleway-neuton",img:"100.png",category:3,default:!1,caption:"Raleway & Neuton"},{css:"basetype-sourcecodepro-nunitosans.css",sectioncss:"type-sourcecodepro-nunitosans.css",classname:"type-sourcecodepro-nunitosans",img:"101.png",category:6,default:!1,caption:"Source Code Pro & Nunito Sans"},{css:"basetype-tangerine-opensans.css",sectioncss:"type-tangerine-opensans.css",classname:"type-tangerine-opensans",img:"102.png",category:9,default:!1,caption:"Tangerine & Open Sans"},{css:"basetype-alegreya-lato.css",sectioncss:"type-alegreya-lato.css",classname:"type-alegreya-lato",img:"103.png",category:4,default:!1,caption:"Alegreya & Lato"},{css:"basetype-amaticsc-lato.css",sectioncss:"type-amaticsc-lato.css",classname:"type-amaticsc-lato",img:"104.png",category:9,default:!1,caption:"Amatic SC & Lato"},{css:"basetype-heebo-ibmplexmono-2.css",sectioncss:"type-heebo-ibmplexmono-2.css",classname:"type-heebo-ibmplexmono-2",img:"105.png",category:7,default:!1,caption:"Heebo & IBM Plex Mono"},{css:"basetype-juliussansone-robotocondensed.css",sectioncss:"type-juliussansone-robotocondensed.css",classname:"type-juliussansone-robotocondensed",img:"106.png",category:1,default:!1,caption:"Julius Sans One & Roboto Condensed"},{css:"basetype-montserrat-roboto.css",sectioncss:"type-montserrat-roboto.css",classname:"type-montserrat-roboto",img:"107.png",category:1,default:!1,caption:"Montserrat & Roboto"},{css:"basetype-nothingyouc-ibmplexmono-2.css",sectioncss:"type-nothingyouc-ibmplexmono-2.css",classname:"type-nothingyouc-ibmplexmono-2",img:"108.png",category:13,default:!1,caption:"Nothing You Could Do & IBM Plex Mono"},{css:"basetype-raleway-lato.css",sectioncss:"type-raleway-lato.css",classname:"type-raleway-lato",img:"109.png",category:1,default:!1,caption:"Raleway & Lato"},{css:"basetype-raleway-lusitana.css",sectioncss:"type-raleway-lusitana.css",classname:"type-raleway-lusitana",img:"110.png",category:3,default:!1,caption:"Raleway & Lusitana"},{css:"basetype-rufina-oxygen.css",sectioncss:"type-rufina-oxygen.css",classname:"type-rufina-oxygen",img:"111.png",category:4,default:!1,caption:"Rufina & Oxygen"},{css:"basetype-sacramento-opensans.css",sectioncss:"type-sacramento-opensans.css",classname:"type-sacramento-opensans",img:"112.png",category:9,default:!1,caption:"Sacramento & Open Sans"},{css:"basetype-specialelite-playfairdisplay.css",sectioncss:"type-specialelite-playfairdisplay.css",classname:"type-specialelite-playfairdisplay",img:"113.png",category:10,default:!1,caption:"Special Elite & Playfair Display"},{css:"basetype-unicaone-sourcesanspro.css",sectioncss:"type-unicaone-sourcesanspro.css",classname:"type-unicaone-sourcesanspro",img:"114.png",category:8,default:!1,caption:"Unica One & Source Sans Pro"},{css:"basetype-amaticsc-josepfinsans.css",sectioncss:"type-amaticsc-josepfinsans.css",classname:"type-amaticsc-josepfinsans",img:"001.png",category:9,default:!0,caption:"Amatic SC & Josefin Sans"},{css:"basetype-sourcesanspro-anonymouspro.css",sectioncss:"type-sourcesanspro-anonymouspro.css",classname:"type-sourcesanspro-anonymouspro",img:"002.png",category:7,default:!0,caption:"Source Sans Pro & Anonymous Pro"},{css:"basetype-poppins-oldstandardtt.css",sectioncss:"type-poppins-oldstandardtt.css",classname:"type-poppins-oldstandardtt",img:"003.png",category:3,default:!0,caption:"Poppins & Old Standard TT"},{css:"basetype-yesteryear-chivo.css",sectioncss:"type-yesteryear-chivo.css",classname:"type-yesteryear-chivo",img:"005.png",category:9,default:!0,caption:"Yesteryear & Chivo"},{css:"basetype-ptserif-poppins.css",sectioncss:"type-ptserif-poppins.css",classname:"type-ptserif-poppins",img:"008.png",category:4,default:!0,caption:"PT Serif & Poppins"},{css:"basetype-kellyslab-yantramanav.css",sectioncss:"type-kellyslab-yantramanav.css",classname:"type-kellyslab-yantramanav",img:"009.png",category:8,default:!0,caption:"Kelly Slab & Yantramanav"},{css:"basetype-yellowtail-frankruhllibre.css",sectioncss:"type-yellowtail-frankruhllibre.css",classname:"type-yellowtail-frankruhllibre",img:"015.png",category:11,default:!0,caption:"Yellowtail & Frank Ruhl Libre"},{css:"basetype-sedgwickave-spectral.css",sectioncss:"type-sedgwickave-spectral.css",classname:"type-sedgwickave-spectral",img:"017.png",category:10,default:!1,caption:"Sedgwick Ave & Spectral"},{css:"basetype-satisfy-economica.css",sectioncss:"type-satisfy-economica.css",classname:"type-satisfy-economica",img:"024.png",category:9,default:!1,caption:"Satisfy & Economica"},{css:"basetype-josefinsans-lekton.css",sectioncss:"type-josefinsans-lekton.css",classname:"type-josefinsans-lekton",img:"025.png",category:1,default:!1,caption:"Josefin Sans & Lekton"},{css:"basetype-parisienne-maitree.css",sectioncss:"type-parisienne-maitree.css",classname:"type-parisienne-maitree",img:"027.png",category:11,default:!1,caption:"Parisienne & Maitree"},{css:"basetype-londrinashadow-martel.css",sectioncss:"type-londrinashadow-martel.css",classname:"type-londrinashadow-martel",img:"030.png",category:10,default:!1,caption:"Londrina Shadow & Martel"},{css:"basetype-poiretone-pridi.css",sectioncss:"type-poiretone-pridi.css",classname:"type-poiretone-pridi",img:"035.png",category:10,default:!1,caption:"Poiret One & Pridi"},{css:"basetype-pollerone-ibmplexserif.css",sectioncss:"type-pollerone-ibmplexserif.css",classname:"type-pollerone-ibmplexserif",img:"039.png",category:10,default:!1,caption:"Poller One & IBM Plex Serif"},{css:"basetype-italiana-martel.css",sectioncss:"type-italiana-martel.css",classname:"type-italiana-martel",img:"040.png",category:2,default:!1,caption:"Italiana & Martel"},{css:"basetype-julee-lora.css",sectioncss:"type-julee-lora.css",classname:"type-julee-lora",img:"041.png",category:11,default:!1,caption:"Julee & Lora"},{css:"basetype-sixcaps-robotomono.css",sectioncss:"type-sixcaps-robotomono.css",classname:"type-sixcaps-robotomono",img:"046.png",category:7,default:!1,caption:"Six Caps & Roboto Mono"},{css:"basetype-pacifico-nanumgothiccod.css",sectioncss:"type-pacifico-nanumgothiccod.css",classname:"type-pacifico-nanumgothiccod",img:"048.png",category:13,default:!1,caption:"Pacifico & Nanum Gothic Coding"},{css:"basetype-greatvibes-robotomono.css",sectioncss:"type-greatvibes-robotomono.css",classname:"type-greatvibes-robotomono",img:"055.png",category:13,default:!1,caption:"Great Vibes & Roboto Mono"},{css:"basetype-pinyonscript-firasans.css",sectioncss:"type-pinyonscript-firasans.css",classname:"type-pinyonscript-firasans",img:"056.png",category:9,default:!1,caption:"Pinyon Script & Fira Sans"},{css:"basetype-sail-rasa.css",sectioncss:"type-sail-rasa.css",classname:"type-sail-rasa",img:"061.png",category:10,default:!1,caption:"Sail & Rasa"},{css:"basetype-yesevaone-forum.css",sectioncss:"type-yesevaone-forum.css",classname:"type-yesevaone-forum",img:"068.png",category:14,default:!1,caption:"Yeseva One & Forum"},{css:"basetype-dosis-oldstandardtt.css",sectioncss:"type-dosis-oldstandardtt.css",classname:"type-dosis-oldstandardtt",img:"074.png",category:1,default:!1,caption:"Dosis & Old Standard TT"},{css:"basetype-engagement-spectral.css",sectioncss:"type-engagement-spectral.css",classname:"type-engagement-spectral",img:"077.png",category:11,default:!1,caption:"Engagement & Spectral"},{css:"basetype-dynalight-mada.css",sectioncss:"type-dynalight-mada.css",classname:"type-dynalight-mada",img:"080.png",category:8,default:!1,caption:"Dynalight & Mada"},{css:"basetype-gravitasone-nanummyeongjo.css",sectioncss:"type-gravitasone-nanummyeongjo.css",classname:"type-gravitasone-nanummyeongjo",img:"084.png",category:10,default:!1,caption:"Gravitas One & Nanum Myeongjo"},{css:"basetype-alexbrush-ibmplexsans.css",sectioncss:"type-alexbrush-ibmplexsans.css",classname:"type-alexbrush-ibmplexsans",img:"089.png",category:9,default:!1,caption:"Alex Brush & IBM Plex Sans"}]}},contentStylesAlt:{data:{categories:[{id:-1,desc:"ALL"},{id:1,desc:"Sans-serif & Sans-serif"},{id:2,desc:"Serif & Serif"},{id:3,desc:"Sans-serif & Serif"},{id:4,desc:"Serif & Sans-serif"},{id:5,desc:"Monospace & Monospace"},{id:6,desc:"Monospace & Sans-serif"},{id:7,desc:"Sans-serif & Monospace"},{id:8,desc:"Display & Sans-serif"},{id:9,desc:"Handwriting & Sans-serif"},{id:10,desc:"Display & Serif"},{id:11,desc:"Handwriting & Serif"},{id:12,desc:"Display & Monospace"},{id:13,desc:"Handwriting & Monospace"},{id:14,desc:"Display & Display"}],styles:[{css:"basetype-opensans.css",sectioncss:"type-opensans.css",classname:"type-opensans",img:"type-opensans.jpg",category:9,default:!0,caption:"Open Sans"},{css:"basetype-spectralsc-karma.css",sectioncss:"type-spectralsc-karma.css",classname:"type-spectralsc-karma",img:"type-spectralsc-karma.jpg",category:2,default:!0,caption:"Spectral SC & Karma"},{css:"basetype-alegreyasanssc-hind.css",sectioncss:"type-alegreyasanssc-hind.css",classname:"type-alegreyasanssc-hind",img:"type-alegreyasanssc-hind.jpg",category:1,default:!0,caption:"Alegreya Sans SC & Hind"},{css:"basetype-cabinsketch-montserrat.css",sectioncss:"type-cabinsketch-montserrat.css",classname:"type-cabinsketch-montserrat",img:"type-cabinsketch-montserrat.jpg",category:8,default:!0,caption:"Cabin Sketch & Montserrat"},{css:"basetype-anonymouspro-catamaran.css",sectioncss:"type-anonymouspro-catamaran.css",classname:"type-anonymouspro-catamaran",img:"type-anonymouspro-catamaran.jpg",category:6,default:!0,caption:"Anonymous Pro & Catamaran"},{css:"basetype-nothingyouc-ibmplexmono.css",sectioncss:"type-nothingyouc-ibmplexmono.css",classname:"type-nothingyouc-ibmplexmono",img:"type-nothingyouc-ibmplexmono.jpg",category:13,default:!0,caption:"Nothing You Could Do & IBM Plex Mono"},{css:"basetype-juliussansone-taviraj.css",sectioncss:"type-juliussansone-taviraj.css",classname:"type-juliussansone-taviraj",img:"type-juliussansone-taviraj.jpg",category:3,default:!0,caption:"Julius Sans One & Taviraj"},{css:"basetype-voltaire-sourcecodepro.css",sectioncss:"type-voltaire-sourcecodepro.css",classname:"type-voltaire-sourcecodepro",img:"type-voltaire-sourcecodepro.jpg",category:7,default:!0,caption:"Voltaire & Source Code Pro"},{css:"basetype-oregano-zillaslab.css",sectioncss:"type-oregano-zillaslab.css",classname:"type-oregano-zillaslab",img:"type-oregano-zillaslab.jpg",category:10,default:!0,caption:"Oregano & Zilla Slab"},{css:"basetype-anonymouspro.css",sectioncss:"type-anonymouspro.css",classname:"type-anonymouspro",img:"type-anonymouspro.jpg",category:5,default:!1,caption:"Anonymous Pro"},{css:"basetype-dancingscript-anonymouspro.css",sectioncss:"type-dancingscript-anonymouspro.css",classname:"type-dancingscript-anonymouspro",img:"type-dancingscript-anonymouspro.jpg",category:13,default:!1,caption:"Dancing Script & Anonymous Pro"},{css:"basetype-unicaone-cormorantgaramond.css",sectioncss:"type-unicaone-cormorantgaramond.css",classname:"type-unicaone-cormorantgaramond",img:"type-unicaone-cormorantgaramond.jpg",category:10,default:!1,caption:"Unica One & Cormorant Garamond"},{css:"basetype-allan-overpassmono.css",sectioncss:"type-allan-overpassmono.css",classname:"type-allan-overpassmono",img:"type-allan-overpassmono.jpg",category:12,default:!1,caption:"Allan & Overpass Mono"},{css:"basetype-averialibre-barlow.css",sectioncss:"type-averialibre-barlow.css",classname:"type-averialibre-barlow",img:"type-averialibre-barlow.jpg",category:8,default:!1,caption:"Averia Libre & Barlow"},{css:"basetype-merriweathersans-martel.css",sectioncss:"type-merriweathersans-martel.css",classname:"type-merriweathersans-martel",img:"type-merriweathersans-martel.jpg",category:3,default:!1,caption:"Merriweather Sans & Martel"},{css:"basetype-poppins.css",sectioncss:"type-poppins.css",classname:"type-poppins",img:"type-poppins.jpg",category:1,default:!1,caption:"Poppins"},{css:"basetype-specialelite-encodesans.css",sectioncss:"type-specialelite-encodesans.css",classname:"type-specialelite-encodesans",img:"type-specialelite-encodesans.jpg",category:8,default:!1,caption:"Special Elite & Encode Sans"},{css:"basetype-marcellussc-heebo.css",sectioncss:"type-marcellussc-heebo.css",classname:"type-marcellussc-heebo",img:"type-marcellussc-heebo.jpg",category:4,default:!1,caption:"Marcellus SC & Heebo"},{css:"basetype-oswald-cousine.css",sectioncss:"type-oswald-cousine.css",classname:"type-oswald-cousine",img:"type-oswald-cousine.jpg",category:7,default:!1,caption:"Oswald & Cousine"},{css:"basetype-oranienbaum-sourcesanspro.css",sectioncss:"type-oranienbaum-sourcesanspro.css",classname:"type-oranienbaum-sourcesanspro",img:"type-oranienbaum-sourcesanspro.jpg",category:4,default:!1,caption:"Oranienbaum & Source Sans Pro"},{css:"basetype-sriracha-arvo.css",sectioncss:"type-sriracha-arvo.css",classname:"type-sriracha-arvo",img:"type-sriracha-arvo.jpg",category:11,default:!1,caption:"Sriracha & Arvo"},{css:"basetype-merriweather.css",sectioncss:"type-merriweather.css",classname:"type-merriweather",img:"type-merriweather.jpg",category:2,default:!1,caption:"Merriweather"},{css:"basetype-badscript-rokkitt.css",sectioncss:"type-badscript-rokkitt.css",classname:"type-badscript-rokkitt",img:"type-badscript-rokkitt.jpg",category:11,default:!1,caption:"Bad Script & Rokkitt"},{css:"basetype-inconsolata.css",sectioncss:"type-inconsolata.css",classname:"type-inconsolata",img:"type-inconsolata.jpg",category:5,default:!1,caption:"Inconsolata"},{css:"basetype-novamono-robotomono.css",sectioncss:"type-novamono-robotomono.css",classname:"type-novamono-robotomono",img:"type-novamono-robotomono.jpg",category:5,default:!1,caption:"Nova Mono & Roboto Mono"},{css:"basetype-spacemono.css",sectioncss:"type-spacemono.css",classname:"type-spacemono",img:"type-spacemono.jpg",category:5,default:!1,caption:"Space Mono"},{css:"basetype-elsie-frankruhllibre.css",sectioncss:"type-elsie-frankruhllibre.css",classname:"type-elsie-frankruhllibre",img:"type-elsie-frankruhllibre.jpg",category:10,default:!1,caption:"Elsie & Frank Ruhl Libre"},{css:"basetype-playfairdisp-petitformalscr.css",sectioncss:"type-playfairdisp-petitformalscr.css",classname:"type-playfairdisp-petitformalscr",img:"type-playfairdisp-petitformalscr.jpg",category:2,default:!1,caption:"Playfair Display"},{css:"basetype-josefinsans-neuton.css",sectioncss:"type-josefinsans-neuton.css",classname:"type-josefinsans-neuton",img:"type-josefinsans-neuton.jpg",category:3,default:!1,caption:"Josefin Sans & Neuton"},{css:"basetype-stintultracon-inconsolata.css",sectioncss:"type-stintultracon-inconsolata.css",classname:"type-stintultracon-inconsolata",img:"type-stintultracon-inconsolata.jpg",category:12,default:!1,caption:"Stint Ultra Condensed & Inconsolata"},{css:"basetype-raleway-playfairdisplay.css",sectioncss:"type-raleway-playfairdisplay.css",classname:"type-raleway-playfairdisplay",img:"type-raleway-playfairdisplay.jpg",category:1,default:!1,caption:"Raleway"},{css:"basetype-ubuntumono-sourcecodepro.css",sectioncss:"type-ubuntumono-sourcecodepro.css",classname:"type-ubuntumono-sourcecodepro",img:"type-ubuntumono-sourcecodepro.jpg",category:5,default:!1,caption:"Ubuntu Mono & Source Code Pro"},{css:"basetype-sharetechmono-nunito.css",sectioncss:"type-sharetechmono-nunito.css",classname:"type-sharetechmono-nunito",img:"type-sharetechmono-nunito.jpg",category:6,default:!1,caption:"Share Tech Mono & Nunito"},{css:"basetype-lato.css",sectioncss:"type-lato.css",classname:"type-lato",img:"type-lato.jpg",category:1,default:!1,caption:"Lato"},{css:"basetype-pathwaygothicone-merriweather.css",sectioncss:"type-pathwaygothicone-merriweather.css",classname:"type-pathwaygothicone-merriweather",img:"type-pathwaygothicone-merriweather.jpg",category:3,default:!1,caption:"Pathway Gothic One & Merriweather"},{css:"basetype-forum-nanumgothiccoding.css",sectioncss:"type-forum-nanumgothiccoding.css",classname:"type-forum-nanumgothiccoding",img:"type-forum-nanumgothiccoding.jpg",category:12,default:!1,caption:"Forum & Nanum Gothic Coding"},{css:"basetype-bilbo-halant.css",sectioncss:"type-bilbo-halant.css",classname:"type-bilbo-halant",img:"type-bilbo-halant.jpg",category:11,default:!1,caption:"Bilbo & Halant"},{css:"basetype-hammersmithone-poppins.css",sectioncss:"type-hammersmithone-poppins.css",classname:"type-hammersmithone-poppins",img:"type-hammersmithone-poppins.jpg",category:1,default:!1,caption:"Hammersmith One & Poppins"},{css:"basetype-arimamadurai.css",sectioncss:"type-arimamadurai.css",classname:"type-arimamadurai",img:"type-arimamadurai.jpg",category:14,default:!1,caption:"Arima Madurai"},{css:"basetype-teko-muktamahee.css",sectioncss:"type-teko-muktamahee.css",classname:"type-teko-muktamahee",img:"type-teko-muktamahee.jpg",category:1,default:!1,caption:"Teko & Mukta Mahee"},{css:"basetype-heebo-ibmplexmono.css",sectioncss:"type-heebo-ibmplexmono.css",classname:"type-heebo-ibmplexmono",img:"type-heebo-ibmplexmono.jpg",category:7,default:!1,caption:"Heebo & IBM Plex Mono"},{css:"basetype-sairacon-thegirlnextdoor.css",sectioncss:"type-sairacon-thegirlnextdoor.css",classname:"type-sairacon-thegirlnextdoor",img:"type-sairacon-thegirlnextdoor.jpg",category:1,default:!1,caption:"Saira Condensed"},{css:"basetype-frankruhllibre-lato.css",sectioncss:"type-frankruhllibre-lato.css",classname:"type-frankruhllibre-lato",img:"type-frankruhllibre-lato.jpg",category:4,default:!1,caption:"Frank Ruhl Libre & Lato"},{css:"basetype-yantramanav-ibmplexserif.css",sectioncss:"type-yantramanav-ibmplexserif.css",classname:"type-yantramanav-ibmplexserif",img:"type-yantramanav-ibmplexserif.jpg",category:1,default:!1,caption:"Yantramanav & IBM Plex Serif"},{css:"basetype-quicksand-kalam.css",sectioncss:"type-quicksand-kalam.css",classname:"type-quicksand-kalam",img:"type-quicksand-kalam.jpg",category:1,default:!1,caption:"Quicksand & Kalam"},{css:"basetype-ibmplexmono.css",sectioncss:"type-ibmplexmono.css",classname:"type-ibmplexmono",img:"type-ibmplexmono.jpg",category:5,default:!1,caption:"IBM Plex Mono"},{css:"basetype-cinzeldecor-palanquin.css",sectioncss:"type-cinzeldecor-palanquin.css",classname:"type-cinzeldecor-palanquin",img:"type-cinzeldecor-palanquin.jpg",category:8,default:!1,caption:"Cinzel Decorative & Palanquin"},{css:"basetype-oswald-biryani.css",sectioncss:"type-oswald-biryani.css",classname:"type-oswald-biryani",img:"type-oswald-biryani.jpg",category:1,default:!1,caption:"Oswald & Biryani"},{css:"basetype-yanonekaff-josefinsans.css",sectioncss:"type-yanonekaff-josefinsans.css",classname:"type-yanonekaff-josefinsans",img:"type-yanonekaff-josefinsans.jpg",category:1,default:!1,caption:"Yanone Kaffeesatz & Josefin Sans"},{css:"basetype-abrilfatface-assistant.css",sectioncss:"type-abrilfatface-assistant.css",classname:"type-abrilfatface-assistant",img:"type-abrilfatface-assistant.jpg",category:8,default:!1,caption:"Abril Fatface & Assistant"},{css:"basetype-nanumgothiccod-firasanscon.css",sectioncss:"type-nanumgothiccod-firasanscon.css",classname:"type-nanumgothiccod-firasanscon",img:"type-nanumgothiccod-firasanscon.jpg",category:6,default:!1,caption:"Nanum Gothic Coding & Fira Sans Condensed"},{css:"basetype-inder-trirong.css",sectioncss:"type-inder-trirong.css",classname:"type-inder-trirong",img:"type-inder-trirong.jpg",category:3,default:!1,caption:"Inder & Trirong"},{css:"basetype-atma-tajawal.css",sectioncss:"type-atma-tajawal.css",classname:"type-atma-tajawal",img:"type-atma-tajawal.jpg",category:8,default:!1,caption:"Atma & Tajawal"},{css:"basetype-prata-hindsiliguri.css",sectioncss:"type-prata-hindsiliguri.css",classname:"type-prata-hindsiliguri",img:"type-prata-hindsiliguri.jpg",category:4,default:!1,caption:"Prata & Hind Siliguri"},{css:"basetype-federo-gothica1.css",sectioncss:"type-federo-gothica1.css",classname:"type-federo-gothica1",img:"type-federo-gothica1.jpg",category:1,default:!1,caption:"Federo & Gothic A1"},{css:"basetype-fjallaone-ibmplexserif.css",sectioncss:"type-fjallaone-ibmplexserif.css",classname:"type-fjallaone-ibmplexserif",img:"type-fjallaone-ibmplexserif.jpg",category:3,default:!1,caption:"Fjalla One & IBM Plex Serif"},{css:"basetype-cormorantsc-ibmplexsanscon.css",sectioncss:"type-cormorantsc-ibmplexsanscon.css",classname:"type-cormorantsc-ibmplexsanscon",img:"type-cormorantsc-ibmplexsanscon.jpg",category:4,default:!1,caption:"Cormorant SC & IBM Plex Sans Condensed"},{css:"basetype-kalam-robotomono.css",sectioncss:"type-kalam-robotomono.css",classname:"type-kalam-robotomono",img:"type-kalam-robotomono.jpg",category:13,default:!1,caption:"Kalam & Roboto Mono"},{css:"basetype-fugazone-librefranklin.css",sectioncss:"type-fugazone-librefranklin.css",classname:"type-fugazone-librefranklin",img:"type-fugazone-librefranklin.jpg",category:8,default:!1,caption:"Fugaz One & Libre Franklin"},{css:"basetype-yeonsung-palanquin.css",sectioncss:"type-yeonsung-palanquin.css",classname:"type-yeonsung-palanquin",img:"type-yeonsung-palanquin.jpg",category:8,default:!1,caption:"Yeon Sung & Palanquin"},{css:"basetype-rancho-robotoslab.css",sectioncss:"type-rancho-robotoslab.css",classname:"type-rancho-robotoslab",img:"type-rancho-robotoslab.jpg",category:11,default:!1,caption:"Rancho & Roboto Slab"},{css:"basetype-tenaram-overpassmono.css",sectioncss:"type-tenaram-overpassmono.css",classname:"type-tenaram-overpassmono",img:"type-tenaram-overpassmono.jpg",category:7,default:!1,caption:"Tenali Ramakrishna & Overpass Mono"},{css:"basetype-thegirlnextdoor-sourcesanspro.css",sectioncss:"type-thegirlnextdoor-sourcesanspro.css",classname:"type-thegirlnextdoor-sourcesanspro",img:"type-thegirlnextdoor-sourcesanspro.jpg",category:9,default:!1,caption:"The Girl Next Door & Source Sans Pro"},{css:"basetype-boogaloo-inconsolata.css",sectioncss:"type-boogaloo-inconsolata.css",classname:"type-boogaloo-inconsolata",img:"type-boogaloo-inconsolata.jpg",category:12,default:!1,caption:"Boogaloo & Inconsolata"},{css:"basetype-caveat-sourcecodepro.css",sectioncss:"type-caveat-sourcecodepro.css",classname:"type-caveat-sourcecodepro",img:"type-caveat-sourcecodepro.jpg",category:13,default:!1,caption:"Caveat & Source Code Pro"},{css:"basetype-passionone-worksans.css",sectioncss:"type-passionone-worksans.css",classname:"type-passionone-worksans",img:"type-passionone-worksans.jpg",category:8,default:!1,caption:"Passion One & Work Sans"},{css:"basetype-anticdidone-halant.css",sectioncss:"type-anticdidone-halant.css",classname:"type-anticdidone-halant",img:"type-anticdidone-halant.jpg",category:2,default:!1,caption:"Antic Didone & Halant"},{css:"basetype-adventpro-opensans.css",sectioncss:"type-adventpro-opensans.css",classname:"type-adventpro-opensans",img:"type-adventpro-opensans.jpg",category:1,default:!1,caption:"Advent Pro & Open Sans"},{css:"basetype-cutivemono-lato.css",sectioncss:"type-cutivemono-lato.css",classname:"type-cutivemono-lato",img:"type-cutivemono-lato.jpg",category:6,default:!1,caption:"Cutive Mono & Lato"},{css:"basetype-elsie-montserrat.css",sectioncss:"type-elsie-montserrat.css",classname:"type-elsie-montserrat",img:"type-elsie-montserrat.jpg",category:8,default:!1,caption:"Elsie & Montserrat"},{css:"basetype-macondo-mukta.css",sectioncss:"type-macondo-mukta.css",classname:"type-macondo-mukta",img:"type-macondo-mukta.jpg",category:8,default:!1,caption:"Macondo & Mukta"},{css:"basetype-oswald-opensans.css",sectioncss:"type-oswald-opensans.css",classname:"type-oswald-opensans",img:"type-oswald-opensans.jpg",category:1,default:!1,caption:"Oswald & Open Sans"},{css:"basetype-poppins-lekton.css",sectioncss:"type-poppins-lekton.css",classname:"type-poppins-lekton",img:"type-poppins-lekton.jpg",category:1,default:!1,caption:"Poppins & Lekton"},{css:"basetype-raleway-neuton.css",sectioncss:"type-raleway-neuton.css",classname:"type-raleway-neuton",img:"type-raleway-neuton.jpg",category:3,default:!1,caption:"Raleway & Neuton"},{css:"basetype-sourcecodepro-nunitosans.css",sectioncss:"type-sourcecodepro-nunitosans.css",classname:"type-sourcecodepro-nunitosans",img:"type-sourcecodepro-nunitosans.jpg",category:6,default:!1,caption:"Source Code Pro & Nunito Sans"},{css:"basetype-tangerine-opensans.css",sectioncss:"type-tangerine-opensans.css",classname:"type-tangerine-opensans",img:"type-tangerine-opensans.jpg",category:9,default:!1,caption:"Tangerine & Open Sans"},{css:"basetype-alegreya-lato.css",sectioncss:"type-alegreya-lato.css",classname:"type-alegreya-lato",img:"type-alegreya-lato.jpg",category:4,default:!1,caption:"Alegreya & Lato"},{css:"basetype-amaticsc-lato.css",sectioncss:"type-amaticsc-lato.css",classname:"type-amaticsc-lato",img:"type-amaticsc-lato.jpg",category:9,default:!1,caption:"Amatic SC & Lato"},{css:"basetype-heebo-ibmplexmono-2.css",sectioncss:"type-heebo-ibmplexmono-2.css",classname:"type-heebo-ibmplexmono-2",img:"type-heebo-ibmplexmono-2.jpg",category:7,default:!1,caption:"Heebo & IBM Plex Mono"},{css:"basetype-juliussansone-robotocondensed.css",sectioncss:"type-juliussansone-robotocondensed.css",classname:"type-juliussansone-robotocondensed",img:"type-juliussansone-robotocondensed.jpg",category:1,default:!1,caption:"Julius Sans One & Roboto Condensed"},{css:"basetype-montserrat-roboto.css",sectioncss:"type-montserrat-roboto.css",classname:"type-montserrat-roboto",img:"type-montserrat-roboto.jpg",category:1,default:!1,caption:"Montserrat & Roboto"},{css:"basetype-nothingyouc-ibmplexmono-2.css",sectioncss:"type-nothingyouc-ibmplexmono-2.css",classname:"type-nothingyouc-ibmplexmono-2",img:"type-nothingyouc-ibmplexmono-2.jpg",category:13,default:!1,caption:"Nothing You Could Do & IBM Plex Mono"},{css:"basetype-raleway-lato.css",sectioncss:"type-raleway-lato.css",classname:"type-raleway-lato",img:"type-raleway-lato.jpg",category:1,default:!1,caption:"Raleway & Lato"},{css:"basetype-raleway-lusitana.css",sectioncss:"type-raleway-lusitana.css",classname:"type-raleway-lusitana",img:"type-raleway-lusitana.jpg",category:3,default:!1,caption:"Raleway & Lusitana"},{css:"basetype-rufina-oxygen.css",sectioncss:"type-rufina-oxygen.css",classname:"type-rufina-oxygen",img:"type-rufina-oxygen.jpg",category:4,default:!1,caption:"Rufina & Oxygen"},{css:"basetype-sacramento-opensans.css",sectioncss:"type-sacramento-opensans.css",classname:"type-sacramento-opensans",img:"type-sacramento-opensans.jpg",category:9,default:!1,caption:"Sacramento & Open Sans"},{css:"basetype-specialelite-playfairdisplay.css",sectioncss:"type-specialelite-playfairdisplay.css",classname:"type-specialelite-playfairdisplay",img:"type-specialelite-playfairdisplay.jpg",category:10,default:!1,caption:"Special Elite & Playfair Display"},{css:"basetype-unicaone-sourcesanspro.css",sectioncss:"type-unicaone-sourcesanspro.css",classname:"type-unicaone-sourcesanspro",img:"type-unicaone-sourcesanspro.jpg",category:8,default:!1,caption:"Unica One & Source Sans Pro"},{css:"basetype-amaticsc-josepfinsans.css",sectioncss:"type-amaticsc-josepfinsans.css",classname:"type-amaticsc-josepfinsans",img:"type-amaticsc-josepfinsans.jpg",category:9,default:!0,caption:"Amatic SC & Josefin Sans"},{css:"basetype-sourcesanspro-anonymouspro.css",sectioncss:"type-sourcesanspro-anonymouspro.css",classname:"type-sourcesanspro-anonymouspro",img:"type-sourcesanspro-anonymouspro.jpg",category:7,default:!0,caption:"Source Sans Pro & Anonymous Pro"},{css:"basetype-poppins-oldstandardtt.css",sectioncss:"type-poppins-oldstandardtt.css",classname:"type-poppins-oldstandardtt",img:"type-poppins-oldstandardtt.jpg",category:3,default:!0,caption:"Poppins & Old Standard TT"},{css:"basetype-yesteryear-chivo.css",sectioncss:"type-yesteryear-chivo.css",classname:"type-yesteryear-chivo",img:"type-yesteryear-chivo.jpg",category:9,default:!0,caption:"Yesteryear & Chivo"},{css:"basetype-ptserif-poppins.css",sectioncss:"type-ptserif-poppins.css",classname:"type-ptserif-poppins",img:"type-ptserif-poppins.jpg",category:4,default:!0,caption:"PT Serif & Poppins"},{css:"basetype-kellyslab-yantramanav.css",sectioncss:"type-kellyslab-yantramanav.css",classname:"type-kellyslab-yantramanav",img:"type-kellyslab-yantramanav.jpg",category:8,default:!0,caption:"Kelly Slab & Yantramanav"},{css:"basetype-yellowtail-frankruhllibre.css",sectioncss:"type-yellowtail-frankruhllibre.css",classname:"type-yellowtail-frankruhllibre",img:"type-yellowtail-frankruhllibre.jpg",category:11,default:!0,caption:"Yellowtail & Frank Ruhl Libre"},{css:"basetype-sedgwickave-spectral.css",sectioncss:"type-sedgwickave-spectral.css",classname:"type-sedgwickave-spectral",img:"type-sedgwickave-spectral.jpg",category:10,default:!1,caption:"Sedgwick Ave & Spectral"},{css:"basetype-satisfy-economica.css",sectioncss:"type-satisfy-economica.css",classname:"type-satisfy-economica",img:"type-satisfy-economica.jpg",category:9,default:!1,caption:"Satisfy & Economica"},{css:"basetype-josefinsans-lekton.css",sectioncss:"type-josefinsans-lekton.css",classname:"type-josefinsans-lekton",img:"type-josefinsans-lekton.jpg",category:1,default:!1,caption:"Josefin Sans & Lekton"},{css:"basetype-parisienne-maitree.css",sectioncss:"type-parisienne-maitree.css",classname:"type-parisienne-maitree",img:"type-parisienne-maitree.jpg",category:11,default:!1,caption:"Parisienne & Maitree"},{css:"basetype-londrinashadow-martel.css",sectioncss:"type-londrinashadow-martel.css",classname:"type-londrinashadow-martel",img:"type-londrinashadow-martel.jpg",category:10,default:!1,caption:"Londrina Shadow & Martel"},{css:"basetype-poiretone-pridi.css",sectioncss:"type-poiretone-pridi.css",classname:"type-poiretone-pridi",img:"type-poiretone-pridi.jpg",category:10,default:!1,caption:"Poiret One & Pridi"},{css:"basetype-pollerone-ibmplexserif.css",sectioncss:"type-pollerone-ibmplexserif.css",classname:"type-pollerone-ibmplexserif",img:"type-pollerone-ibmplexserif.jpg",category:10,default:!1,caption:"Poller One & IBM Plex Serif"},{css:"basetype-italiana-martel.css",sectioncss:"type-italiana-martel.css",classname:"type-italiana-martel",img:"type-italiana-martel.jpg",category:2,default:!1,caption:"Italiana & Martel"},{css:"basetype-julee-lora.css",sectioncss:"type-julee-lora.css",classname:"type-julee-lora",img:"type-julee-lora.jpg",category:11,default:!1,caption:"Julee & Lora"},{css:"basetype-sixcaps-robotomono.css",sectioncss:"type-sixcaps-robotomono.css",classname:"type-sixcaps-robotomono",img:"type-sixcaps-robotomono.jpg",category:7,default:!1,caption:"Six Caps & Roboto Mono"},{css:"basetype-pacifico-nanumgothiccod.css",sectioncss:"type-pacifico-nanumgothiccod.css",classname:"type-pacifico-nanumgothiccod",img:"type-pacifico-nanumgothiccod.jpg",category:13,default:!1,caption:"Pacifico & Nanum Gothic Coding"},{css:"basetype-greatvibes-robotomono.css",sectioncss:"type-greatvibes-robotomono.css",classname:"type-greatvibes-robotomono",img:"type-greatvibes-robotomono.jpg",category:13,default:!1,caption:"Great Vibes & Roboto Mono"},{css:"basetype-pinyonscript-firasans.css",sectioncss:"type-pinyonscript-firasans.css",classname:"type-pinyonscript-firasans",img:"type-pinyonscript-firasans.jpg",category:9,default:!1,caption:"Pinyon Script & Fira Sans"},{css:"basetype-sail-rasa.css",sectioncss:"type-sail-rasa.css",classname:"type-sail-rasa",img:"type-sail-rasa.jpg",category:10,default:!1,caption:"Sail & Rasa"},{css:"basetype-yesevaone-forum.css",sectioncss:"type-yesevaone-forum.css",classname:"type-yesevaone-forum",img:"type-yesevaone-forum.jpg",category:14,default:!1,caption:"Yeseva One & Forum"},{css:"basetype-dosis-oldstandardtt.css",sectioncss:"type-dosis-oldstandardtt.css",classname:"type-dosis-oldstandardtt",img:"type-dosis-oldstandardtt.jpg",category:1,default:!1,caption:"Dosis & Old Standard TT"},{css:"basetype-engagement-spectral.css",sectioncss:"type-engagement-spectral.css",classname:"type-engagement-spectral",img:"type-engagement-spectral.jpg",category:11,default:!1,caption:"Engagement & Spectral"},{css:"basetype-dynalight-mada.css",sectioncss:"type-dynalight-mada.css",classname:"type-dynalight-mada",img:"type-dynalight-mada.jpg",category:8,default:!1,caption:"Dynalight & Mada"},{css:"basetype-gravitasone-nanummyeongjo.css",sectioncss:"type-gravitasone-nanummyeongjo.css",classname:"type-gravitasone-nanummyeongjo",img:"type-gravitasone-nanummyeongjo.jpg",category:10,default:!1,caption:"Gravitas One & Nanum Myeongjo"},{css:"basetype-alexbrush-ibmplexsans.css",sectioncss:"type-alexbrush-ibmplexsans.css",classname:"type-alexbrush-ibmplexsans",img:"type-alexbrush-ibmplexsans.jpg",category:9,default:!1,caption:"Alex Brush & IBM Plex Sans"}]}},onAddSectionOpen:function(){},contentHtmlStart:'<div class="is-container is-builder container"><div class="row clearfix"><div class="column full">',contentHtmlEnd:"</div></div></div>"},e),""!==this.settings.imageSelect?this.settings.imageselect=this.settings.imageSelect:""!=this.settings.imageselect&&(this.settings.imageSelect=this.settings.imageselect),""!==this.settings.fileSelect?this.settings.fileselect=this.settings.fileSelect:""!=this.settings.fileselect&&(this.settings.fileSelect=this.settings.fileselect),""!==this.settings.videoSelect?this.settings.videoselect=this.settings.videoSelect:""!=this.settings.videoselect&&(this.settings.videoSelect=this.settings.videoselect),""!==this.settings.largerImageHandler?this.settings.mediaHandler=this.settings.largerImageHandler:""!=this.settings.mediaHandler&&(this.settings.largerImageHandler=this.settings.mediaHandler),this.settings.onLargerImageUpload?this.settings.onMediaUpload=this.settings.onLargerImageUpload:this.settings.onMediaUpload&&(this.settings.onLargerImageUpload=this.settings.onMediaUpload),this.settings.snippetPathReplace.length>0&&0===this.settings.designPathReplace.length&&(this.settings.designPathReplace=this.settings.snippetPathReplace),this.settings.contentStyleWithSample&&(this.settings.contentStyles=this.settings.contentStylesAlt),this.wrapperEl=document.querySelector(this.wrapper),pb.hasClass(this.wrapperEl,"preview"))return void(this.preview=!0);pb.addClass(this.wrapperEl,"is-wrapper"),pb.addClass(this.wrapperEl,"is-edit");let i=this.settings.onRender;this.settings.onRender=()=>{i.call(this);try{this.box(),setTimeout((function(){if(window.skrollr){let e=window.skrollr.get();e&&e.refresh()}}),100)}catch(e){}};let n=this.settings.onChange;this.settings.onChange=()=>{n.call(this),setTimeout((()=>{this.quickPosTool()}),100)};let o=document.querySelector("#_cbhtml");o||(o=document.createElement("div"),o.id="_cbhtml",o.style.visibility="hidden",o.className="is-ui",document.body.appendChild(o),o=document.querySelector("#_cbhtml")),this.builderStuff=o,(e=>{const i=e.builderStuff;t.appendHtml(i,'<svg width="0" height="0" style="position:absolute;display:none;">\n <defs>\n\n <symbol viewBox="0 0 512 512" id="ion-android-add"><path d="M416 277.333H277.333V416h-42.666V277.333H96v-42.666h138.667V96h42.666v138.667H416v42.666z"></path></symbol>\n <symbol viewBox="0 0 2048.0 2048.0" id="icon-align-center"><rect x="0" y="0" width="2048.00" height="2048.00" fill="none" /><g id="document" transform="matrix(1,0,0,1,1024.0,1024.0)"><path d="M-770.727,738.299 L-770.727,582.085 L769.712,582.085 L769.712,738.299 L-770.727,738.299 Z " /><path d="M-552.286,-107.697 L-552.286,-263.911 L552.286,-263.911 L552.286,-107.697 L-552.286,-107.697 Z " /><path d="M-467.355,319.234 L-467.355,163.02 L466.34,163.02 L466.34,319.234 L-467.355,319.234 Z " /><path d="M-770.727,-534.628 L-770.727,-690.842 L769.712,-690.842 L769.712,-534.628 L-770.727,-534.628 Z " /></g></symbol>\n <symbol viewBox="0 0 512 512" id="ion-code"><path d="M168 392a23.929 23.929 0 0 1-16.971-7.029l-112-112c-9.373-9.373-9.373-24.569 0-33.941l112-112c9.373-9.372 24.568-9.372 33.941 0 9.371 9.372 9.371 24.568 0 33.941L89.941 256l95.029 95.029c9.371 9.373 9.371 24.568 0 33.941A23.925 23.925 0 0 1 168 392zM344 392a23.929 23.929 0 0 0 16.971-7.029l112-112c9.373-9.373 9.373-24.569 0-33.941l-112-112c-9.373-9.372-24.568-9.372-33.941 0-9.371 9.372-9.371 24.568 0 33.941L422.059 256l-95.029 95.029c-9.371 9.373-9.371 24.568 0 33.941A23.925 23.925 0 0 0 344 392z"></path></symbol>\n <symbol viewBox="0 0 512 512" id="ion-edit"><path d="M163 439.573l-90.569-90.569L322.78 98.656l90.57 90.569zM471.723 88.393l-48.115-48.114c-11.723-11.724-31.558-10.896-44.304 1.85l-45.202 45.203 90.569 90.568 45.202-45.202c12.743-12.746 13.572-32.582 1.85-44.305zM64.021 363.252L32 480l116.737-32.021z"></path></symbol>\n <symbol viewBox="0 0 2048.0 2048.0" id="icon-snippets"><g id="document" transform="matrix(1,0,0,1,1024.0,1024.0)">\t\t\t<path d="M-727.581,329.502 L318.058,329.502 L318.058,-527.853 L-727.581,-527.853 L-727.581,329.502 Z " fill="#ffffff" fill-opacity="1.00" stroke-width="85.63" stroke="#000000" stroke-linecap="square" stroke-linejoin="miter" />\t\t\t<path d="M-347.749,652.594 L697.89,652.594 L697.89,-204.761 L-347.749,-204.761 L-347.749,652.594 Z " fill="#ffffff" fill-opacity="1.00" stroke-width="85.63" stroke="#000000" stroke-linecap="square" stroke-linejoin="miter" />\t\t</g></symbol>\n <symbol viewBox="0 0 512 512" id="ion-ios-copy-outline"><path d="M304 96h-16v80h80v-16h-64z"></path><path d="M325.3 64H160v48h-48v336h240v-48h48V139l-74.7-75zM336 432H128V128h32v272h176v32zm48-48H176V80h142.7l65.3 65.6V384z"></path></symbol>\n \n <symbol viewBox="0 0 24 24" id="icon-arrow-bar-to-up" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n <path stroke="none" d="M0 0h24v24H0z" fill="none"/>\n <line x1="12" y1="10" x2="12" y2="20" />\n <line x1="12" y1="10" x2="16" y2="14" />\n <line x1="12" y1="10" x2="8" y2="14" />\n <line x1="4" y1="4" x2="20" y2="4" />\n </symbol>\n <symbol viewBox="0 0 24 24" id="icon-arrow-bar-to-down" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n <path stroke="none" d="M0 0h24v24H0z" fill="none"/>\n <line x1="4" y1="20" x2="20" y2="20" />\n <line x1="12" y1="14" x2="12" y2="4" />\n <line x1="12" y1="14" x2="16" y2="10" />\n <line x1="12" y1="14" x2="8" y2="10" />\n </symbol>\n <symbol viewBox="0 0 24 24" id="icon-space-between" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n <path stroke="none" d="M0 0h24v24H0z" fill="none"/>\n <line x1="4" y1="4" x2="20" y2="4" />\n <line x1="4" y1="20" x2="20" y2="20" />\n </symbol>\n\n </defs>\n </svg>')})(this),this.sidebar=new s(this),window.data_basic?(this.editorSetup(),this.init()):pb.addExternalScripts([this.snippetUrl],(()=>{this.editorSetup(),this.init()})),window.contentbox=this,window.applyBoxImage=this.boxImage.bind(this),window.applyLargerImage=this.applyLargerImage.bind(this),window.returnUrl=this.returnUrl.bind(this),window._contentbox=this}editorSetup(){this.editor=new db({container:".is-container",page:".is-wrapper",scriptPath:this.settings.scriptPath,pluginPath:this.settings.pluginPath,modulePath:this.settings.modulePath,fontAssetPath:this.settings.fontAssetPath,assetPath:this.settings.assetPath,plugins:this.settings.plugins,disableConfig:this.settings.disableConfig,snippetList:"#divSidebarSnippets",snippetPath:this.settings.snippetPath,snippetUrl:this.settings.snippetUrl,snippetJSON:window.data_basic,snippetPathReplace:this.settings.snippetPathReplace,maxColumns:6,slider:this.settings.slider,onRender:this.settings.onRender,onChange:this.settings.onChange,onRefreshTool:()=>{setTimeout((()=>{this.quickPosTool()}),100)},useLightbox:this.settings.useLightbox,themes:this.settings.themes,moduleConfig:this.settings.moduleConfig,onImageSelectClick:this.settings.onImageSelectClick,onFileSelectClick:this.settings.onFileSelectClick,onVideoSelectClick:this.settings.onVideoSelectClick,onImageBrowseClick:this.settings.onImageBrowseClick,onImageSettingClick:this.settings.onImageSettingClick,onPluginsLoaded:this.settings.onPluginsLoaded,imageselect:this.settings.imageselect,fileselect:this.settings.fileselect,imageEmbed:this.settings.imageEmbed,sourceEditor:this.settings.sourceEditor,customval:this.settings.customval,colors:this.settings.colors,gradientcolors:this.settings.gradientcolors,buttons:this.settings.buttons,buttonsMore:this.settings.buttonsMore,elementButtons:this.settings.elementButtons,elementButtonsMore:this.settings.elementButtonsMore,iconButtons:this.settings.iconButtons,iconButtonsMore:this.settings.iconButtonsMore,customTags:this.settings.customTags,largerImageHandler:this.settings.largerImageHandler,onLargerImageUpload:this.settings.onLargerImageUpload,videoHandler:this.settings.videoHandler,onVideoUpload:this.settings.onVideoUpload,framework:this.settings.framework,cellFormat:this.settings.cellFormat,rowFormat:this.settings.rowFormat,row:this.settings.row,cols:this.settings.cols,colequal:this.settings.colequal,colsizes:this.settings.colsizes,classReplace:this.settings.classReplace,columnTool:this.settings.columnTool,elementTool:this.settings.elementTool,animateModal:this.settings.animateModal,elementAnimate:this.settings.elementAnimate,elementEditor:this.settings.elementEditor,onAdd:this.settings.onAdd,imageQuality:this.settings.imageQuality,columnHtmlEditor:this.settings.columnHtmlEditor,rowHtmlEditor:this.settings.rowHtmlEditor,rowMoveButtons:this.settings.rowMoveButtons,htmlSyntaxHighlighting:this.settings.htmlSyntaxHighlighting,scrollableEditingToolbar:this.settings.scrollableEditingToolbar,toolbar:this.settings.toolbar,toolbarDisplay:this.settings.toolbarDisplay,toolbarAddSnippetButton:this.settings.toolbarAddSnippetButton,paste:this.settings.paste,builderMode:this.settings.builderMode,rowcolOutline:this.settings.rowcolOutline,elementSelection:this.settings.elementSelection,animatedSorting:this.settings.animatedSorting,dragWithoutHandle:this.settings.dragWithoutHandle,addButtonPlacement:this.settings.addButtonPlacement,outlineMode:this.settings.outlineMode,elementHighlight:this.settings.elementHighlight,rowTool:this.settings.rowTool,toolStyle:this.settings.toolStyle,outlineStyle:this.settings.outlineStyle,snippetAddTool:this.settings.snippetAddTool,mobileSimpleEdit:this.settings.mobileSimpleEdit,clearPreferences:this.settings.clearPreferences,snippetCategories:this.settings.snippetCategories,defaultSnippetCategory:this.settings.defaultSnippetCategory,undoRedoStyles:this.settings.undoRedoStyles,onUndo:()=>{this.pageSetup()},onRedo:()=>{this.pageSetup()},undoContainerOnly:this.settings.undoContainerOnly,absolutePath:this.settings.absolutePath,zoom:this.zoom,onZoomStart:()=>{let e=document.querySelectorAll(".is-section-tool");Array.prototype.forEach.call(e,(function(e){"block"===e.style.display&&(e.setAttribute("data-section-active",""),e.style.display="none")}));let t=document.querySelector("#divBoxTool");"flex"===t.style.display&&(t.setAttribute("data-box-active",""),t.style.display="none")},onZoomEnd:()=>{if(!this.wrapperEl.querySelector(".is-section"))return;this.addSpace();let e=document.querySelector(".is-section-tool[data-section-active]");e&&(e.removeAttribute("data-section-active"),e.style.display="block"),e=document.querySelector("#divBoxTool[data-box-active]"),e&&(e.removeAttribute("data-box-active"),e.style.display="flex"),this.rePositionTool()},onThemeChange:()=>{this.refreshUIStyle()},fileSelect:this.settings.fileSelect,imageSelect:this.settings.imageSelect,videoSelect:this.settings.videoSelect,onContentClick:e=>{this.settings.onContentClick&&this.settings.onContentClick();let t=e.target;if(!t.closest('[contenteditable="true"]')){let i=this.editor.dom.getParentElement(t,"a");if("a"===t.tagName.toLowerCase()||i){"a"===t.tagName.toLowerCase()&&(i=t);let n=i.getAttribute("href");if(n&&0===n.indexOf("#"))if(0===n.indexOf("#section")){let t=n.replace("#section","");if(!isNaN(parseInt(t))){let i,n=document.querySelectorAll(".is-section"),o=0;n.forEach((function(e){pb.hasClass(e,"is-section-navbar")||(o===t-1&&(i=e),o++)})),i&&this.scrollTo(i),e.preventDefault()}}else{let t=document.querySelector(n);t&&(this.scrollTo(t),e.preventDefault())}}}}})}init(){pb.appendHtml(document.head,`<style id="_contentbox_lightbox">\n body {\n background: ${this.settings.backgroundColor};\n }\n .block-click.is-box {\n cursor: unset;\n }\n .block-click.is-box > * {\n pointer-events: unset;\n user-select: unset;\n } \n </style>`);const e=this.builderStuff;pb.appendHtml(e,'<div class="page-overlay"></div>');let t=e.querySelector(".page-overlay");this.editsection=new r(this),this.editbox=new Qt(this),setTimeout((()=>{this.pageSetupDone||this.pageSetup()}),300),ub.start(),ub.on("hide",(()=>{let i=document.querySelector(".pace-inactive");i&&i.parentNode.removeChild(i),this.wrapperEl.style.opacity=1;let n=e.querySelector(".is-sidebar");n&&(n.style.opacity=1),this.builderStuff.style.visibility="visible",t=e.querySelectorAll(".page-overlay"),t.forEach((e=>{e.parentNode.removeChild(e)}))})),document.addEventListener("click",this.doDocumentClick=e=>{let t=!1,i=!1,n=!1,o=!1,s=(e=e||window.event).target||e.srcElement;for(;s&&s.tagName&&"BODY"!==s.tagName&&"HTML"!==s.tagName;)pb.hasClass(s,"is-sidebar-content")&&(t=!0),pb.hasClass(s,"is-sidebar")&&(i=!0),pb.hasClass(s,"is-builder")&&(n=!0),pb.hasClass(s,"is-section")&&(s.hasAttribute("data-anim-start")||s.hasAttribute("data-anim-end"))&&(o=!0),s=s.parentNode;t||i||this.sidebar.closeSidebar(),n&&o&&(this.controlHiddenOnScroll=!0)})}pageSetup(){this.wrapperEl.querySelectorAll(".is-section").forEach((e=>{if(this.sectionSetup(e),pb.hasClass(e,"is-box"))this.boxSetup(e);else{e.querySelectorAll(".is-box").forEach((e=>{this.boxSetup(e)}))}})),this.editor.applyBehavior(),this.addSpace()}box(){const e=document.querySelector(".is-section-navbar");if(e){e.querySelectorAll("a").forEach((e=>{e.addEventListener("click",(t=>{let i=e.getAttribute("href");if(i&&0===i.indexOf("#"))if(0===i.indexOf("#section")){let e=i.replace("#section","");if(!isNaN(parseInt(e))){let i,n=document.querySelectorAll(".is-section"),o=0;n.forEach((function(t){pb.hasClass(t,"is-section-navbar")||(o===e-1&&(i=t),o++)})),i&&this.scrollTo(i),t.preventDefault()}}else try{let e=document.querySelector(i);e&&(this.scrollTo(e),t.preventDefault())}catch(t){}e.closest(".is-menu-search")||(t.preventDefault(),t.stopImmediatePropagation())}))}))}}addSpace(){const e=this.wrapperEl.querySelector("div.is-dummy");e&&e.parentNode.removeChild(e),pb.appendHtml(this.wrapperEl,'<div class="is-dummy" style="height:0px;"></div>'),setTimeout((()=>{const e=this.wrapperEl;e.style.transition="";const t=1*(e.getBoundingClientRect().top+window.pageYOffset)/this.editor.zoom;e.querySelector(".is-dummy").style.height=t+"px"}),300)}scrollTo(e,t=0){setTimeout((()=>{e.scrollIntoView({behavior:"smooth",block:"center"})}),t)}sectionSetup(e){pb.appendHtml(e,'<div class="is-section-tool"><button class="is-section-edit" data-title="'+n("Section Settings")+'" title="'+n("Section Settings")+'"><svg class="is-icon-flex"><use xlink:href="#ion-wrench"></use></svg></button><button class="is-section-remove" data-title="'+n("Remove")+'" title="'+n("Remove")+'">✕</button></div>'),this.editor.setTooltip(e);e.querySelector(".is-section-edit").addEventListener("click",(()=>{this.editsection.edit()}));e.querySelector(".is-section-remove").addEventListener("click",(()=>{const e=document.querySelector(".is-modal.delsectionconfirm");this.editor.util.showModal(e)}))}boxSetup(e){e.addEventListener("mouseenter",(()=>{let t;this.positionTool(e),t=pb.hasClass(e,"is-section")?e:pb.parentsHasClass(e,"is-section"),this.activeBox=e,this.activeSection=t}))}addIdea(e){this.editor.saveForUndo();const t=this.designPath;let i,o=[];if(-1!==(e=(e=e.replace(/\[%IMAGE_PATH%\]/g,t)).replace(/%5B%25IMAGE_PATH%25%5D/g,t)).indexOf("is-section-navbar")){const t=this.wrapperEl.querySelector(".is-section-navbar");if(t)return void this.editor.util.confirm(n("Do you want to replace the current navigation bar?"),(i=>{i&&(t.parentNode.removeChild(t),this.addIdea(e))}),!0,n("Replace"));pb.appendHtml(this.wrapperEl,e,"afterbegin"),i=this.wrapperEl.querySelector(".is-section"),o.push(i)}else if(-1!==e.indexOf("is-static")){let t=pb.getLastElement(this.wrapperEl,".is-section");if(t){pb.appendHtml(t,e,"afterend"),i=t.nextElementSibling,o.push(i);let n=i.nextElementSibling;if(n){let e=n.querySelector(".is-section-tool");e||o.push(n),n=n.nextElementSibling,n&&(e=n.querySelector(".is-section-tool"),e||o.push(n))}}else pb.appendHtml(this.wrapperEl,e,"afterbegin"),i=this.wrapperEl.querySelector(".is-section"),o.push(i)}else if(this.activeSection){let t=this.activeSection;if(pb.hasClass(t,"is-static")){pb.appendHtml(t,e,"beforebegin"),i=t.previousElementSibling,o.push(i);let n=i.previousElementSibling;if(n){let e=n.querySelector(".is-section-tool");e||o.push(n),n=n.previousElementSibling,n&&(e=n.querySelector(".is-section-tool"),e||o.push(n))}}else{pb.appendHtml(t,e,"afterend"),i=t.nextElementSibling,o.push(i);let n=i.nextElementSibling;if(n){let e=n.querySelector(".is-section-tool");e||o.push(n),n=n.nextElementSibling,n&&(e=n.querySelector(".is-section-tool"),e||o.push(n))}}}else{pb.appendHtml(this.wrapperEl,e,"afterbegin"),i=this.wrapperEl.querySelector(".is-section"),o.push(i);let t=i.nextElementSibling;if(t){let e=t.querySelector(".is-section-tool");e||o.push(t),t=t.nextElementSibling,t&&(e=t.querySelector(".is-section-tool"),e||o.push(t))}}let s=i.previousElementSibling;if(s){let e=s.querySelector(".is-section-tool");e||o.push(s),s=s.previousElementSibling,s&&(e=s.querySelector(".is-section-tool"),e||o.push(s))}o.forEach((e=>{if(e.querySelectorAll(".is-overlay-content[data-module]").forEach((e=>{let t=decodeURIComponent(e.getAttribute("data-html"));t=t.replace(/{id}/g,pb.uniqueId()),pb.html(e,t)})),e.querySelectorAll(".is-overlay").forEach((e=>{let t=e.querySelector(".is-overlay-content");t&&""===t.innerHTML&&1===e.childElementCount&&e.parentNode.removeChild(e)})),this.sectionSetup(e),pb.hasClass(e,"is-box"))this.boxSetup(e);else{e.querySelectorAll(".is-box").forEach((e=>{this.boxSetup(e)}))}})),this.editor.applyBehavior(),this.settings.onRender();this.wrapperEl.querySelectorAll(".is-arrow-down a").forEach((e=>{e.addEventListener("click",(t=>{let i=e.parentNode.parentNode;return this.scrollTo(i.nextElementSibling),t.preventDefault(),t.stopImmediatePropagation(),!1}))})),this.onChange(),pb.removeElement(document.querySelector(".is-sidebar-overlay")),pb.removeClass(document.querySelectorAll(".is-sidebar .is-sidebar-button"),"active"),pb.removeClass(document.querySelectorAll(".is-sidebar-content"),"active"),document.body.style.overflowY="",this.addSpace(),this.scrollTo(i,600)}refreshUIStyle(){if(!this.editor)return;if(!this.editor.styleSnippetBackground)return void setTimeout((()=>{this.refreshUIStyle()}),300);document.querySelector("#divSidebarSnippets").style.backgroundColor=this.editor.styleSnippetBackground;document.querySelectorAll(".is-sidebar-content").forEach((e=>{e.style.backgroundColor=this.editor.styleSnippetBackground}));const e=document.querySelector("#divStyles");e.style.backgroundColor=this.editor.styleSnippetBackground,e.style.color=this.editor.styleSnippetColor;const t=document.querySelector(".is-sidebar");t.style.backgroundColor=this.editor.styleModalBackground,t.style.color=this.editor.styleModalColor;t.querySelectorAll("svg").forEach((e=>{e.style.fill=this.editor.styleModalColor}));t.querySelectorAll("button").forEach((e=>{e.style.color=this.editor.styleModalColor}));const i=document.querySelector("#ifrIdeasPanel");i.contentWindow.applyParentStyles&&i.contentWindow.applyParentStyles()}rePositionTool(){let e,t=this.wrapperEl.querySelector(".row-active");e=t?pb.parentsHasClass(t,"is-box"):this.activeBox,this.positionTool(e)}quickPosTool(){let e=this.activeBox;if(!e)return;const t=this.boxTool,i=pb.getElementOffset(e);let n=i.top,o=i.left,s=i.width,a=n+i.height-40,r=o+s/2;t.style.top=a+"px",t.style.left=r-40+"px",t.style.display="flex"}positionTool(e){var t;let i;t=null!==localStorage.getItem("_zoom")?localStorage.getItem("_zoom"):this.settings.zoom;const n=document.querySelector("#divBoxTool");e.closest(".is-section-navbar")?(document.querySelector("#form-upload-cover").style.display="none",document.querySelector("#btnEditBox").style.display="none",document.querySelector("#btnEditModule").style.display="inline-block",n.style.width="40px",i=20):e.querySelectorAll(".is-overlay-content[data-module]").length>0?(document.querySelector("#form-upload-cover").style.display="none",document.querySelector("#btnEditBox").style.display="inline-block",document.querySelector("#btnEditModule").style.display="inline-block",n.style.width="80px",i=40):(document.querySelector("#form-upload-cover").style.display="block",document.querySelector("#btnEditBox").style.display="inline-block",document.querySelector("#btnEditModule").style.display="none",n.style.width="80px",i=40);const o=pb.getElementOffset(e);let s=o.top,a=o.left,r=o.width,l=s+o.height-40,d=a+r/2;n.style.top=l+"px",n.style.left=d-i+"px",n.style.display="flex";let c,u;this.wrapperEl.querySelectorAll(".is-section-tool").forEach((e=>{e.style.display="none"})),pb.hasClass(e,"is-section")?(c=e,u=e.querySelector(".is-section-tool")):(c=pb.parentsHasClass(e,"is-section"),u=c.querySelector(".is-section-tool")),u&&(u.style.display="block",u.style.transform="scale("+1/t+")",u.style.transformOrigin="top right")}addButton(e){if(this.preview)return;const t=this.builderStuff,i=pb.uniqueId(),o=pb.uniqueId();let s;if(e.src){s='<button id="'+i+'" class="is-sidebar-button" data-content="'+o+'" data-src="'+e.src+'" data-title="'+n(e.title)+'" title="'+n(e.title)+'">'+e.html+"</button>";var a='<div id="'+o+'" class="is-sidebar-content '+e.class+'" style="-webkit-transition-duration:0.2s;transition-duration:0.2s;"><div><iframe src="about:blank" style="width:100%;height:100%;box-sizing:border-box;border:none;"></iframe></div></div>';pb.appendHtml(t,a)}else s='<button id="'+i+'" class="is-sidebar-button" data-title="'+n(e.title)+'" title="'+n(e.title)+'">'+e.html+"</button>";t.querySelector(".is-sidebar").children[e.pos].insertAdjacentHTML("afterEnd",s);const r=t.querySelector("#"+i);r.addEventListener("click",(()=>{if(e.src)if(pb.hasClass(r,"active")){const e=t.querySelector(".is-sidebar-overlay");e.parentNode.removeChild(e);let i=t.querySelectorAll(".is-sidebar > div");i.forEach((e=>{pb.removeClass(e,"active")})),i=t.querySelectorAll(".is-sidebar-content"),i.forEach((e=>{pb.removeClass(e,"active")})),document.body.style.overflowY=""}else{pb.removeClass(t.querySelector(".is-sidebar > div"),"active"),pb.removeClass(t.querySelector(".is-sidebar-content"),"active"),document.body.style.overflowY="",pb.addClass(r,"active");var i=r.getAttribute("data-content");pb.addClass(t.querySelector("#"+i),"active");var n=t.querySelector("#"+i+" iframe");"about:blank"==n.getAttribute("src")&&n.setAttribute("src",e.src),pb.appendHtml(t,'<div class="is-sidebar-overlay" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,0.000001);z-index: 1000;;"></div>');const o=t.querySelector(".is-sidebar-overlay");o.addEventListener("click",(()=>{o.parentNode.removeChild(o);let e=t.querySelectorAll(".is-sidebar > div");e.forEach((e=>{pb.removeClass(e,"active")})),e=t.querySelectorAll(".is-sidebar-content"),e.forEach((e=>{pb.removeClass(e,"active")})),document.body.style.overflowY=""}))}else e.onClick()}))}undo(){this.editor.undo()}redo(){this.editor.redo()}saveImages(e,t,i){this.editor.saveImages(e,t,i)}applyLargerImage(e){this.editor.applyLargerImage(e)}returnUrl(e){this.editor.returnUrl(e)}showModal(e){this.editor.util.showModal(e)}hideModal(e){this.editor.util.hideModal(e)}loadStyles(e,t){let i=document.getElementsByTagName("link");for(let e=0;e<i.length;e++)"contentstyle"===i[e].getAttribute("data-name")&&i[e].setAttribute("data-rel","_del"),-1!==i[e].getAttribute("href").indexOf("basetype-")&&i[e].setAttribute("data-rel","_del");document.querySelectorAll('[data-rel="_del"]').forEach((e=>{e.parentNode.removeChild(e)}));let n=document.head;n||(n=document.body),e&&""!==e&&n.insertAdjacentHTML("beforeend",e),t&&""!==t&&n.insertAdjacentHTML("beforeend",t)}loadHtml(e){this.activeBox=null,this.activeSection=null;const t=this.wrapperEl;if(t.style.opacity||(t.style.opacity="0"),!this.editor)return void setTimeout((()=>{this.loadHtml(e)}),100);let i=document.createRange();t.innerHTML="",t.appendChild(i.createContextualFragment(e)),this.pageSetup(),this.pageSetupDone=!0,this.settings.onRender();t.querySelectorAll(".is-arrow-down a").forEach((e=>{e.addEventListener("click",(t=>{let i=e.parentNode.parentNode;return this.scrollTo(i.nextElementSibling),t.preventDefault(),t.stopImmediatePropagation(),!1}))}))}boxImage(e,t){this.editbox.boxImage(e,t)}mainCss(){let e="",t=document.getElementsByTagName("link");for(let i=0;i<t.length;i++){-1!=t[i].href.toLowerCase().indexOf("basetype-")&&(e+=t[i].outerHTML)}return e}sectionCss(){let e="",t=document.getElementsByTagName("link");for(let i=0;i<t.length;i++){let n=t[i].href.toLowerCase();-1!=n.indexOf("basetype-")||-1!=n.indexOf("type-")&&(e+=t[i].outerHTML)}return e}html(e){return this.cleanupUnused(),this.editor.readHtml(this.wrapperEl,e,!0)}viewZoom(){this.editor.viewZoom()}destroy(){document.removeEventListener("click",this.doDocumentClick,!1),window.removeEventListener("scroll",this.doWindowScroll,!1);let e=this.html();this.builderStuff.innerHTML="",pb.removeClass(document.body,"sidebar-active");const t=document.querySelector("#_contentbox_lightbox");t&&t.parentNode.removeChild(t);let i=document.createRange();const n=this.wrapperEl;n.innerHTML="",n.appendChild(i.createContextualFragment(e)),pb.removeClass(n,"is-edit"),this.editor.destroy(),ub.stop()}cleanupUnused(){let e=document.getElementsByTagName("link");for(let t=0;t<e.length;t++){let i=e[t].getAttribute("href");if(-1!==i.indexOf("googleapis")){i=i.replace(/\+/g," ").replace(/%20/g," ");let n=i.substr(i.indexOf("family=")+7);-1!=n.indexOf(":")&&(n=n.split(":")[0]),n=n.toLowerCase();let o=!1;if(this.wrapperEl.innerHTML.toLowerCase().split(n).length>=3&&(o=!0),!o){let i=e[t].getAttribute("data-protect");void 0!==i&&!1!==i||e[t].setAttribute("data-rel","_del")}}}e=document.getElementsByTagName("link");for(let t=0;t<e.length;t++)if("contentstyle"===e[t].getAttribute("data-name")){let i=e[t].getAttribute("data-class");""===i&&e[t].setAttribute("data-rel","_del"),""!==i&&(this.wrapperEl.querySelector("."+i)||e[t].setAttribute("data-rel","_del"))}let t=document.querySelectorAll('[data-rel="_del"]');t.forEach((e=>{e.parentNode.removeChild(e)})),t=document.head.querySelectorAll("link"),t.forEach((e=>{let t=e.getAttribute("href");this.wrapperEl.querySelectorAll("link").forEach((e=>{t===e.getAttribute("href")&&e.setAttribute("data-rel","_del")}))})),t=document.querySelectorAll('[data-rel="_del"]'),t.forEach((e=>{e.parentNode.removeChild(e)}))}}}();
|
|
124
|
+
(function(){if("undefined"!=typeof window){var t,i,n,o,s,a,r,l,d,c,u,p,h,g,f,m,v,b,y,_,x,w,S,C,k,E,A,q,L,T,M,O,R,B,N,I,$,H,P,D,z,F,U,j,W,G,Y,V,X,K=[].slice,Z={}.hasOwnProperty,Q=function(e,t){for(var i in t)Z.call(t,i)&&(e[i]=t[i]);function n(){this.constructor=e}return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},J=[].indexOf||function(e){for(var t=0,i=this.length;t<i;t++)if(t in this&&this[t]===e)return t;return-1},ee=function(e,t){return function(){return e.apply(t,arguments)}};for(w={className:"",catchupTime:100,initialRate:.03,minTime:250,ghostTime:100,maxProgressPerFrame:20,easeFactor:1.25,startOnPageLoad:!0,restartOnPushState:!0,restartOnRequestAfter:500,target:"body",elements:{checkInterval:100,selectors:["body"]},eventLag:{minSamples:10,sampleCount:3,lagThreshold:3},ajax:{trackMethods:["GET"],trackWebSockets:!0,ignoreURLs:[]}},T=function(){var e;return null!=(e="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?e:+new Date},O=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,x=window.cancelAnimationFrame||window.mozCancelAnimationFrame,m=function(e,t,i){return"function"==typeof e.addEventListener?e.addEventListener(t,i,!1):function(){if("function"!=typeof e["on"+t]||"object"!=typeof e["on"+t].eventListeners){var n=new l;"function"==typeof e["on"+t]&&n.on(t,e["on"+t]),e["on"+t]=function(e){return n.trigger(t,e)},e["on"+t].eventListeners=n}else n=e["on"+t].eventListeners;n.on(t,i)}()},null==O&&(O=function(e){return setTimeout(e,50)},x=function(e){return clearTimeout(e)}),B=function(e){var t,i;return t=T(),(i=function(){var n;return(n=T()-t)>=33?(t=T(),e(n,(function(){return O(i)}))):setTimeout(i,33-n)})()},R=function(){var e,t,i;return i=arguments[0],t=arguments[1],e=3<=arguments.length?K.call(arguments,2):[],"function"==typeof i[t]?i[t].apply(i,e):i[t]},S=function(){var e,t,i,n,o,s,a;for(t=arguments[0],s=0,a=(n=2<=arguments.length?K.call(arguments,1):[]).length;s<a;s++)if(i=n[s])for(e in i)Z.call(i,e)&&(o=i[e],null!=t[e]&&"object"==typeof t[e]&&null!=o&&"object"==typeof o?S(t[e],o):t[e]=o);return t},b=function(e){var t,i,n,o,s;for(i=t=0,o=0,s=e.length;o<s;o++)n=e[o],i+=Math.abs(n),t++;return i/t},k=function(e,t){var i,n,o;if(null==e&&(e="options"),null==t&&(t=!0),o=document.querySelector("[data-pace-"+e+"]")){if(i=o.getAttribute("data-pace-"+e),!t)return i;try{return JSON.parse(i)}catch(e){return n=e,"undefined"!=typeof console&&null!==console?console.error("Error parsing inline pace options",n):void 0}}},r=function(){function e(){}return e.prototype.on=function(e,t,i,n){var o;return null==n&&(n=!1),null==this.bindings&&(this.bindings={}),null==(o=this.bindings)[e]&&(o[e]=[]),this.bindings[e].push({handler:t,ctx:i,once:n})},e.prototype.once=function(e,t,i){return this.on(e,t,i,!0)},e.prototype.off=function(e,t){var i,n,o;if(null!=(null!=(n=this.bindings)?n[e]:void 0)){if(null==t)return delete this.bindings[e];for(i=0,o=[];i<this.bindings[e].length;)this.bindings[e][i].handler===t?o.push(this.bindings[e].splice(i,1)):o.push(i++);return o}},e.prototype.trigger=function(){var e,t,i,n,o,s,a,r,l;if(i=arguments[0],e=2<=arguments.length?K.call(arguments,1):[],null!=(a=this.bindings)?a[i]:void 0){for(o=0,l=[];o<this.bindings[i].length;)n=(r=this.bindings[i][o]).handler,t=r.ctx,s=r.once,n.apply(null!=t?t:this,e),s?l.push(this.bindings[i].splice(o,1)):l.push(o++);return l}},e}(),c=window.Pace||{},window.Pace=c,S(c,r.prototype),M=c.options=S({},w,window.paceOptions,k()),j=0,G=(V=["ajax","document","eventLag","elements"]).length;j<G;j++)!0===M[H=V[j]]&&(M[H]=w[H]);d=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Q(t,e),t}(Error),i=function(){function e(){this.progress=0}return e.prototype.getElement=function(){var e;if(null==this.el){if(!(e=document.querySelector(M.target)))throw new d;this.el=document.createElement("div"),this.el.className="pace pace-active",document.body.className=document.body.className.replace(/(pace-done )|/,"pace-running ");var t=""!==M.className?" "+M.className:"";this.el.innerHTML='<div class="pace-progress'+t+'">\n <div class="pace-progress-inner"></div>\n</div>\n<div class="pace-activity"></div>',null!=e.firstChild?e.insertBefore(this.el,e.firstChild):e.appendChild(this.el)}return this.el},e.prototype.finish=function(){var e;return(e=this.getElement()).className=e.className.replace("pace-active","pace-inactive"),document.body.className=document.body.className.replace("pace-running ","pace-done ")},e.prototype.update=function(e){return this.progress=e,c.trigger("progress",e),this.render()},e.prototype.destroy=function(){try{this.getElement().parentNode.removeChild(this.getElement())}catch(e){d=e}return this.el=void 0},e.prototype.render=function(){var e,t,i,n,o,s,a;if(null==document.querySelector(M.target))return!1;for(e=this.getElement(),n="translate3d("+this.progress+"%, 0, 0)",o=0,s=(a=["webkitTransform","msTransform","transform"]).length;o<s;o++)t=a[o],e.children[0].style[t]=n;return(!this.lastRenderedProgress||this.lastRenderedProgress|0!==this.progress|0)&&(e.children[0].setAttribute("data-progress-text",(0|this.progress)+"%"),this.progress>=100?i="99":(i=this.progress<10?"0":"",i+=0|this.progress),e.children[0].setAttribute("data-progress",""+i)),c.trigger("change",this.progress),this.lastRenderedProgress=this.progress},e.prototype.done=function(){return this.progress>=100},e}(),l=function(){function e(){this.bindings={}}return e.prototype.trigger=function(e,t){var i,n,o,s,a;if(null!=this.bindings[e]){for(a=[],n=0,o=(s=this.bindings[e]).length;n<o;n++)i=s[n],a.push(i.call(this,t));return a}},e.prototype.on=function(e,t){var i;return null==(i=this.bindings)[e]&&(i[e]=[]),this.bindings[e].push(t)},e}(),U=window.XMLHttpRequest,F=window.XDomainRequest,z=window.WebSocket,C=function(e,t){var i,n;for(i in n=[],t.prototype)try{null==e[i]&&"function"!=typeof t[i]?"function"==typeof Object.defineProperty?n.push(Object.defineProperty(e,i,{get:function(e){return function(){return t.prototype[e]}}(i),configurable:!0,enumerable:!0})):n.push(e[i]=t.prototype[i]):n.push(void 0)}catch(e){}return n},q=[],c.ignore=function(){var e,t,i;return t=arguments[0],e=2<=arguments.length?K.call(arguments,1):[],q.unshift("ignore"),i=t.apply(null,e),q.shift(),i},c.track=function(){var e,t,i;return t=arguments[0],e=2<=arguments.length?K.call(arguments,1):[],q.unshift("track"),i=t.apply(null,e),q.shift(),i},$=function(e){var t;if(null==e&&(e="GET"),"track"===q[0])return"force";if(!q.length&&M.ajax){if("socket"===e&&M.ajax.trackWebSockets)return!0;if(t=e.toUpperCase(),J.call(M.ajax.trackMethods,t)>=0)return!0}return!1},u=function(e){function t(){var e,i=this;t.__super__.constructor.apply(this,arguments),e=function(e){var t;return t=e.open,e.open=function(n,o,s){return $(n)&&i.trigger("request",{type:n,url:o,request:e}),t.apply(e,arguments)}},window.XMLHttpRequest=function(t){var i;return i=new U(t),e(i),i};try{C(window.XMLHttpRequest,U)}catch(e){}if(null!=F){window.XDomainRequest=function(){var t;return t=new F,e(t),t};try{C(window.XDomainRequest,F)}catch(e){}}if(null!=z&&M.ajax.trackWebSockets){window.WebSocket=function(e,t){var n;return n=null!=t?new z(e,t):new z(e),$("socket")&&i.trigger("request",{type:"socket",url:e,protocols:t,request:n}),n};try{C(window.WebSocket,z)}catch(e){}}}return Q(t,e),t}(l),W=null,I=function(e){var t,i,n,o;for(i=0,n=(o=M.ajax.ignoreURLs).length;i<n;i++)if("string"==typeof(t=o[i])){if(-1!==e.indexOf(t))return!0}else if(t.test(e))return!0;return!1},(E=function(){return null==W&&(W=new u),W})().on("request",(function(e){var i,n,o,s,a;if(s=e.type,o=e.request,a=e.url,!I(a))return c.running||!1===M.restartOnRequestAfter&&"force"!==$(s)?void 0:(n=arguments,"boolean"==typeof(i=M.restartOnRequestAfter||0)&&(i=0),setTimeout((function(){var e,i,a,r,l;if("socket"===s?o.readyState<1:0<(a=o.readyState)&&a<4){for(c.restart(),l=[],e=0,i=(r=c.sources).length;e<i;e++){if((H=r[e])instanceof t){H.watch.apply(H,n);break}l.push(void 0)}return l}}),i))})),t=function(){function e(){this.complete=ee(this.complete,this);var e=this;this.elements=[],E().on("request",(function(){return e.watch.apply(e,arguments)}))}return e.prototype.watch=function(e){var t,i,n,o;if(n=e.type,t=e.request,o=e.url,!I(o))return i="socket"===n?new g(t,this.complete):new f(t,this.complete),this.elements.push(i)},e.prototype.complete=function(e){return this.elements=this.elements.filter((function(t){return t!==e}))},e}(),f=function(e,t){var i,n,o,s,a=this;if(this.progress=0,null!=window.ProgressEvent)for(m(e,"progress",(function(e){return e.lengthComputable?a.progress=100*e.loaded/e.total:a.progress=a.progress+(100-a.progress)/2})),i=0,n=(s=["load","abort","timeout","error"]).length;i<n;i++)m(e,s[i],(function(){return t(a),a.progress=100}));else o=e.onreadystatechange,e.onreadystatechange=function(){var i;return 0===(i=e.readyState)||4===i?(t(a),a.progress=100):3===e.readyState&&(a.progress=50),"function"==typeof o?o.apply(null,arguments):void 0}},g=function(e,t){var i,n,o,s=this;for(this.progress=0,i=0,n=(o=["error","open"]).length;i<n;i++)m(e,o[i],(function(){return t(s),s.progress=100}))},o=function(){function e(e){var t,i,n,o;for(null==e&&(e={}),this.complete=ee(this.complete,this),this.elements=[],null==e.selectors&&(e.selectors=[]),i=0,n=(o=e.selectors).length;i<n;i++)t=o[i],this.elements.push(new s(t,this.complete))}return e.prototype.complete=function(e){return this.elements=this.elements.filter((function(t){return t!==e}))},e}(),s=function(){function e(e,t){this.selector=e,this.completeCallback=t,this.progress=0,this.check()}return e.prototype.check=function(){var e=this;return document.querySelector(this.selector)?this.done():setTimeout((function(){return e.check()}),M.elements.checkInterval)},e.prototype.done=function(){return this.completeCallback(this),this.completeCallback=null,this.progress=100},e}(),n=function(){function e(){var e,t,i=this;this.progress=null!=(t=this.states[document.readyState])?t:100,e=document.onreadystatechange,document.onreadystatechange=function(){return null!=i.states[document.readyState]&&(i.progress=i.states[document.readyState]),"function"==typeof e?e.apply(null,arguments):void 0}}return e.prototype.states={loading:0,interactive:50,complete:100},e}(),a=function(){var e,t,i,n,o,s=this;this.progress=0,e=0,o=[],n=0,i=T(),t=setInterval((function(){var a;return a=T()-i-50,i=T(),o.push(a),o.length>M.eventLag.sampleCount&&o.shift(),e=b(o),++n>=M.eventLag.minSamples&&e<M.eventLag.lagThreshold?(s.progress=100,clearInterval(t)):s.progress=3/(e+3)*100}),50)},h=function(){function e(e){this.source=e,this.last=this.sinceLastUpdate=0,this.rate=M.initialRate,this.catchup=0,this.progress=this.lastProgress=0,null!=this.source&&(this.progress=R(this.source,"progress"))}return e.prototype.tick=function(e,t){var i;return null==t&&(t=R(this.source,"progress")),t>=100&&(this.done=!0),t===this.last?this.sinceLastUpdate+=e:(this.sinceLastUpdate&&(this.rate=(t-this.last)/this.sinceLastUpdate),this.catchup=(t-this.progress)/M.catchupTime,this.sinceLastUpdate=0,this.last=t),t>this.progress&&(this.progress+=this.catchup*e),i=1-Math.pow(this.progress/100,M.easeFactor),this.progress+=i*this.rate*e,this.progress=Math.min(this.lastProgress+M.maxProgressPerFrame,this.progress),this.progress=Math.max(0,this.progress),this.progress=Math.min(100,this.progress),this.lastProgress=this.progress,this.progress},e}(),P=null,N=null,y=null,D=null,v=null,_=null,c.running=!1,A=function(){if(M.restartOnPushState)return c.restart()},null!=window.history.pushState&&(Y=window.history.pushState,window.history.pushState=function(){return A(),Y.apply(window.history,arguments)}),null!=window.history.replaceState&&(X=window.history.replaceState,window.history.replaceState=function(){return A(),X.apply(window.history,arguments)}),p={ajax:t,elements:o,document:n,eventLag:a},(L=function(){var e,t,n,o,s,a,r,l;for(c.sources=P=[],t=0,o=(a=["ajax","elements","document","eventLag"]).length;t<o;t++)!1!==M[e=a[t]]&&P.push(new p[e](M[e]));for(n=0,s=(l=null!=(r=M.extraSources)?r:[]).length;n<s;n++)H=l[n],P.push(new H(M));return c.bar=y=new i,N=[],D=new h})(),c.stop=function(){return c.trigger("stop"),c.running=!1,y.destroy(),_=!0,null!=v&&("function"==typeof x&&x(v),v=null),L()},c.restart=function(){return c.trigger("restart"),c.stop(),c.start()},c.go=function(){var e;return c.running=!0,y.render(),e=T(),_=!1,v=B((function(t,i){var n,o,s,a,r,l,d,u,p,g,f,m,v,b,x;for(y.progress,o=g=0,s=!0,l=f=0,v=P.length;f<v;l=++f)for(H=P[l],p=null!=N[l]?N[l]:N[l]=[],d=m=0,b=(r=null!=(x=H.elements)?x:[H]).length;m<b;d=++m)a=r[d],s&=(u=null!=p[d]?p[d]:p[d]=new h(a)).done,u.done||(o++,g+=u.tick(t));return n=g/o,y.update(D.tick(t,n)),y.done()||s||_?(y.update(100),c.trigger("done"),setTimeout((function(){return y.finish(),c.running=!1,c.trigger("hide")}),Math.max(M.ghostTime,Math.max(M.minTime-(T()-e),0)))):i()}))},c.start=function(e){S(M,e),c.running=!0;try{y.render()}catch(e){d=e}return document.querySelector(".pace")?(c.trigger("start"),c.go()):setTimeout(c.start,50)},e.exports=c}}).call(l)}(cb);var ub=cb.exports;const pb=new e;return class{constructor(e={}){if(this.settings=Object.assign(this,{wrapper:".is-wrapper",useSidebar:!0,sidebarData:{buttons:[{name:"section",title:"Sections"},{name:"snippet",title:"Content Blocks"},{name:"typography",title:"Typography"},{name:"code",title:"HTML"}]},htmlSyntaxHighlighting:!0,enableContentStyle:!0,disableStaticSection:!1,framework:"",designUrl1:"assets/designs/basic.js",designUrl2:"assets/designs/examples.js",designPath:"assets/designs/",designPathReplace:[],scriptPath:"",snippetUrl:"assets/minimalist-blocks/content.js",snippetPath:"assets/minimalist-blocks/",snippetPathReplace:[],assetPath:"assets/",modulePath:"assets/modules/",contentStylePath:"assets/styles/",pluginPath:"contentbuilder/",fontAssetPath:"assets/fonts/",plugins:[{name:"preview",showInMainToolbar:!0,showInElementToolbar:!0},{name:"wordcount",showInMainToolbar:!0,showInElementToolbar:!0},{name:"symbols",showInMainToolbar:!0,showInElementToolbar:!1},{name:"buttoneditor",showInMainToolbar:!1,showInElementToolbar:!1}],disableConfig:!1,useLightbox:!0,themes:[["#ffffff","",""],["#282828","dark","contentbuilder/themes/dark.css"],["#0088dc","colored","contentbuilder/themes/colored-blue.css"],["#006add","colored","contentbuilder/themes/colored-blue6.css"],["#0a4d92","colored","contentbuilder/themes/colored-darkblue.css"],["#96af16","colored","contentbuilder/themes/colored-green.css"],["#f3522b","colored","contentbuilder/themes/colored-orange.css"],["#b92ea6","colored","contentbuilder/themes/colored-magenta.css"],["#e73171","colored","contentbuilder/themes/colored-pink.css"],["#782ec5","colored","contentbuilder/themes/colored-purple.css"],["#ed2828","colored","contentbuilder/themes/colored-red.css"],["#f9930f","colored","contentbuilder/themes/colored-yellow.css"],["#13b34b","colored","contentbuilder/themes/colored-green4.css"],["#333333","colored-dark","contentbuilder/themes/colored-dark.css"],["#dbe5f5","light","contentbuilder/themes/light-blue.css"],["#fbe6f2","light","contentbuilder/themes/light-pink.css"],["#dcdaf3","light","contentbuilder/themes/light-purple.css"],["#ffe9e0","light","contentbuilder/themes/light-red.css"],["#fffae5","light","contentbuilder/themes/light-yellow.css"],["#ddf3dc","light","contentbuilder/themes/light-green.css"],["#c7ebfd","light","contentbuilder/themes/light-blue2.css"],["#ffd5f2","light","contentbuilder/themes/light-pink2.css"],["#eadafb","light","contentbuilder/themes/light-purple2.css"],["#c5d4ff","light","contentbuilder/themes/light-blue3.css"],["#ffefb1","light","contentbuilder/themes/light-yellow2.css"],["#fefefe","light","contentbuilder/themes/light-gray3.css"],["#e5e5e5","light","contentbuilder/themes/light-gray2.css"],["#dadada","light","contentbuilder/themes/light-gray.css"],["#3f4ec9","colored","contentbuilder/themes/colored-blue2.css"],["#6779d9","colored","contentbuilder/themes/colored-blue4.css"],["#10b9d7","colored","contentbuilder/themes/colored-blue3.css"],["#006add","colored","contentbuilder/themes/colored-blue5.css"],["#e92f94","colored","contentbuilder/themes/colored-pink3.css"],["#a761d9","colored","contentbuilder/themes/colored-purple2.css"],["#f9930f","colored","contentbuilder/themes/colored-yellow2.css"],["#f3522b","colored","contentbuilder/themes/colored-red3.css"],["#36b741","colored","contentbuilder/themes/colored-green2.css"],["#00c17c","colored","contentbuilder/themes/colored-green3.css"],["#fb3279","colored","contentbuilder/themes/colored-pink2.css"],["#ff6d13","colored","contentbuilder/themes/colored-orange2.css"],["#f13535","colored","contentbuilder/themes/colored-red2.css"],["#646464","colored","contentbuilder/themes/colored-gray.css"],["#3f4ec9","dark","contentbuilder/themes/dark-blue.css"],["#0b4d92","dark","contentbuilder/themes/dark-blue2.css"],["#006add","dark","contentbuilder/themes/dark-blue3.css"],["#5f3ebf","dark","contentbuilder/themes/dark-purple.css"],["#e92f69","dark","contentbuilder/themes/dark-pink.css"],["#4c4c4c","dark","contentbuilder/themes/dark-gray.css"],["#ed2828","dark","contentbuilder/themes/dark-red.css"],["#006add","colored","contentbuilder/themes/colored-blue8.css"],["#ff7723","colored","contentbuilder/themes/colored-orange3.css"],["#ff5722","colored","contentbuilder/themes/colored-red5.css"],["#f13535","colored","contentbuilder/themes/colored-red4.css"],["#00bd79","colored","contentbuilder/themes/colored-green5.css"],["#557ae9","colored","contentbuilder/themes/colored-blue7.css"],["#fb3279","colored","contentbuilder/themes/colored-pink4.css"]],backgroundColor:"#f1f1f1",imageselect:"",fileselect:"",imageSelect:"",fileSelect:"",videoselect:"",videoSelect:"",slider:"",navbar:!1,onRender:function(){},onChange:function(){},onCoverImageSelectClick:null,coverImageHandler:"",customval:"",enableAnimation:!1,colors:["#ff8f00","#ef6c00","#d84315","#c62828","#58362f","#37474f","#353535","#f9a825","#9e9d24","#558b2f","#ad1457","#6a1b9a","#4527a0","#616161","#00b8c9","#009666","#2e7d32","#0277bd","#1565c0","#283593","#9e9e9e"],gradientcolors:[["linear-gradient(0deg, rgb(255, 57, 25), rgb(249, 168, 37))","light"],["linear-gradient(0deg, rgb(255, 57, 25), rgb(255, 104, 15))","light"],["linear-gradient(0deg, #FF5722, #FF9800)","light"],["linear-gradient(0deg, #613ca2, rgb(110, 123, 217))","light"],["linear-gradient(0deg, rgb(65, 70, 206), rgb(236, 78, 130))","light"],["linear-gradient(0deg, rgb(0, 150, 102), rgb(90, 103, 197))","light"],["linear-gradient(30deg, rgb(249, 119, 148), rgb(98, 58, 162))","light"],["linear-gradient(0deg, rgb(223, 70, 137), rgb(90, 103, 197))","light"],["linear-gradient(0deg, rgb(40, 53, 147), rgb(90, 103, 197))","light"],["linear-gradient(0deg, rgb(21, 101, 192), rgb(52, 169, 239))","light"],["linear-gradient(0deg, rgb(32, 149, 219), rgb(139, 109, 230))","light"],["linear-gradient(0deg, rgb(90, 103, 197), rgb(0, 184, 201))","light"],["linear-gradient(0deg, rgb(0, 184, 201), rgb(253, 187, 45))","light"],["linear-gradient(0deg, rgb(255, 208, 100), rgb(239, 98, 159))","light"],["linear-gradient(0deg, rgb(0, 214, 223), rgb(130, 162, 253))","light"],["linear-gradient(0deg, rgb(50, 234, 251), rgb(248, 247, 126))","dark"],["linear-gradient(0deg, rgb(141, 221, 255), rgb(255, 227, 255))","dark"],["linear-gradient(0deg, rgb(255, 170, 170), rgb(255, 255, 200))","dark"],["linear-gradient(0deg, rgb(239, 239, 239), rgb(252, 252, 252))","dark"]],photoselect:"",moduleConfig:[],largerImageHandler:"",mediaHandler:"",videoHandler:"",cellFormat:"",rowFormat:"",row:"",cols:[],colequal:[],colsizes:[],classReplace:[],columnTool:!0,elementTool:!0,buttons:["bold","italic","underline","formatting","color","align","textsettings","createLink","tags","|","undo","redo","zoom","more"],buttonsMore:["icon","image","|","list","font","formatPara","|","preferences"],elementButtons:["left","center","right","full","undo","redo","zoom","more"],elementButtonsMore:["|","preferences"],iconButtons:["icon","color","textsettings","createLink","|","undo","redo","zoom","more"],iconButtonsMore:["|","preferences"],customTags:[],animateModal:!1,elementAnimate:!0,elementEditor:!0,imageQuality:.92,columnHtmlEditor:!0,rowHtmlEditor:!0,rowMoveButtons:!0,scrollableEditingToolbar:!0,toolbar:"top",toolbarDisplay:"auto",toolbarAddSnippetButton:!1,paste:"html-without-styles",builderMode:"",rowcolOutline:!0,elementSelection:!0,animatedSorting:!1,dragWithoutHandle:!1,addButtonPlacement:"",defaultDesignCategory:5,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:101,outlineMode:"",elementHighlight:!0,rowTool:"right",toolStyle:"",outlineStyle:"",snippetAddTool:!0,mobileSimpleEdit:!1,clearPreferences:!1,imageEmbed:!0,undoRedoStyles:!0,undoContainerOnly:!1,absolutePath:!1,maxEmbedImageWidth:1600,zoom:.6,contentStyleWithSample:!1,contentStyles:{data:{categories:[{id:-1,desc:"ALL"},{id:1,desc:"Sans-serif & Sans-serif"},{id:2,desc:"Serif & Serif"},{id:3,desc:"Sans-serif & Serif"},{id:4,desc:"Serif & Sans-serif"},{id:5,desc:"Monospace & Monospace"},{id:6,desc:"Monospace & Sans-serif"},{id:7,desc:"Sans-serif & Monospace"},{id:8,desc:"Display & Sans-serif"},{id:9,desc:"Handwriting & Sans-serif"},{id:10,desc:"Display & Serif"},{id:11,desc:"Handwriting & Serif"},{id:12,desc:"Display & Monospace"},{id:13,desc:"Handwriting & Monospace"},{id:14,desc:"Display & Display"}],styles:[{css:"basetype-opensans.css",sectioncss:"type-opensans.css",classname:"type-opensans",img:"000.png",category:9,default:!0,caption:"Open Sans"},{css:"basetype-spectralsc-karma.css",sectioncss:"type-spectralsc-karma.css",classname:"type-spectralsc-karma",img:"004.png",category:2,default:!0,caption:"Spectral SC & Karma"},{css:"basetype-alegreyasanssc-hind.css",sectioncss:"type-alegreyasanssc-hind.css",classname:"type-alegreyasanssc-hind",img:"006.png",category:1,default:!0,caption:"Alegreya Sans SC & Hind"},{css:"basetype-cabinsketch-montserrat.css",sectioncss:"type-cabinsketch-montserrat.css",classname:"type-cabinsketch-montserrat",img:"007.png",category:8,default:!0,caption:"Cabin Sketch & Montserrat"},{css:"basetype-anonymouspro-catamaran.css",sectioncss:"type-anonymouspro-catamaran.css",classname:"type-anonymouspro-catamaran",img:"010.png",category:6,default:!0,caption:"Anonymous Pro & Catamaran"},{css:"basetype-nothingyouc-ibmplexmono.css",sectioncss:"type-nothingyouc-ibmplexmono.css",classname:"type-nothingyouc-ibmplexmono",img:"011.png",category:13,default:!0,caption:"Nothing You Could Do & IBM Plex Mono"},{css:"basetype-juliussansone-taviraj.css",sectioncss:"type-juliussansone-taviraj.css",classname:"type-juliussansone-taviraj",img:"012.png",category:3,default:!0,caption:"Julius Sans One & Taviraj"},{css:"basetype-voltaire-sourcecodepro.css",sectioncss:"type-voltaire-sourcecodepro.css",classname:"type-voltaire-sourcecodepro",img:"013.png",category:7,default:!0,caption:"Voltaire & Source Code Pro"},{css:"basetype-oregano-zillaslab.css",sectioncss:"type-oregano-zillaslab.css",classname:"type-oregano-zillaslab",img:"014.png",category:10,default:!0,caption:"Oregano & Zilla Slab"},{css:"basetype-anonymouspro.css",sectioncss:"type-anonymouspro.css",classname:"type-anonymouspro",img:"016.png",category:5,default:!1,caption:"Anonymous Pro"},{css:"basetype-dancingscript-anonymouspro.css",sectioncss:"type-dancingscript-anonymouspro.css",classname:"type-dancingscript-anonymouspro",img:"018.png",category:13,default:!1,caption:"Dancing Script & Anonymous Pro"},{css:"basetype-unicaone-cormorantgaramond.css",sectioncss:"type-unicaone-cormorantgaramond.css",classname:"type-unicaone-cormorantgaramond",img:"019.png",category:10,default:!1,caption:"Unica One & Cormorant Garamond"},{css:"basetype-allan-overpassmono.css",sectioncss:"type-allan-overpassmono.css",classname:"type-allan-overpassmono",img:"020.png",category:12,default:!1,caption:"Allan & Overpass Mono"},{css:"basetype-averialibre-barlow.css",sectioncss:"type-averialibre-barlow.css",classname:"type-averialibre-barlow",img:"021.png",category:8,default:!1,caption:"Averia Libre & Barlow"},{css:"basetype-merriweathersans-martel.css",sectioncss:"type-merriweathersans-martel.css",classname:"type-merriweathersans-martel",img:"022.png",category:3,default:!1,caption:"Merriweather Sans & Martel"},{css:"basetype-poppins.css",sectioncss:"type-poppins.css",classname:"type-poppins",img:"023.png",category:1,default:!1,caption:"Poppins"},{css:"basetype-specialelite-encodesans.css",sectioncss:"type-specialelite-encodesans.css",classname:"type-specialelite-encodesans",img:"026.png",category:8,default:!1,caption:"Special Elite & Encode Sans"},{css:"basetype-marcellussc-heebo.css",sectioncss:"type-marcellussc-heebo.css",classname:"type-marcellussc-heebo",img:"028.png",category:4,default:!1,caption:"Marcellus SC & Heebo"},{css:"basetype-oswald-cousine.css",sectioncss:"type-oswald-cousine.css",classname:"type-oswald-cousine",img:"029.png",category:7,default:!1,caption:"Oswald & Cousine"},{css:"basetype-oranienbaum-sourcesanspro.css",sectioncss:"type-oranienbaum-sourcesanspro.css",classname:"type-oranienbaum-sourcesanspro",img:"031.png",category:4,default:!1,caption:"Oranienbaum & Source Sans Pro"},{css:"basetype-sriracha-arvo.css",sectioncss:"type-sriracha-arvo.css",classname:"type-sriracha-arvo",img:"032.png",category:11,default:!1,caption:"Sriracha & Arvo"},{css:"basetype-merriweather.css",sectioncss:"type-merriweather.css",classname:"type-merriweather",img:"033.png",category:2,default:!1,caption:"Merriweather"},{css:"basetype-badscript-rokkitt.css",sectioncss:"type-badscript-rokkitt.css",classname:"type-badscript-rokkitt",img:"034.png",category:11,default:!1,caption:"Bad Script & Rokkitt"},{css:"basetype-inconsolata.css",sectioncss:"type-inconsolata.css",classname:"type-inconsolata",img:"036.png",category:5,default:!1,caption:"Inconsolata"},{css:"basetype-novamono-robotomono.css",sectioncss:"type-novamono-robotomono.css",classname:"type-novamono-robotomono",img:"037.png",category:5,default:!1,caption:"Nova Mono & Roboto Mono"},{css:"basetype-spacemono.css",sectioncss:"type-spacemono.css",classname:"type-spacemono",img:"038.png",category:5,default:!1,caption:"Space Mono"},{css:"basetype-elsie-frankruhllibre.css",sectioncss:"type-elsie-frankruhllibre.css",classname:"type-elsie-frankruhllibre",img:"042.png",category:10,default:!1,caption:"Elsie & Frank Ruhl Libre"},{css:"basetype-playfairdisp-petitformalscr.css",sectioncss:"type-playfairdisp-petitformalscr.css",classname:"type-playfairdisp-petitformalscr",img:"043.png",category:2,default:!1,caption:"Playfair Display"},{css:"basetype-josefinsans-neuton.css",sectioncss:"type-josefinsans-neuton.css",classname:"type-josefinsans-neuton",img:"044.png",category:3,default:!1,caption:"Josefin Sans & Neuton"},{css:"basetype-stintultracon-inconsolata.css",sectioncss:"type-stintultracon-inconsolata.css",classname:"type-stintultracon-inconsolata",img:"045.png",category:12,default:!1,caption:"Stint Ultra Condensed & Inconsolata"},{css:"basetype-raleway-playfairdisplay.css",sectioncss:"type-raleway-playfairdisplay.css",classname:"type-raleway-playfairdisplay",img:"047.png",category:1,default:!1,caption:"Raleway"},{css:"basetype-ubuntumono-sourcecodepro.css",sectioncss:"type-ubuntumono-sourcecodepro.css",classname:"type-ubuntumono-sourcecodepro",img:"049.png",category:5,default:!1,caption:"Ubuntu Mono & Source Code Pro"},{css:"basetype-sharetechmono-nunito.css",sectioncss:"type-sharetechmono-nunito.css",classname:"type-sharetechmono-nunito",img:"050.png",category:6,default:!1,caption:"Share Tech Mono & Nunito"},{css:"basetype-lato.css",sectioncss:"type-lato.css",classname:"type-lato",img:"051.png",category:1,default:!1,caption:"Lato"},{css:"basetype-pathwaygothicone-merriweather.css",sectioncss:"type-pathwaygothicone-merriweather.css",classname:"type-pathwaygothicone-merriweather",img:"052.png",category:3,default:!1,caption:"Pathway Gothic One & Merriweather"},{css:"basetype-forum-nanumgothiccoding.css",sectioncss:"type-forum-nanumgothiccoding.css",classname:"type-forum-nanumgothiccoding",img:"053.png",category:12,default:!1,caption:"Forum & Nanum Gothic Coding"},{css:"basetype-bilbo-halant.css",sectioncss:"type-bilbo-halant.css",classname:"type-bilbo-halant",img:"054.png",category:11,default:!1,caption:"Bilbo & Halant"},{css:"basetype-hammersmithone-poppins.css",sectioncss:"type-hammersmithone-poppins.css",classname:"type-hammersmithone-poppins",img:"057.png",category:1,default:!1,caption:"Hammersmith One & Poppins"},{css:"basetype-arimamadurai.css",sectioncss:"type-arimamadurai.css",classname:"type-arimamadurai",img:"058.png",category:14,default:!1,caption:"Arima Madurai"},{css:"basetype-teko-muktamahee.css",sectioncss:"type-teko-muktamahee.css",classname:"type-teko-muktamahee",img:"059.png",category:1,default:!1,caption:"Teko & Mukta Mahee"},{css:"basetype-heebo-ibmplexmono.css",sectioncss:"type-heebo-ibmplexmono.css",classname:"type-heebo-ibmplexmono",img:"060.png",category:7,default:!1,caption:"Heebo & IBM Plex Mono"},{css:"basetype-sairacon-thegirlnextdoor.css",sectioncss:"type-sairacon-thegirlnextdoor.css",classname:"type-sairacon-thegirlnextdoor",img:"062.png",category:1,default:!1,caption:"Saira Condensed"},{css:"basetype-frankruhllibre-lato.css",sectioncss:"type-frankruhllibre-lato.css",classname:"type-frankruhllibre-lato",img:"063.png",category:4,default:!1,caption:"Frank Ruhl Libre & Lato"},{css:"basetype-yantramanav-ibmplexserif.css",sectioncss:"type-yantramanav-ibmplexserif.css",classname:"type-yantramanav-ibmplexserif",img:"064.png",category:1,default:!1,caption:"Yantramanav & IBM Plex Serif"},{css:"basetype-quicksand-kalam.css",sectioncss:"type-quicksand-kalam.css",classname:"type-quicksand-kalam",img:"065.png",category:1,default:!1,caption:"Quicksand & Kalam"},{css:"basetype-ibmplexmono.css",sectioncss:"type-ibmplexmono.css",classname:"type-ibmplexmono",img:"066.png",category:5,default:!1,caption:"IBM Plex Mono"},{css:"basetype-cinzeldecor-palanquin.css",sectioncss:"type-cinzeldecor-palanquin.css",classname:"type-cinzeldecor-palanquin",img:"067.png",category:8,default:!1,caption:"Cinzel Decorative & Palanquin"},{css:"basetype-oswald-biryani.css",sectioncss:"type-oswald-biryani.css",classname:"type-oswald-biryani",img:"069.png",category:1,default:!1,caption:"Oswald & Biryani"},{css:"basetype-yanonekaff-josefinsans.css",sectioncss:"type-yanonekaff-josefinsans.css",classname:"type-yanonekaff-josefinsans",img:"070.png",category:1,default:!1,caption:"Yanone Kaffeesatz & Josefin Sans"},{css:"basetype-abrilfatface-assistant.css",sectioncss:"type-abrilfatface-assistant.css",classname:"type-abrilfatface-assistant",img:"071.png",category:8,default:!1,caption:"Abril Fatface & Assistant"},{css:"basetype-nanumgothiccod-firasanscon.css",sectioncss:"type-nanumgothiccod-firasanscon.css",classname:"type-nanumgothiccod-firasanscon",img:"072.png",category:6,default:!1,caption:"Nanum Gothic Coding & Fira Sans Condensed"},{css:"basetype-inder-trirong.css",sectioncss:"type-inder-trirong.css",classname:"type-inder-trirong",img:"073.png",category:3,default:!1,caption:"Inder & Trirong"},{css:"basetype-atma-tajawal.css",sectioncss:"type-atma-tajawal.css",classname:"type-atma-tajawal",img:"075.png",category:8,default:!1,caption:"Atma & Tajawal"},{css:"basetype-prata-hindsiliguri.css",sectioncss:"type-prata-hindsiliguri.css",classname:"type-prata-hindsiliguri",img:"076.png",category:4,default:!1,caption:"Prata & Hind Siliguri"},{css:"basetype-federo-gothica1.css",sectioncss:"type-federo-gothica1.css",classname:"type-federo-gothica1",img:"078.png",category:1,default:!1,caption:"Federo & Gothic A1"},{css:"basetype-fjallaone-ibmplexserif.css",sectioncss:"type-fjallaone-ibmplexserif.css",classname:"type-fjallaone-ibmplexserif",img:"079.png",category:3,default:!1,caption:"Fjalla One & IBM Plex Serif"},{css:"basetype-cormorantsc-ibmplexsanscon.css",sectioncss:"type-cormorantsc-ibmplexsanscon.css",classname:"type-cormorantsc-ibmplexsanscon",img:"081.png",category:4,default:!1,caption:"Cormorant SC & IBM Plex Sans Condensed"},{css:"basetype-kalam-robotomono.css",sectioncss:"type-kalam-robotomono.css",classname:"type-kalam-robotomono",img:"082.png",category:13,default:!1,caption:"Kalam & Roboto Mono"},{css:"basetype-fugazone-librefranklin.css",sectioncss:"type-fugazone-librefranklin.css",classname:"type-fugazone-librefranklin",img:"083.png",category:8,default:!1,caption:"Fugaz One & Libre Franklin"},{css:"basetype-yeonsung-palanquin.css",sectioncss:"type-yeonsung-palanquin.css",classname:"type-yeonsung-palanquin",img:"085.png",category:8,default:!1,caption:"Yeon Sung & Palanquin"},{css:"basetype-rancho-robotoslab.css",sectioncss:"type-rancho-robotoslab.css",classname:"type-rancho-robotoslab",img:"086.png",category:11,default:!1,caption:"Rancho & Roboto Slab"},{css:"basetype-tenaram-overpassmono.css",sectioncss:"type-tenaram-overpassmono.css",classname:"type-tenaram-overpassmono",img:"087.png",category:7,default:!1,caption:"Tenali Ramakrishna & Overpass Mono"},{css:"basetype-thegirlnextdoor-sourcesanspro.css",sectioncss:"type-thegirlnextdoor-sourcesanspro.css",classname:"type-thegirlnextdoor-sourcesanspro",img:"088.png",category:9,default:!1,caption:"The Girl Next Door & Source Sans Pro"},{css:"basetype-boogaloo-inconsolata.css",sectioncss:"type-boogaloo-inconsolata.css",classname:"type-boogaloo-inconsolata",img:"090.png",category:12,default:!1,caption:"Boogaloo & Inconsolata"},{css:"basetype-caveat-sourcecodepro.css",sectioncss:"type-caveat-sourcecodepro.css",classname:"type-caveat-sourcecodepro",img:"091.png",category:13,default:!1,caption:"Caveat & Source Code Pro"},{css:"basetype-passionone-worksans.css",sectioncss:"type-passionone-worksans.css",classname:"type-passionone-worksans",img:"092.png",category:8,default:!1,caption:"Passion One & Work Sans"},{css:"basetype-anticdidone-halant.css",sectioncss:"type-anticdidone-halant.css",classname:"type-anticdidone-halant",img:"093.png",category:2,default:!1,caption:"Antic Didone & Halant"},{css:"basetype-adventpro-opensans.css",sectioncss:"type-adventpro-opensans.css",classname:"type-adventpro-opensans",img:"094.png",category:1,default:!1,caption:"Advent Pro & Open Sans"},{css:"basetype-cutivemono-lato.css",sectioncss:"type-cutivemono-lato.css",classname:"type-cutivemono-lato",img:"095.png",category:6,default:!1,caption:"Cutive Mono & Lato"},{css:"basetype-elsie-montserrat.css",sectioncss:"type-elsie-montserrat.css",classname:"type-elsie-montserrat",img:"096.png",category:8,default:!1,caption:"Elsie & Montserrat"},{css:"basetype-macondo-mukta.css",sectioncss:"type-macondo-mukta.css",classname:"type-macondo-mukta",img:"097.png",category:8,default:!1,caption:"Macondo & Mukta"},{css:"basetype-oswald-opensans.css",sectioncss:"type-oswald-opensans.css",classname:"type-oswald-opensans",img:"098.png",category:1,default:!1,caption:"Oswald & Open Sans"},{css:"basetype-poppins-lekton.css",sectioncss:"type-poppins-lekton.css",classname:"type-poppins-lekton",img:"099.png",category:1,default:!1,caption:"Poppins & Lekton"},{css:"basetype-raleway-neuton.css",sectioncss:"type-raleway-neuton.css",classname:"type-raleway-neuton",img:"100.png",category:3,default:!1,caption:"Raleway & Neuton"},{css:"basetype-sourcecodepro-nunitosans.css",sectioncss:"type-sourcecodepro-nunitosans.css",classname:"type-sourcecodepro-nunitosans",img:"101.png",category:6,default:!1,caption:"Source Code Pro & Nunito Sans"},{css:"basetype-tangerine-opensans.css",sectioncss:"type-tangerine-opensans.css",classname:"type-tangerine-opensans",img:"102.png",category:9,default:!1,caption:"Tangerine & Open Sans"},{css:"basetype-alegreya-lato.css",sectioncss:"type-alegreya-lato.css",classname:"type-alegreya-lato",img:"103.png",category:4,default:!1,caption:"Alegreya & Lato"},{css:"basetype-amaticsc-lato.css",sectioncss:"type-amaticsc-lato.css",classname:"type-amaticsc-lato",img:"104.png",category:9,default:!1,caption:"Amatic SC & Lato"},{css:"basetype-heebo-ibmplexmono-2.css",sectioncss:"type-heebo-ibmplexmono-2.css",classname:"type-heebo-ibmplexmono-2",img:"105.png",category:7,default:!1,caption:"Heebo & IBM Plex Mono"},{css:"basetype-juliussansone-robotocondensed.css",sectioncss:"type-juliussansone-robotocondensed.css",classname:"type-juliussansone-robotocondensed",img:"106.png",category:1,default:!1,caption:"Julius Sans One & Roboto Condensed"},{css:"basetype-montserrat-roboto.css",sectioncss:"type-montserrat-roboto.css",classname:"type-montserrat-roboto",img:"107.png",category:1,default:!1,caption:"Montserrat & Roboto"},{css:"basetype-nothingyouc-ibmplexmono-2.css",sectioncss:"type-nothingyouc-ibmplexmono-2.css",classname:"type-nothingyouc-ibmplexmono-2",img:"108.png",category:13,default:!1,caption:"Nothing You Could Do & IBM Plex Mono"},{css:"basetype-raleway-lato.css",sectioncss:"type-raleway-lato.css",classname:"type-raleway-lato",img:"109.png",category:1,default:!1,caption:"Raleway & Lato"},{css:"basetype-raleway-lusitana.css",sectioncss:"type-raleway-lusitana.css",classname:"type-raleway-lusitana",img:"110.png",category:3,default:!1,caption:"Raleway & Lusitana"},{css:"basetype-rufina-oxygen.css",sectioncss:"type-rufina-oxygen.css",classname:"type-rufina-oxygen",img:"111.png",category:4,default:!1,caption:"Rufina & Oxygen"},{css:"basetype-sacramento-opensans.css",sectioncss:"type-sacramento-opensans.css",classname:"type-sacramento-opensans",img:"112.png",category:9,default:!1,caption:"Sacramento & Open Sans"},{css:"basetype-specialelite-playfairdisplay.css",sectioncss:"type-specialelite-playfairdisplay.css",classname:"type-specialelite-playfairdisplay",img:"113.png",category:10,default:!1,caption:"Special Elite & Playfair Display"},{css:"basetype-unicaone-sourcesanspro.css",sectioncss:"type-unicaone-sourcesanspro.css",classname:"type-unicaone-sourcesanspro",img:"114.png",category:8,default:!1,caption:"Unica One & Source Sans Pro"},{css:"basetype-amaticsc-josepfinsans.css",sectioncss:"type-amaticsc-josepfinsans.css",classname:"type-amaticsc-josepfinsans",img:"001.png",category:9,default:!0,caption:"Amatic SC & Josefin Sans"},{css:"basetype-sourcesanspro-anonymouspro.css",sectioncss:"type-sourcesanspro-anonymouspro.css",classname:"type-sourcesanspro-anonymouspro",img:"002.png",category:7,default:!0,caption:"Source Sans Pro & Anonymous Pro"},{css:"basetype-poppins-oldstandardtt.css",sectioncss:"type-poppins-oldstandardtt.css",classname:"type-poppins-oldstandardtt",img:"003.png",category:3,default:!0,caption:"Poppins & Old Standard TT"},{css:"basetype-yesteryear-chivo.css",sectioncss:"type-yesteryear-chivo.css",classname:"type-yesteryear-chivo",img:"005.png",category:9,default:!0,caption:"Yesteryear & Chivo"},{css:"basetype-ptserif-poppins.css",sectioncss:"type-ptserif-poppins.css",classname:"type-ptserif-poppins",img:"008.png",category:4,default:!0,caption:"PT Serif & Poppins"},{css:"basetype-kellyslab-yantramanav.css",sectioncss:"type-kellyslab-yantramanav.css",classname:"type-kellyslab-yantramanav",img:"009.png",category:8,default:!0,caption:"Kelly Slab & Yantramanav"},{css:"basetype-yellowtail-frankruhllibre.css",sectioncss:"type-yellowtail-frankruhllibre.css",classname:"type-yellowtail-frankruhllibre",img:"015.png",category:11,default:!0,caption:"Yellowtail & Frank Ruhl Libre"},{css:"basetype-sedgwickave-spectral.css",sectioncss:"type-sedgwickave-spectral.css",classname:"type-sedgwickave-spectral",img:"017.png",category:10,default:!1,caption:"Sedgwick Ave & Spectral"},{css:"basetype-satisfy-economica.css",sectioncss:"type-satisfy-economica.css",classname:"type-satisfy-economica",img:"024.png",category:9,default:!1,caption:"Satisfy & Economica"},{css:"basetype-josefinsans-lekton.css",sectioncss:"type-josefinsans-lekton.css",classname:"type-josefinsans-lekton",img:"025.png",category:1,default:!1,caption:"Josefin Sans & Lekton"},{css:"basetype-parisienne-maitree.css",sectioncss:"type-parisienne-maitree.css",classname:"type-parisienne-maitree",img:"027.png",category:11,default:!1,caption:"Parisienne & Maitree"},{css:"basetype-londrinashadow-martel.css",sectioncss:"type-londrinashadow-martel.css",classname:"type-londrinashadow-martel",img:"030.png",category:10,default:!1,caption:"Londrina Shadow & Martel"},{css:"basetype-poiretone-pridi.css",sectioncss:"type-poiretone-pridi.css",classname:"type-poiretone-pridi",img:"035.png",category:10,default:!1,caption:"Poiret One & Pridi"},{css:"basetype-pollerone-ibmplexserif.css",sectioncss:"type-pollerone-ibmplexserif.css",classname:"type-pollerone-ibmplexserif",img:"039.png",category:10,default:!1,caption:"Poller One & IBM Plex Serif"},{css:"basetype-italiana-martel.css",sectioncss:"type-italiana-martel.css",classname:"type-italiana-martel",img:"040.png",category:2,default:!1,caption:"Italiana & Martel"},{css:"basetype-julee-lora.css",sectioncss:"type-julee-lora.css",classname:"type-julee-lora",img:"041.png",category:11,default:!1,caption:"Julee & Lora"},{css:"basetype-sixcaps-robotomono.css",sectioncss:"type-sixcaps-robotomono.css",classname:"type-sixcaps-robotomono",img:"046.png",category:7,default:!1,caption:"Six Caps & Roboto Mono"},{css:"basetype-pacifico-nanumgothiccod.css",sectioncss:"type-pacifico-nanumgothiccod.css",classname:"type-pacifico-nanumgothiccod",img:"048.png",category:13,default:!1,caption:"Pacifico & Nanum Gothic Coding"},{css:"basetype-greatvibes-robotomono.css",sectioncss:"type-greatvibes-robotomono.css",classname:"type-greatvibes-robotomono",img:"055.png",category:13,default:!1,caption:"Great Vibes & Roboto Mono"},{css:"basetype-pinyonscript-firasans.css",sectioncss:"type-pinyonscript-firasans.css",classname:"type-pinyonscript-firasans",img:"056.png",category:9,default:!1,caption:"Pinyon Script & Fira Sans"},{css:"basetype-sail-rasa.css",sectioncss:"type-sail-rasa.css",classname:"type-sail-rasa",img:"061.png",category:10,default:!1,caption:"Sail & Rasa"},{css:"basetype-yesevaone-forum.css",sectioncss:"type-yesevaone-forum.css",classname:"type-yesevaone-forum",img:"068.png",category:14,default:!1,caption:"Yeseva One & Forum"},{css:"basetype-dosis-oldstandardtt.css",sectioncss:"type-dosis-oldstandardtt.css",classname:"type-dosis-oldstandardtt",img:"074.png",category:1,default:!1,caption:"Dosis & Old Standard TT"},{css:"basetype-engagement-spectral.css",sectioncss:"type-engagement-spectral.css",classname:"type-engagement-spectral",img:"077.png",category:11,default:!1,caption:"Engagement & Spectral"},{css:"basetype-dynalight-mada.css",sectioncss:"type-dynalight-mada.css",classname:"type-dynalight-mada",img:"080.png",category:8,default:!1,caption:"Dynalight & Mada"},{css:"basetype-gravitasone-nanummyeongjo.css",sectioncss:"type-gravitasone-nanummyeongjo.css",classname:"type-gravitasone-nanummyeongjo",img:"084.png",category:10,default:!1,caption:"Gravitas One & Nanum Myeongjo"},{css:"basetype-alexbrush-ibmplexsans.css",sectioncss:"type-alexbrush-ibmplexsans.css",classname:"type-alexbrush-ibmplexsans",img:"089.png",category:9,default:!1,caption:"Alex Brush & IBM Plex Sans"}]}},contentStylesAlt:{data:{categories:[{id:-1,desc:"ALL"},{id:1,desc:"Sans-serif & Sans-serif"},{id:2,desc:"Serif & Serif"},{id:3,desc:"Sans-serif & Serif"},{id:4,desc:"Serif & Sans-serif"},{id:5,desc:"Monospace & Monospace"},{id:6,desc:"Monospace & Sans-serif"},{id:7,desc:"Sans-serif & Monospace"},{id:8,desc:"Display & Sans-serif"},{id:9,desc:"Handwriting & Sans-serif"},{id:10,desc:"Display & Serif"},{id:11,desc:"Handwriting & Serif"},{id:12,desc:"Display & Monospace"},{id:13,desc:"Handwriting & Monospace"},{id:14,desc:"Display & Display"}],styles:[{css:"basetype-opensans.css",sectioncss:"type-opensans.css",classname:"type-opensans",img:"type-opensans.jpg",category:9,default:!0,caption:"Open Sans"},{css:"basetype-spectralsc-karma.css",sectioncss:"type-spectralsc-karma.css",classname:"type-spectralsc-karma",img:"type-spectralsc-karma.jpg",category:2,default:!0,caption:"Spectral SC & Karma"},{css:"basetype-alegreyasanssc-hind.css",sectioncss:"type-alegreyasanssc-hind.css",classname:"type-alegreyasanssc-hind",img:"type-alegreyasanssc-hind.jpg",category:1,default:!0,caption:"Alegreya Sans SC & Hind"},{css:"basetype-cabinsketch-montserrat.css",sectioncss:"type-cabinsketch-montserrat.css",classname:"type-cabinsketch-montserrat",img:"type-cabinsketch-montserrat.jpg",category:8,default:!0,caption:"Cabin Sketch & Montserrat"},{css:"basetype-anonymouspro-catamaran.css",sectioncss:"type-anonymouspro-catamaran.css",classname:"type-anonymouspro-catamaran",img:"type-anonymouspro-catamaran.jpg",category:6,default:!0,caption:"Anonymous Pro & Catamaran"},{css:"basetype-nothingyouc-ibmplexmono.css",sectioncss:"type-nothingyouc-ibmplexmono.css",classname:"type-nothingyouc-ibmplexmono",img:"type-nothingyouc-ibmplexmono.jpg",category:13,default:!0,caption:"Nothing You Could Do & IBM Plex Mono"},{css:"basetype-juliussansone-taviraj.css",sectioncss:"type-juliussansone-taviraj.css",classname:"type-juliussansone-taviraj",img:"type-juliussansone-taviraj.jpg",category:3,default:!0,caption:"Julius Sans One & Taviraj"},{css:"basetype-voltaire-sourcecodepro.css",sectioncss:"type-voltaire-sourcecodepro.css",classname:"type-voltaire-sourcecodepro",img:"type-voltaire-sourcecodepro.jpg",category:7,default:!0,caption:"Voltaire & Source Code Pro"},{css:"basetype-oregano-zillaslab.css",sectioncss:"type-oregano-zillaslab.css",classname:"type-oregano-zillaslab",img:"type-oregano-zillaslab.jpg",category:10,default:!0,caption:"Oregano & Zilla Slab"},{css:"basetype-anonymouspro.css",sectioncss:"type-anonymouspro.css",classname:"type-anonymouspro",img:"type-anonymouspro.jpg",category:5,default:!1,caption:"Anonymous Pro"},{css:"basetype-dancingscript-anonymouspro.css",sectioncss:"type-dancingscript-anonymouspro.css",classname:"type-dancingscript-anonymouspro",img:"type-dancingscript-anonymouspro.jpg",category:13,default:!1,caption:"Dancing Script & Anonymous Pro"},{css:"basetype-unicaone-cormorantgaramond.css",sectioncss:"type-unicaone-cormorantgaramond.css",classname:"type-unicaone-cormorantgaramond",img:"type-unicaone-cormorantgaramond.jpg",category:10,default:!1,caption:"Unica One & Cormorant Garamond"},{css:"basetype-allan-overpassmono.css",sectioncss:"type-allan-overpassmono.css",classname:"type-allan-overpassmono",img:"type-allan-overpassmono.jpg",category:12,default:!1,caption:"Allan & Overpass Mono"},{css:"basetype-averialibre-barlow.css",sectioncss:"type-averialibre-barlow.css",classname:"type-averialibre-barlow",img:"type-averialibre-barlow.jpg",category:8,default:!1,caption:"Averia Libre & Barlow"},{css:"basetype-merriweathersans-martel.css",sectioncss:"type-merriweathersans-martel.css",classname:"type-merriweathersans-martel",img:"type-merriweathersans-martel.jpg",category:3,default:!1,caption:"Merriweather Sans & Martel"},{css:"basetype-poppins.css",sectioncss:"type-poppins.css",classname:"type-poppins",img:"type-poppins.jpg",category:1,default:!1,caption:"Poppins"},{css:"basetype-specialelite-encodesans.css",sectioncss:"type-specialelite-encodesans.css",classname:"type-specialelite-encodesans",img:"type-specialelite-encodesans.jpg",category:8,default:!1,caption:"Special Elite & Encode Sans"},{css:"basetype-marcellussc-heebo.css",sectioncss:"type-marcellussc-heebo.css",classname:"type-marcellussc-heebo",img:"type-marcellussc-heebo.jpg",category:4,default:!1,caption:"Marcellus SC & Heebo"},{css:"basetype-oswald-cousine.css",sectioncss:"type-oswald-cousine.css",classname:"type-oswald-cousine",img:"type-oswald-cousine.jpg",category:7,default:!1,caption:"Oswald & Cousine"},{css:"basetype-oranienbaum-sourcesanspro.css",sectioncss:"type-oranienbaum-sourcesanspro.css",classname:"type-oranienbaum-sourcesanspro",img:"type-oranienbaum-sourcesanspro.jpg",category:4,default:!1,caption:"Oranienbaum & Source Sans Pro"},{css:"basetype-sriracha-arvo.css",sectioncss:"type-sriracha-arvo.css",classname:"type-sriracha-arvo",img:"type-sriracha-arvo.jpg",category:11,default:!1,caption:"Sriracha & Arvo"},{css:"basetype-merriweather.css",sectioncss:"type-merriweather.css",classname:"type-merriweather",img:"type-merriweather.jpg",category:2,default:!1,caption:"Merriweather"},{css:"basetype-badscript-rokkitt.css",sectioncss:"type-badscript-rokkitt.css",classname:"type-badscript-rokkitt",img:"type-badscript-rokkitt.jpg",category:11,default:!1,caption:"Bad Script & Rokkitt"},{css:"basetype-inconsolata.css",sectioncss:"type-inconsolata.css",classname:"type-inconsolata",img:"type-inconsolata.jpg",category:5,default:!1,caption:"Inconsolata"},{css:"basetype-novamono-robotomono.css",sectioncss:"type-novamono-robotomono.css",classname:"type-novamono-robotomono",img:"type-novamono-robotomono.jpg",category:5,default:!1,caption:"Nova Mono & Roboto Mono"},{css:"basetype-spacemono.css",sectioncss:"type-spacemono.css",classname:"type-spacemono",img:"type-spacemono.jpg",category:5,default:!1,caption:"Space Mono"},{css:"basetype-elsie-frankruhllibre.css",sectioncss:"type-elsie-frankruhllibre.css",classname:"type-elsie-frankruhllibre",img:"type-elsie-frankruhllibre.jpg",category:10,default:!1,caption:"Elsie & Frank Ruhl Libre"},{css:"basetype-playfairdisp-petitformalscr.css",sectioncss:"type-playfairdisp-petitformalscr.css",classname:"type-playfairdisp-petitformalscr",img:"type-playfairdisp-petitformalscr.jpg",category:2,default:!1,caption:"Playfair Display"},{css:"basetype-josefinsans-neuton.css",sectioncss:"type-josefinsans-neuton.css",classname:"type-josefinsans-neuton",img:"type-josefinsans-neuton.jpg",category:3,default:!1,caption:"Josefin Sans & Neuton"},{css:"basetype-stintultracon-inconsolata.css",sectioncss:"type-stintultracon-inconsolata.css",classname:"type-stintultracon-inconsolata",img:"type-stintultracon-inconsolata.jpg",category:12,default:!1,caption:"Stint Ultra Condensed & Inconsolata"},{css:"basetype-raleway-playfairdisplay.css",sectioncss:"type-raleway-playfairdisplay.css",classname:"type-raleway-playfairdisplay",img:"type-raleway-playfairdisplay.jpg",category:1,default:!1,caption:"Raleway"},{css:"basetype-ubuntumono-sourcecodepro.css",sectioncss:"type-ubuntumono-sourcecodepro.css",classname:"type-ubuntumono-sourcecodepro",img:"type-ubuntumono-sourcecodepro.jpg",category:5,default:!1,caption:"Ubuntu Mono & Source Code Pro"},{css:"basetype-sharetechmono-nunito.css",sectioncss:"type-sharetechmono-nunito.css",classname:"type-sharetechmono-nunito",img:"type-sharetechmono-nunito.jpg",category:6,default:!1,caption:"Share Tech Mono & Nunito"},{css:"basetype-lato.css",sectioncss:"type-lato.css",classname:"type-lato",img:"type-lato.jpg",category:1,default:!1,caption:"Lato"},{css:"basetype-pathwaygothicone-merriweather.css",sectioncss:"type-pathwaygothicone-merriweather.css",classname:"type-pathwaygothicone-merriweather",img:"type-pathwaygothicone-merriweather.jpg",category:3,default:!1,caption:"Pathway Gothic One & Merriweather"},{css:"basetype-forum-nanumgothiccoding.css",sectioncss:"type-forum-nanumgothiccoding.css",classname:"type-forum-nanumgothiccoding",img:"type-forum-nanumgothiccoding.jpg",category:12,default:!1,caption:"Forum & Nanum Gothic Coding"},{css:"basetype-bilbo-halant.css",sectioncss:"type-bilbo-halant.css",classname:"type-bilbo-halant",img:"type-bilbo-halant.jpg",category:11,default:!1,caption:"Bilbo & Halant"},{css:"basetype-hammersmithone-poppins.css",sectioncss:"type-hammersmithone-poppins.css",classname:"type-hammersmithone-poppins",img:"type-hammersmithone-poppins.jpg",category:1,default:!1,caption:"Hammersmith One & Poppins"},{css:"basetype-arimamadurai.css",sectioncss:"type-arimamadurai.css",classname:"type-arimamadurai",img:"type-arimamadurai.jpg",category:14,default:!1,caption:"Arima Madurai"},{css:"basetype-teko-muktamahee.css",sectioncss:"type-teko-muktamahee.css",classname:"type-teko-muktamahee",img:"type-teko-muktamahee.jpg",category:1,default:!1,caption:"Teko & Mukta Mahee"},{css:"basetype-heebo-ibmplexmono.css",sectioncss:"type-heebo-ibmplexmono.css",classname:"type-heebo-ibmplexmono",img:"type-heebo-ibmplexmono.jpg",category:7,default:!1,caption:"Heebo & IBM Plex Mono"},{css:"basetype-sairacon-thegirlnextdoor.css",sectioncss:"type-sairacon-thegirlnextdoor.css",classname:"type-sairacon-thegirlnextdoor",img:"type-sairacon-thegirlnextdoor.jpg",category:1,default:!1,caption:"Saira Condensed"},{css:"basetype-frankruhllibre-lato.css",sectioncss:"type-frankruhllibre-lato.css",classname:"type-frankruhllibre-lato",img:"type-frankruhllibre-lato.jpg",category:4,default:!1,caption:"Frank Ruhl Libre & Lato"},{css:"basetype-yantramanav-ibmplexserif.css",sectioncss:"type-yantramanav-ibmplexserif.css",classname:"type-yantramanav-ibmplexserif",img:"type-yantramanav-ibmplexserif.jpg",category:1,default:!1,caption:"Yantramanav & IBM Plex Serif"},{css:"basetype-quicksand-kalam.css",sectioncss:"type-quicksand-kalam.css",classname:"type-quicksand-kalam",img:"type-quicksand-kalam.jpg",category:1,default:!1,caption:"Quicksand & Kalam"},{css:"basetype-ibmplexmono.css",sectioncss:"type-ibmplexmono.css",classname:"type-ibmplexmono",img:"type-ibmplexmono.jpg",category:5,default:!1,caption:"IBM Plex Mono"},{css:"basetype-cinzeldecor-palanquin.css",sectioncss:"type-cinzeldecor-palanquin.css",classname:"type-cinzeldecor-palanquin",img:"type-cinzeldecor-palanquin.jpg",category:8,default:!1,caption:"Cinzel Decorative & Palanquin"},{css:"basetype-oswald-biryani.css",sectioncss:"type-oswald-biryani.css",classname:"type-oswald-biryani",img:"type-oswald-biryani.jpg",category:1,default:!1,caption:"Oswald & Biryani"},{css:"basetype-yanonekaff-josefinsans.css",sectioncss:"type-yanonekaff-josefinsans.css",classname:"type-yanonekaff-josefinsans",img:"type-yanonekaff-josefinsans.jpg",category:1,default:!1,caption:"Yanone Kaffeesatz & Josefin Sans"},{css:"basetype-abrilfatface-assistant.css",sectioncss:"type-abrilfatface-assistant.css",classname:"type-abrilfatface-assistant",img:"type-abrilfatface-assistant.jpg",category:8,default:!1,caption:"Abril Fatface & Assistant"},{css:"basetype-nanumgothiccod-firasanscon.css",sectioncss:"type-nanumgothiccod-firasanscon.css",classname:"type-nanumgothiccod-firasanscon",img:"type-nanumgothiccod-firasanscon.jpg",category:6,default:!1,caption:"Nanum Gothic Coding & Fira Sans Condensed"},{css:"basetype-inder-trirong.css",sectioncss:"type-inder-trirong.css",classname:"type-inder-trirong",img:"type-inder-trirong.jpg",category:3,default:!1,caption:"Inder & Trirong"},{css:"basetype-atma-tajawal.css",sectioncss:"type-atma-tajawal.css",classname:"type-atma-tajawal",img:"type-atma-tajawal.jpg",category:8,default:!1,caption:"Atma & Tajawal"},{css:"basetype-prata-hindsiliguri.css",sectioncss:"type-prata-hindsiliguri.css",classname:"type-prata-hindsiliguri",img:"type-prata-hindsiliguri.jpg",category:4,default:!1,caption:"Prata & Hind Siliguri"},{css:"basetype-federo-gothica1.css",sectioncss:"type-federo-gothica1.css",classname:"type-federo-gothica1",img:"type-federo-gothica1.jpg",category:1,default:!1,caption:"Federo & Gothic A1"},{css:"basetype-fjallaone-ibmplexserif.css",sectioncss:"type-fjallaone-ibmplexserif.css",classname:"type-fjallaone-ibmplexserif",img:"type-fjallaone-ibmplexserif.jpg",category:3,default:!1,caption:"Fjalla One & IBM Plex Serif"},{css:"basetype-cormorantsc-ibmplexsanscon.css",sectioncss:"type-cormorantsc-ibmplexsanscon.css",classname:"type-cormorantsc-ibmplexsanscon",img:"type-cormorantsc-ibmplexsanscon.jpg",category:4,default:!1,caption:"Cormorant SC & IBM Plex Sans Condensed"},{css:"basetype-kalam-robotomono.css",sectioncss:"type-kalam-robotomono.css",classname:"type-kalam-robotomono",img:"type-kalam-robotomono.jpg",category:13,default:!1,caption:"Kalam & Roboto Mono"},{css:"basetype-fugazone-librefranklin.css",sectioncss:"type-fugazone-librefranklin.css",classname:"type-fugazone-librefranklin",img:"type-fugazone-librefranklin.jpg",category:8,default:!1,caption:"Fugaz One & Libre Franklin"},{css:"basetype-yeonsung-palanquin.css",sectioncss:"type-yeonsung-palanquin.css",classname:"type-yeonsung-palanquin",img:"type-yeonsung-palanquin.jpg",category:8,default:!1,caption:"Yeon Sung & Palanquin"},{css:"basetype-rancho-robotoslab.css",sectioncss:"type-rancho-robotoslab.css",classname:"type-rancho-robotoslab",img:"type-rancho-robotoslab.jpg",category:11,default:!1,caption:"Rancho & Roboto Slab"},{css:"basetype-tenaram-overpassmono.css",sectioncss:"type-tenaram-overpassmono.css",classname:"type-tenaram-overpassmono",img:"type-tenaram-overpassmono.jpg",category:7,default:!1,caption:"Tenali Ramakrishna & Overpass Mono"},{css:"basetype-thegirlnextdoor-sourcesanspro.css",sectioncss:"type-thegirlnextdoor-sourcesanspro.css",classname:"type-thegirlnextdoor-sourcesanspro",img:"type-thegirlnextdoor-sourcesanspro.jpg",category:9,default:!1,caption:"The Girl Next Door & Source Sans Pro"},{css:"basetype-boogaloo-inconsolata.css",sectioncss:"type-boogaloo-inconsolata.css",classname:"type-boogaloo-inconsolata",img:"type-boogaloo-inconsolata.jpg",category:12,default:!1,caption:"Boogaloo & Inconsolata"},{css:"basetype-caveat-sourcecodepro.css",sectioncss:"type-caveat-sourcecodepro.css",classname:"type-caveat-sourcecodepro",img:"type-caveat-sourcecodepro.jpg",category:13,default:!1,caption:"Caveat & Source Code Pro"},{css:"basetype-passionone-worksans.css",sectioncss:"type-passionone-worksans.css",classname:"type-passionone-worksans",img:"type-passionone-worksans.jpg",category:8,default:!1,caption:"Passion One & Work Sans"},{css:"basetype-anticdidone-halant.css",sectioncss:"type-anticdidone-halant.css",classname:"type-anticdidone-halant",img:"type-anticdidone-halant.jpg",category:2,default:!1,caption:"Antic Didone & Halant"},{css:"basetype-adventpro-opensans.css",sectioncss:"type-adventpro-opensans.css",classname:"type-adventpro-opensans",img:"type-adventpro-opensans.jpg",category:1,default:!1,caption:"Advent Pro & Open Sans"},{css:"basetype-cutivemono-lato.css",sectioncss:"type-cutivemono-lato.css",classname:"type-cutivemono-lato",img:"type-cutivemono-lato.jpg",category:6,default:!1,caption:"Cutive Mono & Lato"},{css:"basetype-elsie-montserrat.css",sectioncss:"type-elsie-montserrat.css",classname:"type-elsie-montserrat",img:"type-elsie-montserrat.jpg",category:8,default:!1,caption:"Elsie & Montserrat"},{css:"basetype-macondo-mukta.css",sectioncss:"type-macondo-mukta.css",classname:"type-macondo-mukta",img:"type-macondo-mukta.jpg",category:8,default:!1,caption:"Macondo & Mukta"},{css:"basetype-oswald-opensans.css",sectioncss:"type-oswald-opensans.css",classname:"type-oswald-opensans",img:"type-oswald-opensans.jpg",category:1,default:!1,caption:"Oswald & Open Sans"},{css:"basetype-poppins-lekton.css",sectioncss:"type-poppins-lekton.css",classname:"type-poppins-lekton",img:"type-poppins-lekton.jpg",category:1,default:!1,caption:"Poppins & Lekton"},{css:"basetype-raleway-neuton.css",sectioncss:"type-raleway-neuton.css",classname:"type-raleway-neuton",img:"type-raleway-neuton.jpg",category:3,default:!1,caption:"Raleway & Neuton"},{css:"basetype-sourcecodepro-nunitosans.css",sectioncss:"type-sourcecodepro-nunitosans.css",classname:"type-sourcecodepro-nunitosans",img:"type-sourcecodepro-nunitosans.jpg",category:6,default:!1,caption:"Source Code Pro & Nunito Sans"},{css:"basetype-tangerine-opensans.css",sectioncss:"type-tangerine-opensans.css",classname:"type-tangerine-opensans",img:"type-tangerine-opensans.jpg",category:9,default:!1,caption:"Tangerine & Open Sans"},{css:"basetype-alegreya-lato.css",sectioncss:"type-alegreya-lato.css",classname:"type-alegreya-lato",img:"type-alegreya-lato.jpg",category:4,default:!1,caption:"Alegreya & Lato"},{css:"basetype-amaticsc-lato.css",sectioncss:"type-amaticsc-lato.css",classname:"type-amaticsc-lato",img:"type-amaticsc-lato.jpg",category:9,default:!1,caption:"Amatic SC & Lato"},{css:"basetype-heebo-ibmplexmono-2.css",sectioncss:"type-heebo-ibmplexmono-2.css",classname:"type-heebo-ibmplexmono-2",img:"type-heebo-ibmplexmono-2.jpg",category:7,default:!1,caption:"Heebo & IBM Plex Mono"},{css:"basetype-juliussansone-robotocondensed.css",sectioncss:"type-juliussansone-robotocondensed.css",classname:"type-juliussansone-robotocondensed",img:"type-juliussansone-robotocondensed.jpg",category:1,default:!1,caption:"Julius Sans One & Roboto Condensed"},{css:"basetype-montserrat-roboto.css",sectioncss:"type-montserrat-roboto.css",classname:"type-montserrat-roboto",img:"type-montserrat-roboto.jpg",category:1,default:!1,caption:"Montserrat & Roboto"},{css:"basetype-nothingyouc-ibmplexmono-2.css",sectioncss:"type-nothingyouc-ibmplexmono-2.css",classname:"type-nothingyouc-ibmplexmono-2",img:"type-nothingyouc-ibmplexmono-2.jpg",category:13,default:!1,caption:"Nothing You Could Do & IBM Plex Mono"},{css:"basetype-raleway-lato.css",sectioncss:"type-raleway-lato.css",classname:"type-raleway-lato",img:"type-raleway-lato.jpg",category:1,default:!1,caption:"Raleway & Lato"},{css:"basetype-raleway-lusitana.css",sectioncss:"type-raleway-lusitana.css",classname:"type-raleway-lusitana",img:"type-raleway-lusitana.jpg",category:3,default:!1,caption:"Raleway & Lusitana"},{css:"basetype-rufina-oxygen.css",sectioncss:"type-rufina-oxygen.css",classname:"type-rufina-oxygen",img:"type-rufina-oxygen.jpg",category:4,default:!1,caption:"Rufina & Oxygen"},{css:"basetype-sacramento-opensans.css",sectioncss:"type-sacramento-opensans.css",classname:"type-sacramento-opensans",img:"type-sacramento-opensans.jpg",category:9,default:!1,caption:"Sacramento & Open Sans"},{css:"basetype-specialelite-playfairdisplay.css",sectioncss:"type-specialelite-playfairdisplay.css",classname:"type-specialelite-playfairdisplay",img:"type-specialelite-playfairdisplay.jpg",category:10,default:!1,caption:"Special Elite & Playfair Display"},{css:"basetype-unicaone-sourcesanspro.css",sectioncss:"type-unicaone-sourcesanspro.css",classname:"type-unicaone-sourcesanspro",img:"type-unicaone-sourcesanspro.jpg",category:8,default:!1,caption:"Unica One & Source Sans Pro"},{css:"basetype-amaticsc-josepfinsans.css",sectioncss:"type-amaticsc-josepfinsans.css",classname:"type-amaticsc-josepfinsans",img:"type-amaticsc-josepfinsans.jpg",category:9,default:!0,caption:"Amatic SC & Josefin Sans"},{css:"basetype-sourcesanspro-anonymouspro.css",sectioncss:"type-sourcesanspro-anonymouspro.css",classname:"type-sourcesanspro-anonymouspro",img:"type-sourcesanspro-anonymouspro.jpg",category:7,default:!0,caption:"Source Sans Pro & Anonymous Pro"},{css:"basetype-poppins-oldstandardtt.css",sectioncss:"type-poppins-oldstandardtt.css",classname:"type-poppins-oldstandardtt",img:"type-poppins-oldstandardtt.jpg",category:3,default:!0,caption:"Poppins & Old Standard TT"},{css:"basetype-yesteryear-chivo.css",sectioncss:"type-yesteryear-chivo.css",classname:"type-yesteryear-chivo",img:"type-yesteryear-chivo.jpg",category:9,default:!0,caption:"Yesteryear & Chivo"},{css:"basetype-ptserif-poppins.css",sectioncss:"type-ptserif-poppins.css",classname:"type-ptserif-poppins",img:"type-ptserif-poppins.jpg",category:4,default:!0,caption:"PT Serif & Poppins"},{css:"basetype-kellyslab-yantramanav.css",sectioncss:"type-kellyslab-yantramanav.css",classname:"type-kellyslab-yantramanav",img:"type-kellyslab-yantramanav.jpg",category:8,default:!0,caption:"Kelly Slab & Yantramanav"},{css:"basetype-yellowtail-frankruhllibre.css",sectioncss:"type-yellowtail-frankruhllibre.css",classname:"type-yellowtail-frankruhllibre",img:"type-yellowtail-frankruhllibre.jpg",category:11,default:!0,caption:"Yellowtail & Frank Ruhl Libre"},{css:"basetype-sedgwickave-spectral.css",sectioncss:"type-sedgwickave-spectral.css",classname:"type-sedgwickave-spectral",img:"type-sedgwickave-spectral.jpg",category:10,default:!1,caption:"Sedgwick Ave & Spectral"},{css:"basetype-satisfy-economica.css",sectioncss:"type-satisfy-economica.css",classname:"type-satisfy-economica",img:"type-satisfy-economica.jpg",category:9,default:!1,caption:"Satisfy & Economica"},{css:"basetype-josefinsans-lekton.css",sectioncss:"type-josefinsans-lekton.css",classname:"type-josefinsans-lekton",img:"type-josefinsans-lekton.jpg",category:1,default:!1,caption:"Josefin Sans & Lekton"},{css:"basetype-parisienne-maitree.css",sectioncss:"type-parisienne-maitree.css",classname:"type-parisienne-maitree",img:"type-parisienne-maitree.jpg",category:11,default:!1,caption:"Parisienne & Maitree"},{css:"basetype-londrinashadow-martel.css",sectioncss:"type-londrinashadow-martel.css",classname:"type-londrinashadow-martel",img:"type-londrinashadow-martel.jpg",category:10,default:!1,caption:"Londrina Shadow & Martel"},{css:"basetype-poiretone-pridi.css",sectioncss:"type-poiretone-pridi.css",classname:"type-poiretone-pridi",img:"type-poiretone-pridi.jpg",category:10,default:!1,caption:"Poiret One & Pridi"},{css:"basetype-pollerone-ibmplexserif.css",sectioncss:"type-pollerone-ibmplexserif.css",classname:"type-pollerone-ibmplexserif",img:"type-pollerone-ibmplexserif.jpg",category:10,default:!1,caption:"Poller One & IBM Plex Serif"},{css:"basetype-italiana-martel.css",sectioncss:"type-italiana-martel.css",classname:"type-italiana-martel",img:"type-italiana-martel.jpg",category:2,default:!1,caption:"Italiana & Martel"},{css:"basetype-julee-lora.css",sectioncss:"type-julee-lora.css",classname:"type-julee-lora",img:"type-julee-lora.jpg",category:11,default:!1,caption:"Julee & Lora"},{css:"basetype-sixcaps-robotomono.css",sectioncss:"type-sixcaps-robotomono.css",classname:"type-sixcaps-robotomono",img:"type-sixcaps-robotomono.jpg",category:7,default:!1,caption:"Six Caps & Roboto Mono"},{css:"basetype-pacifico-nanumgothiccod.css",sectioncss:"type-pacifico-nanumgothiccod.css",classname:"type-pacifico-nanumgothiccod",img:"type-pacifico-nanumgothiccod.jpg",category:13,default:!1,caption:"Pacifico & Nanum Gothic Coding"},{css:"basetype-greatvibes-robotomono.css",sectioncss:"type-greatvibes-robotomono.css",classname:"type-greatvibes-robotomono",img:"type-greatvibes-robotomono.jpg",category:13,default:!1,caption:"Great Vibes & Roboto Mono"},{css:"basetype-pinyonscript-firasans.css",sectioncss:"type-pinyonscript-firasans.css",classname:"type-pinyonscript-firasans",img:"type-pinyonscript-firasans.jpg",category:9,default:!1,caption:"Pinyon Script & Fira Sans"},{css:"basetype-sail-rasa.css",sectioncss:"type-sail-rasa.css",classname:"type-sail-rasa",img:"type-sail-rasa.jpg",category:10,default:!1,caption:"Sail & Rasa"},{css:"basetype-yesevaone-forum.css",sectioncss:"type-yesevaone-forum.css",classname:"type-yesevaone-forum",img:"type-yesevaone-forum.jpg",category:14,default:!1,caption:"Yeseva One & Forum"},{css:"basetype-dosis-oldstandardtt.css",sectioncss:"type-dosis-oldstandardtt.css",classname:"type-dosis-oldstandardtt",img:"type-dosis-oldstandardtt.jpg",category:1,default:!1,caption:"Dosis & Old Standard TT"},{css:"basetype-engagement-spectral.css",sectioncss:"type-engagement-spectral.css",classname:"type-engagement-spectral",img:"type-engagement-spectral.jpg",category:11,default:!1,caption:"Engagement & Spectral"},{css:"basetype-dynalight-mada.css",sectioncss:"type-dynalight-mada.css",classname:"type-dynalight-mada",img:"type-dynalight-mada.jpg",category:8,default:!1,caption:"Dynalight & Mada"},{css:"basetype-gravitasone-nanummyeongjo.css",sectioncss:"type-gravitasone-nanummyeongjo.css",classname:"type-gravitasone-nanummyeongjo",img:"type-gravitasone-nanummyeongjo.jpg",category:10,default:!1,caption:"Gravitas One & Nanum Myeongjo"},{css:"basetype-alexbrush-ibmplexsans.css",sectioncss:"type-alexbrush-ibmplexsans.css",classname:"type-alexbrush-ibmplexsans",img:"type-alexbrush-ibmplexsans.jpg",category:9,default:!1,caption:"Alex Brush & IBM Plex Sans"}]}},onAddSectionOpen:function(){},contentHtmlStart:'<div class="is-container is-builder container"><div class="row clearfix"><div class="column full">',contentHtmlEnd:"</div></div></div>"},e),""!==this.settings.imageSelect?this.settings.imageselect=this.settings.imageSelect:""!=this.settings.imageselect&&(this.settings.imageSelect=this.settings.imageselect),""!==this.settings.fileSelect?this.settings.fileselect=this.settings.fileSelect:""!=this.settings.fileselect&&(this.settings.fileSelect=this.settings.fileselect),""!==this.settings.videoSelect?this.settings.videoselect=this.settings.videoSelect:""!=this.settings.videoselect&&(this.settings.videoSelect=this.settings.videoselect),""!==this.settings.largerImageHandler?this.settings.mediaHandler=this.settings.largerImageHandler:""!=this.settings.mediaHandler&&(this.settings.largerImageHandler=this.settings.mediaHandler),this.settings.onLargerImageUpload?this.settings.onMediaUpload=this.settings.onLargerImageUpload:this.settings.onMediaUpload&&(this.settings.onLargerImageUpload=this.settings.onMediaUpload),this.settings.snippetPathReplace.length>0&&0===this.settings.designPathReplace.length&&(this.settings.designPathReplace=this.settings.snippetPathReplace),this.settings.contentStyleWithSample&&(this.settings.contentStyles=this.settings.contentStylesAlt),this.wrapperEl=document.querySelector(this.wrapper),pb.hasClass(this.wrapperEl,"preview"))return void(this.preview=!0);pb.addClass(this.wrapperEl,"is-wrapper"),pb.addClass(this.wrapperEl,"is-edit");let i=this.settings.onRender;this.settings.onRender=()=>{i.call(this);try{this.box(),setTimeout((function(){if(window.skrollr){let e=window.skrollr.get();e&&e.refresh()}}),100)}catch(e){}};let n=this.settings.onChange;this.settings.onChange=()=>{n.call(this),setTimeout((()=>{this.quickPosTool()}),100)};let o=document.querySelector("#_cbhtml");o||(o=document.createElement("div"),o.id="_cbhtml",o.style.visibility="hidden",o.className="is-ui",document.body.appendChild(o),o=document.querySelector("#_cbhtml")),this.builderStuff=o,(e=>{const i=e.builderStuff;t.appendHtml(i,'<svg width="0" height="0" style="position:absolute;display:none;">\n <defs>\n\n <symbol viewBox="0 0 512 512" id="ion-android-add"><path d="M416 277.333H277.333V416h-42.666V277.333H96v-42.666h138.667V96h42.666v138.667H416v42.666z"></path></symbol>\n <symbol viewBox="0 0 2048.0 2048.0" id="icon-align-center"><rect x="0" y="0" width="2048.00" height="2048.00" fill="none" /><g id="document" transform="matrix(1,0,0,1,1024.0,1024.0)"><path d="M-770.727,738.299 L-770.727,582.085 L769.712,582.085 L769.712,738.299 L-770.727,738.299 Z " /><path d="M-552.286,-107.697 L-552.286,-263.911 L552.286,-263.911 L552.286,-107.697 L-552.286,-107.697 Z " /><path d="M-467.355,319.234 L-467.355,163.02 L466.34,163.02 L466.34,319.234 L-467.355,319.234 Z " /><path d="M-770.727,-534.628 L-770.727,-690.842 L769.712,-690.842 L769.712,-534.628 L-770.727,-534.628 Z " /></g></symbol>\n <symbol viewBox="0 0 512 512" id="ion-code"><path d="M168 392a23.929 23.929 0 0 1-16.971-7.029l-112-112c-9.373-9.373-9.373-24.569 0-33.941l112-112c9.373-9.372 24.568-9.372 33.941 0 9.371 9.372 9.371 24.568 0 33.941L89.941 256l95.029 95.029c9.371 9.373 9.371 24.568 0 33.941A23.925 23.925 0 0 1 168 392zM344 392a23.929 23.929 0 0 0 16.971-7.029l112-112c9.373-9.373 9.373-24.569 0-33.941l-112-112c-9.373-9.372-24.568-9.372-33.941 0-9.371 9.372-9.371 24.568 0 33.941L422.059 256l-95.029 95.029c-9.371 9.373-9.371 24.568 0 33.941A23.925 23.925 0 0 0 344 392z"></path></symbol>\n <symbol viewBox="0 0 512 512" id="ion-edit"><path d="M163 439.573l-90.569-90.569L322.78 98.656l90.57 90.569zM471.723 88.393l-48.115-48.114c-11.723-11.724-31.558-10.896-44.304 1.85l-45.202 45.203 90.569 90.568 45.202-45.202c12.743-12.746 13.572-32.582 1.85-44.305zM64.021 363.252L32 480l116.737-32.021z"></path></symbol>\n <symbol viewBox="0 0 2048.0 2048.0" id="icon-snippets"><g id="document" transform="matrix(1,0,0,1,1024.0,1024.0)">\t\t\t<path d="M-727.581,329.502 L318.058,329.502 L318.058,-527.853 L-727.581,-527.853 L-727.581,329.502 Z " fill="#ffffff" fill-opacity="1.00" stroke-width="85.63" stroke="#000000" stroke-linecap="square" stroke-linejoin="miter" />\t\t\t<path d="M-347.749,652.594 L697.89,652.594 L697.89,-204.761 L-347.749,-204.761 L-347.749,652.594 Z " fill="#ffffff" fill-opacity="1.00" stroke-width="85.63" stroke="#000000" stroke-linecap="square" stroke-linejoin="miter" />\t\t</g></symbol>\n <symbol viewBox="0 0 512 512" id="ion-ios-copy-outline"><path d="M304 96h-16v80h80v-16h-64z"></path><path d="M325.3 64H160v48h-48v336h240v-48h48V139l-74.7-75zM336 432H128V128h32v272h176v32zm48-48H176V80h142.7l65.3 65.6V384z"></path></symbol>\n \n <symbol viewBox="0 0 24 24" id="icon-arrow-bar-to-up" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n <path stroke="none" d="M0 0h24v24H0z" fill="none"/>\n <line x1="12" y1="10" x2="12" y2="20" />\n <line x1="12" y1="10" x2="16" y2="14" />\n <line x1="12" y1="10" x2="8" y2="14" />\n <line x1="4" y1="4" x2="20" y2="4" />\n </symbol>\n <symbol viewBox="0 0 24 24" id="icon-arrow-bar-to-down" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n <path stroke="none" d="M0 0h24v24H0z" fill="none"/>\n <line x1="4" y1="20" x2="20" y2="20" />\n <line x1="12" y1="14" x2="12" y2="4" />\n <line x1="12" y1="14" x2="16" y2="10" />\n <line x1="12" y1="14" x2="8" y2="10" />\n </symbol>\n <symbol viewBox="0 0 24 24" id="icon-space-between" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">\n <path stroke="none" d="M0 0h24v24H0z" fill="none"/>\n <line x1="4" y1="4" x2="20" y2="4" />\n <line x1="4" y1="20" x2="20" y2="20" />\n </symbol>\n\n </defs>\n </svg>')})(this),this.sidebar=new s(this),window.data_basic?(this.editorSetup(),this.init()):pb.addExternalScripts([this.snippetUrl],(()=>{this.editorSetup(),this.init()})),window.contentbox=this,window.applyBoxImage=this.boxImage.bind(this),window.applyLargerImage=this.applyLargerImage.bind(this),window.returnUrl=this.returnUrl.bind(this),window._contentbox=this}editorSetup(){this.editor=new db({container:".is-container",page:".is-wrapper",scriptPath:this.settings.scriptPath,pluginPath:this.settings.pluginPath,modulePath:this.settings.modulePath,fontAssetPath:this.settings.fontAssetPath,assetPath:this.settings.assetPath,plugins:this.settings.plugins,disableConfig:this.settings.disableConfig,snippetList:"#divSidebarSnippets",snippetPath:this.settings.snippetPath,snippetUrl:this.settings.snippetUrl,snippetJSON:window.data_basic,snippetPathReplace:this.settings.snippetPathReplace,maxColumns:6,maxEmbedImageWidth:this.settings.maxEmbedImageWidth,slider:this.settings.slider,onRender:this.settings.onRender,onChange:this.settings.onChange,onRefreshTool:()=>{setTimeout((()=>{this.quickPosTool()}),100)},useLightbox:this.settings.useLightbox,themes:this.settings.themes,moduleConfig:this.settings.moduleConfig,onImageSelectClick:this.settings.onImageSelectClick,onFileSelectClick:this.settings.onFileSelectClick,onVideoSelectClick:this.settings.onVideoSelectClick,onImageBrowseClick:this.settings.onImageBrowseClick,onImageSettingClick:this.settings.onImageSettingClick,onPluginsLoaded:this.settings.onPluginsLoaded,imageselect:this.settings.imageselect,fileselect:this.settings.fileselect,imageEmbed:this.settings.imageEmbed,sourceEditor:this.settings.sourceEditor,customval:this.settings.customval,colors:this.settings.colors,gradientcolors:this.settings.gradientcolors,buttons:this.settings.buttons,buttonsMore:this.settings.buttonsMore,elementButtons:this.settings.elementButtons,elementButtonsMore:this.settings.elementButtonsMore,iconButtons:this.settings.iconButtons,iconButtonsMore:this.settings.iconButtonsMore,customTags:this.settings.customTags,largerImageHandler:this.settings.largerImageHandler,onLargerImageUpload:this.settings.onLargerImageUpload,videoHandler:this.settings.videoHandler,onVideoUpload:this.settings.onVideoUpload,framework:this.settings.framework,cellFormat:this.settings.cellFormat,rowFormat:this.settings.rowFormat,row:this.settings.row,cols:this.settings.cols,colequal:this.settings.colequal,colsizes:this.settings.colsizes,classReplace:this.settings.classReplace,columnTool:this.settings.columnTool,elementTool:this.settings.elementTool,animateModal:this.settings.animateModal,elementAnimate:this.settings.elementAnimate,elementEditor:this.settings.elementEditor,onAdd:this.settings.onAdd,imageQuality:this.settings.imageQuality,columnHtmlEditor:this.settings.columnHtmlEditor,rowHtmlEditor:this.settings.rowHtmlEditor,rowMoveButtons:this.settings.rowMoveButtons,htmlSyntaxHighlighting:this.settings.htmlSyntaxHighlighting,scrollableEditingToolbar:this.settings.scrollableEditingToolbar,toolbar:this.settings.toolbar,toolbarDisplay:this.settings.toolbarDisplay,toolbarAddSnippetButton:this.settings.toolbarAddSnippetButton,paste:this.settings.paste,builderMode:this.settings.builderMode,rowcolOutline:this.settings.rowcolOutline,elementSelection:this.settings.elementSelection,animatedSorting:this.settings.animatedSorting,dragWithoutHandle:this.settings.dragWithoutHandle,addButtonPlacement:this.settings.addButtonPlacement,outlineMode:this.settings.outlineMode,elementHighlight:this.settings.elementHighlight,rowTool:this.settings.rowTool,toolStyle:this.settings.toolStyle,outlineStyle:this.settings.outlineStyle,snippetAddTool:this.settings.snippetAddTool,mobileSimpleEdit:this.settings.mobileSimpleEdit,clearPreferences:this.settings.clearPreferences,snippetCategories:this.settings.snippetCategories,defaultSnippetCategory:this.settings.defaultSnippetCategory,undoRedoStyles:this.settings.undoRedoStyles,onUndo:()=>{this.pageSetup()},onRedo:()=>{this.pageSetup()},undoContainerOnly:this.settings.undoContainerOnly,absolutePath:this.settings.absolutePath,zoom:this.zoom,onZoomStart:()=>{let e=document.querySelectorAll(".is-section-tool");Array.prototype.forEach.call(e,(function(e){"block"===e.style.display&&(e.setAttribute("data-section-active",""),e.style.display="none")}));let t=document.querySelector("#divBoxTool");"flex"===t.style.display&&(t.setAttribute("data-box-active",""),t.style.display="none")},onZoomEnd:()=>{if(!this.wrapperEl.querySelector(".is-section"))return;this.addSpace();let e=document.querySelector(".is-section-tool[data-section-active]");e&&(e.removeAttribute("data-section-active"),e.style.display="block"),e=document.querySelector("#divBoxTool[data-box-active]"),e&&(e.removeAttribute("data-box-active"),e.style.display="flex"),this.rePositionTool()},onThemeChange:()=>{this.refreshUIStyle()},fileSelect:this.settings.fileSelect,imageSelect:this.settings.imageSelect,videoSelect:this.settings.videoSelect,onContentClick:e=>{this.settings.onContentClick&&this.settings.onContentClick();let t=e.target;if(!t.closest('[contenteditable="true"]')){let i=this.editor.dom.getParentElement(t,"a");if("a"===t.tagName.toLowerCase()||i){"a"===t.tagName.toLowerCase()&&(i=t);let n=i.getAttribute("href");if(n&&0===n.indexOf("#"))if(0===n.indexOf("#section")){let t=n.replace("#section","");if(!isNaN(parseInt(t))){let i,n=document.querySelectorAll(".is-section"),o=0;n.forEach((function(e){pb.hasClass(e,"is-section-navbar")||(o===t-1&&(i=e),o++)})),i&&this.scrollTo(i),e.preventDefault()}}else{let t=document.querySelector(n);t&&(this.scrollTo(t),e.preventDefault())}}}}})}init(){pb.appendHtml(document.head,`<style id="_contentbox_lightbox">\n body {\n background: ${this.settings.backgroundColor};\n }\n .block-click.is-box {\n cursor: unset;\n }\n .block-click.is-box > * {\n pointer-events: unset;\n user-select: unset;\n } \n </style>`);const e=this.builderStuff;pb.appendHtml(e,'<div class="page-overlay"></div>');let t=e.querySelector(".page-overlay");this.editsection=new r(this),this.editbox=new Qt(this),setTimeout((()=>{this.pageSetupDone||this.pageSetup()}),300),ub.start(),ub.on("hide",(()=>{let i=document.querySelector(".pace-inactive");i&&i.parentNode.removeChild(i),this.wrapperEl.style.opacity=1;let n=e.querySelector(".is-sidebar");n&&(n.style.opacity=1),this.builderStuff.style.visibility="visible",t=e.querySelectorAll(".page-overlay"),t.forEach((e=>{e.parentNode.removeChild(e)}))})),document.addEventListener("click",this.doDocumentClick=e=>{let t=!1,i=!1,n=!1,o=!1,s=(e=e||window.event).target||e.srcElement;for(;s&&s.tagName&&"BODY"!==s.tagName&&"HTML"!==s.tagName;)pb.hasClass(s,"is-sidebar-content")&&(t=!0),pb.hasClass(s,"is-sidebar")&&(i=!0),pb.hasClass(s,"is-builder")&&(n=!0),pb.hasClass(s,"is-section")&&(s.hasAttribute("data-anim-start")||s.hasAttribute("data-anim-end"))&&(o=!0),s=s.parentNode;t||i||this.sidebar.closeSidebar(),n&&o&&(this.controlHiddenOnScroll=!0)})}pageSetup(){this.wrapperEl.querySelectorAll(".is-section").forEach((e=>{if(this.sectionSetup(e),pb.hasClass(e,"is-box"))this.boxSetup(e);else{e.querySelectorAll(".is-box").forEach((e=>{this.boxSetup(e)}))}})),this.editor.applyBehavior(),this.addSpace()}box(){const e=document.querySelector(".is-section-navbar");if(e){e.querySelectorAll("a").forEach((e=>{e.addEventListener("click",(t=>{let i=e.getAttribute("href");if(i&&0===i.indexOf("#"))if(0===i.indexOf("#section")){let e=i.replace("#section","");if(!isNaN(parseInt(e))){let i,n=document.querySelectorAll(".is-section"),o=0;n.forEach((function(t){pb.hasClass(t,"is-section-navbar")||(o===e-1&&(i=t),o++)})),i&&this.scrollTo(i),t.preventDefault()}}else try{let e=document.querySelector(i);e&&(this.scrollTo(e),t.preventDefault())}catch(t){}e.closest(".is-menu-search")||(t.preventDefault(),t.stopImmediatePropagation())}))}))}}addSpace(){const e=this.wrapperEl.querySelector("div.is-dummy");e&&e.parentNode.removeChild(e),pb.appendHtml(this.wrapperEl,'<div class="is-dummy" style="height:0px;"></div>'),setTimeout((()=>{const e=this.wrapperEl;e.style.transition="";const t=1*(e.getBoundingClientRect().top+window.pageYOffset)/this.editor.zoom;e.querySelector(".is-dummy").style.height=t+"px"}),300)}scrollTo(e,t=0){setTimeout((()=>{e.scrollIntoView({behavior:"smooth",block:"center"})}),t)}sectionSetup(e){pb.appendHtml(e,'<div class="is-section-tool"><button class="is-section-edit" data-title="'+n("Section Settings")+'" title="'+n("Section Settings")+'"><svg class="is-icon-flex"><use xlink:href="#ion-wrench"></use></svg></button><button class="is-section-remove" data-title="'+n("Remove")+'" title="'+n("Remove")+'">✕</button></div>'),this.editor.setTooltip(e);e.querySelector(".is-section-edit").addEventListener("click",(()=>{this.editsection.edit()}));e.querySelector(".is-section-remove").addEventListener("click",(()=>{const e=document.querySelector(".is-modal.delsectionconfirm");this.editor.util.showModal(e)}))}boxSetup(e){e.addEventListener("mouseenter",(()=>{let t;this.positionTool(e),t=pb.hasClass(e,"is-section")?e:pb.parentsHasClass(e,"is-section"),this.activeBox=e,this.activeSection=t}))}addIdea(e){this.editor.saveForUndo();const t=this.designPath;let i,o=[];if(-1!==(e=(e=e.replace(/\[%IMAGE_PATH%\]/g,t)).replace(/%5B%25IMAGE_PATH%25%5D/g,t)).indexOf("is-section-navbar")){const t=this.wrapperEl.querySelector(".is-section-navbar");if(t)return void this.editor.util.confirm(n("Do you want to replace the current navigation bar?"),(i=>{i&&(t.parentNode.removeChild(t),this.addIdea(e))}),!0,n("Replace"));pb.appendHtml(this.wrapperEl,e,"afterbegin"),i=this.wrapperEl.querySelector(".is-section"),o.push(i)}else if(-1!==e.indexOf("is-static")){let t=pb.getLastElement(this.wrapperEl,".is-section");if(t){pb.appendHtml(t,e,"afterend"),i=t.nextElementSibling,o.push(i);let n=i.nextElementSibling;if(n){let e=n.querySelector(".is-section-tool");e||o.push(n),n=n.nextElementSibling,n&&(e=n.querySelector(".is-section-tool"),e||o.push(n))}}else pb.appendHtml(this.wrapperEl,e,"afterbegin"),i=this.wrapperEl.querySelector(".is-section"),o.push(i)}else if(this.activeSection){let t=this.activeSection;if(pb.hasClass(t,"is-static")){pb.appendHtml(t,e,"beforebegin"),i=t.previousElementSibling,o.push(i);let n=i.previousElementSibling;if(n){let e=n.querySelector(".is-section-tool");e||o.push(n),n=n.previousElementSibling,n&&(e=n.querySelector(".is-section-tool"),e||o.push(n))}}else{pb.appendHtml(t,e,"afterend"),i=t.nextElementSibling,o.push(i);let n=i.nextElementSibling;if(n){let e=n.querySelector(".is-section-tool");e||o.push(n),n=n.nextElementSibling,n&&(e=n.querySelector(".is-section-tool"),e||o.push(n))}}}else{pb.appendHtml(this.wrapperEl,e,"afterbegin"),i=this.wrapperEl.querySelector(".is-section"),o.push(i);let t=i.nextElementSibling;if(t){let e=t.querySelector(".is-section-tool");e||o.push(t),t=t.nextElementSibling,t&&(e=t.querySelector(".is-section-tool"),e||o.push(t))}}let s=i.previousElementSibling;if(s){let e=s.querySelector(".is-section-tool");e||o.push(s),s=s.previousElementSibling,s&&(e=s.querySelector(".is-section-tool"),e||o.push(s))}o.forEach((e=>{if(e.querySelectorAll(".is-overlay-content[data-module]").forEach((e=>{let t=decodeURIComponent(e.getAttribute("data-html"));t=t.replace(/{id}/g,pb.uniqueId()),pb.html(e,t)})),e.querySelectorAll(".is-overlay").forEach((e=>{let t=e.querySelector(".is-overlay-content");t&&""===t.innerHTML&&1===e.childElementCount&&e.parentNode.removeChild(e)})),this.sectionSetup(e),pb.hasClass(e,"is-box"))this.boxSetup(e);else{e.querySelectorAll(".is-box").forEach((e=>{this.boxSetup(e)}))}})),this.editor.applyBehavior(),this.settings.onRender();this.wrapperEl.querySelectorAll(".is-arrow-down a").forEach((e=>{e.addEventListener("click",(t=>{let i=e.parentNode.parentNode;return this.scrollTo(i.nextElementSibling),t.preventDefault(),t.stopImmediatePropagation(),!1}))})),this.onChange(),pb.removeElement(document.querySelector(".is-sidebar-overlay")),pb.removeClass(document.querySelectorAll(".is-sidebar .is-sidebar-button"),"active"),pb.removeClass(document.querySelectorAll(".is-sidebar-content"),"active"),document.body.style.overflowY="",this.addSpace(),this.scrollTo(i,600)}refreshUIStyle(){if(!this.editor)return;if(!this.editor.styleSnippetBackground)return void setTimeout((()=>{this.refreshUIStyle()}),300);document.querySelector("#divSidebarSnippets").style.backgroundColor=this.editor.styleSnippetBackground;document.querySelectorAll(".is-sidebar-content").forEach((e=>{e.style.backgroundColor=this.editor.styleSnippetBackground}));const e=document.querySelector("#divStyles");e.style.backgroundColor=this.editor.styleSnippetBackground,e.style.color=this.editor.styleSnippetColor;const t=document.querySelector(".is-sidebar");t.style.backgroundColor=this.editor.styleModalBackground,t.style.color=this.editor.styleModalColor;t.querySelectorAll("svg").forEach((e=>{e.style.fill=this.editor.styleModalColor}));t.querySelectorAll("button").forEach((e=>{e.style.color=this.editor.styleModalColor}));const i=document.querySelector("#ifrIdeasPanel");i.contentWindow.applyParentStyles&&i.contentWindow.applyParentStyles()}rePositionTool(){let e,t=this.wrapperEl.querySelector(".row-active");e=t?pb.parentsHasClass(t,"is-box"):this.activeBox,this.positionTool(e)}quickPosTool(){let e=this.activeBox;if(!e)return;const t=this.boxTool,i=pb.getElementOffset(e);let n=i.top,o=i.left,s=i.width,a=n+i.height-40,r=o+s/2;t.style.top=a+"px",t.style.left=r-40+"px",t.style.display="flex"}positionTool(e){var t;let i;t=null!==localStorage.getItem("_zoom")?localStorage.getItem("_zoom"):this.settings.zoom;const n=document.querySelector("#divBoxTool");e.closest(".is-section-navbar")?(document.querySelector("#form-upload-cover").style.display="none",document.querySelector("#btnEditBox").style.display="none",document.querySelector("#btnEditModule").style.display="inline-block",n.style.width="40px",i=20):e.querySelectorAll(".is-overlay-content[data-module]").length>0?(document.querySelector("#form-upload-cover").style.display="none",document.querySelector("#btnEditBox").style.display="inline-block",document.querySelector("#btnEditModule").style.display="inline-block",n.style.width="80px",i=40):(document.querySelector("#form-upload-cover").style.display="block",document.querySelector("#btnEditBox").style.display="inline-block",document.querySelector("#btnEditModule").style.display="none",n.style.width="80px",i=40);const o=pb.getElementOffset(e);let s=o.top,a=o.left,r=o.width,l=s+o.height-40,d=a+r/2;n.style.top=l+"px",n.style.left=d-i+"px",n.style.display="flex";let c,u;this.wrapperEl.querySelectorAll(".is-section-tool").forEach((e=>{e.style.display="none"})),pb.hasClass(e,"is-section")?(c=e,u=e.querySelector(".is-section-tool")):(c=pb.parentsHasClass(e,"is-section"),u=c.querySelector(".is-section-tool")),u&&(u.style.display="block",u.style.transform="scale("+1/t+")",u.style.transformOrigin="top right")}addButton(e){if(this.preview)return;const t=this.builderStuff,i=pb.uniqueId(),o=pb.uniqueId();let s;if(e.src){s='<button id="'+i+'" class="is-sidebar-button" data-content="'+o+'" data-src="'+e.src+'" data-title="'+n(e.title)+'" title="'+n(e.title)+'">'+e.html+"</button>";var a='<div id="'+o+'" class="is-sidebar-content '+e.class+'" style="-webkit-transition-duration:0.2s;transition-duration:0.2s;"><div><iframe src="about:blank" style="width:100%;height:100%;box-sizing:border-box;border:none;"></iframe></div></div>';pb.appendHtml(t,a)}else s='<button id="'+i+'" class="is-sidebar-button" data-title="'+n(e.title)+'" title="'+n(e.title)+'">'+e.html+"</button>";t.querySelector(".is-sidebar").children[e.pos].insertAdjacentHTML("afterEnd",s);const r=t.querySelector("#"+i);r.addEventListener("click",(()=>{if(e.src)if(pb.hasClass(r,"active")){const e=t.querySelector(".is-sidebar-overlay");e.parentNode.removeChild(e);let i=t.querySelectorAll(".is-sidebar > div");i.forEach((e=>{pb.removeClass(e,"active")})),i=t.querySelectorAll(".is-sidebar-content"),i.forEach((e=>{pb.removeClass(e,"active")})),document.body.style.overflowY=""}else{pb.removeClass(t.querySelector(".is-sidebar > div"),"active"),pb.removeClass(t.querySelector(".is-sidebar-content"),"active"),document.body.style.overflowY="",pb.addClass(r,"active");var i=r.getAttribute("data-content");pb.addClass(t.querySelector("#"+i),"active");var n=t.querySelector("#"+i+" iframe");"about:blank"==n.getAttribute("src")&&n.setAttribute("src",e.src),pb.appendHtml(t,'<div class="is-sidebar-overlay" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,0.000001);z-index: 1000;;"></div>');const o=t.querySelector(".is-sidebar-overlay");o.addEventListener("click",(()=>{o.parentNode.removeChild(o);let e=t.querySelectorAll(".is-sidebar > div");e.forEach((e=>{pb.removeClass(e,"active")})),e=t.querySelectorAll(".is-sidebar-content"),e.forEach((e=>{pb.removeClass(e,"active")})),document.body.style.overflowY=""}))}else e.onClick()}))}undo(){this.editor.undo()}redo(){this.editor.redo()}saveImages(e,t,i){this.editor.saveImages(e,t,i)}applyLargerImage(e){this.editor.applyLargerImage(e)}returnUrl(e){this.editor.returnUrl(e)}showModal(e){this.editor.util.showModal(e)}hideModal(e){this.editor.util.hideModal(e)}loadStyles(e,t){let i=document.getElementsByTagName("link");for(let e=0;e<i.length;e++)"contentstyle"===i[e].getAttribute("data-name")&&i[e].setAttribute("data-rel","_del"),-1!==i[e].getAttribute("href").indexOf("basetype-")&&i[e].setAttribute("data-rel","_del");document.querySelectorAll('[data-rel="_del"]').forEach((e=>{e.parentNode.removeChild(e)}));let n=document.head;n||(n=document.body),e&&""!==e&&n.insertAdjacentHTML("beforeend",e),t&&""!==t&&n.insertAdjacentHTML("beforeend",t)}loadHtml(e){this.activeBox=null,this.activeSection=null;const t=this.wrapperEl;if(t.style.opacity||(t.style.opacity="0"),!this.editor)return void setTimeout((()=>{this.loadHtml(e)}),100);let i=document.createRange();t.innerHTML="",t.appendChild(i.createContextualFragment(e)),this.pageSetup(),this.pageSetupDone=!0,this.settings.onRender();t.querySelectorAll(".is-arrow-down a").forEach((e=>{e.addEventListener("click",(t=>{let i=e.parentNode.parentNode;return this.scrollTo(i.nextElementSibling),t.preventDefault(),t.stopImmediatePropagation(),!1}))}))}boxImage(e,t){this.editbox.boxImage(e,t)}mainCss(){let e="",t=document.getElementsByTagName("link");for(let i=0;i<t.length;i++){-1!=t[i].href.toLowerCase().indexOf("basetype-")&&(e+=t[i].outerHTML)}return e}sectionCss(){let e="",t=document.getElementsByTagName("link");for(let i=0;i<t.length;i++){let n=t[i].href.toLowerCase();-1!=n.indexOf("basetype-")||-1!=n.indexOf("type-")&&(e+=t[i].outerHTML)}return e}html(e){return this.cleanupUnused(),this.editor.readHtml(this.wrapperEl,e,!0)}viewZoom(){this.editor.viewZoom()}destroy(){document.removeEventListener("click",this.doDocumentClick,!1),window.removeEventListener("scroll",this.doWindowScroll,!1);let e=this.html();this.builderStuff.innerHTML="",pb.removeClass(document.body,"sidebar-active");const t=document.querySelector("#_contentbox_lightbox");t&&t.parentNode.removeChild(t);let i=document.createRange();const n=this.wrapperEl;n.innerHTML="",n.appendChild(i.createContextualFragment(e)),pb.removeClass(n,"is-edit"),this.editor.destroy(),ub.stop()}cleanupUnused(){let e=document.getElementsByTagName("link");for(let t=0;t<e.length;t++){let i=e[t].getAttribute("href");if(-1!==i.indexOf("googleapis")){i=i.replace(/\+/g," ").replace(/%20/g," ");let n=i.substr(i.indexOf("family=")+7);-1!=n.indexOf(":")&&(n=n.split(":")[0]),n=n.toLowerCase();let o=!1;if(this.wrapperEl.innerHTML.toLowerCase().split(n).length>=3&&(o=!0),!o){let i=e[t].getAttribute("data-protect");void 0!==i&&!1!==i||e[t].setAttribute("data-rel","_del")}}}e=document.getElementsByTagName("link");for(let t=0;t<e.length;t++)if("contentstyle"===e[t].getAttribute("data-name")){let i=e[t].getAttribute("data-class");""===i&&e[t].setAttribute("data-rel","_del"),""!==i&&(this.wrapperEl.querySelector("."+i)||e[t].setAttribute("data-rel","_del"))}let t=document.querySelectorAll('[data-rel="_del"]');t.forEach((e=>{e.parentNode.removeChild(e)})),t=document.head.querySelectorAll("link"),t.forEach((e=>{let t=e.getAttribute("href");this.wrapperEl.querySelectorAll("link").forEach((e=>{t===e.getAttribute("href")&&e.setAttribute("data-rel","_del")}))})),t=document.querySelectorAll('[data-rel="_del"]'),t.forEach((e=>{e.parentNode.removeChild(e)}))}}}();
|