app.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. 'use strict';
  2. /* ===== Enable Bootstrap Popover (on element ====== */
  3. const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]')
  4. const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))
  5. /* ==== Enable Bootstrap Alert ====== */
  6. //var alertList = document.querySelectorAll('.alert')
  7. //alertList.forEach(function (alert) {
  8. // new bootstrap.Alert(alert)
  9. //});
  10. const alertList = document.querySelectorAll('.alert')
  11. const alerts = [...alertList].map(element => new bootstrap.Alert(element))
  12. /* ===== Responsive Sidepanel ====== */
  13. const sidePanelToggler = document.getElementById('sidepanel-toggler');
  14. const sidePanel = document.getElementById('app-sidepanel');
  15. const sidePanelDrop = document.getElementById('sidepanel-drop');
  16. const sidePanelClose = document.getElementById('sidepanel-close');
  17. window.addEventListener('load', function(){
  18. responsiveSidePanel();
  19. });
  20. window.addEventListener('resize', function(){
  21. responsiveSidePanel();
  22. });
  23. function responsiveSidePanel() {
  24. let w = window.innerWidth;
  25. if(w >= 1200) {
  26. // if larger
  27. //console.log('larger');
  28. sidePanel.classList.remove('sidepanel-hidden');
  29. sidePanel.classList.add('sidepanel-visible');
  30. } else {
  31. // if smaller
  32. //console.log('smaller');
  33. sidePanel.classList.remove('sidepanel-visible');
  34. sidePanel.classList.add('sidepanel-hidden');
  35. }
  36. };
  37. sidePanelToggler.addEventListener('click', () => {
  38. if (sidePanel.classList.contains('sidepanel-visible')) {
  39. console.log('visible');
  40. sidePanel.classList.remove('sidepanel-visible');
  41. sidePanel.classList.add('sidepanel-hidden');
  42. } else {
  43. console.log('hidden');
  44. sidePanel.classList.remove('sidepanel-hidden');
  45. sidePanel.classList.add('sidepanel-visible');
  46. }
  47. });
  48. sidePanelClose.addEventListener('click', (e) => {
  49. e.preventDefault();
  50. sidePanelToggler.click();
  51. });
  52. sidePanelDrop.addEventListener('click', (e) => {
  53. sidePanelToggler.click();
  54. });
  55. /* ====== Mobile search ======= */
  56. const searchMobileTrigger = document.querySelector('.search-mobile-trigger');
  57. const searchBox = document.querySelector('.app-search-box');
  58. searchMobileTrigger.addEventListener('click', () => {
  59. searchBox.classList.toggle('is-visible');
  60. let searchMobileTriggerIcon = document.querySelector('.search-mobile-trigger-icon');
  61. if(searchMobileTriggerIcon.classList.contains('fa-magnifying-glass')) {
  62. searchMobileTriggerIcon.classList.remove('fa-magnifying-glass');
  63. searchMobileTriggerIcon.classList.add('fa-xmark');
  64. } else {
  65. searchMobileTriggerIcon.classList.remove('fa-xmark');
  66. searchMobileTriggerIcon.classList.add('fa-magnifying-glass');
  67. }
  68. });