1/* 2 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). 3 * This devtool is neither made for production nor for readable output files. 4 * It uses "eval()" calls to create a separate source file in the browser devtools. 5 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) 6 * or disable the default devtool with "devtool: false". 7 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). 8 */ 9 10/******/ 11(function () { 12 // webpackBootstrap 13 14 /******/ 15 var __webpack_modules__ = { 16 /***/ 17
17"./scripts/site-js.js": function () { 18 eval("jQuery(function ($) {\n \n const testimonialSliders = document.querySelectorAll('.testimonial-slider')\n if (testimonialSliders)\n testimonialSliders.forEach((slider) => {\n $(slider).on('beforeChange', function (event, slick, currentSlide, nextSlide) {\n // default slick speed is 300\n const currentHeight = slick.$slides[currentSlide].firstElementChild.clientHeight\n const nextHeight = slick.$slides[nextSlide].firstElementChild.clientHeight\n\n // if the current slide is bigger than the next slide, the navigation may overlap.\n // if we only set it to animate after the slides finish transitioning, the reverse may happen\n // by comparing the heights and setting different timeouts we can avoid this\n setTimeout(() => {\n $(slider).find('.slick-track').animate({\n height: slick.$slides[nextSlide].firstElementChild.clientHeight,\n }, 250)\n }, currentHeight > nextHeight ? 300 : 0)\n })\n\n $(slider).slick({\n autoplay: false,\n infinite: true,\n adaptiveHeight: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n dots: true,\n arrows: true,\n fade: false,\n swipe: true,\n prevArrow: '<i class=\"fa fa-arrow-left prevArrow\" aria-hidden=\"true\"></i>',\n nextArrow: '<i class=\"fa fa-arrow-right nextArrow\" aria-hidden=\"true\"></i>',\n autoplaySpeed: 10000,\n })\n\n })\n\n $('.anvil-slider').slick({\n dots: true,\n infinite: true,\n speed: 300,\n slidesToShow: 2,\n slidesToScroll: 1,\n arrows: true,\n fade: false,\n swipe: true,\n prevArrow: '<i class=\"fa fa-arrow-left prevArrow\" aria-hidden=\"true\"></i>',\n nextArrow: '<i class=\"fa fa-arrow-right nextArrow\" aria-hidden=\"true\"></i>',\n responsive: [\n {\n breakpoint: 760,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2,\n },\n },\n {\n breakpoint: 640,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1,\n },\n },\n\n // You can unslick at a given breakpoint now by adding:\n // settings: \"unslick\"\n // instead of a settings object\n ],\n })\n\n $('.anvil-testimonial-slider-half').slick({\n dots: true,\n infinite: true,\n speed: 300,\n slidesToShow: 1,\n slidesToScroll: 1,\n arrows: true,\n fade: false,\n swipe: true,\n centerMode: true,\n adaptiveHeight: true,\n prevArrow: '<i class=\"fa fa-arrow-left prevArrow\" aria-hidden=\"true\"></i>',\n nextArrow: '<i class=\"fa fa-arrow-right nextArrow\" aria-hidden=\"true\"></i>',\n responsive: [\n {\n breakpoint: 760,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1,\n },\n },\n // You can unslick at a given breakpoint now by adding:\n // settings: \"unslick\"\n // instead of a settings object\n ],\n })\n\n $('.details-column').slick({\n dots: true,\n infinite: false,\n speed: 300,\n slidesToShow: 1,\n slidesToScroll: 1,\n arrows: true,\n fade: false,\n swipe: true,\n prevArrow: '<i class=\"fa fa-arrow-left prevArrow\" aria-hidden=\"true\"></i>',\n nextArrow: '<i class=\"fa fa-arrow-right nextArrow\" aria-hidden=\"true\"></i>',\n responsive: [\n {\n breakpoint: 760,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1,\n },\n },\n // You can unslick at a given breakpoint now by adding:\n // settings: \"unslick\"\n // instead of a settings object\n ],\n })\n\n // Functions to set delete and show cookies\n\n function setCookie(key, value, expiry) {\n var expires = new Date()\n expires.setTime(expires.getTime() + expiry * 24 * 60 * 60 * 1000)\n document.cookie =\n key + '=' + value + ';path=/;expires=' + expires.toUTCString()\n }\n\n function getCookie(key) {\n var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)')\n return keyValue ? keyValue[2] : null\n }
18\n\n function eraseCookie(key) {\n var keyValue = getCookie(key)\n setCookie(key, keyValue, '-1')\n }\n\n //\n\n var isIE11 = !!window.MSInputMethodContext && !!document.documentMode\n\n if (isIE11) {\n $('body').addClass('ie11')\n }\n /*\n |----------------------------------------------------------------\n | Object fit fallback for ie11,\n | Call this function with an array of selectors for image containers\n | using Object Fit\n |----------------------------------------------------------------\n */\n if (isIE11) {\n function objectFitFallback(selectors) {\n if (!Array.isArray(selectors)) {\n selectors = selectors.split()\n }\n selectors.forEach(function (element) {\n $(element).each(function () {\n var $container = $(this),\n imgUrl = $container.find('img:not(.background-img)').prop('src')\n\n if (imgUrl) {\n $container.css('backgroundImage', 'url(' + imgUrl + ')').addClass('compat-object-fit')\n }\n })\n })\n }\n\n objectFitFallback([\n '.image-container',\n '.image-column',\n '.woocommerce-loop-product__link',\n ])\n }\n\n /*\n |----------------------------------------------------------------\n | Woo mini cart - uncomment and adjust menu ids for a woo site\n |----------------------------------------------------------------\n */\n\n // $('#menu-item-429').on('mouseover', function() {\n // $(this).parents().find('.mini-cart').slideDown(250);\n // });\n\n // $('.mini-cart').on('mouseleave', function() {\n // $(this).slideUp(250);\n // });\n\n /*\n |----------------------------------------------------------------\n | Mobile Trigger\n | (targeting all .menu-trigger, so they're syncornized )\n |----------------------------------------------------------------\n */\n $('.fs-menu-trigger').click(function (e) {\n e.preventDefault()\n\n $('body').toggleClass('menu-opened')\n $('.primary-navigation-wrapper').slideToggle(250)\n\n // $('.primary-navigation-wrapper').css({\n // 'display':'-webkit-box',\n // 'box-orient': 'vertical',\n // });\n })\n\n /*\n |----------------------------------------------------------------\n | Mobile Sub-menu Trigger\n |----------------------------------------------------------------\n */\n $('.menu-item-has-children > a').append(\n '<span class=\"mobile-submenu-trigger\"><i class=\"fa fa-plus\" aria-hidden=\"true\"></i></span>',\n )\n\n $('.menu-item-has-children').click(function (e) {\n $(this).find('.mobile-submenu-trigger').toggleClass('opened')\n $(this).find('.sub-menu').slideToggle()\n })\n\n /*\n\n |----------------------------------------------------------------\n | El Toolbox\n |----------------------------------------------------------------\n */\n\n $('.toolbox-trigger').on('click', function () {\n console.log('test')\n $(this).removeClass('closed')\n $(this).parent().find('.toolbox-content').slideDown(250)\n $(this).parent().parent().removeClass('closed')\n })\n\n $('.less').on('click', function () {\n console.log('test')\n $(this).addClass('closed')\n $(this).parent('.toolbox-content').slideUp(250)\n $(this).parent().parent().parent().addClass('closed')\n })\n\n /*\n |----------------------------------------------------------------\n | Smooth Scrolling\n | (targeting all [data-smooth-scroll])\n |----------------------------------------------------------------\n */\n $('.smooth-scroll, [data-smooth-scroll]').on('click', smoothScroll)\n\n /*\n |----------------------------------------------------------------\n | Accordion\n |----------------------------------------------------------------\n */\n $('.accordion-holder').each(function () {\n var $self = $(this)\n var elmId = $(this).attr('id')\n\n $('#' + elmId).find('div.accordion-label').click(function (e) {\n e.preventDefault()\n\n //Close open siblings\n $('.accordion-entry').not($(this).parent()).attr('data-status', 'closed')\n $('[data-status=\\'closed\\'] .accordion-content').slideUp(250)\n\n //Toggle the selected section\n $(this).siblings('.accordion-content').slideToggle(250)\n $(this).parent().attr(\n 'data-status',\n $(this).parent().attr('data-status') === 'opened'\n ? 'closed'\n : 'opened',\n )\n })\n\n $('.close', $self).click(function (e) {\n $(this).parents('.accordion-content').slideToggle(250)\n $('.accordion-entry', $self).attr('data-status', 'closed')\n })\n })\n\n /*\n |----------------------------------------------------------------\n | Tabs\n |----------------------------------------------------------------\n */\n\n function openTab(evt, tabId) {\n evt.preventDefault()\n var i, tabcontent, tablinks\n\n // Get all elements with class=\"tabcontent\" and hide them\n tabcontent = document.getElementsByClassName('tab-content')\n for (i = 0; i < tabcontent.length;
18 i++) {\n tabcontent[i].style.display = 'none'\n }\n\n // Get all elements with class=\"tablinks\" and remove the class \"active\"\n tablinks = document.getElementsByClassName('tab-link')\n for (i = 0; i < tablinks.length; i++) {\n tablinks[i].className = tablinks[i].className.replace(' active', '')\n }\n\n // Show the current tab, and add an \"active\" class to the button that opened the tab\n document.getElementById(tabId).style.display = 'block'\n evt.currentTarget.className += ' active'\n }\n\n window.openTab = openTab\n\n /*\n |----------------------------------------------------------------\n | Loop slideout\n |----------------------------------------------------------------\n */\n\n function resetSlideout() {\n $('.loop-hidden').slideUp(250)\n $('.loop-content').removeClass('show-slideout')\n $('.minus').removeClass('show-icon')\n $('.plus').removeClass('hide-icon')\n }\n\n $('.slideout-item .container .loop-content').on('click', function () {\n var parent = $(this).parent().parent()\n\n if ($(this).hasClass('show-slideout')) {\n resetSlideout()\n } else {\n resetSlideout()\n parent.find('.loop-hidden').slideDown(250)\n parent.find('.loop-content').addClass('show-slideout')\n parent.find('.plus').addClass('hide-icon')\n parent.find('.minus').addClass('show-icon')\n }\n })\n\n $('.close').on('click', function () {\n resetSlideout()\n })\n\n /*\n |----------------------------------------------------------------\n | Testimonial slider\n |----------------------------------------------------------------\n */\n\n $('.logo-slider').slick({\n slidesToShow: 4,\n slidesToScroll: 1,\n infinite: true,\n rows: 1,\n arrows: true,\n prevArrow:\n '<div class=\"slick-prev\"><i class=\"far fa-arrow-left\"></i></div>',\n nextArrow:\n '<div class=\"slick-next\"><i class=\"far fa-arrow-right\"></i></div>',\n responsive: [\n {\n breakpoint: 767,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 1,\n },\n },\n {\n breakpoint: 479,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 1,\n },\n },\n ],\n })\n\n // $('.testimonial-slider').on(\n // 'beforeChange',\n // function (event, slick, currentSlide, nextSlide) {\n // $('.slick-track').height = slick.$slides[nextSlide].clientHeight\n // },\n // )\n\n // $('.testimonial-slider').slick({\n // autoplay: false,\n // infinite: true,\n // adaptiveHeight: true,\n // slidesToShow: 1,\n // slidesToScroll: 1,\n // dots: true,\n // arrows: true,\n // fade: false,\n // swipe: true,\n // prevArrow: '<i class=\"fa fa-arrow-left prevArrow\" aria-hidden=\"true\"></i>',\n // nextArrow: '<i class=\"fa fa-arrow-right nextArrow\" aria-hidden=\"true\"></i>',\n // autoplaySpeed: 10000,\n // })\n\n /*\n |----------------------------------------------------------------\n | Gallery Slider\n |----------------------------------------------------------------\n */\n $('.single-item').slick({\n dots: true,\n infinite: true,\n speed: 300,\n slidesToShow: 1,\n adaptiveHeight: true,\n prevArrow:\n '<div class=\"slick-prev\"><i class=\"fa fa-chevron-circle-left\" aria-hidden=\"true\"></i></div>',\n nextArrow:\n '<div class=\"slick-next\"><i class=\"fa fa-chevron-circle-right\" aria-hidden=\"true\"></i></div>',\n })\n\n const galleries = document.querySelectorAll('.gallery-wrapper')\n if (galleries) {\n galleries.forEac
18h((gallery) => {\n const gridNav = gallery.parentElement.querySelector(\n '.slick-thumbnail-grid',\n )\n\n $(gallery).slick({\n slidesToShow: 1,\n slidesToScroll: 1,\n dots: false,\n draggable: true,\n swipe: true,\n arrows: false,\n adaptiveHeight: true,\n lazyLoad: 'progressive',\n fade: true,\n asNavFor: gridNav ? gridNav : null,\n })\n\n if (gridNav) {\n $(gridNav).slick({\n asNavFor: gallery,\n slidesToShow: 3,\n slidesToScroll: 1,\n infinite: true,\n lazyLoad: 'progressive',\n dots: false,\n arrows: true,\n prevArrow:\n '<div class=\"slick-prev\"><i class=\"fa fa-chevron-circle-left\" aria-hidden=\"true\"></i></div>',\n nextArrow:\n '<div class=\"slick-next\"><i class=\"fa fa-chevron-circle-right\" aria-hidden=\"true\"></i></div>',\n centerMode: true,\n focusOnSelect: true,\n responsive: [\n {\n breakpoint: 767,\n settings: {\n centerMode: false,\n slidesToShow: 2,\n slidesToScroll: 1,\n },\n },\n {\n breakpoint: 479,\n settings: {\n centerMode: false,\n vertical: false,\n verticalSwiping: false,\n slidesToShow: 2,\n slidesToScroll: 1,\n },\n },\n ],\n })\n }\n })\n }\n\n /*\n |----------------------------------------------------------------\n | Counter\n |----------------------------------------------------------------\n */\n\n $.fn.isInViewport = function () {\n var element = $(this)\n if (element.length) {\n var elementTop = $(this).offset().top\n var viewportTop = $(window).scrollTop()\n var viewportBottom = viewportTop + $(window).height()\n return elementTop > viewportTop && elementTop < viewportBottom\n }\n }\n\n $(window).on('resize scroll load', function () {\n if ($('.statistic').isInViewport()) {\n $('.stat').each(function () {\n var $this = $(this),\n countTo = $this.attr('data-count')\n $({ countNum: $this.text() }).animate(\n {\n countNum: countTo,\n },\n {\n duration: 1500,\n easing: 'linear',\n step: function () {\n $this.text(Math.floor(this.countNum))\n },\n complete: function () {\n $this.text(this.countNum.toLocaleString('en'))\n },\n },\n )\n })\n $(window).off('scroll')\n }\n })\n\n /*\n |----------------------------------------------------------------\n | Search form Error Handling\n |----------------------------------------------------------------\n */\n\n $('form[method=\"get\"]').submit(function () {\n console.log('hi')\n $(this).find(':input').each(function () {\n var inp = $(this)\n if (!inp.val()) {\n inp.remove()\n }\n })\n })\n\n /*\n |----------------------------------------------------------------\n | Simple submit\n |----------------------------------------------------------------\n */\n $('#simple-filter select').on('change', function () {\n this.form.submit()\n })\n\n function addVideoSource() {\n var bannerContainer = $('#page-banner')\n var videoURL = bannerContainer.data('src')\n console.log(videoURL)\n var output = ''\n if (videoURL) {\n output =\n '<video id=\"bg-video\" autoplay muted loop><source src=\"' +\n videoURL +\n '\" type=\"video/mp4\"></video>'\n }\n\n if (window.innerWidth >= 868) {\n bannerContainer.prepend(output)\n } else {\n $('#bg-video').remove()\n }\n }\n\n addVideoSource()\n\n /*\n |----------------------------------------------------------------\n | Smooth Scroll\n |----------------------------------------------------------------\n */\n\n function smoothScroll(e) {\n var $target = $($(this).attr('data-smooth-scroll'))\n\n if (!$target.size()) {\n var href = $(this).attr('href').split('#')\n $target = $('#' + href[href.length - 1])\n }\n\n if ($target.size()) {\n e.preventDefault()\n\n $('html, body').animate(\n {\n scrollTop: $target.offset().top - 50,\n },\n 250,\n )\n }\n }\n\n let resizedTo = 'desktop'\n\n function configureMenus() {\n if (window.innerWidth <= 979) {\n if (resizedTo === 'desktop') {\n //combine menus\n $('ul.utility-menu > li').addClass('moved-item')\n $('ul.utility-menu > li').appendTo('ul.main-menu')\n\n $('.mega-menu-all-wrapped').addClass('moved-item')\n $('.mega-menu-all-wrapped').appendTo('.primary-navigation-wrapper')\n\n $('.util-search').addClass('moved-item')\n $('.util-search').appendTo('.primary-navigation-wrapper')\n resizedTo = 'mobile'\n }\n\n }\n\n if (window.innerWidth > 979) {\n if (resizedTo === 'mobile') {\n //split menus\n $('ul.main-menu > li.moved-item').appendTo('ul.utility-menu')\n $('ul.main-menu').remove('ul.main-menu > li.moved-item')\n\n $('.util-search.moved-item').appendTo('.site-utility .columns-12')\n // $('.util-search').remove('.moved-item')\n resizedTo = 'desktop'\n }\n }\n }\n\n /*\n |----------------------------------------------------------------\n | Filter form Error Handling\n |----------------------------------------------------------------\n */\n\n $('form[method=\"get\"]').submit(function () {\n $(this).find(':input').each(function () {\n var inp = $(this)\n if (!inp.val()) {\n inp.remove()\n }\n })\n })\n\n $('.taxonomy-select').on('change', function () {\n var taxSelects = $('.search-form').find('.taxonomy-select')\n taxSelects = Array.from(taxSelects)\n var formHasValue = taxSelects.reduce(function (acc, curr) {\n return !!curr.options[curr.selectedIndex].value || acc\n }, false)\n\n if (formHasValue) {\n $('#filter-submit-button').removeAttr('disabled')\n } else {\n $('#filter-submit-button').addAttr('disabled')\n }\n })\n\n $('.only-filter .select-container .taxonomy-select').on(\n 'change',\n function () {\n this.form.submit()\n },\n )\n\n $('#search-input').on('change input', function (e) {\n if ($(this).val()) {\n $('#filter-submit-button').removeAttr('disabled')\n } else if (!$(this.val())) {\n $('#filter-submit-button').addAttr('disabled')\n }\n })\n\n // dynamically set the height of image container based on an absolute positioned elements height\n function setCtaHeight() {\n var parent = $('.right-floating-content-full-width')\n var contentHeight = parent.find('.content-container').outerHeight()\n var image = parent.find('.image-column')\n\n if (window.innerWidth > 979) {\n image.css({\n height: contentHeight + 200 + 'px',\n })\n } else {\n image.css({\n height: 'auto',\n })\n }\n }\n\n function setTopOffset(parent, element) {\n var container = $(parent)\n container.each(function () {\n var self = $(this)\n var headingHeight = self.find('.heading').outerHeight()\n ? self.find('.heading').outerHeight()\n : 0\n var subHeadingHeight = self.find('.subtitle').outerHeight()\n ? self.find('.subtitle').outerHeight()\n : 0\n\n var cta = self.find(element)\n\n var offset = headingHeight + subHeadingHeight\n\n if (window.innerWidth > 768) {\n cta.css({ top: offset + 'px', 'margin-bottom': offset })\n } else {\n cta.css({ top: subHeadingHeight + 'px' })\n }\n\n if (window.innerWidth <= 768) {\n cta.css({ top: '0', 'margin-bottom': 0 })\n }\n })\n }
18\n\n function setSlideoutContentPosition() {\n $('.slideout-item').each(function () {\n // calculate the offset so the hidden slideout aligns with the left edge of the container\n var containerPosition = $(this).parent().position()\n\n // the position of the loop-content item\n // should always be the starting point of our offset and the position of the hidden element will be\n // relative to this\n var contentPosition = $(this).find('.loop-content').position()\n\n if (containerPosition && contentPosition) {\n var padding = 20\n var leftOffset =\n containerPosition.left - contentPosition.left + padding\n $(this).find('.loop-hidden').css({ left: leftOffset + 'px' })\n }\n })\n }\n\n /*\n |----------------------------------------------------------------\n | Window resize event handler with initial function calls\n |----------------------------------------------------------------\n */\n setCtaHeight()\n configureMenus()\n\n var delay = 250,\n throttled = false\n\n let height = window.outerHeight\n let width = window.outerWidth\n\n $(window).on('resize', function (e) {\n // resize events can fire on mobile without actually changing dimensions.\n // see: https://stackoverflow.com/questions/8898412/iphone-ipad-triggering-unexpected-resize-events\n if (height !== window.outerHeight || width !== window.outerWidth) {\n height = window.outerHeight\n width = window.outerWidth\n if (!throttled) {\n configureMenus()\n throttled = true\n // set a timeout to un-throttle\n setTimeout(function () {\n throttled = false\n }, delay)\n }\n }\n\n })\n\n // ensures that changes to banner announcement content forces cookie deprecation\n const announcement = $('.banner-announcement-container')\n if (announcement.length > 0) {\n const announcementCookieName = announcement.find('.close-banner').data().cookieName\n if (!getCookie(announcementCookieName)) {\n announcement.slideToggle()\n }\n $('.close-banner').on('click', function () {\n announcement.slideUp()\n // only cookie + hide if user explicitly closes the announcement.\n setCookie(announcementCookieName, true, 1)\n })\n }\n\n // Test\n\n $('[data-group]').each(function () {\n var $allTarget = $(this).find('[data-target]')\n var $allClick = $(this).find('[data-click]')\n var activeClass = 'active_'\n\n $allTarget.first().addClass(activeClass)\n $allClick.first().addClass(activeClass)\n\n $allClick.click(function (e) {\n e.preventDefault()\n\n var id = $(this).data('click')\n var $target = $('[data-target=\"' + id + '\"]')\n\n $allClick.removeClass(activeClass)\n $allTarget.removeClass(activeClass)\n\n $target.addClass(activeClass)\n $(this).addClass(activeClass)\n })\n })\n\n //test end-----------------\n})\n\n\n//# sourceURL=webpack://strukture/./scripts/site-js.js?"); 19 /***/ 20 }
20 21 /******/ 22 23 }; 24 /************************************************************************/ 25 26 /******/ 27 28 /******/ 29 // startup 30 31 /******/ 32 // Load entry module and return exports 33 34 /******/ 35 // This entry module can't be inlined because the eval devtool is used. 36 37 /******/ 38 39 var __webpack_exports__ = {}; 40 /******/ 41 42 __webpack_modules__["./scripts/site-js.js"](); 43 /******/ 44 45 /******/ 46 47})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.