PluginProbe
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder / 2.14.0
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder v2.14.0
2.14.0 2.13.0 2.13.1 2.12.0 2.11.1 2.11.0 2.10.0 2.9.0 2.7.4 2.7.5 2.7.6 2.7.7 2.8.0 2.8.1 2.9.1 trunk 1.0 1.0-beta1 1.0-beta2 1.0-beta3 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 All 81 releases
← All changes | assets/build/blocks/tabs/view.js +6 -0 2.7.7 → 2.14.0 View file →
@@ -1,0 +1,6 @@
1 +(()=>{"use strict";const t=class{constructor(t,e=!0,s={}){this.tabs=t,this.tabsHeight=this.tabs.getBoundingClientRect().height,this.tabsTopHeight=this.tabs.getBoundingClientRect().top+window.scrollY;const i=this.getDataSettings();this.autoChangeInterval=null,this.editor=e,this.progressInterval=null,this.settings={...this.getDefaultSettings(),...i,...s},this.elements=this.getElements(),this.eventListeners=[],this.bindEvents(),this.defaultActiveTab(),!1===this.editor&&this.settings.autoChange&&this.startAutoChange(),!1===this.editor&&this.settings.scrollChange&&"top"!==this.settings.tabMenuPosition&&"bottom"!==this.settings.tabMenuPosition&&this.startScrollChange(),window.addEventListener("beforeunload",()=>{this.stopAutoChange()}),document.addEventListener("visibilitychange",this.handleVisibilityChange.bind(this))}getDefaultSettings(){return{selectors:{tabTitle:".ablocks-block-tabs__tab",tabContent:".ablocks-block--tabs-child",progressBar:".ablocks-block-tabs__progressbar"},classes:{
2 +activeTitle:"ablocks-block-tabs__tab--active",activeContent:"has-child-selected"},toggleSelf:!0,hidePrevious:!0,autoExpand:!0,initialOpen:0,autoChange:!1,activeDuration:1e4,enableHoverSwitch:!1}}getDataSettings(){return{initialOpen:parseInt(this.tabs.getAttribute("data-initial-open"))||0,autoChange:"true"===this.tabs.getAttribute("data-enable-auto-change"),scrollChange:"true"===this.tabs.getAttribute("data-enable-scroll-change"),enableHoverSwitch:"true"===this.tabs.getAttribute("data-enable-hover-switch"),tabMenuPosition:this.tabs.getAttribute("data-tab-menu-position"),activeDuration:parseInt(this.tabs.getAttribute("data-tab-active-duration"))||1e4}}getElements(){const{tabTitle:t,tabContent:e}=this.settings.selectors;return{tabTitles:this.queryElements(t),tabContents:this.queryElements(e)}}queryElements(t){return Array.from(this.tabs.querySelectorAll(t))}bindEvents(){this.elements.tabTitles.forEach(t=>{const e=t.getAttribute("data-tab");if(this.settings.enableHoverSwitch){const s=()=>{
3 +this.changeActiveTab(e)};t.addEventListener("mouseenter",s),this.eventListeners.push({element:t,handler:s})}else{const s=t=>{t.preventDefault(),this.changeActiveTab(e)};t.addEventListener("click",s),this.eventListeners.push({element:t,handler:s})}})}changeActiveTab(t){this.isActiveTab(t)||(this.deactivateAllTabs(),this.activateTab(t),!1===this.editor&&this.settings.autoChange&&(clearInterval(this.autoChangeInterval),this.startAutoChange()))}isActiveTab(t){const{activeTitle:e}=this.settings.classes,s=this.elements.tabTitles.find(e=>e.getAttribute("data-tab")===t);return s&&s.classList.contains(e)}deactivateAllTabs(){this.elements.tabTitles.forEach(t=>{const e=t.getAttribute("data-tab");this.deactivateTab(e)})}deactivateTab(t){const{activeTitle:e,activeContent:s}=this.settings.classes,i=this.elements.tabTitles.find(e=>e.getAttribute("data-tab")===t),a=this.elements.tabContents.find(e=>e.getAttribute("data-tab-id")===t);i&&i.classList.remove(e),a&&(a.classList.remove(s),
4 +a.style.display="none")}activateTab(t){if(null===t)return;const{activeTitle:e,activeContent:s}=this.settings.classes,i=this.elements.tabTitles.find(e=>e.getAttribute("data-tab")===t);this.deactivateAllTabs();const a=this.elements.tabContents[t],n=this.elements.tabTitles[t].querySelector(this.settings.selectors.progressBar);i&&i.classList.add(e),i&&(a.classList.add(s),a.style.display="block"),this.startProgressBar(n)}removeListeners(){this.eventListeners.forEach(({element:t,handler:e})=>{t.removeEventListener("click",e),t.removeEventListener("mouseenter",e)}),this.eventListeners=[]}defaultActiveTab(){const{initialOpen:t}=this.settings,{activeTitle:e,activeContent:s}=this.settings.classes,i=this.elements.tabTitles.findIndex(t=>t.classList.contains(e)),a=this.elements.tabContents.findIndex(t=>t.classList.contains(s));(t>0&&-1===i||t>0&&-1===a)&&this.activateTab((t-1).toString())}startProgressBar(t){if(!t)return;clearInterval(this.progressInterval),t.style.width="0%";let e=0
5 +;this.progressInterval=setInterval(()=>{e+=1,t.style.width=`${e}%`,e>=100&&clearInterval(this.progressInterval)},this.settings.activeDuration/100)}startAutoChange(){this.autoChangeInterval=setInterval(()=>{const t=(this.getActiveTabIndex()+1)%this.elements.tabTitles.length;this.changeActiveTab(t.toString())},this.settings.activeDuration)}startScrollChange(){const t=()=>{const t=window.scrollY+window.innerHeight;let e=null;this.elements.tabTitles.forEach((s,i)=>{const a=s.getBoundingClientRect().top+window.scrollY;t>a&&(e=i)}),null!==e&&this.changeActiveTab(e.toString())};window.addEventListener("scroll",t),this.eventListeners.push({element:window,handler:t})}getActiveTabIndex(){const{activeTitle:t}=this.settings.classes,e=this.elements.tabTitles.findIndex(e=>e.classList.contains(t));return-1!==e?e:0}stopAutoChange(){this.autoChangeInterval&&(clearInterval(this.autoChangeInterval),this.autoChangeInterval=null)}handleVisibilityChange(){
6 +document.hidden?this.stopAutoChange():!1===this.editor&&this.settings.autoChange&&this.startAutoChange()}};document.addEventListener("DOMContentLoaded",()=>{!function(t,e,s="ablocksInitialized"){t&&("function"==typeof t.forEach?t:[t]).forEach(t=>{t&&t.dataset&&!t.dataset[s]&&(t.dataset[s]="1",e(t))})}(document.querySelectorAll(".ablocks-block-tabs"),e=>{new t(e,!1)},"ablocksTabsInit")})})();