HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux sa-dev.otherchirps.net 5.15.0-139-generic #149-Ubuntu SMP Fri Apr 11 22:06:13 UTC 2025 x86_64
User: www-data (33)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wp-content/plugins/editorplus/assets/scripts/tabs.js
class EditorPlusTabs {
  constructor(container) {
    this.container = container;
    this.tabLabels = this.container.querySelectorAll(".ep_label_main");
    this.tabContents = this.container.querySelectorAll(".ep_tab_item_wrapper");
    this.initialize();
  }
  initialize() {
    let autoPlay =
      this.container.getAttribute("data-autoplay") === "false" ? false : true;
    this.showInitialTabs();
    this.attachEventHandlers();
    autoPlay && this.setupAutoplay();
  }
  setupAutoplay() {
    this.autoPlayTabs();
  }
  setActiveTab(index) {
    for (let i = 0; i < this.tabLabels.length; i++) {
      if (this.tabLabels[i].classList.contains("ep_active_tab")) {
        this.tabLabels[i].classList.remove("ep_active_tab");
      }
      if (this.tabContents[i].classList.contains("ep_active_content")) {
        this.tabContents[i].classList.remove("ep_active_content");
      }
    }
    this.tabLabels[index].classList.add("ep_active_tab");
    this.tabContents[index].classList.add("ep_active_content");
  }
  showInitialTabs() {
    this.setActiveTab(0);
  }
  attachEventHandlers() {
    this.tabLabels.forEach((tab, idx) => {
      tab.addEventListener("click", (event) => {
        event.preventDefault();
        this.setActiveTab(idx);
      });
    });
  }
  autoPlayTabs() {
    let delayInSeconds = Number(this.container.getAttribute("data-delay"));
    let delayInMilliseconds = delayInSeconds * 1000;
    let index = Array.from(
      document.querySelectorAll(".ep_tabs_root .ep_label_main")
    ).findIndex((tab) => tab.classList.contains("ep_active_tab"));
    const autoplayInterval = () => {
      if (index < this.tabContents.length) {
        this.setActiveTab(index);
        index++;
      } else {
        index = 0;
      }
    };
    let interval = setInterval(autoplayInterval, delayInMilliseconds);
    document.addEventListener("mousemove", (event) => {
      const isMouseOnContainer = event.path.find((node) => {
        return node instanceof HTMLElement && this.container.isSameNode(node);
      });
      if (isMouseOnContainer && undefined !== interval) {
        clearInterval(interval);
        interval = undefined;
      } else if (interval === undefined) {
        interval = setInterval(autoplayInterval, delayInMilliseconds);
      }
    });
  }
}
window.addEventListener("load", () => {
  const tabContainers = document.querySelectorAll(".ep_tabs_root");
  tabContainers.forEach((tabContainer) => new EditorPlusTabs(tabContainer));
});