{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"jQuery\"","webpack:///./App_Themes/sos/scripts/components/Utils.js","webpack:///C:/Program Files (x86)/Microsoft VS Code/bin/node_modules/lozad/dist/lozad.min.js","webpack:///./App_Themes/sos/scripts/components/LinkController.js","webpack:///./App_Themes/sos/scripts/components/ImageCreditsController.js","webpack:///./App_Themes/sos/scripts/components/CookiesController.js","webpack:///./App_Themes/sos/scripts/components/SocialController.js","webpack:///C:/Program Files (x86)/Microsoft VS Code/bin/node_modules/bootstrap/js/tooltip.js","webpack:///C:/Program Files (x86)/Microsoft VS Code/bin/node_modules/bootstrap/js/popover.js","webpack:///C:/Program Files (x86)/Microsoft VS Code/bin/node_modules/bootstrap/js/dropdown.js","webpack:///./App_Themes/sos/scripts/components/plugins/DropDownOnHover.js","webpack:///./App_Themes/sos/scripts/components/plugins/StickyNavigation.js","webpack:///./App_Themes/sos/scripts/components/Extensions.js","webpack:///E:/Node/node_modules/bootstrap/js/collapse.js","webpack:///E:/Node/node_modules/bootstrap/js/modal.js","webpack:///E:/Node/node_modules/bootstrap/js/tab.js","webpack:///E:/Node/node_modules/bootstrap/js/transition.js","webpack:///./App_Themes/sos/scripts/components/PortalImageTeaserController.js","webpack:///./App_Themes/sos/scripts/components/NewsletterSignUpController.js","webpack:///./App_Themes/sos/scripts/components/BackgroundVideoController.js","webpack:///./App_Themes/sos/scripts/components/BackgroundController.js","webpack:///./App_Themes/sos/scripts/components/RedirectController.js","webpack:///./App_Themes/sos/scripts/components/SlickSliderController.js","webpack:///./App_Themes/sos/scripts/components/YoutubeAutoplay.js","webpack:///./App_Themes/sos/scripts/components/LazyLoadingController.js","webpack:///./App_Themes/sos/scripts/components/plugins/AnchorOffsets.js","webpack:///./App_Themes/sos/scripts/components/ProgressBarController.js","webpack:///./App_Themes/sos/scripts/components/LozadController.js","webpack:///./App_Themes/sos/scripts/components/ClipboardController.js","webpack:///./App_Themes/sos/scripts/components/CountdownController.js","webpack:///./App_Themes/sos/scripts/components/SitemapController.js","webpack:///./App_Themes/sos/scripts/components/AccordionController.js","webpack:///./App_Themes/sos/scripts/components/WaypointController.js","webpack:///./App_Themes/sos/scripts/components/TooltipController.js","webpack:///./App_Themes/sos/scripts/components/IframesController.js","webpack:///./App_Themes/sos/scripts/components/NavigationController.js","webpack:///./App_Themes/sos/scripts/components/YoutubeController.js","webpack:///./App_Themes/sos/scripts/components/OverlayController.js","webpack:///./App_Themes/sos/scripts/components/ImageGradientController.js","webpack:///./App_Themes/sos/scripts/components/FooterController.js","webpack:///./App_Themes/sos/scripts/components/EditorInfoController.js","webpack:///./App_Themes/sos/scripts/common-modular.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","jQuery","isIE9","navigator","userAgent","toLowerCase","indexOf","isMsEdge","test","isMobile","Math","max","document","documentElement","clientWidth","window","innerWidth","validateEmail","email","rgb2hex","rgb","color","match","length","parseInt","toString","slice","stripUrl","url","regex","urlNoParam","exec","charAt","subst","Globals","width","this","val","documentMode","rootMargin","threshold","load","nodeName","e","createElement","getAttribute","src","alt","append","children","a","setAttribute","style","backgroundImage","split","join","substr","classList","toggle","loaded","b","arguments","assign","root","u","g","IntersectionObserver","forEach","intersectionRatio","isIntersecting","unobserve","target","observe","Element","NodeList","querySelectorAll","triggerLoad","observer","LinkController","elem","linkTarget","dataset","href","newWindow","registerClickEvent","selector","$","find","each","index","ready","registerClickEventForElement","on","event","tagName","contains","open","console","log","location","ImageCreditsController","title","undefined","removeAttribute","wrapper","add","parentNode","insertBefore","appendChild","credits","creditsText","innerHTML","image","addEventListener","preventDefault","stopPropagation","remove","createForElement","init","CookiesController","expiryDate","date","Date","now","setTime","parse","cookie","duration","newDate","getTime","nameEQ","ca","substring","createCookie","SocialController","getFBPageShares","countWrapper","querySelector","show","toBoolean","data","showFBPageShares","shareCount","share","share_count","html","DISALLOWED_ATTRIBUTES","uriAttrs","DefaultWhitelist","area","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","inArray","Boolean","nodeValue","regExp","filter","RegExp","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","implementation","createHTMLDocument","createdDocument","body","whitelistKeys","map","el","elements","len","elName","attributeList","attributes","whitelistedAttributes","concat","j","len2","removeChild","Tooltip","element","options","type","enabled","timeout","hoverState","$element","inState","VERSION","TRANSITION_DURATION","DEFAULTS","animation","placement","template","trigger","delay","container","viewport","padding","sanitize","getOptions","$viewport","isFunction","click","hover","focus","constructor","Error","triggers","proxy","eventIn","eventOut","enter","leave","_options","extend","fixTitle","getDefaults","dataAttributes","dataAttr","hide","getDelegateOptions","defaults","obj","self","currentTarget","Event","tip","hasClass","clearTimeout","setTimeout","isInStateTrue","hasContent","inDom","ownerDocument","isDefaultPrevented","that","$tip","tipId","getUID","setContent","addClass","autoToken","autoPlace","replace","detach","css","top","left","display","appendTo","insertAfter","pos","getPosition","actualWidth","offsetWidth","actualHeight","offsetHeight","orgPlacement","viewportDim","bottom","right","removeClass","calculatedOffset","getCalculatedOffset","applyPlacement","complete","prevHoverState","support","transition","one","emulateTransitionEnd","offset","height","marginTop","marginLeft","isNaN","setOffset","using","props","round","delta","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","dimension","arrow","getTitle","text","callback","removeAttr","$e","isBody","elRect","getBoundingClientRect","isSvg","SVGElement","elOffset","scroll","scrollTop","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","prefix","random","getElementById","$arrow","enable","disable","toggleEnabled","destroy","off","removeData","old","fn","tooltip","option","$this","Constructor","noConflict","Popover","content","getContent","typeContent","end","popover","Dropdown","getParent","$parent","parent","clearMenus","which","relatedTarget","is","isActive","closest","toggleClass","keydown","$items","eq","dropdown","dropdownHover","f","instantlyCloseOthers","siblings","Waypoint","Sticky","createWrapper","createWaypoint","originalHandler","handler","waypoint","direction","shouldBeStuck","wrapperHeight","outerHeight","$wrapper","stuckClass","wrap","unwrap","changeElementType","newType","attrs","idx","replaceWith","contents","pressEnter","keyup","keyCode","removeEmptyAnchorTags","anchors","getHexBackgroundColor","Array","includes","apply","String","pushIfNotExists","push","Document","DocumentFragment","item","configurable","writable","argArr","docFrag","createDocumentFragment","argItem","isNode","Node","createTextNode","firstChild","info","thisArg","matches","msMatchesSelector","webkitMatchesSelector","parentElement","nodeType","Collapse","$trigger","id","transitioning","addAriaAndCollapsedClass","getTargetFromTrigger","Plugin","activesData","actives","startEvent","scrollSize","camelCase","isOpen","collapse","$target","Modal","$body","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","fixedContent","remote","_relatedTarget","BACKDROP_TRANSITION_DURATION","backdrop","keyboard","checkScrollbar","setScrollbar","escape","resize","adjustDialog","enforceFocus","hideModal","has","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","animate","doAnimate","callbackRemove","modalIsOverflowing","scrollHeight","clientHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","documentElementRect","abs","measureScrollbar","bodyPad","actualPadding","calculatedPadding","parseFloat","scrollDiv","className","modal","showEvent","Tab","$ul","$previous","hideEvent","activate","$active","next","tab","clickHandler","called","$el","transEndEventNames","WebkitTransition","MozTransition","OTransition","transitionEnd","special","bsTransitionEnd","bindType","delegateType","handle","handleObj","PortalImageTeaserController","teaserID","dragging","autoslide","autoslideSpeed","Number","SLICK_WRAPPER_ID","SLICK_CONTROLS_ID","controls","IS_RTL","rtl","VIDEO_SELECTOR","CAPTIONS_SELECTOR","prepareSlider","activeSlide","nodeid","play","mute","slick","playVideo","teaser","slickWrapperID","slickControlsID","AddFadeClasses","resetFades","doFades","PrepareVideo","currentSlide","PauseVideo","InitSlickSliderWithVideo","opacity","stop","easing","fades","fadeInDown","fadeInDownReset","video","pauseVideo","teaserHeight","textContainers","textContainerHeight","autoplay","autoplaySpeed","before","$dots","SetSlickPadding","dots","fade","speed","cssEase","appendDots","lazyLoad","pauseOnHover","pauseOnDotsHover","slide","prevArrow","nextArrow","currentSlideIndex","$slides","NewsletterSignUpController","path","reportValidity","inputId","button","processEmail","BackgroundVideoController","videoUrl","video_url","mobileFallbackImage","mobile_fall_backimage","useOnMobile","use_on_mobile","applyBackgroundVideo","$webzoneWrapper","backgroundWrapper","dataProperty","videoURL","containment","stopMovieOnBlur","autoPlay","startAt","loop","showControls","showYTLogo","realfullscreen","videoElement","YTPlayer","BackgroundController","fullWidth","full_width","fixBackground","fix_background","useImageOnMobile","use_image_on_mobile","imgUrl","applyBackground","bgImage","webzoneWrapper","wrapInner","bgColorElement","bgColorCode","gradientColor","gradientStrength","lozad","bgColorEl","bgCss","bgColor","rgbaColor","background","backgroundAttachment","RedirectController","SlickSliderController","slidesToShowDesktop","slidesToShowTablet","slidesCount","slidesToScrollDesktop","slidesToScrollTablet","infinite","hideArrowsOnDesktop","hideArrowsOnTablet","hideArrowsOnPhone","slickWrapper","slickControls","sliderTrackHeight","first","arrowHeight","captions","capHeight","v","midPoint","slidesToShow","slidesToScroll","adaptiveHeight","responsive","breakpoint","settings","setSliderArrowPosition","player","YoutubeClientID","muted","onYouTubeIframeAPIReady","YT","Player","events","onReady","onPlayerReady","onStateChange","onPlayerStateChange","InitYoutubeAutoplayVideo","containerId","tag","firstScriptTag","getElementsByTagName","LazyLoadingController","scrollingContent","topN","count","nestingLevel","whereStatement","orderBy","classNames","textBackgroundColor","totalPages","paramName","btnLoadMore","restorePageState","lastScroll","currentPage","nextDataPage","prevDataPage","nextDataCache","isLoading","ScrollingContentID","InitLazyLoad","pg","scrollPos","windowHeight","elTop","elHeight","scrollingContentID","page","pathname","readCookie","iPage","firstPage","lastPage","currPage","after","fadeIn","loadPage","loadPages","LatestNews","GetLatestNews","parseHTML","JSON","stringify","getLastPage","getTeasers","storePageState","history","HISTORY_SUPPORT","pushState","anchorScrolls","ANCHOR_REGEX","OFFSET_HEIGHT_PX","scrollToCurrent","getFixedOffset","scrollIfAnchor","pushToHistory","anchorOffset","scrollIntoView","hash","delegateAnchors","ProgressBarController","achieved","counterFontSize","counterPrefix","counterSuffix","bar","ProgressBar","Circle","strokeWidth","trailWidth","position","margin","transform","autoStyleContainer","from","to","step","state","circle","setText","fontSize","SemiCircle","svgStyle","alignToBottom","progressBar","tempProgressBar","Line","trailColor","slideHeight","ClipboardController","inputObject","successText","inputArea","select","execCommand","err","error","clipboard","writeText","then","fallbackCopyTextToClipboard","CountdownController","containerID","countDownTo","timeZone","labelD","labelH","labelM","labelS","timezone","$container","parts","countDownDate","setMinutes","getMinutes","getTimezoneOffset","parentWidth","x","setInterval","dateObj","jan","jul","getFullYear","distance","days","floor","hours","minutes","seconds","clearInterval","SitemapController","sitemapID","plusIcon","initSitemapAsAccordion","sitemapElem","slideToggle","AccordionController","assignGroups","$groups","groupName","$toggles","index2","value2","$toggle","slideUp","group","$currentin","slideDown","$window","innerHeight","WaypointContoller","ANIMATION_CLASS","OFFSET","doAnimations","animationClass","require","TooltipController","IframesController","proportion","w","parentW","adjustIframes","NavigationController","STICKY_NAV_SELECTOR","STICKY_NAV_SELECTOR_MOBILE","STICKY_NAV_OFFSET","DROPDOWN_HOVER_DELAY","addStickyNav","initDropdown","initSearchFunction","assignColumns","keypress","searchQuery","searchSubmit","mousedown","IsMobile","cols","searchTeaserParams","stickyNavMobile","lastKnownScrollPosition","previousScrollPosition","ticking","scrollY","requestAnimationFrame","stickyNav","YoutubeController","initYoutubeEmbed","embedCode","embed","thumbnail","search","source","Image","loadElement","iframe","OverlayController","MODALS_SELECTOR","TRIGGER_SELECTOR","NBA_SELECTOR","NBA_SELECTOR_FLOATING","initNBAContainers","createModalsFromNbas","registerClickEvents","positionModals","nbaConfig","buttons","nbaButton","overlay","icon","dataUrl","ImageGradientController","prepareLinks","addLinksToGradientCaptions","registerButtonVisibilityEvents","anchorTag","FooterController","FOOTER_COLS_SELECTOR","EditorInfoController","WEBPARTS","PREVIEW_NODES","assignIcons","webpart","editorInfo","infoNode","textContent","previewNode","prepend"],"mappings":"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","file":"common.min.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 = 31);\n","module.exports = jQuery;","export function isIE9() {\r\n const s = navigator.userAgent.toLowerCase();\r\n return (s.indexOf('msie 9') >= 0 || s.indexOf('trident/5') >= 0);\r\n}\r\n\r\nexport function isMsEdge() {\r\n return /Edge/.test(navigator.userAgent);\r\n}\r\n\r\nexport function isMobile() {\r\n const width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n return width < 768;\r\n}\r\n\r\nexport function validateEmail(email) {\r\n const re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(email);\r\n}\r\n\r\nexport function rgb2hex(rgb) {\r\n const color = rgb.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\r\n return (color && color.length === 4)\r\n ? (`0${parseInt(color[1], 10).toString(16)}`).slice(-2)\r\n + (`0${parseInt(color[2], 10).toString(16)}`).slice(-2)\r\n + (`0${parseInt(color[3], 10).toString(16)}`).slice(-2) : '';\r\n}\r\n\r\n/** @description Strips query string and preceding tilda from url\r\n */\r\nexport function stripUrl(url) {\r\n const regex = /.*(?=\\?)/;\r\n let urlNoParam = url;\r\n if (regex.test(url)) {\r\n urlNoParam = regex.exec(url)[0]; // eslint-disable-line prefer-destructuring\r\n }\r\n if (urlNoParam.charAt(0) === '~') {\r\n urlNoParam = urlNoParam.subst(1);\r\n }\r\n return urlNoParam;\r\n}\r\n\r\nexport class Globals {\r\n constructor() {\r\n const width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n this.isMobile = width < 768;\r\n }\r\n\r\n set IsMobile(val) {\r\n this.isMobile = val;\r\n }\r\n\r\n get IsMobile() {\r\n return this.isMobile;\r\n }\r\n}\r\n\r\n\r\nwindow.Globals = Globals;\r\nexport default Globals;\r\n","/*! lozad.js - v1.14.0 - 2019-10-19\n* https://github.com/ApoorvSaxena/lozad.js\n* Copyright (c) 2019 Apoorv Saxena; Licensed MIT */\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=t||self).lozad=e()}(this,function(){\"use strict\";\n/**\n * Detect IE browser\n * @const {boolean}\n * @private\n */var d=\"undefined\"!=typeof document&&document.documentMode,c={rootMargin:\"0px\",threshold:0,load:function(t){if(\"picture\"===t.nodeName.toLowerCase()){var e=document.createElement(\"img\");d&&t.getAttribute(\"data-iesrc\")&&(e.src=t.getAttribute(\"data-iesrc\")),t.getAttribute(\"data-alt\")&&(e.alt=t.getAttribute(\"data-alt\")),t.append(e)}if(\"video\"===t.nodeName.toLowerCase()&&!t.getAttribute(\"data-src\")&&t.children){for(var r=t.children,a=void 0,o=0;o<=r.length-1;o++)(a=r[o].getAttribute(\"data-src\"))&&(r[o].src=a);t.load()}if(t.getAttribute(\"data-src\")&&(t.src=t.getAttribute(\"data-src\")),t.getAttribute(\"data-srcset\")&&t.setAttribute(\"srcset\",t.getAttribute(\"data-srcset\")),t.getAttribute(\"data-background-image\"))t.style.backgroundImage=\"url('\"+t.getAttribute(\"data-background-image\").split(\",\").join(\"'),url('\")+\"')\";else if(t.getAttribute(\"data-background-image-set\")){var i=t.getAttribute(\"data-background-image-set\").split(\",\"),n=i[0].substr(0,i[0].indexOf(\" \"))||i[0];// Substring before ... 1x\nn=-1===n.indexOf(\"url(\")?\"url(\"+n+\")\":n,1===i.length?t.style.backgroundImage=n:t.setAttribute(\"style\",(t.getAttribute(\"style\")||\"\")+\"background-image: \"+n+\"; background-image: -webkit-image-set(\"+i+\"); background-image: image-set(\"+i+\")\")}t.getAttribute(\"data-toggle-class\")&&t.classList.toggle(t.getAttribute(\"data-toggle-class\"))},loaded:function(){}};function l(t){t.setAttribute(\"data-loaded\",!0)}var b=function(t){return\"true\"===t.getAttribute(\"data-loaded\")};return function(){var r,a,o=0 {\r\n if (event.target.tagName.toLowerCase() !== 'a' && !event.target.classList.contains('btn')) {\r\n if (this.newWindow) {\r\n window.open(this.linkTarget, '_blank');\r\n console.log('opening new window');\r\n }\r\n else location.href = this.linkTarget;\r\n return false;\r\n }\r\n return true;\r\n });\r\n }\r\n }\r\n\r\n static registerClickEventForElement(selector) {\r\n $(selector).find('.has-link').each((index, elem) => {\r\n new LinkController(elem); // eslint-disable-line no-new\r\n });\r\n }\r\n\r\n static init() {\r\n $(document).ready(() => {\r\n LinkController.registerClickEventForElement(document);\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport { isMobile } from './Utils';\r\n\r\nexport default class ImageCreditsController {\r\n static createForElement(e) {\r\n let title = e.getAttribute('title');\r\n if (title === undefined || title === '') return;\r\n title = `© ${title}`;\r\n e.removeAttribute('title');\r\n const wrapper = document.createElement('div');\r\n wrapper.classList.add('image-credits-wrapper');\r\n\r\n e.parentNode.insertBefore(wrapper, e);\r\n wrapper.appendChild(e);\r\n const credits = document.createElement('div');\r\n credits.classList.add('image-credits');\r\n const creditsText = document.createElement('div');\r\n creditsText.innerHTML = title;\r\n creditsText.classList.add('image-credits-text');\r\n creditsText.classList.add('credits-hidden');\r\n credits.appendChild(creditsText);\r\n const image = document.createElement('img');\r\n image.src = '/App_Themes/sos/images/photo-camera.png';\r\n image.classList.add('image-credits-button');\r\n image.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n creditsText.classList.toggle('credits-hidden');\r\n });\r\n if (!isMobile()) {\r\n image.addEventListener('mouseover', () => {\r\n creditsText.classList.remove('credits-hidden');\r\n });\r\n image.addEventListener('mouseout', () => {\r\n creditsText.classList.add('credits-hidden');\r\n });\r\n }\r\n credits.appendChild(image);\r\n wrapper.appendChild(credits);\r\n }\r\n\r\n static init() {\r\n const elements = document.querySelectorAll('img[title]');\r\n elements.forEach((e) => {\r\n ImageCreditsController.createForElement(e);\r\n });\r\n }\r\n}\r\n\r\n$(() => {\r\n ImageCreditsController.init();\r\n});\r\n","class CookiesController {\r\n static createCookie(name, value, expiryDate) {\r\n const date = new Date();\r\n const now = new Date();\r\n date.setTime(Date.parse(expiryDate));\r\n if (date <= now) {\r\n // session cookie\r\n document.cookie = `${name}=${value}; path=/`;\r\n }\r\n else {\r\n document.cookie = `${name}=${value}; expires=${date}; path=/`;\r\n }\r\n }\r\n\r\n static createCookieWithDuration(name, value, duration) {\r\n const now = new Date();\r\n const newDate = new Date(now.getTime() + (duration * 1000));\r\n document.cookie = `${name}=${value}; expires=${newDate}; path=/`;\r\n }\r\n\r\n static readCookie(name) {\r\n const nameEQ = `${name}=`;\r\n const ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\r\n }\r\n return null;\r\n }\r\n\r\n static eraseCookie(name) {\r\n CookiesController.createCookie(name, '', -1);\r\n }\r\n}\r\n\r\nwindow.CookiesController = CookiesController;\r\nexport default CookiesController;\r\n\r\n// #endregion\r\n","import $ from 'jquery';\r\n\r\nexport default class SocialController {\r\n constructor(elem) {\r\n this.elem = elem;\r\n this.getFBPageShares();\r\n }\r\n\r\n getFBPageShares() {\r\n const countWrapper = this.elem.querySelector('.count-wrapper');\r\n if (countWrapper === null) return;\r\n if (countWrapper.dataset.show.toBoolean()) {\r\n $.get(`https://graph.facebook.com/?fields=og_object{likes.summary(total_count).limit(0)},share&id=${window.location.href}`,\r\n data => this.showFBPageShares(data));\r\n }\r\n else {\r\n this.elem.querySelector('.count-wrapper').remove();\r\n }\r\n }\r\n\r\n showFBPageShares(data) {\r\n if (data) {\r\n const shareCount = data.share.share_count;\r\n $(this.elem).find('.count-wrapper .count').html(shareCount);\r\n }\r\n }\r\n\r\n static init() {\r\n $(document).ready(() => {\r\n $('.social-sharing').each((index, elem) => {\r\n new SocialController(elem); // eslint-disable-line no-new\r\n });\r\n });\r\n }\r\n}\r\n","/* ========================================================================\n * Bootstrap: tooltip.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\n var uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n ]\n\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n }\n\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase()\n\n if ($.inArray(attrName, allowedAttributeList) !== -1) {\n if ($.inArray(attrName, uriAttrs) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n var regExp = $(allowedAttributeList).filter(function (index, value) {\n return value instanceof RegExp\n })\n\n // Check if a regular expression validates the attribute.\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n }\n\n function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n // IE 8 and below don't support createHTMLDocument\n if (!document.implementation || !document.implementation.createHTMLDocument) {\n return unsafeHtml\n }\n\n var createdDocument = document.implementation.createHTMLDocument('sanitization')\n createdDocument.body.innerHTML = unsafeHtml\n\n var whitelistKeys = $.map(whiteList, function (el, i) { return i })\n var elements = $(createdDocument.body).find('*')\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var el = elements[i]\n var elName = el.nodeName.toLowerCase()\n\n if ($.inArray(elName, whitelistKeys) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n var attributeList = $.map(el.attributes, function (el) { return el })\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n for (var j = 0, len2 = attributeList.length; j < len2; j++) {\n if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {\n el.removeAttribute(attributeList[j].nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n }\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.4.1'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n },\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n var dataAttributes = this.$element.data()\n\n for (var dataAttr in dataAttributes) {\n if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {\n delete dataAttributes[dataAttr]\n }\n }\n\n options = $.extend({}, this.getDefaults(), dataAttributes, options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n if (options.sanitize) {\n options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n if (this.options.html) {\n if (this.options.sanitize) {\n title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)\n }\n\n $tip.find('.tooltip-inner').html(title)\n } else {\n $tip.find('.tooltip-inner').text(title)\n }\n\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {\n return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)\n }\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: popover.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.4.1'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n if (this.options.html) {\n var typeContent = typeof content\n\n if (this.options.sanitize) {\n title = this.sanitizeHtml(title)\n\n if (typeContent === 'string') {\n content = this.sanitizeHtml(content)\n }\n }\n\n $tip.find('.popover-title').html(title)\n $tip.find('.popover-content').children().detach().end()[\n typeContent === 'string' ? 'html' : 'append'\n ](content)\n } else {\n $tip.find('.popover-title').text(title)\n $tip.find('.popover-content').children().detach().end().text(content)\n }\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.4.1'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector !== '#' ? $(document).find(selector) : null\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n","/* eslint-disable */\r\n\r\n/*===================================================================================*/\r\n/*\tDROPDOWN ON HOVER (NAVIGATION)\r\n/* https://github.com/CWSpear/bootstrap-hover-dropdown\r\n/*===================================================================================*/\r\n\r\n(function(e,t,n){\r\n var r=e();\r\n e.fn.dropdownHover=function(n){\r\n r=r.add(this.parent());\r\n return this.each(function(){\r\n var i=e(this),s=i.parent(),o={delay:500,instantlyCloseOthers:!0},\r\n u={delay:e(this).data(\"delay\"),instantlyCloseOthers:e(this).data(\"close-others\")},\r\n a=e.extend(!0,{},o,n,u),f;s.hover(function(e){\r\n if(!s.hasClass(\"open\")&&!i.is(e.target))return!0;\r\n a.instantlyCloseOthers===!0&&r.removeClass(\"open\");\r\n t.clearTimeout(f);\r\n s.addClass(\"open\")\r\n },\r\n function () { f = t.setTimeout(function () { s.removeClass(\"open\") }, a.delay) });\r\n i.hover(function () {\r\n a.instantlyCloseOthers === !0 && r.removeClass(\"open\");\r\n t.clearTimeout(f); s.addClass(\"open\")\r\n });\r\n s.find(\".dropdown-submenu\").each(function () {\r\n var n = e(this), r;\r\n n.hover(function () {\r\n t.clearTimeout(r);\r\n n.children(\".dropdown-menu\").show();\r\n n.siblings().children(\".dropdown-menu\").hide()\r\n }, function () {\r\n var e = n.children(\".dropdown-menu\");\r\n r = t.setTimeout(function () {\r\n e.hide()\r\n }, a.delay)\r\n })\r\n })\r\n })\r\n };\r\n e(document).ready(function(){\r\n e('[data-hover=\"dropdown\"]').dropdownHover()\r\n });\r\n})($,window);","import $ from 'jquery';\r\n\r\n/* eslint-disable */\r\n\r\n/*!\r\nWaypoints Sticky Element Shortcut - 4.0.1\r\nCopyright © 2011-2016 Caleb Troughton\r\nLicensed under the MIT license.\r\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\r\n*/\r\n(function() {\r\n 'use strict'\r\n var Waypoint = window.Waypoint\r\n \r\n /* http://imakewebthings.com/waypoints/shortcuts/sticky-elements */\r\n function Sticky(options) {\r\n this.options = $.extend({}, Waypoint.defaults, Sticky.defaults, options)\r\n this.element = this.options.element\r\n this.$element = $(this.element)\r\n this.createWrapper()\r\n this.createWaypoint()\r\n }\r\n \r\n /* Private */\r\n Sticky.prototype.createWaypoint = function() {\r\n var originalHandler = this.options.handler\r\n \r\n this.waypoint = new Waypoint($.extend({}, this.options, {\r\n element: this.wrapper,\r\n handler: $.proxy(function(direction) {\r\n var shouldBeStuck = this.options.direction.indexOf(direction) > -1\r\n var wrapperHeight = shouldBeStuck ? this.$element.outerHeight(true) : ''\r\n \r\n this.$wrapper.height(wrapperHeight)\r\n this.$element.toggleClass(this.options.stuckClass, shouldBeStuck)\r\n \r\n if (originalHandler) {\r\n originalHandler.call(this, direction)\r\n }\r\n }, this)\r\n }))\r\n }\r\n \r\n /* Private */\r\n Sticky.prototype.createWrapper = function() {\r\n if (this.options.wrapper) {\r\n this.$element.wrap(this.options.wrapper)\r\n }\r\n this.$wrapper = this.$element.parent()\r\n this.wrapper = this.$wrapper[0]\r\n }\r\n \r\n /* Public */\r\n Sticky.prototype.destroy = function() {\r\n if (this.$element.parent()[0] === this.wrapper) {\r\n this.waypoint.destroy()\r\n this.$element.removeClass(this.options.stuckClass)\r\n if (this.options.wrapper) {\r\n this.$element.unwrap()\r\n }\r\n }\r\n }\r\n \r\n Sticky.defaults = {\r\n wrapper: '
',\r\n stuckClass: 'stuck',\r\n direction: 'down right'\r\n }\r\n \r\n Waypoint.Sticky = Sticky\r\n }())\r\n ;","import { rgb2hex } from './Utils';\r\n\r\n/* eslint-disable */\r\n\r\n//#region jquery extensions\r\n\r\n$.fn.changeElementType = function(newType) {\r\n\tvar attrs = {};\r\n\tvar element = this[0];\r\n\tif(element != undefined){\r\n\t\t$.each(element.attributes, function(idx, attr) {\r\n\t\t\tattrs[attr.nodeName] = attr.nodeValue;\r\n\t\t});\r\n\t}\r\n\tthis.replaceWith(function() {\r\n\t\treturn $(\"<\" + newType + \"/>\", attrs).append($(this).contents());\r\n\t});\r\n}\r\n\r\n\r\n$.fn.pressEnter = function(fn) { \r\n\treturn this.each(function() { \r\n\t\t$(this).bind('enterPress', fn);\r\n\t\t$(this).keyup(function (e) {\r\n\t\t\tif (e.keyCode == 13 || e.keyCode == 10) {\r\n\t\t\t\t\t$(this).trigger(\"enterPress\");\r\n }\r\n })\r\n }); \r\n}; \r\n\r\n$.fn.removeEmptyAnchorTags = function(fn) { \r\n\tvar anchors = $(this).find('a');\r\n\t$.each(anchors, function( index, value ) {\r\n\t\tif(!$(value).attr('href')){\r\n\t\t\t$(value).children('.unwrappable').unwrap();\r\n\t\t}\r\n\t});\r\n}; \r\n\r\n$.fn.getHexBackgroundColor = function() {\r\n return (function(rgb) {\r\n return '#' + (!rgb ? 'FFFFFF' : rgb2hex(rgb))\r\n })($(this).css('background-color'));\r\n}\r\n\r\n//#endregion\r\n\r\n//#region IE polyfills\r\nif (!Array.prototype.includes) {\r\n\tArray.prototype.includes = function() {\r\n\t\t'use strict';\r\n\t\treturn Array.prototype.indexOf.apply(this, arguments) !== -1;\r\n\t};\r\n}\r\n\r\nString.prototype.toBoolean = function() {\r\n var dictionary = { \"True\": true, \"False\": false, \"true\": true, \"false\": false };\r\n return dictionary[this];\r\n}\r\n\r\n\r\nArray.prototype.pushIfNotExists = function(element) { \r\n if (!this.includes(element)) {\r\n\t this.push(element);\r\n }\r\n};\r\n\r\n// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md\r\n(function (arr) {\r\n arr.forEach(function (item) {\r\n if (item.hasOwnProperty('prepend')) {\r\n return;\r\n }\r\n Object.defineProperty(item, 'prepend', {\r\n configurable: true,\r\n enumerable: true,\r\n writable: true,\r\n value: function prepend() {\r\n var argArr = Array.prototype.slice.call(arguments),\r\n docFrag = document.createDocumentFragment();\r\n \r\n argArr.forEach(function (argItem) {\r\n var isNode = argItem instanceof Node;\r\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\r\n });\r\n \r\n this.insertBefore(docFrag, this.firstChild);\r\n }\r\n });\r\n });\r\n })([Element.prototype, Document.prototype, DocumentFragment.prototype]);\r\n\r\n\r\n// https://gist.github.com/bob-lee/e7520bfcdac266e5490f40c2759cc955\r\nif ('NodeList' in window && !NodeList.prototype.forEach) {\r\n console.info('polyfill for IE11');\r\n NodeList.prototype.forEach = function (callback, thisArg) {\r\n thisArg = thisArg || window;\r\n for (var i = 0; i < this.length; i++) {\r\n callback.call(thisArg, this[i], i, this);\r\n }\r\n };\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\r\n\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector || \r\n Element.prototype.webkitMatchesSelector;\r\n }\r\n \r\n if (!Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n var el = this;\r\n \r\n do {\r\n if (el.matches(s)) return el;\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n }\r\n\r\n//#endregion","/* ========================================================================\n * Bootstrap: collapse.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.4.1'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(document).find(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(document).find(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: modal.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#modals\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.4.1'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n var scrollbarWidth = this.scrollbarWidth\n if (this.bodyIsOverflowing) {\n this.$body.css('padding-right', bodyPad + scrollbarWidth)\n $(this.fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight\n var calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')\n })\n }\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n $(this.fixedContent).each(function (index, element) {\n var padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var target = $this.attr('data-target') ||\n (href && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n\n var $target = $(document).find(target)\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: tab.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.4.1'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(document).find(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: transition.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // https://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n","import $ from 'jquery';\r\nimport { isMobile } from './Utils';\r\n\r\nclass PortalImageTeaserController {\r\n constructor(elem) {\r\n this.elem = elem;\r\n this.teaserID = elem.id;\r\n\r\n this.dragging = false;\r\n this.autoslide = elem.dataset.autoslide.toBoolean();\r\n this.autoslideSpeed = Number(elem.dataset.autoslideSpeed);\r\n\r\n this.SLICK_WRAPPER_ID = `#${elem.dataset.wrapper}`;\r\n this.SLICK_CONTROLS_ID = `#${elem.dataset.controls}`;\r\n this.IS_RTL = elem.dataset.rtl === undefined ? false : elem.dataset.rtl.toBoolean();\r\n\r\n this.VIDEO_SELECTOR = 'iframe[data-video]';\r\n this.CAPTIONS_SELECTOR = '.portal-image-teaser-caption';\r\n this.prepareSlider(elem);\r\n }\r\n\r\n prepareSlider() {\r\n const slickWrapperID = this.SLICK_WRAPPER_ID;\r\n const slickControlsID = this.SLICK_CONTROLS_ID;\r\n\r\n if (!isMobile()) {\r\n this.AddFadeClasses(this.elem);\r\n $(slickWrapperID).on('init', () => {\r\n this.resetFades(this.elem);\r\n this.doFades(this.elem);\r\n });\r\n $(slickWrapperID).on('afterChange', () => {\r\n this.doFades(this.elem);\r\n PortalImageTeaserController.PrepareVideo(this.elem);\r\n });\r\n $(slickWrapperID).on('swipe', () => {\r\n this.resetFades(this.elem);\r\n });\r\n $(slickWrapperID).on('beforeChange', () => {\r\n this.resetFades(this.elem);\r\n const currentSlide = $(slickWrapperID).find('.slick-active');\r\n this.PauseVideo(currentSlide);\r\n });\r\n }\r\n\r\n this.InitSlickSliderWithVideo(slickWrapperID, slickControlsID, this.autoslide, this.autoslideSpeed);\r\n }\r\n\r\n AddFadeClasses(element) {\r\n const captions = $(element).find(this.CAPTIONS_SELECTOR).slice(1);\r\n captions.addClass('fadeInDown');\r\n }\r\n\r\n fadeInDownReset() {\r\n if (!this.dragging) {\r\n $(this.elem).find('.portal-image-teaser-caption.fadeInDown').stop().delay(400)\r\n .animate({ opacity: 0, top: '-15px' }, { duration: 800, easing: 'easeInCubic' });\r\n }\r\n else {\r\n $(this.elem).find('.portal-image-teaser-caption.fadeInDown').css({ opacity: 0, top: '-15px' });\r\n }\r\n }\r\n\r\n fadeInDown() {\r\n const fades = $(this.elem).find('.slick-active .portal-image-teaser-caption.fadeInDown');\r\n const delayInterval = 250;\r\n $.each(fades, (index, value) => {\r\n $(value).stop().delay(delayInterval + delayInterval * (index + 1))\r\n .animate({ opacity: 1, top: '0' }, { duration: 800, easing: 'easeOutCubic' });\r\n });\r\n }\r\n\r\n doFades() {\r\n this.fadeInDown(this.teaserID);\r\n }\r\n\r\n resetFades() {\r\n this.fadeInDownReset(this.teaserID);\r\n }\r\n\r\n static PrepareVideo(container) {\r\n const activeSlide = $(container).find(`.slick-active ${this.VIDEO_SELECTOR}`);\r\n if (activeSlide.length > 0) {\r\n const nodeid = activeSlide.attr('data-video');\r\n const play = activeSlide.attr('data-play') === 'True';\r\n const mute = activeSlide.attr('data-mute') === 'True';\r\n if (play) {\r\n $(container).slick('slickPause');\r\n window[`playerSlick${nodeid}`].playVideo();\r\n }\r\n if (mute) window[`playerSlick${nodeid}`].mute();\r\n }\r\n }\r\n\r\n PauseVideo(currentSlide) {\r\n const video = $(currentSlide).find(this.VIDEO_SELECTOR);\r\n if (video.length > 0) {\r\n const nodeid = video.attr('data-video');\r\n window[`playerSlick${nodeid}`].pauseVideo();\r\n }\r\n }\r\n\r\n SetSlickPadding() {\r\n if (!isMobile()) {\r\n const teaser = this.elem;\r\n const teaserHeight = $(teaser).height();\r\n const textContainers = $(teaser).find('.portal-image-teaser-caption');\r\n let textContainerHeight = 0;\r\n let padding = 0;\r\n $.each(textContainers, (index, value) => {\r\n textContainerHeight = $(value).height();\r\n padding = (teaserHeight - textContainerHeight) / 2;\r\n $(value).closest('.container-wrapper').css('padding-top', padding);\r\n });\r\n }\r\n }\r\n\r\n InitSlickSliderWithVideo(slickWrapperID, slickControlsID, autoplay, autoplaySpeed) {\r\n $(slickWrapperID).on('init', (event, slick) => {\r\n $(event.currentTarget).find('.slick-next').before(slick.$dots);\r\n this.SetSlickPadding(event.currentTarget);\r\n $(event.currentTarget).show();\r\n });\r\n\r\n\r\n $(slickWrapperID).slick({\r\n autoplay,\r\n autoplaySpeed,\r\n dots: true,\r\n fade: true,\r\n speed: 750,\r\n rtl: this.IS_RTL,\r\n cssEase: 'linear',\r\n appendDots: $(slickControlsID),\r\n lazyLoad: 'progressive',\r\n pauseOnHover: true,\r\n pauseOnDotsHover: true,\r\n slide: '.slide-item',\r\n prevArrow: $(slickControlsID).find('.prev'),\r\n nextArrow: $(slickControlsID).find('.next'),\r\n });\r\n\r\n $(slickWrapperID).on('beforeChange', (event, slick, currentSlideIndex) => {\r\n const currentSlide = slick.$slides.get(currentSlideIndex);\r\n this.PauseVideo(currentSlide);\r\n });\r\n $(slickWrapperID).on('afterChange', (event) => {\r\n PortalImageTeaserController.PrepareVideo(event.currentTarget);\r\n });\r\n }\r\n\r\n static init(teaser) {\r\n new PortalImageTeaserController(teaser); // eslint-disable-line no-new\r\n }\r\n}\r\n\r\nwindow.PortalImageTeaserController = PortalImageTeaserController;\r\nexport default PortalImageTeaserController;\r\n","import $ from 'jquery';\r\nimport { validateEmail } from './Utils';\r\n\r\nclass NewsletterSignUpController {\r\n static processEmail(email, path) {\r\n if (validateEmail(email)) {\r\n window.location = `${path}?email=${email}`;\r\n }\r\n else {\r\n document.querySelector('form').reportValidity();\r\n }\r\n }\r\n\r\n static newsletterSignupInit(container, inputId, path) {\r\n const button = $(container).children('.btn');\r\n $(`#${inputId}`).pressEnter((e) => {\r\n NewsletterSignUpController.processEmail(e.target.value, path);\r\n });\r\n\r\n $(button).click(() => {\r\n NewsletterSignUpController.processEmail($(`#${inputId}`).val(), path);\r\n });\r\n }\r\n}\r\n\r\nwindow.NewsletterSignUpController = NewsletterSignUpController;\r\nexport default NewsletterSignUpController;\r\n","import $ from 'jquery';\r\n\r\nclass BackgroundVideoController {\r\n constructor(elem) {\r\n this.elem = elem;\r\n this.target = elem.dataset.target;\r\n this.videoUrl = elem.dataset.video_url;\r\n this.mobileFallbackImage = elem.dataset.mobile_fall_backimage;\r\n this.useOnMobile = elem.dataset.use_on_mobile.toBoolean();\r\n\r\n this.applyBackgroundVideo();\r\n }\r\n\r\n applyBackgroundVideo() {\r\n const $webzoneWrapper = $(this.elem).closest('.webzone-wrapper');\r\n let backgroundWrapper = $(this.elem);\r\n\r\n switch (this.target) {\r\n case 'widget-zone':\r\n backgroundWrapper = $(this.elem).closest('.webzone-wrapper .row')[0]; // eslint-disable-line prefer-destructuring\r\n // need to give it an id\r\n $(backgroundWrapper).attr('id', `${this.elem.id}WidgetZone`);\r\n backgroundWrapper = `#${backgroundWrapper.id}`;\r\n break;\r\n case 'container':\r\n backgroundWrapper = `#${$webzoneWrapper[0].id}`;\r\n break;\r\n default:\r\n backgroundWrapper = `#${$webzoneWrapper[0].id}`;\r\n break;\r\n }\r\n\r\n const dataProperty = {\r\n videoURL: `${this.videoUrl}`,\r\n containment: `${backgroundWrapper}`,\r\n stopMovieOnBlur: false,\r\n autoPlay: true,\r\n mute: true,\r\n startAt: 0,\r\n loop: true,\r\n showControls: false,\r\n useOnMobile: this.useOnMobile,\r\n mobileFallbackImage: `${this.mobileFallbackImage}`,\r\n showYTLogo: false,\r\n realfullscreen: false,\r\n opacity: 1,\r\n };\r\n\r\n const videoElement = $(this.elem)[0];\r\n $(videoElement).data('property', dataProperty);\r\n $(this.elem).YTPlayer();\r\n }\r\n\r\n static init(container) {\r\n new BackgroundVideoController(container); // eslint-disable-line no-new\r\n }\r\n}\r\n\r\nwindow.BackgroundVideoController = BackgroundVideoController;\r\nexport default BackgroundVideoController;\r\n","import $ from 'jquery';\r\nimport lozad from 'C:\\\\Program Files (x86)\\\\Microsoft VS Code\\\\bin\\\\node_modules\\\\lozad';\r\nimport { isMobile, stripUrl } from './Utils';\r\n\r\nclass BackgroundController {\r\n constructor(elem) {\r\n this.elem = elem;\r\n this.target = elem.dataset.target;\r\n this.fullWidth = elem.dataset.full_width.toBoolean();\r\n this.fixBackground = elem.dataset.fix_background.toBoolean();\r\n this.useImageOnMobile = elem.dataset.use_image_on_mobile.toBoolean();\r\n this.imgUrl = elem.dataset.img;\r\n this.applyBackground();\r\n }\r\n\r\n applyBackground() {\r\n const bgImage = this.imgUrl;\r\n const webzoneWrapper = this.elem.closest('.webzone-wrapper');\r\n\r\n let backgroundWrapper = this.elem;\r\n switch (this.target) {\r\n case 'widget-zone':\r\n backgroundWrapper = this.elem.closest('.webzone-wrapper .row');\r\n break;\r\n case 'container':\r\n backgroundWrapper = webzoneWrapper;\r\n if (this.fullWidth) {\r\n $(webzoneWrapper).wrapInner(`
`);\r\n $(webzoneWrapper).removeClass();\r\n }\r\n break;\r\n case 'page':\r\n // Apply background to html and body\r\n backgroundWrapper = document.querySelector('body>form');\r\n break;\r\n default:\r\n // do nothing\r\n }\r\n\r\n const bgColorElement = this.elem.querySelector('span[data-color]');\r\n if (bgColorElement !== undefined) {\r\n const bgColorCode = bgColorElement.dataset.color;\r\n if (bgColorCode !== 'none') {\r\n backgroundWrapper.classList.add('bg-color-wrapper');\r\n backgroundWrapper.classList.add('bg');\r\n backgroundWrapper.classList.add(`bg-${bgColorCode}`);\r\n }\r\n }\r\n if (bgImage.length > 0 && (this.useImageOnMobile || !isMobile())) {\r\n backgroundWrapper.classList.add('bg-lozad');\r\n backgroundWrapper.classList.add('bg-image-wrapper');\r\n backgroundWrapper.setAttribute('data-fix-background', this.fixBackground);\r\n backgroundWrapper.setAttribute('data-url', this.imgUrl);\r\n backgroundWrapper.setAttribute('data-gradient-color', bgColorElement.dataset.gradientColor);\r\n backgroundWrapper.setAttribute('data-gradient-strength', bgColorElement.dataset.gradientStrength);\r\n\r\n const observer = lozad('.bg-lozad', {\r\n loaded(el) {\r\n const bgColorEl = el.querySelector('span[data-color]'); // need to get this again because of timing\r\n const { gradientColor } = el.dataset;\r\n const { gradientStrength } = el.dataset;\r\n let { url } = el.dataset;\r\n const { fixBackground } = el.dataset;\r\n\r\n if (isMobile()) {\r\n url = `${stripUrl(url)}?width=425`;\r\n }\r\n\r\n let bgCss = `url(\"${url}\") no-repeat center center / cover`;\r\n\r\n if (gradientColor && (gradientColor !== 'none') && gradientStrength && (gradientStrength !== 'none')) {\r\n const bgColor = $(bgColorEl).getHexBackgroundColor();\r\n const rgbaColor = `rgba(${parseInt(bgColor.substring(1, 3), 16)},${\r\n parseInt(bgColor.substring(3, 5), 16)},${\r\n parseInt(bgColor.substring(5, 7), 16)},${\r\n gradientStrength})`;\r\n bgCss = `linear-gradient(${rgbaColor}, ${rgbaColor}), ${bgCss}`;\r\n }\r\n else bgCss = `rgba(0, 0, 0, 0) ${bgCss}`;\r\n\r\n el.style.background = bgCss;\r\n if (fixBackground === 'true') {\r\n el.style.backgroundAttachment = 'fixed';\r\n }\r\n el.classList.add('loaded');\r\n },\r\n });\r\n observer.observe();\r\n }\r\n }\r\n\r\n static init(container) {\r\n new BackgroundController(container); // eslint-disable-line no-new\r\n }\r\n}\r\n\r\nwindow.BackgroundController = BackgroundController;\r\nexport default BackgroundController;\r\n","class RedirectController {\r\n static RedirectClient(url, delay) {\r\n setTimeout(() => {\r\n window.location.href = url;\r\n }, delay);\r\n }\r\n}\r\n\r\nwindow.RedirectController = RedirectController;\r\nexport default RedirectController;\r\n\r\n// #endregion\r\n","import $ from 'jquery';\r\n\r\nclass SlickSliderController {\r\n constructor(wrapper, controls, autoplay = true, autoplaySpeed, slidesToShowDesktop, slidesToShowTablet, slidesCount,\r\n slidesToScrollDesktop = slidesToShowDesktop, slidesToScrollTablet = slidesToShowTablet, infinite = true, rtl = false) {\r\n this.wrapper = wrapper;\r\n this.controls = controls;\r\n\r\n this.slidesCount = slidesCount;\r\n\r\n this.slidesToScrollDesktop = slidesToScrollDesktop;\r\n this.slidesToScrollTablet = slidesToScrollTablet;\r\n\r\n this.slidesToShowDesktop = slidesToShowDesktop;\r\n this.slidesToShowTablet = slidesToShowTablet;\r\n\r\n this.infinite = infinite;\r\n this.autoplay = autoplay;\r\n this.autoplaySpeed = autoplaySpeed;\r\n this.rtl = rtl;\r\n\r\n this.hideArrowsOnDesktop = false;\r\n this.hideArrowsOnTablet = false;\r\n this.hideArrowsOnPhone = false;\r\n\r\n this.prepareSlider();\r\n }\r\n\r\n setSliderArrowPosition() {\r\n if (this.hideArrowsOnDesktop) {\r\n $(this.controls).addClass('hidden-lg');\r\n }\r\n if (this.hideArrowsOnTablet) {\r\n $(this.controls).addClass('hidden-sm');\r\n }\r\n if (this.hideArrowsOnPhone) {\r\n $(this.controls).addClass('hidden-xs');\r\n }\r\n if (!(this.hideArrowsOnDesktop && this.hideArrowsOnTablet && this.hideArrowsOnPhone)) {\r\n const sliderTrackHeight = $(this.wrapper).find('.slick-track').first().height();\r\n const arrowHeight = $(this.controls).find('.prev').first().height();\r\n const captions = $(this.wrapper).find('.slick-track figcaption');\r\n if (captions.length) {\r\n let capHeight = 0;\r\n $.each(captions, (i, v) => {\r\n if (capHeight < v.clientHeight) capHeight = v.clientHeight;\r\n });\r\n $(this.controls).find('prev', 'next').attr('style', `top:-${capHeight}px !important;`);\r\n }\r\n else {\r\n const midPoint = `${(sliderTrackHeight / 2) - (arrowHeight / 2)}px`;\r\n $(this.controls).css('top', midPoint);\r\n }\r\n }\r\n }\r\n\r\n /* eslint no-param-reassign: [\"error\", { \"props\": false }] */\r\n prepareSlider() {\r\n this.hideArrowsOnDesktop = this.slidesCount <= this.slidesToShowDesktop;\r\n this.hideArrowsOnTablet = this.slidesCount <= this.slidesToShowTablet;\r\n this.hideArrowsOnPhone = this.slidesCount <= 1;\r\n\r\n $(this.wrapper).slick({\r\n autoplay: this.autoplay,\r\n autoplaySpeed: this.autoplaySpeed,\r\n dots: true,\r\n appendDots: this.controls,\r\n pauseOnHover: true,\r\n pauseOnDotsHover: true,\r\n slide: '',\r\n prevArrow: this.controls.children[0],\r\n nextArrow: this.controls.children[1],\r\n slidesToShow: this.slidesToShowDesktop,\r\n slidesToScroll: this.slidesToScrollDesktop,\r\n infinite: this.infinite,\r\n rtl: this.rtl,\r\n adaptiveHeight: false,\r\n responsive: [\r\n {\r\n breakpoint: 1200,\r\n settings: {\r\n slidesToShow: this.slidesToShowTablet,\r\n slidesToScroll: this.slidesToScrollTablet,\r\n },\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n },\r\n },\r\n ],\r\n });\r\n $(`#${this.controls.id} .next`).before($(`#${this.controls.id} .slick-dots`));\r\n this.setSliderArrowPosition();\r\n }\r\n\r\n static init(slickWrapper, slickControls, autoplay, autoplaySpeed, slidesToShowDesktop, slidesToShowTablet, slidesCount,\r\n slidesToScrollDesktop, slidesToScrollTablet, infinite, rtl) {\r\n new SlickSliderController(slickWrapper, slickControls, autoplay, autoplaySpeed, slidesToShowDesktop, slidesToShowTablet, slidesCount,\r\n slidesToScrollDesktop, slidesToScrollTablet, infinite, rtl); // eslint-disable-line no-new\r\n }\r\n}\r\n\r\nwindow.SlickSliderController = SlickSliderController;\r\nexport default SlickSliderController;\r\n","/* eslint-disable */\r\n\r\n/* Youtube Api has to be global */\r\nwindow.player = '';\r\nwindow.YoutubeClientID = '';\r\nwindow.muted = true;\r\n\r\nwindow.onYouTubeIframeAPIReady = function () {\r\n if (YoutubeClientID !== null && YoutubeClientID !== '') {\r\n player = new YT.Player(YoutubeClientID, {\r\n events: {\r\n onReady: onPlayerReady,\r\n onStateChange: onPlayerStateChange,\r\n },\r\n });\r\n }\r\n};\r\nwindow.onPlayerReady = function (event) {\r\n if (muted) event.target.mute();\r\n event.target.playVideo();\r\n};\r\nwindow.onPlayerStateChange = function (event) {\r\n // function(event.data){};\r\n};\r\n\r\nwindow.InitYoutubeAutoplayVideo = function (containerId, muted) {\r\n window.muted = muted;\r\n YoutubeClientID = containerId;\r\n const tag = document.createElement('script');\r\n tag.id = `APIScriptFor_${YoutubeClientID}`;\r\n tag.src = 'https://www.youtube.com/iframe_api';\r\n const firstScriptTag = document.getElementsByTagName('script')[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n};\r\n","import $ from 'jquery';\r\nimport lozad from 'C:\\\\Program Files (x86)\\\\Microsoft VS Code\\\\bin\\\\node_modules\\\\lozad';\r\nimport LinkController from './LinkController';\r\nimport ImageCreditsController from './ImageCreditsController';\r\nimport CookiesController from './CookiesController';\r\n\r\nclass LazyLoadingController {\r\n constructor(scrollingContent, topN, count, path, nestingLevel, whereStatement, \r\n orderBy, classNames, textBackgroundColor, totalPages, paramName, btnLoadMore,\r\n restorePageState) {\r\n this.lastScroll = 0;\r\n this.totalPages = totalPages; // provided from the back end PagerControl.PageCount\r\n this.currentPage = 0;\r\n this.url = ''; // url of the page including any params\r\n this.paramName = paramName; // provided from the web part Query String Key\r\n this.nextDataPage = 0; // replaced when loading more\r\n this.prevDataPage = 0; // replaced when loading more\r\n this.nextDataCache = '';\r\n this.isLoading = false; // simple lock to prevent loading when loading\r\n this.ScrollingContentID = `#${scrollingContent.id}`;\r\n this.topN = topN;\r\n this.count = count;\r\n this.path = path;\r\n this.nestingLevel = -1;\r\n this.whereStatement = whereStatement;\r\n this.orderBy = orderBy;\r\n this.classNames = classNames;\r\n this.textBackgroundColor = textBackgroundColor;\r\n this.btnLoadMore = btnLoadMore;\r\n this.restorePageState = restorePageState;\r\n\r\n $(scrollingContent).find('.PagerControl').remove();\r\n this.InitLazyLoad();\r\n }\r\n\r\n storePageState(page) {\r\n CookiesController.createCookie(\"SOS_\" + window.location.pathname + this.ScrollingContentID, page, -1);\r\n }\r\n\r\n getLastPage() {\r\n const page = CookiesController.readCookie(\"SOS_\" + window.location.pathname + this.ScrollingContentID);\r\n if (typeof page === \"undefined\" || !page)\r\n return 0;\r\n const iPage = parseInt(page);\r\n if (isNaN(iPage))\r\n return 0;\r\n return iPage;\r\n }\r\n\r\n loadPages(firstPage, lastPage) {\r\n let currPage = firstPage;\r\n $(`${this.ScrollingContentID} div.scrollingcontentblock:last`).after($(this.nextDataCache).hide().fadeIn());\r\n LinkController.registerClickEventForElement(`${this.ScrollingContentID} div.scrollingcontentblock:last`);\r\n if (currPage <= lastPage) {\r\n const that = this;\r\n this.loadPage(currPage, function() {\r\n currPage += 1;\r\n if (currPage <= lastPage) {\r\n that.loadPages(currPage, lastPage);\r\n }\r\n })\r\n }\r\n }\r\n\r\n loadPage(page, callback) {\r\n let that = this;\r\n LatestNews.GetLatestNews(this.topN, page, this.count, this.path, this.nestingLevel, // eslint-disable-line no-undef\r\n this.whereStatement, this.orderBy, this.classNames, this.textBackgroundColor, (data) => {\r\n // parse & append the data\r\n that.nextDataCache = LazyLoadingController.parseHTML(data, page + 1);\r\n // End loading\r\n that.isLoading = false;\r\n that.currentPage = page;\r\n const observer = lozad(); // lazy loads elements with default selector as '.lozad'\r\n observer.observe();\r\n if (that.currentPage >= that.totalPages) {\r\n $(that.btnLoadMore).hide();\r\n }\r\n ImageCreditsController.init();\r\n callback();\r\n }, (data) => {\r\n console.log(`GetLatestNews error: ${JSON.stringify(data)}`);\r\n callback();\r\n });\r\n }\r\n\r\n getTeasers() {\r\n LatestNews.GetLatestNews(this.topN, this.nextDataPage, this.count, this.path, this.nestingLevel, // eslint-disable-line no-undef\r\n this.whereStatement, this.orderBy, this.classNames, this.textBackgroundColor, (data) => {\r\n // parse & append the data\r\n this.nextDataCache = LazyLoadingController.parseHTML(data, this.nextDataPage);\r\n // End loading\r\n this.isLoading = false;\r\n this.currentPage += 1;\r\n const observer = lozad(); // lazy loads elements with default selector as '.lozad'\r\n observer.observe();\r\n if (this.currentPage >= this.totalPages) {\r\n $(this.btnLoadMore).hide();\r\n }\r\n ImageCreditsController.init();\r\n }, (data) => {\r\n console.log(`GetLatestNews error: ${JSON.stringify(data)}`);\r\n });\r\n }\r\n\r\n InitLazyLoad() {\r\n $(window).scroll(() => {\r\n this.scrollPos = $(window).scrollTop();\r\n });\r\n\r\n this.url = window.location.href;\r\n\r\n if (this.nextDataPage <= this.totalPages) {\r\n // Load next page into cache\r\n this.isLoading = true;\r\n this.nextDataPage = this.currentPage + 1;\r\n if (this.restorePageState) { \r\n const lastPage = this.getLastPage();\r\n if (lastPage > 1)\r\n this.loadPages(1, lastPage);\r\n }\r\n this.getTeasers();\r\n }\r\n else {\r\n $(this.btnLoadMore).hide();\r\n }\r\n\r\n // lazy button click to load more\r\n $(this.btnLoadMore).click(() => {\r\n if (!this.isLoading) {\r\n // append the cached next page\r\n $(`${this.ScrollingContentID} div.scrollingcontentblock:last`).after($(this.nextDataCache).hide().fadeIn());\r\n // parse links\r\n LinkController.registerClickEventForElement(`${this.ScrollingContentID} div.scrollingcontentblock:last`);\r\n // then load the next cache\r\n this.nextDataPage = this.currentPage + 1;\r\n if (this.nextDataPage <= this.totalPages) {\r\n // Load next page into cache\r\n this.isLoading = true;\r\n this.getTeasers();\r\n this.storePageState(this.nextDataPage);\r\n }\r\n else {\r\n $(this.btnLoadMore).hide();\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Since the whole page is returned - we just need the new page data\r\n static parseHTML(data, pg) {\r\n let contents = data;\r\n // update the page num\r\n contents = $(`${contents}.scrollingcontentblock`).attr('data-page', pg);\r\n return contents;\r\n }\r\n\r\n static mostlyVisible(element) {\r\n // if ca 25% of element is visible\r\n const scrollPos = $(window).scrollTop();\r\n const windowHeight = $(window).height();\r\n const elTop = $(element).offset().top;\r\n const elHeight = $(element).height();\r\n const elBottom = elTop + elHeight;\r\n return ((elBottom - elHeight * 0.25 > scrollPos)\r\n && (elTop < (scrollPos + 0.5 * windowHeight)));\r\n }\r\n\r\n static init(scrollingContentID, topN, count, path, nestingLevel, whereStatement, \r\n orderBy, classNames, textBackgroundColor, totalPages, paramName, btnLoadMore,\r\n restorePageState = false) {\r\n new LazyLoadingController(scrollingContentID, topN, count, path, nestingLevel, \r\n whereStatement, orderBy, classNames, textBackgroundColor, totalPages, paramName, \r\n btnLoadMore, restorePageState); // eslint-disable-line no-new\r\n }\r\n}\r\n\r\nwindow.LazyLoadingController = LazyLoadingController;\r\nexport default LazyLoadingController;\r\n","import { isMsEdge } from '../Utils';\r\n\r\n/* eslint-disable */\r\n\r\n(function (document, history, location) {\r\n const HISTORY_SUPPORT = !!(history && history.pushState);\r\n\r\n const anchorScrolls = {\r\n ANCHOR_REGEX: /^#[^ ]+$/,\r\n OFFSET_HEIGHT_PX: Globals.isMobile ? 100 : 240,\r\n\r\n /**\r\n * Establish events, and fix initial scroll position if a hash is provided.\r\n */\r\n init() {\r\n this.scrollToCurrent();\r\n $(window).on('hashchange', $.proxy(this, 'scrollToCurrent'));\r\n $('body').on('click', 'a', $.proxy(this, 'delegateAnchors'));\r\n },\r\n\r\n /**\r\n * Return the offset amount to deduct from the normal scroll position.\r\n * Modify as appropriate to allow for dynamic calculations\r\n */\r\n getFixedOffset() {\r\n return this.OFFSET_HEIGHT_PX;\r\n },\r\n\r\n /**\r\n * If the provided href is an anchor which resolves to an element on the\r\n * page, scroll to it.\r\n * @param {String} href\r\n * @return {Boolean} - Was the href an anchor.\r\n */\r\n scrollIfAnchor(href, pushToHistory) {\r\n let match; let\r\n anchorOffset;\r\n\r\n if (!this.ANCHOR_REGEX.test(href)) {\r\n return false;\r\n }\r\n\r\n match = document.getElementById(href.slice(1));\r\n\r\n if (match) {\r\n if (match.className.includes('tab-pane')) {\r\n return false;\r\n }\r\n anchorOffset = $(match).offset().top - this.getFixedOffset();\r\n\r\n if(isMsEdge()) {\r\n $(match).scrollIntoView();\r\n }\r\n else{\r\n $('html, body').animate({ scrollTop: anchorOffset });\r\n }\r\n\r\n // Add the state to history as-per normal anchor links\r\n if (HISTORY_SUPPORT && pushToHistory) {\r\n history.pushState({}, document.title, location.pathname + href);\r\n }\r\n }\r\n\r\n return !!match;\r\n },\r\n\r\n /**\r\n * Attempt to scroll to the current location's hash.\r\n */\r\n scrollToCurrent(e) {\r\n if (this.scrollIfAnchor(window.location.hash) && e) {\r\n e.preventDefault();\r\n }\r\n },\r\n\r\n /**\r\n * If the click event's target was an anchor, fix the scroll position.\r\n */\r\n delegateAnchors(e) {\r\n const elem = e.target;\r\n\r\n if (this.scrollIfAnchor(elem.getAttribute('href'), true)) {\r\n e.preventDefault();\r\n }\r\n },\r\n };\r\n\r\n $(document).ready($.proxy(anchorScrolls, 'init'));\r\n}(window.document, window.history, window.location));\r\n","class ProgressBarController {\r\n static CreateAnimatedCircleProgressBar(element, max, achieved, duration, color, easing, counterFontSize, counterPrefix, counterSuffix) {\r\n const bar = new ProgressBar.Circle(`#${element.id}`, { // eslint-disable-line no-undef\r\n color,\r\n // This has to be the same size as the maximum width to\r\n // prevent clipping\r\n strokeWidth: 4,\r\n trailWidth: 1,\r\n easing,\r\n duration,\r\n text: {\r\n style: {\r\n position: 'absolute',\r\n left: '50%',\r\n top: '50%',\r\n padding: 0,\r\n margin: 0,\r\n transform: 'translate(-50%, -50%)',\r\n width: '100%',\r\n 'text-align': 'center',\r\n },\r\n autoStyleContainer: false,\r\n },\r\n from: { color, width: 1 },\r\n to: { color, width: 4 },\r\n // Set default step function for all animate calls\r\n step(state, circle) {\r\n circle.path.setAttribute('stroke', state.color);\r\n circle.path.setAttribute('stroke-width', state.width);\r\n\r\n const value = Math.round(circle.value() * max);\r\n if (value === 0) {\r\n circle.setText('');\r\n }\r\n else {\r\n circle.setText(counterPrefix + value + counterSuffix);\r\n }\r\n },\r\n });\r\n bar.text.style.fontSize = `${counterFontSize}px`;\r\n return bar;\r\n }\r\n\r\n static CreateAnimatedSemiCircleProgressBar(element, max, achieved, duration, color, easing, counterFontSize, counterPrefix, counterSuffix) {\r\n const bar = new ProgressBar.SemiCircle(`#${element.id}`, { // eslint-disable-line no-undef\r\n strokeWidth: 4,\r\n color,\r\n // trailColor: color,\r\n trailWidth: 1,\r\n easing,\r\n duration,\r\n svgStyle: null,\r\n text: {\r\n style: {\r\n position: 'absolute',\r\n left: '50%',\r\n top: 'auto',\r\n padding: 0,\r\n margin: 0,\r\n transform: 'translate(-50%, 50%)',\r\n width: '100%',\r\n 'text-align': 'center',\r\n },\r\n value: '',\r\n alignToBottom: false,\r\n },\r\n from: { color },\r\n to: { color },\r\n // Set default step function for all animate calls\r\n step(state, progressBar) {\r\n const tempProgressBar = progressBar;\r\n tempProgressBar.path.setAttribute('stroke', state.color);\r\n const value = Math.round(tempProgressBar.value() * max);\r\n if (value === 0) {\r\n tempProgressBar.setText('');\r\n }\r\n else {\r\n tempProgressBar.setText(counterPrefix + value + counterSuffix);\r\n }\r\n tempProgressBar.text.style.color = state.color;\r\n },\r\n });\r\n bar.text.style.fontSize = `${counterFontSize}px`;\r\n return bar;\r\n }\r\n\r\n static CreateAnimatedLineProgressBar(element, max, achieved, duration, color, easing, counterFontSize, counterPrefix, counterSuffix) {\r\n const bar = new ProgressBar.Line(`#${element.id}`, { // eslint-disable-line no-undef\r\n strokeWidth: 4,\r\n color,\r\n trailColor: color,\r\n trailWidth: 1,\r\n easing,\r\n duration,\r\n svgStyle: { width: '100%', height: '100%' },\r\n text: {\r\n style: {\r\n position: 'absolute',\r\n right: '0',\r\n top: '30px',\r\n padding: 0,\r\n margin: 0,\r\n transform: null,\r\n },\r\n autoStyleContainer: false,\r\n },\r\n from: { color },\r\n to: { color },\r\n // Set default step function for all animate calls\r\n step(state, progressBar) {\r\n const tempProgressBar = progressBar;\r\n tempProgressBar.path.setAttribute('stroke', state.color);\r\n const value = Math.round(tempProgressBar.value() * max);\r\n if (value === 0) {\r\n tempProgressBar.setText('');\r\n }\r\n else {\r\n tempProgressBar.setText(counterPrefix + value + counterSuffix);\r\n }\r\n tempProgressBar.text.style.color = state.color;\r\n },\r\n });\r\n bar.text.style.fontSize = `${counterFontSize}px`;\r\n return bar;\r\n }\r\n}\r\n\r\nwindow.ProgressBarController = ProgressBarController;\r\nexport default ProgressBarController;\r\n","import $ from 'jquery';\r\nimport lozad from 'C:\\\\Program Files (x86)\\\\Microsoft VS Code\\\\bin\\\\node_modules\\\\lozad';\r\n\r\n\r\n$(() => {\r\n // lazy loads elements with default selector as '.lozad'\r\n const observer = lozad('.lozad', {\r\n loaded(el) {\r\n el.classList.add('loaded');\r\n if ($(el).closest('.slick-track').length) {\r\n $(el).on('load', () => {\r\n const slideHeight = $(el).closest('.has-link').height();\r\n const trackHeight = $(el).closest('.slick-track').height();\r\n if (slideHeight > trackHeight) {\r\n $(el).closest('.slick-track').height(slideHeight);\r\n }\r\n });\r\n }\r\n },\r\n });\r\n observer.observe();\r\n});\r\n","import $ from 'jquery';\r\n\r\nclass ClipboardController {\r\n static fallbackCopyTextToClipboard(button, inputObject, successText) {\r\n const inputArea = document.getElementById(inputObject);\r\n inputArea.focus();\r\n inputArea.select();\r\n\r\n try {\r\n document.execCommand('copy');\r\n $(button).text(successText);\r\n }\r\n catch (err) {\r\n console.error('Fallback: Oops, unable to copy', err);\r\n }\r\n }\r\n\r\n // async method\r\n static copyTextToClipboard(button, inputObject, successText) {\r\n if (!navigator.clipboard) {\r\n ClipboardController.fallbackCopyTextToClipboard(button, inputObject, successText);\r\n return;\r\n }\r\n\r\n const text = $(`#${inputObject}`).val();\r\n navigator.clipboard.writeText(text).then(() => {\r\n $(button).text(successText);\r\n }, (err) => {\r\n console.error('Async: Could not copy text: ', err);\r\n });\r\n }\r\n}\r\n\r\nwindow.ClipboardController = ClipboardController;\r\nexport default ClipboardController;\r\n","import $ from 'jquery';\r\n\r\nclass CountdownController {\r\n static initCountdown(containerID, countDownTo, timeZone, labelD, labelH, labelM, labelS, bgColor) {\r\n let timezone = timeZone;\r\n const $container = $(`#${containerID}`);\r\n if (timezone !== '') {\r\n timezone = timezone.slice(1, -1).replace(/ /g, '');\r\n }\r\n else {\r\n timezone = 'UTC+00:00';\r\n }\r\n\r\n const parts = timezone.split(':');\r\n let offset = parseInt(parts[0].slice(-2), 10);\r\n if (parts[0].indexOf('-') > -1) {\r\n offset *= -1;\r\n }\r\n\r\n let countDownDate = new Date(`${countDownTo}`);\r\n countDownDate.setMinutes(countDownDate.getMinutes() - countDownDate.getTimezoneOffset() - offset * 60);\r\n $container.find('#sc_dl').html(labelD);\r\n $container.find('#sc_hl').html(labelH);\r\n $container.find('#sc_ml').html(labelM);\r\n\r\n if (bgColor !== '0') {\r\n $container.find('#sc_d').addClass(`bg-${bgColor}`);\r\n $container.find('#sc_h').addClass(`bg-${bgColor}`);\r\n $container.find('#sc_m').addClass(`bg-${bgColor}`);\r\n }\r\n\r\n $container.find('#sc_sl').html(labelS);\r\n\r\n // init for real width\r\n $container.find('#sc_d').html('00');\r\n $container.find('#sc_h').html('00');\r\n $container.find('#sc_m').html('00');\r\n $container.find('#sc_s').html('00');\r\n\r\n // get width of parent for resizing\r\n const parentWidth = $container.width();\r\n if (parentWidth < 600 && parentWidth > 500) {\r\n $container.addClass('sos-cd-sm');\r\n }\r\n else if (parentWidth < 500) {\r\n $container.addClass('sos-cd-xs');\r\n }\r\n\r\n // show countdown\r\n $container.css('display', 'table');\r\n\r\n countDownDate = countDownDate.getTime();\r\n\r\n function hasDST(dateObj) {\r\n const jan = new Date(dateObj.getFullYear(), 0, 1);\r\n const jul = new Date(dateObj.getFullYear(), 6, 1);\r\n const max = Math.max(Math.abs(jan.getTimezoneOffset()), Math.abs(jul.getTimezoneOffset()));\r\n return (Math.abs(dateObj.getTimezoneOffset()) < max);\r\n }\r\n\r\n const x = setInterval(() => {\r\n let now = new Date();\r\n let off = 0;\r\n if (hasDST(now)) {\r\n off = (now.getTimezoneOffset() + 60) * 60 * 1000;\r\n }\r\n else {\r\n off = now.getTimezoneOffset() * 60 * 1000;\r\n }\r\n\r\n now = now.getTime() - off;\r\n\r\n const distance = countDownDate - now;\r\n\r\n const days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n const seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n\r\n if (days < 10) {\r\n $container.find('#sc_d').html((`0${days}`).slice(-2));\r\n }\r\n else {\r\n $container.find('#sc_d').html(days);\r\n }\r\n $container.find('#sc_h').html((`0${hours}`).slice(-2));\r\n $container.find('#sc_m').html((`0${minutes}`).slice(-2));\r\n $container.find('#sc_s').html((`0${seconds}`).slice(-2));\r\n\r\n if (distance < 0) {\r\n clearInterval(x);\r\n $container.find('#sc_d').html('00');\r\n $container.find('#sc_h').html('00');\r\n $container.find('#sc_m').html('00');\r\n $container.find('#sc_s').html('00');\r\n }\r\n }, 1000);\r\n }\r\n}\r\n\r\nwindow.CountdownController = CountdownController;\r\nexport default CountdownController;\r\n","import $ from 'jquery';\r\n\r\nclass SitemapController {\r\n constructor(elem) {\r\n this.sitemapID = elem.id;\r\n this.plusIcon = '';\r\n this.initSitemapAsAccordion();\r\n }\r\n\r\n initSitemapAsAccordion() {\r\n $(`#${this.sitemapID} ul li`).each(function () {\r\n if ($(this).find('ul').length > 0) {\r\n $(this).addClass('hasSubnav');\r\n }\r\n });\r\n $(`#${this.sitemapID} ul li.hasSubnav > a`).append(this.plusIcon);\r\n $(`#${this.sitemapID} ul li.hasSubnav >a >i`).click(function (e) {\r\n e.preventDefault();\r\n $(this).closest('.hasSubnav').toggleClass('active').find('>ul')\r\n .slideToggle(600);\r\n $(this).closest('.hasSubnav i').toggleClass('fa-minus');\r\n $(this).closest('.hasSubnav i').toggleClass('fa-plus');\r\n });\r\n }\r\n\r\n static init(sitemapElem) {\r\n new SitemapController(sitemapElem); // eslint-disable-line no-new\r\n }\r\n}\r\n\r\nwindow.SitemapController = SitemapController;\r\nexport default SitemapController;\r\n","import $ from 'jquery';\r\n\r\nexport default class AccordionController {\r\n constructor() {\r\n AccordionController.assignGroups();\r\n\r\n // Append modal dialogs from forms engine to body element\r\n $(\"[id$='SOS_Form_Widget_Container'] .modal.fade\").appendTo('body');\r\n }\r\n\r\n static assignGroups() {\r\n const regex = /panel-member-([\\S]+)/;\r\n const $groups = $('[class*=\"panel-member\"]');\r\n $.each($groups, (index, value) => {\r\n const className = $(value).attr('class');\r\n const groupName = className.match(regex);\r\n\r\n const $toggles = $(value).find('.panel-toggle');\r\n $.each($toggles, (index2, value2) => {\r\n const $toggle = $(value2);\r\n if (groupName != null && groupName.length > 0) {\r\n $toggle.data('group', groupName[1]);\r\n }\r\n $toggle.on('click', function () {\r\n const target = $(this).data('target');\r\n if (typeof target === 'undefined') return;\r\n\r\n const $target = $(target);\r\n if (!$target.hasClass('in')) {\r\n const group = $(this).data('group');\r\n if (typeof group !== 'undefined') {\r\n const $currentin = $(`.panel-member-${group} .panel-collapse.collapse.in`);\r\n const $currentinToggles = $(`.panel-member-${group} .panel-toggle:not(.collapsed)`);\r\n $currentinToggles.addClass('collapsed');\r\n $currentin.slideUp('fast', () => {\r\n $currentin.removeClass('in');\r\n });\r\n }\r\n $toggle.removeClass('collapsed');\r\n $target.slideDown('fast', () => {\r\n $target.addClass('in');\r\n const $window = $(window);\r\n const bottom = ($target.offset().top - $window.scrollTop()) + $target.innerHeight();\r\n // Scroll to the element when it would exceed the viewport\r\n if (bottom > $window.height()) {\r\n $('html,body').animate({\r\n scrollTop: $(value2).offset().top - 100,\r\n }, 500);\r\n }\r\n });\r\n }\r\n else {\r\n $toggle.addClass('collapsed');\r\n $target.slideUp('fast', () => {\r\n $target.removeClass('in');\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n static init() {\r\n $(document).ready(() => {\r\n new AccordionController(); // eslint-disable-line no-new\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport { isIE9 } from './Utils';\r\n\r\nexport default class WaypointContoller {\r\n constructor(elem) {\r\n this.ANIMATION_CLASS = isIE9() ? 'fadeInUpNoAnimation' : 'fadeInUp';\r\n this.OFFSET = '90%';\r\n this.doAnimations(elem, this.ANIMATION_CLASS);\r\n }\r\n\r\n doAnimations(elem, animationClass) {\r\n new Waypoint({ // eslint-disable-line no-undef\r\n element: elem,\r\n handler() {\r\n $(this.element).toggleClass('animated');\r\n $(this.element).toggleClass(animationClass);\r\n this.destroy();\r\n },\r\n offset: this.OFFSET,\r\n group: 'waypoint-group',\r\n });\r\n }\r\n\r\n\r\n static init() {\r\n $(document).ready(() => {\r\n $('main .webzone-wrapper:not(.no-csstransitions) > div').each((index, elem) => {\r\n new WaypointContoller(elem); // eslint-disable-line no-new\r\n });\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\n\r\nrequire('C:\\\\Program Files (x86)\\\\Microsoft VS Code\\\\bin\\\\node_modules\\\\bootstrap\\\\js\\\\tooltip.js');\r\nrequire('C:\\\\Program Files (x86)\\\\Microsoft VS Code\\\\bin\\\\node_modules\\\\bootstrap\\\\js\\\\popover.js');\r\n\r\nexport default class TooltipController {\r\n static init() {\r\n $(document).ready(() => {\r\n $('[data-toggle=\\'tooltip\\']').tooltip();\r\n $('[data-toggle=\\'popover\\']').popover();\r\n if ($('[rel=tooltip]').length) {\r\n $('[rel=tooltip]').tooltip();\r\n }\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\n\r\nexport default class IframesController {\r\n static adjustIframes() {\r\n $('iframe:not(.no-resize)').each(function () {\r\n const $this = $(this);\r\n let proportion = $this.data('proportion');\r\n const w = parseInt($this.attr('width'), 10);\r\n const parentW = parseInt($this.parent().width(), 10);\r\n if (w < 10) return;\r\n if (!proportion || isNaN(proportion)) {\r\n proportion = $this.attr('height') / w;\r\n $this.data('proportion', proportion);\r\n }\r\n if (parentW !== w) {\r\n $this.css(`{width: ${parentW}px, height: ${Math.round(parentW * proportion)}px}`);\r\n }\r\n });\r\n }\r\n\r\n static init() {\r\n $(window).on('resize load', () => {\r\n IframesController.adjustIframes();\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\n\r\nimport { Globals } from './Utils';\r\n\r\nrequire('C:\\\\Program Files (x86)\\\\Microsoft VS Code\\\\bin\\\\node_modules\\\\bootstrap\\\\js\\\\dropdown.js');\r\n\r\nrequire('./plugins/DropDownOnHover.js');\r\nrequire('./plugins/StickyNavigation.js');\r\n\r\nexport default class NavigationController {\r\n constructor() {\r\n this.STICKY_NAV_SELECTOR = '.sos-main-nav .navbar-collapse';\r\n this.STICKY_NAV_SELECTOR_MOBILE = '.mobile-nav';\r\n this.STICKY_NAV_OFFSET = -10;\r\n\r\n this.DROPDOWN_HOVER_DELAY = 0;\r\n\r\n this.addStickyNav();\r\n this.initDropdown();\r\n NavigationController.initSearchFunction();\r\n NavigationController.assignColumns();\r\n }\r\n\r\n addStickyNav() {\r\n if (!Globals.IsMobile) {\r\n const stickyNav = $(this.STICKY_NAV_SELECTOR);\r\n if (stickyNav.length > 0) {\r\n new window.Waypoint.Sticky({ // eslint-disable-line no-undef\r\n element: stickyNav,\r\n handler() {\r\n },\r\n offset: this.STICKY_NAV_OFFSET,\r\n });\r\n }\r\n }\r\n else {\r\n const stickyNavMobile = $(this.STICKY_NAV_SELECTOR_MOBILE);\r\n let lastKnownScrollPosition = 0;\r\n let previousScrollPosition = 0;\r\n let ticking = false;\r\n $(window).scroll(() => {\r\n lastKnownScrollPosition = window.scrollY;\r\n if (!ticking) {\r\n window.requestAnimationFrame(() => {\r\n if (lastKnownScrollPosition <= 600 || lastKnownScrollPosition < previousScrollPosition) {\r\n stickyNavMobile.slideDown();\r\n }\r\n else {\r\n stickyNavMobile.slideUp();\r\n }\r\n ticking = false;\r\n previousScrollPosition = lastKnownScrollPosition;\r\n });\r\n ticking = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n initDropdown() {\r\n $('.js-activated').dropdownHover({\r\n instantlyCloseOthers: false,\r\n delay: this.DROPDOWN_HOVER_DELAY,\r\n }).dropdown();\r\n\r\n $('.mobile-nav .navbar-header .navbar-toggle').click((e) => {\r\n $(e.currentTarget).toggleClass('open');\r\n });\r\n }\r\n\r\n static initSearchFunction() {\r\n $('.search input').keypress((e) => { // eslint-disable-line consistent-return\r\n if (e.which === 13 || e.which === 10) {\r\n const searchQuery = e.currentTarget.value;\r\n NavigationController.searchSubmit(searchQuery);\r\n return false;\r\n }\r\n });\r\n\r\n $('.search .btn').mousedown((e) => {\r\n const searchQuery = $(e.currentTarget).siblings('input').val();\r\n NavigationController.searchSubmit(searchQuery);\r\n return false;\r\n });\r\n }\r\n\r\n static assignColumns() {\r\n if (!Globals.IsMobile) {\r\n $('.dropdown-menu.sos-main-nav-dropdown-menu').each((index, elem) => {\r\n let cols = $(elem).find('.sos-main-nav-content.row > div').length;\r\n cols = Math.floor(12 / cols);\r\n $(elem).find('.sos-main-nav-content.row .inner').addClass(`col-sm-${cols}`);\r\n });\r\n }\r\n }\r\n\r\n static searchSubmit(searchQuery) {\r\n const searchTeaserParams = `?q=${searchQuery}`;\r\n window.location.href = `/searchresults${searchTeaserParams}`;\r\n return false;\r\n }\r\n\r\n static init() {\r\n $(document).ready(() => {\r\n new NavigationController(); // eslint-disable-line no-new\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\n\r\nclass YoutubeController {\r\n constructor(index, elem) {\r\n this.index = index;\r\n this.elem = elem;\r\n\r\n // this.player = null;\r\n // this.youTubeClientId = null;\r\n\r\n this.initYoutubeEmbed();\r\n }\r\n\r\n initYoutubeEmbed() {\r\n let embedCode = this.elem.parentElement.dataset.embed;\r\n const thumbnail = (this.elem.className.search('4by3') > -1) ? '/sddefault.jpg' : '/maxresdefault.jpg';\r\n\r\n // strip code of query params\r\n const queryIndex = embedCode.indexOf('?');\r\n if (queryIndex > 0) embedCode = embedCode.substring(0, embedCode.indexOf('?'));\r\n\r\n const source = `https://img.youtube.com/vi/${embedCode}${thumbnail}`;\r\n\r\n const image = new Image();\r\n image.src = source;\r\n const loadElement = this.elem;\r\n image.addEventListener('load', (function () {\r\n loadElement.appendChild(image);\r\n }(this.index)));\r\n\r\n this.elem.addEventListener('click', function () {\r\n const iframe = document.createElement('iframe');\r\n\r\n iframe.setAttribute('frameborder', '0');\r\n iframe.setAttribute('allowfullscreen', '');\r\n iframe.setAttribute('src', `https://www.youtube.com/embed/${this.parentElement.dataset.embed}?rel=0&showinfo=0&autoplay=1&enablejsapi=1`);\r\n\r\n this.innerHTML = '';\r\n this.appendChild(iframe);\r\n });\r\n }\r\n\r\n\r\n static init() {\r\n $(document).ready(() => {\r\n $('.youtube').each((index, elem) => {\r\n new YoutubeController(index, elem); // eslint-disable-line no-new\r\n });\r\n });\r\n }\r\n}\r\n\r\nwindow.YoutubeController = YoutubeController;\r\nexport default YoutubeController;\r\n","import $ from 'jquery';\r\n\r\nexport default class OverlayController {\r\n constructor() {\r\n this.MODALS_SELECTOR = '.modal.fade';\r\n this.TRIGGER_SELECTOR = '.sos-overlay-trigger';\r\n this.NBA_SELECTOR = '.navbar .sos-nba';\r\n this.NBA_SELECTOR_FLOATING = '#footer-nba-content';\r\n\r\n this.initNBAContainers();\r\n this.createModalsFromNbas();\r\n this.registerClickEvents();\r\n this.positionModals();\r\n }\r\n\r\n initNBAContainers() {\r\n $.each(nbaConfig.buttons, (index, value) => { // eslint-disable-line no-undef\r\n if (value.position === 'Footer') { // is element postioned inside footer container\r\n if (!$(this.NBA_SELECTOR_FLOATING).length) { // footer container not already exists\r\n $('body').append('
'); // append footer container to body\r\n }\r\n }\r\n });\r\n }\r\n\r\n createModalsFromNbas() {\r\n $.each(nbaConfig.buttons, (index, value) => { // eslint-disable-line no-undef\r\n let nbaButton;\r\n if (value.overlay) {\r\n nbaButton = `
`;\r\n if (typeof value.icon !== 'undefined') nbaButton += ``;\r\n nbaButton += `${value.text}
`;\r\n }\r\n else {\r\n nbaButton = ``;\r\n if (typeof value.icon !== 'undefined') nbaButton += ``;\r\n nbaButton += `${value.text}`;\r\n }\r\n\r\n if (value.position === 'Footer') {\r\n $(this.NBA_SELECTOR_FLOATING).append(nbaButton);\r\n }\r\n else {\r\n $(this.NBA_SELECTOR).append(nbaButton);\r\n }\r\n });\r\n }\r\n\r\n registerClickEvents() {\r\n $(this.TRIGGER_SELECTOR).click((event) => {\r\n event.preventDefault();\r\n const dataUrl = event.target.dataset.url;\r\n $(`.modal[data-url=\"${dataUrl}\"]`).first().modal({ show: true });\r\n });\r\n }\r\n\r\n positionModals() {\r\n // ensure all modals are 1st level child of body\r\n $(this.MODALS_SELECTOR).appendTo(document.body);\r\n }\r\n\r\n static init() {\r\n $(document).ready(() => {\r\n new OverlayController(); // eslint-disable-line no-new\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\n\r\nclass ImageGradientController {\r\n constructor(elem) {\r\n this.element = elem;\r\n this.prepareLinks();\r\n }\r\n\r\n prepareLinks() {\r\n if (this.element.classList.contains('no-button')) this.addLinksToGradientCaptions();\r\n else this.registerButtonVisibilityEvents();\r\n }\r\n\r\n registerButtonVisibilityEvents() {\r\n $(this.element).hover(\r\n () => {\r\n $(this.element).find('.btn').show();\r\n },\r\n () => {\r\n $(this.element).find('.btn').hide();\r\n },\r\n );\r\n }\r\n\r\n addLinksToGradientCaptions() {\r\n const url = $(this.element).data('url');\r\n if (url === '') return;\r\n const target = $(this.element).data('target');\r\n const anchorTag = ``;\r\n $(this.element).wrap(anchorTag);\r\n }\r\n\r\n static init() {\r\n $(document).ready(() => {\r\n $('.image-with-gradient-caption').each((index, value) => {\r\n new ImageGradientController(value); // eslint-disable-line no-new\r\n });\r\n });\r\n }\r\n}\r\n\r\nwindow.ImageGradientController = ImageGradientController;\r\nexport default ImageGradientController;\r\n","import $ from 'jquery';\r\n\r\nimport { Globals } from './Utils';\r\n\r\nexport default class FooterController {\r\n constructor() {\r\n this.FOOTER_COLS_SELECTOR = 'footer.sos-footer .inner.col-sm-6';\r\n this.assignColumns();\r\n }\r\n\r\n assignColumns() {\r\n if (!Globals.IsMobile) {\r\n let cols = $(this.FOOTER_COLS_SELECTOR).length;\r\n cols = Math.floor(12 / cols);\r\n $(this.FOOTER_COLS_SELECTOR).addClass(`col-lg-${cols}`);\r\n }\r\n }\r\n\r\n static init() {\r\n $(document).ready(() => {\r\n new FooterController(); // eslint-disable-line no-new\r\n });\r\n }\r\n}\r\n","export default class EditorInfoController {\r\n constructor() {\r\n this.WEBPARTS = document.querySelectorAll('body.EditMode .WebPart');\r\n this.PREVIEW_NODES = [];\r\n this.assignIcons();\r\n this.registerClickEvents();\r\n }\r\n\r\n assignIcons() {\r\n this.WEBPARTS.forEach((webpart) => {\r\n const editorInfo = webpart.querySelector('div.WebPartContent > [data-editor-info]');\r\n if (editorInfo !== null) {\r\n const handle = webpart.querySelector('.WebPartHandle');\r\n const infoNode = document.createElement('i');\r\n infoNode.className = 'WebPartActionButton icon-editor-info';\r\n infoNode.title = 'widget widths on desktop, tablet and mobile devices';\r\n infoNode.textContent = editorInfo.dataset.editorInfo;\r\n const previewNode = document.createElement('i');\r\n previewNode.className = 'WebPartActionButton fa fa-lg fa-angle-double-up fold-icon';\r\n previewNode.title = 'collapse all widgets to simplify the drag-and-drop widget rearrangement';\r\n handle.prepend(previewNode);\r\n handle.prepend(infoNode);\r\n this.PREVIEW_NODES = document.querySelectorAll('body.EditMode .WebPart .WebPartHandle .fold-icon');\r\n }\r\n }, this);\r\n }\r\n\r\n registerClickEvents() {\r\n document.addEventListener('click', (event) => {\r\n if (event.target.matches('.WebPartActionButton.fa')) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.PREVIEW_NODES.forEach((handle) => {\r\n handle.closest('.WebPart').classList.toggle('collapsed');\r\n handle.classList.toggle('fa-angle-double-up');\r\n handle.classList.toggle('fa-angle-double-down');\r\n });\r\n }\r\n }, false);\r\n }\r\n\r\n static init() {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n new EditorInfoController(); // eslint-disable-line no-new\r\n });\r\n }\r\n}\r\n","import AccordionController from './components/AccordionController';\r\nimport WaypointContoller from './components/WaypointController';\r\nimport TooltipController from './components/TooltipController';\r\nimport IframesController from './components/IframesController';\r\nimport NavigationController from './components/NavigationController';\r\nimport LinkController from './components/LinkController';\r\nimport YoutubeController from './components/YoutubeController';\r\nimport OverlayController from './components/OverlayController';\r\nimport ImageGradientController from './components/ImageGradientController';\r\nimport SocialController from './components/SocialController';\r\nimport FooterController from './components/FooterController';\r\nimport EditorInfoController from './components/EditorInfoController';\r\n\r\nrequire('./components/Extensions');\r\nrequire('bootstrap\\\\js\\\\collapse.js');\r\nrequire('bootstrap\\\\js\\\\modal.js');\r\nrequire('bootstrap\\\\js\\\\tab.js');\r\nrequire('bootstrap\\\\js\\\\transition.js');\r\nrequire('./components/PortalImageTeaserController');\r\nrequire('./components/NewsletterSignUpController');\r\nrequire('./components/BackgroundVideoController');\r\nrequire('./components/BackgroundController');\r\nrequire('./components/RedirectController');\r\nrequire('./components/SlickSliderController');\r\nrequire('./components/YoutubeAutoplay.js');\r\nrequire('./components/LazyLoadingController');\r\nrequire('./components/plugins/AnchorOffsets');\r\nrequire('./components/ProgressBarController');\r\nrequire('./components/CookiesController');\r\nrequire('./components/LozadController');\r\nrequire('./components/ClipboardController');\r\nrequire('./components/CountdownController');\r\nrequire('./components/SitemapController');\r\nrequire('./components/SocialController');\r\nrequire('./components/ImageCreditsController');\r\n\r\n\r\nWaypointContoller.init();\r\nNavigationController.init();\r\nAccordionController.init();\r\nTooltipController.init();\r\nIframesController.init();\r\nLinkController.init();\r\nYoutubeController.init();\r\nOverlayController.init();\r\nImageGradientController.init();\r\nSocialController.init();\r\nFooterController.init();\r\nEditorInfoController.init();\r\n"],"sourceRoot":""}