; ?>/assets/images/logos/logo-white.png)
A student handbook for post secondary transitions
- -; ?>/assets/images/logos/logo-white.png)
diff --git a/assets/css/styles.css b/assets/css/styles.css index 8449ddf..990fda2 100644 --- a/assets/css/styles.css +++ b/assets/css/styles.css @@ -913,6 +913,10 @@ select { --tw-backdrop-sepia: ; } +.visible { + visibility: visible; +} + .fixed { position: fixed; } @@ -1602,6 +1606,14 @@ select { --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity)); } +.transition { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + /* Hide scrollbar for Chrome, Safari and Opera */ .no-scrollbar::-webkit-scrollbar { display: none; @@ -2006,7 +2018,16 @@ body.login { } #content-container { - transition: opacity 0.5s ease-in-out; + transition: opacity 0.3s ease-in-out; /* Adjust the duration and timing function as needed */ +} + +.active #content-container { + opacity: 0; /* Initial opacity when collapsing */ + transition: opacity 0.3s ease-in-out; /* Adjust the duration and timing function as needed */ +} + +.active #content-container.visible { + opacity: 1; /* Opacity when expanding */ } #footer-nav.out-of-view { diff --git a/assets/js/index.js b/assets/js/index.js index 09ef1e8..f36bbe5 100644 --- a/assets/js/index.js +++ b/assets/js/index.js @@ -15,9 +15,22 @@ __webpack_require__.r(__webpack_exports__); class CollapsePanel { constructor() { this.toggles = document.querySelectorAll('.accordion-toggle'); - this.toggleCollapse(); + this.init(); } - toggleCollapse() { + init() { + document.addEventListener('DOMContentLoaded', () => { + this.addToggleCollapseListener(); + }); + } + addToggleCollapseListener() { + this.toggles.forEach(toggle => { + toggle.addEventListener('click', () => { + toggle.parentNode.parentNode.classList.toggle('active'); + }); + }); + } + addNewToggleCollapseListener() { + this.toggles = document.querySelectorAll('#content-container .accordion-toggle'); this.toggles.forEach(toggle => { toggle.addEventListener('click', () => { toggle.parentNode.parentNode.classList.toggle('active'); @@ -79,38 +92,66 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); +/* harmony import */ var _CollapsePanel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CollapsePanel */ "./src/modules/CollapsePanel.js"); + // Import the CollapsePanel class + class PageTransitions { constructor() { this.init(); - this.links = document.querySelectorAll('a'); - console.log(this.links); } init() { document.addEventListener('DOMContentLoaded', () => { - this.addClickListener(); - console.log('The DOM has loaded'); + this.addLinkClickListener(); }); } - addClickListener() { + addLinkClickListener() { + this.links = document.querySelectorAll('a'); this.links.forEach(link => { link.addEventListener('click', e => { + e.preventDefault(); if (this.isExternalLink(link)) { link.setAttribute('target', '_blank'); } - e.preventDefault(); + this.loadContent(link.getAttribute('href'), 'content-container'); }); }); } - loadContent(targetUrl) { + addNewLinkClickListener() { + this.newlinks = document.querySelectorAll('#content-container a'); + console.log(this.newlinks); + this.newlinks.forEach(link => { + link.addEventListener('click', e => { + e.preventDefault(); + if (this.isExternalLink(link)) { + link.setAttribute('target', '_blank'); + } + this.loadContent(link.getAttribute('href'), 'content-container'); + }); + }); + } + loadContent(targetUrl, elementId) { fetch(targetUrl).then(response => response.text()).then(data => { - this.updateContent(data); + this.updateContent(data, elementId); history.pushState(null, null, targetUrl); }).catch(error => console.error('Error fetching content:', error)); } - updateContent(data) { + updateContent(data, elementId) { const contentContainer = document.getElementById('content-container'); const parsedData = new DOMParser().parseFromString(data, 'text/html'); - contentContainer.innerHTML = parsedData.getElementById('content').innerHTML; + const targetElement = parsedData.getElementById(elementId); + if (targetElement) { + const newContent = targetElement.innerHTML; + + // If you want to replace the content instead of appending: + contentContainer.innerHTML = newContent; + + // Create an instance of CollapsePanel and call toggleCollapse + this.collapsePanel = new _CollapsePanel__WEBPACK_IMPORTED_MODULE_0__["default"](); + this.collapsePanel.addNewToggleCollapseListener(); + this.addNewLinkClickListener(); + } else { + console.error(`Element with ID '${elementId}' not found in the fetched data`); + } } // Function to check if a link is external diff --git a/assets/js/index.js.map b/assets/js/index.js.map index 7d8d0f4..cbe7bd9 100644 --- a/assets/js/index.js.map +++ b/assets/js/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;;;;;;;;AAAA,MAAMA,aAAa,CAAC;EAClBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,OAAO,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,mBAAmB,CAAC;IAC7D,IAAI,CAACC,cAAc,CAAC,CAAC;EACvB;EAEAA,cAAcA,CAAA,EAAG;IACf,IAAI,CAACH,OAAO,CAACI,OAAO,CAAEC,MAAM,IAAK;MAC/BA,MAAM,CAACC,gBAAgB,CAAC,OAAO,EAAE,MAAM;QACrCD,MAAM,CAACE,UAAU,CAACA,UAAU,CAACC,SAAS,CAACH,MAAM,CAAC,QAAQ,CAAC;MACzD,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AAEF;AAEA,iEAAeP,aAAa;;;;;;;;;;;;;;AChB5B,MAAMW,GAAG,CAAC;EACRV,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACW,aAAa,GAAGT,QAAQ,CAACU,cAAc,CAAC,YAAY,CAAC;IAC1D,IAAI,CAACC,kBAAkB,GAAGX,QAAQ,CAACU,cAAc,CAAC,gBAAgB,CAAC;IACnE,IAAI,CAACE,UAAU,GAAGZ,QAAQ,CAACC,gBAAgB,CAAC,4BAA4B,CAAC;IACzE,IAAI,CAACC,cAAc,CAAC,CAAC;IACrB,IAAI,CAACW,MAAM,CAAC,CAAC;EACf;EAEAA,MAAMA,CAAA,EAAG;IACP;IACA,IAAI,CAACJ,aAAa,CAACJ,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAACS,aAAa,CAAC,CAAC,CAAC;EAC1E;EAEAA,aAAaA,CAAA,EAAG;IACd,IAAI,CAACL,aAAa,CAACF,SAAS,CAACH,MAAM,CAAC,QAAQ,CAAC;IAC7C,IAAI,CAACO,kBAAkB,CAACJ,SAAS,CAACH,MAAM,CAAC,MAAM,CAAC;IAChDJ,QAAQ,CAACe,IAAI,CAACR,SAAS,CAACH,MAAM,CAAC,UAAU,CAAC;IAC1C,IAAI,CAACF,cAAc,CAAC,CAAC;EACvB;EAEAA,cAAcA,CAAA,EAAG;IACfc,UAAU,CAAC,MAAM;MACf,IAAI,CAACJ,UAAU,CAACT,OAAO,CAAEc,SAAS,IAAK;QACrCA,SAAS,CAACV,SAAS,CAACW,MAAM,CAAC,QAAQ,CAAC;MACtC,CAAC,CAAC;IACJ,CAAC,EAAE,GAAG,CAAC;EACT;AAEF;AAEA,iEAAeV,GAAG;;;;;;;;;;;;;;AC/BlB,MAAMW,eAAe,CAAC;EACpBrB,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACsB,IAAI,CAAC,CAAC;IACX,IAAI,CAACC,KAAK,GAAGrB,QAAQ,CAACC,gBAAgB,CAAC,GAAG,CAAC;IAC3CqB,OAAO,CAACC,GAAG,CAAC,IAAI,CAACF,KAAK,CAAC;EACzB;EAEAD,IAAIA,CAAA,EAAG;IACLpB,QAAQ,CAACK,gBAAgB,CAAC,kBAAkB,EAAE,MAAM;MAClD,IAAI,CAACmB,gBAAgB,CAAC,CAAC;MACvBF,OAAO,CAACC,GAAG,CAAC,oBAAoB,CAAC;IACnC,CAAC,CAAC;EACJ;EAEAC,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACH,KAAK,CAAClB,OAAO,CAAEsB,IAAI,IAAK;MAC3BA,IAAI,CAACpB,gBAAgB,CAAC,OAAO,EAAGqB,CAAC,IAAK;QACpC,IAAI,IAAI,CAACC,cAAc,CAACF,IAAI,CAAC,EAAE;UAC7BA,IAAI,CAACG,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACvC;QACAF,CAAC,CAACG,cAAc,CAAC,CAAC;MACpB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEAC,WAAWA,CAACC,SAAS,EAAE;IACrBC,KAAK,CAACD,SAAS,CAAC,CACbE,IAAI,CAAEC,QAAQ,IAAKA,QAAQ,CAACC,IAAI,CAAC,CAAC,CAAC,CACnCF,IAAI,CAAEG,IAAI,IAAK;MACd,IAAI,CAACC,aAAa,CAACD,IAAI,CAAC;MACxBE,OAAO,CAACC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAER,SAAS,CAAC;IAC1C,CAAC,CAAC,CACDS,KAAK,CAAEC,KAAK,IAAKnB,OAAO,CAACmB,KAAK,CAAC,yBAAyB,EAAEA,KAAK,CAAC,CAAC;EACtE;EAEAJ,aAAaA,CAACD,IAAI,EAAE;IAClB,MAAMM,gBAAgB,GAAG1C,QAAQ,CAACU,cAAc,CAAC,mBAAmB,CAAC;IACrE,MAAMiC,UAAU,GAAG,IAAIC,SAAS,CAAC,CAAC,CAACC,eAAe,CAACT,IAAI,EAAE,WAAW,CAAC;IACrEM,gBAAgB,CAACI,SAAS,GAAGH,UAAU,CAACjC,cAAc,CAAC,SAAS,CAAC,CAACoC,SAAS;EAC7E;;EAEA;EACAnB,cAAcA,CAACF,IAAI,EAAE;IACnB,MAAMsB,aAAa,GAAGC,MAAM,CAACC,QAAQ,CAACC,QAAQ;IAC9C,MAAMC,UAAU,GAAG1B,IAAI,CAACyB,QAAQ;IAEhC,OAAOC,UAAU,KAAKJ,aAAa;EACrC;AACF;AAEA,iEAAe5B,eAAe;;;;;;;;;;;;;;AClD9B,MAAMiC,YAAY,CAAC;EACjBtD,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACuD,QAAQ,GAAGrD,QAAQ,CAACU,cAAc,CAAC,WAAW,CAAC;IACpD,IAAI,CAAC4C,YAAY,GAAGtD,QAAQ,CAACU,cAAc,CAAC,eAAe,CAAC;IAC5D,IAAI,CAAC6C,SAAS,GAAGvD,QAAQ,CAACU,cAAc,CAAC,YAAY,CAAC;IACtD,IAAI,CAAC8C,SAAS,GAAGxD,QAAQ,CAACU,cAAc,CAAC,YAAY,CAAC;IACtD,IAAI,CAACG,MAAM,CAAC,CAAC;EACf;EAEAA,MAAMA,CAAA,EAAG;IACP;IACA,IAAI,IAAI,CAACwC,QAAQ,EAAE;MACjB,IAAI,CAACA,QAAQ,CAAChD,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAACoD,QAAQ,CAAC,CAAC,CAAC;IAChE;EACF;EAEAA,QAAQA,CAAA,EAAG;IACT,IAAI,CAACH,YAAY,CAAC/C,SAAS,CAACmD,GAAG,CAAC,OAAO,CAAC;IACxC1C,UAAU,CAAC,MAAM;MACf,IAAI,CAACuC,SAAS,CAAChD,SAAS,CAACmD,GAAG,CAAC,SAAS,CAAC;MACvC,IAAI,CAACF,SAAS,CAACjD,SAAS,CAACmD,GAAG,CAAC,SAAS,CAAC;MACvC,IAAI,CAACJ,YAAY,CAAC/C,SAAS,CAACmD,GAAG,CAAC,QAAQ,CAAC;IAC3C,CAAC,EAAE,GAAG,CAAC;IACP1C,UAAU,CAAC,MAAM;MACf,IAAI,CAACuC,SAAS,CAAChD,SAAS,CAACW,MAAM,CAAC,aAAa,CAAC;MAC9C,IAAI,CAACsC,SAAS,CAACjD,SAAS,CAACW,MAAM,CAAC,aAAa,CAAC;MAC9C,IAAI,CAACqC,SAAS,CAAChD,SAAS,CAACW,MAAM,CAAC,SAAS,CAAC;MAC1C,IAAI,CAACsC,SAAS,CAACjD,SAAS,CAACW,MAAM,CAAC,SAAS,CAAC;IAC5C,CAAC,EAAE,IAAI,CAAC;EACV;AACF;AAEA,iEAAekC,YAAY;;;;;;;;;;;;;;AChC3B,MAAMO,IAAI,CAAC;EACT7D,WAAWA,CAAA,EAAG;IACZwB,OAAO,CAACC,GAAG,CAAC,qCAAqC,CAAC;EACpD;AACF;AAEA,iEAAeoC,IAAI;;;;;;UCNnB;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;ACNA;AACA;AACuC;AACM;AACM;AACF;AACM;;AAEvD;AACA;;AAEA,MAAME,UAAU,GAAG,IAAIF,2DAAI,CAAC,CAAC;AAC7B,MAAMG,UAAU,GAAG,IAAIF,2DAAU,CAAC,CAAC;AACnC,MAAMG,aAAa,GAAG,IAAIlE,8DAAa,CAAC,CAAC;AACzC,MAAMyD,YAAY,GAAG,IAAIF,6DAAY,CAAC,CAAC;AACvC,MAAMY,eAAe,GAAG,IAAI7C,gEAAe,CAAC,CAAC,C","sources":["webpack://starter/./src/modules/CollapsePanel.js","webpack://starter/./src/modules/NavControl.js","webpack://starter/./src/modules/PageTransitions.js","webpack://starter/./src/modules/SplashScreen.js","webpack://starter/./src/modules/TestModule.js","webpack://starter/webpack/bootstrap","webpack://starter/webpack/runtime/define property getters","webpack://starter/webpack/runtime/hasOwnProperty shorthand","webpack://starter/webpack/runtime/make namespace object","webpack://starter/./src/index.js"],"sourcesContent":["class CollapsePanel {\r\n constructor() {\r\n this.toggles = document.querySelectorAll('.accordion-toggle')\r\n this.toggleCollapse()\r\n }\r\n\r\n toggleCollapse() {\r\n this.toggles.forEach((toggle) => {\r\n toggle.addEventListener('click', () => {\r\n toggle.parentNode.parentNode.classList.toggle('active')\r\n })\r\n })\r\n }\r\n\r\n}\r\n\r\nexport default CollapsePanel\r\n","class Nav {\r\n constructor() {\r\n this.toggleMenuBtn = document.getElementById('toggle-nav')\r\n this.toggleSlideOutMenu = document.getElementById('slide-out-menu')\r\n this.accordions = document.querySelectorAll('#slide-out-menu .accordion')\r\n this.toggleCollapse()\r\n this.events()\r\n }\r\n\r\n events() {\r\n // Open and Close the Nav Menu\r\n this.toggleMenuBtn.addEventListener('click', () => this.toggleNavMenu())\r\n }\r\n\r\n toggleNavMenu() {\r\n this.toggleMenuBtn.classList.toggle('active')\r\n this.toggleSlideOutMenu.classList.toggle('open')\r\n document.body.classList.toggle('noScroll')\r\n this.toggleCollapse()\r\n }\r\n\r\n toggleCollapse() {\r\n setTimeout(() => {\r\n this.accordions.forEach((accordion) => {\r\n accordion.classList.remove('active')\r\n })\r\n }, 600)\r\n }\r\n\r\n}\r\n\r\nexport default Nav\r\n","class PageTransitions {\r\n constructor() {\r\n this.init()\r\n this.links = document.querySelectorAll('a')\r\n console.log(this.links)\r\n }\r\n\r\n init() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.addClickListener()\r\n console.log('The DOM has loaded')\r\n })\r\n }\r\n\r\n addClickListener() {\r\n this.links.forEach((link) => {\r\n link.addEventListener('click', (e) => {\r\n if (this.isExternalLink(link)) {\r\n link.setAttribute('target', '_blank')\r\n }\r\n e.preventDefault()\r\n })\r\n })\r\n }\r\n\r\n loadContent(targetUrl) {\r\n fetch(targetUrl)\r\n .then((response) => response.text())\r\n .then((data) => {\r\n this.updateContent(data)\r\n history.pushState(null, null, targetUrl)\r\n })\r\n .catch((error) => console.error('Error fetching content:', error))\r\n }\r\n\r\n updateContent(data) {\r\n const contentContainer = document.getElementById('content-container')\r\n const parsedData = new DOMParser().parseFromString(data, 'text/html')\r\n contentContainer.innerHTML = parsedData.getElementById('content').innerHTML\r\n }\r\n\r\n // Function to check if a link is external\r\n isExternalLink(link) {\r\n const currentDomain = window.location.hostname\r\n const linkDomain = link.hostname\r\n\r\n return linkDomain !== currentDomain\r\n }\r\n}\r\n\r\nexport default PageTransitions\r\n","class SplashScreen {\r\n constructor() {\r\n this.enterBtn = document.getElementById('app-enter')\r\n this.splashScreen = document.getElementById('splash-screen')\r\n this.headerNav = document.getElementById('header-nav')\r\n this.footerNav = document.getElementById('footer-nav')\r\n this.events()\r\n }\r\n\r\n events() {\r\n // Open and Close the Nav Menu\r\n if (this.enterBtn) {\r\n this.enterBtn.addEventListener('click', () => this.enterApp())\r\n }\r\n }\r\n\r\n enterApp() {\r\n this.splashScreen.classList.add('close')\r\n setTimeout(() => {\r\n this.headerNav.classList.add('in-view')\r\n this.footerNav.classList.add('in-view')\r\n this.splashScreen.classList.add('hidden')\r\n }, 600)\r\n setTimeout(() => {\r\n this.headerNav.classList.remove('out-of-view')\r\n this.footerNav.classList.remove('out-of-view')\r\n this.headerNav.classList.remove('in-view')\r\n this.footerNav.classList.remove('in-view')\r\n }, 2000)\r\n }\r\n}\r\n\r\nexport default SplashScreen\r\n","class Test {\r\n constructor() {\r\n console.log('This Module is for testing purposes')\r\n }\r\n}\r\n\r\nexport default Test\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Our modules / classes\r\n// Import modules e.g import MobileMenu from \"./modules/MobileMenu\"\r\nimport Test from './modules/TestModule'\r\nimport NavControl from './modules/NavControl'\r\nimport CollapsePanel from './modules/CollapsePanel'\r\nimport SplashScreen from './modules/SplashScreen'\r\nimport PageTransitions from './modules/PageTransitions'\r\n\r\n// Instantiate a new object using our modules/classes\r\n// e.g var mobileMenu = new MobileMenu()\r\n\r\nconst testModule = new Test()\r\nconst navControl = new NavControl()\r\nconst collapsePanel = new CollapsePanel()\r\nconst splashScreen = new SplashScreen()\r\nconst pageTransitions = new PageTransitions()\r\n"],"names":["CollapsePanel","constructor","toggles","document","querySelectorAll","toggleCollapse","forEach","toggle","addEventListener","parentNode","classList","Nav","toggleMenuBtn","getElementById","toggleSlideOutMenu","accordions","events","toggleNavMenu","body","setTimeout","accordion","remove","PageTransitions","init","links","console","log","addClickListener","link","e","isExternalLink","setAttribute","preventDefault","loadContent","targetUrl","fetch","then","response","text","data","updateContent","history","pushState","catch","error","contentContainer","parsedData","DOMParser","parseFromString","innerHTML","currentDomain","window","location","hostname","linkDomain","SplashScreen","enterBtn","splashScreen","headerNav","footerNav","enterApp","add","Test","NavControl","testModule","navControl","collapsePanel","pageTransitions"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":"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","sources":["webpack://starter/./src/modules/CollapsePanel.js","webpack://starter/./src/modules/NavControl.js","webpack://starter/./src/modules/PageTransitions.js","webpack://starter/./src/modules/SplashScreen.js","webpack://starter/./src/modules/TestModule.js","webpack://starter/webpack/bootstrap","webpack://starter/webpack/runtime/define property getters","webpack://starter/webpack/runtime/hasOwnProperty shorthand","webpack://starter/webpack/runtime/make namespace object","webpack://starter/./src/index.js"],"sourcesContent":["class CollapsePanel {\r\n constructor() {\r\n this.toggles = document.querySelectorAll('.accordion-toggle')\r\n this.init()\r\n }\r\n\r\n init() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.addToggleCollapseListener()\r\n })\r\n }\r\n\r\n addToggleCollapseListener() {\r\n this.toggles.forEach((toggle) => {\r\n toggle.addEventListener('click', () => {\r\n toggle.parentNode.parentNode.classList.toggle('active')\r\n })\r\n })\r\n }\r\n \r\n addNewToggleCollapseListener() {\r\n this.toggles = document.querySelectorAll('#content-container .accordion-toggle')\r\n this.toggles.forEach((toggle) => {\r\n toggle.addEventListener('click', () => {\r\n toggle.parentNode.parentNode.classList.toggle('active')\r\n })\r\n })\r\n }\r\n\r\n \r\n}\r\n\r\nexport default CollapsePanel\r\n","class Nav {\r\n constructor() {\r\n this.toggleMenuBtn = document.getElementById('toggle-nav')\r\n this.toggleSlideOutMenu = document.getElementById('slide-out-menu')\r\n this.accordions = document.querySelectorAll('#slide-out-menu .accordion')\r\n this.toggleCollapse()\r\n this.events()\r\n }\r\n\r\n events() {\r\n // Open and Close the Nav Menu\r\n this.toggleMenuBtn.addEventListener('click', () => this.toggleNavMenu())\r\n }\r\n\r\n toggleNavMenu() {\r\n this.toggleMenuBtn.classList.toggle('active')\r\n this.toggleSlideOutMenu.classList.toggle('open')\r\n document.body.classList.toggle('noScroll')\r\n this.toggleCollapse()\r\n }\r\n\r\n toggleCollapse() {\r\n setTimeout(() => {\r\n this.accordions.forEach((accordion) => {\r\n accordion.classList.remove('active')\r\n })\r\n }, 600)\r\n }\r\n\r\n}\r\n\r\nexport default Nav\r\n","import CollapsePanel from './CollapsePanel' // Import the CollapsePanel class\r\n\r\nclass PageTransitions {\r\n constructor() {\r\n this.init()\r\n }\r\n\r\n init() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.addLinkClickListener()\r\n })\r\n }\r\n\r\n addLinkClickListener() {\r\n this.links = document.querySelectorAll('a')\r\n this.links.forEach((link) => {\r\n link.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n if (this.isExternalLink(link)) {\r\n link.setAttribute('target', '_blank')\r\n }\r\n this.loadContent(link.getAttribute('href'), 'content-container')\r\n })\r\n })\r\n }\r\n\r\n addNewLinkClickListener() {\r\n this.newlinks = document.querySelectorAll('#content-container a')\r\n console.log(this.newlinks)\r\n this.newlinks.forEach((link) => {\r\n link.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n if (this.isExternalLink(link)) {\r\n link.setAttribute('target', '_blank')\r\n }\r\n this.loadContent(link.getAttribute('href'), 'content-container')\r\n })\r\n })\r\n }\r\n\r\n loadContent(targetUrl, elementId) {\r\n fetch(targetUrl)\r\n .then((response) => response.text())\r\n .then((data) => {\r\n this.updateContent(data, elementId)\r\n history.pushState(null, null, targetUrl)\r\n })\r\n .catch((error) => console.error('Error fetching content:', error))\r\n }\r\n\r\n updateContent(data, elementId) {\r\n const contentContainer = document.getElementById('content-container')\r\n const parsedData = new DOMParser().parseFromString(data, 'text/html')\r\n const targetElement = parsedData.getElementById(elementId)\r\n\r\n if (targetElement) {\r\n const newContent = targetElement.innerHTML\r\n\r\n // If you want to replace the content instead of appending:\r\n contentContainer.innerHTML = newContent\r\n\r\n // Create an instance of CollapsePanel and call toggleCollapse\r\n this.collapsePanel = new CollapsePanel()\r\n this.collapsePanel.addNewToggleCollapseListener()\r\n this.addNewLinkClickListener()\r\n } else {\r\n console.error(`Element with ID '${elementId}' not found in the fetched data`)\r\n }\r\n }\r\n\r\n // Function to check if a link is external\r\n isExternalLink(link) {\r\n const currentDomain = window.location.hostname\r\n const linkDomain = link.hostname\r\n\r\n return linkDomain !== currentDomain\r\n }\r\n}\r\n\r\nexport default PageTransitions\r\n","class SplashScreen {\r\n constructor() {\r\n this.enterBtn = document.getElementById('app-enter')\r\n this.splashScreen = document.getElementById('splash-screen')\r\n this.headerNav = document.getElementById('header-nav')\r\n this.footerNav = document.getElementById('footer-nav')\r\n this.events()\r\n }\r\n\r\n events() {\r\n // Open and Close the Nav Menu\r\n if (this.enterBtn) {\r\n this.enterBtn.addEventListener('click', () => this.enterApp())\r\n }\r\n }\r\n\r\n enterApp() {\r\n this.splashScreen.classList.add('close')\r\n setTimeout(() => {\r\n this.headerNav.classList.add('in-view')\r\n this.footerNav.classList.add('in-view')\r\n this.splashScreen.classList.add('hidden')\r\n }, 600)\r\n setTimeout(() => {\r\n this.headerNav.classList.remove('out-of-view')\r\n this.footerNav.classList.remove('out-of-view')\r\n this.headerNav.classList.remove('in-view')\r\n this.footerNav.classList.remove('in-view')\r\n }, 2000)\r\n }\r\n}\r\n\r\nexport default SplashScreen\r\n","class Test {\r\n constructor() {\r\n console.log('This Module is for testing purposes')\r\n }\r\n}\r\n\r\nexport default Test\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Our modules / classes\r\n// Import modules e.g import MobileMenu from \"./modules/MobileMenu\"\r\nimport Test from './modules/TestModule'\r\nimport NavControl from './modules/NavControl'\r\nimport CollapsePanel from './modules/CollapsePanel'\r\nimport SplashScreen from './modules/SplashScreen'\r\nimport PageTransitions from './modules/PageTransitions'\r\n\r\n// Instantiate a new object using our modules/classes\r\n// e.g var mobileMenu = new MobileMenu()\r\n\r\nconst testModule = new Test()\r\nconst navControl = new NavControl()\r\nconst collapsePanel = new CollapsePanel()\r\nconst splashScreen = new SplashScreen()\r\nconst pageTransitions = new PageTransitions()\r\n"],"names":["CollapsePanel","constructor","toggles","document","querySelectorAll","init","addEventListener","addToggleCollapseListener","forEach","toggle","parentNode","classList","addNewToggleCollapseListener","Nav","toggleMenuBtn","getElementById","toggleSlideOutMenu","accordions","toggleCollapse","events","toggleNavMenu","body","setTimeout","accordion","remove","PageTransitions","addLinkClickListener","links","link","e","preventDefault","isExternalLink","setAttribute","loadContent","getAttribute","addNewLinkClickListener","newlinks","console","log","targetUrl","elementId","fetch","then","response","text","data","updateContent","history","pushState","catch","error","contentContainer","parsedData","DOMParser","parseFromString","targetElement","newContent","innerHTML","collapsePanel","currentDomain","window","location","hostname","linkDomain","SplashScreen","enterBtn","splashScreen","headerNav","footerNav","enterApp","add","Test","NavControl","testModule","navControl","pageTransitions"],"sourceRoot":""} \ No newline at end of file diff --git a/header.php b/header.php index 47229a4..6a5d146 100644 --- a/header.php +++ b/header.php @@ -9,158 +9,13 @@ // Start or resume the session session_start(); wp_head(); - include(get_theme_file_path('/includes/front-end/menu_data.php')); - require_once(get_theme_file_path('/includes/back-end/helper_functions.php')); ?> -
> +> -