diff --git a/assets/css/styles.css b/assets/css/styles.css index def3925..f328616 100644 --- a/assets/css/styles.css +++ b/assets/css/styles.css @@ -942,6 +942,10 @@ select { max-width: 1536px; } } +.static { + position: static; +} + .fixed { position: fixed; } diff --git a/assets/js/index.js b/assets/js/index.js index 5415f57..7dca0be 100644 --- a/assets/js/index.js +++ b/assets/js/index.js @@ -34,6 +34,88 @@ class CollapsePanel { /***/ }), +/***/ "./src/modules/HammerGestures.js": +/*!***************************************!*\ + !*** ./src/modules/HammerGestures.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _PageTransitions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PageTransitions */ "./src/modules/PageTransitions.js"); + +class HammerGestures { + constructor() { + this.history = []; + this.init(); + } + init() { + document.addEventListener('DOMContentLoaded', () => { + var element = document.getElementById('content-container'); + + // Create a Hammer instance + var hammer = new Hammer(element); + hammer.get('swipe').set({ + direction: Hammer.DIRECTION_ALL + }); + var pageTransition = new _PageTransitions__WEBPACK_IMPORTED_MODULE_0__["default"](); + + // Add a swipe event listener for swipe left + hammer.on('swipeleft', ev => { + this.currentUrl = window.location.href; + this.goForward(this.currentUrl); + console.log(ev.type); + }); + + // Add a swipe event listener for swipe right + hammer.on('swiperight', ev => { + this.currentUrl = window.location.href; + this.goBack(this.currentUrl); + console.log(ev.type); + pageTransition.animatePageTransition(() => { + pageTransition.loadContent(document.referrer, 'content-container'); + }); + }); + }); + } + goForward(currentUrl) { + if (this.history.length > 0) { + const nextUrl = this.history[this.history.length - 1]; + if (HammerGestures.isSameDomain(currentUrl, nextUrl)) { + console.log(`Going forward to ${nextUrl}`); + this.history.pop(); + } else { + console.log('Cannot go forward. Different domain.'); + } + } else { + console.log('Cannot go forward. History is empty.'); + } + } + goBack(currentUrl) { + if (this.history.length > 0) { + const previousUrl = this.history.pop(); + if (HammerGestures.isSameDomain(currentUrl, previousUrl)) { + console.log(`Going back to ${previousUrl}`); + } else { + console.log('Cannot go back. Different domain.'); + this.history.push(previousUrl); // Re-add the popped URL + } + } else { + console.log('Cannot go back. History is empty.'); + } + } + static isSameDomain(url1, url2) { + const domain1 = new URL(url1).hostname; + const domain2 = new URL(url2).hostname; + return domain1 === domain2; + } +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (HammerGestures); + +/***/ }), + /***/ "./src/modules/NavControl.js": /*!***********************************!*\ !*** ./src/modules/NavControl.js ***! @@ -171,7 +253,14 @@ class PageTransitions { const elementId = 'content-container'; // Clear the search form - form.reset(); // Reset the form to clear input values + var inputs = form.getElementsByTagName('input'); + Array.from(inputs).forEach(function (input) { + // Reset the input value + input.value = ''; + + // Unfocus the input + input.blur(); + }); // Update content, push state, and remove transition class this.updateContent(data, elementId); @@ -225,8 +314,6 @@ class PageTransitions { console.error(`Element with ID '${elementId}' not found in the fetched data`); } } - - // Function to check if a link is external isExternalLink(link) { const currentDomain = window.location.hostname; const linkDomain = link.hostname; @@ -388,6 +475,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _modules_CollapsePanel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/CollapsePanel */ "./src/modules/CollapsePanel.js"); /* harmony import */ var _modules_SplashScreen__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/SplashScreen */ "./src/modules/SplashScreen.js"); /* harmony import */ var _modules_PageTransitions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/PageTransitions */ "./src/modules/PageTransitions.js"); +/* harmony import */ var _modules_HammerGestures__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/HammerGestures */ "./src/modules/HammerGestures.js"); // Our modules / classes // Import modules e.g import MobileMenu from "./modules/MobileMenu" @@ -396,6 +484,7 @@ __webpack_require__.r(__webpack_exports__); + // Instantiate a new object using our modules/classes // e.g var mobileMenu = new MobileMenu() @@ -404,6 +493,7 @@ const navControl = new _modules_NavControl__WEBPACK_IMPORTED_MODULE_1__["default const collapsePanel = new _modules_CollapsePanel__WEBPACK_IMPORTED_MODULE_2__["default"](); const splashScreen = new _modules_SplashScreen__WEBPACK_IMPORTED_MODULE_3__["default"](); const pageTransitions = new _modules_PageTransitions__WEBPACK_IMPORTED_MODULE_4__["default"](); +const hammerGestures = new _modules_HammerGestures__WEBPACK_IMPORTED_MODULE_5__["default"](); })(); /******/ })() diff --git a/assets/js/index.js.map b/assets/js/index.js.map index cf14c2e..2dd7250 100644 --- a/assets/js/index.js.map +++ b/assets/js/index.js.map @@ -1 +1 @@ -{"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.init()\r\n }\r\n\r\n init() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.addToggleCollapseListener('.accordion-toggle')\r\n })\r\n }\r\n\r\n addToggleCollapseListener(selector) {\r\n this.toggles = document.querySelectorAll(selector)\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.init()\r\n }\r\n\r\n init() {\r\n // Open and Close the Nav Menu\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.toggleMenuBtn.addEventListener('click', () => this.toggleNavMenu())\r\n })\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.collapseAllAccordions()\r\n }\r\n\r\n collapseAllAccordions() {\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\nexport default Nav\r\n","import CollapsePanel from './CollapsePanel'\r\nimport NavControl from './NavControl'\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('a')\r\n this.addFormSubmitListener('form')\r\n })\r\n }\r\n\r\n addLinkClickListener(selector) {\r\n this.links = document.querySelectorAll(selector)\r\n this.links.forEach((link) => {\r\n link.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n if (link.href === window.location.href) {\r\n return\r\n }\r\n\r\n this.navControl = new NavControl()\r\n if (this.navControl.toggleMenuBtn.classList.contains('active')) {\r\n this.navControl.toggleNavMenu()\r\n }\r\n if (!this.isExternalLink(link) && this.isWordPressAdminLink(link)) {\r\n window.location.href = link.href // Navigate normally\r\n } else if (!this.isExternalLink(link)) {\r\n this.animatePageTransition(() => {\r\n this.loadContent(link.getAttribute('href'), 'content-container')\r\n })\r\n } else if (this.isExternalLink(link)) {\r\n link.setAttribute('target', '_blank')\r\n window.open(link.href, '_system')\r\n }\r\n })\r\n })\r\n }\r\n\r\n addFormSubmitListener(selector) {\r\n this.forms = document.querySelectorAll(selector)\r\n this.forms.forEach((form) => {\r\n form.addEventListener('submit', (e) => {\r\n e.preventDefault()\r\n if (this.navControl.toggleMenuBtn.classList.contains('active')) {\r\n this.navControl.toggleNavMenu()\r\n }\r\n this.animatePageTransition(() => {\r\n this.submitFormAsync(form)\r\n })\r\n })\r\n })\r\n }\r\n\r\n animatePageTransition(callback) {\r\n const contentContainer = document.getElementById('content-container')\r\n\r\n // Add the transition class\r\n this.addTransitionClass(contentContainer)\r\n\r\n // Wait for the transition to complete\r\n callback() // Call the callback function (loading content) after the transition\r\n }\r\n\r\n addTransitionClass(element) {\r\n element.classList.add('page-transition')\r\n }\r\n\r\n removeTransitionClass(element) {\r\n element.classList.remove('page-transition')\r\n }\r\n\r\n loadContent(targetUrl, elementId) {\r\n const contentContainer = document.getElementById('content-container')\r\n\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 submitFormAsync(form) {\r\n const formData = new FormData(form)\r\n\r\n fetch(form.action, {\r\n method: 'POST',\r\n body: formData,\r\n })\r\n .then((response) => response.text())\r\n .then((data) => {\r\n // Assuming the response contains the new content to be loaded\r\n const targetUrl = form.action // You might need to adjust this based on your server's response\r\n const elementId = 'content-container'\r\n\r\n // Clear the search form\r\n form.reset() // Reset the form to clear input values\r\n\r\n // Update content, push state, and remove transition class\r\n this.updateContent(data, elementId)\r\n history.pushState(null, null, targetUrl)\r\n\r\n // Trigger removal of transition class after fetching data\r\n const contentContainer = document.getElementById(elementId)\r\n setTimeout(() => {\r\n this.removeTransitionClass(contentContainer)\r\n }, 300)\r\n\r\n // Update the page title\r\n const newTitle = parsedData.querySelector('title')\r\n if (newTitle) {\r\n document.title = newTitle.textContent\r\n }\r\n\r\n // Initialize or update dynamic components\r\n this.collapsePanel = new CollapsePanel()\r\n this.collapsePanel.addToggleCollapseListener('#content-container .accordion-toggle')\r\n this.addLinkClickListener('#content-container a')\r\n })\r\n .catch((error) => console.error('Error submitting form:', 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 // Update the content container\r\n\r\n contentContainer.innerHTML = newContent\r\n\r\n // Trigger removal of transition class after fetching data\r\n setTimeout(() => {\r\n this.removeTransitionClass(contentContainer)\r\n }, 300)\r\n\r\n // Update the page title\r\n const newTitle = parsedData.querySelector('title')\r\n if (newTitle) {\r\n document.title = newTitle.textContent\r\n }\r\n\r\n // Initialize or update dynamic components\r\n this.collapsePanel = new CollapsePanel()\r\n this.collapsePanel.addToggleCollapseListener('#content-container .accordion-toggle')\r\n this.addLinkClickListener('#content-container a')\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 isWordPressAdminLink(link) {\r\n // Customize the condition based on your WordPress admin URL structure\r\n const adminUrlRegex = /^.*\\/wp-admin\\//\r\n return adminUrlRegex.test(link.href)\r\n }\r\n}\r\n\r\nexport default PageTransitions\r\n","class SplashScreen {\r\n constructor() {\r\n this.splashScreen = document.getElementById('splash-screen')\r\n this.enterButton = document.getElementById('app-enter')\r\n this.headerNav = document.getElementById('header-nav')\r\n this.footerNav = document.getElementById('footer-nav')\r\n\r\n this.init()\r\n }\r\n\r\n init() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.checkFirstVisit()\r\n })\r\n }\r\n\r\n checkFirstVisit() {\r\n if (!sessionStorage.getItem('visited')) {\r\n this.showSplashScreen()\r\n this.addEventListeners()\r\n }\r\n }\r\n\r\n showSplashScreen() {\r\n this.splashScreen.classList.remove('hidden')\r\n this.headerNav.classList.add('out-of-view')\r\n this.footerNav.classList.add('out-of-view')\r\n }\r\n\r\n hideSplashScreen() {\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 addEventListeners() {\r\n this.enterButton.addEventListener('click', () => {\r\n this.hideSplashScreen()\r\n sessionStorage.setItem('visited', true)\r\n })\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","init","document","addEventListener","addToggleCollapseListener","selector","toggles","querySelectorAll","forEach","toggle","parentNode","classList","Nav","toggleMenuBtn","getElementById","toggleSlideOutMenu","accordions","toggleNavMenu","body","collapseAllAccordions","setTimeout","accordion","remove","NavControl","PageTransitions","addLinkClickListener","addFormSubmitListener","links","link","e","preventDefault","href","window","location","navControl","contains","isExternalLink","isWordPressAdminLink","animatePageTransition","loadContent","getAttribute","setAttribute","open","forms","form","submitFormAsync","callback","contentContainer","addTransitionClass","element","add","removeTransitionClass","targetUrl","elementId","fetch","then","response","text","data","updateContent","history","pushState","catch","error","console","formData","FormData","action","method","reset","newTitle","parsedData","querySelector","title","textContent","collapsePanel","DOMParser","parseFromString","targetElement","newContent","innerHTML","currentDomain","hostname","linkDomain","adminUrlRegex","test","SplashScreen","splashScreen","enterButton","headerNav","footerNav","checkFirstVisit","sessionStorage","getItem","showSplashScreen","addEventListeners","hideSplashScreen","setItem","Test","log","testModule","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/HammerGestures.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.init()\r\n }\r\n\r\n init() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.addToggleCollapseListener('.accordion-toggle')\r\n })\r\n }\r\n\r\n addToggleCollapseListener(selector) {\r\n this.toggles = document.querySelectorAll(selector)\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","import PageTransitions from './PageTransitions'\r\n\r\nclass HammerGestures {\r\n constructor() {\r\n this.history = []\r\n this.init()\r\n }\r\n\r\n init() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n var element = document.getElementById('content-container')\r\n\r\n // Create a Hammer instance\r\n var hammer = new Hammer(element)\r\n hammer.get('swipe').set({ direction: Hammer.DIRECTION_ALL })\r\n var pageTransition = new PageTransitions()\r\n\r\n // Add a swipe event listener for swipe left\r\n hammer.on('swipeleft', (ev) => {\r\n this.currentUrl = window.location.href\r\n this.goForward(this.currentUrl)\r\n console.log(ev.type)\r\n\r\n })\r\n \r\n // Add a swipe event listener for swipe right\r\n hammer.on('swiperight', (ev) => {\r\n this.currentUrl = window.location.href\r\n this.goBack(this.currentUrl)\r\n console.log(ev.type)\r\n \r\n pageTransition.animatePageTransition(() => {\r\n pageTransition.loadContent(document.referrer, 'content-container')\r\n })\r\n })\r\n })\r\n }\r\n\r\n goForward(currentUrl) {\r\n if (this.history.length > 0) {\r\n const nextUrl = this.history[this.history.length - 1]\r\n if (HammerGestures.isSameDomain(currentUrl, nextUrl)) {\r\n console.log(`Going forward to ${nextUrl}`)\r\n this.history.pop()\r\n } else {\r\n console.log('Cannot go forward. Different domain.')\r\n }\r\n } else {\r\n console.log('Cannot go forward. History is empty.')\r\n }\r\n }\r\n\r\n goBack(currentUrl) {\r\n if (this.history.length > 0) {\r\n const previousUrl = this.history.pop()\r\n if (HammerGestures.isSameDomain(currentUrl, previousUrl)) {\r\n console.log(`Going back to ${previousUrl}`)\r\n } else {\r\n console.log('Cannot go back. Different domain.')\r\n this.history.push(previousUrl) // Re-add the popped URL\r\n }\r\n } else {\r\n console.log('Cannot go back. History is empty.')\r\n }\r\n }\r\n\r\n static isSameDomain(url1, url2) {\r\n const domain1 = new URL(url1).hostname\r\n const domain2 = new URL(url2).hostname\r\n return domain1 === domain2\r\n }\r\n}\r\n\r\nexport default HammerGestures\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.init()\r\n }\r\n\r\n init() {\r\n // Open and Close the Nav Menu\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.toggleMenuBtn.addEventListener('click', () => this.toggleNavMenu())\r\n })\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.collapseAllAccordions()\r\n }\r\n\r\n collapseAllAccordions() {\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\nexport default Nav\r\n","import CollapsePanel from './CollapsePanel'\r\nimport NavControl from './NavControl'\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('a')\r\n this.addFormSubmitListener('form')\r\n })\r\n }\r\n\r\n addLinkClickListener(selector) {\r\n this.links = document.querySelectorAll(selector)\r\n this.links.forEach((link) => {\r\n link.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n if (link.href === window.location.href) {\r\n return\r\n }\r\n\r\n this.navControl = new NavControl()\r\n if (this.navControl.toggleMenuBtn.classList.contains('active')) {\r\n this.navControl.toggleNavMenu()\r\n }\r\n if (!this.isExternalLink(link) && this.isWordPressAdminLink(link)) {\r\n window.location.href = link.href // Navigate normally\r\n } else if (!this.isExternalLink(link)) {\r\n this.animatePageTransition(() => {\r\n this.loadContent(link.getAttribute('href'), 'content-container')\r\n })\r\n } else if (this.isExternalLink(link)) {\r\n link.setAttribute('target', '_blank')\r\n window.open(link.href, '_system')\r\n }\r\n })\r\n })\r\n }\r\n\r\n addFormSubmitListener(selector) {\r\n this.forms = document.querySelectorAll(selector)\r\n this.forms.forEach((form) => {\r\n form.addEventListener('submit', (e) => {\r\n e.preventDefault()\r\n if (this.navControl.toggleMenuBtn.classList.contains('active')) {\r\n this.navControl.toggleNavMenu()\r\n }\r\n this.animatePageTransition(() => {\r\n this.submitFormAsync(form)\r\n })\r\n })\r\n })\r\n }\r\n\r\n animatePageTransition(callback) {\r\n const contentContainer = document.getElementById('content-container')\r\n\r\n // Add the transition class\r\n this.addTransitionClass(contentContainer)\r\n\r\n // Wait for the transition to complete\r\n callback() // Call the callback function (loading content) after the transition\r\n }\r\n\r\n addTransitionClass(element) {\r\n element.classList.add('page-transition')\r\n }\r\n\r\n removeTransitionClass(element) {\r\n element.classList.remove('page-transition')\r\n }\r\n\r\n loadContent(targetUrl, elementId) {\r\n const contentContainer = document.getElementById('content-container')\r\n\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 submitFormAsync(form) {\r\n const formData = new FormData(form)\r\n\r\n fetch(form.action, {\r\n method: 'POST',\r\n body: formData,\r\n })\r\n .then((response) => response.text())\r\n .then((data) => {\r\n // Assuming the response contains the new content to be loaded\r\n const targetUrl = form.action // You might need to adjust this based on your server's response\r\n const elementId = 'content-container'\r\n\r\n // Clear the search form\r\n var inputs = form.getElementsByTagName('input')\r\n\r\n Array.from(inputs).forEach(function (input) {\r\n // Reset the input value\r\n input.value = ''\r\n\r\n // Unfocus the input\r\n input.blur()\r\n })\r\n\r\n // Update content, push state, and remove transition class\r\n this.updateContent(data, elementId)\r\n history.pushState(null, null, targetUrl)\r\n\r\n // Trigger removal of transition class after fetching data\r\n const contentContainer = document.getElementById(elementId)\r\n setTimeout(() => {\r\n this.removeTransitionClass(contentContainer)\r\n }, 300)\r\n\r\n // Update the page title\r\n const newTitle = parsedData.querySelector('title')\r\n if (newTitle) {\r\n document.title = newTitle.textContent\r\n }\r\n\r\n // Initialize or update dynamic components\r\n this.collapsePanel = new CollapsePanel()\r\n this.collapsePanel.addToggleCollapseListener('#content-container .accordion-toggle')\r\n this.addLinkClickListener('#content-container a')\r\n })\r\n .catch((error) => console.error('Error submitting form:', 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 // Update the content container\r\n\r\n contentContainer.innerHTML = newContent\r\n\r\n // Trigger removal of transition class after fetching data\r\n setTimeout(() => {\r\n this.removeTransitionClass(contentContainer)\r\n }, 300)\r\n\r\n // Update the page title\r\n const newTitle = parsedData.querySelector('title')\r\n if (newTitle) {\r\n document.title = newTitle.textContent\r\n }\r\n\r\n // Initialize or update dynamic components\r\n this.collapsePanel = new CollapsePanel()\r\n this.collapsePanel.addToggleCollapseListener('#content-container .accordion-toggle')\r\n this.addLinkClickListener('#content-container a')\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 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 isWordPressAdminLink(link) {\r\n // Customize the condition based on your WordPress admin URL structure\r\n const adminUrlRegex = /^.*\\/wp-admin\\//\r\n return adminUrlRegex.test(link.href)\r\n }\r\n}\r\n\r\nexport default PageTransitions\r\n","class SplashScreen {\r\n constructor() {\r\n this.splashScreen = document.getElementById('splash-screen')\r\n this.enterButton = document.getElementById('app-enter')\r\n this.headerNav = document.getElementById('header-nav')\r\n this.footerNav = document.getElementById('footer-nav')\r\n\r\n this.init()\r\n }\r\n\r\n init() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.checkFirstVisit()\r\n })\r\n }\r\n\r\n checkFirstVisit() {\r\n if (!sessionStorage.getItem('visited')) {\r\n this.showSplashScreen()\r\n this.addEventListeners()\r\n }\r\n }\r\n\r\n showSplashScreen() {\r\n this.splashScreen.classList.remove('hidden')\r\n this.headerNav.classList.add('out-of-view')\r\n this.footerNav.classList.add('out-of-view')\r\n }\r\n\r\n hideSplashScreen() {\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 addEventListeners() {\r\n this.enterButton.addEventListener('click', () => {\r\n this.hideSplashScreen()\r\n sessionStorage.setItem('visited', true)\r\n })\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\nimport HammerGestures from './modules/HammerGestures'\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\nconst hammerGestures = new HammerGestures()\r\n"],"names":["CollapsePanel","constructor","init","document","addEventListener","addToggleCollapseListener","selector","toggles","querySelectorAll","forEach","toggle","parentNode","classList","PageTransitions","HammerGestures","history","element","getElementById","hammer","Hammer","get","set","direction","DIRECTION_ALL","pageTransition","on","ev","currentUrl","window","location","href","goForward","console","log","type","goBack","animatePageTransition","loadContent","referrer","length","nextUrl","isSameDomain","pop","previousUrl","push","url1","url2","domain1","URL","hostname","domain2","Nav","toggleMenuBtn","toggleSlideOutMenu","accordions","toggleNavMenu","body","collapseAllAccordions","setTimeout","accordion","remove","NavControl","addLinkClickListener","addFormSubmitListener","links","link","e","preventDefault","navControl","contains","isExternalLink","isWordPressAdminLink","getAttribute","setAttribute","open","forms","form","submitFormAsync","callback","contentContainer","addTransitionClass","add","removeTransitionClass","targetUrl","elementId","fetch","then","response","text","data","updateContent","pushState","catch","error","formData","FormData","action","method","inputs","getElementsByTagName","Array","from","input","value","blur","newTitle","parsedData","querySelector","title","textContent","collapsePanel","DOMParser","parseFromString","targetElement","newContent","innerHTML","currentDomain","linkDomain","adminUrlRegex","test","SplashScreen","splashScreen","enterButton","headerNav","footerNav","checkFirstVisit","sessionStorage","getItem","showSplashScreen","addEventListeners","hideSplashScreen","setItem","Test","testModule","pageTransitions","hammerGestures"],"sourceRoot":""} \ No newline at end of file diff --git a/header.php b/header.php index 7acf296..4184284 100644 --- a/header.php +++ b/header.php @@ -5,12 +5,7 @@ - + > diff --git a/includes/front-end/styles_and_scripts.php b/includes/front-end/styles_and_scripts.php index d72a7cb..ffe5ffc 100644 --- a/includes/front-end/styles_and_scripts.php +++ b/includes/front-end/styles_and_scripts.php @@ -11,6 +11,9 @@ function themeStarter_enqueue() wp_register_script('themeStarter-app', get_parent_theme_file_uri('/assets/js/index.js'), [], $theme_version, true); wp_enqueue_script('themeStarter-app'); + wp_register_script('hammer-js', 'https://hammerjs.github.io/dist/hammer.js', [], '2.0.8', true); + wp_enqueue_script('hammer-js'); + /* Register and Enqueue Styles */