2 lines
9.6 KiB
JavaScript
2 lines
9.6 KiB
JavaScript
|
/*! elementor - v3.21.0 - 25-04-2024 */
|
||
|
"use strict";(self.webpackChunkelementor=self.webpackChunkelementor||[]).push([[413],{8073:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class GridContainer extends elementorModules.frontend.handlers.Base{__construct(e){super.__construct(e),this.onDeviceModeChange=this.onDeviceModeChange.bind(this),this.updateEmptyViewHeight=this.updateEmptyViewHeight.bind(this)}isActive(){return elementorFrontend.isEditMode()}getDefaultSettings(){return{selectors:{gridOutline:".e-grid-outline",directGridOverlay:":scope > .e-grid-outline",boxedContainer:":scope > .e-con-inner",emptyView:".elementor-empty-view"},classes:{outline:"e-grid-outline",outlineItem:"e-grid-outline-item"}}}getDefaultElements(){const e=this.getSettings("selectors");return{outlineParentContainer:null,gridOutline:this.findElement(e.gridOutline),directChildGridOverlay:this.findElement(e.directGridOverlay),emptyView:this.findElement(e.emptyView)[0],container:this.$element[0]}}onInit(){super.onInit(),this.initLayoutOverlay(),this.updateEmptyViewHeight(),elementor.hooks.addAction("panel/open_editor/container",this.onPanelShow)}onPanelShow(e,t){const n=t.get("settings").get("container_type"),i=e.$el.find("#elementor-panel__editor__help__link"),s="grid"===n?"https://go.elementor.com/widget-container-grid":"https://go.elementor.com/widget-container";i&&i.attr("href",s)}bindEvents(){elementorFrontend.elements.$window.on("resize",this.onDeviceModeChange),elementorFrontend.elements.$window.on("resize",this.updateEmptyViewHeight),this.addChildLifeCycleEventListeners()}unbindEvents(){this.removeChildLifeCycleEventListeners(),elementorFrontend.elements.$window.off("resize",this.onDeviceModeChange),elementorFrontend.elements.$window.off("resize",this.updateEmptyViewHeight)}initLayoutOverlay(){this.getCorrectContainer();const e=this.getSettings("selectors"),t="grid"===this.getElementSettings("container_type");this.elements.emptyView=this.findElement(e.emptyView)[0],t&&this.elements?.emptyView&&(this.elements.emptyView.style.display=this.shouldRemoveEmptyView()?"none":"block"),this.shouldDrawOutline()&&(this.removeExistingOverlay(),this.createOverlayContainer(),this.createOverlayItems())}shouldDrawOutline(){const{grid_outline:e}=this.getElementSettings();return e}getCorrectContainer(){const e=this.elements.container,t=this.getDefaultSettings(),{selectors:{boxedContainer:n}}=t;this.elements.outlineParentContainer=e.querySelector(n)||e}removeExistingOverlay(){this.elements.gridOutline?.remove()}createOverlayContainer(){const{outlineParentContainer:e}=this.elements,{classes:{outline:t}}=this.getDefaultSettings(),n=document.createElement("div");n.classList.add(t),e.appendChild(n),this.elements.gridOutline=n,this.setGridOutlineDimensions()}createOverlayItems(){const{gridOutline:e}=this.elements,{classes:{outlineItem:t}}=this.getDefaultSettings(),n=this.getMaxOutlineElementsNumber();for(let i=0;i<n;i++){const n=document.createElement("div");n.classList.add(t),e.appendChild(n)}}getDeviceGridDimensions(){const e=elementor.channels.deviceMode.request("currentMode");return{rows:this.getControlValues("grid_rows_grid",e,"grid-template-rows")||1,columns:this.getControlValues("grid_columns_grid",e,"grid-template-columns")||1}}setGridOutlineDimensions(){const{gridOutline:e}=this.elements,{rows:t,columns:n}=this.getDeviceGridDimensions();e.style.gridTemplateColumns=n.value,e.style.gridTemplateRows=t.value}getControlValues(e,t,n){const i=this.getElementSettings(),{unit:s,size:o}=i[e],{outlineParentContainer:r}=this.elements,l=elementorFrontend.utils.controls.getResponsiveControlValue(i,e,"size",t),d=this.getComputedStyle(r,n),a=d.split(" ").length;let h;return h="custom"===s&&"string"==typeof l||o<a?{value:d}:{value:`repeat(${a}, 1fr)`},h={...h,length:a},h}getComputedStyle(e,t){return window?.getComputedStyle(e,null).getPropertyValue(t)}onElementChange(e){this.isControlThatMayAffectEmptyViewHeight(e)&&this.updateEmptyViewHeight();let t=["grid_rows_grid","grid_columns_grid","grid_gaps","container_type","boxed_width","content_width","width","height","min_height","padding",
|