158 lines
7.3 KiB
JavaScript
158 lines
7.3 KiB
JavaScript
"use strict";
|
|
(self.webpackChunkelementorFrontend = self.webpackChunkelementorFrontend || []).push([
|
|
[131], {
|
|
5249: (e, t, a) => {
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0, a(4846), a(7458), a(6211);
|
|
class baseTabs extends elementorModules.frontend.handlers.Base {
|
|
getDefaultSettings() {
|
|
return {
|
|
selectors: {
|
|
tablist: '[role="tablist"]',
|
|
tabTitle: ".elementor-tab-title",
|
|
tabContent: ".elementor-tab-content"
|
|
},
|
|
classes: {
|
|
active: "elementor-active"
|
|
},
|
|
showTabFn: "show",
|
|
hideTabFn: "hide",
|
|
toggleSelf: !0,
|
|
hidePrevious: !0,
|
|
autoExpand: !0,
|
|
keyDirection: {
|
|
ArrowLeft: elementorFrontendConfig.is_rtl ? 1 : -1,
|
|
ArrowUp: -1,
|
|
ArrowRight: elementorFrontendConfig.is_rtl ? -1 : 1,
|
|
ArrowDown: 1
|
|
}
|
|
}
|
|
}
|
|
getDefaultElements() {
|
|
const e = this.getSettings("selectors");
|
|
return {
|
|
$tabTitles: this.findElement(e.tabTitle),
|
|
$tabContents: this.findElement(e.tabContent)
|
|
}
|
|
}
|
|
activateDefaultTab() {
|
|
const e = this.getSettings();
|
|
if (!e.autoExpand || "editor" === e.autoExpand && !this.isEdit) return;
|
|
const t = this.getEditSettings("activeItemIndex") || 1,
|
|
a = {
|
|
showTabFn: e.showTabFn,
|
|
hideTabFn: e.hideTabFn
|
|
};
|
|
this.setSettings({
|
|
showTabFn: "show",
|
|
hideTabFn: "hide"
|
|
}), this.changeActiveTab(t), this.setSettings(a)
|
|
}
|
|
handleKeyboardNavigation(e) {
|
|
const t = e.currentTarget,
|
|
a = jQuery(t.closest(this.getSettings("selectors").tablist)),
|
|
i = a.find(this.getSettings("selectors").tabTitle),
|
|
s = "vertical" === a.attr("aria-orientation");
|
|
switch (e.key) {
|
|
case "ArrowLeft":
|
|
case "ArrowRight":
|
|
if (s) return;
|
|
break;
|
|
case "ArrowUp":
|
|
case "ArrowDown":
|
|
if (!s) return;
|
|
e.preventDefault();
|
|
break;
|
|
case "Home":
|
|
return e.preventDefault(), void i.first().trigger("focus");
|
|
case "End":
|
|
return e.preventDefault(), void i.last().trigger("focus");
|
|
default:
|
|
return
|
|
}
|
|
const n = t.getAttribute("data-tab") - 1,
|
|
r = this.getSettings("keyDirection")[e.key],
|
|
o = i[n + r];
|
|
o ? o.focus() : -1 === n + r ? i.last().trigger("focus") : i.first().trigger("focus")
|
|
}
|
|
deactivateActiveTab(e) {
|
|
const t = this.getSettings(),
|
|
a = t.classes.active,
|
|
i = e ? '[data-tab="' + e + '"]' : "." + a,
|
|
s = this.elements.$tabTitles.filter(i),
|
|
n = this.elements.$tabContents.filter(i);
|
|
s.add(n).removeClass(a), s.attr({
|
|
tabindex: "-1",
|
|
"aria-selected": "false",
|
|
"aria-expanded": "false"
|
|
}), n[t.hideTabFn](), n.attr("hidden", "hidden")
|
|
}
|
|
activateTab(e) {
|
|
const t = this.getSettings(),
|
|
a = t.classes.active,
|
|
i = this.elements.$tabTitles.filter('[data-tab="' + e + '"]'),
|
|
s = this.elements.$tabContents.filter('[data-tab="' + e + '"]'),
|
|
n = "show" === t.showTabFn ? 0 : 400;
|
|
i.add(s).addClass(a), i.attr({
|
|
tabindex: "0",
|
|
"aria-selected": "true",
|
|
"aria-expanded": "true"
|
|
}), s[t.showTabFn](n, () => elementorFrontend.elements.$window.trigger("elementor-pro/motion-fx/recalc")), s.removeAttr("hidden")
|
|
}
|
|
isActiveTab(e) {
|
|
return this.elements.$tabTitles.filter('[data-tab="' + e + '"]').hasClass(this.getSettings("classes.active"))
|
|
}
|
|
bindEvents() {
|
|
this.elements.$tabTitles.on({
|
|
keydown: e => {
|
|
jQuery(e.target).is("a") && "Enter" === e.key && e.preventDefault(), ["End", "Home", "ArrowUp", "ArrowDown"].includes(e.key) && this.handleKeyboardNavigation(e)
|
|
},
|
|
keyup: e => {
|
|
switch (e.code) {
|
|
case "ArrowLeft":
|
|
case "ArrowRight":
|
|
this.handleKeyboardNavigation(e);
|
|
break;
|
|
case "Enter":
|
|
case "Space":
|
|
e.preventDefault(), this.changeActiveTab(e.currentTarget.getAttribute("data-tab"))
|
|
}
|
|
},
|
|
click: e => {
|
|
e.preventDefault(), this.changeActiveTab(e.currentTarget.getAttribute("data-tab"))
|
|
}
|
|
})
|
|
}
|
|
onInit(...e) {
|
|
super.onInit(...e), this.activateDefaultTab()
|
|
}
|
|
onEditSettingsChange(e) {
|
|
"activeItemIndex" === e && this.activateDefaultTab()
|
|
}
|
|
changeActiveTab(e) {
|
|
const t = this.isActiveTab(e),
|
|
a = this.getSettings();
|
|
!a.toggleSelf && t || !a.hidePrevious || this.deactivateActiveTab(), !a.hidePrevious && t && this.deactivateActiveTab(e), t || this.activateTab(e)
|
|
}
|
|
}
|
|
t.default = baseTabs
|
|
},
|
|
9675: (e, t, a) => {
|
|
var i = a(6784);
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0;
|
|
var s = i(a(5249));
|
|
class Accordion extends s.default {
|
|
getDefaultSettings() {
|
|
return { ...super.getDefaultSettings(),
|
|
showTabFn: "slideDown",
|
|
hideTabFn: "slideUp"
|
|
}
|
|
}
|
|
}
|
|
t.default = Accordion
|
|
}
|
|
}
|
|
]); |