Nenhuma descrição
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

sidebar.js 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Usage: https://github.com/Grsmto/simplebar
  2. import SimpleBar from "simplebar";
  3. const initialize = () => {
  4. initializeSimplebar();
  5. initializeSidebarCollapse();
  6. }
  7. const initializeSimplebar = () => {
  8. const simplebarElement = document.getElementsByClassName("js-simplebar")[0];
  9. if(simplebarElement){
  10. const simplebarInstance = new SimpleBar(document.getElementsByClassName("js-simplebar")[0]);
  11. /* Recalculate simplebar on sidebar dropdown toggle */
  12. const sidebarDropdowns = document.querySelectorAll(".js-sidebar [data-bs-parent]");
  13. sidebarDropdowns.forEach(link => {
  14. link.addEventListener("shown.bs.collapse", () => {
  15. simplebarInstance.recalculate();
  16. });
  17. link.addEventListener("hidden.bs.collapse", () => {
  18. simplebarInstance.recalculate();
  19. });
  20. });
  21. }
  22. }
  23. const initializeSidebarCollapse = () => {
  24. const sidebarElement = document.getElementsByClassName("js-sidebar")[0];
  25. const sidebarToggleElement = document.getElementsByClassName("js-sidebar-toggle")[0];
  26. if(sidebarElement && sidebarToggleElement) {
  27. sidebarToggleElement.addEventListener("click", () => {
  28. sidebarElement.classList.toggle("collapsed");
  29. sidebarElement.addEventListener("transitionend", () => {
  30. window.dispatchEvent(new Event("resize"));
  31. });
  32. });
  33. }
  34. }
  35. // Wait until page is loaded
  36. document.addEventListener("DOMContentLoaded", () => initialize());