{"version":3,"file":"sections-references.00065a8983a963f820d1.js","mappings":"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","sources":["webpack://adjusters/./src/scripts/common/ajax.js","webpack://adjusters/./src/scripts/common/util.js","webpack://adjusters/./src/scripts/components/modal.js","webpack://adjusters/./src/scripts/react/common/components/InlineSpinner.js","webpack://adjusters/./src/scripts/react/common/components/Spinner.js","webpack://adjusters/./src/scripts/react/common/hooks/useIntersectionObserver.js","webpack://adjusters/./src/scripts/react/references/components/Reference.js","webpack://adjusters/./src/scripts/react/references/components/HideColumnButton.js","webpack://adjusters/./src/scripts/react/references/components/References.js","webpack://adjusters/./src/scripts/react/references/components/Testimonial.js","webpack://adjusters/./src/scripts/react/references/components/Testimonials.js","webpack://adjusters/./src/scripts/react/references/components/ShowColumnButton.js","webpack://adjusters/./src/scripts/react/references/components/App.js","webpack://adjusters/./src/sections/references.js"],"sourcesContent":["import wretch from 'wretch'\n\nwretch.options({\n headers: { 'X-Requested-With': 'XMLHttpRequest' },\n})\n\nexport default wretch()\n","export const isTouchDevice = 'ontouchstart' in document.documentElement\n\nexport const isIos =\n /iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\n\nexport const createUrl = (base, formData = {}, append = false) => {\n let data = formData\n\n if (formData instanceof FormData === false) {\n data = new FormData()\n\n for (const [key, value] of Object.entries(formData)) {\n data.append(key, value)\n }\n }\n\n if (typeof base === 'object') {\n const baseUrl = new URL(base)\n\n if (append) {\n const params = baseUrl.searchParams\n\n for (const [key, value] of data) {\n params.set(key, value)\n }\n\n return baseUrl\n } else {\n const params = new URLSearchParams(data)\n\n return new URL(`${base}?${params}`)\n }\n }\n\n if (typeof base === 'string') {\n const params = new URLSearchParams(formData)\n const url = new URL(`${base}?${params}`)\n\n return url\n }\n}\n\nexport const geolocate = (success, error) => {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(success, error, { maximumAge: 0 })\n } else {\n return false\n }\n}\n\nexport const trackGoogleAnalytics = (event) => {\n if (window.dataLayer) {\n dataLayer.push(event)\n }\n}\n","import '@styles/components/modal.css'\nimport ajax from '@common/ajax'\nimport { on, off } from 'delegated-events'\nimport A11yDialog from 'a11y-dialog'\n\nconst generateTemplate = (id, useDefaultClose = true, title = false) => {\n const role = useDefaultClose ? 'dialog' : 'alertdialog'\n const labeledBy = title ? 'aria-labelledby=\"modal-title\"' : ''\n\n const html = `\n
\n
\n\n ${\n useDefaultClose === true\n ? ''\n : ''\n }\n\n
\n \n \n \n
\n
\n `\n\n return html\n}\n\nconst populateModal = async (opts = {}, modalEl) => {\n const type = opts.type\n const title = opts.title ?? ''\n const url = opts.url\n\n let modalContent = ''\n\n if (type === 'video') {\n modalContent = `\n
\n

Watch ${title}

\n
\n \n\n \n
\n
\n `\n\n modalEl.querySelector('.modal-container').innerHTML = modalContent\n }\n\n if (type === 'letter') {\n modalContent = await ajax.get(url).text()\n\n modalEl.querySelector('.modal-container').innerHTML = modalContent\n\n const { default: component } = await import(\n /* webpackChunkName: \"components-modal-slider\" */ '@scripts/components/modal-slider'\n )\n\n component.init(modalEl)\n }\n\n if (type === 'content') {\n modalContent = await ajax.get(url).text()\n\n modalEl.querySelector('.modal-container').innerHTML = modalContent\n }\n\n if (type === 'subscribe') {\n modalContent = await ajax.get(url).text()\n\n modalEl.querySelector('.modal-container').innerHTML = modalContent\n\n const { default: component } = await import(\n /* webpackChunkName: \"components-modal-subscribe\" */ '@scripts/components/modal-subscribe'\n )\n\n component.init(modalEl)\n }\n\n if (type === 'form') {\n modalContent = await ajax.get(url).text()\n\n modalEl.querySelector('.modal-container').innerHTML = modalContent\n modalEl.classList.add('as-full')\n\n const { default: component } = await import(\n /* webpackChunkName: \"components-modal-form\" */ '@scripts/components/modal-form'\n )\n\n component.init(modalEl)\n }\n}\n\nconst handleModal = (e) => {\n e.preventDefault()\n\n const triggerEl = e.target.closest('[data-modal]')\n\n openModal({\n type: triggerEl.dataset.modal,\n title: triggerEl.dataset.modalTitle,\n url: triggerEl.href,\n updateUrl: triggerEl.dataset.modalUpdateUrl ?? false,\n useDefaultClose: triggerEl.dataset.modalDisableDefaultClose === undefined,\n })\n\n return false\n}\n\nconst openModal = (opts = {}) => {\n const type = opts.type\n const title = opts.title ?? false\n let useDefaultClose = opts.useDefaultClose ?? true\n\n if (type === 'video') {\n useDefaultClose = false\n }\n\n if (type === 'subscribe') {\n useDefaultClose = false\n }\n\n if (type === \"content\") {\n useDefaultClose = false;\n }\n\n const id = `modal-${Math.floor(Math.random() * Date.now())}`\n const template = generateTemplate(id, useDefaultClose, title)\n const node = document.createRange().createContextualFragment(template)\n\n document.body.append(node)\n\n const modalEl = document.getElementById(id)\n const modal = new A11yDialog(modalEl)\n\n const currentUrl = opts.defaultUrl ?? window.location.href\n\n if (useDefaultClose === false) {\n on('click', '.modal-custom-close', () => {\n modal.hide()\n });\n }\n\n modal.on('show', () => {\n document.documentElement.classList.add('has-modal-active')\n\n if (opts.updateUrl !== false) {\n window.history.replaceState({}, '', opts.updateUrl)\n }\n })\n\n modal.on('hide', () => {\n document.documentElement.classList.remove('has-modal-active')\n\n modal.destroy()\n\n if (opts.updateUrl !== false) {\n window.history.replaceState({}, '', currentUrl)\n }\n\n if (useDefaultClose === false) {\n off(\"click\", \".modal-custom-close\", () => {\n modal.hide()\n });\n }\n })\n\n modal.on('destroy', (el) => {\n el.remove()\n })\n\n modal.show()\n\n populateModal(\n {\n type: type,\n url: opts.url ?? false,\n updateUrl: opts.updateUrl,\n defaultUrl: opts.defaultUrl,\n },\n modalEl\n )\n}\n\nexport default {\n init: () => {\n const clickArgs = ['click', '[data-modal]', handleModal]\n off(...clickArgs)\n on(...clickArgs)\n\n // If we have video modals, load the YouTube API\n if (document.querySelectorAll('[data-modal=\"video\"]').length) {\n const tag = document.createElement('script')\n tag.src = 'https://www.youtube.com/iframe_api'\n\n const firstScriptTag = document.getElementsByTagName('script')[0]\n\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag)\n }\n },\n openModal,\n}\n","function InlineSpinner() {\n return (\n
\n \n \n \n
\n )\n}\n\nexport default InlineSpinner\n","function Spinner() {\n return (\n
\n \n \n \n
\n )\n}\n\nexport default Spinner\n","import { useEffect, useState } from 'react'\n\nfunction useIntersectionObserver(\n elementRef,\n { threshold = 0, root = null, rootMargin = '0%', freezeOnceVisible = false }\n) {\n const [entry, setEntry] = useState()\n\n const frozen = entry?.isIntersecting && freezeOnceVisible\n\n const updateEntry = ([entry]) => {\n setEntry(entry)\n }\n\n useEffect(() => {\n const node = elementRef?.current\n const hasIOSupport = !!window.IntersectionObserver\n\n if (!hasIOSupport || frozen || !node) return\n\n const observerParams = { threshold, root, rootMargin }\n const observer = new IntersectionObserver(updateEntry, observerParams)\n\n observer.observe(node)\n\n return () => observer.disconnect()\n }, [elementRef, JSON.stringify(threshold), root, rootMargin, frozen])\n\n return entry\n}\n\nexport default useIntersectionObserver\n","function Reference({ id, name, location, url, pageUrl }) {\n return (\n
\n
\n \n {url ? (\n \n {name}\n \n ) : (\n {name}\n )}\n {location &&  - {location}}\n \n
\n
\n )\n}\n\nexport default Reference\n","function HideColumnButton({ column, hideColumn }) {\n const handleClick = () => {\n hideColumn(column)\n }\n\n return (\n \n )\n}\n\nexport default HideColumnButton\n","import { on, off } from 'delegated-events'\nimport { useState, useEffect, useRef } from 'react'\nimport { createUrl } from '@common/util'\nimport ajax from '@common/ajax'\nimport Reference from './Reference'\nimport HideColumnButton from './HideColumnButton'\nimport Spinner from '@react/common/components/Spinner'\nimport InlineSpinner from '@react/common/components/InlineSpinner'\nimport useIntersectionObserver from '@react/common/hooks/useIntersectionObserver'\n\nfunction References({ data, isVisible, supportsTwoColumns, hideColumn, canHide }) {\n const [items, setItems] = useState(data.items)\n const [heading, setHeading] = useState(data.heading)\n const [hasMore, setHasMore] = useState(data.hasMore)\n const [hasScrollbar, setHasScrollbar] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const scrollerRef = useRef(null)\n const containerRef = useRef(null)\n const loaderRef = useRef(null)\n const entry = useIntersectionObserver(loaderRef, {})\n const isLoaderVisible = !!entry?.isIntersecting\n\n const fetchItems = async (isLoadingMore = false) => {\n setIsLoading(true)\n\n const start = isLoadingMore ? items.length + 1 : 0\n const url = createUrl(window.location, { fetch: 'references', start }, true)\n const res = await ajax.get(url).json()\n\n if (start === 0) {\n setItems(res.items)\n } else {\n setItems((current) => [...current, ...res.items])\n }\n\n const container = containerRef?.current\n\n if (container) {\n container.classList.add('border', 'border-transparent')\n container.offsetHeight\n setTimeout(() => {\n container.classList.remove('border', 'border-transparent')\n }, 0)\n }\n\n setHasMore(res.hasMore)\n setHeading(res.heading)\n setIsLoading(false)\n }\n\n useEffect(() => {\n if (isLoaderVisible && !isLoading) {\n fetchItems(true)\n }\n }, [isLoaderVisible, isLoading])\n\n useEffect(() => {\n const listenerArgs = [\n 'pagefilters:update',\n 'html',\n () => {\n fetchItems()\n },\n ]\n\n on(...listenerArgs)\n\n return () => off(...listenerArgs)\n }, [])\n\n useEffect(() => {\n if (scrollerRef && scrollerRef.current) {\n const el = scrollerRef.current\n\n setHasScrollbar(el.scrollHeight >= el.offsetHeight)\n }\n }, [scrollerRef])\n\n let containerClasses = ''\n const asTwoColumns = !supportsTwoColumns || !canHide\n\n if (asTwoColumns) {\n containerClasses = 'md:gap-1 md:columns-2'\n }\n\n return (\n
\n {isLoading && }\n\n
\n

{heading}

\n {supportsTwoColumns && canHide && (\n
\n \n
\n )}\n
\n\n
\n
\n
\n {items.map((reference) => (\n \n ))}\n\n {items.length === 0 &&
No results.
}\n
\n\n {hasMore && (\n
\n \n
\n )}\n
\n
\n
\n )\n}\n\nexport default References\n","function Testimonial({ quote, name, jobTitle, company, letterUrl }) {\n return (\n
\n \n \n \n\n
\n

{quote}

\n
\n\n
\n
\n {name && (\n
\n {letterUrl ? (\n \n {name}\n \n ) : (\n {name}\n )}\n
\n )}\n {jobTitle &&
{jobTitle}
}\n {company &&
{company}
}\n
\n
\n
\n )\n}\n\nexport default Testimonial\n","import { on, off } from 'delegated-events'\nimport { useState, useEffect, useRef } from 'react'\nimport { createUrl } from '@common/util'\nimport ajax from '@common/ajax'\nimport Reference from './Reference'\nimport Testimonial from './Testimonial'\nimport HideColumnButton from './HideColumnButton'\nimport Spinner from '@react/common/components/Spinner'\nimport InlineSpinner from '@react/common/components/InlineSpinner'\nimport useIntersectionObserver from '@react/common/hooks/useIntersectionObserver'\n\nfunction Testimonials({ data, isVisible, supportsTwoColumns, hideColumn, canHide }) {\n const [items, setItems] = useState(data.items)\n const [heading, setHeading] = useState(data.heading)\n const [hasMore, setHasMore] = useState(data.hasMore)\n const [hasScrollbar, setHasScrollbar] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const scrollerRef = useRef(null)\n const containerRef = useRef(null)\n const loaderRef = useRef(null)\n const entry = useIntersectionObserver(loaderRef, {})\n const isLoaderVisible = !!entry?.isIntersecting\n\n const fetchItems = async (isLoadingMore = false) => {\n setIsLoading(true)\n\n const start = isLoadingMore ? items.length + 1 : 0\n const url = createUrl(window.location, { fetch: 'testimonials', start }, true)\n const res = await ajax.get(url).json()\n\n if (start === 0) {\n setItems(res.items)\n } else {\n setItems((current) => [...current, ...res.items])\n }\n\n const container = containerRef?.current\n\n if (container) {\n container.classList.add('border', 'border-transparent')\n container.offsetHeight\n setTimeout(() => {\n container.classList.remove('border', 'border-transparent')\n }, 0)\n }\n\n setHasMore(res.hasMore)\n setHeading(res.heading)\n setIsLoading(false)\n }\n\n useEffect(() => {\n if (isLoaderVisible && !isLoading) {\n fetchItems(true)\n }\n }, [isLoaderVisible, isLoading])\n\n useEffect(() => {\n const listenerArgs = [\n 'pagefilters:update',\n 'html',\n () => {\n fetchItems()\n },\n ]\n\n on(...listenerArgs)\n\n return () => off(...listenerArgs)\n }, [])\n\n useEffect(() => {\n if (scrollerRef && scrollerRef.current) {\n const el = scrollerRef.current\n\n setHasScrollbar(el.scrollHeight >= el.offsetHeight)\n }\n }, [scrollerRef])\n\n let containerClasses = 'grid gap-8 lg:gap-16'\n const asTwoColumns = !supportsTwoColumns || !canHide\n\n if (asTwoColumns) {\n containerClasses = 'grid md:grid-cols-2 gap-8 lg:gap-16'\n }\n\n return (\n
\n {isLoading && }\n\n
\n

{heading}

\n {supportsTwoColumns && canHide && (\n
\n \n
\n )}\n
\n\n
\n
\n
\n {items.map((testimonial) => (\n \n ))}\n\n {items.length === 0 &&
No results.
}\n
\n\n {hasMore && (\n
\n \n
\n )}\n
\n
\n
\n )\n}\n\nexport default Testimonials\n","function ShowColumnButton({ column, showColumn }) {\n const handleClick = () => {\n showColumn(column)\n }\n\n const label = column === 'references' ? 'References' : 'Testimonials'\n\n return (\n \n )\n}\n\nexport default ShowColumnButton\n","import { on, off } from 'delegated-events'\nimport { useState, useEffect } from 'react'\nimport References from './References'\nimport Testimonials from './Testimonials'\nimport ShowColumnButton from './ShowColumnButton'\n\nlet windowWidth = window.innerWidth\n\nconst initialReferences = document.getElementById('initial-references').textContent\nconst initialTestimonials = document.getElementById('initial-testimonials')?.textContent\n\nconst referencesData = JSON.parse(initialReferences)\nconst testimonialsData = initialTestimonials ? JSON.parse(initialTestimonials) : false\n\nconst supportsTwoColumns = testimonialsData !== false\n\nconst isInitialMobileSize = window.matchMedia('(max-width: 767px)').matches\n\nfunction App() {\n const [isMobileSize, setIsMobileSize] = useState(isInitialMobileSize)\n const [referencesVisible, setReferencesVisible] = useState(true)\n const [testimonialsVisible, setTestimonialsVisible] = useState(supportsTwoColumns && !isInitialMobileSize)\n\n const containerClasses = referencesVisible && testimonialsVisible ? 'grid grid-cols-2 gap-16' : ''\n const canHide = referencesVisible && testimonialsVisible && !isMobileSize\n\n useEffect(() => {\n const handleResize = () => {\n if (window.innerWidth != windowWidth) {\n windowWidth = window.innerWidth\n\n setIsMobileSize(window.matchMedia('(max-width: 767px)').matches)\n }\n }\n\n window.addEventListener('resize', handleResize)\n\n return () => window.removeEventListener('resize', handleResize)\n }, [setIsMobileSize])\n\n useEffect(() => {\n const listenerArgs = [\n 'pagefilters:update',\n 'html',\n (e) => {\n // We need to dynamically set this placeholder value since the default category is set on load\n const majorSelect = document.querySelector('[data-page-filters] #major-category')\n\n if (majorSelect) {\n if (e.detail.type === 'clear') {\n majorSelect.querySelector('[data-placeholder]').textContent = 'Corporate'\n } else {\n majorSelect.querySelector('[data-placeholder]').textContent = 'Categories'\n }\n }\n },\n ]\n\n on(...listenerArgs)\n\n return () => off(...listenerArgs)\n }, [])\n\n const hideColumn = (column) => {\n if (column === 'references') {\n setReferencesVisible(false)\n }\n\n if (column === 'testimonials') {\n setTestimonialsVisible(false)\n }\n }\n\n const showColumn = (column) => {\n if (column === 'references') {\n setReferencesVisible(true)\n\n if (isMobileSize) {\n setTestimonialsVisible(false)\n }\n }\n\n if (column === 'testimonials') {\n setTestimonialsVisible(true)\n\n if (isMobileSize) {\n setReferencesVisible(false)\n }\n }\n }\n\n return (\n
\n {supportsTwoColumns && (\n
\n {!referencesVisible && }\n {!testimonialsVisible && }\n
\n )}\n
\n \n {testimonialsData && (\n \n )}\n
\n
\n )\n}\n\nexport default App\n","import React from 'react'\nimport { createRoot } from 'react-dom/client'\nimport App from '@react/references/components/App'\nimport modal from '@scripts/components/modal'\n\nconst rootNode = document.getElementById('references-app')\n\nconst root = createRoot(rootNode)\n\nroot.render(\n \n \n \n)\n\nmodal.init()\n\nconst initialReferences = document.getElementById('initial-references').textContent\nconst referencesData = JSON.parse(initialReferences)\n\nif (referencesData.selectedReference) {\n modal.openModal({\n type: 'letter',\n url: referencesData.selectedReference.url,\n defaultUrl: referencesData.url\n })\n}\n"],"names":["wretch","headers","isTouchDevice","document","documentElement","createUrl","test","navigator","platform","maxTouchPoints","base","formData","append","data","FormData","key","value","Object","entries","baseUrl","URL","params","searchParams","set","URLSearchParams","geolocate","success","error","geolocation","getCurrentPosition","maximumAge","trackGoogleAnalytics","event","window","dataLayer","push","generateTemplate","id","useDefaultClose","title","role","labeledBy","html","populateModal","async","opts","modalEl","type","url","modalContent","querySelector","innerHTML","ajax","text","default","component","init","classList","add","handleModal","e","preventDefault","triggerEl","target","closest","openModal","dataset","modal","modalTitle","href","updateUrl","modalUpdateUrl","undefined","modalDisableDefaultClose","Math","floor","random","Date","now","template","node","createRange","createContextualFragment","body","getElementById","A11yDialog","currentUrl","defaultUrl","location","on","hide","history","replaceState","remove","destroy","off","el","show","clickArgs","querySelectorAll","length","tag","createElement","src","firstScriptTag","getElementsByTagName","parentNode","insertBefore","className","viewBox","cx","cy","r","fill","strokeWidth","elementRef","threshold","root","rootMargin","freezeOnceVisible","entry","setEntry","useState","frozen","isIntersecting","updateEntry","useEffect","current","IntersectionObserver","observer","observe","disconnect","JSON","stringify","name","pageUrl","column","hideColumn","onClick","d","isVisible","supportsTwoColumns","canHide","items","setItems","heading","setHeading","hasMore","setHasMore","hasScrollbar","setHasScrollbar","isLoading","setIsLoading","scrollerRef","useRef","containerRef","loaderRef","useIntersectionObserver","isLoaderVisible","fetchItems","isLoadingMore","start","fetch","res","json","container","offsetHeight","setTimeout","listenerArgs","scrollHeight","containerClasses","Spinner","ref","map","reference","InlineSpinner","quote","jobTitle","company","letterUrl","opacity","testimonial","showColumn","label","windowWidth","innerWidth","initialReferences","textContent","initialTestimonials","referencesData","parse","testimonialsData","isInitialMobileSize","matchMedia","matches","isMobileSize","setIsMobileSize","referencesVisible","setReferencesVisible","testimonialsVisible","setTestimonialsVisible","handleResize","addEventListener","removeEventListener","majorSelect","detail","rootNode","createRoot","render","selectedReference"],"sourceRoot":""}