var TB_BuilderContentLightbox;((t,e,s)=>{"use strict";class l extends t.Builder{undo=[];constructor(e,s,l=!0){super(e,s);const a=t.ToolBar.el;this.undo=new t.undoManager(a.tfClass("undo")[0],a.tfClass("redo")[0],a.tfClass("compact_undo")[0]),this.hasRows=l}newRowAvailable(e){if(!0===this.hasRows)return super.newRowAvailable(e);const s=t.Utils.grid(1)[0];s.locked=s[0].locked=!0;const l=new t.Subrow(s);return t.Utils.setColumnsCount(l.el.tfClass("module_column")),this.el.tfClass("tb_holder")[0].appendChild(l.el),l}destroy(){this.undo.destroy(),this.undo=this.hasRows=null,super.destroy()}async save(t){await(t.manager.builderContentSave?.(this.toJSON(!0)))}}class a{static#t;constructor(a,i,o){const b=s("","tb_lb_tabs tf_scrollbar"),n=a.el.tfClass("tb_lb_wr")[0],_=a.el.tfClass("tb_lb_bar")[0],r=tb_createDocumentFragment(),c=this.constructor;this.lb=a;for(let e=0;e<i.length;e++){let o=s("","tb_lb_content tf_hide"),n=t.Builder.backendModeHolder(a.manager.id+e);new l(n,[{locked:!0,cols:[{locked:!0,grid_class:"col-full",element_id:t.Helper.generateUniqueID(),modules:i[e].content}]}],!1),o.appendChild(n),b.appendChild(s("",{role:"button"},i[e].title)),r.appendChild(o)}b.tfOn(e.click,(t=>{t.stopPropagation(),this.t(t.target)}),{passive:!0}),_.prepend(b),n.appendChild(r),this.t(b.children[o]),c.#t??=new ResizeObserver(c.l),c.#t.observe(_)}t(e){const s=e?.parentNode;if(s?.classList.contains("tb_lb_tabs")){const l=s.closest(".tb_lb"),a=l.tfClass("tb_lb_content"),i=l.tfClass("tb_lb_dp_label")[0],o=t.undoManager,b=t.Builder.items;let n;for(let t=s.children,l=t.length-1;l>-1;--l)e===t[l]&&(n=l),t[l].classList.remove("tb_lb_current_tab"),a[l].classList.add("tf_hide");a[n].classList.remove("tf_hide"),e.classList.add("tb_lb_current_tab"),i&&(i.textContent=e.textContent);for(let t=a[n].firstElementChild,e=b.length-1,s=e;s>-1;--s)if(t===b[s].el){o.setActive(b[s].undo),o.updateUndoBtns(),[b[s],b[e]]=[b[e],b[s]];break}}}static l(t){for(let e=t.length-1;e>-1;--e){let l=t[e].target.firstElementChild,a=t[e].target.parentNode.scrollWidth,i=t[e].contentRect.width;a-i>2?l.classList.contains("tb_lb_dp_label")||l.before(s("div",{class:"tb_lb_dp_label tf_overflow tf_rel",tabindex:-1,"data-w":a,role:"button"},l.firstElementChild.textContent)):l?.classList.contains("tb_lb_dp_label")&&~~l.dataset.w-i<3&&l.remove()}}async save(e){const s=t.Builder.items,l=[],a=new Map;for(let t=s.length-1;t>-1;--t)a.set(s[t].el,t);for(let t=e.el.tfClass("tb_lb_content"),i=0;i<t.length;++i)l[i]=s[a.get(t[i].firstElementChild)].toJSON(!0)[0].cols[0].modules;await(e.manager.builderContentSave?.(l))}destroy(){const e=t.Builder.items,s=this;for(let t=e.length-1;t>-1;--t)s.lb.el.contains(e[t].el)&&e[t].destroy();s.lb=null,1===e.length&&(s.constructor.#t?.disconnect(),s.constructor.#t=null)}}TB_BuilderContentLightbox=class{static#e=[];static#s;#l;#a;constructor(t,l=""){const a=this,i=themifyBuilder.i18n.label,o=s("","tb_lb_bar tf_rel"),b=s("","tb_lb_wr tf_box tf_scrollbar"),n=s("",{class:"tb_lb_save_btn",role:"button"},i.done),_=s("",{class:"tf_close",role:"button"},i.cancel),r=s("","tb_lb_actions");r.append(_,n),o.appendChild(r),a.el=s("",{class:"tb_lb tf_w tf_overflow "+l,tabindex:-1}),a.manager=t,a.#a=l?.split(" "),a.el.append(o,b),n.tfOn(e.click,(async t=>{t.stopPropagation(),await a.save(),a.close()}),{passive:!0}),_.tfOn(e.click,(async t=>{t.stopPropagation(),a.close()}),{passive:!0})}async open(e,i){t.activeModel&&await t.LightBox.save(),t.undoManager.start("builderOpen");const o=this,b=o.constructor;b.#s||(b.#s=s("","tb_overlay tb_lb_overlay tf_overflow tf_abs tf_w tf_h"),(t.isFrontend?t.Builder.get().el:t.ToolBar.el.getRootNode().host).after(b.#s),t.isFrontend||t.ToolBar.el.getRootNode().host.after(t.LightBox.el,t.MainPanel.el.getRootNode().host)),void 0!==i?o.builder=new a(o,e,i):(o.builder=new l(t.Builder.backendModeHolder(o.manager.id),e),o.el.tfClass("tb_lb_wr")[0].appendChild(o.builder.el),t.Registry.trigger(o.builder,"tb_init")),t.Builder.get(0).el.prepend(o.el),b.#e.push(o),o.active(),t.undoManager.updateUndoBtns()}active(e){const s=this.constructor,l=t.MainPanel.el.classList,a=t.SmallPanel.el.classList;let i;e??=this.el;for(let t=s.#e,o=t.length-1;o>-1;--o)t[o].el.classList.toggle("tb_lb_active",e===t[o].el),t[o].#a&&(e===t[o].el&&(i=t[o].#a),l.remove(...t[o].#a),a.remove(...t[o].#a));i&&(l.add(...i),a.add(...i)),s.i()}static i(){const e=this.#e.length>0;for(let s=[document.body,window.top.document.body,t.ToolBar.el,t.MainPanel.el,t.SmallPanel.el],l=s.length-1;l>-1;--l)s[l].classList.toggle("tb_lb_edit_open",e)}static async saveAll(){for(let t=this.#e,e=t.length-1;e>-1;--e)await t[e].save(),await t[e].close()}static getActiveEl(){return this.#e[this.#e.length-1]}async save(){t.activeModel&&await t.LightBox.save(),await this.builder.save(this),this.#l=!0}async close(){try{const e=this,s=e.constructor;if(t.activeModel&&await t.LightBox.close(),!0!==e.#l){let s=t.undoManager.hasUndo();if(!s&&e.builder instanceof a)for(let l=t.Builder.items,a=l.length-1;a>-1;--a)if(e.el.contains(l[a].el)&&l[a].undo.hasUndo()){s=!0;break}if(s){if("yes"!==await t.LiteLightBox.confirm({msg:"layoutEditConfirm"}))throw""}}await(e.manager?.builderContentClose?.(e));const l=s.#e.pop(),i=s.#e[s.#e.length-1];l.#a&&(t.MainPanel.el.classList.remove(...l.#a),t.SmallPanel.el.classList.remove(...l.#a)),void 0===i?(s.#s?.remove(),s.#s=null,t.isFrontend||document.body.append(t.LightBox.el,t.MainPanel.el.getRootNode().host)):e.active(i.el),s.i(),e.builder.destroy(),e.el.remove(),this.#l?t.undoManager.end("builderOpen"):t.undoManager.clear("builderOpen"),t.undoManager.updateUndoBtns(),e.el=e.manager=e.builder=e.#a=null}catch(t){}}}})(tb_app,Themify,tb_createElement);