diff --git a/accordion/kadence-accordion.css b/accordion/kadence-accordion.css new file mode 100644 index 0000000000000000000000000000000000000000..bacee2e7009b6cde7ae3f75110e55260742d19a6 --- /dev/null +++ b/accordion/kadence-accordion.css @@ -0,0 +1,340 @@ + +.kt-accordion-wrap .kt-accordion-header-wrap { + margin: 0; + padding: 0 +} + +.kt-blocks-accordion-header { + -webkit-align-content: space-between; + align-content: space-between; + -webkit-align-items: center; + align-items: center; + background-color: #f2f2f2; + border: 0 solid transparent; + border-radius: 0px; + color: #555555; + display: -webkit-flex; + display: flex; + font-size: 18px; + padding: 10px 14px; + position: relative; + line-height: 24px; + text-align: left; + transition: all ease-in-out .2s; + width: 100%; + box-shadow: none; + text-shadow: none +} + +.kt-blocks-accordion-header:focus { + box-shadow: none; + text-shadow: none +} + +.kt-blocks-accordion-header:hover { + background-color: #eeeeee; + color: #444444; + box-shadow: none; + text-shadow: none +} + +.kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after,.kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before { + background-color: #444444 +} + +.kt-blocks-accordion-header.kt-accordion-panel-active { + background-color: hsl( 198, 53%, 27% ); + color: #ffffff +} + +.kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after,.kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before { + background-color: #ffffff +} + +.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger { + background-color: #444444 +} + +.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before { + background-color: #eeeeee +} + +.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger { + background-color: #ffffff +} + +.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before { + background-color: #444444 +} + +.kt-blocks-accordion-title-wrap { + display: -webkit-flex; + display: flex; + padding-right: 10px +} + +.kt-accodion-icon-side-left .kt-blocks-accordion-title-wrap { + padding-right: 0px +} + +.kt-pane-header-alignment-center button.kt-blocks-accordion-header { + text-align: center +} + +.kt-pane-header-alignment-center button.kt-blocks-accordion-header .kt-blocks-accordion-title-wrap { + -webkit-flex-grow: 2; + flex-grow: 2; + -webkit-justify-content: center; + justify-content: center +} + +.kt-pane-header-alignment-right button.kt-blocks-accordion-header { + text-align: right +} + +.kt-pane-header-alignment-right button.kt-blocks-accordion-header .kt-blocks-accordion-title-wrap { + -webkit-flex-grow: 2; + flex-grow: 2; + -webkit-justify-content: flex-end; + justify-content: flex-end +} + +.kt-pane-header-alignment-right button.kt-blocks-accordion-header .kt-blocks-accordion-icon-trigger { + margin-left: 10px +} + +.kt-acccordion-button-label-hide .kt-blocks-accordion-title { + display: none +} + +.kt-accordion-panel-inner:after { + clear: both; + display: table; + content: '' +} + +.kt-accodion-icon-style-none .kt-blocks-accordion-icon-trigger { + display: none +} + +.kt-accodion-icon-side-left .kt-blocks-accordion-icon-trigger { + -webkit-order: -1; + order: -1; + margin-left: 0; + margin-right: 10px +} + +.kt-blocks-accordion-icon-trigger { + display: block; + height: 24px; + margin-left: auto; + position: relative; + transition: all ease-in-out 0.2s; + width: 24px; + min-width: 24px; + box-sizing: content-box +} + +.kt-blocks-accordion-icon-trigger:after,.kt-blocks-accordion-icon-trigger:before { + background-color: #333 +} + +.kt-accodion-icon-style-basic .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) +} + +.kt-accodion-icon-style-basic .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) +} + +.kt-accodion-icon-style-basic .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-basic .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-icon-trigger:before { + content: ""; + height: 4px; + position: absolute; + transition: all ease-in-out 0.1333333333s; + width: 20px; + left: 2px; + top: 10px +} + +.kt-accodion-icon-style-basic .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-icon-trigger:before { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + -webkit-transform-origin: 50%; + transform-origin: 50% +} + +.kt-accodion-icon-style-basic .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-icon-trigger:after { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + -webkit-transform-origin: 50%; + transform-origin: 50% +} + +.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-icon-trigger { + background-color: #333; + border-radius: 50% +} + +.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-basiccircle .kt-blocks-accordion-icon-trigger:before { + background-color: #fff; + width: 16px; + left: 4px; + top: 10px +} + +.kt-accodion-icon-style-xclose .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before { + -webkit-transform: rotate(45deg); + transform: rotate(45deg) +} + +.kt-accodion-icon-style-xclose .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg) +} + +.kt-accodion-icon-style-xclose .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-xclose .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger:before { + content: ""; + height: 4px; + position: absolute; + transition: all ease-in-out 0.1333333333s; + width: 20px; + left: 2px; + top: 10px +} + +.kt-accodion-icon-style-xclose .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger:before { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + -webkit-transform-origin: 50%; + transform-origin: 50% +} + +.kt-accodion-icon-style-xclose .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger:after { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + -webkit-transform-origin: 50%; + transform-origin: 50% +} + +.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger { + background-color: #333; + border-radius: 50% +} + +.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger:before { + background-color: #fff; + width: 16px; + left: 4px; + top: 10px +} + +.kt-accodion-icon-style-arrow .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg) +} + +.kt-accodion-icon-style-arrow .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after { + -webkit-transform: rotate(45deg); + transform: rotate(45deg) +} + +.kt-accodion-icon-style-arrow .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-arrow .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-icon-trigger:before { + content: ""; + height: 2px; + position: absolute; + top: 11px; + transition: all ease-in-out 0.1333333333s; + width: 12px +} + +.kt-accodion-icon-style-arrow .kt-blocks-accordion-icon-trigger:before,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-icon-trigger:before { + left: 2px; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-transform-origin: 50%; + transform-origin: 50% +} + +.kt-accodion-icon-style-arrow .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-icon-trigger:after { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + right: 2px; + -webkit-transform-origin: 50%; + transform-origin: 50% +} + +.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-icon-trigger { + background-color: #333; + border-radius: 50% +} + +.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-icon-trigger:after,.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-icon-trigger:before { + background-color: #fff; + width: 10px +} + +.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-icon-trigger:before { + left: 4px +} + +.kt-accodion-icon-style-arrowcircle .kt-blocks-accordion-icon-trigger:after { + right: 4px +} + +.kt-accordion-header-wrap { + margin-top: 8px +} + +.kt-accordion-inner-wrap .wp-block-kadence-pane:first-child .kt-accordion-header-wrap { + margin-top: 0px +} + +.kt-accordion-panel-inner { + padding: 20px; + border: 1px solid #eee; + border-top: 0 +} + +.kt-accordion-panel { + overflow: auto; + display: block +} + +.kt-accordion-panel.kt-accordion-panel-hidden { + max-height: 0 !important; + overflow: hidden; + display: none +} + +.kt-accordion-initialized .kt-panel-is-collapsing,.kt-accordion-initialized .kt-panel-is-expanding { + transition: height 0.45s ease; + position: relative; + height: 0; + overflow: hidden +} + +.kt-accordion-header-wrap .kt-btn-svg-icon.kt-btn-side-left { + padding-right: 5px +} + +.kt-accordion-header-wrap .kt-btn-svg-icon.kt-btn-side-right { + padding-left: 5px +} + +.kt-accordion-header-wrap .kt-acccordion-button-label-hide .kt-btn-svg-icon { + padding-left: 0; + padding-right: 0 +} + +.rtl .kt-blocks-accordion-icon-trigger { + margin-left: 0; + margin-right: auto +} + +.rtl .kt-blocks-accordion-title-wrap { + padding-left: 10px; + padding-right: 0 +} diff --git a/accordion/kadence-accordion.js b/accordion/kadence-accordion.js new file mode 100644 index 0000000000000000000000000000000000000000..cabe425f8ad51582c251773360ec99840f71e525 --- /dev/null +++ b/accordion/kadence-accordion.js @@ -0,0 +1,538 @@ +!function(t, e) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.KadenceAccordion = e() +}(this, (function() { + "use strict"; + function t(t, e) { + for (var n = 0; n < e.length; n++) { + var i = e[n]; + i.enumerable = i.enumerable || !1, + i.configurable = !0, + "value"in i && (i.writable = !0), + Object.defineProperty(t, i.key, i) + } + } + function e() { + return (e = Object.assign || function(t) { + for (var e = 1; e < arguments.length; e++) { + var n = arguments[e]; + for (var i in n) + Object.prototype.hasOwnProperty.call(n, i) && (t[i] = n[i]) + } + return t + } + ).apply(this, arguments) + } + function n(t) { + return function(t) { + if (Array.isArray(t)) { + for (var e = 0, n = new Array(t.length); e < t.length; e++) + n[e] = t[e]; + return n + } + }(t) || function(t) { + if (Symbol.iterator in Object(t) || "[object Arguments]" === Object.prototype.toString.call(t)) + return Array.from(t) + }(t) || function() { + throw new TypeError("Invalid attempt to spread non-iterable instance") + }() + } + var i, a, s, r; + return function() { + if ("function" == typeof window.CustomEvent) + return !1; + function t(t, e) { + e = e || { + bubbles: !1, + cancelable: !1, + detail: void 0 + }; + var n = document.createEvent("CustomEvent"); + return n.initCustomEvent(t, e.bubbles, e.cancelable, e.detail), + n + } + t.prototype = window.Event.prototype, + window.CustomEvent = t + }(), + Array.from || (Array.from = (i = Object.prototype.toString, + a = function(t) { + return "function" == typeof t || "[object Function]" === i.call(t) + } + , + s = Math.pow(2, 53) - 1, + r = function(t) { + var e = function(t) { + var e = Number(t); + return isNaN(e) ? 0 : 0 !== e && isFinite(e) ? (e > 0 ? 1 : -1) * Math.floor(Math.abs(e)) : e + }(t); + return Math.min(Math.max(e, 0), s) + } + , + function(t) { + var e = this + , n = Object(t); + if (null == t) + throw new TypeError("Array.from requires an array-like object - not null or undefined"); + var i, s = arguments.length > 1 ? arguments[1] : void 0; + if (void 0 !== s) { + if (!a(s)) + throw new TypeError("Array.from: when provided, the second argument must be a function"); + arguments.length > 2 && (i = arguments[2]) + } + for (var o, l = r(n.length), c = a(e) ? Object(new e(l)) : new Array(l), d = 0; d < l; ) + o = n[d], + c[d] = s ? void 0 === i ? s(o, d) : s.call(i, o, d) : o, + d += 1; + return c.length = l, + c + } + )), + function(t, e) { + var n = (t.body || t.documentElement).style + , i = "" + , a = ""; + "" == n.WebkitAnimation && (i = "-webkit-"), + "" == n.MozAnimation && (i = "-moz-"), + "" == n.OAnimation && (i = "-o-"), + "" == n.WebkitTransition && (a = "-webkit-"), + "" == n.MozTransition && (a = "-moz-"), + "" == n.OTransition && (a = "-o-"), + Object.defineProperty(Object.prototype, "onCSSAnimationEnd", { + value: function(t) { + var e = function e(n) { + t(), + n.target.removeEventListener(n.type, e) + }; + return this.addEventListener("webkitAnimationEnd", e), + this.addEventListener("mozAnimationEnd", e), + this.addEventListener("oAnimationEnd", e), + this.addEventListener("oanimationend", e), + this.addEventListener("animationend", e), + ("" == i && !("animation"in n) || "0s" == getComputedStyle(this)[i + "animation-duration"]) && t(), + this + }, + enumerable: !1, + writable: !0 + }), + Object.defineProperty(Object.prototype, "onCSSTransitionEnd", { + value: function(t) { + var e = function e(n) { + t(), + n.target.removeEventListener(n.type, e) + }; + return this.addEventListener("webkitTransitionEnd", e), + this.addEventListener("mozTransitionEnd", e), + this.addEventListener("oTransitionEnd", e), + this.addEventListener("transitionend", e), + this.addEventListener("transitionend", e), + ("" == a && !("transition"in n) || "0s" == getComputedStyle(this)[a + "transition-duration"]) && t(), + this + }, + enumerable: !1, + writable: !0 + }) + }(document, window), + function() { + function i(t, a) { + var s = this; + !function(t, e) { + if (!(t instanceof e)) + throw new TypeError("Cannot call a class as a function") + }(this, i); + var r = "string" == typeof t ? document.querySelector(t) : t; + if (null != r) { + var o = { + headerClass: ".kt-blocks-accordion-header", + panelClass: ".kt-accordion-panel", + panelInnerClass: ".kt-accordion-panel-inner", + hiddenClass: "kt-accordion-panel-hidden", + activeClass: "kt-accordion-panel-active", + get hidenClass() { + return this.hiddenClass + }, + initializedClass: "kt-accordion-initialized", + get initalisedClass() { + return this.initializedClass + }, + headerDataAttr: "data-kt-accordion-header-id", + openMultiplePanels: !1, + openHeadersOnLoad: [], + headerOpenLabel: "", + headerCloseLabel: "", + roles: !0 + }; + this.settings = e({}, o, a), + this.container = r; + var l = Array.from(this.container.children) + , c = []; + Array.from(l).forEach((function(t) { + Array.from(t.children).forEach((function(t) { + c.push(t) + } + )) + } + )); + var d = c.filter((function(t) { + return !t.classList.contains(s.settings.panelClass.substr(1)) + } + )); + this.headers = d.reduce((function(t, e) { + var i, a = Array.from(e.children).filter((function(t) { + return t.classList.contains(s.settings.headerClass.substr(1)) + } + )); + return !a.length && e.children[0] && e.children[0].children && e.children[0].children.length && (a = Array.from(e.children[0].children).filter((function(t) { + return t.classList.contains(s.settings.headerClass.substr(1)) + } + ))), + t = (i = []).concat.apply(i, n(t).concat([a])) + } + ), []), + this.panels = c.filter((function(t) { + return t.classList.contains(s.settings.panelClass.substr(1)) + } + )), + this.toggleEl = void 0 !== this.settings.toggleEl ? Array.from(this.container.querySelectorAll(this.settings.toggleEl)) : this.headers, + this.states = [].map.call(this.headers, (function() { + return { + state: "closed" + } + } + )), + this.ids = [].map.call(this.headers, (function() { + return { + id: Math.floor(1e6 * Math.random() + 1) + } + } + )), + this.toggling = !1, + this.container ? this.init() : console.log("Something is wrong with you markup...") + } + } + var a, s, r; + return a = i, + (s = [{ + key: "init", + value: function() { + this._setupAttributes(), + this._initalState(), + this.calculateAllPanelsHeight(), + this._insertDataAttrs(), + this._addListeners(), + this._finishInitialization() + } + }, { + key: "_setRole", + value: function(t, e) { + ("boolean" == typeof this.settings.roles && this.settings.roles || void 0 !== this.settings.roles[t] && !1 !== this.settings.roles[t]) && e.setAttribute("role", t) + } + }, { + key: "_initalState", + value: function() { + var t = this.settings.openHeadersOnLoad; + t.length && (this.toggling = !0, + this._openHeadersOnLoad(t)), + this._renderDom() + } + }, { + key: "_insertDataAttrs", + value: function() { + var t = this; + this.headers.forEach((function(e, n) { + e.setAttribute(t.settings.headerDataAttr, n) + } + )) + } + }, { + key: "_finishInitialization", + value: function() { + this.container.classList.add(this.settings.initializedClass), + this._setRole("presentation", this.container); + var t = new CustomEvent("initialized"); + this.container.dispatchEvent(t) + } + }, { + key: "_addListeners", + value: function() { + var t = this; + this.headers.forEach((function(e, n) { + e.addEventListener("click", (function() { + t.handleClick(e, n) + } + )) + } + )) + } + }, { + key: "handleClick", + value: function(t, e) { + var n = this + , i = this.settings.headerClass.substr(1); + if (t.classList.contains(i) && !1 === this.toggling) + this.toggling = !0, + this.setState(e), + this._renderDom(); + else + var a = setInterval((function() { + !1 === n.toggling && (n.toggling = !0, + n.setState(e), + n._renderDom(), + clearInterval(a)) + } + ), 50) + } + }, { + key: "setState", + value: function(t) { + var e = this + , n = this.getState(); + this.settings.openMultiplePanels || n.filter((function(e, n) { + n != t && (e.state = "closed") + } + )), + n.filter((function(n, i) { + if (i == t) { + var a = e.toggleState(n.state); + return n.state = a + } + } + )) + } + }, { + key: "_renderDom", + value: function() { + var t = this; + this.states.filter((function(e, n) { + "open" === e.state && t.open(n, !1) + } + )), + this.states.filter((function(e, n) { + "closed" === e.state && t.close(n, !1) + } + )) + } + }, { + key: "open", + value: function(t) { + var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + e && this.setState(t), + this.togglePanel("open", t) + } + }, { + key: "close", + value: function(t) { + var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + e && this.setState(t), + this.togglePanel("closed", t) + } + }, { + key: "openAll", + value: function() { + var t = this; + this.headers.forEach((function(e, n) { + t.togglePanel("open", n) + } + )) + } + }, { + key: "closeAll", + value: function() { + var t = this; + this.headers.forEach((function(e, n) { + t.togglePanel("closed", n) + } + )) + } + }, { + key: "togglePanel", + value: function(t, e) { + var n = this; + if (void 0 !== t && void 0 !== e) + if ("closed" === t) { + var i = this.headers[e] + , a = this.panels[e]; + if (!a.classList.contains(this.settings.hiddenClass)) { + a.setAttribute("data-panel-height", a.scrollHeight + "px"), + a.style.height = a.scrollHeight + "px", + a.offsetHeight, + a.style.height = "", + a.classList.add("kt-panel-is-collapsing"), + a.classList.remove(this.settings.activeClass), + i.classList.remove(this.settings.activeClass), + i.setAttribute("aria-expanded", !1); + var s = 1e3 * parseFloat(getComputedStyle(a).transitionDuration); + setTimeout((function() { + return a.classList.add(n.settings.hiddenClass), + a.classList.remove("kt-panel-is-collapsing"), + n.toggling = !1 + } + ), s) + } + } else if ("open" === t) { + var r = this.headers[e] + , o = this.panels[e]; + if (!o.classList.contains(this.settings.activeClass)) { + o.classList.remove(this.settings.hiddenClass), + o.style.height = 0, + o.offsetHeight, + o.classList.add("kt-panel-is-expanding"), + o.style.height = o.scrollHeight < parseInt(o.getAttribute("data-panel-height")) ? parseInt(o.getAttribute("data-panel-height")) + "px" : o.scrollHeight + "px", + o.offsetHeight, + r.classList.add(this.settings.activeClass), + r.setAttribute("aria-expanded", !0); + var l = window.document.createEvent("UIEvents"); + l.initUIEvent("resize", !0, !1, window, 0), + window.dispatchEvent(l); + var c = 1e3 * parseFloat(getComputedStyle(o).transitionDuration); + setTimeout((function() { + return o.classList.add(n.settings.activeClass), + o.style.height = "", + o.classList.remove("kt-panel-is-expanding"), + n.toggling = !1 + } + ), c) + } + } + } + }, { + key: "getState", + value: function() { + var t = this + , e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; + if (e.length && Array.isArray(e)) { + var n = e.map((function(e) { + return t.states[e] + } + )); + return n + } + return this.states + } + }, { + key: "toggleState", + value: function(t) { + if (void 0 !== t) + return "closed" === t ? "open" : "closed" + } + }, { + key: "_openHeadersOnLoad", + value: function() { + var t = this + , e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; + if (e.length && Array.isArray(e)) { + var n = e.filter((function(t) { + return null != t + } + )); + n.forEach((function(e) { + t.setState(e) + } + )) + } + } + }, { + key: "_setupAttributes", + value: function() { + this._setupHeaders(), + this._setupPanels(), + this._insertDataAttrs() + } + }, { + key: "_setPanelHeight", + value: function() { + this.calculateAllPanelsHeight() + } + }, { + key: "calculatePanelHeight", + value: function(t) { + var e = t.querySelector(this.settings.panelInnerClass).getBoundingClientRect(); + return t.setAttribute("data-panel-height", "".concat(e.height, "px")) + } + }, { + key: "calculateAllPanelsHeight", + value: function() { + var t = this; + this.panels.forEach((function(e) { + t.calculatePanelHeight(e) + } + )) + } + }, { + key: "_setupHeaders", + value: function() { + var t = this; + this.headers.forEach((function(e, n) { + e.setAttribute("id", "kt-accordion-header-".concat(t.ids[n].id)), + e.setAttribute("aria-controls", "kt-accordion-panel-".concat(t.ids[n].id)) + } + )) + } + }, { + key: "_setupPanels", + value: function() { + var t = this; + this.panels.forEach((function(e, n) { + e.setAttribute("id", "kt-accordion-panel-".concat(t.ids[n].id)), + e.setAttribute("aria-labelledby", "kt-accordion-header-".concat(t.ids[n].id)), + !0 !== t.settings.roles && !1 === t.settings.roles.region || t._setRole("region", e) + } + )) + } + }]) && t(a.prototype, s), + r && t(a, r), + i + }() +} +)), +function() { + "use strict"; + window.KadenceBlocksAccordion = { + scroll: function(t, e, n) { + if (!(n <= 0)) { + var i = (e - t.scrollTop) / n * 10; + setTimeout((function() { + t.scrollTop = t.scrollTop + i, + t.scrollTop !== e && scrollTo(t, e, n - 10) + } + ), 10) + } + }, + anchor: function(t) { + if ("" != window.location.hash) { + var e, n = location.hash.substring(1); + if (!/^[A-z0-9_-]+$/.test(n)) + return; + if ((e = document.getElementById(n)) && e.classList.contains("wp-block-kadence-pane")) { + var i = document.querySelectorAll("#" + n + " .kt-blocks-accordion-header")[0]; + i.classList.contains("kt-accordion-panel-active") || (t.type && "initialized" === t.type ? window.setTimeout((function() { + i.click() + } + ), 50) : i.click()) + } + } + }, + init: function() { + for (var t = document.querySelectorAll(".kt-accordion-inner-wrap"), e = Array.from(t), n = 0, i = e.length; n < i; n++) { + var a = e[n].getAttribute("data-allow-multiple-open") + , s = e[n].getAttribute("data-start-open") + , r = parseInt(s); + if ("none" !== s) + for (var o = 0, l = e[n].children.length; o < l; o++) + e[n].children[o].classList.contains("kt-accordion-pane-" + (1 + r)) && (r = o); + e[n].addEventListener("initialized", window.KadenceBlocksAccordion.anchor, !1), + new KadenceAccordion(e[n],{ + openHeadersOnLoad: "none" === s ? [] : [parseInt(r)], + headerClass: ".kt-blocks-accordion-header", + panelClass: ".kt-accordion-panel", + panelInnerClass: ".kt-accordion-panel-inner", + hiddenClass: "kt-accordion-panel-hidden", + activeClass: "kt-accordion-panel-active", + initializedClass: "kt-accordion-initialized", + headerDataAttr: "data-kt-accordion-header-id", + openMultiplePanels: "true" === a + }) + } + window.addEventListener("hashchange", window.KadenceBlocksAccordion.anchor, !1) + } + }, + "loading" === document.readyState ? document.addEventListener("DOMContentLoaded", window.KadenceBlocksAccordion.init) : window.KadenceBlocksAccordion.init() +}();