{"version":3,"file":"/js/app.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///./resources/js/app.js","webpack:///./resources/js/appointment.js","webpack:///./resources/js/back.js","webpack:///./resources/js/faders.js","webpack:///./resources/js/form-ajax-replace.js","webpack:///./resources/js/glide.js","webpack:///./resources/js/gsap-animations.js","webpack:///./resources/js/header.js","webpack:///./resources/js/menu.js","webpack:///./resources/js/projects.js","webpack:///./resources/js/sitenotice.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","require('./appointment');\nrequire('./back');\n// require('./bootstrap');\nrequire('./faders');\nrequire('./form-ajax-replace');\n// require('./forms');\n// require('./gallery');\nrequire('./glide');\nrequire('./gsap-animations');\nrequire('./header');\nrequire('./menu');\nrequire('./projects');\nrequire('./sitenotice');\n// require('./sliders');\n\n","function initDateTimePicker(dateElem, timeSelect) {\n const tomorrow = new Date();\n tomorrow.setDate(tomorrow.getDate() + 1);\n\n let datesBlocked = [];\n if (dateElem.getAttribute('data-blocked')) {\n datesBlocked = JSON.parse(dateElem.getAttribute('data-blocked'));\n }\n const datepicker = new Datepicker(dateElem, {\n daysOfWeekDisabled: [0],\n format: 'dd-mm-yyyy',\n language: 'nl',\n locales: Datepicker.locales.nl,\n minDate: tomorrow,\n datesDisabled: datesBlocked\n });\n dateElem.addEventListener('changeDate', (e) => {\n updateTimeOptions(timeSelect, datepicker.getDate());\n });\n}\n\nfunction getAjaxHeaders(form) {\n return {\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-TOKEN': form.querySelector('input[name=\"_token\"]').getAttribute('value')\n };\n}\n\nfunction updateTimeOptions(timeSelect, selectedDate) {\n const action = timeSelect.getAttribute('data-slotsurl');\n\n if (action) {\n const formData = new FormData();\n formData.append('date', selectedDate.toISOString());\n formData.append('time', timeSelect.value);\n\n fetch(action, {\n headers: getAjaxHeaders(document.querySelector('form.appointmentform')),\n method: 'post',\n body: formData\n }).then(function (response) {\n return response.text();\n }).then(function (html) {\n timeSelect.innerHTML = html;\n }).catch(function (error) {\n console.error(error);\n });\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n document.querySelectorAll('.appointmentform').forEach((footerAppointment) => {\n const dateElem = footerAppointment.querySelector('input[name=\"date\"]');\n const timeSelect = footerAppointment.querySelector('select[name=\"time\"]');\n if (dateElem, timeSelect) {\n initDateTimePicker(dateElem, timeSelect);\n }\n });\n});\n\n","document.addEventListener(\"DOMContentLoaded\", () => {\n if (document.referrer.length > 0 && document.referrer !== window.location.href) {\n document.querySelectorAll('.back.back--referer[hidden]').forEach((backHidden) => {\n backHidden.href = document.referrer;\n backHidden.removeAttribute('hidden');\n });\n }\n});\n","function isElementInViewport(el) {\n let rect = el.getBoundingClientRect();\n\n return (\n rect.top >= 0 &&\n (\n rect.top <= (window.innerHeight || document.documentElement.clientHeight) ||\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)\n )\n );\n}\n\nfunction elementsVisibility(classname) {\n let elements = document.querySelectorAll(`.${classname}-in:not(.${classname}-in-active)`);\n\n elements.forEach((el) => {\n if (isElementInViewport(el)) {\n el.classList.add(`${classname}-in-active`);\n }\n });\n}\n\nfunction onVisibilityChange() {\n elementsVisibility('fade');\n elementsVisibility('scale');\n elementsVisibility('slide');\n}\n\ndocument.addEventListener('DOMContentLoaded', onVisibilityChange, false);\ndocument.addEventListener('load', onVisibilityChange, false);\ndocument.addEventListener('scroll', onVisibilityChange, false);\ndocument.addEventListener('resize', onVisibilityChange, false);\n\n","function attachAjaxReplace(form) {\n form.addEventListener('submit', (e) => {\n e.preventDefault();\n const formData = new FormData(form);\n\n fetch(form.action, {\n method: 'post',\n body: formData\n }).then(function (response) {\n return response.json();\n }).then(function (json) {\n if (json.success) {\n form.querySelectorAll('ul.form').forEach((ulForm) => {\n ulForm.setAttribute('hidden', 'hidden');\n });\n form.querySelector('.form-content').setAttribute('hidden','hidden');\n form.querySelector('.form-thankyou').removeAttribute('hidden');\n window.location.href += '#result=thankyou';\n window.scrollTo({ top: form.parentElement.getBoundingClientRect().top + window.pageYOffset - 150, behavior: \"smooth\"});\n }\n }).catch(function (error) {\n console.error(error);\n });\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const forms = document.querySelectorAll(\"form.form-ajax-replace\");\n forms.forEach(attachAjaxReplace);\n});\n","function loadLazyImages(selector) {\n document.querySelectorAll(selector + ' img[loading=\"lazy\"]').forEach((img) => {\n img.removeAttribute('loading');\n });\n}\n\nfunction initBrandsGlide() {\n const selectorBrands = '.brands__carousel.glide';\n if (document.querySelector(selectorBrands)) {\n const glider = new Glide(selectorBrands, {\n // rewind: false,\n autoplay: true,\n type: 'carousel',\n gap: 64,\n animationDuration: 5000,\n time: 0,\n animationTimingFunc: 'linear',\n perView: 8,\n slidesToScroll: 1,\n rewindDuration: 0,\n breakpoints: {\n 1024: {\n perView: 6\n },\n 767: {\n perView: 3\n },\n 450: {\n perView: 2\n }\n }\n });\n glider.mount();\n loadLazyImages(selectorBrands);\n }\n}\n\nfunction initStylesCarouselGlide() {\n const selectorCases = '.styles-carousel .glide';\n if (document.querySelector(selectorCases)) {\n const casesslider = new Glide(selectorCases, {\n rewind: false,\n type: 'carousel',\n gap: 32,\n perView: 4.25,\n loop: true,\n bound: true,\n breakpoints: {\n 1760: {\n perView: 3.75\n },\n 1300: {\n perView: 3.25\n },\n 1023: {\n perView: 2.32\n },\n 767: {\n perView: 1\n }\n }\n });\n casesslider.mount();\n loadLazyImages(selectorCases);\n }\n}\n\nfunction initStepsCarouselGlide() {\n const selectorSteps = '.steps__carousel.glide';\n if (document.querySelector(selectorSteps)) {\n const stepsslider = new Glide(selectorSteps, {\n rewind: false,\n type: 'slideshow',\n gap: 32,\n perView: 3,\n loop: false,\n bound: true,\n breakpoints: {\n 1023: {\n perView: 2\n },\n 767: {\n perView: 1\n }\n }\n });\n stepsslider.mount();\n }\n}\n\nfunction initAlbumSlideshow() {\n const albumSlideshow = '.album--slideshow.glide';\n if (document.querySelector(albumSlideshow)) {\n const glider = new Glide(albumSlideshow, {\n // rewind: false,\n autoplay: 4000,\n type: 'carousel',\n gap: 64,\n animationDuration: 500,\n hoverpause: true,\n time: 0,\n animationTimingFunc: 'linear',\n perView: 1,\n slidesToScroll: 1,\n rewindDuration: 0\n });\n glider.mount();\n loadLazyImages(albumSlideshow);\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initAllGlides();\n});\n\nfunction initAllGlides() {\n initAlbumSlideshow();\n initBrandsGlide();\n initStepsCarouselGlide();\n initStylesCarouselGlide();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", initAllGlides);\ndocument.addEventListener(\"resize\", initAllGlides);\n","function staggeredReveal() {\n //Staggered Reveal\n ScrollTrigger.batch(\".staggered-reveal\", {\n interval: 0.1, // time window (in seconds) for batching to occur. The first callback that occurs (of its type) will start the timer, and when it elapses, any other similar callbacks for other targets will be batched into an array and fed to the callback. Default is 0.1\n batchMax: 20, // maximum batch size (targets)\n onEnter: batch => gsap.to(batch, {autoAlpha: 1, stagger: 0.15, overwrite: true}),\n // onLeave: batch => gsap.set(batch, {autoAlpha: 0, overwrite: true}),\n // onEnterBack: batch => gsap.to(batch, {autoAlpha: 1, stagger: 0.15, overwrite: true}),\n // onLeaveBack: batch => gsap.set(batch, {autoAlpha: 0, overwrite: true})\n // you can also define things like start, end, etc.\n });\n}\n\nfunction initGSAP() {\n staggeredReveal();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", initGSAP, false);\ndocument.addEventListener('resize', initGSAP, false);\n","function isElementInViewport(el) {\n let rect = el.getBoundingClientRect();\n\n return (\n (rect.top >= 0 && rect.top <= (window.innerHeight || document.documentElement.clientHeight)) //top in viewport\n || (rect.bottom >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)) // bottom in viewport\n || (rect.top < 0 && rect.bottom > (window.innerHeight || document.documentElement.clientHeight)) //top above, bottom below viewport\n );\n}\n\nfunction checkHeroVisible(hero, header) {\n if (isElementInViewport(hero)) {\n header.classList.remove('header--fixed');\n }\n else {\n header.classList.add('header--fixed');\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const hero = document.querySelector('.hero');\n const header = document.querySelector('header');\n\n if (hero && header) {\n checkHeroVisible(hero, header);\n document.addEventListener('scroll', () => {\n checkHeroVisible(hero, header);\n }, false);\n document.addEventListener('resize', () => {\n checkHeroVisible(hero, header);\n }, false);\n }\n}, false);\n\n\n","function handleMenus() {\n const menuToggle = document.getElementById('menu-open');\n\n if (menuToggle) {\n menuToggle.addEventListener('change', () => {\n const htmlElement = document.querySelector('html');\n\n if (htmlElement) {\n if (menuToggle.checked) {\n htmlElement.classList.add('menu-open');\n }\n else {\n htmlElement.classList.remove('menu-open');\n }\n }\n });\n }\n}\n\nfunction handleSubmenus() {\n const submenuContainers = document.querySelectorAll('nav .menu-item-has-children');\n\n submenuContainers.forEach((submenuContainer) => {\n const submenuToggle = submenuContainer.querySelector('input[type=\"checkbox\"]');\n\n if (submenuToggle) {\n submenuToggle.addEventListener('change', () => {\n if (submenuToggle.checked) {\n submenuContainer.classList.add('submenu-open');\n }\n else {\n submenuContainer.classList.remove('submenu-open');\n }\n });\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n handleMenus();\n handleSubmenus();\n});","function handleMoreProjects(projectsElem, moreProjectsButton) {\n let shown = 0;\n\n projectsElem.querySelectorAll('.projects__grid__project[hidden]').forEach((hiddenProject) => {\n shown++;\n if (shown <= 4) {\n hiddenProject.removeAttribute('hidden');\n }\n });\n\n if (projectsElem.querySelectorAll('.projects__grid__project[hidden]').length === 0) {\n moreProjectsButton.setAttribute('hidden', 'hidden');\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n document.querySelectorAll('.projects').forEach((projectsElem) => {\n let moreProjectsButton = projectsElem.querySelector('.more-projects');\n\n if (moreProjectsButton) {\n moreProjectsButton.addEventListener('click', (e) => {\n e.preventDefault();\n handleMoreProjects(projectsElem, moreProjectsButton);\n });\n }\n });\n});\n","document.addEventListener(\"DOMContentLoaded\", () => {\n document.querySelectorAll('.sitenotice').forEach((switchedElem) => {\n switchedElem.classList.add('sitenotice--visible');\n let button = switchedElem.querySelector('.sitenotice__close');\n\n if (button) {\n button.addEventListener('click', (e) => {\n e.preventDefault();\n switchedElem.classList.remove('sitenotice--visible');\n });\n }\n setTimeout(() => { switchedElem.classList.remove('sitenotice--visible'); }, 15000);\n });\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t847: 0,\n\t866: 0,\n\t252: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk\"] = self[\"webpackChunk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [866,252], () => (__webpack_require__(988)))\n__webpack_require__.O(undefined, [866,252], () => (__webpack_require__(205)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [866,252], () => (__webpack_require__(374)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","require","initDateTimePicker","dateElem","timeSelect","tomorrow","Date","setDate","getDate","datesBlocked","getAttribute","JSON","parse","datepicker","Datepicker","daysOfWeekDisabled","format","language","locales","nl","minDate","datesDisabled","addEventListener","e","selectedDate","action","formData","FormData","append","toISOString","value","fetch","headers","getAjaxHeaders","document","querySelector","method","body","then","response","text","html","innerHTML","error","console","updateTimeOptions","form","querySelectorAll","forEach","footerAppointment","referrer","length","window","location","href","backHidden","removeAttribute","elementsVisibility","classname","concat","el","rect","getBoundingClientRect","top","innerHeight","documentElement","clientHeight","bottom","isElementInViewport","classList","add","onVisibilityChange","attachAjaxReplace","preventDefault","json","success","ulForm","setAttribute","scrollTo","parentElement","pageYOffset","behavior","loadLazyImages","selector","img","initAllGlides","albumSlideshow","selectorBrands","selectorSteps","selectorCases","Glide","autoplay","type","gap","animationDuration","hoverpause","time","animationTimingFunc","perView","slidesToScroll","rewindDuration","mount","breakpoints","rewind","loop","bound","initGSAP","ScrollTrigger","batch","interval","batchMax","onEnter","gsap","to","autoAlpha","stagger","overwrite","checkHeroVisible","hero","header","remove","menuToggle","getElementById","htmlElement","checked","submenuContainer","submenuToggle","projectsElem","moreProjectsButton","shown","hiddenProject","handleMoreProjects","switchedElem","button","setTimeout","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","key","splice","r","o","obj","prop","prototype","hasOwnProperty","call","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self","bind","push","__webpack_exports__"],"sourceRoot":""}