{"version":3,"sources":["webpack:///scripts/site__scf001--c665298f27eec3d51680.js","webpack:///./client/src/core/vendor/photoswipe/photoswipe-ui-default.js","webpack:///./client/src/core/vendor/photoswipe/photoswipe.js","webpack:///./client/src/site__scf001/components/site/sprites nonrecursive \\.svg$","webpack:///./client/src/core/plugins/lib/fn.js","webpack:///./client/src/core/plugins/lib/index.js","webpack:///./client/src/core/plugins/lib/objects.js","webpack:///./client/src/core/plugins/lib/selectors.js","webpack:///./client/src/core/plugins/lib/strings.js","webpack:///./client/src/site__scf001/components/blocks/comparison-table/index.js","webpack:///./client/src/site__scf001/components/blocks/gallery/index.js","webpack:///./client/src/site__scf001/components/blocks/image-gallery/index.js","webpack:///./client/src/site__scf001/components/blocks/index.js","webpack:///./client/src/site__scf001/components/blocks/sales-block/index.js","webpack:///./client/src/site__scf001/components/index.js","webpack:///./client/src/site__scf001/components/search/global-search/index.js","webpack:///./client/src/site__scf001/components/search/global-search/search-form-collapsible.js","webpack:///./client/src/site__scf001/components/search/index.js","webpack:///./client/src/site__scf001/components/site-header/header/header-controller.js","webpack:///./client/src/site__scf001/components/site-header/header/index.js","webpack:///./client/src/site__scf001/components/site-header/index.js","webpack:///./client/src/site__scf001/components/site/index.js","webpack:///./client/src/site__scf001/components/site/sprites/index.js","webpack:///./client/src/site__scf001/components/tab-form/index.js","webpack:///./client/src/site__scf001/components/wysiwyg/index.js","webpack:///./client/src/site__scf001/components/wysiwyg/tables.js","webpack:///./client/src/site__scf001/components/wysiwyg/video-block.js","webpack:///./client/src/site__scf001/index.js","webpack:///./client/src/site__scf001/utilities/a11y__focus.js","webpack:///./client/src/site__scf001/utilities/index.js","webpack:///./node_modules/ally.js/src/event/shadow-focus.js","webpack:///./node_modules/ally.js/src/get/active-elements.js","webpack:///./node_modules/ally.js/src/get/shadow-host-parents.js","webpack:///./node_modules/ally.js/src/get/shadow-host.js","webpack:///./node_modules/ally.js/src/is/shadowed.js","webpack:///./node_modules/ally.js/src/observe/interaction-type.js","webpack:///./node_modules/ally.js/src/style/focus-source.js","webpack:///./node_modules/ally.js/src/util/context-to-element.js","webpack:///./node_modules/ally.js/src/util/decorate-service.js","webpack:///./node_modules/ally.js/src/util/node-array.js","webpack:///./node_modules/ally.js/src/util/toggle-class.js","webpack:///./node_modules/debug/node_modules/ms/index.js","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/debug/src/common.js","webpack:///./node_modules/process/browser.js","webpack:///./client/src/site__scf001/favicons/html_code.html","webpack:///./client/src/site__scf001/components/site/sprites/SCF-logo-30-Years.svg","webpack:///./client/src/site__scf001/components/site/sprites/SCF-logo.svg","webpack:///./client/src/site__scf001/components/site/sprites/add.svg","webpack:///./client/src/site__scf001/components/site/sprites/alert.svg","webpack:///./client/src/site__scf001/components/site/sprites/anchor-down.svg","webpack:///./client/src/site__scf001/components/site/sprites/anchor-up.svg","webpack:///./client/src/site__scf001/components/site/sprites/arrow-left.svg","webpack:///./client/src/site__scf001/components/site/sprites/arrow-right.svg","webpack:///./client/src/site__scf001/components/site/sprites/article.svg","webpack:///./client/src/site__scf001/components/site/sprites/australia.svg","webpack:///./client/src/site__scf001/components/site/sprites/calendar.svg","webpack:///./client/src/site__scf001/components/site/sprites/check-circle-filled.svg","webpack:///./client/src/site__scf001/components/site/sprites/check-circle.svg","webpack:///./client/src/site__scf001/components/site/sprites/check.svg","webpack:///./client/src/site__scf001/components/site/sprites/chevron-down.svg","webpack:///./client/src/site__scf001/components/site/sprites/chevron-left.svg","webpack:///./client/src/site__scf001/components/site/sprites/chevron-right.svg","webpack:///./client/src/site__scf001/components/site/sprites/chevron-up.svg","webpack:///./client/src/site__scf001/components/site/sprites/choose-container-white.svg","webpack:///./client/src/site__scf001/components/site/sprites/clock.svg","webpack:///./client/src/site__scf001/components/site/sprites/close-circle-filled.svg","webpack:///./client/src/site__scf001/components/site/sprites/close-small.svg","webpack:///./client/src/site__scf001/components/site/sprites/comparison-check.svg","webpack:///./client/src/site__scf001/components/site/sprites/comparison-uncheck.svg","webpack:///./client/src/site__scf001/components/site/sprites/container-simple.svg","webpack:///./client/src/site__scf001/components/site/sprites/container.svg","webpack:///./client/src/site__scf001/components/site/sprites/dot-scf.svg","webpack:///./client/src/site__scf001/components/site/sprites/dot.svg","webpack:///./client/src/site__scf001/components/site/sprites/download.svg","webpack:///./client/src/site__scf001/components/site/sprites/edit.svg","webpack:///./client/src/site__scf001/components/site/sprites/email.svg","webpack:///./client/src/site__scf001/components/site/sprites/enquire-nav-completed.svg","webpack:///./client/src/site__scf001/components/site/sprites/enquire-nav-current.svg","webpack:///./client/src/site__scf001/components/site/sprites/enquire-nav-default.svg","webpack:///./client/src/site__scf001/components/site/sprites/expand.svg","webpack:///./client/src/site__scf001/components/site/sprites/fax.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-container.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-flag.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-handshake.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-happy.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-idea.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-padlock.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-phone.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-product-selector.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-shipping.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-thinking.svg","webpack:///./client/src/site__scf001/components/site/sprites/feature-tick.svg","webpack:///./client/src/site__scf001/components/site/sprites/hamburger.svg","webpack:///./client/src/site__scf001/components/site/sprites/info.svg","webpack:///./client/src/site__scf001/components/site/sprites/map.svg","webpack:///./client/src/site__scf001/components/site/sprites/menu-close.svg","webpack:///./client/src/site__scf001/components/site/sprites/menu-open.svg","webpack:///./client/src/site__scf001/components/site/sprites/minus.svg","webpack:///./client/src/site__scf001/components/site/sprites/money.svg","webpack:///./client/src/site__scf001/components/site/sprites/nz-truck.svg","webpack:///./client/src/site__scf001/components/site/sprites/person.svg","webpack:///./client/src/site__scf001/components/site/sprites/phone-filled.svg","webpack:///./client/src/site__scf001/components/site/sprites/phone-outline.svg","webpack:///./client/src/site__scf001/components/site/sprites/pin.svg","webpack:///./client/src/site__scf001/components/site/sprites/play.svg","webpack:///./client/src/site__scf001/components/site/sprites/plus.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-accommodation.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-bulk-liquid.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-bulk-powder.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-capacity-large.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-capacity-medium.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-capacity-small.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-capacity.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-chemicals.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-dangerous-goods.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-dimensions.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-dont-mind.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-entrance-end.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-entrance-side.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-grain.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-liquid-containment.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-liquid.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-palletised.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-pallets-20.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-pallets-40.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-pallets-44.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-pallets-48.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-powder.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-refrigerated.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-selector-feature.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-size-large.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-size-medium.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-size-small.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-step1.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-step2.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-step3.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-storage.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-large.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-medium.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-small.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-medium.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-small.svg","webpack:///./client/src/site__scf001/components/site/sprites/ps-transport.svg","webpack:///./client/src/site__scf001/components/site/sprites/question.svg","webpack:///./client/src/site__scf001/components/site/sprites/quote.svg","webpack:///./client/src/site__scf001/components/site/sprites/remove.svg","webpack:///./client/src/site__scf001/components/site/sprites/rewind.svg","webpack:///./client/src/site__scf001/components/site/sprites/search-complex.svg","webpack:///./client/src/site__scf001/components/site/sprites/search-simple.svg","webpack:///./client/src/site__scf001/components/site/sprites/social-facebook.svg","webpack:///./client/src/site__scf001/components/site/sprites/social-instagram.svg","webpack:///./client/src/site__scf001/components/site/sprites/social-linkedin.svg","webpack:///./client/src/site__scf001/components/site/sprites/social-twitter.svg","webpack:///./client/src/site__scf001/components/site/sprites/social-youtube.svg","webpack:///./client/src/site__scf001/components/site/sprites/spinner.svg","webpack:///./client/src/site__scf001/components/site/sprites/star.svg","webpack:///./client/src/site__scf001/components/site/sprites/talk.svg","webpack:///external \"jQuery\""],"names":["webpackJsonp","/home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe-ui-default.js","module","exports","__webpack_require__","root","factory","this","pswp","framework","_fullscrenAPI","_controls","_captionContainer","_fakeCaptionContainer","_indexIndicator","_shareButton","_shareModal","_initalCloseOnScrollValue","_isIdle","_listen","_loadingIndicator","_loadingIndicatorHidden","_loadingIndicatorTimeout","_galleryHasOneSlide","_options","_blockControlsTap","_blockControlsTapTimeout","_idleInterval","_idleTimer","ui","_overlayUIUpdated","_controlsVisible","_shareModalHidden","_defaultUIOptions","barsSize","top","bottom","closeElClasses","timeToIdle","timeToIdleOutside","loadingIndicatorDelay","addCaptionHTMLFn","item","captionEl","title","children","innerHTML","closeEl","fullscreenEl","zoomEl","shareEl","counterEl","arrowEl","preloaderEl","tapToClose","tapToToggleControls","clickToCloseNonZoomable","shareButtons","id","label","url","download","getImageURLForShare","currItem","src","getPageURLForShare","window","location","href","getTextForShare","indexIndicatorSep","fitControlsWidth","_onControlsTap","e","event","mouseUsed","_onIdleMouseMove","uiElement","found","target","srcElement","clickedClass","getAttribute","i","_uiElements","length","onTap","indexOf","name","stopPropagation","tapDelay","features","isOldAndroid","setTimeout","_fitControlsInViewport","likelyTouchDevice","screen","width","_togglePswpClass","el","cName","add","_countNumItems","hasOneSlide","getNumItemsFn","_toggleShareModalClass","_toggleShareModal","removeClass","addClass","_updateShareURLs","_openWindowPopup","shout","hasAttribute","open","Math","round","shareButtonData","shareURL","image_url","page_url","share_text","shareButtonOut","replace","encodeURIComponent","parseShareButtonOut","onclick","_hasCloseClass","hasClass","_idleIncrement","clearTimeout","setIdle","_onMouseLeaveWindow","from","relatedTarget","toElement","nodeName","_setupFullscreenAPI","getFullscreenAPI","bind","document","eventK","updateFullscreen","template","_setupLoadingIndicator","_toggleLoadingIndicator","loading","allowProgressiveImg","img","naturalWidth","index","hide","_applyNavBarGaps","gap","vGap","bars","createEl","appendChild","insertBefore","captionSize","clientHeight","parseInt","_setupIdle","setInterval","_setupHidingControlsDuringGestures","now","hideControls","showControls","pinchControlsHidden","option","onInit","toggleDesktopZoom","close","prev","next","isFullscreen","exit","enter","_setupUIElements","classAttr","loopThroughChildElements","sChildren","l","className","a","topBar","getChildByClass","init","extend","options","scrollWrap","listen","update","point","initialZoomLevel","getZoomLevel","zoomTo","getDoubleTapZoom","isDown","preventObj","t","type","test","tagName","prevent","onGlobalTap","onMouseOver","clearInterval","unbind","hideAnimationDuration","removeChild","showAnimationDuration","isIdle","updateIndexIndicator","setScrollOffset","getScrollY","getCurrentIndex","detail","pointerType","fitRatio","releasePoint","supportsFullscreen","d","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","api","dE","documentElement","tF","requestFullscreen","enterK","exitK","elementK","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","closeOnScroll","Element","ALLOW_KEYBOARD_INPUT","/home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe.js","UiClass","items","listener","methodName","split","isArray","obj","Array","classes","tag","createElement","yOffset","pageYOffset","undefined","scrollTop","reg","RegExp","parentEl","childClassName","node","firstChild","nextSibling","arraySearch","array","value","key","o1","o2","preventOverwrite","prop","hasOwnProperty","easing","sine","out","k","sin","PI","inOut","cos","cubic","detectFeatures","helperEl","helperStyle","style","vendor","oldIE","all","addEventListener","touch","requestAnimationFrame","raf","caf","cancelAnimationFrame","pointerEvent","navigator","msPointerEnabled","ua","userAgent","platform","v","match","isOldIOSPhone","androidversion","parseFloat","androidVersion","isMobileOpera","styleCheckItem","styleName","styleChecks","vendors","charAt","toUpperCase","slice","toLowerCase","lastTime","fn","currTime","Date","getTime","timeToCall","max","svg","createElementNS","createSVGRect","evName","_handleEv","handleEvent","call","self","allowPanToNext","spacing","bgOpacity","loop","pinchToClose","closeOnVerticalDrag","verticalDragRange","showHideOpacity","focus","escKey","arrowKeys","mainScrollEndFriction","panEndFriction","isClickableElement","isMouseClick","maxSpreadZoom","modal","scaleMode","_isOpen","_isDestroying","_closedByScroll","_currentItemIndex","_containerStyle","_containerShiftIndex","_upMoveEvents","_downEvents","_globalEventHandlers","_currZoomLevel","_startZoomLevel","_translatePrefix","_translateSufix","_updateSizeInterval","_itemsNeedUpdate","_itemHolders","_prevItemIndex","_dragStartEvent","_dragMoveEvent","_dragEndEvent","_dragCancelEvent","_transformKey","_pointerEventEnabled","_likelyTouchDevice","_requestAF","_cancelAF","_initalClassName","_initalWindowScrollY","_oldIE","_currentWindowScrollY","_features","_orientationChangeTimeout","_gestureStartTime","_gestureCheckSpeedTime","_releaseAnimData","_isZoomingIn","_verticalDragInitiated","_oldAndroidTouchEndTimeout","_isDragging","_isMultitouch","_zoomStarted","_moved","_dragAnimFrame","_mainScrollShifted","_currentPoints","_isZooming","_currPointsDistance","_startPointsDistance","_currPanBounds","_currZoomElementStyle","_mainScrollAnimating","_direction","_isFirstMove","_opacityChanged","_bgOpacity","_wasOverInitialZoom","_tempCounter","_getEmptyPoint","x","y","_currPanDist","_startPanOffset","_panOffset","_viewportSize","_currPositionIndex","_offset","_slideSize","_indexDiff","_isFixedPosition","_modules","_windowVisibleSize","_renderMaxResolution","_registerModule","publicMethods","push","_getLoopedId","numSlides","_getNumItems","_listeners","_shout","listeners","args","prototype","arguments","shift","apply","_getCurrentTime","_applyBgOpacity","opacity","bg","_applyZoomTransform","styleObj","zoom","_applyCurrentZoomPan","allowRenderResolution","_setImageSize","_applyZoomPanToItem","container","initialPosition","_setTranslateX","elStyle","_moveMainScroll","dragging","newSlideIndexOffset","delta","_mainScrollPos","_calculatePanOffset","axis","zoomLevel","m","_midZoomPoint","_equalizePoints","p1","p2","_roundPoint","p","_mouseMoveTimeout","_onFirstMouseMove","_bindEvents","transform","_unbindEvents","scroll","_calculatePanBounds","bounds","_calculateItemSize","_getMinZoomLevel","_getMaxZoomLevel","w","_modifyDestPanOffset","destPanBounds","destPanOffset","destZoomLevel","min","_setupTransforms","allow3dTransform","perspective","left","zoomRatio","s","h","height","_onKeyDown","keydownAction","keyCode","ctrlKey","altKey","shiftKey","metaKey","preventDefault","returnValue","_onGlobalClick","_updatePageScrollOffset","_animations","_numAnimations","_stopAnimation","_registerStartAnimation","_stopAllAnimations","_animateProp","b","endProp","easingFn","onUpdate","onComplete","startAnimTime","animloop","viewportSize","isMainScrollAnimating","isDragging","isZooming","applyZoomPan","panX","panY","itemHolders","wrap","display","resize","updateSize","orientationchange","clientWidth","keydown","click","oldPhone","animationName","isNaN","_getItemAt","setAttribute","position","rootClasses","mainClass","setContent","updateCurrItem","_showOrHide","destroy","_showOrHideTimeout","_stopDragUpdateLoop","panTo","force","goTo","diff","updateCurrZoomItem","emulateSetContent","zoomElement","center","invalidateCurrItems","needsUpdate","beforeAnimation","tempHolder","diffAbs","abs","NUM_HOLDERS","pop","unshift","prevItem","windowScrollY","innerWidth","innerHeight","holder","hIndex","cleanSlide","centerPoint","speed","updateFn","initialPanOffset","_currPoint","_startPoint","_currPointers","_startMainScrollPos","_posPoints","_tempPoint","_currZoomedItemIndex","_centerPoint","_lastReleaseTime","_currCenterPoint","_isEqualPoints","_isNearbyPoints","touch0","touch1","_calculatePointsDistance","sqrt","_dragUpdateLoop","_renderMovement","_canPan","_closestElement","parentNode","_preventObj","_preventDefaultEventBehaviour","_convertTouchToPoint","pageX","pageY","identifier","_findCenterOfPoints","pCenter","_pushPosPoint","time","o","_calculateVerticalDragOpacityRatio","_ePoint1","_ePoint2","_tempPointsArr","_getTouchPoints","forEach","touches","_panOrMoveMainScroll","panFriction","startOverDiff","newPanPos","newMainScrollPos","newOffset","dir","newMainScrollPosition","mainScrollDiff","_onDragStart","button","_initialZoomRunning","pointerIndex","pointerId","startPointsList","numPoints","_onDragMove","touchesList","pointsDistance","_calculateZoomLevel","zoomFriction","minZoomLevel","maxZoomLevel","minusDiff","percent","opacityRatio","mainScrollChanged","_onDragRelease","splice","MSPOINTER_TYPES","4","2","3","gestureType","touchList","changedTouches","releaseTimeDiff","_initDragReleaseAnimationData","calculateSwipeSpeed","initalPanY","initialBgOpacity","itemChanged","_finishSwipeMainScrollGesture","_completeZoomGesture","_completePanGesture","lastFlickDuration","tempReleasePos","lastFlickOffset","lastFlickDist","lastFlickSpeed","slowDownRatio","slowDownRatioReverse","speedDecelerationRatio","speedDecelerationRatioAbs","distanceOffset","backAnimDestination","backAnimStarted","calculateOverBoundsAnimOffset","pos","calculateAnimOffset","timeDiff","panAnimLoop","zoomPan","lastNow","animData","itemsDiff","totalShiftDist","isFastLastFlick","nextCircle","finishAnimDuration","animateToX","animateToDist","touchesDistance","initialOpacity","initGestures","addEventNames","pref","down","move","up","cancel","maxTouchPoints","msMaxTouchPoints","mousedown","mousemove","mouseup","_items","_initialContentSet","_initialIsLoop","completeFn","thumbBounds","initialLayout","getThumbBoundsFn","duration","removeAttribute","closeWithRaf","fadeEverything","loadError","miniImg","webkitBackfaceVisibility","initalBgOpacity","_tempPanAreaSize","_imagesToAppendPool","_controllerDefaultOptions","errorMsg","forceProgressiveLoading","preload","_getZeroBounds","_calculateSingleItemPanBounds","realPanElementW","realPanElementH","isInitial","hRatio","vRatio","_appendImage","baseDiv","preventAnimation","keepPlaceholder","imageAppended","loaded","placeholder","_preloadImage","loadComplete","onload","onerror","_checkForError","cleanUp","maxRes","lastChild","_appendImagesPool","poolItem","clearPlaceholder","lazyLoadItem","initController","getItemAt","isNext","preloadBefore","preloadAfter","preloader","html","placeholderClassName","msrc","tapTimer","tapReleasePoint","_dispatchTapEvent","origEvent","createEvent","eDetail","initCustomEvent","dispatchEvent","initTap","onTapStart","onTapRelease","p0","_wheelDelta","initDesktopZoom","setupDesktopZoom","events","handleMouseWheel","mouseZoomedIn","hasDraggingClass","updateZoomable","removeDraggingClass","deltaY","deltaMode","deltaX","wheelDeltaX","wheelDeltaY","wheelDelta","newPanX","newPanY","doubleTapZoomLevel","zoomOut","_historyUpdateTimeout","_hashChangeTimeout","_hashAnimCheckTimeout","_hashChangedByScript","_hashChangedByHistory","_hashReseted","_initialHash","_historyChanged","_closedFromURL","_urlChangedOnce","_windowLoc","_supportsPushState","_historyDefaultOptions","history","galleryUID","_getHash","hash","substring","_cleanHistoryTimeouts","_parseItemIndexFromURL","params","vars","pair","galleryPIDs","searchfor","pid","_updateHash","newHash","newURL","initHistory","updateURL","onHashChange","returnToOriginal","back","pushState","pathname","search","/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites nonrecursive /\\.svg$/","webpackContext","req","webpackContextResolve","map","Error","keys","Object","resolve","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/fn.js","debounce","func","wait","immediate","timeout","context","later","callNow","defineProperty","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/index.js","_interopRequireWildcard","__esModule","newObj","default","_interopRequireDefault","plugin","pluginName","klass","shortHand","formattedPluginName","toCamelCase","dataName","$","$bus","subscribe","publish","data","trigger","$util","objects","strings","selectors","inViewport","elm","rect","getBoundingClientRect","viewHeight","each","$this","overrides","elementOptions","filter","reduce","result","path","log","instance","DEFAULTS","$utils","jquery","defaults","_typeof","Symbol","iterator","constructor","_jquery2","_jquery","_debug2","_debug","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/objects.js","elementAttrtibutesToObject","element","filterFn","transformFn","output","attrs","get","ZERO","attributes","attribute","Boolean","objectPath","val","delimiter","props","final","part","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/selectors.js","selectorPattern","directives","join","selectTarget","selector","$element","$target","isClosestAncestoral","SELECTOR_PATTERNS","parent","isAllAncestoral","parents","isRetargeted","isAllDescendants","isGenerational","here","isSiblings","siblings","isSelfish","$newElement","newSelector","closest","find","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/strings.js","preserveCamelCase","str","isLastCharLower","isLastCharUpper","isLastLastCharUpper","c","substr","trim","tmpl","$tmpl","templateString","attr","text","mustache","invert","ctx","render","inverted","childCode","depth","assign","code","z","raw","comment","isRaw","partial","Option","booleanify","lower","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/comparison-table/index.js","ready","NO_ICON_TABLE_CELL_LOCATOR","getElementsByClassName","on","toggleClass","noIconCells","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/gallery/index.js","initGalleryBlock","galleryContainerSelector","containerElement","flickityElement","Flickity","eq","fadeIn","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/image-gallery/index.js","PhotoSwipe","require","PhotoSwipeUIDefault","gallerySelector","div","getElementsByTagName","parseThumbnailElements","figureEl","linkEl","size","thumbElements","childNodes","numNodes","nodeType","onThumbnailsClick","eTarget","clickedListItem","clickedGallery","numChildNodes","nodeIndex","openPhotoSwipe","galleryElement","disableAnimation","fromURL","gallery","pswpElement","querySelectorAll","thumbnail","pageYScroll","j","galleryElements","hashData","gid","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/sales-block/index.js","displayValue","select","after","one","isFirst","showToggle","includes","not","show","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/page/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/global-search/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/global-search/search-form-collapsible.js","_classCallCheck","Constructor","TypeError","_createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","_lib2","_lib","SearchFormCollapsible","enabled","formElements","elementsSelector","watch","toggle","disable","removeAttr","handler","enable","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/header/header-controller.js","HeaderController","isSearchCollapsible","searchComponentSelector","searchComponent","tryConcealSearch","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/header/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/index.js","files","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/tab-form/index.js","tabForm","querySelector","tabHeader","tabHeaderElements","tabBody","tabBodyElements","classList","remove","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/tables.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/video-block.js","videoContainers","playButton","video","paused","play","pause","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/utilities/a11y__focus.js","_focusSource","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/utilities/index.js","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/event/shadow-focus.js","_activeElements2","_activeElements","_decorateService2","_decorateService","engage","disengage","createShadowRoot","blurTimer","blurElement","handleElementBlurEvent","stopHandleElementBlurEvent","clearImmediate","setImmediate","handleFocusChange","observeElementBlurEvent","removeEventListener","_active","shadowFocusEvent","CustomEvent","bubbles","cancelable","elements","active","hosts","handleDocumentFocusEvent","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/active-elements.js","walkToShadowedElement","list","activeElement","shadowRoot","walkFromShadowedElement","concat","body","_shadowed2","_shadowed","_shadowHostParents2","_shadowHostParents","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/shadow-host-parents.js","_shadowHost2","_shadowHost","_contextToElement2","_contextToElement","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/shadow-host.js","DOCUMENT_FRAGMENT_NODE","host","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/is/shadowed.js","resolveDocument","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/observe/interaction-type.js","handleWindowBlurEvent","_activePointers","_activeKeys","handlePointerStartEvent","isPrimary","handlePointerEndEvent","handleKeyStartEvent","which","handleKeyEndEvent","getInteractionType","pointer","pointerStartEvents","pointerEndEvents","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/style/focus-source.js","handleFocusEvent","source","focusEventName","interactionType","interactionTypeHandler","lock","blurEventName","used","current","getCurrentFocusSource","getUsedFocusSource","lockFocusSource","unlockFocusSource","shadowHandle","unlock","_shadowFocus2","_shadowFocus","_interactionType2","_interactionType","supportsFocusIn","script","initial","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/context-to-element.js","defaultToDocument","Node","DOCUMENT_NODE","ELEMENT_NODE","_nodeArray2","_nodeArray","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/decorate-service.js","destruct","instances","_result","initialize","noop","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/node-array.js","input","String","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/toggle-class.js","getClassNames","classNames","idx","shouldHaveClass","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/node_modules/ms/index.js","parse","exec","n","fmtShort","ms","msAbs","fmtLong","plural","isPlural","isFinite","long","JSON","stringify","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js","useColors","process","__nwjs","WebkitAppearance","console","firebug","exception","table","$1","formatArgs","namespace","humanize","color","lastC","_console","save","namespaces","storage","setItem","removeItem","error","load","r","getItem","env","DEBUG","_typeof2","localStorage","colors","formatters","message","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/common.js","setup","selectColor","charCodeAt","createDebug","debug","_len","_key","curr","Number","prevTime","coerce","format","formatter","names","skips","len","stack","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/process/browser.js","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","run","Item","nextTick","browser","argv","version","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","/home/vsts/work/1/s/src/SCF/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--14-0!/home/vsts/work/1/s/src/SCF/node_modules/css-loader/index.js??ref--14-1!/home/vsts/work/1/s/src/SCF/node_modules/postcss-loader/lib/index.js??ref--14-2!/home/vsts/work/1/s/src/SCF/node_modules/sass-loader/lib/loader.js??ref--14-3!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/index.scss","/home/vsts/work/1/s/src/SCF/node_modules/file-loader/dist/cjs.js??ref--2-0!/home/vsts/work/1/s/src/SCF/node_modules/extract-loader/lib/extractLoader.js!/home/vsts/work/1/s/src/SCF/node_modules/html-loader/index.js??ref--2-2!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/favicons/html_code.html","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo-30-Years.svg","viewBox","toString","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/add.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/alert.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-down.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-up.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-left.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-right.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/article.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/australia.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/calendar.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle-filled.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-down.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-left.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-right.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-up.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/choose-container-white.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/clock.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-circle-filled.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-small.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-check.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-uncheck.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container-simple.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot-scf.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/download.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/edit.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/email.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-completed.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-current.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-default.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/expand.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/fax.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-container.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-flag.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-handshake.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-happy.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-idea.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-padlock.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-phone.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-product-selector.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-shipping.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-thinking.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-tick.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/hamburger.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/info.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/map.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-close.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-open.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/minus.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/money.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/nz-truck.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/person.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-filled.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-outline.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/pin.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/play.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/plus.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-accommodation.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-liquid.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-powder.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-large.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-medium.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-small.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-chemicals.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dangerous-goods.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dimensions.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dont-mind.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-end.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-side.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-grain.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid-containment.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-palletised.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-20.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-40.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-44.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-48.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-powder.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-refrigerated.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-selector-feature.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-large.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-medium.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-small.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step1.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step2.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step3.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-storage.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-large.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-medium.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-small.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-medium.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-small.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-transport.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/question.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/quote.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/remove.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/rewind.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-complex.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-simple.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-facebook.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-instagram.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-linkedin.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-twitter.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-youtube.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/spinner.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/star.svg","/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/talk.svg","external \"jQuery\"","jQuery","multi /home/vsts/work/1/s/src/SCF//client/src/site__scf001/index.js /home/vsts/work/1/s/src/SCF//client/src/site__scf001/index.scss"],"mappings":"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","file":"scripts/site__scf001--c665298f27eec3d51680.js","sourcesContent":["webpackJsonp([\"site__scf001\"],{\n\n/***/ \"/home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe-ui-default.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! PhotoSwipe Default UI - 4.1.3 - 2019-01-08\n* http://photoswipe.com\n* Copyright (c) 2019 Dmitry Semenov; */\n/**\n*\n* UI on top of main sliding area (caption, arrows, close button, etc.).\n* Built just using public methods/properties of PhotoSwipe.\n* \n*/\n(function (root, factory) { \n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t} else {\n\t\troot.PhotoSwipeUI_Default = factory();\n\t}\n})(this, function () {\n\n\t'use strict';\n\n\n\nvar PhotoSwipeUI_Default =\n function(pswp, framework) {\n\n\tvar ui = this;\n\tvar _overlayUIUpdated = false,\n\t\t_controlsVisible = true,\n\t\t_fullscrenAPI,\n\t\t_controls,\n\t\t_captionContainer,\n\t\t_fakeCaptionContainer,\n\t\t_indexIndicator,\n\t\t_shareButton,\n\t\t_shareModal,\n\t\t_shareModalHidden = true,\n\t\t_initalCloseOnScrollValue,\n\t\t_isIdle,\n\t\t_listen,\n\n\t\t_loadingIndicator,\n\t\t_loadingIndicatorHidden,\n\t\t_loadingIndicatorTimeout,\n\n\t\t_galleryHasOneSlide,\n\n\t\t_options,\n\t\t_defaultUIOptions = {\n\t\t\tbarsSize: {top:44, bottom:'auto'},\n\t\t\tcloseElClasses: ['item', 'caption', 'zoom-wrap', 'ui', 'top-bar'], \n\t\t\ttimeToIdle: 4000, \n\t\t\ttimeToIdleOutside: 1000,\n\t\t\tloadingIndicatorDelay: 1000, // 2s\n\t\t\t\n\t\t\taddCaptionHTMLFn: function(item, captionEl /*, isFake */) {\n\t\t\t\tif(!item.title) {\n\t\t\t\t\tcaptionEl.children[0].innerHTML = '';\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tcaptionEl.children[0].innerHTML = item.title;\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\tcloseEl:true,\n\t\t\tcaptionEl: true,\n\t\t\tfullscreenEl: true,\n\t\t\tzoomEl: true,\n\t\t\tshareEl: true,\n\t\t\tcounterEl: true,\n\t\t\tarrowEl: true,\n\t\t\tpreloaderEl: true,\n\n\t\t\ttapToClose: false,\n\t\t\ttapToToggleControls: true,\n\n\t\t\tclickToCloseNonZoomable: true,\n\n\t\t\tshareButtons: [\n\t\t\t\t{id:'facebook', label:'Share on Facebook', url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},\n\t\t\t\t{id:'twitter', label:'Tweet', url:'https://twitter.com/intent/tweet?text={{text}}&url={{url}}'},\n\t\t\t\t{id:'pinterest', label:'Pin it', url:'http://www.pinterest.com/pin/create/button/'+\n\t\t\t\t\t\t\t\t\t\t\t\t\t'?url={{url}}&media={{image_url}}&description={{text}}'},\n\t\t\t\t{id:'download', label:'Download image', url:'{{raw_image_url}}', download:true}\n\t\t\t],\n\t\t\tgetImageURLForShare: function( /* shareButtonData */ ) {\n\t\t\t\treturn pswp.currItem.src || '';\n\t\t\t},\n\t\t\tgetPageURLForShare: function( /* shareButtonData */ ) {\n\t\t\t\treturn window.location.href;\n\t\t\t},\n\t\t\tgetTextForShare: function( /* shareButtonData */ ) {\n\t\t\t\treturn pswp.currItem.title || '';\n\t\t\t},\n\t\t\t\t\n\t\t\tindexIndicatorSep: ' / ',\n\t\t\tfitControlsWidth: 1200\n\n\t\t},\n\t\t_blockControlsTap,\n\t\t_blockControlsTapTimeout;\n\n\n\n\tvar _onControlsTap = function(e) {\n\t\t\tif(_blockControlsTap) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\n\t\t\te = e || window.event;\n\n\t\t\tif(_options.timeToIdle && _options.mouseUsed && !_isIdle) {\n\t\t\t\t// reset idle timer\n\t\t\t\t_onIdleMouseMove();\n\t\t\t}\n\n\n\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\tuiElement,\n\t\t\t\tclickedClass = target.getAttribute('class') || '',\n\t\t\t\tfound;\n\n\t\t\tfor(var i = 0; i < _uiElements.length; i++) {\n\t\t\t\tuiElement = _uiElements[i];\n\t\t\t\tif(uiElement.onTap && clickedClass.indexOf('pswp__' + uiElement.name ) > -1 ) {\n\t\t\t\t\tuiElement.onTap();\n\t\t\t\t\tfound = true;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(found) {\n\t\t\t\tif(e.stopPropagation) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t\t_blockControlsTap = true;\n\n\t\t\t\t// Some versions of Android don't prevent ghost click event \n\t\t\t\t// when preventDefault() was called on touchstart and/or touchend.\n\t\t\t\t// \n\t\t\t\t// This happens on v4.3, 4.2, 4.1, \n\t\t\t\t// older versions strangely work correctly, \n\t\t\t\t// but just in case we add delay on all of them)\t\n\t\t\t\tvar tapDelay = framework.features.isOldAndroid ? 600 : 30;\n\t\t\t\t_blockControlsTapTimeout = setTimeout(function() {\n\t\t\t\t\t_blockControlsTap = false;\n\t\t\t\t}, tapDelay);\n\t\t\t}\n\n\t\t},\n\t\t_fitControlsInViewport = function() {\n\t\t\treturn !pswp.likelyTouchDevice || _options.mouseUsed || screen.width > _options.fitControlsWidth;\n\t\t},\n\t\t_togglePswpClass = function(el, cName, add) {\n\t\t\tframework[ (add ? 'add' : 'remove') + 'Class' ](el, 'pswp__' + cName);\n\t\t},\n\n\t\t// add class when there is just one item in the gallery\n\t\t// (by default it hides left/right arrows and 1ofX counter)\n\t\t_countNumItems = function() {\n\t\t\tvar hasOneSlide = (_options.getNumItemsFn() === 1);\n\n\t\t\tif(hasOneSlide !== _galleryHasOneSlide) {\n\t\t\t\t_togglePswpClass(_controls, 'ui--one-slide', hasOneSlide);\n\t\t\t\t_galleryHasOneSlide = hasOneSlide;\n\t\t\t}\n\t\t},\n\t\t_toggleShareModalClass = function() {\n\t\t\t_togglePswpClass(_shareModal, 'share-modal--hidden', _shareModalHidden);\n\t\t},\n\t\t_toggleShareModal = function() {\n\n\t\t\t_shareModalHidden = !_shareModalHidden;\n\t\t\t\n\t\t\t\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_toggleShareModalClass();\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tif(!_shareModalHidden) {\n\t\t\t\t\t\tframework.addClass(_shareModal, 'pswp__share-modal--fade-in');\n\t\t\t\t\t}\n\t\t\t\t}, 30);\n\t\t\t} else {\n\t\t\t\tframework.removeClass(_shareModal, 'pswp__share-modal--fade-in');\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tif(_shareModalHidden) {\n\t\t\t\t\t\t_toggleShareModalClass();\n\t\t\t\t\t}\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t\t\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_updateShareURLs();\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\n\t\t_openWindowPopup = function(e) {\n\t\t\te = e || window.event;\n\t\t\tvar target = e.target || e.srcElement;\n\n\t\t\tpswp.shout('shareLinkClick', e, target);\n\n\t\t\tif(!target.href) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif( target.hasAttribute('download') ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\twindow.open(target.href, 'pswp_share', 'scrollbars=yes,resizable=yes,toolbar=no,'+\n\t\t\t\t\t\t\t\t\t\t'location=yes,width=550,height=420,top=100,left=' + \n\t\t\t\t\t\t\t\t\t\t(window.screen ? Math.round(screen.width / 2 - 275) : 100) );\n\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_toggleShareModal();\n\t\t\t}\n\t\t\t\n\t\t\treturn false;\n\t\t},\n\t\t_updateShareURLs = function() {\n\t\t\tvar shareButtonOut = '',\n\t\t\t\tshareButtonData,\n\t\t\t\tshareURL,\n\t\t\t\timage_url,\n\t\t\t\tpage_url,\n\t\t\t\tshare_text;\n\n\t\t\tfor(var i = 0; i < _options.shareButtons.length; i++) {\n\t\t\t\tshareButtonData = _options.shareButtons[i];\n\n\t\t\t\timage_url = _options.getImageURLForShare(shareButtonData);\n\t\t\t\tpage_url = _options.getPageURLForShare(shareButtonData);\n\t\t\t\tshare_text = _options.getTextForShare(shareButtonData);\n\n\t\t\t\tshareURL = shareButtonData.url.replace('{{url}}', encodeURIComponent(page_url) )\n\t\t\t\t\t\t\t\t\t.replace('{{image_url}}', encodeURIComponent(image_url) )\n\t\t\t\t\t\t\t\t\t.replace('{{raw_image_url}}', image_url )\n\t\t\t\t\t\t\t\t\t.replace('{{text}}', encodeURIComponent(share_text) );\n\n\t\t\t\tshareButtonOut += '' + \n\t\t\t\t\t\t\t\t\tshareButtonData.label + '';\n\n\t\t\t\tif(_options.parseShareButtonOut) {\n\t\t\t\t\tshareButtonOut = _options.parseShareButtonOut(shareButtonData, shareButtonOut);\n\t\t\t\t}\n\t\t\t}\n\t\t\t_shareModal.children[0].innerHTML = shareButtonOut;\n\t\t\t_shareModal.children[0].onclick = _openWindowPopup;\n\n\t\t},\n\t\t_hasCloseClass = function(target) {\n\t\t\tfor(var i = 0; i < _options.closeElClasses.length; i++) {\n\t\t\t\tif( framework.hasClass(target, 'pswp__' + _options.closeElClasses[i]) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_idleInterval,\n\t\t_idleTimer,\n\t\t_idleIncrement = 0,\n\t\t_onIdleMouseMove = function() {\n\t\t\tclearTimeout(_idleTimer);\n\t\t\t_idleIncrement = 0;\n\t\t\tif(_isIdle) {\n\t\t\t\tui.setIdle(false);\n\t\t\t}\n\t\t},\n\t\t_onMouseLeaveWindow = function(e) {\n\t\t\te = e ? e : window.event;\n\t\t\tvar from = e.relatedTarget || e.toElement;\n\t\t\tif (!from || from.nodeName === 'HTML') {\n\t\t\t\tclearTimeout(_idleTimer);\n\t\t\t\t_idleTimer = setTimeout(function() {\n\t\t\t\t\tui.setIdle(true);\n\t\t\t\t}, _options.timeToIdleOutside);\n\t\t\t}\n\t\t},\n\t\t_setupFullscreenAPI = function() {\n\t\t\tif(_options.fullscreenEl && !framework.features.isOldAndroid) {\n\t\t\t\tif(!_fullscrenAPI) {\n\t\t\t\t\t_fullscrenAPI = ui.getFullscreenAPI();\n\t\t\t\t}\n\t\t\t\tif(_fullscrenAPI) {\n\t\t\t\t\tframework.bind(document, _fullscrenAPI.eventK, ui.updateFullscreen);\n\t\t\t\t\tui.updateFullscreen();\n\t\t\t\t\tframework.addClass(pswp.template, 'pswp--supports-fs');\n\t\t\t\t} else {\n\t\t\t\t\tframework.removeClass(pswp.template, 'pswp--supports-fs');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_setupLoadingIndicator = function() {\n\t\t\t// Setup loading indicator\n\t\t\tif(_options.preloaderEl) {\n\t\t\t\n\t\t\t\t_toggleLoadingIndicator(true);\n\n\t\t\t\t_listen('beforeChange', function() {\n\n\t\t\t\t\tclearTimeout(_loadingIndicatorTimeout);\n\n\t\t\t\t\t// display loading indicator with delay\n\t\t\t\t\t_loadingIndicatorTimeout = setTimeout(function() {\n\n\t\t\t\t\t\tif(pswp.currItem && pswp.currItem.loading) {\n\n\t\t\t\t\t\t\tif( !pswp.allowProgressiveImg() || (pswp.currItem.img && !pswp.currItem.img.naturalWidth) ) {\n\t\t\t\t\t\t\t\t// show preloader if progressive loading is not enabled, \n\t\t\t\t\t\t\t\t// or image width is not defined yet (because of slow connection)\n\t\t\t\t\t\t\t\t_toggleLoadingIndicator(false); \n\t\t\t\t\t\t\t\t// items-controller.js function allowProgressiveImg\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_toggleLoadingIndicator(true); // hide preloader\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}, _options.loadingIndicatorDelay);\n\t\t\t\t\t\n\t\t\t\t});\n\t\t\t\t_listen('imageLoadComplete', function(index, item) {\n\t\t\t\t\tif(pswp.currItem === item) {\n\t\t\t\t\t\t_toggleLoadingIndicator(true);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t}\n\t\t},\n\t\t_toggleLoadingIndicator = function(hide) {\n\t\t\tif( _loadingIndicatorHidden !== hide ) {\n\t\t\t\t_togglePswpClass(_loadingIndicator, 'preloader--active', !hide);\n\t\t\t\t_loadingIndicatorHidden = hide;\n\t\t\t}\n\t\t},\n\t\t_applyNavBarGaps = function(item) {\n\t\t\tvar gap = item.vGap;\n\n\t\t\tif( _fitControlsInViewport() ) {\n\t\t\t\t\n\t\t\t\tvar bars = _options.barsSize; \n\t\t\t\tif(_options.captionEl && bars.bottom === 'auto') {\n\t\t\t\t\tif(!_fakeCaptionContainer) {\n\t\t\t\t\t\t_fakeCaptionContainer = framework.createEl('pswp__caption pswp__caption--fake');\n\t\t\t\t\t\t_fakeCaptionContainer.appendChild( framework.createEl('pswp__caption__center') );\n\t\t\t\t\t\t_controls.insertBefore(_fakeCaptionContainer, _captionContainer);\n\t\t\t\t\t\tframework.addClass(_controls, 'pswp__ui--fit');\n\t\t\t\t\t}\n\t\t\t\t\tif( _options.addCaptionHTMLFn(item, _fakeCaptionContainer, true) ) {\n\n\t\t\t\t\t\tvar captionSize = _fakeCaptionContainer.clientHeight;\n\t\t\t\t\t\tgap.bottom = parseInt(captionSize,10) || 44;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgap.bottom = bars.top; // if no caption, set size of bottom gap to size of top\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tgap.bottom = bars.bottom === 'auto' ? 0 : bars.bottom;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// height of top bar is static, no need to calculate it\n\t\t\t\tgap.top = bars.top;\n\t\t\t} else {\n\t\t\t\tgap.top = gap.bottom = 0;\n\t\t\t}\n\t\t},\n\t\t_setupIdle = function() {\n\t\t\t// Hide controls when mouse is used\n\t\t\tif(_options.timeToIdle) {\n\t\t\t\t_listen('mouseUsed', function() {\n\t\t\t\t\t\n\t\t\t\t\tframework.bind(document, 'mousemove', _onIdleMouseMove);\n\t\t\t\t\tframework.bind(document, 'mouseout', _onMouseLeaveWindow);\n\n\t\t\t\t\t_idleInterval = setInterval(function() {\n\t\t\t\t\t\t_idleIncrement++;\n\t\t\t\t\t\tif(_idleIncrement === 2) {\n\t\t\t\t\t\t\tui.setIdle(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, _options.timeToIdle / 2);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t_setupHidingControlsDuringGestures = function() {\n\n\t\t\t// Hide controls on vertical drag\n\t\t\t_listen('onVerticalDrag', function(now) {\n\t\t\t\tif(_controlsVisible && now < 0.95) {\n\t\t\t\t\tui.hideControls();\n\t\t\t\t} else if(!_controlsVisible && now >= 0.95) {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Hide controls when pinching to close\n\t\t\tvar pinchControlsHidden;\n\t\t\t_listen('onPinchClose' , function(now) {\n\t\t\t\tif(_controlsVisible && now < 0.9) {\n\t\t\t\t\tui.hideControls();\n\t\t\t\t\tpinchControlsHidden = true;\n\t\t\t\t} else if(pinchControlsHidden && !_controlsVisible && now > 0.9) {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_listen('zoomGestureEnded', function() {\n\t\t\t\tpinchControlsHidden = false;\n\t\t\t\tif(pinchControlsHidden && !_controlsVisible) {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t});\n\n\t\t};\n\n\n\n\tvar _uiElements = [\n\t\t{ \n\t\t\tname: 'caption', \n\t\t\toption: 'captionEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_captionContainer = el; \n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'share-modal', \n\t\t\toption: 'shareEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_shareModal = el;\n\t\t\t},\n\t\t\tonTap: function() {\n\t\t\t\t_toggleShareModal();\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'button--share', \n\t\t\toption: 'shareEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_shareButton = el;\n\t\t\t},\n\t\t\tonTap: function() {\n\t\t\t\t_toggleShareModal();\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'button--zoom', \n\t\t\toption: 'zoomEl',\n\t\t\tonTap: pswp.toggleDesktopZoom\n\t\t},\n\t\t{ \n\t\t\tname: 'counter', \n\t\t\toption: 'counterEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_indexIndicator = el;\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'button--close', \n\t\t\toption: 'closeEl',\n\t\t\tonTap: pswp.close\n\t\t},\n\t\t{ \n\t\t\tname: 'button--arrow--left', \n\t\t\toption: 'arrowEl',\n\t\t\tonTap: pswp.prev\n\t\t},\n\t\t{ \n\t\t\tname: 'button--arrow--right', \n\t\t\toption: 'arrowEl',\n\t\t\tonTap: pswp.next\n\t\t},\n\t\t{ \n\t\t\tname: 'button--fs', \n\t\t\toption: 'fullscreenEl',\n\t\t\tonTap: function() { \n\t\t\t\tif(_fullscrenAPI.isFullscreen()) {\n\t\t\t\t\t_fullscrenAPI.exit();\n\t\t\t\t} else {\n\t\t\t\t\t_fullscrenAPI.enter();\n\t\t\t\t}\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'preloader', \n\t\t\toption: 'preloaderEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_loadingIndicator = el;\n\t\t\t} \n\t\t}\n\n\t];\n\n\tvar _setupUIElements = function() {\n\t\tvar item,\n\t\t\tclassAttr,\n\t\t\tuiElement;\n\n\t\tvar loopThroughChildElements = function(sChildren) {\n\t\t\tif(!sChildren) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar l = sChildren.length;\n\t\t\tfor(var i = 0; i < l; i++) {\n\t\t\t\titem = sChildren[i];\n\t\t\t\tclassAttr = item.className;\n\n\t\t\t\tfor(var a = 0; a < _uiElements.length; a++) {\n\t\t\t\t\tuiElement = _uiElements[a];\n\n\t\t\t\t\tif(classAttr.indexOf('pswp__' + uiElement.name) > -1 ) {\n\n\t\t\t\t\t\tif( _options[uiElement.option] ) { // if element is not disabled from options\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tframework.removeClass(item, 'pswp__element--disabled');\n\t\t\t\t\t\t\tif(uiElement.onInit) {\n\t\t\t\t\t\t\t\tuiElement.onInit(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//item.style.display = 'block';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tframework.addClass(item, 'pswp__element--disabled');\n\t\t\t\t\t\t\t//item.style.display = 'none';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tloopThroughChildElements(_controls.children);\n\n\t\tvar topBar = framework.getChildByClass(_controls, 'pswp__top-bar');\n\t\tif(topBar) {\n\t\t\tloopThroughChildElements( topBar.children );\n\t\t}\n\t};\n\n\n\t\n\n\tui.init = function() {\n\n\t\t// extend options\n\t\tframework.extend(pswp.options, _defaultUIOptions, true);\n\n\t\t// create local link for fast access\n\t\t_options = pswp.options;\n\n\t\t// find pswp__ui element\n\t\t_controls = framework.getChildByClass(pswp.scrollWrap, 'pswp__ui');\n\n\t\t// create local link\n\t\t_listen = pswp.listen;\n\n\n\t\t_setupHidingControlsDuringGestures();\n\n\t\t// update controls when slides change\n\t\t_listen('beforeChange', ui.update);\n\n\t\t// toggle zoom on double-tap\n\t\t_listen('doubleTap', function(point) {\n\t\t\tvar initialZoomLevel = pswp.currItem.initialZoomLevel;\n\t\t\tif(pswp.getZoomLevel() !== initialZoomLevel) {\n\t\t\t\tpswp.zoomTo(initialZoomLevel, point, 333);\n\t\t\t} else {\n\t\t\t\tpswp.zoomTo(_options.getDoubleTapZoom(false, pswp.currItem), point, 333);\n\t\t\t}\n\t\t});\n\n\t\t// Allow text selection in caption\n\t\t_listen('preventDragEvent', function(e, isDown, preventObj) {\n\t\t\tvar t = e.target || e.srcElement;\n\t\t\tif(\n\t\t\t\tt && \n\t\t\t\tt.getAttribute('class') && e.type.indexOf('mouse') > -1 && \n\t\t\t\t( t.getAttribute('class').indexOf('__caption') > 0 || (/(SMALL|STRONG|EM)/i).test(t.tagName) ) \n\t\t\t) {\n\t\t\t\tpreventObj.prevent = false;\n\t\t\t}\n\t\t});\n\n\t\t// bind events for UI\n\t\t_listen('bindEvents', function() {\n\t\t\tframework.bind(_controls, 'pswpTap click', _onControlsTap);\n\t\t\tframework.bind(pswp.scrollWrap, 'pswpTap', ui.onGlobalTap);\n\n\t\t\tif(!pswp.likelyTouchDevice) {\n\t\t\t\tframework.bind(pswp.scrollWrap, 'mouseover', ui.onMouseOver);\n\t\t\t}\n\t\t});\n\n\t\t// unbind events for UI\n\t\t_listen('unbindEvents', function() {\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_toggleShareModal();\n\t\t\t}\n\n\t\t\tif(_idleInterval) {\n\t\t\t\tclearInterval(_idleInterval);\n\t\t\t}\n\t\t\tframework.unbind(document, 'mouseout', _onMouseLeaveWindow);\n\t\t\tframework.unbind(document, 'mousemove', _onIdleMouseMove);\n\t\t\tframework.unbind(_controls, 'pswpTap click', _onControlsTap);\n\t\t\tframework.unbind(pswp.scrollWrap, 'pswpTap', ui.onGlobalTap);\n\t\t\tframework.unbind(pswp.scrollWrap, 'mouseover', ui.onMouseOver);\n\n\t\t\tif(_fullscrenAPI) {\n\t\t\t\tframework.unbind(document, _fullscrenAPI.eventK, ui.updateFullscreen);\n\t\t\t\tif(_fullscrenAPI.isFullscreen()) {\n\t\t\t\t\t_options.hideAnimationDuration = 0;\n\t\t\t\t\t_fullscrenAPI.exit();\n\t\t\t\t}\n\t\t\t\t_fullscrenAPI = null;\n\t\t\t}\n\t\t});\n\n\n\t\t// clean up things when gallery is destroyed\n\t\t_listen('destroy', function() {\n\t\t\tif(_options.captionEl) {\n\t\t\t\tif(_fakeCaptionContainer) {\n\t\t\t\t\t_controls.removeChild(_fakeCaptionContainer);\n\t\t\t\t}\n\t\t\t\tframework.removeClass(_captionContainer, 'pswp__caption--empty');\n\t\t\t}\n\n\t\t\tif(_shareModal) {\n\t\t\t\t_shareModal.children[0].onclick = null;\n\t\t\t}\n\t\t\tframework.removeClass(_controls, 'pswp__ui--over-close');\n\t\t\tframework.addClass( _controls, 'pswp__ui--hidden');\n\t\t\tui.setIdle(false);\n\t\t});\n\t\t\n\n\t\tif(!_options.showAnimationDuration) {\n\t\t\tframework.removeClass( _controls, 'pswp__ui--hidden');\n\t\t}\n\t\t_listen('initialZoomIn', function() {\n\t\t\tif(_options.showAnimationDuration) {\n\t\t\t\tframework.removeClass( _controls, 'pswp__ui--hidden');\n\t\t\t}\n\t\t});\n\t\t_listen('initialZoomOut', function() {\n\t\t\tframework.addClass( _controls, 'pswp__ui--hidden');\n\t\t});\n\n\t\t_listen('parseVerticalMargin', _applyNavBarGaps);\n\t\t\n\t\t_setupUIElements();\n\n\t\tif(_options.shareEl && _shareButton && _shareModal) {\n\t\t\t_shareModalHidden = true;\n\t\t}\n\n\t\t_countNumItems();\n\n\t\t_setupIdle();\n\n\t\t_setupFullscreenAPI();\n\n\t\t_setupLoadingIndicator();\n\t};\n\n\tui.setIdle = function(isIdle) {\n\t\t_isIdle = isIdle;\n\t\t_togglePswpClass(_controls, 'ui--idle', isIdle);\n\t};\n\n\tui.update = function() {\n\t\t// Don't update UI if it's hidden\n\t\tif(_controlsVisible && pswp.currItem) {\n\t\t\t\n\t\t\tui.updateIndexIndicator();\n\n\t\t\tif(_options.captionEl) {\n\t\t\t\t_options.addCaptionHTMLFn(pswp.currItem, _captionContainer);\n\n\t\t\t\t_togglePswpClass(_captionContainer, 'caption--empty', !pswp.currItem.title);\n\t\t\t}\n\n\t\t\t_overlayUIUpdated = true;\n\n\t\t} else {\n\t\t\t_overlayUIUpdated = false;\n\t\t}\n\n\t\tif(!_shareModalHidden) {\n\t\t\t_toggleShareModal();\n\t\t}\n\n\t\t_countNumItems();\n\t};\n\n\tui.updateFullscreen = function(e) {\n\n\t\tif(e) {\n\t\t\t// some browsers change window scroll position during the fullscreen\n\t\t\t// so PhotoSwipe updates it just in case\n\t\t\tsetTimeout(function() {\n\t\t\t\tpswp.setScrollOffset( 0, framework.getScrollY() );\n\t\t\t}, 50);\n\t\t}\n\t\t\n\t\t// toogle pswp--fs class on root element\n\t\tframework[ (_fullscrenAPI.isFullscreen() ? 'add' : 'remove') + 'Class' ](pswp.template, 'pswp--fs');\n\t};\n\n\tui.updateIndexIndicator = function() {\n\t\tif(_options.counterEl) {\n\t\t\t_indexIndicator.innerHTML = (pswp.getCurrentIndex()+1) + \n\t\t\t\t\t\t\t\t\t\t_options.indexIndicatorSep + \n\t\t\t\t\t\t\t\t\t\t_options.getNumItemsFn();\n\t\t}\n\t};\n\t\n\tui.onGlobalTap = function(e) {\n\t\te = e || window.event;\n\t\tvar target = e.target || e.srcElement;\n\n\t\tif(_blockControlsTap) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(e.detail && e.detail.pointerType === 'mouse') {\n\n\t\t\t// close gallery if clicked outside of the image\n\t\t\tif(_hasCloseClass(target)) {\n\t\t\t\tpswp.close();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(framework.hasClass(target, 'pswp__img')) {\n\t\t\t\tif(pswp.getZoomLevel() === 1 && pswp.getZoomLevel() <= pswp.currItem.fitRatio) {\n\t\t\t\t\tif(_options.clickToCloseNonZoomable) {\n\t\t\t\t\t\tpswp.close();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpswp.toggleDesktopZoom(e.detail.releasePoint);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t} else {\n\n\t\t\t// tap anywhere (except buttons) to toggle visibility of controls\n\t\t\tif(_options.tapToToggleControls) {\n\t\t\t\tif(_controlsVisible) {\n\t\t\t\t\tui.hideControls();\n\t\t\t\t} else {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// tap to close gallery\n\t\t\tif(_options.tapToClose && (framework.hasClass(target, 'pswp__img') || _hasCloseClass(target)) ) {\n\t\t\t\tpswp.close();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t}\n\t};\n\tui.onMouseOver = function(e) {\n\t\te = e || window.event;\n\t\tvar target = e.target || e.srcElement;\n\n\t\t// add class when mouse is over an element that should close the gallery\n\t\t_togglePswpClass(_controls, 'ui--over-close', _hasCloseClass(target));\n\t};\n\n\tui.hideControls = function() {\n\t\tframework.addClass(_controls,'pswp__ui--hidden');\n\t\t_controlsVisible = false;\n\t};\n\n\tui.showControls = function() {\n\t\t_controlsVisible = true;\n\t\tif(!_overlayUIUpdated) {\n\t\t\tui.update();\n\t\t}\n\t\tframework.removeClass(_controls,'pswp__ui--hidden');\n\t};\n\n\tui.supportsFullscreen = function() {\n\t\tvar d = document;\n\t\treturn !!(d.exitFullscreen || d.mozCancelFullScreen || d.webkitExitFullscreen || d.msExitFullscreen);\n\t};\n\n\tui.getFullscreenAPI = function() {\n\t\tvar dE = document.documentElement,\n\t\t\tapi,\n\t\t\ttF = 'fullscreenchange';\n\n\t\tif (dE.requestFullscreen) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'requestFullscreen',\n\t\t\t\texitK: 'exitFullscreen',\n\t\t\t\telementK: 'fullscreenElement',\n\t\t\t\teventK: tF\n\t\t\t};\n\n\t\t} else if(dE.mozRequestFullScreen ) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'mozRequestFullScreen',\n\t\t\t\texitK: 'mozCancelFullScreen',\n\t\t\t\telementK: 'mozFullScreenElement',\n\t\t\t\teventK: 'moz' + tF\n\t\t\t};\n\n\t\t\t\n\n\t\t} else if(dE.webkitRequestFullscreen) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'webkitRequestFullscreen',\n\t\t\t\texitK: 'webkitExitFullscreen',\n\t\t\t\telementK: 'webkitFullscreenElement',\n\t\t\t\teventK: 'webkit' + tF\n\t\t\t};\n\n\t\t} else if(dE.msRequestFullscreen) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'msRequestFullscreen',\n\t\t\t\texitK: 'msExitFullscreen',\n\t\t\t\telementK: 'msFullscreenElement',\n\t\t\t\teventK: 'MSFullscreenChange'\n\t\t\t};\n\t\t}\n\n\t\tif(api) {\n\t\t\tapi.enter = function() { \n\t\t\t\t// disable close-on-scroll in fullscreen\n\t\t\t\t_initalCloseOnScrollValue = _options.closeOnScroll; \n\t\t\t\t_options.closeOnScroll = false; \n\n\t\t\t\tif(this.enterK === 'webkitRequestFullscreen') {\n\t\t\t\t\tpswp.template[this.enterK]( Element.ALLOW_KEYBOARD_INPUT );\n\t\t\t\t} else {\n\t\t\t\t\treturn pswp.template[this.enterK](); \n\t\t\t\t}\n\t\t\t};\n\t\t\tapi.exit = function() { \n\t\t\t\t_options.closeOnScroll = _initalCloseOnScrollValue;\n\n\t\t\t\treturn document[this.exitK](); \n\n\t\t\t};\n\t\t\tapi.isFullscreen = function() { return document[this.elementK]; };\n\t\t}\n\n\t\treturn api;\n\t};\n\n\n\n};\nreturn PhotoSwipeUI_Default;\n\n\n});\n\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! PhotoSwipe - v4.1.3 - 2019-01-08\n* http://photoswipe.com\n* Copyright (c) 2019 Dmitry Semenov; */\n(function (root, factory) { \n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t} else {\n\t\troot.PhotoSwipe = factory();\n\t}\n})(this, function () {\n\n\t'use strict';\n\tvar PhotoSwipe = function(template, UiClass, items, options){\n\n/*>>framework-bridge*/\n/**\n *\n * Set of generic functions used by gallery.\n * \n * You're free to modify anything here as long as functionality is kept.\n * \n */\nvar framework = {\n\tfeatures: null,\n\tbind: function(target, type, listener, unbind) {\n\t\tvar methodName = (unbind ? 'remove' : 'add') + 'EventListener';\n\t\ttype = type.split(' ');\n\t\tfor(var i = 0; i < type.length; i++) {\n\t\t\tif(type[i]) {\n\t\t\t\ttarget[methodName]( type[i], listener, false);\n\t\t\t}\n\t\t}\n\t},\n\tisArray: function(obj) {\n\t\treturn (obj instanceof Array);\n\t},\n\tcreateEl: function(classes, tag) {\n\t\tvar el = document.createElement(tag || 'div');\n\t\tif(classes) {\n\t\t\tel.className = classes;\n\t\t}\n\t\treturn el;\n\t},\n\tgetScrollY: function() {\n\t\tvar yOffset = window.pageYOffset;\n\t\treturn yOffset !== undefined ? yOffset : document.documentElement.scrollTop;\n\t},\n\tunbind: function(target, type, listener) {\n\t\tframework.bind(target,type,listener,true);\n\t},\n\tremoveClass: function(el, className) {\n\t\tvar reg = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\n\t\tel.className = el.className.replace(reg, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, ''); \n\t},\n\taddClass: function(el, className) {\n\t\tif( !framework.hasClass(el,className) ) {\n\t\t\tel.className += (el.className ? ' ' : '') + className;\n\t\t}\n\t},\n\thasClass: function(el, className) {\n\t\treturn el.className && new RegExp('(^|\\\\s)' + className + '(\\\\s|$)').test(el.className);\n\t},\n\tgetChildByClass: function(parentEl, childClassName) {\n\t\tvar node = parentEl.firstChild;\n\t\twhile(node) {\n\t\t\tif( framework.hasClass(node, childClassName) ) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t\tnode = node.nextSibling;\n\t\t}\n\t},\n\tarraySearch: function(array, value, key) {\n\t\tvar i = array.length;\n\t\twhile(i--) {\n\t\t\tif(array[i][key] === value) {\n\t\t\t\treturn i;\n\t\t\t} \n\t\t}\n\t\treturn -1;\n\t},\n\textend: function(o1, o2, preventOverwrite) {\n\t\tfor (var prop in o2) {\n\t\t\tif (o2.hasOwnProperty(prop)) {\n\t\t\t\tif(preventOverwrite && o1.hasOwnProperty(prop)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\to1[prop] = o2[prop];\n\t\t\t}\n\t\t}\n\t},\n\teasing: {\n\t\tsine: {\n\t\t\tout: function(k) {\n\t\t\t\treturn Math.sin(k * (Math.PI / 2));\n\t\t\t},\n\t\t\tinOut: function(k) {\n\t\t\t\treturn - (Math.cos(Math.PI * k) - 1) / 2;\n\t\t\t}\n\t\t},\n\t\tcubic: {\n\t\t\tout: function(k) {\n\t\t\t\treturn --k * k * k + 1;\n\t\t\t}\n\t\t}\n\t\t/*\n\t\t\telastic: {\n\t\t\t\tout: function ( k ) {\n\n\t\t\t\t\tvar s, a = 0.1, p = 0.4;\n\t\t\t\t\tif ( k === 0 ) return 0;\n\t\t\t\t\tif ( k === 1 ) return 1;\n\t\t\t\t\tif ( !a || a < 1 ) { a = 1; s = p / 4; }\n\t\t\t\t\telse s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );\n\t\t\t\t\treturn ( a * Math.pow( 2, - 10 * k) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) + 1 );\n\n\t\t\t\t},\n\t\t\t},\n\t\t\tback: {\n\t\t\t\tout: function ( k ) {\n\t\t\t\t\tvar s = 1.70158;\n\t\t\t\t\treturn --k * k * ( ( s + 1 ) * k + s ) + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t*/\n\t},\n\n\t/**\n\t * \n\t * @return {object}\n\t * \n\t * {\n\t * raf : request animation frame function\n\t * caf : cancel animation frame function\n\t * transfrom : transform property key (with vendor), or null if not supported\n\t * oldIE : IE8 or below\n\t * }\n\t * \n\t */\n\tdetectFeatures: function() {\n\t\tif(framework.features) {\n\t\t\treturn framework.features;\n\t\t}\n\t\tvar helperEl = framework.createEl(),\n\t\t\thelperStyle = helperEl.style,\n\t\t\tvendor = '',\n\t\t\tfeatures = {};\n\n\t\t// IE8 and below\n\t\tfeatures.oldIE = document.all && !document.addEventListener;\n\n\t\tfeatures.touch = 'ontouchstart' in window;\n\n\t\tif(window.requestAnimationFrame) {\n\t\t\tfeatures.raf = window.requestAnimationFrame;\n\t\t\tfeatures.caf = window.cancelAnimationFrame;\n\t\t}\n\n\t\tfeatures.pointerEvent = !!(window.PointerEvent) || navigator.msPointerEnabled;\n\n\t\t// fix false-positive detection of old Android in new IE\n\t\t// (IE11 ua string contains \"Android 4.0\")\n\t\t\n\t\tif(!features.pointerEvent) { \n\n\t\t\tvar ua = navigator.userAgent;\n\n\t\t\t// Detect if device is iPhone or iPod and if it's older than iOS 8\n\t\t\t// http://stackoverflow.com/a/14223920\n\t\t\t// \n\t\t\t// This detection is made because of buggy top/bottom toolbars\n\t\t\t// that don't trigger window.resize event.\n\t\t\t// For more info refer to _isFixedPosition variable in core.js\n\n\t\t\tif (/iP(hone|od)/.test(navigator.platform)) {\n\t\t\t\tvar v = (navigator.appVersion).match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n\t\t\t\tif(v && v.length > 0) {\n\t\t\t\t\tv = parseInt(v[1], 10);\n\t\t\t\t\tif(v >= 1 && v < 8 ) {\n\t\t\t\t\t\tfeatures.isOldIOSPhone = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Detect old Android (before KitKat)\n\t\t\t// due to bugs related to position:fixed\n\t\t\t// http://stackoverflow.com/questions/7184573/pick-up-the-android-version-in-the-browser-by-javascript\n\t\t\t\n\t\t\tvar match = ua.match(/Android\\s([0-9\\.]*)/);\n\t\t\tvar androidversion = match ? match[1] : 0;\n\t\t\tandroidversion = parseFloat(androidversion);\n\t\t\tif(androidversion >= 1 ) {\n\t\t\t\tif(androidversion < 4.4) {\n\t\t\t\t\tfeatures.isOldAndroid = true; // for fixed position bug & performance\n\t\t\t\t}\n\t\t\t\tfeatures.androidVersion = androidversion; // for touchend bug\n\t\t\t}\t\n\t\t\tfeatures.isMobileOpera = /opera mini|opera mobi/i.test(ua);\n\n\t\t\t// p.s. yes, yes, UA sniffing is bad, propose your solution for above bugs.\n\t\t}\n\t\t\n\t\tvar styleChecks = ['transform', 'perspective', 'animationName'],\n\t\t\tvendors = ['', 'webkit','Moz','ms','O'],\n\t\t\tstyleCheckItem,\n\t\t\tstyleName;\n\n\t\tfor(var i = 0; i < 4; i++) {\n\t\t\tvendor = vendors[i];\n\n\t\t\tfor(var a = 0; a < 3; a++) {\n\t\t\t\tstyleCheckItem = styleChecks[a];\n\n\t\t\t\t// uppercase first letter of property name, if vendor is present\n\t\t\t\tstyleName = vendor + (vendor ? \n\t\t\t\t\t\t\t\t\t\tstyleCheckItem.charAt(0).toUpperCase() + styleCheckItem.slice(1) : \n\t\t\t\t\t\t\t\t\t\tstyleCheckItem);\n\t\t\t\n\t\t\t\tif(!features[styleCheckItem] && styleName in helperStyle ) {\n\t\t\t\t\tfeatures[styleCheckItem] = styleName;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(vendor && !features.raf) {\n\t\t\t\tvendor = vendor.toLowerCase();\n\t\t\t\tfeatures.raf = window[vendor+'RequestAnimationFrame'];\n\t\t\t\tif(features.raf) {\n\t\t\t\t\tfeatures.caf = window[vendor+'CancelAnimationFrame'] || \n\t\t\t\t\t\t\t\t\twindow[vendor+'CancelRequestAnimationFrame'];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\t\n\t\tif(!features.raf) {\n\t\t\tvar lastTime = 0;\n\t\t\tfeatures.raf = function(fn) {\n\t\t\t\tvar currTime = new Date().getTime();\n\t\t\t\tvar timeToCall = Math.max(0, 16 - (currTime - lastTime));\n\t\t\t\tvar id = window.setTimeout(function() { fn(currTime + timeToCall); }, timeToCall);\n\t\t\t\tlastTime = currTime + timeToCall;\n\t\t\t\treturn id;\n\t\t\t};\n\t\t\tfeatures.caf = function(id) { clearTimeout(id); };\n\t\t}\n\n\t\t// Detect SVG support\n\t\tfeatures.svg = !!document.createElementNS && \n\t\t\t\t\t\t!!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect;\n\n\t\tframework.features = features;\n\n\t\treturn features;\n\t}\n};\n\nframework.detectFeatures();\n\n// Override addEventListener for old versions of IE\nif(framework.features.oldIE) {\n\n\tframework.bind = function(target, type, listener, unbind) {\n\t\t\n\t\ttype = type.split(' ');\n\n\t\tvar methodName = (unbind ? 'detach' : 'attach') + 'Event',\n\t\t\tevName,\n\t\t\t_handleEv = function() {\n\t\t\t\tlistener.handleEvent.call(listener);\n\t\t\t};\n\n\t\tfor(var i = 0; i < type.length; i++) {\n\t\t\tevName = type[i];\n\t\t\tif(evName) {\n\n\t\t\t\tif(typeof listener === 'object' && listener.handleEvent) {\n\t\t\t\t\tif(!unbind) {\n\t\t\t\t\t\tlistener['oldIE' + evName] = _handleEv;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(!listener['oldIE' + evName]) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\ttarget[methodName]( 'on' + evName, listener['oldIE' + evName]);\n\t\t\t\t} else {\n\t\t\t\t\ttarget[methodName]( 'on' + evName, listener);\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t};\n\t\n}\n\n/*>>framework-bridge*/\n\n/*>>core*/\n//function(template, UiClass, items, options)\n\nvar self = this;\n\n/**\n * Static vars, don't change unless you know what you're doing.\n */\nvar DOUBLE_TAP_RADIUS = 25, \n\tNUM_HOLDERS = 3;\n\n/**\n * Options\n */\nvar _options = {\n\tallowPanToNext:true,\n\tspacing: 0.12,\n\tbgOpacity: 1,\n\tmouseUsed: false,\n\tloop: true,\n\tpinchToClose: true,\n\tcloseOnScroll: true,\n\tcloseOnVerticalDrag: true,\n\tverticalDragRange: 0.75,\n\thideAnimationDuration: 333,\n\tshowAnimationDuration: 333,\n\tshowHideOpacity: false,\n\tfocus: true,\n\tescKey: true,\n\tarrowKeys: true,\n\tmainScrollEndFriction: 0.35,\n\tpanEndFriction: 0.35,\n\tisClickableElement: function(el) {\n return el.tagName === 'A';\n },\n getDoubleTapZoom: function(isMouseClick, item) {\n \tif(isMouseClick) {\n \t\treturn 1;\n \t} else {\n \t\treturn item.initialZoomLevel < 0.7 ? 1 : 1.33;\n \t}\n },\n maxSpreadZoom: 1.33,\n\tmodal: true,\n\n\t// not fully implemented yet\n\tscaleMode: 'fit' // TODO\n};\nframework.extend(_options, options);\n\n\n/**\n * Private helper variables & functions\n */\n\nvar _getEmptyPoint = function() { \n\t\treturn {x:0,y:0}; \n\t};\n\nvar _isOpen,\n\t_isDestroying,\n\t_closedByScroll,\n\t_currentItemIndex,\n\t_containerStyle,\n\t_containerShiftIndex,\n\t_currPanDist = _getEmptyPoint(),\n\t_startPanOffset = _getEmptyPoint(),\n\t_panOffset = _getEmptyPoint(),\n\t_upMoveEvents, // drag move, drag end & drag cancel events array\n\t_downEvents, // drag start events array\n\t_globalEventHandlers,\n\t_viewportSize = {},\n\t_currZoomLevel,\n\t_startZoomLevel,\n\t_translatePrefix,\n\t_translateSufix,\n\t_updateSizeInterval,\n\t_itemsNeedUpdate,\n\t_currPositionIndex = 0,\n\t_offset = {},\n\t_slideSize = _getEmptyPoint(), // size of slide area, including spacing\n\t_itemHolders,\n\t_prevItemIndex,\n\t_indexDiff = 0, // difference of indexes since last content update\n\t_dragStartEvent,\n\t_dragMoveEvent,\n\t_dragEndEvent,\n\t_dragCancelEvent,\n\t_transformKey,\n\t_pointerEventEnabled,\n\t_isFixedPosition = true,\n\t_likelyTouchDevice,\n\t_modules = [],\n\t_requestAF,\n\t_cancelAF,\n\t_initalClassName,\n\t_initalWindowScrollY,\n\t_oldIE,\n\t_currentWindowScrollY,\n\t_features,\n\t_windowVisibleSize = {},\n\t_renderMaxResolution = false,\n\t_orientationChangeTimeout,\n\n\n\t// Registers PhotoSWipe module (History, Controller ...)\n\t_registerModule = function(name, module) {\n\t\tframework.extend(self, module.publicMethods);\n\t\t_modules.push(name);\n\t},\n\n\t_getLoopedId = function(index) {\n\t\tvar numSlides = _getNumItems();\n\t\tif(index > numSlides - 1) {\n\t\t\treturn index - numSlides;\n\t\t} else if(index < 0) {\n\t\t\treturn numSlides + index;\n\t\t}\n\t\treturn index;\n\t},\n\t\n\t// Micro bind/trigger\n\t_listeners = {},\n\t_listen = function(name, fn) {\n\t\tif(!_listeners[name]) {\n\t\t\t_listeners[name] = [];\n\t\t}\n\t\treturn _listeners[name].push(fn);\n\t},\n\t_shout = function(name) {\n\t\tvar listeners = _listeners[name];\n\n\t\tif(listeners) {\n\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\targs.shift();\n\n\t\t\tfor(var i = 0; i < listeners.length; i++) {\n\t\t\t\tlisteners[i].apply(self, args);\n\t\t\t}\n\t\t}\n\t},\n\n\t_getCurrentTime = function() {\n\t\treturn new Date().getTime();\n\t},\n\t_applyBgOpacity = function(opacity) {\n\t\t_bgOpacity = opacity;\n\t\tself.bg.style.opacity = opacity * _options.bgOpacity;\n\t},\n\n\t_applyZoomTransform = function(styleObj,x,y,zoom,item) {\n\t\tif(!_renderMaxResolution || (item && item !== self.currItem) ) {\n\t\t\tzoom = zoom / (item ? item.fitRatio : self.currItem.fitRatio);\t\n\t\t}\n\t\t\t\n\t\tstyleObj[_transformKey] = _translatePrefix + x + 'px, ' + y + 'px' + _translateSufix + ' scale(' + zoom + ')';\n\t},\n\t_applyCurrentZoomPan = function( allowRenderResolution ) {\n\t\tif(_currZoomElementStyle) {\n\n\t\t\tif(allowRenderResolution) {\n\t\t\t\tif(_currZoomLevel > self.currItem.fitRatio) {\n\t\t\t\t\tif(!_renderMaxResolution) {\n\t\t\t\t\t\t_setImageSize(self.currItem, false, true);\n\t\t\t\t\t\t_renderMaxResolution = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(_renderMaxResolution) {\n\t\t\t\t\t\t_setImageSize(self.currItem);\n\t\t\t\t\t\t_renderMaxResolution = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\n\t\t\t_applyZoomTransform(_currZoomElementStyle, _panOffset.x, _panOffset.y, _currZoomLevel);\n\t\t}\n\t},\n\t_applyZoomPanToItem = function(item) {\n\t\tif(item.container) {\n\n\t\t\t_applyZoomTransform(item.container.style, \n\t\t\t\t\t\t\t\titem.initialPosition.x, \n\t\t\t\t\t\t\t\titem.initialPosition.y, \n\t\t\t\t\t\t\t\titem.initialZoomLevel,\n\t\t\t\t\t\t\t\titem);\n\t\t}\n\t},\n\t_setTranslateX = function(x, elStyle) {\n\t\telStyle[_transformKey] = _translatePrefix + x + 'px, 0px' + _translateSufix;\n\t},\n\t_moveMainScroll = function(x, dragging) {\n\n\t\tif(!_options.loop && dragging) {\n\t\t\tvar newSlideIndexOffset = _currentItemIndex + (_slideSize.x * _currPositionIndex - x) / _slideSize.x,\n\t\t\t\tdelta = Math.round(x - _mainScrollPos.x);\n\n\t\t\tif( (newSlideIndexOffset < 0 && delta > 0) || \n\t\t\t\t(newSlideIndexOffset >= _getNumItems() - 1 && delta < 0) ) {\n\t\t\t\tx = _mainScrollPos.x + delta * _options.mainScrollEndFriction;\n\t\t\t} \n\t\t}\n\t\t\n\t\t_mainScrollPos.x = x;\n\t\t_setTranslateX(x, _containerStyle);\n\t},\n\t_calculatePanOffset = function(axis, zoomLevel) {\n\t\tvar m = _midZoomPoint[axis] - _offset[axis];\n\t\treturn _startPanOffset[axis] + _currPanDist[axis] + m - m * ( zoomLevel / _startZoomLevel );\n\t},\n\t\n\t_equalizePoints = function(p1, p2) {\n\t\tp1.x = p2.x;\n\t\tp1.y = p2.y;\n\t\tif(p2.id) {\n\t\t\tp1.id = p2.id;\n\t\t}\n\t},\n\t_roundPoint = function(p) {\n\t\tp.x = Math.round(p.x);\n\t\tp.y = Math.round(p.y);\n\t},\n\n\t_mouseMoveTimeout = null,\n\t_onFirstMouseMove = function() {\n\t\t// Wait until mouse move event is fired at least twice during 100ms\n\t\t// We do this, because some mobile browsers trigger it on touchstart\n\t\tif(_mouseMoveTimeout ) { \n\t\t\tframework.unbind(document, 'mousemove', _onFirstMouseMove);\n\t\t\tframework.addClass(template, 'pswp--has_mouse');\n\t\t\t_options.mouseUsed = true;\n\t\t\t_shout('mouseUsed');\n\t\t}\n\t\t_mouseMoveTimeout = setTimeout(function() {\n\t\t\t_mouseMoveTimeout = null;\n\t\t}, 100);\n\t},\n\n\t_bindEvents = function() {\n\t\tframework.bind(document, 'keydown', self);\n\n\t\tif(_features.transform) {\n\t\t\t// don't bind click event in browsers that don't support transform (mostly IE8)\n\t\t\tframework.bind(self.scrollWrap, 'click', self);\n\t\t}\n\t\t\n\n\t\tif(!_options.mouseUsed) {\n\t\t\tframework.bind(document, 'mousemove', _onFirstMouseMove);\n\t\t}\n\n\t\tframework.bind(window, 'resize scroll orientationchange', self);\n\n\t\t_shout('bindEvents');\n\t},\n\n\t_unbindEvents = function() {\n\t\tframework.unbind(window, 'resize scroll orientationchange', self);\n\t\tframework.unbind(window, 'scroll', _globalEventHandlers.scroll);\n\t\tframework.unbind(document, 'keydown', self);\n\t\tframework.unbind(document, 'mousemove', _onFirstMouseMove);\n\n\t\tif(_features.transform) {\n\t\t\tframework.unbind(self.scrollWrap, 'click', self);\n\t\t}\n\n\t\tif(_isDragging) {\n\t\t\tframework.unbind(window, _upMoveEvents, self);\n\t\t}\n\n\t\tclearTimeout(_orientationChangeTimeout);\n\n\t\t_shout('unbindEvents');\n\t},\n\t\n\t_calculatePanBounds = function(zoomLevel, update) {\n\t\tvar bounds = _calculateItemSize( self.currItem, _viewportSize, zoomLevel );\n\t\tif(update) {\n\t\t\t_currPanBounds = bounds;\n\t\t}\n\t\treturn bounds;\n\t},\n\t\n\t_getMinZoomLevel = function(item) {\n\t\tif(!item) {\n\t\t\titem = self.currItem;\n\t\t}\n\t\treturn item.initialZoomLevel;\n\t},\n\t_getMaxZoomLevel = function(item) {\n\t\tif(!item) {\n\t\t\titem = self.currItem;\n\t\t}\n\t\treturn item.w > 0 ? _options.maxSpreadZoom : 1;\n\t},\n\n\t// Return true if offset is out of the bounds\n\t_modifyDestPanOffset = function(axis, destPanBounds, destPanOffset, destZoomLevel) {\n\t\tif(destZoomLevel === self.currItem.initialZoomLevel) {\n\t\t\tdestPanOffset[axis] = self.currItem.initialPosition[axis];\n\t\t\treturn true;\n\t\t} else {\n\t\t\tdestPanOffset[axis] = _calculatePanOffset(axis, destZoomLevel); \n\n\t\t\tif(destPanOffset[axis] > destPanBounds.min[axis]) {\n\t\t\t\tdestPanOffset[axis] = destPanBounds.min[axis];\n\t\t\t\treturn true;\n\t\t\t} else if(destPanOffset[axis] < destPanBounds.max[axis] ) {\n\t\t\t\tdestPanOffset[axis] = destPanBounds.max[axis];\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\n\t_setupTransforms = function() {\n\n\t\tif(_transformKey) {\n\t\t\t// setup 3d transforms\n\t\t\tvar allow3dTransform = _features.perspective && !_likelyTouchDevice;\n\t\t\t_translatePrefix = 'translate' + (allow3dTransform ? '3d(' : '(');\n\t\t\t_translateSufix = _features.perspective ? ', 0px)' : ')';\t\n\t\t\treturn;\n\t\t}\n\n\t\t// Override zoom/pan/move functions in case old browser is used (most likely IE)\n\t\t// (so they use left/top/width/height, instead of CSS transform)\n\t\n\t\t_transformKey = 'left';\n\t\tframework.addClass(template, 'pswp--ie');\n\n\t\t_setTranslateX = function(x, elStyle) {\n\t\t\telStyle.left = x + 'px';\n\t\t};\n\t\t_applyZoomPanToItem = function(item) {\n\n\t\t\tvar zoomRatio = item.fitRatio > 1 ? 1 : item.fitRatio,\n\t\t\t\ts = item.container.style,\n\t\t\t\tw = zoomRatio * item.w,\n\t\t\t\th = zoomRatio * item.h;\n\n\t\t\ts.width = w + 'px';\n\t\t\ts.height = h + 'px';\n\t\t\ts.left = item.initialPosition.x + 'px';\n\t\t\ts.top = item.initialPosition.y + 'px';\n\n\t\t};\n\t\t_applyCurrentZoomPan = function() {\n\t\t\tif(_currZoomElementStyle) {\n\n\t\t\t\tvar s = _currZoomElementStyle,\n\t\t\t\t\titem = self.currItem,\n\t\t\t\t\tzoomRatio = item.fitRatio > 1 ? 1 : item.fitRatio,\n\t\t\t\t\tw = zoomRatio * item.w,\n\t\t\t\t\th = zoomRatio * item.h;\n\n\t\t\t\ts.width = w + 'px';\n\t\t\t\ts.height = h + 'px';\n\n\n\t\t\t\ts.left = _panOffset.x + 'px';\n\t\t\t\ts.top = _panOffset.y + 'px';\n\t\t\t}\n\t\t\t\n\t\t};\n\t},\n\n\t_onKeyDown = function(e) {\n\t\tvar keydownAction = '';\n\t\tif(_options.escKey && e.keyCode === 27) { \n\t\t\tkeydownAction = 'close';\n\t\t} else if(_options.arrowKeys) {\n\t\t\tif(e.keyCode === 37) {\n\t\t\t\tkeydownAction = 'prev';\n\t\t\t} else if(e.keyCode === 39) { \n\t\t\t\tkeydownAction = 'next';\n\t\t\t}\n\t\t}\n\n\t\tif(keydownAction) {\n\t\t\t// don't do anything if special key pressed to prevent from overriding default browser actions\n\t\t\t// e.g. in Chrome on Mac cmd+arrow-left returns to previous page\n\t\t\tif( !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey ) {\n\t\t\t\tif(e.preventDefault) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t} else {\n\t\t\t\t\te.returnValue = false;\n\t\t\t\t} \n\t\t\t\tself[keydownAction]();\n\t\t\t}\n\t\t}\n\t},\n\n\t_onGlobalClick = function(e) {\n\t\tif(!e) {\n\t\t\treturn;\n\t\t}\n\n\t\t// don't allow click event to pass through when triggering after drag or some other gesture\n\t\tif(_moved || _zoomStarted || _mainScrollAnimating || _verticalDragInitiated) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\n\t_updatePageScrollOffset = function() {\n\t\tself.setScrollOffset(0, framework.getScrollY());\t\t\n\t};\n\t\n\n\n\t\n\n\n\n// Micro animation engine\nvar _animations = {},\n\t_numAnimations = 0,\n\t_stopAnimation = function(name) {\n\t\tif(_animations[name]) {\n\t\t\tif(_animations[name].raf) {\n\t\t\t\t_cancelAF( _animations[name].raf );\n\t\t\t}\n\t\t\t_numAnimations--;\n\t\t\tdelete _animations[name];\n\t\t}\n\t},\n\t_registerStartAnimation = function(name) {\n\t\tif(_animations[name]) {\n\t\t\t_stopAnimation(name);\n\t\t}\n\t\tif(!_animations[name]) {\n\t\t\t_numAnimations++;\n\t\t\t_animations[name] = {};\n\t\t}\n\t},\n\t_stopAllAnimations = function() {\n\t\tfor (var prop in _animations) {\n\n\t\t\tif( _animations.hasOwnProperty( prop ) ) {\n\t\t\t\t_stopAnimation(prop);\n\t\t\t} \n\t\t\t\n\t\t}\n\t},\n\t_animateProp = function(name, b, endProp, d, easingFn, onUpdate, onComplete) {\n\t\tvar startAnimTime = _getCurrentTime(), t;\n\t\t_registerStartAnimation(name);\n\n\t\tvar animloop = function(){\n\t\t\tif ( _animations[name] ) {\n\t\t\t\t\n\t\t\t\tt = _getCurrentTime() - startAnimTime; // time diff\n\t\t\t\t//b - beginning (start prop)\n\t\t\t\t//d - anim duration\n\n\t\t\t\tif ( t >= d ) {\n\t\t\t\t\t_stopAnimation(name);\n\t\t\t\t\tonUpdate(endProp);\n\t\t\t\t\tif(onComplete) {\n\t\t\t\t\t\tonComplete();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonUpdate( (endProp - b) * easingFn(t/d) + b );\n\n\t\t\t\t_animations[name].raf = _requestAF(animloop);\n\t\t\t}\n\t\t};\n\t\tanimloop();\n\t};\n\t\n\n\nvar publicMethods = {\n\n\t// make a few local variables and functions public\n\tshout: _shout,\n\tlisten: _listen,\n\tviewportSize: _viewportSize,\n\toptions: _options,\n\n\tisMainScrollAnimating: function() {\n\t\treturn _mainScrollAnimating;\n\t},\n\tgetZoomLevel: function() {\n\t\treturn _currZoomLevel;\n\t},\n\tgetCurrentIndex: function() {\n\t\treturn _currentItemIndex;\n\t},\n\tisDragging: function() {\n\t\treturn _isDragging;\n\t},\t\n\tisZooming: function() {\n\t\treturn _isZooming;\n\t},\n\tsetScrollOffset: function(x,y) {\n\t\t_offset.x = x;\n\t\t_currentWindowScrollY = _offset.y = y;\n\t\t_shout('updateScrollOffset', _offset);\n\t},\n\tapplyZoomPan: function(zoomLevel,panX,panY,allowRenderResolution) {\n\t\t_panOffset.x = panX;\n\t\t_panOffset.y = panY;\n\t\t_currZoomLevel = zoomLevel;\n\t\t_applyCurrentZoomPan( allowRenderResolution );\n\t},\n\n\tinit: function() {\n\n\t\tif(_isOpen || _isDestroying) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar i;\n\n\t\tself.framework = framework; // basic functionality\n\t\tself.template = template; // root DOM element of PhotoSwipe\n\t\tself.bg = framework.getChildByClass(template, 'pswp__bg');\n\n\t\t_initalClassName = template.className;\n\t\t_isOpen = true;\n\t\t\t\t\n\t\t_features = framework.detectFeatures();\n\t\t_requestAF = _features.raf;\n\t\t_cancelAF = _features.caf;\n\t\t_transformKey = _features.transform;\n\t\t_oldIE = _features.oldIE;\n\t\t\n\t\tself.scrollWrap = framework.getChildByClass(template, 'pswp__scroll-wrap');\n\t\tself.container = framework.getChildByClass(self.scrollWrap, 'pswp__container');\n\n\t\t_containerStyle = self.container.style; // for fast access\n\n\t\t// Objects that hold slides (there are only 3 in DOM)\n\t\tself.itemHolders = _itemHolders = [\n\t\t\t{el:self.container.children[0] , wrap:0, index: -1},\n\t\t\t{el:self.container.children[1] , wrap:0, index: -1},\n\t\t\t{el:self.container.children[2] , wrap:0, index: -1}\n\t\t];\n\n\t\t// hide nearby item holders until initial zoom animation finishes (to avoid extra Paints)\n\t\t_itemHolders[0].el.style.display = _itemHolders[2].el.style.display = 'none';\n\n\t\t_setupTransforms();\n\n\t\t// Setup global events\n\t\t_globalEventHandlers = {\n\t\t\tresize: self.updateSize,\n\n\t\t\t// Fixes: iOS 10.3 resize event\n\t\t\t// does not update scrollWrap.clientWidth instantly after resize\n\t\t\t// https://github.com/dimsemenov/PhotoSwipe/issues/1315\n\t\t\torientationchange: function() {\n\t\t\t\tclearTimeout(_orientationChangeTimeout);\n\t\t\t\t_orientationChangeTimeout = setTimeout(function() {\n\t\t\t\t\tif(_viewportSize.x !== self.scrollWrap.clientWidth) {\n\t\t\t\t\t\tself.updateSize();\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\t\t\t},\n\t\t\tscroll: _updatePageScrollOffset,\n\t\t\tkeydown: _onKeyDown,\n\t\t\tclick: _onGlobalClick\n\t\t};\n\n\t\t// disable show/hide effects on old browsers that don't support CSS animations or transforms, \n\t\t// old IOS, Android and Opera mobile. Blackberry seems to work fine, even older models.\n\t\tvar oldPhone = _features.isOldIOSPhone || _features.isOldAndroid || _features.isMobileOpera;\n\t\tif(!_features.animationName || !_features.transform || oldPhone) {\n\t\t\t_options.showAnimationDuration = _options.hideAnimationDuration = 0;\n\t\t}\n\n\t\t// init modules\n\t\tfor(i = 0; i < _modules.length; i++) {\n\t\t\tself['init' + _modules[i]]();\n\t\t}\n\t\t\n\t\t// init\n\t\tif(UiClass) {\n\t\t\tvar ui = self.ui = new UiClass(self, framework);\n\t\t\tui.init();\n\t\t}\n\n\t\t_shout('firstUpdate');\n\t\t_currentItemIndex = _currentItemIndex || _options.index || 0;\n\t\t// validate index\n\t\tif( isNaN(_currentItemIndex) || _currentItemIndex < 0 || _currentItemIndex >= _getNumItems() ) {\n\t\t\t_currentItemIndex = 0;\n\t\t}\n\t\tself.currItem = _getItemAt( _currentItemIndex );\n\n\t\t\n\t\tif(_features.isOldIOSPhone || _features.isOldAndroid) {\n\t\t\t_isFixedPosition = false;\n\t\t}\n\t\t\n\t\ttemplate.setAttribute('aria-hidden', 'false');\n\t\tif(_options.modal) {\n\t\t\tif(!_isFixedPosition) {\n\t\t\t\ttemplate.style.position = 'absolute';\n\t\t\t\ttemplate.style.top = framework.getScrollY() + 'px';\n\t\t\t} else {\n\t\t\t\ttemplate.style.position = 'fixed';\n\t\t\t}\n\t\t}\n\n\t\tif(_currentWindowScrollY === undefined) {\n\t\t\t_shout('initialLayout');\n\t\t\t_currentWindowScrollY = _initalWindowScrollY = framework.getScrollY();\n\t\t}\n\t\t\n\t\t// add classes to root element of PhotoSwipe\n\t\tvar rootClasses = 'pswp--open ';\n\t\tif(_options.mainClass) {\n\t\t\trootClasses += _options.mainClass + ' ';\n\t\t}\n\t\tif(_options.showHideOpacity) {\n\t\t\trootClasses += 'pswp--animate_opacity ';\n\t\t}\n\t\trootClasses += _likelyTouchDevice ? 'pswp--touch' : 'pswp--notouch';\n\t\trootClasses += _features.animationName ? ' pswp--css_animation' : '';\n\t\trootClasses += _features.svg ? ' pswp--svg' : '';\n\t\tframework.addClass(template, rootClasses);\n\n\t\tself.updateSize();\n\n\t\t// initial update\n\t\t_containerShiftIndex = -1;\n\t\t_indexDiff = null;\n\t\tfor(i = 0; i < NUM_HOLDERS; i++) {\n\t\t\t_setTranslateX( (i+_containerShiftIndex) * _slideSize.x, _itemHolders[i].el.style);\n\t\t}\n\n\t\tif(!_oldIE) {\n\t\t\tframework.bind(self.scrollWrap, _downEvents, self); // no dragging for old IE\n\t\t}\t\n\n\t\t_listen('initialZoomInEnd', function() {\n\t\t\tself.setContent(_itemHolders[0], _currentItemIndex-1);\n\t\t\tself.setContent(_itemHolders[2], _currentItemIndex+1);\n\n\t\t\t_itemHolders[0].el.style.display = _itemHolders[2].el.style.display = 'block';\n\n\t\t\tif(_options.focus) {\n\t\t\t\t// focus causes layout, \n\t\t\t\t// which causes lag during the animation, \n\t\t\t\t// that's why we delay it untill the initial zoom transition ends\n\t\t\t\ttemplate.focus();\n\t\t\t}\n\t\t\t \n\n\t\t\t_bindEvents();\n\t\t});\n\n\t\t// set content for center slide (first time)\n\t\tself.setContent(_itemHolders[1], _currentItemIndex);\n\t\t\n\t\tself.updateCurrItem();\n\n\t\t_shout('afterInit');\n\n\t\tif(!_isFixedPosition) {\n\n\t\t\t// On all versions of iOS lower than 8.0, we check size of viewport every second.\n\t\t\t// \n\t\t\t// This is done to detect when Safari top & bottom bars appear, \n\t\t\t// as this action doesn't trigger any events (like resize). \n\t\t\t// \n\t\t\t// On iOS8 they fixed this.\n\t\t\t// \n\t\t\t// 10 Nov 2014: iOS 7 usage ~40%. iOS 8 usage 56%.\n\t\t\t\n\t\t\t_updateSizeInterval = setInterval(function() {\n\t\t\t\tif(!_numAnimations && !_isDragging && !_isZooming && (_currZoomLevel === self.currItem.initialZoomLevel) ) {\n\t\t\t\t\tself.updateSize();\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\n\t\tframework.addClass(template, 'pswp--visible');\n\t},\n\n\t// Close the gallery, then destroy it\n\tclose: function() {\n\t\tif(!_isOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\t_isOpen = false;\n\t\t_isDestroying = true;\n\t\t_shout('close');\n\t\t_unbindEvents();\n\n\t\t_showOrHide(self.currItem, null, true, self.destroy);\n\t},\n\n\t// destroys the gallery (unbinds events, cleans up intervals and timeouts to avoid memory leaks)\n\tdestroy: function() {\n\t\t_shout('destroy');\n\n\t\tif(_showOrHideTimeout) {\n\t\t\tclearTimeout(_showOrHideTimeout);\n\t\t}\n\t\t\n\t\ttemplate.setAttribute('aria-hidden', 'true');\n\t\ttemplate.className = _initalClassName;\n\n\t\tif(_updateSizeInterval) {\n\t\t\tclearInterval(_updateSizeInterval);\n\t\t}\n\n\t\tframework.unbind(self.scrollWrap, _downEvents, self);\n\n\t\t// we unbind scroll event at the end, as closing animation may depend on it\n\t\tframework.unbind(window, 'scroll', self);\n\n\t\t_stopDragUpdateLoop();\n\n\t\t_stopAllAnimations();\n\n\t\t_listeners = null;\n\t},\n\n\t/**\n\t * Pan image to position\n\t * @param {Number} x \n\t * @param {Number} y \n\t * @param {Boolean} force Will ignore bounds if set to true.\n\t */\n\tpanTo: function(x,y,force) {\n\t\tif(!force) {\n\t\t\tif(x > _currPanBounds.min.x) {\n\t\t\t\tx = _currPanBounds.min.x;\n\t\t\t} else if(x < _currPanBounds.max.x) {\n\t\t\t\tx = _currPanBounds.max.x;\n\t\t\t}\n\n\t\t\tif(y > _currPanBounds.min.y) {\n\t\t\t\ty = _currPanBounds.min.y;\n\t\t\t} else if(y < _currPanBounds.max.y) {\n\t\t\t\ty = _currPanBounds.max.y;\n\t\t\t}\n\t\t}\n\t\t\n\t\t_panOffset.x = x;\n\t\t_panOffset.y = y;\n\t\t_applyCurrentZoomPan();\n\t},\n\t\n\thandleEvent: function (e) {\n\t\te = e || window.event;\n\t\tif(_globalEventHandlers[e.type]) {\n\t\t\t_globalEventHandlers[e.type](e);\n\t\t}\n\t},\n\n\n\tgoTo: function(index) {\n\n\t\tindex = _getLoopedId(index);\n\n\t\tvar diff = index - _currentItemIndex;\n\t\t_indexDiff = diff;\n\n\t\t_currentItemIndex = index;\n\t\tself.currItem = _getItemAt( _currentItemIndex );\n\t\t_currPositionIndex -= diff;\n\t\t\n\t\t_moveMainScroll(_slideSize.x * _currPositionIndex);\n\t\t\n\n\t\t_stopAllAnimations();\n\t\t_mainScrollAnimating = false;\n\n\t\tself.updateCurrItem();\n\t},\n\tnext: function() {\n\t\tself.goTo( _currentItemIndex + 1);\n\t},\n\tprev: function() {\n\t\tself.goTo( _currentItemIndex - 1);\n\t},\n\n\t// update current zoom/pan objects\n\tupdateCurrZoomItem: function(emulateSetContent) {\n\t\tif(emulateSetContent) {\n\t\t\t_shout('beforeChange', 0);\n\t\t}\n\n\t\t// itemHolder[1] is middle (current) item\n\t\tif(_itemHolders[1].el.children.length) {\n\t\t\tvar zoomElement = _itemHolders[1].el.children[0];\n\t\t\tif( framework.hasClass(zoomElement, 'pswp__zoom-wrap') ) {\n\t\t\t\t_currZoomElementStyle = zoomElement.style;\n\t\t\t} else {\n\t\t\t\t_currZoomElementStyle = null;\n\t\t\t}\n\t\t} else {\n\t\t\t_currZoomElementStyle = null;\n\t\t}\n\t\t\n\t\t_currPanBounds = self.currItem.bounds;\t\n\t\t_startZoomLevel = _currZoomLevel = self.currItem.initialZoomLevel;\n\n\t\t_panOffset.x = _currPanBounds.center.x;\n\t\t_panOffset.y = _currPanBounds.center.y;\n\n\t\tif(emulateSetContent) {\n\t\t\t_shout('afterChange');\n\t\t}\n\t},\n\n\n\tinvalidateCurrItems: function() {\n\t\t_itemsNeedUpdate = true;\n\t\tfor(var i = 0; i < NUM_HOLDERS; i++) {\n\t\t\tif( _itemHolders[i].item ) {\n\t\t\t\t_itemHolders[i].item.needsUpdate = true;\n\t\t\t}\n\t\t}\n\t},\n\n\tupdateCurrItem: function(beforeAnimation) {\n\n\t\tif(_indexDiff === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar diffAbs = Math.abs(_indexDiff),\n\t\t\ttempHolder;\n\n\t\tif(beforeAnimation && diffAbs < 2) {\n\t\t\treturn;\n\t\t}\n\n\n\t\tself.currItem = _getItemAt( _currentItemIndex );\n\t\t_renderMaxResolution = false;\n\t\t\n\t\t_shout('beforeChange', _indexDiff);\n\n\t\tif(diffAbs >= NUM_HOLDERS) {\n\t\t\t_containerShiftIndex += _indexDiff + (_indexDiff > 0 ? -NUM_HOLDERS : NUM_HOLDERS);\n\t\t\tdiffAbs = NUM_HOLDERS;\n\t\t}\n\t\tfor(var i = 0; i < diffAbs; i++) {\n\t\t\tif(_indexDiff > 0) {\n\t\t\t\ttempHolder = _itemHolders.shift();\n\t\t\t\t_itemHolders[NUM_HOLDERS-1] = tempHolder; // move first to last\n\n\t\t\t\t_containerShiftIndex++;\n\t\t\t\t_setTranslateX( (_containerShiftIndex+2) * _slideSize.x, tempHolder.el.style);\n\t\t\t\tself.setContent(tempHolder, _currentItemIndex - diffAbs + i + 1 + 1);\n\t\t\t} else {\n\t\t\t\ttempHolder = _itemHolders.pop();\n\t\t\t\t_itemHolders.unshift( tempHolder ); // move last to first\n\n\t\t\t\t_containerShiftIndex--;\n\t\t\t\t_setTranslateX( _containerShiftIndex * _slideSize.x, tempHolder.el.style);\n\t\t\t\tself.setContent(tempHolder, _currentItemIndex + diffAbs - i - 1 - 1);\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t// reset zoom/pan on previous item\n\t\tif(_currZoomElementStyle && Math.abs(_indexDiff) === 1) {\n\n\t\t\tvar prevItem = _getItemAt(_prevItemIndex);\n\t\t\tif(prevItem.initialZoomLevel !== _currZoomLevel) {\n\t\t\t\t_calculateItemSize(prevItem , _viewportSize );\n\t\t\t\t_setImageSize(prevItem);\n\t\t\t\t_applyZoomPanToItem( prevItem ); \t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\t// reset diff after update\n\t\t_indexDiff = 0;\n\n\t\tself.updateCurrZoomItem();\n\n\t\t_prevItemIndex = _currentItemIndex;\n\n\t\t_shout('afterChange');\n\t\t\n\t},\n\n\n\n\tupdateSize: function(force) {\n\t\t\n\t\tif(!_isFixedPosition && _options.modal) {\n\t\t\tvar windowScrollY = framework.getScrollY();\n\t\t\tif(_currentWindowScrollY !== windowScrollY) {\n\t\t\t\ttemplate.style.top = windowScrollY + 'px';\n\t\t\t\t_currentWindowScrollY = windowScrollY;\n\t\t\t}\n\t\t\tif(!force && _windowVisibleSize.x === window.innerWidth && _windowVisibleSize.y === window.innerHeight) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t_windowVisibleSize.x = window.innerWidth;\n\t\t\t_windowVisibleSize.y = window.innerHeight;\n\n\t\t\t//template.style.width = _windowVisibleSize.x + 'px';\n\t\t\ttemplate.style.height = _windowVisibleSize.y + 'px';\n\t\t}\n\n\n\n\t\t_viewportSize.x = self.scrollWrap.clientWidth;\n\t\t_viewportSize.y = self.scrollWrap.clientHeight;\n\n\t\t_updatePageScrollOffset();\n\n\t\t_slideSize.x = _viewportSize.x + Math.round(_viewportSize.x * _options.spacing);\n\t\t_slideSize.y = _viewportSize.y;\n\n\t\t_moveMainScroll(_slideSize.x * _currPositionIndex);\n\n\t\t_shout('beforeResize'); // even may be used for example to switch image sources\n\n\n\t\t// don't re-calculate size on inital size update\n\t\tif(_containerShiftIndex !== undefined) {\n\n\t\t\tvar holder,\n\t\t\t\titem,\n\t\t\t\thIndex;\n\n\t\t\tfor(var i = 0; i < NUM_HOLDERS; i++) {\n\t\t\t\tholder = _itemHolders[i];\n\t\t\t\t_setTranslateX( (i+_containerShiftIndex) * _slideSize.x, holder.el.style);\n\n\t\t\t\thIndex = _currentItemIndex+i-1;\n\n\t\t\t\tif(_options.loop && _getNumItems() > 2) {\n\t\t\t\t\thIndex = _getLoopedId(hIndex);\n\t\t\t\t}\n\n\t\t\t\t// update zoom level on items and refresh source (if needsUpdate)\n\t\t\t\titem = _getItemAt( hIndex );\n\n\t\t\t\t// re-render gallery item if `needsUpdate`,\n\t\t\t\t// or doesn't have `bounds` (entirely new slide object)\n\t\t\t\tif( item && (_itemsNeedUpdate || item.needsUpdate || !item.bounds) ) {\n\n\t\t\t\t\tself.cleanSlide( item );\n\t\t\t\t\t\n\t\t\t\t\tself.setContent( holder, hIndex );\n\n\t\t\t\t\t// if \"center\" slide\n\t\t\t\t\tif(i === 1) {\n\t\t\t\t\t\tself.currItem = item;\n\t\t\t\t\t\tself.updateCurrZoomItem(true);\n\t\t\t\t\t}\n\n\t\t\t\t\titem.needsUpdate = false;\n\n\t\t\t\t} else if(holder.index === -1 && hIndex >= 0) {\n\t\t\t\t\t// add content first time\n\t\t\t\t\tself.setContent( holder, hIndex );\n\t\t\t\t}\n\t\t\t\tif(item && item.container) {\n\t\t\t\t\t_calculateItemSize(item, _viewportSize);\n\t\t\t\t\t_setImageSize(item);\n\t\t\t\t\t_applyZoomPanToItem( item );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t_itemsNeedUpdate = false;\n\t\t}\t\n\n\t\t_startZoomLevel = _currZoomLevel = self.currItem.initialZoomLevel;\n\t\t_currPanBounds = self.currItem.bounds;\n\n\t\tif(_currPanBounds) {\n\t\t\t_panOffset.x = _currPanBounds.center.x;\n\t\t\t_panOffset.y = _currPanBounds.center.y;\n\t\t\t_applyCurrentZoomPan( true );\n\t\t}\n\t\t\n\t\t_shout('resize');\n\t},\n\t\n\t// Zoom current item to\n\tzoomTo: function(destZoomLevel, centerPoint, speed, easingFn, updateFn) {\n\t\t/*\n\t\t\tif(destZoomLevel === 'fit') {\n\t\t\t\tdestZoomLevel = self.currItem.fitRatio;\n\t\t\t} else if(destZoomLevel === 'fill') {\n\t\t\t\tdestZoomLevel = self.currItem.fillRatio;\n\t\t\t}\n\t\t*/\n\n\t\tif(centerPoint) {\n\t\t\t_startZoomLevel = _currZoomLevel;\n\t\t\t_midZoomPoint.x = Math.abs(centerPoint.x) - _panOffset.x ;\n\t\t\t_midZoomPoint.y = Math.abs(centerPoint.y) - _panOffset.y ;\n\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\t\t}\n\n\t\tvar destPanBounds = _calculatePanBounds(destZoomLevel, false),\n\t\t\tdestPanOffset = {};\n\n\t\t_modifyDestPanOffset('x', destPanBounds, destPanOffset, destZoomLevel);\n\t\t_modifyDestPanOffset('y', destPanBounds, destPanOffset, destZoomLevel);\n\n\t\tvar initialZoomLevel = _currZoomLevel;\n\t\tvar initialPanOffset = {\n\t\t\tx: _panOffset.x,\n\t\t\ty: _panOffset.y\n\t\t};\n\n\t\t_roundPoint(destPanOffset);\n\n\t\tvar onUpdate = function(now) {\n\t\t\tif(now === 1) {\n\t\t\t\t_currZoomLevel = destZoomLevel;\n\t\t\t\t_panOffset.x = destPanOffset.x;\n\t\t\t\t_panOffset.y = destPanOffset.y;\n\t\t\t} else {\n\t\t\t\t_currZoomLevel = (destZoomLevel - initialZoomLevel) * now + initialZoomLevel;\n\t\t\t\t_panOffset.x = (destPanOffset.x - initialPanOffset.x) * now + initialPanOffset.x;\n\t\t\t\t_panOffset.y = (destPanOffset.y - initialPanOffset.y) * now + initialPanOffset.y;\n\t\t\t}\n\n\t\t\tif(updateFn) {\n\t\t\t\tupdateFn(now);\n\t\t\t}\n\n\t\t\t_applyCurrentZoomPan( now === 1 );\n\t\t};\n\n\t\tif(speed) {\n\t\t\t_animateProp('customZoomTo', 0, 1, speed, easingFn || framework.easing.sine.inOut, onUpdate);\n\t\t} else {\n\t\t\tonUpdate(1);\n\t\t}\n\t}\n\n\n};\n\n\n/*>>core*/\n\n/*>>gestures*/\n/**\n * Mouse/touch/pointer event handlers.\n * \n * separated from @core.js for readability\n */\n\nvar MIN_SWIPE_DISTANCE = 30,\n\tDIRECTION_CHECK_OFFSET = 10; // amount of pixels to drag to determine direction of swipe\n\nvar _gestureStartTime,\n\t_gestureCheckSpeedTime,\n\n\t// pool of objects that are used during dragging of zooming\n\tp = {}, // first point\n\tp2 = {}, // second point (for zoom gesture)\n\tdelta = {},\n\t_currPoint = {},\n\t_startPoint = {},\n\t_currPointers = [],\n\t_startMainScrollPos = {},\n\t_releaseAnimData,\n\t_posPoints = [], // array of points during dragging, used to determine type of gesture\n\t_tempPoint = {},\n\n\t_isZoomingIn,\n\t_verticalDragInitiated,\n\t_oldAndroidTouchEndTimeout,\n\t_currZoomedItemIndex = 0,\n\t_centerPoint = _getEmptyPoint(),\n\t_lastReleaseTime = 0,\n\t_isDragging, // at least one pointer is down\n\t_isMultitouch, // at least two _pointers are down\n\t_zoomStarted, // zoom level changed during zoom gesture\n\t_moved,\n\t_dragAnimFrame,\n\t_mainScrollShifted,\n\t_currentPoints, // array of current touch points\n\t_isZooming,\n\t_currPointsDistance,\n\t_startPointsDistance,\n\t_currPanBounds,\n\t_mainScrollPos = _getEmptyPoint(),\n\t_currZoomElementStyle,\n\t_mainScrollAnimating, // true, if animation after swipe gesture is running\n\t_midZoomPoint = _getEmptyPoint(),\n\t_currCenterPoint = _getEmptyPoint(),\n\t_direction,\n\t_isFirstMove,\n\t_opacityChanged,\n\t_bgOpacity,\n\t_wasOverInitialZoom,\n\n\t_isEqualPoints = function(p1, p2) {\n\t\treturn p1.x === p2.x && p1.y === p2.y;\n\t},\n\t_isNearbyPoints = function(touch0, touch1) {\n\t\treturn Math.abs(touch0.x - touch1.x) < DOUBLE_TAP_RADIUS && Math.abs(touch0.y - touch1.y) < DOUBLE_TAP_RADIUS;\n\t},\n\t_calculatePointsDistance = function(p1, p2) {\n\t\t_tempPoint.x = Math.abs( p1.x - p2.x );\n\t\t_tempPoint.y = Math.abs( p1.y - p2.y );\n\t\treturn Math.sqrt(_tempPoint.x * _tempPoint.x + _tempPoint.y * _tempPoint.y);\n\t},\n\t_stopDragUpdateLoop = function() {\n\t\tif(_dragAnimFrame) {\n\t\t\t_cancelAF(_dragAnimFrame);\n\t\t\t_dragAnimFrame = null;\n\t\t}\n\t},\n\t_dragUpdateLoop = function() {\n\t\tif(_isDragging) {\n\t\t\t_dragAnimFrame = _requestAF(_dragUpdateLoop);\n\t\t\t_renderMovement();\n\t\t}\n\t},\n\t_canPan = function() {\n\t\treturn !(_options.scaleMode === 'fit' && _currZoomLevel === self.currItem.initialZoomLevel);\n\t},\n\t\n\t// find the closest parent DOM element\n\t_closestElement = function(el, fn) {\n\t \tif(!el || el === document) {\n\t \t\treturn false;\n\t \t}\n\n\t \t// don't search elements above pswp__scroll-wrap\n\t \tif(el.getAttribute('class') && el.getAttribute('class').indexOf('pswp__scroll-wrap') > -1 ) {\n\t \t\treturn false;\n\t \t}\n\n\t \tif( fn(el) ) {\n\t \t\treturn el;\n\t \t}\n\n\t \treturn _closestElement(el.parentNode, fn);\n\t},\n\n\t_preventObj = {},\n\t_preventDefaultEventBehaviour = function(e, isDown) {\n\t _preventObj.prevent = !_closestElement(e.target, _options.isClickableElement);\n\n\t\t_shout('preventDragEvent', e, isDown, _preventObj);\n\t\treturn _preventObj.prevent;\n\n\t},\n\t_convertTouchToPoint = function(touch, p) {\n\t\tp.x = touch.pageX;\n\t\tp.y = touch.pageY;\n\t\tp.id = touch.identifier;\n\t\treturn p;\n\t},\n\t_findCenterOfPoints = function(p1, p2, pCenter) {\n\t\tpCenter.x = (p1.x + p2.x) * 0.5;\n\t\tpCenter.y = (p1.y + p2.y) * 0.5;\n\t},\n\t_pushPosPoint = function(time, x, y) {\n\t\tif(time - _gestureCheckSpeedTime > 50) {\n\t\t\tvar o = _posPoints.length > 2 ? _posPoints.shift() : {};\n\t\t\to.x = x;\n\t\t\to.y = y; \n\t\t\t_posPoints.push(o);\n\t\t\t_gestureCheckSpeedTime = time;\n\t\t}\n\t},\n\n\t_calculateVerticalDragOpacityRatio = function() {\n\t\tvar yOffset = _panOffset.y - self.currItem.initialPosition.y; // difference between initial and current position\n\t\treturn 1 - Math.abs( yOffset / (_viewportSize.y / 2) );\n\t},\n\n\t\n\t// points pool, reused during touch events\n\t_ePoint1 = {},\n\t_ePoint2 = {},\n\t_tempPointsArr = [],\n\t_tempCounter,\n\t_getTouchPoints = function(e) {\n\t\t// clean up previous points, without recreating array\n\t\twhile(_tempPointsArr.length > 0) {\n\t\t\t_tempPointsArr.pop();\n\t\t}\n\n\t\tif(!_pointerEventEnabled) {\n\t\t\tif(e.type.indexOf('touch') > -1) {\n\n\t\t\t\tif(e.touches && e.touches.length > 0) {\n\t\t\t\t\t_tempPointsArr[0] = _convertTouchToPoint(e.touches[0], _ePoint1);\n\t\t\t\t\tif(e.touches.length > 1) {\n\t\t\t\t\t\t_tempPointsArr[1] = _convertTouchToPoint(e.touches[1], _ePoint2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t_ePoint1.x = e.pageX;\n\t\t\t\t_ePoint1.y = e.pageY;\n\t\t\t\t_ePoint1.id = '';\n\t\t\t\t_tempPointsArr[0] = _ePoint1;//_ePoint1;\n\t\t\t}\n\t\t} else {\n\t\t\t_tempCounter = 0;\n\t\t\t// we can use forEach, as pointer events are supported only in modern browsers\n\t\t\t_currPointers.forEach(function(p) {\n\t\t\t\tif(_tempCounter === 0) {\n\t\t\t\t\t_tempPointsArr[0] = p;\n\t\t\t\t} else if(_tempCounter === 1) {\n\t\t\t\t\t_tempPointsArr[1] = p;\n\t\t\t\t}\n\t\t\t\t_tempCounter++;\n\n\t\t\t});\n\t\t}\n\t\treturn _tempPointsArr;\n\t},\n\n\t_panOrMoveMainScroll = function(axis, delta) {\n\n\t\tvar panFriction,\n\t\t\toverDiff = 0,\n\t\t\tnewOffset = _panOffset[axis] + delta[axis],\n\t\t\tstartOverDiff,\n\t\t\tdir = delta[axis] > 0,\n\t\t\tnewMainScrollPosition = _mainScrollPos.x + delta.x,\n\t\t\tmainScrollDiff = _mainScrollPos.x - _startMainScrollPos.x,\n\t\t\tnewPanPos,\n\t\t\tnewMainScrollPos;\n\n\t\t// calculate fdistance over the bounds and friction\n\t\tif(newOffset > _currPanBounds.min[axis] || newOffset < _currPanBounds.max[axis]) {\n\t\t\tpanFriction = _options.panEndFriction;\n\t\t\t// Linear increasing of friction, so at 1/4 of viewport it's at max value. \n\t\t\t// Looks not as nice as was expected. Left for history.\n\t\t\t// panFriction = (1 - (_panOffset[axis] + delta[axis] + panBounds.min[axis]) / (_viewportSize[axis] / 4) );\n\t\t} else {\n\t\t\tpanFriction = 1;\n\t\t}\n\t\t\n\t\tnewOffset = _panOffset[axis] + delta[axis] * panFriction;\n\n\t\t// move main scroll or start panning\n\t\tif(_options.allowPanToNext || _currZoomLevel === self.currItem.initialZoomLevel) {\n\n\n\t\t\tif(!_currZoomElementStyle) {\n\t\t\t\t\n\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\n\t\t\t} else if(_direction === 'h' && axis === 'x' && !_zoomStarted ) {\n\t\t\t\t\n\t\t\t\tif(dir) {\n\t\t\t\t\tif(newOffset > _currPanBounds.min[axis]) {\n\t\t\t\t\t\tpanFriction = _options.panEndFriction;\n\t\t\t\t\t\toverDiff = _currPanBounds.min[axis] - newOffset;\n\t\t\t\t\t\tstartOverDiff = _currPanBounds.min[axis] - _startPanOffset[axis];\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// drag right\n\t\t\t\t\tif( (startOverDiff <= 0 || mainScrollDiff < 0) && _getNumItems() > 1 ) {\n\t\t\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\t\t\t\t\t\tif(mainScrollDiff < 0 && newMainScrollPosition > _startMainScrollPos.x) {\n\t\t\t\t\t\t\tnewMainScrollPos = _startMainScrollPos.x;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\t\t\tnewPanPos = newOffset;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif(newOffset < _currPanBounds.max[axis] ) {\n\t\t\t\t\t\tpanFriction =_options.panEndFriction;\n\t\t\t\t\t\toverDiff = newOffset - _currPanBounds.max[axis];\n\t\t\t\t\t\tstartOverDiff = _startPanOffset[axis] - _currPanBounds.max[axis];\n\t\t\t\t\t}\n\n\t\t\t\t\tif( (startOverDiff <= 0 || mainScrollDiff > 0) && _getNumItems() > 1 ) {\n\t\t\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\n\t\t\t\t\t\tif(mainScrollDiff > 0 && newMainScrollPosition < _startMainScrollPos.x) {\n\t\t\t\t\t\t\tnewMainScrollPos = _startMainScrollPos.x;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\t\t\tnewPanPos = newOffset;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\n\t\t\t\t//\n\t\t\t}\n\n\t\t\tif(axis === 'x') {\n\n\t\t\t\tif(newMainScrollPos !== undefined) {\n\t\t\t\t\t_moveMainScroll(newMainScrollPos, true);\n\t\t\t\t\tif(newMainScrollPos === _startMainScrollPos.x) {\n\t\t\t\t\t\t_mainScrollShifted = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_mainScrollShifted = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\tif(newPanPos !== undefined) {\n\t\t\t\t\t\t_panOffset.x = newPanPos;\n\t\t\t\t\t} else if(!_mainScrollShifted) {\n\t\t\t\t\t\t_panOffset.x += delta.x * panFriction;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn newMainScrollPos !== undefined;\n\t\t\t}\n\n\t\t}\n\n\t\tif(!_mainScrollAnimating) {\n\t\t\t\n\t\t\tif(!_mainScrollShifted) {\n\t\t\t\tif(_currZoomLevel > self.currItem.fitRatio) {\n\t\t\t\t\t_panOffset[axis] += delta[axis] * panFriction;\n\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\n\t\t}\n\t\t\n\t},\n\n\t// Pointerdown/touchstart/mousedown handler\n\t_onDragStart = function(e) {\n\n\t\t// Allow dragging only via left mouse button.\n\t\t// As this handler is not added in IE8 - we ignore e.which\n\t\t// \n\t\t// http://www.quirksmode.org/js/events_properties.html\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/event.button\n\t\tif(e.type === 'mousedown' && e.button > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(_initialZoomRunning) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif(_oldAndroidTouchEndTimeout && e.type === 'mousedown') {\n\t\t\treturn;\n\t\t}\n\n\t\tif(_preventDefaultEventBehaviour(e, true)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\n\n\t\t_shout('pointerDown');\n\n\t\tif(_pointerEventEnabled) {\n\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\tif(pointerIndex < 0) {\n\t\t\t\tpointerIndex = _currPointers.length;\n\t\t\t}\n\t\t\t_currPointers[pointerIndex] = {x:e.pageX, y:e.pageY, id: e.pointerId};\n\t\t}\n\t\t\n\n\n\t\tvar startPointsList = _getTouchPoints(e),\n\t\t\tnumPoints = startPointsList.length;\n\n\t\t_currentPoints = null;\n\n\t\t_stopAllAnimations();\n\n\t\t// init drag\n\t\tif(!_isDragging || numPoints === 1) {\n\n\t\t\t\n\n\t\t\t_isDragging = _isFirstMove = true;\n\t\t\tframework.bind(window, _upMoveEvents, self);\n\n\t\t\t_isZoomingIn = \n\t\t\t\t_wasOverInitialZoom = \n\t\t\t\t_opacityChanged = \n\t\t\t\t_verticalDragInitiated = \n\t\t\t\t_mainScrollShifted = \n\t\t\t\t_moved = \n\t\t\t\t_isMultitouch = \n\t\t\t\t_zoomStarted = false;\n\n\t\t\t_direction = null;\n\n\t\t\t_shout('firstTouchStart', startPointsList);\n\n\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\n\t\t\t_currPanDist.x = _currPanDist.y = 0;\n\t\t\t_equalizePoints(_currPoint, startPointsList[0]);\n\t\t\t_equalizePoints(_startPoint, _currPoint);\n\n\t\t\t//_equalizePoints(_startMainScrollPos, _mainScrollPos);\n\t\t\t_startMainScrollPos.x = _slideSize.x * _currPositionIndex;\n\n\t\t\t_posPoints = [{\n\t\t\t\tx: _currPoint.x,\n\t\t\t\ty: _currPoint.y\n\t\t\t}];\n\n\t\t\t_gestureCheckSpeedTime = _gestureStartTime = _getCurrentTime();\n\n\t\t\t//_mainScrollAnimationEnd(true);\n\t\t\t_calculatePanBounds( _currZoomLevel, true );\n\t\t\t\n\t\t\t// Start rendering\n\t\t\t_stopDragUpdateLoop();\n\t\t\t_dragUpdateLoop();\n\t\t\t\n\t\t}\n\n\t\t// init zoom\n\t\tif(!_isZooming && numPoints > 1 && !_mainScrollAnimating && !_mainScrollShifted) {\n\t\t\t_startZoomLevel = _currZoomLevel;\n\t\t\t_zoomStarted = false; // true if zoom changed at least once\n\n\t\t\t_isZooming = _isMultitouch = true;\n\t\t\t_currPanDist.y = _currPanDist.x = 0;\n\n\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\n\t\t\t_equalizePoints(p, startPointsList[0]);\n\t\t\t_equalizePoints(p2, startPointsList[1]);\n\n\t\t\t_findCenterOfPoints(p, p2, _currCenterPoint);\n\n\t\t\t_midZoomPoint.x = Math.abs(_currCenterPoint.x) - _panOffset.x;\n\t\t\t_midZoomPoint.y = Math.abs(_currCenterPoint.y) - _panOffset.y;\n\t\t\t_currPointsDistance = _startPointsDistance = _calculatePointsDistance(p, p2);\n\t\t}\n\n\n\t},\n\n\t// Pointermove/touchmove/mousemove handler\n\t_onDragMove = function(e) {\n\n\t\te.preventDefault();\n\n\t\tif(_pointerEventEnabled) {\n\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\tif(pointerIndex > -1) {\n\t\t\t\tvar p = _currPointers[pointerIndex];\n\t\t\t\tp.x = e.pageX;\n\t\t\t\tp.y = e.pageY; \n\t\t\t}\n\t\t}\n\n\t\tif(_isDragging) {\n\t\t\tvar touchesList = _getTouchPoints(e);\n\t\t\tif(!_direction && !_moved && !_isZooming) {\n\n\t\t\t\tif(_mainScrollPos.x !== _slideSize.x * _currPositionIndex) {\n\t\t\t\t\t// if main scroll position is shifted – direction is always horizontal\n\t\t\t\t\t_direction = 'h';\n\t\t\t\t} else {\n\t\t\t\t\tvar diff = Math.abs(touchesList[0].x - _currPoint.x) - Math.abs(touchesList[0].y - _currPoint.y);\n\t\t\t\t\t// check the direction of movement\n\t\t\t\t\tif(Math.abs(diff) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\t\t_direction = diff > 0 ? 'h' : 'v';\n\t\t\t\t\t\t_currentPoints = touchesList;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t_currentPoints = touchesList;\n\t\t\t}\n\t\t}\t\n\t},\n\t// \n\t_renderMovement = function() {\n\n\t\tif(!_currentPoints) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar numPoints = _currentPoints.length;\n\n\t\tif(numPoints === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t_equalizePoints(p, _currentPoints[0]);\n\n\t\tdelta.x = p.x - _currPoint.x;\n\t\tdelta.y = p.y - _currPoint.y;\n\n\t\tif(_isZooming && numPoints > 1) {\n\t\t\t// Handle behaviour for more than 1 point\n\n\t\t\t_currPoint.x = p.x;\n\t\t\t_currPoint.y = p.y;\n\t\t\n\t\t\t// check if one of two points changed\n\t\t\tif( !delta.x && !delta.y && _isEqualPoints(_currentPoints[1], p2) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_equalizePoints(p2, _currentPoints[1]);\n\n\n\t\t\tif(!_zoomStarted) {\n\t\t\t\t_zoomStarted = true;\n\t\t\t\t_shout('zoomGestureStarted');\n\t\t\t}\n\t\t\t\n\t\t\t// Distance between two points\n\t\t\tvar pointsDistance = _calculatePointsDistance(p,p2);\n\n\t\t\tvar zoomLevel = _calculateZoomLevel(pointsDistance);\n\n\t\t\t// slightly over the of initial zoom level\n\t\t\tif(zoomLevel > self.currItem.initialZoomLevel + self.currItem.initialZoomLevel / 15) {\n\t\t\t\t_wasOverInitialZoom = true;\n\t\t\t}\n\n\t\t\t// Apply the friction if zoom level is out of the bounds\n\t\t\tvar zoomFriction = 1,\n\t\t\t\tminZoomLevel = _getMinZoomLevel(),\n\t\t\t\tmaxZoomLevel = _getMaxZoomLevel();\n\n\t\t\tif ( zoomLevel < minZoomLevel ) {\n\t\t\t\t\n\t\t\t\tif(_options.pinchToClose && !_wasOverInitialZoom && _startZoomLevel <= self.currItem.initialZoomLevel) {\n\t\t\t\t\t// fade out background if zooming out\n\t\t\t\t\tvar minusDiff = minZoomLevel - zoomLevel;\n\t\t\t\t\tvar percent = 1 - minusDiff / (minZoomLevel / 1.2);\n\n\t\t\t\t\t_applyBgOpacity(percent);\n\t\t\t\t\t_shout('onPinchClose', percent);\n\t\t\t\t\t_opacityChanged = true;\n\t\t\t\t} else {\n\t\t\t\t\tzoomFriction = (minZoomLevel - zoomLevel) / minZoomLevel;\n\t\t\t\t\tif(zoomFriction > 1) {\n\t\t\t\t\t\tzoomFriction = 1;\n\t\t\t\t\t}\n\t\t\t\t\tzoomLevel = minZoomLevel - zoomFriction * (minZoomLevel / 3);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else if ( zoomLevel > maxZoomLevel ) {\n\t\t\t\t// 1.5 - extra zoom level above the max. E.g. if max is x6, real max 6 + 1.5 = 7.5\n\t\t\t\tzoomFriction = (zoomLevel - maxZoomLevel) / ( minZoomLevel * 6 );\n\t\t\t\tif(zoomFriction > 1) {\n\t\t\t\t\tzoomFriction = 1;\n\t\t\t\t}\n\t\t\t\tzoomLevel = maxZoomLevel + zoomFriction * minZoomLevel;\n\t\t\t}\n\n\t\t\tif(zoomFriction < 0) {\n\t\t\t\tzoomFriction = 0;\n\t\t\t}\n\n\t\t\t// distance between touch points after friction is applied\n\t\t\t_currPointsDistance = pointsDistance;\n\n\t\t\t// _centerPoint - The point in the middle of two pointers\n\t\t\t_findCenterOfPoints(p, p2, _centerPoint);\n\t\t\n\t\t\t// paning with two pointers pressed\n\t\t\t_currPanDist.x += _centerPoint.x - _currCenterPoint.x;\n\t\t\t_currPanDist.y += _centerPoint.y - _currCenterPoint.y;\n\t\t\t_equalizePoints(_currCenterPoint, _centerPoint);\n\n\t\t\t_panOffset.x = _calculatePanOffset('x', zoomLevel);\n\t\t\t_panOffset.y = _calculatePanOffset('y', zoomLevel);\n\n\t\t\t_isZoomingIn = zoomLevel > _currZoomLevel;\n\t\t\t_currZoomLevel = zoomLevel;\n\t\t\t_applyCurrentZoomPan();\n\n\t\t} else {\n\n\t\t\t// handle behaviour for one point (dragging or panning)\n\n\t\t\tif(!_direction) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(_isFirstMove) {\n\t\t\t\t_isFirstMove = false;\n\n\t\t\t\t// subtract drag distance that was used during the detection direction \n\n\t\t\t\tif( Math.abs(delta.x) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\tdelta.x -= _currentPoints[0].x - _startPoint.x;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( Math.abs(delta.y) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\tdelta.y -= _currentPoints[0].y - _startPoint.y;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_currPoint.x = p.x;\n\t\t\t_currPoint.y = p.y;\n\n\t\t\t// do nothing if pointers position hasn't changed\n\t\t\tif(delta.x === 0 && delta.y === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(_direction === 'v' && _options.closeOnVerticalDrag) {\n\t\t\t\tif(!_canPan()) {\n\t\t\t\t\t_currPanDist.y += delta.y;\n\t\t\t\t\t_panOffset.y += delta.y;\n\n\t\t\t\t\tvar opacityRatio = _calculateVerticalDragOpacityRatio();\n\n\t\t\t\t\t_verticalDragInitiated = true;\n\t\t\t\t\t_shout('onVerticalDrag', opacityRatio);\n\n\t\t\t\t\t_applyBgOpacity(opacityRatio);\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\treturn ;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_pushPosPoint(_getCurrentTime(), p.x, p.y);\n\n\t\t\t_moved = true;\n\t\t\t_currPanBounds = self.currItem.bounds;\n\t\t\t\n\t\t\tvar mainScrollChanged = _panOrMoveMainScroll('x', delta);\n\t\t\tif(!mainScrollChanged) {\n\t\t\t\t_panOrMoveMainScroll('y', delta);\n\n\t\t\t\t_roundPoint(_panOffset);\n\t\t\t\t_applyCurrentZoomPan();\n\t\t\t}\n\n\t\t}\n\n\t},\n\t\n\t// Pointerup/pointercancel/touchend/touchcancel/mouseup event handler\n\t_onDragRelease = function(e) {\n\n\t\tif(_features.isOldAndroid ) {\n\n\t\t\tif(_oldAndroidTouchEndTimeout && e.type === 'mouseup') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// on Android (v4.1, 4.2, 4.3 & possibly older) \n\t\t\t// ghost mousedown/up event isn't preventable via e.preventDefault,\n\t\t\t// which causes fake mousedown event\n\t\t\t// so we block mousedown/up for 600ms\n\t\t\tif( e.type.indexOf('touch') > -1 ) {\n\t\t\t\tclearTimeout(_oldAndroidTouchEndTimeout);\n\t\t\t\t_oldAndroidTouchEndTimeout = setTimeout(function() {\n\t\t\t\t\t_oldAndroidTouchEndTimeout = 0;\n\t\t\t\t}, 600);\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t_shout('pointerUp');\n\n\t\tif(_preventDefaultEventBehaviour(e, false)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tvar releasePoint;\n\n\t\tif(_pointerEventEnabled) {\n\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\t\n\t\t\tif(pointerIndex > -1) {\n\t\t\t\treleasePoint = _currPointers.splice(pointerIndex, 1)[0];\n\n\t\t\t\tif(navigator.msPointerEnabled) {\n\t\t\t\t\tvar MSPOINTER_TYPES = {\n\t\t\t\t\t\t4: 'mouse', // event.MSPOINTER_TYPE_MOUSE\n\t\t\t\t\t\t2: 'touch', // event.MSPOINTER_TYPE_TOUCH \n\t\t\t\t\t\t3: 'pen' // event.MSPOINTER_TYPE_PEN\n\t\t\t\t\t};\n\t\t\t\t\treleasePoint.type = MSPOINTER_TYPES[e.pointerType];\n\n\t\t\t\t\tif(!releasePoint.type) {\n\t\t\t\t\t\treleasePoint.type = e.pointerType || 'mouse';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treleasePoint.type = e.pointerType || 'mouse';\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\tvar touchList = _getTouchPoints(e),\n\t\t\tgestureType,\n\t\t\tnumPoints = touchList.length;\n\n\t\tif(e.type === 'mouseup') {\n\t\t\tnumPoints = 0;\n\t\t}\n\n\t\t// Do nothing if there were 3 touch points or more\n\t\tif(numPoints === 2) {\n\t\t\t_currentPoints = null;\n\t\t\treturn true;\n\t\t}\n\n\t\t// if second pointer released\n\t\tif(numPoints === 1) {\n\t\t\t_equalizePoints(_startPoint, touchList[0]);\n\t\t}\t\t\t\t\n\n\n\t\t// pointer hasn't moved, send \"tap release\" point\n\t\tif(numPoints === 0 && !_direction && !_mainScrollAnimating) {\n\t\t\tif(!releasePoint) {\n\t\t\t\tif(e.type === 'mouseup') {\n\t\t\t\t\treleasePoint = {x: e.pageX, y: e.pageY, type:'mouse'};\n\t\t\t\t} else if(e.changedTouches && e.changedTouches[0]) {\n\t\t\t\t\treleasePoint = {x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY, type:'touch'};\n\t\t\t\t}\t\t\n\t\t\t}\n\n\t\t\t_shout('touchRelease', e, releasePoint);\n\t\t}\n\n\t\t// Difference in time between releasing of two last touch points (zoom gesture)\n\t\tvar releaseTimeDiff = -1;\n\n\t\t// Gesture completed, no pointers left\n\t\tif(numPoints === 0) {\n\t\t\t_isDragging = false;\n\t\t\tframework.unbind(window, _upMoveEvents, self);\n\n\t\t\t_stopDragUpdateLoop();\n\n\t\t\tif(_isZooming) {\n\t\t\t\t// Two points released at the same time\n\t\t\t\treleaseTimeDiff = 0;\n\t\t\t} else if(_lastReleaseTime !== -1) {\n\t\t\t\treleaseTimeDiff = _getCurrentTime() - _lastReleaseTime;\n\t\t\t}\n\t\t}\n\t\t_lastReleaseTime = numPoints === 1 ? _getCurrentTime() : -1;\n\t\t\n\t\tif(releaseTimeDiff !== -1 && releaseTimeDiff < 150) {\n\t\t\tgestureType = 'zoom';\n\t\t} else {\n\t\t\tgestureType = 'swipe';\n\t\t}\n\n\t\tif(_isZooming && numPoints < 2) {\n\t\t\t_isZooming = false;\n\n\t\t\t// Only second point released\n\t\t\tif(numPoints === 1) {\n\t\t\t\tgestureType = 'zoomPointerUp';\n\t\t\t}\n\t\t\t_shout('zoomGestureEnded');\n\t\t}\n\n\t\t_currentPoints = null;\n\t\tif(!_moved && !_zoomStarted && !_mainScrollAnimating && !_verticalDragInitiated) {\n\t\t\t// nothing to animate\n\t\t\treturn;\n\t\t}\n\t\n\t\t_stopAllAnimations();\n\n\t\t\n\t\tif(!_releaseAnimData) {\n\t\t\t_releaseAnimData = _initDragReleaseAnimationData();\n\t\t}\n\t\t\n\t\t_releaseAnimData.calculateSwipeSpeed('x');\n\n\n\t\tif(_verticalDragInitiated) {\n\n\t\t\tvar opacityRatio = _calculateVerticalDragOpacityRatio();\n\n\t\t\tif(opacityRatio < _options.verticalDragRange) {\n\t\t\t\tself.close();\n\t\t\t} else {\n\t\t\t\tvar initalPanY = _panOffset.y,\n\t\t\t\t\tinitialBgOpacity = _bgOpacity;\n\n\t\t\t\t_animateProp('verticalDrag', 0, 1, 300, framework.easing.cubic.out, function(now) {\n\t\t\t\t\t\n\t\t\t\t\t_panOffset.y = (self.currItem.initialPosition.y - initalPanY) * now + initalPanY;\n\n\t\t\t\t\t_applyBgOpacity( (1 - initialBgOpacity) * now + initialBgOpacity );\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t});\n\n\t\t\t\t_shout('onVerticalDrag', 1);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\n\t\t// main scroll \n\t\tif( (_mainScrollShifted || _mainScrollAnimating) && numPoints === 0) {\n\t\t\tvar itemChanged = _finishSwipeMainScrollGesture(gestureType, _releaseAnimData);\n\t\t\tif(itemChanged) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tgestureType = 'zoomPointerUp';\n\t\t}\n\n\t\t// prevent zoom/pan animation when main scroll animation runs\n\t\tif(_mainScrollAnimating) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t// Complete simple zoom gesture (reset zoom level if it's out of the bounds) \n\t\tif(gestureType !== 'swipe') {\n\t\t\t_completeZoomGesture();\n\t\t\treturn;\n\t\t}\n\t\n\t\t// Complete pan gesture if main scroll is not shifted, and it's possible to pan current image\n\t\tif(!_mainScrollShifted && _currZoomLevel > self.currItem.fitRatio) {\n\t\t\t_completePanGesture(_releaseAnimData);\n\t\t}\n\t},\n\n\n\t// Returns object with data about gesture\n\t// It's created only once and then reused\n\t_initDragReleaseAnimationData = function() {\n\t\t// temp local vars\n\t\tvar lastFlickDuration,\n\t\t\ttempReleasePos;\n\n\t\t// s = this\n\t\tvar s = {\n\t\t\tlastFlickOffset: {},\n\t\t\tlastFlickDist: {},\n\t\t\tlastFlickSpeed: {},\n\t\t\tslowDownRatio: {},\n\t\t\tslowDownRatioReverse: {},\n\t\t\tspeedDecelerationRatio: {},\n\t\t\tspeedDecelerationRatioAbs: {},\n\t\t\tdistanceOffset: {},\n\t\t\tbackAnimDestination: {},\n\t\t\tbackAnimStarted: {},\n\t\t\tcalculateSwipeSpeed: function(axis) {\n\t\t\t\t\n\n\t\t\t\tif( _posPoints.length > 1) {\n\t\t\t\t\tlastFlickDuration = _getCurrentTime() - _gestureCheckSpeedTime + 50;\n\t\t\t\t\ttempReleasePos = _posPoints[_posPoints.length-2][axis];\n\t\t\t\t} else {\n\t\t\t\t\tlastFlickDuration = _getCurrentTime() - _gestureStartTime; // total gesture duration\n\t\t\t\t\ttempReleasePos = _startPoint[axis];\n\t\t\t\t}\n\t\t\t\ts.lastFlickOffset[axis] = _currPoint[axis] - tempReleasePos;\n\t\t\t\ts.lastFlickDist[axis] = Math.abs(s.lastFlickOffset[axis]);\n\t\t\t\tif(s.lastFlickDist[axis] > 20) {\n\t\t\t\t\ts.lastFlickSpeed[axis] = s.lastFlickOffset[axis] / lastFlickDuration;\n\t\t\t\t} else {\n\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t}\n\t\t\t\tif( Math.abs(s.lastFlickSpeed[axis]) < 0.1 ) {\n\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ts.slowDownRatio[axis] = 0.95;\n\t\t\t\ts.slowDownRatioReverse[axis] = 1 - s.slowDownRatio[axis];\n\t\t\t\ts.speedDecelerationRatio[axis] = 1;\n\t\t\t},\n\n\t\t\tcalculateOverBoundsAnimOffset: function(axis, speed) {\n\t\t\t\tif(!s.backAnimStarted[axis]) {\n\n\t\t\t\t\tif(_panOffset[axis] > _currPanBounds.min[axis]) {\n\t\t\t\t\t\ts.backAnimDestination[axis] = _currPanBounds.min[axis];\n\t\t\t\t\t\t\n\t\t\t\t\t} else if(_panOffset[axis] < _currPanBounds.max[axis]) {\n\t\t\t\t\t\ts.backAnimDestination[axis] = _currPanBounds.max[axis];\n\t\t\t\t\t}\n\n\t\t\t\t\tif(s.backAnimDestination[axis] !== undefined) {\n\t\t\t\t\t\ts.slowDownRatio[axis] = 0.7;\n\t\t\t\t\t\ts.slowDownRatioReverse[axis] = 1 - s.slowDownRatio[axis];\n\t\t\t\t\t\tif(s.speedDecelerationRatioAbs[axis] < 0.05) {\n\n\t\t\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t\t\t\ts.backAnimStarted[axis] = true;\n\n\t\t\t\t\t\t\t_animateProp('bounceZoomPan'+axis,_panOffset[axis], \n\t\t\t\t\t\t\t\ts.backAnimDestination[axis], \n\t\t\t\t\t\t\t\tspeed || 300, \n\t\t\t\t\t\t\t\tframework.easing.sine.out, \n\t\t\t\t\t\t\t\tfunction(pos) {\n\t\t\t\t\t\t\t\t\t_panOffset[axis] = pos;\n\t\t\t\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Reduces the speed by slowDownRatio (per 10ms)\n\t\t\tcalculateAnimOffset: function(axis) {\n\t\t\t\tif(!s.backAnimStarted[axis]) {\n\t\t\t\t\ts.speedDecelerationRatio[axis] = s.speedDecelerationRatio[axis] * (s.slowDownRatio[axis] + \n\t\t\t\t\t\t\t\t\t\t\t\ts.slowDownRatioReverse[axis] - \n\t\t\t\t\t\t\t\t\t\t\t\ts.slowDownRatioReverse[axis] * s.timeDiff / 10);\n\n\t\t\t\t\ts.speedDecelerationRatioAbs[axis] = Math.abs(s.lastFlickSpeed[axis] * s.speedDecelerationRatio[axis]);\n\t\t\t\t\ts.distanceOffset[axis] = s.lastFlickSpeed[axis] * s.speedDecelerationRatio[axis] * s.timeDiff;\n\t\t\t\t\t_panOffset[axis] += s.distanceOffset[axis];\n\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tpanAnimLoop: function() {\n\t\t\t\tif ( _animations.zoomPan ) {\n\t\t\t\t\t_animations.zoomPan.raf = _requestAF(s.panAnimLoop);\n\n\t\t\t\t\ts.now = _getCurrentTime();\n\t\t\t\t\ts.timeDiff = s.now - s.lastNow;\n\t\t\t\t\ts.lastNow = s.now;\n\t\t\t\t\t\n\t\t\t\t\ts.calculateAnimOffset('x');\n\t\t\t\t\ts.calculateAnimOffset('y');\n\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\n\t\t\t\t\ts.calculateOverBoundsAnimOffset('x');\n\t\t\t\t\ts.calculateOverBoundsAnimOffset('y');\n\n\n\t\t\t\t\tif (s.speedDecelerationRatioAbs.x < 0.05 && s.speedDecelerationRatioAbs.y < 0.05) {\n\n\t\t\t\t\t\t// round pan position\n\t\t\t\t\t\t_panOffset.x = Math.round(_panOffset.x);\n\t\t\t\t\t\t_panOffset.y = Math.round(_panOffset.y);\n\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\t\n\t\t\t\t\t\t_stopAnimation('zoomPan');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t};\n\t\treturn s;\n\t},\n\n\t_completePanGesture = function(animData) {\n\t\t// calculate swipe speed for Y axis (paanning)\n\t\tanimData.calculateSwipeSpeed('y');\n\n\t\t_currPanBounds = self.currItem.bounds;\n\t\t\n\t\tanimData.backAnimDestination = {};\n\t\tanimData.backAnimStarted = {};\n\n\t\t// Avoid acceleration animation if speed is too low\n\t\tif(Math.abs(animData.lastFlickSpeed.x) <= 0.05 && Math.abs(animData.lastFlickSpeed.y) <= 0.05 ) {\n\t\t\tanimData.speedDecelerationRatioAbs.x = animData.speedDecelerationRatioAbs.y = 0;\n\n\t\t\t// Run pan drag release animation. E.g. if you drag image and release finger without momentum.\n\t\t\tanimData.calculateOverBoundsAnimOffset('x');\n\t\t\tanimData.calculateOverBoundsAnimOffset('y');\n\t\t\treturn true;\n\t\t}\n\n\t\t// Animation loop that controls the acceleration after pan gesture ends\n\t\t_registerStartAnimation('zoomPan');\n\t\tanimData.lastNow = _getCurrentTime();\n\t\tanimData.panAnimLoop();\n\t},\n\n\n\t_finishSwipeMainScrollGesture = function(gestureType, _releaseAnimData) {\n\t\tvar itemChanged;\n\t\tif(!_mainScrollAnimating) {\n\t\t\t_currZoomedItemIndex = _currentItemIndex;\n\t\t}\n\n\n\t\t\n\t\tvar itemsDiff;\n\n\t\tif(gestureType === 'swipe') {\n\t\t\tvar totalShiftDist = _currPoint.x - _startPoint.x,\n\t\t\t\tisFastLastFlick = _releaseAnimData.lastFlickDist.x < 10;\n\n\t\t\t// if container is shifted for more than MIN_SWIPE_DISTANCE, \n\t\t\t// and last flick gesture was in right direction\n\t\t\tif(totalShiftDist > MIN_SWIPE_DISTANCE && \n\t\t\t\t(isFastLastFlick || _releaseAnimData.lastFlickOffset.x > 20) ) {\n\t\t\t\t// go to prev item\n\t\t\t\titemsDiff = -1;\n\t\t\t} else if(totalShiftDist < -MIN_SWIPE_DISTANCE && \n\t\t\t\t(isFastLastFlick || _releaseAnimData.lastFlickOffset.x < -20) ) {\n\t\t\t\t// go to next item\n\t\t\t\titemsDiff = 1;\n\t\t\t}\n\t\t}\n\n\t\tvar nextCircle;\n\n\t\tif(itemsDiff) {\n\t\t\t\n\t\t\t_currentItemIndex += itemsDiff;\n\n\t\t\tif(_currentItemIndex < 0) {\n\t\t\t\t_currentItemIndex = _options.loop ? _getNumItems()-1 : 0;\n\t\t\t\tnextCircle = true;\n\t\t\t} else if(_currentItemIndex >= _getNumItems()) {\n\t\t\t\t_currentItemIndex = _options.loop ? 0 : _getNumItems()-1;\n\t\t\t\tnextCircle = true;\n\t\t\t}\n\n\t\t\tif(!nextCircle || _options.loop) {\n\t\t\t\t_indexDiff += itemsDiff;\n\t\t\t\t_currPositionIndex -= itemsDiff;\n\t\t\t\titemChanged = true;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t}\n\n\t\tvar animateToX = _slideSize.x * _currPositionIndex;\n\t\tvar animateToDist = Math.abs( animateToX - _mainScrollPos.x );\n\t\tvar finishAnimDuration;\n\n\n\t\tif(!itemChanged && animateToX > _mainScrollPos.x !== _releaseAnimData.lastFlickSpeed.x > 0) {\n\t\t\t// \"return to current\" duration, e.g. when dragging from slide 0 to -1\n\t\t\tfinishAnimDuration = 333; \n\t\t} else {\n\t\t\tfinishAnimDuration = Math.abs(_releaseAnimData.lastFlickSpeed.x) > 0 ? \n\t\t\t\t\t\t\t\t\tanimateToDist / Math.abs(_releaseAnimData.lastFlickSpeed.x) : \n\t\t\t\t\t\t\t\t\t333;\n\n\t\t\tfinishAnimDuration = Math.min(finishAnimDuration, 400);\n\t\t\tfinishAnimDuration = Math.max(finishAnimDuration, 250);\n\t\t}\n\n\t\tif(_currZoomedItemIndex === _currentItemIndex) {\n\t\t\titemChanged = false;\n\t\t}\n\t\t\n\t\t_mainScrollAnimating = true;\n\t\t\n\t\t_shout('mainScrollAnimStart');\n\n\t\t_animateProp('mainScroll', _mainScrollPos.x, animateToX, finishAnimDuration, framework.easing.cubic.out, \n\t\t\t_moveMainScroll,\n\t\t\tfunction() {\n\t\t\t\t_stopAllAnimations();\n\t\t\t\t_mainScrollAnimating = false;\n\t\t\t\t_currZoomedItemIndex = -1;\n\t\t\t\t\n\t\t\t\tif(itemChanged || _currZoomedItemIndex !== _currentItemIndex) {\n\t\t\t\t\tself.updateCurrItem();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t_shout('mainScrollAnimComplete');\n\t\t\t}\n\t\t);\n\n\t\tif(itemChanged) {\n\t\t\tself.updateCurrItem(true);\n\t\t}\n\n\t\treturn itemChanged;\n\t},\n\n\t_calculateZoomLevel = function(touchesDistance) {\n\t\treturn 1 / _startPointsDistance * touchesDistance * _startZoomLevel;\n\t},\n\n\t// Resets zoom if it's out of bounds\n\t_completeZoomGesture = function() {\n\t\tvar destZoomLevel = _currZoomLevel,\n\t\t\tminZoomLevel = _getMinZoomLevel(),\n\t\t\tmaxZoomLevel = _getMaxZoomLevel();\n\n\t\tif ( _currZoomLevel < minZoomLevel ) {\n\t\t\tdestZoomLevel = minZoomLevel;\n\t\t} else if ( _currZoomLevel > maxZoomLevel ) {\n\t\t\tdestZoomLevel = maxZoomLevel;\n\t\t}\n\n\t\tvar destOpacity = 1,\n\t\t\tonUpdate,\n\t\t\tinitialOpacity = _bgOpacity;\n\n\t\tif(_opacityChanged && !_isZoomingIn && !_wasOverInitialZoom && _currZoomLevel < minZoomLevel) {\n\t\t\t//_closedByScroll = true;\n\t\t\tself.close();\n\t\t\treturn true;\n\t\t}\n\n\t\tif(_opacityChanged) {\n\t\t\tonUpdate = function(now) {\n\t\t\t\t_applyBgOpacity( (destOpacity - initialOpacity) * now + initialOpacity );\n\t\t\t};\n\t\t}\n\n\t\tself.zoomTo(destZoomLevel, 0, 200, framework.easing.cubic.out, onUpdate);\n\t\treturn true;\n\t};\n\n\n_registerModule('Gestures', {\n\tpublicMethods: {\n\n\t\tinitGestures: function() {\n\n\t\t\t// helper function that builds touch/pointer/mouse events\n\t\t\tvar addEventNames = function(pref, down, move, up, cancel) {\n\t\t\t\t_dragStartEvent = pref + down;\n\t\t\t\t_dragMoveEvent = pref + move;\n\t\t\t\t_dragEndEvent = pref + up;\n\t\t\t\tif(cancel) {\n\t\t\t\t\t_dragCancelEvent = pref + cancel;\n\t\t\t\t} else {\n\t\t\t\t\t_dragCancelEvent = '';\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t_pointerEventEnabled = _features.pointerEvent;\n\t\t\tif(_pointerEventEnabled && _features.touch) {\n\t\t\t\t// we don't need touch events, if browser supports pointer events\n\t\t\t\t_features.touch = false;\n\t\t\t}\n\n\t\t\tif(_pointerEventEnabled) {\n\t\t\t\tif(navigator.msPointerEnabled) {\n\t\t\t\t\t// IE10 pointer events are case-sensitive\n\t\t\t\t\taddEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel');\n\t\t\t\t} else {\n\t\t\t\t\taddEventNames('pointer', 'down', 'move', 'up', 'cancel');\n\t\t\t\t}\n\t\t\t} else if(_features.touch) {\n\t\t\t\taddEventNames('touch', 'start', 'move', 'end', 'cancel');\n\t\t\t\t_likelyTouchDevice = true;\n\t\t\t} else {\n\t\t\t\taddEventNames('mouse', 'down', 'move', 'up');\t\n\t\t\t}\n\n\t\t\t_upMoveEvents = _dragMoveEvent + ' ' + _dragEndEvent + ' ' + _dragCancelEvent;\n\t\t\t_downEvents = _dragStartEvent;\n\n\t\t\tif(_pointerEventEnabled && !_likelyTouchDevice) {\n\t\t\t\t_likelyTouchDevice = (navigator.maxTouchPoints > 1) || (navigator.msMaxTouchPoints > 1);\n\t\t\t}\n\t\t\t// make variable public\n\t\t\tself.likelyTouchDevice = _likelyTouchDevice; \n\t\t\t\n\t\t\t_globalEventHandlers[_dragStartEvent] = _onDragStart;\n\t\t\t_globalEventHandlers[_dragMoveEvent] = _onDragMove;\n\t\t\t_globalEventHandlers[_dragEndEvent] = _onDragRelease; // the Kraken\n\n\t\t\tif(_dragCancelEvent) {\n\t\t\t\t_globalEventHandlers[_dragCancelEvent] = _globalEventHandlers[_dragEndEvent];\n\t\t\t}\n\n\t\t\t// Bind mouse events on device with detected hardware touch support, in case it supports multiple types of input.\n\t\t\tif(_features.touch) {\n\t\t\t\t_downEvents += ' mousedown';\n\t\t\t\t_upMoveEvents += ' mousemove mouseup';\n\t\t\t\t_globalEventHandlers.mousedown = _globalEventHandlers[_dragStartEvent];\n\t\t\t\t_globalEventHandlers.mousemove = _globalEventHandlers[_dragMoveEvent];\n\t\t\t\t_globalEventHandlers.mouseup = _globalEventHandlers[_dragEndEvent];\n\t\t\t}\n\n\t\t\tif(!_likelyTouchDevice) {\n\t\t\t\t// don't allow pan to next slide from zoomed state on Desktop\n\t\t\t\t_options.allowPanToNext = false;\n\t\t\t}\n\t\t}\n\n\t}\n});\n\n\n/*>>gestures*/\n\n/*>>show-hide-transition*/\n/**\n * show-hide-transition.js:\n *\n * Manages initial opening or closing transition.\n *\n * If you're not planning to use transition for gallery at all,\n * you may set options hideAnimationDuration and showAnimationDuration to 0,\n * and just delete startAnimation function.\n * \n */\n\n\nvar _showOrHideTimeout,\n\t_showOrHide = function(item, img, out, completeFn) {\n\n\t\tif(_showOrHideTimeout) {\n\t\t\tclearTimeout(_showOrHideTimeout);\n\t\t}\n\n\t\t_initialZoomRunning = true;\n\t\t_initialContentSet = true;\n\t\t\n\t\t// dimensions of small thumbnail {x:,y:,w:}.\n\t\t// Height is optional, as calculated based on large image.\n\t\tvar thumbBounds; \n\t\tif(item.initialLayout) {\n\t\t\tthumbBounds = item.initialLayout;\n\t\t\titem.initialLayout = null;\n\t\t} else {\n\t\t\tthumbBounds = _options.getThumbBoundsFn && _options.getThumbBoundsFn(_currentItemIndex);\n\t\t}\n\n\t\tvar duration = out ? _options.hideAnimationDuration : _options.showAnimationDuration;\n\n\t\tvar onComplete = function() {\n\t\t\t_stopAnimation('initialZoom');\n\t\t\tif(!out) {\n\t\t\t\t_applyBgOpacity(1);\n\t\t\t\tif(img) {\n\t\t\t\t\timg.style.display = 'block';\n\t\t\t\t}\n\t\t\t\tframework.addClass(template, 'pswp--animated-in');\n\t\t\t\t_shout('initialZoom' + (out ? 'OutEnd' : 'InEnd'));\n\t\t\t} else {\n\t\t\t\tself.template.removeAttribute('style');\n\t\t\t\tself.bg.removeAttribute('style');\n\t\t\t}\n\n\t\t\tif(completeFn) {\n\t\t\t\tcompleteFn();\n\t\t\t}\n\t\t\t_initialZoomRunning = false;\n\t\t};\n\n\t\t// if bounds aren't provided, just open gallery without animation\n\t\tif(!duration || !thumbBounds || thumbBounds.x === undefined) {\n\n\t\t\t_shout('initialZoom' + (out ? 'Out' : 'In') );\n\n\t\t\t_currZoomLevel = item.initialZoomLevel;\n\t\t\t_equalizePoints(_panOffset, item.initialPosition );\n\t\t\t_applyCurrentZoomPan();\n\n\t\t\ttemplate.style.opacity = out ? 0 : 1;\n\t\t\t_applyBgOpacity(1);\n\n\t\t\tif(duration) {\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tonComplete();\n\t\t\t\t}, duration);\n\t\t\t} else {\n\t\t\t\tonComplete();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvar startAnimation = function() {\n\t\t\tvar closeWithRaf = _closedByScroll,\n\t\t\t\tfadeEverything = !self.currItem.src || self.currItem.loadError || _options.showHideOpacity;\n\t\t\t\n\t\t\t// apply hw-acceleration to image\n\t\t\tif(item.miniImg) {\n\t\t\t\titem.miniImg.style.webkitBackfaceVisibility = 'hidden';\n\t\t\t}\n\n\t\t\tif(!out) {\n\t\t\t\t_currZoomLevel = thumbBounds.w / item.w;\n\t\t\t\t_panOffset.x = thumbBounds.x;\n\t\t\t\t_panOffset.y = thumbBounds.y - _initalWindowScrollY;\n\n\t\t\t\tself[fadeEverything ? 'template' : 'bg'].style.opacity = 0.001;\n\t\t\t\t_applyCurrentZoomPan();\n\t\t\t}\n\n\t\t\t_registerStartAnimation('initialZoom');\n\t\t\t\n\t\t\tif(out && !closeWithRaf) {\n\t\t\t\tframework.removeClass(template, 'pswp--animated-in');\n\t\t\t}\n\n\t\t\tif(fadeEverything) {\n\t\t\t\tif(out) {\n\t\t\t\t\tframework[ (closeWithRaf ? 'remove' : 'add') + 'Class' ](template, 'pswp--animate_opacity');\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tframework.addClass(template, 'pswp--animate_opacity');\n\t\t\t\t\t}, 30);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_showOrHideTimeout = setTimeout(function() {\n\n\t\t\t\t_shout('initialZoom' + (out ? 'Out' : 'In') );\n\t\t\t\t\n\n\t\t\t\tif(!out) {\n\n\t\t\t\t\t// \"in\" animation always uses CSS transitions (instead of rAF).\n\t\t\t\t\t// CSS transition work faster here, \n\t\t\t\t\t// as developer may also want to animate other things, \n\t\t\t\t\t// like ui on top of sliding area, which can be animated just via CSS\n\t\t\t\t\t\n\t\t\t\t\t_currZoomLevel = item.initialZoomLevel;\n\t\t\t\t\t_equalizePoints(_panOffset, item.initialPosition );\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t_applyBgOpacity(1);\n\n\t\t\t\t\tif(fadeEverything) {\n\t\t\t\t\t\ttemplate.style.opacity = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_applyBgOpacity(1);\n\t\t\t\t\t}\n\n\t\t\t\t\t_showOrHideTimeout = setTimeout(onComplete, duration + 20);\n\t\t\t\t} else {\n\n\t\t\t\t\t// \"out\" animation uses rAF only when PhotoSwipe is closed by browser scroll, to recalculate position\n\t\t\t\t\tvar destZoomLevel = thumbBounds.w / item.w,\n\t\t\t\t\t\tinitialPanOffset = {\n\t\t\t\t\t\t\tx: _panOffset.x,\n\t\t\t\t\t\t\ty: _panOffset.y\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinitialZoomLevel = _currZoomLevel,\n\t\t\t\t\t\tinitalBgOpacity = _bgOpacity,\n\t\t\t\t\t\tonUpdate = function(now) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(now === 1) {\n\t\t\t\t\t\t\t\t_currZoomLevel = destZoomLevel;\n\t\t\t\t\t\t\t\t_panOffset.x = thumbBounds.x;\n\t\t\t\t\t\t\t\t_panOffset.y = thumbBounds.y - _currentWindowScrollY;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_currZoomLevel = (destZoomLevel - initialZoomLevel) * now + initialZoomLevel;\n\t\t\t\t\t\t\t\t_panOffset.x = (thumbBounds.x - initialPanOffset.x) * now + initialPanOffset.x;\n\t\t\t\t\t\t\t\t_panOffset.y = (thumbBounds.y - _currentWindowScrollY - initialPanOffset.y) * now + initialPanOffset.y;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\t\tif(fadeEverything) {\n\t\t\t\t\t\t\t\ttemplate.style.opacity = 1 - now;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_applyBgOpacity( initalBgOpacity - now * initalBgOpacity );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\tif(closeWithRaf) {\n\t\t\t\t\t\t_animateProp('initialZoom', 0, 1, duration, framework.easing.cubic.out, onUpdate, onComplete);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tonUpdate(1);\n\t\t\t\t\t\t_showOrHideTimeout = setTimeout(onComplete, duration + 20);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t}, out ? 25 : 90); // Main purpose of this delay is to give browser time to paint and\n\t\t\t\t\t// create composite layers of PhotoSwipe UI parts (background, controls, caption, arrows).\n\t\t\t\t\t// Which avoids lag at the beginning of scale transition.\n\t\t};\n\t\tstartAnimation();\n\n\t\t\n\t};\n\n/*>>show-hide-transition*/\n\n/*>>items-controller*/\n/**\n*\n* Controller manages gallery items, their dimensions, and their content.\n* \n*/\n\nvar _items,\n\t_tempPanAreaSize = {},\n\t_imagesToAppendPool = [],\n\t_initialContentSet,\n\t_initialZoomRunning,\n\t_controllerDefaultOptions = {\n\t\tindex: 0,\n\t\terrorMsg: '
The image could not be loaded.
',\n\t\tforceProgressiveLoading: false, // TODO\n\t\tpreload: [1,1],\n\t\tgetNumItemsFn: function() {\n\t\t\treturn _items.length;\n\t\t}\n\t};\n\n\nvar _getItemAt,\n\t_getNumItems,\n\t_initialIsLoop,\n\t_getZeroBounds = function() {\n\t\treturn {\n\t\t\tcenter:{x:0,y:0}, \n\t\t\tmax:{x:0,y:0}, \n\t\t\tmin:{x:0,y:0}\n\t\t};\n\t},\n\t_calculateSingleItemPanBounds = function(item, realPanElementW, realPanElementH ) {\n\t\tvar bounds = item.bounds;\n\n\t\t// position of element when it's centered\n\t\tbounds.center.x = Math.round((_tempPanAreaSize.x - realPanElementW) / 2);\n\t\tbounds.center.y = Math.round((_tempPanAreaSize.y - realPanElementH) / 2) + item.vGap.top;\n\n\t\t// maximum pan position\n\t\tbounds.max.x = (realPanElementW > _tempPanAreaSize.x) ? \n\t\t\t\t\t\t\tMath.round(_tempPanAreaSize.x - realPanElementW) : \n\t\t\t\t\t\t\tbounds.center.x;\n\t\t\n\t\tbounds.max.y = (realPanElementH > _tempPanAreaSize.y) ? \n\t\t\t\t\t\t\tMath.round(_tempPanAreaSize.y - realPanElementH) + item.vGap.top : \n\t\t\t\t\t\t\tbounds.center.y;\n\t\t\n\t\t// minimum pan position\n\t\tbounds.min.x = (realPanElementW > _tempPanAreaSize.x) ? 0 : bounds.center.x;\n\t\tbounds.min.y = (realPanElementH > _tempPanAreaSize.y) ? item.vGap.top : bounds.center.y;\n\t},\n\t_calculateItemSize = function(item, viewportSize, zoomLevel) {\n\n\t\tif (item.src && !item.loadError) {\n\t\t\tvar isInitial = !zoomLevel;\n\t\t\t\n\t\t\tif(isInitial) {\n\t\t\t\tif(!item.vGap) {\n\t\t\t\t\titem.vGap = {top:0,bottom:0};\n\t\t\t\t}\n\t\t\t\t// allows overriding vertical margin for individual items\n\t\t\t\t_shout('parseVerticalMargin', item);\n\t\t\t}\n\n\n\t\t\t_tempPanAreaSize.x = viewportSize.x;\n\t\t\t_tempPanAreaSize.y = viewportSize.y - item.vGap.top - item.vGap.bottom;\n\n\t\t\tif (isInitial) {\n\t\t\t\tvar hRatio = _tempPanAreaSize.x / item.w;\n\t\t\t\tvar vRatio = _tempPanAreaSize.y / item.h;\n\n\t\t\t\titem.fitRatio = hRatio < vRatio ? hRatio : vRatio;\n\t\t\t\t//item.fillRatio = hRatio > vRatio ? hRatio : vRatio;\n\n\t\t\t\tvar scaleMode = _options.scaleMode;\n\n\t\t\t\tif (scaleMode === 'orig') {\n\t\t\t\t\tzoomLevel = 1;\n\t\t\t\t} else if (scaleMode === 'fit') {\n\t\t\t\t\tzoomLevel = item.fitRatio;\n\t\t\t\t}\n\n\t\t\t\tif (zoomLevel > 1) {\n\t\t\t\t\tzoomLevel = 1;\n\t\t\t\t}\n\n\t\t\t\titem.initialZoomLevel = zoomLevel;\n\t\t\t\t\n\t\t\t\tif(!item.bounds) {\n\t\t\t\t\t// reuse bounds object\n\t\t\t\t\titem.bounds = _getZeroBounds(); \n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!zoomLevel) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_calculateSingleItemPanBounds(item, item.w * zoomLevel, item.h * zoomLevel);\n\n\t\t\tif (isInitial && zoomLevel === item.initialZoomLevel) {\n\t\t\t\titem.initialPosition = item.bounds.center;\n\t\t\t}\n\n\t\t\treturn item.bounds;\n\t\t} else {\n\t\t\titem.w = item.h = 0;\n\t\t\titem.initialZoomLevel = item.fitRatio = 1;\n\t\t\titem.bounds = _getZeroBounds();\n\t\t\titem.initialPosition = item.bounds.center;\n\n\t\t\t// if it's not image, we return zero bounds (content is not zoomable)\n\t\t\treturn item.bounds;\n\t\t}\n\t\t\n\t},\n\n\t\n\n\n\t_appendImage = function(index, item, baseDiv, img, preventAnimation, keepPlaceholder) {\n\t\t\n\n\t\tif(item.loadError) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(img) {\n\n\t\t\titem.imageAppended = true;\n\t\t\t_setImageSize(item, img, (item === self.currItem && _renderMaxResolution) );\n\t\t\t\n\t\t\tbaseDiv.appendChild(img);\n\n\t\t\tif(keepPlaceholder) {\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tif(item && item.loaded && item.placeholder) {\n\t\t\t\t\t\titem.placeholder.style.display = 'none';\n\t\t\t\t\t\titem.placeholder = null;\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t}\n\t},\n\t\n\n\n\t_preloadImage = function(item) {\n\t\titem.loading = true;\n\t\titem.loaded = false;\n\t\tvar img = item.img = framework.createEl('pswp__img', 'img');\n\t\tvar onComplete = function() {\n\t\t\titem.loading = false;\n\t\t\titem.loaded = true;\n\n\t\t\tif(item.loadComplete) {\n\t\t\t\titem.loadComplete(item);\n\t\t\t} else {\n\t\t\t\titem.img = null; // no need to store image object\n\t\t\t}\n\t\t\timg.onload = img.onerror = null;\n\t\t\timg = null;\n\t\t};\n\t\timg.onload = onComplete;\n\t\timg.onerror = function() {\n\t\t\titem.loadError = true;\n\t\t\tonComplete();\n\t\t};\t\t\n\n\t\timg.src = item.src;// + '?a=' + Math.random();\n\n\t\treturn img;\n\t},\n\t_checkForError = function(item, cleanUp) {\n\t\tif(item.src && item.loadError && item.container) {\n\n\t\t\tif(cleanUp) {\n\t\t\t\titem.container.innerHTML = '';\n\t\t\t}\n\n\t\t\titem.container.innerHTML = _options.errorMsg.replace('%url%', item.src );\n\t\t\treturn true;\n\t\t\t\n\t\t}\n\t},\n\t_setImageSize = function(item, img, maxRes) {\n\t\tif(!item.src) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(!img) {\n\t\t\timg = item.container.lastChild;\n\t\t}\n\n\t\tvar w = maxRes ? item.w : Math.round(item.w * item.fitRatio),\n\t\t\th = maxRes ? item.h : Math.round(item.h * item.fitRatio);\n\t\t\n\t\tif(item.placeholder && !item.loaded) {\n\t\t\titem.placeholder.style.width = w + 'px';\n\t\t\titem.placeholder.style.height = h + 'px';\n\t\t}\n\n\t\timg.style.width = w + 'px';\n\t\timg.style.height = h + 'px';\n\t},\n\t_appendImagesPool = function() {\n\n\t\tif(_imagesToAppendPool.length) {\n\t\t\tvar poolItem;\n\n\t\t\tfor(var i = 0; i < _imagesToAppendPool.length; i++) {\n\t\t\t\tpoolItem = _imagesToAppendPool[i];\n\t\t\t\tif( poolItem.holder.index === poolItem.index ) {\n\t\t\t\t\t_appendImage(poolItem.index, poolItem.item, poolItem.baseDiv, poolItem.img, false, poolItem.clearPlaceholder);\n\t\t\t\t}\n\t\t\t}\n\t\t\t_imagesToAppendPool = [];\n\t\t}\n\t};\n\t\n\n\n_registerModule('Controller', {\n\n\tpublicMethods: {\n\n\t\tlazyLoadItem: function(index) {\n\t\t\tindex = _getLoopedId(index);\n\t\t\tvar item = _getItemAt(index);\n\n\t\t\tif(!item || ((item.loaded || item.loading) && !_itemsNeedUpdate)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_shout('gettingData', index, item);\n\n\t\t\tif (!item.src) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_preloadImage(item);\n\t\t},\n\t\tinitController: function() {\n\t\t\tframework.extend(_options, _controllerDefaultOptions, true);\n\t\t\tself.items = _items = items;\n\t\t\t_getItemAt = self.getItemAt;\n\t\t\t_getNumItems = _options.getNumItemsFn; //self.getNumItems;\n\n\n\n\t\t\t_initialIsLoop = _options.loop;\n\t\t\tif(_getNumItems() < 3) {\n\t\t\t\t_options.loop = false; // disable loop if less then 3 items\n\t\t\t}\n\n\t\t\t_listen('beforeChange', function(diff) {\n\n\t\t\t\tvar p = _options.preload,\n\t\t\t\t\tisNext = diff === null ? true : (diff >= 0),\n\t\t\t\t\tpreloadBefore = Math.min(p[0], _getNumItems() ),\n\t\t\t\t\tpreloadAfter = Math.min(p[1], _getNumItems() ),\n\t\t\t\t\ti;\n\n\n\t\t\t\tfor(i = 1; i <= (isNext ? preloadAfter : preloadBefore); i++) {\n\t\t\t\t\tself.lazyLoadItem(_currentItemIndex+i);\n\t\t\t\t}\n\t\t\t\tfor(i = 1; i <= (isNext ? preloadBefore : preloadAfter); i++) {\n\t\t\t\t\tself.lazyLoadItem(_currentItemIndex-i);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_listen('initialLayout', function() {\n\t\t\t\tself.currItem.initialLayout = _options.getThumbBoundsFn && _options.getThumbBoundsFn(_currentItemIndex);\n\t\t\t});\n\n\t\t\t_listen('mainScrollAnimComplete', _appendImagesPool);\n\t\t\t_listen('initialZoomInEnd', _appendImagesPool);\n\n\n\n\t\t\t_listen('destroy', function() {\n\t\t\t\tvar item;\n\t\t\t\tfor(var i = 0; i < _items.length; i++) {\n\t\t\t\t\titem = _items[i];\n\t\t\t\t\t// remove reference to DOM elements, for GC\n\t\t\t\t\tif(item.container) {\n\t\t\t\t\t\titem.container = null; \n\t\t\t\t\t}\n\t\t\t\t\tif(item.placeholder) {\n\t\t\t\t\t\titem.placeholder = null;\n\t\t\t\t\t}\n\t\t\t\t\tif(item.img) {\n\t\t\t\t\t\titem.img = null;\n\t\t\t\t\t}\n\t\t\t\t\tif(item.preloader) {\n\t\t\t\t\t\titem.preloader = null;\n\t\t\t\t\t}\n\t\t\t\t\tif(item.loadError) {\n\t\t\t\t\t\titem.loaded = item.loadError = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t_imagesToAppendPool = null;\n\t\t\t});\n\t\t},\n\n\n\t\tgetItemAt: function(index) {\n\t\t\tif (index >= 0) {\n\t\t\t\treturn _items[index] !== undefined ? _items[index] : false;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\n\t\tallowProgressiveImg: function() {\n\t\t\t// 1. Progressive image loading isn't working on webkit/blink \n\t\t\t// when hw-acceleration (e.g. translateZ) is applied to IMG element.\n\t\t\t// That's why in PhotoSwipe parent element gets zoom transform, not image itself.\n\t\t\t// \n\t\t\t// 2. Progressive image loading sometimes blinks in webkit/blink when applying animation to parent element.\n\t\t\t// That's why it's disabled on touch devices (mainly because of swipe transition)\n\t\t\t// \n\t\t\t// 3. Progressive image loading sometimes doesn't work in IE (up to 11).\n\n\t\t\t// Don't allow progressive loading on non-large touch devices\n\t\t\treturn _options.forceProgressiveLoading || !_likelyTouchDevice || _options.mouseUsed || screen.width > 1200; \n\t\t\t// 1200 - to eliminate touch devices with large screen (like Chromebook Pixel)\n\t\t},\n\n\t\tsetContent: function(holder, index) {\n\n\t\t\tif(_options.loop) {\n\t\t\t\tindex = _getLoopedId(index);\n\t\t\t}\n\n\t\t\tvar prevItem = self.getItemAt(holder.index);\n\t\t\tif(prevItem) {\n\t\t\t\tprevItem.container = null;\n\t\t\t}\n\t\n\t\t\tvar item = self.getItemAt(index),\n\t\t\t\timg;\n\t\t\t\n\t\t\tif(!item) {\n\t\t\t\tholder.el.innerHTML = '';\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// allow to override data\n\t\t\t_shout('gettingData', index, item);\n\n\t\t\tholder.index = index;\n\t\t\tholder.item = item;\n\n\t\t\t// base container DIV is created only once for each of 3 holders\n\t\t\tvar baseDiv = item.container = framework.createEl('pswp__zoom-wrap'); \n\n\t\t\t\n\n\t\t\tif(!item.src && item.html) {\n\t\t\t\tif(item.html.tagName) {\n\t\t\t\t\tbaseDiv.appendChild(item.html);\n\t\t\t\t} else {\n\t\t\t\t\tbaseDiv.innerHTML = item.html;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_checkForError(item);\n\n\t\t\t_calculateItemSize(item, _viewportSize);\n\t\t\t\n\t\t\tif(item.src && !item.loadError && !item.loaded) {\n\n\t\t\t\titem.loadComplete = function(item) {\n\n\t\t\t\t\t// gallery closed before image finished loading\n\t\t\t\t\tif(!_isOpen) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// check if holder hasn't changed while image was loading\n\t\t\t\t\tif(holder && holder.index === index ) {\n\t\t\t\t\t\tif( _checkForError(item, true) ) {\n\t\t\t\t\t\t\titem.loadComplete = item.img = null;\n\t\t\t\t\t\t\t_calculateItemSize(item, _viewportSize);\n\t\t\t\t\t\t\t_applyZoomPanToItem(item);\n\n\t\t\t\t\t\t\tif(holder.index === _currentItemIndex) {\n\t\t\t\t\t\t\t\t// recalculate dimensions\n\t\t\t\t\t\t\t\tself.updateCurrZoomItem();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( !item.imageAppended ) {\n\t\t\t\t\t\t\tif(_features.transform && (_mainScrollAnimating || _initialZoomRunning) ) {\n\t\t\t\t\t\t\t\t_imagesToAppendPool.push({\n\t\t\t\t\t\t\t\t\titem:item,\n\t\t\t\t\t\t\t\t\tbaseDiv:baseDiv,\n\t\t\t\t\t\t\t\t\timg:item.img,\n\t\t\t\t\t\t\t\t\tindex:index,\n\t\t\t\t\t\t\t\t\tholder:holder,\n\t\t\t\t\t\t\t\t\tclearPlaceholder:true\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_appendImage(index, item, baseDiv, item.img, _mainScrollAnimating || _initialZoomRunning, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// remove preloader & mini-img\n\t\t\t\t\t\t\tif(!_initialZoomRunning && item.placeholder) {\n\t\t\t\t\t\t\t\titem.placeholder.style.display = 'none';\n\t\t\t\t\t\t\t\titem.placeholder = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\titem.loadComplete = null;\n\t\t\t\t\titem.img = null; // no need to store image element after it's added\n\n\t\t\t\t\t_shout('imageLoadComplete', index, item);\n\t\t\t\t};\n\n\t\t\t\tif(framework.features.transform) {\n\t\t\t\t\t\n\t\t\t\t\tvar placeholderClassName = 'pswp__img pswp__img--placeholder'; \n\t\t\t\t\tplaceholderClassName += (item.msrc ? '' : ' pswp__img--placeholder--blank');\n\n\t\t\t\t\tvar placeholder = framework.createEl(placeholderClassName, item.msrc ? 'img' : '');\n\t\t\t\t\tif(item.msrc) {\n\t\t\t\t\t\tplaceholder.src = item.msrc;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t_setImageSize(item, placeholder);\n\n\t\t\t\t\tbaseDiv.appendChild(placeholder);\n\t\t\t\t\titem.placeholder = placeholder;\n\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\tif(!item.loading) {\n\t\t\t\t\t_preloadImage(item);\n\t\t\t\t}\n\n\n\t\t\t\tif( self.allowProgressiveImg() ) {\n\t\t\t\t\t// just append image\n\t\t\t\t\tif(!_initialContentSet && _features.transform) {\n\t\t\t\t\t\t_imagesToAppendPool.push({\n\t\t\t\t\t\t\titem:item, \n\t\t\t\t\t\t\tbaseDiv:baseDiv, \n\t\t\t\t\t\t\timg:item.img, \n\t\t\t\t\t\t\tindex:index, \n\t\t\t\t\t\t\tholder:holder\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_appendImage(index, item, baseDiv, item.img, true, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else if(item.src && !item.loadError) {\n\t\t\t\t// image object is created every time, due to bugs of image loading & delay when switching images\n\t\t\t\timg = framework.createEl('pswp__img', 'img');\n\t\t\t\timg.style.opacity = 1;\n\t\t\t\timg.src = item.src;\n\t\t\t\t_setImageSize(item, img);\n\t\t\t\t_appendImage(index, item, baseDiv, img, true);\n\t\t\t}\n\t\t\t\n\n\t\t\tif(!_initialContentSet && index === _currentItemIndex) {\n\t\t\t\t_currZoomElementStyle = baseDiv.style;\n\t\t\t\t_showOrHide(item, (img ||item.img) );\n\t\t\t} else {\n\t\t\t\t_applyZoomPanToItem(item);\n\t\t\t}\n\n\t\t\tholder.el.innerHTML = '';\n\t\t\tholder.el.appendChild(baseDiv);\n\t\t},\n\n\t\tcleanSlide: function( item ) {\n\t\t\tif(item.img ) {\n\t\t\t\titem.img.onload = item.img.onerror = null;\n\t\t\t}\n\t\t\titem.loaded = item.loading = item.img = item.imageAppended = false;\n\t\t}\n\n\t}\n});\n\n/*>>items-controller*/\n\n/*>>tap*/\n/**\n * tap.js:\n *\n * Displatches tap and double-tap events.\n * \n */\n\nvar tapTimer,\n\ttapReleasePoint = {},\n\t_dispatchTapEvent = function(origEvent, releasePoint, pointerType) {\t\t\n\t\tvar e = document.createEvent( 'CustomEvent' ),\n\t\t\teDetail = {\n\t\t\t\torigEvent:origEvent, \n\t\t\t\ttarget:origEvent.target, \n\t\t\t\treleasePoint: releasePoint, \n\t\t\t\tpointerType:pointerType || 'touch'\n\t\t\t};\n\n\t\te.initCustomEvent( 'pswpTap', true, true, eDetail );\n\t\torigEvent.target.dispatchEvent(e);\n\t};\n\n_registerModule('Tap', {\n\tpublicMethods: {\n\t\tinitTap: function() {\n\t\t\t_listen('firstTouchStart', self.onTapStart);\n\t\t\t_listen('touchRelease', self.onTapRelease);\n\t\t\t_listen('destroy', function() {\n\t\t\t\ttapReleasePoint = {};\n\t\t\t\ttapTimer = null;\n\t\t\t});\n\t\t},\n\t\tonTapStart: function(touchList) {\n\t\t\tif(touchList.length > 1) {\n\t\t\t\tclearTimeout(tapTimer);\n\t\t\t\ttapTimer = null;\n\t\t\t}\n\t\t},\n\t\tonTapRelease: function(e, releasePoint) {\n\t\t\tif(!releasePoint) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(!_moved && !_isMultitouch && !_numAnimations) {\n\t\t\t\tvar p0 = releasePoint;\n\t\t\t\tif(tapTimer) {\n\t\t\t\t\tclearTimeout(tapTimer);\n\t\t\t\t\ttapTimer = null;\n\n\t\t\t\t\t// Check if taped on the same place\n\t\t\t\t\tif ( _isNearbyPoints(p0, tapReleasePoint) ) {\n\t\t\t\t\t\t_shout('doubleTap', p0);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(releasePoint.type === 'mouse') {\n\t\t\t\t\t_dispatchTapEvent(e, releasePoint, 'mouse');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar clickedTagName = e.target.tagName.toUpperCase();\n\t\t\t\t// avoid double tap delay on buttons and elements that have class pswp__single-tap\n\t\t\t\tif(clickedTagName === 'BUTTON' || framework.hasClass(e.target, 'pswp__single-tap') ) {\n\t\t\t\t\t_dispatchTapEvent(e, releasePoint);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t_equalizePoints(tapReleasePoint, p0);\n\n\t\t\t\ttapTimer = setTimeout(function() {\n\t\t\t\t\t_dispatchTapEvent(e, releasePoint);\n\t\t\t\t\ttapTimer = null;\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t}\n\t}\n});\n\n/*>>tap*/\n\n/*>>desktop-zoom*/\n/**\n *\n * desktop-zoom.js:\n *\n * - Binds mousewheel event for paning zoomed image.\n * - Manages \"dragging\", \"zoomed-in\", \"zoom-out\" classes.\n * (which are used for cursors and zoom icon)\n * - Adds toggleDesktopZoom function.\n * \n */\n\nvar _wheelDelta;\n\t\n_registerModule('DesktopZoom', {\n\n\tpublicMethods: {\n\n\t\tinitDesktopZoom: function() {\n\n\t\t\tif(_oldIE) {\n\t\t\t\t// no zoom for old IE (<=8)\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(_likelyTouchDevice) {\n\t\t\t\t// if detected hardware touch support, we wait until mouse is used,\n\t\t\t\t// and only then apply desktop-zoom features\n\t\t\t\t_listen('mouseUsed', function() {\n\t\t\t\t\tself.setupDesktopZoom();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tself.setupDesktopZoom(true);\n\t\t\t}\n\n\t\t},\n\n\t\tsetupDesktopZoom: function(onInit) {\n\n\t\t\t_wheelDelta = {};\n\n\t\t\tvar events = 'wheel mousewheel DOMMouseScroll';\n\t\t\t\n\t\t\t_listen('bindEvents', function() {\n\t\t\t\tframework.bind(template, events, self.handleMouseWheel);\n\t\t\t});\n\n\t\t\t_listen('unbindEvents', function() {\n\t\t\t\tif(_wheelDelta) {\n\t\t\t\t\tframework.unbind(template, events, self.handleMouseWheel);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.mouseZoomedIn = false;\n\n\t\t\tvar hasDraggingClass,\n\t\t\t\tupdateZoomable = function() {\n\t\t\t\t\tif(self.mouseZoomedIn) {\n\t\t\t\t\t\tframework.removeClass(template, 'pswp--zoomed-in');\n\t\t\t\t\t\tself.mouseZoomedIn = false;\n\t\t\t\t\t}\n\t\t\t\t\tif(_currZoomLevel < 1) {\n\t\t\t\t\t\tframework.addClass(template, 'pswp--zoom-allowed');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tframework.removeClass(template, 'pswp--zoom-allowed');\n\t\t\t\t\t}\n\t\t\t\t\tremoveDraggingClass();\n\t\t\t\t},\n\t\t\t\tremoveDraggingClass = function() {\n\t\t\t\t\tif(hasDraggingClass) {\n\t\t\t\t\t\tframework.removeClass(template, 'pswp--dragging');\n\t\t\t\t\t\thasDraggingClass = false;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t_listen('resize' , updateZoomable);\n\t\t\t_listen('afterChange' , updateZoomable);\n\t\t\t_listen('pointerDown', function() {\n\t\t\t\tif(self.mouseZoomedIn) {\n\t\t\t\t\thasDraggingClass = true;\n\t\t\t\t\tframework.addClass(template, 'pswp--dragging');\n\t\t\t\t}\n\t\t\t});\n\t\t\t_listen('pointerUp', removeDraggingClass);\n\n\t\t\tif(!onInit) {\n\t\t\t\tupdateZoomable();\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t\thandleMouseWheel: function(e) {\n\n\t\t\tif(_currZoomLevel <= self.currItem.fitRatio) {\n\t\t\t\tif( _options.modal ) {\n\n\t\t\t\t\tif (!_options.closeOnScroll || _numAnimations || _isDragging) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if(_transformKey && Math.abs(e.deltaY) > 2) {\n\t\t\t\t\t\t// close PhotoSwipe\n\t\t\t\t\t\t// if browser supports transforms & scroll changed enough\n\t\t\t\t\t\t_closedByScroll = true;\n\t\t\t\t\t\tself.close();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// allow just one event to fire\n\t\t\te.stopPropagation();\n\n\t\t\t// https://developer.mozilla.org/en-US/docs/Web/Events/wheel\n\t\t\t_wheelDelta.x = 0;\n\n\t\t\tif('deltaX' in e) {\n\t\t\t\tif(e.deltaMode === 1 /* DOM_DELTA_LINE */) {\n\t\t\t\t\t// 18 - average line height\n\t\t\t\t\t_wheelDelta.x = e.deltaX * 18;\n\t\t\t\t\t_wheelDelta.y = e.deltaY * 18;\n\t\t\t\t} else {\n\t\t\t\t\t_wheelDelta.x = e.deltaX;\n\t\t\t\t\t_wheelDelta.y = e.deltaY;\n\t\t\t\t}\n\t\t\t} else if('wheelDelta' in e) {\n\t\t\t\tif(e.wheelDeltaX) {\n\t\t\t\t\t_wheelDelta.x = -0.16 * e.wheelDeltaX;\n\t\t\t\t}\n\t\t\t\tif(e.wheelDeltaY) {\n\t\t\t\t\t_wheelDelta.y = -0.16 * e.wheelDeltaY;\n\t\t\t\t} else {\n\t\t\t\t\t_wheelDelta.y = -0.16 * e.wheelDelta;\n\t\t\t\t}\n\t\t\t} else if('detail' in e) {\n\t\t\t\t_wheelDelta.y = e.detail;\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_calculatePanBounds(_currZoomLevel, true);\n\n\t\t\tvar newPanX = _panOffset.x - _wheelDelta.x,\n\t\t\t\tnewPanY = _panOffset.y - _wheelDelta.y;\n\n\t\t\t// only prevent scrolling in nonmodal mode when not at edges\n\t\t\tif (_options.modal ||\n\t\t\t\t(\n\t\t\t\tnewPanX <= _currPanBounds.min.x && newPanX >= _currPanBounds.max.x &&\n\t\t\t\tnewPanY <= _currPanBounds.min.y && newPanY >= _currPanBounds.max.y\n\t\t\t\t) ) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\t// TODO: use rAF instead of mousewheel?\n\t\t\tself.panTo(newPanX, newPanY);\n\t\t},\n\n\t\ttoggleDesktopZoom: function(centerPoint) {\n\t\t\tcenterPoint = centerPoint || {x:_viewportSize.x/2 + _offset.x, y:_viewportSize.y/2 + _offset.y };\n\n\t\t\tvar doubleTapZoomLevel = _options.getDoubleTapZoom(true, self.currItem);\n\t\t\tvar zoomOut = _currZoomLevel === doubleTapZoomLevel;\n\t\t\t\n\t\t\tself.mouseZoomedIn = !zoomOut;\n\n\t\t\tself.zoomTo(zoomOut ? self.currItem.initialZoomLevel : doubleTapZoomLevel, centerPoint, 333);\n\t\t\tframework[ (!zoomOut ? 'add' : 'remove') + 'Class'](template, 'pswp--zoomed-in');\n\t\t}\n\n\t}\n});\n\n\n/*>>desktop-zoom*/\n\n/*>>history*/\n/**\n *\n * history.js:\n *\n * - Back button to close gallery.\n * \n * - Unique URL for each slide: example.com/&pid=1&gid=3\n * (where PID is picture index, and GID and gallery index)\n * \n * - Switch URL when slides change.\n * \n */\n\n\nvar _historyDefaultOptions = {\n\thistory: true,\n\tgalleryUID: 1\n};\n\nvar _historyUpdateTimeout,\n\t_hashChangeTimeout,\n\t_hashAnimCheckTimeout,\n\t_hashChangedByScript,\n\t_hashChangedByHistory,\n\t_hashReseted,\n\t_initialHash,\n\t_historyChanged,\n\t_closedFromURL,\n\t_urlChangedOnce,\n\t_windowLoc,\n\n\t_supportsPushState,\n\n\t_getHash = function() {\n\t\treturn _windowLoc.hash.substring(1);\n\t},\n\t_cleanHistoryTimeouts = function() {\n\n\t\tif(_historyUpdateTimeout) {\n\t\t\tclearTimeout(_historyUpdateTimeout);\n\t\t}\n\n\t\tif(_hashAnimCheckTimeout) {\n\t\t\tclearTimeout(_hashAnimCheckTimeout);\n\t\t}\n\t},\n\n\t// pid - Picture index\n\t// gid - Gallery index\n\t_parseItemIndexFromURL = function() {\n\t\tvar hash = _getHash(),\n\t\t\tparams = {};\n\n\t\tif(hash.length < 5) { // pid=1\n\t\t\treturn params;\n\t\t}\n\n\t\tvar i, vars = hash.split('&');\n\t\tfor (i = 0; i < vars.length; i++) {\n\t\t\tif(!vars[i]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar pair = vars[i].split('=');\t\n\t\t\tif(pair.length < 2) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tparams[pair[0]] = pair[1];\n\t\t}\n\t\tif(_options.galleryPIDs) {\n\t\t\t// detect custom pid in hash and search for it among the items collection\n\t\t\tvar searchfor = params.pid;\n\t\t\tparams.pid = 0; // if custom pid cannot be found, fallback to the first item\n\t\t\tfor(i = 0; i < _items.length; i++) {\n\t\t\t\tif(_items[i].pid === searchfor) {\n\t\t\t\t\tparams.pid = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tparams.pid = parseInt(params.pid,10)-1;\n\t\t}\n\t\tif( params.pid < 0 ) {\n\t\t\tparams.pid = 0;\n\t\t}\n\t\treturn params;\n\t},\n\t_updateHash = function() {\n\n\t\tif(_hashAnimCheckTimeout) {\n\t\t\tclearTimeout(_hashAnimCheckTimeout);\n\t\t}\n\n\n\t\tif(_numAnimations || _isDragging) {\n\t\t\t// changing browser URL forces layout/paint in some browsers, which causes noticable lag during animation\n\t\t\t// that's why we update hash only when no animations running\n\t\t\t_hashAnimCheckTimeout = setTimeout(_updateHash, 500);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif(_hashChangedByScript) {\n\t\t\tclearTimeout(_hashChangeTimeout);\n\t\t} else {\n\t\t\t_hashChangedByScript = true;\n\t\t}\n\n\n\t\tvar pid = (_currentItemIndex + 1);\n\t\tvar item = _getItemAt( _currentItemIndex );\n\t\tif(item.hasOwnProperty('pid')) {\n\t\t\t// carry forward any custom pid assigned to the item\n\t\t\tpid = item.pid;\n\t\t}\n\t\tvar newHash = _initialHash + '&' + 'gid=' + _options.galleryUID + '&' + 'pid=' + pid;\n\n\t\tif(!_historyChanged) {\n\t\t\tif(_windowLoc.hash.indexOf(newHash) === -1) {\n\t\t\t\t_urlChangedOnce = true;\n\t\t\t}\n\t\t\t// first time - add new hisory record, then just replace\n\t\t}\n\n\t\tvar newURL = _windowLoc.href.split('#')[0] + '#' + newHash;\n\n\t\tif( _supportsPushState ) {\n\n\t\t\tif('#' + newHash !== window.location.hash) {\n\t\t\t\thistory[_historyChanged ? 'replaceState' : 'pushState']('', document.title, newURL);\n\t\t\t}\n\n\t\t} else {\n\t\t\tif(_historyChanged) {\n\t\t\t\t_windowLoc.replace( newURL );\n\t\t\t} else {\n\t\t\t\t_windowLoc.hash = newHash;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\n\t\t_historyChanged = true;\n\t\t_hashChangeTimeout = setTimeout(function() {\n\t\t\t_hashChangedByScript = false;\n\t\t}, 60);\n\t};\n\n\n\n\t\n\n_registerModule('History', {\n\n\t\n\n\tpublicMethods: {\n\t\tinitHistory: function() {\n\n\t\t\tframework.extend(_options, _historyDefaultOptions, true);\n\n\t\t\tif( !_options.history ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\t_windowLoc = window.location;\n\t\t\t_urlChangedOnce = false;\n\t\t\t_closedFromURL = false;\n\t\t\t_historyChanged = false;\n\t\t\t_initialHash = _getHash();\n\t\t\t_supportsPushState = ('pushState' in history);\n\n\n\t\t\tif(_initialHash.indexOf('gid=') > -1) {\n\t\t\t\t_initialHash = _initialHash.split('&gid=')[0];\n\t\t\t\t_initialHash = _initialHash.split('?gid=')[0];\n\t\t\t}\n\t\t\t\n\n\t\t\t_listen('afterChange', self.updateURL);\n\t\t\t_listen('unbindEvents', function() {\n\t\t\t\tframework.unbind(window, 'hashchange', self.onHashChange);\n\t\t\t});\n\n\n\t\t\tvar returnToOriginal = function() {\n\t\t\t\t_hashReseted = true;\n\t\t\t\tif(!_closedFromURL) {\n\n\t\t\t\t\tif(_urlChangedOnce) {\n\t\t\t\t\t\thistory.back();\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif(_initialHash) {\n\t\t\t\t\t\t\t_windowLoc.hash = _initialHash;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (_supportsPushState) {\n\n\t\t\t\t\t\t\t\t// remove hash from url without refreshing it or scrolling to top\n\t\t\t\t\t\t\t\thistory.pushState('', document.title, _windowLoc.pathname + _windowLoc.search );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_windowLoc.hash = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t\t_cleanHistoryTimeouts();\n\t\t\t};\n\n\n\t\t\t_listen('unbindEvents', function() {\n\t\t\t\tif(_closedByScroll) {\n\t\t\t\t\t// if PhotoSwipe is closed by scroll, we go \"back\" before the closing animation starts\n\t\t\t\t\t// this is done to keep the scroll position\n\t\t\t\t\treturnToOriginal();\n\t\t\t\t}\n\t\t\t});\n\t\t\t_listen('destroy', function() {\n\t\t\t\tif(!_hashReseted) {\n\t\t\t\t\treturnToOriginal();\n\t\t\t\t}\n\t\t\t});\n\t\t\t_listen('firstUpdate', function() {\n\t\t\t\t_currentItemIndex = _parseItemIndexFromURL().pid;\n\t\t\t});\n\n\t\t\t\n\n\t\t\t\n\t\t\tvar index = _initialHash.indexOf('pid=');\n\t\t\tif(index > -1) {\n\t\t\t\t_initialHash = _initialHash.substring(0, index);\n\t\t\t\tif(_initialHash.slice(-1) === '&') {\n\t\t\t\t\t_initialHash = _initialHash.slice(0, -1);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tif(_isOpen) { // hasn't destroyed yet\n\t\t\t\t\tframework.bind(window, 'hashchange', self.onHashChange);\n\t\t\t\t}\n\t\t\t}, 40);\n\t\t\t\n\t\t},\n\t\tonHashChange: function() {\n\n\t\t\tif(_getHash() === _initialHash) {\n\n\t\t\t\t_closedFromURL = true;\n\t\t\t\tself.close();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(!_hashChangedByScript) {\n\n\t\t\t\t_hashChangedByHistory = true;\n\t\t\t\tself.goTo( _parseItemIndexFromURL().pid );\n\t\t\t\t_hashChangedByHistory = false;\n\t\t\t}\n\t\t\t\n\t\t},\n\t\tupdateURL: function() {\n\n\t\t\t// Delay the update of URL, to avoid lag during transition, \n\t\t\t// and to not to trigger actions like \"refresh page sound\" or \"blinking favicon\" to often\n\t\t\t\n\t\t\t_cleanHistoryTimeouts();\n\t\t\t\n\n\t\t\tif(_hashChangedByHistory) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(!_historyChanged) {\n\t\t\t\t_updateHash(); // first time\n\t\t\t} else {\n\t\t\t\t_historyUpdateTimeout = setTimeout(_updateHash, 800);\n\t\t\t}\n\t\t}\n\t\n\t}\n});\n\n\n/*>>history*/\n\tframework.extend(self, publicMethods); };\n\treturn PhotoSwipe;\n});\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites nonrecursive /\\\\.svg$/\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./SCF-logo-30-Years.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo-30-Years.svg\",\n\t\"./SCF-logo.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo.svg\",\n\t\"./add.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/add.svg\",\n\t\"./alert.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/alert.svg\",\n\t\"./anchor-down.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-down.svg\",\n\t\"./anchor-up.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-up.svg\",\n\t\"./arrow-left.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-left.svg\",\n\t\"./arrow-right.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-right.svg\",\n\t\"./article.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/article.svg\",\n\t\"./australia.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/australia.svg\",\n\t\"./calendar.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/calendar.svg\",\n\t\"./check-circle-filled.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle-filled.svg\",\n\t\"./check-circle.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle.svg\",\n\t\"./check.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check.svg\",\n\t\"./chevron-down.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-down.svg\",\n\t\"./chevron-left.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-left.svg\",\n\t\"./chevron-right.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-right.svg\",\n\t\"./chevron-up.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-up.svg\",\n\t\"./choose-container-white.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/choose-container-white.svg\",\n\t\"./clock.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/clock.svg\",\n\t\"./close-circle-filled.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-circle-filled.svg\",\n\t\"./close-small.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-small.svg\",\n\t\"./comparison-check.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-check.svg\",\n\t\"./comparison-uncheck.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-uncheck.svg\",\n\t\"./container-simple.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container-simple.svg\",\n\t\"./container.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container.svg\",\n\t\"./dot-scf.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot-scf.svg\",\n\t\"./dot.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot.svg\",\n\t\"./download.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/download.svg\",\n\t\"./edit.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/edit.svg\",\n\t\"./email.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/email.svg\",\n\t\"./enquire-nav-completed.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-completed.svg\",\n\t\"./enquire-nav-current.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-current.svg\",\n\t\"./enquire-nav-default.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-default.svg\",\n\t\"./expand.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/expand.svg\",\n\t\"./fax.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/fax.svg\",\n\t\"./feature-container.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-container.svg\",\n\t\"./feature-flag.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-flag.svg\",\n\t\"./feature-handshake.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-handshake.svg\",\n\t\"./feature-happy.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-happy.svg\",\n\t\"./feature-idea.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-idea.svg\",\n\t\"./feature-padlock.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-padlock.svg\",\n\t\"./feature-phone.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-phone.svg\",\n\t\"./feature-product-selector.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-product-selector.svg\",\n\t\"./feature-shipping.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-shipping.svg\",\n\t\"./feature-thinking.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-thinking.svg\",\n\t\"./feature-tick.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-tick.svg\",\n\t\"./hamburger.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/hamburger.svg\",\n\t\"./info.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/info.svg\",\n\t\"./map.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/map.svg\",\n\t\"./menu-close.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-close.svg\",\n\t\"./menu-open.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-open.svg\",\n\t\"./minus.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/minus.svg\",\n\t\"./money.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/money.svg\",\n\t\"./nz-truck.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/nz-truck.svg\",\n\t\"./person.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/person.svg\",\n\t\"./phone-filled.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-filled.svg\",\n\t\"./phone-outline.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-outline.svg\",\n\t\"./pin.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/pin.svg\",\n\t\"./play.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/play.svg\",\n\t\"./plus.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/plus.svg\",\n\t\"./ps-accommodation.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-accommodation.svg\",\n\t\"./ps-bulk-liquid.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-liquid.svg\",\n\t\"./ps-bulk-powder.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-powder.svg\",\n\t\"./ps-capacity-large.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-large.svg\",\n\t\"./ps-capacity-medium.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-medium.svg\",\n\t\"./ps-capacity-small.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-small.svg\",\n\t\"./ps-capacity.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity.svg\",\n\t\"./ps-chemicals.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-chemicals.svg\",\n\t\"./ps-dangerous-goods.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dangerous-goods.svg\",\n\t\"./ps-dimensions.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dimensions.svg\",\n\t\"./ps-dont-mind.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dont-mind.svg\",\n\t\"./ps-entrance-end.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-end.svg\",\n\t\"./ps-entrance-side.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-side.svg\",\n\t\"./ps-grain.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-grain.svg\",\n\t\"./ps-liquid-containment.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid-containment.svg\",\n\t\"./ps-liquid.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid.svg\",\n\t\"./ps-palletised.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-palletised.svg\",\n\t\"./ps-pallets-20.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-20.svg\",\n\t\"./ps-pallets-40.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-40.svg\",\n\t\"./ps-pallets-44.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-44.svg\",\n\t\"./ps-pallets-48.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-48.svg\",\n\t\"./ps-powder.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-powder.svg\",\n\t\"./ps-refrigerated.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-refrigerated.svg\",\n\t\"./ps-selector-feature.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-selector-feature.svg\",\n\t\"./ps-size-large.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-large.svg\",\n\t\"./ps-size-medium.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-medium.svg\",\n\t\"./ps-size-small.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-small.svg\",\n\t\"./ps-step1.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step1.svg\",\n\t\"./ps-step2.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step2.svg\",\n\t\"./ps-step3.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step3.svg\",\n\t\"./ps-storage.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-storage.svg\",\n\t\"./ps-tank-capacity-liquid-large.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-large.svg\",\n\t\"./ps-tank-capacity-liquid-medium.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-medium.svg\",\n\t\"./ps-tank-capacity-liquid-small.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-small.svg\",\n\t\"./ps-tank-capacity-powder-medium.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-medium.svg\",\n\t\"./ps-tank-capacity-powder-small.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-small.svg\",\n\t\"./ps-transport.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-transport.svg\",\n\t\"./question.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/question.svg\",\n\t\"./quote.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/quote.svg\",\n\t\"./remove.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/remove.svg\",\n\t\"./rewind.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/rewind.svg\",\n\t\"./search-complex.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-complex.svg\",\n\t\"./search-simple.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-simple.svg\",\n\t\"./social-facebook.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-facebook.svg\",\n\t\"./social-instagram.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-instagram.svg\",\n\t\"./social-linkedin.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-linkedin.svg\",\n\t\"./social-twitter.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-twitter.svg\",\n\t\"./social-youtube.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-youtube.svg\",\n\t\"./spinner.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/spinner.svg\",\n\t\"./star.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/star.svg\",\n\t\"./talk.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/talk.svg\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites nonrecursive /\\\\.svg$/\";\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/fn.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.debounce = debounce;\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /*\n jQuery plugin\n \n \n ```\n import debug from 'debug';\n import plugin from '@core/plugins/lib';\n \n const ELEMENT_SELECTOR = '[data-my-plugin]';\n const PLUGIN_NAME = 'MyPlugin';\n const MODULE_NAME = 'plugins/my-plugin';\n const log = debug(MODULE_NAME);\n \n class PluginKlass {\n constructor(element, options) {\n log('new instance', element, options);\n \n this.element = element;\n this.options = options;\n this.$element = $(element);\n \n log('ready', this.$element);\n \n this.init();\n }\n }\n \n PluginKlass.DEFAULTS = {\n someCamelCasedProperty: `${PLUGIN_NAME}:something`,\n };\n \n plugin(PLUGIN_NAME, PluginKlass);\n \n $(document).ready(() => {\n $(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n });\n ```\n \n Then using it in html:\n ```\n
\n ```\n \n Styelguide Core.Global.Javascript.JqueryPlugin\n */\n\n// import * as events from './events';\n\nexports.default = plugin;\nexports.jquery = jquery;\nexports.defaults = defaults;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _fn = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/fn.js\");\n\nvar fn = _interopRequireWildcard(_fn);\n\nvar _strings = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/strings.js\");\n\nvar strings = _interopRequireWildcard(_strings);\n\nvar _objects = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/objects.js\");\n\nvar objects = _interopRequireWildcard(_objects);\n\nvar _selectors = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/selectors.js\");\n\nvar selectors = _interopRequireWildcard(_selectors);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/plugins/lib');\n\nfunction plugin(pluginName, klass) {\n var shortHand = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var formattedPluginName = (0, _strings.toCamelCase)(pluginName);\n var dataName = '__' + formattedPluginName;\n var old = _jquery2.default.fn[formattedPluginName];\n var ZERO = 0;\n\n klass.$bus = {\n subscribe: function subscribe(event, fn) {\n (0, _jquery2.default)(this).bind(event, fn);\n },\n publish: function publish(event, data) {\n (0, _jquery2.default)(this).trigger(event, [data]);\n }\n };\n\n klass.$util = {\n fn: fn,\n objects: objects,\n strings: strings,\n selectors: selectors\n };\n\n klass.prototype.selectors = selectors;\n klass.prototype.strings = strings;\n klass.prototype.objects = objects;\n klass.prototype.fn = fn;\n klass.prototype.inViewport = function (elm) {\n var rect = elm.getBoundingClientRect();\n var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n return !(rect.bottom < 0 || rect.top - viewHeight >= 0);\n };\n\n _jquery2.default.fn[pluginName] = function PluginFactory(option) {\n return this.each(function PluginInstanceFactory() {\n var $this = (0, _jquery2.default)(this);\n var data = $this.data();\n var overrides = (typeof option === 'undefined' ? 'undefined' : _typeof(option)) === 'object' && option;\n var elementOptions = Object.keys(data).filter(function (key) {\n return (0, _strings.toCamelCase)(key).indexOf(formattedPluginName) >= ZERO;\n }).reduce(function (result, path) {\n var data = path && $this.data(path);\n var key = (0, _strings.toCamelCase)(path.replace(new RegExp(formattedPluginName + '-?'), ''));\n log(path, key, $this.data(path));\n\n if (key && data !== undefined) {\n result[key] = data;\n }\n return result;\n }, {});\n log(pluginName, { elementOptions: elementOptions });\n var instance = $this.data(dataName);\n var options = _jquery2.default.extend({}, klass.DEFAULTS, elementOptions, overrides);\n\n // store reference to instance\n if (!instance) {\n instance = new klass(this, options);\n instance.$utils = klass.$util;\n $this.data(dataName, instance);\n $this.addClass('u-' + pluginName);\n }\n\n // execute instance method\n if (typeof option === 'string') {\n instance[option]();\n }\n });\n };\n\n // - Short hand\n if (shortHand) {\n _jquery2.default[formattedPluginName] = function (options) {\n return (0, _jquery2.default)({})[formattedPluginName](options);\n };\n }\n\n // - No conflict\n // $.fn[formattedPluginName].noConflict = function noConflict () {\n // $.fn[formattedPluginName] = old;\n // };\n}\n\nfunction jquery(name) {\n return function decorate(target) {\n plugin(name, target);\n };\n}\n\nfunction defaults(options) {\n return function decorate(target) {\n target.DEFAULTS = options;\n };\n}\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/objects.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.elementAttrtibutesToObject = elementAttrtibutesToObject;\nexports.objectPath = objectPath;\n\nvar _debug = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _strings = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/strings.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MODULE_NAME = 'app.core/lib/objects';\nvar log = (0, _debug2.default)(MODULE_NAME);\n\nvar ZERO = 0;\n\n/**\n * Convert an elements attributes to an object, optionally filtering based on some predicate.\n * @param {DOMElement} element [description]\n * @param {Function} filterFn filtering function. return false to omit attribute.\n * @param {Function} transformFn transform attribute name function. returns camelCase by default\n * @return {[type]} [description]\n */\nfunction elementAttrtibutesToObject(element) {\n var filterFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {\n return true;\n };\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (name) {\n return (0, _strings.toCamelCase)(name);\n };\n\n var output = {};\n var attrs = Array.from($(element).get(ZERO).attributes);\n\n if (!attrs) {\n return output;\n }\n\n log('converting element attributes to object', attrs);\n\n return attrs.reduce(function (result, attribute) {\n if (filterFn(attribute)) {\n var name = transformFn(attribute.name);\n var value = attribute.value;\n\n if (value === 'false' || value === 'true') {\n value = Boolean(value);\n }\n result[name] = attribute.value;\n }\n\n return result;\n }, output);\n}\n\n/**\n * Object.prop()\n *\n * Allows dot-notation access to object properties for both getting and setting.\n *\n * @param {Object} obj The object we're getting from or setting\n * @param {string} prop The dot-notated string defining the property location\n * @param {mixed} val For setting only; the value to set\n */\n\nfunction objectPath(obj, path, val) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { delimiter: '.' };\n\n var props = path.split(options.delimiter);\n var final = props.pop();\n var part = void 0;\n\n for (var index = 0; index < props.length; index++) {\n part = props[index];\n if (typeof obj[part] === 'undefined') {\n // If we're setting\n if (typeof val !== 'undefined' && index != props.length) {\n // If we're not at the end of the props, keep adding new empty objects\n obj[part] = {};\n } else {\n return undefined;\n }\n }\n obj = obj[part];\n }\n return typeof val !== \"undefined\" ? obj[final] = val : obj[final];\n}\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/selectors.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SELECTOR_PATTERNS = undefined;\nexports.selectorPattern = selectorPattern;\nexports.selectTarget = selectTarget;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/plugins/lib/selectors');\n\nfunction selectorPattern() {\n for (var _len = arguments.length, directives = Array(_len), _key = 0; _key < _len; _key++) {\n directives[_key] = arguments[_key];\n }\n\n return new RegExp('\\\\((' + directives.join('|') + ')(.*)\\\\)\\\\s?(.*)');\n}\n\nvar SELECTOR_PATTERNS = exports.SELECTOR_PATTERNS = {\n\n // .find\n \"children\": selectorPattern('children'),\n\n // .closest\n \"parent\": selectorPattern('parent'),\n \"from\": selectorPattern('from'),\n \"parents\": selectorPattern('parents'),\n \"siblings\": selectorPattern('siblings'),\n \"here\": selectorPattern('here'),\n \"self\": selectorPattern('self')\n};\n\nfunction selectTarget(selector, $element) {\n var $target = void 0;\n\n var isClosestAncestoral = selector.match(SELECTOR_PATTERNS.parent);\n var isAllAncestoral = selector.match(SELECTOR_PATTERNS.parents);\n var isRetargeted = selector.match(SELECTOR_PATTERNS.from);\n var isAllDescendants = selector.match(SELECTOR_PATTERNS.children);\n var isGenerational = selector.match(SELECTOR_PATTERNS.here);\n var isSiblings = selector.match(SELECTOR_PATTERNS.siblings);\n var isSelfish = selector.match(SELECTOR_PATTERNS.self);\n\n // special retargeting root\n if (isRetargeted) {\n log('isRetargeted', isRetargeted[2], isRetargeted[3]);\n var $newElement = selectTarget(isRetargeted[2], $element);\n var newSelector = '(children) ' + isRetargeted[3];\n log('isRetargeted.newElement', $newElement);\n log('isRetargeted.newSelector', newSelector);\n $target = selectTarget(newSelector, $newElement);\n log('isRetargeted.target', $target);\n }\n\n // target is all ancestors\n else if (isAllAncestoral) {\n log('isAllAncestoral', isAllAncestoral);\n $target = $element.parents(isAllAncestoral[isAllAncestoral.length - 1]);\n }\n // target is closest ancestor\n else if (isClosestAncestoral) {\n log('isClosestAncestoral', isClosestAncestoral);\n $target = $element.closest(isClosestAncestoral[isClosestAncestoral.length - 1]);\n }\n // target is somewhere under current parent\n else if (isGenerational) {\n log('isGenerational', isGenerational);\n $target = $element.parent().find(isGenerational[isGenerational.length - 1]);\n }\n // target is only under self\n else if (isAllDescendants) {\n log('isAllDescendants', isAllDescendants);\n $target = $element.find(isAllDescendants[isAllDescendants.length - 1]);\n }\n // target is somewhere in siblings only\n else if (isSiblings) {\n log('isSiblings', isSiblings);\n $target = $element.siblings(isSiblings[isSiblings.length - 1]);\n }\n // target is source\n else if (!selector || isSelfish) {\n log('isSelfish', isSelfish);\n var selector = isSelfish[isSelfish.length - 1] || '*';\n $target = $element.filter(selector);\n }\n // target could be anywhere\n else {\n log('global', selector);\n $target = (0, _jquery2.default)(selector);\n }\n return $target;\n}\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/strings.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.toCamelCase = toCamelCase;\nexports.tmpl = tmpl;\nexports.$tmpl = $tmpl;\nexports.mustache = mustache;\nexports.booleanify = booleanify;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/jquery_plugin/strings');\n\nfunction preserveCamelCase(str) {\n var isLastCharLower = false;\n var isLastCharUpper = false;\n var isLastLastCharUpper = false;\n\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n\n if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) {\n str = str.substr(0, i) + '-' + str.substr(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) {\n str = str.substr(0, i - 1) + '-' + str.substr(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = c.toLowerCase() === c;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = c.toUpperCase() === c;\n }\n }\n\n return str;\n}\n\nfunction toCamelCase(str) {\n if (arguments.length > 1) {\n str = Array.from(arguments).map(function (x) {\n return x.trim();\n }).filter(function (x) {\n return x.length;\n }).join('-');\n } else {\n str = str.trim();\n }\n\n if (str.length === 0) {\n return '';\n }\n\n if (str.length === 1) {\n return str.toLowerCase();\n }\n\n if (/^[a-z0-9]+$/.test(str)) {\n return str;\n }\n\n var hasUpperCase = str !== str.toLowerCase();\n\n if (hasUpperCase) {\n str = preserveCamelCase(str);\n }\n\n return str.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, function (m, p1) {\n return p1.toUpperCase();\n });\n};\n\nfunction tmpl(str, context) {\n var result = str;\n\n if (result) {\n\n Object.keys(context).forEach(function (item) {\n result = result.replace('{{' + item + '}}', context[item]);\n });\n }\n\n return result;\n}\n\nfunction $tmpl(element, context) {\n var $target = (0, _jquery2.default)(element);\n var templateString = $target.attr('data-text-template');\n var result = tmpl(templateString, context);\n\n $target.text(result);\n}\n\n/**\n * https://github.com/aishikaty/tiny-mustache\n * https://mustache.github.io/\n * @param {String} template [description]\n * @param {[type]} self [description]\n * @param {[type]} parent [description]\n * @param {[type]} invert [description]\n * @return {[type]} [description]\n */\nfunction mustache(template, self, parent, invert) {\n var render = mustache;\n var output = \"\";\n var i;\n\n log('mustache', { template: template, self: self, parent: parent, invert: invert });\n\n function get(ctx, path) {\n path = path.pop ? path : path.split(\".\");\n ctx = ctx[path.shift()] || \"\";\n return 0 in path ? get(ctx, path) : ctx;\n }\n\n self = Array.isArray(self) ? self : self ? [self] : [];\n self = invert ? 0 in self ? [] : [1] : self;\n\n for (i = 0; i < self.length; i++) {\n var childCode = '';\n var depth = 0;\n var inverted;\n var ctx = _typeof(self[i]) == \"object\" ? self[i] : {};\n ctx = Object.assign({}, parent, ctx);\n ctx[\"\"] = { \"\": self[i] };\n\n template.replace(/([\\s\\S]*?)({{((\\/)|(\\^)|#)(.*?)}}|$)/g, function (match, code, y, z, close, invert, name) {\n\n if (!depth) {\n output += code.replace(/{{{(.*?)}}}|{{(!?)(&?)(>?)(.*?)}}/g, function (match, raw, comment, isRaw, partial, name) {\n return raw ? get(ctx, raw) : isRaw ? get(ctx, name) : partial ? render(get(ctx, name), ctx) : !comment ? new Option(get(ctx, name)).innerHTML : \"\";\n });\n inverted = invert;\n } else {\n childCode += depth && !close || depth > 1 ? match : code;\n }\n\n if (close) {\n if (! --depth) {\n name = get(ctx, name);\n if (/^f/.test(typeof name === 'undefined' ? 'undefined' : _typeof(name))) {\n output += name.call(ctx, childCode, function (template) {\n return render(template, ctx);\n });\n } else {\n output += render(childCode, name, ctx, inverted);\n }\n childCode = \"\";\n }\n } else {\n ++depth;\n }\n log('mustache.output.' + depth, { output: output });\n });\n }\n log('mustache.output', { output: output });\n return output;\n}\n\nfunction booleanify(value) {\n var lower = value.toLowerCase();\n if (lower === 'false' || lower === '0') {\n return false;\n }\n return new Boolean(value);\n}\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/comparison-table/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n (0, _jquery2.default)(document).ready(function () {\n var NO_ICON_TABLE_CELL_LOCATOR = \".comparison-table tr.comparison-upper-row .comparison-cell.comparison-cell__upper.comparison-cell__no-icon\";\n // execute above function\n if (document.getElementsByClassName(\"block-comparison-table\").length) {\n if ((0, _jquery2.default)(window).width() < 768) {\n (0, _jquery2.default)(NO_ICON_TABLE_CELL_LOCATOR).attr(\"rowspan\", \"1\");\n } else {\n (0, _jquery2.default)(NO_ICON_TABLE_CELL_LOCATOR).attr(\"rowspan\", \"2\");\n }\n\n (0, _jquery2.default)(window).on(\"resize\", function () {\n if ((0, _jquery2.default)(this).width() < 768) {\n (0, _jquery2.default)(NO_ICON_TABLE_CELL_LOCATOR).attr(\"rowspan\", \"1\");\n (0, _jquery2.default)(\".comparison-table tr.comparison-upper-row.open .comparison-cell.comparison-cell__upper.comparison-cell__no-icon\").attr(\"rowspan\", \"2\");\n } else {\n (0, _jquery2.default)(NO_ICON_TABLE_CELL_LOCATOR).attr(\"rowspan\", \"2\");\n }\n });\n\n (0, _jquery2.default)(\".comparison-table tr.comparison-upper-row\").on(\"click\", function (event) {\n if ((0, _jquery2.default)(window).width() < 768) {\n event.preventDefault();\n (0, _jquery2.default)(this).toggleClass(\"open\").next().toggleClass(\"open\");\n\n var noIconCells = (0, _jquery2.default)(this).find(\".comparison-cell.comparison-cell__upper.comparison-cell__no-icon[rowspan='2']\");\n if (noIconCells.length > 0) {\n noIconCells.attr(\"rowspan\", \"1\");\n } else {\n (0, _jquery2.default)(this).find(\".comparison-cell.comparison-cell__upper.comparison-cell__no-icon[rowspan='1']\").attr(\"rowspan\", \"2\");\n }\n }\n });\n }\n });\n})();\n\n// Also add listener on resize\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/gallery/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n\n\tvar initGalleryBlock = function initGalleryBlock(galleryContainerSelector) {\n\n\t\t(0, _jquery2.default)(galleryContainerSelector).each(function (i, container) {\n\n\t\t\tvar containerElement = (0, _jquery2.default)(this);\n\t\t\tvar flickityElement = containerElement.find('.block-product-detail-slider__carousel-main')[0];\n\n\t\t\t// display each gallery item's corresponding content text\n\t\t\tvar flkty = Flickity.data(flickityElement);\n\n\t\t\tflkty.on('change', function (index) {\n\t\t\t\tcontainerElement.parent().find('.block-gallery__item-content-container').hide();\n\t\t\t\tcontainerElement.parent().find('.block-gallery__content-container').children().eq(index).fadeIn();\n\t\t\t});\n\t\t});\n\t};\n\n\t(0, _jquery2.default)(document).ready(function () {\n\n\t\t// execute above function\n\t\tif (document.getElementsByClassName('block-gallery__carousel-container').length) {\n\t\t\tinitGalleryBlock('.block-gallery__carousel-container');\n\t\t}\n\t});\n})();\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/image-gallery/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoSwipe = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe.js\");\nvar PhotoSwipeUIDefault = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe-ui-default.js\");\n\n(function () {\n\n\tvar initPhotoSwipeFromDOM = function initPhotoSwipeFromDOM(gallerySelector) {\n\t\tvar div = document.createElement('div');\n\n\t\tdiv.innerHTML = \"\";\n\t\tdocument.getElementsByTagName('body')[0].appendChild(div);\n\n\t\tvar parseThumbnailElements = function parseThumbnailElements(el) {\n\t\t\tvar thumbElements = el.childNodes,\n\t\t\t numNodes = thumbElements.length,\n\t\t\t items = [],\n\t\t\t figureEl,\n\t\t\t linkEl,\n\t\t\t size,\n\t\t\t item;\n\n\t\t\tfor (var i = 0; i < numNodes; i++) {\n\n\t\t\t\tfigureEl = thumbElements[i]; //
element\n\n\t\t\t\t// include only element nodes \n\t\t\t\tif (figureEl.nodeType !== 1) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlinkEl = figureEl.children[0]; // element\n\n\t\t\t\tsize = linkEl.getAttribute('data-size').split('x');\n\n\t\t\t\t// create slide object\n\t\t\t\titem = {\n\t\t\t\t\tsrc: linkEl.getAttribute('href'),\n\t\t\t\t\tw: parseInt(size[0], 10),\n\t\t\t\t\th: parseInt(size[1], 10)\n\t\t\t\t};\n\n\t\t\t\tif (figureEl.children.length > 1) {\n\t\t\t\t\t//
content\n\t\t\t\t\titem.title = figureEl.children[1].innerHTML;\n\t\t\t\t}\n\n\t\t\t\tif (linkEl.children.length > 0) {\n\t\t\t\t\t// thumbnail element, retrieving thumbnail url\n\t\t\t\t\titem.msrc = linkEl.children[0].getAttribute('src');\n\t\t\t\t}\n\n\t\t\t\titem.el = figureEl; // save link to element for getThumbBoundsFn\n\t\t\t\titems.push(item);\n\t\t\t}\n\n\t\t\treturn items;\n\t\t};\n\n\t\tvar closest = function closest(el, fn) {\n\t\t\treturn el && (fn(el) ? el : closest(el.parentNode, fn));\n\t\t};\n\n\t\tvar onThumbnailsClick = function onThumbnailsClick(e) {\n\t\t\te = e || window.event;\n\t\t\te.preventDefault ? e.preventDefault() : e.returnValue = false;\n\n\t\t\tvar eTarget = e.target || e.srcElement;\n\n\t\t\t// find root element of slide\n\t\t\tvar clickedListItem = closest(eTarget, function (el) {\n\t\t\t\treturn el.tagName && el.tagName.toUpperCase() === 'FIGURE';\n\t\t\t});\n\n\t\t\tif (!clickedListItem) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// find index of clicked item by looping through all child nodes\n\t\t\t// alternatively, you may define index via data- attribute\n\t\t\tvar clickedGallery = clickedListItem.parentNode,\n\t\t\t childNodes = clickedListItem.parentNode.childNodes,\n\t\t\t numChildNodes = childNodes.length,\n\t\t\t nodeIndex = 0,\n\t\t\t index;\n\n\t\t\tfor (var i = 0; i < numChildNodes; i++) {\n\t\t\t\tif (childNodes[i].nodeType !== 1) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (childNodes[i] === clickedListItem) {\n\t\t\t\t\tindex = nodeIndex;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tnodeIndex++;\n\t\t\t}\n\n\t\t\tif (index >= 0) {\n\t\t\t\t// open PhotoSwipe if valid index found\n\t\t\t\topenPhotoSwipe(index, clickedGallery);\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t\tvar photoswipeParseHash = function photoswipeParseHash() {\n\t\t\tvar hash = window.location.hash.substring(1),\n\t\t\t params = {};\n\n\t\t\tif (hash.length < 5) {\n\t\t\t\treturn params;\n\t\t\t}\n\n\t\t\tvar vars = hash.split('&');\n\t\t\tfor (var i = 0; i < vars.length; i++) {\n\t\t\t\tif (!vars[i]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tvar pair = vars[i].split('=');\n\t\t\t\tif (pair.length < 2) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tparams[pair[0]] = pair[1];\n\t\t\t}\n\n\t\t\tif (params.gid) {\n\t\t\t\tparams.gid = parseInt(params.gid, 10);\n\t\t\t}\n\n\t\t\treturn params;\n\t\t};\n\n\t\tvar openPhotoSwipe = function openPhotoSwipe(index, galleryElement, disableAnimation, fromURL) {\n\t\t\tvar pswpElement = document.querySelectorAll('.pswp')[0],\n\t\t\t gallery,\n\t\t\t options,\n\t\t\t items;\n\n\t\t\titems = parseThumbnailElements(galleryElement);\n\n\t\t\t// define options (if needed)\n\t\t\toptions = {\n\n\t\t\t\t// define gallery index (for URL)\n\t\t\t\tgalleryUID: galleryElement.getAttribute('data-pswp-uid'),\n\n\t\t\t\tgetThumbBoundsFn: function getThumbBoundsFn(index) {\n\t\t\t\t\t// See Options -> getThumbBoundsFn section of documentation for more info\n\t\t\t\t\tvar thumbnail = items[index].el.getElementsByTagName('img')[0],\n\t\t\t\t\t // find thumbnail\n\t\t\t\t\tpageYScroll = window.pageYOffset || document.documentElement.scrollTop,\n\t\t\t\t\t rect = thumbnail.getBoundingClientRect();\n\n\t\t\t\t\treturn { x: rect.left, y: rect.top + pageYScroll, w: rect.width };\n\t\t\t\t},\n\n\t\t\t\tshareButtons: [{ id: 'download', label: 'Download', url: '{{raw_image_url}}', download: true }]\n\n\t\t\t};\n\n\t\t\t// PhotoSwipe opened from URL\n\t\t\tif (fromURL) {\n\t\t\t\tif (options.galleryPIDs) {\n\t\t\t\t\t// parse real index when custom PIDs are used \n\t\t\t\t\t// http://photoswipe.com/documentation/faq.html#custom-pid-in-url\n\t\t\t\t\tfor (var j = 0; j < items.length; j++) {\n\t\t\t\t\t\tif (items[j].pid == index) {\n\t\t\t\t\t\t\toptions.index = j;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// in URL indexes start from 1\n\t\t\t\t\toptions.index = parseInt(index, 10) - 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toptions.index = parseInt(index, 10);\n\t\t\t}\n\n\t\t\t// exit if index not found\n\t\t\tif (isNaN(options.index)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (disableAnimation) {\n\t\t\t\toptions.showAnimationDuration = 0;\n\t\t\t}\n\n\t\t\t// Pass data to PhotoSwipe and initialize it\n\t\t\tgallery = new PhotoSwipe(pswpElement, PhotoSwipeUIDefault, items, options);\n\t\t\tgallery.init();\n\t\t};\n\n\t\t// loop through all gallery elements and bind events\n\t\tvar galleryElements = document.querySelectorAll(gallerySelector);\n\n\t\tfor (var i = 0, l = galleryElements.length; i < l; i++) {\n\t\t\tgalleryElements[i].setAttribute('data-pswp-uid', i + 1);\n\t\t\tgalleryElements[i].onclick = onThumbnailsClick;\n\t\t}\n\n\t\t// Parse URL and open gallery if it contains #&pid=3&gid=1\n\t\tvar hashData = photoswipeParseHash();\n\t\tif (hashData.pid && hashData.gid) {\n\t\t\topenPhotoSwipe(hashData.pid, galleryElements[hashData.gid - 1], true, true);\n\t\t}\n\t};\n\n\t// execute above function\n\tif (document.getElementsByClassName('m-gallery').length) {\n\t\tinitPhotoSwipeFromDOM('.m-gallery');\n\t}\n})();\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/image-gallery/index.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/gallery/index.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/comparison-table/index.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/sales-block/index.js\");\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/sales-block/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(\".sales-block-select\").each(function () {\n var classes = (0, _jquery2.default)(this).attr(\"class\"),\n name = (0, _jquery2.default)(this).attr(\"name\");\n var template = '
';\n var displayValue = (0, _jquery2.default)(this).val().length > 0 ? (0, _jquery2.default)(this).val() : (0, _jquery2.default)(this).attr(\"placeholder\");\n template += '' + displayValue + \"\";\n template += '
';\n (0, _jquery2.default)(this).find(\"option\").each(function () {\n var select = (0, _jquery2.default)(this).attr(\"selected\") ? \"selection\" : \"\";\n template += '' + (0, _jquery2.default)(this).html() + \"\";\n });\n template += \"
\";\n\n (0, _jquery2.default)(this).wrap('
');\n (0, _jquery2.default)(this).hide();\n (0, _jquery2.default)(this).after(template);\n });\n\n (0, _jquery2.default)(\".sales-block-select-trigger\").on(\"click\", function () {\n (0, _jquery2.default)(\"html\").one(\"click\", function () {\n (0, _jquery2.default)(\".sales-block-select\").removeClass(\"opened\");\n });\n (0, _jquery2.default)(this).parents(\".sales-block-select\").toggleClass(\"opened\");\n event.stopPropagation();\n });\n (0, _jquery2.default)(\".sales-option\").on(\"click\", function () {\n var value = (0, _jquery2.default)(this).data(\"value\");\n var isFirst = true;\n var showToggle = false;\n var target = (0, _jquery2.default)(this).parents(\".sales-block-select.sources\").data(\"target\");\n (0, _jquery2.default)(this).parents(\".sales-block-select-wrapper\").find(\"select\").val((0, _jquery2.default)(this).data(\"value\"));\n (0, _jquery2.default)(this).parents(\".sales-options\").find(\".sales-option\").removeClass(\"selection\");\n (0, _jquery2.default)(this).addClass(\"selection\");\n (0, _jquery2.default)(this).parents(\".sales-block-select\").removeClass(\"opened\");\n (0, _jquery2.default)(this).parents(\".sales-block-select\").find(\".sales-block-select-trigger\").text((0, _jquery2.default)(this).text());\n (0, _jquery2.default)(this).parents(\".layout.block-sales-block\").find(\".block-card\").each(function () {\n if (target) {\n (0, _jquery2.default)(this).removeClass(\"block-card__featured-article\");\n if (value) {\n if ((0, _jquery2.default)(this).data(target) == value) {\n (0, _jquery2.default)(this).removeClass(target + \"-hide\");\n } else {\n (0, _jquery2.default)(this).addClass(target + \"-hide\");\n }\n } else {\n (0, _jquery2.default)(this).removeClass(target + \"-hide\");\n }\n if (isFirst && !(0, _jquery2.default)(this).attr(\"class\").includes(\"hide\")) {\n (0, _jquery2.default)(this).addClass(\"block-card__featured-article\");\n isFirst = false;\n }\n }\n (0, _jquery2.default)(this).removeClass(\"toggle-show\");\n });\n (0, _jquery2.default)(this).parents(\".layout.block-sales-block\").find(\".block-sales-layout__toggle-button\").hide();\n (0, _jquery2.default)(this).parents(\".layout.block-sales-block\").find(\".block-card\").not(\".location-hide\").not(\".issold-hide\").each(function (index) {\n if (index < 4) {\n (0, _jquery2.default)(this).addClass(\"toggle-show\");\n } else if (!showToggle) {\n showToggle = true;\n (0, _jquery2.default)(this).parents(\".layout.block-sales-block\").find(\".block-sales-layout__toggle-button\").show();\n }\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/index.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/index.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/index.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/index.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/blocks/index.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/page/index.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/tab-form/index.js\");\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/page/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// import './home/';\n\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/global-search/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/global-search/search-form-collapsible.js\");\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/global-search/search-form-collapsible.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _lib = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ELEMENT_SELECTOR = '[data-search-form-collapsible]';\nvar PLUGIN_NAME = 'searchFormCollapsible';\n\nvar log = (0, _debug2.default)('site-header/header-controller:search');\n\nvar SearchFormCollapsible = function () {\n\tfunction SearchFormCollapsible(element, options) {\n\t\t_classCallCheck(this, SearchFormCollapsible);\n\n\t\tlog('element', element);\n\t\tlog('options', options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\t\tthis.$element = (0, _jquery2.default)(element);\n\n\t\tthis.enabled = false;\n\n\t\tthis.formElements = this.selectors.selectTarget(this.options.elementsSelector, this.$element);\n\n\t\tthis.watch();\n\n\t\tlog('ready', this, this.$target);\n\t}\n\n\t_createClass(SearchFormCollapsible, [{\n\t\tkey: 'watch',\n\t\tvalue: function watch() {\n\t\t\tlog('watching');\n\n\t\t\tthis.$element.on('togglesearch', this.toggle.bind(this));\n\t\t\tthis.$element.on('disablesearch', this.disable.bind(this));\n\t\t}\n\t}, {\n\t\tkey: 'enable',\n\t\tvalue: function enable() {\n\t\t\tthis.formElements.removeAttr('disabled');\n\t\t\tthis.enabled = true;\n\t\t\tthis.formElements[0].focus();\n\t\t\tlog('enable');\n\t\t}\n\t}, {\n\t\tkey: 'disable',\n\t\tvalue: function disable() {\n\t\t\tthis.formElements.attr('disabled', 'disabled');\n\t\t\tthis.enabled = false;\n\t\t\tlog('disable');\n\t\t}\n\t}, {\n\t\tkey: 'toggle',\n\t\tvalue: function toggle() {\n\t\t\tvar handler = this.enabled ? this.disable.bind(this) : this.enable.bind(this);\n\t\t\tlog('toggle');\n\t\t\thandler();\n\t\t}\n\t}]);\n\n\treturn SearchFormCollapsible;\n}();\n\nSearchFormCollapsible.DEFAULTS = {};\n\n(0, _lib2.default)(PLUGIN_NAME, SearchFormCollapsible);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/search/global-search/index.js\");\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/header/header-controller.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _lib = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ELEMENT_SELECTOR = '[data-header-controller]';\nvar PLUGIN_NAME = 'headerController';\n\nvar log = (0, _debug2.default)('site-header/header-controller:header');\n\nvar HeaderController = function () {\n\tfunction HeaderController(element, options) {\n\t\t_classCallCheck(this, HeaderController);\n\n\t\tlog('element', element);\n\t\tlog('options', options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\t\tthis.$element = (0, _jquery2.default)(element);\n\n\t\tthis.isSearchCollapsible = !!this.options.searchComponentSelector;\n\n\t\tthis.searchComponent = this.isSearchCollapsible && this.selectors.selectTarget(this.options.searchComponentSelector, this.$element);\n\n\t\tthis.watch();\n\n\t\tlog('ready', this, this.$target);\n\t}\n\n\t_createClass(HeaderController, [{\n\t\tkey: 'watch',\n\t\tvalue: function watch() {\n\t\t\tlog('watching');\n\n\t\t\tthis.$element.on('concealsearch', this.tryConcealSearch.bind(this));\n\t\t}\n\t}, {\n\t\tkey: 'tryConcealSearch',\n\t\tvalue: function tryConcealSearch() {\n\t\t\tlog('attempting to disable search');\n\t\t\tif (this.isSearchCollapsible) {\n\t\t\t\tthis.searchComponent.trigger('disablesearch');\n\t\t\t} else {\n\t\t\t\tlog('Search is not collapsible');\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn HeaderController;\n}();\n\nHeaderController.DEFAULTS = {};\n\n(0, _lib2.default)(PLUGIN_NAME, HeaderController);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/header/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/header/header-controller.js\");\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site-header/header/index.js\");\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/index.js\");\n\nvar _debug = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// import './icons/icons__config'; // icon font import\nvar log = (0, _debug2.default)('site__scf001');\n\n$(function () {\n\tlog('ready');\n});\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\nSVG Sprite\n*/\nvar files = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites nonrecursive /\\\\.svg$/\");\nfiles.keys().forEach(files);\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/tab-form/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar tabForm = document.querySelector(\".tab-form\");\nif (tabForm) {\n (function () {\n var tabHeader = tabForm.querySelector(\".tab-header\");\n var tabHeaderElements = tabForm.querySelectorAll(\".tab-header > div\");\n var tabBody = tabForm.querySelector(\".tab-body\");\n var tabBodyElements = tabForm.querySelectorAll(\".tab-body > div\");\n\n if (tabBodyElements.length > 0) {\n var _loop = function _loop(i) {\n tabHeaderElements[i].addEventListener(\"click\", function () {\n tabHeader.querySelector(\".active\").classList.remove(\"active\");\n tabHeaderElements[i].classList.add(\"active\");\n tabBody.querySelector(\".active\").classList.remove(\"active\");\n tabBodyElements[i].classList.add(\"active\");\n });\n };\n\n for (var i = 0; i < tabHeaderElements.length; i++) {\n _loop(i);\n }\n }\n })();\n}\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/tables.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/video-block.js\");\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/tables.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n$('.table--scrollable').wrap('
');\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/wysiwyg/video-block.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar videoContainers = document.querySelectorAll('.video-container');\nif (videoContainers.length > 0) {\n videoContainers.forEach(function (c) {\n var playButton = c.querySelector('.play-button');\n var video = c.querySelector(\"video\");\n\n // Play or pause the video and toggle the button visibility\n playButton.addEventListener('click', function () {\n if (video.paused) {\n video.play();\n playButton.classList.add('hidden'); // Hide the play button when playing\n }\n });\n\n // Pause or play the video when clicking on the video itself\n video.addEventListener('click', function () {\n if (video.paused) {\n video.play();\n playButton.classList.add('hidden');\n } else {\n video.pause();\n playButton.classList.remove('hidden');\n }\n });\n\n // Show the play button when the video ends\n video.addEventListener('ended', function () {\n playButton.classList.remove('hidden');\n });\n });\n}\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/index.js\");\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/utilities/index.js\");\n\n/* Favicons entry point for webpack\n * html_code.html as expected output from realfavicongenerator.net\n * manually insert `WEBPACKHACK` to content attribute of meta[name=\"msapplication-config\"] i.e.\n * \n */\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/file-loader/dist/cjs.js??ref--2-0!/home/vsts/work/1/s/src/SCF/node_modules/extract-loader/lib/extractLoader.js!/home/vsts/work/1/s/src/SCF/node_modules/html-loader/index.js??ref--2-2!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/favicons/html_code.html\");\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/utilities/a11y__focus.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _focusSource = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/style/focus-source.js\");\n\nvar _focusSource2 = _interopRequireDefault(_focusSource);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _focusSource2.default)();\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/utilities/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/utilities/a11y__focus.js\");\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/event/shadow-focus.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _activeElements = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/active-elements.js\");\n\nvar _activeElements2 = _interopRequireDefault(_activeElements);\n\nvar _decorateService = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/decorate-service.js\");\n\nvar _decorateService2 = _interopRequireDefault(_decorateService);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n Utility to observe focus changes within ShadowDOMs.\n\n USAGE:\n engage();\n document.body.addEventListener('shadow-focus', function(event) {\n // event.detail.elements: complete focus ancestry (array of nodes)\n // event.detail.active: the actually focused element within the ShadowDOM\n // event.detail.hosts: the shadow host ancestry of the active element\n }, false);\n\n Alternate implementation: https://github.com/cdata/focus-observer\n*/\n\nvar engage = void 0;\nvar disengage = void 0;\n\nif (typeof document === 'undefined' || !document.documentElement.createShadowRoot) {\n // no need to initialize any of this if we don't have ShadowDOM available\n engage = disengage = function disengage() {};\n} else {\n var blurTimer = void 0;\n var blurElement = void 0;\n\n var handleElementBlurEvent = function handleElementBlurEvent() {\n stopHandleElementBlurEvent();\n // abort any handlers that come from document blur handler\n (window.clearImmediate || window.clearTimeout)(blurTimer);\n blurTimer = (window.setImmediate || window.setTimeout)(function () {\n handleFocusChange();\n });\n };\n\n var observeElementBlurEvent = function observeElementBlurEvent(element) {\n // call us when we're leaving the element\n element.addEventListener('blur', handleElementBlurEvent, true);\n blurElement = element;\n };\n\n var stopHandleElementBlurEvent = function stopHandleElementBlurEvent() {\n // once() - sometimes I miss jQuery's simplicity…\n blurElement && blurElement.removeEventListener('blur', handleElementBlurEvent, true);\n blurElement = null;\n };\n\n var handleFocusChange = function handleFocusChange() {\n var _active = (0, _activeElements2.default)();\n if (_active.length === 1) {\n stopHandleElementBlurEvent();\n return;\n }\n\n // listen for blur so we know when to re-validate\n observeElementBlurEvent(_active[0]);\n var shadowFocusEvent = new CustomEvent('shadow-focus', {\n bubbles: false,\n cancelable: false,\n detail: {\n // complete focus ancestry\n elements: _active,\n // the actually focused element\n active: _active[0],\n // shadow host ancestry\n hosts: _active.slice(1)\n }\n });\n\n document.dispatchEvent(shadowFocusEvent);\n };\n\n var handleDocumentFocusEvent = function handleDocumentFocusEvent() {\n (window.clearImmediate || window.clearTimeout)(blurTimer);\n handleFocusChange();\n };\n\n engage = function engage() {\n document.addEventListener('focus', handleDocumentFocusEvent, true);\n };\n\n disengage = function disengage() {\n (window.clearImmediate || window.clearTimeout)(blurTimer);\n blurElement && blurElement.removeEventListener('blur', handleElementBlurEvent, true);\n document.removeEventListener('focus', handleDocumentFocusEvent, true);\n };\n}\n\nexports.default = (0, _decorateService2.default)({ engage: engage, disengage: disengage });\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/active-elements.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function () {\n if (document.activeElement === null) {\n // IE10 does not redirect focus to when the activeElement is removed\n document.body.focus();\n }\n\n // Firefox currently leaks the shadowed element\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1117535\n if ((0, _shadowed2.default)(document.activeElement)) {\n return walkFromShadowedElement();\n }\n\n return walkToShadowedElement();\n};\n\nvar _shadowed = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/is/shadowed.js\");\n\nvar _shadowed2 = _interopRequireDefault(_shadowed);\n\nvar _shadowHostParents = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/shadow-host-parents.js\");\n\nvar _shadowHostParents2 = _interopRequireDefault(_shadowHostParents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// [0] always is the actual active element (even within web-components)\n// [0+n] is the hierarchy of shadow-doms with [length -1] being the top most shadow-host\n\nfunction walkToShadowedElement() {\n var list = [document.activeElement];\n\n while (list[0] && list[0].shadowRoot) {\n list.unshift(list[0].shadowRoot.activeElement);\n }\n\n return list;\n}\n\nfunction walkFromShadowedElement() {\n var hosts = (0, _shadowHostParents2.default)({ context: document.activeElement });\n return [document.activeElement].concat(hosts);\n}\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/shadow-host-parents.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n context = _ref.context;\n\n var list = [];\n var element = (0, _contextToElement2.default)({\n label: 'get/shadow-host-parents',\n context: context\n });\n\n while (element) {\n element = (0, _shadowHost2.default)({ context: element });\n if (!element) {\n break;\n }\n\n list.push(element);\n }\n\n return list;\n};\n\nvar _shadowHost = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/shadow-host.js\");\n\nvar _shadowHost2 = _interopRequireDefault(_shadowHost);\n\nvar _contextToElement = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/context-to-element.js\");\n\nvar _contextToElement2 = _interopRequireDefault(_contextToElement);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/shadow-host.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n context = _ref.context;\n\n var element = (0, _contextToElement2.default)({\n label: 'get/shadow-host',\n context: context\n });\n\n // walk up to the root\n var container = null;\n\n while (element) {\n container = element;\n element = element.parentNode;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType\n // NOTE: Firefox 34 does not expose ShadowRoot.host (but 37 does)\n if (container.nodeType === container.DOCUMENT_FRAGMENT_NODE && container.host) {\n // the root is attached to a fragment node that has a host\n return container.host;\n }\n\n return null;\n};\n\nvar _contextToElement = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/context-to-element.js\");\n\nvar _contextToElement2 = _interopRequireDefault(_contextToElement);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/is/shadowed.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (context) {\n var element = (0, _contextToElement2.default)({\n label: 'is/shadowed',\n resolveDocument: true,\n context: context\n });\n\n return Boolean((0, _shadowHost2.default)({ context: element }));\n};\n\nvar _contextToElement = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/context-to-element.js\");\n\nvar _contextToElement2 = _interopRequireDefault(_contextToElement);\n\nvar _shadowHost = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/get/shadow-host.js\");\n\nvar _shadowHost2 = _interopRequireDefault(_shadowHost);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/observe/interaction-type.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _decorateService = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/decorate-service.js\");\n\nvar _decorateService2 = _interopRequireDefault(_decorateService);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// counters to track primary input\nvar _activePointers = 0;\n/*\n Observe keyboard-, pointer-, mouse- and touch-events so that a query for\n the current interaction type can be made at any time. For pointer interaction\n this observer is limited to pointer button down/up - move is not observed!\n\n USAGE:\n var listener = engage();\n listener.get() === {pointer: Boolean, key: Boolean}\n*/\n\nvar _activeKeys = 0;\n\nvar pointerStartEvents = ['touchstart', 'pointerdown', 'MSPointerDown', 'mousedown'];\nvar pointerEndEvents = ['touchend', 'touchcancel', 'pointerup', 'MSPointerUp', 'pointercancel', 'MSPointerCancel', 'mouseup'];\n\nfunction handleWindowBlurEvent() {\n // reset internal counters when window loses focus\n _activePointers = 0;\n _activeKeys = 0;\n}\n\nfunction handlePointerStartEvent(event) {\n if (event.isPrimary === false) {\n // ignore non-primary pointer events\n // https://w3c.github.io/pointerevents/#widl-PointerEvent-isPrimary\n return;\n }\n\n // mousedown without following mouseup\n // (likely not possible in Chrome)\n _activePointers++;\n}\n\nfunction handlePointerEndEvent(event) {\n if (event.isPrimary === false) {\n // ignore non-primary pointer events\n // https://w3c.github.io/pointerevents/#widl-PointerEvent-isPrimary\n return;\n } else if (event.touches) {\n _activePointers = event.touches.length;\n return;\n }\n\n // delay reset to when the current handlers are executed\n (window.setImmediate || window.setTimeout)(function () {\n // mouseup without prior mousedown\n // (drag something out of the window)\n _activePointers = Math.max(_activePointers - 1, 0);\n });\n}\n\nfunction handleKeyStartEvent(event) {\n // ignore modifier keys\n switch (event.keyCode || event.which) {\n case 16: // space\n case 17: // control\n case 18: // alt\n case 91: // command left\n case 93:\n // command right\n return;\n }\n\n // keydown without a following keyup\n // (may happen on CMD+TAB)\n _activeKeys++;\n}\n\nfunction handleKeyEndEvent(event) {\n // ignore modifier keys\n switch (event.keyCode || event.which) {\n case 16: // space\n case 17: // control\n case 18: // alt\n case 91: // command left\n case 93:\n // command right\n return;\n }\n\n // delay reset to when the current handlers are executed\n (window.setImmediate || window.setTimeout)(function () {\n // keyup without prior keydown\n // (may happen on CMD+R)\n _activeKeys = Math.max(_activeKeys - 1, 0);\n });\n}\n\nfunction getInteractionType() {\n return {\n pointer: Boolean(_activePointers),\n key: Boolean(_activeKeys)\n };\n}\n\nfunction disengage() {\n _activePointers = _activeKeys = 0;\n window.removeEventListener('blur', handleWindowBlurEvent, false);\n document.documentElement.removeEventListener('keydown', handleKeyStartEvent, true);\n document.documentElement.removeEventListener('keyup', handleKeyEndEvent, true);\n pointerStartEvents.forEach(function (event) {\n document.documentElement.removeEventListener(event, handlePointerStartEvent, true);\n });\n pointerEndEvents.forEach(function (event) {\n document.documentElement.removeEventListener(event, handlePointerEndEvent, true);\n });\n}\n\nfunction engage() {\n // window blur must be in bubble phase so it won't capture regular blurs\n window.addEventListener('blur', handleWindowBlurEvent, false);\n // handlers to identify the method of focus change\n document.documentElement.addEventListener('keydown', handleKeyStartEvent, true);\n document.documentElement.addEventListener('keyup', handleKeyEndEvent, true);\n pointerStartEvents.forEach(function (event) {\n document.documentElement.addEventListener(event, handlePointerStartEvent, true);\n });\n pointerEndEvents.forEach(function (event) {\n document.documentElement.addEventListener(event, handlePointerEndEvent, true);\n });\n\n return {\n get: getInteractionType\n };\n}\n\nexports.default = (0, _decorateService2.default)({ engage: engage, disengage: disengage });\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/style/focus-source.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _toggleClass = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/toggle-class.js\");\n\nvar _shadowFocus = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/event/shadow-focus.js\");\n\nvar _shadowFocus2 = _interopRequireDefault(_shadowFocus);\n\nvar _interactionType = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/observe/interaction-type.js\");\n\nvar _interactionType2 = _interopRequireDefault(_interactionType);\n\nvar _decorateService = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/decorate-service.js\");\n\nvar _decorateService2 = _interopRequireDefault(_decorateService);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// preferring focusin/out because they are synchronous in IE10+11\n\n/*\n add data-focus-source attribute to html element containing \"key\", \"pointer\" or \"script\"\n depending on the input method used to change focus.\n\n USAGE:\n style/focus-source()\n\n body :focus {\n outline: 1px solid grey;\n }\n\n html[data-focus-source=\"key\"] body :focus {\n outline: 5px solid red;\n }\n\n html[data-focus-source=\"key\"] body :focus {\n outline: 1px solid blue;\n }\n\n NOTE: I don't have a GamePad to test, if you do and you want to\n implement an observer for https://w3c.github.io/gamepad/ - send a PR!\n\n Alternate implementation: https://github.com/alice/modality\n*/\n\nvar supportsFocusIn = typeof document !== 'undefined' && 'onfocusin' in document;\nvar focusEventName = supportsFocusIn ? 'focusin' : 'focus';\nvar blurEventName = supportsFocusIn ? 'focusout' : 'blur';\n\n// interface to read interaction-type-listener state\nvar interactionTypeHandler = void 0;\nvar shadowHandle = void 0;\n// keep track of last focus source\nvar current = null;\n// overwrite focus source for use with the every upcoming focus event\nvar lock = null;\n// keep track of ever having used a particular input method to change focus\nvar used = {\n pointer: false,\n key: false,\n script: false,\n initial: false\n};\n\nfunction handleFocusEvent(event) {\n var source = '';\n if (event.type === focusEventName || event.type === 'shadow-focus') {\n var interactionType = interactionTypeHandler.get();\n source = lock || interactionType.pointer && 'pointer' || interactionType.key && 'key' || 'script';\n } else if (event.type === 'initial') {\n source = 'initial';\n }\n\n document.documentElement.setAttribute('data-focus-source', source);\n\n if (event.type !== blurEventName) {\n if (!used[source]) {\n (0, _toggleClass.addClass)(document.documentElement, 'focus-source-' + source);\n }\n\n used[source] = true;\n current = source;\n }\n}\n\nfunction getCurrentFocusSource() {\n return current;\n}\n\nfunction getUsedFocusSource(source) {\n return used[source];\n}\n\nfunction lockFocusSource(source) {\n lock = source;\n}\n\nfunction unlockFocusSource() {\n lock = false;\n}\n\nfunction disengage() {\n // clear dom state\n handleFocusEvent({ type: blurEventName });\n current = lock = null;\n Object.keys(used).forEach(function (key) {\n (0, _toggleClass.removeClass)(document.documentElement, 'focus-source-' + key);\n used[key] = false;\n });\n // kill interaction type identification listener\n interactionTypeHandler.disengage();\n // kill shadow-focus event dispatcher\n shadowHandle && shadowHandle.disengage();\n document.removeEventListener('shadow-focus', handleFocusEvent, true);\n document.documentElement.removeEventListener(focusEventName, handleFocusEvent, true);\n document.documentElement.removeEventListener(blurEventName, handleFocusEvent, true);\n document.documentElement.removeAttribute('data-focus-source');\n}\n\nfunction engage() {\n // enable the shadow-focus event dispatcher\n shadowHandle = (0, _shadowFocus2.default)();\n // handlers to modify the focused element\n document.addEventListener('shadow-focus', handleFocusEvent, true);\n document.documentElement.addEventListener(focusEventName, handleFocusEvent, true);\n document.documentElement.addEventListener(blurEventName, handleFocusEvent, true);\n // enable the interaction type identification observer\n interactionTypeHandler = (0, _interactionType2.default)();\n // set up initial dom state\n handleFocusEvent({ type: 'initial' });\n\n return {\n used: getUsedFocusSource,\n current: getCurrentFocusSource,\n lock: lockFocusSource,\n unlock: unlockFocusSource\n };\n}\n\nexports.default = (0, _decorateService2.default)({ engage: engage, disengage: disengage });\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/context-to-element.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (_ref) {\n var context = _ref.context,\n _ref$label = _ref.label,\n label = _ref$label === undefined ? 'context-to-element' : _ref$label,\n resolveDocument = _ref.resolveDocument,\n defaultToDocument = _ref.defaultToDocument;\n\n var element = (0, _nodeArray2.default)(context)[0];\n\n if (resolveDocument && element && element.nodeType === Node.DOCUMENT_NODE) {\n element = element.documentElement;\n }\n\n if (!element && defaultToDocument) {\n return document.documentElement;\n }\n\n if (!element) {\n throw new TypeError(label + ' requires valid options.context');\n }\n\n if (element.nodeType !== Node.ELEMENT_NODE && element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n throw new TypeError(label + ' requires options.context to be an Element');\n }\n\n return element;\n};\n\nvar _nodeArray = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/node-array.js\");\n\nvar _nodeArray2 = _interopRequireDefault(_nodeArray);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/decorate-service.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n engage = _ref2.engage,\n disengage = _ref2.disengage;\n\n var data = {\n engage: engage || noop,\n disengage: disengage || noop,\n instances: 0,\n _result: null\n };\n\n return initialize.bind(data);\n};\n\n/*\n The Singleton Decorator is intended to allow modules to initialize a (\"singleton\") component as if\n it was the only one using it. Every module gets to initialize and destruct the component by itself.\n Via simple reference counting the component keeps track of how many modules have initialized it,\n so it destructs only when the last module is gone. This decorator hides the component's singleton\n nature from the application in order to offer a homogenous API.\n\n engage() can return an object (result) with methods to expose to the consumer,\n upon initialization result.disengage is added and returned to the consumer.\n*/\n\nfunction destruct() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n force = _ref.force;\n\n if (force) {\n this.instances = 0;\n } else {\n this.instances--;\n }\n\n if (!this.instances) {\n this.disengage();\n this._result = null;\n }\n}\n\nfunction initialize() {\n if (this.instances) {\n this.instances++;\n return this._result;\n }\n\n this.instances++;\n this._result = this.engage() || {};\n this._result.disengage = destruct.bind(this);\n\n return this._result;\n}\n\nfunction noop() {}\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/node-array.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (input) {\n if (!input) {\n return [];\n }\n\n if (Array.isArray(input)) {\n return input;\n }\n\n // instanceof Node - does not work with iframes\n if (input.nodeType !== undefined) {\n return [input];\n }\n\n if (typeof input === 'string') {\n input = document.querySelectorAll(input);\n }\n\n if (input.length !== undefined) {\n return [].slice.call(input, 0);\n }\n\n throw new TypeError('unexpected input ' + String(input));\n};\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/ally.js/src/util/toggle-class.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toggleClass = toggleClass;\nexports.removeClass = removeClass;\nexports.addClass = addClass;\n//\n// This util allows to easily add, remove or toggle classes.\n//\n// Using it is neccessary as IE 9 doesn't support element classList\n// and IE 11 doesn't support classList for SVG elements\n// see also https://developer.mozilla.org/en/docs/Web/API/Element/classList\n//\n// This file is a replacement for domtokenlist because of\n// https://github.com/medialize/ally.js/issues/147\n//\n// Usage:\n//\n// toggleClass(div, 'demo'); // Toggles the class `demo`\n// toggleClass(div, 'demo', true); // Adds the class `demo`\n// toggleClass(div, 'demo', false); // removes the class `demo`\n//\n// removeClass(div, 'demo');\n// addClass(div, 'demo');\n//\n\n/**\n * Extract an array of all classNames of the given DOM or SVG node\n */\nfunction getClassNames(element) {\n var className = element.getAttribute && element.getAttribute('class') || '';\n return className === '' ? [] : className.split(' ');\n}\n\nfunction toggleClass(element, className, force) {\n var classNames = getClassNames(element);\n var idx = classNames.indexOf(className);\n var hasClass = idx !== -1;\n var shouldHaveClass = force !== undefined ? force : !hasClass;\n // Break if classes are already set/removed\n if (shouldHaveClass === hasClass) {\n return;\n }\n // Remove class\n if (!shouldHaveClass) {\n classNames.splice(idx, 1);\n }\n // Add class\n if (shouldHaveClass) {\n classNames.push(className);\n }\n element.setAttribute('class', classNames.join(' '));\n}\n\nfunction removeClass(element, className) {\n return toggleClass(element, className, false);\n}\n\nfunction addClass(element, className) {\n return toggleClass(element, className, true);\n}\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/node_modules/ms/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val === 'undefined' ? 'undefined' : _typeof(val);\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n };\n }return _typeof(obj);\n}\n\n/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n/**\n * Colors.\n */\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n// eslint-disable-next-line complexity\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n return true;\n } // Internet Explorer and Edge do not support colors.\n\n\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n } // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff);\n\n if (!this.useColors) {\n return;\n }\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // The final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if (match === '%%') {\n return;\n }\n\n index++;\n\n if (match === '%c') {\n // We only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n var _console;\n\n // This hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return (typeof console === \"undefined\" ? \"undefined\" : _typeof(console)) === 'object' && console.log && (_console = console).log.apply(_console, arguments);\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (namespaces) {\n exports.storage.setItem('debug', namespaces);\n } else {\n exports.storage.removeItem('debug');\n }\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.getItem('debug');\n } catch (error) {} // Swallow\n // XXX (@Qix-) should we be logging these?\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n // The Browser also has localStorage in the global context.\n return localStorage;\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n\nmodule.exports = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/common.js\")(exports);\nvar formatters = module.exports.formatters;\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + error.message;\n }\n};\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/process/browser.js\")))\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/common.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n createDebug.debug = createDebug;\n createDebug.default = createDebug;\n createDebug.coerce = coerce;\n createDebug.disable = disable;\n createDebug.enable = enable;\n createDebug.enabled = enabled;\n createDebug.humanize = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/node_modules/ms/index.js\");\n Object.keys(env).forEach(function (key) {\n createDebug[key] = env[key];\n });\n /**\n * Active `debug` instances.\n */\n\n createDebug.instances = [];\n /**\n * The currently active debug mode names, and names to skip.\n */\n\n createDebug.names = [];\n createDebug.skips = [];\n /**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\n createDebug.formatters = {};\n /**\n * Selects a color for a debug namespace\n * @param {String} namespace The namespace string for the for the debug instance to be colored\n * @return {Number|String} An ANSI color code for the given namespace\n * @api private\n */\n\n function selectColor(namespace) {\n var hash = 0;\n\n for (var i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n }\n\n createDebug.selectColor = selectColor;\n /**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n function createDebug(namespace) {\n var prevTime;\n\n function debug() {\n // Disabled?\n if (!debug.enabled) {\n return;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var self = debug; // Set `diff` timestamp\n\n var curr = Number(new Date());\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n args[0] = createDebug.coerce(args[0]);\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O');\n } // Apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // If we encounter an escaped % then don't increase the array index\n if (match === '%%') {\n return match;\n }\n\n index++;\n var formatter = createDebug.formatters[format];\n\n if (typeof formatter === 'function') {\n var val = args[index];\n match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // Apply env-specific formatting (colors, etc.)\n\n createDebug.formatArgs.call(self, args);\n var logFn = self.log || createDebug.log;\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = createDebug.enabled(namespace);\n debug.useColors = createDebug.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n debug.extend = extend; // Debug.formatArgs = formatArgs;\n // debug.rawLog = rawLog;\n // env-specific initialization logic for debug instances\n\n if (typeof createDebug.init === 'function') {\n createDebug.init(debug);\n }\n\n createDebug.instances.push(debug);\n return debug;\n }\n\n function destroy() {\n var index = createDebug.instances.indexOf(this);\n\n if (index !== -1) {\n createDebug.instances.splice(index, 1);\n return true;\n }\n\n return false;\n }\n\n function extend(namespace, delimiter) {\n return createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n }\n /**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n function enable(namespaces) {\n createDebug.save(namespaces);\n createDebug.names = [];\n createDebug.skips = [];\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) {\n // ignore empty strings\n continue;\n }\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n createDebug.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < createDebug.instances.length; i++) {\n var instance = createDebug.instances[i];\n instance.enabled = createDebug.enabled(instance.namespace);\n }\n }\n /**\n * Disable debug output.\n *\n * @api public\n */\n\n function disable() {\n createDebug.enable('');\n }\n /**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n function enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n\n var i;\n var len;\n\n for (i = 0, len = createDebug.skips.length; i < len; i++) {\n if (createDebug.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = createDebug.names.length; i < len; i++) {\n if (createDebug.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n }\n /**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n function coerce(val) {\n if (val instanceof Error) {\n return val.stack || val.message;\n }\n\n return val;\n }\n\n createDebug.enable(createDebug.load());\n return createDebug;\n}\n\nmodule.exports = setup;\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/process/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--14-0!/home/vsts/work/1/s/src/SCF/node_modules/css-loader/index.js??ref--14-1!/home/vsts/work/1/s/src/SCF/node_modules/postcss-loader/lib/index.js??ref--14-2!/home/vsts/work/1/s/src/SCF/node_modules/sass-loader/lib/loader.js??ref--14-3!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/index.scss\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/file-loader/dist/cjs.js??ref--2-0!/home/vsts/work/1/s/src/SCF/node_modules/extract-loader/lib/extractLoader.js!/home/vsts/work/1/s/src/SCF/node_modules/html-loader/index.js??ref--2-2!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/favicons/html_code.html\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"sites/scf/favicons/favicons.webpackcruft\";\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo-30-Years.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"SCF-logo-30-Years-usage\",\n viewBox: \"0 0 354.19 400.88\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#SCF-logo-30-Years-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"SCF-logo-usage\",\n viewBox: \"0 0 500 313\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#SCF-logo-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/add.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"add-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#add-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/alert.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"alert-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#alert-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-down.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"anchor-down-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#anchor-down-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-up.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"anchor-up-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#anchor-up-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-left.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"arrow-left-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#arrow-left-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-right.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"arrow-right-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#arrow-right-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/article.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"article-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#article-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/australia.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"australia-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#australia-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/calendar.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"calendar-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#calendar-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle-filled.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"check-circle-filled-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#check-circle-filled-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"check-circle-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#check-circle-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"check-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#check-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-down.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"chevron-down-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#chevron-down-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-left.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"chevron-left-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#chevron-left-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-right.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"chevron-right-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#chevron-right-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-up.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"chevron-up-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#chevron-up-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/choose-container-white.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"choose-container-white-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#choose-container-white-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/clock.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"clock-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#clock-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-circle-filled.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"close-circle-filled-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#close-circle-filled-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-small.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"close-small-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#close-small-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-check.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"comparison-check-usage\",\n viewBox: \"0 0 41 41\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#comparison-check-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-uncheck.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"comparison-uncheck-usage\",\n viewBox: \"0 0 40 40\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#comparison-uncheck-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container-simple.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"container-simple-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#container-simple-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"container-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#container-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot-scf.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"dot-scf-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#dot-scf-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"dot-usage\",\n viewBox: \"0 0 25 25\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#dot-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/download.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"download-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#download-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/edit.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"edit-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#edit-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/email.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"email-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#email-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-completed.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"enquire-nav-completed-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#enquire-nav-completed-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-current.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"enquire-nav-current-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#enquire-nav-current-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-default.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"enquire-nav-default-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#enquire-nav-default-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/expand.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"expand-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#expand-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/fax.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"fax-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#fax-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-container.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-container-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-container-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-flag.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-flag-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-flag-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-handshake.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-handshake-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-handshake-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-happy.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-happy-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-happy-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-idea.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-idea-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-idea-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-padlock.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-padlock-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-padlock-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-phone.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-phone-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-phone-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-product-selector.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-product-selector-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-product-selector-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-shipping.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-shipping-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-shipping-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-thinking.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-thinking-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-thinking-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-tick.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"feature-tick-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-tick-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/hamburger.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"hamburger-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#hamburger-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/info.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"info-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#info-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/map.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"map-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#map-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-close.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"menu-close-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#menu-close-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-open.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"menu-open-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#menu-open-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/minus.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"minus-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#minus-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/money.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"money-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#money-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/nz-truck.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"nz-truck-usage\",\n viewBox: \"0 0 598 165.661\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#nz-truck-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/person.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"person-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#person-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-filled.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"phone-filled-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#phone-filled-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-outline.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"phone-outline-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#phone-outline-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/pin.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"pin-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#pin-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/play.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"play-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#play-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/plus.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"plus-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#plus-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-accommodation.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-accommodation-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-accommodation-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-liquid.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-bulk-liquid-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-bulk-liquid-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-powder.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-bulk-powder-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-bulk-powder-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-large.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-capacity-large-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-capacity-large-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-medium.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-capacity-medium-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-capacity-medium-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-small.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-capacity-small-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-capacity-small-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-capacity-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-capacity-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-chemicals.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-chemicals-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-chemicals-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dangerous-goods.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-dangerous-goods-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-dangerous-goods-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dimensions.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-dimensions-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-dimensions-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dont-mind.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-dont-mind-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-dont-mind-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-end.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-entrance-end-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-entrance-end-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-side.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-entrance-side-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-entrance-side-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-grain.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-grain-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-grain-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid-containment.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-liquid-containment-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-liquid-containment-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-liquid-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-liquid-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-palletised.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-palletised-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-palletised-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-20.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-pallets-20-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-pallets-20-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-40.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-pallets-40-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-pallets-40-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-44.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-pallets-44-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-pallets-44-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-48.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-pallets-48-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-pallets-48-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-powder.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-powder-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-powder-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-refrigerated.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-refrigerated-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-refrigerated-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-selector-feature.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-selector-feature-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-selector-feature-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-large.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-size-large-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-size-large-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-medium.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-size-medium-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-size-medium-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-small.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-size-small-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-size-small-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step1.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-step1-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-step1-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step2.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-step2-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-step2-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step3.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-step3-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-step3-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-storage.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-storage-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-storage-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-large.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-tank-capacity-liquid-large-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-tank-capacity-liquid-large-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-medium.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-tank-capacity-liquid-medium-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-tank-capacity-liquid-medium-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-small.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-tank-capacity-liquid-small-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-tank-capacity-liquid-small-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-medium.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-tank-capacity-powder-medium-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-tank-capacity-powder-medium-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-small.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-tank-capacity-powder-small-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-tank-capacity-powder-small-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-transport.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"ps-transport-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-transport-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/question.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"question-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#question-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/quote.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"quote-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#quote-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/remove.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"remove-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#remove-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/rewind.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"rewind-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#rewind-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-complex.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"search-complex-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#search-complex-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-simple.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"search-simple-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#search-simple-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-facebook.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"social-facebook-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#social-facebook-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-instagram.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"social-instagram-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#social-instagram-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-linkedin.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"social-linkedin-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#social-linkedin-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-twitter.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"social-twitter-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#social-twitter-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-youtube.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"social-youtube-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#social-youtube-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/spinner.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"spinner-usage\",\n viewBox: \"0 0 38 38\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#spinner-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/star.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"star-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#star-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/talk.svg\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n id: \"talk-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_require__.p + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#talk-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n/***/ }),\n\n/***/ \"external \\\"jQuery\\\"\":\n/***/ (function(module, exports) {\n\nmodule.exports = jQuery;\n\n/***/ }),\n\n/***/ \"multi /home/vsts/work/1/s/src/SCF//client/src/site__scf001/index.js /home/vsts/work/1/s/src/SCF//client/src/site__scf001/index.scss\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/index.js\");\nmodule.exports = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--14-0!/home/vsts/work/1/s/src/SCF/node_modules/css-loader/index.js??ref--14-1!/home/vsts/work/1/s/src/SCF/node_modules/postcss-loader/lib/index.js??ref--14-2!/home/vsts/work/1/s/src/SCF/node_modules/sass-loader/lib/loader.js??ref--14-3!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/index.scss\");\n\n\n/***/ })\n\n},[\"multi /home/vsts/work/1/s/src/SCF//client/src/site__scf001/index.js /home/vsts/work/1/s/src/SCF//client/src/site__scf001/index.scss\"]);\n\n\n// WEBPACK FOOTER //\n// scripts/site__scf001--c665298f27eec3d51680.js","/*! PhotoSwipe Default UI - 4.1.3 - 2019-01-08\n* http://photoswipe.com\n* Copyright (c) 2019 Dmitry Semenov; */\n/**\n*\n* UI on top of main sliding area (caption, arrows, close button, etc.).\n* Built just using public methods/properties of PhotoSwipe.\n* \n*/\n(function (root, factory) { \n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t} else if (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t} else {\n\t\troot.PhotoSwipeUI_Default = factory();\n\t}\n})(this, function () {\n\n\t'use strict';\n\n\n\nvar PhotoSwipeUI_Default =\n function(pswp, framework) {\n\n\tvar ui = this;\n\tvar _overlayUIUpdated = false,\n\t\t_controlsVisible = true,\n\t\t_fullscrenAPI,\n\t\t_controls,\n\t\t_captionContainer,\n\t\t_fakeCaptionContainer,\n\t\t_indexIndicator,\n\t\t_shareButton,\n\t\t_shareModal,\n\t\t_shareModalHidden = true,\n\t\t_initalCloseOnScrollValue,\n\t\t_isIdle,\n\t\t_listen,\n\n\t\t_loadingIndicator,\n\t\t_loadingIndicatorHidden,\n\t\t_loadingIndicatorTimeout,\n\n\t\t_galleryHasOneSlide,\n\n\t\t_options,\n\t\t_defaultUIOptions = {\n\t\t\tbarsSize: {top:44, bottom:'auto'},\n\t\t\tcloseElClasses: ['item', 'caption', 'zoom-wrap', 'ui', 'top-bar'], \n\t\t\ttimeToIdle: 4000, \n\t\t\ttimeToIdleOutside: 1000,\n\t\t\tloadingIndicatorDelay: 1000, // 2s\n\t\t\t\n\t\t\taddCaptionHTMLFn: function(item, captionEl /*, isFake */) {\n\t\t\t\tif(!item.title) {\n\t\t\t\t\tcaptionEl.children[0].innerHTML = '';\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tcaptionEl.children[0].innerHTML = item.title;\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\tcloseEl:true,\n\t\t\tcaptionEl: true,\n\t\t\tfullscreenEl: true,\n\t\t\tzoomEl: true,\n\t\t\tshareEl: true,\n\t\t\tcounterEl: true,\n\t\t\tarrowEl: true,\n\t\t\tpreloaderEl: true,\n\n\t\t\ttapToClose: false,\n\t\t\ttapToToggleControls: true,\n\n\t\t\tclickToCloseNonZoomable: true,\n\n\t\t\tshareButtons: [\n\t\t\t\t{id:'facebook', label:'Share on Facebook', url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},\n\t\t\t\t{id:'twitter', label:'Tweet', url:'https://twitter.com/intent/tweet?text={{text}}&url={{url}}'},\n\t\t\t\t{id:'pinterest', label:'Pin it', url:'http://www.pinterest.com/pin/create/button/'+\n\t\t\t\t\t\t\t\t\t\t\t\t\t'?url={{url}}&media={{image_url}}&description={{text}}'},\n\t\t\t\t{id:'download', label:'Download image', url:'{{raw_image_url}}', download:true}\n\t\t\t],\n\t\t\tgetImageURLForShare: function( /* shareButtonData */ ) {\n\t\t\t\treturn pswp.currItem.src || '';\n\t\t\t},\n\t\t\tgetPageURLForShare: function( /* shareButtonData */ ) {\n\t\t\t\treturn window.location.href;\n\t\t\t},\n\t\t\tgetTextForShare: function( /* shareButtonData */ ) {\n\t\t\t\treturn pswp.currItem.title || '';\n\t\t\t},\n\t\t\t\t\n\t\t\tindexIndicatorSep: ' / ',\n\t\t\tfitControlsWidth: 1200\n\n\t\t},\n\t\t_blockControlsTap,\n\t\t_blockControlsTapTimeout;\n\n\n\n\tvar _onControlsTap = function(e) {\n\t\t\tif(_blockControlsTap) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\n\t\t\te = e || window.event;\n\n\t\t\tif(_options.timeToIdle && _options.mouseUsed && !_isIdle) {\n\t\t\t\t// reset idle timer\n\t\t\t\t_onIdleMouseMove();\n\t\t\t}\n\n\n\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\tuiElement,\n\t\t\t\tclickedClass = target.getAttribute('class') || '',\n\t\t\t\tfound;\n\n\t\t\tfor(var i = 0; i < _uiElements.length; i++) {\n\t\t\t\tuiElement = _uiElements[i];\n\t\t\t\tif(uiElement.onTap && clickedClass.indexOf('pswp__' + uiElement.name ) > -1 ) {\n\t\t\t\t\tuiElement.onTap();\n\t\t\t\t\tfound = true;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(found) {\n\t\t\t\tif(e.stopPropagation) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t\t_blockControlsTap = true;\n\n\t\t\t\t// Some versions of Android don't prevent ghost click event \n\t\t\t\t// when preventDefault() was called on touchstart and/or touchend.\n\t\t\t\t// \n\t\t\t\t// This happens on v4.3, 4.2, 4.1, \n\t\t\t\t// older versions strangely work correctly, \n\t\t\t\t// but just in case we add delay on all of them)\t\n\t\t\t\tvar tapDelay = framework.features.isOldAndroid ? 600 : 30;\n\t\t\t\t_blockControlsTapTimeout = setTimeout(function() {\n\t\t\t\t\t_blockControlsTap = false;\n\t\t\t\t}, tapDelay);\n\t\t\t}\n\n\t\t},\n\t\t_fitControlsInViewport = function() {\n\t\t\treturn !pswp.likelyTouchDevice || _options.mouseUsed || screen.width > _options.fitControlsWidth;\n\t\t},\n\t\t_togglePswpClass = function(el, cName, add) {\n\t\t\tframework[ (add ? 'add' : 'remove') + 'Class' ](el, 'pswp__' + cName);\n\t\t},\n\n\t\t// add class when there is just one item in the gallery\n\t\t// (by default it hides left/right arrows and 1ofX counter)\n\t\t_countNumItems = function() {\n\t\t\tvar hasOneSlide = (_options.getNumItemsFn() === 1);\n\n\t\t\tif(hasOneSlide !== _galleryHasOneSlide) {\n\t\t\t\t_togglePswpClass(_controls, 'ui--one-slide', hasOneSlide);\n\t\t\t\t_galleryHasOneSlide = hasOneSlide;\n\t\t\t}\n\t\t},\n\t\t_toggleShareModalClass = function() {\n\t\t\t_togglePswpClass(_shareModal, 'share-modal--hidden', _shareModalHidden);\n\t\t},\n\t\t_toggleShareModal = function() {\n\n\t\t\t_shareModalHidden = !_shareModalHidden;\n\t\t\t\n\t\t\t\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_toggleShareModalClass();\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tif(!_shareModalHidden) {\n\t\t\t\t\t\tframework.addClass(_shareModal, 'pswp__share-modal--fade-in');\n\t\t\t\t\t}\n\t\t\t\t}, 30);\n\t\t\t} else {\n\t\t\t\tframework.removeClass(_shareModal, 'pswp__share-modal--fade-in');\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tif(_shareModalHidden) {\n\t\t\t\t\t\t_toggleShareModalClass();\n\t\t\t\t\t}\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t\t\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_updateShareURLs();\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\n\t\t_openWindowPopup = function(e) {\n\t\t\te = e || window.event;\n\t\t\tvar target = e.target || e.srcElement;\n\n\t\t\tpswp.shout('shareLinkClick', e, target);\n\n\t\t\tif(!target.href) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif( target.hasAttribute('download') ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\twindow.open(target.href, 'pswp_share', 'scrollbars=yes,resizable=yes,toolbar=no,'+\n\t\t\t\t\t\t\t\t\t\t'location=yes,width=550,height=420,top=100,left=' + \n\t\t\t\t\t\t\t\t\t\t(window.screen ? Math.round(screen.width / 2 - 275) : 100) );\n\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_toggleShareModal();\n\t\t\t}\n\t\t\t\n\t\t\treturn false;\n\t\t},\n\t\t_updateShareURLs = function() {\n\t\t\tvar shareButtonOut = '',\n\t\t\t\tshareButtonData,\n\t\t\t\tshareURL,\n\t\t\t\timage_url,\n\t\t\t\tpage_url,\n\t\t\t\tshare_text;\n\n\t\t\tfor(var i = 0; i < _options.shareButtons.length; i++) {\n\t\t\t\tshareButtonData = _options.shareButtons[i];\n\n\t\t\t\timage_url = _options.getImageURLForShare(shareButtonData);\n\t\t\t\tpage_url = _options.getPageURLForShare(shareButtonData);\n\t\t\t\tshare_text = _options.getTextForShare(shareButtonData);\n\n\t\t\t\tshareURL = shareButtonData.url.replace('{{url}}', encodeURIComponent(page_url) )\n\t\t\t\t\t\t\t\t\t.replace('{{image_url}}', encodeURIComponent(image_url) )\n\t\t\t\t\t\t\t\t\t.replace('{{raw_image_url}}', image_url )\n\t\t\t\t\t\t\t\t\t.replace('{{text}}', encodeURIComponent(share_text) );\n\n\t\t\t\tshareButtonOut += '
' + \n\t\t\t\t\t\t\t\t\tshareButtonData.label + '';\n\n\t\t\t\tif(_options.parseShareButtonOut) {\n\t\t\t\t\tshareButtonOut = _options.parseShareButtonOut(shareButtonData, shareButtonOut);\n\t\t\t\t}\n\t\t\t}\n\t\t\t_shareModal.children[0].innerHTML = shareButtonOut;\n\t\t\t_shareModal.children[0].onclick = _openWindowPopup;\n\n\t\t},\n\t\t_hasCloseClass = function(target) {\n\t\t\tfor(var i = 0; i < _options.closeElClasses.length; i++) {\n\t\t\t\tif( framework.hasClass(target, 'pswp__' + _options.closeElClasses[i]) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_idleInterval,\n\t\t_idleTimer,\n\t\t_idleIncrement = 0,\n\t\t_onIdleMouseMove = function() {\n\t\t\tclearTimeout(_idleTimer);\n\t\t\t_idleIncrement = 0;\n\t\t\tif(_isIdle) {\n\t\t\t\tui.setIdle(false);\n\t\t\t}\n\t\t},\n\t\t_onMouseLeaveWindow = function(e) {\n\t\t\te = e ? e : window.event;\n\t\t\tvar from = e.relatedTarget || e.toElement;\n\t\t\tif (!from || from.nodeName === 'HTML') {\n\t\t\t\tclearTimeout(_idleTimer);\n\t\t\t\t_idleTimer = setTimeout(function() {\n\t\t\t\t\tui.setIdle(true);\n\t\t\t\t}, _options.timeToIdleOutside);\n\t\t\t}\n\t\t},\n\t\t_setupFullscreenAPI = function() {\n\t\t\tif(_options.fullscreenEl && !framework.features.isOldAndroid) {\n\t\t\t\tif(!_fullscrenAPI) {\n\t\t\t\t\t_fullscrenAPI = ui.getFullscreenAPI();\n\t\t\t\t}\n\t\t\t\tif(_fullscrenAPI) {\n\t\t\t\t\tframework.bind(document, _fullscrenAPI.eventK, ui.updateFullscreen);\n\t\t\t\t\tui.updateFullscreen();\n\t\t\t\t\tframework.addClass(pswp.template, 'pswp--supports-fs');\n\t\t\t\t} else {\n\t\t\t\t\tframework.removeClass(pswp.template, 'pswp--supports-fs');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_setupLoadingIndicator = function() {\n\t\t\t// Setup loading indicator\n\t\t\tif(_options.preloaderEl) {\n\t\t\t\n\t\t\t\t_toggleLoadingIndicator(true);\n\n\t\t\t\t_listen('beforeChange', function() {\n\n\t\t\t\t\tclearTimeout(_loadingIndicatorTimeout);\n\n\t\t\t\t\t// display loading indicator with delay\n\t\t\t\t\t_loadingIndicatorTimeout = setTimeout(function() {\n\n\t\t\t\t\t\tif(pswp.currItem && pswp.currItem.loading) {\n\n\t\t\t\t\t\t\tif( !pswp.allowProgressiveImg() || (pswp.currItem.img && !pswp.currItem.img.naturalWidth) ) {\n\t\t\t\t\t\t\t\t// show preloader if progressive loading is not enabled, \n\t\t\t\t\t\t\t\t// or image width is not defined yet (because of slow connection)\n\t\t\t\t\t\t\t\t_toggleLoadingIndicator(false); \n\t\t\t\t\t\t\t\t// items-controller.js function allowProgressiveImg\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_toggleLoadingIndicator(true); // hide preloader\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}, _options.loadingIndicatorDelay);\n\t\t\t\t\t\n\t\t\t\t});\n\t\t\t\t_listen('imageLoadComplete', function(index, item) {\n\t\t\t\t\tif(pswp.currItem === item) {\n\t\t\t\t\t\t_toggleLoadingIndicator(true);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t}\n\t\t},\n\t\t_toggleLoadingIndicator = function(hide) {\n\t\t\tif( _loadingIndicatorHidden !== hide ) {\n\t\t\t\t_togglePswpClass(_loadingIndicator, 'preloader--active', !hide);\n\t\t\t\t_loadingIndicatorHidden = hide;\n\t\t\t}\n\t\t},\n\t\t_applyNavBarGaps = function(item) {\n\t\t\tvar gap = item.vGap;\n\n\t\t\tif( _fitControlsInViewport() ) {\n\t\t\t\t\n\t\t\t\tvar bars = _options.barsSize; \n\t\t\t\tif(_options.captionEl && bars.bottom === 'auto') {\n\t\t\t\t\tif(!_fakeCaptionContainer) {\n\t\t\t\t\t\t_fakeCaptionContainer = framework.createEl('pswp__caption pswp__caption--fake');\n\t\t\t\t\t\t_fakeCaptionContainer.appendChild( framework.createEl('pswp__caption__center') );\n\t\t\t\t\t\t_controls.insertBefore(_fakeCaptionContainer, _captionContainer);\n\t\t\t\t\t\tframework.addClass(_controls, 'pswp__ui--fit');\n\t\t\t\t\t}\n\t\t\t\t\tif( _options.addCaptionHTMLFn(item, _fakeCaptionContainer, true) ) {\n\n\t\t\t\t\t\tvar captionSize = _fakeCaptionContainer.clientHeight;\n\t\t\t\t\t\tgap.bottom = parseInt(captionSize,10) || 44;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgap.bottom = bars.top; // if no caption, set size of bottom gap to size of top\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tgap.bottom = bars.bottom === 'auto' ? 0 : bars.bottom;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// height of top bar is static, no need to calculate it\n\t\t\t\tgap.top = bars.top;\n\t\t\t} else {\n\t\t\t\tgap.top = gap.bottom = 0;\n\t\t\t}\n\t\t},\n\t\t_setupIdle = function() {\n\t\t\t// Hide controls when mouse is used\n\t\t\tif(_options.timeToIdle) {\n\t\t\t\t_listen('mouseUsed', function() {\n\t\t\t\t\t\n\t\t\t\t\tframework.bind(document, 'mousemove', _onIdleMouseMove);\n\t\t\t\t\tframework.bind(document, 'mouseout', _onMouseLeaveWindow);\n\n\t\t\t\t\t_idleInterval = setInterval(function() {\n\t\t\t\t\t\t_idleIncrement++;\n\t\t\t\t\t\tif(_idleIncrement === 2) {\n\t\t\t\t\t\t\tui.setIdle(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, _options.timeToIdle / 2);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t_setupHidingControlsDuringGestures = function() {\n\n\t\t\t// Hide controls on vertical drag\n\t\t\t_listen('onVerticalDrag', function(now) {\n\t\t\t\tif(_controlsVisible && now < 0.95) {\n\t\t\t\t\tui.hideControls();\n\t\t\t\t} else if(!_controlsVisible && now >= 0.95) {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Hide controls when pinching to close\n\t\t\tvar pinchControlsHidden;\n\t\t\t_listen('onPinchClose' , function(now) {\n\t\t\t\tif(_controlsVisible && now < 0.9) {\n\t\t\t\t\tui.hideControls();\n\t\t\t\t\tpinchControlsHidden = true;\n\t\t\t\t} else if(pinchControlsHidden && !_controlsVisible && now > 0.9) {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_listen('zoomGestureEnded', function() {\n\t\t\t\tpinchControlsHidden = false;\n\t\t\t\tif(pinchControlsHidden && !_controlsVisible) {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t});\n\n\t\t};\n\n\n\n\tvar _uiElements = [\n\t\t{ \n\t\t\tname: 'caption', \n\t\t\toption: 'captionEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_captionContainer = el; \n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'share-modal', \n\t\t\toption: 'shareEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_shareModal = el;\n\t\t\t},\n\t\t\tonTap: function() {\n\t\t\t\t_toggleShareModal();\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'button--share', \n\t\t\toption: 'shareEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_shareButton = el;\n\t\t\t},\n\t\t\tonTap: function() {\n\t\t\t\t_toggleShareModal();\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'button--zoom', \n\t\t\toption: 'zoomEl',\n\t\t\tonTap: pswp.toggleDesktopZoom\n\t\t},\n\t\t{ \n\t\t\tname: 'counter', \n\t\t\toption: 'counterEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_indexIndicator = el;\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'button--close', \n\t\t\toption: 'closeEl',\n\t\t\tonTap: pswp.close\n\t\t},\n\t\t{ \n\t\t\tname: 'button--arrow--left', \n\t\t\toption: 'arrowEl',\n\t\t\tonTap: pswp.prev\n\t\t},\n\t\t{ \n\t\t\tname: 'button--arrow--right', \n\t\t\toption: 'arrowEl',\n\t\t\tonTap: pswp.next\n\t\t},\n\t\t{ \n\t\t\tname: 'button--fs', \n\t\t\toption: 'fullscreenEl',\n\t\t\tonTap: function() { \n\t\t\t\tif(_fullscrenAPI.isFullscreen()) {\n\t\t\t\t\t_fullscrenAPI.exit();\n\t\t\t\t} else {\n\t\t\t\t\t_fullscrenAPI.enter();\n\t\t\t\t}\n\t\t\t} \n\t\t},\n\t\t{ \n\t\t\tname: 'preloader', \n\t\t\toption: 'preloaderEl',\n\t\t\tonInit: function(el) { \n\t\t\t\t_loadingIndicator = el;\n\t\t\t} \n\t\t}\n\n\t];\n\n\tvar _setupUIElements = function() {\n\t\tvar item,\n\t\t\tclassAttr,\n\t\t\tuiElement;\n\n\t\tvar loopThroughChildElements = function(sChildren) {\n\t\t\tif(!sChildren) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar l = sChildren.length;\n\t\t\tfor(var i = 0; i < l; i++) {\n\t\t\t\titem = sChildren[i];\n\t\t\t\tclassAttr = item.className;\n\n\t\t\t\tfor(var a = 0; a < _uiElements.length; a++) {\n\t\t\t\t\tuiElement = _uiElements[a];\n\n\t\t\t\t\tif(classAttr.indexOf('pswp__' + uiElement.name) > -1 ) {\n\n\t\t\t\t\t\tif( _options[uiElement.option] ) { // if element is not disabled from options\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tframework.removeClass(item, 'pswp__element--disabled');\n\t\t\t\t\t\t\tif(uiElement.onInit) {\n\t\t\t\t\t\t\t\tuiElement.onInit(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//item.style.display = 'block';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tframework.addClass(item, 'pswp__element--disabled');\n\t\t\t\t\t\t\t//item.style.display = 'none';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tloopThroughChildElements(_controls.children);\n\n\t\tvar topBar = framework.getChildByClass(_controls, 'pswp__top-bar');\n\t\tif(topBar) {\n\t\t\tloopThroughChildElements( topBar.children );\n\t\t}\n\t};\n\n\n\t\n\n\tui.init = function() {\n\n\t\t// extend options\n\t\tframework.extend(pswp.options, _defaultUIOptions, true);\n\n\t\t// create local link for fast access\n\t\t_options = pswp.options;\n\n\t\t// find pswp__ui element\n\t\t_controls = framework.getChildByClass(pswp.scrollWrap, 'pswp__ui');\n\n\t\t// create local link\n\t\t_listen = pswp.listen;\n\n\n\t\t_setupHidingControlsDuringGestures();\n\n\t\t// update controls when slides change\n\t\t_listen('beforeChange', ui.update);\n\n\t\t// toggle zoom on double-tap\n\t\t_listen('doubleTap', function(point) {\n\t\t\tvar initialZoomLevel = pswp.currItem.initialZoomLevel;\n\t\t\tif(pswp.getZoomLevel() !== initialZoomLevel) {\n\t\t\t\tpswp.zoomTo(initialZoomLevel, point, 333);\n\t\t\t} else {\n\t\t\t\tpswp.zoomTo(_options.getDoubleTapZoom(false, pswp.currItem), point, 333);\n\t\t\t}\n\t\t});\n\n\t\t// Allow text selection in caption\n\t\t_listen('preventDragEvent', function(e, isDown, preventObj) {\n\t\t\tvar t = e.target || e.srcElement;\n\t\t\tif(\n\t\t\t\tt && \n\t\t\t\tt.getAttribute('class') && e.type.indexOf('mouse') > -1 && \n\t\t\t\t( t.getAttribute('class').indexOf('__caption') > 0 || (/(SMALL|STRONG|EM)/i).test(t.tagName) ) \n\t\t\t) {\n\t\t\t\tpreventObj.prevent = false;\n\t\t\t}\n\t\t});\n\n\t\t// bind events for UI\n\t\t_listen('bindEvents', function() {\n\t\t\tframework.bind(_controls, 'pswpTap click', _onControlsTap);\n\t\t\tframework.bind(pswp.scrollWrap, 'pswpTap', ui.onGlobalTap);\n\n\t\t\tif(!pswp.likelyTouchDevice) {\n\t\t\t\tframework.bind(pswp.scrollWrap, 'mouseover', ui.onMouseOver);\n\t\t\t}\n\t\t});\n\n\t\t// unbind events for UI\n\t\t_listen('unbindEvents', function() {\n\t\t\tif(!_shareModalHidden) {\n\t\t\t\t_toggleShareModal();\n\t\t\t}\n\n\t\t\tif(_idleInterval) {\n\t\t\t\tclearInterval(_idleInterval);\n\t\t\t}\n\t\t\tframework.unbind(document, 'mouseout', _onMouseLeaveWindow);\n\t\t\tframework.unbind(document, 'mousemove', _onIdleMouseMove);\n\t\t\tframework.unbind(_controls, 'pswpTap click', _onControlsTap);\n\t\t\tframework.unbind(pswp.scrollWrap, 'pswpTap', ui.onGlobalTap);\n\t\t\tframework.unbind(pswp.scrollWrap, 'mouseover', ui.onMouseOver);\n\n\t\t\tif(_fullscrenAPI) {\n\t\t\t\tframework.unbind(document, _fullscrenAPI.eventK, ui.updateFullscreen);\n\t\t\t\tif(_fullscrenAPI.isFullscreen()) {\n\t\t\t\t\t_options.hideAnimationDuration = 0;\n\t\t\t\t\t_fullscrenAPI.exit();\n\t\t\t\t}\n\t\t\t\t_fullscrenAPI = null;\n\t\t\t}\n\t\t});\n\n\n\t\t// clean up things when gallery is destroyed\n\t\t_listen('destroy', function() {\n\t\t\tif(_options.captionEl) {\n\t\t\t\tif(_fakeCaptionContainer) {\n\t\t\t\t\t_controls.removeChild(_fakeCaptionContainer);\n\t\t\t\t}\n\t\t\t\tframework.removeClass(_captionContainer, 'pswp__caption--empty');\n\t\t\t}\n\n\t\t\tif(_shareModal) {\n\t\t\t\t_shareModal.children[0].onclick = null;\n\t\t\t}\n\t\t\tframework.removeClass(_controls, 'pswp__ui--over-close');\n\t\t\tframework.addClass( _controls, 'pswp__ui--hidden');\n\t\t\tui.setIdle(false);\n\t\t});\n\t\t\n\n\t\tif(!_options.showAnimationDuration) {\n\t\t\tframework.removeClass( _controls, 'pswp__ui--hidden');\n\t\t}\n\t\t_listen('initialZoomIn', function() {\n\t\t\tif(_options.showAnimationDuration) {\n\t\t\t\tframework.removeClass( _controls, 'pswp__ui--hidden');\n\t\t\t}\n\t\t});\n\t\t_listen('initialZoomOut', function() {\n\t\t\tframework.addClass( _controls, 'pswp__ui--hidden');\n\t\t});\n\n\t\t_listen('parseVerticalMargin', _applyNavBarGaps);\n\t\t\n\t\t_setupUIElements();\n\n\t\tif(_options.shareEl && _shareButton && _shareModal) {\n\t\t\t_shareModalHidden = true;\n\t\t}\n\n\t\t_countNumItems();\n\n\t\t_setupIdle();\n\n\t\t_setupFullscreenAPI();\n\n\t\t_setupLoadingIndicator();\n\t};\n\n\tui.setIdle = function(isIdle) {\n\t\t_isIdle = isIdle;\n\t\t_togglePswpClass(_controls, 'ui--idle', isIdle);\n\t};\n\n\tui.update = function() {\n\t\t// Don't update UI if it's hidden\n\t\tif(_controlsVisible && pswp.currItem) {\n\t\t\t\n\t\t\tui.updateIndexIndicator();\n\n\t\t\tif(_options.captionEl) {\n\t\t\t\t_options.addCaptionHTMLFn(pswp.currItem, _captionContainer);\n\n\t\t\t\t_togglePswpClass(_captionContainer, 'caption--empty', !pswp.currItem.title);\n\t\t\t}\n\n\t\t\t_overlayUIUpdated = true;\n\n\t\t} else {\n\t\t\t_overlayUIUpdated = false;\n\t\t}\n\n\t\tif(!_shareModalHidden) {\n\t\t\t_toggleShareModal();\n\t\t}\n\n\t\t_countNumItems();\n\t};\n\n\tui.updateFullscreen = function(e) {\n\n\t\tif(e) {\n\t\t\t// some browsers change window scroll position during the fullscreen\n\t\t\t// so PhotoSwipe updates it just in case\n\t\t\tsetTimeout(function() {\n\t\t\t\tpswp.setScrollOffset( 0, framework.getScrollY() );\n\t\t\t}, 50);\n\t\t}\n\t\t\n\t\t// toogle pswp--fs class on root element\n\t\tframework[ (_fullscrenAPI.isFullscreen() ? 'add' : 'remove') + 'Class' ](pswp.template, 'pswp--fs');\n\t};\n\n\tui.updateIndexIndicator = function() {\n\t\tif(_options.counterEl) {\n\t\t\t_indexIndicator.innerHTML = (pswp.getCurrentIndex()+1) + \n\t\t\t\t\t\t\t\t\t\t_options.indexIndicatorSep + \n\t\t\t\t\t\t\t\t\t\t_options.getNumItemsFn();\n\t\t}\n\t};\n\t\n\tui.onGlobalTap = function(e) {\n\t\te = e || window.event;\n\t\tvar target = e.target || e.srcElement;\n\n\t\tif(_blockControlsTap) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(e.detail && e.detail.pointerType === 'mouse') {\n\n\t\t\t// close gallery if clicked outside of the image\n\t\t\tif(_hasCloseClass(target)) {\n\t\t\t\tpswp.close();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(framework.hasClass(target, 'pswp__img')) {\n\t\t\t\tif(pswp.getZoomLevel() === 1 && pswp.getZoomLevel() <= pswp.currItem.fitRatio) {\n\t\t\t\t\tif(_options.clickToCloseNonZoomable) {\n\t\t\t\t\t\tpswp.close();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpswp.toggleDesktopZoom(e.detail.releasePoint);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t} else {\n\n\t\t\t// tap anywhere (except buttons) to toggle visibility of controls\n\t\t\tif(_options.tapToToggleControls) {\n\t\t\t\tif(_controlsVisible) {\n\t\t\t\t\tui.hideControls();\n\t\t\t\t} else {\n\t\t\t\t\tui.showControls();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// tap to close gallery\n\t\t\tif(_options.tapToClose && (framework.hasClass(target, 'pswp__img') || _hasCloseClass(target)) ) {\n\t\t\t\tpswp.close();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t}\n\t};\n\tui.onMouseOver = function(e) {\n\t\te = e || window.event;\n\t\tvar target = e.target || e.srcElement;\n\n\t\t// add class when mouse is over an element that should close the gallery\n\t\t_togglePswpClass(_controls, 'ui--over-close', _hasCloseClass(target));\n\t};\n\n\tui.hideControls = function() {\n\t\tframework.addClass(_controls,'pswp__ui--hidden');\n\t\t_controlsVisible = false;\n\t};\n\n\tui.showControls = function() {\n\t\t_controlsVisible = true;\n\t\tif(!_overlayUIUpdated) {\n\t\t\tui.update();\n\t\t}\n\t\tframework.removeClass(_controls,'pswp__ui--hidden');\n\t};\n\n\tui.supportsFullscreen = function() {\n\t\tvar d = document;\n\t\treturn !!(d.exitFullscreen || d.mozCancelFullScreen || d.webkitExitFullscreen || d.msExitFullscreen);\n\t};\n\n\tui.getFullscreenAPI = function() {\n\t\tvar dE = document.documentElement,\n\t\t\tapi,\n\t\t\ttF = 'fullscreenchange';\n\n\t\tif (dE.requestFullscreen) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'requestFullscreen',\n\t\t\t\texitK: 'exitFullscreen',\n\t\t\t\telementK: 'fullscreenElement',\n\t\t\t\teventK: tF\n\t\t\t};\n\n\t\t} else if(dE.mozRequestFullScreen ) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'mozRequestFullScreen',\n\t\t\t\texitK: 'mozCancelFullScreen',\n\t\t\t\telementK: 'mozFullScreenElement',\n\t\t\t\teventK: 'moz' + tF\n\t\t\t};\n\n\t\t\t\n\n\t\t} else if(dE.webkitRequestFullscreen) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'webkitRequestFullscreen',\n\t\t\t\texitK: 'webkitExitFullscreen',\n\t\t\t\telementK: 'webkitFullscreenElement',\n\t\t\t\teventK: 'webkit' + tF\n\t\t\t};\n\n\t\t} else if(dE.msRequestFullscreen) {\n\t\t\tapi = {\n\t\t\t\tenterK: 'msRequestFullscreen',\n\t\t\t\texitK: 'msExitFullscreen',\n\t\t\t\telementK: 'msFullscreenElement',\n\t\t\t\teventK: 'MSFullscreenChange'\n\t\t\t};\n\t\t}\n\n\t\tif(api) {\n\t\t\tapi.enter = function() { \n\t\t\t\t// disable close-on-scroll in fullscreen\n\t\t\t\t_initalCloseOnScrollValue = _options.closeOnScroll; \n\t\t\t\t_options.closeOnScroll = false; \n\n\t\t\t\tif(this.enterK === 'webkitRequestFullscreen') {\n\t\t\t\t\tpswp.template[this.enterK]( Element.ALLOW_KEYBOARD_INPUT );\n\t\t\t\t} else {\n\t\t\t\t\treturn pswp.template[this.enterK](); \n\t\t\t\t}\n\t\t\t};\n\t\t\tapi.exit = function() { \n\t\t\t\t_options.closeOnScroll = _initalCloseOnScrollValue;\n\n\t\t\t\treturn document[this.exitK](); \n\n\t\t\t};\n\t\t\tapi.isFullscreen = function() { return document[this.elementK]; };\n\t\t}\n\n\t\treturn api;\n\t};\n\n\n\n};\nreturn PhotoSwipeUI_Default;\n\n\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/core/vendor/photoswipe/photoswipe-ui-default.js\n// module id = /home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe-ui-default.js\n// module chunks = site__scf001 site__csl001","/*! PhotoSwipe - v4.1.3 - 2019-01-08\n* http://photoswipe.com\n* Copyright (c) 2019 Dmitry Semenov; */\n(function (root, factory) { \n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t} else if (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t} else {\n\t\troot.PhotoSwipe = factory();\n\t}\n})(this, function () {\n\n\t'use strict';\n\tvar PhotoSwipe = function(template, UiClass, items, options){\n\n/*>>framework-bridge*/\n/**\n *\n * Set of generic functions used by gallery.\n * \n * You're free to modify anything here as long as functionality is kept.\n * \n */\nvar framework = {\n\tfeatures: null,\n\tbind: function(target, type, listener, unbind) {\n\t\tvar methodName = (unbind ? 'remove' : 'add') + 'EventListener';\n\t\ttype = type.split(' ');\n\t\tfor(var i = 0; i < type.length; i++) {\n\t\t\tif(type[i]) {\n\t\t\t\ttarget[methodName]( type[i], listener, false);\n\t\t\t}\n\t\t}\n\t},\n\tisArray: function(obj) {\n\t\treturn (obj instanceof Array);\n\t},\n\tcreateEl: function(classes, tag) {\n\t\tvar el = document.createElement(tag || 'div');\n\t\tif(classes) {\n\t\t\tel.className = classes;\n\t\t}\n\t\treturn el;\n\t},\n\tgetScrollY: function() {\n\t\tvar yOffset = window.pageYOffset;\n\t\treturn yOffset !== undefined ? yOffset : document.documentElement.scrollTop;\n\t},\n\tunbind: function(target, type, listener) {\n\t\tframework.bind(target,type,listener,true);\n\t},\n\tremoveClass: function(el, className) {\n\t\tvar reg = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\n\t\tel.className = el.className.replace(reg, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, ''); \n\t},\n\taddClass: function(el, className) {\n\t\tif( !framework.hasClass(el,className) ) {\n\t\t\tel.className += (el.className ? ' ' : '') + className;\n\t\t}\n\t},\n\thasClass: function(el, className) {\n\t\treturn el.className && new RegExp('(^|\\\\s)' + className + '(\\\\s|$)').test(el.className);\n\t},\n\tgetChildByClass: function(parentEl, childClassName) {\n\t\tvar node = parentEl.firstChild;\n\t\twhile(node) {\n\t\t\tif( framework.hasClass(node, childClassName) ) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t\tnode = node.nextSibling;\n\t\t}\n\t},\n\tarraySearch: function(array, value, key) {\n\t\tvar i = array.length;\n\t\twhile(i--) {\n\t\t\tif(array[i][key] === value) {\n\t\t\t\treturn i;\n\t\t\t} \n\t\t}\n\t\treturn -1;\n\t},\n\textend: function(o1, o2, preventOverwrite) {\n\t\tfor (var prop in o2) {\n\t\t\tif (o2.hasOwnProperty(prop)) {\n\t\t\t\tif(preventOverwrite && o1.hasOwnProperty(prop)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\to1[prop] = o2[prop];\n\t\t\t}\n\t\t}\n\t},\n\teasing: {\n\t\tsine: {\n\t\t\tout: function(k) {\n\t\t\t\treturn Math.sin(k * (Math.PI / 2));\n\t\t\t},\n\t\t\tinOut: function(k) {\n\t\t\t\treturn - (Math.cos(Math.PI * k) - 1) / 2;\n\t\t\t}\n\t\t},\n\t\tcubic: {\n\t\t\tout: function(k) {\n\t\t\t\treturn --k * k * k + 1;\n\t\t\t}\n\t\t}\n\t\t/*\n\t\t\telastic: {\n\t\t\t\tout: function ( k ) {\n\n\t\t\t\t\tvar s, a = 0.1, p = 0.4;\n\t\t\t\t\tif ( k === 0 ) return 0;\n\t\t\t\t\tif ( k === 1 ) return 1;\n\t\t\t\t\tif ( !a || a < 1 ) { a = 1; s = p / 4; }\n\t\t\t\t\telse s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );\n\t\t\t\t\treturn ( a * Math.pow( 2, - 10 * k) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) + 1 );\n\n\t\t\t\t},\n\t\t\t},\n\t\t\tback: {\n\t\t\t\tout: function ( k ) {\n\t\t\t\t\tvar s = 1.70158;\n\t\t\t\t\treturn --k * k * ( ( s + 1 ) * k + s ) + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t*/\n\t},\n\n\t/**\n\t * \n\t * @return {object}\n\t * \n\t * {\n\t * raf : request animation frame function\n\t * caf : cancel animation frame function\n\t * transfrom : transform property key (with vendor), or null if not supported\n\t * oldIE : IE8 or below\n\t * }\n\t * \n\t */\n\tdetectFeatures: function() {\n\t\tif(framework.features) {\n\t\t\treturn framework.features;\n\t\t}\n\t\tvar helperEl = framework.createEl(),\n\t\t\thelperStyle = helperEl.style,\n\t\t\tvendor = '',\n\t\t\tfeatures = {};\n\n\t\t// IE8 and below\n\t\tfeatures.oldIE = document.all && !document.addEventListener;\n\n\t\tfeatures.touch = 'ontouchstart' in window;\n\n\t\tif(window.requestAnimationFrame) {\n\t\t\tfeatures.raf = window.requestAnimationFrame;\n\t\t\tfeatures.caf = window.cancelAnimationFrame;\n\t\t}\n\n\t\tfeatures.pointerEvent = !!(window.PointerEvent) || navigator.msPointerEnabled;\n\n\t\t// fix false-positive detection of old Android in new IE\n\t\t// (IE11 ua string contains \"Android 4.0\")\n\t\t\n\t\tif(!features.pointerEvent) { \n\n\t\t\tvar ua = navigator.userAgent;\n\n\t\t\t// Detect if device is iPhone or iPod and if it's older than iOS 8\n\t\t\t// http://stackoverflow.com/a/14223920\n\t\t\t// \n\t\t\t// This detection is made because of buggy top/bottom toolbars\n\t\t\t// that don't trigger window.resize event.\n\t\t\t// For more info refer to _isFixedPosition variable in core.js\n\n\t\t\tif (/iP(hone|od)/.test(navigator.platform)) {\n\t\t\t\tvar v = (navigator.appVersion).match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n\t\t\t\tif(v && v.length > 0) {\n\t\t\t\t\tv = parseInt(v[1], 10);\n\t\t\t\t\tif(v >= 1 && v < 8 ) {\n\t\t\t\t\t\tfeatures.isOldIOSPhone = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Detect old Android (before KitKat)\n\t\t\t// due to bugs related to position:fixed\n\t\t\t// http://stackoverflow.com/questions/7184573/pick-up-the-android-version-in-the-browser-by-javascript\n\t\t\t\n\t\t\tvar match = ua.match(/Android\\s([0-9\\.]*)/);\n\t\t\tvar androidversion = match ? match[1] : 0;\n\t\t\tandroidversion = parseFloat(androidversion);\n\t\t\tif(androidversion >= 1 ) {\n\t\t\t\tif(androidversion < 4.4) {\n\t\t\t\t\tfeatures.isOldAndroid = true; // for fixed position bug & performance\n\t\t\t\t}\n\t\t\t\tfeatures.androidVersion = androidversion; // for touchend bug\n\t\t\t}\t\n\t\t\tfeatures.isMobileOpera = /opera mini|opera mobi/i.test(ua);\n\n\t\t\t// p.s. yes, yes, UA sniffing is bad, propose your solution for above bugs.\n\t\t}\n\t\t\n\t\tvar styleChecks = ['transform', 'perspective', 'animationName'],\n\t\t\tvendors = ['', 'webkit','Moz','ms','O'],\n\t\t\tstyleCheckItem,\n\t\t\tstyleName;\n\n\t\tfor(var i = 0; i < 4; i++) {\n\t\t\tvendor = vendors[i];\n\n\t\t\tfor(var a = 0; a < 3; a++) {\n\t\t\t\tstyleCheckItem = styleChecks[a];\n\n\t\t\t\t// uppercase first letter of property name, if vendor is present\n\t\t\t\tstyleName = vendor + (vendor ? \n\t\t\t\t\t\t\t\t\t\tstyleCheckItem.charAt(0).toUpperCase() + styleCheckItem.slice(1) : \n\t\t\t\t\t\t\t\t\t\tstyleCheckItem);\n\t\t\t\n\t\t\t\tif(!features[styleCheckItem] && styleName in helperStyle ) {\n\t\t\t\t\tfeatures[styleCheckItem] = styleName;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(vendor && !features.raf) {\n\t\t\t\tvendor = vendor.toLowerCase();\n\t\t\t\tfeatures.raf = window[vendor+'RequestAnimationFrame'];\n\t\t\t\tif(features.raf) {\n\t\t\t\t\tfeatures.caf = window[vendor+'CancelAnimationFrame'] || \n\t\t\t\t\t\t\t\t\twindow[vendor+'CancelRequestAnimationFrame'];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\t\n\t\tif(!features.raf) {\n\t\t\tvar lastTime = 0;\n\t\t\tfeatures.raf = function(fn) {\n\t\t\t\tvar currTime = new Date().getTime();\n\t\t\t\tvar timeToCall = Math.max(0, 16 - (currTime - lastTime));\n\t\t\t\tvar id = window.setTimeout(function() { fn(currTime + timeToCall); }, timeToCall);\n\t\t\t\tlastTime = currTime + timeToCall;\n\t\t\t\treturn id;\n\t\t\t};\n\t\t\tfeatures.caf = function(id) { clearTimeout(id); };\n\t\t}\n\n\t\t// Detect SVG support\n\t\tfeatures.svg = !!document.createElementNS && \n\t\t\t\t\t\t!!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect;\n\n\t\tframework.features = features;\n\n\t\treturn features;\n\t}\n};\n\nframework.detectFeatures();\n\n// Override addEventListener for old versions of IE\nif(framework.features.oldIE) {\n\n\tframework.bind = function(target, type, listener, unbind) {\n\t\t\n\t\ttype = type.split(' ');\n\n\t\tvar methodName = (unbind ? 'detach' : 'attach') + 'Event',\n\t\t\tevName,\n\t\t\t_handleEv = function() {\n\t\t\t\tlistener.handleEvent.call(listener);\n\t\t\t};\n\n\t\tfor(var i = 0; i < type.length; i++) {\n\t\t\tevName = type[i];\n\t\t\tif(evName) {\n\n\t\t\t\tif(typeof listener === 'object' && listener.handleEvent) {\n\t\t\t\t\tif(!unbind) {\n\t\t\t\t\t\tlistener['oldIE' + evName] = _handleEv;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(!listener['oldIE' + evName]) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\ttarget[methodName]( 'on' + evName, listener['oldIE' + evName]);\n\t\t\t\t} else {\n\t\t\t\t\ttarget[methodName]( 'on' + evName, listener);\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t};\n\t\n}\n\n/*>>framework-bridge*/\n\n/*>>core*/\n//function(template, UiClass, items, options)\n\nvar self = this;\n\n/**\n * Static vars, don't change unless you know what you're doing.\n */\nvar DOUBLE_TAP_RADIUS = 25, \n\tNUM_HOLDERS = 3;\n\n/**\n * Options\n */\nvar _options = {\n\tallowPanToNext:true,\n\tspacing: 0.12,\n\tbgOpacity: 1,\n\tmouseUsed: false,\n\tloop: true,\n\tpinchToClose: true,\n\tcloseOnScroll: true,\n\tcloseOnVerticalDrag: true,\n\tverticalDragRange: 0.75,\n\thideAnimationDuration: 333,\n\tshowAnimationDuration: 333,\n\tshowHideOpacity: false,\n\tfocus: true,\n\tescKey: true,\n\tarrowKeys: true,\n\tmainScrollEndFriction: 0.35,\n\tpanEndFriction: 0.35,\n\tisClickableElement: function(el) {\n return el.tagName === 'A';\n },\n getDoubleTapZoom: function(isMouseClick, item) {\n \tif(isMouseClick) {\n \t\treturn 1;\n \t} else {\n \t\treturn item.initialZoomLevel < 0.7 ? 1 : 1.33;\n \t}\n },\n maxSpreadZoom: 1.33,\n\tmodal: true,\n\n\t// not fully implemented yet\n\tscaleMode: 'fit' // TODO\n};\nframework.extend(_options, options);\n\n\n/**\n * Private helper variables & functions\n */\n\nvar _getEmptyPoint = function() { \n\t\treturn {x:0,y:0}; \n\t};\n\nvar _isOpen,\n\t_isDestroying,\n\t_closedByScroll,\n\t_currentItemIndex,\n\t_containerStyle,\n\t_containerShiftIndex,\n\t_currPanDist = _getEmptyPoint(),\n\t_startPanOffset = _getEmptyPoint(),\n\t_panOffset = _getEmptyPoint(),\n\t_upMoveEvents, // drag move, drag end & drag cancel events array\n\t_downEvents, // drag start events array\n\t_globalEventHandlers,\n\t_viewportSize = {},\n\t_currZoomLevel,\n\t_startZoomLevel,\n\t_translatePrefix,\n\t_translateSufix,\n\t_updateSizeInterval,\n\t_itemsNeedUpdate,\n\t_currPositionIndex = 0,\n\t_offset = {},\n\t_slideSize = _getEmptyPoint(), // size of slide area, including spacing\n\t_itemHolders,\n\t_prevItemIndex,\n\t_indexDiff = 0, // difference of indexes since last content update\n\t_dragStartEvent,\n\t_dragMoveEvent,\n\t_dragEndEvent,\n\t_dragCancelEvent,\n\t_transformKey,\n\t_pointerEventEnabled,\n\t_isFixedPosition = true,\n\t_likelyTouchDevice,\n\t_modules = [],\n\t_requestAF,\n\t_cancelAF,\n\t_initalClassName,\n\t_initalWindowScrollY,\n\t_oldIE,\n\t_currentWindowScrollY,\n\t_features,\n\t_windowVisibleSize = {},\n\t_renderMaxResolution = false,\n\t_orientationChangeTimeout,\n\n\n\t// Registers PhotoSWipe module (History, Controller ...)\n\t_registerModule = function(name, module) {\n\t\tframework.extend(self, module.publicMethods);\n\t\t_modules.push(name);\n\t},\n\n\t_getLoopedId = function(index) {\n\t\tvar numSlides = _getNumItems();\n\t\tif(index > numSlides - 1) {\n\t\t\treturn index - numSlides;\n\t\t} else if(index < 0) {\n\t\t\treturn numSlides + index;\n\t\t}\n\t\treturn index;\n\t},\n\t\n\t// Micro bind/trigger\n\t_listeners = {},\n\t_listen = function(name, fn) {\n\t\tif(!_listeners[name]) {\n\t\t\t_listeners[name] = [];\n\t\t}\n\t\treturn _listeners[name].push(fn);\n\t},\n\t_shout = function(name) {\n\t\tvar listeners = _listeners[name];\n\n\t\tif(listeners) {\n\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\targs.shift();\n\n\t\t\tfor(var i = 0; i < listeners.length; i++) {\n\t\t\t\tlisteners[i].apply(self, args);\n\t\t\t}\n\t\t}\n\t},\n\n\t_getCurrentTime = function() {\n\t\treturn new Date().getTime();\n\t},\n\t_applyBgOpacity = function(opacity) {\n\t\t_bgOpacity = opacity;\n\t\tself.bg.style.opacity = opacity * _options.bgOpacity;\n\t},\n\n\t_applyZoomTransform = function(styleObj,x,y,zoom,item) {\n\t\tif(!_renderMaxResolution || (item && item !== self.currItem) ) {\n\t\t\tzoom = zoom / (item ? item.fitRatio : self.currItem.fitRatio);\t\n\t\t}\n\t\t\t\n\t\tstyleObj[_transformKey] = _translatePrefix + x + 'px, ' + y + 'px' + _translateSufix + ' scale(' + zoom + ')';\n\t},\n\t_applyCurrentZoomPan = function( allowRenderResolution ) {\n\t\tif(_currZoomElementStyle) {\n\n\t\t\tif(allowRenderResolution) {\n\t\t\t\tif(_currZoomLevel > self.currItem.fitRatio) {\n\t\t\t\t\tif(!_renderMaxResolution) {\n\t\t\t\t\t\t_setImageSize(self.currItem, false, true);\n\t\t\t\t\t\t_renderMaxResolution = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(_renderMaxResolution) {\n\t\t\t\t\t\t_setImageSize(self.currItem);\n\t\t\t\t\t\t_renderMaxResolution = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\n\t\t\t_applyZoomTransform(_currZoomElementStyle, _panOffset.x, _panOffset.y, _currZoomLevel);\n\t\t}\n\t},\n\t_applyZoomPanToItem = function(item) {\n\t\tif(item.container) {\n\n\t\t\t_applyZoomTransform(item.container.style, \n\t\t\t\t\t\t\t\titem.initialPosition.x, \n\t\t\t\t\t\t\t\titem.initialPosition.y, \n\t\t\t\t\t\t\t\titem.initialZoomLevel,\n\t\t\t\t\t\t\t\titem);\n\t\t}\n\t},\n\t_setTranslateX = function(x, elStyle) {\n\t\telStyle[_transformKey] = _translatePrefix + x + 'px, 0px' + _translateSufix;\n\t},\n\t_moveMainScroll = function(x, dragging) {\n\n\t\tif(!_options.loop && dragging) {\n\t\t\tvar newSlideIndexOffset = _currentItemIndex + (_slideSize.x * _currPositionIndex - x) / _slideSize.x,\n\t\t\t\tdelta = Math.round(x - _mainScrollPos.x);\n\n\t\t\tif( (newSlideIndexOffset < 0 && delta > 0) || \n\t\t\t\t(newSlideIndexOffset >= _getNumItems() - 1 && delta < 0) ) {\n\t\t\t\tx = _mainScrollPos.x + delta * _options.mainScrollEndFriction;\n\t\t\t} \n\t\t}\n\t\t\n\t\t_mainScrollPos.x = x;\n\t\t_setTranslateX(x, _containerStyle);\n\t},\n\t_calculatePanOffset = function(axis, zoomLevel) {\n\t\tvar m = _midZoomPoint[axis] - _offset[axis];\n\t\treturn _startPanOffset[axis] + _currPanDist[axis] + m - m * ( zoomLevel / _startZoomLevel );\n\t},\n\t\n\t_equalizePoints = function(p1, p2) {\n\t\tp1.x = p2.x;\n\t\tp1.y = p2.y;\n\t\tif(p2.id) {\n\t\t\tp1.id = p2.id;\n\t\t}\n\t},\n\t_roundPoint = function(p) {\n\t\tp.x = Math.round(p.x);\n\t\tp.y = Math.round(p.y);\n\t},\n\n\t_mouseMoveTimeout = null,\n\t_onFirstMouseMove = function() {\n\t\t// Wait until mouse move event is fired at least twice during 100ms\n\t\t// We do this, because some mobile browsers trigger it on touchstart\n\t\tif(_mouseMoveTimeout ) { \n\t\t\tframework.unbind(document, 'mousemove', _onFirstMouseMove);\n\t\t\tframework.addClass(template, 'pswp--has_mouse');\n\t\t\t_options.mouseUsed = true;\n\t\t\t_shout('mouseUsed');\n\t\t}\n\t\t_mouseMoveTimeout = setTimeout(function() {\n\t\t\t_mouseMoveTimeout = null;\n\t\t}, 100);\n\t},\n\n\t_bindEvents = function() {\n\t\tframework.bind(document, 'keydown', self);\n\n\t\tif(_features.transform) {\n\t\t\t// don't bind click event in browsers that don't support transform (mostly IE8)\n\t\t\tframework.bind(self.scrollWrap, 'click', self);\n\t\t}\n\t\t\n\n\t\tif(!_options.mouseUsed) {\n\t\t\tframework.bind(document, 'mousemove', _onFirstMouseMove);\n\t\t}\n\n\t\tframework.bind(window, 'resize scroll orientationchange', self);\n\n\t\t_shout('bindEvents');\n\t},\n\n\t_unbindEvents = function() {\n\t\tframework.unbind(window, 'resize scroll orientationchange', self);\n\t\tframework.unbind(window, 'scroll', _globalEventHandlers.scroll);\n\t\tframework.unbind(document, 'keydown', self);\n\t\tframework.unbind(document, 'mousemove', _onFirstMouseMove);\n\n\t\tif(_features.transform) {\n\t\t\tframework.unbind(self.scrollWrap, 'click', self);\n\t\t}\n\n\t\tif(_isDragging) {\n\t\t\tframework.unbind(window, _upMoveEvents, self);\n\t\t}\n\n\t\tclearTimeout(_orientationChangeTimeout);\n\n\t\t_shout('unbindEvents');\n\t},\n\t\n\t_calculatePanBounds = function(zoomLevel, update) {\n\t\tvar bounds = _calculateItemSize( self.currItem, _viewportSize, zoomLevel );\n\t\tif(update) {\n\t\t\t_currPanBounds = bounds;\n\t\t}\n\t\treturn bounds;\n\t},\n\t\n\t_getMinZoomLevel = function(item) {\n\t\tif(!item) {\n\t\t\titem = self.currItem;\n\t\t}\n\t\treturn item.initialZoomLevel;\n\t},\n\t_getMaxZoomLevel = function(item) {\n\t\tif(!item) {\n\t\t\titem = self.currItem;\n\t\t}\n\t\treturn item.w > 0 ? _options.maxSpreadZoom : 1;\n\t},\n\n\t// Return true if offset is out of the bounds\n\t_modifyDestPanOffset = function(axis, destPanBounds, destPanOffset, destZoomLevel) {\n\t\tif(destZoomLevel === self.currItem.initialZoomLevel) {\n\t\t\tdestPanOffset[axis] = self.currItem.initialPosition[axis];\n\t\t\treturn true;\n\t\t} else {\n\t\t\tdestPanOffset[axis] = _calculatePanOffset(axis, destZoomLevel); \n\n\t\t\tif(destPanOffset[axis] > destPanBounds.min[axis]) {\n\t\t\t\tdestPanOffset[axis] = destPanBounds.min[axis];\n\t\t\t\treturn true;\n\t\t\t} else if(destPanOffset[axis] < destPanBounds.max[axis] ) {\n\t\t\t\tdestPanOffset[axis] = destPanBounds.max[axis];\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\n\t_setupTransforms = function() {\n\n\t\tif(_transformKey) {\n\t\t\t// setup 3d transforms\n\t\t\tvar allow3dTransform = _features.perspective && !_likelyTouchDevice;\n\t\t\t_translatePrefix = 'translate' + (allow3dTransform ? '3d(' : '(');\n\t\t\t_translateSufix = _features.perspective ? ', 0px)' : ')';\t\n\t\t\treturn;\n\t\t}\n\n\t\t// Override zoom/pan/move functions in case old browser is used (most likely IE)\n\t\t// (so they use left/top/width/height, instead of CSS transform)\n\t\n\t\t_transformKey = 'left';\n\t\tframework.addClass(template, 'pswp--ie');\n\n\t\t_setTranslateX = function(x, elStyle) {\n\t\t\telStyle.left = x + 'px';\n\t\t};\n\t\t_applyZoomPanToItem = function(item) {\n\n\t\t\tvar zoomRatio = item.fitRatio > 1 ? 1 : item.fitRatio,\n\t\t\t\ts = item.container.style,\n\t\t\t\tw = zoomRatio * item.w,\n\t\t\t\th = zoomRatio * item.h;\n\n\t\t\ts.width = w + 'px';\n\t\t\ts.height = h + 'px';\n\t\t\ts.left = item.initialPosition.x + 'px';\n\t\t\ts.top = item.initialPosition.y + 'px';\n\n\t\t};\n\t\t_applyCurrentZoomPan = function() {\n\t\t\tif(_currZoomElementStyle) {\n\n\t\t\t\tvar s = _currZoomElementStyle,\n\t\t\t\t\titem = self.currItem,\n\t\t\t\t\tzoomRatio = item.fitRatio > 1 ? 1 : item.fitRatio,\n\t\t\t\t\tw = zoomRatio * item.w,\n\t\t\t\t\th = zoomRatio * item.h;\n\n\t\t\t\ts.width = w + 'px';\n\t\t\t\ts.height = h + 'px';\n\n\n\t\t\t\ts.left = _panOffset.x + 'px';\n\t\t\t\ts.top = _panOffset.y + 'px';\n\t\t\t}\n\t\t\t\n\t\t};\n\t},\n\n\t_onKeyDown = function(e) {\n\t\tvar keydownAction = '';\n\t\tif(_options.escKey && e.keyCode === 27) { \n\t\t\tkeydownAction = 'close';\n\t\t} else if(_options.arrowKeys) {\n\t\t\tif(e.keyCode === 37) {\n\t\t\t\tkeydownAction = 'prev';\n\t\t\t} else if(e.keyCode === 39) { \n\t\t\t\tkeydownAction = 'next';\n\t\t\t}\n\t\t}\n\n\t\tif(keydownAction) {\n\t\t\t// don't do anything if special key pressed to prevent from overriding default browser actions\n\t\t\t// e.g. in Chrome on Mac cmd+arrow-left returns to previous page\n\t\t\tif( !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey ) {\n\t\t\t\tif(e.preventDefault) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t} else {\n\t\t\t\t\te.returnValue = false;\n\t\t\t\t} \n\t\t\t\tself[keydownAction]();\n\t\t\t}\n\t\t}\n\t},\n\n\t_onGlobalClick = function(e) {\n\t\tif(!e) {\n\t\t\treturn;\n\t\t}\n\n\t\t// don't allow click event to pass through when triggering after drag or some other gesture\n\t\tif(_moved || _zoomStarted || _mainScrollAnimating || _verticalDragInitiated) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\n\t_updatePageScrollOffset = function() {\n\t\tself.setScrollOffset(0, framework.getScrollY());\t\t\n\t};\n\t\n\n\n\t\n\n\n\n// Micro animation engine\nvar _animations = {},\n\t_numAnimations = 0,\n\t_stopAnimation = function(name) {\n\t\tif(_animations[name]) {\n\t\t\tif(_animations[name].raf) {\n\t\t\t\t_cancelAF( _animations[name].raf );\n\t\t\t}\n\t\t\t_numAnimations--;\n\t\t\tdelete _animations[name];\n\t\t}\n\t},\n\t_registerStartAnimation = function(name) {\n\t\tif(_animations[name]) {\n\t\t\t_stopAnimation(name);\n\t\t}\n\t\tif(!_animations[name]) {\n\t\t\t_numAnimations++;\n\t\t\t_animations[name] = {};\n\t\t}\n\t},\n\t_stopAllAnimations = function() {\n\t\tfor (var prop in _animations) {\n\n\t\t\tif( _animations.hasOwnProperty( prop ) ) {\n\t\t\t\t_stopAnimation(prop);\n\t\t\t} \n\t\t\t\n\t\t}\n\t},\n\t_animateProp = function(name, b, endProp, d, easingFn, onUpdate, onComplete) {\n\t\tvar startAnimTime = _getCurrentTime(), t;\n\t\t_registerStartAnimation(name);\n\n\t\tvar animloop = function(){\n\t\t\tif ( _animations[name] ) {\n\t\t\t\t\n\t\t\t\tt = _getCurrentTime() - startAnimTime; // time diff\n\t\t\t\t//b - beginning (start prop)\n\t\t\t\t//d - anim duration\n\n\t\t\t\tif ( t >= d ) {\n\t\t\t\t\t_stopAnimation(name);\n\t\t\t\t\tonUpdate(endProp);\n\t\t\t\t\tif(onComplete) {\n\t\t\t\t\t\tonComplete();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonUpdate( (endProp - b) * easingFn(t/d) + b );\n\n\t\t\t\t_animations[name].raf = _requestAF(animloop);\n\t\t\t}\n\t\t};\n\t\tanimloop();\n\t};\n\t\n\n\nvar publicMethods = {\n\n\t// make a few local variables and functions public\n\tshout: _shout,\n\tlisten: _listen,\n\tviewportSize: _viewportSize,\n\toptions: _options,\n\n\tisMainScrollAnimating: function() {\n\t\treturn _mainScrollAnimating;\n\t},\n\tgetZoomLevel: function() {\n\t\treturn _currZoomLevel;\n\t},\n\tgetCurrentIndex: function() {\n\t\treturn _currentItemIndex;\n\t},\n\tisDragging: function() {\n\t\treturn _isDragging;\n\t},\t\n\tisZooming: function() {\n\t\treturn _isZooming;\n\t},\n\tsetScrollOffset: function(x,y) {\n\t\t_offset.x = x;\n\t\t_currentWindowScrollY = _offset.y = y;\n\t\t_shout('updateScrollOffset', _offset);\n\t},\n\tapplyZoomPan: function(zoomLevel,panX,panY,allowRenderResolution) {\n\t\t_panOffset.x = panX;\n\t\t_panOffset.y = panY;\n\t\t_currZoomLevel = zoomLevel;\n\t\t_applyCurrentZoomPan( allowRenderResolution );\n\t},\n\n\tinit: function() {\n\n\t\tif(_isOpen || _isDestroying) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar i;\n\n\t\tself.framework = framework; // basic functionality\n\t\tself.template = template; // root DOM element of PhotoSwipe\n\t\tself.bg = framework.getChildByClass(template, 'pswp__bg');\n\n\t\t_initalClassName = template.className;\n\t\t_isOpen = true;\n\t\t\t\t\n\t\t_features = framework.detectFeatures();\n\t\t_requestAF = _features.raf;\n\t\t_cancelAF = _features.caf;\n\t\t_transformKey = _features.transform;\n\t\t_oldIE = _features.oldIE;\n\t\t\n\t\tself.scrollWrap = framework.getChildByClass(template, 'pswp__scroll-wrap');\n\t\tself.container = framework.getChildByClass(self.scrollWrap, 'pswp__container');\n\n\t\t_containerStyle = self.container.style; // for fast access\n\n\t\t// Objects that hold slides (there are only 3 in DOM)\n\t\tself.itemHolders = _itemHolders = [\n\t\t\t{el:self.container.children[0] , wrap:0, index: -1},\n\t\t\t{el:self.container.children[1] , wrap:0, index: -1},\n\t\t\t{el:self.container.children[2] , wrap:0, index: -1}\n\t\t];\n\n\t\t// hide nearby item holders until initial zoom animation finishes (to avoid extra Paints)\n\t\t_itemHolders[0].el.style.display = _itemHolders[2].el.style.display = 'none';\n\n\t\t_setupTransforms();\n\n\t\t// Setup global events\n\t\t_globalEventHandlers = {\n\t\t\tresize: self.updateSize,\n\n\t\t\t// Fixes: iOS 10.3 resize event\n\t\t\t// does not update scrollWrap.clientWidth instantly after resize\n\t\t\t// https://github.com/dimsemenov/PhotoSwipe/issues/1315\n\t\t\torientationchange: function() {\n\t\t\t\tclearTimeout(_orientationChangeTimeout);\n\t\t\t\t_orientationChangeTimeout = setTimeout(function() {\n\t\t\t\t\tif(_viewportSize.x !== self.scrollWrap.clientWidth) {\n\t\t\t\t\t\tself.updateSize();\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\t\t\t},\n\t\t\tscroll: _updatePageScrollOffset,\n\t\t\tkeydown: _onKeyDown,\n\t\t\tclick: _onGlobalClick\n\t\t};\n\n\t\t// disable show/hide effects on old browsers that don't support CSS animations or transforms, \n\t\t// old IOS, Android and Opera mobile. Blackberry seems to work fine, even older models.\n\t\tvar oldPhone = _features.isOldIOSPhone || _features.isOldAndroid || _features.isMobileOpera;\n\t\tif(!_features.animationName || !_features.transform || oldPhone) {\n\t\t\t_options.showAnimationDuration = _options.hideAnimationDuration = 0;\n\t\t}\n\n\t\t// init modules\n\t\tfor(i = 0; i < _modules.length; i++) {\n\t\t\tself['init' + _modules[i]]();\n\t\t}\n\t\t\n\t\t// init\n\t\tif(UiClass) {\n\t\t\tvar ui = self.ui = new UiClass(self, framework);\n\t\t\tui.init();\n\t\t}\n\n\t\t_shout('firstUpdate');\n\t\t_currentItemIndex = _currentItemIndex || _options.index || 0;\n\t\t// validate index\n\t\tif( isNaN(_currentItemIndex) || _currentItemIndex < 0 || _currentItemIndex >= _getNumItems() ) {\n\t\t\t_currentItemIndex = 0;\n\t\t}\n\t\tself.currItem = _getItemAt( _currentItemIndex );\n\n\t\t\n\t\tif(_features.isOldIOSPhone || _features.isOldAndroid) {\n\t\t\t_isFixedPosition = false;\n\t\t}\n\t\t\n\t\ttemplate.setAttribute('aria-hidden', 'false');\n\t\tif(_options.modal) {\n\t\t\tif(!_isFixedPosition) {\n\t\t\t\ttemplate.style.position = 'absolute';\n\t\t\t\ttemplate.style.top = framework.getScrollY() + 'px';\n\t\t\t} else {\n\t\t\t\ttemplate.style.position = 'fixed';\n\t\t\t}\n\t\t}\n\n\t\tif(_currentWindowScrollY === undefined) {\n\t\t\t_shout('initialLayout');\n\t\t\t_currentWindowScrollY = _initalWindowScrollY = framework.getScrollY();\n\t\t}\n\t\t\n\t\t// add classes to root element of PhotoSwipe\n\t\tvar rootClasses = 'pswp--open ';\n\t\tif(_options.mainClass) {\n\t\t\trootClasses += _options.mainClass + ' ';\n\t\t}\n\t\tif(_options.showHideOpacity) {\n\t\t\trootClasses += 'pswp--animate_opacity ';\n\t\t}\n\t\trootClasses += _likelyTouchDevice ? 'pswp--touch' : 'pswp--notouch';\n\t\trootClasses += _features.animationName ? ' pswp--css_animation' : '';\n\t\trootClasses += _features.svg ? ' pswp--svg' : '';\n\t\tframework.addClass(template, rootClasses);\n\n\t\tself.updateSize();\n\n\t\t// initial update\n\t\t_containerShiftIndex = -1;\n\t\t_indexDiff = null;\n\t\tfor(i = 0; i < NUM_HOLDERS; i++) {\n\t\t\t_setTranslateX( (i+_containerShiftIndex) * _slideSize.x, _itemHolders[i].el.style);\n\t\t}\n\n\t\tif(!_oldIE) {\n\t\t\tframework.bind(self.scrollWrap, _downEvents, self); // no dragging for old IE\n\t\t}\t\n\n\t\t_listen('initialZoomInEnd', function() {\n\t\t\tself.setContent(_itemHolders[0], _currentItemIndex-1);\n\t\t\tself.setContent(_itemHolders[2], _currentItemIndex+1);\n\n\t\t\t_itemHolders[0].el.style.display = _itemHolders[2].el.style.display = 'block';\n\n\t\t\tif(_options.focus) {\n\t\t\t\t// focus causes layout, \n\t\t\t\t// which causes lag during the animation, \n\t\t\t\t// that's why we delay it untill the initial zoom transition ends\n\t\t\t\ttemplate.focus();\n\t\t\t}\n\t\t\t \n\n\t\t\t_bindEvents();\n\t\t});\n\n\t\t// set content for center slide (first time)\n\t\tself.setContent(_itemHolders[1], _currentItemIndex);\n\t\t\n\t\tself.updateCurrItem();\n\n\t\t_shout('afterInit');\n\n\t\tif(!_isFixedPosition) {\n\n\t\t\t// On all versions of iOS lower than 8.0, we check size of viewport every second.\n\t\t\t// \n\t\t\t// This is done to detect when Safari top & bottom bars appear, \n\t\t\t// as this action doesn't trigger any events (like resize). \n\t\t\t// \n\t\t\t// On iOS8 they fixed this.\n\t\t\t// \n\t\t\t// 10 Nov 2014: iOS 7 usage ~40%. iOS 8 usage 56%.\n\t\t\t\n\t\t\t_updateSizeInterval = setInterval(function() {\n\t\t\t\tif(!_numAnimations && !_isDragging && !_isZooming && (_currZoomLevel === self.currItem.initialZoomLevel) ) {\n\t\t\t\t\tself.updateSize();\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\n\t\tframework.addClass(template, 'pswp--visible');\n\t},\n\n\t// Close the gallery, then destroy it\n\tclose: function() {\n\t\tif(!_isOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\t_isOpen = false;\n\t\t_isDestroying = true;\n\t\t_shout('close');\n\t\t_unbindEvents();\n\n\t\t_showOrHide(self.currItem, null, true, self.destroy);\n\t},\n\n\t// destroys the gallery (unbinds events, cleans up intervals and timeouts to avoid memory leaks)\n\tdestroy: function() {\n\t\t_shout('destroy');\n\n\t\tif(_showOrHideTimeout) {\n\t\t\tclearTimeout(_showOrHideTimeout);\n\t\t}\n\t\t\n\t\ttemplate.setAttribute('aria-hidden', 'true');\n\t\ttemplate.className = _initalClassName;\n\n\t\tif(_updateSizeInterval) {\n\t\t\tclearInterval(_updateSizeInterval);\n\t\t}\n\n\t\tframework.unbind(self.scrollWrap, _downEvents, self);\n\n\t\t// we unbind scroll event at the end, as closing animation may depend on it\n\t\tframework.unbind(window, 'scroll', self);\n\n\t\t_stopDragUpdateLoop();\n\n\t\t_stopAllAnimations();\n\n\t\t_listeners = null;\n\t},\n\n\t/**\n\t * Pan image to position\n\t * @param {Number} x \n\t * @param {Number} y \n\t * @param {Boolean} force Will ignore bounds if set to true.\n\t */\n\tpanTo: function(x,y,force) {\n\t\tif(!force) {\n\t\t\tif(x > _currPanBounds.min.x) {\n\t\t\t\tx = _currPanBounds.min.x;\n\t\t\t} else if(x < _currPanBounds.max.x) {\n\t\t\t\tx = _currPanBounds.max.x;\n\t\t\t}\n\n\t\t\tif(y > _currPanBounds.min.y) {\n\t\t\t\ty = _currPanBounds.min.y;\n\t\t\t} else if(y < _currPanBounds.max.y) {\n\t\t\t\ty = _currPanBounds.max.y;\n\t\t\t}\n\t\t}\n\t\t\n\t\t_panOffset.x = x;\n\t\t_panOffset.y = y;\n\t\t_applyCurrentZoomPan();\n\t},\n\t\n\thandleEvent: function (e) {\n\t\te = e || window.event;\n\t\tif(_globalEventHandlers[e.type]) {\n\t\t\t_globalEventHandlers[e.type](e);\n\t\t}\n\t},\n\n\n\tgoTo: function(index) {\n\n\t\tindex = _getLoopedId(index);\n\n\t\tvar diff = index - _currentItemIndex;\n\t\t_indexDiff = diff;\n\n\t\t_currentItemIndex = index;\n\t\tself.currItem = _getItemAt( _currentItemIndex );\n\t\t_currPositionIndex -= diff;\n\t\t\n\t\t_moveMainScroll(_slideSize.x * _currPositionIndex);\n\t\t\n\n\t\t_stopAllAnimations();\n\t\t_mainScrollAnimating = false;\n\n\t\tself.updateCurrItem();\n\t},\n\tnext: function() {\n\t\tself.goTo( _currentItemIndex + 1);\n\t},\n\tprev: function() {\n\t\tself.goTo( _currentItemIndex - 1);\n\t},\n\n\t// update current zoom/pan objects\n\tupdateCurrZoomItem: function(emulateSetContent) {\n\t\tif(emulateSetContent) {\n\t\t\t_shout('beforeChange', 0);\n\t\t}\n\n\t\t// itemHolder[1] is middle (current) item\n\t\tif(_itemHolders[1].el.children.length) {\n\t\t\tvar zoomElement = _itemHolders[1].el.children[0];\n\t\t\tif( framework.hasClass(zoomElement, 'pswp__zoom-wrap') ) {\n\t\t\t\t_currZoomElementStyle = zoomElement.style;\n\t\t\t} else {\n\t\t\t\t_currZoomElementStyle = null;\n\t\t\t}\n\t\t} else {\n\t\t\t_currZoomElementStyle = null;\n\t\t}\n\t\t\n\t\t_currPanBounds = self.currItem.bounds;\t\n\t\t_startZoomLevel = _currZoomLevel = self.currItem.initialZoomLevel;\n\n\t\t_panOffset.x = _currPanBounds.center.x;\n\t\t_panOffset.y = _currPanBounds.center.y;\n\n\t\tif(emulateSetContent) {\n\t\t\t_shout('afterChange');\n\t\t}\n\t},\n\n\n\tinvalidateCurrItems: function() {\n\t\t_itemsNeedUpdate = true;\n\t\tfor(var i = 0; i < NUM_HOLDERS; i++) {\n\t\t\tif( _itemHolders[i].item ) {\n\t\t\t\t_itemHolders[i].item.needsUpdate = true;\n\t\t\t}\n\t\t}\n\t},\n\n\tupdateCurrItem: function(beforeAnimation) {\n\n\t\tif(_indexDiff === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar diffAbs = Math.abs(_indexDiff),\n\t\t\ttempHolder;\n\n\t\tif(beforeAnimation && diffAbs < 2) {\n\t\t\treturn;\n\t\t}\n\n\n\t\tself.currItem = _getItemAt( _currentItemIndex );\n\t\t_renderMaxResolution = false;\n\t\t\n\t\t_shout('beforeChange', _indexDiff);\n\n\t\tif(diffAbs >= NUM_HOLDERS) {\n\t\t\t_containerShiftIndex += _indexDiff + (_indexDiff > 0 ? -NUM_HOLDERS : NUM_HOLDERS);\n\t\t\tdiffAbs = NUM_HOLDERS;\n\t\t}\n\t\tfor(var i = 0; i < diffAbs; i++) {\n\t\t\tif(_indexDiff > 0) {\n\t\t\t\ttempHolder = _itemHolders.shift();\n\t\t\t\t_itemHolders[NUM_HOLDERS-1] = tempHolder; // move first to last\n\n\t\t\t\t_containerShiftIndex++;\n\t\t\t\t_setTranslateX( (_containerShiftIndex+2) * _slideSize.x, tempHolder.el.style);\n\t\t\t\tself.setContent(tempHolder, _currentItemIndex - diffAbs + i + 1 + 1);\n\t\t\t} else {\n\t\t\t\ttempHolder = _itemHolders.pop();\n\t\t\t\t_itemHolders.unshift( tempHolder ); // move last to first\n\n\t\t\t\t_containerShiftIndex--;\n\t\t\t\t_setTranslateX( _containerShiftIndex * _slideSize.x, tempHolder.el.style);\n\t\t\t\tself.setContent(tempHolder, _currentItemIndex + diffAbs - i - 1 - 1);\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t// reset zoom/pan on previous item\n\t\tif(_currZoomElementStyle && Math.abs(_indexDiff) === 1) {\n\n\t\t\tvar prevItem = _getItemAt(_prevItemIndex);\n\t\t\tif(prevItem.initialZoomLevel !== _currZoomLevel) {\n\t\t\t\t_calculateItemSize(prevItem , _viewportSize );\n\t\t\t\t_setImageSize(prevItem);\n\t\t\t\t_applyZoomPanToItem( prevItem ); \t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\t// reset diff after update\n\t\t_indexDiff = 0;\n\n\t\tself.updateCurrZoomItem();\n\n\t\t_prevItemIndex = _currentItemIndex;\n\n\t\t_shout('afterChange');\n\t\t\n\t},\n\n\n\n\tupdateSize: function(force) {\n\t\t\n\t\tif(!_isFixedPosition && _options.modal) {\n\t\t\tvar windowScrollY = framework.getScrollY();\n\t\t\tif(_currentWindowScrollY !== windowScrollY) {\n\t\t\t\ttemplate.style.top = windowScrollY + 'px';\n\t\t\t\t_currentWindowScrollY = windowScrollY;\n\t\t\t}\n\t\t\tif(!force && _windowVisibleSize.x === window.innerWidth && _windowVisibleSize.y === window.innerHeight) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t_windowVisibleSize.x = window.innerWidth;\n\t\t\t_windowVisibleSize.y = window.innerHeight;\n\n\t\t\t//template.style.width = _windowVisibleSize.x + 'px';\n\t\t\ttemplate.style.height = _windowVisibleSize.y + 'px';\n\t\t}\n\n\n\n\t\t_viewportSize.x = self.scrollWrap.clientWidth;\n\t\t_viewportSize.y = self.scrollWrap.clientHeight;\n\n\t\t_updatePageScrollOffset();\n\n\t\t_slideSize.x = _viewportSize.x + Math.round(_viewportSize.x * _options.spacing);\n\t\t_slideSize.y = _viewportSize.y;\n\n\t\t_moveMainScroll(_slideSize.x * _currPositionIndex);\n\n\t\t_shout('beforeResize'); // even may be used for example to switch image sources\n\n\n\t\t// don't re-calculate size on inital size update\n\t\tif(_containerShiftIndex !== undefined) {\n\n\t\t\tvar holder,\n\t\t\t\titem,\n\t\t\t\thIndex;\n\n\t\t\tfor(var i = 0; i < NUM_HOLDERS; i++) {\n\t\t\t\tholder = _itemHolders[i];\n\t\t\t\t_setTranslateX( (i+_containerShiftIndex) * _slideSize.x, holder.el.style);\n\n\t\t\t\thIndex = _currentItemIndex+i-1;\n\n\t\t\t\tif(_options.loop && _getNumItems() > 2) {\n\t\t\t\t\thIndex = _getLoopedId(hIndex);\n\t\t\t\t}\n\n\t\t\t\t// update zoom level on items and refresh source (if needsUpdate)\n\t\t\t\titem = _getItemAt( hIndex );\n\n\t\t\t\t// re-render gallery item if `needsUpdate`,\n\t\t\t\t// or doesn't have `bounds` (entirely new slide object)\n\t\t\t\tif( item && (_itemsNeedUpdate || item.needsUpdate || !item.bounds) ) {\n\n\t\t\t\t\tself.cleanSlide( item );\n\t\t\t\t\t\n\t\t\t\t\tself.setContent( holder, hIndex );\n\n\t\t\t\t\t// if \"center\" slide\n\t\t\t\t\tif(i === 1) {\n\t\t\t\t\t\tself.currItem = item;\n\t\t\t\t\t\tself.updateCurrZoomItem(true);\n\t\t\t\t\t}\n\n\t\t\t\t\titem.needsUpdate = false;\n\n\t\t\t\t} else if(holder.index === -1 && hIndex >= 0) {\n\t\t\t\t\t// add content first time\n\t\t\t\t\tself.setContent( holder, hIndex );\n\t\t\t\t}\n\t\t\t\tif(item && item.container) {\n\t\t\t\t\t_calculateItemSize(item, _viewportSize);\n\t\t\t\t\t_setImageSize(item);\n\t\t\t\t\t_applyZoomPanToItem( item );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t_itemsNeedUpdate = false;\n\t\t}\t\n\n\t\t_startZoomLevel = _currZoomLevel = self.currItem.initialZoomLevel;\n\t\t_currPanBounds = self.currItem.bounds;\n\n\t\tif(_currPanBounds) {\n\t\t\t_panOffset.x = _currPanBounds.center.x;\n\t\t\t_panOffset.y = _currPanBounds.center.y;\n\t\t\t_applyCurrentZoomPan( true );\n\t\t}\n\t\t\n\t\t_shout('resize');\n\t},\n\t\n\t// Zoom current item to\n\tzoomTo: function(destZoomLevel, centerPoint, speed, easingFn, updateFn) {\n\t\t/*\n\t\t\tif(destZoomLevel === 'fit') {\n\t\t\t\tdestZoomLevel = self.currItem.fitRatio;\n\t\t\t} else if(destZoomLevel === 'fill') {\n\t\t\t\tdestZoomLevel = self.currItem.fillRatio;\n\t\t\t}\n\t\t*/\n\n\t\tif(centerPoint) {\n\t\t\t_startZoomLevel = _currZoomLevel;\n\t\t\t_midZoomPoint.x = Math.abs(centerPoint.x) - _panOffset.x ;\n\t\t\t_midZoomPoint.y = Math.abs(centerPoint.y) - _panOffset.y ;\n\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\t\t}\n\n\t\tvar destPanBounds = _calculatePanBounds(destZoomLevel, false),\n\t\t\tdestPanOffset = {};\n\n\t\t_modifyDestPanOffset('x', destPanBounds, destPanOffset, destZoomLevel);\n\t\t_modifyDestPanOffset('y', destPanBounds, destPanOffset, destZoomLevel);\n\n\t\tvar initialZoomLevel = _currZoomLevel;\n\t\tvar initialPanOffset = {\n\t\t\tx: _panOffset.x,\n\t\t\ty: _panOffset.y\n\t\t};\n\n\t\t_roundPoint(destPanOffset);\n\n\t\tvar onUpdate = function(now) {\n\t\t\tif(now === 1) {\n\t\t\t\t_currZoomLevel = destZoomLevel;\n\t\t\t\t_panOffset.x = destPanOffset.x;\n\t\t\t\t_panOffset.y = destPanOffset.y;\n\t\t\t} else {\n\t\t\t\t_currZoomLevel = (destZoomLevel - initialZoomLevel) * now + initialZoomLevel;\n\t\t\t\t_panOffset.x = (destPanOffset.x - initialPanOffset.x) * now + initialPanOffset.x;\n\t\t\t\t_panOffset.y = (destPanOffset.y - initialPanOffset.y) * now + initialPanOffset.y;\n\t\t\t}\n\n\t\t\tif(updateFn) {\n\t\t\t\tupdateFn(now);\n\t\t\t}\n\n\t\t\t_applyCurrentZoomPan( now === 1 );\n\t\t};\n\n\t\tif(speed) {\n\t\t\t_animateProp('customZoomTo', 0, 1, speed, easingFn || framework.easing.sine.inOut, onUpdate);\n\t\t} else {\n\t\t\tonUpdate(1);\n\t\t}\n\t}\n\n\n};\n\n\n/*>>core*/\n\n/*>>gestures*/\n/**\n * Mouse/touch/pointer event handlers.\n * \n * separated from @core.js for readability\n */\n\nvar MIN_SWIPE_DISTANCE = 30,\n\tDIRECTION_CHECK_OFFSET = 10; // amount of pixels to drag to determine direction of swipe\n\nvar _gestureStartTime,\n\t_gestureCheckSpeedTime,\n\n\t// pool of objects that are used during dragging of zooming\n\tp = {}, // first point\n\tp2 = {}, // second point (for zoom gesture)\n\tdelta = {},\n\t_currPoint = {},\n\t_startPoint = {},\n\t_currPointers = [],\n\t_startMainScrollPos = {},\n\t_releaseAnimData,\n\t_posPoints = [], // array of points during dragging, used to determine type of gesture\n\t_tempPoint = {},\n\n\t_isZoomingIn,\n\t_verticalDragInitiated,\n\t_oldAndroidTouchEndTimeout,\n\t_currZoomedItemIndex = 0,\n\t_centerPoint = _getEmptyPoint(),\n\t_lastReleaseTime = 0,\n\t_isDragging, // at least one pointer is down\n\t_isMultitouch, // at least two _pointers are down\n\t_zoomStarted, // zoom level changed during zoom gesture\n\t_moved,\n\t_dragAnimFrame,\n\t_mainScrollShifted,\n\t_currentPoints, // array of current touch points\n\t_isZooming,\n\t_currPointsDistance,\n\t_startPointsDistance,\n\t_currPanBounds,\n\t_mainScrollPos = _getEmptyPoint(),\n\t_currZoomElementStyle,\n\t_mainScrollAnimating, // true, if animation after swipe gesture is running\n\t_midZoomPoint = _getEmptyPoint(),\n\t_currCenterPoint = _getEmptyPoint(),\n\t_direction,\n\t_isFirstMove,\n\t_opacityChanged,\n\t_bgOpacity,\n\t_wasOverInitialZoom,\n\n\t_isEqualPoints = function(p1, p2) {\n\t\treturn p1.x === p2.x && p1.y === p2.y;\n\t},\n\t_isNearbyPoints = function(touch0, touch1) {\n\t\treturn Math.abs(touch0.x - touch1.x) < DOUBLE_TAP_RADIUS && Math.abs(touch0.y - touch1.y) < DOUBLE_TAP_RADIUS;\n\t},\n\t_calculatePointsDistance = function(p1, p2) {\n\t\t_tempPoint.x = Math.abs( p1.x - p2.x );\n\t\t_tempPoint.y = Math.abs( p1.y - p2.y );\n\t\treturn Math.sqrt(_tempPoint.x * _tempPoint.x + _tempPoint.y * _tempPoint.y);\n\t},\n\t_stopDragUpdateLoop = function() {\n\t\tif(_dragAnimFrame) {\n\t\t\t_cancelAF(_dragAnimFrame);\n\t\t\t_dragAnimFrame = null;\n\t\t}\n\t},\n\t_dragUpdateLoop = function() {\n\t\tif(_isDragging) {\n\t\t\t_dragAnimFrame = _requestAF(_dragUpdateLoop);\n\t\t\t_renderMovement();\n\t\t}\n\t},\n\t_canPan = function() {\n\t\treturn !(_options.scaleMode === 'fit' && _currZoomLevel === self.currItem.initialZoomLevel);\n\t},\n\t\n\t// find the closest parent DOM element\n\t_closestElement = function(el, fn) {\n\t \tif(!el || el === document) {\n\t \t\treturn false;\n\t \t}\n\n\t \t// don't search elements above pswp__scroll-wrap\n\t \tif(el.getAttribute('class') && el.getAttribute('class').indexOf('pswp__scroll-wrap') > -1 ) {\n\t \t\treturn false;\n\t \t}\n\n\t \tif( fn(el) ) {\n\t \t\treturn el;\n\t \t}\n\n\t \treturn _closestElement(el.parentNode, fn);\n\t},\n\n\t_preventObj = {},\n\t_preventDefaultEventBehaviour = function(e, isDown) {\n\t _preventObj.prevent = !_closestElement(e.target, _options.isClickableElement);\n\n\t\t_shout('preventDragEvent', e, isDown, _preventObj);\n\t\treturn _preventObj.prevent;\n\n\t},\n\t_convertTouchToPoint = function(touch, p) {\n\t\tp.x = touch.pageX;\n\t\tp.y = touch.pageY;\n\t\tp.id = touch.identifier;\n\t\treturn p;\n\t},\n\t_findCenterOfPoints = function(p1, p2, pCenter) {\n\t\tpCenter.x = (p1.x + p2.x) * 0.5;\n\t\tpCenter.y = (p1.y + p2.y) * 0.5;\n\t},\n\t_pushPosPoint = function(time, x, y) {\n\t\tif(time - _gestureCheckSpeedTime > 50) {\n\t\t\tvar o = _posPoints.length > 2 ? _posPoints.shift() : {};\n\t\t\to.x = x;\n\t\t\to.y = y; \n\t\t\t_posPoints.push(o);\n\t\t\t_gestureCheckSpeedTime = time;\n\t\t}\n\t},\n\n\t_calculateVerticalDragOpacityRatio = function() {\n\t\tvar yOffset = _panOffset.y - self.currItem.initialPosition.y; // difference between initial and current position\n\t\treturn 1 - Math.abs( yOffset / (_viewportSize.y / 2) );\n\t},\n\n\t\n\t// points pool, reused during touch events\n\t_ePoint1 = {},\n\t_ePoint2 = {},\n\t_tempPointsArr = [],\n\t_tempCounter,\n\t_getTouchPoints = function(e) {\n\t\t// clean up previous points, without recreating array\n\t\twhile(_tempPointsArr.length > 0) {\n\t\t\t_tempPointsArr.pop();\n\t\t}\n\n\t\tif(!_pointerEventEnabled) {\n\t\t\tif(e.type.indexOf('touch') > -1) {\n\n\t\t\t\tif(e.touches && e.touches.length > 0) {\n\t\t\t\t\t_tempPointsArr[0] = _convertTouchToPoint(e.touches[0], _ePoint1);\n\t\t\t\t\tif(e.touches.length > 1) {\n\t\t\t\t\t\t_tempPointsArr[1] = _convertTouchToPoint(e.touches[1], _ePoint2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t_ePoint1.x = e.pageX;\n\t\t\t\t_ePoint1.y = e.pageY;\n\t\t\t\t_ePoint1.id = '';\n\t\t\t\t_tempPointsArr[0] = _ePoint1;//_ePoint1;\n\t\t\t}\n\t\t} else {\n\t\t\t_tempCounter = 0;\n\t\t\t// we can use forEach, as pointer events are supported only in modern browsers\n\t\t\t_currPointers.forEach(function(p) {\n\t\t\t\tif(_tempCounter === 0) {\n\t\t\t\t\t_tempPointsArr[0] = p;\n\t\t\t\t} else if(_tempCounter === 1) {\n\t\t\t\t\t_tempPointsArr[1] = p;\n\t\t\t\t}\n\t\t\t\t_tempCounter++;\n\n\t\t\t});\n\t\t}\n\t\treturn _tempPointsArr;\n\t},\n\n\t_panOrMoveMainScroll = function(axis, delta) {\n\n\t\tvar panFriction,\n\t\t\toverDiff = 0,\n\t\t\tnewOffset = _panOffset[axis] + delta[axis],\n\t\t\tstartOverDiff,\n\t\t\tdir = delta[axis] > 0,\n\t\t\tnewMainScrollPosition = _mainScrollPos.x + delta.x,\n\t\t\tmainScrollDiff = _mainScrollPos.x - _startMainScrollPos.x,\n\t\t\tnewPanPos,\n\t\t\tnewMainScrollPos;\n\n\t\t// calculate fdistance over the bounds and friction\n\t\tif(newOffset > _currPanBounds.min[axis] || newOffset < _currPanBounds.max[axis]) {\n\t\t\tpanFriction = _options.panEndFriction;\n\t\t\t// Linear increasing of friction, so at 1/4 of viewport it's at max value. \n\t\t\t// Looks not as nice as was expected. Left for history.\n\t\t\t// panFriction = (1 - (_panOffset[axis] + delta[axis] + panBounds.min[axis]) / (_viewportSize[axis] / 4) );\n\t\t} else {\n\t\t\tpanFriction = 1;\n\t\t}\n\t\t\n\t\tnewOffset = _panOffset[axis] + delta[axis] * panFriction;\n\n\t\t// move main scroll or start panning\n\t\tif(_options.allowPanToNext || _currZoomLevel === self.currItem.initialZoomLevel) {\n\n\n\t\t\tif(!_currZoomElementStyle) {\n\t\t\t\t\n\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\n\t\t\t} else if(_direction === 'h' && axis === 'x' && !_zoomStarted ) {\n\t\t\t\t\n\t\t\t\tif(dir) {\n\t\t\t\t\tif(newOffset > _currPanBounds.min[axis]) {\n\t\t\t\t\t\tpanFriction = _options.panEndFriction;\n\t\t\t\t\t\toverDiff = _currPanBounds.min[axis] - newOffset;\n\t\t\t\t\t\tstartOverDiff = _currPanBounds.min[axis] - _startPanOffset[axis];\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// drag right\n\t\t\t\t\tif( (startOverDiff <= 0 || mainScrollDiff < 0) && _getNumItems() > 1 ) {\n\t\t\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\t\t\t\t\t\tif(mainScrollDiff < 0 && newMainScrollPosition > _startMainScrollPos.x) {\n\t\t\t\t\t\t\tnewMainScrollPos = _startMainScrollPos.x;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\t\t\tnewPanPos = newOffset;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif(newOffset < _currPanBounds.max[axis] ) {\n\t\t\t\t\t\tpanFriction =_options.panEndFriction;\n\t\t\t\t\t\toverDiff = newOffset - _currPanBounds.max[axis];\n\t\t\t\t\t\tstartOverDiff = _startPanOffset[axis] - _currPanBounds.max[axis];\n\t\t\t\t\t}\n\n\t\t\t\t\tif( (startOverDiff <= 0 || mainScrollDiff > 0) && _getNumItems() > 1 ) {\n\t\t\t\t\t\tnewMainScrollPos = newMainScrollPosition;\n\n\t\t\t\t\t\tif(mainScrollDiff > 0 && newMainScrollPosition < _startMainScrollPos.x) {\n\t\t\t\t\t\t\tnewMainScrollPos = _startMainScrollPos.x;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\t\t\tnewPanPos = newOffset;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\n\t\t\t\t//\n\t\t\t}\n\n\t\t\tif(axis === 'x') {\n\n\t\t\t\tif(newMainScrollPos !== undefined) {\n\t\t\t\t\t_moveMainScroll(newMainScrollPos, true);\n\t\t\t\t\tif(newMainScrollPos === _startMainScrollPos.x) {\n\t\t\t\t\t\t_mainScrollShifted = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_mainScrollShifted = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(_currPanBounds.min.x !== _currPanBounds.max.x) {\n\t\t\t\t\tif(newPanPos !== undefined) {\n\t\t\t\t\t\t_panOffset.x = newPanPos;\n\t\t\t\t\t} else if(!_mainScrollShifted) {\n\t\t\t\t\t\t_panOffset.x += delta.x * panFriction;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn newMainScrollPos !== undefined;\n\t\t\t}\n\n\t\t}\n\n\t\tif(!_mainScrollAnimating) {\n\t\t\t\n\t\t\tif(!_mainScrollShifted) {\n\t\t\t\tif(_currZoomLevel > self.currItem.fitRatio) {\n\t\t\t\t\t_panOffset[axis] += delta[axis] * panFriction;\n\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\n\t\t}\n\t\t\n\t},\n\n\t// Pointerdown/touchstart/mousedown handler\n\t_onDragStart = function(e) {\n\n\t\t// Allow dragging only via left mouse button.\n\t\t// As this handler is not added in IE8 - we ignore e.which\n\t\t// \n\t\t// http://www.quirksmode.org/js/events_properties.html\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/event.button\n\t\tif(e.type === 'mousedown' && e.button > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(_initialZoomRunning) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif(_oldAndroidTouchEndTimeout && e.type === 'mousedown') {\n\t\t\treturn;\n\t\t}\n\n\t\tif(_preventDefaultEventBehaviour(e, true)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\n\n\t\t_shout('pointerDown');\n\n\t\tif(_pointerEventEnabled) {\n\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\tif(pointerIndex < 0) {\n\t\t\t\tpointerIndex = _currPointers.length;\n\t\t\t}\n\t\t\t_currPointers[pointerIndex] = {x:e.pageX, y:e.pageY, id: e.pointerId};\n\t\t}\n\t\t\n\n\n\t\tvar startPointsList = _getTouchPoints(e),\n\t\t\tnumPoints = startPointsList.length;\n\n\t\t_currentPoints = null;\n\n\t\t_stopAllAnimations();\n\n\t\t// init drag\n\t\tif(!_isDragging || numPoints === 1) {\n\n\t\t\t\n\n\t\t\t_isDragging = _isFirstMove = true;\n\t\t\tframework.bind(window, _upMoveEvents, self);\n\n\t\t\t_isZoomingIn = \n\t\t\t\t_wasOverInitialZoom = \n\t\t\t\t_opacityChanged = \n\t\t\t\t_verticalDragInitiated = \n\t\t\t\t_mainScrollShifted = \n\t\t\t\t_moved = \n\t\t\t\t_isMultitouch = \n\t\t\t\t_zoomStarted = false;\n\n\t\t\t_direction = null;\n\n\t\t\t_shout('firstTouchStart', startPointsList);\n\n\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\n\t\t\t_currPanDist.x = _currPanDist.y = 0;\n\t\t\t_equalizePoints(_currPoint, startPointsList[0]);\n\t\t\t_equalizePoints(_startPoint, _currPoint);\n\n\t\t\t//_equalizePoints(_startMainScrollPos, _mainScrollPos);\n\t\t\t_startMainScrollPos.x = _slideSize.x * _currPositionIndex;\n\n\t\t\t_posPoints = [{\n\t\t\t\tx: _currPoint.x,\n\t\t\t\ty: _currPoint.y\n\t\t\t}];\n\n\t\t\t_gestureCheckSpeedTime = _gestureStartTime = _getCurrentTime();\n\n\t\t\t//_mainScrollAnimationEnd(true);\n\t\t\t_calculatePanBounds( _currZoomLevel, true );\n\t\t\t\n\t\t\t// Start rendering\n\t\t\t_stopDragUpdateLoop();\n\t\t\t_dragUpdateLoop();\n\t\t\t\n\t\t}\n\n\t\t// init zoom\n\t\tif(!_isZooming && numPoints > 1 && !_mainScrollAnimating && !_mainScrollShifted) {\n\t\t\t_startZoomLevel = _currZoomLevel;\n\t\t\t_zoomStarted = false; // true if zoom changed at least once\n\n\t\t\t_isZooming = _isMultitouch = true;\n\t\t\t_currPanDist.y = _currPanDist.x = 0;\n\n\t\t\t_equalizePoints(_startPanOffset, _panOffset);\n\n\t\t\t_equalizePoints(p, startPointsList[0]);\n\t\t\t_equalizePoints(p2, startPointsList[1]);\n\n\t\t\t_findCenterOfPoints(p, p2, _currCenterPoint);\n\n\t\t\t_midZoomPoint.x = Math.abs(_currCenterPoint.x) - _panOffset.x;\n\t\t\t_midZoomPoint.y = Math.abs(_currCenterPoint.y) - _panOffset.y;\n\t\t\t_currPointsDistance = _startPointsDistance = _calculatePointsDistance(p, p2);\n\t\t}\n\n\n\t},\n\n\t// Pointermove/touchmove/mousemove handler\n\t_onDragMove = function(e) {\n\n\t\te.preventDefault();\n\n\t\tif(_pointerEventEnabled) {\n\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\tif(pointerIndex > -1) {\n\t\t\t\tvar p = _currPointers[pointerIndex];\n\t\t\t\tp.x = e.pageX;\n\t\t\t\tp.y = e.pageY; \n\t\t\t}\n\t\t}\n\n\t\tif(_isDragging) {\n\t\t\tvar touchesList = _getTouchPoints(e);\n\t\t\tif(!_direction && !_moved && !_isZooming) {\n\n\t\t\t\tif(_mainScrollPos.x !== _slideSize.x * _currPositionIndex) {\n\t\t\t\t\t// if main scroll position is shifted – direction is always horizontal\n\t\t\t\t\t_direction = 'h';\n\t\t\t\t} else {\n\t\t\t\t\tvar diff = Math.abs(touchesList[0].x - _currPoint.x) - Math.abs(touchesList[0].y - _currPoint.y);\n\t\t\t\t\t// check the direction of movement\n\t\t\t\t\tif(Math.abs(diff) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\t\t_direction = diff > 0 ? 'h' : 'v';\n\t\t\t\t\t\t_currentPoints = touchesList;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t_currentPoints = touchesList;\n\t\t\t}\n\t\t}\t\n\t},\n\t// \n\t_renderMovement = function() {\n\n\t\tif(!_currentPoints) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar numPoints = _currentPoints.length;\n\n\t\tif(numPoints === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t_equalizePoints(p, _currentPoints[0]);\n\n\t\tdelta.x = p.x - _currPoint.x;\n\t\tdelta.y = p.y - _currPoint.y;\n\n\t\tif(_isZooming && numPoints > 1) {\n\t\t\t// Handle behaviour for more than 1 point\n\n\t\t\t_currPoint.x = p.x;\n\t\t\t_currPoint.y = p.y;\n\t\t\n\t\t\t// check if one of two points changed\n\t\t\tif( !delta.x && !delta.y && _isEqualPoints(_currentPoints[1], p2) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_equalizePoints(p2, _currentPoints[1]);\n\n\n\t\t\tif(!_zoomStarted) {\n\t\t\t\t_zoomStarted = true;\n\t\t\t\t_shout('zoomGestureStarted');\n\t\t\t}\n\t\t\t\n\t\t\t// Distance between two points\n\t\t\tvar pointsDistance = _calculatePointsDistance(p,p2);\n\n\t\t\tvar zoomLevel = _calculateZoomLevel(pointsDistance);\n\n\t\t\t// slightly over the of initial zoom level\n\t\t\tif(zoomLevel > self.currItem.initialZoomLevel + self.currItem.initialZoomLevel / 15) {\n\t\t\t\t_wasOverInitialZoom = true;\n\t\t\t}\n\n\t\t\t// Apply the friction if zoom level is out of the bounds\n\t\t\tvar zoomFriction = 1,\n\t\t\t\tminZoomLevel = _getMinZoomLevel(),\n\t\t\t\tmaxZoomLevel = _getMaxZoomLevel();\n\n\t\t\tif ( zoomLevel < minZoomLevel ) {\n\t\t\t\t\n\t\t\t\tif(_options.pinchToClose && !_wasOverInitialZoom && _startZoomLevel <= self.currItem.initialZoomLevel) {\n\t\t\t\t\t// fade out background if zooming out\n\t\t\t\t\tvar minusDiff = minZoomLevel - zoomLevel;\n\t\t\t\t\tvar percent = 1 - minusDiff / (minZoomLevel / 1.2);\n\n\t\t\t\t\t_applyBgOpacity(percent);\n\t\t\t\t\t_shout('onPinchClose', percent);\n\t\t\t\t\t_opacityChanged = true;\n\t\t\t\t} else {\n\t\t\t\t\tzoomFriction = (minZoomLevel - zoomLevel) / minZoomLevel;\n\t\t\t\t\tif(zoomFriction > 1) {\n\t\t\t\t\t\tzoomFriction = 1;\n\t\t\t\t\t}\n\t\t\t\t\tzoomLevel = minZoomLevel - zoomFriction * (minZoomLevel / 3);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else if ( zoomLevel > maxZoomLevel ) {\n\t\t\t\t// 1.5 - extra zoom level above the max. E.g. if max is x6, real max 6 + 1.5 = 7.5\n\t\t\t\tzoomFriction = (zoomLevel - maxZoomLevel) / ( minZoomLevel * 6 );\n\t\t\t\tif(zoomFriction > 1) {\n\t\t\t\t\tzoomFriction = 1;\n\t\t\t\t}\n\t\t\t\tzoomLevel = maxZoomLevel + zoomFriction * minZoomLevel;\n\t\t\t}\n\n\t\t\tif(zoomFriction < 0) {\n\t\t\t\tzoomFriction = 0;\n\t\t\t}\n\n\t\t\t// distance between touch points after friction is applied\n\t\t\t_currPointsDistance = pointsDistance;\n\n\t\t\t// _centerPoint - The point in the middle of two pointers\n\t\t\t_findCenterOfPoints(p, p2, _centerPoint);\n\t\t\n\t\t\t// paning with two pointers pressed\n\t\t\t_currPanDist.x += _centerPoint.x - _currCenterPoint.x;\n\t\t\t_currPanDist.y += _centerPoint.y - _currCenterPoint.y;\n\t\t\t_equalizePoints(_currCenterPoint, _centerPoint);\n\n\t\t\t_panOffset.x = _calculatePanOffset('x', zoomLevel);\n\t\t\t_panOffset.y = _calculatePanOffset('y', zoomLevel);\n\n\t\t\t_isZoomingIn = zoomLevel > _currZoomLevel;\n\t\t\t_currZoomLevel = zoomLevel;\n\t\t\t_applyCurrentZoomPan();\n\n\t\t} else {\n\n\t\t\t// handle behaviour for one point (dragging or panning)\n\n\t\t\tif(!_direction) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(_isFirstMove) {\n\t\t\t\t_isFirstMove = false;\n\n\t\t\t\t// subtract drag distance that was used during the detection direction \n\n\t\t\t\tif( Math.abs(delta.x) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\tdelta.x -= _currentPoints[0].x - _startPoint.x;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( Math.abs(delta.y) >= DIRECTION_CHECK_OFFSET) {\n\t\t\t\t\tdelta.y -= _currentPoints[0].y - _startPoint.y;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_currPoint.x = p.x;\n\t\t\t_currPoint.y = p.y;\n\n\t\t\t// do nothing if pointers position hasn't changed\n\t\t\tif(delta.x === 0 && delta.y === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(_direction === 'v' && _options.closeOnVerticalDrag) {\n\t\t\t\tif(!_canPan()) {\n\t\t\t\t\t_currPanDist.y += delta.y;\n\t\t\t\t\t_panOffset.y += delta.y;\n\n\t\t\t\t\tvar opacityRatio = _calculateVerticalDragOpacityRatio();\n\n\t\t\t\t\t_verticalDragInitiated = true;\n\t\t\t\t\t_shout('onVerticalDrag', opacityRatio);\n\n\t\t\t\t\t_applyBgOpacity(opacityRatio);\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\treturn ;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_pushPosPoint(_getCurrentTime(), p.x, p.y);\n\n\t\t\t_moved = true;\n\t\t\t_currPanBounds = self.currItem.bounds;\n\t\t\t\n\t\t\tvar mainScrollChanged = _panOrMoveMainScroll('x', delta);\n\t\t\tif(!mainScrollChanged) {\n\t\t\t\t_panOrMoveMainScroll('y', delta);\n\n\t\t\t\t_roundPoint(_panOffset);\n\t\t\t\t_applyCurrentZoomPan();\n\t\t\t}\n\n\t\t}\n\n\t},\n\t\n\t// Pointerup/pointercancel/touchend/touchcancel/mouseup event handler\n\t_onDragRelease = function(e) {\n\n\t\tif(_features.isOldAndroid ) {\n\n\t\t\tif(_oldAndroidTouchEndTimeout && e.type === 'mouseup') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// on Android (v4.1, 4.2, 4.3 & possibly older) \n\t\t\t// ghost mousedown/up event isn't preventable via e.preventDefault,\n\t\t\t// which causes fake mousedown event\n\t\t\t// so we block mousedown/up for 600ms\n\t\t\tif( e.type.indexOf('touch') > -1 ) {\n\t\t\t\tclearTimeout(_oldAndroidTouchEndTimeout);\n\t\t\t\t_oldAndroidTouchEndTimeout = setTimeout(function() {\n\t\t\t\t\t_oldAndroidTouchEndTimeout = 0;\n\t\t\t\t}, 600);\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t_shout('pointerUp');\n\n\t\tif(_preventDefaultEventBehaviour(e, false)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tvar releasePoint;\n\n\t\tif(_pointerEventEnabled) {\n\t\t\tvar pointerIndex = framework.arraySearch(_currPointers, e.pointerId, 'id');\n\t\t\t\n\t\t\tif(pointerIndex > -1) {\n\t\t\t\treleasePoint = _currPointers.splice(pointerIndex, 1)[0];\n\n\t\t\t\tif(navigator.msPointerEnabled) {\n\t\t\t\t\tvar MSPOINTER_TYPES = {\n\t\t\t\t\t\t4: 'mouse', // event.MSPOINTER_TYPE_MOUSE\n\t\t\t\t\t\t2: 'touch', // event.MSPOINTER_TYPE_TOUCH \n\t\t\t\t\t\t3: 'pen' // event.MSPOINTER_TYPE_PEN\n\t\t\t\t\t};\n\t\t\t\t\treleasePoint.type = MSPOINTER_TYPES[e.pointerType];\n\n\t\t\t\t\tif(!releasePoint.type) {\n\t\t\t\t\t\treleasePoint.type = e.pointerType || 'mouse';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treleasePoint.type = e.pointerType || 'mouse';\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\tvar touchList = _getTouchPoints(e),\n\t\t\tgestureType,\n\t\t\tnumPoints = touchList.length;\n\n\t\tif(e.type === 'mouseup') {\n\t\t\tnumPoints = 0;\n\t\t}\n\n\t\t// Do nothing if there were 3 touch points or more\n\t\tif(numPoints === 2) {\n\t\t\t_currentPoints = null;\n\t\t\treturn true;\n\t\t}\n\n\t\t// if second pointer released\n\t\tif(numPoints === 1) {\n\t\t\t_equalizePoints(_startPoint, touchList[0]);\n\t\t}\t\t\t\t\n\n\n\t\t// pointer hasn't moved, send \"tap release\" point\n\t\tif(numPoints === 0 && !_direction && !_mainScrollAnimating) {\n\t\t\tif(!releasePoint) {\n\t\t\t\tif(e.type === 'mouseup') {\n\t\t\t\t\treleasePoint = {x: e.pageX, y: e.pageY, type:'mouse'};\n\t\t\t\t} else if(e.changedTouches && e.changedTouches[0]) {\n\t\t\t\t\treleasePoint = {x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY, type:'touch'};\n\t\t\t\t}\t\t\n\t\t\t}\n\n\t\t\t_shout('touchRelease', e, releasePoint);\n\t\t}\n\n\t\t// Difference in time between releasing of two last touch points (zoom gesture)\n\t\tvar releaseTimeDiff = -1;\n\n\t\t// Gesture completed, no pointers left\n\t\tif(numPoints === 0) {\n\t\t\t_isDragging = false;\n\t\t\tframework.unbind(window, _upMoveEvents, self);\n\n\t\t\t_stopDragUpdateLoop();\n\n\t\t\tif(_isZooming) {\n\t\t\t\t// Two points released at the same time\n\t\t\t\treleaseTimeDiff = 0;\n\t\t\t} else if(_lastReleaseTime !== -1) {\n\t\t\t\treleaseTimeDiff = _getCurrentTime() - _lastReleaseTime;\n\t\t\t}\n\t\t}\n\t\t_lastReleaseTime = numPoints === 1 ? _getCurrentTime() : -1;\n\t\t\n\t\tif(releaseTimeDiff !== -1 && releaseTimeDiff < 150) {\n\t\t\tgestureType = 'zoom';\n\t\t} else {\n\t\t\tgestureType = 'swipe';\n\t\t}\n\n\t\tif(_isZooming && numPoints < 2) {\n\t\t\t_isZooming = false;\n\n\t\t\t// Only second point released\n\t\t\tif(numPoints === 1) {\n\t\t\t\tgestureType = 'zoomPointerUp';\n\t\t\t}\n\t\t\t_shout('zoomGestureEnded');\n\t\t}\n\n\t\t_currentPoints = null;\n\t\tif(!_moved && !_zoomStarted && !_mainScrollAnimating && !_verticalDragInitiated) {\n\t\t\t// nothing to animate\n\t\t\treturn;\n\t\t}\n\t\n\t\t_stopAllAnimations();\n\n\t\t\n\t\tif(!_releaseAnimData) {\n\t\t\t_releaseAnimData = _initDragReleaseAnimationData();\n\t\t}\n\t\t\n\t\t_releaseAnimData.calculateSwipeSpeed('x');\n\n\n\t\tif(_verticalDragInitiated) {\n\n\t\t\tvar opacityRatio = _calculateVerticalDragOpacityRatio();\n\n\t\t\tif(opacityRatio < _options.verticalDragRange) {\n\t\t\t\tself.close();\n\t\t\t} else {\n\t\t\t\tvar initalPanY = _panOffset.y,\n\t\t\t\t\tinitialBgOpacity = _bgOpacity;\n\n\t\t\t\t_animateProp('verticalDrag', 0, 1, 300, framework.easing.cubic.out, function(now) {\n\t\t\t\t\t\n\t\t\t\t\t_panOffset.y = (self.currItem.initialPosition.y - initalPanY) * now + initalPanY;\n\n\t\t\t\t\t_applyBgOpacity( (1 - initialBgOpacity) * now + initialBgOpacity );\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t});\n\n\t\t\t\t_shout('onVerticalDrag', 1);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\n\t\t// main scroll \n\t\tif( (_mainScrollShifted || _mainScrollAnimating) && numPoints === 0) {\n\t\t\tvar itemChanged = _finishSwipeMainScrollGesture(gestureType, _releaseAnimData);\n\t\t\tif(itemChanged) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tgestureType = 'zoomPointerUp';\n\t\t}\n\n\t\t// prevent zoom/pan animation when main scroll animation runs\n\t\tif(_mainScrollAnimating) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t// Complete simple zoom gesture (reset zoom level if it's out of the bounds) \n\t\tif(gestureType !== 'swipe') {\n\t\t\t_completeZoomGesture();\n\t\t\treturn;\n\t\t}\n\t\n\t\t// Complete pan gesture if main scroll is not shifted, and it's possible to pan current image\n\t\tif(!_mainScrollShifted && _currZoomLevel > self.currItem.fitRatio) {\n\t\t\t_completePanGesture(_releaseAnimData);\n\t\t}\n\t},\n\n\n\t// Returns object with data about gesture\n\t// It's created only once and then reused\n\t_initDragReleaseAnimationData = function() {\n\t\t// temp local vars\n\t\tvar lastFlickDuration,\n\t\t\ttempReleasePos;\n\n\t\t// s = this\n\t\tvar s = {\n\t\t\tlastFlickOffset: {},\n\t\t\tlastFlickDist: {},\n\t\t\tlastFlickSpeed: {},\n\t\t\tslowDownRatio: {},\n\t\t\tslowDownRatioReverse: {},\n\t\t\tspeedDecelerationRatio: {},\n\t\t\tspeedDecelerationRatioAbs: {},\n\t\t\tdistanceOffset: {},\n\t\t\tbackAnimDestination: {},\n\t\t\tbackAnimStarted: {},\n\t\t\tcalculateSwipeSpeed: function(axis) {\n\t\t\t\t\n\n\t\t\t\tif( _posPoints.length > 1) {\n\t\t\t\t\tlastFlickDuration = _getCurrentTime() - _gestureCheckSpeedTime + 50;\n\t\t\t\t\ttempReleasePos = _posPoints[_posPoints.length-2][axis];\n\t\t\t\t} else {\n\t\t\t\t\tlastFlickDuration = _getCurrentTime() - _gestureStartTime; // total gesture duration\n\t\t\t\t\ttempReleasePos = _startPoint[axis];\n\t\t\t\t}\n\t\t\t\ts.lastFlickOffset[axis] = _currPoint[axis] - tempReleasePos;\n\t\t\t\ts.lastFlickDist[axis] = Math.abs(s.lastFlickOffset[axis]);\n\t\t\t\tif(s.lastFlickDist[axis] > 20) {\n\t\t\t\t\ts.lastFlickSpeed[axis] = s.lastFlickOffset[axis] / lastFlickDuration;\n\t\t\t\t} else {\n\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t}\n\t\t\t\tif( Math.abs(s.lastFlickSpeed[axis]) < 0.1 ) {\n\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ts.slowDownRatio[axis] = 0.95;\n\t\t\t\ts.slowDownRatioReverse[axis] = 1 - s.slowDownRatio[axis];\n\t\t\t\ts.speedDecelerationRatio[axis] = 1;\n\t\t\t},\n\n\t\t\tcalculateOverBoundsAnimOffset: function(axis, speed) {\n\t\t\t\tif(!s.backAnimStarted[axis]) {\n\n\t\t\t\t\tif(_panOffset[axis] > _currPanBounds.min[axis]) {\n\t\t\t\t\t\ts.backAnimDestination[axis] = _currPanBounds.min[axis];\n\t\t\t\t\t\t\n\t\t\t\t\t} else if(_panOffset[axis] < _currPanBounds.max[axis]) {\n\t\t\t\t\t\ts.backAnimDestination[axis] = _currPanBounds.max[axis];\n\t\t\t\t\t}\n\n\t\t\t\t\tif(s.backAnimDestination[axis] !== undefined) {\n\t\t\t\t\t\ts.slowDownRatio[axis] = 0.7;\n\t\t\t\t\t\ts.slowDownRatioReverse[axis] = 1 - s.slowDownRatio[axis];\n\t\t\t\t\t\tif(s.speedDecelerationRatioAbs[axis] < 0.05) {\n\n\t\t\t\t\t\t\ts.lastFlickSpeed[axis] = 0;\n\t\t\t\t\t\t\ts.backAnimStarted[axis] = true;\n\n\t\t\t\t\t\t\t_animateProp('bounceZoomPan'+axis,_panOffset[axis], \n\t\t\t\t\t\t\t\ts.backAnimDestination[axis], \n\t\t\t\t\t\t\t\tspeed || 300, \n\t\t\t\t\t\t\t\tframework.easing.sine.out, \n\t\t\t\t\t\t\t\tfunction(pos) {\n\t\t\t\t\t\t\t\t\t_panOffset[axis] = pos;\n\t\t\t\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Reduces the speed by slowDownRatio (per 10ms)\n\t\t\tcalculateAnimOffset: function(axis) {\n\t\t\t\tif(!s.backAnimStarted[axis]) {\n\t\t\t\t\ts.speedDecelerationRatio[axis] = s.speedDecelerationRatio[axis] * (s.slowDownRatio[axis] + \n\t\t\t\t\t\t\t\t\t\t\t\ts.slowDownRatioReverse[axis] - \n\t\t\t\t\t\t\t\t\t\t\t\ts.slowDownRatioReverse[axis] * s.timeDiff / 10);\n\n\t\t\t\t\ts.speedDecelerationRatioAbs[axis] = Math.abs(s.lastFlickSpeed[axis] * s.speedDecelerationRatio[axis]);\n\t\t\t\t\ts.distanceOffset[axis] = s.lastFlickSpeed[axis] * s.speedDecelerationRatio[axis] * s.timeDiff;\n\t\t\t\t\t_panOffset[axis] += s.distanceOffset[axis];\n\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tpanAnimLoop: function() {\n\t\t\t\tif ( _animations.zoomPan ) {\n\t\t\t\t\t_animations.zoomPan.raf = _requestAF(s.panAnimLoop);\n\n\t\t\t\t\ts.now = _getCurrentTime();\n\t\t\t\t\ts.timeDiff = s.now - s.lastNow;\n\t\t\t\t\ts.lastNow = s.now;\n\t\t\t\t\t\n\t\t\t\t\ts.calculateAnimOffset('x');\n\t\t\t\t\ts.calculateAnimOffset('y');\n\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\n\t\t\t\t\ts.calculateOverBoundsAnimOffset('x');\n\t\t\t\t\ts.calculateOverBoundsAnimOffset('y');\n\n\n\t\t\t\t\tif (s.speedDecelerationRatioAbs.x < 0.05 && s.speedDecelerationRatioAbs.y < 0.05) {\n\n\t\t\t\t\t\t// round pan position\n\t\t\t\t\t\t_panOffset.x = Math.round(_panOffset.x);\n\t\t\t\t\t\t_panOffset.y = Math.round(_panOffset.y);\n\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\t\n\t\t\t\t\t\t_stopAnimation('zoomPan');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t};\n\t\treturn s;\n\t},\n\n\t_completePanGesture = function(animData) {\n\t\t// calculate swipe speed for Y axis (paanning)\n\t\tanimData.calculateSwipeSpeed('y');\n\n\t\t_currPanBounds = self.currItem.bounds;\n\t\t\n\t\tanimData.backAnimDestination = {};\n\t\tanimData.backAnimStarted = {};\n\n\t\t// Avoid acceleration animation if speed is too low\n\t\tif(Math.abs(animData.lastFlickSpeed.x) <= 0.05 && Math.abs(animData.lastFlickSpeed.y) <= 0.05 ) {\n\t\t\tanimData.speedDecelerationRatioAbs.x = animData.speedDecelerationRatioAbs.y = 0;\n\n\t\t\t// Run pan drag release animation. E.g. if you drag image and release finger without momentum.\n\t\t\tanimData.calculateOverBoundsAnimOffset('x');\n\t\t\tanimData.calculateOverBoundsAnimOffset('y');\n\t\t\treturn true;\n\t\t}\n\n\t\t// Animation loop that controls the acceleration after pan gesture ends\n\t\t_registerStartAnimation('zoomPan');\n\t\tanimData.lastNow = _getCurrentTime();\n\t\tanimData.panAnimLoop();\n\t},\n\n\n\t_finishSwipeMainScrollGesture = function(gestureType, _releaseAnimData) {\n\t\tvar itemChanged;\n\t\tif(!_mainScrollAnimating) {\n\t\t\t_currZoomedItemIndex = _currentItemIndex;\n\t\t}\n\n\n\t\t\n\t\tvar itemsDiff;\n\n\t\tif(gestureType === 'swipe') {\n\t\t\tvar totalShiftDist = _currPoint.x - _startPoint.x,\n\t\t\t\tisFastLastFlick = _releaseAnimData.lastFlickDist.x < 10;\n\n\t\t\t// if container is shifted for more than MIN_SWIPE_DISTANCE, \n\t\t\t// and last flick gesture was in right direction\n\t\t\tif(totalShiftDist > MIN_SWIPE_DISTANCE && \n\t\t\t\t(isFastLastFlick || _releaseAnimData.lastFlickOffset.x > 20) ) {\n\t\t\t\t// go to prev item\n\t\t\t\titemsDiff = -1;\n\t\t\t} else if(totalShiftDist < -MIN_SWIPE_DISTANCE && \n\t\t\t\t(isFastLastFlick || _releaseAnimData.lastFlickOffset.x < -20) ) {\n\t\t\t\t// go to next item\n\t\t\t\titemsDiff = 1;\n\t\t\t}\n\t\t}\n\n\t\tvar nextCircle;\n\n\t\tif(itemsDiff) {\n\t\t\t\n\t\t\t_currentItemIndex += itemsDiff;\n\n\t\t\tif(_currentItemIndex < 0) {\n\t\t\t\t_currentItemIndex = _options.loop ? _getNumItems()-1 : 0;\n\t\t\t\tnextCircle = true;\n\t\t\t} else if(_currentItemIndex >= _getNumItems()) {\n\t\t\t\t_currentItemIndex = _options.loop ? 0 : _getNumItems()-1;\n\t\t\t\tnextCircle = true;\n\t\t\t}\n\n\t\t\tif(!nextCircle || _options.loop) {\n\t\t\t\t_indexDiff += itemsDiff;\n\t\t\t\t_currPositionIndex -= itemsDiff;\n\t\t\t\titemChanged = true;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t}\n\n\t\tvar animateToX = _slideSize.x * _currPositionIndex;\n\t\tvar animateToDist = Math.abs( animateToX - _mainScrollPos.x );\n\t\tvar finishAnimDuration;\n\n\n\t\tif(!itemChanged && animateToX > _mainScrollPos.x !== _releaseAnimData.lastFlickSpeed.x > 0) {\n\t\t\t// \"return to current\" duration, e.g. when dragging from slide 0 to -1\n\t\t\tfinishAnimDuration = 333; \n\t\t} else {\n\t\t\tfinishAnimDuration = Math.abs(_releaseAnimData.lastFlickSpeed.x) > 0 ? \n\t\t\t\t\t\t\t\t\tanimateToDist / Math.abs(_releaseAnimData.lastFlickSpeed.x) : \n\t\t\t\t\t\t\t\t\t333;\n\n\t\t\tfinishAnimDuration = Math.min(finishAnimDuration, 400);\n\t\t\tfinishAnimDuration = Math.max(finishAnimDuration, 250);\n\t\t}\n\n\t\tif(_currZoomedItemIndex === _currentItemIndex) {\n\t\t\titemChanged = false;\n\t\t}\n\t\t\n\t\t_mainScrollAnimating = true;\n\t\t\n\t\t_shout('mainScrollAnimStart');\n\n\t\t_animateProp('mainScroll', _mainScrollPos.x, animateToX, finishAnimDuration, framework.easing.cubic.out, \n\t\t\t_moveMainScroll,\n\t\t\tfunction() {\n\t\t\t\t_stopAllAnimations();\n\t\t\t\t_mainScrollAnimating = false;\n\t\t\t\t_currZoomedItemIndex = -1;\n\t\t\t\t\n\t\t\t\tif(itemChanged || _currZoomedItemIndex !== _currentItemIndex) {\n\t\t\t\t\tself.updateCurrItem();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t_shout('mainScrollAnimComplete');\n\t\t\t}\n\t\t);\n\n\t\tif(itemChanged) {\n\t\t\tself.updateCurrItem(true);\n\t\t}\n\n\t\treturn itemChanged;\n\t},\n\n\t_calculateZoomLevel = function(touchesDistance) {\n\t\treturn 1 / _startPointsDistance * touchesDistance * _startZoomLevel;\n\t},\n\n\t// Resets zoom if it's out of bounds\n\t_completeZoomGesture = function() {\n\t\tvar destZoomLevel = _currZoomLevel,\n\t\t\tminZoomLevel = _getMinZoomLevel(),\n\t\t\tmaxZoomLevel = _getMaxZoomLevel();\n\n\t\tif ( _currZoomLevel < minZoomLevel ) {\n\t\t\tdestZoomLevel = minZoomLevel;\n\t\t} else if ( _currZoomLevel > maxZoomLevel ) {\n\t\t\tdestZoomLevel = maxZoomLevel;\n\t\t}\n\n\t\tvar destOpacity = 1,\n\t\t\tonUpdate,\n\t\t\tinitialOpacity = _bgOpacity;\n\n\t\tif(_opacityChanged && !_isZoomingIn && !_wasOverInitialZoom && _currZoomLevel < minZoomLevel) {\n\t\t\t//_closedByScroll = true;\n\t\t\tself.close();\n\t\t\treturn true;\n\t\t}\n\n\t\tif(_opacityChanged) {\n\t\t\tonUpdate = function(now) {\n\t\t\t\t_applyBgOpacity( (destOpacity - initialOpacity) * now + initialOpacity );\n\t\t\t};\n\t\t}\n\n\t\tself.zoomTo(destZoomLevel, 0, 200, framework.easing.cubic.out, onUpdate);\n\t\treturn true;\n\t};\n\n\n_registerModule('Gestures', {\n\tpublicMethods: {\n\n\t\tinitGestures: function() {\n\n\t\t\t// helper function that builds touch/pointer/mouse events\n\t\t\tvar addEventNames = function(pref, down, move, up, cancel) {\n\t\t\t\t_dragStartEvent = pref + down;\n\t\t\t\t_dragMoveEvent = pref + move;\n\t\t\t\t_dragEndEvent = pref + up;\n\t\t\t\tif(cancel) {\n\t\t\t\t\t_dragCancelEvent = pref + cancel;\n\t\t\t\t} else {\n\t\t\t\t\t_dragCancelEvent = '';\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t_pointerEventEnabled = _features.pointerEvent;\n\t\t\tif(_pointerEventEnabled && _features.touch) {\n\t\t\t\t// we don't need touch events, if browser supports pointer events\n\t\t\t\t_features.touch = false;\n\t\t\t}\n\n\t\t\tif(_pointerEventEnabled) {\n\t\t\t\tif(navigator.msPointerEnabled) {\n\t\t\t\t\t// IE10 pointer events are case-sensitive\n\t\t\t\t\taddEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel');\n\t\t\t\t} else {\n\t\t\t\t\taddEventNames('pointer', 'down', 'move', 'up', 'cancel');\n\t\t\t\t}\n\t\t\t} else if(_features.touch) {\n\t\t\t\taddEventNames('touch', 'start', 'move', 'end', 'cancel');\n\t\t\t\t_likelyTouchDevice = true;\n\t\t\t} else {\n\t\t\t\taddEventNames('mouse', 'down', 'move', 'up');\t\n\t\t\t}\n\n\t\t\t_upMoveEvents = _dragMoveEvent + ' ' + _dragEndEvent + ' ' + _dragCancelEvent;\n\t\t\t_downEvents = _dragStartEvent;\n\n\t\t\tif(_pointerEventEnabled && !_likelyTouchDevice) {\n\t\t\t\t_likelyTouchDevice = (navigator.maxTouchPoints > 1) || (navigator.msMaxTouchPoints > 1);\n\t\t\t}\n\t\t\t// make variable public\n\t\t\tself.likelyTouchDevice = _likelyTouchDevice; \n\t\t\t\n\t\t\t_globalEventHandlers[_dragStartEvent] = _onDragStart;\n\t\t\t_globalEventHandlers[_dragMoveEvent] = _onDragMove;\n\t\t\t_globalEventHandlers[_dragEndEvent] = _onDragRelease; // the Kraken\n\n\t\t\tif(_dragCancelEvent) {\n\t\t\t\t_globalEventHandlers[_dragCancelEvent] = _globalEventHandlers[_dragEndEvent];\n\t\t\t}\n\n\t\t\t// Bind mouse events on device with detected hardware touch support, in case it supports multiple types of input.\n\t\t\tif(_features.touch) {\n\t\t\t\t_downEvents += ' mousedown';\n\t\t\t\t_upMoveEvents += ' mousemove mouseup';\n\t\t\t\t_globalEventHandlers.mousedown = _globalEventHandlers[_dragStartEvent];\n\t\t\t\t_globalEventHandlers.mousemove = _globalEventHandlers[_dragMoveEvent];\n\t\t\t\t_globalEventHandlers.mouseup = _globalEventHandlers[_dragEndEvent];\n\t\t\t}\n\n\t\t\tif(!_likelyTouchDevice) {\n\t\t\t\t// don't allow pan to next slide from zoomed state on Desktop\n\t\t\t\t_options.allowPanToNext = false;\n\t\t\t}\n\t\t}\n\n\t}\n});\n\n\n/*>>gestures*/\n\n/*>>show-hide-transition*/\n/**\n * show-hide-transition.js:\n *\n * Manages initial opening or closing transition.\n *\n * If you're not planning to use transition for gallery at all,\n * you may set options hideAnimationDuration and showAnimationDuration to 0,\n * and just delete startAnimation function.\n * \n */\n\n\nvar _showOrHideTimeout,\n\t_showOrHide = function(item, img, out, completeFn) {\n\n\t\tif(_showOrHideTimeout) {\n\t\t\tclearTimeout(_showOrHideTimeout);\n\t\t}\n\n\t\t_initialZoomRunning = true;\n\t\t_initialContentSet = true;\n\t\t\n\t\t// dimensions of small thumbnail {x:,y:,w:}.\n\t\t// Height is optional, as calculated based on large image.\n\t\tvar thumbBounds; \n\t\tif(item.initialLayout) {\n\t\t\tthumbBounds = item.initialLayout;\n\t\t\titem.initialLayout = null;\n\t\t} else {\n\t\t\tthumbBounds = _options.getThumbBoundsFn && _options.getThumbBoundsFn(_currentItemIndex);\n\t\t}\n\n\t\tvar duration = out ? _options.hideAnimationDuration : _options.showAnimationDuration;\n\n\t\tvar onComplete = function() {\n\t\t\t_stopAnimation('initialZoom');\n\t\t\tif(!out) {\n\t\t\t\t_applyBgOpacity(1);\n\t\t\t\tif(img) {\n\t\t\t\t\timg.style.display = 'block';\n\t\t\t\t}\n\t\t\t\tframework.addClass(template, 'pswp--animated-in');\n\t\t\t\t_shout('initialZoom' + (out ? 'OutEnd' : 'InEnd'));\n\t\t\t} else {\n\t\t\t\tself.template.removeAttribute('style');\n\t\t\t\tself.bg.removeAttribute('style');\n\t\t\t}\n\n\t\t\tif(completeFn) {\n\t\t\t\tcompleteFn();\n\t\t\t}\n\t\t\t_initialZoomRunning = false;\n\t\t};\n\n\t\t// if bounds aren't provided, just open gallery without animation\n\t\tif(!duration || !thumbBounds || thumbBounds.x === undefined) {\n\n\t\t\t_shout('initialZoom' + (out ? 'Out' : 'In') );\n\n\t\t\t_currZoomLevel = item.initialZoomLevel;\n\t\t\t_equalizePoints(_panOffset, item.initialPosition );\n\t\t\t_applyCurrentZoomPan();\n\n\t\t\ttemplate.style.opacity = out ? 0 : 1;\n\t\t\t_applyBgOpacity(1);\n\n\t\t\tif(duration) {\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tonComplete();\n\t\t\t\t}, duration);\n\t\t\t} else {\n\t\t\t\tonComplete();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvar startAnimation = function() {\n\t\t\tvar closeWithRaf = _closedByScroll,\n\t\t\t\tfadeEverything = !self.currItem.src || self.currItem.loadError || _options.showHideOpacity;\n\t\t\t\n\t\t\t// apply hw-acceleration to image\n\t\t\tif(item.miniImg) {\n\t\t\t\titem.miniImg.style.webkitBackfaceVisibility = 'hidden';\n\t\t\t}\n\n\t\t\tif(!out) {\n\t\t\t\t_currZoomLevel = thumbBounds.w / item.w;\n\t\t\t\t_panOffset.x = thumbBounds.x;\n\t\t\t\t_panOffset.y = thumbBounds.y - _initalWindowScrollY;\n\n\t\t\t\tself[fadeEverything ? 'template' : 'bg'].style.opacity = 0.001;\n\t\t\t\t_applyCurrentZoomPan();\n\t\t\t}\n\n\t\t\t_registerStartAnimation('initialZoom');\n\t\t\t\n\t\t\tif(out && !closeWithRaf) {\n\t\t\t\tframework.removeClass(template, 'pswp--animated-in');\n\t\t\t}\n\n\t\t\tif(fadeEverything) {\n\t\t\t\tif(out) {\n\t\t\t\t\tframework[ (closeWithRaf ? 'remove' : 'add') + 'Class' ](template, 'pswp--animate_opacity');\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tframework.addClass(template, 'pswp--animate_opacity');\n\t\t\t\t\t}, 30);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_showOrHideTimeout = setTimeout(function() {\n\n\t\t\t\t_shout('initialZoom' + (out ? 'Out' : 'In') );\n\t\t\t\t\n\n\t\t\t\tif(!out) {\n\n\t\t\t\t\t// \"in\" animation always uses CSS transitions (instead of rAF).\n\t\t\t\t\t// CSS transition work faster here, \n\t\t\t\t\t// as developer may also want to animate other things, \n\t\t\t\t\t// like ui on top of sliding area, which can be animated just via CSS\n\t\t\t\t\t\n\t\t\t\t\t_currZoomLevel = item.initialZoomLevel;\n\t\t\t\t\t_equalizePoints(_panOffset, item.initialPosition );\n\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t_applyBgOpacity(1);\n\n\t\t\t\t\tif(fadeEverything) {\n\t\t\t\t\t\ttemplate.style.opacity = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_applyBgOpacity(1);\n\t\t\t\t\t}\n\n\t\t\t\t\t_showOrHideTimeout = setTimeout(onComplete, duration + 20);\n\t\t\t\t} else {\n\n\t\t\t\t\t// \"out\" animation uses rAF only when PhotoSwipe is closed by browser scroll, to recalculate position\n\t\t\t\t\tvar destZoomLevel = thumbBounds.w / item.w,\n\t\t\t\t\t\tinitialPanOffset = {\n\t\t\t\t\t\t\tx: _panOffset.x,\n\t\t\t\t\t\t\ty: _panOffset.y\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinitialZoomLevel = _currZoomLevel,\n\t\t\t\t\t\tinitalBgOpacity = _bgOpacity,\n\t\t\t\t\t\tonUpdate = function(now) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(now === 1) {\n\t\t\t\t\t\t\t\t_currZoomLevel = destZoomLevel;\n\t\t\t\t\t\t\t\t_panOffset.x = thumbBounds.x;\n\t\t\t\t\t\t\t\t_panOffset.y = thumbBounds.y - _currentWindowScrollY;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_currZoomLevel = (destZoomLevel - initialZoomLevel) * now + initialZoomLevel;\n\t\t\t\t\t\t\t\t_panOffset.x = (thumbBounds.x - initialPanOffset.x) * now + initialPanOffset.x;\n\t\t\t\t\t\t\t\t_panOffset.y = (thumbBounds.y - _currentWindowScrollY - initialPanOffset.y) * now + initialPanOffset.y;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t_applyCurrentZoomPan();\n\t\t\t\t\t\t\tif(fadeEverything) {\n\t\t\t\t\t\t\t\ttemplate.style.opacity = 1 - now;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_applyBgOpacity( initalBgOpacity - now * initalBgOpacity );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\tif(closeWithRaf) {\n\t\t\t\t\t\t_animateProp('initialZoom', 0, 1, duration, framework.easing.cubic.out, onUpdate, onComplete);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tonUpdate(1);\n\t\t\t\t\t\t_showOrHideTimeout = setTimeout(onComplete, duration + 20);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t}, out ? 25 : 90); // Main purpose of this delay is to give browser time to paint and\n\t\t\t\t\t// create composite layers of PhotoSwipe UI parts (background, controls, caption, arrows).\n\t\t\t\t\t// Which avoids lag at the beginning of scale transition.\n\t\t};\n\t\tstartAnimation();\n\n\t\t\n\t};\n\n/*>>show-hide-transition*/\n\n/*>>items-controller*/\n/**\n*\n* Controller manages gallery items, their dimensions, and their content.\n* \n*/\n\nvar _items,\n\t_tempPanAreaSize = {},\n\t_imagesToAppendPool = [],\n\t_initialContentSet,\n\t_initialZoomRunning,\n\t_controllerDefaultOptions = {\n\t\tindex: 0,\n\t\terrorMsg: '
The image could not be loaded.
',\n\t\tforceProgressiveLoading: false, // TODO\n\t\tpreload: [1,1],\n\t\tgetNumItemsFn: function() {\n\t\t\treturn _items.length;\n\t\t}\n\t};\n\n\nvar _getItemAt,\n\t_getNumItems,\n\t_initialIsLoop,\n\t_getZeroBounds = function() {\n\t\treturn {\n\t\t\tcenter:{x:0,y:0}, \n\t\t\tmax:{x:0,y:0}, \n\t\t\tmin:{x:0,y:0}\n\t\t};\n\t},\n\t_calculateSingleItemPanBounds = function(item, realPanElementW, realPanElementH ) {\n\t\tvar bounds = item.bounds;\n\n\t\t// position of element when it's centered\n\t\tbounds.center.x = Math.round((_tempPanAreaSize.x - realPanElementW) / 2);\n\t\tbounds.center.y = Math.round((_tempPanAreaSize.y - realPanElementH) / 2) + item.vGap.top;\n\n\t\t// maximum pan position\n\t\tbounds.max.x = (realPanElementW > _tempPanAreaSize.x) ? \n\t\t\t\t\t\t\tMath.round(_tempPanAreaSize.x - realPanElementW) : \n\t\t\t\t\t\t\tbounds.center.x;\n\t\t\n\t\tbounds.max.y = (realPanElementH > _tempPanAreaSize.y) ? \n\t\t\t\t\t\t\tMath.round(_tempPanAreaSize.y - realPanElementH) + item.vGap.top : \n\t\t\t\t\t\t\tbounds.center.y;\n\t\t\n\t\t// minimum pan position\n\t\tbounds.min.x = (realPanElementW > _tempPanAreaSize.x) ? 0 : bounds.center.x;\n\t\tbounds.min.y = (realPanElementH > _tempPanAreaSize.y) ? item.vGap.top : bounds.center.y;\n\t},\n\t_calculateItemSize = function(item, viewportSize, zoomLevel) {\n\n\t\tif (item.src && !item.loadError) {\n\t\t\tvar isInitial = !zoomLevel;\n\t\t\t\n\t\t\tif(isInitial) {\n\t\t\t\tif(!item.vGap) {\n\t\t\t\t\titem.vGap = {top:0,bottom:0};\n\t\t\t\t}\n\t\t\t\t// allows overriding vertical margin for individual items\n\t\t\t\t_shout('parseVerticalMargin', item);\n\t\t\t}\n\n\n\t\t\t_tempPanAreaSize.x = viewportSize.x;\n\t\t\t_tempPanAreaSize.y = viewportSize.y - item.vGap.top - item.vGap.bottom;\n\n\t\t\tif (isInitial) {\n\t\t\t\tvar hRatio = _tempPanAreaSize.x / item.w;\n\t\t\t\tvar vRatio = _tempPanAreaSize.y / item.h;\n\n\t\t\t\titem.fitRatio = hRatio < vRatio ? hRatio : vRatio;\n\t\t\t\t//item.fillRatio = hRatio > vRatio ? hRatio : vRatio;\n\n\t\t\t\tvar scaleMode = _options.scaleMode;\n\n\t\t\t\tif (scaleMode === 'orig') {\n\t\t\t\t\tzoomLevel = 1;\n\t\t\t\t} else if (scaleMode === 'fit') {\n\t\t\t\t\tzoomLevel = item.fitRatio;\n\t\t\t\t}\n\n\t\t\t\tif (zoomLevel > 1) {\n\t\t\t\t\tzoomLevel = 1;\n\t\t\t\t}\n\n\t\t\t\titem.initialZoomLevel = zoomLevel;\n\t\t\t\t\n\t\t\t\tif(!item.bounds) {\n\t\t\t\t\t// reuse bounds object\n\t\t\t\t\titem.bounds = _getZeroBounds(); \n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!zoomLevel) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_calculateSingleItemPanBounds(item, item.w * zoomLevel, item.h * zoomLevel);\n\n\t\t\tif (isInitial && zoomLevel === item.initialZoomLevel) {\n\t\t\t\titem.initialPosition = item.bounds.center;\n\t\t\t}\n\n\t\t\treturn item.bounds;\n\t\t} else {\n\t\t\titem.w = item.h = 0;\n\t\t\titem.initialZoomLevel = item.fitRatio = 1;\n\t\t\titem.bounds = _getZeroBounds();\n\t\t\titem.initialPosition = item.bounds.center;\n\n\t\t\t// if it's not image, we return zero bounds (content is not zoomable)\n\t\t\treturn item.bounds;\n\t\t}\n\t\t\n\t},\n\n\t\n\n\n\t_appendImage = function(index, item, baseDiv, img, preventAnimation, keepPlaceholder) {\n\t\t\n\n\t\tif(item.loadError) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(img) {\n\n\t\t\titem.imageAppended = true;\n\t\t\t_setImageSize(item, img, (item === self.currItem && _renderMaxResolution) );\n\t\t\t\n\t\t\tbaseDiv.appendChild(img);\n\n\t\t\tif(keepPlaceholder) {\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tif(item && item.loaded && item.placeholder) {\n\t\t\t\t\t\titem.placeholder.style.display = 'none';\n\t\t\t\t\t\titem.placeholder = null;\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t}\n\t},\n\t\n\n\n\t_preloadImage = function(item) {\n\t\titem.loading = true;\n\t\titem.loaded = false;\n\t\tvar img = item.img = framework.createEl('pswp__img', 'img');\n\t\tvar onComplete = function() {\n\t\t\titem.loading = false;\n\t\t\titem.loaded = true;\n\n\t\t\tif(item.loadComplete) {\n\t\t\t\titem.loadComplete(item);\n\t\t\t} else {\n\t\t\t\titem.img = null; // no need to store image object\n\t\t\t}\n\t\t\timg.onload = img.onerror = null;\n\t\t\timg = null;\n\t\t};\n\t\timg.onload = onComplete;\n\t\timg.onerror = function() {\n\t\t\titem.loadError = true;\n\t\t\tonComplete();\n\t\t};\t\t\n\n\t\timg.src = item.src;// + '?a=' + Math.random();\n\n\t\treturn img;\n\t},\n\t_checkForError = function(item, cleanUp) {\n\t\tif(item.src && item.loadError && item.container) {\n\n\t\t\tif(cleanUp) {\n\t\t\t\titem.container.innerHTML = '';\n\t\t\t}\n\n\t\t\titem.container.innerHTML = _options.errorMsg.replace('%url%', item.src );\n\t\t\treturn true;\n\t\t\t\n\t\t}\n\t},\n\t_setImageSize = function(item, img, maxRes) {\n\t\tif(!item.src) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(!img) {\n\t\t\timg = item.container.lastChild;\n\t\t}\n\n\t\tvar w = maxRes ? item.w : Math.round(item.w * item.fitRatio),\n\t\t\th = maxRes ? item.h : Math.round(item.h * item.fitRatio);\n\t\t\n\t\tif(item.placeholder && !item.loaded) {\n\t\t\titem.placeholder.style.width = w + 'px';\n\t\t\titem.placeholder.style.height = h + 'px';\n\t\t}\n\n\t\timg.style.width = w + 'px';\n\t\timg.style.height = h + 'px';\n\t},\n\t_appendImagesPool = function() {\n\n\t\tif(_imagesToAppendPool.length) {\n\t\t\tvar poolItem;\n\n\t\t\tfor(var i = 0; i < _imagesToAppendPool.length; i++) {\n\t\t\t\tpoolItem = _imagesToAppendPool[i];\n\t\t\t\tif( poolItem.holder.index === poolItem.index ) {\n\t\t\t\t\t_appendImage(poolItem.index, poolItem.item, poolItem.baseDiv, poolItem.img, false, poolItem.clearPlaceholder);\n\t\t\t\t}\n\t\t\t}\n\t\t\t_imagesToAppendPool = [];\n\t\t}\n\t};\n\t\n\n\n_registerModule('Controller', {\n\n\tpublicMethods: {\n\n\t\tlazyLoadItem: function(index) {\n\t\t\tindex = _getLoopedId(index);\n\t\t\tvar item = _getItemAt(index);\n\n\t\t\tif(!item || ((item.loaded || item.loading) && !_itemsNeedUpdate)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_shout('gettingData', index, item);\n\n\t\t\tif (!item.src) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_preloadImage(item);\n\t\t},\n\t\tinitController: function() {\n\t\t\tframework.extend(_options, _controllerDefaultOptions, true);\n\t\t\tself.items = _items = items;\n\t\t\t_getItemAt = self.getItemAt;\n\t\t\t_getNumItems = _options.getNumItemsFn; //self.getNumItems;\n\n\n\n\t\t\t_initialIsLoop = _options.loop;\n\t\t\tif(_getNumItems() < 3) {\n\t\t\t\t_options.loop = false; // disable loop if less then 3 items\n\t\t\t}\n\n\t\t\t_listen('beforeChange', function(diff) {\n\n\t\t\t\tvar p = _options.preload,\n\t\t\t\t\tisNext = diff === null ? true : (diff >= 0),\n\t\t\t\t\tpreloadBefore = Math.min(p[0], _getNumItems() ),\n\t\t\t\t\tpreloadAfter = Math.min(p[1], _getNumItems() ),\n\t\t\t\t\ti;\n\n\n\t\t\t\tfor(i = 1; i <= (isNext ? preloadAfter : preloadBefore); i++) {\n\t\t\t\t\tself.lazyLoadItem(_currentItemIndex+i);\n\t\t\t\t}\n\t\t\t\tfor(i = 1; i <= (isNext ? preloadBefore : preloadAfter); i++) {\n\t\t\t\t\tself.lazyLoadItem(_currentItemIndex-i);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_listen('initialLayout', function() {\n\t\t\t\tself.currItem.initialLayout = _options.getThumbBoundsFn && _options.getThumbBoundsFn(_currentItemIndex);\n\t\t\t});\n\n\t\t\t_listen('mainScrollAnimComplete', _appendImagesPool);\n\t\t\t_listen('initialZoomInEnd', _appendImagesPool);\n\n\n\n\t\t\t_listen('destroy', function() {\n\t\t\t\tvar item;\n\t\t\t\tfor(var i = 0; i < _items.length; i++) {\n\t\t\t\t\titem = _items[i];\n\t\t\t\t\t// remove reference to DOM elements, for GC\n\t\t\t\t\tif(item.container) {\n\t\t\t\t\t\titem.container = null; \n\t\t\t\t\t}\n\t\t\t\t\tif(item.placeholder) {\n\t\t\t\t\t\titem.placeholder = null;\n\t\t\t\t\t}\n\t\t\t\t\tif(item.img) {\n\t\t\t\t\t\titem.img = null;\n\t\t\t\t\t}\n\t\t\t\t\tif(item.preloader) {\n\t\t\t\t\t\titem.preloader = null;\n\t\t\t\t\t}\n\t\t\t\t\tif(item.loadError) {\n\t\t\t\t\t\titem.loaded = item.loadError = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t_imagesToAppendPool = null;\n\t\t\t});\n\t\t},\n\n\n\t\tgetItemAt: function(index) {\n\t\t\tif (index >= 0) {\n\t\t\t\treturn _items[index] !== undefined ? _items[index] : false;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\n\t\tallowProgressiveImg: function() {\n\t\t\t// 1. Progressive image loading isn't working on webkit/blink \n\t\t\t// when hw-acceleration (e.g. translateZ) is applied to IMG element.\n\t\t\t// That's why in PhotoSwipe parent element gets zoom transform, not image itself.\n\t\t\t// \n\t\t\t// 2. Progressive image loading sometimes blinks in webkit/blink when applying animation to parent element.\n\t\t\t// That's why it's disabled on touch devices (mainly because of swipe transition)\n\t\t\t// \n\t\t\t// 3. Progressive image loading sometimes doesn't work in IE (up to 11).\n\n\t\t\t// Don't allow progressive loading on non-large touch devices\n\t\t\treturn _options.forceProgressiveLoading || !_likelyTouchDevice || _options.mouseUsed || screen.width > 1200; \n\t\t\t// 1200 - to eliminate touch devices with large screen (like Chromebook Pixel)\n\t\t},\n\n\t\tsetContent: function(holder, index) {\n\n\t\t\tif(_options.loop) {\n\t\t\t\tindex = _getLoopedId(index);\n\t\t\t}\n\n\t\t\tvar prevItem = self.getItemAt(holder.index);\n\t\t\tif(prevItem) {\n\t\t\t\tprevItem.container = null;\n\t\t\t}\n\t\n\t\t\tvar item = self.getItemAt(index),\n\t\t\t\timg;\n\t\t\t\n\t\t\tif(!item) {\n\t\t\t\tholder.el.innerHTML = '';\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// allow to override data\n\t\t\t_shout('gettingData', index, item);\n\n\t\t\tholder.index = index;\n\t\t\tholder.item = item;\n\n\t\t\t// base container DIV is created only once for each of 3 holders\n\t\t\tvar baseDiv = item.container = framework.createEl('pswp__zoom-wrap'); \n\n\t\t\t\n\n\t\t\tif(!item.src && item.html) {\n\t\t\t\tif(item.html.tagName) {\n\t\t\t\t\tbaseDiv.appendChild(item.html);\n\t\t\t\t} else {\n\t\t\t\t\tbaseDiv.innerHTML = item.html;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_checkForError(item);\n\n\t\t\t_calculateItemSize(item, _viewportSize);\n\t\t\t\n\t\t\tif(item.src && !item.loadError && !item.loaded) {\n\n\t\t\t\titem.loadComplete = function(item) {\n\n\t\t\t\t\t// gallery closed before image finished loading\n\t\t\t\t\tif(!_isOpen) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// check if holder hasn't changed while image was loading\n\t\t\t\t\tif(holder && holder.index === index ) {\n\t\t\t\t\t\tif( _checkForError(item, true) ) {\n\t\t\t\t\t\t\titem.loadComplete = item.img = null;\n\t\t\t\t\t\t\t_calculateItemSize(item, _viewportSize);\n\t\t\t\t\t\t\t_applyZoomPanToItem(item);\n\n\t\t\t\t\t\t\tif(holder.index === _currentItemIndex) {\n\t\t\t\t\t\t\t\t// recalculate dimensions\n\t\t\t\t\t\t\t\tself.updateCurrZoomItem();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( !item.imageAppended ) {\n\t\t\t\t\t\t\tif(_features.transform && (_mainScrollAnimating || _initialZoomRunning) ) {\n\t\t\t\t\t\t\t\t_imagesToAppendPool.push({\n\t\t\t\t\t\t\t\t\titem:item,\n\t\t\t\t\t\t\t\t\tbaseDiv:baseDiv,\n\t\t\t\t\t\t\t\t\timg:item.img,\n\t\t\t\t\t\t\t\t\tindex:index,\n\t\t\t\t\t\t\t\t\tholder:holder,\n\t\t\t\t\t\t\t\t\tclearPlaceholder:true\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_appendImage(index, item, baseDiv, item.img, _mainScrollAnimating || _initialZoomRunning, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// remove preloader & mini-img\n\t\t\t\t\t\t\tif(!_initialZoomRunning && item.placeholder) {\n\t\t\t\t\t\t\t\titem.placeholder.style.display = 'none';\n\t\t\t\t\t\t\t\titem.placeholder = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\titem.loadComplete = null;\n\t\t\t\t\titem.img = null; // no need to store image element after it's added\n\n\t\t\t\t\t_shout('imageLoadComplete', index, item);\n\t\t\t\t};\n\n\t\t\t\tif(framework.features.transform) {\n\t\t\t\t\t\n\t\t\t\t\tvar placeholderClassName = 'pswp__img pswp__img--placeholder'; \n\t\t\t\t\tplaceholderClassName += (item.msrc ? '' : ' pswp__img--placeholder--blank');\n\n\t\t\t\t\tvar placeholder = framework.createEl(placeholderClassName, item.msrc ? 'img' : '');\n\t\t\t\t\tif(item.msrc) {\n\t\t\t\t\t\tplaceholder.src = item.msrc;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t_setImageSize(item, placeholder);\n\n\t\t\t\t\tbaseDiv.appendChild(placeholder);\n\t\t\t\t\titem.placeholder = placeholder;\n\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\tif(!item.loading) {\n\t\t\t\t\t_preloadImage(item);\n\t\t\t\t}\n\n\n\t\t\t\tif( self.allowProgressiveImg() ) {\n\t\t\t\t\t// just append image\n\t\t\t\t\tif(!_initialContentSet && _features.transform) {\n\t\t\t\t\t\t_imagesToAppendPool.push({\n\t\t\t\t\t\t\titem:item, \n\t\t\t\t\t\t\tbaseDiv:baseDiv, \n\t\t\t\t\t\t\timg:item.img, \n\t\t\t\t\t\t\tindex:index, \n\t\t\t\t\t\t\tholder:holder\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_appendImage(index, item, baseDiv, item.img, true, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else if(item.src && !item.loadError) {\n\t\t\t\t// image object is created every time, due to bugs of image loading & delay when switching images\n\t\t\t\timg = framework.createEl('pswp__img', 'img');\n\t\t\t\timg.style.opacity = 1;\n\t\t\t\timg.src = item.src;\n\t\t\t\t_setImageSize(item, img);\n\t\t\t\t_appendImage(index, item, baseDiv, img, true);\n\t\t\t}\n\t\t\t\n\n\t\t\tif(!_initialContentSet && index === _currentItemIndex) {\n\t\t\t\t_currZoomElementStyle = baseDiv.style;\n\t\t\t\t_showOrHide(item, (img ||item.img) );\n\t\t\t} else {\n\t\t\t\t_applyZoomPanToItem(item);\n\t\t\t}\n\n\t\t\tholder.el.innerHTML = '';\n\t\t\tholder.el.appendChild(baseDiv);\n\t\t},\n\n\t\tcleanSlide: function( item ) {\n\t\t\tif(item.img ) {\n\t\t\t\titem.img.onload = item.img.onerror = null;\n\t\t\t}\n\t\t\titem.loaded = item.loading = item.img = item.imageAppended = false;\n\t\t}\n\n\t}\n});\n\n/*>>items-controller*/\n\n/*>>tap*/\n/**\n * tap.js:\n *\n * Displatches tap and double-tap events.\n * \n */\n\nvar tapTimer,\n\ttapReleasePoint = {},\n\t_dispatchTapEvent = function(origEvent, releasePoint, pointerType) {\t\t\n\t\tvar e = document.createEvent( 'CustomEvent' ),\n\t\t\teDetail = {\n\t\t\t\torigEvent:origEvent, \n\t\t\t\ttarget:origEvent.target, \n\t\t\t\treleasePoint: releasePoint, \n\t\t\t\tpointerType:pointerType || 'touch'\n\t\t\t};\n\n\t\te.initCustomEvent( 'pswpTap', true, true, eDetail );\n\t\torigEvent.target.dispatchEvent(e);\n\t};\n\n_registerModule('Tap', {\n\tpublicMethods: {\n\t\tinitTap: function() {\n\t\t\t_listen('firstTouchStart', self.onTapStart);\n\t\t\t_listen('touchRelease', self.onTapRelease);\n\t\t\t_listen('destroy', function() {\n\t\t\t\ttapReleasePoint = {};\n\t\t\t\ttapTimer = null;\n\t\t\t});\n\t\t},\n\t\tonTapStart: function(touchList) {\n\t\t\tif(touchList.length > 1) {\n\t\t\t\tclearTimeout(tapTimer);\n\t\t\t\ttapTimer = null;\n\t\t\t}\n\t\t},\n\t\tonTapRelease: function(e, releasePoint) {\n\t\t\tif(!releasePoint) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(!_moved && !_isMultitouch && !_numAnimations) {\n\t\t\t\tvar p0 = releasePoint;\n\t\t\t\tif(tapTimer) {\n\t\t\t\t\tclearTimeout(tapTimer);\n\t\t\t\t\ttapTimer = null;\n\n\t\t\t\t\t// Check if taped on the same place\n\t\t\t\t\tif ( _isNearbyPoints(p0, tapReleasePoint) ) {\n\t\t\t\t\t\t_shout('doubleTap', p0);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(releasePoint.type === 'mouse') {\n\t\t\t\t\t_dispatchTapEvent(e, releasePoint, 'mouse');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar clickedTagName = e.target.tagName.toUpperCase();\n\t\t\t\t// avoid double tap delay on buttons and elements that have class pswp__single-tap\n\t\t\t\tif(clickedTagName === 'BUTTON' || framework.hasClass(e.target, 'pswp__single-tap') ) {\n\t\t\t\t\t_dispatchTapEvent(e, releasePoint);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t_equalizePoints(tapReleasePoint, p0);\n\n\t\t\t\ttapTimer = setTimeout(function() {\n\t\t\t\t\t_dispatchTapEvent(e, releasePoint);\n\t\t\t\t\ttapTimer = null;\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t}\n\t}\n});\n\n/*>>tap*/\n\n/*>>desktop-zoom*/\n/**\n *\n * desktop-zoom.js:\n *\n * - Binds mousewheel event for paning zoomed image.\n * - Manages \"dragging\", \"zoomed-in\", \"zoom-out\" classes.\n * (which are used for cursors and zoom icon)\n * - Adds toggleDesktopZoom function.\n * \n */\n\nvar _wheelDelta;\n\t\n_registerModule('DesktopZoom', {\n\n\tpublicMethods: {\n\n\t\tinitDesktopZoom: function() {\n\n\t\t\tif(_oldIE) {\n\t\t\t\t// no zoom for old IE (<=8)\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(_likelyTouchDevice) {\n\t\t\t\t// if detected hardware touch support, we wait until mouse is used,\n\t\t\t\t// and only then apply desktop-zoom features\n\t\t\t\t_listen('mouseUsed', function() {\n\t\t\t\t\tself.setupDesktopZoom();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tself.setupDesktopZoom(true);\n\t\t\t}\n\n\t\t},\n\n\t\tsetupDesktopZoom: function(onInit) {\n\n\t\t\t_wheelDelta = {};\n\n\t\t\tvar events = 'wheel mousewheel DOMMouseScroll';\n\t\t\t\n\t\t\t_listen('bindEvents', function() {\n\t\t\t\tframework.bind(template, events, self.handleMouseWheel);\n\t\t\t});\n\n\t\t\t_listen('unbindEvents', function() {\n\t\t\t\tif(_wheelDelta) {\n\t\t\t\t\tframework.unbind(template, events, self.handleMouseWheel);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.mouseZoomedIn = false;\n\n\t\t\tvar hasDraggingClass,\n\t\t\t\tupdateZoomable = function() {\n\t\t\t\t\tif(self.mouseZoomedIn) {\n\t\t\t\t\t\tframework.removeClass(template, 'pswp--zoomed-in');\n\t\t\t\t\t\tself.mouseZoomedIn = false;\n\t\t\t\t\t}\n\t\t\t\t\tif(_currZoomLevel < 1) {\n\t\t\t\t\t\tframework.addClass(template, 'pswp--zoom-allowed');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tframework.removeClass(template, 'pswp--zoom-allowed');\n\t\t\t\t\t}\n\t\t\t\t\tremoveDraggingClass();\n\t\t\t\t},\n\t\t\t\tremoveDraggingClass = function() {\n\t\t\t\t\tif(hasDraggingClass) {\n\t\t\t\t\t\tframework.removeClass(template, 'pswp--dragging');\n\t\t\t\t\t\thasDraggingClass = false;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t_listen('resize' , updateZoomable);\n\t\t\t_listen('afterChange' , updateZoomable);\n\t\t\t_listen('pointerDown', function() {\n\t\t\t\tif(self.mouseZoomedIn) {\n\t\t\t\t\thasDraggingClass = true;\n\t\t\t\t\tframework.addClass(template, 'pswp--dragging');\n\t\t\t\t}\n\t\t\t});\n\t\t\t_listen('pointerUp', removeDraggingClass);\n\n\t\t\tif(!onInit) {\n\t\t\t\tupdateZoomable();\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t\thandleMouseWheel: function(e) {\n\n\t\t\tif(_currZoomLevel <= self.currItem.fitRatio) {\n\t\t\t\tif( _options.modal ) {\n\n\t\t\t\t\tif (!_options.closeOnScroll || _numAnimations || _isDragging) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if(_transformKey && Math.abs(e.deltaY) > 2) {\n\t\t\t\t\t\t// close PhotoSwipe\n\t\t\t\t\t\t// if browser supports transforms & scroll changed enough\n\t\t\t\t\t\t_closedByScroll = true;\n\t\t\t\t\t\tself.close();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// allow just one event to fire\n\t\t\te.stopPropagation();\n\n\t\t\t// https://developer.mozilla.org/en-US/docs/Web/Events/wheel\n\t\t\t_wheelDelta.x = 0;\n\n\t\t\tif('deltaX' in e) {\n\t\t\t\tif(e.deltaMode === 1 /* DOM_DELTA_LINE */) {\n\t\t\t\t\t// 18 - average line height\n\t\t\t\t\t_wheelDelta.x = e.deltaX * 18;\n\t\t\t\t\t_wheelDelta.y = e.deltaY * 18;\n\t\t\t\t} else {\n\t\t\t\t\t_wheelDelta.x = e.deltaX;\n\t\t\t\t\t_wheelDelta.y = e.deltaY;\n\t\t\t\t}\n\t\t\t} else if('wheelDelta' in e) {\n\t\t\t\tif(e.wheelDeltaX) {\n\t\t\t\t\t_wheelDelta.x = -0.16 * e.wheelDeltaX;\n\t\t\t\t}\n\t\t\t\tif(e.wheelDeltaY) {\n\t\t\t\t\t_wheelDelta.y = -0.16 * e.wheelDeltaY;\n\t\t\t\t} else {\n\t\t\t\t\t_wheelDelta.y = -0.16 * e.wheelDelta;\n\t\t\t\t}\n\t\t\t} else if('detail' in e) {\n\t\t\t\t_wheelDelta.y = e.detail;\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_calculatePanBounds(_currZoomLevel, true);\n\n\t\t\tvar newPanX = _panOffset.x - _wheelDelta.x,\n\t\t\t\tnewPanY = _panOffset.y - _wheelDelta.y;\n\n\t\t\t// only prevent scrolling in nonmodal mode when not at edges\n\t\t\tif (_options.modal ||\n\t\t\t\t(\n\t\t\t\tnewPanX <= _currPanBounds.min.x && newPanX >= _currPanBounds.max.x &&\n\t\t\t\tnewPanY <= _currPanBounds.min.y && newPanY >= _currPanBounds.max.y\n\t\t\t\t) ) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\t// TODO: use rAF instead of mousewheel?\n\t\t\tself.panTo(newPanX, newPanY);\n\t\t},\n\n\t\ttoggleDesktopZoom: function(centerPoint) {\n\t\t\tcenterPoint = centerPoint || {x:_viewportSize.x/2 + _offset.x, y:_viewportSize.y/2 + _offset.y };\n\n\t\t\tvar doubleTapZoomLevel = _options.getDoubleTapZoom(true, self.currItem);\n\t\t\tvar zoomOut = _currZoomLevel === doubleTapZoomLevel;\n\t\t\t\n\t\t\tself.mouseZoomedIn = !zoomOut;\n\n\t\t\tself.zoomTo(zoomOut ? self.currItem.initialZoomLevel : doubleTapZoomLevel, centerPoint, 333);\n\t\t\tframework[ (!zoomOut ? 'add' : 'remove') + 'Class'](template, 'pswp--zoomed-in');\n\t\t}\n\n\t}\n});\n\n\n/*>>desktop-zoom*/\n\n/*>>history*/\n/**\n *\n * history.js:\n *\n * - Back button to close gallery.\n * \n * - Unique URL for each slide: example.com/&pid=1&gid=3\n * (where PID is picture index, and GID and gallery index)\n * \n * - Switch URL when slides change.\n * \n */\n\n\nvar _historyDefaultOptions = {\n\thistory: true,\n\tgalleryUID: 1\n};\n\nvar _historyUpdateTimeout,\n\t_hashChangeTimeout,\n\t_hashAnimCheckTimeout,\n\t_hashChangedByScript,\n\t_hashChangedByHistory,\n\t_hashReseted,\n\t_initialHash,\n\t_historyChanged,\n\t_closedFromURL,\n\t_urlChangedOnce,\n\t_windowLoc,\n\n\t_supportsPushState,\n\n\t_getHash = function() {\n\t\treturn _windowLoc.hash.substring(1);\n\t},\n\t_cleanHistoryTimeouts = function() {\n\n\t\tif(_historyUpdateTimeout) {\n\t\t\tclearTimeout(_historyUpdateTimeout);\n\t\t}\n\n\t\tif(_hashAnimCheckTimeout) {\n\t\t\tclearTimeout(_hashAnimCheckTimeout);\n\t\t}\n\t},\n\n\t// pid - Picture index\n\t// gid - Gallery index\n\t_parseItemIndexFromURL = function() {\n\t\tvar hash = _getHash(),\n\t\t\tparams = {};\n\n\t\tif(hash.length < 5) { // pid=1\n\t\t\treturn params;\n\t\t}\n\n\t\tvar i, vars = hash.split('&');\n\t\tfor (i = 0; i < vars.length; i++) {\n\t\t\tif(!vars[i]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar pair = vars[i].split('=');\t\n\t\t\tif(pair.length < 2) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tparams[pair[0]] = pair[1];\n\t\t}\n\t\tif(_options.galleryPIDs) {\n\t\t\t// detect custom pid in hash and search for it among the items collection\n\t\t\tvar searchfor = params.pid;\n\t\t\tparams.pid = 0; // if custom pid cannot be found, fallback to the first item\n\t\t\tfor(i = 0; i < _items.length; i++) {\n\t\t\t\tif(_items[i].pid === searchfor) {\n\t\t\t\t\tparams.pid = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tparams.pid = parseInt(params.pid,10)-1;\n\t\t}\n\t\tif( params.pid < 0 ) {\n\t\t\tparams.pid = 0;\n\t\t}\n\t\treturn params;\n\t},\n\t_updateHash = function() {\n\n\t\tif(_hashAnimCheckTimeout) {\n\t\t\tclearTimeout(_hashAnimCheckTimeout);\n\t\t}\n\n\n\t\tif(_numAnimations || _isDragging) {\n\t\t\t// changing browser URL forces layout/paint in some browsers, which causes noticable lag during animation\n\t\t\t// that's why we update hash only when no animations running\n\t\t\t_hashAnimCheckTimeout = setTimeout(_updateHash, 500);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif(_hashChangedByScript) {\n\t\t\tclearTimeout(_hashChangeTimeout);\n\t\t} else {\n\t\t\t_hashChangedByScript = true;\n\t\t}\n\n\n\t\tvar pid = (_currentItemIndex + 1);\n\t\tvar item = _getItemAt( _currentItemIndex );\n\t\tif(item.hasOwnProperty('pid')) {\n\t\t\t// carry forward any custom pid assigned to the item\n\t\t\tpid = item.pid;\n\t\t}\n\t\tvar newHash = _initialHash + '&' + 'gid=' + _options.galleryUID + '&' + 'pid=' + pid;\n\n\t\tif(!_historyChanged) {\n\t\t\tif(_windowLoc.hash.indexOf(newHash) === -1) {\n\t\t\t\t_urlChangedOnce = true;\n\t\t\t}\n\t\t\t// first time - add new hisory record, then just replace\n\t\t}\n\n\t\tvar newURL = _windowLoc.href.split('#')[0] + '#' + newHash;\n\n\t\tif( _supportsPushState ) {\n\n\t\t\tif('#' + newHash !== window.location.hash) {\n\t\t\t\thistory[_historyChanged ? 'replaceState' : 'pushState']('', document.title, newURL);\n\t\t\t}\n\n\t\t} else {\n\t\t\tif(_historyChanged) {\n\t\t\t\t_windowLoc.replace( newURL );\n\t\t\t} else {\n\t\t\t\t_windowLoc.hash = newHash;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\n\t\t_historyChanged = true;\n\t\t_hashChangeTimeout = setTimeout(function() {\n\t\t\t_hashChangedByScript = false;\n\t\t}, 60);\n\t};\n\n\n\n\t\n\n_registerModule('History', {\n\n\t\n\n\tpublicMethods: {\n\t\tinitHistory: function() {\n\n\t\t\tframework.extend(_options, _historyDefaultOptions, true);\n\n\t\t\tif( !_options.history ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\t_windowLoc = window.location;\n\t\t\t_urlChangedOnce = false;\n\t\t\t_closedFromURL = false;\n\t\t\t_historyChanged = false;\n\t\t\t_initialHash = _getHash();\n\t\t\t_supportsPushState = ('pushState' in history);\n\n\n\t\t\tif(_initialHash.indexOf('gid=') > -1) {\n\t\t\t\t_initialHash = _initialHash.split('&gid=')[0];\n\t\t\t\t_initialHash = _initialHash.split('?gid=')[0];\n\t\t\t}\n\t\t\t\n\n\t\t\t_listen('afterChange', self.updateURL);\n\t\t\t_listen('unbindEvents', function() {\n\t\t\t\tframework.unbind(window, 'hashchange', self.onHashChange);\n\t\t\t});\n\n\n\t\t\tvar returnToOriginal = function() {\n\t\t\t\t_hashReseted = true;\n\t\t\t\tif(!_closedFromURL) {\n\n\t\t\t\t\tif(_urlChangedOnce) {\n\t\t\t\t\t\thistory.back();\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif(_initialHash) {\n\t\t\t\t\t\t\t_windowLoc.hash = _initialHash;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (_supportsPushState) {\n\n\t\t\t\t\t\t\t\t// remove hash from url without refreshing it or scrolling to top\n\t\t\t\t\t\t\t\thistory.pushState('', document.title, _windowLoc.pathname + _windowLoc.search );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_windowLoc.hash = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t\t_cleanHistoryTimeouts();\n\t\t\t};\n\n\n\t\t\t_listen('unbindEvents', function() {\n\t\t\t\tif(_closedByScroll) {\n\t\t\t\t\t// if PhotoSwipe is closed by scroll, we go \"back\" before the closing animation starts\n\t\t\t\t\t// this is done to keep the scroll position\n\t\t\t\t\treturnToOriginal();\n\t\t\t\t}\n\t\t\t});\n\t\t\t_listen('destroy', function() {\n\t\t\t\tif(!_hashReseted) {\n\t\t\t\t\treturnToOriginal();\n\t\t\t\t}\n\t\t\t});\n\t\t\t_listen('firstUpdate', function() {\n\t\t\t\t_currentItemIndex = _parseItemIndexFromURL().pid;\n\t\t\t});\n\n\t\t\t\n\n\t\t\t\n\t\t\tvar index = _initialHash.indexOf('pid=');\n\t\t\tif(index > -1) {\n\t\t\t\t_initialHash = _initialHash.substring(0, index);\n\t\t\t\tif(_initialHash.slice(-1) === '&') {\n\t\t\t\t\t_initialHash = _initialHash.slice(0, -1);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tif(_isOpen) { // hasn't destroyed yet\n\t\t\t\t\tframework.bind(window, 'hashchange', self.onHashChange);\n\t\t\t\t}\n\t\t\t}, 40);\n\t\t\t\n\t\t},\n\t\tonHashChange: function() {\n\n\t\t\tif(_getHash() === _initialHash) {\n\n\t\t\t\t_closedFromURL = true;\n\t\t\t\tself.close();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(!_hashChangedByScript) {\n\n\t\t\t\t_hashChangedByHistory = true;\n\t\t\t\tself.goTo( _parseItemIndexFromURL().pid );\n\t\t\t\t_hashChangedByHistory = false;\n\t\t\t}\n\t\t\t\n\t\t},\n\t\tupdateURL: function() {\n\n\t\t\t// Delay the update of URL, to avoid lag during transition, \n\t\t\t// and to not to trigger actions like \"refresh page sound\" or \"blinking favicon\" to often\n\t\t\t\n\t\t\t_cleanHistoryTimeouts();\n\t\t\t\n\n\t\t\tif(_hashChangedByHistory) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(!_historyChanged) {\n\t\t\t\t_updateHash(); // first time\n\t\t\t} else {\n\t\t\t\t_historyUpdateTimeout = setTimeout(_updateHash, 800);\n\t\t\t}\n\t\t}\n\t\n\t}\n});\n\n\n/*>>history*/\n\tframework.extend(self, publicMethods); };\n\treturn PhotoSwipe;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/core/vendor/photoswipe/photoswipe.js\n// module id = /home/vsts/work/1/s/src/SCF/client/src/core/vendor/photoswipe/photoswipe.js\n// module chunks = site__scf001 site__csl001","var map = {\n\t\"./SCF-logo-30-Years.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo-30-Years.svg\",\n\t\"./SCF-logo.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo.svg\",\n\t\"./add.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/add.svg\",\n\t\"./alert.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/alert.svg\",\n\t\"./anchor-down.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-down.svg\",\n\t\"./anchor-up.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-up.svg\",\n\t\"./arrow-left.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-left.svg\",\n\t\"./arrow-right.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-right.svg\",\n\t\"./article.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/article.svg\",\n\t\"./australia.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/australia.svg\",\n\t\"./calendar.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/calendar.svg\",\n\t\"./check-circle-filled.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle-filled.svg\",\n\t\"./check-circle.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle.svg\",\n\t\"./check.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check.svg\",\n\t\"./chevron-down.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-down.svg\",\n\t\"./chevron-left.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-left.svg\",\n\t\"./chevron-right.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-right.svg\",\n\t\"./chevron-up.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-up.svg\",\n\t\"./choose-container-white.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/choose-container-white.svg\",\n\t\"./clock.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/clock.svg\",\n\t\"./close-circle-filled.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-circle-filled.svg\",\n\t\"./close-small.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-small.svg\",\n\t\"./comparison-check.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-check.svg\",\n\t\"./comparison-uncheck.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-uncheck.svg\",\n\t\"./container-simple.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container-simple.svg\",\n\t\"./container.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container.svg\",\n\t\"./dot-scf.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot-scf.svg\",\n\t\"./dot.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot.svg\",\n\t\"./download.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/download.svg\",\n\t\"./edit.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/edit.svg\",\n\t\"./email.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/email.svg\",\n\t\"./enquire-nav-completed.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-completed.svg\",\n\t\"./enquire-nav-current.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-current.svg\",\n\t\"./enquire-nav-default.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-default.svg\",\n\t\"./expand.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/expand.svg\",\n\t\"./fax.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/fax.svg\",\n\t\"./feature-container.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-container.svg\",\n\t\"./feature-flag.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-flag.svg\",\n\t\"./feature-handshake.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-handshake.svg\",\n\t\"./feature-happy.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-happy.svg\",\n\t\"./feature-idea.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-idea.svg\",\n\t\"./feature-padlock.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-padlock.svg\",\n\t\"./feature-phone.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-phone.svg\",\n\t\"./feature-product-selector.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-product-selector.svg\",\n\t\"./feature-shipping.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-shipping.svg\",\n\t\"./feature-thinking.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-thinking.svg\",\n\t\"./feature-tick.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-tick.svg\",\n\t\"./hamburger.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/hamburger.svg\",\n\t\"./info.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/info.svg\",\n\t\"./map.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/map.svg\",\n\t\"./menu-close.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-close.svg\",\n\t\"./menu-open.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-open.svg\",\n\t\"./minus.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/minus.svg\",\n\t\"./money.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/money.svg\",\n\t\"./nz-truck.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/nz-truck.svg\",\n\t\"./person.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/person.svg\",\n\t\"./phone-filled.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-filled.svg\",\n\t\"./phone-outline.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-outline.svg\",\n\t\"./pin.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/pin.svg\",\n\t\"./play.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/play.svg\",\n\t\"./plus.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/plus.svg\",\n\t\"./ps-accommodation.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-accommodation.svg\",\n\t\"./ps-bulk-liquid.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-liquid.svg\",\n\t\"./ps-bulk-powder.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-powder.svg\",\n\t\"./ps-capacity-large.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-large.svg\",\n\t\"./ps-capacity-medium.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-medium.svg\",\n\t\"./ps-capacity-small.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-small.svg\",\n\t\"./ps-capacity.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity.svg\",\n\t\"./ps-chemicals.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-chemicals.svg\",\n\t\"./ps-dangerous-goods.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dangerous-goods.svg\",\n\t\"./ps-dimensions.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dimensions.svg\",\n\t\"./ps-dont-mind.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dont-mind.svg\",\n\t\"./ps-entrance-end.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-end.svg\",\n\t\"./ps-entrance-side.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-side.svg\",\n\t\"./ps-grain.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-grain.svg\",\n\t\"./ps-liquid-containment.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid-containment.svg\",\n\t\"./ps-liquid.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid.svg\",\n\t\"./ps-palletised.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-palletised.svg\",\n\t\"./ps-pallets-20.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-20.svg\",\n\t\"./ps-pallets-40.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-40.svg\",\n\t\"./ps-pallets-44.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-44.svg\",\n\t\"./ps-pallets-48.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-48.svg\",\n\t\"./ps-powder.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-powder.svg\",\n\t\"./ps-refrigerated.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-refrigerated.svg\",\n\t\"./ps-selector-feature.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-selector-feature.svg\",\n\t\"./ps-size-large.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-large.svg\",\n\t\"./ps-size-medium.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-medium.svg\",\n\t\"./ps-size-small.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-small.svg\",\n\t\"./ps-step1.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step1.svg\",\n\t\"./ps-step2.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step2.svg\",\n\t\"./ps-step3.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step3.svg\",\n\t\"./ps-storage.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-storage.svg\",\n\t\"./ps-tank-capacity-liquid-large.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-large.svg\",\n\t\"./ps-tank-capacity-liquid-medium.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-medium.svg\",\n\t\"./ps-tank-capacity-liquid-small.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-small.svg\",\n\t\"./ps-tank-capacity-powder-medium.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-medium.svg\",\n\t\"./ps-tank-capacity-powder-small.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-small.svg\",\n\t\"./ps-transport.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-transport.svg\",\n\t\"./question.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/question.svg\",\n\t\"./quote.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/quote.svg\",\n\t\"./remove.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/remove.svg\",\n\t\"./rewind.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/rewind.svg\",\n\t\"./search-complex.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-complex.svg\",\n\t\"./search-simple.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-simple.svg\",\n\t\"./social-facebook.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-facebook.svg\",\n\t\"./social-instagram.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-instagram.svg\",\n\t\"./social-linkedin.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-linkedin.svg\",\n\t\"./social-twitter.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-twitter.svg\",\n\t\"./social-youtube.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-youtube.svg\",\n\t\"./spinner.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/spinner.svg\",\n\t\"./star.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/star.svg\",\n\t\"./talk.svg\": \"/home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/talk.svg\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites nonrecursive /\\\\.svg$/\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites nonrecursive \\.svg$\n// module id = /home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites nonrecursive /\\.svg$/\n// module chunks = site__scf001","// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this, args = arguments;\n var later = function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/core/plugins/lib/fn.js","/*\njQuery plugin\n\n\n```\nimport debug from 'debug';\nimport plugin from '@core/plugins/lib';\n\nconst ELEMENT_SELECTOR = '[data-my-plugin]';\nconst PLUGIN_NAME = 'MyPlugin';\nconst MODULE_NAME = 'plugins/my-plugin';\nconst log = debug(MODULE_NAME);\n\nclass PluginKlass {\n constructor(element, options) {\n log('new instance', element, options);\n\n this.element = element;\n this.options = options;\n this.$element = $(element);\n\n log('ready', this.$element);\n\n this.init();\n }\n}\n\nPluginKlass.DEFAULTS = {\n someCamelCasedProperty: `${PLUGIN_NAME}:something`,\n};\n\nplugin(PLUGIN_NAME, PluginKlass);\n\n$(document).ready(() => {\n $(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n```\n\nThen using it in html:\n```\n
\n```\n\nStyelguide Core.Global.Javascript.JqueryPlugin\n*/\nimport $ from 'jquery';\nimport debug from 'debug';\n\nimport * as fn from './fn';\nimport * as strings from './strings';\nimport * as objects from './objects';\nimport * as selectors from './selectors';\n// import * as events from './events';\n\nimport {toCamelCase} from './strings';\nimport { selectTarget } from './selectors';\n\nconst log = debug('core/plugins/lib');\n\nexport default function plugin(pluginName, klass, shortHand = false) {\n const formattedPluginName = toCamelCase(pluginName);\n const dataName = `__${formattedPluginName}`;\n const old = $.fn[formattedPluginName];\n const ZERO = 0;\n\n klass.$bus = {\n subscribe: function(event, fn) {\n $(this).bind(event, fn);\n },\n publish: function(event, data) {\n $(this).trigger(event, [data]);\n }\n };\n\n klass.$util = {\n fn,\n objects,\n strings,\n selectors,\n };\n\n klass.prototype.selectors = selectors;\n klass.prototype.strings = strings;\n klass.prototype.objects = objects;\n klass.prototype.fn = fn;\n klass.prototype.inViewport = function (elm) {\n var rect = elm.getBoundingClientRect();\n var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n return !(rect.bottom < 0 || rect.top - viewHeight >= 0);\n };\n\n $.fn[pluginName] = function PluginFactory (option) {\n return this.each(function PluginInstanceFactory () {\n const $this = $(this);\n const data = $this.data();\n const overrides = typeof option === 'object' && option;\n const elementOptions = Object\n .keys(data)\n .filter((key) => {\n return toCamelCase(key).indexOf(formattedPluginName) >= ZERO;\n })\n .reduce((result, path) => {\n const data = path && $this.data(path);\n const key = toCamelCase(path.replace(new RegExp(`${formattedPluginName}-?`), ''));\n log(path, key, $this.data(path));\n\n if (key && data !== undefined) {\n result[key] = data;\n }\n return result;\n }, {});\n log(pluginName, { elementOptions});\n let instance = $this.data(dataName);\n const options = $.extend({}, klass.DEFAULTS, elementOptions, overrides);\n\n // store reference to instance\n if (!instance) {\n instance = new klass(this, options);\n instance.$utils = klass.$util;\n $this.data(dataName, instance);\n $this.addClass(`u-${pluginName}`);\n }\n\n // execute instance method\n if (typeof option === 'string') {\n instance[option]();\n }\n });\n };\n\n // - Short hand\n if (shortHand) {\n $[formattedPluginName] = (options) => $({})[formattedPluginName](options);\n }\n\n // - No conflict\n // $.fn[formattedPluginName].noConflict = function noConflict () {\n // $.fn[formattedPluginName] = old;\n // };\n}\n\nexport function jquery (name) {\n return function decorate (target) {\n plugin(name, target);\n };\n}\n\nexport function defaults (options) {\n return function decorate (target) {\n target.DEFAULTS = options;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/core/plugins/lib/index.js","import debug from 'debug';\nimport { toCamelCase } from './strings';\nconst MODULE_NAME = 'app.core/lib/objects';\nconst log = debug(MODULE_NAME);\n\n\nconst ZERO = 0;\n\n/**\n * Convert an elements attributes to an object, optionally filtering based on some predicate.\n * @param {DOMElement} element [description]\n * @param {Function} filterFn filtering function. return false to omit attribute.\n * @param {Function} transformFn transform attribute name function. returns camelCase by default\n * @return {[type]} [description]\n */\nexport function elementAttrtibutesToObject(element, filterFn = () => true, transformFn = (name) => toCamelCase(name)) {\n const output = {};\n const attrs = Array.from($(element).get(ZERO).attributes);\n\n if (!attrs) {\n return output;\n }\n\n log(`converting element attributes to object`, attrs);\n\n return attrs.reduce((result, attribute) => {\n if (filterFn(attribute)) {\n const name = transformFn(attribute.name);\n let value = attribute.value;\n\n if (value === 'false' || value === 'true') {\n value = Boolean(value);\n }\n result[name] = attribute.value;\n }\n\n return result;\n }, output);\n\n}\n\n\n/**\n * Object.prop()\n *\n * Allows dot-notation access to object properties for both getting and setting.\n *\n * @param {Object} obj The object we're getting from or setting\n * @param {string} prop The dot-notated string defining the property location\n * @param {mixed} val For setting only; the value to set\n */\n\nexport function objectPath (obj, path, val, options = {delimiter: '.'}) {\n const props = path.split(options.delimiter);\n const final = props.pop();\n let part;\n\n for (var index = 0; index < props.length; index++) {\n part = props[index];\n if (typeof obj[part] === 'undefined') {\n // If we're setting\n if (typeof val !== 'undefined' && index != props.length) {\n // If we're not at the end of the props, keep adding new empty objects\n obj[part] = {};\n }\n else {\n return undefined;\n }\n }\n obj = obj[part];\n }\n return typeof val !== \"undefined\" ? (obj[final] = val) : obj[final];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/core/plugins/lib/objects.js","import $ from 'jquery';\nimport debug from 'debug';\nconst log = debug('core/plugins/lib/selectors');\n\nexport function selectorPattern (...directives) {\n return new RegExp(`\\\\((${directives.join('|')})(.*)\\\\)\\\\s?(.*)`);\n}\n\nexport const SELECTOR_PATTERNS = {\n\n // .find\n \"children\": selectorPattern('children'),\n\n // .closest\n \"parent\": selectorPattern('parent'),\n \"from\": selectorPattern('from'),\n \"parents\": selectorPattern('parents'),\n \"siblings\": selectorPattern('siblings'),\n \"here\": selectorPattern('here'),\n \"self\": selectorPattern('self'),\n};\n\nexport function selectTarget(selector, $element) {\n let $target;\n\n const isClosestAncestoral = selector.match(SELECTOR_PATTERNS.parent);\n const isAllAncestoral = selector.match(SELECTOR_PATTERNS.parents);\n const isRetargeted = selector.match(SELECTOR_PATTERNS.from);\n const isAllDescendants = selector.match(SELECTOR_PATTERNS.children);\n const isGenerational = selector.match(SELECTOR_PATTERNS.here);\n const isSiblings = selector.match(SELECTOR_PATTERNS.siblings);\n const isSelfish = selector.match(SELECTOR_PATTERNS.self);\n\n // special retargeting root\n if (isRetargeted) {\n log('isRetargeted', isRetargeted[2], isRetargeted[3]);\n const $newElement = selectTarget(isRetargeted[2], $element);\n const newSelector = `(children) ${isRetargeted[3]}`;\n log('isRetargeted.newElement', $newElement);\n log('isRetargeted.newSelector', newSelector);\n $target = selectTarget(newSelector, $newElement);\n log('isRetargeted.target', $target);\n }\n\n // target is all ancestors\n else if (isAllAncestoral) {\n log('isAllAncestoral', isAllAncestoral);\n $target = $element.parents(isAllAncestoral[isAllAncestoral.length - 1]);\n }\n // target is closest ancestor\n else if (isClosestAncestoral) {\n log('isClosestAncestoral', isClosestAncestoral);\n $target = $element.closest(isClosestAncestoral[isClosestAncestoral.length - 1]);\n }\n // target is somewhere under current parent\n else if (isGenerational) {\n log('isGenerational', isGenerational);\n $target = $element.parent().find(isGenerational[isGenerational.length - 1]);\n }\n // target is only under self\n else if (isAllDescendants) {\n log('isAllDescendants', isAllDescendants);\n $target = $element.find(isAllDescendants[isAllDescendants.length - 1]);\n }\n // target is somewhere in siblings only\n else if (isSiblings) {\n log('isSiblings', isSiblings);\n $target = $element.siblings(isSiblings[isSiblings.length - 1]);\n }\n // target is source\n else if (!selector || isSelfish) {\n log('isSelfish', isSelfish);\n var selector = isSelfish[isSelfish.length - 1] || '*';\n $target = $element.filter(selector);\n }\n // target could be anywhere\n else {\n log('global', selector);\n $target = $(selector);\n }\n return $target;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/core/plugins/lib/selectors.js","import $ from 'jquery';\nimport debug from 'debug';\n\nconst log = debug('core/jquery_plugin/strings');\n\nfunction preserveCamelCase(str) {\n let isLastCharLower = false;\n let isLastCharUpper = false;\n let isLastLastCharUpper = false;\n\n for (let i = 0; i < str.length; i++) {\n const c = str[i];\n\n if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) {\n str = str.substr(0, i) + '-' + str.substr(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) {\n str = str.substr(0, i - 1) + '-' + str.substr(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = c.toLowerCase() === c;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = c.toUpperCase() === c;\n }\n }\n\n return str;\n}\n\nexport function toCamelCase (str) {\n if (arguments.length > 1) {\n str = Array.from(arguments)\n .map(x => x.trim())\n .filter(x => x.length)\n .join('-');\n } else {\n str = str.trim();\n }\n\n if (str.length === 0) {\n return '';\n }\n\n if (str.length === 1) {\n return str.toLowerCase();\n }\n\n if (/^[a-z0-9]+$/.test(str)) {\n return str;\n }\n\n const hasUpperCase = str !== str.toLowerCase();\n\n if (hasUpperCase) {\n str = preserveCamelCase(str);\n }\n\n return str\n .replace(/^[_.\\- ]+/, '')\n .toLowerCase()\n .replace(/[_.\\- ]+(\\w|$)/g, (m, p1) => p1.toUpperCase());\n};\n\n\nexport function tmpl(str, context) {\n let result = str;\n\n if (result) {\n\n Object.keys(context)\n .forEach((item) => {\n result = result.replace(`{{${item}}}`, context[item]);\n });\n }\n\n return result;\n}\n\nexport function $tmpl(element, context) {\n const $target = $(element);\n const templateString = $target.attr('data-text-template');\n const result = tmpl(templateString, context);\n\n $target.text(result);\n}\n\n/**\n * https://github.com/aishikaty/tiny-mustache\n * https://mustache.github.io/\n * @param {String} template [description]\n * @param {[type]} self [description]\n * @param {[type]} parent [description]\n * @param {[type]} invert [description]\n * @return {[type]} [description]\n */\nexport function mustache(template, self, parent, invert) {\n var render = mustache;\n var output = \"\";\n var i;\n\n log('mustache', {template, self, parent, invert});\n\n function get(ctx, path) {\n path = path.pop ? path : path.split(\".\");\n ctx = ctx[path.shift()] || \"\";\n return (0 in path) ? get(ctx, path) : ctx;\n }\n\n self = Array.isArray(self) ? self : (self ? [self] : []);\n self = invert ? (0 in self) ? [] : [1] : self;\n\n for (i = 0; i < self.length; i++) {\n var childCode = '';\n var depth = 0;\n var inverted;\n var ctx = (typeof self[i] == \"object\") ? self[i] : {};\n ctx = Object.assign({}, parent, ctx);\n ctx[\"\"] = { \"\": self[i] };\n\n template.replace(/([\\s\\S]*?)({{((\\/)|(\\^)|#)(.*?)}}|$)/g,\n function (match, code, y, z, close, invert, name) {\n\n if (!depth) {\n output += code.replace(/{{{(.*?)}}}|{{(!?)(&?)(>?)(.*?)}}/g,\n function (match, raw, comment, isRaw, partial, name) {\n return raw ? get(ctx, raw)\n : isRaw ? get(ctx, name)\n : partial ? render(get(ctx, name), ctx)\n : !comment ? new Option(get(ctx, name)).innerHTML\n : \"\";\n }\n );\n inverted = invert;\n\n } else {\n childCode += depth && !close || depth > 1 ? match : code;\n }\n\n if (close) {\n if (!--depth) {\n name = get(ctx, name);\n if (/^f/.test(typeof name)) {\n output += name.call(ctx, childCode, function (template) {\n return render(template, ctx);\n });\n } else {\n output += render(childCode, name, ctx, inverted);\n }\n childCode = \"\";\n }\n\n } else {\n ++depth;\n }\n log(`mustache.output.${depth}`, {output});\n }\n );\n }\n log('mustache.output', {output});\n return output;\n}\n\nexport function booleanify(value) {\n const lower = value.toLowerCase();\n if (lower === 'false' || lower === '0') {\n return false;\n }\n return new Boolean(value);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/core/plugins/lib/strings.js","import $ from \"jquery\";\n\n(function() {\n $(document).ready(function() {\n const NO_ICON_TABLE_CELL_LOCATOR =\n \".comparison-table tr.comparison-upper-row .comparison-cell.comparison-cell__upper.comparison-cell__no-icon\";\n // execute above function\n if (document.getElementsByClassName(\"block-comparison-table\").length) {\n if ($(window).width() < 768) {\n $(NO_ICON_TABLE_CELL_LOCATOR).attr(\"rowspan\", \"1\");\n } else {\n $(NO_ICON_TABLE_CELL_LOCATOR).attr(\"rowspan\", \"2\");\n }\n\n $(window).on(\"resize\", function() {\n if ($(this).width() < 768) {\n $(NO_ICON_TABLE_CELL_LOCATOR).attr(\"rowspan\", \"1\");\n $(\n \".comparison-table tr.comparison-upper-row.open .comparison-cell.comparison-cell__upper.comparison-cell__no-icon\"\n ).attr(\"rowspan\", \"2\");\n } else {\n $(NO_ICON_TABLE_CELL_LOCATOR).attr(\"rowspan\", \"2\");\n }\n });\n\n $(\".comparison-table tr.comparison-upper-row\").on(\"click\", function(\n event\n ) {\n if ($(window).width() < 768) {\n event.preventDefault();\n $(this)\n .toggleClass(\"open\")\n .next()\n .toggleClass(\"open\");\n\n let noIconCells = $(this).find(\n \".comparison-cell.comparison-cell__upper.comparison-cell__no-icon[rowspan='2']\"\n );\n if (noIconCells.length > 0) {\n noIconCells.attr(\"rowspan\", \"1\");\n } else {\n $(this)\n .find(\n \".comparison-cell.comparison-cell__upper.comparison-cell__no-icon[rowspan='1']\"\n )\n .attr(\"rowspan\", \"2\");\n }\n }\n });\n }\n });\n})();\n\n// Also add listener on resize\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/blocks/comparison-table/index.js","import $ from 'jquery';\n\n(function () {\n\n\tvar initGalleryBlock = function(galleryContainerSelector) {\n\n\t\t$(galleryContainerSelector).each(function(i, container) {\n\n\t\t\tvar containerElement = $(this);\n\t\t\tvar flickityElement = containerElement.find('.block-product-detail-slider__carousel-main')[0];\n \n\t // display each gallery item's corresponding content text\n\t var flkty = Flickity.data(flickityElement);\n\n\t flkty.on( 'change', function( index ) {\n\t \tcontainerElement.parent().find('.block-gallery__item-content-container').hide();\n\t \tcontainerElement.parent().find('.block-gallery__content-container').children().eq(index).fadeIn();\n\t\t\t});\n\t\t});\n\t};\n\n\t$( document ).ready(function() {\n\n\t\t// execute above function\n\t\tif (document.getElementsByClassName('block-gallery__carousel-container').length) {\n\t\t\tinitGalleryBlock('.block-gallery__carousel-container');\n\t\t}\n\n\t});\n\n}());\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/blocks/gallery/index.js","import $ from 'jquery';\n \n\n\nvar PhotoSwipe = require('@core/vendor/photoswipe/photoswipe.js');\nvar PhotoSwipeUIDefault = require('@core/vendor/photoswipe/photoswipe-ui-default.js');\n \n \n\n(function () {\n\n\tvar initPhotoSwipeFromDOM = function(gallerySelector) {\n var div = document.createElement('div');\n \n\n\t\tdiv.innerHTML =\n\t\t\t\"\";\n\t\tdocument.getElementsByTagName('body')[0].appendChild(div);\n\n\t\tvar parseThumbnailElements = function(el) {\n\t\t\tvar thumbElements = el.childNodes,\n\t\t\t\tnumNodes = thumbElements.length,\n\t\t\t\titems = [],\n\t\t\t\tfigureEl,\n\t\t\t\tlinkEl,\n\t\t\t\tsize,\n\t\t\t\titem;\n\n\t\t\tfor (var i = 0; i < numNodes; i++) {\n\n\t\t\t\tfigureEl = thumbElements[i]; //
element\n\n\t\t\t\t// include only element nodes \n\t\t\t\tif (figureEl.nodeType !== 1) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlinkEl = figureEl.children[0]; // element\n\n\t\t\t\tsize = linkEl.getAttribute('data-size').split('x');\n\n\t\t\t\t// create slide object\n\t\t\t\titem = {\n\t\t\t\t\tsrc: linkEl.getAttribute('href'),\n\t\t\t\t\tw: parseInt(size[0], 10),\n\t\t\t\t\th: parseInt(size[1], 10)\n\t\t\t\t};\n\n\n\t\t\t\tif (figureEl.children.length > 1) {\n\t\t\t\t\t//
content\n\t\t\t\t\titem.title = figureEl.children[1].innerHTML;\n\t\t\t\t}\n\n\t\t\t\tif (linkEl.children.length > 0) {\n\t\t\t\t\t// thumbnail element, retrieving thumbnail url\n\t\t\t\t\titem.msrc = linkEl.children[0].getAttribute('src');\n\t\t\t\t}\n\n\t\t\t\titem.el = figureEl; // save link to element for getThumbBoundsFn\n\t\t\t\titems.push(item);\n\t\t\t}\n\n\t\t\treturn items;\n\t\t};\n\n\t\tvar closest = function closest(el, fn) {\n\t\t\treturn el && (fn(el) ? el : closest(el.parentNode, fn));\n\t\t};\n\n\t\tvar onThumbnailsClick = function(e) {\n\t\t\te = e || window.event;\n\t\t\te.preventDefault ? e.preventDefault() : e.returnValue = false;\n\n\t\t\tvar eTarget = e.target || e.srcElement;\n\n\t\t\t// find root element of slide\n\t\t\tvar clickedListItem = closest(eTarget,\n\t\t\t\tfunction(el) {\n\t\t\t\t\treturn (el.tagName && el.tagName.toUpperCase() === 'FIGURE');\n\t\t\t\t});\n\n\t\t\tif (!clickedListItem) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// find index of clicked item by looping through all child nodes\n\t\t\t// alternatively, you may define index via data- attribute\n\t\t\tvar clickedGallery = clickedListItem.parentNode,\n\t\t\t\tchildNodes = clickedListItem.parentNode.childNodes,\n\t\t\t\tnumChildNodes = childNodes.length,\n\t\t\t\tnodeIndex = 0,\n\t\t\t\tindex;\n\n\t\t\tfor (var i = 0; i < numChildNodes; i++) {\n\t\t\t\tif (childNodes[i].nodeType !== 1) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (childNodes[i] === clickedListItem) {\n\t\t\t\t\tindex = nodeIndex;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tnodeIndex++;\n\t\t\t}\n\n\t\t\tif (index >= 0) {\n\t\t\t\t// open PhotoSwipe if valid index found\n\t\t\t\topenPhotoSwipe(index, clickedGallery);\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t\tvar photoswipeParseHash = function() {\n\t\t\tvar hash = window.location.hash.substring(1),\n\t\t\t\tparams = {};\n\n\t\t\tif (hash.length < 5) {\n\t\t\t\treturn params;\n\t\t\t}\n\n\t\t\tvar vars = hash.split('&');\n\t\t\tfor (var i = 0; i < vars.length; i++) {\n\t\t\t\tif (!vars[i]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tvar pair = vars[i].split('=');\n\t\t\t\tif (pair.length < 2) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tparams[pair[0]] = pair[1];\n\t\t\t}\n\n\t\t\tif (params.gid) {\n\t\t\t\tparams.gid = parseInt(params.gid, 10);\n\t\t\t}\n\n\t\t\treturn params;\n\t\t};\n\n\t\tvar openPhotoSwipe = function(index, galleryElement, disableAnimation, fromURL) {\n\t\t\tvar pswpElement = document.querySelectorAll('.pswp')[0],\n\t\t\t\tgallery,\n\t\t\t\toptions,\n\t\t\t\titems;\n\n\t\t\titems = parseThumbnailElements(galleryElement);\n\n\t\t\t// define options (if needed)\n\t\t\toptions = {\n\n\t\t\t\t// define gallery index (for URL)\n\t\t\t\tgalleryUID: galleryElement.getAttribute('data-pswp-uid'),\n\n\t\t\t\tgetThumbBoundsFn: function(index) {\n\t\t\t\t\t// See Options -> getThumbBoundsFn section of documentation for more info\n\t\t\t\t\tvar thumbnail = items[index].el.getElementsByTagName('img')[0], // find thumbnail\n\t\t\t\t\t\tpageYScroll = window.pageYOffset || document.documentElement.scrollTop,\n\t\t\t\t\t\trect = thumbnail.getBoundingClientRect();\n\n\t\t\t\t\treturn { x: rect.left, y: rect.top + pageYScroll, w: rect.width };\n\t\t\t\t},\n\n\t\t\t\tshareButtons: [\n\t\t\t\t\t{ id: 'download', label: 'Download', url: '{{raw_image_url}}', download: true }\n\t\t\t\t],\n\n\t\t\t};\n\n\t\t\t// PhotoSwipe opened from URL\n\t\t\tif (fromURL) {\n\t\t\t\tif (options.galleryPIDs) {\n\t\t\t\t\t// parse real index when custom PIDs are used \n\t\t\t\t\t// http://photoswipe.com/documentation/faq.html#custom-pid-in-url\n\t\t\t\t\tfor (var j = 0; j < items.length; j++) {\n\t\t\t\t\t\tif (items[j].pid == index) {\n\t\t\t\t\t\t\toptions.index = j;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// in URL indexes start from 1\n\t\t\t\t\toptions.index = parseInt(index, 10) - 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toptions.index = parseInt(index, 10);\n\t\t\t}\n\n\t\t\t// exit if index not found\n\t\t\tif (isNaN(options.index)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (disableAnimation) {\n\t\t\t\toptions.showAnimationDuration = 0;\n\t\t\t}\n\n\t\t\t// Pass data to PhotoSwipe and initialize it\n\t\t\tgallery = new PhotoSwipe(pswpElement, PhotoSwipeUIDefault, items, options);\n\t\t\tgallery.init();\n\t\t};\n\n\t\t// loop through all gallery elements and bind events\n\t\tvar galleryElements = document.querySelectorAll(gallerySelector);\n\n\t\tfor (var i = 0, l = galleryElements.length; i < l; i++) {\n\t\t\tgalleryElements[i].setAttribute('data-pswp-uid', i + 1);\n\t\t\tgalleryElements[i].onclick = onThumbnailsClick;\n\t\t}\n\n\t\t// Parse URL and open gallery if it contains #&pid=3&gid=1\n\t\tvar hashData = photoswipeParseHash();\n\t\tif (hashData.pid && hashData.gid) {\n\t\t\topenPhotoSwipe(hashData.pid, galleryElements[hashData.gid - 1], true, true);\n\t\t}\n\t};\n\n\t// execute above function\n\tif (document.getElementsByClassName('m-gallery').length) {\n\t\tinitPhotoSwipeFromDOM('.m-gallery');\n\t}\n}());\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/blocks/image-gallery/index.js","import \"./image-gallery\";\nimport \"./gallery\";\nimport \"./comparison-table\";\nimport \"./sales-block\";\n// import './product-page-carousel-layout';\n// import './profile-banner';\n// import './gallery';\n// import './disqus';\n// import './people-featured-layout';\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/blocks/index.js","import $ from \"jquery\";\n\n$(document).ready(() => {\n $(\".sales-block-select\").each(function() {\n let classes = $(this).attr(\"class\"),\n name = $(this).attr(\"name\");\n let template = '
';\n let displayValue =\n $(this).val().length > 0 ? $(this).val() : $(this).attr(\"placeholder\");\n template +=\n '' + displayValue + \"\";\n template += '
';\n $(this)\n .find(\"option\")\n .each(function() {\n let select = $(this).attr(\"selected\") ? \"selection\" : \"\";\n template +=\n '' +\n $(this).html() +\n \"\";\n });\n template += \"
\";\n \n $(this).wrap('
');\n $(this).hide();\n $(this).after(template);\n });\n \n $(\".sales-block-select-trigger\").on(\"click\", function() {\n $(\"html\").one(\"click\", function() {\n $(\".sales-block-select\").removeClass(\"opened\");\n });\n $(this)\n .parents(\".sales-block-select\")\n .toggleClass(\"opened\");\n event.stopPropagation();\n });\n $(\".sales-option\").on(\"click\", function() {\n let value = $(this).data(\"value\");\n let isFirst = true;\n let showToggle = false;\n const target = $(this)\n .parents(\".sales-block-select.sources\")\n .data(\"target\");\n $(this)\n .parents(\".sales-block-select-wrapper\")\n .find(\"select\")\n .val($(this).data(\"value\"));\n $(this)\n .parents(\".sales-options\")\n .find(\".sales-option\")\n .removeClass(\"selection\");\n $(this).addClass(\"selection\");\n $(this)\n .parents(\".sales-block-select\")\n .removeClass(\"opened\");\n $(this)\n .parents(\".sales-block-select\")\n .find(\".sales-block-select-trigger\")\n .text($(this).text());\n $(this)\n .parents(\".layout.block-sales-block\")\n .find(\".block-card\")\n .each(function() {\n if (target) {\n $(this).removeClass(\"block-card__featured-article\");\n if (value) {\n if ($(this).data(target) == value) {\n $(this).removeClass(`${target}-hide`);\n } else {\n $(this).addClass(`${target}-hide`);\n }\n } else {\n $(this).removeClass(`${target}-hide`);\n }\n if (\n isFirst &&\n !$(this)\n .attr(\"class\")\n .includes(\"hide\")\n ) {\n $(this).addClass(\"block-card__featured-article\");\n isFirst = false;\n }\n }\n $(this).removeClass(\"toggle-show\");\n });\n $(this)\n .parents(\".layout.block-sales-block\")\n .find(\".block-sales-layout__toggle-button\")\n .hide();\n $(this)\n .parents(\".layout.block-sales-block\")\n .find(\".block-card\")\n .not(\".location-hide\")\n .not(\".issold-hide\")\n .each(function(index) {\n if (index < 4) {\n $(this).addClass(\"toggle-show\");\n } else if (!showToggle) {\n showToggle = true;\n $(this)\n .parents(\".layout.block-sales-block\")\n .find(\".block-sales-layout__toggle-button\")\n .show();\n }\n });\n });\n });\n \n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/blocks/sales-block/index.js","import \"./site\";\nimport \"./site-header\";\nimport \"./wysiwyg\";\nimport \"./search\";\nimport \"./blocks\";\nimport \"./page\";\nimport \"./tab-form\";\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/index.js","import './search-form-collapsible';\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/search/global-search/index.js","import $ from 'jquery';\nimport debug from 'debug';\nimport plugin from '@core/plugins/lib';\n\nconst ELEMENT_SELECTOR = '[data-search-form-collapsible]';\nconst PLUGIN_NAME = 'searchFormCollapsible';\n\nconst log = debug('site-header/header-controller:search');\n\nclass SearchFormCollapsible {\n\tconstructor(element, options) {\n\t\tlog('element', element);\n\t\tlog('options', options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\n\t\tthis.enabled = false;\n\n\t\tthis.formElements = this.selectors.selectTarget(\n\t\t\tthis.options.elementsSelector,\n\t\t\tthis.$element\n\t\t);\n\n\t\tthis.watch();\n\n\t\tlog('ready', this, this.$target);\n\t}\n\n\twatch() {\n\t\tlog('watching');\n\n\t\tthis.$element.on('togglesearch', this.toggle.bind(this));\n\t\tthis.$element.on('disablesearch', this.disable.bind(this));\n\t}\n\n\tenable() {\n\t\tthis.formElements.removeAttr('disabled');\n\t\tthis.enabled = true;\n\t\tthis.formElements[0].focus();\n\t\tlog('enable');\n\t}\n\n\tdisable() {\n\t\tthis.formElements.attr('disabled', 'disabled');\n\t\tthis.enabled = false;\n\t\tlog('disable');\n\t}\n\n\ttoggle() {\n\t\tconst handler = this.enabled\n\t\t\t? this.disable.bind(this)\n\t\t\t: this.enable.bind(this);\n\t\tlog('toggle');\n\t\thandler();\n\t}\n}\n\nSearchFormCollapsible.DEFAULTS = {};\n\nplugin(PLUGIN_NAME, SearchFormCollapsible);\n\n$(document).ready(() => {\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/search/global-search/search-form-collapsible.js","//import './results-filter';\n//import './search-dropdown';\nimport './global-search';\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/search/index.js","import $ from 'jquery';\nimport debug from 'debug';\nimport plugin from '@core/plugins/lib';\n\nconst ELEMENT_SELECTOR = '[data-header-controller]';\nconst PLUGIN_NAME = 'headerController';\n\nconst log = debug('site-header/header-controller:header');\n\nclass HeaderController {\n\tconstructor(element, options) {\n\t\tlog('element', element);\n\t\tlog('options', options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\n\t\tthis.isSearchCollapsible = !!this.options.searchComponentSelector;\n\n\t\tthis.searchComponent = this.isSearchCollapsible && this.selectors.selectTarget(\n\t\t\tthis.options.searchComponentSelector,\n\t\t\tthis.$element\n\t\t);\n\n\t\tthis.watch();\n\n\t\tlog('ready', this, this.$target);\n\t}\n\n\twatch() {\n\t\tlog('watching');\n\n\t\tthis.$element.on('concealsearch', this.tryConcealSearch.bind(this));\n\t}\n\n\ttryConcealSearch(){\n\t\tlog('attempting to disable search');\n\t\tif (this.isSearchCollapsible) {\n\t\t\tthis.searchComponent.trigger('disablesearch');\n\t\t} else {\n\t\t\tlog('Search is not collapsible');\n\t\t}\n\t}\n\n}\n\nHeaderController.DEFAULTS = {};\n\nplugin(PLUGIN_NAME, HeaderController);\n\n$(document).ready(() => {\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/site-header/header/header-controller.js","import \"./header-controller\";\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/site-header/header/index.js","import './header';\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/site-header/index.js","// import './icons/icons__config'; // icon font import\nimport './sprites';\nimport debug from \"debug\";\n\nconst log = debug('site__scf001');\n\n\n$(()=>{\n\tlog('ready');\n});\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/site/index.js","/*\nSVG Sprite\n*/\nconst files = require.context(__dirname, false, /\\.svg$/);\nfiles.keys().forEach(files);\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/site/sprites/index.js","let tabForm = document.querySelector(\".tab-form\");\nif (tabForm) {\n let tabHeader = tabForm.querySelector(\".tab-header\");\n let tabHeaderElements = tabForm.querySelectorAll(\".tab-header > div\");\n let tabBody = tabForm.querySelector(\".tab-body\");\n let tabBodyElements = tabForm.querySelectorAll(\".tab-body > div\");\n\n if (tabBodyElements.length > 0) {\n for (let i = 0; i < tabHeaderElements.length; i++) {\n tabHeaderElements[i].addEventListener(\"click\", function() {\n tabHeader.querySelector(\".active\").classList.remove(\"active\");\n tabHeaderElements[i].classList.add(\"active\");\n tabBody.querySelector(\".active\").classList.remove(\"active\");\n tabBodyElements[i].classList.add(\"active\");\n });\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/tab-form/index.js","import './tables';\nimport './video-block';\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/wysiwyg/index.js","$('.table--scrollable').wrap('
');\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/wysiwyg/tables.js","const videoContainers = document.querySelectorAll('.video-container');\nif (videoContainers.length > 0) {\n videoContainers.forEach(c => {\n const playButton = c.querySelector('.play-button');\n const video = c.querySelector(\"video\");\n\n // Play or pause the video and toggle the button visibility\n playButton.addEventListener('click', () => {\n if (video.paused) {\n video.play();\n playButton.classList.add('hidden'); // Hide the play button when playing\n }\n });\n\n // Pause or play the video when clicking on the video itself\n video.addEventListener('click', () => {\n if (video.paused) {\n video.play();\n playButton.classList.add('hidden');\n } else {\n video.pause();\n playButton.classList.remove('hidden');\n }\n });\n\n // Show the play button when the video ends\n video.addEventListener('ended', () => {\n playButton.classList.remove('hidden');\n });\n })\n}\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/components/wysiwyg/video-block.js","import \"./components\";\nimport \"./utilities\";\n\n/* Favicons entry point for webpack\n * html_code.html as expected output from realfavicongenerator.net\n * manually insert `WEBPACKHACK` to content attribute of meta[name=\"msapplication-config\"] i.e.\n * \n */\nrequire('./favicons/html_code.html');\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/index.js","import focusSource from 'ally.js/src/style/focus-source';\n\nfocusSource();\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/utilities/a11y__focus.js","import \"./a11y__focus\";\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/site__scf001/utilities/index.js","\n/*\n Utility to observe focus changes within ShadowDOMs.\n\n USAGE:\n engage();\n document.body.addEventListener('shadow-focus', function(event) {\n // event.detail.elements: complete focus ancestry (array of nodes)\n // event.detail.active: the actually focused element within the ShadowDOM\n // event.detail.hosts: the shadow host ancestry of the active element\n }, false);\n\n Alternate implementation: https://github.com/cdata/focus-observer\n*/\n\nimport getActiveElements from '../get/active-elements';\nimport decorateService from '../util/decorate-service';\n\nlet engage;\nlet disengage;\n\nif (typeof document === 'undefined' || !document.documentElement.createShadowRoot) {\n // no need to initialize any of this if we don't have ShadowDOM available\n engage = disengage = function() {};\n} else {\n let blurTimer;\n let blurElement;\n\n const handleElementBlurEvent = function() {\n stopHandleElementBlurEvent();\n // abort any handlers that come from document blur handler\n (window.clearImmediate || window.clearTimeout)(blurTimer);\n blurTimer = (window.setImmediate || window.setTimeout)(function() {\n handleFocusChange();\n });\n };\n\n const observeElementBlurEvent = function(element) {\n // call us when we're leaving the element\n element.addEventListener('blur', handleElementBlurEvent, true);\n blurElement = element;\n };\n\n const stopHandleElementBlurEvent = function() {\n // once() - sometimes I miss jQuery's simplicity…\n blurElement && blurElement.removeEventListener('blur', handleElementBlurEvent, true);\n blurElement = null;\n };\n\n const handleFocusChange = function() {\n const _active = getActiveElements();\n if (_active.length === 1) {\n stopHandleElementBlurEvent();\n return;\n }\n\n // listen for blur so we know when to re-validate\n observeElementBlurEvent(_active[0]);\n const shadowFocusEvent = new CustomEvent('shadow-focus', {\n bubbles: false,\n cancelable: false,\n detail: {\n // complete focus ancestry\n elements: _active,\n // the actually focused element\n active: _active[0],\n // shadow host ancestry\n hosts: _active.slice(1),\n },\n });\n\n document.dispatchEvent(shadowFocusEvent);\n };\n\n const handleDocumentFocusEvent = function() {\n (window.clearImmediate || window.clearTimeout)(blurTimer);\n handleFocusChange();\n };\n\n engage = function() {\n document.addEventListener('focus', handleDocumentFocusEvent, true);\n };\n\n disengage = function() {\n (window.clearImmediate || window.clearTimeout)(blurTimer);\n blurElement && blurElement.removeEventListener('blur', handleElementBlurEvent, true);\n document.removeEventListener('focus', handleDocumentFocusEvent, true);\n };\n}\n\nexport default decorateService({ engage, disengage });\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/event/shadow-focus.js","\n// [0] always is the actual active element (even within web-components)\n// [0+n] is the hierarchy of shadow-doms with [length -1] being the top most shadow-host\n\nimport isShadowed from '../is/shadowed';\nimport getShadowHostParents from './shadow-host-parents';\n\nfunction walkToShadowedElement() {\n const list = [document.activeElement];\n\n while (list[0] && list[0].shadowRoot) {\n list.unshift(list[0].shadowRoot.activeElement);\n }\n\n return list;\n}\n\nfunction walkFromShadowedElement() {\n const hosts = getShadowHostParents({context: document.activeElement});\n return [document.activeElement].concat(hosts);\n}\n\nexport default function() {\n if (document.activeElement === null) {\n // IE10 does not redirect focus to when the activeElement is removed\n document.body.focus();\n }\n\n // Firefox currently leaks the shadowed element\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1117535\n if (isShadowed(document.activeElement)) {\n return walkFromShadowedElement();\n }\n\n return walkToShadowedElement();\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/get/active-elements.js","\nimport getShadowHost from './shadow-host';\nimport contextToElement from '../util/context-to-element';\n\nexport default function({context} = {}) {\n const list = [];\n let element = contextToElement({\n label: 'get/shadow-host-parents',\n context,\n });\n\n while (element) {\n element = getShadowHost({context: element});\n if (!element) {\n break;\n }\n\n list.push(element);\n }\n\n return list;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/get/shadow-host-parents.js","\nimport contextToElement from '../util/context-to-element';\n\nexport default function({context} = {}) {\n let element = contextToElement({\n label: 'get/shadow-host',\n context,\n });\n\n // walk up to the root\n let container = null;\n\n while (element) {\n container = element;\n element = element.parentNode;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType\n // NOTE: Firefox 34 does not expose ShadowRoot.host (but 37 does)\n if (container.nodeType === container.DOCUMENT_FRAGMENT_NODE && container.host) {\n // the root is attached to a fragment node that has a host\n return container.host;\n }\n\n return null;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/get/shadow-host.js","\n// determine if an element is the child of a ShadowRoot\n\nimport contextToElement from '../util/context-to-element';\nimport getShadowHost from '../get/shadow-host';\n\nexport default function(context) {\n const element = contextToElement({\n label: 'is/shadowed',\n resolveDocument: true,\n context,\n });\n\n return Boolean(getShadowHost({context: element}));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/is/shadowed.js","\n/*\n Observe keyboard-, pointer-, mouse- and touch-events so that a query for\n the current interaction type can be made at any time. For pointer interaction\n this observer is limited to pointer button down/up - move is not observed!\n\n USAGE:\n var listener = engage();\n listener.get() === {pointer: Boolean, key: Boolean}\n*/\n\nimport decorateService from '../util/decorate-service';\n\n// counters to track primary input\nlet _activePointers = 0;\nlet _activeKeys = 0;\n\nconst pointerStartEvents = [\n 'touchstart',\n 'pointerdown',\n 'MSPointerDown',\n 'mousedown',\n];\nconst pointerEndEvents = [\n 'touchend',\n 'touchcancel',\n 'pointerup',\n 'MSPointerUp',\n 'pointercancel',\n 'MSPointerCancel',\n 'mouseup',\n];\n\nfunction handleWindowBlurEvent() {\n // reset internal counters when window loses focus\n _activePointers = 0;\n _activeKeys = 0;\n}\n\nfunction handlePointerStartEvent(event) {\n if (event.isPrimary === false) {\n // ignore non-primary pointer events\n // https://w3c.github.io/pointerevents/#widl-PointerEvent-isPrimary\n return;\n }\n\n // mousedown without following mouseup\n // (likely not possible in Chrome)\n _activePointers++;\n}\n\nfunction handlePointerEndEvent(event) {\n if (event.isPrimary === false) {\n // ignore non-primary pointer events\n // https://w3c.github.io/pointerevents/#widl-PointerEvent-isPrimary\n return;\n } else if (event.touches) {\n _activePointers = event.touches.length;\n return;\n }\n\n // delay reset to when the current handlers are executed\n (window.setImmediate || window.setTimeout)(function() {\n // mouseup without prior mousedown\n // (drag something out of the window)\n _activePointers = Math.max(_activePointers - 1, 0);\n });\n}\n\nfunction handleKeyStartEvent(event) {\n // ignore modifier keys\n switch (event.keyCode || event.which) {\n case 16: // space\n case 17: // control\n case 18: // alt\n case 91: // command left\n case 93: // command right\n return;\n }\n\n // keydown without a following keyup\n // (may happen on CMD+TAB)\n _activeKeys++;\n}\n\nfunction handleKeyEndEvent(event) {\n // ignore modifier keys\n switch (event.keyCode || event.which) {\n case 16: // space\n case 17: // control\n case 18: // alt\n case 91: // command left\n case 93: // command right\n return;\n }\n\n // delay reset to when the current handlers are executed\n (window.setImmediate || window.setTimeout)(function() {\n // keyup without prior keydown\n // (may happen on CMD+R)\n _activeKeys = Math.max(_activeKeys - 1, 0);\n });\n}\n\nfunction getInteractionType() {\n return {\n pointer: Boolean(_activePointers),\n key: Boolean(_activeKeys),\n };\n}\n\nfunction disengage() {\n _activePointers = _activeKeys = 0;\n window.removeEventListener('blur', handleWindowBlurEvent, false);\n document.documentElement.removeEventListener('keydown', handleKeyStartEvent, true);\n document.documentElement.removeEventListener('keyup', handleKeyEndEvent, true);\n pointerStartEvents.forEach(function(event) {\n document.documentElement.removeEventListener(event, handlePointerStartEvent, true);\n });\n pointerEndEvents.forEach(function(event) {\n document.documentElement.removeEventListener(event, handlePointerEndEvent, true);\n });\n}\n\nfunction engage() {\n // window blur must be in bubble phase so it won't capture regular blurs\n window.addEventListener('blur', handleWindowBlurEvent, false);\n // handlers to identify the method of focus change\n document.documentElement.addEventListener('keydown', handleKeyStartEvent, true);\n document.documentElement.addEventListener('keyup', handleKeyEndEvent, true);\n pointerStartEvents.forEach(function(event) {\n document.documentElement.addEventListener(event, handlePointerStartEvent, true);\n });\n pointerEndEvents.forEach(function(event) {\n document.documentElement.addEventListener(event, handlePointerEndEvent, true);\n });\n\n return {\n get: getInteractionType,\n };\n}\n\nexport default decorateService({ engage, disengage });\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/observe/interaction-type.js","\n/*\n add data-focus-source attribute to html element containing \"key\", \"pointer\" or \"script\"\n depending on the input method used to change focus.\n\n USAGE:\n style/focus-source()\n\n body :focus {\n outline: 1px solid grey;\n }\n\n html[data-focus-source=\"key\"] body :focus {\n outline: 5px solid red;\n }\n\n html[data-focus-source=\"key\"] body :focus {\n outline: 1px solid blue;\n }\n\n NOTE: I don't have a GamePad to test, if you do and you want to\n implement an observer for https://w3c.github.io/gamepad/ - send a PR!\n\n Alternate implementation: https://github.com/alice/modality\n*/\n\nimport { addClass, removeClass } from '../util/toggle-class';\nimport shadowFocus from '../event/shadow-focus';\nimport engageInteractionTypeObserver from '../observe/interaction-type';\nimport decorateService from '../util/decorate-service';\n\n// preferring focusin/out because they are synchronous in IE10+11\nconst supportsFocusIn = typeof document !== 'undefined' && 'onfocusin' in document;\nconst focusEventName = supportsFocusIn ? 'focusin' : 'focus';\nconst blurEventName = supportsFocusIn ? 'focusout' : 'blur';\n\n// interface to read interaction-type-listener state\nlet interactionTypeHandler;\nlet shadowHandle;\n// keep track of last focus source\nlet current = null;\n// overwrite focus source for use with the every upcoming focus event\nlet lock = null;\n// keep track of ever having used a particular input method to change focus\nconst used = {\n pointer: false,\n key: false,\n script: false,\n initial: false,\n};\n\nfunction handleFocusEvent(event) {\n let source = '';\n if (event.type === focusEventName || event.type === 'shadow-focus') {\n const interactionType = interactionTypeHandler.get();\n source = lock\n || interactionType.pointer && 'pointer'\n || interactionType.key && 'key'\n || 'script';\n } else if (event.type === 'initial') {\n source = 'initial';\n }\n\n document.documentElement.setAttribute('data-focus-source', source);\n\n if (event.type !== blurEventName) {\n if (!used[source]) {\n addClass(document.documentElement, 'focus-source-' + source);\n }\n\n used[source] = true;\n current = source;\n }\n}\n\nfunction getCurrentFocusSource() {\n return current;\n}\n\nfunction getUsedFocusSource(source) {\n return used[source];\n}\n\nfunction lockFocusSource(source) {\n lock = source;\n}\n\nfunction unlockFocusSource() {\n lock = false;\n}\n\nfunction disengage() {\n // clear dom state\n handleFocusEvent({type: blurEventName});\n current = lock = null;\n Object.keys(used).forEach(function(key) {\n removeClass(document.documentElement, 'focus-source-' + key);\n used[key] = false;\n });\n // kill interaction type identification listener\n interactionTypeHandler.disengage();\n // kill shadow-focus event dispatcher\n shadowHandle && shadowHandle.disengage();\n document.removeEventListener('shadow-focus', handleFocusEvent, true);\n document.documentElement.removeEventListener(focusEventName, handleFocusEvent, true);\n document.documentElement.removeEventListener(blurEventName, handleFocusEvent, true);\n document.documentElement.removeAttribute('data-focus-source');\n}\n\nfunction engage() {\n // enable the shadow-focus event dispatcher\n shadowHandle = shadowFocus();\n // handlers to modify the focused element\n document.addEventListener('shadow-focus', handleFocusEvent, true);\n document.documentElement.addEventListener(focusEventName, handleFocusEvent, true);\n document.documentElement.addEventListener(blurEventName, handleFocusEvent, true);\n // enable the interaction type identification observer\n interactionTypeHandler = engageInteractionTypeObserver();\n // set up initial dom state\n handleFocusEvent({type: 'initial'});\n\n return {\n used: getUsedFocusSource,\n current: getCurrentFocusSource,\n lock: lockFocusSource,\n unlock: unlockFocusSource,\n };\n}\n\nexport default decorateService({ engage, disengage });\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/style/focus-source.js","\nimport nodeArray from '../util/node-array';\n\nexport default function({\n context,\n label = 'context-to-element',\n resolveDocument,\n defaultToDocument,\n}) {\n let element = nodeArray(context)[0];\n\n if (resolveDocument && element && element.nodeType === Node.DOCUMENT_NODE) {\n element = element.documentElement;\n }\n\n if (!element && defaultToDocument) {\n return document.documentElement;\n }\n\n if (!element) {\n throw new TypeError(label + ' requires valid options.context');\n }\n\n if (element.nodeType !== Node.ELEMENT_NODE && element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n throw new TypeError(label + ' requires options.context to be an Element');\n }\n\n return element;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/util/context-to-element.js","\n/*\n The Singleton Decorator is intended to allow modules to initialize a (\"singleton\") component as if\n it was the only one using it. Every module gets to initialize and destruct the component by itself.\n Via simple reference counting the component keeps track of how many modules have initialized it,\n so it destructs only when the last module is gone. This decorator hides the component's singleton\n nature from the application in order to offer a homogenous API.\n\n engage() can return an object (result) with methods to expose to the consumer,\n upon initialization result.disengage is added and returned to the consumer.\n*/\n\nfunction destruct({force} = {}) {\n if (force) {\n this.instances = 0;\n } else {\n this.instances--;\n }\n\n if (!this.instances) {\n this.disengage();\n this._result = null;\n }\n}\n\nfunction initialize() {\n if (this.instances) {\n this.instances++;\n return this._result;\n }\n\n this.instances++;\n this._result = this.engage() || {};\n this._result.disengage = destruct.bind(this);\n\n return this._result;\n}\n\nfunction noop() {}\n\nexport default function({engage, disengage} = {}) {\n const data = {\n engage: engage || noop,\n disengage: disengage || noop,\n instances: 0,\n _result: null,\n };\n\n return initialize.bind(data);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/util/decorate-service.js","\n// input may be undefined, selector-tring, Node, NodeList, HTMLCollection, array of Nodes\n// yes, to some extent this is a bad replica of jQuery's constructor function\nexport default function(input) {\n if (!input) {\n return [];\n }\n\n if (Array.isArray(input)) {\n return input;\n }\n\n // instanceof Node - does not work with iframes\n if (input.nodeType !== undefined) {\n return [input];\n }\n\n if (typeof input === 'string') {\n input = document.querySelectorAll(input);\n }\n\n if (input.length !== undefined) {\n return [].slice.call(input, 0);\n }\n\n throw new TypeError('unexpected input ' + String(input));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/util/node-array.js","//\n// This util allows to easily add, remove or toggle classes.\n//\n// Using it is neccessary as IE 9 doesn't support element classList\n// and IE 11 doesn't support classList for SVG elements\n// see also https://developer.mozilla.org/en/docs/Web/API/Element/classList\n//\n// This file is a replacement for domtokenlist because of\n// https://github.com/medialize/ally.js/issues/147\n//\n// Usage:\n//\n// toggleClass(div, 'demo'); // Toggles the class `demo`\n// toggleClass(div, 'demo', true); // Adds the class `demo`\n// toggleClass(div, 'demo', false); // removes the class `demo`\n//\n// removeClass(div, 'demo');\n// addClass(div, 'demo');\n//\n\n/**\n * Extract an array of all classNames of the given DOM or SVG node\n */\nfunction getClassNames(element) {\n const className = element.getAttribute && element.getAttribute('class') || '';\n return className === '' ? [] : className.split(' ');\n}\n\nexport function toggleClass(element, className, force) {\n const classNames = getClassNames(element);\n const idx = classNames.indexOf(className);\n const hasClass = idx !== -1;\n const shouldHaveClass = force !== undefined ? force : !hasClass;\n // Break if classes are already set/removed\n if (shouldHaveClass === hasClass) {\n return;\n }\n // Remove class\n if (!shouldHaveClass) {\n classNames.splice(idx, 1);\n }\n // Add class\n if (shouldHaveClass) {\n classNames.push(className);\n }\n element.setAttribute('class', classNames.join(' '));\n}\n\nexport function removeClass(element, className) {\n return toggleClass(element, className, false);\n}\n\nexport function addClass(element, className) {\n return toggleClass(element, className, true);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ally.js/src/util/toggle-class.js","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/debug/node_modules/ms/index.js","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n/**\n * Colors.\n */\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n// eslint-disable-next-line complexity\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n return true;\n } // Internet Explorer and Edge do not support colors.\n\n\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n } // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff);\n\n if (!this.useColors) {\n return;\n }\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // The final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if (match === '%%') {\n return;\n }\n\n index++;\n\n if (match === '%c') {\n // We only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\n\nfunction log() {\n var _console;\n\n // This hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return (typeof console === \"undefined\" ? \"undefined\" : _typeof(console)) === 'object' && console.log && (_console = console).log.apply(_console, arguments);\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n try {\n if (namespaces) {\n exports.storage.setItem('debug', namespaces);\n } else {\n exports.storage.removeItem('debug');\n }\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.getItem('debug');\n } catch (error) {} // Swallow\n // XXX (@Qix-) should we be logging these?\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\n\nfunction localstorage() {\n try {\n // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n // The Browser also has localStorage in the global context.\n return localStorage;\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n\nmodule.exports = require('./common')(exports);\nvar formatters = module.exports.formatters;\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + error.message;\n }\n};\n\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/debug/src/browser.js","\"use strict\";\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\nfunction setup(env) {\n createDebug.debug = createDebug;\n createDebug.default = createDebug;\n createDebug.coerce = coerce;\n createDebug.disable = disable;\n createDebug.enable = enable;\n createDebug.enabled = enabled;\n createDebug.humanize = require('ms');\n Object.keys(env).forEach(function (key) {\n createDebug[key] = env[key];\n });\n /**\n * Active `debug` instances.\n */\n\n createDebug.instances = [];\n /**\n * The currently active debug mode names, and names to skip.\n */\n\n createDebug.names = [];\n createDebug.skips = [];\n /**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\n createDebug.formatters = {};\n /**\n * Selects a color for a debug namespace\n * @param {String} namespace The namespace string for the for the debug instance to be colored\n * @return {Number|String} An ANSI color code for the given namespace\n * @api private\n */\n\n function selectColor(namespace) {\n var hash = 0;\n\n for (var i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n }\n\n createDebug.selectColor = selectColor;\n /**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n function createDebug(namespace) {\n var prevTime;\n\n function debug() {\n // Disabled?\n if (!debug.enabled) {\n return;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var self = debug; // Set `diff` timestamp\n\n var curr = Number(new Date());\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n args[0] = createDebug.coerce(args[0]);\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O');\n } // Apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // If we encounter an escaped % then don't increase the array index\n if (match === '%%') {\n return match;\n }\n\n index++;\n var formatter = createDebug.formatters[format];\n\n if (typeof formatter === 'function') {\n var val = args[index];\n match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // Apply env-specific formatting (colors, etc.)\n\n createDebug.formatArgs.call(self, args);\n var logFn = self.log || createDebug.log;\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = createDebug.enabled(namespace);\n debug.useColors = createDebug.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n debug.extend = extend; // Debug.formatArgs = formatArgs;\n // debug.rawLog = rawLog;\n // env-specific initialization logic for debug instances\n\n if (typeof createDebug.init === 'function') {\n createDebug.init(debug);\n }\n\n createDebug.instances.push(debug);\n return debug;\n }\n\n function destroy() {\n var index = createDebug.instances.indexOf(this);\n\n if (index !== -1) {\n createDebug.instances.splice(index, 1);\n return true;\n }\n\n return false;\n }\n\n function extend(namespace, delimiter) {\n return createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n }\n /**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n\n function enable(namespaces) {\n createDebug.save(namespaces);\n createDebug.names = [];\n createDebug.skips = [];\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) {\n // ignore empty strings\n continue;\n }\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n createDebug.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < createDebug.instances.length; i++) {\n var instance = createDebug.instances[i];\n instance.enabled = createDebug.enabled(instance.namespace);\n }\n }\n /**\n * Disable debug output.\n *\n * @api public\n */\n\n\n function disable() {\n createDebug.enable('');\n }\n /**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n\n function enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n\n var i;\n var len;\n\n for (i = 0, len = createDebug.skips.length; i < len; i++) {\n if (createDebug.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = createDebug.names.length; i < len; i++) {\n if (createDebug.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n }\n /**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n\n function coerce(val) {\n if (val instanceof Error) {\n return val.stack || val.message;\n }\n\n return val;\n }\n\n createDebug.enable(createDebug.load());\n return createDebug;\n}\n\nmodule.exports = setup;\n\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/debug/src/common.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/process/browser.js","module.exports = __webpack_public_path__ + \"sites/scf/favicons/favicons.webpackcruft\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/favicons/html_code.html\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/file-loader/dist/cjs.js??ref--2-0!/home/vsts/work/1/s/src/SCF/node_modules/extract-loader/lib/extractLoader.js!/home/vsts/work/1/s/src/SCF/node_modules/html-loader/index.js??ref--2-2!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/favicons/html_code.html\n// module chunks = site__scf001","module.exports = {\n id: \"SCF-logo-30-Years-usage\",\n viewBox: \"0 0 354.19 400.88\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#SCF-logo-30-Years-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/SCF-logo-30-Years.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo-30-Years.svg\n// module chunks = site__scf001","module.exports = {\n id: \"SCF-logo-usage\",\n viewBox: \"0 0 500 313\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#SCF-logo-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/SCF-logo.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/SCF-logo.svg\n// module chunks = site__scf001","module.exports = {\n id: \"add-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#add-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/add.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/add.svg\n// module chunks = site__scf001","module.exports = {\n id: \"alert-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#alert-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/alert.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/alert.svg\n// module chunks = site__scf001","module.exports = {\n id: \"anchor-down-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#anchor-down-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/anchor-down.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-down.svg\n// module chunks = site__scf001","module.exports = {\n id: \"anchor-up-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#anchor-up-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/anchor-up.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/anchor-up.svg\n// module chunks = site__scf001","module.exports = {\n id: \"arrow-left-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#arrow-left-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/arrow-left.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-left.svg\n// module chunks = site__scf001","module.exports = {\n id: \"arrow-right-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#arrow-right-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/arrow-right.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/arrow-right.svg\n// module chunks = site__scf001","module.exports = {\n id: \"article-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#article-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/article.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/article.svg\n// module chunks = site__scf001","module.exports = {\n id: \"australia-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#australia-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/australia.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/australia.svg\n// module chunks = site__scf001","module.exports = {\n id: \"calendar-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#calendar-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/calendar.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/calendar.svg\n// module chunks = site__scf001","module.exports = {\n id: \"check-circle-filled-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#check-circle-filled-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/check-circle-filled.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle-filled.svg\n// module chunks = site__scf001","module.exports = {\n id: \"check-circle-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#check-circle-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/check-circle.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check-circle.svg\n// module chunks = site__scf001","module.exports = {\n id: \"check-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#check-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/check.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/check.svg\n// module chunks = site__scf001","module.exports = {\n id: \"chevron-down-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#chevron-down-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/chevron-down.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-down.svg\n// module chunks = site__scf001","module.exports = {\n id: \"chevron-left-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#chevron-left-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/chevron-left.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-left.svg\n// module chunks = site__scf001","module.exports = {\n id: \"chevron-right-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#chevron-right-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/chevron-right.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-right.svg\n// module chunks = site__scf001","module.exports = {\n id: \"chevron-up-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#chevron-up-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/chevron-up.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/chevron-up.svg\n// module chunks = site__scf001","module.exports = {\n id: \"choose-container-white-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#choose-container-white-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/choose-container-white.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/choose-container-white.svg\n// module chunks = site__scf001","module.exports = {\n id: \"clock-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#clock-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/clock.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/clock.svg\n// module chunks = site__scf001","module.exports = {\n id: \"close-circle-filled-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#close-circle-filled-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/close-circle-filled.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-circle-filled.svg\n// module chunks = site__scf001","module.exports = {\n id: \"close-small-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#close-small-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/close-small.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/close-small.svg\n// module chunks = site__scf001","module.exports = {\n id: \"comparison-check-usage\",\n viewBox: \"0 0 41 41\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#comparison-check-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/comparison-check.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-check.svg\n// module chunks = site__scf001","module.exports = {\n id: \"comparison-uncheck-usage\",\n viewBox: \"0 0 40 40\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#comparison-uncheck-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/comparison-uncheck.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/comparison-uncheck.svg\n// module chunks = site__scf001","module.exports = {\n id: \"container-simple-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#container-simple-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/container-simple.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container-simple.svg\n// module chunks = site__scf001","module.exports = {\n id: \"container-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#container-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/container.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/container.svg\n// module chunks = site__scf001","module.exports = {\n id: \"dot-scf-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#dot-scf-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/dot-scf.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot-scf.svg\n// module chunks = site__scf001","module.exports = {\n id: \"dot-usage\",\n viewBox: \"0 0 25 25\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#dot-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/dot.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/dot.svg\n// module chunks = site__scf001","module.exports = {\n id: \"download-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#download-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/download.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/download.svg\n// module chunks = site__scf001","module.exports = {\n id: \"edit-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#edit-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/edit.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/edit.svg\n// module chunks = site__scf001","module.exports = {\n id: \"email-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#email-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/email.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/email.svg\n// module chunks = site__scf001","module.exports = {\n id: \"enquire-nav-completed-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#enquire-nav-completed-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/enquire-nav-completed.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-completed.svg\n// module chunks = site__scf001","module.exports = {\n id: \"enquire-nav-current-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#enquire-nav-current-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/enquire-nav-current.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-current.svg\n// module chunks = site__scf001","module.exports = {\n id: \"enquire-nav-default-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#enquire-nav-default-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/enquire-nav-default.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/enquire-nav-default.svg\n// module chunks = site__scf001","module.exports = {\n id: \"expand-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#expand-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/expand.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/expand.svg\n// module chunks = site__scf001","module.exports = {\n id: \"fax-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#fax-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/fax.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/fax.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-container-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-container-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-container.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-container.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-flag-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-flag-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-flag.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-flag.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-handshake-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-handshake-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-handshake.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-handshake.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-happy-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-happy-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-happy.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-happy.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-idea-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-idea-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-idea.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-idea.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-padlock-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-padlock-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-padlock.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-padlock.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-phone-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-phone-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-phone.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-phone.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-product-selector-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-product-selector-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-product-selector.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-product-selector.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-shipping-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-shipping-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-shipping.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-shipping.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-thinking-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-thinking-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-thinking.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-thinking.svg\n// module chunks = site__scf001","module.exports = {\n id: \"feature-tick-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#feature-tick-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/feature-tick.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/feature-tick.svg\n// module chunks = site__scf001","module.exports = {\n id: \"hamburger-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#hamburger-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/hamburger.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/hamburger.svg\n// module chunks = site__scf001","module.exports = {\n id: \"info-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#info-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/info.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/info.svg\n// module chunks = site__scf001","module.exports = {\n id: \"map-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#map-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/map.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/map.svg\n// module chunks = site__scf001","module.exports = {\n id: \"menu-close-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#menu-close-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/menu-close.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-close.svg\n// module chunks = site__scf001","module.exports = {\n id: \"menu-open-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#menu-open-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/menu-open.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/menu-open.svg\n// module chunks = site__scf001","module.exports = {\n id: \"minus-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#minus-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/minus.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/minus.svg\n// module chunks = site__scf001","module.exports = {\n id: \"money-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#money-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/money.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/money.svg\n// module chunks = site__scf001","module.exports = {\n id: \"nz-truck-usage\",\n viewBox: \"0 0 598 165.661\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#nz-truck-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/nz-truck.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/nz-truck.svg\n// module chunks = site__scf001","module.exports = {\n id: \"person-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#person-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/person.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/person.svg\n// module chunks = site__scf001","module.exports = {\n id: \"phone-filled-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#phone-filled-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/phone-filled.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-filled.svg\n// module chunks = site__scf001","module.exports = {\n id: \"phone-outline-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#phone-outline-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/phone-outline.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/phone-outline.svg\n// module chunks = site__scf001","module.exports = {\n id: \"pin-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#pin-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/pin.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/pin.svg\n// module chunks = site__scf001","module.exports = {\n id: \"play-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#play-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/play.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/play.svg\n// module chunks = site__scf001","module.exports = {\n id: \"plus-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#plus-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/plus.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/plus.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-accommodation-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-accommodation-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-accommodation.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-accommodation.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-bulk-liquid-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-bulk-liquid-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-bulk-liquid.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-liquid.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-bulk-powder-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-bulk-powder-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-bulk-powder.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-bulk-powder.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-capacity-large-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-capacity-large-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-capacity-large.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-large.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-capacity-medium-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-capacity-medium-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-capacity-medium.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-medium.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-capacity-small-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-capacity-small-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-capacity-small.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity-small.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-capacity-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-capacity-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-capacity.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-capacity.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-chemicals-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-chemicals-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-chemicals.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-chemicals.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-dangerous-goods-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-dangerous-goods-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-dangerous-goods.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dangerous-goods.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-dimensions-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-dimensions-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-dimensions.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dimensions.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-dont-mind-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-dont-mind-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-dont-mind.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-dont-mind.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-entrance-end-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-entrance-end-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-entrance-end.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-end.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-entrance-side-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-entrance-side-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-entrance-side.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-entrance-side.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-grain-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-grain-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-grain.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-grain.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-liquid-containment-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-liquid-containment-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-liquid-containment.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid-containment.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-liquid-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-liquid-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-liquid.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-liquid.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-palletised-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-palletised-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-palletised.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-palletised.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-pallets-20-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-pallets-20-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-pallets-20.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-20.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-pallets-40-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-pallets-40-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-pallets-40.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-40.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-pallets-44-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-pallets-44-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-pallets-44.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-44.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-pallets-48-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-pallets-48-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-pallets-48.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-pallets-48.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-powder-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-powder-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-powder.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-powder.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-refrigerated-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-refrigerated-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-refrigerated.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-refrigerated.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-selector-feature-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-selector-feature-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-selector-feature.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-selector-feature.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-size-large-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-size-large-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-size-large.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-large.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-size-medium-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-size-medium-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-size-medium.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-medium.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-size-small-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-size-small-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-size-small.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-size-small.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-step1-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-step1-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-step1.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step1.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-step2-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-step2-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-step2.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step2.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-step3-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-step3-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-step3.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-step3.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-storage-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-storage-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-storage.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-storage.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-tank-capacity-liquid-large-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-tank-capacity-liquid-large-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-large.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-large.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-tank-capacity-liquid-medium-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-tank-capacity-liquid-medium-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-medium.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-medium.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-tank-capacity-liquid-small-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-tank-capacity-liquid-small-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-small.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-liquid-small.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-tank-capacity-powder-medium-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-tank-capacity-powder-medium-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-medium.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-medium.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-tank-capacity-powder-small-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-tank-capacity-powder-small-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-small.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-tank-capacity-powder-small.svg\n// module chunks = site__scf001","module.exports = {\n id: \"ps-transport-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#ps-transport-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/ps-transport.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/ps-transport.svg\n// module chunks = site__scf001","module.exports = {\n id: \"question-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#question-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/question.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/question.svg\n// module chunks = site__scf001","module.exports = {\n id: \"quote-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#quote-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/quote.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/quote.svg\n// module chunks = site__scf001","module.exports = {\n id: \"remove-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#remove-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/remove.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/remove.svg\n// module chunks = site__scf001","module.exports = {\n id: \"rewind-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#rewind-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/rewind.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/rewind.svg\n// module chunks = site__scf001","module.exports = {\n id: \"search-complex-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#search-complex-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/search-complex.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-complex.svg\n// module chunks = site__scf001","module.exports = {\n id: \"search-simple-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#search-simple-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/search-simple.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/search-simple.svg\n// module chunks = site__scf001","module.exports = {\n id: \"social-facebook-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#social-facebook-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/social-facebook.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-facebook.svg\n// module chunks = site__scf001","module.exports = {\n id: \"social-instagram-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#social-instagram-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/social-instagram.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-instagram.svg\n// module chunks = site__scf001","module.exports = {\n id: \"social-linkedin-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#social-linkedin-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/social-linkedin.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-linkedin.svg\n// module chunks = site__scf001","module.exports = {\n id: \"social-twitter-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#social-twitter-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/social-twitter.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-twitter.svg\n// module chunks = site__scf001","module.exports = {\n id: \"social-youtube-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#social-youtube-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/social-youtube.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/social-youtube.svg\n// module chunks = site__scf001","module.exports = {\n id: \"spinner-usage\",\n viewBox: \"0 0 38 38\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#spinner-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/spinner.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/spinner.svg\n// module chunks = site__scf001","module.exports = {\n id: \"star-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#star-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/star.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/star.svg\n// module chunks = site__scf001","module.exports = {\n id: \"talk-usage\",\n viewBox: \"0 0 500 500\",\n url: __webpack_public_path__ + \"images/sprites.min-9b73c1f5890a868779c2c0c5debf53b3.svg#talk-usage\",\n toString: function () {\n return this.url;\n }\n }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/src/site__scf001/components/site/sprites/talk.svg\n// module id = /home/vsts/work/1/s/src/SCF/node_modules/svg-sprite-loader/lib/loader.js??ref--12-0!/home/vsts/work/1/s/src/SCF/client/src/site__scf001/components/site/sprites/talk.svg\n// module chunks = site__scf001","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = external \"jQuery\"\n// module chunks = core site__scf001 site__csl001 vendor"],"sourceRoot":""}