{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/api/crud-manager.js","webpack:///./node_modules/@png/npm-svg-icon/src/index.js","webpack:///./node_modules/@png/npm-svg-icon/node_modules/@iconfu/svg-inject/dist/svg-inject.js","webpack:///./src/js/modules/address-lookup.js","webpack:///./src/js/modules/clear-cache.js","webpack:///./src/js/modules/recaptcha.js","webpack:///./src/js/modules/light-gallery.js","webpack:///./src/js/modules/overview-page-filters.js","webpack:///./src/js/utils/index.js","webpack:///./src/js/utils/build-api-parameters.js","webpack:///./src/js/utils/get-url-parameter.js","webpack:///./src/js/modules/related-pages-overview.js","webpack:///./src/js/modules/latest-pages-overview.js","webpack:///./src/js/modules/sticky.js","webpack:///./src/js/modules/video.js","webpack:///./src/js/modules/mark-word.js","webpack:///./node_modules/mark.js/dist/mark.js","webpack:///./node_modules/@png/npm-header/src/js/components/menu-toggle.js","webpack:///./node_modules/@png/npm-header/src/js/helpers/scrollbar-width.js","webpack:///./node_modules/@png/npm-header/src/js/components/submenu-toggle.js","webpack:///./node_modules/@png/npm-header/src/js/helpers/siblings.js","webpack:///./node_modules/@png/npm-header/src/js/index.js","webpack:///./src/js/modules/result-pagination.js","webpack:///./src/js/api/json-to-view.js","webpack:///./src/js/modules/content-search.js","webpack:///./node_modules/jump.js/dist/jump.module.js","webpack:///./src/js/modules/smooth-scroll.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/js/sites/cloud/index.js","webpack:///./node_modules/jquery-ajax-unobtrusive/dist/jquery.unobtrusive-ajax.js","webpack:///./node_modules/lightgallery.js/lib/js/lightgallery.js","webpack:///./node_modules/lightgallery.js/lib/js/lg-utils.js","webpack:///./node_modules/lg-thumbnail.js/dist/lg-thumbnail.js","webpack:///./node_modules/lg-autoplay.js/dist/lg-autoplay.js","webpack:///./node_modules/lg-video.js/dist/lg-video.js","webpack:///./node_modules/lg-fullscreen.js/dist/lg-fullscreen.js","webpack:///./node_modules/lg-pager.js/dist/lg-pager.js","webpack:///./node_modules/lg-zoom.js/dist/lg-zoom.js","webpack:///./node_modules/lg-hash.js/dist/lg-hash.js","webpack:///./node_modules/lg-share.js/dist/lg-share.js","webpack:///./src/js/modules/cookie-bar.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","ApiManager","options","this","config","token","Cookies","url","data","request","accept","method","body","lang","document","documentElement","headers","Headers","length","toLowerCase","append","cache","JSON","stringify","fetch","then","response","ok","contentType","indexOf","json","text","Promise","reject","responseData","SvgIcon","querySelectorAll","SVGInject","window","xmlSerializer","domParser","_CREATE_ELEMENT_","_GET_ELEMENTS_BY_TAG_NAME_","_LENGTH_","_STYLE_","_TITLE_","_UNDEFINED_","_SET_ATTRIBUTE_","_GET_ATTRIBUTE_","NULL","__SVGINJECT","ID_SUFFIX","ID_SUFFIX_REGEX","RegExp","LOAD_FAIL","SVG_NOT_SUPPORTED","SVG_INVALID","ATTRIBUTE_EXCLUSION_NAMES","A_ELEMENT","IS_SVG_SUPPORTED","SVGRect","DEFAULT_OPTIONS","useCache","copyAttributes","makeIdsUnique","IRI_TAG_PROPERTIES_MAP","clipPath","cursor","filter","linearGradient","marker","mask","pattern","radialGradient","INJECTED","FAIL","uniqueIdCounter","svgElemToSvgString","svgElement","XMLSerializer","serializeToString","svgElem","idElem","tagName","j","idSuffix","idElements","iriTagNames","iriProperties","changed","localName","id","forEach","refAttrName","iri","test","trim","mappedProperty","push","propertyName","newValue","funcIriRegex","descElements","element","textContent","replace","hasAttributes","inject","imgElem","absUrl","parentNode","attribute","attributeName","attributeValue","attributes","titleElem","firstElementChild","insertBefore","beforeInject","injectElem","replaceChild","removeOnLoadAttribute","afterInject","svgInvalid","mergeOptions","mergedOptions","args","arguments","argument","buildSvgElement","svgStr","verify","svgDoc","DOMParser","parseFromString","svgStringToSvgDoc","e","div","createElement","innerHTML","removeAttribute","errorMessage","msg","console","error","fail","status","onFail","svgNotSupported","loadFail","removeEventListeners","onload","onerror","imgNotSet","SVGInjectInstance","createSVGInject","globalName","defaultOptions","svgLoadCache","img","run","resolve","allFinish","onAllFinish","injectIndex","injectCount","finish","SVGInjectElement","callback","svgInjectAttributeValue","Array","isArray","beforeLoad","src","onFinishCallbacks","onFinish","onFinishCallback","href","useCacheOption","makeIdsUniqueOption","setSvgLoadCacheValue","val","svgLoad","handleLoadValue","loadValue","hasUniqueIds","svgString","uniqueIdsSvgString","makeIdsUniqueCached","isCallbackQueue","errorCallback","req","XMLHttpRequest","onreadystatechange","readyState","responseXML","responseText","open","send","loadSvg","svgXml","Document","afterLoad","svgElemOrSvgString","isString","SVGElement","css","head","style","type","appendChild","createTextNode","addStyleToHead","setOptions","err","fallbackSrc","AddressLookup","forms","constructor","getOwnPropertyNames","keys","event","form","target","getAttribute","targetInput","tempEl","elements","namedItem","cbName","Math","floor","random","script","removeChild","street","Street","city","City","addEventListener","resolveLocation","ClearCache","moduleList","preventDefault","Authorization","res","location","reload","Recaptcha","props","recaptchaFormButtons","element_","tag","button_","button","dataset","initialized","insertAdjacentHTML","submitInput","cssText","insertAdjacentElement","tokenInput","display","parentForm","findParentByTag","hasParsley","classList","contains","$","parsley","validate","checkValidity","click","isValid","grecaptcha","ready","execute","action","LightGallery","lightGallery","actualSize","autoplayControls","download","fullScreen","selector","share","showThumbByDefault","OverviewPageFilters","querySelector","pageId","jsonData","params","URLSearchParams","search","FilterItems","activeFilters","array","filterInput","filterData","item","map","sortedfilterData","a","b","sort","filterItem","isSelected","add","Option","set","toString","remove","parentId","api","parameters","parameterLink","utils","buildApiParameters","_embedded","childproperties","catch","renderFilterInputs","urlParams","firstValueSet","linkArray","paramKey","paramValue","has","questionMark","join","getUrlParameter","relatedPagesOverview","apiManager","itemsToShow","filterName","filterValue","Number","isNaN","items","template","html","latestPagesOverview","parentid","Sticky","velocity","checkScrollPosition","pageYOffset","Video","player","setVolume","iframe","includes","isVimeo","vimeo","Vimeo","Player","instance","amount","controls","mute","unmute","toggleSound","MarkSearchKeyword","searchKeyword","macro","Mark","mark","factory","_typeof","iterator","obj","classCallCheck","Constructor","TypeError","createClass","defineProperties","descriptor","configurable","writable","protoProps","staticProps","_extends","assign","source","DOMIterator","ctx","iframes","undefined","exclude","iframesTimeout","filteredCtx","NodeList","isPrototypeOf","slice","isDescendant","contexts","ifr","successFn","errorFn","doc","ifrWin","contentWindow","Error","bl","_this","called","tout","listener","clearTimeout","isIframeBlank","removeEventListener","getIframeContents","setTimeout","observeIframeLoad","done","_this2","eachCalled","forEachIframe","waitForIframes","handled","each","_this3","end","checkEnd","matches","onIframeReady","con","whatToShow","createNodeIterator","contents","node","prevNode","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_FOLLOWING","itr","previousNode","nextNode","currIfr","ifrDict","compareNodeIframe","eCb","fCb","_this4","createInstanceOnIframe","forEachNode","eachCb","filterCb","doneCb","_getIteratorNode","_this5","createIterator","getIteratorNode","checkIframeFilter","ifrNode","handleOpenIframes","_this6","getContexts","iterateThroughNodes","selectors","fn","matchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","webkitMatchesSelector","match","every","sel","Mark$1","ie","ua","navigator","userAgent","level","log","opt","debug","str","wildcards","setupWildcardsRegExp","escapeStr","synonyms","createSynonymsRegExp","ignoreJoiners","ignorePunctuation","setupIgnoreJoinersRegExp","diacritics","createDiacriticsRegExp","createMergedBlanksRegExp","createJoinersRegExp","createWildcardsRegExp","createAccuracyRegExp","syn","sens","caseSensitive","joinerPlaceholder","index","k1","k2","processSynomyms","charAt","spaces","indx","original","nextChar","joiner","split","dct","ch","acc","accuracy","ls","limiters","lsJoin","limiter","sv","stack","kw","separateWordSearch","kwSplitted","parseFloat","noMatch","last","start","_callNoMatchOnInvalid","callNoMatchOnInvalidRanges","valid","range","parseInt","isNumeric","originalLength","string","max","offset","substring","cb","nodes","NodeFilter","SHOW_TEXT","matchesExclude","FILTER_REJECT","FILTER_ACCEPT","el","concat","hEl","startNode","splitText","ret","repl","setAttribute","className","dict","sibl","startStr","substr","endStr","wrapRangeInTextNode","k","previousSibling","regex","ignoreGroups","endCb","matchIdx","getTextNodes","exec","pos","lastIndex","_this7","wrapRangeInMappedTextNode","ranges","_this8","counter","_checkWhitespaceRange","checkWhitespaceRanges","parent","docFrag","createDocumentFragment","firstChild","normalizeTextNode","normalize","nodeType","nextSibling","nodeValue","regexp","_this9","totalMatches","acrossElements","_this10","_getSeparatedKeywords","getSeparatedKeywords","kwArr","keywords","kwArrLen","handler","createRegExp","term","rawRanges","_this11","checkRanges","wrapRangeFromIndex","_this12","SHOW_ELEMENT","unwrapMatches","matchesSel","_opt","markRegExp","markRanges","unmark","define","MenuToggle","rootModule","menuModals","modalTriggers","toggleMenu","reset","trigger","triggerModal","isAnimating","toggle","currentTarget","modalId","forceClose","modalList","from","menuModal","find","modal","openModal","animateModal","toggleAnimationState","paddingRight","overflow","innerWidth","clientWidth","SubmenuToggle","menus","desktopMenuBreakpoint","openUrlOnToggle","submenuToggle","close","onDocumentClick","getMenu","normalLinks","menu","normalLink","hasNestedSubmenu","stopPropagation","disableUrl","child","siblings","sibling","getSiblings","isDesktopMenu","Header","menuToggle","init","disableTransitions","destroy","ResultPagination","current","page","abs","pages","firstPage","lastPage","ceil","maxNumberOfElements","offsetLeft","reverse","offsetRight","addSeparator","total","perPage","generatePaginationArray","prevText","nextText","currentPage","newUrlParams","isActive","isInteger","firstItem","lastItem","unshift","elementPlaceholder","resultName","pagingData","totalPages","paginationArray","paginationItems","generateElements","ContentSearch","culture","resultPagination","render","searchQuery","q","newItems","contentData","replaceAll","newData","getSearchResults","searchResponse","templateView","ApiTemplate","JData","post","jsonToView","results","resultsCount","totalItems","setPagination","searchInput","renderSearchResults","easeInOutQuad","singleton","stop","easing","a11y","distance","duration","timeStart","timeElapsed","next","top","getBoundingClientRect","loop","timeCurrent","scrollTo","requestAnimationFrame","focus","scrollY","jumper","SmoothScroll","header","headerOffset","height","jump","registeredInModuleLoader","OldCookies","noConflict","extend","result","converter","path","defaults","expires","Date","setMilliseconds","getMilliseconds","toUTCString","write","encodeURIComponent","String","decodeURIComponent","escape","stringifiedAttributes","cookie","cookies","rdecode","parts","read","parse","getJSON","apply","withConverter","webpackPolyfill","deprecate","paths","children","CookieBar","RelatedPagesOverview","LatestPagesOverview","data_click","data_target","data_validation","getFunction","code","argNames","shift","Function","isMethodProxySafe","asyncOnBeforeSend","xhr","setRequestHeader","asyncOnSuccess","toUpperCase","update","prepend","replaceWith","asyncRequest","confirm","loading","beforeSend","show","complete","hide","success","getResponseHeader","$element","is","attr","formdata","FormData","v","file","files","processData","ajax","on","evt","parents","round","pageX","left","pageY","removeData","validationInfo","clickInfo","clickTarget","isCancel","hasClass","serializeArray","jQuery","_lgUtils","_lgUtils2","default","CustomEvent","bubbles","cancelable","detail","createEvent","initCustomEvent","Event","lgData","uid","lgModules","cssEasing","speed","width","addClass","startClass","backdropDuration","hideBarsDelay","useLeft","closable","escKey","keyPress","slideEndAnimatoin","hideControlOnEnd","mousewheel","getCaptionFromTitleOrAlt","appendSubHtmlTo","subHtmlSelectorRelative","preload","showAfterLoad","selectWithin","nextHtml","prevHtml","iframeMaxWidth","appendCounterTo","swipeThreshold","enableSwipe","enableDrag","dynamic","dynamicEl","galleryId","Plugin","lGalleryOn","lgBusy","hideBartimeout","isTouch","___slide","outer","_hash","hash","build","structure","slide","arrow","closeGallery","removeClass","list","subHtmlCont","setVendor","setTop","doCss","inner","prevScrollTop","scrollTop","wH","innerHeight","lGallery","transition","root","support","isVideo","html5","youtube","dailymotion","vk","addHtml","currentEle","subHtml","fL","loadContent","rec","delay","_img","_src","_poster","_srcset","_sizes","_html","_hasPoster","getResponsiveSrc","srcItms","rsWidth","rsSrc","__src","splice","wWidth","poster","responsive","srcset","sizes","_isVideo","videoClass","picturefill","_speed","fromTouch","fromThumb","_prevIndex","_length","_time","_next","_prev","downloadUrl","getElementById","prevIndex","arrowDisable","touchPrev","touchNext","goToNextSlide","goToPrevSlide","keyCode","prev","setTranslate","xValue","yValue","touchMove","startCoords","endCoords","touchEnd","opacity","isMoved","manageSwipeClass","targetTouches","isDraging","scrollLeft","deltaY","mousedown","off","lguid","label","wrap","wrapper","customEvent","dispatchEvent","Listener","events","_id","_event","param","f","require","u","1","global","thumbnailDefaults","thumbnail","animateThumb","currentPagerPosition","thumbWidth","thumbContHeight","thumbMargin","exThumbImage","toggleThumb","pullCaptionUp","enableThumbDrag","enableThumbSwipe","loadYoutubeThumbnail","youtubeThumbSize","loadVimeoThumbnail","vimeoThumbSize","loadDailymotionThumbnail","Thumbnail","core","thumbOuter","thumbOuterWidth","thumbTotalWidth","thumbIndex","thumbClickable","thumbkeyPress","$thumb","thumbList","vimeoErrorThumbSize","getThumb","thumb","thumbImg","vimeoId","offsetWidth","position","$this","vimeoVideoId","content","tempLeft","lgScript","getElementsByClassName","lgThumbnail","autoplayDefaults","autoplay","pause","progressBar","fourceAutoplay","appendAutoplayControlsTo","Autoplay","interval","fromAuto","canceledOnTouch","fourceAutoplayTemp","progress","startlAuto","cancelAuto","_progressBar","_progress","setInterval","clearInterval","lgAutoplay","videoDefaults","videoMaxWidth","youtubePlayerParams","vimeoPlayerParams","dailymotionPlayerParams","vkPlayerParams","videojs","videojsOptions","videoLoaded","loadVideo","play","maxWidth","loadOnClick","$el","youtubePlayer","vimeoPlayer","dailymotionPlayer","html5Player","postMessage","$f","_loadVideo","$tempImg","$videoSlide","vkPlayer","noposter","video","lgVideo","fullscreenDefaults","isFullScreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","Fullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","requestFullscreen","msRequestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","exitFullscreen","msExitFullscreen","mozCancelFullScreen","webkitExitFullscreen","fullscreen","lgFullscreen","pagerDefaults","pager","Pager","$pagerCont","$pagerOuter","timeout","pagerList","lgPager","isChrome","zoomDefaults","scale","zoom","enableZoomAfter","useLeftForZoom","Zoom","zoomabletimeout","zoomIcons","scaleVal","image","offsetX","offsetY","clientHeight","x","y","parentElement","callScale","resetZoom","fromIcon","nw","w","naturalWidth","tapped","zoomDrag","zoomSwipe","allowX","allowY","offsetHeight","distanceX","distanceY","_el","touchendZoom","minY","maxY","minX","maxX","lgZoom","hashDefaults","Hash","oldHash","_idx","history","pushState","title","pathname","lgHash","shareSefaults","facebook","facebookDropdownText","twitter","twitterDropdownText","googlePlus","googlePlusDropdownText","pinterest","pinterestDropdownText","Share","shareHtml","getSharePropsUrl","getShareProps","prop","shareProp","input","group1","lgShare","expireDays","cookiePath","approvedCookies","checkbox"],"mappings":"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","file":"sites/cloud/index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 330);\n","import Cookies from 'js-cookie';\r\n\r\n/**\r\n * Class fetch calls for POST, GET, PATCH and DELETE (CRUD)\r\n * @class\r\n * @author Max Swinkels \r\n */\r\nclass ApiManager {\r\n constructor(options = {}) {\r\n this.config = {\r\n token: Cookies.get('token'),\r\n ...options\r\n };\r\n }\r\n\r\n post(url, data) {\r\n return this.request('POST', url, data);\r\n }\r\n\r\n get(url, accept = null) {\r\n return this.request('GET', url, null, accept);\r\n }\r\n\r\n patch(url, data) {\r\n return this.request('PATCH', url, data);\r\n }\r\n\r\n delete(url, data) {\r\n return this.request('DELETE', url, data);\r\n }\r\n\r\n request(method, url, body, accept) {\r\n const { token } = this.config;\r\n const { lang } = document.documentElement;\r\n\r\n // Default headers\r\n const headers = new Headers({\r\n 'Accept-Language': lang.length ? lang.toLowerCase() : 'nl',\r\n 'Content-Type': 'application/json'\r\n });\r\n\r\n if (token) {\r\n headers.append('Authorization', `Bearer ${token}`); // checks if client is logged in to add header Authorization\r\n }\r\n\r\n if (accept) {\r\n headers.append('Accept', accept); // add accept header if it has been entered with the 'GET' method. for example for retrieving an html template\r\n }\r\n\r\n const options = {\r\n method,\r\n cache: 'no-cache',\r\n mode: 'cors',\r\n headers\r\n };\r\n\r\n if (body) {\r\n options.body = JSON.stringify(body); // stringify all data variables\r\n }\r\n\r\n // handle response, format in contentType and return to fetch API call\r\n const handleResponse = response => {\r\n if (response.ok) {\r\n const contentType = response.headers.get('content-type');\r\n if (contentType && contentType.indexOf('application/json') !== -1) {\r\n return response.json();\r\n }\r\n return response.text();\r\n }\r\n return Promise.reject(response);\r\n };\r\n\r\n return fetch(url, options)\r\n .then(handleResponse)\r\n .then(responseData => responseData);\r\n }\r\n}\r\n\r\nexport default ApiManager;\r\n","import SVGInject from '@iconfu/svg-inject';\r\n\r\nclass SvgIcon {\r\n constructor(options = {}) {\r\n this.config = {\r\n module: document.querySelectorAll('[data-module=\"SvgIcon\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n SVGInject(this.config.module);\r\n }\r\n}\r\n\r\nexport default SvgIcon;\r\n","/**\n * SVGInject - Version 1.2.2\n * A tiny, intuitive, robust, caching solution for injecting SVG files inline into the DOM.\n *\n * https://github.com/iconfu/svg-inject\n *\n * Copyright (c) 2018 INCORS, the creators of iconfu.com\n * @license MIT License - https://github.com/iconfu/svg-inject/blob/master/LICENSE\n */\n\n(function(window, document) {\n // constants for better minification\n var _CREATE_ELEMENT_ = 'createElement';\n var _GET_ELEMENTS_BY_TAG_NAME_ = 'getElementsByTagName';\n var _LENGTH_ = 'length';\n var _STYLE_ = 'style';\n var _TITLE_ = 'title';\n var _UNDEFINED_ = 'undefined';\n var _SET_ATTRIBUTE_ = 'setAttribute';\n var _GET_ATTRIBUTE_ = 'getAttribute';\n\n var NULL = null;\n\n // constants\n var __SVGINJECT = '__svgInject';\n var ID_SUFFIX = '--inject-';\n var ID_SUFFIX_REGEX = new RegExp(ID_SUFFIX + '\\\\d+', \"g\");\n var LOAD_FAIL = 'LOAD_FAIL';\n var SVG_NOT_SUPPORTED = 'SVG_NOT_SUPPORTED';\n var SVG_INVALID = 'SVG_INVALID';\n var ATTRIBUTE_EXCLUSION_NAMES = ['src', 'alt', 'onload', 'onerror'];\n var A_ELEMENT = document[_CREATE_ELEMENT_]('a');\n var IS_SVG_SUPPORTED = typeof SVGRect != _UNDEFINED_;\n var DEFAULT_OPTIONS = {\n useCache: true,\n copyAttributes: true,\n makeIdsUnique: true\n };\n // Map of IRI referenceable tag names to properties that can reference them. This is defined in\n // https://www.w3.org/TR/SVG11/linking.html#processingIRI\n var IRI_TAG_PROPERTIES_MAP = {\n clipPath: ['clip-path'],\n 'color-profile': NULL,\n cursor: NULL,\n filter: NULL,\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-end', 'marker-mid', 'marker-start'],\n mask: NULL,\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke']\n };\n var INJECTED = 1;\n var FAIL = 2;\n\n var uniqueIdCounter = 1;\n var xmlSerializer;\n var domParser;\n\n\n // creates an SVG document from an SVG string\n function svgStringToSvgDoc(svgStr) {\n domParser = domParser || new DOMParser();\n return domParser.parseFromString(svgStr, 'text/xml');\n }\n\n\n // searializes an SVG element to an SVG string\n function svgElemToSvgString(svgElement) {\n xmlSerializer = xmlSerializer || new XMLSerializer();\n return xmlSerializer.serializeToString(svgElement);\n }\n\n\n // Returns the absolute url for the specified url\n function getAbsoluteUrl(url) {\n A_ELEMENT.href = url;\n return A_ELEMENT.href;\n }\n\n\n // Load svg with an XHR request\n function loadSvg(url, callback, errorCallback) {\n if (url) {\n var req = new XMLHttpRequest();\n req.onreadystatechange = function() {\n if (req.readyState == 4) {\n // readyState is DONE\n var status = req.status;\n if (status == 200) {\n // request status is OK\n callback(req.responseXML, req.responseText.trim());\n } else if (status >= 400) {\n // request status is error (4xx or 5xx)\n errorCallback();\n } else if (status == 0) {\n // request status 0 can indicate a failed cross-domain call\n errorCallback();\n }\n }\n };\n req.open('GET', url, true);\n req.send();\n }\n }\n\n\n // Copy attributes from img element to svg element\n function copyAttributes(imgElem, svgElem) {\n var attribute;\n var attributeName;\n var attributeValue;\n var attributes = imgElem.attributes;\n for (var i = 0; i < attributes[_LENGTH_]; i++) {\n attribute = attributes[i];\n attributeName = attribute.name;\n // Only copy attributes not explicitly excluded from copying\n if (ATTRIBUTE_EXCLUSION_NAMES.indexOf(attributeName) == -1) {\n attributeValue = attribute.value;\n // If img attribute is \"title\", insert a title element into SVG element\n if (attributeName == _TITLE_) {\n var titleElem;\n var firstElementChild = svgElem.firstElementChild;\n if (firstElementChild && firstElementChild.localName.toLowerCase() == _TITLE_) {\n // If the SVG element's first child is a title element, keep it as the title element\n titleElem = firstElementChild;\n } else {\n // If the SVG element's first child element is not a title element, create a new title\n // ele,emt and set it as the first child\n titleElem = document[_CREATE_ELEMENT_ + 'NS']('http://www.w3.org/2000/svg', _TITLE_);\n svgElem.insertBefore(titleElem, firstElementChild);\n }\n // Set new title content\n titleElem.textContent = attributeValue;\n } else {\n // Set img attribute to svg element\n svgElem[_SET_ATTRIBUTE_](attributeName, attributeValue);\n }\n }\n }\n }\n\n\n // This function appends a suffix to IDs of referenced elements in the in order to to avoid ID collision\n // between multiple injected SVGs. The suffix has the form \"--inject-X\", where X is a running number which is\n // incremented with each injection. References to the IDs are adjusted accordingly.\n // We assume tha all IDs within the injected SVG are unique, therefore the same suffix can be used for all IDs of one\n // injected SVG.\n function makeIdsUnique(svgElem) {\n var idSuffix = ID_SUFFIX + uniqueIdCounter++;\n // Get all elements with an ID. The SVG spec recommends to put referenced elements inside elements, but\n // this is a requirement, therefore we have to search for IDs in the whole SVG.\n var idElements = svgElem.querySelectorAll('[id]');\n var idElem;\n var tagName;\n var iriTagNames = {};\n var iriProperties = [];\n var changed = false;\n var i, j;\n\n for (i = 0; i < idElements[_LENGTH_]; i++) {\n idElem = idElements[i];\n tagName = idElem.localName; // Use non-namespaced tag name\n // Make ID unique if tag name is IRI referenceable\n if (tagName in IRI_TAG_PROPERTIES_MAP) {\n changed = true;\n iriTagNames[tagName] = 1;\n // Add suffix to element's ID\n idElem.id += idSuffix;\n // Replace ids in xlink:ref and href attributes\n ['xlink:href', 'href'].forEach(function(refAttrName) {\n var iri = idElem[_GET_ATTRIBUTE_](refAttrName);\n if (/^\\s*#/.test(iri)) { // Check if iri is non-null and has correct format\n idElem[_SET_ATTRIBUTE_](refAttrName, iri.trim() + idSuffix);\n }\n });\n }\n }\n\n // Get all properties that are mapped to the found tags\n for (tagName in iriTagNames) {\n (IRI_TAG_PROPERTIES_MAP[tagName] || [tagName]).forEach(function (mappedProperty) {\n // Add mapped properties to array of iri referencing properties.\n // Use linear search here because the number of possible entries is very small (maximum 11)\n if (iriProperties.indexOf(mappedProperty) < 0) {\n iriProperties.push(mappedProperty);\n }\n });\n }\n\n // Replace IDs with new IDs in all references\n if (iriProperties[_LENGTH_]) {\n // Add \"style\" to properties, because it may contain references in the form 'style=\"fill:url(#myFill)\"'\n iriProperties.push(_STYLE_);\n // Regular expression for functional notations of an IRI references. This will find occurences in the form\n // url(#anyId) or url(\"#anyId\") (for Internet Explorer)\n var funcIriRegex = /url\\(\"?#([a-zA-Z][\\w:.-]*)\"?\\)/g;\n // Run through all elements of the SVG and replace IDs in references. \n // To get all descending elements, getElementsByTagName('*') seems to perform faster than querySelectorAll('*'). \n // Since svgElem.getElementsByTagName('*') does not return the svg element itself, we have to handle it separately. \n var descElements = svgElem[_GET_ELEMENTS_BY_TAG_NAME_]('*');\n var element = svgElem;\n var propertyName;\n var value;\n var newValue;\n for (i = -1; element != null;) {\n if (element.localName == _STYLE_) {\n value = element.textContent;\n newValue = value && value.replace(funcIriRegex, 'url(#$1' + idSuffix + ')');\n if (newValue !== value) {\n element.textContent = newValue;\n }\n } else if (element.hasAttributes()) {\n // Run through all property names for which IDs were found\n for (j = 0; j < iriProperties[_LENGTH_]; j++) {\n propertyName = iriProperties[j];\n value = element[_GET_ATTRIBUTE_](propertyName);\n newValue = value && value.replace(funcIriRegex, 'url(#$1' + idSuffix + ')');\n if (newValue !== value) {\n element[_SET_ATTRIBUTE_](propertyName, newValue);\n }\n }\n }\n element = descElements[++i]; \n }\n }\n\n // return true if SVG element has changed\n return changed;\n }\n\n // For cached SVGs the IDs are made unique by simply replacing the already inserted unique IDs with a \n // higher ID counter. This is much more performant than a call to makeIdsUnique().\n function makeIdsUniqueCached(svgString) {\n return svgString.replace(ID_SUFFIX_REGEX, ID_SUFFIX + uniqueIdCounter++);\n }\n\n // Inject SVG by replacing the img element with the SVG element in the DOM\n function inject(imgElem, svgElem, absUrl, options) {\n if (svgElem) {\n svgElem[_SET_ATTRIBUTE_]('data-inject-url', absUrl);\n var parentNode = imgElem.parentNode;\n if (parentNode) {\n if (options.copyAttributes) {\n copyAttributes(imgElem, svgElem);\n }\n // Invoke beforeInject hook if set\n var beforeInject = options.beforeInject;\n var injectElem = (beforeInject && beforeInject(imgElem, svgElem)) || svgElem;\n // Replace img element with new element. This is the actual injection.\n parentNode.replaceChild(injectElem, imgElem);\n // Mark img element as injected\n imgElem[__SVGINJECT] = INJECTED;\n removeOnLoadAttribute(imgElem);\n // Invoke afterInject hook if set\n var afterInject = options.afterInject;\n if (afterInject) {\n afterInject(imgElem, injectElem);\n }\n }\n } else {\n svgInvalid(imgElem, options);\n }\n }\n\n\n // Merges any number of options objects into a new object\n function mergeOptions() {\n var mergedOptions = {};\n var args = arguments;\n // Iterate over all specified options objects and add all properties to the new options object\n for (var i = 0; i < args[_LENGTH_]; i++) {\n var argument = args[i];\n for (var key in argument) {\n if (argument.hasOwnProperty(key)) {\n mergedOptions[key] = argument[key];\n }\n }\n }\n return mergedOptions;\n }\n\n\n // Adds the specified CSS to the document's element\n function addStyleToHead(css) {\n var head = document[_GET_ELEMENTS_BY_TAG_NAME_]('head')[0];\n if (head) {\n var style = document[_CREATE_ELEMENT_](_STYLE_);\n style.type = 'text/css';\n style.appendChild(document.createTextNode(css));\n head.appendChild(style);\n }\n }\n\n\n // Builds an SVG element from the specified SVG string\n function buildSvgElement(svgStr, verify) {\n if (verify) {\n var svgDoc;\n try {\n // Parse the SVG string with DOMParser\n svgDoc = svgStringToSvgDoc(svgStr);\n } catch(e) {\n return NULL;\n }\n if (svgDoc[_GET_ELEMENTS_BY_TAG_NAME_]('parsererror')[_LENGTH_]) {\n // DOMParser does not throw an exception, but instead puts parsererror tags in the document\n return NULL;\n }\n return svgDoc.documentElement; \n } else {\n var div = document.createElement('div');\n div.innerHTML = svgStr;\n return div.firstElementChild;\n }\n }\n\n\n function removeOnLoadAttribute(imgElem) {\n // Remove the onload attribute. Should only be used to remove the unstyled image flash protection and\n // make the element visible, not for removing the event listener.\n imgElem.removeAttribute('onload');\n }\n\n function errorMessage(msg) {\n console.error('SVGInject: ' + msg);\n }\n\n\n function fail(imgElem, status, options) {\n imgElem[__SVGINJECT] = FAIL;\n if (options.onFail) {\n options.onFail(imgElem, status);\n } else {\n errorMessage(status);\n }\n }\n\n\n function svgInvalid(imgElem, options) {\n removeOnLoadAttribute(imgElem);\n fail(imgElem, SVG_INVALID, options);\n }\n\n\n function svgNotSupported(imgElem, options) {\n removeOnLoadAttribute(imgElem);\n fail(imgElem, SVG_NOT_SUPPORTED, options);\n }\n\n\n function loadFail(imgElem, options) {\n fail(imgElem, LOAD_FAIL, options);\n }\n\n\n function removeEventListeners(imgElem) {\n imgElem.onload = NULL;\n imgElem.onerror = NULL;\n }\n\n\n function imgNotSet(msg) {\n errorMessage('no img element');\n }\n\n\n function createSVGInject(globalName, options) {\n var defaultOptions = mergeOptions(DEFAULT_OPTIONS, options);\n var svgLoadCache = {};\n\n if (IS_SVG_SUPPORTED) {\n // If the browser supports SVG, add a small stylesheet that hides the elements until\n // injection is finished. This avoids showing the unstyled SVGs before style is applied.\n addStyleToHead('img[onload^=\"' + globalName + '(\"]{visibility:hidden;}');\n }\n\n\n /**\n * SVGInject\n *\n * Injects the SVG specified in the `src` attribute of the specified `img` element or array of `img`\n * elements. Returns a Promise object which resolves if all passed in `img` elements have either been\n * injected or failed to inject (Only if a global Promise object is available like in all modern browsers\n * or through a polyfill).\n *\n * Options:\n * useCache: If set to `true` the SVG will be cached using the absolute URL. Default value is `true`.\n * copyAttributes: If set to `true` the attributes will be copied from `img` to `svg`. Dfault value\n * is `true.\n * makeIdsUnique: If set to `true` the ID of elements in the `` element that can be references by\n * property values (for example 'clipPath') are made unique by appending \"--inject-X\", where X is a\n * running number which increases with each injection. This is done to avoid duplicate IDs in the DOM.\n * beforeLoad: Hook before SVG is loaded. The `img` element is passed as a parameter. If the hook returns\n * a string it is used as the URL instead of the `img` element's `src` attribute.\n * afterLoad: Hook after SVG is loaded. The loaded `svg` element and `svg` string are passed as a\n * parameters. If caching is active this hook will only get called once for injected SVGs with the\n * same absolute path. Changes to the `svg` element in this hook will be applied to all injected SVGs\n * with the same absolute path. It's also possible to return an `svg` string or `svg` element which\n * will then be used for the injection.\n * beforeInject: Hook before SVG is injected. The `img` and `svg` elements are passed as parameters. If\n * any html element is returned it gets injected instead of applying the default SVG injection.\n * afterInject: Hook after SVG is injected. The `img` and `svg` elements are passed as parameters.\n * onAllFinish: Hook after all `img` elements passed to an SVGInject() call have either been injected or\n * failed to inject.\n * onFail: Hook after injection fails. The `img` element and a `status` string are passed as an parameter.\n * The `status` can be either `'SVG_NOT_SUPPORTED'` (the browser does not support SVG),\n * `'SVG_INVALID'` (the SVG is not in a valid format) or `'LOAD_FAILED'` (loading of the SVG failed).\n *\n * @param {HTMLImageElement} img - an img element or an array of img elements\n * @param {Object} [options] - optional parameter with [options](#options) for this injection.\n */\n function SVGInject(img, options) {\n options = mergeOptions(defaultOptions, options);\n\n var run = function(resolve) {\n var allFinish = function() {\n var onAllFinish = options.onAllFinish;\n if (onAllFinish) {\n onAllFinish();\n } \n resolve && resolve();\n };\n\n if (img && typeof img[_LENGTH_] != _UNDEFINED_) {\n // an array like structure of img elements\n var injectIndex = 0;\n var injectCount = img[_LENGTH_];\n\n if (injectCount == 0) {\n allFinish();\n } else {\n var finish = function() {\n if (++injectIndex == injectCount) {\n allFinish();\n }\n };\n \n for (var i = 0; i < injectCount; i++) {\n SVGInjectElement(img[i], options, finish);\n }\n }\n } else {\n // only one img element\n SVGInjectElement(img, options, allFinish);\n }\n };\n\n // return a Promise object if globally available\n return typeof Promise == _UNDEFINED_ ? run() : new Promise(run);\n }\n\n\n // Injects a single svg element. Options must be already merged with the default options.\n function SVGInjectElement(imgElem, options, callback) {\n if (imgElem) {\n var svgInjectAttributeValue = imgElem[__SVGINJECT];\n if (!svgInjectAttributeValue) {\n removeEventListeners(imgElem);\n\n if (!IS_SVG_SUPPORTED) {\n svgNotSupported(imgElem, options);\n callback();\n return;\n }\n // Invoke beforeLoad hook if set. If the beforeLoad returns a value use it as the src for the load\n // URL path. Else use the imgElem's src attribute value.\n var beforeLoad = options.beforeLoad;\n var src = (beforeLoad && beforeLoad(imgElem)) || imgElem[_GET_ATTRIBUTE_]('src');\n\n if (!src) {\n // If no image src attribute is set do no injection. This can only be reached by using javascript\n // because if no src attribute is set the onload and onerror events do not get called\n if (src === '') {\n loadFail(imgElem, options);\n }\n callback();\n return;\n }\n\n // set array so later calls can register callbacks\n var onFinishCallbacks = [];\n imgElem[__SVGINJECT] = onFinishCallbacks;\n\n var onFinish = function() {\n callback();\n onFinishCallbacks.forEach(function(onFinishCallback) {\n onFinishCallback();\n });\n };\n\n var absUrl = getAbsoluteUrl(src);\n var useCacheOption = options.useCache;\n var makeIdsUniqueOption = options.makeIdsUnique;\n\n var setSvgLoadCacheValue = function(val) {\n if (useCacheOption) {\n svgLoadCache[absUrl].forEach(function(svgLoad) {\n svgLoad(val);\n });\n svgLoadCache[absUrl] = val;\n }\n };\n\n if (useCacheOption) {\n var svgLoad = svgLoadCache[absUrl];\n\n var handleLoadValue = function(loadValue) {\n if (loadValue === LOAD_FAIL) {\n loadFail(imgElem, options);\n } else if (loadValue === SVG_INVALID) {\n svgInvalid(imgElem, options);\n } else {\n var hasUniqueIds = loadValue[0];\n var svgString = loadValue[1];\n var uniqueIdsSvgString = loadValue[2];\n var svgElem;\n \n if (makeIdsUniqueOption) {\n if (hasUniqueIds === NULL) {\n // IDs for the SVG string have not been made unique before. This may happen if previous\n // injection of a cached SVG have been run with the option makedIdsUnique set to false\n svgElem = buildSvgElement(svgString, false);\n hasUniqueIds = makeIdsUnique(svgElem);\n\n loadValue[0] = hasUniqueIds;\n loadValue[2] = hasUniqueIds && svgElemToSvgString(svgElem);\n } else if (hasUniqueIds) {\n // Make IDs unique for already cached SVGs with better performance\n svgString = makeIdsUniqueCached(uniqueIdsSvgString);\n }\n }\n\n svgElem = svgElem || buildSvgElement(svgString, false);\n \n inject(imgElem, svgElem, absUrl, options);\n }\n onFinish();\n };\n\n if (typeof svgLoad != _UNDEFINED_) {\n // Value for url exists in cache\n if (svgLoad.isCallbackQueue) {\n // Same url has been cached, but value has not been loaded yet, so add to callbacks\n svgLoad.push(handleLoadValue);\n } else {\n handleLoadValue(svgLoad);\n }\n return;\n } else {\n var svgLoad = [];\n // set property isCallbackQueue to Array to differentiate from array with cached loaded values \n svgLoad.isCallbackQueue = true;\n svgLoadCache[absUrl] = svgLoad;\n }\n }\n\n // Load the SVG because it is not cached or caching is disabled\n loadSvg(absUrl, function(svgXml, svgString) {\n // Use the XML from the XHR request if it is an instance of Document. Otherwise\n // (for example of IE9), create the svg document from the svg string.\n var svgElem = svgXml instanceof Document ? svgXml.documentElement : buildSvgElement(svgString, true);\n\n var afterLoad = options.afterLoad;\n if (afterLoad) {\n // Invoke afterLoad hook which may modify the SVG element. After load may also return a new\n // svg element or svg string\n var svgElemOrSvgString = afterLoad(svgElem, svgString) || svgElem; \n if (svgElemOrSvgString) {\n // Update svgElem and svgString because of modifications to the SVG element or SVG string in\n // the afterLoad hook, so the modified SVG is also used for all later cached injections\n var isString = typeof svgElemOrSvgString == 'string';\n svgString = isString ? svgElemOrSvgString : svgElemToSvgString(svgElem);\n svgElem = isString ? buildSvgElement(svgElemOrSvgString, true) : svgElemOrSvgString;\n }\n }\n\n if (svgElem instanceof SVGElement) {\n var hasUniqueIds = NULL;\n if (makeIdsUniqueOption) {\n hasUniqueIds = makeIdsUnique(svgElem);\n }\n\n if (useCacheOption) {\n var uniqueIdsSvgString = hasUniqueIds && svgElemToSvgString(svgElem);\n // set an array with three entries to the load cache\n setSvgLoadCacheValue([hasUniqueIds, svgString, uniqueIdsSvgString]);\n }\n\n inject(imgElem, svgElem, absUrl, options);\n } else {\n svgInvalid(imgElem, options);\n setSvgLoadCacheValue(SVG_INVALID);\n }\n onFinish();\n }, function() {\n loadFail(imgElem, options);\n setSvgLoadCacheValue(LOAD_FAIL);\n onFinish();\n });\n } else {\n if (Array.isArray(svgInjectAttributeValue)) {\n // svgInjectAttributeValue is an array. Injection is not complete so register callback\n svgInjectAttributeValue.push(callback);\n } else {\n callback();\n }\n }\n } else {\n imgNotSet();\n }\n }\n\n\n /**\n * Sets the default [options](#options) for SVGInject.\n *\n * @param {Object} [options] - default [options](#options) for an injection.\n */\n SVGInject.setOptions = function(options) {\n defaultOptions = mergeOptions(defaultOptions, options);\n };\n\n\n // Create a new instance of SVGInject\n SVGInject.create = createSVGInject;\n\n\n /**\n * Used in onerror Event of an `` element to handle cases when the loading the original src fails\n * (for example if file is not found or if the browser does not support SVG). This triggers a call to the\n * options onFail hook if available. The optional second parameter will be set as the new src attribute\n * for the img element.\n *\n * @param {HTMLImageElement} img - an img element\n * @param {String} [fallbackSrc] - optional parameter fallback src\n */\n SVGInject.err = function(img, fallbackSrc) {\n if (img) {\n if (img[__SVGINJECT] != FAIL) {\n removeEventListeners(img);\n\n if (!IS_SVG_SUPPORTED) {\n svgNotSupported(img, defaultOptions);\n } else {\n removeOnLoadAttribute(img);\n loadFail(img, defaultOptions);\n }\n if (fallbackSrc) {\n removeOnLoadAttribute(img);\n img.src = fallbackSrc;\n }\n }\n } else {\n imgNotSet();\n }\n };\n\n window[globalName] = SVGInject;\n\n return SVGInject;\n }\n\n var SVGInjectInstance = createSVGInject('SVGInject');\n\n if (typeof module == 'object' && typeof module.exports == 'object') {\n module.exports = SVGInjectInstance;\n }\n})(window, document);\n","class AddressLookup {\r\n constructor(config) {\r\n this.config = {\r\n forms: document.querySelectorAll('[data-module=\"geolocate\"]')\r\n };\r\n if (\r\n config &&\r\n typeof config === 'object' &&\r\n config.constructor === Object &&\r\n Object.getOwnPropertyNames(config).length !== 0\r\n ) {\r\n Object.keys(config).forEach(key => {\r\n this.config[key] = config[key];\r\n });\r\n }\r\n }\r\n\r\n init() {\r\n if (this.config.forms.length > 0) {\r\n this.config.forms.forEach(form => {\r\n form.addEventListener('blur', AddressLookup.resolveLocation, true);\r\n });\r\n }\r\n }\r\n\r\n static resolveLocation(event) {\r\n const { form } = event.target;\r\n\r\n if (!event.target.getAttribute('name')) {\r\n return;\r\n }\r\n\r\n const targetInput = event.target.getAttribute('name').toLowerCase();\r\n\r\n if (targetInput !== 'housenumber' && targetInput !== 'postalcode') return;\r\n\r\n const tempEl =\r\n targetInput === 'housenumber'\r\n ? form.elements.namedItem('postalCode')\r\n : form.elements.namedItem('houseNumber');\r\n\r\n if (!tempEl) return;\r\n\r\n if (event.target.value.length > 0 && tempEl.value.length > 0) {\r\n const cbName = `jsonp_callback_${Math.floor(10000 * Math.random())}`;\r\n const script = document.createElement('script');\r\n window[cbName] = data => {\r\n delete window[cbName];\r\n document.body.removeChild(script);\r\n if (data !== null && data.constructor === Object) {\r\n const street = form.elements.namedItem('street');\r\n if (street) {\r\n street.value = data.Street;\r\n }\r\n const city = form.elements.namedItem('city');\r\n if (city) {\r\n city.value = data.City;\r\n }\r\n }\r\n };\r\n script.src = `https://api.pangaea.nl/api/GeoEncoding?${\r\n targetInput === 'postalCode'\r\n ? `postalCode=${form.value}&houseNumber=${tempEl.value}`\r\n : `postalCode=${tempEl.value}&houseNumber=${form.value}`\r\n }&callback=${cbName}`;\r\n\r\n document.body.appendChild(script);\r\n }\r\n }\r\n}\r\n\r\nexport default AddressLookup;\r\n","import Cookies from 'js-cookie';\r\n\r\nclass ClearCache {\r\n constructor() {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"ClearCache\"]')\r\n };\r\n }\r\n\r\n init() {\r\n const { moduleList } = this.config;\r\n\r\n moduleList.forEach(module => {\r\n module.addEventListener('click', e => {\r\n e.preventDefault();\r\n\r\n const token = Cookies.get('token');\r\n\r\n if (!token) {\r\n return;\r\n }\r\n\r\n fetch('/api/v1/cache/clear', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }).then(res => {\r\n if (res.status === 200) {\r\n document.location.reload();\r\n }\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default ClearCache;\r\n","/* eslint-disable no-undef */\r\n\r\nclass Recaptcha {\r\n constructor(props) {\r\n this.config = {\r\n recaptchaFormButtons: document.querySelectorAll('[data-module=\"recaptcha\"]'),\r\n key: '',\r\n ...props\r\n };\r\n }\r\n\r\n static findParentByTag(element_, tag) {\r\n let element = element_;\r\n while (element.tagName !== tag) {\r\n element = element.parentNode;\r\n }\r\n return element;\r\n }\r\n\r\n init() {\r\n const { recaptchaFormButtons, key } = this.config;\r\n recaptchaFormButtons.forEach(button_ => {\r\n const button = button_;\r\n if (button.dataset.initialized) return;\r\n\r\n button.dataset.initialized = true;\r\n\r\n button.insertAdjacentHTML(\r\n 'beforebegin',\r\n `
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
`\r\n );\r\n\r\n const submitInput = document.createElement('button');\r\n submitInput.type = 'submit';\r\n submitInput.style.cssText = 'display: none;';\r\n\r\n button.insertAdjacentElement('afterend', submitInput);\r\n\r\n const tokenInput = document.createElement('input');\r\n tokenInput.type = 'textarea';\r\n tokenInput.name = 'g-recaptcha-response';\r\n tokenInput.id = 'g-recaptcha-response';\r\n tokenInput.style.display = 'none';\r\n\r\n const parentForm = Recaptcha.findParentByTag(button, 'FORM');\r\n parentForm.appendChild(tokenInput);\r\n\r\n button.addEventListener('click', async e => {\r\n e.preventDefault();\r\n const hasParsley = parentForm.classList.contains('js-parsley-form');\r\n\r\n if (hasParsley) {\r\n $(parentForm)\r\n .parsley()\r\n .validate();\r\n }\r\n if (!parentForm.checkValidity()) {\r\n submitInput.click();\r\n return;\r\n }\r\n if (\r\n hasParsley &&\r\n !$(parentForm)\r\n .parsley()\r\n .isValid()\r\n )\r\n return;\r\n\r\n grecaptcha.ready(() => {\r\n grecaptcha.execute(key, { action: 'backendtoken' }).then(token => {\r\n tokenInput.value = token;\r\n submitInput.click();\r\n });\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default Recaptcha;\r\n","/* global lightGallery */\r\nimport 'lightgallery.js';\r\n\r\n// Light gallery submodules: remove one or more to disable\r\nimport 'lg-thumbnail.js';\r\nimport 'lg-autoplay.js';\r\nimport 'lg-video.js';\r\nimport 'lg-fullscreen.js';\r\nimport 'lg-pager.js';\r\nimport 'lg-zoom.js';\r\nimport 'lg-hash.js';\r\nimport 'lg-share.js';\r\n\r\nclass LightGallery {\r\n constructor(options = {}) {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"LightGallery\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { moduleList } = this.config;\r\n\r\n moduleList.forEach(module => {\r\n lightGallery(module, {\r\n actualSize: false,\r\n autoplayControls: false,\r\n download: false,\r\n fullScreen: false,\r\n selector: '.js-lightgallery-item',\r\n share: false,\r\n showThumbByDefault: false\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default LightGallery;\r\n","import ApiManager from '../api/crud-manager';\r\nimport utils from '../utils';\r\n\r\nconst getChildrenProperties = parentId => {\r\n const api = new ApiManager();\r\n\r\n // set parameters\r\n const parameters = {};\r\n parameters.items = 9999;\r\n const parameterLink = utils.buildApiParameters(parameters);\r\n\r\n const url = `/api/v2/page/${parentId}/childproperties${parameterLink}`;\r\n return (\r\n api\r\n .get(url)\r\n // eslint-disable-next-line no-underscore-dangle\r\n .then(data => data._embedded.childproperties)\r\n .catch(error => {\r\n // eslint-disable-next-line no-console\r\n console.error('getChildrenProperties request failed', error);\r\n return null;\r\n })\r\n );\r\n};\r\n\r\nconst uniqArray = array => array.filter((a, b) => array.indexOf(a) === b);\r\n\r\nclass OverviewPageFilters {\r\n constructor(options = {}) {\r\n this.config = {\r\n module: document.querySelector('[data-module=\"OverviewPageFilters\"]'),\r\n pageId: document.body.dataset.pageId != null ? document.body.dataset.pageId : null,\r\n ...options\r\n };\r\n }\r\n\r\n renderFilterInputs(jsonData) {\r\n const { module } = this.config;\r\n const params = new URLSearchParams(window.location.search);\r\n const FilterItems = module.querySelectorAll('[data-child-module=\"FilterItem\"]');\r\n let activeFilters = 0;\r\n\r\n if (FilterItems.length) {\r\n FilterItems.forEach(element => {\r\n const filterInput = element.querySelector('[data-child-module=\"FilterInput\"]');\r\n const filterData = jsonData\r\n .filter(item => item.name === filterInput.name)\r\n .map(item => item.value)\r\n .filter(item => item); // make array of filter values in element\r\n\r\n const sortedfilterData = uniqArray(filterData).sort(); // remove duplicates, sort filterData array\r\n\r\n if (sortedfilterData.length) {\r\n sortedfilterData.forEach(filterItem => {\r\n const isSelected = params.get(filterInput.name) === filterItem; // check if parameter is in url to add selected state\r\n filterInput.options.add(new Option(filterItem, filterItem, isSelected, isSelected)); // create option element for filter select\r\n });\r\n activeFilters += 1;\r\n\r\n // set event listner to change filter parameter\r\n filterInput.addEventListener('change', e => {\r\n params.set(filterInput.name, e.target.value);\r\n window.location.search = params.toString();\r\n });\r\n } else {\r\n element.classList.add('hidden');\r\n element.classList.add('is-error');\r\n }\r\n });\r\n }\r\n\r\n if (activeFilters > 0) {\r\n module.classList.remove('hidden');\r\n }\r\n }\r\n\r\n init() {\r\n const { module, pageId } = this.config;\r\n\r\n if (!module || !pageId) {\r\n return;\r\n }\r\n\r\n getChildrenProperties(pageId).then(jsonData => {\r\n this.renderFilterInputs(jsonData);\r\n });\r\n }\r\n}\r\n\r\nexport default OverviewPageFilters;\r\n","import buildApiParameters from './build-api-parameters';\r\nimport getUrlParameter from './get-url-parameter';\r\n\r\nexport default { buildApiParameters, getUrlParameter };\r\n","export default function buildParameters(params) {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n let firstValueSet = false;\r\n const linkArray = [];\r\n Object.keys(params).forEach(paramKey => {\r\n const paramValue = params[paramKey];\r\n const value = urlParams.has(paramKey) ? urlParams.get(paramKey) : paramValue;\r\n\r\n const questionMark = firstValueSet ? '' : '?';\r\n firstValueSet = true;\r\n if (paramValue) {\r\n linkArray.push(`${questionMark}${paramKey}=${value}`);\r\n }\r\n });\r\n return linkArray.join('&');\r\n}\r\n","export default function getUrlParameter(paramKey) {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const paramSet = urlParams.get(paramKey);\r\n return paramSet ? urlParams.get(paramKey) : '';\r\n}\r\n","import ApiManager from '../api/crud-manager';\r\nimport utils from '../utils';\r\n\r\nclass relatedPagesOverview {\r\n constructor(options = {}) {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"RelatedPagesOverview\"]'),\r\n ...options\r\n };\r\n this.apiManager = new ApiManager();\r\n }\r\n\r\n init() {\r\n const { moduleList } = this.config;\r\n\r\n if (!moduleList) {\r\n return;\r\n }\r\n\r\n moduleList.forEach(module => {\r\n const { itemsToShow, filterName, filterValue } = module.dataset;\r\n\r\n const element = module;\r\n\r\n if ((filterName, filterValue)) {\r\n // set parameters\r\n const parameters = {};\r\n parameters[`${filterName}`] = filterValue;\r\n if (itemsToShow != null && Number(itemsToShow) && !Number.isNaN(itemsToShow)) {\r\n parameters.items = Number(itemsToShow);\r\n }\r\n parameters.template = 'pagesOverview';\r\n const parameterLink = utils.buildApiParameters(parameters);\r\n\r\n element.classList.add('is-loading');\r\n\r\n const url = `/api/v2/page/withProperties${parameterLink}`;\r\n this.apiManager\r\n .get(url, 'text/html')\r\n .then(html => {\r\n element.innerHTML = html;\r\n element.classList.remove('is-loading');\r\n })\r\n .catch(error => {\r\n // eslint-disable-next-line no-console\r\n console.error('related pages overview request failed', error);\r\n element.classList.remove('is-loading');\r\n return null;\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default relatedPagesOverview;\r\n","import ApiManager from '../api/crud-manager';\r\nimport utils from '../utils';\r\n\r\nclass latestPagesOverview {\r\n constructor(options = {}) {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"LatestPagesOverview\"]'),\r\n ...options\r\n };\r\n this.apiManager = new ApiManager();\r\n }\r\n\r\n init() {\r\n const { moduleList } = this.config;\r\n\r\n if (!moduleList) {\r\n return;\r\n }\r\n\r\n moduleList.forEach(module => {\r\n const { itemsToShow, parentId } = module.dataset;\r\n\r\n const element = module;\r\n\r\n if (parentId) {\r\n // set parameters\r\n const parameters = {};\r\n parameters.parentid = parentId;\r\n if (itemsToShow != null && Number(itemsToShow) && !Number.isNaN(itemsToShow)) {\r\n parameters.items = Number(itemsToShow);\r\n }\r\n parameters.template = 'pagesOverview';\r\n const parameterLink = utils.buildApiParameters(parameters);\r\n\r\n element.classList.add('is-loading');\r\n\r\n const url = `/api/v2/page/withProperties${parameterLink}`;\r\n this.apiManager\r\n .get(url, 'text/html')\r\n .then(html => {\r\n element.innerHTML = html;\r\n element.classList.remove('is-loading');\r\n })\r\n .catch(error => {\r\n // eslint-disable-next-line no-console\r\n console.error('latest pages overview request failed', error);\r\n element.classList.remove('is-loading');\r\n return null;\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default latestPagesOverview;\r\n","class Sticky {\r\n constructor(options = {}) {\r\n this.config = {\r\n velocity: 0,\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n this.checkScrollPosition();\r\n window.addEventListener('scroll', this.checkScrollPosition.bind(this));\r\n }\r\n\r\n checkScrollPosition() {\r\n const { velocity } = this.config;\r\n\r\n if (window.pageYOffset >= velocity) {\r\n document.body.classList.add('is-sticky');\r\n } else {\r\n document.body.classList.remove('is-sticky');\r\n }\r\n }\r\n}\r\n\r\nexport default Sticky;\r\n","class Video {\r\n constructor(options = {}) {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"Video\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n static toggleSound(status, player) {\r\n player.setVolume(status ? 1 : 0);\r\n }\r\n\r\n static isVimeo(iframe) {\r\n return iframe.src.includes('vimeo.com');\r\n }\r\n\r\n init() {\r\n const { moduleList } = this.config;\r\n\r\n moduleList.forEach(module => {\r\n const iframe = module.querySelector('iframe');\r\n let player;\r\n\r\n if (!iframe.src.includes('autoplay=1') || iframe.src.includes('youtube.com')) {\r\n return;\r\n }\r\n\r\n if (Video.isVimeo(iframe)) {\r\n const vimeo = new Vimeo.Player(iframe); // eslint-disable-line no-undef\r\n\r\n player = {\r\n instance: vimeo,\r\n setVolume: amount => vimeo.setVolume(amount)\r\n };\r\n }\r\n\r\n // controls\r\n const controls = module.querySelector('[data-child-module=\"VideoControls\"]');\r\n const mute = controls.querySelector('.js-soundtoggle-mute');\r\n const unmute = controls.querySelector('.js-soundtoggle-unmute');\r\n\r\n // display sound toggle if video has autoplay\r\n unmute.classList.remove('hidden');\r\n\r\n mute.addEventListener('click', () => {\r\n mute.classList.add('hidden');\r\n unmute.classList.remove('hidden');\r\n Video.toggleSound(false, player);\r\n });\r\n\r\n unmute.addEventListener('click', () => {\r\n unmute.classList.add('hidden');\r\n mute.classList.remove('hidden');\r\n Video.toggleSound(true, player);\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default Video;\r\n","import Mark from 'mark.js';\r\nimport utils from '../utils';\r\n\r\nclass MarkSearchKeyword {\r\n constructor(options = {}) {\r\n this.config = {\r\n selector: '.o-macro .text-container',\r\n searchKeyword: utils.getUrlParameter('keyword'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { searchKeyword, selector } = this.config;\r\n\r\n if (searchKeyword) {\r\n const macros = document.querySelectorAll(selector);\r\n\r\n macros.forEach(macro => {\r\n const instance = new Mark(macro);\r\n instance.mark(searchKeyword);\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default MarkSearchKeyword;\r\n","/*!***************************************************\n* mark.js v8.11.1\n* https://markjs.io/\n* Copyright (c) 2014–2018, Julian Kühnel\n* Released under the MIT license https://git.io/vwTVl\n*****************************************************/\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Mark = factory());\n}(this, (function () { 'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar DOMIterator = function () {\n function DOMIterator(ctx) {\n var iframes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var iframesTimeout = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5000;\n classCallCheck(this, DOMIterator);\n\n this.ctx = ctx;\n this.iframes = iframes;\n this.exclude = exclude;\n this.iframesTimeout = iframesTimeout;\n }\n\n createClass(DOMIterator, [{\n key: 'getContexts',\n value: function getContexts() {\n var ctx = void 0,\n filteredCtx = [];\n if (typeof this.ctx === 'undefined' || !this.ctx) {\n ctx = [];\n } else if (NodeList.prototype.isPrototypeOf(this.ctx)) {\n ctx = Array.prototype.slice.call(this.ctx);\n } else if (Array.isArray(this.ctx)) {\n ctx = this.ctx;\n } else if (typeof this.ctx === 'string') {\n ctx = Array.prototype.slice.call(document.querySelectorAll(this.ctx));\n } else {\n ctx = [this.ctx];\n }\n ctx.forEach(function (ctx) {\n var isDescendant = filteredCtx.filter(function (contexts) {\n return contexts.contains(ctx);\n }).length > 0;\n if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {\n filteredCtx.push(ctx);\n }\n });\n return filteredCtx;\n }\n }, {\n key: 'getIframeContents',\n value: function getIframeContents(ifr, successFn) {\n var errorFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n\n var doc = void 0;\n try {\n var ifrWin = ifr.contentWindow;\n doc = ifrWin.document;\n if (!ifrWin || !doc) {\n throw new Error('iframe inaccessible');\n }\n } catch (e) {\n errorFn();\n }\n if (doc) {\n successFn(doc);\n }\n }\n }, {\n key: 'isIframeBlank',\n value: function isIframeBlank(ifr) {\n var bl = 'about:blank',\n src = ifr.getAttribute('src').trim(),\n href = ifr.contentWindow.location.href;\n return href === bl && src !== bl && src;\n }\n }, {\n key: 'observeIframeLoad',\n value: function observeIframeLoad(ifr, successFn, errorFn) {\n var _this = this;\n\n var called = false,\n tout = null;\n var listener = function listener() {\n if (called) {\n return;\n }\n called = true;\n clearTimeout(tout);\n try {\n if (!_this.isIframeBlank(ifr)) {\n ifr.removeEventListener('load', listener);\n _this.getIframeContents(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n };\n ifr.addEventListener('load', listener);\n tout = setTimeout(listener, this.iframesTimeout);\n }\n }, {\n key: 'onIframeReady',\n value: function onIframeReady(ifr, successFn, errorFn) {\n try {\n if (ifr.contentWindow.document.readyState === 'complete') {\n if (this.isIframeBlank(ifr)) {\n this.observeIframeLoad(ifr, successFn, errorFn);\n } else {\n this.getIframeContents(ifr, successFn, errorFn);\n }\n } else {\n this.observeIframeLoad(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n }\n }, {\n key: 'waitForIframes',\n value: function waitForIframes(ctx, done) {\n var _this2 = this;\n\n var eachCalled = 0;\n this.forEachIframe(ctx, function () {\n return true;\n }, function (ifr) {\n eachCalled++;\n _this2.waitForIframes(ifr.querySelector('html'), function () {\n if (! --eachCalled) {\n done();\n }\n });\n }, function (handled) {\n if (!handled) {\n done();\n }\n });\n }\n }, {\n key: 'forEachIframe',\n value: function forEachIframe(ctx, filter, each) {\n var _this3 = this;\n\n var end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n var ifr = ctx.querySelectorAll('iframe'),\n open = ifr.length,\n handled = 0;\n ifr = Array.prototype.slice.call(ifr);\n var checkEnd = function checkEnd() {\n if (--open <= 0) {\n end(handled);\n }\n };\n if (!open) {\n checkEnd();\n }\n ifr.forEach(function (ifr) {\n if (DOMIterator.matches(ifr, _this3.exclude)) {\n checkEnd();\n } else {\n _this3.onIframeReady(ifr, function (con) {\n if (filter(ifr)) {\n handled++;\n each(con);\n }\n checkEnd();\n }, checkEnd);\n }\n });\n }\n }, {\n key: 'createIterator',\n value: function createIterator(ctx, whatToShow, filter) {\n return document.createNodeIterator(ctx, whatToShow, filter, false);\n }\n }, {\n key: 'createInstanceOnIframe',\n value: function createInstanceOnIframe(contents) {\n return new DOMIterator(contents.querySelector('html'), this.iframes);\n }\n }, {\n key: 'compareNodeIframe',\n value: function compareNodeIframe(node, prevNode, ifr) {\n var compCurr = node.compareDocumentPosition(ifr),\n prev = Node.DOCUMENT_POSITION_PRECEDING;\n if (compCurr & prev) {\n if (prevNode !== null) {\n var compPrev = prevNode.compareDocumentPosition(ifr),\n after = Node.DOCUMENT_POSITION_FOLLOWING;\n if (compPrev & after) {\n return true;\n }\n } else {\n return true;\n }\n }\n return false;\n }\n }, {\n key: 'getIteratorNode',\n value: function getIteratorNode(itr) {\n var prevNode = itr.previousNode();\n var node = void 0;\n if (prevNode === null) {\n node = itr.nextNode();\n } else {\n node = itr.nextNode() && itr.nextNode();\n }\n return {\n prevNode: prevNode,\n node: node\n };\n }\n }, {\n key: 'checkIframeFilter',\n value: function checkIframeFilter(node, prevNode, currIfr, ifr) {\n var key = false,\n handled = false;\n ifr.forEach(function (ifrDict, i) {\n if (ifrDict.val === currIfr) {\n key = i;\n handled = ifrDict.handled;\n }\n });\n if (this.compareNodeIframe(node, prevNode, currIfr)) {\n if (key === false && !handled) {\n ifr.push({\n val: currIfr,\n handled: true\n });\n } else if (key !== false && !handled) {\n ifr[key].handled = true;\n }\n return true;\n }\n if (key === false) {\n ifr.push({\n val: currIfr,\n handled: false\n });\n }\n return false;\n }\n }, {\n key: 'handleOpenIframes',\n value: function handleOpenIframes(ifr, whatToShow, eCb, fCb) {\n var _this4 = this;\n\n ifr.forEach(function (ifrDict) {\n if (!ifrDict.handled) {\n _this4.getIframeContents(ifrDict.val, function (con) {\n _this4.createInstanceOnIframe(con).forEachNode(whatToShow, eCb, fCb);\n });\n }\n });\n }\n }, {\n key: 'iterateThroughNodes',\n value: function iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {\n var _this5 = this;\n\n var itr = this.createIterator(ctx, whatToShow, filterCb);\n var ifr = [],\n elements = [],\n node = void 0,\n prevNode = void 0,\n retrieveNodes = function retrieveNodes() {\n var _getIteratorNode = _this5.getIteratorNode(itr);\n\n prevNode = _getIteratorNode.prevNode;\n node = _getIteratorNode.node;\n\n return node;\n };\n while (retrieveNodes()) {\n if (this.iframes) {\n this.forEachIframe(ctx, function (currIfr) {\n return _this5.checkIframeFilter(node, prevNode, currIfr, ifr);\n }, function (con) {\n _this5.createInstanceOnIframe(con).forEachNode(whatToShow, function (ifrNode) {\n return elements.push(ifrNode);\n }, filterCb);\n });\n }\n elements.push(node);\n }\n elements.forEach(function (node) {\n eachCb(node);\n });\n if (this.iframes) {\n this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);\n }\n doneCb();\n }\n }, {\n key: 'forEachNode',\n value: function forEachNode(whatToShow, each, filter) {\n var _this6 = this;\n\n var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n var contexts = this.getContexts();\n var open = contexts.length;\n if (!open) {\n done();\n }\n contexts.forEach(function (ctx) {\n var ready = function ready() {\n _this6.iterateThroughNodes(whatToShow, ctx, each, filter, function () {\n if (--open <= 0) {\n done();\n }\n });\n };\n if (_this6.iframes) {\n _this6.waitForIframes(ctx, ready);\n } else {\n ready();\n }\n });\n }\n }], [{\n key: 'matches',\n value: function matches(element, selector) {\n var selectors = typeof selector === 'string' ? [selector] : selector,\n fn = element.matches || element.matchesSelector || element.msMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector;\n if (fn) {\n var match = false;\n selectors.every(function (sel) {\n if (fn.call(element, sel)) {\n match = true;\n return false;\n }\n return true;\n });\n return match;\n } else {\n return false;\n }\n }\n }]);\n return DOMIterator;\n}();\n\nvar Mark$1 = function () {\n function Mark(ctx) {\n classCallCheck(this, Mark);\n\n this.ctx = ctx;\n this.ie = false;\n var ua = window.navigator.userAgent;\n if (ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1) {\n this.ie = true;\n }\n }\n\n createClass(Mark, [{\n key: 'log',\n value: function log(msg) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'debug';\n\n var log = this.opt.log;\n if (!this.opt.debug) {\n return;\n }\n if ((typeof log === 'undefined' ? 'undefined' : _typeof(log)) === 'object' && typeof log[level] === 'function') {\n log[level]('mark.js: ' + msg);\n }\n }\n }, {\n key: 'escapeStr',\n value: function escapeStr(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n }\n }, {\n key: 'createRegExp',\n value: function createRegExp(str) {\n if (this.opt.wildcards !== 'disabled') {\n str = this.setupWildcardsRegExp(str);\n }\n str = this.escapeStr(str);\n if (Object.keys(this.opt.synonyms).length) {\n str = this.createSynonymsRegExp(str);\n }\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n if (this.opt.diacritics) {\n str = this.createDiacriticsRegExp(str);\n }\n str = this.createMergedBlanksRegExp(str);\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.createJoinersRegExp(str);\n }\n if (this.opt.wildcards !== 'disabled') {\n str = this.createWildcardsRegExp(str);\n }\n str = this.createAccuracyRegExp(str);\n return str;\n }\n }, {\n key: 'createSynonymsRegExp',\n value: function createSynonymsRegExp(str) {\n var syn = this.opt.synonyms,\n sens = this.opt.caseSensitive ? '' : 'i',\n joinerPlaceholder = this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? '\\0' : '';\n for (var index in syn) {\n if (syn.hasOwnProperty(index)) {\n var value = syn[index],\n k1 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(index) : this.escapeStr(index),\n k2 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(value) : this.escapeStr(value);\n if (k1 !== '' && k2 !== '') {\n str = str.replace(new RegExp('(' + this.escapeStr(k1) + '|' + this.escapeStr(k2) + ')', 'gm' + sens), joinerPlaceholder + ('(' + this.processSynomyms(k1) + '|') + (this.processSynomyms(k2) + ')') + joinerPlaceholder);\n }\n }\n }\n return str;\n }\n }, {\n key: 'processSynomyms',\n value: function processSynomyms(str) {\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n return str;\n }\n }, {\n key: 'setupWildcardsRegExp',\n value: function setupWildcardsRegExp(str) {\n str = str.replace(/(?:\\\\)*\\?/g, function (val) {\n return val.charAt(0) === '\\\\' ? '?' : '\\x01';\n });\n return str.replace(/(?:\\\\)*\\*/g, function (val) {\n return val.charAt(0) === '\\\\' ? '*' : '\\x02';\n });\n }\n }, {\n key: 'createWildcardsRegExp',\n value: function createWildcardsRegExp(str) {\n var spaces = this.opt.wildcards === 'withSpaces';\n return str.replace(/\\u0001/g, spaces ? '[\\\\S\\\\s]?' : '\\\\S?').replace(/\\u0002/g, spaces ? '[\\\\S\\\\s]*?' : '\\\\S*');\n }\n }, {\n key: 'setupIgnoreJoinersRegExp',\n value: function setupIgnoreJoinersRegExp(str) {\n return str.replace(/[^(|)\\\\]/g, function (val, indx, original) {\n var nextChar = original.charAt(indx + 1);\n if (/[(|)\\\\]/.test(nextChar) || nextChar === '') {\n return val;\n } else {\n return val + '\\0';\n }\n });\n }\n }, {\n key: 'createJoinersRegExp',\n value: function createJoinersRegExp(str) {\n var joiner = [];\n var ignorePunctuation = this.opt.ignorePunctuation;\n if (Array.isArray(ignorePunctuation) && ignorePunctuation.length) {\n joiner.push(this.escapeStr(ignorePunctuation.join('')));\n }\n if (this.opt.ignoreJoiners) {\n joiner.push('\\\\u00ad\\\\u200b\\\\u200c\\\\u200d');\n }\n return joiner.length ? str.split(/\\u0000+/).join('[' + joiner.join('') + ']*') : str;\n }\n }, {\n key: 'createDiacriticsRegExp',\n value: function createDiacriticsRegExp(str) {\n var sens = this.opt.caseSensitive ? '' : 'i',\n dct = this.opt.caseSensitive ? ['aàáảãạăằắẳẵặâầấẩẫậäåāą', 'AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćč', 'CÇĆČ', 'dđď', 'DĐĎ', 'eèéẻẽẹêềếểễệëěēę', 'EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïī', 'IÌÍỈĨỊÎÏĪ', 'lł', 'LŁ', 'nñňń', 'NÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøō', 'OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rř', 'RŘ', 'sšśșş', 'SŠŚȘŞ', 'tťțţ', 'TŤȚŢ', 'uùúủũụưừứửữựûüůū', 'UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿ', 'YÝỲỶỸỴŸ', 'zžżź', 'ZŽŻŹ'] : ['aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćčCÇĆČ', 'dđďDĐĎ', 'eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïīIÌÍỈĨỊÎÏĪ', 'lłLŁ', 'nñňńNÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rřRŘ', 'sšśșşSŠŚȘŞ', 'tťțţTŤȚŢ', 'uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿYÝỲỶỸỴŸ', 'zžżźZŽŻŹ'];\n var handled = [];\n str.split('').forEach(function (ch) {\n dct.every(function (dct) {\n if (dct.indexOf(ch) !== -1) {\n if (handled.indexOf(dct) > -1) {\n return false;\n }\n str = str.replace(new RegExp('[' + dct + ']', 'gm' + sens), '[' + dct + ']');\n handled.push(dct);\n }\n return true;\n });\n });\n return str;\n }\n }, {\n key: 'createMergedBlanksRegExp',\n value: function createMergedBlanksRegExp(str) {\n return str.replace(/[\\s]+/gmi, '[\\\\s]+');\n }\n }, {\n key: 'createAccuracyRegExp',\n value: function createAccuracyRegExp(str) {\n var _this = this;\n\n var chars = '!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~¡¿';\n var acc = this.opt.accuracy,\n val = typeof acc === 'string' ? acc : acc.value,\n ls = typeof acc === 'string' ? [] : acc.limiters,\n lsJoin = '';\n ls.forEach(function (limiter) {\n lsJoin += '|' + _this.escapeStr(limiter);\n });\n switch (val) {\n case 'partially':\n default:\n return '()(' + str + ')';\n case 'complementary':\n lsJoin = '\\\\s' + (lsJoin ? lsJoin : this.escapeStr(chars));\n return '()([^' + lsJoin + ']*' + str + '[^' + lsJoin + ']*)';\n case 'exactly':\n return '(^|\\\\s' + lsJoin + ')(' + str + ')(?=$|\\\\s' + lsJoin + ')';\n }\n }\n }, {\n key: 'getSeparatedKeywords',\n value: function getSeparatedKeywords(sv) {\n var _this2 = this;\n\n var stack = [];\n sv.forEach(function (kw) {\n if (!_this2.opt.separateWordSearch) {\n if (kw.trim() && stack.indexOf(kw) === -1) {\n stack.push(kw);\n }\n } else {\n kw.split(' ').forEach(function (kwSplitted) {\n if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) {\n stack.push(kwSplitted);\n }\n });\n }\n });\n return {\n 'keywords': stack.sort(function (a, b) {\n return b.length - a.length;\n }),\n 'length': stack.length\n };\n }\n }, {\n key: 'isNumeric',\n value: function isNumeric(value) {\n return Number(parseFloat(value)) == value;\n }\n }, {\n key: 'checkRanges',\n value: function checkRanges(array) {\n var _this3 = this;\n\n if (!Array.isArray(array) || Object.prototype.toString.call(array[0]) !== '[object Object]') {\n this.log('markRanges() will only accept an array of objects');\n this.opt.noMatch(array);\n return [];\n }\n var stack = [];\n var last = 0;\n array.sort(function (a, b) {\n return a.start - b.start;\n }).forEach(function (item) {\n var _callNoMatchOnInvalid = _this3.callNoMatchOnInvalidRanges(item, last),\n start = _callNoMatchOnInvalid.start,\n end = _callNoMatchOnInvalid.end,\n valid = _callNoMatchOnInvalid.valid;\n\n if (valid) {\n item.start = start;\n item.length = end - start;\n stack.push(item);\n last = end;\n }\n });\n return stack;\n }\n }, {\n key: 'callNoMatchOnInvalidRanges',\n value: function callNoMatchOnInvalidRanges(range, last) {\n var start = void 0,\n end = void 0,\n valid = false;\n if (range && typeof range.start !== 'undefined') {\n start = parseInt(range.start, 10);\n end = start + parseInt(range.length, 10);\n if (this.isNumeric(range.start) && this.isNumeric(range.length) && end - last > 0 && end - start > 0) {\n valid = true;\n } else {\n this.log('Ignoring invalid or overlapping range: ' + ('' + JSON.stringify(range)));\n this.opt.noMatch(range);\n }\n } else {\n this.log('Ignoring invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'checkWhitespaceRanges',\n value: function checkWhitespaceRanges(range, originalLength, string) {\n var end = void 0,\n valid = true,\n max = string.length,\n offset = originalLength - max,\n start = parseInt(range.start, 10) - offset;\n start = start > max ? max : start;\n end = start + parseInt(range.length, 10);\n if (end > max) {\n end = max;\n this.log('End range automatically set to the max value of ' + max);\n }\n if (start < 0 || end - start < 0 || start > max || end > max) {\n valid = false;\n this.log('Invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n } else if (string.substring(start, end).replace(/\\s+/g, '') === '') {\n valid = false;\n this.log('Skipping whitespace only range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'getTextNodes',\n value: function getTextNodes(cb) {\n var _this4 = this;\n\n var val = '',\n nodes = [];\n this.iterator.forEachNode(NodeFilter.SHOW_TEXT, function (node) {\n nodes.push({\n start: val.length,\n end: (val += node.textContent).length,\n node: node\n });\n }, function (node) {\n if (_this4.matchesExclude(node.parentNode)) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, function () {\n cb({\n value: val,\n nodes: nodes\n });\n });\n }\n }, {\n key: 'matchesExclude',\n value: function matchesExclude(el) {\n return DOMIterator.matches(el, this.opt.exclude.concat(['script', 'style', 'title', 'head', 'html']));\n }\n }, {\n key: 'wrapRangeInTextNode',\n value: function wrapRangeInTextNode(node, start, end) {\n var hEl = !this.opt.element ? 'mark' : this.opt.element,\n startNode = node.splitText(start),\n ret = startNode.splitText(end - start);\n var repl = document.createElement(hEl);\n repl.setAttribute('data-markjs', 'true');\n if (this.opt.className) {\n repl.setAttribute('class', this.opt.className);\n }\n repl.textContent = startNode.textContent;\n startNode.parentNode.replaceChild(repl, startNode);\n return ret;\n }\n }, {\n key: 'wrapRangeInMappedTextNode',\n value: function wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {\n var _this5 = this;\n\n dict.nodes.every(function (n, i) {\n var sibl = dict.nodes[i + 1];\n if (typeof sibl === 'undefined' || sibl.start > start) {\n if (!filterCb(n.node)) {\n return false;\n }\n var s = start - n.start,\n e = (end > n.end ? n.end : end) - n.start,\n startStr = dict.value.substr(0, n.start),\n endStr = dict.value.substr(e + n.start);\n n.node = _this5.wrapRangeInTextNode(n.node, s, e);\n dict.value = startStr + endStr;\n dict.nodes.forEach(function (k, j) {\n if (j >= i) {\n if (dict.nodes[j].start > 0 && j !== i) {\n dict.nodes[j].start -= e;\n }\n dict.nodes[j].end -= e;\n }\n });\n end -= e;\n eachCb(n.node.previousSibling, n.start);\n if (end > n.end) {\n start = n.end;\n } else {\n return false;\n }\n }\n return true;\n });\n }\n }, {\n key: 'wrapMatches',\n value: function wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this6 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n dict.nodes.forEach(function (node) {\n node = node.node;\n var match = void 0;\n while ((match = regex.exec(node.textContent)) !== null && match[matchIdx] !== '') {\n if (!filterCb(match[matchIdx], node)) {\n continue;\n }\n var pos = match.index;\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n pos += match[i].length;\n }\n }\n node = _this6.wrapRangeInTextNode(node, pos, pos + match[matchIdx].length);\n eachCb(node.previousSibling);\n regex.lastIndex = 0;\n }\n });\n endCb();\n });\n }\n }, {\n key: 'wrapMatchesAcrossElements',\n value: function wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this7 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n var match = void 0;\n while ((match = regex.exec(dict.value)) !== null && match[matchIdx] !== '') {\n var start = match.index;\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n start += match[i].length;\n }\n }\n var end = start + match[matchIdx].length;\n _this7.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(match[matchIdx], node);\n }, function (node, lastIndex) {\n regex.lastIndex = lastIndex;\n eachCb(node);\n });\n }\n endCb();\n });\n }\n }, {\n key: 'wrapRangeFromIndex',\n value: function wrapRangeFromIndex(ranges, filterCb, eachCb, endCb) {\n var _this8 = this;\n\n this.getTextNodes(function (dict) {\n var originalLength = dict.value.length;\n ranges.forEach(function (range, counter) {\n var _checkWhitespaceRange = _this8.checkWhitespaceRanges(range, originalLength, dict.value),\n start = _checkWhitespaceRange.start,\n end = _checkWhitespaceRange.end,\n valid = _checkWhitespaceRange.valid;\n\n if (valid) {\n _this8.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(node, range, dict.value.substring(start, end), counter);\n }, function (node) {\n eachCb(node, range);\n });\n }\n });\n endCb();\n });\n }\n }, {\n key: 'unwrapMatches',\n value: function unwrapMatches(node) {\n var parent = node.parentNode;\n var docFrag = document.createDocumentFragment();\n while (node.firstChild) {\n docFrag.appendChild(node.removeChild(node.firstChild));\n }\n parent.replaceChild(docFrag, node);\n if (!this.ie) {\n parent.normalize();\n } else {\n this.normalizeTextNode(parent);\n }\n }\n }, {\n key: 'normalizeTextNode',\n value: function normalizeTextNode(node) {\n if (!node) {\n return;\n }\n if (node.nodeType === 3) {\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n node.nodeValue += node.nextSibling.nodeValue;\n node.parentNode.removeChild(node.nextSibling);\n }\n } else {\n this.normalizeTextNode(node.firstChild);\n }\n this.normalizeTextNode(node.nextSibling);\n }\n }, {\n key: 'markRegExp',\n value: function markRegExp(regexp, opt) {\n var _this9 = this;\n\n this.opt = opt;\n this.log('Searching with expression \"' + regexp + '\"');\n var totalMatches = 0,\n fn = 'wrapMatches';\n var eachCb = function eachCb(element) {\n totalMatches++;\n _this9.opt.each(element);\n };\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n this[fn](regexp, this.opt.ignoreGroups, function (match, node) {\n return _this9.opt.filter(node, match, totalMatches);\n }, eachCb, function () {\n if (totalMatches === 0) {\n _this9.opt.noMatch(regexp);\n }\n _this9.opt.done(totalMatches);\n });\n }\n }, {\n key: 'mark',\n value: function mark(sv, opt) {\n var _this10 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n fn = 'wrapMatches';\n\n var _getSeparatedKeywords = this.getSeparatedKeywords(typeof sv === 'string' ? [sv] : sv),\n kwArr = _getSeparatedKeywords.keywords,\n kwArrLen = _getSeparatedKeywords.length,\n sens = this.opt.caseSensitive ? '' : 'i',\n handler = function handler(kw) {\n var regex = new RegExp(_this10.createRegExp(kw), 'gm' + sens),\n matches = 0;\n _this10.log('Searching with expression \"' + regex + '\"');\n _this10[fn](regex, 1, function (term, node) {\n return _this10.opt.filter(node, kw, totalMatches, matches);\n }, function (element) {\n matches++;\n totalMatches++;\n _this10.opt.each(element);\n }, function () {\n if (matches === 0) {\n _this10.opt.noMatch(kw);\n }\n if (kwArr[kwArrLen - 1] === kw) {\n _this10.opt.done(totalMatches);\n } else {\n handler(kwArr[kwArr.indexOf(kw) + 1]);\n }\n });\n };\n\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n if (kwArrLen === 0) {\n this.opt.done(totalMatches);\n } else {\n handler(kwArr[0]);\n }\n }\n }, {\n key: 'markRanges',\n value: function markRanges(rawRanges, opt) {\n var _this11 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n ranges = this.checkRanges(rawRanges);\n if (ranges && ranges.length) {\n this.log('Starting to mark with the following ranges: ' + JSON.stringify(ranges));\n this.wrapRangeFromIndex(ranges, function (node, range, match, counter) {\n return _this11.opt.filter(node, range, match, counter);\n }, function (element, range) {\n totalMatches++;\n _this11.opt.each(element, range);\n }, function () {\n _this11.opt.done(totalMatches);\n });\n } else {\n this.opt.done(totalMatches);\n }\n }\n }, {\n key: 'unmark',\n value: function unmark(opt) {\n var _this12 = this;\n\n this.opt = opt;\n var sel = this.opt.element ? this.opt.element : '*';\n sel += '[data-markjs]';\n if (this.opt.className) {\n sel += '.' + this.opt.className;\n }\n this.log('Removal selector \"' + sel + '\"');\n this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, function (node) {\n _this12.unwrapMatches(node);\n }, function (node) {\n var matchesSel = DOMIterator.matches(node, sel),\n matchesExclude = _this12.matchesExclude(node);\n if (!matchesSel || matchesExclude) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, this.opt.done);\n }\n }, {\n key: 'opt',\n set: function set$$1(val) {\n this._opt = _extends({}, {\n 'element': '',\n 'className': '',\n 'exclude': [],\n 'iframes': false,\n 'iframesTimeout': 5000,\n 'separateWordSearch': true,\n 'diacritics': true,\n 'synonyms': {},\n 'accuracy': 'partially',\n 'acrossElements': false,\n 'caseSensitive': false,\n 'ignoreJoiners': false,\n 'ignoreGroups': 0,\n 'ignorePunctuation': [],\n 'wildcards': 'disabled',\n 'each': function each() {},\n 'noMatch': function noMatch() {},\n 'filter': function filter() {\n return true;\n },\n 'done': function done() {},\n 'debug': false,\n 'log': window.console\n }, val);\n },\n get: function get$$1() {\n return this._opt;\n }\n }, {\n key: 'iterator',\n get: function get$$1() {\n return new DOMIterator(this.ctx, this.opt.iframes, this.opt.exclude, this.opt.iframesTimeout);\n }\n }]);\n return Mark;\n}();\n\nfunction Mark(ctx) {\n var _this = this;\n\n var instance = new Mark$1(ctx);\n this.mark = function (sv, opt) {\n instance.mark(sv, opt);\n return _this;\n };\n this.markRegExp = function (sv, opt) {\n instance.markRegExp(sv, opt);\n return _this;\n };\n this.markRanges = function (sv, opt) {\n instance.markRanges(sv, opt);\n return _this;\n };\n this.unmark = function (opt) {\n instance.unmark(opt);\n return _this;\n };\n return this;\n}\n\nreturn Mark;\n\n})));\n","import getScrollbarWidth from '../helpers/scrollbar-width';\r\n\r\nclass MenuToggle {\r\n constructor(options = {}) {\r\n this.config = {\r\n rootModule: document.querySelector('[data-module=\"Header\"]'),\r\n module: document.querySelector('[data-module=\"MenuToggle\"]'),\r\n menuModals: document.querySelectorAll('[data-module=\"MenuModal\"]'),\r\n modalTriggers: document.querySelectorAll('[href^=\"#menuModal=\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { module, modalTriggers } = this.config;\r\n\r\n if (!module) {\r\n return;\r\n }\r\n\r\n module.addEventListener('click', this.toggleMenu.bind(this));\r\n window.addEventListener('resize', this.reset.bind(this));\r\n\r\n modalTriggers.forEach(trigger =>\r\n trigger.addEventListener('click', this.triggerModal.bind(this))\r\n );\r\n }\r\n\r\n destroy() {\r\n const { module, modalTriggers } = this.config;\r\n\r\n this.reset();\r\n module.removeEventListener('click', this.toggleMenu.bind(this));\r\n window.removeEventListener('resize', this.reset.bind(this));\r\n\r\n modalTriggers.forEach(trigger =>\r\n trigger.removeEventListener('click', this.triggerModal.bind(this))\r\n );\r\n }\r\n\r\n toggleAnimationState() {\r\n this.isAnimating = !this.isAnimating;\r\n }\r\n\r\n toggleMenu(e) {\r\n e.preventDefault();\r\n this.toggle('menu', e.currentTarget.classList.contains('is-open'));\r\n }\r\n\r\n triggerModal(e) {\r\n const modalId = e.currentTarget.getAttribute('href').split('#menuModal=')[1];\r\n e.preventDefault();\r\n this.toggle(modalId);\r\n }\r\n\r\n async toggle(modalId, forceClose) {\r\n const { menuModals } = this.config;\r\n const modalList = Array.from(menuModals);\r\n const menuModal = modalList.find(modal => modal.dataset.modalId === modalId);\r\n const openModal = modalList.find(modal => !!modal.classList.contains('is-open'));\r\n\r\n if (this.isAnimating || !menuModal) {\r\n return;\r\n }\r\n\r\n if (forceClose) {\r\n this.animateModal(openModal);\r\n } else if (openModal && openModal !== menuModal) {\r\n await this.animateModal(openModal);\r\n this.animateModal(menuModal);\r\n } else {\r\n this.animateModal(menuModal);\r\n }\r\n }\r\n\r\n animateModal(menuModal) {\r\n const { module } = this.config;\r\n\r\n return new Promise(resolve => {\r\n this.toggleAnimationState();\r\n menuModal.classList.toggle('is-open');\r\n\r\n if (module.classList.contains('is-open')) {\r\n module.classList.replace('is-open', 'is-half-open');\r\n setTimeout(() => {\r\n module.classList.remove('is-half-open');\r\n document.body.style.paddingRight = '';\r\n document.body.style.overflow = '';\r\n }, 250);\r\n } else {\r\n module.classList.add('is-half-open');\r\n setTimeout(() => {\r\n module.classList.replace('is-half-open', 'is-open');\r\n document.body.style.paddingRight = `${getScrollbarWidth()}px`;\r\n document.body.style.overflow = 'hidden';\r\n }, 250);\r\n }\r\n\r\n setTimeout(() => {\r\n this.toggleAnimationState();\r\n resolve();\r\n }, 500);\r\n });\r\n }\r\n\r\n reset() {\r\n const { module, menuModals } = this.config;\r\n\r\n [module, ...menuModals].forEach(el => el.classList.remove('is-open'));\r\n document.body.style.paddingRight = '';\r\n document.body.style.overflow = '';\r\n }\r\n}\r\n\r\nexport default MenuToggle;\r\n","export default () => window.innerWidth - document.documentElement.clientWidth;\r\n","import getSiblings from '../helpers/siblings';\r\n\r\nclass SubmenuToggle {\r\n constructor(options = {}) {\r\n this.config = {\r\n rootModule: document.querySelector('[data-module=\"Header\"]'),\r\n module: document.querySelectorAll('[data-module=\"SubmenuToggle\"]'),\r\n menus: document.querySelectorAll('[data-module=\"Menu\"]'),\r\n desktopMenuBreakpoint: 992,\r\n openUrlOnToggle: false,\r\n ...options\r\n };\r\n }\r\n\r\n get isDesktopMenu() {\r\n return window.innerWidth >= this.config.desktopMenuBreakpoint;\r\n }\r\n\r\n init() {\r\n const { module, menus } = this.config;\r\n\r\n if (!module.length || !menus.length) {\r\n return;\r\n }\r\n\r\n module.forEach(submenuToggle => {\r\n const parent = submenuToggle.parentNode;\r\n\r\n submenuToggle.addEventListener('touchend', this.toggle.bind(this));\r\n submenuToggle.addEventListener('click', this.toggle.bind(this));\r\n parent.addEventListener('mouseover', this.open.bind(this));\r\n parent.addEventListener('mouseout', this.close.bind(this));\r\n });\r\n\r\n window.addEventListener('resize', this.reset.bind(this));\r\n document.addEventListener('click', this.onDocumentClick.bind(this));\r\n }\r\n\r\n destroy() {\r\n const { module } = this.config;\r\n\r\n this.reset();\r\n\r\n module.forEach(submenuToggle => {\r\n const parent = submenuToggle.parentNode;\r\n\r\n submenuToggle.removeEventListener('touchend', this.toggle.bind(this));\r\n submenuToggle.removeEventListener('click', this.toggle.bind(this));\r\n parent.removeEventListener('mouseover', this.open.bind(this));\r\n parent.removeEventListener('mouseout', this.close.bind(this));\r\n });\r\n\r\n window.removeEventListener('resize', this.reset.bind(this));\r\n document.removeEventListener('click', this.onDocumentClick.bind(this));\r\n }\r\n\r\n getMenu(el) {\r\n if (el === this.config.rootModule) {\r\n return null;\r\n }\r\n\r\n if (el.dataset.module && el.dataset.module === 'Menu') {\r\n return el;\r\n }\r\n\r\n return this.getMenu(el.parentNode);\r\n }\r\n\r\n onDocumentClick(e) {\r\n const { module, menus } = this.config;\r\n\r\n let normalLinks = [];\r\n\r\n menus.forEach(menu => {\r\n normalLinks = [\r\n ...normalLinks,\r\n ...menu.querySelectorAll('a:not([data-module=\"SubmenuToggle\"])')\r\n ];\r\n });\r\n\r\n if (\r\n !Array.from(module).find(submenuToggle => submenuToggle === e.target) &&\r\n !Array.from(normalLinks).find(normalLink => normalLink === e.target)\r\n ) {\r\n module.forEach(submenuToggle => submenuToggle.parentNode.classList.remove('is-open'));\r\n }\r\n }\r\n\r\n reset() {\r\n const { module } = this.config;\r\n\r\n module.forEach(submenuToggle => submenuToggle.parentNode.classList.remove('is-open'));\r\n }\r\n\r\n toggle(e) {\r\n const { menus, openUrlOnToggle } = this.config;\r\n const parent = e.target.parentNode;\r\n\r\n e.preventDefault();\r\n\r\n if (e.target.dataset.hasNestedSubmenu) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (\r\n parent.classList.contains('is-open') &&\r\n openUrlOnToggle &&\r\n e.target.dataset.disableUrl === undefined\r\n ) {\r\n window.open(e.target.getAttribute('href'), e.target.getAttribute('target') || '_self');\r\n }\r\n\r\n parent.classList.toggle('is-open');\r\n parent.querySelectorAll('.is-open').forEach(child => child.classList.remove('is-open'));\r\n\r\n getSiblings(parent).forEach(sibling => {\r\n sibling.classList.remove('is-open');\r\n sibling.querySelectorAll('.is-open').forEach(child => child.classList.remove('is-open'));\r\n });\r\n\r\n menus.forEach(menu => {\r\n if (menu !== this.getMenu(e.target)) {\r\n menu.querySelectorAll('.is-open').forEach(el => el.classList.remove('is-open'));\r\n }\r\n });\r\n }\r\n\r\n open(e) {\r\n if (this.isDesktopMenu) {\r\n e.preventDefault();\r\n e.currentTarget.classList.add('is-open');\r\n }\r\n }\r\n\r\n close(e) {\r\n if (this.isDesktopMenu) {\r\n e.preventDefault();\r\n e.currentTarget.classList.remove('is-open');\r\n }\r\n }\r\n}\r\n\r\nexport default SubmenuToggle;\r\n","export default el => {\r\n const siblings = [];\r\n let sibling = el.parentNode.firstChild;\r\n\r\n while (sibling) {\r\n if (sibling.nodeType === 1 && sibling !== el) {\r\n siblings.push(sibling);\r\n }\r\n\r\n sibling = sibling.nextSibling;\r\n }\r\n\r\n return siblings;\r\n};\r\n","import MenuToggle from './components/menu-toggle';\r\nimport SubmenuToggle from './components/submenu-toggle';\r\n\r\nclass Header {\r\n constructor(options = {}) {\r\n this.config = {\r\n module: document.querySelector('[data-module=\"Header\"]'),\r\n menuToggle: new MenuToggle(options),\r\n submenuToggle: new SubmenuToggle(options),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { module, menuToggle, submenuToggle } = this.config;\r\n\r\n if (!module) {\r\n return;\r\n }\r\n\r\n menuToggle.init();\r\n submenuToggle.init();\r\n\r\n this.disableTransitions();\r\n\r\n window.addEventListener('resize', this.disableTransitions.bind(this));\r\n }\r\n\r\n destroy() {\r\n const { menuToggle, submenuToggle } = this.config;\r\n\r\n menuToggle.destroy();\r\n submenuToggle.destroy();\r\n\r\n this.disableTransitions();\r\n\r\n window.removeEventListener('resize', this.disableTransitions.bind(this));\r\n }\r\n\r\n disableTransitions() {\r\n const { module } = this.config;\r\n\r\n module.classList.add('no-transition');\r\n setTimeout(() => module.classList.remove('no-transition'));\r\n }\r\n}\r\n\r\nexport default Header;\r\n","class ResultPagination {\r\n constructor(options = {}) {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"ResultPagination\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n static addSeparator(current, page, offset) {\r\n const separator = `...`;\r\n return Math.abs(page - current) > offset ? separator : null;\r\n }\r\n\r\n static generatePaginationArray(pages, current) {\r\n const maxNumberOfElements = 5;\r\n const firstPage = 1;\r\n const lastPage = pages;\r\n const offset = Math.ceil(maxNumberOfElements / 2);\r\n const offsetLeft = [...Array(offset).keys()]\r\n .map(\r\n value =>\r\n Math.abs(value - current) <= firstPage || Math.abs(value - current) === current\r\n ? null\r\n : Math.abs(value - current)\r\n )\r\n .reverse();\r\n const offsetRight = [...Array(offset).keys()].map(\r\n value => (current + value >= lastPage || current + value === current ? null : current + value)\r\n );\r\n\r\n const array = [\r\n firstPage,\r\n ResultPagination.addSeparator(current, firstPage, offset),\r\n ...offsetLeft,\r\n current !== firstPage && current !== lastPage ? current : null,\r\n ...offsetRight,\r\n ResultPagination.addSeparator(current, lastPage, offset),\r\n lastPage\r\n ];\r\n\r\n return array.filter(item => item !== null).map(item => ({\r\n value: item,\r\n isSelected: item === current\r\n }));\r\n }\r\n\r\n static paginationArray(data) {\r\n const { total, perPage, current = 1 } = data;\r\n const pages = Math.ceil(total / perPage);\r\n\r\n if (Number.isNaN(total)) throw new Error('Total param should be number');\r\n if (Number.isNaN(perPage)) throw new Error('perPage param should be number');\r\n\r\n const array = ResultPagination.generatePaginationArray(pages, current);\r\n\r\n return array;\r\n }\r\n\r\n static generateElements(array, prevText, nextText) {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const currentPage = urlParams.get('page') ? Number(urlParams.get('page')) : 1;\r\n\r\n const items = array.map(item => {\r\n const newUrlParams = urlParams;\r\n newUrlParams.set('page', item.value);\r\n const url = `?${newUrlParams.toString()}`;\r\n const isActive = item.value === currentPage;\r\n if (Number.isInteger(item.value)) {\r\n return `
  • ${item.value}
  • `;\r\n }\r\n return `
  • ${item.value}
  • `;\r\n });\r\n\r\n const firstItem = array[0].value;\r\n const lastItem = array[array.length - 1].value;\r\n\r\n if (firstItem !== currentPage) {\r\n const newUrlParams = urlParams;\r\n newUrlParams.set('page', currentPage - 1);\r\n const url = `?${newUrlParams.toString()}`;\r\n items.unshift(`
  • ${prevText}
  • `);\r\n }\r\n\r\n if (lastItem !== currentPage) {\r\n const newUrlParams = urlParams;\r\n newUrlParams.set('page', currentPage + 1);\r\n const url = `?${newUrlParams.toString()}`;\r\n items.push(`
  • ${nextText}
  • `);\r\n }\r\n\r\n const list = `
      ${items.join('')}
    `;\r\n\r\n return list;\r\n }\r\n\r\n render(name, data) {\r\n const { moduleList } = this.config;\r\n\r\n if (!moduleList) {\r\n return;\r\n }\r\n\r\n moduleList.forEach(element_ => {\r\n const element = element_;\r\n const elementPlaceholder = element;\r\n const { resultName } = element.dataset;\r\n if (resultName && resultName === name) {\r\n let { prevText, nextText } = element.dataset;\r\n\r\n prevText = prevText || 'Prev';\r\n nextText = nextText || 'Next';\r\n\r\n const pagingData = {\r\n total: data.totalPages,\r\n perPage: 1,\r\n current: data.currentPage\r\n };\r\n\r\n if (pagingData.total > 1) {\r\n const array = ResultPagination.paginationArray(pagingData);\r\n const paginationItems = ResultPagination.generateElements(array, prevText, nextText);\r\n elementPlaceholder.innerHTML = paginationItems;\r\n } else {\r\n element.style.display = 'none';\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default ResultPagination;\r\n","import ApiManager from './crud-manager';\r\n\r\nconst apiManager = new ApiManager();\r\n\r\nexport default function jsonToView(jsonData, templateView) {\r\n const url = `/api/v1/template/getview`;\r\n const body = {\r\n ApiTemplate: templateView,\r\n JData: JSON.stringify(jsonData)\r\n };\r\n\r\n return apiManager\r\n .post(url, body)\r\n .then(response => response)\r\n .catch(error => {\r\n throw new Error(error);\r\n });\r\n}\r\n","import ApiManager from '../api/crud-manager';\r\nimport ResultPagination from './result-pagination';\r\nimport utils from '../utils';\r\nimport jsonToView from '../api/json-to-view';\r\n\r\nconst { lang } = document.documentElement;\r\n\r\nclass ContentSearch {\r\n constructor(options = {}) {\r\n this.config = {\r\n module: document.querySelector('[data-module=\"ContentSearch\"]'),\r\n parameters: {\r\n page: '1',\r\n items: '24',\r\n culture: lang.length ? lang.toLowerCase() : 'nl'\r\n },\r\n ...options\r\n };\r\n this.apiManager = new ApiManager();\r\n this.resultPagination = new ResultPagination();\r\n }\r\n\r\n setPagination(response) {\r\n this.resultPagination.render('ContentSearch', response);\r\n }\r\n\r\n getSearchResults(searchQuery) {\r\n const { parameters } = this.config;\r\n\r\n // set parameters\r\n parameters.q = searchQuery;\r\n parameters.type = 'html';\r\n const parameterLink = utils.buildApiParameters(parameters);\r\n\r\n const url = `/api/v2/content/findpage${parameterLink}`;\r\n return this.apiManager\r\n .get(url)\r\n .then(data => {\r\n const regex = /<[^>]+>| |&/g;\r\n const newItems = data.items.filter(item => {\r\n const htmlString = item.contentData.replaceAll(regex, '');\r\n return htmlString.toLowerCase().indexOf(searchQuery.toLowerCase()) > -1;\r\n });\r\n const newData = { ...data };\r\n // eslint-disable-next-line no-shadow\r\n newData.items = newItems.map(data => {\r\n // eslint-disable-next-line no-param-reassign\r\n data.contentData = data.contentData.replaceAll(regex, ' ');\r\n return data;\r\n });\r\n\r\n return newData;\r\n })\r\n .catch(error => {\r\n throw new Error(error);\r\n });\r\n }\r\n\r\n renderSearchResults(searchQuery) {\r\n const { module } = this.config;\r\n const element = module.querySelector('[data-child-module=\"ContentSearchResultList\"]');\r\n\r\n element.classList.add('is-loading');\r\n\r\n this.getSearchResults(searchQuery).then(searchResponse => {\r\n const { items, totalItems } = searchResponse;\r\n\r\n // set view data & settings\r\n const templateView = 'contentSearchResults';\r\n const viewData = {\r\n results: items,\r\n resultsCount: totalItems,\r\n searchQuery\r\n };\r\n\r\n jsonToView(viewData, templateView)\r\n .then(html => {\r\n // append html to element\r\n element.classList.remove('is-loading');\r\n element.innerHTML = html;\r\n\r\n // render pagination\r\n this.setPagination(searchResponse);\r\n })\r\n .catch(error => {\r\n element.innerHTML =\r\n element.dataset.errorMessage ||\r\n 'An error has occurred, please try again later or contact us.';\r\n element.classList.remove('is-loading');\r\n element.classList.add('is-error');\r\n throw new Error(error);\r\n });\r\n });\r\n }\r\n\r\n init() {\r\n const { module } = this.config;\r\n\r\n if (!module) {\r\n return;\r\n }\r\n\r\n const searchInput = module.querySelector('input[name=\"q\"]');\r\n if (searchInput && searchInput.value && searchInput.value.length >= 2) {\r\n this.renderSearchResults(searchInput.value);\r\n }\r\n }\r\n}\r\n\r\nexport default ContentSearch;\r\n","// Robert Penner's easeInOutQuad\n\n// find the rest of his easing functions here: http://robertpenner.com/easing/\n// find them exported for ES6 consumption here: https://github.com/jaxgeller/ez.js\n\nvar easeInOutQuad = function easeInOutQuad(t, b, c, d) {\n t /= d / 2;\n if (t < 1) return c / 2 * t * t + b;\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n};\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar jumper = function jumper() {\n // private variable cache\n // no variables are created during a jump, preventing memory leaks\n\n var element = void 0; // element to scroll to (node)\n\n var start = void 0; // where scroll starts (px)\n var stop = void 0; // where scroll stops (px)\n\n var offset = void 0; // adjustment from the stop position (px)\n var easing = void 0; // easing function (function)\n var a11y = void 0; // accessibility support flag (boolean)\n\n var distance = void 0; // distance of scroll (px)\n var duration = void 0; // scroll duration (ms)\n\n var timeStart = void 0; // time scroll started (ms)\n var timeElapsed = void 0; // time spent scrolling thus far (ms)\n\n var next = void 0; // next scroll position (px)\n\n var callback = void 0; // to call when done scrolling (function)\n\n // scroll position helper\n\n function location() {\n return window.scrollY || window.pageYOffset;\n }\n\n // element offset helper\n\n function top(element) {\n return element.getBoundingClientRect().top + start;\n }\n\n // rAF loop helper\n\n function loop(timeCurrent) {\n // store time scroll started, if not started already\n if (!timeStart) {\n timeStart = timeCurrent;\n }\n\n // determine time spent scrolling so far\n timeElapsed = timeCurrent - timeStart;\n\n // calculate next scroll position\n next = easing(timeElapsed, start, distance, duration);\n\n // scroll to it\n window.scrollTo(0, next);\n\n // check progress\n timeElapsed < duration ? window.requestAnimationFrame(loop) // continue scroll loop\n : done(); // scrolling is done\n }\n\n // scroll finished helper\n\n function done() {\n // account for rAF time rounding inaccuracies\n window.scrollTo(0, start + distance);\n\n // if scrolling to an element, and accessibility is enabled\n if (element && a11y) {\n // add tabindex indicating programmatic focus\n element.setAttribute('tabindex', '-1');\n\n // focus the element\n element.focus();\n }\n\n // if it exists, fire the callback\n if (typeof callback === 'function') {\n callback();\n }\n\n // reset time for next jump\n timeStart = false;\n }\n\n // API\n\n function jump(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // resolve options, or use defaults\n duration = options.duration || 1000;\n offset = options.offset || 0;\n callback = options.callback; // \"undefined\" is a suitable default, and won't be called\n easing = options.easing || easeInOutQuad;\n a11y = options.a11y || false;\n\n // cache starting position\n start = location();\n\n // resolve target\n switch (typeof target === 'undefined' ? 'undefined' : _typeof(target)) {\n // scroll from current position\n case 'number':\n element = undefined; // no element to scroll to\n a11y = false; // make sure accessibility is off\n stop = start + target;\n break;\n\n // scroll to element (node)\n // bounding rect is relative to the viewport\n case 'object':\n element = target;\n stop = top(element);\n break;\n\n // scroll to element (selector)\n // bounding rect is relative to the viewport\n case 'string':\n element = document.querySelector(target);\n stop = top(element);\n break;\n }\n\n // resolve scroll distance, accounting for offset\n distance = stop - start + offset;\n\n // resolve duration\n switch (_typeof(options.duration)) {\n // number in ms\n case 'number':\n duration = options.duration;\n break;\n\n // function passed the distance of the scroll\n case 'function':\n duration = options.duration(distance);\n break;\n }\n\n // start the loop\n window.requestAnimationFrame(loop);\n }\n\n // expose only the jump method\n return jump;\n};\n\n// export singleton\n\nvar singleton = jumper();\n\nexport default singleton;\n","import jump from 'jump.js';\r\n\r\nclass SmoothScroll {\r\n constructor(options = {}) {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"SmoothScroll\"]'),\r\n header: document.querySelector('[data-module=\"Header\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { moduleList, header } = this.config;\r\n\r\n moduleList.forEach(module => {\r\n module.addEventListener('click', e => {\r\n e.preventDefault();\r\n\r\n const id = module.getAttribute('href');\r\n const target = document.querySelector(id);\r\n const headerOffset = header ? header.getBoundingClientRect().height : 0;\r\n\r\n if (!target) {\r\n return;\r\n }\r\n\r\n jump(target, {\r\n duration: 500,\r\n offset: -(headerOffset + 50)\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default SmoothScroll;\r\n","/*!\n * JavaScript Cookie v2.2.0\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader = false;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api (key, value, attributes) {\n\t\t\tvar result;\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Write\n\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t}\n\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\t\ttry {\n\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\n\t\t\t\tif (!converter.write) {\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t}\n\n\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\n\t\t\t\tvar stringifiedAttributes = '';\n\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t}\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\n\t\t\t// Read\n\n\t\t\tif (!key) {\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t// calling \"get()\"\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\n\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tapi.set = api;\n\t\tapi.get = function (key) {\n\t\t\treturn api.call(api, key);\n\t\t};\n\t\tapi.getJSON = function () {\n\t\t\treturn api.apply({\n\t\t\t\tjson: true\n\t\t\t}, [].slice.call(arguments));\n\t\t};\n\t\tapi.defaults = {};\n\n\t\tapi.remove = function (key, attributes) {\n\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import 'jquery-ajax-unobtrusive';\r\nimport '../../../scss/sites/cloud/cloud-style.scss';\r\nimport Header from '@png/npm-header';\r\nimport SvgIcon from '@png/npm-svg-icon';\r\nimport AddressLookup from '../../modules/address-lookup';\r\nimport ClearCache from '../../modules/clear-cache';\r\nimport CookieBar from '../../modules/cookie-bar';\r\nimport LightGallery from '../../modules/light-gallery';\r\nimport SmoothScroll from '../../modules/smooth-scroll';\r\nimport Sticky from '../../modules/sticky';\r\nimport Video from '../../modules/video';\r\nimport OverviewPageFilters from '../../modules/overview-page-filters';\r\nimport RelatedPagesOverview from '../../modules/related-pages-overview';\r\nimport LatestPagesOverview from '../../modules/latest-pages-overview';\r\nimport ContentSearch from '../../modules/content-search';\r\nimport MarkSearchKeyword from '../../modules/mark-word';\r\nimport Recaptcha from '../../modules/recaptcha';\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n const modules = [\r\n new AddressLookup(),\r\n new ClearCache(),\r\n new CookieBar(),\r\n new Header({\r\n desktopMenuBreakpoint: 992,\r\n openUrlOnToggle: false\r\n }),\r\n new Recaptcha({\r\n key: '6Leqkv8cAAAAACdVu2-Se-QGCMZq46orfZavBIW4'\r\n }),\r\n new LightGallery(),\r\n new OverviewPageFilters(),\r\n new RelatedPagesOverview(),\r\n new LatestPagesOverview(),\r\n new Sticky({\r\n velocity: 20\r\n }),\r\n new SvgIcon(),\r\n new SmoothScroll(),\r\n new Video(),\r\n new ContentSearch(),\r\n new MarkSearchKeyword()\r\n ];\r\n\r\n modules.forEach(module => {\r\n if (module && module.init) {\r\n module.init();\r\n }\r\n });\r\n});\r\n","// Unobtrusive Ajax support library for jQuery\n// Copyright (c) .NET Foundation. All rights reserved.\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\n// @version v3.2.6\n// \n// Microsoft grants you the right to use these script files for the sole\n// purpose of either: (i) interacting through your browser with the Microsoft\n// website or online service, subject to the applicable licensing or use\n// terms; or (ii) using the files as included with a Microsoft product subject\n// to that product's license terms. Microsoft reserves all other rights to the\n// files not expressly granted by Microsoft, whether by implication, estoppel\n// or otherwise. Insofar as a script file is dual licensed under GPL,\n// Microsoft neither took the code under GPL nor distributes it thereunder but\n// under the terms set out in this paragraph. All notices and licenses\n// below are for informational purposes only.\n\n/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */\n/*global window: false, jQuery: false */\n\n(function ($) {\n var data_click = \"unobtrusiveAjaxClick\",\n data_target = \"unobtrusiveAjaxClickTarget\",\n data_validation = \"unobtrusiveValidation\";\n\n function getFunction(code, argNames) {\n var fn = window, parts = (code || \"\").split(\".\");\n while (fn && parts.length) {\n fn = fn[parts.shift()];\n }\n if (typeof (fn) === \"function\") {\n return fn;\n }\n argNames.push(code);\n return Function.constructor.apply(null, argNames);\n }\n\n function isMethodProxySafe(method) {\n return method === \"GET\" || method === \"POST\";\n }\n\n function asyncOnBeforeSend(xhr, method) {\n if (!isMethodProxySafe(method)) {\n xhr.setRequestHeader(\"X-HTTP-Method-Override\", method);\n }\n }\n\n function asyncOnSuccess(element, data, contentType) {\n var mode;\n\n if (contentType.indexOf(\"application/x-javascript\") !== -1) { // jQuery already executes JavaScript for us\n return;\n }\n\n mode = (element.getAttribute(\"data-ajax-mode\") || \"\").toUpperCase();\n $(element.getAttribute(\"data-ajax-update\")).each(function (i, update) {\n var top;\n\n switch (mode) {\n case \"BEFORE\":\n $(update).prepend(data);\n break;\n case \"AFTER\":\n $(update).append(data);\n break;\n case \"REPLACE-WITH\":\n $(update).replaceWith(data);\n break;\n default:\n $(update).html(data);\n break;\n }\n });\n }\n\n function asyncRequest(element, options) {\n var confirm, loading, method, duration;\n\n confirm = element.getAttribute(\"data-ajax-confirm\");\n if (confirm && !window.confirm(confirm)) {\n return;\n }\n\n loading = $(element.getAttribute(\"data-ajax-loading\"));\n duration = parseInt(element.getAttribute(\"data-ajax-loading-duration\"), 10) || 0;\n\n $.extend(options, {\n type: element.getAttribute(\"data-ajax-method\") || undefined,\n url: element.getAttribute(\"data-ajax-url\") || undefined,\n cache: (element.getAttribute(\"data-ajax-cache\") || \"\").toLowerCase() === \"true\",\n beforeSend: function (xhr) {\n var result;\n asyncOnBeforeSend(xhr, method);\n result = getFunction(element.getAttribute(\"data-ajax-begin\"), [\"xhr\"]).apply(element, arguments);\n if (result !== false) {\n loading.show(duration);\n }\n return result;\n },\n complete: function () {\n loading.hide(duration);\n getFunction(element.getAttribute(\"data-ajax-complete\"), [\"xhr\", \"status\"]).apply(element, arguments);\n },\n success: function (data, status, xhr) {\n asyncOnSuccess(element, data, xhr.getResponseHeader(\"Content-Type\") || \"text/html\");\n getFunction(element.getAttribute(\"data-ajax-success\"), [\"data\", \"status\", \"xhr\"]).apply(element, arguments);\n },\n error: function () {\n getFunction(element.getAttribute(\"data-ajax-failure\"), [\"xhr\", \"status\", \"error\"]).apply(element, arguments);\n }\n });\n\n options.data.push({ name: \"X-Requested-With\", value: \"XMLHttpRequest\" });\n\n method = options.type.toUpperCase();\n if (!isMethodProxySafe(method)) {\n options.type = \"POST\";\n options.data.push({ name: \"X-HTTP-Method-Override\", value: method });\n }\n\n // change here:\n // Check for a Form POST with enctype=multipart/form-data\n // add the input file that were not previously included in the serializeArray()\n // set processData and contentType to false\n var $element = $(element);\n if ($element.is(\"form\") && $element.attr(\"enctype\") == \"multipart/form-data\") {\n var formdata = new FormData();\n $.each(options.data, function (i, v) {\n formdata.append(v.name, v.value);\n });\n $(\"input[type=file]\", $element).each(function () {\n var file = this;\n $.each(file.files, function (n, v) {\n formdata.append(file.name, v);\n });\n });\n $.extend(options, {\n processData: false,\n contentType: false,\n data: formdata\n });\n }\n // end change\n\n $.ajax(options);\n }\n\n function validate(form) {\n var validationInfo = $(form).data(data_validation);\n return !validationInfo || !validationInfo.validate || validationInfo.validate();\n }\n\n $(document).on(\"click\", \"a[data-ajax=true]\", function (evt) {\n evt.preventDefault();\n asyncRequest(this, {\n url: this.href,\n type: \"GET\",\n data: []\n });\n });\n\n $(document).on(\"click\", \"form[data-ajax=true] input[type=image]\", function (evt) {\n var name = evt.target.name,\n target = $(evt.target),\n form = $(target.parents(\"form\")[0]),\n offset = target.offset();\n\n form.data(data_click, [\n { name: name + \".x\", value: Math.round(evt.pageX - offset.left) },\n { name: name + \".y\", value: Math.round(evt.pageY - offset.top) }\n ]);\n\n setTimeout(function () {\n form.removeData(data_click);\n }, 0);\n });\n\n $(document).on(\"click\", \"form[data-ajax=true] :submit\", function (evt) {\n var name = evt.currentTarget.name,\n target = $(evt.target),\n form = $(target.parents(\"form\")[0]);\n\n form.data(data_click, name ? [{ name: name, value: evt.currentTarget.value }] : []);\n form.data(data_target, target);\n\n setTimeout(function () {\n form.removeData(data_click);\n form.removeData(data_target);\n }, 0);\n });\n\n $(document).on(\"submit\", \"form[data-ajax=true]\", function (evt) {\n var clickInfo = $(this).data(data_click) || [],\n clickTarget = $(this).data(data_target),\n isCancel = clickTarget && (clickTarget.hasClass(\"cancel\") || clickTarget.attr('formnovalidate') !== undefined);\n evt.preventDefault();\n if (!isCancel && !validate(this)) {\n return;\n }\n asyncRequest(this, {\n url: this.action,\n type: this.method || \"GET\",\n data: clickInfo.concat($(this).serializeArray())\n });\n });\n}(jQuery));\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['./lg-utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(require('./lg-utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(global.lgUtils);\n global.lightgallery = mod.exports;\n }\n})(this, function (_lgUtils) {\n 'use strict';\n\n var _lgUtils2 = _interopRequireDefault(_lgUtils);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n /** Polyfill the CustomEvent() constructor functionality in Internet Explorer 9 and higher */\n (function () {\n\n if (typeof window.CustomEvent === 'function') {\n return false;\n }\n\n function CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n\n CustomEvent.prototype = window.Event.prototype;\n\n window.CustomEvent = CustomEvent;\n })();\n\n window.utils = _lgUtils2.default;\n window.lgData = {\n uid: 0\n };\n\n window.lgModules = {};\n var defaults = {\n\n mode: 'lg-slide',\n\n // Ex : 'ease'\n cssEasing: 'ease',\n\n //'for jquery animation'\n easing: 'linear',\n speed: 600,\n height: '100%',\n width: '100%',\n addClass: '',\n startClass: 'lg-start-zoom',\n backdropDuration: 150,\n hideBarsDelay: 6000,\n\n useLeft: false,\n\n closable: true,\n loop: true,\n escKey: true,\n keyPress: true,\n controls: true,\n slideEndAnimatoin: true,\n hideControlOnEnd: false,\n mousewheel: false,\n\n getCaptionFromTitleOrAlt: true,\n\n // .lg-item || '.lg-sub-html'\n appendSubHtmlTo: '.lg-sub-html',\n\n subHtmlSelectorRelative: false,\n\n /**\n * @desc number of preload slides\n * will exicute only after the current slide is fully loaded.\n *\n * @ex you clicked on 4th image and if preload = 1 then 3rd slide and 5th\n * slide will be loaded in the background after the 4th slide is fully loaded..\n * if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded.. ... ...\n *\n */\n preload: 1,\n showAfterLoad: true,\n selector: '',\n selectWithin: '',\n nextHtml: '',\n prevHtml: '',\n\n // 0, 1\n index: false,\n\n iframeMaxWidth: '100%',\n\n download: true,\n counter: true,\n appendCounterTo: '.lg-toolbar',\n\n swipeThreshold: 50,\n enableSwipe: true,\n enableDrag: true,\n\n dynamic: false,\n dynamicEl: [],\n galleryId: 1\n };\n\n function Plugin(element, options) {\n\n // Current lightGallery element\n this.el = element;\n\n // lightGallery settings\n this.s = _extends({}, defaults, options);\n\n // When using dynamic mode, ensure dynamicEl is an array\n if (this.s.dynamic && this.s.dynamicEl !== 'undefined' && this.s.dynamicEl.constructor === Array && !this.s.dynamicEl.length) {\n throw 'When using dynamic mode, you must also define dynamicEl as an Array.';\n }\n\n // lightGallery modules\n this.modules = {};\n\n // false when lightgallery complete first slide;\n this.lGalleryOn = false;\n\n this.lgBusy = false;\n\n // Timeout function for hiding controls;\n this.hideBartimeout = false;\n\n // To determine browser supports for touch events;\n this.isTouch = 'ontouchstart' in document.documentElement;\n\n // Disable hideControlOnEnd if sildeEndAnimation is true\n if (this.s.slideEndAnimatoin) {\n this.s.hideControlOnEnd = false;\n }\n\n this.items = [];\n\n // Gallery items\n if (this.s.dynamic) {\n this.items = this.s.dynamicEl;\n } else {\n if (this.s.selector === 'this') {\n this.items.push(this.el);\n } else if (this.s.selector !== '') {\n if (this.s.selectWithin) {\n this.items = document.querySelector(this.s.selectWithin).querySelectorAll(this.s.selector);\n } else {\n this.items = this.el.querySelectorAll(this.s.selector);\n }\n } else {\n this.items = this.el.children;\n }\n }\n\n // .lg-item\n\n this.___slide = '';\n\n // .lg-outer\n this.outer = '';\n\n this.init();\n\n return this;\n }\n\n Plugin.prototype.init = function () {\n\n var _this = this;\n\n // s.preload should not be more than $item.length\n if (_this.s.preload > _this.items.length) {\n _this.s.preload = _this.items.length;\n }\n\n // if dynamic option is enabled execute immediately\n var _hash = window.location.hash;\n if (_hash.indexOf('lg=' + this.s.galleryId) > 0) {\n\n _this.index = parseInt(_hash.split('&slide=')[1], 10);\n\n _lgUtils2.default.addClass(document.body, 'lg-from-hash');\n if (!_lgUtils2.default.hasClass(document.body, 'lg-on')) {\n _lgUtils2.default.addClass(document.body, 'lg-on');\n setTimeout(function () {\n _this.build(_this.index);\n });\n }\n }\n\n if (_this.s.dynamic) {\n\n _lgUtils2.default.trigger(this.el, 'onBeforeOpen');\n\n _this.index = _this.s.index || 0;\n\n // prevent accidental double execution\n if (!_lgUtils2.default.hasClass(document.body, 'lg-on')) {\n _lgUtils2.default.addClass(document.body, 'lg-on');\n setTimeout(function () {\n _this.build(_this.index);\n });\n }\n } else {\n\n for (var i = 0; i < _this.items.length; i++) {\n\n /*jshint loopfunc: true */\n (function (index) {\n\n // Using different namespace for click because click event should not unbind if selector is same object('this')\n _lgUtils2.default.on(_this.items[index], 'click.lgcustom', function (e) {\n\n e.preventDefault();\n\n _lgUtils2.default.trigger(_this.el, 'onBeforeOpen');\n\n _this.index = _this.s.index || index;\n\n if (!_lgUtils2.default.hasClass(document.body, 'lg-on')) {\n _this.build(_this.index);\n _lgUtils2.default.addClass(document.body, 'lg-on');\n }\n });\n })(i);\n }\n }\n };\n\n Plugin.prototype.build = function (index) {\n\n var _this = this;\n\n _this.structure();\n\n for (var key in window.lgModules) {\n _this.modules[key] = new window.lgModules[key](_this.el);\n }\n\n // initiate slide function\n _this.slide(index, false, false);\n\n if (_this.s.keyPress) {\n _this.keyPress();\n }\n\n if (_this.items.length > 1) {\n\n _this.arrow();\n\n setTimeout(function () {\n _this.enableDrag();\n _this.enableSwipe();\n }, 50);\n\n if (_this.s.mousewheel) {\n _this.mousewheel();\n }\n }\n\n _this.counter();\n\n _this.closeGallery();\n\n _lgUtils2.default.trigger(_this.el, 'onAfterOpen');\n\n // Hide controllers if mouse doesn't move for some period\n _lgUtils2.default.on(_this.outer, 'mousemove.lg click.lg touchstart.lg', function () {\n\n _lgUtils2.default.removeClass(_this.outer, 'lg-hide-items');\n\n clearTimeout(_this.hideBartimeout);\n\n // Timeout will be cleared on each slide movement also\n _this.hideBartimeout = setTimeout(function () {\n _lgUtils2.default.addClass(_this.outer, 'lg-hide-items');\n }, _this.s.hideBarsDelay);\n });\n };\n\n Plugin.prototype.structure = function () {\n var list = '';\n var controls = '';\n var i = 0;\n var subHtmlCont = '';\n var template;\n var _this = this;\n\n document.body.insertAdjacentHTML('beforeend', '
    ');\n _lgUtils2.default.setVendor(document.querySelector('.lg-backdrop'), 'TransitionDuration', this.s.backdropDuration + 'ms');\n\n // Create gallery items\n for (i = 0; i < this.items.length; i++) {\n list += '
    ';\n }\n\n // Create controlls\n if (this.s.controls && this.items.length > 1) {\n controls = '
    ' + '
    ' + this.s.prevHtml + '
    ' + '
    ' + this.s.nextHtml + '
    ' + '
    ';\n }\n\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n subHtmlCont = '
    ';\n }\n\n template = '
    ' + '
    ' + '
    ' + list + '
    ' + '
    ' + '' + '
    ' + controls + subHtmlCont + '
    ' + '
    ';\n\n document.body.insertAdjacentHTML('beforeend', template);\n this.outer = document.querySelector('.lg-outer');\n this.___slide = this.outer.querySelectorAll('.lg-item');\n\n if (this.s.useLeft) {\n _lgUtils2.default.addClass(this.outer, 'lg-use-left');\n\n // Set mode lg-slide if use left is true;\n this.s.mode = 'lg-slide';\n } else {\n _lgUtils2.default.addClass(this.outer, 'lg-use-css3');\n }\n\n // For fixed height gallery\n _this.setTop();\n _lgUtils2.default.on(window, 'resize.lg orientationchange.lg', function () {\n setTimeout(function () {\n _this.setTop();\n }, 100);\n });\n\n // add class lg-current to remove initial transition\n _lgUtils2.default.addClass(this.___slide[this.index], 'lg-current');\n\n // add Class for css support and transition mode\n if (this.doCss()) {\n _lgUtils2.default.addClass(this.outer, 'lg-css3');\n } else {\n _lgUtils2.default.addClass(this.outer, 'lg-css');\n\n // Set speed 0 because no animation will happen if browser doesn't support css3\n this.s.speed = 0;\n }\n\n _lgUtils2.default.addClass(this.outer, this.s.mode);\n\n if (this.s.enableDrag && this.items.length > 1) {\n _lgUtils2.default.addClass(this.outer, 'lg-grab');\n }\n\n if (this.s.showAfterLoad) {\n _lgUtils2.default.addClass(this.outer, 'lg-show-after-load');\n }\n\n if (this.doCss()) {\n var inner = this.outer.querySelector('.lg-inner');\n _lgUtils2.default.setVendor(inner, 'TransitionTimingFunction', this.s.cssEasing);\n _lgUtils2.default.setVendor(inner, 'TransitionDuration', this.s.speed + 'ms');\n }\n\n setTimeout(function () {\n _lgUtils2.default.addClass(document.querySelector('.lg-backdrop'), 'in');\n });\n\n setTimeout(function () {\n _lgUtils2.default.addClass(_this.outer, 'lg-visible');\n }, this.s.backdropDuration);\n\n if (this.s.download) {\n this.outer.querySelector('.lg-toolbar').insertAdjacentHTML('beforeend', '');\n }\n\n // Store the current scroll top value to scroll back after closing the gallery..\n this.prevScrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n };\n\n // For fixed height gallery\n Plugin.prototype.setTop = function () {\n if (this.s.height !== '100%') {\n var wH = window.innerHeight;\n var top = (wH - parseInt(this.s.height, 10)) / 2;\n var lGallery = this.outer.querySelector('.lg');\n if (wH >= parseInt(this.s.height, 10)) {\n lGallery.style.top = top + 'px';\n } else {\n lGallery.style.top = '0px';\n }\n }\n };\n\n // Find css3 support\n Plugin.prototype.doCss = function () {\n // check for css animation support\n var support = function support() {\n var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];\n var root = document.documentElement;\n var i = 0;\n for (i = 0; i < transition.length; i++) {\n if (transition[i] in root.style) {\n return true;\n }\n }\n };\n\n if (support()) {\n return true;\n }\n\n return false;\n };\n\n /**\n * @desc Check the given src is video\n * @param {String} src\n * @return {Object} video type\n * Ex:{ youtube : [\"//www.youtube.com/watch?v=c0asJgSyxcY\", \"c0asJgSyxcY\"] }\n */\n Plugin.prototype.isVideo = function (src, index) {\n\n var html;\n if (this.s.dynamic) {\n html = this.s.dynamicEl[index].html;\n } else {\n html = this.items[index].getAttribute('data-html');\n }\n\n if (!src && html) {\n return {\n html5: true\n };\n }\n\n var youtube = src.match(/\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com|be-nocookie\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-\\_\\%]+)/i);\n var vimeo = src.match(/\\/\\/(?:www\\.)?vimeo.com\\/([0-9a-z\\-_]+)/i);\n var dailymotion = src.match(/\\/\\/(?:www\\.)?dai.ly\\/([0-9a-z\\-_]+)/i);\n var vk = src.match(/\\/\\/(?:www\\.)?(?:vk\\.com|vkontakte\\.ru)\\/(?:video_ext\\.php\\?)(.*)/i);\n\n if (youtube) {\n return {\n youtube: youtube\n };\n } else if (vimeo) {\n return {\n vimeo: vimeo\n };\n } else if (dailymotion) {\n return {\n dailymotion: dailymotion\n };\n } else if (vk) {\n return {\n vk: vk\n };\n }\n };\n\n /**\n * @desc Create image counter\n * Ex: 1/10\n */\n Plugin.prototype.counter = function () {\n if (this.s.counter) {\n this.outer.querySelector(this.s.appendCounterTo).insertAdjacentHTML('beforeend', '
    ' + (parseInt(this.index, 10) + 1) + ' / ' + this.items.length + '
    ');\n }\n };\n\n /**\n * @desc add sub-html into the slide\n * @param {Number} index - index of the slide\n */\n Plugin.prototype.addHtml = function (index) {\n var subHtml = null;\n var currentEle;\n if (this.s.dynamic) {\n subHtml = this.s.dynamicEl[index].subHtml;\n } else {\n currentEle = this.items[index];\n subHtml = currentEle.getAttribute('data-sub-html');\n if (this.s.getCaptionFromTitleOrAlt && !subHtml) {\n subHtml = currentEle.getAttribute('title');\n if (subHtml && currentEle.querySelector('img')) {\n subHtml = currentEle.querySelector('img').getAttribute('alt');\n }\n }\n }\n\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n\n // get first letter of subhtml\n // if first letter starts with . or # get the html form the jQuery object\n var fL = subHtml.substring(0, 1);\n if (fL === '.' || fL === '#') {\n if (this.s.subHtmlSelectorRelative && !this.s.dynamic) {\n subHtml = currentEle.querySelector(subHtml).innerHTML;\n } else {\n subHtml = document.querySelector(subHtml).innerHTML;\n }\n }\n } else {\n subHtml = '';\n }\n\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n this.outer.querySelector(this.s.appendSubHtmlTo).innerHTML = subHtml;\n } else {\n this.___slide[index].insertAdjacentHTML('beforeend', subHtml);\n }\n\n // Add lg-empty-html class if title doesn't exist\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n if (subHtml === '') {\n _lgUtils2.default.addClass(this.outer.querySelector(this.s.appendSubHtmlTo), 'lg-empty-html');\n } else {\n _lgUtils2.default.removeClass(this.outer.querySelector(this.s.appendSubHtmlTo), 'lg-empty-html');\n }\n }\n\n _lgUtils2.default.trigger(this.el, 'onAfterAppendSubHtml', {\n index: index\n });\n };\n\n /**\n * @desc Preload slides\n * @param {Number} index - index of the slide\n */\n Plugin.prototype.preload = function (index) {\n var i = 1;\n var j = 1;\n for (i = 1; i <= this.s.preload; i++) {\n if (i >= this.items.length - index) {\n break;\n }\n\n this.loadContent(index + i, false, 0);\n }\n\n for (j = 1; j <= this.s.preload; j++) {\n if (index - j < 0) {\n break;\n }\n\n this.loadContent(index - j, false, 0);\n }\n };\n\n /**\n * @desc Load slide content into slide.\n * @param {Number} index - index of the slide.\n * @param {Boolean} rec - if true call loadcontent() function again.\n * @param {Boolean} delay - delay for adding complete class. it is 0 except first time.\n */\n Plugin.prototype.loadContent = function (index, rec, delay) {\n\n var _this = this;\n var _hasPoster = false;\n var _img;\n var _src;\n var _poster;\n var _srcset;\n var _sizes;\n var _html;\n var getResponsiveSrc = function getResponsiveSrc(srcItms) {\n var rsWidth = [];\n var rsSrc = [];\n for (var i = 0; i < srcItms.length; i++) {\n var __src = srcItms[i].split(' ');\n\n // Manage empty space\n if (__src[0] === '') {\n __src.splice(0, 1);\n }\n\n rsSrc.push(__src[0]);\n rsWidth.push(__src[1]);\n }\n\n var wWidth = window.innerWidth;\n for (var j = 0; j < rsWidth.length; j++) {\n if (parseInt(rsWidth[j], 10) > wWidth) {\n _src = rsSrc[j];\n break;\n }\n }\n };\n\n if (_this.s.dynamic) {\n\n if (_this.s.dynamicEl[index].poster) {\n _hasPoster = true;\n _poster = _this.s.dynamicEl[index].poster;\n }\n\n _html = _this.s.dynamicEl[index].html;\n _src = _this.s.dynamicEl[index].src;\n\n if (_this.s.dynamicEl[index].responsive) {\n var srcDyItms = _this.s.dynamicEl[index].responsive.split(',');\n getResponsiveSrc(srcDyItms);\n }\n\n _srcset = _this.s.dynamicEl[index].srcset;\n _sizes = _this.s.dynamicEl[index].sizes;\n } else {\n\n if (_this.items[index].getAttribute('data-poster')) {\n _hasPoster = true;\n _poster = _this.items[index].getAttribute('data-poster');\n }\n\n _html = _this.items[index].getAttribute('data-html');\n _src = _this.items[index].getAttribute('href') || _this.items[index].getAttribute('data-src');\n\n if (_this.items[index].getAttribute('data-responsive')) {\n var srcItms = _this.items[index].getAttribute('data-responsive').split(',');\n getResponsiveSrc(srcItms);\n }\n\n _srcset = _this.items[index].getAttribute('data-srcset');\n _sizes = _this.items[index].getAttribute('data-sizes');\n }\n\n //if (_src || _srcset || _sizes || _poster) {\n\n var iframe = false;\n if (_this.s.dynamic) {\n if (_this.s.dynamicEl[index].iframe) {\n iframe = true;\n }\n } else {\n if (_this.items[index].getAttribute('data-iframe') === 'true') {\n iframe = true;\n }\n }\n\n var _isVideo = _this.isVideo(_src, index);\n if (!_lgUtils2.default.hasClass(_this.___slide[index], 'lg-loaded')) {\n if (iframe) {\n _this.___slide[index].insertAdjacentHTML('afterbegin', '
    ');\n } else if (_hasPoster) {\n var videoClass = '';\n if (_isVideo && _isVideo.youtube) {\n videoClass = 'lg-has-youtube';\n } else if (_isVideo && _isVideo.vimeo) {\n videoClass = 'lg-has-vimeo';\n } else {\n videoClass = 'lg-has-html5';\n }\n\n _this.___slide[index].insertAdjacentHTML('beforeend', '
    ');\n } else if (_isVideo) {\n _this.___slide[index].insertAdjacentHTML('beforeend', '
    ');\n _lgUtils2.default.trigger(_this.el, 'hasVideo', {\n index: index,\n src: _src,\n html: _html\n });\n } else {\n _this.___slide[index].insertAdjacentHTML('beforeend', '
    ');\n }\n\n _lgUtils2.default.trigger(_this.el, 'onAferAppendSlide', {\n index: index\n });\n\n _img = _this.___slide[index].querySelector('.lg-object');\n if (_sizes) {\n _img.setAttribute('sizes', _sizes);\n }\n\n if (_srcset) {\n _img.setAttribute('srcset', _srcset);\n try {\n picturefill({\n elements: [_img[0]]\n });\n } catch (e) {\n console.error('Make sure you have included Picturefill version 2');\n }\n }\n\n if (this.s.appendSubHtmlTo !== '.lg-sub-html') {\n _this.addHtml(index);\n }\n\n _lgUtils2.default.addClass(_this.___slide[index], 'lg-loaded');\n }\n\n _lgUtils2.default.on(_this.___slide[index].querySelector('.lg-object'), 'load.lg error.lg', function () {\n\n // For first time add some delay for displaying the start animation.\n var _speed = 0;\n\n // Do not change the delay value because it is required for zoom plugin.\n // If gallery opened from direct url (hash) speed value should be 0\n if (delay && !_lgUtils2.default.hasClass(document.body, 'lg-from-hash')) {\n _speed = delay;\n }\n\n setTimeout(function () {\n _lgUtils2.default.addClass(_this.___slide[index], 'lg-complete');\n\n _lgUtils2.default.trigger(_this.el, 'onSlideItemLoad', {\n index: index,\n delay: delay || 0\n });\n }, _speed);\n });\n\n // @todo check load state for html5 videos\n if (_isVideo && _isVideo.html5 && !_hasPoster) {\n _lgUtils2.default.addClass(_this.___slide[index], 'lg-complete');\n }\n\n if (rec === true) {\n if (!_lgUtils2.default.hasClass(_this.___slide[index], 'lg-complete')) {\n _lgUtils2.default.on(_this.___slide[index].querySelector('.lg-object'), 'load.lg error.lg', function () {\n _this.preload(index);\n });\n } else {\n _this.preload(index);\n }\n }\n\n //}\n };\n\n /**\n * @desc slide function for lightgallery\n ** Slide() gets call on start\n ** ** Set lg.on true once slide() function gets called.\n ** Call loadContent() on slide() function inside setTimeout\n ** ** On first slide we do not want any animation like slide of fade\n ** ** So on first slide( if lg.on if false that is first slide) loadContent() should start loading immediately\n ** ** Else loadContent() should wait for the transition to complete.\n ** ** So set timeout s.speed + 50\n <=> ** loadContent() will load slide content in to the particular slide\n ** ** It has recursion (rec) parameter. if rec === true loadContent() will call preload() function.\n ** ** preload will execute only when the previous slide is fully loaded (images iframe)\n ** ** avoid simultaneous image load\n <=> ** Preload() will check for s.preload value and call loadContent() again accoring to preload value\n ** loadContent() <====> Preload();\n \n * @param {Number} index - index of the slide\n * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag\n * @param {Boolean} fromThumb - true if slide function called via thumbnail click\n */\n Plugin.prototype.slide = function (index, fromTouch, fromThumb) {\n\n var _prevIndex = 0;\n for (var i = 0; i < this.___slide.length; i++) {\n if (_lgUtils2.default.hasClass(this.___slide[i], 'lg-current')) {\n _prevIndex = i;\n break;\n }\n }\n\n var _this = this;\n\n // Prevent if multiple call\n // Required for hsh plugin\n if (_this.lGalleryOn && _prevIndex === index) {\n return;\n }\n\n var _length = this.___slide.length;\n var _time = _this.lGalleryOn ? this.s.speed : 0;\n var _next = false;\n var _prev = false;\n\n if (!_this.lgBusy) {\n\n if (this.s.download) {\n var _src;\n if (_this.s.dynamic) {\n _src = _this.s.dynamicEl[index].downloadUrl !== false && (_this.s.dynamicEl[index].downloadUrl || _this.s.dynamicEl[index].src);\n } else {\n _src = _this.items[index].getAttribute('data-download-url') !== 'false' && (_this.items[index].getAttribute('data-download-url') || _this.items[index].getAttribute('href') || _this.items[index].getAttribute('data-src'));\n }\n\n if (_src) {\n document.getElementById('lg-download').setAttribute('href', _src);\n _lgUtils2.default.removeClass(_this.outer, 'lg-hide-download');\n } else {\n _lgUtils2.default.addClass(_this.outer, 'lg-hide-download');\n }\n }\n\n _lgUtils2.default.trigger(_this.el, 'onBeforeSlide', {\n prevIndex: _prevIndex,\n index: index,\n fromTouch: fromTouch,\n fromThumb: fromThumb\n });\n\n _this.lgBusy = true;\n\n clearTimeout(_this.hideBartimeout);\n\n // Add title if this.s.appendSubHtmlTo === lg-sub-html\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n\n // wait for slide animation to complete\n setTimeout(function () {\n _this.addHtml(index);\n }, _time);\n }\n\n this.arrowDisable(index);\n\n if (!fromTouch) {\n\n // remove all transitions\n _lgUtils2.default.addClass(_this.outer, 'lg-no-trans');\n\n for (var j = 0; j < this.___slide.length; j++) {\n _lgUtils2.default.removeClass(this.___slide[j], 'lg-prev-slide');\n _lgUtils2.default.removeClass(this.___slide[j], 'lg-next-slide');\n }\n\n if (index < _prevIndex) {\n _prev = true;\n if (index === 0 && _prevIndex === _length - 1 && !fromThumb) {\n _prev = false;\n _next = true;\n }\n } else if (index > _prevIndex) {\n _next = true;\n if (index === _length - 1 && _prevIndex === 0 && !fromThumb) {\n _prev = true;\n _next = false;\n }\n }\n\n if (_prev) {\n\n //prevslide\n _lgUtils2.default.addClass(this.___slide[index], 'lg-prev-slide');\n _lgUtils2.default.addClass(this.___slide[_prevIndex], 'lg-next-slide');\n } else if (_next) {\n\n // next slide\n _lgUtils2.default.addClass(this.___slide[index], 'lg-next-slide');\n _lgUtils2.default.addClass(this.___slide[_prevIndex], 'lg-prev-slide');\n }\n\n // give 50 ms for browser to add/remove class\n setTimeout(function () {\n _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-current'), 'lg-current');\n\n //_this.$slide.eq(_prevIndex).removeClass('lg-current');\n _lgUtils2.default.addClass(_this.___slide[index], 'lg-current');\n\n // reset all transitions\n _lgUtils2.default.removeClass(_this.outer, 'lg-no-trans');\n }, 50);\n } else {\n\n var touchPrev = index - 1;\n var touchNext = index + 1;\n\n if (index === 0 && _prevIndex === _length - 1) {\n\n // next slide\n touchNext = 0;\n touchPrev = _length - 1;\n } else if (index === _length - 1 && _prevIndex === 0) {\n\n // prev slide\n touchNext = 0;\n touchPrev = _length - 1;\n }\n\n _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-prev-slide'), 'lg-prev-slide');\n _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-current'), 'lg-current');\n _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-next-slide'), 'lg-next-slide');\n _lgUtils2.default.addClass(_this.___slide[touchPrev], 'lg-prev-slide');\n _lgUtils2.default.addClass(_this.___slide[touchNext], 'lg-next-slide');\n _lgUtils2.default.addClass(_this.___slide[index], 'lg-current');\n }\n\n if (_this.lGalleryOn) {\n setTimeout(function () {\n _this.loadContent(index, true, 0);\n }, this.s.speed + 50);\n\n setTimeout(function () {\n _this.lgBusy = false;\n _lgUtils2.default.trigger(_this.el, 'onAfterSlide', {\n prevIndex: _prevIndex,\n index: index,\n fromTouch: fromTouch,\n fromThumb: fromThumb\n });\n }, this.s.speed);\n } else {\n _this.loadContent(index, true, _this.s.backdropDuration);\n\n _this.lgBusy = false;\n _lgUtils2.default.trigger(_this.el, 'onAfterSlide', {\n prevIndex: _prevIndex,\n index: index,\n fromTouch: fromTouch,\n fromThumb: fromThumb\n });\n }\n\n _this.lGalleryOn = true;\n\n if (this.s.counter) {\n if (document.getElementById('lg-counter-current')) {\n document.getElementById('lg-counter-current').innerHTML = index + 1;\n }\n }\n }\n };\n\n /**\n * @desc Go to next slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n */\n Plugin.prototype.goToNextSlide = function (fromTouch) {\n var _this = this;\n if (!_this.lgBusy) {\n if (_this.index + 1 < _this.___slide.length) {\n _this.index++;\n _lgUtils2.default.trigger(_this.el, 'onBeforeNextSlide', {\n index: _this.index\n });\n _this.slide(_this.index, fromTouch, false);\n } else {\n if (_this.s.loop) {\n _this.index = 0;\n _lgUtils2.default.trigger(_this.el, 'onBeforeNextSlide', {\n index: _this.index\n });\n _this.slide(_this.index, fromTouch, false);\n } else if (_this.s.slideEndAnimatoin) {\n _lgUtils2.default.addClass(_this.outer, 'lg-right-end');\n setTimeout(function () {\n _lgUtils2.default.removeClass(_this.outer, 'lg-right-end');\n }, 400);\n }\n }\n }\n };\n\n /**\n * @desc Go to previous slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n */\n Plugin.prototype.goToPrevSlide = function (fromTouch) {\n var _this = this;\n if (!_this.lgBusy) {\n if (_this.index > 0) {\n _this.index--;\n _lgUtils2.default.trigger(_this.el, 'onBeforePrevSlide', {\n index: _this.index,\n fromTouch: fromTouch\n });\n _this.slide(_this.index, fromTouch, false);\n } else {\n if (_this.s.loop) {\n _this.index = _this.items.length - 1;\n _lgUtils2.default.trigger(_this.el, 'onBeforePrevSlide', {\n index: _this.index,\n fromTouch: fromTouch\n });\n _this.slide(_this.index, fromTouch, false);\n } else if (_this.s.slideEndAnimatoin) {\n _lgUtils2.default.addClass(_this.outer, 'lg-left-end');\n setTimeout(function () {\n _lgUtils2.default.removeClass(_this.outer, 'lg-left-end');\n }, 400);\n }\n }\n }\n };\n\n Plugin.prototype.keyPress = function () {\n var _this = this;\n if (this.items.length > 1) {\n _lgUtils2.default.on(window, 'keyup.lg', function (e) {\n if (_this.items.length > 1) {\n if (e.keyCode === 37) {\n e.preventDefault();\n _this.goToPrevSlide();\n }\n\n if (e.keyCode === 39) {\n e.preventDefault();\n _this.goToNextSlide();\n }\n }\n });\n }\n\n _lgUtils2.default.on(window, 'keydown.lg', function (e) {\n if (_this.s.escKey === true && e.keyCode === 27) {\n e.preventDefault();\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-thumb-open')) {\n _this.destroy();\n } else {\n _lgUtils2.default.removeClass(_this.outer, 'lg-thumb-open');\n }\n }\n });\n };\n\n Plugin.prototype.arrow = function () {\n var _this = this;\n _lgUtils2.default.on(this.outer.querySelector('.lg-prev'), 'click.lg', function () {\n _this.goToPrevSlide();\n });\n\n _lgUtils2.default.on(this.outer.querySelector('.lg-next'), 'click.lg', function () {\n _this.goToNextSlide();\n });\n };\n\n Plugin.prototype.arrowDisable = function (index) {\n\n // Disable arrows if s.hideControlOnEnd is true\n if (!this.s.loop && this.s.hideControlOnEnd) {\n var next = this.outer.querySelector('.lg-next');\n var prev = this.outer.querySelector('.lg-prev');\n if (index + 1 < this.___slide.length) {\n next.removeAttribute('disabled');\n _lgUtils2.default.removeClass(next, 'disabled');\n } else {\n next.setAttribute('disabled', 'disabled');\n _lgUtils2.default.addClass(next, 'disabled');\n }\n\n if (index > 0) {\n prev.removeAttribute('disabled');\n _lgUtils2.default.removeClass(prev, 'disabled');\n } else {\n prev.setAttribute('disabled', 'disabled');\n _lgUtils2.default.addClass(prev, 'disabled');\n }\n }\n };\n\n Plugin.prototype.setTranslate = function (el, xValue, yValue) {\n // jQuery supports Automatic CSS prefixing since jQuery 1.8.0\n if (this.s.useLeft) {\n el.style.left = xValue;\n } else {\n _lgUtils2.default.setVendor(el, 'Transform', 'translate3d(' + xValue + 'px, ' + yValue + 'px, 0px)');\n }\n };\n\n Plugin.prototype.touchMove = function (startCoords, endCoords) {\n\n var distance = endCoords - startCoords;\n\n if (Math.abs(distance) > 15) {\n // reset opacity and transition duration\n _lgUtils2.default.addClass(this.outer, 'lg-dragging');\n\n // move current slide\n this.setTranslate(this.___slide[this.index], distance, 0);\n\n // move next and prev slide with current slide\n this.setTranslate(document.querySelector('.lg-prev-slide'), -this.___slide[this.index].clientWidth + distance, 0);\n this.setTranslate(document.querySelector('.lg-next-slide'), this.___slide[this.index].clientWidth + distance, 0);\n }\n };\n\n Plugin.prototype.touchEnd = function (distance) {\n var _this = this;\n\n // keep slide animation for any mode while dragg/swipe\n if (_this.s.mode !== 'lg-slide') {\n _lgUtils2.default.addClass(_this.outer, 'lg-slide');\n }\n\n for (var i = 0; i < this.___slide.length; i++) {\n if (!_lgUtils2.default.hasClass(this.___slide[i], 'lg-current') && !_lgUtils2.default.hasClass(this.___slide[i], 'lg-prev-slide') && !_lgUtils2.default.hasClass(this.___slide[i], 'lg-next-slide')) {\n this.___slide[i].style.opacity = '0';\n }\n }\n\n // set transition duration\n setTimeout(function () {\n _lgUtils2.default.removeClass(_this.outer, 'lg-dragging');\n if (distance < 0 && Math.abs(distance) > _this.s.swipeThreshold) {\n _this.goToNextSlide(true);\n } else if (distance > 0 && Math.abs(distance) > _this.s.swipeThreshold) {\n _this.goToPrevSlide(true);\n } else if (Math.abs(distance) < 5) {\n\n // Trigger click if distance is less than 5 pix\n _lgUtils2.default.trigger(_this.el, 'onSlideClick');\n }\n\n for (var i = 0; i < _this.___slide.length; i++) {\n _this.___slide[i].removeAttribute('style');\n }\n });\n\n // remove slide class once drag/swipe is completed if mode is not slide\n setTimeout(function () {\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-dragging') && _this.s.mode !== 'lg-slide') {\n _lgUtils2.default.removeClass(_this.outer, 'lg-slide');\n }\n }, _this.s.speed + 100);\n };\n\n Plugin.prototype.enableSwipe = function () {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isMoved = false;\n\n if (_this.s.enableSwipe && _this.isTouch && _this.doCss()) {\n\n for (var i = 0; i < _this.___slide.length; i++) {\n /*jshint loopfunc: true */\n _lgUtils2.default.on(_this.___slide[i], 'touchstart.lg', function (e) {\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed') && !_this.lgBusy) {\n e.preventDefault();\n _this.manageSwipeClass();\n startCoords = e.targetTouches[0].pageX;\n }\n });\n }\n\n for (var j = 0; j < _this.___slide.length; j++) {\n /*jshint loopfunc: true */\n _lgUtils2.default.on(_this.___slide[j], 'touchmove.lg', function (e) {\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed')) {\n e.preventDefault();\n endCoords = e.targetTouches[0].pageX;\n _this.touchMove(startCoords, endCoords);\n isMoved = true;\n }\n });\n }\n\n for (var k = 0; k < _this.___slide.length; k++) {\n /*jshint loopfunc: true */\n _lgUtils2.default.on(_this.___slide[k], 'touchend.lg', function () {\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed')) {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords - startCoords);\n } else {\n _lgUtils2.default.trigger(_this.el, 'onSlideClick');\n }\n }\n });\n }\n }\n };\n\n Plugin.prototype.enableDrag = function () {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isDraging = false;\n var isMoved = false;\n if (_this.s.enableDrag && !_this.isTouch && _this.doCss()) {\n for (var i = 0; i < _this.___slide.length; i++) {\n /*jshint loopfunc: true */\n _lgUtils2.default.on(_this.___slide[i], 'mousedown.lg', function (e) {\n // execute only on .lg-object\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed')) {\n if (_lgUtils2.default.hasClass(e.target, 'lg-object') || _lgUtils2.default.hasClass(e.target, 'lg-video-play')) {\n e.preventDefault();\n\n if (!_this.lgBusy) {\n _this.manageSwipeClass();\n startCoords = e.pageX;\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.outer.scrollLeft += 1;\n _this.outer.scrollLeft -= 1;\n\n // *\n\n _lgUtils2.default.removeClass(_this.outer, 'lg-grab');\n _lgUtils2.default.addClass(_this.outer, 'lg-grabbing');\n\n _lgUtils2.default.trigger(_this.el, 'onDragstart');\n }\n }\n }\n });\n }\n\n _lgUtils2.default.on(window, 'mousemove.lg', function (e) {\n if (isDraging) {\n isMoved = true;\n endCoords = e.pageX;\n _this.touchMove(startCoords, endCoords);\n _lgUtils2.default.trigger(_this.el, 'onDragmove');\n }\n });\n\n _lgUtils2.default.on(window, 'mouseup.lg', function (e) {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords - startCoords);\n _lgUtils2.default.trigger(_this.el, 'onDragend');\n } else if (_lgUtils2.default.hasClass(e.target, 'lg-object') || _lgUtils2.default.hasClass(e.target, 'lg-video-play')) {\n _lgUtils2.default.trigger(_this.el, 'onSlideClick');\n }\n\n // Prevent execution on click\n if (isDraging) {\n isDraging = false;\n _lgUtils2.default.removeClass(_this.outer, 'lg-grabbing');\n _lgUtils2.default.addClass(_this.outer, 'lg-grab');\n }\n });\n }\n };\n\n Plugin.prototype.manageSwipeClass = function () {\n var touchNext = this.index + 1;\n var touchPrev = this.index - 1;\n var length = this.___slide.length;\n if (this.s.loop) {\n if (this.index === 0) {\n touchPrev = length - 1;\n } else if (this.index === length - 1) {\n touchNext = 0;\n }\n }\n\n for (var i = 0; i < this.___slide.length; i++) {\n _lgUtils2.default.removeClass(this.___slide[i], 'lg-next-slide');\n _lgUtils2.default.removeClass(this.___slide[i], 'lg-prev-slide');\n }\n\n if (touchPrev > -1) {\n _lgUtils2.default.addClass(this.___slide[touchPrev], 'lg-prev-slide');\n }\n\n _lgUtils2.default.addClass(this.___slide[touchNext], 'lg-next-slide');\n };\n\n Plugin.prototype.mousewheel = function () {\n var _this = this;\n _lgUtils2.default.on(_this.outer, 'mousewheel.lg', function (e) {\n\n if (!e.deltaY) {\n return;\n }\n\n if (e.deltaY > 0) {\n _this.goToPrevSlide();\n } else {\n _this.goToNextSlide();\n }\n\n e.preventDefault();\n });\n };\n\n Plugin.prototype.closeGallery = function () {\n\n var _this = this;\n var mousedown = false;\n _lgUtils2.default.on(this.outer.querySelector('.lg-close'), 'click.lg', function () {\n _this.destroy();\n });\n\n if (_this.s.closable) {\n\n // If you drag the slide and release outside gallery gets close on chrome\n // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer\n _lgUtils2.default.on(_this.outer, 'mousedown.lg', function (e) {\n\n if (_lgUtils2.default.hasClass(e.target, 'lg-outer') || _lgUtils2.default.hasClass(e.target, 'lg-item') || _lgUtils2.default.hasClass(e.target, 'lg-img-wrap')) {\n mousedown = true;\n } else {\n mousedown = false;\n }\n });\n\n _lgUtils2.default.on(_this.outer, 'mouseup.lg', function (e) {\n\n if (_lgUtils2.default.hasClass(e.target, 'lg-outer') || _lgUtils2.default.hasClass(e.target, 'lg-item') || _lgUtils2.default.hasClass(e.target, 'lg-img-wrap') && mousedown) {\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-dragging')) {\n _this.destroy();\n }\n }\n });\n }\n };\n\n Plugin.prototype.destroy = function (d) {\n\n var _this = this;\n\n if (!d) {\n _lgUtils2.default.trigger(_this.el, 'onBeforeClose');\n }\n\n document.body.scrollTop = _this.prevScrollTop;\n document.documentElement.scrollTop = _this.prevScrollTop;\n\n /**\n * if d is false or undefined destroy will only close the gallery\n * plugins instance remains with the element\n *\n * if d is true destroy will completely remove the plugin\n */\n\n if (d) {\n if (!_this.s.dynamic) {\n // only when not using dynamic mode is $items a jquery collection\n\n for (var i = 0; i < this.items.length; i++) {\n _lgUtils2.default.off(this.items[i], '.lg');\n _lgUtils2.default.off(this.items[i], '.lgcustom');\n }\n }\n\n var lguid = _this.el.getAttribute('lg-uid');\n delete window.lgData[lguid];\n _this.el.removeAttribute('lg-uid');\n }\n\n // Unbind all events added by lightGallery\n _lgUtils2.default.off(this.el, '.lgtm');\n\n // Distroy all lightGallery modules\n for (var key in window.lgModules) {\n if (_this.modules[key]) {\n _this.modules[key].destroy(d);\n }\n }\n\n this.lGalleryOn = false;\n\n clearTimeout(_this.hideBartimeout);\n this.hideBartimeout = false;\n _lgUtils2.default.off(window, '.lg');\n _lgUtils2.default.removeClass(document.body, 'lg-on');\n _lgUtils2.default.removeClass(document.body, 'lg-from-hash');\n\n if (_this.outer) {\n _lgUtils2.default.removeClass(_this.outer, 'lg-visible');\n }\n\n _lgUtils2.default.removeClass(document.querySelector('.lg-backdrop'), 'in');\n setTimeout(function () {\n try {\n if (_this.outer) {\n _this.outer.parentNode.removeChild(_this.outer);\n }\n\n if (document.querySelector('.lg-backdrop')) {\n document.querySelector('.lg-backdrop').parentNode.removeChild(document.querySelector('.lg-backdrop'));\n }\n\n if (!d) {\n _lgUtils2.default.trigger(_this.el, 'onCloseAfter');\n }\n } catch (err) {}\n }, _this.s.backdropDuration + 50);\n };\n\n window.lightGallery = function (el, options) {\n if (!el) {\n return;\n }\n\n try {\n if (!el.getAttribute('lg-uid')) {\n var uid = 'lg' + window.lgData.uid++;\n window.lgData[uid] = new Plugin(el, options);\n el.setAttribute('lg-uid', uid);\n } else {\n try {\n window.lgData[el.getAttribute('lg-uid')].init();\n } catch (err) {\n console.error('lightGallery has not initiated properly');\n }\n }\n } catch (err) {\n console.error('lightGallery has not initiated properly');\n }\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.lgUtils = mod.exports;\n }\n})(this, function (exports) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var utils = {\n getAttribute: function getAttribute(el, label) {\n return el[label];\n },\n\n setAttribute: function setAttribute(el, label, value) {\n el[label] = value;\n },\n wrap: function wrap(el, className) {\n if (!el) {\n return;\n }\n\n var wrapper = document.createElement('div');\n wrapper.className = className;\n el.parentNode.insertBefore(wrapper, el);\n el.parentNode.removeChild(el);\n wrapper.appendChild(el);\n },\n\n addClass: function addClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n el.classList.add(className);\n } else {\n el.className += ' ' + className;\n }\n },\n\n removeClass: function removeClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n },\n\n hasClass: function hasClass(el, className) {\n if (el.classList) {\n return el.classList.contains(className);\n } else {\n return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);\n }\n },\n\n // ex Transform\n // ex TransitionTimingFunction\n setVendor: function setVendor(el, property, value) {\n if (!el) {\n return;\n }\n\n el.style[property.charAt(0).toLowerCase() + property.slice(1)] = value;\n el.style['webkit' + property] = value;\n el.style['moz' + property] = value;\n el.style['ms' + property] = value;\n el.style['o' + property] = value;\n },\n\n trigger: function trigger(el, event) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!el) {\n return;\n }\n\n var customEvent = new CustomEvent(event, {\n detail: detail\n });\n el.dispatchEvent(customEvent);\n },\n\n Listener: {\n uid: 0\n },\n on: function on(el, events, fn) {\n var _this = this;\n\n if (!el) {\n return;\n }\n\n events.split(' ').forEach(function (event) {\n var _id = _this.getAttribute(el, 'lg-event-uid') || '';\n utils.Listener.uid++;\n _id += '&' + utils.Listener.uid;\n _this.setAttribute(el, 'lg-event-uid', _id);\n utils.Listener[event + utils.Listener.uid] = fn;\n el.addEventListener(event.split('.')[0], fn, false);\n });\n },\n\n off: function off(el, event) {\n if (!el) {\n return;\n }\n\n var _id = this.getAttribute(el, 'lg-event-uid');\n if (_id) {\n _id = _id.split('&');\n for (var i = 0; i < _id.length; i++) {\n if (_id[i]) {\n var _event = event + _id[i];\n if (_event.substring(0, 1) === '.') {\n for (var key in utils.Listener) {\n if (utils.Listener.hasOwnProperty(key)) {\n if (key.split('.').indexOf(_event.split('.')[1]) > -1) {\n el.removeEventListener(key.split('.')[0], utils.Listener[key]);\n this.setAttribute(el, 'lg-event-uid', this.getAttribute(el, 'lg-event-uid').replace('&' + _id[i], ''));\n delete utils.Listener[key];\n }\n }\n }\n } else {\n el.removeEventListener(_event.split('.')[0], utils.Listener[_event]);\n this.setAttribute(el, 'lg-event-uid', this.getAttribute(el, 'lg-event-uid').replace('&' + _id[i], ''));\n delete utils.Listener[_event];\n }\n }\n }\n }\n },\n\n param: function param(obj) {\n return Object.keys(obj).map(function (k) {\n return encodeURIComponent(k) + '=' + encodeURIComponent(obj[k]);\n }).join('&');\n }\n };\n\n exports.default = utils;\n});","/**!\n * lg-thumbnail.js | 1.0.0 | August 8th 2018\n * http://sachinchoolur.github.io/lg-thumbnail.js\n * Copyright (c) 2016 Sachin N; \n * @license GPLv3 \n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgThumbnail = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 1) {\n if (this.core.s.showThumbByDefault) {\n setTimeout(function () {\n utils.addClass(_this.core.outer, 'lg-thumb-open');\n }, 700);\n }\n\n if (this.core.s.pullCaptionUp) {\n utils.addClass(this.core.outer, 'lg-pull-caption-up');\n }\n\n this.build();\n if (this.core.s.animateThumb) {\n if (this.core.s.enableThumbDrag && !this.core.isTouch && this.core.doCss()) {\n this.enableThumbDrag();\n }\n\n if (this.core.s.enableThumbSwipe && this.core.isTouch && this.core.doCss()) {\n this.enableThumbSwipe();\n }\n\n this.thumbClickable = false;\n } else {\n this.thumbClickable = true;\n }\n\n this.toggle();\n this.thumbkeyPress();\n }\n };\n\n Thumbnail.prototype.build = function () {\n var _this = this;\n var thumbList = '';\n var vimeoErrorThumbSize = '';\n var $thumb;\n var html = '
    ' + '
    ' + '
    ' + '
    ';\n\n switch (this.core.s.vimeoThumbSize) {\n case 'thumbnail_large':\n vimeoErrorThumbSize = '640';\n break;\n case 'thumbnail_medium':\n vimeoErrorThumbSize = '200x150';\n break;\n case 'thumbnail_small':\n vimeoErrorThumbSize = '100x75';\n }\n\n utils.addClass(_this.core.outer, 'lg-has-thumb');\n\n _this.core.outer.querySelector('.lg').insertAdjacentHTML('beforeend', html);\n\n _this.thumbOuter = _this.core.outer.querySelector('.lg-thumb-outer');\n _this.thumbOuterWidth = _this.thumbOuter.offsetWidth;\n\n if (_this.core.s.animateThumb) {\n _this.core.outer.querySelector('.lg-thumb').style.width = _this.thumbTotalWidth + 'px';\n _this.core.outer.querySelector('.lg-thumb').style.position = 'relative';\n }\n\n if (this.core.s.animateThumb) {\n _this.thumbOuter.style.height = _this.core.s.thumbContHeight + 'px';\n }\n\n function getThumb(src, thumb, index) {\n var isVideo = _this.core.isVideo(src, index) || {};\n var thumbImg;\n var vimeoId = '';\n\n if (isVideo.youtube || isVideo.vimeo || isVideo.dailymotion) {\n if (isVideo.youtube) {\n if (_this.core.s.loadYoutubeThumbnail) {\n thumbImg = '//img.youtube.com/vi/' + isVideo.youtube[1] + '/' + _this.core.s.youtubeThumbSize + '.jpg';\n } else {\n thumbImg = thumb;\n }\n } else if (isVideo.vimeo) {\n if (_this.core.s.loadVimeoThumbnail) {\n thumbImg = '//i.vimeocdn.com/video/error_' + vimeoErrorThumbSize + '.jpg';\n vimeoId = isVideo.vimeo[1];\n } else {\n thumbImg = thumb;\n }\n } else if (isVideo.dailymotion) {\n if (_this.core.s.loadDailymotionThumbnail) {\n thumbImg = '//www.dailymotion.com/thumbnail/video/' + isVideo.dailymotion[1];\n } else {\n thumbImg = thumb;\n }\n }\n } else {\n thumbImg = thumb;\n }\n\n thumbList += '
    ';\n vimeoId = '';\n }\n\n if (_this.core.s.dynamic) {\n for (var j = 0; j < _this.core.s.dynamicEl.length; j++) {\n getThumb(_this.core.s.dynamicEl[j].src, _this.core.s.dynamicEl[j].thumb, j);\n }\n } else {\n for (var i = 0; i < _this.core.items.length; i++) {\n if (!_this.core.s.exThumbImage) {\n getThumb(_this.core.items[i].getAttribute('href') || _this.core.items[i].getAttribute('data-src'), _this.core.items[i].querySelector('img').getAttribute('src'), i);\n } else {\n getThumb(_this.core.items[i].getAttribute('href') || _this.core.items[i].getAttribute('data-src'), _this.core.items[i].getAttribute(_this.core.s.exThumbImage), i);\n }\n }\n }\n\n _this.core.outer.querySelector('.lg-thumb').innerHTML = thumbList;\n\n $thumb = _this.core.outer.querySelectorAll('.lg-thumb-item');\n\n for (var n = 0; n < $thumb.length; n++) {\n\n /*jshint loopfunc: true */\n (function (index) {\n var $this = $thumb[index];\n var vimeoVideoId = $this.getAttribute('data-vimeo-id');\n if (vimeoVideoId) {\n\n window['lgJsonP' + _this.el.getAttribute('lg-uid') + '' + n] = function (content) {\n $this.querySelector('img').setAttribute('src', content[0][_this.core.s.vimeoThumbSize]);\n };\n\n var script = document.createElement('script');\n script.className = 'lg-script';\n script.src = '//www.vimeo.com/api/v2/video/' + vimeoVideoId + '.json?callback=lgJsonP' + _this.el.getAttribute('lg-uid') + '' + n;\n document.body.appendChild(script);\n }\n })(n);\n }\n\n // manage active class for thumbnail\n utils.addClass($thumb[_this.core.index], 'active');\n utils.on(_this.core.el, 'onBeforeSlide.lgtm', function () {\n\n for (var j = 0; j < $thumb.length; j++) {\n utils.removeClass($thumb[j], 'active');\n }\n\n utils.addClass($thumb[_this.core.index], 'active');\n });\n\n for (var k = 0; k < $thumb.length; k++) {\n\n /*jshint loopfunc: true */\n (function (index) {\n\n utils.on($thumb[index], 'click.lg touchend.lg', function () {\n\n setTimeout(function () {\n\n // In IE9 and bellow touch does not support\n // Go to slide if browser does not support css transitions\n if (_this.thumbClickable && !_this.core.lgBusy || !_this.core.doCss()) {\n _this.core.index = index;\n _this.core.slide(_this.core.index, false, true);\n }\n }, 50);\n });\n })(k);\n }\n\n utils.on(_this.core.el, 'onBeforeSlide.lgtm', function () {\n _this.animateThumb(_this.core.index);\n });\n\n utils.on(window, 'resize.lgthumb orientationchange.lgthumb', function () {\n setTimeout(function () {\n _this.animateThumb(_this.core.index);\n _this.thumbOuterWidth = _this.thumbOuter.offsetWidth;\n }, 200);\n });\n };\n\n Thumbnail.prototype.setTranslate = function (value) {\n utils.setVendor(this.core.outer.querySelector('.lg-thumb'), 'Transform', 'translate3d(-' + value + 'px, 0px, 0px)');\n };\n\n Thumbnail.prototype.animateThumb = function (index) {\n var $thumb = this.core.outer.querySelector('.lg-thumb');\n if (this.core.s.animateThumb) {\n var position;\n switch (this.core.s.currentPagerPosition) {\n case 'left':\n position = 0;\n break;\n case 'middle':\n position = this.thumbOuterWidth / 2 - this.core.s.thumbWidth / 2;\n break;\n case 'right':\n position = this.thumbOuterWidth - this.core.s.thumbWidth;\n }\n this.left = (this.core.s.thumbWidth + this.core.s.thumbMargin) * index - 1 - position;\n if (this.left > this.thumbTotalWidth - this.thumbOuterWidth) {\n this.left = this.thumbTotalWidth - this.thumbOuterWidth;\n }\n\n if (this.left < 0) {\n this.left = 0;\n }\n\n if (this.core.lGalleryOn) {\n if (!utils.hasClass($thumb, 'on')) {\n utils.setVendor(this.core.outer.querySelector('.lg-thumb'), 'TransitionDuration', this.core.s.speed + 'ms');\n }\n\n if (!this.core.doCss()) {\n $thumb.style.left = -this.left + 'px';\n }\n } else {\n if (!this.core.doCss()) {\n $thumb.style.left = -this.left + 'px';\n }\n }\n\n this.setTranslate(this.left);\n }\n };\n\n // Enable thumbnail dragging and swiping\n Thumbnail.prototype.enableThumbDrag = function () {\n\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isDraging = false;\n var isMoved = false;\n var tempLeft = 0;\n\n utils.addClass(_this.thumbOuter, 'lg-grab');\n\n utils.on(_this.core.outer.querySelector('.lg-thumb'), 'mousedown.lgthumb', function (e) {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n // execute only on .lg-object\n e.preventDefault();\n startCoords = e.pageX;\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.core.outer.scrollLeft += 1;\n _this.core.outer.scrollLeft -= 1;\n\n // *\n _this.thumbClickable = false;\n utils.removeClass(_this.thumbOuter, 'lg-grab');\n utils.addClass(_this.thumbOuter, 'lg-grabbing');\n }\n });\n\n utils.on(window, 'mousemove.lgthumb', function (e) {\n if (isDraging) {\n tempLeft = _this.left;\n isMoved = true;\n endCoords = e.pageX;\n\n utils.addClass(_this.thumbOuter, 'lg-dragging');\n\n tempLeft = tempLeft - (endCoords - startCoords);\n\n if (tempLeft > _this.thumbTotalWidth - _this.thumbOuterWidth) {\n tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth;\n }\n\n if (tempLeft < 0) {\n tempLeft = 0;\n }\n\n // move current slide\n _this.setTranslate(tempLeft);\n }\n });\n\n utils.on(window, 'mouseup.lgthumb', function () {\n if (isMoved) {\n isMoved = false;\n utils.removeClass(_this.thumbOuter, 'lg-dragging');\n\n _this.left = tempLeft;\n\n if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) {\n _this.thumbClickable = true;\n }\n } else {\n _this.thumbClickable = true;\n }\n\n if (isDraging) {\n isDraging = false;\n utils.removeClass(_this.thumbOuter, 'lg-grabbing');\n utils.addClass(_this.thumbOuter, 'lg-grab');\n }\n });\n };\n\n Thumbnail.prototype.enableThumbSwipe = function () {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isMoved = false;\n var tempLeft = 0;\n\n utils.on(_this.core.outer.querySelector('.lg-thumb'), 'touchstart.lg', function (e) {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n e.preventDefault();\n startCoords = e.targetTouches[0].pageX;\n _this.thumbClickable = false;\n }\n });\n\n utils.on(_this.core.outer.querySelector('.lg-thumb'), 'touchmove.lg', function (e) {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n e.preventDefault();\n endCoords = e.targetTouches[0].pageX;\n isMoved = true;\n\n utils.addClass(_this.thumbOuter, 'lg-dragging');\n\n tempLeft = _this.left;\n\n tempLeft = tempLeft - (endCoords - startCoords);\n\n if (tempLeft > _this.thumbTotalWidth - _this.thumbOuterWidth) {\n tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth;\n }\n\n if (tempLeft < 0) {\n tempLeft = 0;\n }\n\n // move current slide\n _this.setTranslate(tempLeft);\n }\n });\n\n utils.on(_this.core.outer.querySelector('.lg-thumb'), 'touchend.lg', function () {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n\n if (isMoved) {\n isMoved = false;\n utils.removeClass(_this.thumbOuter, 'lg-dragging');\n if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) {\n _this.thumbClickable = true;\n }\n\n _this.left = tempLeft;\n } else {\n _this.thumbClickable = true;\n }\n } else {\n _this.thumbClickable = true;\n }\n });\n };\n\n Thumbnail.prototype.toggle = function () {\n var _this = this;\n if (_this.core.s.toggleThumb) {\n utils.addClass(_this.core.outer, 'lg-can-toggle');\n _this.thumbOuter.insertAdjacentHTML('beforeend', '');\n utils.on(_this.core.outer.querySelector('.lg-toggle-thumb'), 'click.lg', function () {\n if (utils.hasClass(_this.core.outer, 'lg-thumb-open')) {\n utils.removeClass(_this.core.outer, 'lg-thumb-open');\n } else {\n utils.addClass(_this.core.outer, 'lg-thumb-open');\n }\n });\n }\n };\n\n Thumbnail.prototype.thumbkeyPress = function () {\n var _this = this;\n utils.on(window, 'keydown.lgthumb', function (e) {\n if (e.keyCode === 38) {\n e.preventDefault();\n utils.addClass(_this.core.outer, 'lg-thumb-open');\n } else if (e.keyCode === 40) {\n e.preventDefault();\n utils.removeClass(_this.core.outer, 'lg-thumb-open');\n }\n });\n };\n\n Thumbnail.prototype.destroy = function (d) {\n if (this.core.s.thumbnail && this.core.items.length > 1) {\n utils.off(window, '.lgthumb');\n if (!d) {\n this.thumbOuter.parentNode.removeChild(this.thumbOuter);\n }\n utils.removeClass(this.core.outer, 'lg-has-thumb');\n\n var lgScript = document.getElementsByClassName('lg-script');\n while (lgScript[0]) {\n lgScript[0].parentNode.removeChild(lgScript[0]);\n }\n }\n };\n\n window.lgModules.thumbnail = Thumbnail;\n});\n\n},{}]},{},[1])(1)\n});\n","/**!\r\n * lg-autoplay.js | 1.0.0 | October 5th 2016\r\n * http://sachinchoolur.github.io/lg-autoplay.js\r\n * Copyright (c) 2016 Sachin N; \r\n * @license GPLv3 \r\n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgAutoplay = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o
    ');\n }\n\n // set progress\n _this.progress();\n\n // Start autoplay\n if (_this.core.s.autoplay) {\n _this.startlAuto();\n }\n\n // cancel interval on touchstart and dragstart\n utils.on(_this.el, 'onDragstart.lgtm touchstart.lgtm', function () {\n if (_this.interval) {\n _this.cancelAuto();\n _this.canceledOnTouch = true;\n }\n });\n\n // restore autoplay if autoplay canceled from touchstart / dragstart\n utils.on(_this.el, 'onDragend.lgtm touchend.lgtm onSlideClick.lgtm', function () {\n if (!_this.interval && _this.canceledOnTouch) {\n _this.startlAuto();\n _this.canceledOnTouch = false;\n }\n });\n };\n\n Autoplay.prototype.progress = function () {\n\n var _this = this;\n var _progressBar;\n var _progress;\n\n utils.on(_this.el, 'onBeforeSlide.lgtm', function () {\n\n // start progress bar animation\n if (_this.core.s.progressBar && _this.fromAuto) {\n _progressBar = _this.core.outer.querySelector('.lg-progress-bar');\n _progress = _this.core.outer.querySelector('.lg-progress');\n if (_this.interval) {\n _progress.removeAttribute('style');\n utils.removeClass(_progressBar, 'lg-start');\n setTimeout(function () {\n utils.setVendor(_progress, 'Transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');\n utils.addClass(_progressBar, 'lg-start');\n }, 20);\n }\n }\n\n // Remove setinterval if slide is triggered manually and fourceautoplay is false\n if (!_this.fromAuto && !_this.core.s.fourceAutoplay) {\n _this.cancelAuto();\n }\n\n _this.fromAuto = false;\n });\n };\n\n // Manage autoplay via play/stop buttons\n Autoplay.prototype.controls = function () {\n var _this = this;\n var _html = '';\n\n // Append autoplay controls\n _this.core.outer.querySelector(this.core.s.appendAutoplayControlsTo).insertAdjacentHTML('beforeend', _html);\n\n utils.on(_this.core.outer.querySelector('.lg-autoplay-button'), 'click.lg', function () {\n if (utils.hasClass(_this.core.outer, 'lg-show-autoplay')) {\n _this.cancelAuto();\n _this.core.s.fourceAutoplay = false;\n } else {\n if (!_this.interval) {\n _this.startlAuto();\n _this.core.s.fourceAutoplay = _this.fourceAutoplayTemp;\n }\n }\n });\n };\n\n // Autostart gallery\n Autoplay.prototype.startlAuto = function () {\n var _this = this;\n\n utils.setVendor(_this.core.outer.querySelector('.lg-progress'), 'Transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');\n utils.addClass(_this.core.outer, 'lg-show-autoplay');\n utils.addClass(_this.core.outer.querySelector('.lg-progress-bar'), 'lg-start');\n\n _this.interval = setInterval(function () {\n if (_this.core.index + 1 < _this.core.items.length) {\n _this.core.index++;\n } else {\n _this.core.index = 0;\n }\n\n _this.fromAuto = true;\n _this.core.slide(_this.core.index, false, false);\n }, _this.core.s.speed + _this.core.s.pause);\n };\n\n // cancel Autostart\n Autoplay.prototype.cancelAuto = function () {\n clearInterval(this.interval);\n this.interval = false;\n if (this.core.outer.querySelector('.lg-progress')) {\n this.core.outer.querySelector('.lg-progress').removeAttribute('style');\n }\n\n utils.removeClass(this.core.outer, 'lg-show-autoplay');\n utils.removeClass(this.core.outer.querySelector('.lg-progress-bar'), 'lg-start');\n };\n\n Autoplay.prototype.destroy = function () {\n\n this.cancelAuto();\n if (this.core.outer.querySelector('.lg-progress-bar')) {\n this.core.outer.querySelector('.lg-progress-bar').parentNode.removeChild(this.core.outer.querySelector('.lg-progress-bar'));\n }\n };\n\n window.lgModules.autoplay = Autoplay;\n});\n\n},{}]},{},[1])(1)\n});","/**!\r\n * lg-video.js | 1.0.0 | October 5th 2016\r\n * http://sachinchoolur.github.io/lg-video.js\r\n * Copyright (c) 2016 Sachin N; \r\n * @license GPLv3 \r\n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgVideo = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 1 && (_this.core.s.enableSwipe && _this.core.isTouch || _this.core.s.enableDrag && !_this.core.isTouch)) {\n utils.on(_this.core.el, 'onSlideClick.lgtm', function () {\n var $el = _this.core.___slide[_this.core.index];\n loadOnClick($el);\n });\n } else {\n\n // For IE 9 and bellow\n for (var i = 0; i < _this.core.___slide.length; i++) {\n\n /*jshint loopfunc: true */\n (function (index) {\n utils.on(_this.core.___slide[index], 'click.lg', function () {\n loadOnClick(_this.core.___slide[index]);\n });\n })(i);\n }\n }\n\n utils.on(_this.core.el, 'onBeforeSlide.lgtm', function (event) {\n\n var $videoSlide = _this.core.___slide[event.detail.prevIndex];\n var youtubePlayer = $videoSlide.querySelector('.lg-youtube');\n var vimeoPlayer = $videoSlide.querySelector('.lg-vimeo');\n var dailymotionPlayer = $videoSlide.querySelector('.lg-dailymotion');\n var vkPlayer = $videoSlide.querySelector('.lg-vk');\n var html5Player = $videoSlide.querySelector('.lg-html5');\n if (youtubePlayer) {\n youtubePlayer.contentWindow.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\n } else if (vimeoPlayer) {\n try {\n $f(vimeoPlayer).api('pause');\n } catch (e) {\n console.error('Make sure you have included froogaloop2 js');\n }\n } else if (dailymotionPlayer) {\n dailymotionPlayer.contentWindow.postMessage('pause', '*');\n } else if (html5Player) {\n if (_this.core.s.videojs) {\n try {\n videojs(html5Player).pause();\n } catch (e) {\n console.error('Make sure you have included videojs');\n }\n } else {\n html5Player.pause();\n }\n }if (vkPlayer) {\n\n vkPlayer.setAttribute('src', vkPlayer.getAttribute('src').replace('&autoplay', '&noplay'));\n }\n\n var _src;\n if (_this.core.s.dynamic) {\n _src = _this.core.s.dynamicEl[event.detail.index].src;\n } else {\n _src = _this.core.items[event.detail.index].getAttribute('href') || _this.core.items[event.detail.index].getAttribute('data-src');\n }\n\n var _isVideo = _this.core.isVideo(_src, event.detail.index) || {};\n if (_isVideo.youtube || _isVideo.vimeo || _isVideo.dailymotion || _isVideo.vk) {\n utils.addClass(_this.core.outer, 'lg-hide-download');\n }\n\n //$videoSlide.addClass('lg-complete');\n });\n\n utils.on(_this.core.el, 'onAfterSlide.lgtm', function (event) {\n utils.removeClass(_this.core.___slide[event.detail.prevIndex], 'lg-video-playing');\n });\n };\n\n Video.prototype.loadVideo = function (src, addClass, noposter, index, html) {\n var video = '';\n var autoplay = 1;\n var a = '';\n var isVideo = this.core.isVideo(src, index) || {};\n\n // Enable autoplay for first video if poster doesn't exist\n if (noposter) {\n if (this.videoLoaded) {\n autoplay = 0;\n } else {\n autoplay = 1;\n }\n }\n\n if (isVideo.youtube) {\n\n a = '?wmode=opaque&autoplay=' + autoplay + '&enablejsapi=1';\n if (this.core.s.youtubePlayerParams) {\n a = a + '&' + utils.param(this.core.s.youtubePlayerParams);\n }\n\n video = '';\n } else if (isVideo.vimeo) {\n\n a = '?autoplay=' + autoplay + '&api=1';\n if (this.core.s.vimeoPlayerParams) {\n a = a + '&' + utils.param(this.core.s.vimeoPlayerParams);\n }\n\n video = '';\n } else if (isVideo.dailymotion) {\n\n a = '?wmode=opaque&autoplay=' + autoplay + '&api=postMessage';\n if (this.core.s.dailymotionPlayerParams) {\n a = a + '&' + utils.param(this.core.s.dailymotionPlayerParams);\n }\n\n video = '';\n } else if (isVideo.html5) {\n var fL = html.substring(0, 1);\n if (fL === '.' || fL === '#') {\n html = document.querySelector(html).innerHTML;\n }\n\n video = html;\n } else if (isVideo.vk) {\n\n a = '&autoplay=' + autoplay;\n if (this.core.s.vkPlayerParams) {\n a = a + '&' + utils.param(this.core.s.vkPlayerParams);\n }\n\n video = '';\n }\n\n return video;\n };\n\n Video.prototype.destroy = function () {\n this.videoLoaded = false;\n };\n\n window.lgModules.video = Video;\n});\n\n},{}]},{},[1])(1)\n});","/**!\n * lg-fullscreen.js | 1.1.0 | February 23rd 2019\n * http://sachinchoolur.github.io/lg-fullscreen.js\n * Copyright (c) 2016 Sachin N; \n * @license GPLv3 \n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgFullscreen = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 1) {\n this.init();\n }\n\n return this;\n };\n\n Pager.prototype.init = function () {\n var _this = this;\n var pagerList = '';\n var $pagerCont;\n var $pagerOuter;\n var timeout;\n\n _this.core.outer.querySelector('.lg').insertAdjacentHTML('beforeend', '
    ');\n\n if (_this.core.s.dynamic) {\n for (var j = 0; j < _this.core.s.dynamicEl.length; j++) {\n pagerList += '
    ';\n }\n } else {\n for (var i = 0; i < _this.core.items.length; i++) {\n if (!_this.core.s.exThumbImage) {\n pagerList += '
    ';\n } else {\n pagerList += '
    ';\n }\n }\n }\n\n $pagerOuter = _this.core.outer.querySelector('.lg-pager-outer');\n\n $pagerOuter.innerHTML = pagerList;\n\n $pagerCont = _this.core.outer.querySelectorAll('.lg-pager-cont');\n for (var k = 0; k < $pagerCont.length; k++) {\n\n /*jshint loopfunc: true */\n (function (index) {\n utils.on($pagerCont[index], 'click.lg touchend.lg', function () {\n _this.core.index = index;\n _this.core.slide(_this.core.index, false, false);\n });\n })(k);\n }\n\n utils.on($pagerOuter, 'mouseover.lg', function () {\n clearTimeout(timeout);\n utils.addClass($pagerOuter, 'lg-pager-hover');\n });\n\n utils.on($pagerOuter, 'mouseout.lg', function () {\n timeout = setTimeout(function () {\n utils.removeClass($pagerOuter, 'lg-pager-hover');\n });\n });\n\n utils.on(_this.core.el, 'onBeforeSlide.lgtm', function (e) {\n for (var n = 0; n < $pagerCont.length; n++) {\n utils.removeClass($pagerCont[n], 'lg-pager-active');\n if (e.detail.index === n) {\n utils.addClass($pagerCont[n], 'lg-pager-active');\n }\n }\n });\n };\n\n Pager.prototype.destroy = function () {};\n\n window.lgModules.pager = Pager;\n});\n\n},{}]},{},[1])(1)\n});","/**!\r\n * lg-zoom.js | 1.0.1 | December 22nd 2016\r\n * http://sachinchoolur.github.io/lg-zoom.js\r\n * Copyright (c) 2016 Sachin N; \r\n * @license GPLv3 \r\n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgZoom = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 1) {\n utils.addClass(_this.core.outer, 'lg-zoomed');\n } else {\n _this.resetZoom();\n }\n\n if (scale < 1) {\n scale = 1;\n }\n\n zoom(scale);\n };\n\n var actualSize = function actualSize(event, image, index, fromIcon) {\n var w = image.clientWidth;\n var nw;\n if (_this.core.s.dynamic) {\n nw = _this.core.s.dynamicEl[index].width || image.naturalWidth || w;\n } else {\n nw = _this.core.items[index].getAttribute('data-width') || image.naturalWidth || w;\n }\n\n var _scale;\n\n if (utils.hasClass(_this.core.outer, 'lg-zoomed')) {\n scale = 1;\n } else {\n if (nw > w) {\n _scale = nw / w;\n scale = _scale || 2;\n }\n }\n\n if (fromIcon) {\n _this.pageX = window.innerWidth / 2;\n _this.pageY = window.innerHeight / 2 + (document.documentElement.scrollTop || document.body.scrollTop);\n } else {\n _this.pageX = event.pageX || event.targetTouches[0].pageX;\n _this.pageY = event.pageY || event.targetTouches[0].pageY;\n }\n\n callScale();\n setTimeout(function () {\n utils.removeClass(_this.core.outer, 'lg-grabbing');\n utils.addClass(_this.core.outer, 'lg-grab');\n }, 10);\n };\n\n var tapped = false;\n\n // event triggered after appending slide content\n utils.on(_this.core.el, 'onAferAppendSlide.lgtmzoom', function (event) {\n\n var index = event.detail.index;\n\n // Get the current element\n var image = _this.core.___slide[index].querySelector('.lg-image');\n\n if (!_this.core.isTouch) {\n utils.on(image, 'dblclick', function (event) {\n actualSize(event, image, index);\n });\n }\n\n if (_this.core.isTouch) {\n utils.on(image, 'touchstart', function (event) {\n if (!tapped) {\n tapped = setTimeout(function () {\n tapped = null;\n }, 300);\n } else {\n clearTimeout(tapped);\n tapped = null;\n actualSize(event, image, index);\n }\n\n event.preventDefault();\n });\n }\n });\n\n // Update zoom on resize and orientationchange\n utils.on(window, 'resize.lgzoom scroll.lgzoom orientationchange.lgzoom', function () {\n _this.pageX = window.innerWidth / 2;\n _this.pageY = window.innerHeight / 2 + (document.documentElement.scrollTop || document.body.scrollTop);\n zoom(scale);\n });\n\n utils.on(document.getElementById('lg-zoom-out'), 'click.lg', function () {\n if (_this.core.outer.querySelector('.lg-current .lg-image')) {\n scale -= _this.core.s.scale;\n callScale();\n }\n });\n\n utils.on(document.getElementById('lg-zoom-in'), 'click.lg', function () {\n if (_this.core.outer.querySelector('.lg-current .lg-image')) {\n scale += _this.core.s.scale;\n callScale();\n }\n });\n\n utils.on(document.getElementById('lg-actual-size'), 'click.lg', function (event) {\n actualSize(event, _this.core.___slide[_this.core.index].querySelector('.lg-image'), _this.core.index, true);\n });\n\n // Reset zoom on slide change\n utils.on(_this.core.el, 'onBeforeSlide.lgtm', function () {\n scale = 1;\n _this.resetZoom();\n });\n\n // Drag option after zoom\n if (!_this.core.isTouch) {\n _this.zoomDrag();\n }\n\n if (_this.core.isTouch) {\n _this.zoomSwipe();\n }\n };\n\n // Reset zoom effect\n Zoom.prototype.resetZoom = function () {\n utils.removeClass(this.core.outer, 'lg-zoomed');\n for (var i = 0; i < this.core.___slide.length; i++) {\n if (this.core.___slide[i].querySelector('.lg-img-wrap')) {\n this.core.___slide[i].querySelector('.lg-img-wrap').removeAttribute('style');\n this.core.___slide[i].querySelector('.lg-img-wrap').removeAttribute('data-x');\n this.core.___slide[i].querySelector('.lg-img-wrap').removeAttribute('data-y');\n }\n }\n\n for (var j = 0; j < this.core.___slide.length; j++) {\n if (this.core.___slide[j].querySelector('.lg-image')) {\n this.core.___slide[j].querySelector('.lg-image').removeAttribute('style');\n this.core.___slide[j].querySelector('.lg-image').removeAttribute('data-scale');\n }\n }\n\n // Reset pagx pagy values to center\n this.pageX = window.innerWidth / 2;\n this.pageY = window.innerHeight / 2 + (document.documentElement.scrollTop || document.body.scrollTop);\n };\n\n Zoom.prototype.zoomSwipe = function () {\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isMoved = false;\n\n // Allow x direction drag\n var allowX = false;\n\n // Allow Y direction drag\n var allowY = false;\n\n for (var i = 0; i < _this.core.___slide.length; i++) {\n\n /*jshint loopfunc: true */\n utils.on(_this.core.___slide[i], 'touchstart.lg', function (e) {\n\n if (utils.hasClass(_this.core.outer, 'lg-zoomed')) {\n var image = _this.core.___slide[_this.core.index].querySelector('.lg-object');\n\n allowY = image.offsetHeight * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientHeight;\n allowX = image.offsetWidth * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientWidth;\n if (allowX || allowY) {\n e.preventDefault();\n startCoords = {\n x: e.targetTouches[0].pageX,\n y: e.targetTouches[0].pageY\n };\n }\n }\n });\n }\n\n for (var j = 0; j < _this.core.___slide.length; j++) {\n\n /*jshint loopfunc: true */\n utils.on(_this.core.___slide[j], 'touchmove.lg', function (e) {\n\n if (utils.hasClass(_this.core.outer, 'lg-zoomed')) {\n\n var _el = _this.core.___slide[_this.core.index].querySelector('.lg-img-wrap');\n var distanceX;\n var distanceY;\n\n e.preventDefault();\n isMoved = true;\n\n endCoords = {\n x: e.targetTouches[0].pageX,\n y: e.targetTouches[0].pageY\n };\n\n // reset opacity and transition duration\n utils.addClass(_this.core.outer, 'lg-zoom-dragging');\n\n if (allowY) {\n distanceY = -Math.abs(_el.getAttribute('data-y')) + (endCoords.y - startCoords.y);\n } else {\n distanceY = -Math.abs(_el.getAttribute('data-y'));\n }\n\n if (allowX) {\n distanceX = -Math.abs(_el.getAttribute('data-x')) + (endCoords.x - startCoords.x);\n } else {\n distanceX = -Math.abs(_el.getAttribute('data-x'));\n }\n\n if (Math.abs(endCoords.x - startCoords.x) > 15 || Math.abs(endCoords.y - startCoords.y) > 15) {\n\n if (_this.core.s.useLeftForZoom) {\n _el.style.left = distanceX + 'px';\n _el.style.top = distanceY + 'px';\n } else {\n utils.setVendor(_el, 'Transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n }\n }\n });\n }\n\n for (var k = 0; k < _this.core.___slide.length; k++) {\n\n /*jshint loopfunc: true */\n utils.on(_this.core.___slide[k], 'touchend.lg', function () {\n if (utils.hasClass(_this.core.outer, 'lg-zoomed')) {\n if (isMoved) {\n isMoved = false;\n utils.removeClass(_this.core.outer, 'lg-zoom-dragging');\n _this.touchendZoom(startCoords, endCoords, allowX, allowY);\n }\n }\n });\n }\n };\n\n Zoom.prototype.zoomDrag = function () {\n\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isDraging = false;\n var isMoved = false;\n\n // Allow x direction drag\n var allowX = false;\n\n // Allow Y direction drag\n var allowY = false;\n\n for (var i = 0; i < _this.core.___slide.length; i++) {\n\n /*jshint loopfunc: true */\n utils.on(_this.core.___slide[i], 'mousedown.lgzoom', function (e) {\n\n // execute only on .lg-object\n var image = _this.core.___slide[_this.core.index].querySelector('.lg-object');\n\n allowY = image.offsetHeight * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientHeight;\n allowX = image.offsetWidth * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientWidth;\n\n if (utils.hasClass(_this.core.outer, 'lg-zoomed')) {\n if (utils.hasClass(e.target, 'lg-object') && (allowX || allowY)) {\n e.preventDefault();\n startCoords = {\n x: e.pageX,\n y: e.pageY\n };\n\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.core.outer.scrollLeft += 1;\n _this.core.outer.scrollLeft -= 1;\n\n utils.removeClass(_this.core.outer, 'lg-grab');\n utils.addClass(_this.core.outer, 'lg-grabbing');\n }\n }\n });\n }\n\n utils.on(window, 'mousemove.lgzoom', function (e) {\n if (isDraging) {\n var _el = _this.core.___slide[_this.core.index].querySelector('.lg-img-wrap');\n var distanceX;\n var distanceY;\n\n isMoved = true;\n endCoords = {\n x: e.pageX,\n y: e.pageY\n };\n\n // reset opacity and transition duration\n utils.addClass(_this.core.outer, 'lg-zoom-dragging');\n\n if (allowY) {\n distanceY = -Math.abs(_el.getAttribute('data-y')) + (endCoords.y - startCoords.y);\n } else {\n distanceY = -Math.abs(_el.getAttribute('data-y'));\n }\n\n if (allowX) {\n distanceX = -Math.abs(_el.getAttribute('data-x')) + (endCoords.x - startCoords.x);\n } else {\n distanceX = -Math.abs(_el.getAttribute('data-x'));\n }\n\n if (_this.core.s.useLeftForZoom) {\n _el.style.left = distanceX + 'px';\n _el.style.top = distanceY + 'px';\n } else {\n utils.setVendor(_el, 'Transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n }\n });\n\n utils.on(window, 'mouseup.lgzoom', function (e) {\n\n if (isDraging) {\n isDraging = false;\n utils.removeClass(_this.core.outer, 'lg-zoom-dragging');\n\n // Fix for chrome mouse move on click\n if (isMoved && (startCoords.x !== endCoords.x || startCoords.y !== endCoords.y)) {\n endCoords = {\n x: e.pageX,\n y: e.pageY\n };\n _this.touchendZoom(startCoords, endCoords, allowX, allowY);\n }\n\n isMoved = false;\n }\n\n utils.removeClass(_this.core.outer, 'lg-grabbing');\n utils.addClass(_this.core.outer, 'lg-grab');\n });\n };\n\n Zoom.prototype.touchendZoom = function (startCoords, endCoords, allowX, allowY) {\n\n var _this = this;\n var _el = _this.core.___slide[_this.core.index].querySelector('.lg-img-wrap');\n var image = _this.core.___slide[_this.core.index].querySelector('.lg-object');\n var distanceX = -Math.abs(_el.getAttribute('data-x')) + (endCoords.x - startCoords.x);\n var distanceY = -Math.abs(_el.getAttribute('data-y')) + (endCoords.y - startCoords.y);\n var minY = (_this.core.outer.querySelector('.lg').clientHeight - image.offsetHeight) / 2;\n var maxY = Math.abs(image.offsetHeight * Math.abs(image.getAttribute('data-scale')) - _this.core.outer.querySelector('.lg').clientHeight + minY);\n var minX = (_this.core.outer.querySelector('.lg').clientWidth - image.offsetWidth) / 2;\n var maxX = Math.abs(image.offsetWidth * Math.abs(image.getAttribute('data-scale')) - _this.core.outer.querySelector('.lg').clientWidth + minX);\n\n if (Math.abs(endCoords.x - startCoords.x) > 15 || Math.abs(endCoords.y - startCoords.y) > 15) {\n if (allowY) {\n if (distanceY <= -maxY) {\n distanceY = -maxY;\n } else if (distanceY >= -minY) {\n distanceY = -minY;\n }\n }\n\n if (allowX) {\n if (distanceX <= -maxX) {\n distanceX = -maxX;\n } else if (distanceX >= -minX) {\n distanceX = -minX;\n }\n }\n\n if (allowY) {\n _el.setAttribute('data-y', Math.abs(distanceY));\n } else {\n distanceY = -Math.abs(_el.getAttribute('data-y'));\n }\n\n if (allowX) {\n _el.setAttribute('data-x', Math.abs(distanceX));\n } else {\n distanceX = -Math.abs(_el.getAttribute('data-x'));\n }\n\n if (_this.core.s.useLeftForZoom) {\n _el.style.left = distanceX + 'px';\n _el.style.top = distanceY + 'px';\n } else {\n utils.setVendor(_el, 'Transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n }\n };\n\n Zoom.prototype.destroy = function () {\n\n var _this = this;\n\n // Unbind all events added by lightGallery zoom plugin\n utils.off(_this.core.el, '.lgzoom');\n utils.off(window, '.lgzoom');\n for (var i = 0; i < _this.core.___slide.length; i++) {\n utils.off(_this.core.___slide[i], '.lgzoom');\n }\n\n utils.off(_this.core.el, '.lgtmzoom');\n _this.resetZoom();\n clearTimeout(_this.zoomabletimeout);\n _this.zoomabletimeout = false;\n };\n\n window.lgModules.zoom = Zoom;\n});\n\n},{}]},{},[1])(1)\n});","/**!\r\n * lg-hash.js | 1.0.0 | October 5th 2016\r\n * http://sachinchoolur.github.io/lg-hash.js\r\n * Copyright (c) 2016 Sachin N; \r\n * @license GPLv3 \r\n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgHash = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o';\n shareHtml += _this.core.s.facebook ? '
  • ' + this.core.s.facebookDropdownText + '
  • ' : '';\n shareHtml += _this.core.s.twitter ? '
  • ' + this.core.s.twitterDropdownText + '
  • ' : '';\n shareHtml += _this.core.s.googlePlus ? '
  • ' + this.core.s.googlePlusDropdownText + '
  • ' : '';\n shareHtml += _this.core.s.pinterest ? '
  • ' + this.core.s.pinterestDropdownText + '
  • ' : '';\n shareHtml += '';\n\n this.core.outer.querySelector('.lg-toolbar').insertAdjacentHTML('beforeend', shareHtml);\n this.core.outer.querySelector('.lg').insertAdjacentHTML('beforeend', '
    ');\n utils.on(document.getElementById('lg-share'), 'click.lg', function () {\n if (utils.hasClass(_this.core.outer, 'lg-dropdown-active')) {\n utils.removeClass(_this.core.outer, 'lg-dropdown-active');\n } else {\n utils.addClass(_this.core.outer, 'lg-dropdown-active');\n }\n });\n\n utils.on(document.getElementById('lg-dropdown-overlay'), 'click.lg', function () {\n utils.removeClass(_this.core.outer, 'lg-dropdown-active');\n });\n\n utils.on(_this.core.el, 'onAfterSlide.lgtm', function (event) {\n\n setTimeout(function () {\n if (_this.core.s.facebook) {\n document.getElementById('lg-share-facebook').setAttribute('href', 'https://www.facebook.com/sharer/sharer.php?u=' + _this.getSharePropsUrl(event.detail.index, 'data-facebook-share-url'));\n }\n if (_this.core.s.twitter) {\n document.getElementById('lg-share-twitter').setAttribute('href', 'https://twitter.com/intent/tweet?text=' + _this.getShareProps(event.detail.index, 'data-tweet-text') + '&url=' + _this.getSharePropsUrl(event.detail.index, 'data-twitter-share-url'));\n }\n if (_this.core.s.googlePlus) {\n document.getElementById('lg-share-googleplus').setAttribute('href', 'https://plus.google.com/share?url=' + _this.getSharePropsUrl(event.detail.index, 'data-googleplus-share-url'));\n }\n if (_this.core.s.pinterest) {\n document.getElementById('lg-share-pinterest').setAttribute('href', 'http://www.pinterest.com/pin/create/button/?url=' + _this.getSharePropsUrl(event.detail.index, 'data-pinterest-share-url') + '&media=' + encodeURIComponent(_this.getShareProps(event.detail.index, 'href') || _this.getShareProps(event.detail.index, 'data-src')) + '&description=' + _this.getShareProps(event.detail.index, 'data-pinterest-text'));\n }\n }, 100);\n });\n };\n\n Share.prototype.getSharePropsUrl = function (index, prop) {\n var shareProp = this.getShareProps(index, prop);\n if (!shareProp) {\n shareProp = window.location.href;\n }\n return encodeURIComponent(shareProp);\n };\n\n Share.prototype.getShareProps = function (index, prop) {\n var shareProp = '';\n if (this.core.s.dynamic) {\n shareProp = this.core.items[index][toCamelCase(prop.replace('data-', ''))];\n } else if (this.core.items[index].getAttribute(prop)) {\n shareProp = this.core.items[index].getAttribute(prop);\n }\n return shareProp;\n };\n\n Share.prototype.destroy = function () {};\n\n window.lgModules.share = Share;\n});\n\n},{}]},{},[1])(1)\n});","import Cookies from 'js-cookie';\r\n\r\nclass CookieBar {\r\n constructor(options = {}) {\r\n this.config = {\r\n expireDays: 365,\r\n cookiePath: '/',\r\n module: document.querySelector('[data-module=\"CookieBar\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { module, expireDays, cookiePath } = this.config;\r\n\r\n if (!this.config.module) {\r\n return;\r\n }\r\n\r\n const button = module.querySelector('[type=\"submit\"]');\r\n\r\n if (!button) {\r\n return;\r\n }\r\n\r\n button.addEventListener('click', e => {\r\n const approvedCookies = Array.from(\r\n module.querySelectorAll('input[type=\"checkbox\"]:checked')\r\n ).map(checkbox => checkbox.getAttribute('name'));\r\n\r\n e.preventDefault();\r\n\r\n Cookies.set('png_consentGiven', 'true', {\r\n expires: expireDays,\r\n path: cookiePath\r\n });\r\n\r\n if (approvedCookies.length) {\r\n Cookies.set('png_approvedCookies', approvedCookies.join(','), {\r\n expires: expireDays,\r\n path: cookiePath\r\n });\r\n }\r\n\r\n window.location.reload();\r\n });\r\n }\r\n}\r\n\r\nexport default CookieBar;\r\n"],"sourceRoot":""}