Submit
Path:
~
/
home
/
getwphos
/
www
/
almajd14
/
wp-content
/
plugins
/
elementor
/
assets
/
js
/
File Content:
container-editor-handlers.11e3f73cbe2c3c5ffe24.bundle.js
/*! elementor - v3.32.0 - 18-09-2025 */ "use strict"; (self["webpackChunkelementorFrontend"] = self["webpackChunkelementorFrontend"] || []).push([["container-editor-handlers"],{ /***/ "../assets/dev/js/frontend/handlers/container/grid-container.js": /*!**********************************************************************!*\ !*** ../assets/dev/js/frontend/handlers/container/grid-container.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; __webpack_require__(/*! core-js/modules/es.array.includes.js */ "../node_modules/core-js/modules/es.array.includes.js"); __webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); class GridContainer extends elementorModules.frontend.handlers.Base { __construct(settings) { super.__construct(settings); this.onDeviceModeChange = this.onDeviceModeChange.bind(this); this.updateEmptyViewHeight = this.updateEmptyViewHeight.bind(this); } isActive() { return elementorFrontend.isEditMode(); } getDefaultSettings() { const gridItemSuffixes = ['_heading_grid_item', '_grid_column', '_grid_column_custom', '_grid_row', '_grid_row_custom', 'heading_grid_item', 'grid_column', 'grid_column_custom', 'grid_row', 'grid_row_custom']; const gridItemControls = gridItemSuffixes.map(suffix => `[class*="elementor-control-${suffix}"]`).join(', '); 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', gridItemControls } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { outlineParentContainer: null, gridOutline: this.findElement(selectors.gridOutline), directChildGridOverlay: this.findElement(selectors.directGridOverlay), emptyView: this.findElement(selectors.emptyView)[0], container: this.$element[0] }; } onInit() { super.onInit(); this.initLayoutOverlay(); this.updateEmptyViewHeight(); elementor.hooks.addAction('panel/open_editor/container', this.onPanelShow); } handleGridControls(sectionName, editor) { const advancedSections = ['_section_style', // Widgets 'section_layout' // Containers ]; if (!advancedSections.includes(sectionName)) { return; } if (!this.isItemInGridCell(editor)) { this.hideGridControls(editor); } } isItemInGridCell(editor) { const container = editor?.getOption('editedElementView')?.getContainer(); if ('function' !== typeof container?.parent?.model?.getSetting) { return false; } return 'grid' === container?.parent?.model?.getSetting('container_type'); } hideGridControls(editor) { const classes = this.getSettings('classes'); const gridControls = editor?.el.querySelectorAll(classes.gridItemControls); gridControls.forEach(element => { element.style.display = 'none'; }); } onPanelShow(panel, model) { const settingsModel = model.get('settings'), containerType = settingsModel.get('container_type'), $linkElement = panel.$el.find('#elementor-panel__editor__help__link'), href = 'grid' === containerType ? 'https://go.elementor.com/widget-container-grid' : 'https://go.elementor.com/widget-container'; if ($linkElement) { $linkElement.attr('href', href); } } bindEvents() { elementorFrontend.elements.$window.on('resize', this.onDeviceModeChange); elementorFrontend.elements.$window.on('resize', this.updateEmptyViewHeight); this.addChildLifeCycleEventListeners(); elementor.channels.editor.on('section:activated', this.handleGridControls.bind(this)); } unbindEvents() { this.removeChildLifeCycleEventListeners(); elementorFrontend.elements.$window.off('resize', this.onDeviceModeChange); elementorFrontend.elements.$window.off('resize', this.updateEmptyViewHeight); elementor.channels.editor.off('section:activated', this.handleGridControls.bind(this)); } initLayoutOverlay() { this.getCorrectContainer(); // Re-init empty view element after container layout change const selectors = this.getSettings('selectors'), isGridContainer = 'grid' === this.getElementSettings('container_type'); this.elements.emptyView = this.findElement(selectors.emptyView)[0]; if (isGridContainer && this.elements?.emptyView) { this.elements.emptyView.style.display = this.shouldRemoveEmptyView() ? 'none' : 'block'; } if (!this.shouldDrawOutline()) { return; } this.removeExistingOverlay(); this.createOverlayContainer(); this.createOverlayItems(); } shouldDrawOutline() { const { grid_outline: gridOutline } = this.getElementSettings(); return gridOutline; } getCorrectContainer() { const container = this.elements.container, getDefaultSettings = this.getDefaultSettings(), { selectors: { boxedContainer } } = getDefaultSettings; this.elements.outlineParentContainer = container.querySelector(boxedContainer) || container; } removeExistingOverlay() { this.elements.gridOutline?.remove(); } createOverlayContainer() { const { outlineParentContainer } = this.elements, { classes: { outline } } = this.getDefaultSettings(), gridOutline = document.createElement('div'); gridOutline.classList.add(outline); outlineParentContainer.appendChild(gridOutline); this.elements.gridOutline = gridOutline; this.setGridOutlineDimensions(); } createOverlayItems() { const { gridOutline } = this.elements, { classes: { outlineItem } } = this.getDefaultSettings(), numberOfItems = this.getMaxOutlineElementsNumber(); for (let i = 0; i < numberOfItems; i++) { const gridOutlineItem = document.createElement('div'); gridOutlineItem.classList.add(outlineItem); gridOutline.appendChild(gridOutlineItem); } } /** * Get the grid dimensions for the current device. * * @return { { columns: { value, length }, rows: { value, length } } } */ getDeviceGridDimensions() { const currentDevice = elementor.channels.deviceMode.request('currentMode'); return { rows: this.getControlValues('grid_rows_grid', currentDevice, 'grid-template-rows') || 1, columns: this.getControlValues('grid_columns_grid', currentDevice, 'grid-template-columns') || 1 }; } setGridOutlineDimensions() { const { gridOutline } = this.elements, { rows, columns } = this.getDeviceGridDimensions(); gridOutline.style.gridTemplateColumns = columns.value; gridOutline.style.gridTemplateRows = rows.value; } /** * Set the control value for the current device. * Distinguish between grid custom values and slider controls. * * @param {string} control - The control name. * @param {string} device - The device mode. * @param {string} property - The CSS property name we need to copy from the parent container. * * @return {Object} - E,g. {value: repeat(2, 1fr), length: 2}. */ getControlValues(control, device, property) { const elementSettings = this.getElementSettings(), { unit, size } = elementSettings[control], { outlineParentContainer } = this.elements, controlValueForCurrentDevice = elementorFrontend.utils.controls.getResponsiveControlValue(elementSettings, control, 'size', device), controlValue = this.getComputedStyle(outlineParentContainer, property), computedStyleLength = controlValue.split(' ').length; let controlData; if ('custom' === unit && 'string' === typeof controlValueForCurrentDevice || size < computedStyleLength) { controlData = { value: controlValue }; } else { // In this case the data is taken from the getComputedStyle and not from the control, in order to handle cases when the user has more elements than grid cells. controlData = { value: `repeat(${computedStyleLength}, 1fr)` }; } controlData = { ...controlData, length: computedStyleLength }; return controlData; } getComputedStyle(container, property) { return window?.getComputedStyle(container, null).getPropertyValue(property); } onElementChange(propertyName) { if (this.isControlThatMayAffectEmptyViewHeight(propertyName)) { this.updateEmptyViewHeight(); } let propsThatTriggerGridLayoutRender = ['grid_rows_grid', 'grid_columns_grid', 'grid_gaps', 'container_type', 'boxed_width', 'content_width', 'width', 'height', 'min_height', 'padding', 'grid_auto_flow']; // Add responsive control names to the list of controls that trigger re-rendering. propsThatTriggerGridLayoutRender = this.getResponsiveControlNames(propsThatTriggerGridLayoutRender); if (propsThatTriggerGridLayoutRender.includes(propertyName)) { this.initLayoutOverlay(); } } isControlThatMayAffectEmptyViewHeight(propertyName) { return 0 === propertyName.indexOf('grid_rows_grid') || 0 === propertyName.indexOf('grid_columns_grid') || 0 === propertyName.indexOf('grid_auto_flow'); } /** * GetResponsiveControlNames * Add responsive control names to the list of controls that trigger re-rendering. * * @param {Array} propsThatTriggerGridLayoutRender - array of control names. * * @return {Array} */ getResponsiveControlNames(propsThatTriggerGridLayoutRender) { const activeBreakpoints = elementorFrontend.breakpoints.getActiveBreakpointsList(); const responsiveControlNames = []; for (const prop of propsThatTriggerGridLayoutRender) { for (const breakpoint of activeBreakpoints) { responsiveControlNames.push(`${prop}_${breakpoint}`); } } responsiveControlNames.push(...propsThatTriggerGridLayoutRender); return responsiveControlNames; } onDeviceModeChange() { this.initLayoutOverlay(); } /** * Rerender Grid Overlay when child element is added or removed from its parent. * * @return {void} */ addChildLifeCycleEventListeners() { this.lifecycleChangeListener = this.initLayoutOverlay.bind(this); window.addEventListener('elementor/editor/element-rendered', this.lifecycleChangeListener); window.addEventListener('elementor/editor/element-destroyed', this.lifecycleChangeListener); } removeChildLifeCycleEventListeners() { window.removeEventListener('elementor/editor/element-rendered', this.lifecycleChangeListener); window.removeEventListener('elementor/editor/element-destroyed', this.lifecycleChangeListener); } updateEmptyViewHeight() { if (this.shouldUpdateEmptyViewHeight()) { const { emptyView } = this.elements, currentDevice = elementor.channels.deviceMode.request('currentMode'), elementSettings = this.getElementSettings(), gridRows = 'desktop' === currentDevice ? elementSettings.grid_rows_grid : elementSettings.grid_rows_grid + '_' + currentDevice; emptyView?.style.removeProperty('min-height'); if (this.hasCustomUnit(gridRows) && this.isNotOnlyANumber(gridRows) && this.sizeNotEmpty(gridRows)) { emptyView.style.minHeight = 'auto'; } // This is to handle cases where `minHeight: auto` computes to `0`. if (emptyView?.offsetHeight <= 0) { emptyView.style.minHeight = '100px'; } } } shouldUpdateEmptyViewHeight() { return !!this.elements.container.querySelector('.elementor-empty-view'); } hasCustomUnit(gridRows) { return 'custom' === gridRows?.unit; } sizeNotEmpty(gridRows) { return '' !== gridRows?.size?.trim(); } isNotOnlyANumber(gridRows) { const numberPattern = /^\d+$/; return !numberPattern.test(gridRows?.size); } shouldRemoveEmptyView() { const childrenLength = this.elements.outlineParentContainer.querySelectorAll(':scope > .elementor-element').length; if (0 === childrenLength) { return false; } const maxElements = this.getMaxElementsNumber(); return maxElements <= childrenLength && this.isFullFilled(childrenLength); } isFullFilled(numberOfElements) { const gridDimensions = this.getDeviceGridDimensions(), { grid_auto_flow: gridAutoFlow } = this.getElementSettings(); const flowTypeField = 'row' === gridAutoFlow ? 'columns' : 'rows'; return 0 === numberOfElements % gridDimensions[flowTypeField].length; } getMaxOutlineElementsNumber() { const childrenLength = this.elements.outlineParentContainer.querySelectorAll(':scope > .elementor-element').length, gridDimensions = this.getDeviceGridDimensions(), maxElementsBySettings = this.getMaxElementsNumber(), { grid_auto_flow: gridAutoFlow } = this.getElementSettings(); const flowTypeField = 'row' === gridAutoFlow ? 'columns' : 'rows'; const maxElementsByItems = Math.ceil(childrenLength / gridDimensions[flowTypeField].length) * gridDimensions[flowTypeField].length; return maxElementsBySettings > maxElementsByItems ? maxElementsBySettings : maxElementsByItems; } getMaxElementsNumber() { const elementSettings = this.getElementSettings(), device = elementor.channels.deviceMode.request('currentMode'), { grid_auto_flow: gridAutoFlow } = this.getElementSettings(), gridDimensions = this.getDeviceGridDimensions(); if ('row' === gridAutoFlow) { const rows = elementorFrontend.utils.controls.getResponsiveControlValue(elementSettings, 'grid_rows_grid', 'size', device); const rowsLength = isNaN(rows) ? rows.split(' ').length : rows; return gridDimensions.columns.length * rowsLength; } const columns = elementorFrontend.utils.controls.getResponsiveControlValue(elementSettings, 'grid_columns_grid', 'size', device); const columnsLength = isNaN(columns) ? rows.split(' ').length : columns; return gridDimensions.rows.length * columnsLength; } } exports["default"] = GridContainer; /***/ }), /***/ "../assets/dev/js/frontend/handlers/container/shapes.js": /*!**************************************************************!*\ !*** ../assets/dev/js/frontend/handlers/container/shapes.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); // TODO: Copied from `section/shapes.js`. class Shapes extends elementorModules.frontend.handlers.Base { getDefaultSettings() { const contentWidth = this.getElementSettings('content_width'), container = 'boxed' === contentWidth ? '> .e-con-inner > .elementor-shape-%s' : '> .elementor-shape-%s'; return { selectors: { container }, svgURL: elementorFrontend.config.urls.assets + 'shapes/' }; } getDefaultElements() { const elements = {}, selectors = this.getSettings('selectors'); elements.$topContainer = this.$element.find(selectors.container.replace('%s', 'top')); elements.$bottomContainer = this.$element.find(selectors.container.replace('%s', 'bottom')); return elements; } isActive() { return elementorFrontend.isEditMode(); } getSvgURL(shapeType, fileName) { let svgURL = this.getSettings('svgURL') + fileName + '.svg'; if (elementor.config.additional_shapes && shapeType in elementor.config.additional_shapes) { svgURL = elementor.config.additional_shapes[shapeType]; if (-1 < fileName.indexOf('-negative')) { svgURL = svgURL.replace('.svg', '-negative.svg'); } } return svgURL; } buildSVG(side) { const baseSettingKey = 'shape_divider_' + side, shapeType = this.getElementSettings(baseSettingKey), $svgContainer = this.elements['$' + side + 'Container']; $svgContainer.attr('data-shape', shapeType); if (!shapeType) { $svgContainer.empty(); // Shape-divider set to 'none' return; } let fileName = shapeType; if (this.getElementSettings(baseSettingKey + '_negative')) { fileName += '-negative'; } const svgURL = this.getSvgURL(shapeType, fileName); jQuery.get(svgURL, data => { $svgContainer.empty().append(data.childNodes[0]); }); this.setNegative(side); } setNegative(side) { this.elements['$' + side + 'Container'].attr('data-negative', !!this.getElementSettings('shape_divider_' + side + '_negative')); } onInit() { if (!this.isActive(this.getSettings())) { return; } super.onInit(...arguments); ['top', 'bottom'].forEach(side => { if (this.getElementSettings('shape_divider_' + side)) { this.buildSVG(side); } }); } onElementChange(propertyName) { const shapeChange = propertyName.match(/^shape_divider_(top|bottom)$/); if (shapeChange) { this.buildSVG(shapeChange[1]); return; } const negativeChange = propertyName.match(/^shape_divider_(top|bottom)_negative$/); if (negativeChange) { this.buildSVG(negativeChange[1]); this.setNegative(negativeChange[1]); } } } exports["default"] = Shapes; /***/ }) }]); //# sourceMappingURL=container-editor-handlers.11e3f73cbe2c3c5ffe24.bundle.js.map
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
packages
---
0755
8277989eebcfba278cb0.bundle.min.js
36863 bytes
0644
9f88a0d716a691c2448a.bundle.min.js
12958 bytes
0644
accordion.28788e18d1d35c23f450.bundle.min.js
3791 bytes
0644
accordion.7b5b5744bdd225280eca.bundle.js
8086 bytes
0644
admin-feedback.js
4612 bytes
0644
admin-feedback.min.js
1953 bytes
0644
ai-admin.js
1983231 bytes
0644
ai-admin.min.js
610136 bytes
0644
ai.min.js
657993 bytes
0644
alert.42cc1d522ef5c60bf874.bundle.min.js
658 bytes
0644
alert.b696182ec6f18a35bc69.bundle.js
1445 bytes
0644
announcements-app.js
115506 bytes
0644
announcements-app.min.js
33629 bytes
0644
app.min.js
486221 bytes
0644
b96d70044d0d67c2df19.bundle.min.js
23455 bytes
0644
cloud-library-screenshot.js
37836 bytes
0644
contact-buttons.d999c7d620ad8d4132c6.bundle.min.js
8707 bytes
0644
container-converter.js
52011 bytes
0644
container-editor-handlers.11e3f73cbe2c3c5ffe24.bundle.js
18454 bytes
0644
container-editor-handlers.e7ee82232887ec8b73b7.bundle.min.js
9639 bytes
0644
counter.12335f45aaa79d244f24.bundle.min.js
946 bytes
0644
counter.f359dee9199f5aad06c6.bundle.js
1933 bytes
0644
e-home-screen.js
108705 bytes
0644
e-home-screen.min.js
26848 bytes
0644
e-react-promotions.js
124573 bytes
0644
e-react-promotions.min.js
39680 bytes
0644
e1cb4d726bb59646c677.bundle.min.js
5432 bytes
0644
e5d6feb1b1d6cf52126f.bundle.js
11262 bytes
0644
editor-document.js
71618 bytes
0644
editor-loader-v1.js
372 bytes
0644
editor-loader-v2.js
861 bytes
0644
editor-modules.js
120535 bytes
0644
editor-notifications.js
86637 bytes
0644
editor-notifications.min.js
18442 bytes
0644
editor-v4-opt-in-alphachip.min.js
8550 bytes
0644
editor-v4-opt-in.js
171195 bytes
0644
editor-v4-opt-in.min.js
53556 bytes
0644
editor-v4-welcome-opt-in.js
60055 bytes
0644
editor-v4-welcome-opt-in.min.js
9075 bytes
0644
editor.js
2938300 bytes
0644
ef2100ac3eda1a957819.bundle.min.js
5090 bytes
0644
element-manager-admin.js
171804 bytes
0644
element-manager-admin.min.js
46330 bytes
0644
element-manager-admin.min.js.LICENSE.txt
324 bytes
0644
elementor-admin-bar.js
18643 bytes
0644
elementor-admin-bar.min.js
7353 bytes
0644
floating-elements-modal.js
34512 bytes
0644
floating-elements-modal.min.js
14518 bytes
0644
frontend-modules.js
211238 bytes
0644
frontend-modules.min.js
59579 bytes
0644
frontend.js
97762 bytes
0644
import-export-admin.min.js
6321 bytes
0644
import-export-customization-admin.js
25669 bytes
0644
import-export-customization-admin.min.js
14091 bytes
0644
kit-elements-defaults-editor.js
87216 bytes
0644
kit-elements-defaults-editor.min.js
32766 bytes
0644
kit-elements-defaults-editor.min.js.LICENSE.txt
163 bytes
0644
kit-library.0807768c7dddd51542ab.bundle.min.js
111248 bytes
0644
kit-library.ed7fc5d9656556af9353.bundle.js
279236 bytes
0644
lightbox.408665be3d65f6ab17f0.bundle.min.js
28964 bytes
0644
nested-accordion.a29d85d5aa492aef7142.bundle.min.js
9827 bytes
0644
nested-elements.js
20735 bytes
0644
nested-elements.min.js
6450 bytes
0644
nested-tabs.213892f3e7a826d32481.bundle.js
21299 bytes
0644
nested-tabs.a542ad943214eb6c3ed8.bundle.min.js
11429 bytes
0644
nested-title-keyboard-handler.967db65f6ba460c1f2e9.bundle.js
8062 bytes
0644
nested-title-keyboard-handler.fc9d01c2cd0ef46d20fd.bundle.min.js
4358 bytes
0644
pro-free-trial-popup.js
59380 bytes
0644
pro-free-trial-popup.min.js
8534 bytes
0644
progress.0ea083b809812c0e3aa1.bundle.min.js
829 bytes
0644
progress.5d8492a023e85c6cc0e0.bundle.js
1980 bytes
0644
section-editor-handlers.c420276353ec5aba196e.bundle.min.js
1788 bytes
0644
section-frontend-handlers.d0665d28b9f0b188fe4f.bundle.js
1047 bytes
0644
section-frontend-handlers.d85ab872da118940910d.bundle.min.js
489 bytes
0644
shared-editor-handlers.a182e3f9ce3b8b1e4b74.bundle.min.js
1389 bytes
0644
shared-frontend-handlers.4c8abccc3e268b0767b2.bundle.min.js
8525 bytes
0644
shared-frontend-handlers.a82dc0e60728c9cb9860.bundle.js
16268 bytes
0644
styleguide-app-initiator.js
37531 bytes
0644
styleguide-app.04340244193733d78622.bundle.min.js
26257 bytes
0644
tabs.1a165c2a54522842b0f1.bundle.min.js
3753 bytes
0644
text-editor.abc8f59c62f2820dc25a.bundle.min.js
1392 bytes
0644
text-path.ebcd5a983a56266562f3.bundle.min.js
26463 bytes
0644
web-cli.js
496119 bytes
0644
wp-audio.c91cab3152c3f241f266.bundle.js
797 bytes
0644
wp-audio.c9624cb6e5dc9de86abd.bundle.min.js
366 bytes
0644
N4ST4R_ID | Naxtarrr