Submit
Path:
~
/
home
/
getwphos
/
public_html
/
almajd14
/
wp-content
/
plugins
/
elementor
/
assets
/
js
/
File Content:
nested-title-keyboard-handler.967db65f6ba460c1f2e9.bundle.js
/*! elementor - v3.32.0 - 18-09-2025 */ "use strict"; (self["webpackChunkelementorFrontend"] = self["webpackChunkelementorFrontend"] || []).push([["nested-title-keyboard-handler"],{ /***/ "../assets/dev/js/frontend/handlers/accessibility/nested-title-keyboard-handler.js": /*!*****************************************************************************************!*\ !*** ../assets/dev/js/frontend/handlers/accessibility/nested-title-keyboard-handler.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); 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/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ "../node_modules/core-js/modules/esnext.iterator.filter.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); var _base = _interopRequireDefault(__webpack_require__(/*! ../base */ "../assets/dev/js/frontend/handlers/base.js")); class NestedTitleKeyboardHandler extends _base.default { __construct(settings) { super.__construct(settings); this.directionNext = 'next'; this.directionPrevious = 'previous'; this.focusableElementSelector = 'audio, button, canvas, details, iframe, input, select, summary, textarea, video, [accesskey], [contenteditable], [href], [tabindex]:not([tabindex="-1"])'; } getWidgetNumber() { return this.$element.find('> .elementor-widget-container > .e-n-tabs, > .e-n-tabs').attr('data-widget-number'); } getDefaultSettings() { return { selectors: { itemTitle: `[id*="e-n-tab-title-${this.getWidgetNumber()}"]`, itemContainer: `[id*="e-n-tab-content-${this.getWidgetNumber()}"]` }, ariaAttributes: { titleStateAttribute: 'aria-selected', activeTitleSelector: '[aria-selected="true"]' }, datasets: { titleIndex: 'data-tab-index' }, keyDirection: { ArrowLeft: elementorFrontendConfig.is_rtl ? this.directionNext : this.directionPrevious, ArrowUp: this.directionPrevious, ArrowRight: elementorFrontendConfig.is_rtl ? this.directionPrevious : this.directionNext, ArrowDown: this.directionNext } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { $itemTitles: this.findElement(selectors.itemTitle), $itemContainers: this.findElement(selectors.itemContainer), $focusableContainerElements: this.getFocusableElements(this.findElement(selectors.itemContainer)) }; } getFocusableElements($elements) { return $elements.find(this.focusableElementSelector).not('[disabled], [inert]'); } getKeyDirectionValue(event) { const direction = this.getSettings('keyDirection')[event.key]; return this.directionNext === direction ? 1 : -1; } /** * @param {HTMLElement} itemTitleElement * * @return {string} */ getTitleIndex(itemTitleElement) { const { titleIndex: indexAttribute } = this.getSettings('datasets'); return itemTitleElement.getAttribute(indexAttribute); } /** * @param {string|number} titleIndex * * @return {string} */ getTitleFilterSelector(titleIndex) { const { titleIndex: indexAttribute } = this.getSettings('datasets'); return `[${indexAttribute}="${titleIndex}"]`; } getActiveTitleElement() { const activeTitleFilter = this.getSettings('ariaAttributes').activeTitleSelector; return this.elements.$itemTitles.filter(activeTitleFilter); } onInit() { super.onInit(...arguments); } bindEvents() { this.elements.$itemTitles.on(this.getTitleEvents()); this.elements.$focusableContainerElements.on(this.getContentElementEvents()); } unbindEvents() { this.elements.$itemTitles.off(this.getTitleEvents()); this.elements.$focusableContainerElements.children().off(this.getContentElementEvents()); } getTitleEvents() { return { keydown: this.handleTitleKeyboardNavigation.bind(this) }; } getContentElementEvents() { return { keydown: this.handleContentElementKeyboardNavigation.bind(this) }; } isDirectionKey(event) { const directionKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End']; return directionKeys.includes(event.key); } isActivationKey(event) { const activationKeys = ['Enter', ' ']; return activationKeys.includes(event.key); } handleTitleKeyboardNavigation(event) { if (this.isDirectionKey(event)) { event.preventDefault(); const currentTitleIndex = parseInt(this.getTitleIndex(event.currentTarget)) || 1, numberOfTitles = this.elements.$itemTitles.length, titleIndexUpdated = this.getTitleIndexFocusUpdated(event, currentTitleIndex, numberOfTitles); this.changeTitleFocus(titleIndexUpdated); event.stopPropagation(); } else if (this.isActivationKey(event)) { event.preventDefault(); if (this.handeTitleLinkEnterOrSpaceEvent(event)) { return; } const titleIndex = this.getTitleIndex(event.currentTarget); elementorFrontend.elements.$window.trigger('elementor/nested-elements/activate-by-keyboard', { widgetId: this.getID(), titleIndex }); } else if ('Escape' === event.key) { this.handleTitleEscapeKeyEvents(event); } } handeTitleLinkEnterOrSpaceEvent(event) { const isLinkElement = 'a' === event?.currentTarget?.tagName?.toLowerCase(); if (!elementorFrontend.isEditMode() && isLinkElement) { event?.currentTarget?.click(); event.stopPropagation(); } return isLinkElement; } getTitleIndexFocusUpdated(event, currentTitleIndex, numberOfTitles) { let titleIndexUpdated = 0; switch (event.key) { case 'Home': titleIndexUpdated = 1; break; case 'End': titleIndexUpdated = numberOfTitles; break; default: const directionValue = this.getKeyDirectionValue(event), isEndReached = numberOfTitles < currentTitleIndex + directionValue, isStartReached = 0 === currentTitleIndex + directionValue; if (isEndReached) { titleIndexUpdated = 1; } else if (isStartReached) { titleIndexUpdated = numberOfTitles; } else { titleIndexUpdated = currentTitleIndex + directionValue; } } return titleIndexUpdated; } changeTitleFocus(titleIndexUpdated) { const $newTitle = this.elements.$itemTitles.filter(this.getTitleFilterSelector(titleIndexUpdated)); this.setTitleTabindex(titleIndexUpdated); $newTitle.trigger('focus'); } setTitleTabindex(titleIndex) { this.elements.$itemTitles.attr('tabindex', '-1'); const $newTitle = this.elements.$itemTitles.filter(this.getTitleFilterSelector(titleIndex)); $newTitle.attr('tabindex', '0'); } handleTitleEscapeKeyEvents() {} handleContentElementKeyboardNavigation(event) { if ('Tab' === event.key && !event.shiftKey) { this.handleContentElementTabEvents(event); } else if ('Escape' === event.key) { event.preventDefault(); event.stopPropagation(); this.handleContentElementEscapeEvents(event); } } handleContentElementEscapeEvents() { this.getActiveTitleElement().trigger('focus'); } handleContentElementTabEvents() {} } exports["default"] = NestedTitleKeyboardHandler; /***/ }) }]); //# sourceMappingURL=nested-title-keyboard-handler.967db65f6ba460c1f2e9.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