mp-design-system 2.0.48 → 2.0.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/js/app.js +80 -20
- package/dist/assets/js/app.js.map +2 -2
- package/dist/assets/js/mp-academy.js +80 -20
- package/dist/assets/js/mp-academy.js.map +2 -2
- package/dist/assets/js/mp-brand.js +80 -20
- package/dist/assets/js/mp-brand.js.map +2 -2
- package/dist/assets/js/mp-events.js +80 -20
- package/dist/assets/js/mp-events.js.map +2 -2
- package/dist/assets/js/mp-mystore.js +80 -20
- package/dist/assets/js/mp-mystore.js.map +2 -2
- package/dist/assets/js/mp-support.js +80 -20
- package/dist/assets/js/mp-support.js.map +2 -2
- package/dist/assets/js/mp-www.js +1 -1
- package/dist/assets/js/mp-www.js.map +2 -2
- package/dist/assets/js/mp-www2.js +80 -20
- package/dist/assets/js/mp-www2.js.map +2 -2
- package/dist/assets/svg/sprite.svg +2 -0
- package/dist/build/scss/main.css +1 -1
- package/dist/build/scss/main.css.map +1 -1
- package/dist/build/scss/mp-academy-legacy.css +1 -1
- package/dist/build/scss/mp-academy-legacy.css.map +1 -1
- package/dist/build/scss/mp-events-legacy.css +1 -1
- package/dist/build/scss/mp-events-legacy.css.map +1 -1
- package/dist/build/scss/mp-mystore-legacy.css +1 -1
- package/dist/build/scss/mp-mystore-legacy.css.map +1 -1
- package/dist/build/scss/mp-support-legacy.css +1 -1
- package/dist/build/scss/mp-support-legacy.css.map +1 -1
- package/dist/build/scss/mp-www-legacy.css +1 -1
- package/dist/build/scss/mp-www-legacy.css.map +1 -1
- package/dist/build/scss/mp-www.css +1 -1
- package/dist/build/scss/mp-www.css.map +1 -1
- package/dist/build/scss/mp-www2-legacy.css +1 -1
- package/dist/build/scss/mp-www2-legacy.css.map +1 -1
- package/package.json +1 -1
|
@@ -686,7 +686,9 @@
|
|
|
686
686
|
// src/assets/js/imports/tabs.js
|
|
687
687
|
var resizeTimeout;
|
|
688
688
|
function Tabs() {
|
|
689
|
-
const tabs = Array.from(
|
|
689
|
+
const tabs = Array.from(
|
|
690
|
+
document.querySelectorAll(".c-tabs--anchor, .c-tabs--mobile-accordion")
|
|
691
|
+
);
|
|
690
692
|
tabs.forEach((parent) => {
|
|
691
693
|
setupTabs(parent);
|
|
692
694
|
window.addEventListener("resize", () => {
|
|
@@ -698,17 +700,52 @@
|
|
|
698
700
|
function setupTabs(parent) {
|
|
699
701
|
const controls = Array.from(parent.querySelectorAll(".c-tabs__control"));
|
|
700
702
|
const contents = Array.from(parent.querySelectorAll(".c-tab"));
|
|
701
|
-
const persist = parent.
|
|
703
|
+
const persist = parent.dataset.persist === "true";
|
|
702
704
|
if (!controls.length || !contents.length) return;
|
|
705
|
+
controls.forEach((control, index) => {
|
|
706
|
+
const content = contents[index];
|
|
707
|
+
if (!content) return;
|
|
708
|
+
control.setAttribute("role", "tab");
|
|
709
|
+
control.setAttribute(
|
|
710
|
+
"aria-selected",
|
|
711
|
+
control.classList.contains("c-tabs__control--active") ? "true" : "false"
|
|
712
|
+
);
|
|
713
|
+
control.setAttribute("aria-controls", content.id);
|
|
714
|
+
control.id ||= `tab-${index + 1}-tab`;
|
|
715
|
+
content.setAttribute("role", "tabpanel");
|
|
716
|
+
content.setAttribute("aria-labelledby", control.id);
|
|
717
|
+
content.hidden = !content.classList.contains("c-tab--active");
|
|
718
|
+
control.addEventListener("keydown", (e) => handleKeydown(e, controls));
|
|
719
|
+
});
|
|
703
720
|
handleResize(parent);
|
|
704
721
|
controls.forEach((control) => {
|
|
705
|
-
control.addEventListener(
|
|
722
|
+
control.addEventListener(
|
|
723
|
+
"click",
|
|
724
|
+
controlClick(controls, contents, persist)
|
|
725
|
+
);
|
|
706
726
|
});
|
|
707
727
|
if (persist && window.location.hash) {
|
|
708
|
-
const control = parent.querySelector(
|
|
728
|
+
const control = parent.querySelector(
|
|
729
|
+
'[href="' + window.location.hash + '"]'
|
|
730
|
+
);
|
|
709
731
|
if (control) control.dispatchEvent(new Event("click"));
|
|
710
732
|
}
|
|
711
733
|
}
|
|
734
|
+
function handleKeydown(event, controls) {
|
|
735
|
+
const key = event.key;
|
|
736
|
+
const current = event.currentTarget;
|
|
737
|
+
let index = controls.indexOf(current);
|
|
738
|
+
if (["ArrowLeft", "ArrowRight", "Home", "End"].includes(key)) {
|
|
739
|
+
event.preventDefault();
|
|
740
|
+
if (key === "ArrowLeft")
|
|
741
|
+
index = (index - 1 + controls.length) % controls.length;
|
|
742
|
+
if (key === "ArrowRight") index = (index + 1) % controls.length;
|
|
743
|
+
if (key === "Home") index = 0;
|
|
744
|
+
if (key === "End") index = controls.length - 1;
|
|
745
|
+
controls[index].focus();
|
|
746
|
+
controls[index].click();
|
|
747
|
+
}
|
|
748
|
+
}
|
|
712
749
|
function handleResize(parent) {
|
|
713
750
|
const isAccordion = parent.classList.contains("c-tabs--mobile-accordion");
|
|
714
751
|
const isMobile = window.innerWidth <= 880;
|
|
@@ -723,7 +760,9 @@
|
|
|
723
760
|
}
|
|
724
761
|
}
|
|
725
762
|
function restructureForAccordion(parent) {
|
|
726
|
-
const controlElements = Array.from(
|
|
763
|
+
const controlElements = Array.from(
|
|
764
|
+
parent.querySelectorAll(".c-tabs__control")
|
|
765
|
+
);
|
|
727
766
|
const tabElements = Array.from(parent.querySelectorAll(".c-tab"));
|
|
728
767
|
const controlsElement = parent.querySelector(".c-tabs__controls");
|
|
729
768
|
if (controlsElement) {
|
|
@@ -745,10 +784,12 @@
|
|
|
745
784
|
const contents = Array.from(parent.querySelectorAll(".c-tab"));
|
|
746
785
|
if (!controls.length || !contents.length) return;
|
|
747
786
|
parent.innerHTML = `
|
|
748
|
-
<nav class="c-tabs__controls">
|
|
749
|
-
<
|
|
750
|
-
|
|
751
|
-
|
|
787
|
+
<nav class="c-tabs__controls-wrapper">
|
|
788
|
+
<div class="c-tabs__controls">
|
|
789
|
+
<ul class="c-tabs__controls-list">
|
|
790
|
+
${controls.map((control) => `<li>${control.outerHTML}</li>`).join("")}
|
|
791
|
+
</ul>
|
|
792
|
+
</div>
|
|
752
793
|
</nav>
|
|
753
794
|
<div class="c-tabs__content">
|
|
754
795
|
${contents.map((content) => content.outerHTML).join("")}
|
|
@@ -756,6 +797,16 @@
|
|
|
756
797
|
`;
|
|
757
798
|
setTimeout(() => setupTabs(parent), 0);
|
|
758
799
|
}
|
|
800
|
+
function scrollToTabsTop(parent) {
|
|
801
|
+
if (!parent) return;
|
|
802
|
+
const rect = parent.getBoundingClientRect();
|
|
803
|
+
const offset = window.pageYOffset + rect.top;
|
|
804
|
+
const stickyOffset = parent.dataset.stickyOffset ? parseInt(parent.dataset.stickyOffset, 10) : 0;
|
|
805
|
+
window.scrollTo({
|
|
806
|
+
top: offset - stickyOffset,
|
|
807
|
+
behavior: "smooth"
|
|
808
|
+
});
|
|
809
|
+
}
|
|
759
810
|
function controlClick(controls, contents, persist) {
|
|
760
811
|
return (event) => {
|
|
761
812
|
const control = event.currentTarget;
|
|
@@ -766,17 +817,26 @@
|
|
|
766
817
|
if (persist) {
|
|
767
818
|
history.pushState(null, null, control.getAttribute("href"));
|
|
768
819
|
}
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
820
|
+
const isMobile = window.innerWidth <= 880;
|
|
821
|
+
controls.forEach((c) => {
|
|
822
|
+
const isActive = c === control;
|
|
823
|
+
c.classList.toggle("c-tabs__control--active", isActive);
|
|
824
|
+
c.setAttribute("aria-selected", isActive ? "true" : "false");
|
|
825
|
+
});
|
|
826
|
+
contents.forEach((c) => {
|
|
827
|
+
const isActive = c === content;
|
|
828
|
+
c.classList.toggle("c-tab--active", isActive);
|
|
829
|
+
c.hidden = !isActive;
|
|
830
|
+
});
|
|
831
|
+
scrollToTabsTop(
|
|
832
|
+
control.closest(".c-tabs--anchor, .c-tabs--mobile-accordion")
|
|
833
|
+
);
|
|
834
|
+
if (control.scrollIntoView) {
|
|
835
|
+
control.scrollIntoView({
|
|
836
|
+
behavior: "smooth",
|
|
837
|
+
block: "nearest",
|
|
838
|
+
inline: "nearest"
|
|
839
|
+
});
|
|
780
840
|
}
|
|
781
841
|
};
|
|
782
842
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/assets/js/imports/accordion.js", "../../../src/assets/js/imports/carousel.js", "../../../src/assets/js/imports/clear-form.js", "../../../src/assets/js/imports/comparison.js", "../../../src/assets/js/imports/facet.js", "../../../src/assets/js/imports/gallery.js", "../../../src/assets/js/imports/utilities.js", "../../../src/assets/js/imports/hero-pattern.js", "../../../src/assets/js/imports/hero-video.js", "../../../src/assets/js/imports/hotspot-image.js", "../../../src/assets/js/imports/internal-nav.js", "../../../src/assets/js/imports/off-canvas.js", "../../../src/assets/js/imports/responsive-table.js", "../../../src/assets/js/imports/scrollbar-width.js", "../../../src/assets/js/imports/scroll-spy.js", "../../../src/assets/js/imports/tabs.js", "../../../src/assets/js/mp-www2.js"],
|
|
4
|
-
"sourcesContent": ["function Accordion() {\r\n const accordions = Array.from(document.querySelectorAll('.c-accordion__title'));\r\n accordions.forEach(setupAccordions);\r\n}\r\n\r\nfunction setupAccordions(title) {\r\n title.addEventListener('click', titleClick())\r\n}\r\n\r\nfunction titleClick() {\r\n return (event) => {\r\n var item = event.currentTarget.parentElement;\r\n item.classList.toggle('c-accordion__item--open');\r\n }\r\n}\r\n\r\nexport default Accordion;\r\n", "function Carousel() {\r\n let current = 0;\r\n const bgSlides = document.querySelectorAll('.c-hero__image-bg');\r\n const fgSlides = document.querySelectorAll('.c-hero__image-fg');\r\n\r\n if(fgSlides.length > 0) {\r\n setInterval(() => {\r\n for (var bgSlide of bgSlides) {\r\n bgSlide.style.opacity = 0;\r\n }\r\n current = (current != bgSlides.length - 1) ? current + 1 : 0;\r\n bgSlides[current].style.opacity = 1;\r\n \r\n for (var fgSlide of fgSlides) {\r\n fgSlide.style.opacity = 0;\r\n }\r\n fgSlides[current].style.opacity = 1;\r\n }, 5000);\r\n }\r\n}\r\n\r\nexport default Carousel;", "function ClearForm() {\r\n const formClear = document.getElementById('clearForm');\r\n if (formClear) {\r\n formClear.addEventListener('click', function () {\r\n const fields = this.closest('form').elements;\r\n fields.forEach(field => {\r\n if (field.value != '') {\r\n if (\r\n field.type.toLowerCase() == 'text' || \r\n field.type.toLowerCase() == 'email' || \r\n field.type.toLowerCase() == 'tel' || \r\n field.type.toLowerCase() == 'select-one' || \r\n field.type.toLowerCase() == 'textarea'\r\n ) {\r\n field.value = '';\r\n return;\r\n } else if (field.type.toLowerCase() == 'checkbox') {\r\n field.checked = false;\r\n return;\r\n }\r\n }\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport default ClearForm;", "function Comparison() {\r\n document.querySelectorAll('.c-comparison-table').forEach(extractMobileComparison)\r\n}\r\n\r\nfunction extractMobileComparison(container) {\r\n const parent = container.parentNode.parentNode;\r\n const body = parent.querySelector('.c-comparison-table tbody');\r\n const head = parent.querySelector('.c-comparison-table thead');\r\n const mobile = parent.parentElement.querySelector('.c-comparison-table__mobile');\r\n\r\n if (!body || !head || !mobile) return;\r\n\r\n // Remove empty corner piece \r\n const productsInfo = Array.from(head.children[0].children).filter((x, i) => i).map(x => ({ info: x.innerHTML }));\r\n const productsButtons = Array.from(head.children[1].children).filter((x, i) => i).map(x => ({ buttons: x.innerHTML }));\r\n const products = productsInfo.map((info, index) => ({ ...info, ...productsButtons[index], table: [] }));\r\n\r\n Array.from(body.children).forEach(row => {\r\n // For table row headers, push to all products\r\n if (row.classList.contains('c-comparison-table__title')) {\r\n products.forEach(x => {\r\n x.table.push({ type: 'title', title: row.children[0].textContent })\r\n })\r\n } else {\r\n // For all others, loop the cells and push to their appropriate parent\r\n const cells = Array.from(row.children);\r\n const firstCell = cells.shift();\r\n\r\n cells.forEach((el, index) => {\r\n products[index].table.push({\r\n type: 'row',\r\n key: firstCell.textContent,\r\n value: el.innerHTML\r\n })\r\n })\r\n }\r\n })\r\n\r\n products.forEach(product => {\r\n const el = createMobileProduct(product);\r\n mobile.appendChild(el)\r\n })\r\n}\r\n\r\nfunction createMobileProduct(product) {\r\n const parent = document.createElement('article');\r\n parent.innerHTML = `${product.info}${product.buttons}\r\n <table class=\"c-comparison-table\">\r\n ${product.table.map(x => {\r\n if (x.type === 'title') {\r\n return `<tr class=\"c-comparison-table__title\"><th><span>${x.title}</span></th><th></th></tr>`;\r\n } else {\r\n return `<tr>\r\n <td>${x.key}</td>\r\n <td>${x.value}</td>\r\n </tr>`;\r\n }\r\n }).join('')}\r\n </table>`;\r\n\r\n return parent;\r\n}\r\n\r\nexport default Comparison;\r\n", "function Facet() {\r\n const facetAccordions = Array.from(document.querySelectorAll('.c-facet__toggle'));\r\n facetAccordions.forEach(setupFacetAccordions);\r\n}\r\n\r\nfunction setupFacetAccordions(toggle) {\r\n toggle.addEventListener('click', titleClick())\r\n}\r\n\r\nfunction titleClick() {\r\n return (event) => {\r\n event.preventDefault();\r\n \r\n var toggle = event.currentTarget;\r\n var facet = toggle.parentElement;\r\n\r\n facet.classList.toggle('c-facet--open');\r\n const expanded = facet.classList.contains('c-facet--open') ? 'true' : 'false';\r\n toggle.setAttribute('aria-expanded', expanded);\r\n }\r\n}\r\n\r\nexport default Facet;\r\n", "function Gallery() {\r\n const mainSlides = document.querySelectorAll('.c-gallery__main .c-gallery__slide');\r\n const thumbnailSlides = document.querySelectorAll('.c-gallery__thumbnails .c-gallery__slide');\r\n\r\n thumbnailSlides.forEach(thumbnailSlide => thumbnailSlide.addEventListener('click', function(e) {\r\n thumbnailSlides.forEach(function(thumbnail) {\r\n if(thumbnail != e.target.parentNode) {\r\n thumbnail.classList.remove('active');\r\n }\r\n });\r\n e.target.parentNode.classList.add('active');\r\n\r\n mainSlides.forEach(function(mainSlide) {\r\n if(mainSlide.dataset.slide == thumbnailSlide.dataset.slide) {\r\n mainSlide.classList.add('active');\r\n } else {\r\n mainSlide.classList.remove('active');\r\n }\r\n });\r\n }));\r\n\r\n mainSlides.forEach(function(mainSlide) {\r\n if(!mainSlide.classList.contains('c-gallery__video')) {\r\n mainSlide.addEventListener('click', lightboxTrigger);\r\n }\r\n });\r\n\r\n function lightboxTrigger() {\r\n const lightbox = document.querySelector('.c-gallery__main').cloneNode(true);\r\n lightbox.classList.remove('c-gallery__main');\r\n lightbox.classList.add('c-lightbox');\r\n lightbox.querySelectorAll('.c-gallery__slide').forEach(function(slide) {\r\n if(slide.classList.contains('c-gallery__video')) {\r\n slide.remove();\r\n }\r\n if(!slide.classList.contains('c-gallery__video')) {\r\n var slideImg = slide.querySelector('img');\r\n if(slideImg.srcset != '') {\r\n slideImg.removeAttribute('srcset');\r\n }\r\n var slideImgSrc = slideImg.getAttribute('src');\r\n if (slideImgSrc) {\r\n if (slideImgSrc.indexOf('?') !== -1) {\r\n slideImg.setAttribute('src', slideImgSrc.split(\"?\")[0] + '?quality=90&width=2176');\r\n } else {\r\n slideImg.setAttribute('src', slideImgSrc + '?quality=90&width=2176');\r\n }\r\n } else {\r\n console.log(slideImg);\r\n console.log('has no src defined...');\r\n }\r\n }\r\n slide.classList.add('c-lightbox__slide');\r\n slide.classList.remove('c-gallery__slide');\r\n });\r\n document.body.appendChild(lightbox);\r\n lightbox.insertAdjacentHTML('beforeend', '<a class=\"c-lightbox__prev\"></a><a class=\"c-lightbox__next\"></a>');\r\n\r\n lightbox.querySelector('.c-lightbox__prev').addEventListener('click', function() {\r\n const lightboxActive = lightbox.querySelector('.active');\r\n const prevImage = lightbox.querySelector('[data-slide=\"' + (parseInt(lightboxActive.dataset.slide) - 1) + '\"]');\r\n if(prevImage != null) {\r\n lightboxActive.classList.remove('active');\r\n prevImage.classList.add('active');\r\n }\r\n });\r\n\r\n lightbox.querySelector('.c-lightbox__next').addEventListener('click', function() {\r\n const lightboxActive = lightbox.querySelector('.active');\r\n const nextImage = lightbox.querySelector('[data-slide=\"' + (parseInt(lightboxActive.dataset.slide) + 1) + '\"]');\r\n if(nextImage != null) {\r\n lightboxActive.classList.remove('active');\r\n nextImage.classList.add('active');\r\n }\r\n });\r\n\r\n lightbox.addEventListener('click', function(e) {\r\n if (e.target !== e.currentTarget) {\r\n return;\r\n } else {\r\n lightbox.remove();\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default Gallery;\r\n", "export function shuffle(array) {\r\n const arr = [...array];\r\n for (let i = arr.length - 1; i > 0; i--) {\r\n let j = Math.floor(Math.random() * (i + 1));\r\n [arr[i], arr[j]] = [arr[j], arr[i]];\r\n }\r\n\r\n return arr;\r\n}\r\n\r\nexport function userPrefersReducedMotion() {\r\n const QUERY = '(prefers-reduced-motion: no-preference)';\r\n const mediaQueryList = window.matchMedia(QUERY);\r\n const prefersReducedMotion = !mediaQueryList.matches;\r\n return prefersReducedMotion;\r\n}\r\n\r\nexport const debounce = (func, limit) => {\r\n let wait = false; \r\n return () => {\r\n if (wait) return;\r\n func();\r\n wait = true;\r\n setTimeout(() => wait = false, limit);\r\n }\r\n}\r\n\r\nexport const lerp = (x, y, a) => x * (1 - a) + y * a;\r\nexport const clamp = (a, min = 0, max = 1) => Math.min(max, Math.max(min, a));\r\nexport const invlerp = (x, y, a) => clamp((a - x) / (y - x));\r\nexport const range = (x1, y1, x2, y2, a) => lerp(x2, y2, invlerp(x1, y1, a));\r\n", "import { range, shuffle, userPrefersReducedMotion } from './utilities';\r\n\r\nfunction HeroPattern() {\r\n let time = 0;\r\n\r\n const c = document.querySelector('.c-hero__canvas');\r\n if (!c) return;\r\n const ctx = c.getContext(\"2d\");\r\n \r\n const sineColour = \"rgb(19,170,19)\";\r\n const reduceMotion = userPrefersReducedMotion();\r\n\r\n const crossGap = 147;\r\n const minimumOpacity = 0;\r\n const maximumOpacity = 0.5;\r\n const crossSpeed = 0.25;\r\n\r\n let width;\r\n let height;\r\n let across;\r\n let down;\r\n let crosses = [];\r\n let totalPoints;\r\n\r\n function draw() {\r\n // Sine wave\r\n time = time + 0.005;\r\n \r\n ctx.clearRect(0, 0, c.width, c.height);\r\n ctx.beginPath();\r\n \r\n for(let cnt = c.width; cnt > 0; cnt--) {\r\n ctx.lineTo(cnt, c.height * 0.5 - (Math.cos(time + cnt / 5 * 0.03) * (height * 0.3) ));\r\n }\r\n \r\n ctx.lineWidth = 0.5;\r\n ctx.strokeStyle = sineColour;\r\n ctx.stroke();\r\n \r\n // Crosses\r\n crosses.forEach(cross => {\r\n drawCross(cross.x, cross.y, range(0, crosses.length, minimumOpacity, maximumOpacity, cross.counter));\r\n \r\n cross.counter += cross.direction;\r\n if (cross.counter >= crosses.length) cross.direction = -1 * crossSpeed;\r\n if (cross.counter < 0) cross.direction = crossSpeed;\r\n })\r\n \r\n if (!reduceMotion) {\r\n window.requestAnimationFrame(draw);\r\n }\r\n }\r\n \r\n function onResize() {\r\n width = c.scrollWidth;\r\n height = c.scrollHeight;\r\n \r\n ctx.canvas.width = width;\r\n ctx.canvas.height = height;\r\n \r\n across = Math.ceil(width / crossGap);\r\n down = Math.ceil(height / crossGap);\r\n \r\n totalPoints = (across + 1) * (down + 1);\r\n const ids = shuffle(Array.from({ length: totalPoints }, (_, i) => (i)))\r\n crosses = [];\r\n for(let x = 0; x <= across; x++) {\r\n for(let y = 0; y <= down; y++) {\r\n crosses.push({\r\n counter: ids.shift(),\r\n direction: Math.random() > 0.5 ? crossSpeed : -1 * crossSpeed,\r\n x: crossGap * (x + 1) - crossGap / 1,\r\n y: crossGap * (y + 1) - crossGap / 2\r\n });\r\n }\r\n }\r\n }\r\n \r\n function drawCross(x, y, opacity) {\r\n ctx.beginPath();\r\n ctx.moveTo(x - 14, y);\r\n ctx.lineTo(x + 14, y);\r\n ctx.strokeStyle = `rgba(255, 255, 255, ${opacity}`;\r\n ctx.moveTo(x, y - 14);\r\n ctx.lineTo(x, y + 14);\r\n ctx.stroke();\r\n }\r\n\r\n window.addEventListener('resize', onResize);\r\n onResize();\r\n draw();\r\n}\r\n\r\nexport default HeroPattern;\r\n", "function HeroVideo() {\r\n document.addEventListener(\"DOMContentLoaded\", () => {\r\n const videoBackground = document.getElementById('videoBackground');\r\n if(typeof(videoBackground) != 'undefined' && videoBackground != null) {\r\n const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\r\n if(!reducedMotion || reducedMotion.matches) {\r\n videoBackground.pause();\r\n }\r\n \r\n const lightboxTrigger = document.getElementById('playVideo');\r\n const lightboxContainer = document.getElementById('lightboxVideo');\r\n const lightboxVideo = lightboxContainer.querySelector('.c-lightbox__video');\r\n\r\n lightboxTrigger.addEventListener('click', e => {\r\n videoBackground.pause();\r\n lightboxContainer.classList.remove('u-hidden');\r\n checkVideos();\r\n });\r\n \r\n lightboxContainer.addEventListener('click', (e) => {\r\n if (!e.target.classList.contains('c-lightbox__video')) {\r\n videoBackground.setAttribute('autoplay','');\r\n lightboxContainer.classList.add('u-hidden');\r\n checkVideos();\r\n }\r\n });\r\n window.addEventListener('keydown', function(e) {\r\n if (e.key == \"Escape\") {\r\n videoBackground.setAttribute('autoplay','');\r\n lightboxContainer.classList.add('u-hidden');\r\n checkVideos();\r\n }\r\n });\r\n\r\n function checkVideos() {\r\n if(lightboxContainer.classList.contains('u-hidden')) {\r\n if (videoBackground.paused) {\r\n videoBackground.play();\r\n }\r\n if (!lightboxVideo.paused) {\r\n lightboxVideo.pause();\r\n }\r\n } else {\r\n if (!videoBackground.paused) {\r\n videoBackground.pause();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport default HeroVideo;", "// Function to initialize tooltip behavior\r\nfunction HotspotImage() {\r\n // Add delay for Tridion JavaScript created hotspot images\r\n setTimeout(function () {\r\n // Select all elements that trigger tooltips\r\n const tooltips = document.querySelectorAll('.c-hotspot-image__button');\r\n\r\n // Add event listeners for each tooltip button\r\n tooltips.forEach((button) => {\r\n button.addEventListener('click', handleTooltipToggle);\r\n });\r\n\r\n // Add event listener for Escape key press\r\n document.addEventListener('keydown', handleKeyDown);\r\n\r\n // Add event listener for click outside tooltip\r\n document.addEventListener('click', handleClickOutside);\r\n }, 2000);\r\n}\r\n\r\n// Function to handle the tooltip toggle\r\nfunction handleTooltipToggle(event) {\r\n // Prevent default action if needed\r\n event.preventDefault();\r\n\r\n const button = event.currentTarget;\r\n const tooltipId = button.getAttribute('aria-controls');\r\n const tooltip = document.getElementById(tooltipId);\r\n\r\n if (tooltip.classList.contains('c-hotspot-image__tooltip--open')) {\r\n closeTooltip(button, tooltip);\r\n } else {\r\n openTooltip(button, tooltip);\r\n }\r\n}\r\n\r\n// Function to open a tooltip\r\nfunction openTooltip(button, tooltip) {\r\n // Add active class and make tooltip visible\r\n tooltip.classList.add('c-hotspot-image__tooltip--open');\r\n tooltip.setAttribute('aria-hidden', 'false');\r\n button.setAttribute('aria-expanded', 'true');\r\n\r\n // Add event listener for click outside\r\n document.addEventListener('click', handleClickOutside);\r\n}\r\n\r\n// Function to close a tooltip\r\nfunction closeTooltip(button, tooltip) {\r\n // Remove active class and hide tooltip\r\n tooltip.classList.remove('c-hotspot-image__tooltip--open');\r\n tooltip.setAttribute('aria-hidden', 'true');\r\n button.setAttribute('aria-expanded', 'false');\r\n\r\n // Remove event listener for click outside\r\n document.removeEventListener('click', handleClickOutside);\r\n}\r\n\r\n// Function to handle Escape key press\r\nfunction handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n const activeTooltip = document.querySelector(\r\n '.c-hotspot-image__tooltip--open'\r\n );\r\n if (activeTooltip) {\r\n const button = document.querySelector(\r\n `[aria-controls=\"${activeTooltip.id}\"]`\r\n );\r\n closeTooltip(button, activeTooltip);\r\n }\r\n }\r\n}\r\n\r\n// Function to handle click outside the tooltip\r\nfunction handleClickOutside(event) {\r\n const activeTooltip = document.querySelector(\r\n '.c-hotspot-image__tooltip--open'\r\n );\r\n if (\r\n activeTooltip &&\r\n !activeTooltip.contains(event.target) &&\r\n !event.target.closest('.c-hotspot-image__button')\r\n ) {\r\n const button = document.querySelector(\r\n `[aria-controls=\"${activeTooltip.id}\"]`\r\n );\r\n closeTooltip(button, activeTooltip);\r\n }\r\n}\r\n\r\nexport default HotspotImage;\r\n", "function InternalNav() {\r\n const internalNav = document.querySelector('.c-internal-nav--sticky');\r\n\r\n if (!internalNav) {\r\n return;\r\n }\r\n\r\n const observerOptions = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: 1.0\r\n };\r\n\r\n const intersectionCallback = (entries, observer) => {\r\n const isIntersecting = entries[0].isIntersecting;\r\n internalNav.classList.toggle('c-internal-nav--stuck', !isIntersecting);\r\n };\r\n\r\n const observer = new IntersectionObserver(intersectionCallback, observerOptions);\r\n observer.observe(internalNav);\r\n\r\n let internalNavHeight = internalNav.offsetHeight;\r\n\r\n const updateInternalNavHeight = () => {\r\n internalNavHeight = internalNav.offsetHeight;\r\n const anchors = Array.from(internalNav.querySelectorAll('a'));\r\n anchors.forEach(anchor => {\r\n const id = anchor.getAttribute('href').replace('#', '');\r\n const target = document.getElementById(id);\r\n if (target) {\r\n target.style.scrollMarginTop = `${internalNavHeight}px`;\r\n }\r\n });\r\n };\r\n\r\n window.addEventListener('resize', updateInternalNavHeight);\r\n\r\n updateInternalNavHeight();\r\n}\r\n\r\nexport default InternalNav;", "// Function to initialize off-canvas behavior\r\nfunction OffCanvas() {\r\n // Select all elements that trigger off-canvas behavior\r\n const toggles = document.querySelectorAll(\".c-off-canvas__toggle\");\r\n\r\n // Iterate through each toggle element\r\n if (toggles.length) {\r\n toggles.forEach(toggle => {\r\n // Determine initial visibility state and handle click event\r\n handleOffCanvas(toggle, isVisible(toggle));\r\n toggle.addEventListener('click', () => toggleOffCanvas(toggle));\r\n });\r\n\r\n // Add event listener for scroll events to check visibility\r\n // window.addEventListener('scroll', () => {\r\n // toggles.forEach(toggle => {\r\n // handleOffCanvas(toggle, isVisible(toggle));\r\n // });\r\n // });\r\n\r\n // Add event listener for resize events to check visibility\r\n window.addEventListener('resize', () => {\r\n toggles.forEach(toggle => {\r\n handleOffCanvas(toggle, isVisible(toggle));\r\n });\r\n });\r\n }\r\n}\r\n\r\n// Function to check if an element is currently visible on the page\r\nfunction isVisible(element) {\r\n // Check element's styles for visibility\r\n const style = window.getComputedStyle(element);\r\n return (\r\n style.display !== 'none' &&\r\n style.visibility !== 'hidden'\r\n );\r\n}\r\n\r\n// Function to handle off-canvas behavior based on visibility\r\nfunction handleOffCanvas(toggle, isVisible) {\r\n const target = document.getElementById(toggle.getAttribute('data-target'));\r\n if (isVisible === true) {\r\n createOffCanvas(target);\r\n } else {\r\n removeOffCanvas(target);\r\n }\r\n}\r\n\r\n// Function to create off canvas\r\nfunction createOffCanvas(target) {\r\n // Add necessary classes and attributes for off-canvas display\r\n target.classList.add('c-off-canvas');\r\n target.setAttribute('tabindex', '-1');\r\n target.setAttribute('aria-hidden', 'true');\r\n \r\n // Extract specific sections of the off-canvas content\r\n const targetHeader = target.querySelector('[data-off-canvas=\"header\"]');\r\n const targetMain = target.querySelector('[data-off-canvas=\"main\"]');\r\n const targetFooter = target.querySelector('[data-off-canvas=\"footer\"]');\r\n\r\n // Extract content from the sections\r\n const targetHeaderContent = targetHeader !== null ? targetHeader.outerHTML : '';\r\n const targetMainContent = targetMain !== null ? targetMain.outerHTML : '';\r\n const targetFooterContent = targetFooter !== null ? targetFooter.outerHTML : '';\r\n\r\n // Replace the target's content with off-canvas structure\r\n target.innerHTML = `\r\n <div class=\"c-off-canvas__backdrop\" role=\"presentation\"></div>\r\n <div class=\"c-off-canvas__content\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"offCanvasHeader\">\r\n <header id=\"offCanvasHeader\" class=\"c-off-canvas__header\">${targetHeaderContent}</header>\r\n <main class=\"c-off-canvas__main\">${targetMainContent}</main>\r\n <footer class=\"c-off-canvas__footer\">\r\n ${targetFooterContent}\r\n <button class=\"mp c-twi c-twi--left c-off-canvas__close\" data-off-canvas-close=\"true\" onclick=\"return false\">\r\n <span>Cancel</span>\r\n <svg role=\"img\" aria-hidden=\"true\" focusable=\"false\" class=\"mp c-icon c-icon--cross\">\r\n <use xlink:href=\"/static/svg/sprite.svg#cross\"></use>\r\n </svg>\r\n </button>\r\n </footer>\r\n </div>\r\n `;\r\n}\r\n\r\n// Function to remove off-canvas layout\r\nfunction removeOffCanvas(target) {\r\n // Remove classes and attributes for off-canvas display\r\n target.classList.remove('c-off-canvas', 'c-off-canvas--active');\r\n target.removeAttribute('tabindex');\r\n target.removeAttribute('aria-hidden');\r\n\r\n // Remove backdrop element if present\r\n const targetBackdrop = target.querySelector('.c-off-canvas__backdrop');\r\n if (targetBackdrop) {\r\n targetBackdrop.remove();\r\n }\r\n\r\n // Restore original content by removing off-canvas structure\r\n const targetContent = target.querySelector('.c-off-canvas__content');\r\n if (targetContent) {\r\n while (targetContent.firstChild) {\r\n target.insertBefore(targetContent.firstChild, targetContent);\r\n }\r\n target.removeChild(targetContent);\r\n }\r\n\r\n const targetHeader = target.querySelector('.c-off-canvas__header');\r\n if (targetHeader) {\r\n while (targetHeader.firstChild) {\r\n target.insertBefore(targetHeader.firstChild, targetHeader);\r\n }\r\n target.removeChild(targetHeader);\r\n }\r\n\r\n const targetMain = target.querySelector('.c-off-canvas__main');\r\n if (targetMain) {\r\n while (targetMain.firstChild) {\r\n target.insertBefore(targetMain.firstChild, targetMain);\r\n }\r\n target.removeChild(targetMain);\r\n }\r\n\r\n const targetFooter = target.querySelector('.c-off-canvas__footer');\r\n if (targetFooter) {\r\n while (targetFooter.firstChild) {\r\n target.insertBefore(targetFooter.firstChild, targetFooter);\r\n }\r\n target.removeChild(targetFooter);\r\n }\r\n \r\n // Remove close button element if present\r\n const targetClose = target.querySelector('.c-off-canvas__close');\r\n if (targetClose) {\r\n targetClose.remove();\r\n }\r\n}\r\n\r\n// Function to toggle off-canvas visibility\r\nfunction toggleOffCanvas(toggle) {\r\n const target = document.getElementById(toggle.getAttribute('data-target'));\r\n\r\n // Check if the target is already open or closed\r\n if (!target.classList.contains('c-off-canvas--active')) {\r\n openOffCanvas(toggle, target);\r\n } else if (target.classList.contains('c-off-canvas--active')) {\r\n closeOffCanvas(target);\r\n }\r\n}\r\n\r\nfunction openOffCanvas(toggle, target) {\r\n // Add classes and attributes for open off-canvas\r\n toggle.setAttribute('aria-expanded', 'true');\r\n target.classList.add('c-off-canvas--active');\r\n target.setAttribute('aria-hidden', 'false');\r\n\r\n // Add event listener for backdrop clicks\r\n const offCanvasBackdrop = target.querySelector('.c-off-canvas__backdrop');\r\n if(offCanvasBackdrop) {\r\n offCanvasBackdrop.addEventListener('click', handleBackdropClick);\r\n }\r\n\r\n // Add event listener forclose button clicks\r\n const offCanvasCloseElements = target.querySelectorAll('[data-off-canvas-close=\"true\"]');\r\n if (offCanvasCloseElements.length > 0) {\r\n offCanvasCloseElements.forEach((offCanvasClose) => {\r\n offCanvasClose.addEventListener('click', handleCloseClick);\r\n });\r\n }\r\n\r\n // Add event listener for Escape key press\r\n document.addEventListener('keydown', handleKeyDown, { once: true });\r\n\r\n // Adjust body overflow to prevent scrolling\r\n document.body.style.overflowY = 'hidden';\r\n\r\n // Close other open off-canvas elements\r\n const allOffCanvasElementsExceptCurrent = Array.from(document.querySelectorAll('.c-off-canvas')).filter(offCanvas => offCanvas !== target);\r\n if (allOffCanvasElementsExceptCurrent.length > 0) {\r\n allOffCanvasElementsExceptCurrent.forEach((offCanvas) => {\r\n closeOffCanvas(offCanvas);\r\n });\r\n }\r\n}\r\n\r\n// Function to close an off-canvas\r\nfunction closeOffCanvas(target) {\r\n // Remove classes and attributes for open off-canvas\r\n document.querySelector('[data-target=\"' + target.id + '\"').setAttribute('aria-expanded', 'false');\r\n target.classList.remove('c-off-canvas--active');\r\n target.setAttribute('aria-hidden', 'true');\r\n\r\n // Restore body overflow\r\n document.body.style.overflowY = '';\r\n}\r\n\r\n// Function to handle backdrop click\r\nfunction handleBackdropClick() {\r\n const offCanvas = this.closest('.c-off-canvas');\r\n closeOffCanvas(offCanvas);\r\n}\r\n\r\n// Function to handle Escape key press\r\nfunction handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n const activeOffCanvas = document.querySelector('.c-off-canvas--active');\r\n if (activeOffCanvas) {\r\n closeOffCanvas(activeOffCanvas);\r\n }\r\n }\r\n}\r\n\r\n// Function to handle close button click\r\nfunction handleCloseClick() {\r\n const offCanvas = this.closest('.c-off-canvas');\r\n closeOffCanvas(offCanvas);\r\n}\r\n\r\nexport default OffCanvas;", "const ResponsiveTable = () => {\r\n const tables = Array.from(document.querySelectorAll('.c-table--responsive'));\r\n tables.forEach(createResponsiveTable);\r\n\r\n /**\r\n * Create responsive table headers for large tables\r\n * @param {HTMLTableElement} table\r\n */\r\n function createResponsiveTable(table) {\r\n const headers = table.querySelectorAll('thead > :first-child th');\r\n const breakPoint = Number(table.getAttribute('data-columns')) || 2\r\n \r\n if (headers.length < breakPoint) {\r\n table.classList.remove('c-table--responsive');\r\n return;\r\n };\r\n\r\n Array.from(table.querySelectorAll('tbody tr')).forEach((row) => {\r\n Array.from(headers)\r\n .map((x) => x.textContent)\r\n .forEach((header, index) => {\r\n if (row.children[index]) {\r\n row.children[index].setAttribute('data-responsive-title', header);\r\n }\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport default ResponsiveTable;\r\n", "import { debounce } from './utilities';\r\n\r\nfunction ScrollbarWidth() {\r\n setScrollbarWidth();\r\n window.addEventListener('resize', debounce(setScrollbarWidth, 250));\r\n}\r\n\r\nfunction setScrollbarWidth() {\r\n document.documentElement.style.setProperty(\r\n '--scrollbarWidth', \r\n window.innerWidth - document.body.clientWidth + 'px'\r\n );\r\n}\r\n\r\nexport default ScrollbarWidth;", "function ScrollSpy() {\r\n const internalNav = document.querySelector('.c-internal-nav--sticky');\r\n const internalNavHeight = internalNav ? internalNav.offsetHeight : 0;\r\n\r\n const spies = Array.from(document.querySelectorAll('.c-scroll-spy'));\r\n spies.forEach(spy => {\r\n setup(spy, internalNavHeight);\r\n });\r\n}\r\n\r\nfunction setup(element, internalNavHeight) {\r\n const anchors = Array.from(element.querySelectorAll('a'));\r\n const observer = new IntersectionObserver(observation(anchors));\r\n \r\n anchors.forEach(anchor => {\r\n const id = anchor.getAttribute('href').replace('#', '');\r\n const target = document.getElementById(id);\r\n if (!target) return;\r\n\r\n observer.observe(target);\r\n });\r\n\r\n const currentTop = parseFloat(window.getComputedStyle(element).top);\r\n element.style.top = `${currentTop + internalNavHeight}px`;\r\n}\r\n\r\n/**\r\n * @param {Array<HTMLAnchorElement>} results \r\n * @return {Array<IntersectionObserverEntry>}\r\n */\r\nfunction observation(anchors) {\r\n return (results) => {\r\n const firstObservation = results.find(x => x.isIntersecting);\r\n\r\n if (firstObservation) {\r\n anchors.forEach(x => {\r\n x.classList.toggle(\r\n 'c-scroll-spy-active',\r\n x.getAttribute('href') === '#' + firstObservation.target.id\r\n )\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport default ScrollSpy;\r\n", "let resizeTimeout\r\n\r\nfunction Tabs() {\r\n const tabs = Array.from(document.querySelectorAll('.c-tabs--anchor, .c-tabs--mobile-accordion'))\r\n tabs.forEach((parent) => {\r\n setupTabs(parent)\r\n window.addEventListener('resize', () => {\r\n clearTimeout(resizeTimeout)\r\n resizeTimeout = setTimeout(() => handleResize(parent), 100)\r\n })\r\n })\r\n}\r\n\r\nfunction setupTabs(parent) {\r\n const controls = Array.from(parent.querySelectorAll('.c-tabs__control'))\r\n const contents = Array.from(parent.querySelectorAll('.c-tab'))\r\n const persist = parent.classList.contains('c-tabs--persist')\r\n\r\n if (!controls.length || !contents.length) return\r\n\r\n handleResize(parent)\r\n\r\n controls.forEach((control) => {\r\n control.addEventListener('click', controlClick(controls, contents, persist))\r\n })\r\n\r\n if (persist && window.location.hash) {\r\n const control = parent.querySelector('[href=\"' + window.location.hash + '\"]')\r\n if (control) control.dispatchEvent(new Event('click'))\r\n }\r\n}\r\n\r\nfunction handleResize(parent) {\r\n const isAccordion = parent.classList.contains('c-tabs--mobile-accordion')\r\n const isMobile = window.innerWidth <= 880\r\n\r\n if (parent.dataset.viewMode === (isMobile ? 'accordion' : 'tabs')) {\r\n return\r\n }\r\n\r\n parent.dataset.viewMode = isMobile ? 'accordion' : 'tabs'\r\n\r\n if (isAccordion && isMobile) {\r\n restructureForAccordion(parent)\r\n } else if (isAccordion && !isMobile) {\r\n restoreToTabs(parent)\r\n }\r\n}\r\n\r\nfunction restructureForAccordion(parent) {\r\n const controlElements = Array.from(parent.querySelectorAll('.c-tabs__control'))\r\n const tabElements = Array.from(parent.querySelectorAll('.c-tab'))\r\n\r\n const controlsElement = parent.querySelector('.c-tabs__controls')\r\n\r\n if (controlsElement) {\r\n controlsElement.remove()\r\n }\r\n\r\n controlElements.forEach((control, index) => {\r\n const content = tabElements[index]\r\n if (content) {\r\n const tabWrapper = document.createElement('div')\r\n tabWrapper.classList.add('c-tabs__content')\r\n\r\n tabWrapper.appendChild(control)\r\n tabWrapper.appendChild(content)\r\n\r\n parent.appendChild(tabWrapper)\r\n }\r\n })\r\n}\r\n\r\nfunction restoreToTabs(parent) {\r\n const controls = Array.from(parent.querySelectorAll('.c-tabs__control'))\r\n const contents = Array.from(parent.querySelectorAll('.c-tab'))\r\n\r\n if (!controls.length || !contents.length) return\r\n\r\n parent.innerHTML = `\r\n <nav class=\"c-tabs__controls\">\r\n <ul class=\"c-tabs__controls-list\">\r\n ${controls.map((control) => `<li>${control.outerHTML}</li>`).join('')}\r\n </ul>\r\n </nav>\r\n <div class=\"c-tabs__content\">\r\n ${contents.map((content) => content.outerHTML).join('')}\r\n </div>\r\n `\r\n\r\n setTimeout(() => setupTabs(parent), 0)\r\n}\r\n\r\nfunction controlClick(controls, contents, persist) {\r\n return (event) => {\r\n const control = event.currentTarget\r\n const contentId = control.getAttribute('href')?.replace('#', '')\r\n const content = contents.find((x) => x.id === contentId)\r\n\r\n if (!content) return true\r\n\r\n event.preventDefault()\r\n\r\n if (persist) {\r\n history.pushState(null, null, control.getAttribute('href'))\r\n }\r\n\r\n if (window.innerWidth <= 880) {\r\n const isActive = content.classList.contains('c-tab--active')\r\n\r\n controls.forEach((c) => c.classList.remove('c-tabs__control--active'))\r\n contents.forEach((c) => c.classList.remove('c-tab--active'))\r\n\r\n if (!isActive) {\r\n control.classList.add('c-tabs__control--active')\r\n content.classList.add('c-tab--active')\r\n }\r\n } else {\r\n controls.forEach((c) => c.classList.toggle('c-tabs__control--active', c === control))\r\n contents.forEach((c) => c.classList.toggle('c-tab--active', c === content))\r\n }\r\n }\r\n}\r\n\r\nexport default Tabs\r\n", "import Accordion from \"./imports/accordion.js\";\r\nimport Carousel from \"./imports/carousel.js\";\r\nimport ClearForm from \"./imports/clear-form.js\";\r\nimport Comparison from \"./imports/comparison.js\";\r\nimport Facet from \"./imports/facet.js\";\r\nimport Gallery from \"./imports/gallery.js\";\r\nimport HeroPattern from \"./imports/hero-pattern.js\";\r\nimport HeroVideo from \"./imports/hero-video.js\";\r\nimport HotspotImage from \"./imports/hotspot-image.js\";\r\nimport InternalNav from \"./imports/internal-nav.js\";\r\nimport OffCanvas from \"./imports/off-canvas.js\";\r\nimport ResponsiveTable from \"./imports/responsive-table.js\";\r\nimport ScrollbarWidth from \"./imports/scrollbar-width.js\";\r\nimport ScrollSpy from \"./imports/scroll-spy.js\";\r\nimport Tabs from \"./imports/tabs.js\";\r\n\r\nexport default function initializeApp() {\r\n // Polyfills\r\n if (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = Array.prototype.forEach;\r\n }\r\n if (window.HTMLCollection && !HTMLCollection.prototype.forEach) {\r\n HTMLCollection.prototype.forEach = Array.prototype.forEach;\r\n }\r\n\r\n // Initialize components\r\n Accordion();\r\n Carousel();\r\n ClearForm();\r\n Comparison();\r\n Facet();\r\n Gallery();\r\n HeroPattern();\r\n HeroVideo();\r\n HotspotImage();\r\n InternalNav();\r\n OffCanvas();\r\n ResponsiveTable();\r\n ScrollbarWidth();\r\n ScrollSpy();\r\n Tabs();\r\n}\r\n\r\nif (typeof window !== \"undefined\") {\r\n initializeApp();\r\n}\r\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["function Accordion() {\r\n const accordions = Array.from(document.querySelectorAll('.c-accordion__title'));\r\n accordions.forEach(setupAccordions);\r\n}\r\n\r\nfunction setupAccordions(title) {\r\n title.addEventListener('click', titleClick())\r\n}\r\n\r\nfunction titleClick() {\r\n return (event) => {\r\n var item = event.currentTarget.parentElement;\r\n item.classList.toggle('c-accordion__item--open');\r\n }\r\n}\r\n\r\nexport default Accordion;\r\n", "function Carousel() {\r\n let current = 0;\r\n const bgSlides = document.querySelectorAll('.c-hero__image-bg');\r\n const fgSlides = document.querySelectorAll('.c-hero__image-fg');\r\n\r\n if(fgSlides.length > 0) {\r\n setInterval(() => {\r\n for (var bgSlide of bgSlides) {\r\n bgSlide.style.opacity = 0;\r\n }\r\n current = (current != bgSlides.length - 1) ? current + 1 : 0;\r\n bgSlides[current].style.opacity = 1;\r\n \r\n for (var fgSlide of fgSlides) {\r\n fgSlide.style.opacity = 0;\r\n }\r\n fgSlides[current].style.opacity = 1;\r\n }, 5000);\r\n }\r\n}\r\n\r\nexport default Carousel;", "function ClearForm() {\r\n const formClear = document.getElementById('clearForm');\r\n if (formClear) {\r\n formClear.addEventListener('click', function () {\r\n const fields = this.closest('form').elements;\r\n fields.forEach(field => {\r\n if (field.value != '') {\r\n if (\r\n field.type.toLowerCase() == 'text' || \r\n field.type.toLowerCase() == 'email' || \r\n field.type.toLowerCase() == 'tel' || \r\n field.type.toLowerCase() == 'select-one' || \r\n field.type.toLowerCase() == 'textarea'\r\n ) {\r\n field.value = '';\r\n return;\r\n } else if (field.type.toLowerCase() == 'checkbox') {\r\n field.checked = false;\r\n return;\r\n }\r\n }\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport default ClearForm;", "function Comparison() {\r\n document.querySelectorAll('.c-comparison-table').forEach(extractMobileComparison)\r\n}\r\n\r\nfunction extractMobileComparison(container) {\r\n const parent = container.parentNode.parentNode;\r\n const body = parent.querySelector('.c-comparison-table tbody');\r\n const head = parent.querySelector('.c-comparison-table thead');\r\n const mobile = parent.parentElement.querySelector('.c-comparison-table__mobile');\r\n\r\n if (!body || !head || !mobile) return;\r\n\r\n // Remove empty corner piece \r\n const productsInfo = Array.from(head.children[0].children).filter((x, i) => i).map(x => ({ info: x.innerHTML }));\r\n const productsButtons = Array.from(head.children[1].children).filter((x, i) => i).map(x => ({ buttons: x.innerHTML }));\r\n const products = productsInfo.map((info, index) => ({ ...info, ...productsButtons[index], table: [] }));\r\n\r\n Array.from(body.children).forEach(row => {\r\n // For table row headers, push to all products\r\n if (row.classList.contains('c-comparison-table__title')) {\r\n products.forEach(x => {\r\n x.table.push({ type: 'title', title: row.children[0].textContent })\r\n })\r\n } else {\r\n // For all others, loop the cells and push to their appropriate parent\r\n const cells = Array.from(row.children);\r\n const firstCell = cells.shift();\r\n\r\n cells.forEach((el, index) => {\r\n products[index].table.push({\r\n type: 'row',\r\n key: firstCell.textContent,\r\n value: el.innerHTML\r\n })\r\n })\r\n }\r\n })\r\n\r\n products.forEach(product => {\r\n const el = createMobileProduct(product);\r\n mobile.appendChild(el)\r\n })\r\n}\r\n\r\nfunction createMobileProduct(product) {\r\n const parent = document.createElement('article');\r\n parent.innerHTML = `${product.info}${product.buttons}\r\n <table class=\"c-comparison-table\">\r\n ${product.table.map(x => {\r\n if (x.type === 'title') {\r\n return `<tr class=\"c-comparison-table__title\"><th><span>${x.title}</span></th><th></th></tr>`;\r\n } else {\r\n return `<tr>\r\n <td>${x.key}</td>\r\n <td>${x.value}</td>\r\n </tr>`;\r\n }\r\n }).join('')}\r\n </table>`;\r\n\r\n return parent;\r\n}\r\n\r\nexport default Comparison;\r\n", "function Facet() {\r\n const facetAccordions = Array.from(document.querySelectorAll('.c-facet__toggle'));\r\n facetAccordions.forEach(setupFacetAccordions);\r\n}\r\n\r\nfunction setupFacetAccordions(toggle) {\r\n toggle.addEventListener('click', titleClick())\r\n}\r\n\r\nfunction titleClick() {\r\n return (event) => {\r\n event.preventDefault();\r\n \r\n var toggle = event.currentTarget;\r\n var facet = toggle.parentElement;\r\n\r\n facet.classList.toggle('c-facet--open');\r\n const expanded = facet.classList.contains('c-facet--open') ? 'true' : 'false';\r\n toggle.setAttribute('aria-expanded', expanded);\r\n }\r\n}\r\n\r\nexport default Facet;\r\n", "function Gallery() {\r\n const mainSlides = document.querySelectorAll('.c-gallery__main .c-gallery__slide');\r\n const thumbnailSlides = document.querySelectorAll('.c-gallery__thumbnails .c-gallery__slide');\r\n\r\n thumbnailSlides.forEach(thumbnailSlide => thumbnailSlide.addEventListener('click', function(e) {\r\n thumbnailSlides.forEach(function(thumbnail) {\r\n if(thumbnail != e.target.parentNode) {\r\n thumbnail.classList.remove('active');\r\n }\r\n });\r\n e.target.parentNode.classList.add('active');\r\n\r\n mainSlides.forEach(function(mainSlide) {\r\n if(mainSlide.dataset.slide == thumbnailSlide.dataset.slide) {\r\n mainSlide.classList.add('active');\r\n } else {\r\n mainSlide.classList.remove('active');\r\n }\r\n });\r\n }));\r\n\r\n mainSlides.forEach(function(mainSlide) {\r\n if(!mainSlide.classList.contains('c-gallery__video')) {\r\n mainSlide.addEventListener('click', lightboxTrigger);\r\n }\r\n });\r\n\r\n function lightboxTrigger() {\r\n const lightbox = document.querySelector('.c-gallery__main').cloneNode(true);\r\n lightbox.classList.remove('c-gallery__main');\r\n lightbox.classList.add('c-lightbox');\r\n lightbox.querySelectorAll('.c-gallery__slide').forEach(function(slide) {\r\n if(slide.classList.contains('c-gallery__video')) {\r\n slide.remove();\r\n }\r\n if(!slide.classList.contains('c-gallery__video')) {\r\n var slideImg = slide.querySelector('img');\r\n if(slideImg.srcset != '') {\r\n slideImg.removeAttribute('srcset');\r\n }\r\n var slideImgSrc = slideImg.getAttribute('src');\r\n if (slideImgSrc) {\r\n if (slideImgSrc.indexOf('?') !== -1) {\r\n slideImg.setAttribute('src', slideImgSrc.split(\"?\")[0] + '?quality=90&width=2176');\r\n } else {\r\n slideImg.setAttribute('src', slideImgSrc + '?quality=90&width=2176');\r\n }\r\n } else {\r\n console.log(slideImg);\r\n console.log('has no src defined...');\r\n }\r\n }\r\n slide.classList.add('c-lightbox__slide');\r\n slide.classList.remove('c-gallery__slide');\r\n });\r\n document.body.appendChild(lightbox);\r\n lightbox.insertAdjacentHTML('beforeend', '<a class=\"c-lightbox__prev\"></a><a class=\"c-lightbox__next\"></a>');\r\n\r\n lightbox.querySelector('.c-lightbox__prev').addEventListener('click', function() {\r\n const lightboxActive = lightbox.querySelector('.active');\r\n const prevImage = lightbox.querySelector('[data-slide=\"' + (parseInt(lightboxActive.dataset.slide) - 1) + '\"]');\r\n if(prevImage != null) {\r\n lightboxActive.classList.remove('active');\r\n prevImage.classList.add('active');\r\n }\r\n });\r\n\r\n lightbox.querySelector('.c-lightbox__next').addEventListener('click', function() {\r\n const lightboxActive = lightbox.querySelector('.active');\r\n const nextImage = lightbox.querySelector('[data-slide=\"' + (parseInt(lightboxActive.dataset.slide) + 1) + '\"]');\r\n if(nextImage != null) {\r\n lightboxActive.classList.remove('active');\r\n nextImage.classList.add('active');\r\n }\r\n });\r\n\r\n lightbox.addEventListener('click', function(e) {\r\n if (e.target !== e.currentTarget) {\r\n return;\r\n } else {\r\n lightbox.remove();\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default Gallery;\r\n", "export function shuffle(array) {\r\n const arr = [...array];\r\n for (let i = arr.length - 1; i > 0; i--) {\r\n let j = Math.floor(Math.random() * (i + 1));\r\n [arr[i], arr[j]] = [arr[j], arr[i]];\r\n }\r\n\r\n return arr;\r\n}\r\n\r\nexport function userPrefersReducedMotion() {\r\n const QUERY = '(prefers-reduced-motion: no-preference)';\r\n const mediaQueryList = window.matchMedia(QUERY);\r\n const prefersReducedMotion = !mediaQueryList.matches;\r\n return prefersReducedMotion;\r\n}\r\n\r\nexport const debounce = (func, limit) => {\r\n let wait = false; \r\n return () => {\r\n if (wait) return;\r\n func();\r\n wait = true;\r\n setTimeout(() => wait = false, limit);\r\n }\r\n}\r\n\r\nexport const lerp = (x, y, a) => x * (1 - a) + y * a;\r\nexport const clamp = (a, min = 0, max = 1) => Math.min(max, Math.max(min, a));\r\nexport const invlerp = (x, y, a) => clamp((a - x) / (y - x));\r\nexport const range = (x1, y1, x2, y2, a) => lerp(x2, y2, invlerp(x1, y1, a));\r\n", "import { range, shuffle, userPrefersReducedMotion } from './utilities';\r\n\r\nfunction HeroPattern() {\r\n let time = 0;\r\n\r\n const c = document.querySelector('.c-hero__canvas');\r\n if (!c) return;\r\n const ctx = c.getContext(\"2d\");\r\n \r\n const sineColour = \"rgb(19,170,19)\";\r\n const reduceMotion = userPrefersReducedMotion();\r\n\r\n const crossGap = 147;\r\n const minimumOpacity = 0;\r\n const maximumOpacity = 0.5;\r\n const crossSpeed = 0.25;\r\n\r\n let width;\r\n let height;\r\n let across;\r\n let down;\r\n let crosses = [];\r\n let totalPoints;\r\n\r\n function draw() {\r\n // Sine wave\r\n time = time + 0.005;\r\n \r\n ctx.clearRect(0, 0, c.width, c.height);\r\n ctx.beginPath();\r\n \r\n for(let cnt = c.width; cnt > 0; cnt--) {\r\n ctx.lineTo(cnt, c.height * 0.5 - (Math.cos(time + cnt / 5 * 0.03) * (height * 0.3) ));\r\n }\r\n \r\n ctx.lineWidth = 0.5;\r\n ctx.strokeStyle = sineColour;\r\n ctx.stroke();\r\n \r\n // Crosses\r\n crosses.forEach(cross => {\r\n drawCross(cross.x, cross.y, range(0, crosses.length, minimumOpacity, maximumOpacity, cross.counter));\r\n \r\n cross.counter += cross.direction;\r\n if (cross.counter >= crosses.length) cross.direction = -1 * crossSpeed;\r\n if (cross.counter < 0) cross.direction = crossSpeed;\r\n })\r\n \r\n if (!reduceMotion) {\r\n window.requestAnimationFrame(draw);\r\n }\r\n }\r\n \r\n function onResize() {\r\n width = c.scrollWidth;\r\n height = c.scrollHeight;\r\n \r\n ctx.canvas.width = width;\r\n ctx.canvas.height = height;\r\n \r\n across = Math.ceil(width / crossGap);\r\n down = Math.ceil(height / crossGap);\r\n \r\n totalPoints = (across + 1) * (down + 1);\r\n const ids = shuffle(Array.from({ length: totalPoints }, (_, i) => (i)))\r\n crosses = [];\r\n for(let x = 0; x <= across; x++) {\r\n for(let y = 0; y <= down; y++) {\r\n crosses.push({\r\n counter: ids.shift(),\r\n direction: Math.random() > 0.5 ? crossSpeed : -1 * crossSpeed,\r\n x: crossGap * (x + 1) - crossGap / 1,\r\n y: crossGap * (y + 1) - crossGap / 2\r\n });\r\n }\r\n }\r\n }\r\n \r\n function drawCross(x, y, opacity) {\r\n ctx.beginPath();\r\n ctx.moveTo(x - 14, y);\r\n ctx.lineTo(x + 14, y);\r\n ctx.strokeStyle = `rgba(255, 255, 255, ${opacity}`;\r\n ctx.moveTo(x, y - 14);\r\n ctx.lineTo(x, y + 14);\r\n ctx.stroke();\r\n }\r\n\r\n window.addEventListener('resize', onResize);\r\n onResize();\r\n draw();\r\n}\r\n\r\nexport default HeroPattern;\r\n", "function HeroVideo() {\r\n document.addEventListener(\"DOMContentLoaded\", () => {\r\n const videoBackground = document.getElementById('videoBackground');\r\n if(typeof(videoBackground) != 'undefined' && videoBackground != null) {\r\n const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\r\n if(!reducedMotion || reducedMotion.matches) {\r\n videoBackground.pause();\r\n }\r\n \r\n const lightboxTrigger = document.getElementById('playVideo');\r\n const lightboxContainer = document.getElementById('lightboxVideo');\r\n const lightboxVideo = lightboxContainer.querySelector('.c-lightbox__video');\r\n\r\n lightboxTrigger.addEventListener('click', e => {\r\n videoBackground.pause();\r\n lightboxContainer.classList.remove('u-hidden');\r\n checkVideos();\r\n });\r\n \r\n lightboxContainer.addEventListener('click', (e) => {\r\n if (!e.target.classList.contains('c-lightbox__video')) {\r\n videoBackground.setAttribute('autoplay','');\r\n lightboxContainer.classList.add('u-hidden');\r\n checkVideos();\r\n }\r\n });\r\n window.addEventListener('keydown', function(e) {\r\n if (e.key == \"Escape\") {\r\n videoBackground.setAttribute('autoplay','');\r\n lightboxContainer.classList.add('u-hidden');\r\n checkVideos();\r\n }\r\n });\r\n\r\n function checkVideos() {\r\n if(lightboxContainer.classList.contains('u-hidden')) {\r\n if (videoBackground.paused) {\r\n videoBackground.play();\r\n }\r\n if (!lightboxVideo.paused) {\r\n lightboxVideo.pause();\r\n }\r\n } else {\r\n if (!videoBackground.paused) {\r\n videoBackground.pause();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport default HeroVideo;", "// Function to initialize tooltip behavior\r\nfunction HotspotImage() {\r\n // Add delay for Tridion JavaScript created hotspot images\r\n setTimeout(function () {\r\n // Select all elements that trigger tooltips\r\n const tooltips = document.querySelectorAll('.c-hotspot-image__button');\r\n\r\n // Add event listeners for each tooltip button\r\n tooltips.forEach((button) => {\r\n button.addEventListener('click', handleTooltipToggle);\r\n });\r\n\r\n // Add event listener for Escape key press\r\n document.addEventListener('keydown', handleKeyDown);\r\n\r\n // Add event listener for click outside tooltip\r\n document.addEventListener('click', handleClickOutside);\r\n }, 2000);\r\n}\r\n\r\n// Function to handle the tooltip toggle\r\nfunction handleTooltipToggle(event) {\r\n // Prevent default action if needed\r\n event.preventDefault();\r\n\r\n const button = event.currentTarget;\r\n const tooltipId = button.getAttribute('aria-controls');\r\n const tooltip = document.getElementById(tooltipId);\r\n\r\n if (tooltip.classList.contains('c-hotspot-image__tooltip--open')) {\r\n closeTooltip(button, tooltip);\r\n } else {\r\n openTooltip(button, tooltip);\r\n }\r\n}\r\n\r\n// Function to open a tooltip\r\nfunction openTooltip(button, tooltip) {\r\n // Add active class and make tooltip visible\r\n tooltip.classList.add('c-hotspot-image__tooltip--open');\r\n tooltip.setAttribute('aria-hidden', 'false');\r\n button.setAttribute('aria-expanded', 'true');\r\n\r\n // Add event listener for click outside\r\n document.addEventListener('click', handleClickOutside);\r\n}\r\n\r\n// Function to close a tooltip\r\nfunction closeTooltip(button, tooltip) {\r\n // Remove active class and hide tooltip\r\n tooltip.classList.remove('c-hotspot-image__tooltip--open');\r\n tooltip.setAttribute('aria-hidden', 'true');\r\n button.setAttribute('aria-expanded', 'false');\r\n\r\n // Remove event listener for click outside\r\n document.removeEventListener('click', handleClickOutside);\r\n}\r\n\r\n// Function to handle Escape key press\r\nfunction handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n const activeTooltip = document.querySelector(\r\n '.c-hotspot-image__tooltip--open'\r\n );\r\n if (activeTooltip) {\r\n const button = document.querySelector(\r\n `[aria-controls=\"${activeTooltip.id}\"]`\r\n );\r\n closeTooltip(button, activeTooltip);\r\n }\r\n }\r\n}\r\n\r\n// Function to handle click outside the tooltip\r\nfunction handleClickOutside(event) {\r\n const activeTooltip = document.querySelector(\r\n '.c-hotspot-image__tooltip--open'\r\n );\r\n if (\r\n activeTooltip &&\r\n !activeTooltip.contains(event.target) &&\r\n !event.target.closest('.c-hotspot-image__button')\r\n ) {\r\n const button = document.querySelector(\r\n `[aria-controls=\"${activeTooltip.id}\"]`\r\n );\r\n closeTooltip(button, activeTooltip);\r\n }\r\n}\r\n\r\nexport default HotspotImage;\r\n", "function InternalNav() {\r\n const internalNav = document.querySelector('.c-internal-nav--sticky');\r\n\r\n if (!internalNav) {\r\n return;\r\n }\r\n\r\n const observerOptions = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: 1.0\r\n };\r\n\r\n const intersectionCallback = (entries, observer) => {\r\n const isIntersecting = entries[0].isIntersecting;\r\n internalNav.classList.toggle('c-internal-nav--stuck', !isIntersecting);\r\n };\r\n\r\n const observer = new IntersectionObserver(intersectionCallback, observerOptions);\r\n observer.observe(internalNav);\r\n\r\n let internalNavHeight = internalNav.offsetHeight;\r\n\r\n const updateInternalNavHeight = () => {\r\n internalNavHeight = internalNav.offsetHeight;\r\n const anchors = Array.from(internalNav.querySelectorAll('a'));\r\n anchors.forEach(anchor => {\r\n const id = anchor.getAttribute('href').replace('#', '');\r\n const target = document.getElementById(id);\r\n if (target) {\r\n target.style.scrollMarginTop = `${internalNavHeight}px`;\r\n }\r\n });\r\n };\r\n\r\n window.addEventListener('resize', updateInternalNavHeight);\r\n\r\n updateInternalNavHeight();\r\n}\r\n\r\nexport default InternalNav;", "// Function to initialize off-canvas behavior\r\nfunction OffCanvas() {\r\n // Select all elements that trigger off-canvas behavior\r\n const toggles = document.querySelectorAll(\".c-off-canvas__toggle\");\r\n\r\n // Iterate through each toggle element\r\n if (toggles.length) {\r\n toggles.forEach(toggle => {\r\n // Determine initial visibility state and handle click event\r\n handleOffCanvas(toggle, isVisible(toggle));\r\n toggle.addEventListener('click', () => toggleOffCanvas(toggle));\r\n });\r\n\r\n // Add event listener for scroll events to check visibility\r\n // window.addEventListener('scroll', () => {\r\n // toggles.forEach(toggle => {\r\n // handleOffCanvas(toggle, isVisible(toggle));\r\n // });\r\n // });\r\n\r\n // Add event listener for resize events to check visibility\r\n window.addEventListener('resize', () => {\r\n toggles.forEach(toggle => {\r\n handleOffCanvas(toggle, isVisible(toggle));\r\n });\r\n });\r\n }\r\n}\r\n\r\n// Function to check if an element is currently visible on the page\r\nfunction isVisible(element) {\r\n // Check element's styles for visibility\r\n const style = window.getComputedStyle(element);\r\n return (\r\n style.display !== 'none' &&\r\n style.visibility !== 'hidden'\r\n );\r\n}\r\n\r\n// Function to handle off-canvas behavior based on visibility\r\nfunction handleOffCanvas(toggle, isVisible) {\r\n const target = document.getElementById(toggle.getAttribute('data-target'));\r\n if (isVisible === true) {\r\n createOffCanvas(target);\r\n } else {\r\n removeOffCanvas(target);\r\n }\r\n}\r\n\r\n// Function to create off canvas\r\nfunction createOffCanvas(target) {\r\n // Add necessary classes and attributes for off-canvas display\r\n target.classList.add('c-off-canvas');\r\n target.setAttribute('tabindex', '-1');\r\n target.setAttribute('aria-hidden', 'true');\r\n \r\n // Extract specific sections of the off-canvas content\r\n const targetHeader = target.querySelector('[data-off-canvas=\"header\"]');\r\n const targetMain = target.querySelector('[data-off-canvas=\"main\"]');\r\n const targetFooter = target.querySelector('[data-off-canvas=\"footer\"]');\r\n\r\n // Extract content from the sections\r\n const targetHeaderContent = targetHeader !== null ? targetHeader.outerHTML : '';\r\n const targetMainContent = targetMain !== null ? targetMain.outerHTML : '';\r\n const targetFooterContent = targetFooter !== null ? targetFooter.outerHTML : '';\r\n\r\n // Replace the target's content with off-canvas structure\r\n target.innerHTML = `\r\n <div class=\"c-off-canvas__backdrop\" role=\"presentation\"></div>\r\n <div class=\"c-off-canvas__content\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"offCanvasHeader\">\r\n <header id=\"offCanvasHeader\" class=\"c-off-canvas__header\">${targetHeaderContent}</header>\r\n <main class=\"c-off-canvas__main\">${targetMainContent}</main>\r\n <footer class=\"c-off-canvas__footer\">\r\n ${targetFooterContent}\r\n <button class=\"mp c-twi c-twi--left c-off-canvas__close\" data-off-canvas-close=\"true\" onclick=\"return false\">\r\n <span>Cancel</span>\r\n <svg role=\"img\" aria-hidden=\"true\" focusable=\"false\" class=\"mp c-icon c-icon--cross\">\r\n <use xlink:href=\"/static/svg/sprite.svg#cross\"></use>\r\n </svg>\r\n </button>\r\n </footer>\r\n </div>\r\n `;\r\n}\r\n\r\n// Function to remove off-canvas layout\r\nfunction removeOffCanvas(target) {\r\n // Remove classes and attributes for off-canvas display\r\n target.classList.remove('c-off-canvas', 'c-off-canvas--active');\r\n target.removeAttribute('tabindex');\r\n target.removeAttribute('aria-hidden');\r\n\r\n // Remove backdrop element if present\r\n const targetBackdrop = target.querySelector('.c-off-canvas__backdrop');\r\n if (targetBackdrop) {\r\n targetBackdrop.remove();\r\n }\r\n\r\n // Restore original content by removing off-canvas structure\r\n const targetContent = target.querySelector('.c-off-canvas__content');\r\n if (targetContent) {\r\n while (targetContent.firstChild) {\r\n target.insertBefore(targetContent.firstChild, targetContent);\r\n }\r\n target.removeChild(targetContent);\r\n }\r\n\r\n const targetHeader = target.querySelector('.c-off-canvas__header');\r\n if (targetHeader) {\r\n while (targetHeader.firstChild) {\r\n target.insertBefore(targetHeader.firstChild, targetHeader);\r\n }\r\n target.removeChild(targetHeader);\r\n }\r\n\r\n const targetMain = target.querySelector('.c-off-canvas__main');\r\n if (targetMain) {\r\n while (targetMain.firstChild) {\r\n target.insertBefore(targetMain.firstChild, targetMain);\r\n }\r\n target.removeChild(targetMain);\r\n }\r\n\r\n const targetFooter = target.querySelector('.c-off-canvas__footer');\r\n if (targetFooter) {\r\n while (targetFooter.firstChild) {\r\n target.insertBefore(targetFooter.firstChild, targetFooter);\r\n }\r\n target.removeChild(targetFooter);\r\n }\r\n \r\n // Remove close button element if present\r\n const targetClose = target.querySelector('.c-off-canvas__close');\r\n if (targetClose) {\r\n targetClose.remove();\r\n }\r\n}\r\n\r\n// Function to toggle off-canvas visibility\r\nfunction toggleOffCanvas(toggle) {\r\n const target = document.getElementById(toggle.getAttribute('data-target'));\r\n\r\n // Check if the target is already open or closed\r\n if (!target.classList.contains('c-off-canvas--active')) {\r\n openOffCanvas(toggle, target);\r\n } else if (target.classList.contains('c-off-canvas--active')) {\r\n closeOffCanvas(target);\r\n }\r\n}\r\n\r\nfunction openOffCanvas(toggle, target) {\r\n // Add classes and attributes for open off-canvas\r\n toggle.setAttribute('aria-expanded', 'true');\r\n target.classList.add('c-off-canvas--active');\r\n target.setAttribute('aria-hidden', 'false');\r\n\r\n // Add event listener for backdrop clicks\r\n const offCanvasBackdrop = target.querySelector('.c-off-canvas__backdrop');\r\n if(offCanvasBackdrop) {\r\n offCanvasBackdrop.addEventListener('click', handleBackdropClick);\r\n }\r\n\r\n // Add event listener forclose button clicks\r\n const offCanvasCloseElements = target.querySelectorAll('[data-off-canvas-close=\"true\"]');\r\n if (offCanvasCloseElements.length > 0) {\r\n offCanvasCloseElements.forEach((offCanvasClose) => {\r\n offCanvasClose.addEventListener('click', handleCloseClick);\r\n });\r\n }\r\n\r\n // Add event listener for Escape key press\r\n document.addEventListener('keydown', handleKeyDown, { once: true });\r\n\r\n // Adjust body overflow to prevent scrolling\r\n document.body.style.overflowY = 'hidden';\r\n\r\n // Close other open off-canvas elements\r\n const allOffCanvasElementsExceptCurrent = Array.from(document.querySelectorAll('.c-off-canvas')).filter(offCanvas => offCanvas !== target);\r\n if (allOffCanvasElementsExceptCurrent.length > 0) {\r\n allOffCanvasElementsExceptCurrent.forEach((offCanvas) => {\r\n closeOffCanvas(offCanvas);\r\n });\r\n }\r\n}\r\n\r\n// Function to close an off-canvas\r\nfunction closeOffCanvas(target) {\r\n // Remove classes and attributes for open off-canvas\r\n document.querySelector('[data-target=\"' + target.id + '\"').setAttribute('aria-expanded', 'false');\r\n target.classList.remove('c-off-canvas--active');\r\n target.setAttribute('aria-hidden', 'true');\r\n\r\n // Restore body overflow\r\n document.body.style.overflowY = '';\r\n}\r\n\r\n// Function to handle backdrop click\r\nfunction handleBackdropClick() {\r\n const offCanvas = this.closest('.c-off-canvas');\r\n closeOffCanvas(offCanvas);\r\n}\r\n\r\n// Function to handle Escape key press\r\nfunction handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n const activeOffCanvas = document.querySelector('.c-off-canvas--active');\r\n if (activeOffCanvas) {\r\n closeOffCanvas(activeOffCanvas);\r\n }\r\n }\r\n}\r\n\r\n// Function to handle close button click\r\nfunction handleCloseClick() {\r\n const offCanvas = this.closest('.c-off-canvas');\r\n closeOffCanvas(offCanvas);\r\n}\r\n\r\nexport default OffCanvas;", "const ResponsiveTable = () => {\r\n const tables = Array.from(document.querySelectorAll('.c-table--responsive'));\r\n tables.forEach(createResponsiveTable);\r\n\r\n /**\r\n * Create responsive table headers for large tables\r\n * @param {HTMLTableElement} table\r\n */\r\n function createResponsiveTable(table) {\r\n const headers = table.querySelectorAll('thead > :first-child th');\r\n const breakPoint = Number(table.getAttribute('data-columns')) || 2\r\n \r\n if (headers.length < breakPoint) {\r\n table.classList.remove('c-table--responsive');\r\n return;\r\n };\r\n\r\n Array.from(table.querySelectorAll('tbody tr')).forEach((row) => {\r\n Array.from(headers)\r\n .map((x) => x.textContent)\r\n .forEach((header, index) => {\r\n if (row.children[index]) {\r\n row.children[index].setAttribute('data-responsive-title', header);\r\n }\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport default ResponsiveTable;\r\n", "import { debounce } from './utilities';\r\n\r\nfunction ScrollbarWidth() {\r\n setScrollbarWidth();\r\n window.addEventListener('resize', debounce(setScrollbarWidth, 250));\r\n}\r\n\r\nfunction setScrollbarWidth() {\r\n document.documentElement.style.setProperty(\r\n '--scrollbarWidth', \r\n window.innerWidth - document.body.clientWidth + 'px'\r\n );\r\n}\r\n\r\nexport default ScrollbarWidth;", "function ScrollSpy() {\r\n const internalNav = document.querySelector('.c-internal-nav--sticky');\r\n const internalNavHeight = internalNav ? internalNav.offsetHeight : 0;\r\n\r\n const spies = Array.from(document.querySelectorAll('.c-scroll-spy'));\r\n spies.forEach(spy => {\r\n setup(spy, internalNavHeight);\r\n });\r\n}\r\n\r\nfunction setup(element, internalNavHeight) {\r\n const anchors = Array.from(element.querySelectorAll('a'));\r\n const observer = new IntersectionObserver(observation(anchors));\r\n \r\n anchors.forEach(anchor => {\r\n const id = anchor.getAttribute('href').replace('#', '');\r\n const target = document.getElementById(id);\r\n if (!target) return;\r\n\r\n observer.observe(target);\r\n });\r\n\r\n const currentTop = parseFloat(window.getComputedStyle(element).top);\r\n element.style.top = `${currentTop + internalNavHeight}px`;\r\n}\r\n\r\n/**\r\n * @param {Array<HTMLAnchorElement>} results \r\n * @return {Array<IntersectionObserverEntry>}\r\n */\r\nfunction observation(anchors) {\r\n return (results) => {\r\n const firstObservation = results.find(x => x.isIntersecting);\r\n\r\n if (firstObservation) {\r\n anchors.forEach(x => {\r\n x.classList.toggle(\r\n 'c-scroll-spy-active',\r\n x.getAttribute('href') === '#' + firstObservation.target.id\r\n )\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport default ScrollSpy;\r\n", "let resizeTimeout;\r\n\r\nfunction Tabs() {\r\n const tabs = Array.from(\r\n document.querySelectorAll(\".c-tabs--anchor, .c-tabs--mobile-accordion\"),\r\n );\r\n tabs.forEach((parent) => {\r\n setupTabs(parent);\r\n\r\n window.addEventListener(\"resize\", () => {\r\n clearTimeout(resizeTimeout);\r\n resizeTimeout = setTimeout(() => handleResize(parent), 100);\r\n });\r\n });\r\n}\r\n\r\nfunction setupTabs(parent) {\r\n const controls = Array.from(parent.querySelectorAll(\".c-tabs__control\"));\r\n const contents = Array.from(parent.querySelectorAll(\".c-tab\"));\r\n const persist = parent.dataset.persist === \"true\";\r\n\r\n if (!controls.length || !contents.length) return;\r\n\r\n controls.forEach((control, index) => {\r\n const content = contents[index];\r\n if (!content) return;\r\n\r\n control.setAttribute(\"role\", \"tab\");\r\n control.setAttribute(\r\n \"aria-selected\",\r\n control.classList.contains(\"c-tabs__control--active\") ? \"true\" : \"false\",\r\n );\r\n control.setAttribute(\"aria-controls\", content.id);\r\n control.id ||= `tab-${index + 1}-tab`;\r\n\r\n content.setAttribute(\"role\", \"tabpanel\");\r\n content.setAttribute(\"aria-labelledby\", control.id);\r\n content.hidden = !content.classList.contains(\"c-tab--active\");\r\n\r\n control.addEventListener(\"keydown\", (e) => handleKeydown(e, controls));\r\n });\r\n\r\n handleResize(parent);\r\n\r\n controls.forEach((control) => {\r\n control.addEventListener(\r\n \"click\",\r\n controlClick(controls, contents, persist),\r\n );\r\n });\r\n\r\n if (persist && window.location.hash) {\r\n const control = parent.querySelector(\r\n '[href=\"' + window.location.hash + '\"]',\r\n );\r\n if (control) control.dispatchEvent(new Event(\"click\"));\r\n }\r\n}\r\n\r\nfunction handleKeydown(event, controls) {\r\n const key = event.key;\r\n const current = event.currentTarget;\r\n let index = controls.indexOf(current);\r\n\r\n if ([\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"].includes(key)) {\r\n event.preventDefault();\r\n\r\n if (key === \"ArrowLeft\")\r\n index = (index - 1 + controls.length) % controls.length;\r\n if (key === \"ArrowRight\") index = (index + 1) % controls.length;\r\n if (key === \"Home\") index = 0;\r\n if (key === \"End\") index = controls.length - 1;\r\n\r\n controls[index].focus();\r\n controls[index].click();\r\n }\r\n}\r\n\r\nfunction handleResize(parent) {\r\n const isAccordion = parent.classList.contains(\"c-tabs--mobile-accordion\");\r\n const isMobile = window.innerWidth <= 880;\r\n\r\n if (parent.dataset.viewMode === (isMobile ? \"accordion\" : \"tabs\")) {\r\n return;\r\n }\r\n\r\n parent.dataset.viewMode = isMobile ? \"accordion\" : \"tabs\";\r\n\r\n if (isAccordion && isMobile) {\r\n restructureForAccordion(parent);\r\n } else if (isAccordion && !isMobile) {\r\n restoreToTabs(parent);\r\n }\r\n}\r\n\r\nfunction restructureForAccordion(parent) {\r\n const controlElements = Array.from(\r\n parent.querySelectorAll(\".c-tabs__control\"),\r\n );\r\n const tabElements = Array.from(parent.querySelectorAll(\".c-tab\"));\r\n\r\n const controlsElement = parent.querySelector(\".c-tabs__controls\");\r\n if (controlsElement) {\r\n controlsElement.remove();\r\n }\r\n\r\n controlElements.forEach((control, index) => {\r\n const content = tabElements[index];\r\n if (content) {\r\n const tabWrapper = document.createElement(\"div\");\r\n tabWrapper.classList.add(\"c-tabs__content\");\r\n\r\n tabWrapper.appendChild(control);\r\n tabWrapper.appendChild(content);\r\n\r\n parent.appendChild(tabWrapper);\r\n }\r\n });\r\n}\r\n\r\nfunction restoreToTabs(parent) {\r\n const controls = Array.from(parent.querySelectorAll(\".c-tabs__control\"));\r\n const contents = Array.from(parent.querySelectorAll(\".c-tab\"));\r\n\r\n if (!controls.length || !contents.length) return;\r\n\r\n parent.innerHTML = `\r\n <nav class=\"c-tabs__controls-wrapper\">\r\n <div class=\"c-tabs__controls\">\r\n <ul class=\"c-tabs__controls-list\">\r\n ${controls.map((control) => `<li>${control.outerHTML}</li>`).join(\"\")}\r\n </ul>\r\n </div>\r\n </nav>\r\n <div class=\"c-tabs__content\">\r\n ${contents.map((content) => content.outerHTML).join(\"\")}\r\n </div>\r\n `;\r\n\r\n setTimeout(() => setupTabs(parent), 0);\r\n}\r\n\r\nfunction scrollToTabsTop(parent) {\r\n if (!parent) return;\r\n const rect = parent.getBoundingClientRect();\r\n const offset = window.pageYOffset + rect.top;\r\n\r\n const stickyOffset = parent.dataset.stickyOffset\r\n ? parseInt(parent.dataset.stickyOffset, 10)\r\n : 0;\r\n\r\n window.scrollTo({\r\n top: offset - stickyOffset,\r\n behavior: \"smooth\",\r\n });\r\n}\r\n\r\nfunction controlClick(controls, contents, persist) {\r\n return (event) => {\r\n const control = event.currentTarget;\r\n const contentId = control.getAttribute(\"href\")?.replace(\"#\", \"\");\r\n const content = contents.find((x) => x.id === contentId);\r\n\r\n if (!content) return true;\r\n\r\n event.preventDefault();\r\n\r\n if (persist) {\r\n history.pushState(null, null, control.getAttribute(\"href\"));\r\n }\r\n\r\n const isMobile = window.innerWidth <= 880;\r\n\r\n controls.forEach((c) => {\r\n const isActive = c === control;\r\n c.classList.toggle(\"c-tabs__control--active\", isActive);\r\n c.setAttribute(\"aria-selected\", isActive ? \"true\" : \"false\");\r\n });\r\n\r\n contents.forEach((c) => {\r\n const isActive = c === content;\r\n c.classList.toggle(\"c-tab--active\", isActive);\r\n c.hidden = !isActive;\r\n });\r\n\r\n scrollToTabsTop(\r\n control.closest(\".c-tabs--anchor, .c-tabs--mobile-accordion\"),\r\n );\r\n\r\n if (control.scrollIntoView) {\r\n control.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"nearest\",\r\n inline: \"nearest\",\r\n });\r\n }\r\n };\r\n}\r\n\r\nexport default Tabs;\r\n", "import Accordion from \"./imports/accordion.js\";\r\nimport Carousel from \"./imports/carousel.js\";\r\nimport ClearForm from \"./imports/clear-form.js\";\r\nimport Comparison from \"./imports/comparison.js\";\r\nimport Facet from \"./imports/facet.js\";\r\nimport Gallery from \"./imports/gallery.js\";\r\nimport HeroPattern from \"./imports/hero-pattern.js\";\r\nimport HeroVideo from \"./imports/hero-video.js\";\r\nimport HotspotImage from \"./imports/hotspot-image.js\";\r\nimport InternalNav from \"./imports/internal-nav.js\";\r\nimport OffCanvas from \"./imports/off-canvas.js\";\r\nimport ResponsiveTable from \"./imports/responsive-table.js\";\r\nimport ScrollbarWidth from \"./imports/scrollbar-width.js\";\r\nimport ScrollSpy from \"./imports/scroll-spy.js\";\r\nimport Tabs from \"./imports/tabs.js\";\r\n\r\nexport default function initializeApp() {\r\n // Polyfills\r\n if (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = Array.prototype.forEach;\r\n }\r\n if (window.HTMLCollection && !HTMLCollection.prototype.forEach) {\r\n HTMLCollection.prototype.forEach = Array.prototype.forEach;\r\n }\r\n\r\n // Initialize components\r\n Accordion();\r\n Carousel();\r\n ClearForm();\r\n Comparison();\r\n Facet();\r\n Gallery();\r\n HeroPattern();\r\n HeroVideo();\r\n HotspotImage();\r\n InternalNav();\r\n OffCanvas();\r\n ResponsiveTable();\r\n ScrollbarWidth();\r\n ScrollSpy();\r\n Tabs();\r\n}\r\n\r\nif (typeof window !== \"undefined\") {\r\n initializeApp();\r\n}\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["titleClick", "observer", "isVisible", "handleKeyDown"]
|
|
7
7
|
}
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
<symbol id="file" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></symbol>
|
|
18
18
|
|
|
19
|
+
<symbol xmlns="http://www.w3.org/2000/svg" id="home" viewBox="0 0 24 24" fill="none"><path stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M2 10.8887L12 1.88867L22 10.8887V11.8887H20V19.8887C20 20.4191 19.7893 20.9278 19.4142 21.3029C19.0391 21.678 18.5304 21.8887 18 21.8887H14.5V14.8887H9.5V21.8887H6C5.46957 21.8887 4.96086 21.678 4.58579 21.3029C4.21071 20.9278 4 20.4191 4 19.8887V11.8887H2V10.8887Z"/></symbol>
|
|
20
|
+
|
|
19
21
|
<symbol id="info" viewBox="0 0 24 24" fill="none"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 16v-4m0-4h.01M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12s4.477 10 10 10 10-4.477 10-10z"/></symbol>
|
|
20
22
|
|
|
21
23
|
<symbol id="instagram" viewBox="0 0 24 24" fill="currentColor"><path d="M12.0025 6.35828C8.88098 6.35828 6.36319 8.87607 6.36319 11.9975C6.36319 15.119 8.88098 17.6368 12.0025 17.6368C15.1239 17.6368 17.6417 15.119 17.6417 11.9975C17.6417 8.87607 15.1239 6.35828 12.0025 6.35828ZM12.0025 15.6638C9.98528 15.6638 8.3362 14.0196 8.3362 11.9975C8.3362 9.97546 9.98037 8.33129 12.0025 8.33129C14.0245 8.33129 15.6687 9.97546 15.6687 11.9975C15.6687 14.0196 14.0196 15.6638 12.0025 15.6638ZM19.1877 6.12761C19.1877 6.8589 18.5988 7.44295 17.8724 7.44295C17.1411 7.44295 16.5571 6.85399 16.5571 6.12761C16.5571 5.40123 17.146 4.81227 17.8724 4.81227C18.5988 4.81227 19.1877 5.40123 19.1877 6.12761ZM22.9227 7.46258C22.8393 5.70061 22.4368 4.13988 21.146 2.85399C19.8601 1.5681 18.2994 1.16564 16.5374 1.0773C14.7215 0.974233 9.27853 0.974233 7.46258 1.0773C5.70552 1.16074 4.14479 1.56319 2.85399 2.84908C1.56319 4.13497 1.16564 5.69571 1.0773 7.45767C0.974233 9.27362 0.974233 14.7166 1.0773 16.5325C1.16074 18.2945 1.56319 19.8552 2.85399 21.1411C4.14479 22.427 5.70061 22.8294 7.46258 22.9178C9.27853 23.0209 14.7215 23.0209 16.5374 22.9178C18.2994 22.8344 19.8601 22.4319 21.146 21.1411C22.4319 19.8552 22.8344 18.2945 22.9227 16.5325C23.0258 14.7166 23.0258 9.27853 22.9227 7.46258ZM20.5767 18.481C20.1939 19.4429 19.4528 20.184 18.4859 20.5718C17.038 21.146 13.6025 21.0135 12.0025 21.0135C10.4025 21.0135 6.96196 21.1411 5.51902 20.5718C4.55705 20.189 3.81595 19.4479 3.42822 18.481C2.85399 17.0331 2.9865 13.5975 2.9865 11.9975C2.9865 10.3975 2.8589 6.95706 3.42822 5.51411C3.81104 4.55215 4.55215 3.81104 5.51902 3.42331C6.96687 2.84908 10.4025 2.9816 12.0025 2.9816C13.6025 2.9816 17.0429 2.85399 18.4859 3.42331C19.4479 3.80613 20.189 4.54724 20.5767 5.51411C21.1509 6.96196 21.0184 10.3975 21.0184 11.9975C21.0184 13.5975 21.1509 17.038 20.5767 18.481Z" /></symbol>
|