@themarioga/grid-editor 7.2.0 → 7.3.0
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.
- package/CHANGELOG.md +41 -0
- package/README.md +83 -14
- package/UPGRADING.md +31 -0
- package/dist/grideditor.bundle.min.js +2 -2
- package/dist/grideditor.css +102 -0
- package/dist/grideditor.d.ts +18 -0
- package/dist/grideditor.esm.js +291 -31
- package/dist/grideditor.js +291 -31
- package/dist/grideditor.min.css +1 -1
- package/dist/grideditor.min.css.map +1 -1
- package/dist/grideditor.min.js +1 -1
- package/dist/grideditor.min.js.map +3 -3
- package/dist/locales/grideditor.es.esm.js +67 -0
- package/dist/locales/grideditor.es.js +67 -0
- package/dist/locales/grideditor.es.min.js +1 -1
- package/dist/locales/grideditor.es.min.js.map +2 -2
- package/dist/plugins/grideditor.float.esm.js +10 -1
- package/dist/plugins/grideditor.float.js +8 -2
- package/dist/plugins/grideditor.float.min.js +1 -1
- package/dist/plugins/grideditor.float.min.js.map +4 -4
- package/dist/plugins/grideditor.spacing.esm.js +12 -3
- package/dist/plugins/grideditor.spacing.js +9 -3
- package/dist/plugins/grideditor.spacing.min.js +1 -1
- package/dist/plugins/grideditor.spacing.min.js.map +4 -4
- package/dist/plugins/grideditor.style.esm.js +1593 -0
- package/dist/plugins/grideditor.style.js +1592 -0
- package/dist/plugins/grideditor.style.min.js +2 -0
- package/dist/plugins/grideditor.style.min.js.map +7 -0
- package/dist/plugins/grideditor.textalign.esm.js +10 -1
- package/dist/plugins/grideditor.textalign.js +8 -2
- package/dist/plugins/grideditor.textalign.min.js +1 -1
- package/dist/plugins/grideditor.textalign.min.js.map +4 -4
- package/dist/plugins/grideditor.visibility.esm.js +12 -3
- package/dist/plugins/grideditor.visibility.js +9 -3
- package/dist/plugins/grideditor.visibility.min.js +1 -1
- package/dist/plugins/grideditor.visibility.min.js.map +4 -4
- package/docs/locale-keys.md +86 -7
- package/docs/plugins.md +49 -5
- package/example/index.html +14 -0
- package/example/style.html +151 -0
- package/example/utilities.html +15 -11
- package/package.json +1 -1
- package/src/js/grideditor.js +365 -27
- package/src/js/locales/grideditor.es.js +67 -0
- package/src/js/plugins/grideditor.float.js +8 -33
- package/src/js/plugins/grideditor.spacing.js +8 -273
- package/src/js/plugins/grideditor.style.js +179 -0
- package/src/js/plugins/grideditor.textalign.js +8 -39
- package/src/js/plugins/grideditor.visibility.js +8 -147
- package/src/js/style/accordion.js +157 -0
- package/src/js/style/catalog.js +76 -0
- package/src/js/style/custom.js +84 -0
- package/src/js/style/fields.js +382 -0
- package/src/js/style/float.js +46 -0
- package/src/js/style/options.js +75 -0
- package/src/js/style/sections.js +271 -0
- package/src/js/style/spacing.js +286 -0
- package/src/js/style/textalign.js +52 -0
- package/src/js/style/visibility.js +160 -0
- package/src/less/grideditor.less +111 -0
- package/types/grideditor.d.ts +18 -0
package/dist/grideditor.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{function _(i,s){return i?Array.prototype.slice.call(i.querySelectorAll(s)):[]}function z(i,s){return i?i.querySelector(s):null}function we(i,s){if(!i)return[];var f=_(i,s);return i.nodeType===1&&i.matches(s)&&f.unshift(i),f}function G(i,s){return i?Array.prototype.filter.call(i.children,function(f){return!s||f.matches(s)}):[]}function T(i,s){return G(i,s)[0]||null}function oe(i,s,f){var l=i&&i.nodeType===1?i.closest(s):null;return l&&f&&l!==f&&!f.contains(l)?null:l}function Me(i,s){return!!i&&i.nodeType===1&&i.matches(s)}function ct(i){return!!i&&document.documentElement.contains(i)}function Er(i,s){for(var f=[],l=i.nextElementSibling;l;l=l.nextElementSibling)(!s||l.matches(s))&&f.push(l);return f}function xr(i,s){for(var f=[],l=i.parentElement;l&&l!==s;l=l.parentElement)f.push(l);return f}function Ei(i){var s=document.createElement("template");return s.innerHTML=i,Array.prototype.slice.call(s.content.childNodes)}function q(i){for(var s=Ei(i.trim()),f=0;f<s.length;f++)if(s[f].nodeType===1)return s[f];return null}function v(i,s,f){var l=document.createElement(i);return Object.keys(s||{}).forEach(function(d){var E=s[d];E!=null&&E!==!1&&l.setAttribute(d,E)}),f!=null&&(l.textContent=f),l}function ft(i,s){return i.innerHTML=s==null?"":String(s),i}function k(i,s){return ze(s).forEach(function(f){i.classList.add(f)}),i}function O(i,s){return ze(s).forEach(function(f){i.classList.remove(f)}),i}function I(i,s,f){return ze(s).forEach(function(l){f===void 0?i.classList.toggle(l):i.classList.toggle(l,!!f)}),i}function y(i,s){return!!i&&i.nodeType===1&&i.classList.contains(s)}function ze(i){return String(i||"").split(/\s+/).filter(Boolean)}function mt(i){return i.getAttribute("class")||i.removeAttribute("class"),i}function pt(i){return i.getAttribute("style")||i.removeAttribute("style"),i}function gt(i,s){return Object.keys(s).forEach(function(f){var l=s[f];l==null?i.removeAttribute(f):i.setAttribute(f,l)}),i}function me(i,s){return Object.keys(s).forEach(function(f){var l=s[f];typeof l=="number"&&!xi[f]&&(l=l+"px"),i.style.setProperty(f,l==null?"":String(l))}),i}var xi={opacity:!0,"z-index":!0,"flex-grow":!0,"flex-shrink":!0,order:!0},qe={};function _i(i){var s=i.nodeName;if(!qe[s]){var f=document.body.appendChild(document.createElement(s));qe[s]=getComputedStyle(f).display,f.remove(),qe[s]==="none"&&(qe[s]="block")}return qe[s]}function Pe(i){return i.style.removeProperty("display"),getComputedStyle(i).display==="none"&&(i.style.display=_i(i)),i}function ye(i){return i.style.display="none",i}function ln(i,s){return s===void 0&&(s=!vt(i)),s?Pe(i):ye(i)}function vt(i){return!!(i.offsetWidth||i.offsetHeight||i.getClientRects().length)}function Xe(i){return i.getBoundingClientRect().width}function ht(i){return i.getBoundingClientRect().height}function _r(i){var s=getComputedStyle(i);return i.clientHeight-parseFloat(s.paddingTop)-parseFloat(s.paddingBottom)}function bt(i){var s=i.getBoundingClientRect();return{top:s.top+window.pageYOffset,left:s.left+window.pageXOffset}}function wt(i,s){return s.parentNode.insertBefore(i,s.nextSibling),i}function yt(i){for(var s=i.parentNode;i.firstChild;)s.insertBefore(i.firstChild,i);i.remove()}function kr(i,s){return i.parentNode.insertBefore(s,i),s.appendChild(i),s}function Ye(i,s,f,l,d){var E=function(b){var j=oe(b.target,f,i);if(j&&i.contains(j))return l.call(j,b)};return ze(s).forEach(function(b){i.addEventListener(b,E,d)}),E}function Q(i,s,f,l){return ze(s).forEach(function(d){i.addEventListener(d,f,l)}),f}function sn(i,s,f,l){ze(s).forEach(function(d){i.removeEventListener(d,f,l)})}var ki=400;function Ar(i,s,f,l){f=f===void 0?ki:f;var d=function(){ye(i),l&&l()};if(!vt(i)||!i.animate||f<=0){window.setTimeout(d,0);return}var E=i.animate(s(getComputedStyle(i)),{duration:f,easing:"ease-in-out"}),b=!1,j=function(){b||(b=!0,d())};E.onfinish=j,E.oncancel=j}function Je(i,s,f){typeof s=="function"&&(f=s,s=void 0),i.style.overflow="hidden",Ar(i,function(l){return[{height:l.height,paddingTop:l.paddingTop,paddingBottom:l.paddingBottom,marginTop:l.marginTop,marginBottom:l.marginBottom},{height:"0px",paddingTop:"0px",paddingBottom:"0px",marginTop:"0px",marginBottom:"0px"}]},s,function(){i.style.removeProperty("overflow"),f&&f()})}function Sr(i,s,f,l){i.style.overflow="hidden",Ar(i,function(d){var E={opacity:d.opacity,height:d.height},b={opacity:0,height:"0px"};return l&&(E.width=d.width,b.width="0px"),[E,b]},s,function(){i.style.removeProperty("overflow"),f&&f()})}var Tr={getHtml:{value:!0},getPlainHtml:{value:!0},init:{},deinit:{},reset:{},destroy:{},changeView:{},getView:{value:!0},createRow:{value:!0},createColumn:{value:!0},createElement:{value:!0},createText:{value:!0},createSection:{value:!0},createContainer:{value:!0},addTab:{value:!0},addAccordionItem:{value:!0},setLocale:{},getUtility:{value:!0},setUtility:{value:!0}},Si=["appendTo","prependTo","insertAfter","insertBefore"],h=[{key:"xs",infix:"",colPrefix:"col-",offsetPrefix:"offset-",min:0,preview:400,labelKey:"view.xs"},{key:"sm",infix:"sm",colPrefix:"col-sm-",offsetPrefix:"offset-sm-",min:576,preview:576,labelKey:"view.sm"},{key:"md",infix:"md",colPrefix:"col-md-",offsetPrefix:"offset-md-",min:768,preview:768,labelKey:"view.md"},{key:"lg",infix:"lg",colPrefix:"col-lg-",offsetPrefix:"offset-lg-",min:992,preview:992,labelKey:"view.lg"},{key:"xl",infix:"xl",colPrefix:"col-xl-",offsetPrefix:"offset-xl-",min:1200,preview:1200,labelKey:"view.xl"},{key:"xxl",infix:"xxl",colPrefix:"col-xxl-",offsetPrefix:"offset-xxl-",min:1400,preview:null,labelKey:"view.xxl"}],W="all",Ti="view.all",Ct=[W].concat(h.map(function(i){return i.key})),Or=["lg","sm","xs"],P=12,Lr=11,un=["equal","auto"],je=["1","2","3","4","5","6","auto"];function dn(i,s){return"row-cols"+(i.infix?"-"+i.infix:"")+"-"+s}function F(i){return typeof i=="number"}function Ce(i,s){return s==="equal"?i.infix?"col-"+i.infix:"col":i.colPrefix+s}function K(i){for(var s=0;s<h.length;s++)if(h[s].key===i)return h[s];return null}function Mr(i){if(i===W)return[h[0]];var s=K(i);return s?[s]:[]}function $e(i){var s=K(i);return s?s.labelKey:Ti}var Ie={add_column:{size:12,picker:!0,delay:600},elements:{enabled:"auto",selector:"[data-ge-element]",auto:!1},resize:{enabled:!0,handles:"e",balance:"next"},drag:{delay:0,touch_delay:100,threshold:3,animation:150,scroll:!0}},zr={sortable_options:"drag",resizable_options:"resize"},Pr={},Oi=0,xt=new WeakMap;function _t(i,s,f){var l=C.locales,d=l[i.locale]||{},E=i.locale_strings||{},b=E[s];return b===void 0&&(b=d[s]),b===void 0&&(b=l.en[s]),b===void 0&&(Li("locale:"+s,'no string for "'+s+'" in any locale, showing the key'),b=s),b.replace(/\{(\w+)\}/g,function(j,ge){return f&&f[ge]!==void 0?f[ge]:j})}function N(i){window.console&&window.console.warn&&window.console.warn("grid-editor: "+i)}function Li(i,s){Pr[i]||(Pr[i]=!0,N(s))}function Mi(i,s){return _t({locale:"en"},i,s)}function zi(i){if(typeof i=="string"){var s=document.querySelector(i);if(!s)throw new TypeError("grid-editor: no element matches "+JSON.stringify(i));return s}if(i&&i.nodeType===1)return i;throw new TypeError("grid-editor: the target is an element or a selector, not "+(i===null?"null":typeof i))}function pe(i){return typeof i=="string"?document.querySelector(i):i&&i.nodeType===1?i:null}function jr(){return C.Sortable||window.Sortable||null}function Et(){var i=C.bootstrap||window.bootstrap;return i&&i.Modal?i.Modal:null}function cn(i){var s=document.implementation.createHTMLDocument("").body;s.innerHTML=i;var f=[];return _(s,"*").forEach(function(l){var d=!1;Array.prototype.slice.call(l.attributes).forEach(function(j){j.name.indexOf("data-ge-")===0&&(l.removeAttribute(j.name),d=!0)});var E=(l.getAttribute("class")||"").split(/\s+/).filter(Boolean),b=E.filter(function(j){return j!=="column"&&j.indexOf("ge-")!==0});b.length!==E.length&&(d=!0),b.length?l.setAttribute("class",b.join(" ")):l.removeAttribute("class"),d&&l.tagName==="DIV"&&!l.attributes.length&&f.push(l)}),f.forEach(function(l){yt(l)}),s.innerHTML}function C(i,s){var f=zi(i),l=xt.get(f);if(l)return Ir.has(f)||(Ir.add(f),N(Mi("warning.already_editing"))),l;if(!(this instanceof C))return new C(f,s);Pi(this,f,s||{})}var Ir=new WeakSet;C.create=function(i,s){return new C(i,s)};C.get=function(i){var s=pe(i);return s&&xt.get(s)||null};function Pi(i,s,f){var l=Object.assign({new_row_layouts:[[12],[6,6],[4,4,4],[3,3,3,3],[2,2,2,2,2,2],[2,8,2],[4,8],[8,4]],row_classes:[],col_classes:[],col_tools:[],row_tools:[],drag_handle:"tool",toolbar_drag:"auto",element_tools:[],element_classes:[],container_classes:[],pane_classes:[],container_tools:[],tab_tools:[],accordion_tools:[],plugins:null,row_cols:!0,utilities:{},elements:Ie.elements,custom_filter:"",valid_col_sizes:[1,2,3,4,5,6,7,8,9,10,11,12,"equal","auto"],valid_col_offsets:[0,1,2,3,4,5,6,7,8,9,10,11],add_column:Ie.add_column,layout_modes:Ct.slice(),default_view:W,resize:Ie.resize,source_textarea:"",edit_source:!0,locale:"en",locale_strings:{},callbacks:{},confirm_delete:!0,settings_panel:"offcanvas",drag:Ie.drag},f);Object.keys(Ie).forEach(function(e){l[e]=Object.assign({},Ie[e],l[e])}),Object.keys(zr).forEach(function(e){f&&f[e]!==void 0&&N(_t(l,"warning.setting_removed",{setting:e,replacement:zr[e]}))});var d,E,b,j,ge,Ee,B,A=l.default_view,R=null,X=null,xe=!1,_e=null,fn={},kt=[],Nr=++Oi,mn=!1,pn=new WeakMap,At=new WeakMap,Qe=new WeakMap,gn=new WeakMap,St=new WeakSet,vn=new AbortController;d=k(s,"ge-canvas");function J(e,t){fn[e]||(fn[e]=!0,N(t))}function p(e,t){return _t(l,e,t)}function Rr(e){l.locale=e,i.settings=nn(),hn(),tr(),E.remove(),xn(),zn()}var Ne=0,Tt=[];function Y(e,t,n){return Object.assign({kind:e,node:t,parent:t.parentElement,canvas:d,breakpoint:an(),source:"api"},n||{})}function L(e,t){var n=[e],r=e.replace(/^(before|after)-add-.+$/,"$1-add");r!==e&&n.push(r);var o=!1;return n.forEach(function(a){var u=new CustomEvent("grideditor:"+a,{detail:t,bubbles:!0,cancelable:!0});d.dispatchEvent(u)||(o=!0)}),n.forEach(function(a){var u=l.callbacks[a.replace(/-/g,"_")];typeof u=="function"&&u(t)===!1&&(o=!0)}),!o}function H(e){Ne++;try{return e()}finally{if(Ne--,Ne===0)for(;Tt.length;)Tt.shift()()}}function Ot(e){if(Ne===0){e();return}Tt.push(e)}function $(e,t,n,r){var o=Dr(e);return H(function(){var a=Y(e,t,r);return L("before-add-"+o,a)?(n(),le(),L("after-add-"+o,a),t):null})}function Dr(e){return C.containers[e]?"container":e}function Ur(e,t){if(!l.confirm_delete){t();return}var n=Et();if(!n){window.confirm(e)&&t();return}var r=Fr(),o=!1;z(r,".ge-confirm-message").textContent=e,z(r,".ge-confirm-ok").onclick=function(){o=!0,n.getInstance(r).hide()},ie.hidden=function(){o&&t()},ie.shown=function(){z(r,".ge-confirm-ok").focus()},n.getOrCreateInstance(r).show()}var ie={hidden:null,shown:null};function Fr(){return R||(R=q('<div class="modal fade ge-confirm" tabindex="-1" aria-hidden="true"><div class="modal-dialog modal-dialog-centered"><div class="modal-content"><div class="modal-header"><h5 class="modal-title"></h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div><div class="modal-body"><p class="ge-confirm-message"></p></div><div class="modal-footer"><button type="button" class="btn btn-secondary ge-confirm-cancel" data-bs-dismiss="modal"></button><button type="button" class="btn btn-danger ge-confirm-ok"></button></div></div></div></div>'),document.body.appendChild(R),z(R,".modal-title").textContent=p("confirm.title"),z(R,".btn-close").setAttribute("aria-label",p("confirm.cancel")),z(R,".ge-confirm-cancel").textContent=p("confirm.cancel"),z(R,".ge-confirm-ok").textContent=p("confirm.ok"),wn(R),R.addEventListener("hidden.bs.modal",function(){ie.hidden&&ie.hidden()}),R.addEventListener("shown.bs.modal",function(){ie.shown&&ie.shown()}),R)}function hn(){R&&(ie.hidden=null,ie.shown=null,bn(R),R=null)}function bn(e){var t=Et(),n=t?t.getInstance(e):null,r=!1,o=function(){r||(r=!0,n&&n.dispose(),e.remove())};if(!n||!Lt.get(e)&&!y(e,"show")){o();return}e.addEventListener("hidden.bs.modal",o,{once:!0}),e.addEventListener("shown.bs.modal",function(){n.hide()},{once:!0}),n.hide()}var Lt=new WeakMap;function wn(e){Q(e,"show.bs.modal hide.bs.modal",function(){Lt.set(e,!0)}),Q(e,"shown.bs.modal hidden.bs.modal",function(){Lt.set(e,!1)})}function ve(e,t,n,r){H(function(){var o=Y(e,t,{source:"tool"});L("before-delete",o)&&Ur(n,function(){H(function(){r(function(){t.remove(),H(function(){le(),L("after-delete",o)})})})})})}function Mt(e,t,n){if(n=n||A,n!==W){var r=K(n),o=st({size:t,offset:at(e,r)||0});return o.refused||Te(e,r)===o.size?null:{writes:[{tier:r,size:o.size}],cleared:null,size:o.size}}var a=h.some(function(g){return st({size:t,offset:at(e,g)||0}).refused});if(a)return null;var u=h[0],c=[],m=[];return h.slice(1).forEach(function(g){var w=Te(e,g);w!==null&&(c.push({tier:g,size:null}),m.push({breakpoint:g.key,value:w}))}),Te(e,u)!==t&&c.unshift({tier:u,size:t}),c.length?{writes:c,cleared:m,size:t}:null}function zt(e,t){t.writes.forEach(function(n){lt(e,n.tier,n.size)}),Ge(e)}function Pt(e,t){return t&&(e.cleared=t),e}function jt(e,t,n,r){r=r||A;var o=Fe(e),a=Mt(e,t,r);return a?H(function(){var u=Y("column",e,Pt({source:n,breakpoint:r,from:o,to:a.size},a.cleared));return L("before-resize",u)?(zt(e,a),ee(e),L("after-resize",u),!0):(ee(e),!1)}):!1}function yn(e,t,n){var r=A===W,o=r?h[0]:K(A),a=We(e);t=Math.min(Math.max(t,0),Lr);var u=r?h.slice(1).filter(function(c){return it(e,c)!==null}):[];return(it(e,o)||0)===t&&!u.length?!1:H(function(){var c=Y("column",e,Pt({source:n,from:a,to:t},r?u.map(function(m){return{breakpoint:m.key,value:it(e,m)}}):null));return L("before-indent",c)?(Jt(e,o,t),u.forEach(function(m){Jt(e,m,0)}),(r?h:[o]).forEach(function(m){var g=Yt(e,m);if(F(g)){var w=st({size:g,offset:t,leading:"offset"});w.size!==g&<(e,m,w.size)}}),ee(e),L("after-indent",c),!0):!1})}function It(e){var t=e.parentElement;return{parent:t,index:G(t).filter(function(n){return!y(n,"ge-tools-drawer")}).indexOf(e)}}function ae(e){var t=null;return Object.keys(S).forEach(function(n){var r=S[n];!t&&r.kindOf&&(t=r.kindOf(e))}),t||(e.getAttribute("data-ge-container")?e.getAttribute("data-ge-container"):y(e,"ge-tab")?"tab":y(e,"ge-accordion-item")?"accordion-item":y(e,"row")?"row":y(e,"column")?"column":y(e,"ge-element")?"element":(y(e,"ge-text-block")&&(e=T(e,".ge-content")||e),y(e,"ge-content")?e.getAttribute("data-ge-content-type")?"text":"plain":"node"))}if(l.source_textarea){var Re=pe(l.source_textarea).value,Cn=v("div");Cn.innerHTML=Re,Re.length>0&&!Cn.querySelector(".row")&&(Re='<div class="row"><div class="col-lg-12">'+Re+"</div></div>"),ft(s,Re)}if(s.children.length&&!s.querySelector("div.row")){var Hr=G(s),En=q('<div class="row"><div class="col-lg-12"></div></div>');s.appendChild(En),Hr.forEach(function(e){En.firstChild.appendChild(e)})}function Wr(){B=v("textarea",{class:"ge-html-output"}),d.parentNode.insertBefore(B,d),xn();var e={signal:vn.signal};window.addEventListener("scroll",eo,e),Ye(d,"click",".ge-content",to,e),Ye(d,"click",".ge-popup-trigger, [data-ge-popup-target]",function(t){y(d,"ge-editing")&&t.preventDefault()},e)}function Kr(e){!Me(e,".ge-content")||!d.contains(e)||(Z("onContentReady",e),tt(e))}function xn(){E=v("div",{class:"ge-mainControls"}),B.parentNode.insertBefore(E,B),b=E.appendChild(v("div",{class:"ge-wrapper ge-top"})),j=b.appendChild(v("div",{class:"ge-addRowGroup btn-group"})),ge=v("div",{class:"ge-addContainerGroup btn-group ms-1"}),l.new_row_layouts.forEach(function(u){var c=!Array.isArray(u),m=v("a",{class:"btn btn-sm btn-primary",title:c?p("row.add_row_cols",{columns:u.columns,counts:Qr(u.row_cols)}):p("row.add",{layout:u.join("-")}),"data-ge-toolbar":"row","data-ge-layout":c?JSON.stringify(u):u.join(",")});m.addEventListener("click",function(){var x=De(u),be=$("row",x,function(){d.appendChild(x)},{parent:d,source:"tool"});be&&x.scrollIntoView&&x.scrollIntoView({behavior:"smooth"})}),j.appendChild(m),m.appendChild(q('<i class="bi bi-plus"></i>'));var g=c?Zr(u):u,w='<div class="row ge-row-icon">';g.forEach(function(x){w+='<div class="column '+Ce(h[0],x)+'"></div>'}),w+="</div>",m.appendChild(q(w))}),b.appendChild(ge),Object.keys(D).forEach(function(u){var c=D[u],m=_n(v("a",{class:"btn btn-sm btn-primary ge-add-container"}),p(c.labelKey),c.iconClass);gt(m,{"data-ge-toolbar":"container","data-ge-container-type":u}),m.addEventListener("click",function(){var g=Oe(),w=g.appendChild(fe(P)),x=w.appendChild(c.create({}));$(u,x,function(){d.appendChild(g)},{parent:d,source:"tool"})}),ge.appendChild(m)});var e=[];Object.keys(S).forEach(function(u){(S[u].toolbar||[]).forEach(function(c,m){var g=Br(u,c,m);c.align==="end"?e.push(g):ge.appendChild(g)})}),Ee=q('<div class="dropdown pull-right ge-layout-mode"><button type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown"></button><div class="dropdown-menu" role="menu"></div></div>'),Ye(Ee,"click","a",function(){wr(this.getAttribute("data-ge-view"))}),b.appendChild(Ee),l.layout_modes.forEach(function(u){z(Ee,".dropdown-menu").appendChild(v("a",{class:"dropdown-item","data-ge-view":u,title:p($e(u))},p($e(u))))}),z(Ee,"button").textContent=p($e(A));var t=b.appendChild(v("div",{class:"btn-group pull-right"}));if(l.edit_source){var n=q('<button type="button" class="btn btn-sm btn-primary gm-edit-mode"><i class="bi bi-code-slash"></i></button>');n.setAttribute("title",p("tool.edit_source")),I(n,"active btn-danger",xe),n.addEventListener("click",function(){xe?Pn():oo(),I(n,"active btn-danger",xe)}),t.appendChild(n)}var r=q('<button type="button" class="btn btn-sm btn-primary gm-preview"><i class="bi bi-eye-fill"></i></button>'),o=function(){y(r,"active")||k(d,"ge-editing")};if(r.setAttribute("title",p("tool.preview")),r.addEventListener("mouseenter",function(){O(d,"ge-editing")}),r.addEventListener("click",function(){I(r,"active btn-danger"),o()}),r.addEventListener("mouseleave",o),t.appendChild(r),e.length){var a=b.appendChild(v("div",{class:"pull-right ge-toolbar-end"}));e.forEach(function(u){a.appendChild(u)})}Gr()}function _n(e,t,n){return e.setAttribute("title",t),n?(e.appendChild(v("i",{class:n})),e):(e.appendChild(q('<i class="bi bi-plus"></i>')),e.appendChild(v("span",{},t)),e)}function Br(e,t,n){var r=t.iconClass||(t.align==="end"?"bi bi-plus":null),o=typeof t.label=="function"?t.label():t.label||p(t.labelKey),a=_n(v("a",{class:"btn btn-sm btn-primary ge-add-container ge-add-feature"}),o,r);return k(a,t.className||""),gt(a,{"data-ge-toolbar":"feature","data-ge-feature":e,"data-ge-item":n}),a.addEventListener("click",function(){var u=t.create(),c=t.inColumn?Nt(u):u,m=$(t.kind,u,function(){d.appendChild(c)},{parent:d,source:t.source||"tool"});m&&t.inColumn&&c.scrollIntoView&&c.scrollIntoView({behavior:"smooth"})}),a}function Vr(){return l.toolbar_drag==="auto"?l.drag_handle==="drawer":!!l.toolbar_drag}function Gr(){var e=_(E,"[data-ge-toolbar]");e.forEach(function(t){O(t,"ge-palette-button"),t.removeEventListener("pointerdown",kn)}),Vr()&&e.forEach(function(t){k(t,"ge-palette-button"),t.addEventListener("pointerdown",kn)})}function kn(e){var t=e.currentTarget,n=e.pageX,r=e.pageY,o=null;if(e.button)return;function a(m){return Math.abs(m.pageX-n)+Math.abs(m.pageY-r)>l.drag.threshold}function u(m){if(!o){if(!a(m))return;o=k(t.cloneNode(!0),"ge-toolbar-helper"),document.body.appendChild(o),k(d,"ge-dropping")}me(o,{left:m.pageX-14,top:m.pageY-14}),Xr(m.pageX,m.pageY)}function c(m){if(document.removeEventListener("pointermove",u),sn(document,"pointerup pointercancel",c),!!o){o.remove(),O(d,"ge-dropping"),Rt();var g=function(x){x.target!==t&&!t.contains(x.target)||(x.preventDefault(),x.stopImmediatePropagation())};window.addEventListener("click",g,{capture:!0,once:!0}),window.setTimeout(function(){window.removeEventListener("click",g,{capture:!0})},0);var w=An(m.pageX,m.pageY);w&&Yr(t,w)}}document.addEventListener("pointermove",u),Q(document,"pointerup pointercancel",c)}function An(e,t){var n=e-window.scrollX,r=t-window.scrollY,o=document.elementFromPoint(n,r);if(!o)return null;var a=oe(o,[".column",".ge-canvas"].concat(Zt("regions")).join(", "));if(!a||a!==d&&!d.contains(a))return null;var u=null;return G(a,Qt()).forEach(function(c){if(!u){var m=c.getBoundingClientRect();r<m.top+m.height/2&&(u=c)}}),{region:a,before:u}}function qr(e,t){var n=S[e.getAttribute("data-ge-feature")].toolbar[parseInt(e.getAttribute("data-ge-item"),10)],r=n.create(),o=r;if(n.inColumn)Me(t.region,".column")||(o=Nt(r));else if(!en(t.region,r)){var a=t.region===d?[]:xr(t.region,d).reverse().concat([t.region]),u=a[0]||null;t={region:d,before:u?u.nextElementSibling:null}}return $(n.kind,r,function(){t.before?t.before.parentNode.insertBefore(o,t.before):t.region.appendChild(o)},{parent:t.region,source:n.source||"dragdrop"})}function Nt(e){var t=Oe();return t.appendChild(fe(P)).appendChild(e),t}function Xr(e,t){var n=An(e,t);if(!n)return Rt();_e||(_e=v("div",{class:"ge-drop-marker"})),n.before?n.before.parentNode.insertBefore(_e,n.before):n.region.appendChild(_e)}function Rt(){_e&&_e.remove()}function Yr(e,t){if(e.getAttribute("data-ge-toolbar")==="feature")return qr(e,t);var n=e.getAttribute("data-ge-toolbar")==="container",r=e.getAttribute("data-ge-container-type"),o=n?D[r].create({}):$r(e.getAttribute("data-ge-layout")),a=o;return n&&!Me(t.region,".column")&&(a=Nt(o)),$(n?r:"row",o,function(){t.before?t.before.parentNode.insertBefore(a,t.before):t.region.appendChild(a)},{parent:t.region,source:"dragdrop"})}function Jr(){for(var e=[],t=1;t<=P;t++)e.push(String(t));return{name:"col",values:e.concat(un),appliesTo:["column"],labelKey:"utility.col_width",className:function(n,r){return Ce(K(n),Dt(r))},choices:function(){return l.valid_col_sizes.map(String)},label:function(n){return n==="equal"?p("utility.col_equal"):n==="auto"?p("utility.col_auto"):n},write:function(n,r,o,a){return jt(n,r===null?null:Dt(r),a,o)},blank:function(n,r){var o=r===W?null:ot(n,K(r));return o?p("utility.col_from_row",{count:ar(o.value)}):null}}}function Dt(e){return/^\d+$/.test(String(e))?parseInt(e,10):e}function $r(e){return/^\s*\{/.test(e||"")?De(JSON.parse(e)):De((e||"").split(",").filter(function(t){return t!==""}).map(Dt))}function De(e){var t=Oe();if(Array.isArray(e))return e.forEach(function(r){t.appendChild(fe(r))}),t;Object.keys(e.row_cols||{}).forEach(function(r){var o=e.row_cols[r],a=K(r);a&&je.indexOf(String(o))!==-1&&k(t,dn(a,o))});for(var n=0;n<(e.columns||0);n++)t.appendChild(fe(null));return t}function Qr(e){return h.filter(function(t){return e&&e[t.key]!==void 0}).map(function(t){return(t.infix?t.key+": ":"")+e[t.key]}).join(", ")}function Zr(e){var t=1;return Object.keys(e.row_cols||{}).forEach(function(n){var r=e.row_cols[n];r!=="auto"&&(t=Math.max(t,parseInt(r,10)||1))}),Array.apply(null,Array(Math.min(t,e.columns||t))).map(function(){return"equal"})}function eo(){var e=window.pageYOffset;e>bt(E).top&&e<bt(d).top+_r(d)?y(b,"ge-top")&&(me(b,{left:bt(b).left,width:Xe(b)}),O(b,"ge-top"),k(b,"ge-fixed")):y(b,"ge-fixed")&&(me(b,{left:"",width:""}),O(b,"ge-fixed"),k(b,"ge-top"))}function to(){var e=this;if(!e.getAttribute("data-ge-content-type")&&!te()&&vt(e)){var t=Mn();t.length&&(t.length===1?Sn(e,t[0]):no(e,t))}}function Sn(e,t){return t.available&&!t.available()?(t.missingKey&&console.error(p(t.missingKey)),!1):H(function(){var n=Y("plain",e,{source:"tool",from:"plain",to:t.type});if(!L("before-convert",n))return!1;k(e,"ge-content-type-"+t.type),e.setAttribute("data-ge-content-type",t.type);var r=e.parentElement;return y(r,"ge-text-block")&&(O(r,"ge-plain-block"),G(r,".ge-tools-drawer").forEach(function(o){o.remove()})),L("after-convert",n),t.edit(e),!0})}function no(e,t){var n=y(e.parentElement,"ge-text-block")?e.parentElement:null;n&&Tn(T(n,".ge-tools-drawer"),t.map(function(r){return{label:r.label,title:p("tool.convert_type",{editor:r.label}),attributes:{"data-ge-content-type":r.type},choose:function(){Sn(e,r)}}}),"ge-text-picker ge-convert-picker",n)}function Tn(e,t,n,r){if(te(),!!e){var o=oe(e,".ge-tools-drawer");o&&k(o,"ge-picker-open"),X=e.appendChild(k(v("div",{class:"ge-size-picker"}),n||"")),t.forEach(function(a){var u=gt(v("a",{class:"ge-size ge-size-flex"}),a.attributes||{});u.setAttribute("title",a.title||a.label),u.textContent=a.label,u.addEventListener("click",function(c){c.preventDefault(),c.stopPropagation(),te(),a.choose()}),X.appendChild(u)}),On(r||e)}}function On(e){e.addEventListener("mouseleave",function(){window.setTimeout(function(){X&&!X.matches(":hover")&&te()},400)},{once:!0})}function Ln(){var e={},t=[];return Object.keys(S).forEach(function(n){var r=S[n];r.textTypes&&(r.textTypes()||[]).forEach(function(o){if(e[o.type]){e[o.type]!==n&&J("text-type:"+o.type,'the "'+n+'" plugin declares the text type "'+o.type+'", which the "'+e[o.type]+'" plugin already declares: ignored');return}e[o.type]=n,t.push(o)})}),t}function Mn(){return Ln().filter(function(e){return e.offered!==!1})}function ro(e){return Ln().some(function(t){return t.type===e})}function zn(){ke(),le()}function oo(){ke(),B.style.height=.8*document.documentElement.clientHeight+"px",B.value=d.innerHTML,Pe(B),ye(d),xe=!0,Z("onSourceOpen",B)}function Pn(){Z("onSourceClose",B),xe=!1,ft(d,B.value),Pe(d),le(),ye(B)}function le(){U&&!ct(U.node)&&ne(),vr(!0),k(d,"ge-editing"),I(d,"ge-drag-drawer",l.drag_handle==="drawer"),Bo();var e=mi();pi(e),vi(e),hi(),zo(),Po(),Eo(),Z("onInit"),$o(),ti(),br(A),tt(d)}function ke(){ne(),O(d,"ge-editing ge-drag-drawer ge-dropping"),Z("onBeforeDeinit"),te(),Rt(),_(d,".ge-tools-drawer").forEach(function(e){e.remove()}),bi(),Z("onDeinit"),Wn(d),_(d,"[data-ge-row-cols]").forEach(function(e){e.removeAttribute("data-ge-row-cols")}),xo(),ui(),oi(),vr(!1)}function jn(){ke(),Ge(d);var e=d.innerHTML;return le(),e}function io(e){ke(),Ge(e);var t=e.outerHTML;return le(),t}function ao(){return cn(jn())}function lo(){xe&&Pn(),ke(),hn(),tr(),E.remove(),B.remove(),vn.abort(),xt.delete(d),mn=!0}function so(){var e=uo();Ft("grid",{},Jr()),l.row_cols!==!1&&Ft("grid",{},Xo());var t=function(r){return!l.plugins||l.plugins.indexOf(r)!==-1},n=function(r,o){return o.always===!0||t(r)};Object.keys(C.containers).forEach(function(r){t(r)&&(D[r]=C.containers[r](e))}),Object.keys(C.features).forEach(function(r){var o=C.features[r];n(r,o)&&(S[r]=o(e))}),Object.keys(C.utilities).forEach(function(r){t(r)&&(V[r]=C.utilities[r](e),(V[r].families||[]).forEach(function(o){Ft(r,V[r],o)}))}),Object.keys(S).forEach(function(r){var o=S[r].methods||{};Object.keys(o).forEach(function(a){Ue[a]=o[a]})}),(l.plugins||[]).forEach(function(r){D[r]||S[r]||V[r]||J("plugin:"+r,'the "'+r+'" plugin is not loaded: include dist/plugins/grideditor.'+r+".js after the editor")})}function Z(e,t){[D,S,V].forEach(function(n){Object.keys(n).forEach(function(r){n[r][e]&&n[r][e](t)})})}function uo(){return{canvas:d,settings:l,t:p,warn:N,containerId:yo,defaultRegion:Co,createTool:M,createMoveTool:he,addSettingsTool:Be,deleteNode:ve,place:dt,createPaneControls:ko,makeLabelEditable:Ao,labelIn:So,unwrapLabels:To,suspendToggles:qn,resumeToggles:Xn,emit:L,payloadFor:Y,operate:H,kindOf:ae,view:an,viewTiers:function(){return Mr(A).map(function(e){return e.key})},breakpoints:h.map(function(e){return e.key}),getUtility:Hn,setUtility:Kt,utilityField:wo,bareStyle:po,rowFromLayout:De,nodeHtml:io,textReady:Kr,attachPicker:Jn,openPicker:Tn,closePicker:te,detailsOf:Zn,drawerOf:co,toolbarItems:function(e){return E?_(E,'[data-ge-toolbar="feature"][data-ge-feature="'+e+'"]'):[]}}}function co(e){if(y(e,"ge-content")){var t=e.parentElement;return y(t,"ge-text-block")?T(t,".ge-tools-drawer"):null}return T(e,".ge-tools-drawer")}var se={},fo=".row, .column, .ge-content, .ge-element, [data-ge-container]",Ze="data-ge-preview",Ut=!1;function Ft(e,t,n){var r=n.name||n.prefix;if(se[r]){N('the "'+e+'" plugin declares the utility "'+r+'", which the "'+se[r].plugin+'" plugin already declared: ignored');return}se[r]={plugin:e,family:Object.assign({},n,{name:r,values:n.values.map(String),appliesTo:n.appliesTo||t.appliesTo||["row","column"]})}}function et(e,t){return se[e]?se[e].family:(J("utility:"+e,t+"("+JSON.stringify(e)+"): no loaded plugin declares that utility"),null)}function In(e,t){return t==="plain"&&(t="text"),e.appliesTo.indexOf(t)!==-1?!0:!!D[t]&&e.appliesTo.indexOf("container")!==-1}function Nn(e){return Object.keys(se).map(function(t){return se[t].family}).filter(function(t){return In(t,e)})}function Ht(e,t,n){return e.className?e.className(t.key,n):e.prefix+(t.infix?"-"+t.infix:"")+"-"+n}function ue(e,t,n){for(var r=(e.getAttribute("class")||"").split(/\s+/),o=0;o<t.values.length;o++)if(r.indexOf(Ht(t,n,t.values[o]))!==-1)return t.values[o];return null}function Rn(e,t,n){for(var r=h.indexOf(n)-1;r>=0;r--){var o=ue(e,t,h[r]);if(o!==null)return{tier:h[r],value:o}}return null}function Dn(e,t,n){var r=ue(e,t,n);if(r!==null)return r;var o=Rn(e,t,n);return o?o.value:null}function Wt(e,t){return h.map(function(n){return{tier:n,value:ue(e,t,n)}}).filter(function(n){return n.value!==null})}function Un(e,t,n,r){t.values.forEach(function(o){O(e,Ht(t,n,o))}),r!==null&&k(e,Ht(t,n,r)),mt(e)}function Fn(e,t,n){return n===W?ue(e,t,h[0]):Dn(e,t,K(n))}function mo(e,t,n,r){if(n!==W){var o=K(n);return ue(e,t,o)===r?null:{writes:[{tier:o,value:r}],cleared:[]}}var a=[],u=[];return Wt(e,t).forEach(function(c){c.tier!==h[0]&&(a.push({tier:c.tier,value:null}),u.push({breakpoint:c.tier.key,value:c.value}))}),ue(e,t,h[0])!==r&&a.unshift({tier:h[0],value:r}),a.length?{writes:a,cleared:u}:null}function Hn(e,t,n){e=pe(e);var r=et(t,"getUtility");if(!r||!e)return null;var o=n===void 0?A:on(n);return o===null?(N("getUtility("+JSON.stringify(n)+"): no such layout mode"),null):Fn(e,r,o)}function Kt(e,t,n,r){r=typeof r=="string"?{view:r}:r||{},e=pe(e);var o=et(t,"setUtility");if(!o||!e)return!1;var a=r.view===void 0?A:on(r.view);if(a===null)return N("setUtility("+JSON.stringify(r.view)+"): no such layout mode"),!1;if(n=n==null||n===""?null:String(n),n!==null&&o.values.indexOf(n)===-1)return N("setUtility: "+JSON.stringify(n)+' is not a value of "'+t+'", which takes '+JSON.stringify(o.values)),!1;var u=ae(e);if(!In(o,u))return N('setUtility: "'+t+'" does not apply to a '+u),!1;if(o.write)return o.write(e,n,a,r.source||"api");var c=mo(e,o,a,n);return c?H(function(){var m=Y(u,e,{family:t,breakpoint:a,tiers:c.writes.map(function(g){return g.tier.key}),from:Fn(e,o,a),to:n,cleared:c.cleared,source:r.source||"api"});return L("before-utility",m)?(c.writes.forEach(function(g){Un(e,o,g.tier,g.value)}),ee(e),L("after-utility",m),!0):(ee(e),!1)}):!1}function po(e,t,n){var r=et(t,"bareStyle");if(e=pe(e),!r||!e)return null;var o=e.getAttribute("class");h.forEach(function(u){Un(e,r,u,null)});var a=getComputedStyle(e).getPropertyValue(n);return o===null?e.removeAttribute("class"):e.setAttribute("class",o),a}function ee(e){var t=Zn(e);if(t){var n=z(t,".ge-classes");n&&(n.value=Gt(e).join(" ")),G(t,".ge-utilities").forEach(function(r){Bt(r)})}tt(e)}function go(e){return we(e,fo)}function tt(e){Wn(e),A!==W&&vo(e,K(A)),qo(e),Z("onRefresh",e)}function vo(e,t){go(e).forEach(function(n){var r=ae(n),o={};Nn(r).forEach(function(a){!a.preview||!Wt(n,a).length||Object.assign(o,a.preview(Dn(n,a,t),n,r))}),r==="column"&&Object.assign(o,Go(n,t)),Object.keys(V).forEach(function(a){var u=V[a];u.preview&&Object.assign(o,u.preview(n,r,t.key))}),Object.keys(o).length&&ho(n,o)})}function ho(e,t){var n=e.style,r={};Object.keys(t).forEach(function(o){r[o]=[n.getPropertyValue(o),n.getPropertyPriority(o)],n.setProperty(o,String(t[o]),"important")}),e.setAttribute(Ze,JSON.stringify(r))}function Wn(e){we(e,"["+Ze+"]").forEach(function(t){var n=t.style,r={};try{r=JSON.parse(t.getAttribute(Ze))||{}}catch(o){}Object.keys(r).forEach(function(o){var a=r[o];a&&a[0]?n.setProperty(o,a[0],a[1]):n.removeProperty(o)}),t.removeAttribute(Ze),pt(t)})}function bo(e){var t=ae(e),n=Nn(t).filter(function(u){return u.panel!==!1}).map(function(u){return Kn(e,u)});if(Object.keys(V).forEach(function(u){var c=V[u],m=c.panel?c.panel(e,t):null;m&&n.push(m)}),!n.length)return null;var r=I(v("div",{class:"ge-utilities"}),"ge-open",Ut);gn.set(r,e);var o=r.appendChild(v("a",{class:"ge-utilities-toggle"}));o.addEventListener("click",function(){Ut=!y(r,"ge-open"),er().forEach(function(u){_(u,".ge-utilities").forEach(function(c){I(c,"ge-open",Ut)})})});var a=r.appendChild(v("div",{class:"ge-utilities-body"}));return n.forEach(function(u){a.appendChild(u)}),Bt(r),r}function Kn(e,t){var n=v("label",{class:"ge-utility","data-ge-family":t.name});n.appendChild(v("span",{class:"ge-utility-label"},t.labelKey?p(t.labelKey):t.name));var r=n.appendChild(v("select",{class:"form-select form-select-sm"}));return r.addEventListener("change",function(){Kt(e,t.name,this.value,{source:"panel"})}),n.appendChild(v("small",{class:"ge-utility-note"})),n}function wo(e,t){var n=et(t,"utilityField");if(!n)return null;var r=Kn(e,n);return Bn(r,e),r}function Bt(e){var t=gn.get(e);G(e,".ge-utilities-toggle").forEach(function(n){n.textContent=p("utility.section",{view:p($e(A))})}),_(e,".ge-utility").forEach(function(n){Bn(n,t)})}function Bn(e,t){var n=se[e.getAttribute("data-ge-family")].family,r=T(e,"select"),o=n.choices?n.choices(t,ae(t)):n.values,a,u,c="";if(r.innerHTML="",A===W){a=ue(t,n,h[0]),u=p("utility.default");var m=Wt(t,n).filter(function(Le){return Le.tier!==h[0]});m.length&&(c=p("utility.varies",{breakpoints:m.map(function(Le){return Le.tier.key}).join(", ")}))}else{var g=K(A),w=Rn(t,n,g);a=ue(t,n,g),u=w?p("utility.inherit",{value:Vn(n,w.value),breakpoint:w.tier.key}):p("utility.default");var x=n.blank?n.blank(t,A):null;x&&a===null&&(u=x)}a!==null&&o.indexOf(a)===-1&&(o=o.concat([a])),r.appendChild(v("option",{value:""},u)),o.forEach(function(Le){r.appendChild(v("option",{value:Le},Vn(n,Le)))}),r.value=a===null?"":a;var be=T(e,".ge-utility-note");be.textContent=c,ln(be,c!=="")}function Vn(e,t){return e.label?e.label(t):t}var D={},S={},V={},Ue={},Gn=0;function yo(e){return Gn++,"ge-"+e+"-"+Gn+"-"+Math.random().toString(36).slice(2,6)}function Co(){var e=Oe();return e.appendChild(fe(P)),e}function Ae(e){return e?e.getAttribute("data-ge-container"):null}function Eo(){_(d,"[data-ge-container]").forEach(function(e){var t=Ae(e),n=D[t];if(!n){J("container:"+t,'unknown container type "'+t+'"');return}k(e,"ge-container ge-container-"+t),n.mark(e),T(e,".ge-tools-drawer")||_o(e,t,n)})}function xo(){_(d,"[data-ge-container]").forEach(function(e){var t=D[Ae(e)];t&&t.unmark(e),O(e,"ge-container ge-container-"+Ae(e)),mt(e)})}function Se(e,t){var n=v("div",{class:t});return e.insertBefore(n,e.firstChild),n}function nt(e,t){(t||[]).forEach(function(n){M(e,n.title||"",n.className||"",n.iconClass||"bi bi-wrench",n.on)})}function _o(e,t,n){var r=Se(e,"ge-tools-drawer ge-container-drawer");he(r),Be(r,e,l.container_classes),nt(r,l.container_tools),n.tools&&n.tools(r,e),M(r,p("tool.delete_container"),"ge-delete-container","bi bi-trash",function(){ve(t,e,p("confirm.delete_container"),function(o){Je(e,o)})}),n.addPane&&M(r,p(n.addPaneKey),"ge-add-pane","bi bi-plus-circle",function(){var o=n.addPane(e,{});$(n.paneKind,o,function(){},{parent:e,source:"tool",container:e})})}function ko(e,t,n,r,o){var a=Se(e,"ge-tools-drawer ge-pane-drawer");return he(a),Be(a,e,l.pane_classes),nt(a,n),M(a,p("tool.delete_pane"),"ge-delete-pane","bi bi-trash",function(){ve(t,e,r,function(u){o(u)})}),a}function qn(e){e&&we(e,"[data-bs-toggle], [data-bs-dismiss]").forEach(function(t){["toggle","dismiss"].forEach(function(n){var r=t.getAttribute("data-bs-"+n);r!==null&&(t.setAttribute("data-ge-bs-"+n,r),t.removeAttribute("data-bs-"+n))})})}function Xn(e){e&&we(e,"[data-ge-bs-toggle], [data-ge-bs-dismiss]").forEach(function(t){["toggle","dismiss"].forEach(function(n){var r=t.getAttribute("data-ge-bs-"+n);r!==null&&(t.setAttribute("data-bs-"+n,r),t.removeAttribute("data-ge-bs-"+n))})})}function Ao(e){if(!St.has(e)){var t=oe(e,"[data-bs-toggle], [data-ge-bs-toggle]");St.add(e),e.setAttribute("title",p("tool.rename")),e.addEventListener("dblclick",function(n){n.preventDefault(),n.stopPropagation(),qn(t),e.setAttribute("contenteditable","true"),e.focus(),window.getSelection().selectAllChildren(e)}),e.addEventListener("keydown",function(n){e.getAttribute("contenteditable")==="true"&&n.key==="Enter"&&(n.preventDefault(),e.blur())}),e.addEventListener("blur",function(){e.removeAttribute("contenteditable"),Xn(t)})}}function So(e){var t=T(e,".ge-pane-label");return t||(t=v("span",{class:"ge-pane-label"},e.textContent.trim()),e.innerHTML="",e.appendChild(t)),t}function To(e){_(e,".ge-pane-label").forEach(function(t){St.delete(t),yt(t)})}function Yn(e,t){var n=fe(t);return $("column",n,function(){e.appendChild(n)},{parent:e,source:"tool"})}function Oo(e,t){!l.add_column.picker||!e||Jn(e,function(){Lo(e,t)})}function Jn(e,t){var n=null,r=function(){window.clearTimeout(n),n=null};Q(e,"mouseenter mousedown",function(){n||X||(n=window.setTimeout(function(){n=null,t()},l.add_column.delay))}),Q(e,"mouseleave mouseup",r)}function Lo(e,t){te();var n=$t(t,de()),r=oe(e,".ge-tools-drawer");r&&k(r,"ge-picker-open"),X=e.appendChild(v("div",{class:"ge-size-picker"})),l.valid_col_sizes.forEach(function(o){var a=v("a",{class:"ge-size","data-ge-size":o,title:Mo(o)},F(o)?o:Ce(h[0],o));I(a,"ge-size-tight",F(o)&&o>n),I(a,"ge-size-flex",!F(o)),a.addEventListener("click",function(u){u.preventDefault(),u.stopPropagation(),te(),Yn(t,o)}),X.appendChild(a)}),On(e)}function Mo(e){return e==="equal"?p("tool.column_equal"):e==="auto"?p("tool.column_auto"):p("tool.column_size",{size:e})}function te(){if(!X)return!1;var e=oe(X,".ge-tools-drawer");return e&&O(e,"ge-picker-open"),X.remove(),X=null,!0}function zo(){_(d,".row").forEach(function(e){if(!T(e,".ge-tools-drawer")){var t=Se(e,"ge-tools-drawer");he(t),Be(t,e,l.row_classes),nt(t,l.row_tools),M(t,p("tool.delete_row"),"ge-delete-row","bi bi-trash",function(){ve("row",e,p("confirm.delete_row"),function(n){Je(e,n)})}),M(t,p("tool.add_column"),"ge-add-column","bi bi-plus-circle",function(){te()||Yn(e,Ve(e,de())?null:l.add_column.size)}),Oo(T(t,".ge-add-column"),e)}})}function Po(){_(d,".column").forEach(function(e){if(!T(e,".ge-tools-drawer")){var t=Se(e,"ge-tools-drawer");he(t),M(t,p("tool.column_narrower"),"ge-decrease-col-width","bi bi-dash-lg",function(n){jt(e,n.shiftKey?Ke(l.valid_col_sizes):rt(l.valid_col_sizes.filter(F),He(e),-1),"tool")}),M(t,p("tool.column_wider"),"ge-increase-col-width","bi bi-plus-lg",function(n){jt(e,n.shiftKey?jo(e):rt(l.valid_col_sizes.filter(F),He(e),1),"tool")}),M(t,p("tool.indent_decrease"),"ge-decrease-col-offset","bi bi-text-indent-right",function(n){yn(e,n.shiftKey?Ke(l.valid_col_offsets):rt(l.valid_col_offsets,We(e),-1),"tool")}),M(t,p("tool.indent_increase"),"ge-increase-col-offset","bi bi-text-indent-left",function(n){yn(e,n.shiftKey?Io(e):rt(l.valid_col_offsets,We(e),1),"tool")}),Be(t,e,l.col_classes),nt(t,l.col_tools),M(t,p("tool.delete_column"),"ge-delete-column","bi bi-trash",function(){ve("column",e,p("confirm.delete_column"),function(n){Sr(e,400,n,!0)})}),M(t,p("tool.add_row"),"ge-add-row","bi bi-plus-circle",function(){var n=Oe();$("row",n,function(){e.appendChild(n)},{parent:e,source:"tool"})})}})}function de(){return A===W?h[h.length-1]:K(A)}function Fe(e){var t=de();if(ot(e,t))return null;var n=Yt(e,t);return n===null?P:n}function He(e){var t=Fe(e);if(F(t))return t;var n=Math.round(Xe(e)/$n(e.parentElement)*P);return Math.min(Math.max(n,1),P)}function $n(e){var t=window.getComputedStyle(e);return e.clientWidth-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight)}function We(e){return at(e,de())||0}function rt(e,t,n){var r=e.indexOf(t);return r===-1?e.reduce(function(o,a){return Math.abs(a-t)<Math.abs(o-t)?a:o},e[0]):e[Math.min(Math.max(r+n,0),e.length-1)]}function Ke(e){return e.filter(F).reduce(function(t,n){return Math.min(t,n)},P)}function Vt(e){return e.filter(F).reduce(function(t,n){return Math.max(t,n)},0)}function jo(e){var t=$t(e.parentElement,de(),e)-We(e);return Math.min(Vt(l.valid_col_sizes),Math.max(t,1))}function Io(e){var t=$t(e.parentElement,de(),e)-He(e);return Math.min(Vt(l.valid_col_offsets),Math.max(t,0))}function he(e){return l.drag_handle==="drawer"?null:M(e,p("tool.move"),"ge-move","bi bi-arrows-move")}function M(e,t,n,r,o){var a=v("a",{title:t,class:n});return a.appendChild(v("i",{class:r})),e.appendChild(a),typeof o=="function"&&a.addEventListener("click",o),o&&typeof o=="object"&&Object.keys(o).forEach(function(u){Q(a,u,o[u])}),a}function Gt(e){return(e.getAttribute("class")||"").split(/\s+/).filter(function(t){return t!==""&&!No(t)})}function No(e){return e==="row"||e==="column"||/^(ge-|ui-)/.test(e)||/^col(-(sm|md|lg|xl|xxl))?(-auto)?$/.test(e)?!0:h.some(function(t){return new RegExp("^("+t.colPrefix+"|"+t.offsetPrefix+")\\d+$").test(e)})}function Ro(e,t){Gt(e).forEach(function(n){O(e,n)}),t.split(/\s+/).forEach(function(n){n!==""&&k(e,n)}),mt(e)}function Be(e,t,n){var r=Do(t,n||[]);pn.set(t,r),M(e,p("tool.settings"),"ge-settings","bi bi-gear-fill",function(){Fo(t,r,this)});var o=ae(t);return Object.keys(V).forEach(function(a){V[a].drawerTools&&V[a].drawerTools(e,t,o)}),Object.keys(S).forEach(function(a){S[a].drawerTools&&S[a].drawerTools(e,t,o)}),e.appendChild(r)}function Do(e,t){var n=v("div",{class:"ge-details"}),r=n.appendChild(v("div",{class:"ge-details-general"})),o=function(g){var w=v("label",{class:"ge-field"});return w.appendChild(v("span",{class:"ge-field-label"},g)),r.appendChild(w)},a=v("input",{class:"ge-id form-control form-control-sm",placeholder:p("tool.id_placeholder"),title:p("tool.id_title")});a.value=e.getAttribute("id")||"",o(p("panel.id")).appendChild(a),a.addEventListener("change",function(){this.value===""?e.removeAttribute("id"):e.setAttribute("id",this.value)});var u=v("input",{class:"ge-classes form-control form-control-sm",placeholder:p("tool.classes_placeholder"),title:p("tool.classes_title")});u.value=Gt(e).join(" "),o(p("panel.classes")).appendChild(u),u.addEventListener("change",function(){Ro(e,this.value),ee(e)});var c=r.appendChild(v("div",{class:"btn-group btn-group-sm ge-presets",role:"group"}));t.forEach(function(g){var w=y(e,g.cssClass),x=v("a",{role:"button",class:"btn btn-sm btn-outline-secondary",title:g.title?g.title:p("tool.toggle_class",{label:g.label}),"aria-pressed":w?"true":"false"});x.innerHTML=g.label,I(x,"active",w),x.addEventListener("click",function(){I(x,"active"),x.setAttribute("aria-pressed",y(x,"active")?"true":"false"),I(e,g.cssClass,y(x,"active")),ee(e)}),c.appendChild(x)});var m=bo(e);return m&&n.appendChild(m),n}var Qn=["offcanvas","popover","modal","inline"],ce={},U=null,qt=new WeakMap;function Uo(){return Qn.indexOf(l.settings_panel)!==-1?l.settings_panel:(J("settings_panel",'settings_panel "'+l.settings_panel+'" is not one of '+Qn.join(", ")+": using offcanvas"),"offcanvas")}function Zn(e){return e&&pn.get(e)||null}function er(){return U&&U.mode!=="inline"?[d,U.details]:[d]}function Fo(e,t,n){var r=Uo();if(r==="inline"){ln(t);return}var o=U&&U.details===t;ne(),o||Ho(r,e,t,n)}function Ho(e,t,n,r){var o=Wo(e),a=new AbortController;U={mode:e,node:t,details:n,home:n.parentElement,next:n.nextElementSibling,gear:r,listening:a},z(o,".ge-settings-title").textContent=p("panel.title",{kind:Ko(t)}),z(o,".ge-settings-body").appendChild(n),Pe(n),k(t,"ge-settings-target");var u={signal:a.signal};if(document.addEventListener("keydown",function(m){m.key==="Escape"&&ne()},u),e==="offcanvas"){var c=window.innerWidth<576;I(o,"offcanvas-end",!c),I(o,"offcanvas-bottom",c),O(o,"hiding"),o.getBoundingClientRect(),k(o,"show")}else e==="popover"?(Xt(o,r),Q(window,"scroll resize",function(){Xt(o,r)},u),window.ResizeObserver&&(U.observer=new window.ResizeObserver(function(){Xt(o,r)}),U.observer.observe(n)),Q(document,"mousedown touchstart",function(m){!o.contains(m.target)&&!r.contains(m.target)&&ne()},u)):nr(o)}function ne(){var e=U;if(e){U=null;var t=ce[e.mode];e.listening.abort(),e.observer&&e.observer.disconnect(),e.mode==="offcanvas"?(O(t,"show"),k(t,"hiding"),window.setTimeout(function(){O(t,"hiding")},300)):e.mode==="popover"?ye(t):rr(t),O(e.node,"ge-settings-target"),e.details.style.removeProperty("display"),pt(e.details),e.home&&ct(e.home)?e.next&&e.next.parentElement===e.home?e.home.insertBefore(e.details,e.next):e.home.appendChild(e.details):e.details.remove()}}function Wo(e){if(ce[e])return ce[e];var t=function(){return v("button",{type:"button",class:"btn-close ge-settings-close","aria-label":p("panel.close")})},n;return e==="offcanvas"?(n=q('<div class="offcanvas offcanvas-end ge-settings-panel ge-settings-offcanvas" tabindex="-1" role="dialog"><div class="offcanvas-header"><h5 class="offcanvas-title ge-settings-title"></h5></div><div class="offcanvas-body ge-settings-body"></div></div>'),z(n,".offcanvas-header").appendChild(t())):e==="popover"?(n=q('<div class="popover bs-popover-bottom ge-settings-panel ge-settings-popover" role="dialog"><div class="popover-arrow"></div><div class="popover-header"><span class="ge-settings-title"></span></div><div class="popover-body ge-settings-body"></div></div>'),z(n,".popover-header").appendChild(t()),ye(n)):(n=q('<div class="modal fade ge-settings-panel ge-settings-modal" tabindex="-1" role="dialog" aria-hidden="true"><div class="modal-dialog modal-dialog-centered modal-dialog-scrollable"><div class="modal-content"><div class="modal-header"><h5 class="modal-title ge-settings-title"></h5></div><div class="modal-body ge-settings-body"></div><div class="modal-footer"></div></div></div></div>'),z(n,".modal-header").appendChild(t()),z(n,".modal-footer").appendChild(v("button",{type:"button",class:"btn btn-primary ge-settings-close"},p("panel.done")))),Ye(n,"click",".ge-settings-close",function(r){r.preventDefault(),ne()}),ce[e]=document.body.appendChild(n),n}function tr(){ne(),Object.keys(ce).forEach(function(e){e==="modal"?bn(ce[e]):ce[e].remove()}),re&&(re.remove(),re=null),ce={}}function Xt(e,t){if(ct(t)){Pe(e);var n=t.getBoundingClientRect(),r=8,o=T(e,".popover-body");o.style.removeProperty("max-height");var a=Xe(e),u=ht(e),c=window.innerHeight-n.bottom-2*r,m=n.top-2*r,g=u<=c||c>=m,w=g?c:m;u>w&&(me(o,{"max-height":Math.max(120,w-(u-ht(o)))}),u=ht(e));var x=g?n.bottom+r:n.top-r-u,be=Math.max(r,Math.min(n.left+n.width/2-24,window.innerWidth-a-r));I(e,"bs-popover-bottom",g),I(e,"bs-popover-top",!g),me(e,{top:x+window.pageYOffset,left:be+window.pageXOffset}),me(T(e,".popover-arrow"),{left:Math.max(r,Math.min(n.left+n.width/2-be-8,a-24))})}}var re=null;function nr(e){var t=Et();if(!t){re=v("div",{class:"modal-backdrop fade show ge-settings-backdrop"}),re.addEventListener("click",function(){ne()}),document.body.appendChild(re),k(e,"show"),e.style.display="block",e.removeAttribute("aria-hidden");return}var n=t.getOrCreateInstance(e),r=qt.get(e);r||(r={wanted:null,busy:!1},qt.set(e,r),wn(e),e.addEventListener("hide.bs.modal",function(){r.wanted==="open"&&(r.wanted="closed",r.busy=!0)}),e.addEventListener("shown.bs.modal",function(){r.busy=!1,r.wanted==="closed"&&rr(e)}),e.addEventListener("hidden.bs.modal",function(){r.busy=!1,r.wanted==="open"?nr(e):U&&U.mode==="modal"&&ne()})),r.wanted="open",r.busy||(r.busy=!0,n.show())}function rr(e){var t=Et();if(!t){re&&(re.remove(),re=null),O(e,"show"),e.style.removeProperty("display"),e.setAttribute("aria-hidden","true");return}var n=qt.get(e)||{wanted:null,busy:!1};n.wanted="closed",!n.busy&&y(e,"show")&&(n.busy=!0,t.getOrCreateInstance(e).hide())}function Ko(e){var t=ae(e);if(D[t]&&D[t].labelKey)return p(D[t].labelKey);switch(t){case"row":return p("panel.kind_row");case"column":return p("panel.kind_column");case"text":return p("panel.kind_text");case"element":return p("panel.kind_element");case"section":return p("panel.kind_section");case"tab":return p("panel.kind_tab");case"accordion-item":return p("panel.kind_accordion_item");default:return t}}function Bo(){_(d,'.column, div[class*="col-"], div.col').forEach(function(e){k(e,"column"),!(Yo(e).length||or(e.parentElement))&<(e,h[0],P)})}function or(e){return y(e,"row")&&h.some(function(t){return je.some(function(n){return y(e,dn(t,n))})})}function Ve(e,t){if(!y(e,"row"))return null;for(var n=h.indexOf(t);n>=0;n--)for(var r=0;r<je.length;r++)if(y(e,dn(h[n],je[r])))return{tier:n,value:je[r]};return null}function ir(e,t){for(var n=h.indexOf(t);n>=0;n--){var r=Te(e,h[n]);if(r!==null)return{tier:n,size:r}}return null}function ot(e,t){var n=Ve(e.parentElement,t);if(!n)return null;var r=ir(e,t);return!r||n.tier>r.tier||n.tier===r.tier&&r.size==="equal"?n:null}function Vo(e){return e.value==="auto"?0:P/parseInt(e.value,10)}function Go(e,t){var n=ot(e,t);return n?{flex:"0 0 auto",width:n.value==="auto"?"auto":100/parseInt(n.value,10)+"%","max-width":"100%"}:or(e.parentElement)&&!ir(e,t)?{flex:"0 0 auto",width:"100%","max-width":"100%"}:{}}function qo(e){we(e,".row").forEach(function(t){var n=l.row_cols===!1?null:A===W?Ve(t,h[0])||null:Ve(t,K(A));n?t.setAttribute("data-ge-row-cols",ar(n.value)):t.removeAttribute("data-ge-row-cols")})}function ar(e){return e==="auto"?p("badge.row_cols_auto"):p("badge.row_cols",{count:e})}function Xo(){return{name:"row-cols",prefix:"row-cols",values:je,appliesTo:["row"],labelKey:"utility.row_cols"}}function Te(e,t){var n=sr(e,t.colPrefix);return n!==null?n:y(e,Ce(t,"auto"))?"auto":y(e,Ce(t,"equal"))?"equal":null}function it(e,t){return sr(e,t.offsetPrefix)}function Yt(e,t){return lr(e,t,Te)}function at(e,t){return lr(e,t,it)}function lr(e,t,n){for(var r=h.indexOf(t);r>=0;r--){var o=n(e,h[r]);if(o!==null)return o}return null}function sr(e,t){var n=new RegExp("(?:^|\\s)"+t+"(\\d+)(?:\\s|$)").exec(e.getAttribute("class")||"");return n?parseInt(n[1],10):null}function ur(e,t,n){var r=(e.getAttribute("class")||"").split(/\s+/).filter(function(o){return o!==""&&!new RegExp("^"+t+"\\d+$").test(o)});n!==null&&r.push(t+n),e.setAttribute("class",r.join(" "))}function lt(e,t,n){ur(e,t.colPrefix,null),un.forEach(function(r){O(e,Ce(t,r))}),n!=null&&k(e,Ce(t,n))}function Jt(e,t,n){ur(e,t.offsetPrefix,n||null)}function Yo(e){return h.filter(function(t){return Te(e,t)!==null})}function $t(e,t,n){var r=0;return G(e,".column").forEach(function(o){if(!(n&&o===n)){var a=ot(o,t),u=a?Vo(a):Yt(o,t);r+=(F(u)?u:0)+(at(o,t)||0)}}),P-r}function st(e){var t=e.size===null||e.size===void 0?null:e.size,n=e.offset===null||e.offset===void 0?0:e.offset;return n=Math.min(Math.max(n,0),Lr),t===null||!F(t)?{size:t,offset:n,refused:!1}:(t=Math.min(Math.max(t,1),P),t+n<=P?{size:t,offset:n,refused:!1}:e.leading==="offset"?{size:P-n,offset:n,refused:!1}:{size:null,offset:n,refused:!0})}function Ge(e){we(e,".column").forEach(function(t){me(t,{width:"",height:"",left:"",top:""}),pt(t)})}function dr(e){return"ge-"+e+"-"+Nr}function Qt(){return[".row",".ge-text-block",".ge-content","[data-ge-container]"].concat(Zt("blocks")).join(", ")}function Zt(e){return Object.keys(S).map(function(t){return S[t][e]||null}).filter(function(t){return t!==null})}function en(e,t){var n=!0;return Object.keys(S).forEach(function(r){var o=S[r];n&&o.accepts&&o.accepts(e,t)===!1&&(n=!1)}),n}function Jo(){return l.drag_handle==="drawer"?".ge-tools-drawer > a:not(.ge-text-info):not(.ge-element-info), .ge-details, input, textarea, button, select, option":"input, textarea, button, select, option"}function ut(e,t){var n=jr();if(e=Array.isArray(e)?e:e?[e]:[],!(!e.length||!n)){var r=l.drag_handle==="drawer",o=Jo(),a=0;e.forEach(function(u){var c=t.group?{name:dr(t.group)}:{name:dr(t.draggable+"-"+ ++a),pull:!1,put:!1};t.group&&t.accepts&&(c.put=function(m,g,w){return g.options.group.name===c.name&&t.accepts(m.el,w)}),kt.push(n.create(u,Object.assign({group:c,draggable:t.draggable,handle:r?".ge-tools-drawer":".ge-tools-drawer .ge-move",filter:function(m,g){return oe(m.target,o,u)?!0:!g||g.parentNode!==u},preventOnFilter:!1,forceFallback:!0,fallbackOnBody:!1,ghostClass:"ge-drag-placeholder",chosenClass:"ge-drag-chosen",dragClass:"ge-drag-helper",fallbackClass:"ge-drag-helper",animation:l.drag.animation,delay:l.drag.delay||l.drag.touch_delay,delayOnTouchOnly:!l.drag.delay,touchStartThreshold:l.drag.threshold,scroll:l.drag.scroll,onStart:Qo,onEnd:ei},t.options||{})))})}}function $o(){if(!jr()){J("sortable_missing",p("error.sortable_missing"));return}ut(_(d,".row"),{draggable:".column",group:"column"}),ut([d].concat(_(d,".column")),{draggable:Qt(),group:"block",accepts:en});var e=Zt("regions");e.length&&ut(_(d,e.join(", ")),{draggable:">"+Qt(),group:"block",accepts:en}),Z("onSortable",ut)}function Qo(e){var t=e.item,n=It(t),r=cr(t),o={from:n,canceled:!1};At.set(t,o),H(function(){var a=L("before-move",Y(r.kind,r.node,{parent:n.parent,source:"dragdrop",from:n}));a||(o.canceled=!0)})}function cr(e){var t=y(e,"ge-text-block")&&T(e,".ge-content")||e;return{kind:ae(t),node:t}}function Zo(e,t){var n=G(t.parent).filter(function(r){return r!==e&&!y(r,"ge-tools-drawer")});!n.length||t.index>=n.length?t.parent.appendChild(e):t.parent.insertBefore(e,n[t.index])}function ei(e){var t=e.item,n=At.get(t),r=n?n.from:It(t);if(At.delete(t),n&&n.canceled){Zo(t,r);return}var o=It(t);if(!(o.parent===r.parent&&o.index===r.index)){var a=oe(t,"[data-ge-container]"),u=D[Ae(a)];u&&u.afterPaneMove&&u.afterPaneMove(a,t,r);var c=cr(t);H(function(){L("after-move",Y(c.kind,c.node,{parent:o.parent,source:"dragdrop",from:r,to:o,container:a||void 0}))})}}function ti(){l.resize.enabled&&_(d,".column").forEach(function(e){if(!T(e,".ge-resize-handle")){var t=T(e,".ge-tools-drawer");t&&t.appendChild(v("span",{class:"ge-resize-size"})),ni().forEach(function(n){var r=v("span",{class:"ge-resize-handle ge-resize-"+n,"data-ge-edge":n});r.addEventListener("pointerdown",ri),e.appendChild(r)})}})}function ni(){return String(l.resize.handles).split(",").map(function(e){return e.trim()}).filter(function(e){return e==="e"||e==="w"})}function ri(e){var t=e.currentTarget,n=t.parentElement,r=t.getAttribute("data-ge-edge")==="w",o=e.pageX,a=Xe(n);if(e.preventDefault(),!ii(n))return;k(n,"ge-resizing"),e.pointerId!==void 0&&t.setPointerCapture&&t.setPointerCapture(e.pointerId);function u(g){var w=g.pageX-o;return Math.max(1,a+(r?-w:w))}function c(g){n.style.width=u(g)+"px",ai(n,u(g))}function m(g){t.removeEventListener("pointermove",c),sn(t,"pointerup pointercancel",m),O(n,"ge-resizing"),li(n,u(g))}t.addEventListener("pointermove",c),Q(t,"pointerup pointercancel",m)}function oi(){_(d,".ge-resize-handle").forEach(function(e){e.remove()}),_(d,".ge-resize-size").forEach(function(e){e.remove()}),Ge(d)}function fr(e,t){var n=Math.round(t/$n(e.parentElement)*P),r=mr(e),o=r?Fe(r):null,a=Qe.get(e),u=a?a.units:He(e),c=r&&F(o)?u+o-Ke(l.valid_col_sizes):P-We(e);return Math.min(Math.max(n,Ke(l.valid_col_sizes)),Math.max(c,Ke(l.valid_col_sizes)),Vt(l.valid_col_sizes))}function mr(e){return l.resize.balance!=="next"?null:Er(e,".column")[0]||null}function tn(e,t){var n=T(e,".ge-tools-drawer"),r=n?T(n,".ge-resize-size"):null;r&&(r.textContent=t)}function pr(e){return(A===W?h[0].colPrefix:de().colPrefix)+e}function ii(e){var t=Fe(e),n=H(function(){return L("before-resize",Y("column",e,{source:"dragdrop",from:t,to:null}))});if(!n)return!1;var r={from:t,units:He(e)};return Qe.set(e,r),tn(e,pr(r.units)),!0}function ai(e,t){tn(e,pr(fr(e,t)))}function li(e,t){var n=Qe.get(e),r=fr(e,t);if(Qe.delete(e),tn(e,""),Ge(e),!!n&&r!==n.units){var o=Mt(e,r);o&&H(function(){zt(e,o),si(e,r-n.units),ee(e),L("after-resize",Y("column",e,Pt({source:"dragdrop",from:n.from,to:o.size},o.cleared)))})}}function si(e,t){var n=mr(e);if(!(!n||!t)){var r=Fe(n);if(F(r)){var o=Mt(n,r-t);o&&(zt(n,o),ee(n))}}}function ui(){kt.forEach(function(e){e.destroy()}),kt=[]}function Oe(){return v("div",{class:"row"})}function dt(e,t,n){var r=null;if(Si.forEach(function(c){r===null&&n&&n[c]!==void 0&&(r=c)}),r===null)return e;var o=pe(n[r]);if(!o)return N(t+": "+r+" matches no element; the "+t+" is left detached"),e;var a=r==="appendTo"||r==="prependTo"?o:o.parentElement,u=function(){return $(t,e,function(){r==="appendTo"?o.appendChild(e):r==="prependTo"?o.insertBefore(e,o.firstChild):r==="insertBefore"?o.parentNode.insertBefore(e,o):wt(e,o)},{parent:a,source:n.source||"api"})};return Ne>0?(Ot(u),e):u()}function di(e,t){var n=Oe();return e!==void 0&&!Array.isArray(e)&&!(e&&e.row_cols)&&(N("createRow: the layout is an array of column sizes, as in [8, 4], or { row_cols, columns }. Making an empty row instead."),e=[]),e&&!Array.isArray(e)&&(n=De(e)),(Array.isArray(e)?e:[]).forEach(function(r){n.appendChild(fe(r))}),dt(n,"row",t)}function ci(e,t){t=t||{};var n=pe(t.appendTo||t.prependTo||null);e===void 0&&n&&Ve(n,de())?e=null:!F(e)&&un.indexOf(e)===-1&&(N("createColumn: no column size given, using "+P),e=P);var r=fe(e,t.offset);return t.content!==void 0&&r.appendChild(Ci(t.content)),dt(r,"column",t)}function fi(e,t){t=t||{};var n=D[e];return n?dt(n.create(t),e,t):(N('createContainer: no such container type "'+e+'"'),null)}function gr(e,t,n){e=pe(e),n=n||{};var r=D[Ae(e)];if(!r||Ae(e)!==t)return N("this is not a "+t+" container"),null;var o=r.addPane(e,n);return $(r.paneKind,o,function(){},{parent:e,source:"api",container:e})}function nn(){var e={};return Object.keys(l).forEach(function(t){var n=l[t];e[t]=Array.isArray(n)?n.slice():n}),Object.freeze(e)}function fe(e,t){var n=v("div",{class:"column"}),r=Mr(A)[0],o=st({size:e,offset:t||0,leading:"offset"});return lt(n,r,o.size===null?e:o.size),Jt(n,r,o.offset),n}function vr(e){if(!(!l.custom_filter||!l.custom_filter.length)){var t=typeof l.custom_filter=="string"||typeof l.custom_filter=="function"?[l.custom_filter]:l.custom_filter;Array.prototype.forEach.call(t,function(n){typeof n=="string"&&(n=window[n]),n(d,e)})}}function mi(){var e=[".row","[data-ge-container]"];return Object.keys(S).forEach(function(t){var n=S[t],r=typeof n.cuts=="function"?n.cuts():n.cuts;r&&e.push(r)}),e.join(", ")}function pi(e){_(d,".column > .ge-content, .column > .ge-text-block > .ge-content").forEach(function(t){if(!(y(t,"ge-rte-active")||!G(t,e).length)){var n=t.getAttribute("data-ge-content-type"),r=y(t.parentElement,"ge-text-block")?t.parentElement:t,o=[],a=[];for(Array.prototype.slice.call(t.childNodes).forEach(function(m){m.nodeType===1&&m.matches(e)?(o.push({text:a},{block:m}),a=[]):a.push(m)}),o.push({text:a});t.firstChild;)t.removeChild(t.firstChild);var u=!1,c=r;o.forEach(function(m){var g;if(m.block)g=m.block;else if(gi(m.text))u?(g=rn(n),m.text.forEach(function(w){g.appendChild(w)})):(m.text.forEach(function(w){t.appendChild(w)}),g=r,u=!0);else return;g!==c&&wt(g,c),c=g}),u||r.remove()}})}function gi(e){return e.some(function(t){return t.nodeType===1||t.nodeType===3&&/\S/.test(t.nodeValue)})}function vi(e){_(d,".column").forEach(function(t){var n=[];G(t).forEach(function(r){Me(r,".ge-tools-drawer, .ge-resize-handle")||(Me(r,".ge-content, .ge-text-block")||r.matches(e)?n=hr(n):n.push(r))}),hr(n)})}function hr(e){if(e.length){var t=wt(rn(),e[e.length-1]);e.forEach(function(n){t.appendChild(n)})}return[]}function rn(e){var t=v("div",{class:"ge-content"});return e&&(k(t,"ge-content-type-"+e),t.setAttribute("data-ge-content-type",e)),t}function hi(){_(d,".column > .ge-content").forEach(function(e){kr(e,v("div",{class:"ge-text-block"}))}),_(d,".ge-text-block").forEach(function(e){if(!T(e,".ge-tools-drawer")){var t=T(e,".ge-content"),n=t?t.getAttribute("data-ge-content-type"):null;n?ro(n)||yi(e,n):wi(e)}})}function bi(){_(d,".ge-text-block").forEach(function(e){yt(e)})}function wi(e){var t=T(e,".ge-content"),n=Se(e,"ge-tools-drawer ge-text-drawer ge-plain-drawer");k(e,"ge-plain-block"),he(n),Object.keys(S).forEach(function(r){S[r].plainTools&&S[r].plainTools(n,t)}),M(n,p("tool.delete_plain"),"ge-delete-plain","bi bi-trash",function(){ve("plain",t,p("confirm.delete_plain"),function(r){Je(e,function(){e.remove(),r()})})})}function yi(e,t){var n=T(e,".ge-content"),r=Se(e,"ge-tools-drawer ge-text-drawer");he(r),M(r,p("text.no_editor",{type:t}),"ge-text-info ge-text-missing","bi bi-exclamation-triangle"),M(r,p("tool.delete_text"),"ge-delete-text","bi bi-trash",function(){ve("text",n,p("confirm.delete_text"),function(o){Je(e,function(){e.remove(),o()})})})}function Ci(e){var t=Mn(),n=rn(t.length?t[0].type:null);return e&&e.nodeType?n.appendChild(e):ft(n,e),n}function br(e){A=e,Ct.forEach(function(t){I(d,"ge-layout-"+t,t===e)}),z(Ee,"button").textContent=p($e(e))}function on(e){return typeof e=="number"?(J("changeView-index","changeView("+e+"): layout modes are identified by breakpoint key now, so pass one of "+JSON.stringify(Ct)+". Numeric indexes still work, but they mean what they meant in 2.x ("+Or.join(", ")+") and will be dropped."),Or[e]||null):Ct.indexOf(e)===-1?null:e}function wr(e){var t=on(e);if(t===null){N("changeView("+JSON.stringify(e)+"): no such layout mode");return}var n=A;br(t),t!==n&&(er().forEach(function(r){_(r,".ge-utilities").forEach(function(o){Bt(o)})}),tt(d),Z("onViewChange",t),L("view-change",{canvas:d,breakpoint:t,from:n,to:t}))}function an(){return A}function yr(e,t,n){return function(){return Ue[e]?Ue[e].apply(null,arguments):(J("plugin:"+t,e+" needs the "+t+" plugin: include dist/plugins/grideditor."+n+".js after the editor"),null)}}var Cr={getHtml:jn,getPlainHtml:ao,init:function(){Ot(le)},reset:function(){Ot(zn)},deinit:ke,destroy:lo,changeView:wr,getView:an,createRow:di,createColumn:ci,createText:function(e,t){return Ue.createText?Ue.createText(e,t):(J("plugin:text","createText needs a text editor plugin: include dist/plugins/grideditor.tinymce.js, or another editor's, after the editor"),null)},createElement:yr("createElement","elements","elements"),createSection:yr("createSection","sections","sections"),createContainer:fi,addTab:function(e,t){return gr(e,"tabs",t)},addAccordionItem:function(e,t){return gr(e,"accordion",t)},setLocale:Rr,getUtility:Hn,setUtility:Kt};Object.keys(Cr).forEach(function(e){var t=!!(Tr[e]&&Tr[e].value);i[e]=function(){if(mn)return J("destroyed:"+e,p("warning.destroyed",{method:e})),e==="getHtml"?d.innerHTML:e==="getPlainHtml"?cn(d.innerHTML):t?null:i;var n=Cr[e].apply(i,arguments);return t?n:i}}),i.canvas=d,i.settings=nn(),xt.set(d,i),so(),i.settings=nn(),Wr(),le(),C._created.forEach(function(e){e(i)})}C._created=[];C.containers={};C.features={};C.utilities={};C.texts={};C.t=_t;C._plainHtml=cn;C.Sortable=null;C.bootstrap=null;C.version="7.2.0";C.locales={en:{"tool.move":"Move","tool.settings":"Settings","tool.add_row":"Add row","tool.delete_text":"Remove text","tool.delete_plain":"Remove content","tool.convert_type":"Edit as {editor} text","text.no_editor":'No text editor "{type}" is loaded: this text can be moved and deleted, not edited',"tool.add_column":`Add column
|
|
1
|
+
(()=>{function k(i,s){return i?Array.prototype.slice.call(i.querySelectorAll(s)):[]}function O(i,s){return i?i.querySelector(s):null}function Ee(i,s){if(!i)return[];var p=k(i,s);return i.nodeType===1&&i.matches(s)&&p.unshift(i),p}function Y(i,s){return i?Array.prototype.filter.call(i.children,function(p){return!s||p.matches(s)}):[]}function T(i,s){return Y(i,s)[0]||null}function ee(i,s,p){var l=i&&i.nodeType===1?i.closest(s):null;return l&&p&&l!==p&&!p.contains(l)?null:l}function De(i,s){return!!i&&i.nodeType===1&&i.matches(s)}function xe(i){return!!i&&document.documentElement.contains(i)}function Mr(i,s){for(var p=[],l=i.nextElementSibling;l;l=l.nextElementSibling)(!s||l.matches(s))&&p.push(l);return p}function zr(i,s){for(var p=[],l=i.parentElement;l&&l!==s;l=l.parentElement)p.push(l);return p}function ji(i){var s=document.createElement("template");return s.innerHTML=i,Array.prototype.slice.call(s.content.childNodes)}function B(i){for(var s=ji(i.trim()),p=0;p<s.length;p++)if(s[p].nodeType===1)return s[p];return null}function v(i,s,p){var l=document.createElement(i);return Object.keys(s||{}).forEach(function(f){var E=s[f];E!=null&&E!==!1&&l.setAttribute(f,E)}),p!=null&&(l.textContent=p),l}function bt(i,s){return i.innerHTML=s==null?"":String(s),i}function x(i,s){return Ne(s).forEach(function(p){i.classList.add(p)}),i}function L(i,s){return Ne(s).forEach(function(p){i.classList.remove(p)}),i}function I(i,s,p){return Ne(s).forEach(function(l){p===void 0?i.classList.toggle(l):i.classList.toggle(l,!!p)}),i}function y(i,s){return!!i&&i.nodeType===1&&i.classList.contains(s)}function Ne(i){return String(i||"").split(/\s+/).filter(Boolean)}function wt(i){return i.getAttribute("class")||i.removeAttribute("class"),i}function et(i){return i.getAttribute("style")||i.removeAttribute("style"),i}function yt(i,s){return Object.keys(s).forEach(function(p){var l=s[p];l==null?i.removeAttribute(p):i.setAttribute(p,l)}),i}function ve(i,s){return Object.keys(s).forEach(function(p){var l=s[p];typeof l=="number"&&!Ii[p]&&(l=l+"px"),i.style.setProperty(p,l==null?"":String(l))}),i}var Ii={opacity:!0,"z-index":!0,"flex-grow":!0,"flex-shrink":!0,order:!0},Ze={};function Di(i){var s=i.nodeName;if(!Ze[s]){var p=document.body.appendChild(document.createElement(s));Ze[s]=getComputedStyle(p).display,p.remove(),Ze[s]==="none"&&(Ze[s]="block")}return Ze[s]}function _e(i){return i.style.removeProperty("display"),getComputedStyle(i).display==="none"&&(i.style.display=Di(i)),i}function le(i){return i.style.display="none",i}function gn(i,s){return s===void 0&&(s=!Ct(i)),s?_e(i):le(i)}function Ct(i){return!!(i.offsetWidth||i.offsetHeight||i.getClientRects().length)}function tt(i){return i.getBoundingClientRect().width}function Et(i){return i.getBoundingClientRect().height}function jr(i){var s=getComputedStyle(i);return i.clientHeight-parseFloat(s.paddingTop)-parseFloat(s.paddingBottom)}function xt(i){var s=i.getBoundingClientRect();return{top:s.top+window.pageYOffset,left:s.left+window.pageXOffset}}function _t(i,s){return s.parentNode.insertBefore(i,s.nextSibling),i}function kt(i){for(var s=i.parentNode;i.firstChild;)s.insertBefore(i.firstChild,i);i.remove()}function Ir(i,s){return i.parentNode.insertBefore(s,i),s.appendChild(i),s}function Re(i,s,p,l,f){var E=function(w){var j=ee(w.target,p,i);if(j&&i.contains(j))return l.call(j,w)};return Ne(s).forEach(function(w){i.addEventListener(w,E,f)}),E}function te(i,s,p,l){return Ne(s).forEach(function(f){i.addEventListener(f,p,l)}),p}function vn(i,s,p,l){Ne(s).forEach(function(f){i.removeEventListener(f,p,l)})}var Ni=400;function Dr(i,s,p,l){p=p===void 0?Ni:p;var f=function(){le(i),l&&l()};if(!Ct(i)||!i.animate||p<=0){window.setTimeout(f,0);return}var E=i.animate(s(getComputedStyle(i)),{duration:p,easing:"ease-in-out"}),w=!1,j=function(){w||(w=!0,f())};E.onfinish=j,E.oncancel=j}function nt(i,s,p){typeof s=="function"&&(p=s,s=void 0),i.style.overflow="hidden",Dr(i,function(l){return[{height:l.height,paddingTop:l.paddingTop,paddingBottom:l.paddingBottom,marginTop:l.marginTop,marginBottom:l.marginBottom},{height:"0px",paddingTop:"0px",paddingBottom:"0px",marginTop:"0px",marginBottom:"0px"}]},s,function(){i.style.removeProperty("overflow"),p&&p()})}function Nr(i,s,p,l){i.style.overflow="hidden",Dr(i,function(f){var E={opacity:f.opacity,height:f.height},w={opacity:0,height:"0px"};return l&&(E.width=f.width,w.width="0px"),[E,w]},s,function(){i.style.removeProperty("overflow"),p&&p()})}var Rr={getHtml:{value:!0},getPlainHtml:{value:!0},init:{},deinit:{},reset:{},destroy:{},changeView:{},getView:{value:!0},createRow:{value:!0},createColumn:{value:!0},createElement:{value:!0},createText:{value:!0},createSection:{value:!0},createContainer:{value:!0},addTab:{value:!0},addAccordionItem:{value:!0},setLocale:{},getUtility:{value:!0},setUtility:{value:!0}},Ui=["appendTo","prependTo","insertAfter","insertBefore"],b=[{key:"xs",infix:"",colPrefix:"col-",offsetPrefix:"offset-",min:0,preview:400,labelKey:"view.xs"},{key:"sm",infix:"sm",colPrefix:"col-sm-",offsetPrefix:"offset-sm-",min:576,preview:576,labelKey:"view.sm"},{key:"md",infix:"md",colPrefix:"col-md-",offsetPrefix:"offset-md-",min:768,preview:768,labelKey:"view.md"},{key:"lg",infix:"lg",colPrefix:"col-lg-",offsetPrefix:"offset-lg-",min:992,preview:992,labelKey:"view.lg"},{key:"xl",infix:"xl",colPrefix:"col-xl-",offsetPrefix:"offset-xl-",min:1200,preview:1200,labelKey:"view.xl"},{key:"xxl",infix:"xxl",colPrefix:"col-xxl-",offsetPrefix:"offset-xxl-",min:1400,preview:null,labelKey:"view.xxl"}],V="all",Fi="view.all",At=[V].concat(b.map(function(i){return i.key})),Ur=["lg","sm","xs"],z=12,Fr=11,hn=["equal","auto"],Ue=["1","2","3","4","5","6","auto"];function bn(i,s){return"row-cols"+(i.infix?"-"+i.infix:"")+"-"+s}function H(i){return typeof i=="number"}function ke(i,s){return s==="equal"?i.infix?"col-"+i.infix:"col":i.colPrefix+s}function G(i){for(var s=0;s<b.length;s++)if(b[s].key===i)return b[s];return null}function Hr(i){if(i===V)return[b[0]];var s=G(i);return s?[s]:[]}function rt(i){var s=G(i);return s?s.labelKey:Fi}var Fe={add_column:{size:12,picker:!0,delay:600},elements:{enabled:"auto",selector:"[data-ge-element]",auto:!1},resize:{enabled:!0,handles:"e",balance:"next"},drag:{delay:0,touch_delay:100,threshold:3,animation:150,scroll:!0}},Wr={sortable_options:"drag",resizable_options:"resize"},Kr={},Hi=0,St=new WeakMap;function Tt(i,s,p){var l=C.locales,f=l[i.locale]||{},E=i.locale_strings||{},w=E[s];return w===void 0&&(w=f[s]),w===void 0&&(w=l.en[s]),w===void 0&&(Wi("locale:"+s,'no string for "'+s+'" in any locale, showing the key'),w=s),w.replace(/\{(\w+)\}/g,function(j,be){return p&&p[be]!==void 0?p[be]:j})}function N(i){window.console&&window.console.warn&&window.console.warn("grid-editor: "+i)}function Wi(i,s){Kr[i]||(Kr[i]=!0,N(s))}function Ki(i,s){return Tt({locale:"en"},i,s)}function Bi(i){if(typeof i=="string"){var s=document.querySelector(i);if(!s)throw new TypeError("grid-editor: no element matches "+JSON.stringify(i));return s}if(i&&i.nodeType===1)return i;throw new TypeError("grid-editor: the target is an element or a selector, not "+(i===null?"null":typeof i))}function he(i){return typeof i=="string"?document.querySelector(i):i&&i.nodeType===1?i:null}function Br(){return C.Sortable||window.Sortable||null}function ot(){var i=C.bootstrap||window.bootstrap;return i&&i.Modal?i.Modal:null}function wn(i){var s=document.implementation.createHTMLDocument("").body;s.innerHTML=i;var p=[];return k(s,"*").forEach(function(l){var f=!1;Array.prototype.slice.call(l.attributes).forEach(function(j){j.name.indexOf("data-ge-")===0&&(l.removeAttribute(j.name),f=!0)});var E=(l.getAttribute("class")||"").split(/\s+/).filter(Boolean),w=E.filter(function(j){return j!=="column"&&j.indexOf("ge-")!==0});w.length!==E.length&&(f=!0),w.length?l.setAttribute("class",w.join(" ")):l.removeAttribute("class"),f&&l.tagName==="DIV"&&!l.attributes.length&&p.push(l)}),p.forEach(function(l){kt(l)}),s.innerHTML}function C(i,s){var p=Bi(i),l=St.get(p);if(l)return Vr.has(p)||(Vr.add(p),N(Ki("warning.already_editing"))),l;if(!(this instanceof C))return new C(p,s);Vi(this,p,s||{})}var Vr=new WeakSet;C.create=function(i,s){return new C(i,s)};C.get=function(i){var s=he(i);return s&&St.get(s)||null};function Vi(i,s,p){var l=Object.assign({new_row_layouts:[[12],[6,6],[4,4,4],[3,3,3,3],[2,2,2,2,2,2],[2,8,2],[4,8],[8,4]],row_classes:[],col_classes:[],col_tools:[],row_tools:[],drag_handle:"tool",toolbar_drag:"auto",element_tools:[],element_classes:[],container_classes:[],pane_classes:[],container_tools:[],tab_tools:[],accordion_tools:[],plugins:null,row_cols:!0,utilities:{},elements:Fe.elements,custom_filter:"",valid_col_sizes:[1,2,3,4,5,6,7,8,9,10,11,12,"equal","auto"],valid_col_offsets:[0,1,2,3,4,5,6,7,8,9,10,11],add_column:Fe.add_column,layout_modes:At.slice(),default_view:V,resize:Fe.resize,source_textarea:"",edit_source:!0,locale:"en",locale_strings:{},callbacks:{},confirm_delete:!0,settings_panel:"offcanvas",drag:Fe.drag},p);Object.keys(Fe).forEach(function(e){l[e]=Object.assign({},Fe[e],l[e])}),Object.keys(Wr).forEach(function(e){p&&p[e]!==void 0&&N(Tt(l,"warning.setting_removed",{setting:e,replacement:Wr[e]}))});var f,E,w,j,be,Ae,q,S=l.default_view,R=null,$=null,Se=!1,Te=null,yn={},Ot=[],Gr=++Hi,Cn=!1,En=new WeakMap,Lt=new WeakMap,it=new WeakMap,xn=new WeakMap,Pt=new WeakSet,_n=new AbortController;f=x(s,"ge-canvas");function X(e,t){yn[e]||(yn[e]=!0,N(t))}function g(e,t){return Tt(l,e,t)}function qr(e){l.locale=e,i.settings=cn(),kn(),ur(),fr(),E.remove(),Ln(),Un()}var He=0,Mt=[];function Q(e,t,n){return Object.assign({kind:e,node:t,parent:t.parentElement,canvas:f,breakpoint:pn(),source:"api"},n||{})}function P(e,t){var n=[e],r=e.replace(/^(before|after)-add-.+$/,"$1-add");r!==e&&n.push(r);var o=!1;return n.forEach(function(a){var u=new CustomEvent("grideditor:"+a,{detail:t,bubbles:!0,cancelable:!0});f.dispatchEvent(u)||(o=!0)}),n.forEach(function(a){var u=l.callbacks[a.replace(/-/g,"_")];typeof u=="function"&&u(t)===!1&&(o=!0)}),!o}function W(e){He++;try{return e()}finally{if(He--,He===0)for(;Mt.length;)Mt.shift()()}}function zt(e){if(He===0){e();return}Mt.push(e)}function Z(e,t,n,r){var o=Xr(e);return W(function(){var a=Q(e,t,r);return P("before-add-"+o,a)?(n(),ue(),P("after-add-"+o,a),t):null})}function Xr(e){return C.containers[e]?"container":e}function Jr(e,t){if(!l.confirm_delete){t();return}var n=ot();if(!n){window.confirm(e)&&t();return}var r=Yr(),o=!1;O(r,".ge-confirm-message").textContent=e,O(r,".ge-confirm-ok").onclick=function(){o=!0,n.getInstance(r).hide()},se.hidden=function(){o&&t()},se.shown=function(){O(r,".ge-confirm-ok").focus()},n.getOrCreateInstance(r).show()}var se={hidden:null,shown:null};function Yr(){return R||(R=B('<div class="modal fade ge-confirm" tabindex="-1" aria-hidden="true"><div class="modal-dialog modal-dialog-centered"><div class="modal-content"><div class="modal-header"><h5 class="modal-title"></h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div><div class="modal-body"><p class="ge-confirm-message"></p></div><div class="modal-footer"><button type="button" class="btn btn-secondary ge-confirm-cancel" data-bs-dismiss="modal"></button><button type="button" class="btn btn-danger ge-confirm-ok"></button></div></div></div></div>'),document.body.appendChild(R),O(R,".modal-title").textContent=g("confirm.title"),O(R,".btn-close").setAttribute("aria-label",g("confirm.cancel")),O(R,".ge-confirm-cancel").textContent=g("confirm.cancel"),O(R,".ge-confirm-ok").textContent=g("confirm.ok"),An(R),R.addEventListener("hidden.bs.modal",function(){se.hidden&&se.hidden()}),R.addEventListener("shown.bs.modal",function(){se.shown&&se.shown()}),R)}function kn(){R&&(se.hidden=null,se.shown=null,jt(R),R=null)}function jt(e){var t=ot(),n=t?t.getInstance(e):null,r=!1,o=function(){r||(r=!0,n&&n.dispose(),e.remove())};if(!n||!It.get(e)&&!y(e,"show")){o();return}e.addEventListener("hidden.bs.modal",o,{once:!0}),e.addEventListener("shown.bs.modal",function(){n.hide()},{once:!0}),n.hide()}var It=new WeakMap;function An(e){te(e,"show.bs.modal hide.bs.modal",function(){It.set(e,!0)}),te(e,"shown.bs.modal hidden.bs.modal",function(){It.set(e,!1)})}function we(e,t,n,r){W(function(){var o=Q(e,t,{source:"tool"});P("before-delete",o)&&Jr(n,function(){W(function(){r(function(){t.remove(),W(function(){ue(),P("after-delete",o)})})})})})}function Dt(e,t,n){if(n=n||S,n!==V){var r=G(n),o=gt({size:t,offset:mt(e,r)||0});return o.refused||ze(e,r)===o.size?null:{writes:[{tier:r,size:o.size}],cleared:null,size:o.size}}var a=b.some(function(m){return gt({size:t,offset:mt(e,m)||0}).refused});if(a)return null;var u=b[0],c=[],d=[];return b.slice(1).forEach(function(m){var h=ze(e,m);h!==null&&(c.push({tier:m,size:null}),d.push({breakpoint:m.key,value:h}))}),ze(e,u)!==t&&c.unshift({tier:u,size:t}),c.length?{writes:c,cleared:d,size:t}:null}function Nt(e,t){t.writes.forEach(function(n){pt(e,n.tier,n.size)}),Qe(e)}function Rt(e,t){return t&&(e.cleared=t),e}function Ut(e,t,n,r){r=r||S;var o=Ge(e),a=Dt(e,t,r);return a?W(function(){var u=Q("column",e,Rt({source:n,breakpoint:r,from:o,to:a.size},a.cleared));return P("before-resize",u)?(Nt(e,a),oe(e),P("after-resize",u),!0):(oe(e),!1)}):!1}function Sn(e,t,n){var r=S===V,o=r?b[0]:G(S),a=Xe(e);t=Math.min(Math.max(t,0),Fr);var u=r?b.slice(1).filter(function(c){return ft(e,c)!==null}):[];return(ft(e,o)||0)===t&&!u.length?!1:W(function(){var c=Q("column",e,Rt({source:n,from:a,to:t},r?u.map(function(d){return{breakpoint:d.key,value:ft(e,d)}}):null));return P("before-indent",c)?(on(e,o,t),u.forEach(function(d){on(e,d,0)}),(r?b:[o]).forEach(function(d){var m=rn(e,d);if(H(m)){var h=gt({size:m,offset:t,leading:"offset"});h.size!==m&&pt(e,d,h.size)}}),oe(e),P("after-indent",c),!0):!1})}function Ft(e){var t=e.parentElement;return{parent:t,index:Y(t).filter(function(n){return!y(n,"ge-tools-drawer")}).indexOf(e)}}function ne(e){var t=null;return Object.keys(A).forEach(function(n){var r=A[n];!t&&r.kindOf&&(t=r.kindOf(e))}),t||(e.getAttribute("data-ge-container")?e.getAttribute("data-ge-container"):y(e,"ge-tab")?"tab":y(e,"ge-accordion-item")?"accordion-item":y(e,"row")?"row":y(e,"column")?"column":y(e,"ge-element")?"element":(y(e,"ge-text-block")&&(e=T(e,".ge-content")||e),y(e,"ge-content")?e.getAttribute("data-ge-content-type")?"text":"plain":"node"))}if(l.source_textarea){var We=he(l.source_textarea).value,Tn=v("div");Tn.innerHTML=We,We.length>0&&!Tn.querySelector(".row")&&(We='<div class="row"><div class="col-lg-12">'+We+"</div></div>"),bt(s,We)}if(s.children.length&&!s.querySelector("div.row")){var $r=Y(s),On=B('<div class="row"><div class="col-lg-12"></div></div>');s.appendChild(On),$r.forEach(function(e){On.firstChild.appendChild(e)})}function Qr(){q=v("textarea",{class:"ge-html-output"}),f.parentNode.insertBefore(q,f),Ln();var e={signal:_n.signal};window.addEventListener("scroll",co,e),Re(f,"click",".ge-content",fo,e),Re(f,"click",".ge-popup-trigger, [data-ge-popup-target]",function(t){y(f,"ge-editing")&&t.preventDefault()},e)}function Zr(e){!De(e,".ge-content")||!f.contains(e)||(re("onContentReady",e),Be(e))}function Ln(){E=v("div",{class:"ge-mainControls"}),q.parentNode.insertBefore(E,q),w=E.appendChild(v("div",{class:"ge-wrapper ge-top"})),j=w.appendChild(v("div",{class:"ge-addRowGroup btn-group"})),be=v("div",{class:"ge-addContainerGroup btn-group ms-1"}),l.new_row_layouts.forEach(function(u){var c=!Array.isArray(u),d=v("a",{class:"btn btn-sm btn-primary",title:c?g("row.add_row_cols",{columns:u.columns,counts:so(u.row_cols)}):g("row.add",{layout:u.join("-")}),"data-ge-toolbar":"row","data-ge-layout":c?JSON.stringify(u):u.join(",")});d.addEventListener("click",function(){var _=Ke(u),Ce=Z("row",_,function(){f.appendChild(_)},{parent:f,source:"tool"});Ce&&_.scrollIntoView&&_.scrollIntoView({behavior:"smooth"})}),j.appendChild(d),d.appendChild(B('<i class="bi bi-plus"></i>'));var m=c?uo(u):u,h='<div class="row ge-row-icon">';m.forEach(function(_){h+='<div class="column '+ke(b[0],_)+'"></div>'}),h+="</div>",d.appendChild(B(h))}),w.appendChild(be),Object.keys(D).forEach(function(u){var c=D[u],d=Pn(v("a",{class:"btn btn-sm btn-primary ge-add-container"}),g(c.labelKey),c.iconClass);yt(d,{"data-ge-toolbar":"container","data-ge-container-type":u}),d.addEventListener("click",function(){var m=je(),h=m.appendChild(ge(z)),_=h.appendChild(c.create({}));Z(u,_,function(){f.appendChild(m)},{parent:f,source:"tool"})}),be.appendChild(d)});var e=[];Object.keys(A).forEach(function(u){(A[u].toolbar||[]).forEach(function(c,d){var m=eo(u,c,d);c.align==="end"?e.push(m):be.appendChild(m)})}),Ae=B('<div class="dropdown pull-right ge-layout-mode"><button type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown"></button><div class="dropdown-menu" role="menu"></div></div>'),Re(Ae,"click","a",function(){Or(this.getAttribute("data-ge-view"))}),w.appendChild(Ae),l.layout_modes.forEach(function(u){O(Ae,".dropdown-menu").appendChild(v("a",{class:"dropdown-item","data-ge-view":u,title:g(rt(u))},g(rt(u))))}),O(Ae,"button").textContent=g(rt(S));var t=w.appendChild(v("div",{class:"btn-group pull-right"}));if(l.edit_source){var n=B('<button type="button" class="btn btn-sm btn-primary gm-edit-mode"><i class="bi bi-code-slash"></i></button>');n.setAttribute("title",g("tool.edit_source")),I(n,"active btn-danger",Se),n.addEventListener("click",function(){Se?Fn():go(),I(n,"active btn-danger",Se)}),t.appendChild(n)}var r=B('<button type="button" class="btn btn-sm btn-primary gm-preview"><i class="bi bi-eye-fill"></i></button>'),o=function(){y(r,"active")||x(f,"ge-editing")};if(r.setAttribute("title",g("tool.preview")),r.addEventListener("mouseenter",function(){L(f,"ge-editing")}),r.addEventListener("click",function(){I(r,"active btn-danger"),o()}),r.addEventListener("mouseleave",o),t.appendChild(r),e.length){var a=w.appendChild(v("div",{class:"pull-right ge-toolbar-end"}));e.forEach(function(u){a.appendChild(u)})}no()}function Pn(e,t,n){return e.setAttribute("title",t),n?(e.appendChild(v("i",{class:n})),e):(e.appendChild(B('<i class="bi bi-plus"></i>')),e.appendChild(v("span",{},t)),e)}function eo(e,t,n){var r=t.iconClass||(t.align==="end"?"bi bi-plus":null),o=typeof t.label=="function"?t.label():t.label||g(t.labelKey),a=Pn(v("a",{class:"btn btn-sm btn-primary ge-add-container ge-add-feature"}),o,r);return x(a,t.className||""),yt(a,{"data-ge-toolbar":"feature","data-ge-feature":e,"data-ge-item":n}),a.addEventListener("click",function(){var u=t.create(),c=t.inColumn?Ht(u):u,d=Z(t.kind,u,function(){f.appendChild(c)},{parent:f,source:t.source||"tool"});d&&t.inColumn&&c.scrollIntoView&&c.scrollIntoView({behavior:"smooth"})}),a}function to(){return l.toolbar_drag==="auto"?l.drag_handle==="drawer":!!l.toolbar_drag}function no(){var e=k(E,"[data-ge-toolbar]");e.forEach(function(t){L(t,"ge-palette-button"),t.removeEventListener("pointerdown",Mn)}),to()&&e.forEach(function(t){x(t,"ge-palette-button"),t.addEventListener("pointerdown",Mn)})}function Mn(e){var t=e.currentTarget,n=e.pageX,r=e.pageY,o=null;if(e.button)return;function a(d){return Math.abs(d.pageX-n)+Math.abs(d.pageY-r)>l.drag.threshold}function u(d){if(!o){if(!a(d))return;o=x(t.cloneNode(!0),"ge-toolbar-helper"),document.body.appendChild(o),x(f,"ge-dropping")}ve(o,{left:d.pageX-14,top:d.pageY-14}),oo(d.pageX,d.pageY)}function c(d){if(document.removeEventListener("pointermove",u),vn(document,"pointerup pointercancel",c),!!o){o.remove(),L(f,"ge-dropping"),Wt();var m=function(_){_.target!==t&&!t.contains(_.target)||(_.preventDefault(),_.stopImmediatePropagation())};window.addEventListener("click",m,{capture:!0,once:!0}),window.setTimeout(function(){window.removeEventListener("click",m,{capture:!0})},0);var h=zn(d.pageX,d.pageY);h&&io(t,h)}}document.addEventListener("pointermove",u),te(document,"pointerup pointercancel",c)}function zn(e,t){var n=e-window.scrollX,r=t-window.scrollY,o=document.elementFromPoint(n,r);if(!o)return null;var a=ee(o,[".column",".ge-canvas"].concat(sn("regions")).join(", "));if(!a||a!==f&&!f.contains(a))return null;var u=null;return Y(a,ln()).forEach(function(c){if(!u){var d=c.getBoundingClientRect();r<d.top+d.height/2&&(u=c)}}),{region:a,before:u}}function ro(e,t){var n=A[e.getAttribute("data-ge-feature")].toolbar[parseInt(e.getAttribute("data-ge-item"),10)],r=n.create(),o=r;if(n.inColumn)De(t.region,".column")||(o=Ht(r));else if(!un(t.region,r)){var a=t.region===f?[]:zr(t.region,f).reverse().concat([t.region]),u=a[0]||null;t={region:f,before:u?u.nextElementSibling:null}}return Z(n.kind,r,function(){t.before?t.before.parentNode.insertBefore(o,t.before):t.region.appendChild(o)},{parent:t.region,source:n.source||"dragdrop"})}function Ht(e){var t=je();return t.appendChild(ge(z)).appendChild(e),t}function oo(e,t){var n=zn(e,t);if(!n)return Wt();Te||(Te=v("div",{class:"ge-drop-marker"})),n.before?n.before.parentNode.insertBefore(Te,n.before):n.region.appendChild(Te)}function Wt(){Te&&Te.remove()}function io(e,t){if(e.getAttribute("data-ge-toolbar")==="feature")return ro(e,t);var n=e.getAttribute("data-ge-toolbar")==="container",r=e.getAttribute("data-ge-container-type"),o=n?D[r].create({}):lo(e.getAttribute("data-ge-layout")),a=o;return n&&!De(t.region,".column")&&(a=Ht(o)),Z(n?r:"row",o,function(){t.before?t.before.parentNode.insertBefore(a,t.before):t.region.appendChild(a)},{parent:t.region,source:"dragdrop"})}function ao(){for(var e=[],t=1;t<=z;t++)e.push(String(t));return{name:"col",values:e.concat(hn),appliesTo:["column"],labelKey:"utility.col_width",className:function(n,r){return ke(G(n),Kt(r))},choices:function(){return l.valid_col_sizes.map(String)},label:function(n){return n==="equal"?g("utility.col_equal"):n==="auto"?g("utility.col_auto"):n},write:function(n,r,o,a){return Ut(n,r===null?null:Kt(r),a,o)},blank:function(n,r){var o=r===V?null:ct(n,G(r));return o?g("utility.col_from_row",{count:vr(o.value)}):null}}}function Kt(e){return/^\d+$/.test(String(e))?parseInt(e,10):e}function lo(e){return/^\s*\{/.test(e||"")?Ke(JSON.parse(e)):Ke((e||"").split(",").filter(function(t){return t!==""}).map(Kt))}function Ke(e){var t=je();if(Array.isArray(e))return e.forEach(function(r){t.appendChild(ge(r))}),t;Object.keys(e.row_cols||{}).forEach(function(r){var o=e.row_cols[r],a=G(r);a&&Ue.indexOf(String(o))!==-1&&x(t,bn(a,o))});for(var n=0;n<(e.columns||0);n++)t.appendChild(ge(null));return t}function so(e){return b.filter(function(t){return e&&e[t.key]!==void 0}).map(function(t){return(t.infix?t.key+": ":"")+e[t.key]}).join(", ")}function uo(e){var t=1;return Object.keys(e.row_cols||{}).forEach(function(n){var r=e.row_cols[n];r!=="auto"&&(t=Math.max(t,parseInt(r,10)||1))}),Array.apply(null,Array(Math.min(t,e.columns||t))).map(function(){return"equal"})}function co(){var e=window.pageYOffset;e>xt(E).top&&e<xt(f).top+jr(f)?y(w,"ge-top")&&(ve(w,{left:xt(w).left,width:tt(w)}),L(w,"ge-top"),x(w,"ge-fixed")):y(w,"ge-fixed")&&(ve(w,{left:"",width:""}),L(w,"ge-fixed"),x(w,"ge-top"))}function fo(){var e=this;if(!e.getAttribute("data-ge-content-type")&&!ie()&&Ct(e)){var t=Rn();t.length&&(t.length===1?jn(e,t[0]):mo(e,t))}}function jn(e,t){return t.available&&!t.available()?(t.missingKey&&console.error(g(t.missingKey)),!1):W(function(){var n=Q("plain",e,{source:"tool",from:"plain",to:t.type});if(!P("before-convert",n))return!1;x(e,"ge-content-type-"+t.type),e.setAttribute("data-ge-content-type",t.type);var r=e.parentElement;return y(r,"ge-text-block")&&(L(r,"ge-plain-block"),Y(r,".ge-tools-drawer").forEach(function(o){o.remove()})),P("after-convert",n),t.edit(e),!0})}function mo(e,t){var n=y(e.parentElement,"ge-text-block")?e.parentElement:null;n&&In(T(n,".ge-tools-drawer"),t.map(function(r){return{label:r.label,title:g("tool.convert_type",{editor:r.label}),attributes:{"data-ge-content-type":r.type},choose:function(){jn(e,r)}}}),"ge-text-picker ge-convert-picker",n)}function In(e,t,n,r){if(ie(),!!e){var o=ee(e,".ge-tools-drawer");o&&x(o,"ge-picker-open"),$=e.appendChild(x(v("div",{class:"ge-size-picker"}),n||"")),t.forEach(function(a){var u=yt(v("a",{class:"ge-size ge-size-flex"}),a.attributes||{});u.setAttribute("title",a.title||a.label),u.textContent=a.label,u.addEventListener("click",function(c){c.preventDefault(),c.stopPropagation(),ie(),a.choose()}),$.appendChild(u)}),Dn(r||e)}}function Dn(e){e.addEventListener("mouseleave",function(){window.setTimeout(function(){$&&!$.matches(":hover")&&ie()},400)},{once:!0})}function Nn(){var e={},t=[];return Object.keys(A).forEach(function(n){var r=A[n];r.textTypes&&(r.textTypes()||[]).forEach(function(o){if(e[o.type]){e[o.type]!==n&&X("text-type:"+o.type,'the "'+n+'" plugin declares the text type "'+o.type+'", which the "'+e[o.type]+'" plugin already declares: ignored');return}e[o.type]=n,t.push(o)})}),t}function Rn(){return Nn().filter(function(e){return e.offered!==!1})}function po(e){return Nn().some(function(t){return t.type===e})}function Un(){Oe(),ue()}function go(){Oe(),q.style.height=.8*document.documentElement.clientHeight+"px",q.value=f.innerHTML,_e(q),le(f),Se=!0,re("onSourceOpen",q)}function Fn(){re("onSourceClose",q),Se=!1,bt(f,q.value),_e(f),ue(),le(q)}function ue(){F&&!xe(F.node)&&me(),pe&&pe.home&&!xe(pe.home)&&ae(),Ar(!0),x(f,"ge-editing"),I(f,"ge-drag-drawer",l.drag_handle==="drawer"),ni();var e=ki();Ai(e),Ti(e),Oi(),Bo(),Vo(),jo(),re("onInit"),ui(),mi(),Tr(S),Be(f)}function Oe(){me(),L(f,"ge-editing ge-drag-drawer ge-dropping"),re("onBeforeDeinit"),ie(),Wt(),ae(),k(f,".ge-tools-drawer").forEach(function(e){e.remove()}),lt.clear(),Li(),re("onDeinit"),Jt(f),k(f,"[data-ge-row-cols]").forEach(function(e){e.removeAttribute("data-ge-row-cols")}),Io(),Ci(),vi(),Ar(!1)}function Hn(){Oe(),Qe(f);var e=f.innerHTML;return ue(),e}function vo(e){Oe(),Qe(e);var t=e.outerHTML;return ue(),t}function ho(){return wn(Hn())}function bo(){Se&&Fn(),Oe(),kn(),ur(),fr(),E.remove(),q.remove(),_n.abort(),St.delete(f),Cn=!0}function wo(){var e=yo();Vt("grid",{},ao()),l.row_cols!==!1&&Vt("grid",{},ai());var t={};[C.containers,C.features,C.utilities].forEach(function(d){Object.keys(d).forEach(function(m){(d[m].replaces||[]).forEach(function(h){t[h]||(t[h]=m)})})});var n=function(d){return!l.plugins||l.plugins.indexOf(d)!==-1},r=function(d){return!!l.plugins&&l.plugins.some(function(m){return t[m]===d})},o=function(d){return!!t[d]&&a(t[d])},a=function(d){return!o(d)&&(n(d)||r(d))},u=function(d){return!o(d)||!n(d)?!1:(X("replaced:"+d,'the "'+d+'" plugin is part of "'+t[d]+'", which is loaded: ignoring it'),!0)},c=function(d,m){return m.always===!0||a(d)};Object.keys(C.containers).forEach(function(d){!u(d)&&a(d)&&(D[d]=C.containers[d](e))}),Object.keys(C.features).forEach(function(d){var m=C.features[d];!u(d)&&c(d,m)&&(A[d]=m(e))}),Object.keys(C.utilities).forEach(function(d){u(d)||!a(d)||(K[d]=C.utilities[d](e),(K[d].families||[]).forEach(function(m){Vt(d,K[d],m)}))}),Object.keys(A).forEach(function(d){var m=A[d].methods||{};Object.keys(m).forEach(function(h){Ve[h]=m[h]})}),(l.plugins||[]).forEach(function(d){if(!(D[d]||A[d]||K[d])){if(o(d)){X("renamed:"+d,'the "'+d+'" plugin is part of "'+t[d]+'" now: name "'+t[d]+'" in the plugins setting instead');return}X("plugin:"+d,'the "'+d+'" plugin is not loaded: include dist/plugins/grideditor.'+d+".js after the editor")}})}function re(e,t){[D,A,K].forEach(function(n){Object.keys(n).forEach(function(r){n[r][e]&&n[r][e](t)})})}function yo(){return{canvas:f,settings:l,t:g,warn:N,containerId:Mo,defaultRegion:zo,createTool:M,createMoveTool:ye,addSettingsTool:Ye,deleteNode:we,place:ht,createPaneControls:No,makeLabelEditable:Ro,labelIn:Uo,unwrapLabels:Fo,suspendToggles:er,resumeToggles:tr,emit:P,payloadFor:Q,operate:W,kindOf:ne,view:pn,viewTiers:function(){return Hr(S).map(function(e){return e.key})},breakpoints:b.map(function(e){return e.key}),getUtility:Xn,setUtility:Xt,utilityField:Po,bareStyle:_o,hostStyle:Jn,setHostStyle:Oo,openDialog:cr,closeDialog:ae,rowFromLayout:Ke,nodeHtml:vo,textReady:Zr,attachPicker:rr,openPicker:In,closePicker:ie,detailsOf:lr,drawerOf:Co,toolbarItems:function(e){return E?k(E,'[data-ge-toolbar="feature"][data-ge-feature="'+e+'"]'):[]}}}function Co(e){if(y(e,"ge-content")){var t=e.parentElement;return y(t,"ge-text-block")?T(t,".ge-tools-drawer"):null}return T(e,".ge-tools-drawer")}var de={},Eo=".row, .column, .ge-content, .ge-element, [data-ge-container]",Le="data-ge-preview",Bt=!1;function Vt(e,t,n){var r=n.name||n.prefix;if(de[r]){N('the "'+e+'" plugin declares the utility "'+r+'", which the "'+de[r].plugin+'" plugin already declared: ignored');return}de[r]={plugin:e,family:Object.assign({},n,{name:r,values:n.values.map(String),appliesTo:n.appliesTo||t.appliesTo||["row","column"]})}}function at(e,t){return de[e]?de[e].family:(X("utility:"+e,t+"("+JSON.stringify(e)+"): no loaded plugin declares that utility"),null)}function Wn(e,t){return t==="plain"&&(t="text"),e.appliesTo.indexOf(t)!==-1?!0:!!D[t]&&e.appliesTo.indexOf("container")!==-1}function Kn(e){return Object.keys(de).map(function(t){return de[t].family}).filter(function(t){return Wn(t,e)})}function Gt(e,t,n){return e.className?e.className(t.key,n):e.prefix+(t.infix?"-"+t.infix:"")+"-"+n}function ce(e,t,n){for(var r=(e.getAttribute("class")||"").split(/\s+/),o=0;o<t.values.length;o++)if(r.indexOf(Gt(t,n,t.values[o]))!==-1)return t.values[o];return null}function Bn(e,t,n){for(var r=b.indexOf(n)-1;r>=0;r--){var o=ce(e,t,b[r]);if(o!==null)return{tier:b[r],value:o}}return null}function Vn(e,t,n){var r=ce(e,t,n);if(r!==null)return r;var o=Bn(e,t,n);return o?o.value:null}function qt(e,t){return b.map(function(n){return{tier:n,value:ce(e,t,n)}}).filter(function(n){return n.value!==null})}function Gn(e,t,n,r){t.values.forEach(function(o){L(e,Gt(t,n,o))}),r!==null&&x(e,Gt(t,n,r)),wt(e)}function qn(e,t,n){return n===V?ce(e,t,b[0]):Vn(e,t,G(n))}function xo(e,t,n,r){if(n!==V){var o=G(n);return ce(e,t,o)===r?null:{writes:[{tier:o,value:r}],cleared:[]}}var a=[],u=[];return qt(e,t).forEach(function(c){c.tier!==b[0]&&(a.push({tier:c.tier,value:null}),u.push({breakpoint:c.tier.key,value:c.value}))}),ce(e,t,b[0])!==r&&a.unshift({tier:b[0],value:r}),a.length?{writes:a,cleared:u}:null}function Xn(e,t,n){e=he(e);var r=at(t,"getUtility");if(!r||!e)return null;var o=n===void 0?S:mn(n);return o===null?(N("getUtility("+JSON.stringify(n)+"): no such layout mode"),null):qn(e,r,o)}function Xt(e,t,n,r){r=typeof r=="string"?{view:r}:r||{},e=he(e);var o=at(t,"setUtility");if(!o||!e)return!1;var a=r.view===void 0?S:mn(r.view);if(a===null)return N("setUtility("+JSON.stringify(r.view)+"): no such layout mode"),!1;if(n=n==null||n===""?null:String(n),n!==null&&o.values.indexOf(n)===-1)return N("setUtility: "+JSON.stringify(n)+' is not a value of "'+t+'", which takes '+JSON.stringify(o.values)),!1;var u=ne(e);if(!Wn(o,u))return N('setUtility: "'+t+'" does not apply to a '+u),!1;if(o.write)return o.write(e,n,a,r.source||"api");var c=xo(e,o,a,n);return c?W(function(){var d=Q(u,e,{family:t,breakpoint:a,tiers:c.writes.map(function(m){return m.tier.key}),from:qn(e,o,a),to:n,cleared:c.cleared,source:r.source||"api"});return P("before-utility",d)?(c.writes.forEach(function(m){Gn(e,o,m.tier,m.value)}),oe(e),P("after-utility",d),!0):(oe(e),!1)}):!1}function _o(e,t,n){var r=at(t,"bareStyle");if(e=he(e),!r||!e)return null;var o=e.getAttribute("class");b.forEach(function(u){Gn(e,r,u,null)});var a=getComputedStyle(e).getPropertyValue(n);return o===null?e.removeAttribute("class"):e.setAttribute("class",o),a}function oe(e){var t=lr(e);if(t){var n=O(t,".ge-classes");n&&(n.value=Zt(e).join(" ")),Y(t,".ge-utilities").forEach(function(r){Yt(r)})}$n(e),Be(e)}function ko(e){return Ee(e,Eo)}function Be(e){Jt(e),S!==V&&Ao(e,G(S)),ii(e),re("onRefresh",e)}function Ao(e,t){ko(e).forEach(function(n){var r=ne(n),o={};Kn(r).forEach(function(a){!a.preview||!qt(n,a).length||Object.assign(o,a.preview(Vn(n,a,t),n,r))}),r==="column"&&Object.assign(o,oi(n,t)),Object.keys(K).forEach(function(a){var u=K[a];u.preview&&Object.assign(o,u.preview(n,r,t.key))}),Object.keys(o).length&&So(n,o)})}function So(e,t){var n=e.style,r={};Object.keys(t).forEach(function(o){r[o]=[n.getPropertyValue(o),n.getPropertyPriority(o)],n.setProperty(o,String(t[o]),"important")}),e.setAttribute(Le,JSON.stringify(r))}function Jt(e){Ee(e,"["+Le+"]").forEach(function(t){var n=t.style,r={};try{r=JSON.parse(t.getAttribute(Le))||{}}catch(o){}Object.keys(r).forEach(function(o){var a=r[o];a&&a[0]?n.setProperty(o,a[0],a[1]):n.removeProperty(o)}),t.removeAttribute(Le),et(t)})}function To(e){var t=document.createElement("div"),n={};t.style.cssText=e.style.cssText;try{n=JSON.parse(e.getAttribute(Le))||{}}catch(r){}return Object.keys(n).forEach(function(r){var o=n[r];o&&o[0]?t.style.setProperty(r,o[0],o[1]):t.style.removeProperty(r)}),t.style}function Jn(e,t){var n=To(e);return t===void 0?n.cssText:{value:n.getPropertyValue(t),priority:n.getPropertyPriority(t)}}function Oo(e,t,n,r){if(n=n==null?"":String(n).trim(),r===void 0&&(r=Jn(e,t).priority),n!==""){var o=document.createElement("div").style;if(o.setProperty(t,n,r||""),o.getPropertyValue(t)==="")return!1}var a=e.hasAttribute(Le);return a&&Jt(e),n===""?e.style.removeProperty(t):e.style.setProperty(t,n,r||""),et(e),a&&Be(e),!0}function Lo(e){var t=ne(e),n=Kn(t).filter(function(u){return u.panel!==!1}).map(function(u){return Yn(e,u)});if(Object.keys(K).forEach(function(u){var c=K[u],d=c.panel?c.panel(e,t):null;d&&n.push(d)}),!n.length)return null;var r=I(v("div",{class:"ge-utilities"}),"ge-open",Bt);xn.set(r,e);var o=r.appendChild(v("a",{class:"ge-utilities-toggle"}));o.addEventListener("click",function(){Bt=!y(r,"ge-open"),sr().forEach(function(u){k(u,".ge-utilities").forEach(function(c){I(c,"ge-open",Bt)})})});var a=r.appendChild(v("div",{class:"ge-utilities-body"}));return n.forEach(function(u){a.appendChild(u)}),Yt(r),r}function Yn(e,t){var n=v("label",{class:"ge-utility","data-ge-family":t.name});n.appendChild(v("span",{class:"ge-utility-label"},t.labelKey?g(t.labelKey):t.name));var r=n.appendChild(v("select",{class:"form-select form-select-sm"}));return r.addEventListener("change",function(){Xt(e,t.name,this.value,{source:"panel"})}),n.appendChild(v("small",{class:"ge-utility-note"})),n}function Po(e,t){var n=at(t,"utilityField");if(!n)return null;var r=Yn(e,n);return $t(r,e),lt.set(r,e),r}var lt=new Map;function $n(e){lt.forEach(function(t,n){if(!n.isConnected){lt.delete(n);return}e&&t!==e||ee(n,".ge-utilities")||$t(n,t)})}function Yt(e){var t=xn.get(e);Y(e,".ge-utilities-toggle").forEach(function(n){n.textContent=g("utility.section",{view:g(rt(S))})}),k(e,".ge-utility").forEach(function(n){$t(n,t)})}function $t(e,t){var n=de[e.getAttribute("data-ge-family")].family,r=T(e,"select"),o=n.choices?n.choices(t,ne(t)):n.values,a,u,c="";if(r.innerHTML="",S===V){a=ce(t,n,b[0]),u=g("utility.default");var d=qt(t,n).filter(function(Ie){return Ie.tier!==b[0]});d.length&&(c=g("utility.varies",{breakpoints:d.map(function(Ie){return Ie.tier.key}).join(", ")}))}else{var m=G(S),h=Bn(t,n,m);a=ce(t,n,m),u=h?g("utility.inherit",{value:Qn(n,h.value),breakpoint:h.tier.key}):g("utility.default");var _=n.blank?n.blank(t,S):null;_&&a===null&&(u=_)}a!==null&&o.indexOf(a)===-1&&(o=o.concat([a])),r.appendChild(v("option",{value:""},u)),o.forEach(function(Ie){r.appendChild(v("option",{value:Ie},Qn(n,Ie)))}),r.value=a===null?"":a;var Ce=T(e,".ge-utility-note");Ce.textContent=c,gn(Ce,c!=="")}function Qn(e,t){return e.label?e.label(t):t}var D={},A={},K={},Ve={},Zn=0;function Mo(e){return Zn++,"ge-"+e+"-"+Zn+"-"+Math.random().toString(36).slice(2,6)}function zo(){var e=je();return e.appendChild(ge(z)),e}function Pe(e){return e?e.getAttribute("data-ge-container"):null}function jo(){k(f,"[data-ge-container]").forEach(function(e){var t=Pe(e),n=D[t];if(!n){X("container:"+t,'unknown container type "'+t+'"');return}x(e,"ge-container ge-container-"+t),n.mark(e),T(e,".ge-tools-drawer")||Do(e,t,n)})}function Io(){k(f,"[data-ge-container]").forEach(function(e){var t=D[Pe(e)];t&&t.unmark(e),L(e,"ge-container ge-container-"+Pe(e)),wt(e)})}function Me(e,t){var n=v("div",{class:t});return e.insertBefore(n,e.firstChild),n}function st(e,t){(t||[]).forEach(function(n){M(e,n.title||"",n.className||"",n.iconClass||"bi bi-wrench",n.on)})}function Do(e,t,n){var r=Me(e,"ge-tools-drawer ge-container-drawer");ye(r),Ye(r,e,l.container_classes),st(r,l.container_tools),n.tools&&n.tools(r,e),M(r,g("tool.delete_container"),"ge-delete-container","bi bi-trash",function(){we(t,e,g("confirm.delete_container"),function(o){nt(e,o)})}),n.addPane&&M(r,g(n.addPaneKey),"ge-add-pane","bi bi-plus-circle",function(){var o=n.addPane(e,{});Z(n.paneKind,o,function(){},{parent:e,source:"tool",container:e})})}function No(e,t,n,r,o){var a=Me(e,"ge-tools-drawer ge-pane-drawer");return ye(a),Ye(a,e,l.pane_classes),st(a,n),M(a,g("tool.delete_pane"),"ge-delete-pane","bi bi-trash",function(){we(t,e,r,function(u){o(u)})}),a}function er(e){e&&Ee(e,"[data-bs-toggle], [data-bs-dismiss]").forEach(function(t){["toggle","dismiss"].forEach(function(n){var r=t.getAttribute("data-bs-"+n);r!==null&&(t.setAttribute("data-ge-bs-"+n,r),t.removeAttribute("data-bs-"+n))})})}function tr(e){e&&Ee(e,"[data-ge-bs-toggle], [data-ge-bs-dismiss]").forEach(function(t){["toggle","dismiss"].forEach(function(n){var r=t.getAttribute("data-ge-bs-"+n);r!==null&&(t.setAttribute("data-bs-"+n,r),t.removeAttribute("data-ge-bs-"+n))})})}function Ro(e){if(!Pt.has(e)){var t=ee(e,"[data-bs-toggle], [data-ge-bs-toggle]");Pt.add(e),e.setAttribute("title",g("tool.rename")),e.addEventListener("dblclick",function(n){n.preventDefault(),n.stopPropagation(),er(t),e.setAttribute("contenteditable","true"),e.focus(),window.getSelection().selectAllChildren(e)}),e.addEventListener("keydown",function(n){e.getAttribute("contenteditable")==="true"&&n.key==="Enter"&&(n.preventDefault(),e.blur())}),e.addEventListener("blur",function(){e.removeAttribute("contenteditable"),tr(t)})}}function Uo(e){var t=T(e,".ge-pane-label");return t||(t=v("span",{class:"ge-pane-label"},e.textContent.trim()),e.innerHTML="",e.appendChild(t)),t}function Fo(e){k(e,".ge-pane-label").forEach(function(t){Pt.delete(t),kt(t)})}function nr(e,t){var n=ge(t);return Z("column",n,function(){e.appendChild(n)},{parent:e,source:"tool"})}function Ho(e,t){!l.add_column.picker||!e||rr(e,function(){Wo(e,t)})}function rr(e,t){var n=null,r=function(){window.clearTimeout(n),n=null};te(e,"mouseenter mousedown",function(){n||$||(n=window.setTimeout(function(){n=null,t()},l.add_column.delay))}),te(e,"mouseleave mouseup",r)}function Wo(e,t){ie();var n=an(t,fe()),r=ee(e,".ge-tools-drawer");r&&x(r,"ge-picker-open"),$=e.appendChild(v("div",{class:"ge-size-picker"})),l.valid_col_sizes.forEach(function(o){var a=v("a",{class:"ge-size","data-ge-size":o,title:Ko(o)},H(o)?o:ke(b[0],o));I(a,"ge-size-tight",H(o)&&o>n),I(a,"ge-size-flex",!H(o)),a.addEventListener("click",function(u){u.preventDefault(),u.stopPropagation(),ie(),nr(t,o)}),$.appendChild(a)}),Dn(e)}function Ko(e){return e==="equal"?g("tool.column_equal"):e==="auto"?g("tool.column_auto"):g("tool.column_size",{size:e})}function ie(){if(!$)return!1;var e=ee($,".ge-tools-drawer");return e&&L(e,"ge-picker-open"),$.remove(),$=null,!0}function Bo(){k(f,".row").forEach(function(e){if(!T(e,".ge-tools-drawer")){var t=Me(e,"ge-tools-drawer");ye(t),Ye(t,e,l.row_classes),st(t,l.row_tools),M(t,g("tool.delete_row"),"ge-delete-row","bi bi-trash",function(){we("row",e,g("confirm.delete_row"),function(n){nt(e,n)})}),M(t,g("tool.add_column"),"ge-add-column","bi bi-plus-circle",function(){ie()||nr(e,$e(e,fe())?null:l.add_column.size)}),Ho(T(t,".ge-add-column"),e)}})}function Vo(){k(f,".column").forEach(function(e){if(!T(e,".ge-tools-drawer")){var t=Me(e,"ge-tools-drawer");ye(t),M(t,g("tool.column_narrower"),"ge-decrease-col-width","bi bi-dash-lg",function(n){Ut(e,n.shiftKey?Je(l.valid_col_sizes):ut(l.valid_col_sizes.filter(H),qe(e),-1),"tool")}),M(t,g("tool.column_wider"),"ge-increase-col-width","bi bi-plus-lg",function(n){Ut(e,n.shiftKey?Go(e):ut(l.valid_col_sizes.filter(H),qe(e),1),"tool")}),M(t,g("tool.indent_decrease"),"ge-decrease-col-offset","bi bi-text-indent-right",function(n){Sn(e,n.shiftKey?Je(l.valid_col_offsets):ut(l.valid_col_offsets,Xe(e),-1),"tool")}),M(t,g("tool.indent_increase"),"ge-increase-col-offset","bi bi-text-indent-left",function(n){Sn(e,n.shiftKey?qo(e):ut(l.valid_col_offsets,Xe(e),1),"tool")}),Ye(t,e,l.col_classes),st(t,l.col_tools),M(t,g("tool.delete_column"),"ge-delete-column","bi bi-trash",function(){we("column",e,g("confirm.delete_column"),function(n){Nr(e,400,n,!0)})}),M(t,g("tool.add_row"),"ge-add-row","bi bi-plus-circle",function(){var n=je();Z("row",n,function(){e.appendChild(n)},{parent:e,source:"tool"})})}})}function fe(){return S===V?b[b.length-1]:G(S)}function Ge(e){var t=fe();if(ct(e,t))return null;var n=rn(e,t);return n===null?z:n}function qe(e){var t=Ge(e);if(H(t))return t;var n=Math.round(tt(e)/or(e.parentElement)*z);return Math.min(Math.max(n,1),z)}function or(e){var t=window.getComputedStyle(e);return e.clientWidth-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight)}function Xe(e){return mt(e,fe())||0}function ut(e,t,n){var r=e.indexOf(t);return r===-1?e.reduce(function(o,a){return Math.abs(a-t)<Math.abs(o-t)?a:o},e[0]):e[Math.min(Math.max(r+n,0),e.length-1)]}function Je(e){return e.filter(H).reduce(function(t,n){return Math.min(t,n)},z)}function Qt(e){return e.filter(H).reduce(function(t,n){return Math.max(t,n)},0)}function Go(e){var t=an(e.parentElement,fe(),e)-Xe(e);return Math.min(Qt(l.valid_col_sizes),Math.max(t,1))}function qo(e){var t=an(e.parentElement,fe(),e)-qe(e);return Math.min(Qt(l.valid_col_offsets),Math.max(t,0))}function ye(e){return l.drag_handle==="drawer"?null:M(e,g("tool.move"),"ge-move","bi bi-arrows-move")}function M(e,t,n,r,o){var a=v("a",{title:t,class:n});return a.appendChild(v("i",{class:r})),e.appendChild(a),typeof o=="function"&&a.addEventListener("click",o),o&&typeof o=="object"&&Object.keys(o).forEach(function(u){te(a,u,o[u])}),a}function Zt(e){return(e.getAttribute("class")||"").split(/\s+/).filter(function(t){return t!==""&&!Xo(t)})}function Xo(e){return e==="row"||e==="column"||/^(ge-|ui-)/.test(e)||/^col(-(sm|md|lg|xl|xxl))?(-auto)?$/.test(e)?!0:b.some(function(t){return new RegExp("^("+t.colPrefix+"|"+t.offsetPrefix+")\\d+$").test(e)})}function Jo(e,t){Zt(e).forEach(function(n){L(e,n)}),t.split(/\s+/).forEach(function(n){n!==""&&x(e,n)}),wt(e)}function Ye(e,t,n){var r=Yo(t,n||[]);En.set(t,r),M(e,g("tool.settings"),"ge-settings","bi bi-gear-fill",function(){Qo(t,r,this)});var o=ne(t);return Object.keys(K).forEach(function(a){K[a].drawerTools&&K[a].drawerTools(e,t,o)}),Object.keys(A).forEach(function(a){A[a].drawerTools&&A[a].drawerTools(e,t,o)}),e.appendChild(r)}function Yo(e,t){var n=v("div",{class:"ge-details"}),r=n.appendChild(v("div",{class:"ge-details-general"})),o=function(m){var h=v("label",{class:"ge-field"});return h.appendChild(v("span",{class:"ge-field-label"},m)),r.appendChild(h)},a=v("input",{class:"ge-id form-control form-control-sm",placeholder:g("tool.id_placeholder"),title:g("tool.id_title")});a.value=e.getAttribute("id")||"",o(g("panel.id")).appendChild(a),a.addEventListener("change",function(){this.value===""?e.removeAttribute("id"):e.setAttribute("id",this.value)});var u=v("input",{class:"ge-classes form-control form-control-sm",placeholder:g("tool.classes_placeholder"),title:g("tool.classes_title")});u.value=Zt(e).join(" "),o(g("panel.classes")).appendChild(u),u.addEventListener("change",function(){Jo(e,this.value),oe(e)});var c=r.appendChild(v("div",{class:"btn-group btn-group-sm ge-presets",role:"group"}));t.forEach(function(m){var h=y(e,m.cssClass),_=v("a",{role:"button",class:"btn btn-sm btn-outline-secondary",title:m.title?m.title:g("tool.toggle_class",{label:m.label}),"aria-pressed":h?"true":"false"});_.innerHTML=m.label,I(_,"active",h),_.addEventListener("click",function(){I(_,"active"),_.setAttribute("aria-pressed",y(_,"active")?"true":"false"),I(e,m.cssClass,y(_,"active")),oe(e)}),c.appendChild(_)}),$o(e).forEach(function(m){n.appendChild(m)});var d=Lo(e);return d&&n.appendChild(d),n}function $o(e){var t=ne(e),n=ar(),r=[];return[D,A,K].forEach(function(o){Object.keys(o).forEach(function(a){var u=o[a],c=u.panelSection?u.panelSection(e,t):null;if(!(!c||!c.body)){var d=v("div",{class:"ge-panel-section","data-ge-plugin":a});if(n==="offcanvas"||n==="modal")d.appendChild(c.body);else{var m=g(c.labelKey),h=d.appendChild(v("button",{type:"button",class:"btn btn-sm btn-outline-secondary ge-panel-section-open"},m));le(c.body),d.appendChild(c.body),h.addEventListener("click",function(){cr(c.titleKey?g(c.titleKey,{kind:mr(e)}):m,c.body,h)})}r.push(d)}})}),r}var ir=["offcanvas","popover","modal","inline"],U={},F=null,dt=new WeakMap;function ar(){return ir.indexOf(l.settings_panel)!==-1?l.settings_panel:(X("settings_panel",'settings_panel "'+l.settings_panel+'" is not one of '+ir.join(", ")+": using offcanvas"),"offcanvas")}function lr(e){return e&&En.get(e)||null}function sr(){return F&&F.mode!=="inline"?[f,F.details]:[f]}function Qo(e,t,n){var r=ar();if(r==="inline"){gn(t);return}var o=F&&F.details===t;me(),o||Zo(r,e,t,n)}function Zo(e,t,n,r){var o=ei(e),a=new AbortController;F={mode:e,node:t,details:n,home:n.parentElement,next:n.nextElementSibling,gear:r,listening:a},O(o,".ge-settings-title").textContent=g("panel.title",{kind:mr(t)}),O(o,".ge-settings-body").appendChild(n),_e(n),x(t,"ge-settings-target");var u={signal:a.signal};if(document.addEventListener("keydown",function(d){d.key==="Escape"&&!pe&&me()},u),e==="offcanvas"){var c=window.innerWidth<576;I(o,"offcanvas-end",!c),I(o,"offcanvas-bottom",c),L(o,"hiding"),o.getBoundingClientRect(),x(o,"show")}else e==="popover"?(en(o,r),te(window,"scroll resize",function(){en(o,r)},u),window.ResizeObserver&&(F.observer=new window.ResizeObserver(function(){en(o,r)}),F.observer.observe(n)),te(document,"mousedown touchstart",function(d){!pe&&!o.contains(d.target)&&!r.contains(d.target)&&me()},u)):tn(o,function(){F&&F.mode==="modal"&&me()})}function me(){ae();var e=F;if(e){F=null;var t=U[e.mode];e.listening.abort(),e.observer&&e.observer.disconnect(),e.mode==="offcanvas"?(L(t,"show"),x(t,"hiding"),window.setTimeout(function(){L(t,"hiding")},300)):e.mode==="popover"?le(t):nn(t),L(e.node,"ge-settings-target"),e.details.style.removeProperty("display"),et(e.details),e.home&&xe(e.home)?e.next&&e.next.parentElement===e.home?e.home.insertBefore(e.details,e.next):e.home.appendChild(e.details):e.details.remove()}}function ei(e){if(U[e])return U[e];var t=function(){return v("button",{type:"button",class:"btn-close ge-settings-close","aria-label":g("panel.close")})},n;return e==="offcanvas"?(n=B('<div class="offcanvas offcanvas-end ge-settings-panel ge-settings-offcanvas" tabindex="-1" role="dialog"><div class="offcanvas-header"><h5 class="offcanvas-title ge-settings-title"></h5></div><div class="offcanvas-body ge-settings-body"></div></div>'),O(n,".offcanvas-header").appendChild(t())):e==="popover"?(n=B('<div class="popover bs-popover-bottom ge-settings-panel ge-settings-popover" role="dialog"><div class="popover-arrow"></div><div class="popover-header"><span class="ge-settings-title"></span></div><div class="popover-body ge-settings-body"></div></div>'),O(n,".popover-header").appendChild(t()),le(n)):(n=B('<div class="modal fade ge-settings-panel ge-settings-modal" tabindex="-1" role="dialog" aria-hidden="true"><div class="modal-dialog modal-dialog-centered modal-dialog-scrollable"><div class="modal-content"><div class="modal-header"><h5 class="modal-title ge-settings-title"></h5></div><div class="modal-body ge-settings-body"></div><div class="modal-footer"></div></div></div></div>'),O(n,".modal-header").appendChild(t()),O(n,".modal-footer").appendChild(v("button",{type:"button",class:"btn btn-primary ge-settings-close"},g("panel.done")))),Re(n,"click",".ge-settings-close",function(r){r.preventDefault(),me()}),U[e]=document.body.appendChild(n),n}function ur(){me(),Object.keys(U).forEach(function(e){e==="modal"?jt(U[e]):U[e].remove()}),Object.keys(U).forEach(function(e){dr(U[e])}),U={}}function en(e,t){if(xe(t)){_e(e);var n=t.getBoundingClientRect(),r=8,o=T(e,".popover-body");o.style.removeProperty("max-height");var a=tt(e),u=Et(e),c=window.innerHeight-n.bottom-2*r,d=n.top-2*r,m=u<=c||c>=d,h=m?c:d;u>h&&(ve(o,{"max-height":Math.max(120,h-(u-Et(o)))}),u=Et(e));var _=m?n.bottom+r:n.top-r-u,Ce=Math.max(r,Math.min(n.left+n.width/2-24,window.innerWidth-a-r));I(e,"bs-popover-bottom",m),I(e,"bs-popover-top",!m),ve(e,{top:_+window.pageYOffset,left:Ce+window.pageXOffset}),ve(T(e,".popover-arrow"),{left:Math.max(r,Math.min(n.left+n.width/2-Ce-8,a-24))})}}function tn(e,t){var n=ot(),r=dt.get(e);if(r||(r={wanted:null,busy:!1,backdrop:null,dismissed:t},dt.set(e,r)),r.dismissed=t,!n){r.backdrop||(r.backdrop=v("div",{class:"modal-backdrop fade show ge-settings-backdrop"}),r.backdrop.addEventListener("click",function(){r.dismissed()}),document.body.appendChild(r.backdrop)),x(e,"show"),e.style.display="block",e.removeAttribute("aria-hidden");return}var o=n.getOrCreateInstance(e);r.watched||(r.watched=!0,An(e),e.addEventListener("hide.bs.modal",function(){r.wanted==="open"&&(r.wanted="closed",r.busy=!0)}),e.addEventListener("shown.bs.modal",function(){r.busy=!1,r.wanted==="closed"&&nn(e)}),e.addEventListener("hidden.bs.modal",function(){r.busy=!1,r.wanted==="open"?tn(e,r.dismissed):r.dismissed()})),r.wanted="open",r.busy||(r.busy=!0,o.show())}function nn(e){var t=ot(),n=dt.get(e);if(n){if(n.wanted="closed",!t){n.backdrop&&(n.backdrop.remove(),n.backdrop=null),L(e,"show"),e.style.removeProperty("display"),e.setAttribute("aria-hidden","true");return}!n.busy&&y(e,"show")&&(n.busy=!0,t.getOrCreateInstance(e).hide())}}function dr(e){var t=dt.get(e);t&&t.backdrop&&(t.backdrop.remove(),t.backdrop=null)}var J=null,pe=null;function ti(){return J||(J=B('<div class="modal fade ge-dialog" tabindex="-1" role="dialog" aria-hidden="true"><div class="modal-dialog modal-dialog-centered modal-dialog-scrollable"><div class="modal-content"><div class="modal-header"><h5 class="modal-title ge-dialog-title"></h5></div><div class="modal-body ge-dialog-body"></div><div class="modal-footer"></div></div></div></div>'),O(J,".modal-header").appendChild(v("button",{type:"button",class:"btn-close ge-dialog-close","aria-label":g("panel.close")})),O(J,".modal-footer").appendChild(v("button",{type:"button",class:"btn btn-primary ge-dialog-close"},g("panel.done"))),Re(J,"click",".ge-dialog-close",function(e){e.preventDefault(),ae()}),document.body.appendChild(J))}function cr(e,t,n){ae();var r=ti(),o=new AbortController;pe={body:t,home:t.parentElement,next:t.nextElementSibling,opener:n||document.activeElement,listening:o},O(r,".ge-dialog-title").textContent=e,O(r,".ge-dialog-body").appendChild(t),_e(t),ot()||document.addEventListener("keydown",function(a){a.key==="Escape"&&ae()},{signal:o.signal}),Object.keys(U).forEach(function(a){x(U[a],"ge-under-dialog")}),tn(r,function(){ae()})}function ae(){var e=pe;e&&(pe=null,e.listening.abort(),nn(J),Object.keys(U).forEach(function(t){L(U[t],"ge-under-dialog")}),le(e.body),e.home&&xe(e.home)?e.next&&e.next.parentElement===e.home?e.home.insertBefore(e.body,e.next):e.home.appendChild(e.body):e.body.remove(),e.opener&&xe(e.opener)&&e.opener.focus&&e.opener.focus())}function fr(){ae(),J&&(dr(J),jt(J),J=null)}function mr(e){var t=ne(e);if(D[t]&&D[t].labelKey)return g(D[t].labelKey);switch(t){case"row":return g("panel.kind_row");case"column":return g("panel.kind_column");case"text":return g("panel.kind_text");case"element":return g("panel.kind_element");case"section":return g("panel.kind_section");case"tab":return g("panel.kind_tab");case"accordion-item":return g("panel.kind_accordion_item");default:return t}}function ni(){k(f,'.column, div[class*="col-"], div.col').forEach(function(e){x(e,"column"),!(li(e).length||pr(e.parentElement))&&pt(e,b[0],z)})}function pr(e){return y(e,"row")&&b.some(function(t){return Ue.some(function(n){return y(e,bn(t,n))})})}function $e(e,t){if(!y(e,"row"))return null;for(var n=b.indexOf(t);n>=0;n--)for(var r=0;r<Ue.length;r++)if(y(e,bn(b[n],Ue[r])))return{tier:n,value:Ue[r]};return null}function gr(e,t){for(var n=b.indexOf(t);n>=0;n--){var r=ze(e,b[n]);if(r!==null)return{tier:n,size:r}}return null}function ct(e,t){var n=$e(e.parentElement,t);if(!n)return null;var r=gr(e,t);return!r||n.tier>r.tier||n.tier===r.tier&&r.size==="equal"?n:null}function ri(e){return e.value==="auto"?0:z/parseInt(e.value,10)}function oi(e,t){var n=ct(e,t);return n?{flex:"0 0 auto",width:n.value==="auto"?"auto":100/parseInt(n.value,10)+"%","max-width":"100%"}:pr(e.parentElement)&&!gr(e,t)?{flex:"0 0 auto",width:"100%","max-width":"100%"}:{}}function ii(e){Ee(e,".row").forEach(function(t){var n=l.row_cols===!1?null:S===V?$e(t,b[0])||null:$e(t,G(S));n?t.setAttribute("data-ge-row-cols",vr(n.value)):t.removeAttribute("data-ge-row-cols")})}function vr(e){return e==="auto"?g("badge.row_cols_auto"):g("badge.row_cols",{count:e})}function ai(){return{name:"row-cols",prefix:"row-cols",values:Ue,appliesTo:["row"],labelKey:"utility.row_cols"}}function ze(e,t){var n=br(e,t.colPrefix);return n!==null?n:y(e,ke(t,"auto"))?"auto":y(e,ke(t,"equal"))?"equal":null}function ft(e,t){return br(e,t.offsetPrefix)}function rn(e,t){return hr(e,t,ze)}function mt(e,t){return hr(e,t,ft)}function hr(e,t,n){for(var r=b.indexOf(t);r>=0;r--){var o=n(e,b[r]);if(o!==null)return o}return null}function br(e,t){var n=new RegExp("(?:^|\\s)"+t+"(\\d+)(?:\\s|$)").exec(e.getAttribute("class")||"");return n?parseInt(n[1],10):null}function wr(e,t,n){var r=(e.getAttribute("class")||"").split(/\s+/).filter(function(o){return o!==""&&!new RegExp("^"+t+"\\d+$").test(o)});n!==null&&r.push(t+n),e.setAttribute("class",r.join(" "))}function pt(e,t,n){wr(e,t.colPrefix,null),hn.forEach(function(r){L(e,ke(t,r))}),n!=null&&x(e,ke(t,n))}function on(e,t,n){wr(e,t.offsetPrefix,n||null)}function li(e){return b.filter(function(t){return ze(e,t)!==null})}function an(e,t,n){var r=0;return Y(e,".column").forEach(function(o){if(!(n&&o===n)){var a=ct(o,t),u=a?ri(a):rn(o,t);r+=(H(u)?u:0)+(mt(o,t)||0)}}),z-r}function gt(e){var t=e.size===null||e.size===void 0?null:e.size,n=e.offset===null||e.offset===void 0?0:e.offset;return n=Math.min(Math.max(n,0),Fr),t===null||!H(t)?{size:t,offset:n,refused:!1}:(t=Math.min(Math.max(t,1),z),t+n<=z?{size:t,offset:n,refused:!1}:e.leading==="offset"?{size:z-n,offset:n,refused:!1}:{size:null,offset:n,refused:!0})}function Qe(e){Ee(e,".column").forEach(function(t){ve(t,{width:"",height:"",left:"",top:""}),et(t)})}function yr(e){return"ge-"+e+"-"+Gr}function ln(){return[".row",".ge-text-block",".ge-content","[data-ge-container]"].concat(sn("blocks")).join(", ")}function sn(e){return Object.keys(A).map(function(t){return A[t][e]||null}).filter(function(t){return t!==null})}function un(e,t){var n=!0;return Object.keys(A).forEach(function(r){var o=A[r];n&&o.accepts&&o.accepts(e,t)===!1&&(n=!1)}),n}function si(){return l.drag_handle==="drawer"?".ge-tools-drawer > a:not(.ge-text-info):not(.ge-element-info), .ge-details, input, textarea, button, select, option":"input, textarea, button, select, option"}function vt(e,t){var n=Br();if(e=Array.isArray(e)?e:e?[e]:[],!(!e.length||!n)){var r=l.drag_handle==="drawer",o=si(),a=0;e.forEach(function(u){var c=t.group?{name:yr(t.group)}:{name:yr(t.draggable+"-"+ ++a),pull:!1,put:!1};t.group&&t.accepts&&(c.put=function(d,m,h){return m.options.group.name===c.name&&t.accepts(d.el,h)}),Ot.push(n.create(u,Object.assign({group:c,draggable:t.draggable,handle:r?".ge-tools-drawer":".ge-tools-drawer .ge-move",filter:function(d,m){return ee(d.target,o,u)?!0:!m||m.parentNode!==u},preventOnFilter:!1,forceFallback:!0,fallbackOnBody:!1,ghostClass:"ge-drag-placeholder",chosenClass:"ge-drag-chosen",dragClass:"ge-drag-helper",fallbackClass:"ge-drag-helper",animation:l.drag.animation,delay:l.drag.delay||l.drag.touch_delay,delayOnTouchOnly:!l.drag.delay,touchStartThreshold:l.drag.threshold,scroll:l.drag.scroll,onStart:di,onEnd:fi},t.options||{})))})}}function ui(){if(!Br()){X("sortable_missing",g("error.sortable_missing"));return}vt(k(f,".row"),{draggable:".column",group:"column"}),vt([f].concat(k(f,".column")),{draggable:ln(),group:"block",accepts:un});var e=sn("regions");e.length&&vt(k(f,e.join(", ")),{draggable:">"+ln(),group:"block",accepts:un}),re("onSortable",vt)}function di(e){var t=e.item,n=Ft(t),r=Cr(t),o={from:n,canceled:!1};Lt.set(t,o),W(function(){var a=P("before-move",Q(r.kind,r.node,{parent:n.parent,source:"dragdrop",from:n}));a||(o.canceled=!0)})}function Cr(e){var t=y(e,"ge-text-block")&&T(e,".ge-content")||e;return{kind:ne(t),node:t}}function ci(e,t){var n=Y(t.parent).filter(function(r){return r!==e&&!y(r,"ge-tools-drawer")});!n.length||t.index>=n.length?t.parent.appendChild(e):t.parent.insertBefore(e,n[t.index])}function fi(e){var t=e.item,n=Lt.get(t),r=n?n.from:Ft(t);if(Lt.delete(t),n&&n.canceled){ci(t,r);return}var o=Ft(t);if(!(o.parent===r.parent&&o.index===r.index)){var a=ee(t,"[data-ge-container]"),u=D[Pe(a)];u&&u.afterPaneMove&&u.afterPaneMove(a,t,r);var c=Cr(t);W(function(){P("after-move",Q(c.kind,c.node,{parent:o.parent,source:"dragdrop",from:r,to:o,container:a||void 0}))})}}function mi(){l.resize.enabled&&k(f,".column").forEach(function(e){if(!T(e,".ge-resize-handle")){var t=T(e,".ge-tools-drawer");t&&t.appendChild(v("span",{class:"ge-resize-size"})),pi().forEach(function(n){var r=v("span",{class:"ge-resize-handle ge-resize-"+n,"data-ge-edge":n});r.addEventListener("pointerdown",gi),e.appendChild(r)})}})}function pi(){return String(l.resize.handles).split(",").map(function(e){return e.trim()}).filter(function(e){return e==="e"||e==="w"})}function gi(e){var t=e.currentTarget,n=t.parentElement,r=t.getAttribute("data-ge-edge")==="w",o=e.pageX,a=tt(n);if(e.preventDefault(),!hi(n))return;x(n,"ge-resizing"),e.pointerId!==void 0&&t.setPointerCapture&&t.setPointerCapture(e.pointerId);function u(m){var h=m.pageX-o;return Math.max(1,a+(r?-h:h))}function c(m){n.style.width=u(m)+"px",bi(n,u(m))}function d(m){t.removeEventListener("pointermove",c),vn(t,"pointerup pointercancel",d),L(n,"ge-resizing"),wi(n,u(m))}t.addEventListener("pointermove",c),te(t,"pointerup pointercancel",d)}function vi(){k(f,".ge-resize-handle").forEach(function(e){e.remove()}),k(f,".ge-resize-size").forEach(function(e){e.remove()}),Qe(f)}function Er(e,t){var n=Math.round(t/or(e.parentElement)*z),r=xr(e),o=r?Ge(r):null,a=it.get(e),u=a?a.units:qe(e),c=r&&H(o)?u+o-Je(l.valid_col_sizes):z-Xe(e);return Math.min(Math.max(n,Je(l.valid_col_sizes)),Math.max(c,Je(l.valid_col_sizes)),Qt(l.valid_col_sizes))}function xr(e){return l.resize.balance!=="next"?null:Mr(e,".column")[0]||null}function dn(e,t){var n=T(e,".ge-tools-drawer"),r=n?T(n,".ge-resize-size"):null;r&&(r.textContent=t)}function _r(e){return(S===V?b[0].colPrefix:fe().colPrefix)+e}function hi(e){var t=Ge(e),n=W(function(){return P("before-resize",Q("column",e,{source:"dragdrop",from:t,to:null}))});if(!n)return!1;var r={from:t,units:qe(e)};return it.set(e,r),dn(e,_r(r.units)),!0}function bi(e,t){dn(e,_r(Er(e,t)))}function wi(e,t){var n=it.get(e),r=Er(e,t);if(it.delete(e),dn(e,""),Qe(e),!!n&&r!==n.units){var o=Dt(e,r);o&&W(function(){Nt(e,o),yi(e,r-n.units),oe(e),P("after-resize",Q("column",e,Rt({source:"dragdrop",from:n.from,to:o.size},o.cleared)))})}}function yi(e,t){var n=xr(e);if(!(!n||!t)){var r=Ge(n);if(H(r)){var o=Dt(n,r-t);o&&(Nt(n,o),oe(n))}}}function Ci(){Ot.forEach(function(e){e.destroy()}),Ot=[]}function je(){return v("div",{class:"row"})}function ht(e,t,n){var r=null;if(Ui.forEach(function(c){r===null&&n&&n[c]!==void 0&&(r=c)}),r===null)return e;var o=he(n[r]);if(!o)return N(t+": "+r+" matches no element; the "+t+" is left detached"),e;var a=r==="appendTo"||r==="prependTo"?o:o.parentElement,u=function(){return Z(t,e,function(){r==="appendTo"?o.appendChild(e):r==="prependTo"?o.insertBefore(e,o.firstChild):r==="insertBefore"?o.parentNode.insertBefore(e,o):_t(e,o)},{parent:a,source:n.source||"api"})};return He>0?(zt(u),e):u()}function Ei(e,t){var n=je();return e!==void 0&&!Array.isArray(e)&&!(e&&e.row_cols)&&(N("createRow: the layout is an array of column sizes, as in [8, 4], or { row_cols, columns }. Making an empty row instead."),e=[]),e&&!Array.isArray(e)&&(n=Ke(e)),(Array.isArray(e)?e:[]).forEach(function(r){n.appendChild(ge(r))}),ht(n,"row",t)}function xi(e,t){t=t||{};var n=he(t.appendTo||t.prependTo||null);e===void 0&&n&&$e(n,fe())?e=null:!H(e)&&hn.indexOf(e)===-1&&(N("createColumn: no column size given, using "+z),e=z);var r=ge(e,t.offset);return t.content!==void 0&&r.appendChild(zi(t.content)),ht(r,"column",t)}function _i(e,t){t=t||{};var n=D[e];return n?ht(n.create(t),e,t):(N('createContainer: no such container type "'+e+'"'),null)}function kr(e,t,n){e=he(e),n=n||{};var r=D[Pe(e)];if(!r||Pe(e)!==t)return N("this is not a "+t+" container"),null;var o=r.addPane(e,n);return Z(r.paneKind,o,function(){},{parent:e,source:"api",container:e})}function cn(){var e={};return Object.keys(l).forEach(function(t){var n=l[t];e[t]=Array.isArray(n)?n.slice():n}),Object.freeze(e)}function ge(e,t){var n=v("div",{class:"column"}),r=Hr(S)[0],o=gt({size:e,offset:t||0,leading:"offset"});return pt(n,r,o.size===null?e:o.size),on(n,r,o.offset),n}function Ar(e){if(!(!l.custom_filter||!l.custom_filter.length)){var t=typeof l.custom_filter=="string"||typeof l.custom_filter=="function"?[l.custom_filter]:l.custom_filter;Array.prototype.forEach.call(t,function(n){typeof n=="string"&&(n=window[n]),n(f,e)})}}function ki(){var e=[".row","[data-ge-container]"];return Object.keys(A).forEach(function(t){var n=A[t],r=typeof n.cuts=="function"?n.cuts():n.cuts;r&&e.push(r)}),e.join(", ")}function Ai(e){k(f,".column > .ge-content, .column > .ge-text-block > .ge-content").forEach(function(t){if(!(y(t,"ge-rte-active")||!Y(t,e).length)){var n=t.getAttribute("data-ge-content-type"),r=y(t.parentElement,"ge-text-block")?t.parentElement:t,o=[],a=[];for(Array.prototype.slice.call(t.childNodes).forEach(function(d){d.nodeType===1&&d.matches(e)?(o.push({text:a},{block:d}),a=[]):a.push(d)}),o.push({text:a});t.firstChild;)t.removeChild(t.firstChild);var u=!1,c=r;o.forEach(function(d){var m;if(d.block)m=d.block;else if(Si(d.text))u?(m=fn(n),d.text.forEach(function(h){m.appendChild(h)})):(d.text.forEach(function(h){t.appendChild(h)}),m=r,u=!0);else return;m!==c&&_t(m,c),c=m}),u||r.remove()}})}function Si(e){return e.some(function(t){return t.nodeType===1||t.nodeType===3&&/\S/.test(t.nodeValue)})}function Ti(e){k(f,".column").forEach(function(t){var n=[];Y(t).forEach(function(r){De(r,".ge-tools-drawer, .ge-resize-handle")||(De(r,".ge-content, .ge-text-block")||r.matches(e)?n=Sr(n):n.push(r))}),Sr(n)})}function Sr(e){if(e.length){var t=_t(fn(),e[e.length-1]);e.forEach(function(n){t.appendChild(n)})}return[]}function fn(e){var t=v("div",{class:"ge-content"});return e&&(x(t,"ge-content-type-"+e),t.setAttribute("data-ge-content-type",e)),t}function Oi(){k(f,".column > .ge-content").forEach(function(e){Ir(e,v("div",{class:"ge-text-block"}))}),k(f,".ge-text-block").forEach(function(e){if(!T(e,".ge-tools-drawer")){var t=T(e,".ge-content"),n=t?t.getAttribute("data-ge-content-type"):null;n?po(n)||Mi(e,n):Pi(e)}})}function Li(){k(f,".ge-text-block").forEach(function(e){kt(e)})}function Pi(e){var t=T(e,".ge-content"),n=Me(e,"ge-tools-drawer ge-text-drawer ge-plain-drawer");x(e,"ge-plain-block"),ye(n),Object.keys(A).forEach(function(r){A[r].plainTools&&A[r].plainTools(n,t)}),M(n,g("tool.delete_plain"),"ge-delete-plain","bi bi-trash",function(){we("plain",t,g("confirm.delete_plain"),function(r){nt(e,function(){e.remove(),r()})})})}function Mi(e,t){var n=T(e,".ge-content"),r=Me(e,"ge-tools-drawer ge-text-drawer");ye(r),M(r,g("text.no_editor",{type:t}),"ge-text-info ge-text-missing","bi bi-exclamation-triangle"),M(r,g("tool.delete_text"),"ge-delete-text","bi bi-trash",function(){we("text",n,g("confirm.delete_text"),function(o){nt(e,function(){e.remove(),o()})})})}function zi(e){var t=Rn(),n=fn(t.length?t[0].type:null);return e&&e.nodeType?n.appendChild(e):bt(n,e),n}function Tr(e){S=e,At.forEach(function(t){I(f,"ge-layout-"+t,t===e)}),O(Ae,"button").textContent=g(rt(e))}function mn(e){return typeof e=="number"?(X("changeView-index","changeView("+e+"): layout modes are identified by breakpoint key now, so pass one of "+JSON.stringify(At)+". Numeric indexes still work, but they mean what they meant in 2.x ("+Ur.join(", ")+") and will be dropped."),Ur[e]||null):At.indexOf(e)===-1?null:e}function Or(e){var t=mn(e);if(t===null){N("changeView("+JSON.stringify(e)+"): no such layout mode");return}var n=S;Tr(t),t!==n&&(sr().forEach(function(r){k(r,".ge-utilities").forEach(function(o){Yt(o)})}),$n(null),Be(f),re("onViewChange",t),P("view-change",{canvas:f,breakpoint:t,from:n,to:t}))}function pn(){return S}function Lr(e,t,n){return function(){return Ve[e]?Ve[e].apply(null,arguments):(X("plugin:"+t,e+" needs the "+t+" plugin: include dist/plugins/grideditor."+n+".js after the editor"),null)}}var Pr={getHtml:Hn,getPlainHtml:ho,init:function(){zt(ue)},reset:function(){zt(Un)},deinit:Oe,destroy:bo,changeView:Or,getView:pn,createRow:Ei,createColumn:xi,createText:function(e,t){return Ve.createText?Ve.createText(e,t):(X("plugin:text","createText needs a text editor plugin: include dist/plugins/grideditor.tinymce.js, or another editor's, after the editor"),null)},createElement:Lr("createElement","elements","elements"),createSection:Lr("createSection","sections","sections"),createContainer:_i,addTab:function(e,t){return kr(e,"tabs",t)},addAccordionItem:function(e,t){return kr(e,"accordion",t)},setLocale:qr,getUtility:Xn,setUtility:Xt};Object.keys(Pr).forEach(function(e){var t=!!(Rr[e]&&Rr[e].value);i[e]=function(){if(Cn)return X("destroyed:"+e,g("warning.destroyed",{method:e})),e==="getHtml"?f.innerHTML:e==="getPlainHtml"?wn(f.innerHTML):t?null:i;var n=Pr[e].apply(i,arguments);return t?n:i}}),i.canvas=f,i.settings=cn(),St.set(f,i),wo(),i.settings=cn(),Qr(),ue(),C._created.forEach(function(e){e(i)})}C._created=[];C.containers={};C.features={};C.utilities={};C.texts={};C.t=Tt;C._plainHtml=wn;C.Sortable=null;C.bootstrap=null;C.version="7.3.0";C.locales={en:{"tool.move":"Move","tool.settings":"Settings","tool.add_row":"Add row","tool.delete_text":"Remove text","tool.delete_plain":"Remove content","tool.convert_type":"Edit as {editor} text","text.no_editor":'No text editor "{type}" is loaded: this text can be moved and deleted, not edited',"tool.add_column":`Add column
|
|
2
2
|
(hold to choose the width)`,"tool.column_size":"{size} of 12","tool.column_equal":"Equal: shares what the row has left","tool.column_auto":"Auto: as wide as its content","tool.delete_row":"Remove row","tool.delete_column":"Remove col","tool.delete_container":"Remove container","tool.delete_pane":"Remove pane","tool.rename":"Double click to rename","tool.column_narrower":`Make column narrower
|
|
3
3
|
(hold shift for min)`,"tool.column_wider":`Make column wider
|
|
4
4
|
(hold shift for max)`,"tool.indent_decrease":`Decrease indent
|