PluginProbe
bBlocks – Essential Gutenberg Blocks & Patterns Collection / 2.1.5
bBlocks – Essential Gutenberg Blocks & Patterns Collection v2.1.5
2.1.8 2.1.7 2.1.6 2.1.5 2.1.4 2.1.3 2.1.2 2.1.1 2.1.0 2.0.43 2.0.42 2.0.41 2.0.40 2.0.39 2.0.38 trunk 1.0 1.1 1.2 1.3 1.4 1.5 1.5.1 1.5.2 1.5.3 All 108 releases
b-blocks / build / accordion-block / view.js

view.js in bBlocks – Essential Gutenberg Blocks & Patterns Collection 2.1.5, at build/accordion-block/view.js

1 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (()=>{"use strict";const e=window.ReactDOM,o=window.React,t=window.ReactJSXRuntime,c=({attributes:e})=>{const{items:c,theme:n,customStyles:a}=e,r=(0,o.useRef)(null);return(0,o.useEffect)((()=>{const e=r.current;if(!e)return;const o=()=>Array.from(e.querySelectorAll("[data-accordion-item]")),t=o()?.[0];t&&t.classList.add("is-open");const c=e=>{const o=e.querySelector("[data-accordion-toggle]"),t=e.querySelector("[data-accordion-content]"),c=o?.querySelector(".accordion-icon");o&&t&&(e.classList.remove("is-open"),t.style.maxHeight="0",o.setAttribute("aria-expanded","false"),c&&(c.textContent="+"))};o().forEach((e=>{const o=e.querySelector("[data-accordion-content]");o&&(e.classList.contains("is-open")?o.style.maxHeight="unset":o.style.maxHeight="0")}));const n=t=>{const n=t.target.closest("[data-accordion-toggle]");if(!n||!e.contains(n))return;const a=n.closest("[data-accordion-item]");a&&(a.classList.contains("is-open")?c(a):(o().forEach((e=>{e!==a&&c(e)})),(e=>{const o=e.querySelector("[data-accordion-toggle]"),t=e.querySelector("[data-accordion-content]"),c=o?.querySelector(".accordion-icon");o&&t&&(e.classList.add("is-open"),t.style.maxHeight="unset",o.setAttribute("aria-expanded","true"),c&&(c.textContent="−"))})(a)))};let a;const i=()=>{clearTimeout(a),a=setTimeout((()=>{const o=e.querySelector("[data-accordion-item].is-open");if(!o)return;const t=o.querySelector("[data-accordion-content]");t&&(t.style.maxHeight="unset")}),200)};return e.addEventListener("click",n),window.addEventListener("resize",i),()=>{e.removeEventListener("click",n),window.removeEventListener("resize",i),clearTimeout(a)}}),[r]),(0,t.jsx)("div",{ref:r,className:`accordion-block accordion-theme-${n}`,style:"custom"!==n?{}:{"--bBlocks-accordion-header-bg":a.headerBgColor,"--bBlocks-accordion-header-text":a.headerTextColor,"--bBlocks-accordion-content-bg":a.contentBgColor,"--bBlocks-accordion-content-text":a.contentTextColor,"--bBlocks-accordion-border-color":a.borderColor,"--bBlocks-accordion-borderWidth":`${a.borderWidth}px`,"--bBlocks-accordion-borderRadius":`${a.borderRadius}px`,"--bBlocks-accordion-headerPadding":`${a.headerPadding}px`,"--bBlocks-accordion-content-padding":`${a.contentPadding}px`,"--bBlocks-accordion-header-font-size":`${a.headerFontSize}px`,"--bBlocks-accordion-content-font-size":`${a.contentFontSize}px`,"--bBlocks-accordion-icon-color":a.iconColor,"--bBlocks-accordion-animation-speed":`${a.animationSpeed}ms`},children:(0,t.jsx)("div",{className:"accordion-items",children:c.map(((e,o)=>(0,t.jsxs)("div",{className:"accordion-item","data-accordion-item":!0,children:[(0,t.jsxs)("button",{className:"accordion-header","data-accordion-toggle":!0,type:"button","aria-expanded":"false",children:[(0,t.jsx)("span",{dangerouslySetInnerHTML:{__html:e.title},className:"accordion-title"}),(0,t.jsx)("span",{className:"accordion-icon","aria-hidden":"true",children:"+"})]}),(0,t.jsx)("div",{className:"accordion-content","data-accordion-content":!0,children:(0,t.jsx)("div",{className:"accordion-text",children:(0,t.jsx)("div",{dangerouslySetInnerHTML:{__html:e.content}})})})]},o)))})})};document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll(".wp-block-b-blocks-accordion-block").forEach((o=>{const n=JSON.parse(o.dataset.attributes);(0,e.createRoot)(o).render((0,t.jsx)(t.Fragment,{children:(0,t.jsx)(c,{attributes:n})})),o?.removeAttribute("data-attributes")}))}))})();