{"version":3,"sources":["webpack:///app.c7148aa7ef3d10e9fff3.js","webpack:///./app/components/helpline-menu/js/generic.helpline-menu.js","webpack:///./app/components/postback-button/main.js","webpack:///./app/components/hero-image/main.js","webpack:///./app/general/svg/user2.svg","webpack:///./app/components/jg-imagery/main.js","webpack:///./app/general/js/matches-polyfill.js","webpack:///./app/components/image-gallery/main.js","webpack:///./app/components/shop/js/generic.basket-info.js","webpack:///./app/components/hero-donate/js/generic.hero-donate.js","webpack:///./app/general/svg/tick2.svg","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:///./app/components/donate-menu/js/generic.donate-menu.js","webpack:///./app/components/sharethis/main.js","webpack:///./app/components/map/main.js","webpack:///./app/components/header/main.js","webpack:///./app/components/cookie-bar/main.js","webpack:///./app/general/svg/delete-logo.svg","webpack:///./app/components/nav-main/js/generic.navmain.js","webpack:///./app/components/modal/js/modal.js","webpack:///./app/components/helpline-menu/main.js","webpack:///./app/general/js/helpers.js","webpack:///./app/general/svg/arrow-left.svg","webpack:///./app/components/modal/html/modal.handlebars","webpack:///./app/general/js/app-instance.js","webpack:///./app/components/accordion/main.js","webpack:///./app/components/custom-donate/js/custom-donate-form.js","webpack:///./app/general/svg/download.svg","webpack:///./app/components/eligibility-checker/main.js","webpack:///./app/components/modal/js/url-modal.js","webpack:///./app/components/jg-leaderboard/html/jg-leaderboard.hbs","webpack:///./app/components/modal/js/generic.modal.js","webpack:///./app/general/svg/search.svg","webpack:///./app/components/embed-product/main.js","webpack:///./app/components/map/html/infoWindowTemplate.hbs","webpack:///./app/components/donation-selector/main.js","webpack:///./app/components/modal/js/static-modal.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:///./app/components/shop/main.js","webpack:///./app/general/js/generic.factory.js","webpack:///./node_modules/tippy.js/dist/tippy.all.js","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///./app/general/svg/letter.svg","webpack:///./app/components/pagination/main.js","webpack:///./app/components/text-with-statistic/main.js","webpack:///./app/components/ga-tracker/js/generic.ga-event.js","webpack:///./app/components/page-spinner/main.js","webpack:///./app/general/js/menu-manager.js","webpack:///./app/components/spinbox/main.js","webpack:///./app/components/form/main.js","webpack:///./app/components/listing/js/listing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///./app/components/filter/main.js","webpack:///./app/general/svg/person.svg","webpack:///./app/general/svg/sms.svg","webpack:///./app/components/file-input/main.js","webpack:///./app/components/donation-selector/js/generic.donation-selector.js","webpack:///./app/components/tabs/main.js","webpack:///./app/components/logo-list/main.js","webpack:///./app/general/js/scroller.js","webpack:///./app/general/js/create-event.js","webpack:///./app/components/jg-imagery/html/jg-imagery-empty.hbs","webpack:///./app/general/svg/modal_close.svg","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:///./app/general/svg/doc-ppt.svg","webpack:///./app/components/accordion/js/generic.accordion.js","webpack:///./app/components/file-icon/main.js","webpack:///./app/components/downloads/main.js","webpack:///./node_modules/wolfy87-eventemitter/EventEmitter.js","webpack:///./app/components/search-top/js/generic.search-top.js","webpack:///./app/components/tabs/js/generic.tabs.js","webpack:///./node_modules/svg-sprite-loader/runtime/browser-sprite.build.js","webpack:///./app/components/shop/js/generic.shop-bundle.js","webpack:///./node_modules/lazysizes/plugins/parent-fit/ls.parent-fit.min.js","webpack:///./app/components/modal/main.js","webpack:///./app/components/sharethis/js/generic.sharethis.js","webpack:///./app/general/svg/slant-gradient.svg","webpack:///./app/components/shop/js/basket-manager.js","webpack:///./app/components/jg-leaderboard/html/jg-leaderboard-empty.hbs","webpack:///./app/components/shop/js/generic.basket.js","webpack:///./app/components/gift-aid/js/generic.gift-aid.js","webpack:///./app/components/jg-imagery/html/jg-imagery.hbs","webpack:///./app/components/rangepicker/main.js","webpack:///./app/general/svg/document.svg","webpack:///./node_modules/lazysizes/plugins/object-fit/ls.object-fit.min.js","webpack:///./app/general/svg/doc-pdf.svg","webpack:///./app/components/currency-switcher/main.js","webpack:///./app/components/shop/js/basket-item-types.js","webpack:///./app/components/accordion/js/plugins/jquery-ui.js","webpack:///./app/components/multi-selector/js/generic.multi-selector.js","webpack:///./app/components/lightbox/main.js","webpack:///./app/components/event-options/js/generic.event-options.js","webpack:///./app/components/profile/js/generic.profile.js","webpack:///./app/components/video/main.js","webpack:///./app/general/js/page-spinner.js","webpack:///./app/general/svg/user.svg","webpack:///./app/components/map/js/generic.map.js","webpack:///./app/components/nav-top/main.js","webpack:///./app/general/svg/arrow-up.svg","webpack:///./app/components/custom-donate/js/generic.custom-donate.js","webpack:///./app/components/listing/js/pagination-listing.js","webpack:///./app/components/statistic/main.js","webpack:///./app/components/listing/main.js","webpack:///./app/components/show-rule/main.js","webpack:///./app/components/staff-contact/main.js","webpack:///./app/general/js/modernizr-build.js","webpack:///./app/general/js/content-blocker.js","webpack:///./app/components/form/js/generic.form.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:///./app/components/poll-button/js/poll-button.js","webpack:///./app/components/forum/main.js","webpack:///./app/general/svg/arrow-right.svg","webpack:///./app/components/multi-selector/main.js","webpack:///./app/components/breadcrumbs/main.js","webpack:///./app/components/hero-donate/main.js","webpack:///./app/components/account/html/delete-account.hbs","webpack:///./app/components/hero-image/js/generic.hero-image.js","webpack:///./app/components/touch-button/main.js","webpack:///./app/general/svg/calendar.svg","webpack:///./app/components/lightbox/js/generic.lightbox.js","webpack:///./app/general/js/jg-api.js","webpack:///./app/components/login-block/js/generic.login-block.js","webpack:///./app/components/jg-leaderboard/js/generic.jg-leaderboard.js","webpack:///./app/components/postback-button/js/generic.postback-button.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:///./app/components/simple-list/main.js","webpack:///./node_modules/stickyfilljs/dist/stickyfill.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///./app/components/jg-donations/html/jg-donations.hbs","webpack:///./node_modules/lazysizes/plugins/respimg/ls.respimg.min.js","webpack:///./app/components/shop/html/add-item-error-message.hbs","webpack:///./app/components/form/js/form-validity-handler.js","webpack:///./app/components/jg-total/js/generic.jg-total.js","webpack:///./app/components/shop/js/generic.shop-item.js","webpack:///./node_modules/svg-baker-runtime/browser-symbol.js","webpack:///./app/components/move-to/main.js","webpack:///./app/components/listing/js/generic.listing.js","webpack:///./app/components/just-giving/main.js","webpack:///./app/general/js/generic.basecomponent.js","webpack:///./app/components/listing/js/load-more-listing.js","webpack:///./app/general/js/ga-helper.js","webpack:///./app/components/modal/js/content-modal.js","webpack:///./app/components/profile/main.js","webpack:///./app/components/tooltip/js/generic.tooltip.js","webpack:///./app/components/jg-donations/main.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:///./node_modules/handlebars/runtime.js","webpack:///./app/components/event-options/main.js","webpack:///./app/components/featured-content/main.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:///./app/general/js/jquery.fancybox.js","webpack:///./app/general/svg/phone.svg","webpack:///./app/components/search-results/main.js","webpack:///./app/components/poll-button/main.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:///./app/components/datepicker/js/generic.datepicker.js","webpack:///./app/general/js/constants.js","webpack:///./app/components/hero-carousel/js/generic.hero-carousel.js","webpack:///./app/components/hero/main.js","webpack:///./app/components/login-block/main.js","webpack:///./app/components/symptom-checker/main.js","webpack:///./app/components/modal/js/modal-controller.js","webpack:///./app/general/svg/tick.svg","webpack:///./app/components/nav-top/js/generic.navtop.js","webpack:///./app/components/jg-imagery/js/generic.jg-imagery.js","webpack:///./app/components/payment-summary/main.js","webpack:///./app/components/hero-carousel/main.js","webpack:///./app/components/touch-button/js/generic.touch-button.js","webpack:///./app/general/svg/just-giving-logo.svg","webpack:///./app/components/promo/main.js","webpack:///./app/components/hamburger/main.js","webpack:///./app/components/spinbox/js/generic.spinbox.js","webpack:///./app/components/header/js/generic.header-top.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:///./app/components/account/js/generic.account.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:///./app/components/logo-list/js/generic.logo-list.js","webpack:///./app/components/search-top/main.js","webpack:///./app/general/svg/share.svg","webpack:///./app/general/js/widowtamer.js","webpack:///./app/components/jg-donations/html/jg-donations-empty.hbs","webpack:///./app/general/svg/account.svg","webpack:///./app/app.js","webpack:///./app/components/content-heading/main.js","webpack:///./app/components/file-input/js/generic.file-input.js","webpack:///./app/components/spinner/main.js","webpack:///./app/general/svg/basket.svg","webpack:///./app/general/svg/arrow-down.svg","webpack:///./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///./app/components/jg-leaderboard/main.js","webpack:///./app/components/rangepicker/js/generic.rangepicker.js","webpack:///./app/components/payment-summary/js/generic.payment-summary.js","webpack:///./app/components/account/main.js","webpack:///./app/components/gift-aid/main.js","webpack:///./node_modules/lazysizes/plugins/fix-ios-sizes/fix-ios-sizes.min.js","webpack:///./app/components/centered-button/main.js","webpack:///./app/components/form-container/main.js","webpack:///./app/general/svg/web.svg","webpack:///./app/components/donate-menu/main.js","webpack:///./app/components/ways-you-can-help/main.js","webpack:///./app/components/related-content/main.js","webpack:///./app/general/svg/header-angle.svg","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:///./app/components/get-in-touch/main.js","webpack:///./app/components/move-to/js/generic.move-to.js","webpack:///./app/components/payment-nav/main.js","webpack:///./app/components/responsive-images/main.js","webpack:///./app/components/map/js/generic.pin-switcher.js","webpack:///./app/components/hamburger/js/generic.hamburger.js","webpack:///./app/general/svg/doc-doc.svg","webpack:///./app/general/svg/arrow-down-thin.svg","webpack:///./app/general/js/base-datepicker-config.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///./app/components/footer/main.js","webpack:///./app/components/content-heading/js/generic.content-heading.js","webpack:///./app/components/social-links/main.js","webpack:///./app/components/jg-total/main.js","webpack:///./app/components/round-donation/js/generic.round-donation.js","webpack:///./node_modules/lazysizes/plugins/bgset/ls.bgset.min.js","webpack:///./node_modules/cleave.js/dist/cleave.js","webpack:///./app/components/round-donation/main.js","webpack:///./app/components/text-with-image/main.js","webpack:///./app/components/buttons-group/main.js","webpack:///./app/components/show-rule/js/generic.show-rule.js","webpack:///./app/components/bordered-block/main.js","webpack:///./app/components/tooltip/main.js","webpack:///./app/general/svg ^\\.\\/.*\\.svg","webpack:///./app/components/ways-to-donate/main.js","webpack:///./app/general/svg/beaker.svg","webpack:///./app/general/svg/doc-default.svg","webpack:///./app/components/custom-donate/main.js","webpack:///./app/components/currency-switcher/js/generic.currency-switcher.js","webpack:///./app/general/svg/pencil.svg","webpack:///./app/components/image-gallery/js/generic.image-gallery.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:///./app/components/shop/html/add-item-message.hbs","webpack:///./app/components/payment-summary/html/table.hbs","webpack:///./app/components/signposts/main.js","webpack:///./app/components/nav-main/main.js","webpack:///./app/components/datepicker/main.js","webpack:///./app/components/ga-tracker/main.js","webpack:///./app/components/jg-donations/js/generic.jg-donations.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/runtime.js"],"names":["webpackJsonp","+9lV","module","exports","__webpack_require__","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","defineProperty","_createClass","defineProperties","target","props","i","length","descriptor","key","protoProps","staticProps","_generic","_generic2","_menuManager","_menuManager2","_generic3","HelplineMenu","_Component","el","this","_this","getPrototypeOf","init","container","addEventListener","toggle","bind","menu","document","querySelector","menuId","isOpened","open","close","level","desktop","isEnabled","isOpenedGlabally","MOBILE_MENU_ID","classList","add","remove","+I9t","factoryInstance","className","ensure","resolve","callAfter","+Pxu","_core","+Xj0","__webpack_exports__","__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__","__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default","n","__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__","__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default","symbol","a","id","use","viewBox","content","+k1c","/AiR","Element","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","/emb","/z+F","0QBl","_jquery","_jquery2","_appInstance","_appInstance2","BasketInfo","basketInfoUrl","totalCountSelector","totalCount","loadInitial","addListener","onBasketUpdate","basket","updateInfo","innerHTML","TotalCount","_this2","doBasketInfoRequest","then","result","error","console","log","_this3","params","arguments","undefined","Promise","reject","ajax","method","url","getUrl","done","response","fail","paramsString","keys","map","join","0z6U","_toConsumableArray","arr","Array","isArray","arr2","from","HeroDonate","elements","querySelectorAll","currencyContainer","removeActive","concat","forEach","x","addActive","getElementById","style","cssText","visibility","element","emitEvent","dataset","amount","1Di1","1TTl","_utils","_exception","_exception2","registerHelper","context","options","execIteration","field","index","last","data","first","contextPath","ret","fn","blockParams","inverse","ids","appendContextPath","isFunction","createFrame","j","priorKey","hasOwnProperty","1WoH","DonateeMenu","2","2BvZ","2eOn","mapInstance","pinSwitcherInstance","2jxP","3JMX","3V1W","3jxK","3tuH","3wrH","3yJq","43qK","_TweenLite","_TweenLite2","MainNav","defineVariables","initNav","itemsSelector","subsSelector","body","menuItems","bg","shadowBg","angleBg","secondaryNav","isItemHoveredMenuClass","isItemOpenedMenuClass","isMenuItemHovered","selectedMenuItem","isItemOpenedClass","item","onMouseOverItem","subNav","link","e","itemOpenOnClick","itemOpenOnHover","checkOuterClick","onMouseLeave","openMenu","closeMenu","mobile","hoveredItem","preventDefault","handleItemOpen","clickedItem","to","autoAlpha","display","$target","itemsLinkSelector","subnavLinkSelector","subnavLiSelector","is","parents","fromTo","y","delay","44Oj","_extends","assign","source","_modalController","_modalController2","Modal","_content","defaultOptions","controller","getInstance","refresh","getContent","Error","closable","4VVj","4fe/","4gBd","4ohY","helpers","debounce","f","ms","timer","_len","args","_key","onComplete","apply","clearTimeout","setTimeout","throttle","_len2","_key2","getParent","selector","parent","parentElement","4wLO","51GQ","5341","Handlebars","template","compiler","main","depth0","partials","useData","546j","DEVICE_TYPE_MOBILE","DEVICE_TYPE_TABLET","DEVICE_TYPE_DESKTOP","_modernizrBuild","_modernizrBuild2","_wolfy87Eventemitter","_wolfy87Eventemitter2","App","_EventEmitter","timeoutTime","timeoutId","$window","window","isTouch","touchevents","isIOSMobile","navigator","platform","test","applyViewportData","on","onWindowResize","viewport","width","outerWidth","height","outerHeight","orientation","Math","abs","isDesktop","mq","isTablet","deviceTypeByViewport","handleWindowResize","oldDeviceType","5XoY","5f7H","CustomDonateForm","_Form","notLoggedSubmitHandler","isLoggedIn","parsleyForm","validate","__doPostBack","submit","getAttribute","setAttribute","5mra","6iMZ","7Rlk","7cwp","_modal","_modal2","UrlModal","_Modal","responseText","append","find","8VB3","1","helper","alias1","nullContext","alias2","helperMissing","alias3","alias4","escapeExpression","number","name","hash","pageTitle","donateUrl","currencySign","targetRate","stack1","buffer","count","leaders","program","noop","blockHelperMissing","8rcf","_staticModal","_staticModal2","_urlModal","_urlModal2","ModalComponent","$container","modalInstance","handleClick","targetSelector","href","attr","90h0","98Kd","9BMC","9GCv","title","text","lat","lon","9PxB","9TyS","StaticModal","children","9ZNr","registerDecorator","original","extend","9fKf","shopItemInstance","shopBundleInstance","basketInstance","basketInfoInstance","9mGK","9tDy","A7Qy","Factory","settings","getInitedClass","l","initSingle","createInstance","hasClass","addClass","elementInstance","removeClass","destroy","classInstance","replace","contains","indexOf","ACx4","ANqr","ARHp","global","factory","isObjectLiteral","toString","toArray","slice","getArrayOfElements","NodeList","_","polyfillVirtualReferenceProps","reference","refObj","attributes","val","removeAttribute","hasAttribute","removeEventListener","classNames","prefix","property","prefixes","upperProp","charAt","toUpperCase","_prefix","prefixedProp","div","createElement","createPopperElement","popper","zIndex","maxWidth","tooltip","size","animation","theme","split","t","arrow","arrowTransform","arrowType","appendChild","animateFill","backdrop","inertia","interactive","html","templateId","allowTitleHTML","createTrigger","eventType","handlers","onTrigger","onBlur","onDelegateShow","onDelegateHide","listeners","handler","push","event","browser","supportsTouch","touchHold","isIE","getIndividualOptions","instanceOptions","defaultsKeys","reduce","acc","toLowerCase","isFinite","isNaN","parseFloat","trim","JSON","parse","evaluateOptions","appendTo","getInnerElements","select","s","selectors","TOOLTIP","BACKDROP","CONTENT","ARROW","ROUND_ARROW","removeTitle","microtaskDebounce","called","taskDebounce","scheduled","timeoutDuration","functionToCheck","getType","getStyleComputedProperty","nodeType","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","ownerDocument","_getStyleComputedProp","overflow","overflowX","overflowY","isIE$1","version","isIE11","isIE10","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","getClientRect","offsets","_extends$1","getBoundingClientRect","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","getBoundaries","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","sort","b","filteredAreas","filter","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","marginBottom","marginRight","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","findIndex","prop","cur","match","runModifiers","modifiers","ends","warn","enabled","update","isDestroyed","arrowStyles","flipped","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","toCheck","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","defaultView","attachToScrollParents","callback","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","cancelAnimationFrame","isNumeric","setStyles","unit","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","floor","round","prefixedProperty","invertTop","invertLeft","x-placement","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","_data$offsets","isVertical","len","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","defineProperty$1","getOppositeVariation","clockwise","counter","validPlacements","reverse","placementOpposite","flipOrder","behavior","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","keepTogether","toValue","str","parseOffset","offset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","index2","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","shift","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","reflow","updatePopperPosition","popperInstance","updateAlreadyCalled","getPopperPlacement","cursorIsOutsideInteractiveBorder","clientX","clientY","interactiveBorder","distance","borderWithDistance","exceeds","transformNumbersBasedOnPlacementAxis","type","numbers","isReverse","scale","translate","transformAxis","X","Y","computeArrowTransform","getAxis","re","getNumbers","computedTransform","getOffsetDistanceInPx","defaults","defer","requestAnimationFrame","closest","parentSelector","matches$1","getValue","setVisibilityState","els","applyTransitionDuration","Boolean","focus","scrollX","pageXOffset","scrollY","pageYOffset","scroll","_hasFollowCursorBehavior","lastTriggerEvent","followCursor","usingTouch","_createDelegateChildTippy","targetEl","_tippy","tippy","_enter","_this4","_clearDelayTimeouts","visible","isPreparingToShow","wait","show","followCursorListener","_setFollowCursorListener","_getInnerElements3","margin","showTimeout","_leave","_this5","hideTimeout","_getEventListeners","_this6","hideOnClick","onMouseMove","referenceCursorIsOver","REFERENCE","cursorIsOverPopper","POPPER","cursorIsOverReference","relatedTarget","_createPopperInstance","_this7","_getInnerElements4","popperOptions","arrowSelector","config","flipBehavior","_addMutationObserver","childList","subtree","characterData","Popper","_mount","livePlacement","_getInnerElements5","_this8","_$lastMouseMoveEvent","lastMouseMoveEvent","_makeSticky","_this9","applyTransitionDuration$$1","updateDuration","removeTransitionDuration","updatePosition","MutationObserver","observer","observe","mutationObservers","_onTransitionEnd","duration","_getInnerElements6","toggleListeners","action","listener","transitionendListener","createTooltips","idCounter","performance","dynamicTitle","Tippy","createPopperInstanceOnInit","trigger","_getInnerElements","_reference","hideAllPoppers","excludeTippy","bindEventListeners","onDocumentTouch","iOS","dynamicInputDetection","onDocumentMouseMove","onUserInputChange","time","now","onDocumentClick","isClickTrigger","isMultiple","multiple","onWindowBlur","_document","activeElement","blur","tippyInstance","maxTouchPoints","msMaxTouchPoints","one","supported","eventListenersBound","references","firstReference","tooltips","destroyAll","isBrowser","userAgent","MSStream","sticky","onShow","onShown","onHide","onHidden","classCallCheck","createClass","isBrowser$1","longerTimeoutBrowsers","supportsMicroTasks","MSInputMethodContext","documentMode","classCallCheck$1","createClass$1","placements","onLoad","Defaults","jquery","Utils","PopperUtils","store","k","destroyed","_getInnerElements2","destroyTargetInstances","child","disconnect","disableAnimations","head","insertBefore","firstChild","styleSheet","createTextNode","B2fU","lazySizes","getElementsByClassName","lazysizes","lazySizesConfig","docElem","Date","supportPicture","HTMLPictureElement","requestIdleCallback","regPicture","loadEvents","regClassCache","ele","cls","RegExp","reg","addRemoveLoadEvents","dom","evt","triggerEvent","elem","detail","noBubbles","noCancelable","createEvent","initCustomEvent","dispatchEvent","updatePolyfill","full","polyfill","picturefill","pf","reevaluate","src","getCSS","getWidth","minSize","_lazysizesWidth","rAF","running","waiting","firstFns","secondFns","fns","run","runFns","rafBatch","queue","hidden","_lsFlush","rAFIt","simple","that","lastTime","rICTimeout","idleCallback","timeout","isPriority","func","timestamp","later","loader","preloadElems","isCompleted","resetPreloadingTimer","loadMode","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","defaultExpand","preloadExpand","hFac","regImg","regIframe","supportScroll","currentExpand","isLoading","lowRuns","resetPreloading","isNestedVisible","elemExpand","outerRect","checkElements","eLlen","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","lazyloadElems","expand","expFactor","_lazyRace","loadHidden","unveilElement","preloadAfterLoad","sizesAttr","throttledCheckElements","switchLoadingClass","loadedClass","loadingClass","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","contentWindow","location","handleSources","customMedia","sourceSrcset","srcsetAttr","lazyUnveil","isAuto","isImg","srcset","isPicture","firesLoad","defaultPrevented","autosizesClass","srcAttr","getElementsByTagName","lazyClass","complete","naturalWidth","errorClass","autoSizer","updateElem","onload","afterScroll","preloadClass","setInterval","readyState","checkElems","unveil","autosizesElems","sizeElement","sources","dataAttr","getSizeElement","updateElementsSizes","debouncedUpdateElementsSizes","lazySizesDefaults","lazysizesConfig","cfg","uP","aC","rC","hC","fire","gW","B7NF","B91i","BFzH","BWIW","Bsi4","C2w5","_gaHelper","_gaHelper2","GaEvent","onClick","stopPropagation","category","label","ga","C4/Y","C4F1","_contentBlocker","_contentBlocker2","MenuManager","menuCollection","stack","defaultMenuConfig","isBlocking","newDeviceType","switchBetweenDeviceType","menuConfig","getMenuConfig","openedMenu","prevMenu","pop","isBlocked","block","unblock","deviceConfig","CBhC","CH/3","CJ7E","CZpf","ClJA","_masonryLayout","_masonryLayout2","_fontLoader","_fontLoader2","_pageSpinner","_pageSpinner2","_scroller","_scroller2","Listing","filterSelector","filterFieldSelector","gridSelector","gridItemSelector","stampItemSelector","emptyMessageSelector","transitionDuration","filterFields","filterReset","currentPage","initConfig","grid","emptyMessage","bootstrap","endpointUrl","multiColumnAttribute","isMultiColumn","initPagination","onFilterChange","isNeedTrackFilter","trackFilter","resetFilter","bootstrapPromise","masonry","columnWidth","itemSelector","stamp","percentPosition","stagger","horizontalOrder","bootstrapFinish","page","getData","renderData","currentItems","items","appended","layout","itemsHtml","domParser","DOMParser","pseudoDocument","parseFromString","listingClearPromise","removeItems","handleEmptyResponse","appendItems","updatePagination","updateResetState","render","dropdownTextarea","o","selected","checked","disabled","getRequestParams","paramsPrefix","selectedOptions","includes","isFilterEmpty","getTrackingEventCategory","getTrackingEventAction","getTrackingEventLabel","scrollToElement","Cz5H","Exception","message","loc","line","column","tmp","idx","errorProps","captureStackTrace","lineNumber","nop","D+Rp","D3ir","DBgD","DPol","DXj3","EEIA","EKM+","_helpers","_helpers2","DonationSelector","handleBtnClick","$btn","$input","handleInput","$targetBtn","inputVal","each","$el","EdLV","EmLy","EqrE","F9XD","FTYA","Scroller","speed","isInsideWindow","_scrollToElement","elementPosition","getElementDocumentPosition","windowTop","windowBottom","box","moveToRect","scrollTargetY","tick","currentTime","p","easingFunction","scrollTo","currentY","pos","cos","PI","G0mC","Event","bubbles","initEvent","GENp","GKKS","GbIs","Gg7h","isEmpty","Gt49","H2+J","H7+E","H8Bx","HLIP","HT49","_jqueryUi","_formValidityHandler","_formValidityHandler2","AccordionEl","customSettings","_settings","$nextButton","initAccordion","accordion","$panels","formNode","onFailed","onInnerFieldNotValid","beforeSubmit","onBeforeSubmit","onClickNext","nextIndex","getNextPanelIndex","siblings","mustOpenPanel","currentIndex","active","panels","header","collapsible","heightStyle","activate","ui","newHeader","offsetTop","animate","HXbm","Ha0Y","Hm9o","I0Rb","I1Kh","__WEBPACK_AMD_DEFINE_RESULT__","EventEmitter","indexOfListener","alias","isValidListener","proto","originalGlobalValue","getListeners","events","_getEvents","flattenListeners","flatListeners","getListenersAsObject","listenerIsWrapped","once","addOnceListener","defineEvent","defineEvents","evts","removeListener","splice","off","addListeners","manipulateListeners","removeListeners","single","removeEvent","_events","removeAllListeners","listenersMap","_getOnceReturnValue","emit","setOnceReturnValue","_onceReturnValue","noConflict","ICMN","SearchTop","toggleMenu","shadow","searchTrigger","input","elementsToHide","headerNav","closeDesktop","openDesktop","elementsToHideDisplay","IKFF","ISDb","_typeof","Symbol","iterator","Tabs","callbacks","initTabs","tabs","tab","setTab","activeTabHash","supportTags","defaultActive","activeClass","currentTab","substr","setActiveClass","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","next","substring","err","return","IaZV","createCommonjsModule","mitt","all","selectAttributes","nodes","matcher","arrayFrom","arrayfied","encoder","specialUrlCharsPattern","charCodeAt","updateReferences","startsWith","replaceWith","xLinkAttrName","newUrl","setAttributeNS","xLinkNS","root","commonjsGlobal","isMergeableObject","emptyTarget","cloneIfNecessary","optionsArgument","clone","deepmerge","defaultArrayMerge","destination","mergeObject","array","arrayMerge","prev","namespaces_1","namespaces","svg","uri","xlink","objectToAttrsString","attrs","defaultAttrs","wrapInSvgString","svg$1","xlink$1","defaultConfig","Sprite","symbols","ref","existing","has","stringify","stringifiedSymbols","defaultConfig$1","autoConfigure","mountTo","syncUrlsWithBaseTag","listenLocationChangeEvent","locationChangeEvent","locationChangeAngularEmitter","usagesToUpdate","moveGradientsOutsideSymbol","arrayLike","ua","isChrome","isFirefox","isEdge","getUrlWithoutFragment","eventName","angular","$rootScope","$on","oldUrl","hasImportNode","importNode","doc","attList","attSelector","updateUrls","startsWithEncoded","replaceWithEncoded","localName","Events","MOUNT","BrowserSprite","Sprite$$1","this$1","emitter","_emitter","_autoConfigure","baseUrl","handleLocationChange","_handleLocationChange","prototypeAccessors","isMounted","get","isNewSymbol","mount","unmount","prepend","mountTarget","childNodes","usages","ready$1","definition","hack","doScroll","loaded","sprite","loadSprite","textContent","IprN","_basketManager","_basketManager2","ShopBundle","addButtonSelector","itemOptionSelector","inProgress","itemId","addButton","optionsData","option","optionId","onAddButtonClick","getRequestBody","doAddRequest","proceedSuccessAddToCart","proceedCartOperationError","getEndpointUrl","Id","Products","getItems","itemsResult","itemData","prepareItemOptions","Options","Isn1","c","d","g","h","previousElementSibling","jQuery","getFit","fontFamily","fit","_lazysizesParentFit","_lazysizesParentContainer","objectFit","getImageRatio","_lsMedia","matchMedia","$2","$1","$3","calculateSize","parentFit","IynX","JJca","Sharethis","shareThisScript","async","JqIc","K23W","_contentModal","_contentModal2","_addItemMessage","_addItemMessage2","_addItemErrorMessage","_addItemErrorMessage2","BasketManager","modal","getItemPriceUrl","Result","ShoppingCart","renderSuccessAddMessage","renderCartErrorMessage","basketDescription","isEvent","IsEvent","eventLink","EventLink","isModalUnclosable","disableClosing","enableClosing","setContent","Text","basketManager","K921","KJaf","_defineProperty","_basketItemTypes","Basket","removeItemUrl","itemRemoveSelector","itemQuantitySelector","itemTotalSelector","basketTotalSelector","basketShippingSelector","basketShippingDropdownSelector","onShippingChange","total","shipping","shippingDropdown","quantity","onRemoveClick","onQuantityChange","TYPE_DONATION","TYPE_PRODUCT","getPreparedValue","doRemoveItemRequest","removeItem","updateBasket","clientId","fade","validateItemQuantity","doUpdateQuantityRequest","getUpdateQuantityUrl","getUpdateQuantityBody","updateItem","commitItemQuantity","rollbackItemQuantity","basketItem","Items","parseInt","FormattedTotalPrice","FormattedShippingPrice","KcaZ","_get","object","receiver","Function","desc","getOwnPropertyDescriptor","getter","GiftAid","donationAmountChange","$donation","$increased","currencySimbol","donation","donationVisual","toFixed","increasedVisual","showContainer","hideContainer","KfCa","absoluteUrl","caption","3","images","KwMc","LJNT","LLZ/","LUPE","LWQc","LfxX","cloneNode","currentSrc","backgroundImage","m","objectFitClass","backgroundRepeat","backgroundPosition","backgroundSize","50% 50%","LnWC","M3U0","MHtb","MOmn","TYPE_EVENT","MUu/","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","$","widgetUuid","widgetSlice","cleanData","orig","elems","_data","triggerHandler","widget","base","existingConstructor","basePrototype","proxiedPrototype","namespace","fullName","Widget","expr","_createWidget","_proto","_childConstructors","_super","_superApply","returnValue","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","childPrototype","bridge","inputIndex","inputLength","isPlainObject","isMethodCall","methodValue","pushStack","_init","defaultElement","classes","uuid","eventNamespace","bindings","hoverable","focusable","classesElementLookup","_on","parentWindow","_getCreateOptions","_create","_setOptionDisabled","_trigger","_getCreateEventData","_destroy","_removeClass","removeData","removeAttr","parts","curOption","_setOptions","_setOption","_setOptionClasses","classKey","currentElements","_classes","_toggleClass","enable","disable","processClassString","checkOption","current","unique","not","extra","_untrackClassesElement","inArray","_addClass","toggleClass","suppressDisabledCheck","delegateElement","handlerProxy","guid","_off","_delay","_hoverable","mouseenter","currentTarget","mouseleave","_focusable","focusin","focusout","originalEvent","isDefaultPrevented","defaultEffect","effect","hasOptions","effectName","isEmptyObject","effects","easing","keyCode","BACKSPACE","COMMA","DELETE","DOWN","END","ENTER","ESCAPE","HOME","LEFT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SPACE","TAB","UP","uniqueId","removeUniqueId","ui-accordion-header","ui-accordion-header-collapsed","ui-accordion-content","icons","activeHeader","beforeActivate","hideProps","borderBottomWidth","paddingTop","paddingBottom","showProps","prevShow","prevHide","_processPanels","headers","_refresh","panel","_createIcons","icon","prependTo","_destroyIcons","contents","_activate","_setupEvents","_keydown","altKey","ctrlKey","toFocus","_eventHandler","_panelKeyDown","prevHeaders","prevPanels","maxHeight","_findActive","headerId","panelId","aria-selected","aria-expanded","tabIndex","aria-hidden","eq","isVisible","keydown","activeChildren","clickedChildren","clicked","clickedIsActive","collapsing","toShow","toHide","eventData","oldHeader","oldPanel","newPanel","_toggle","stop","_animate","_toggleComplete","adjust","boxSizing","down","fx","MjPF","MoMC","libraryLoaded","MSFmultiSelect","defultSettings","ul","textarea","readOnly","selectAll","li","innerText","setValue","removeValue","onChange","logger","addTarget","list","sync","reload","ready","$dropdownCheckbox","Mzdc","NUoN","_constants","_constants2","_generic4","EventOptions","radioSelector","spinboxSelector","hiddenCounterSelector","itemChangeHandler","onSpinboxValueChanged","radioButtons","spinboxInstances","spinboxContainers","invalidSpinboxFields","EVENT_SPINBOX_CHANGED","spinboxNode","hiddenCounter","setInintialActive","radioChangeHandler","setActive","itemNode","setToMin","reset","spinbox","NaZO","Profile","onProfileClick","NatS","Nd0x","NnN2","O+/h","O0WQ","PageSpinner","isInited","currentOptions","spinnerElement","blockContent","applyOptions","OBau","OMs7","_infoWindowTemplate","_infoWindowTemplate2","Map","mapSelector","mapId","markers","centeredMarkerIndex","markerParent","markersSelector","isFullScreen","scriptPromise","loadScript","infoWindow","initMap","initMarkers","centerMarkers","initFullScreenBtn","resize","centerMarkerByIndex","zoom","gmap","google","maps","LatLng","scrollwheel","centerSingleMarker","setCenter","marker","getPosition","setZoom","centerMultipleMarkers","bounds","LatLngBounds","fitBounds","markerDivs","ELEMENT_NODE","markerDiv","setMarkers","goldStar","path","fillColor","fillOpacity","setMap","gmarker","Marker","Animation","DROP","openInfoWindow","toggleMapSize","fullScreenBtnSelector","button","fullscreenClass","isMarkerCanOpenInfoWindow","InfoWindow","success","script","onerror","initGoogleMaps","OV+y","Ol1h","Omm2","Or2Y","_customDonateForm","_customDonateForm2","CustomDonate","tabsContainer","loginContainer","formInstance","showLoginForm","tabsCallbacks","monthly-donation","onMonthlyTabActivate","single-donation","onSingleTabActivate","tabsInstance","amountChange","hideCurrency","showCurrency","P+QQ","_listing","_listing2","LoadMoreListing","_Listing","loadMoreElement","P1B+","PFd7","PVDd","PtbP","PvPc","createElementNS","r","fake","u","background","_version","_config","classPrefix","enableClasses","enableJSClass","usePrefixes","_q","addTest","addAsyncTest","Modernizr","msMatchMedia","currentStyle","_prefixes","v","testStyles","DocumentTouch","aliases","baseVal","Pw+U","ContentBlocker","$body","pageOffset","_isBlocked","isFree","every","Q1aM","ATTRIBUTE_VALIDATE_NEVER","ATTRIBUTE_VALIDATE_ALWAYS","_parsleyjs","_parsleyjs2","_createEvent","_createEvent2","scrollFlag","Form","customSubmitHandler","customSubmit","formControlSelector","formMessageSelector","validatedFormElementSelector","validatedFormSubmitSelector","generalErrorsContainerSelector","submitButton","$generalErrorsContainer","initMultipleGroup","isParsleyInited","initParsley","initFocusStates","checkFormMessage","initValidation","initSubmit","namedGroupNodes","groupName","controls","$formControl","$control","validatedFormElement","excluded","excludedDefault","successClass","classHandler","$element","errorsContainer","errorsWrapper","errorTemplate","fields","errors","getFieldServerErrors","showFieldError","onFieldError","errorsArray","unNamedErrors","Name","showGeneralErrors","errorsHtml","serverErrorsString","doSubmit","hideGeneralErrors","defaultSubmit","messageElement","messageTop","messageBottom","$submitBtn","which","tagName","click","form","checkBoxes","divBoxesChecked","$elements","addValidator","validateString","isReturnsEmpty","serverErrorValue","getParsleyFieldvalue","validateMultiple","values","addMessages","email","isValid","_ret","validationResult","errorMessage","serverMessage","validateIfEmpty","errorEvent","EVENT_FIELD_VALIDATION_FAILED","Qhfb","SafeString","string","toHTML","Qii6","PollButton","setVars","inited","valueField","voteUrl","isDisabled","addEventListeners","OnPollButtonClick","requestBody","DocumentId","documentid","ContactId","contactid","Type","stattype","Vote","status","newValue","QqN7","Qsna","QtJ4","Qv6E","Qvhd","Qzyp","lambda","localization","summary","confirmButtonText","rejectButtonText","RNDp","RO4G","HeroImage","headerHeight","backgroundContentTopOffset","hasPositioned","handlePosition","old","newDevice","resetPosition","handleTopAlignWidgetPosition","handleBottomAlignWidgetPosition","minHeight","menuHeight","backgroundBottomEdge","getBottomEdgeOffset","widgetBottomEdge","widgetTopEdge","getTopEdgeOffset","RTOQ","RXzJ","Rrki","RzLf","S2Xe","LightBox","fancybox","SB4u","JGApi","appId","requests","instances","pageName","_getBaseUrl","eventId","currency","charityId","_getRequest","contentType","pageId","_getResponseByUrl","_getPageDetailsUrl","_getPageDonationsUrl","_getEventLeaderboardUrl","_getCharityLeaderboardUrl","code","_currencies","currencies","SEPk","LoginBlock","handleSwitch","handleGuest","$switchBtn","$guestBtn","$donationInp","prevStep","TCAm","_jgApi","_jgApi2","_jgLeaderboard","_jgLeaderboard2","_jgLeaderboardEmpty","_jgLeaderboardEmpty2","JgLeaderboard","pageSize","getLeadersData","renderLeaders","getPreparedData","renderError","renderEmpty","getDefaultErrorMessage","getEventLeaderboard","getCharityLeaderboard","getCurrencySymbolByCode","pages","getLeaderDataByPage","targetAmount","owner","getPageDonateUrl","pageShortName","getPreparedEventData","getPreparedCharityData","TqtE","PostbackButton","clickHandler","Tr0U","U1TO","conditional","includeZero","U79u","U7DK","targetObj","sourceObject","parseNumeric","getDocOffsetTop","docOffsetTop","checkScroll","Stickyfill","refreshAll","stickies","_recalcPosition","startFastCheckTimer","fastCheckTimer","_fastCheck","stopFastCheckTimer","clearInterval","isInitialized","docHiddenKey","visibilityChangeEventName","seppuku","isWindowDefined","testNode","shadowRootExists","ShadowRoot","Sticky","HTMLElement","_node","_stickyMode","_active","_removed","_deactivate","nodeComputedStyle","nodeComputedProps","cssFloat","originalPosition","referenceNode","nodeWinOffset","parentWinOffset","parentComputedStyle","_parent","_offsetToWindow","_offsetToParent","borderRightWidth","_styles","nodeTopValue","_limits","parentPosition","_clone","border","borderSpacing","fontSize","stickyMode","forceSticky","addOne","nodeList","addedStickies","removeOne","removeAll","U7Dy","escapeChar","chr","escape","possible","badChars","frame","&","<",">","\"","'","`","=","U9el","UOqn","Viim","hasAmount","hasDate","hasGift","giftAmount","5","date","donations","VsEB","supportsType","msElementsFromPoint","w","cached","pow","_lazypolyfill","_set","devicePixelRatio","getX","q","W+ir","W/J5","FormValidityHandler","_onInnerFieldValidationFailed","_onBeforeSubmit","WG5u","JgTotal","nodeId","pageTotal","baseURL","protocol","getRequest","renderTotal","amountStr","WZNx","_generic5","_generic6","ShopItem","quantitySelector","optionsSelector","priceSelector","formSelector","paymentSummarySelector","participantFormSelector","optionChangingProcessPromise","isSuccessModalUnclosable","getItemType","addButtons","quantityInput","price","formContainer","paymentSummaryContainer","onOptionChanged","beforeAddToBasket","paymentSummaryInstance","doItemPriceRequest","Product","FormattedPrice","currentButton","setButtonLoadingStyle","ValidationErrors","showCustomErrors","removeButtonLoadingStyle","getItemOptions","participants","getParticipants","shouldAttachAsPDF","addQuantityToBody","Quantity","getItemQuantity","Amount","participant","getParticipantData","products","product","isAdded","prod","priceInCurrentCurrency","cost","preparedOptions","participantNode","Wc9H","SpriteSymbol","SpriteSymbol$$1","BrowserSpriteSymbol","X/E2","XA+Y","Xd1A","_loadMoreListing","_loadMoreListing2","_paginationListing","_paginationListing2","GenericListing","listing","pagination","Xu5d","YW3G","YiNY","Component","N","YnE6","loadMoreSelector","isLastPage","showLoadMore","loadMore","newLoadMoreElement","hideLoadMore","Ys1R","GaHelper","_ga","gaList","getAll","gaName","YxkB","ContentModal","Z+vY","Z2ka","ZgEL","Zw35","_tippy2","Tooltip","ZwEX","Zwca","aiZw","methodMap","lookupLevel","levelMap","alZG","anaZ","aoEw","at5K","azr3","b/95","bE9d","bQZr","_run","opts","loop","gutter","keyboard","arrows","infobar","toolbar","buttons","idleTime","smallBtn","protect","image","preload","iframe","tpl","scrolling","animationEffect","animationDuration","zoomOpacity","transitionEffect","slideClass","baseClass","baseTpl","spinnerTpl","errorTpl","btnTpl","slideShow","fullScreen","thumbs","parentEl","autoFocus","backFocus","trapFocus","autoStart","touch","vertical","momentum","media","hideOnClose","onInit","beforeLoad","afterLoad","beforeShow","afterShow","beforeClose","afterClose","onActivate","onDeactivate","clickContent","clickSlide","clickOutside","dblclickContent","dblclickSlide","dblclickOutside","lang","i18n","en","CLOSE","NEXT","PREV","ERROR","PLAY_START","PLAY_STOP","FULL_SCREEN","THUMBS","de","$W","$D","isQuery","requestAFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","transitionEnd","transitions","transition","OTransition","MozTransition","WebkitTransition","forceRedraw","FancyBox","group","currIndex","prevIndex","prevPos","currPos","firstRun","createGroup","$lastFocus","slides","testWidth","buttonStr","firstItemOpts","isMobile","$refs","jumpTo","makeArray","$item","srcParts","$orig","$thumb","addEvents","removeEvents","previous","stage","isClosing","keycode","idleSecondsCounter","isIdle","showControls","idleInterval","hideControls","slide","canvasWidth","currentPos","transitionProps","groupLen","isSliding","isAnimating","createSlide","updateControls","getTranslate","$slide","isMoved","forcedDuration","loadSlide","isLoaded","revealContent","isComplete","updateSlide","scaleToActual","imgPos","posX","posY","scaleX","scaleY","$what","$content","canvasHeight","newImgWidth","newImgHeight","hasError","updateCursor","SlideShow","isActive","scaleToFit","getFitPos","minRatio","imgWidth","imgHeight","setTranslate","nextWidth","nextHeight","isScaledDown","isZoomable","fitPos","rez","canPan","ajaxLoad","setImage","setIframe","setError","showLoading","textStatus","jqXHR","abort","found","temp","pxRatio","windowWidth","postfix","thumb","$ghost","setBigImage","$img","$image","timouts","naturalHeight","hideLoading","$iframe","getTime","isReady","$contents","scrollWidth","frameWidth","frameHeight","$wrap","ignore","ceil","empty","$placeholder","insertAfter","after","$smallBtn","$spinner","effectClassName","opacity","getThumbPos","slidePos","thumbPos","elementRect","parentRects","visiblePixelX","visiblePixelY","unbind","uid","cleanUp","focusBack","unshift","force","$caption","isHiddenControls","toggleControls","command","createTouch","use3d","getPropertyValue","matrix","transRegex","transRez","exec","leaveAnimationName","propertyName","format","param","youtube","autoplay","autohide","fs","rel","hd","wmode","enablejsapi","html5","paramPlace","vimeo","show_title","show_byline","show_portrait","fullscreen","api","metacafe","dailymotion","additionalInfos","vine","instagram","google_maps","urlParams","provider","decodeURIComponent","contentProvider","cancelAFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","pointers","touches","changedTouches","pageX","pageY","point2","point1","what","sqrt","isClickable","onclick","atts","hasScrollbars","scrollHeight","horizontal","isScrollable","Guestures","$bg","$stage","proxy","ontouchstart","isTouchDevice","startPoints","canTap","startTime","distanceX","distanceY","isPanning","isSwiping","isZooming","sliderStartPos","sliderLastPos","contentStartPos","contentLastPos","centerPointStartX","centerPointStartY","percentageOfImageAtPinchPointX","percentageOfImageAtPinchPointY","startDistanceBetweenFingers","ontouchmove","newPoints","onSwipe","onPan","onZoom","angle","swiping","atan2","inTransition","requestId","newOffsetX","newOffsetY","newPos","limitMovement","newWidth","newHeight","minTranslateX","minTranslateY","maxTranslateX","maxTranslateY","currentOffsetX","currentOffsetY","limitPosition","currentWidth","currentHeight","endDistanceBetweenFingers","pinchRatio","translateFromZoomingX","translateFromZoomingY","centerPointEndX","centerPointEndY","translateFromTranslatingX","translateFromTranslatingY","ontouchend","dMs","panning","zooming","endPoints","onTap","velocityX","velocityY","speedX","endPanning","endZooming","endSwiping","where","tapX","tapY","process","startEvent","tapped","$button","set","clear","onInit.fb","beforeShow.fb","afterShow.fb","afterKeydown.fb","keypress","beforeClose.fb onDeactivate.fb","fnMap","FullScreen","request","requestFullscreen","ALLOW_KEYBOARD_INPUT","exit","exitFullscreen","isFullscreen","fullscreenElement","fullscreenEnabled","beforeClose.fb","fullscreenchange","FancyThumbs","$grid","$list","second","widthRatio","heightRatio","$parent","thumbWidth","thumbHeight","margin-top","margin-left","Thumbs","parseUrl","gallery","triggerFromUrl","escapeSelector","getGallery","sel","ch","asCodePoint","currentHash","timerID","origHash","history","pathname","replaceState","bRiX","bphb","c1Qd","cHKD","cZ/o","caux","ceVE","_interopRequireWildcard","newObj","hb","HandlebarsEnvironment","_handlebarsSafeString2","_handlebarsException2","VM","runtime","spec","_handlebarsBase","_handlebarsSafeString","_handlebarsException","_handlebarsUtils","_handlebarsRuntime","_handlebarsNoConflict","_handlebarsNoConflict2","inst","cgz8","_flatpickr","_flatpickr2","_baseDatepickerConfig","_baseDatepickerConfig2","_cleave","_cleave2","DatePicker","mode","dateFormat","altInput","altFormat","disableMobile","allowInput","onClose","selDates","dateStr","parseDate","setDate","formatDate","onReady","dates","datePattern","delimiter","czl+","EVENT_FIELD_VALIDATION_PASSED","d+Bm","dEgL","_slickCarousel","_widowtamer","_widowtamer2","HeroCarousel","$inner","$dotsContainer","slick","dots","appendDots","useTransform","autoplaySpeed","slidesToShow","slidesToScroll","fix","chars","dF52","dFYk","dQZv","dXM7","_TimelineLite","_TimelineLite2","ModalController","containerSelector","contentSelector","contentWrapperSelector","closeSelector","closeBtn","modalTween","paused","openedInstance","$document","_closeByUserHandle","_outerClickHandle","play","_beforeClose","_renderLayout","getPreparedContent","_renderContent","_afterOpen","ddC+","ddPb","NavTop","mobileOpened","toggleMobileInstance","hover","de09","_jgImagery","_jgImagery2","_jgImageryEmpty","_jgImageryEmpty2","JgImagery","getPageDetails","renderImagery","$gallery","dgvd","dmON","e7u5","eUbz","TouchButton","addActiveClass","removeActiveClass","f2JW","f5/6","fKfM","fQ+6","Spinbox","onIncrease","onDiscrease","discrease","increase","maxValue","minAttr","minValue","Number","triggerChange","fmMZ","HeaderTop","containerBlur","showStickyNav","hideStickyNav","fsM1","registerDefaultDecorators","_decoratorsInline2","_decoratorsInline","ftiw","_deleteAccount","_deleteAccount2","Account","showDeleteModal","deleteAccTrigger","deletePostbackId","localizationString","fvMr","g/gB","LogoList","$arrows","appendArrows","infinite","variableWidth","centerMode","mobileFirst","responsive","breakpoint","prevArrow","nextArrow","gOR3","gPpe","gfAR","wt","dir","hunter","uopts","fixmethod","eles","getstyle","ntext","ctext","tamer","onevent","settext","inc","attachEvent","grUI","h+4i","hqmG","_head","_vendor","_main","_main3","_main5","_main7","_main9","_main11","_main13","_main15","_main17","_main19","_main21","_main23","_main25","_main27","_main29","_main31","_main33","_main35","_main37","_main39","_main41","_main43","_main45","_main47","_main49","_main51","_main53","_main55","_main57","_main59","_main61","_main63","_main65","_main67","_main69","_main71","_main73","_main75","_main77","_main79","_main81","_main83","_main85","_main87","_main89","_main91","_main93","_main95","_main97","_main99","_main101","_main103","_main105","_main107","_main109","_main111","_main113","_main115","_main117","_main119","_main121","_main123","_main125","_main127","_main129","_main131","_main133","_main135","_main137","_main139","_main141","_main143","_main145","_main147","_main149","_main151","_main153","_main155","_main157","_main159","_main161","_main163","_main165","_main167","files","i5WX","iJlY","FileInput","captionContainerSelector","defaultCaption","fileControl","captionContainer","onFileChange","updateCaption","iTDv","iXRB","iwUV","jIbX","jMIp","decorators","registerDefaultHelpers","_decorators","_logger","_logger2","VERSION","COMPILER_REVISION","REVISION_CHANGES","4","6","7","unregisterHelper","registerPartial","partial","unregisterPartial","unregisterDecorator","jbQJ","jcE8","kBgj","_moment","_moment2","RangePicker","wrapper","$wrapper","currentValue","rangePickerElement","calendar","clickOpens","serializeValue","change","onOpen","kXhy","_stickyfilljs","_stickyfilljs2","_table","_table2","PaymentSummary","onProductChange","onDonationChange","renderContainerSelector","productSelector","productOptionSelector","productEnableSelector","productPriceSelector","renderContainer","productNodes","getInitialData","calcTotal","initialDataString","initialData","productInfoObj","productRadio","optionNodes","getInitialOptions","priceNode","attendeeId","productNode","getProductInfo","productId","productInTree","getProductInTreeByIds","getPriceRequestBody","Price","visualCost","updatePriceNode","sum","donationVal","getDonationObject","ka6z","koiO","kvc/","noIOSFix","_lazyImgSrc","l22g","lHz6","lKHb","lL8I","mYfr","mgOX","nQRT","nRRp","njw8","noH7","oB/h","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","_helpersBlockHelperMissing","_helpersEach","_helpersHelperMissing","_helpersIf","_helpersLog","_helpersLookup","_helpersWith","orGh","ov/v","MoveTo","triggers","moveToBlock","moveTo","p5De","pEDh","pYpB","pvIt","PinSwitcher","switcherItemSelector","pw1P","Hamburger","initHamburger","$hamburger","$header","q+S6","qExC","qOS5","static","qfOY","$Handlebars","r0Qx","rEGq","ContentHeading","maxNestedLevelsCount","parentModule","levelCount","raTT","rsHF","s3YC","s7+d","RoundDonation","radios","customInput","checkedRadio","radio","checkedValue","customDonation","noDonation","s7RI","contain","cover","_lazybgset","_lazybgsetLoading","alt","sJdk","modules","moduleId","installedModules","Cleave","initValue","properties","DefaultProperties","pps","numeral","phone","creditCard","blocksLength","onInput","maxLength","Util","getMaxLength","blocks","isAndroid","lastInputValue","onChangeListener","onKeyDownListener","onKeyDown","onCutListener","onCut","onCopyListener","onCopy","initPhoneFormatter","initDateFormatter","initNumeralFormatter","numeralFormatter","NumeralFormatter","numeralDecimalMark","numeralIntegerScale","numeralDecimalScale","numeralThousandsGroupStyle","numeralPositiveOnly","stripLeadingZeroes","dateFormatter","DateFormatter","getBlocks","phoneFormatter","PhoneFormatter","AsYouTypeFormatter","phoneRegionCode","ex","charCode","isAndroidBackspaceKeydown","isDelimiter","delimiterLength","delimiters","backspace","copyClipboardData","inputValue","textToCopy","copyDelimiter","stripDelimiters","clipboardData","setData","headStr","updateValueState","getValidatedDate","getPrefixStrippedValue","prefixLength","numericOnly","strip","uppercase","lowercase","updateCreditCardPropsByValue","getFormattedValue","creditCardInfo","CreditCardDetector","getInfo","creditCardStrictMode","creditCardType","onCreditCardTypeChanged","setCurrentSelection","endPos","oldValue","createTextRange","move","setSelectionRange","selectionEnd","setPhoneRegionCode","setRawValue","getRawValue","rawValue","rawValueTrimPrefix","groupStyle","thousand","delimiterRE","lakh","wan","partInteger","partDecimal","initBlocks","sub","sub0","rest","getFixedDateString","day","month","year","dayIndex","monthIndex","yearIndex","dayStartIndex","monthStartIndex","yearStartIndex","getFixedDate","addLeadingZero","isLeapYear","formatter","setFormatter","phoneNumber","validated","iMax","inputDigit","uatp","amex","diners","discover","mastercard","dankort","instapayment","jcb","maestro","visa","general","generalStrict","strictMode","letter","getDelimiterREByDelimiter","diffIndex","getFirstDiffIndex","currentDelimiter","multipleDelimiters","currentInputValue","sn83","tbjN","tqfx","tuIb","tzxB","u11m","uWng","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","_i","ShowRule","idAttributeName","condition","elementsValues","lastResult","configString","elementsConditions","elementCondition","_elementCondition$tri","_elementCondition$tri2","elementId","elementValue","elementNodes","configPart","getElementId","getElementValue","onElementChange","manage","checkFunction","updateShow","updateClass","class","ukGU","v1pR","vgB/","vz3G","webpackContext","req","webpackContextResolve","./account.svg","./arrow-down-thin.svg","./arrow-down.svg","./arrow-left.svg","./arrow-right.svg","./arrow-up.svg","./basket.svg","./beaker.svg","./calendar.svg","./delete-logo.svg","./doc-default.svg","./doc-doc.svg","./doc-pdf.svg","./doc-ppt.svg","./document.svg","./download.svg","./header-angle.svg","./just-giving-logo.svg","./letter.svg","./modal_close.svg","./pencil.svg","./person.svg","./phone.svg","./search.svg","./share.svg","./slant-gradient.svg","./sms.svg","./tick.svg","./tick2.svg","./user.svg","./user2.svg","./web.svg","wDqA","wJOR","wMjV","wVxo","wYJ3","wfUv","wknz","wlJa","CurrencySwitcher","pseudoItemDataAttributeName","Euro","PoundSterling","UnitedStatesDollar","isCustomPostback","pseudo","control","nativeControlWrap","customPostbackClientId","pseudoList","pseudoValue","controlInput","setSwitcherValue","renderPseudoList","onListClick","getCaptionByValue","getIdByValue","listContent","wt25","x1RD","x9Sk","ImageGallery","$main","$nav","swipe","asNavFor","lazyLoad","focusOnSelect","xDSz","xLjo","xs8j","xseL","xule","eventOption","8","10","xwgm","xy3E","y/lL","yfj8","yuUt","yx8j","yxA3","z0F1","_jgDonations","_jgDonations2","_jgDonationsEmpty","_jgDonationsEmpty2","JgDonations","requestedPage","initLoadMore","loadData","loadMoreBtn","Next","renderDonations","getPreparedDonations","Donations","GiftAidAmount","dateString","Donator","Comment","z5Fe","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","env","invokePartialWrapper","resolvePartial","invokePartial","compile","compilerOptions","indent","lines","depths","_setup","initData","useBlockParams","useDepths","executeDecorators","decorator","main_d","strict","lookup","programs","declaredBlockParams","programWrapper","wrapProgram","depth","merge","common","seal","isTop","usePartial","useDecorators","_child","prog","currentDepths","currentPartialBlock","partialBlock"],"mappings":"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","file":"app.c7148aa7ef3d10e9fff3.js","sourcesContent":["webpackJsonp([0],{\n\n/***/ \"+9lV\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _menuManager = __webpack_require__(\"C4F1\");\n\nvar _menuManager2 = _interopRequireDefault(_menuManager);\n\nvar _generic3 = __webpack_require__(\"pw1P\");\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar HelplineMenu = function (_Component) {\n _inherits(HelplineMenu, _Component);\n\n function HelplineMenu(el) {\n _classCallCheck(this, HelplineMenu);\n\n var _this = _possibleConstructorReturn(this, (HelplineMenu.__proto__ || Object.getPrototypeOf(HelplineMenu)).call(this, el));\n\n _this.init();\n return _this;\n }\n\n _createClass(HelplineMenu, [{\n key: 'init',\n value: function init() {\n this.container.addEventListener(\"click\", this.toggle.bind(this));\n\n this.menu = document.querySelector('.js-helpline-menu');\n this.menuId = 'helpline';\n this.isOpened = false;\n\n _menuManager2.default.init(this.menuId, {\n default: {\n open: this.open.bind(this),\n close: this.close.bind(this),\n level: 1\n },\n desktop: {\n isEnabled: false\n }\n });\n\n this.isOpenedGlabally = null;\n }\n }, {\n key: 'toggle',\n value: function toggle() {\n if (this.isOpened) {\n //check if we opened helpline from page or from mobile menu\n if (this.isOpenedGlabally === true) {\n _menuManager2.default.close(this.menuId);\n _menuManager2.default.close(_generic3.MOBILE_MENU_ID);\n } else {\n _menuManager2.default.close(this.menuId);\n }\n } else {\n if (_menuManager2.default.isOpened(_generic3.MOBILE_MENU_ID)) {\n this.isOpenedGlabally = false;\n } else {\n //open mobile menu manually\n _menuManager2.default.open(_generic3.MOBILE_MENU_ID);\n this.isOpenedGlabally = true;\n }\n _menuManager2.default.open(this.menuId);\n }\n }\n }, {\n key: 'open',\n value: function open() {\n this.isOpened = true;\n this.menu.classList.add(\"is-opened\");\n this.container.classList.add(\"is-opened\");\n }\n }, {\n key: 'close',\n value: function close() {\n this.isOpened = false;\n this.isOpenedGlabally = null;\n this.menu.classList.remove(\"is-opened\");\n this.container.classList.remove(\"is-opened\");\n }\n }]);\n\n return HelplineMenu;\n}(_generic2.default);\n\nexports.default = HelplineMenu;\n\n/***/ }),\n\n/***/ \"+I9t\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-postback-button',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"TqtE\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"+Pxu\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"LLZ/\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-hero-image',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"RO4G\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"+Xj0\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-user2\",\n \"use\": \"icon-user2-usage\",\n \"viewBox\": \"152.9 54.9 237.1 220.2\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"+k1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"ZwEX\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-jg-imagery',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"de09\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\n/***/ }),\n\n/***/ \"/AiR\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n(function () {\n\n if (!Element.prototype.matches) {\n\n Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector;\n }\n})();\n\n/***/ }),\n\n/***/ \"/emb\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"/z+F\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"iTDv\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-image-gallery',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"x9Sk\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\n/***/ }),\n\n/***/ \"0QBl\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _appInstance = __webpack_require__(\"546j\");\n\nvar _appInstance2 = _interopRequireDefault(_appInstance);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BasketInfo = function (_Component) {\n _inherits(BasketInfo, _Component);\n\n function BasketInfo(el) {\n _classCallCheck(this, BasketInfo);\n\n var _this = _possibleConstructorReturn(this, (BasketInfo.__proto__ || Object.getPrototypeOf(BasketInfo)).call(this, el));\n\n _this.basketInfoUrl = '/api/shoppingcart/get';\n _this.totalCountSelector = '.js-basket-info-total-count';\n _this.init();\n return _this;\n }\n\n _createClass(BasketInfo, [{\n key: 'init',\n value: function init() {\n this.totalCount = this.container.querySelector(this.totalCountSelector);\n if (!this.totalCount) {\n return;\n }\n\n this.loadInitial();\n _appInstance2.default.addListener('basket', this.onBasketUpdate.bind(this));\n }\n }, {\n key: 'onBasketUpdate',\n value: function onBasketUpdate(basket) {\n this.updateInfo(basket);\n }\n }, {\n key: 'updateInfo',\n value: function updateInfo(basket) {\n this.totalCount.innerHTML = basket.TotalCount;\n }\n }, {\n key: 'loadInitial',\n value: function loadInitial() {\n var _this2 = this;\n\n return this.doBasketInfoRequest().then(function (result) {\n _this2.updateInfo(result);\n }, function (error) {\n console.log(error);\n });\n }\n }, {\n key: 'doBasketInfoRequest',\n value: function doBasketInfoRequest() {\n var _this3 = this;\n\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new Promise(function (resolve, reject) {\n _jquery2.default.ajax({\n method: \"get\",\n url: _this3.getUrl(params)\n }).done(function (response) {\n resolve(response);\n }).fail(function (error) {\n reject(error);\n });\n });\n }\n }, {\n key: 'getUrl',\n value: function getUrl(params) {\n var paramsString = Object.keys(params).map(function (key) {\n return key + '=' + params[key];\n }).join('&');\n return '' + this.basketInfoUrl + (paramsString !== '' ? '?' + paramsString : '');\n }\n }]);\n\n return BasketInfo;\n}(_generic2.default);\n\nexports.default = BasketInfo;\n\n\nBasketInfo.id = 0;\n\n/***/ }),\n\n/***/ \"0z6U\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _appInstance = __webpack_require__(\"546j\");\n\nvar _appInstance2 = _interopRequireDefault(_appInstance);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar HeroDonate = function (_Component) {\n _inherits(HeroDonate, _Component);\n\n function HeroDonate(el) {\n _classCallCheck(this, HeroDonate);\n\n var _this = _possibleConstructorReturn(this, (HeroDonate.__proto__ || Object.getPrototypeOf(HeroDonate)).call(this, el));\n\n _this.elements = _this.container.querySelectorAll(\".js-hero-donate-item\");\n _this.currencyContainer = _this.container.querySelector('.js-custom-donate-currency');\n _this.init();\n _appInstance2.default.addListener('donateAmount:input', _this.removeActive.bind(_this));\n return _this;\n }\n\n _createClass(HeroDonate, [{\n key: 'init',\n value: function init() {\n var _this2 = this;\n\n [].concat(_toConsumableArray(this.elements)).forEach(function (x) {\n return x.addEventListener(\"click\", _this2.removeActive.bind(_this2));\n });\n [].concat(_toConsumableArray(this.elements)).forEach(function (x) {\n return x.addEventListener(\"click\", _this2.addActive.bind(_this2, x));\n });\n\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].addEventListener('click', function () {\n document.getElementById(\"monthly-donation\").style.cssText = \"display: none\";\n document.querySelector(\".custom-donate__tab.js-button\").classList.remove('js-active');\n document.querySelector(\".custom-donate__tab.js-button.single-donate\").classList.add('js-active');\n document.getElementById(\"single-donation\").style.visibility = 'visible';\n document.getElementById(\"single-donation\").style.cssText = \"display: block\";\n document.querySelector(\".js-custom-donate-currency\").style.visibility = 'visible';\n });\n }\n }\n }, {\n key: 'removeActive',\n value: function removeActive() {\n [].concat(_toConsumableArray(this.elements)).forEach(function (x) {\n return x.classList.remove(\"is-active\");\n });\n this.container.classList.remove(\"is-some-active\");\n }\n }, {\n key: 'addActive',\n value: function addActive(element) {\n this.container.classList.add(\"is-some-active\");\n element.classList.add(\"is-active\");\n _appInstance2.default.emitEvent('donateAmount:change', [element.dataset.amount]);\n }\n }]);\n\n return HeroDonate;\n}(_generic2.default);\n\nexports.default = HeroDonate;\n\n\nHeroDonate.id = 0;\n\n/***/ }),\n\n/***/ \"1Di1\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-tick2\",\n \"use\": \"icon-tick2-usage\",\n \"viewBox\": \"0 0 28.85 23.75\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"1TTl\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = __webpack_require__(\"U7Dy\");\n\nvar _exception = __webpack_require__(\"Cz5H\");\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else {\n var priorKey = undefined;\n\n for (var key in context) {\n if (context.hasOwnProperty(key)) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n }\n }\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQUErRSxVQUFVOzt5QkFDbkUsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksQ0FBQyxPQUFPLEVBQUU7QUFDWixZQUFNLDJCQUFjLDZCQUE2QixDQUFDLENBQUM7S0FDcEQ7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUU7UUFDZixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU87UUFDekIsQ0FBQyxHQUFHLENBQUM7UUFDTCxHQUFHLEdBQUcsRUFBRTtRQUNSLElBQUksWUFBQTtRQUNKLFdBQVcsWUFBQSxDQUFDOztBQUVoQixRQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixpQkFBVyxHQUFHLHlCQUFrQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0tBQ2pGOztBQUVELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDaEIsVUFBSSxHQUFHLG1CQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNsQzs7QUFFRCxhQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN6QyxVQUFJLElBQUksRUFBRTtBQUNSLFlBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQ2pCLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQ25CLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUN6QixZQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7O0FBRW5CLFlBQUksV0FBVyxFQUFFO0FBQ2YsY0FBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQ3hDO09BQ0Y7O0FBRUQsU0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzdCLFlBQUksRUFBRSxJQUFJO0FBQ1YsbUJBQVcsRUFBRSxtQkFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDL0UsQ0FBQyxDQUFDO0tBQ0o7O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNO0FBQ0wsWUFBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixhQUFLLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRTtBQUN2QixjQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Ozs7QUFJL0IsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0w7U0FDRjtBQUNELFlBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQix1QkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3RDO09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXBwZW5kQ29udGV4dFBhdGgsIGJsb2NrUGFyYW1zLCBjcmVhdGVGcmFtZSwgaXNBcnJheSwgaXNGdW5jdGlvbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICAgIGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICByZXQgPSAnJyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY29udGV4dFBhdGg7XG5cbiAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICBjb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5pZHNbMF0pICsgJy4nO1xuICAgIH1cblxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7IGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7IH1cblxuICAgIGlmIChvcHRpb25zLmRhdGEpIHtcbiAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4ZWNJdGVyYXRpb24oZmllbGQsIGluZGV4LCBsYXN0KSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBkYXRhLmtleSA9IGZpZWxkO1xuICAgICAgICBkYXRhLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIGRhdGEuZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgZGF0YS5sYXN0ID0gISFsYXN0O1xuXG4gICAgICAgIGlmIChjb250ZXh0UGF0aCkge1xuICAgICAgICAgIGRhdGEuY29udGV4dFBhdGggPSBjb250ZXh0UGF0aCArIGZpZWxkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldCA9IHJldCArIGZuKGNvbnRleHRbZmllbGRdLCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dFtmaWVsZF0sIGZpZWxkXSwgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRleHQgJiYgdHlwZW9mIGNvbnRleHQgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgICBmb3IgKGxldCBqID0gY29udGV4dC5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgICAgICBpZiAoaSBpbiBjb250ZXh0KSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKGksIGksIGkgPT09IGNvbnRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgZm9yIChsZXQga2V5IGluIGNvbnRleHQpIHtcbiAgICAgICAgICBpZiAoY29udGV4dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAvLyBXZSdyZSBydW5uaW5nIHRoZSBpdGVyYXRpb25zIG9uZSBzdGVwIG91dCBvZiBzeW5jIHNvIHdlIGNhbiBkZXRlY3RcbiAgICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAgIC8vIGFuIGl0ZXJtZWRpYXRlIGtleXMgYXJyYXkuXG4gICAgICAgICAgICBpZiAocHJpb3JLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmlvcktleSA9IGtleTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgcmV0ID0gaW52ZXJzZSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n\n\n/***/ }),\n\n/***/ \"1WoH\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _menuManager = __webpack_require__(\"C4F1\");\n\nvar _menuManager2 = _interopRequireDefault(_menuManager);\n\nvar _generic3 = __webpack_require__(\"pw1P\");\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DonateeMenu = function (_Component) {\n _inherits(DonateeMenu, _Component);\n\n function DonateeMenu(el) {\n _classCallCheck(this, DonateeMenu);\n\n var _this = _possibleConstructorReturn(this, (DonateeMenu.__proto__ || Object.getPrototypeOf(DonateeMenu)).call(this, el));\n\n _this.init();\n return _this;\n }\n\n _createClass(DonateeMenu, [{\n key: 'init',\n value: function init() {\n this.container.addEventListener(\"click\", this.toggle.bind(this));\n\n this.menu = document.querySelector('.js-donate-menu');\n this.menuId = 'donate';\n this.isOpened = false;\n\n _menuManager2.default.init(this.menuId, {\n default: {\n open: this.open.bind(this),\n close: this.close.bind(this),\n level: 1\n },\n desktop: {\n isEnabled: false\n }\n });\n\n this.isOpenedGlabally = null;\n }\n }, {\n key: 'toggle',\n value: function toggle() {\n if (this.isOpened) {\n //check if we opened helpline from page or from mobile menu\n if (this.isOpenedGlabally === true) {\n _menuManager2.default.close(this.menuId);\n _menuManager2.default.close(_generic3.MOBILE_MENU_ID);\n } else {\n _menuManager2.default.close(this.menuId);\n }\n } else {\n if (_menuManager2.default.isOpened(_generic3.MOBILE_MENU_ID)) {\n this.isOpenedGlabally = false;\n } else {\n //open mobile menu manually\n _menuManager2.default.open(_generic3.MOBILE_MENU_ID);\n this.isOpenedGlabally = true;\n }\n _menuManager2.default.open(this.menuId);\n }\n }\n }, {\n key: 'open',\n value: function open() {\n this.isOpened = true;\n this.menu.classList.add(\"is-opened\");\n this.container.classList.add(\"is-opened\");\n }\n }, {\n key: 'close',\n value: function close() {\n this.isOpened = false;\n this.isOpenedGlabally = null;\n this.menu.classList.remove(\"is-opened\");\n this.container.classList.remove(\"is-opened\");\n }\n }]);\n\n return DonateeMenu;\n}(_generic2.default);\n\nexports.default = DonateeMenu;\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"hqmG\");\n\n\n/***/ }),\n\n/***/ \"2BvZ\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"xLjo\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-sharethis',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"JJca\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"2eOn\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"7Rlk\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mapInstance = new _generic2.default({\n className: 'js-google-map-container',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"OMs7\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nmapInstance.init();\n\nvar pinSwitcherInstance = new _generic2.default({\n className: 'js-google-pin-switcher',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"pvIt\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\npinSwitcherInstance.init();\n\nexports.default = {\n mapInstance: mapInstance,\n pinSwitcherInstance: pinSwitcherInstance\n};\n\n/***/ }),\n\n/***/ \"2jxP\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"3JMX\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"ACx4\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-header-top',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"fmMZ\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"3V1W\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"wknz\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"3jxK\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"3tuH\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"3wrH\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"3yJq\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-delete-logo\",\n \"use\": \"icon-delete-logo-usage\",\n \"viewBox\": \"0 0 54 14.003\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"43qK\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _TweenLite = __webpack_require__(\"W9M7\");\n\nvar _TweenLite2 = _interopRequireDefault(_TweenLite);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _menuManager = __webpack_require__(\"C4F1\");\n\nvar _menuManager2 = _interopRequireDefault(_menuManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MainNav = function (_Component) {\n _inherits(MainNav, _Component);\n\n function MainNav(el) {\n _classCallCheck(this, MainNav);\n\n var _this = _possibleConstructorReturn(this, (MainNav.__proto__ || Object.getPrototypeOf(MainNav)).call(this, el));\n\n _this.defineVariables();\n _this.initNav();\n return _this;\n }\n\n _createClass(MainNav, [{\n key: 'defineVariables',\n value: function defineVariables() {\n this.menuId = 'mainSubNav';\n\n this.itemsSelector = \".js-main-nav-item\";\n this.subsSelector = \".js-main-nav-sub\";\n\n this.body = document.body;\n this.menuItems = [].concat(_toConsumableArray(document.querySelectorAll(this.itemsSelector)));\n\n this.bg = document.querySelector(\".js-main-nav__bg\");\n this.shadowBg = document.querySelector(\".js-main-nav__shadow-bg\");\n this.angleBg = document.querySelector(\".js-main-nav__angle-bg\");\n this.secondaryNav = this.container.querySelectorAll(this.subsSelector);\n\n this.isOpened = false;\n this.isItemHoveredMenuClass = 'is-item-hovered';\n this.isItemOpenedMenuClass = 'is-item-opened';\n this.isMenuItemHovered = false;\n this.selectedMenuItem = null;\n this.isItemOpenedClass = 'is-opened';\n }\n }, {\n key: 'initNav',\n value: function initNav() {\n var _this2 = this;\n\n this.menuItems.forEach(function (item) {\n item.addEventListener('mouseenter', _this2.onMouseOverItem.bind(_this2));\n var subNav = item.querySelector(_this2.subsSelector);\n if (subNav) {\n var link = item.querySelector('a');\n if (link) {\n link.addEventListener('click', function (e) {\n _this2.itemOpenOnClick(e, item, subNav);\n });\n link.addEventListener('mouseenter', function (e) {\n _this2.itemOpenOnHover(e, item, subNav);\n });\n }\n }\n });\n document.addEventListener('click', this.checkOuterClick.bind(this));\n this.container.addEventListener('mouseleave', this.onMouseLeave.bind(this));\n\n _menuManager2.default.init(this.menuId, {\n default: {\n open: this.openMenu.bind(this),\n close: this.closeMenu.bind(this),\n level: 0\n },\n mobile: {\n isEnabled: false\n }\n });\n }\n }, {\n key: 'itemOpenOnHover',\n value: function itemOpenOnHover(e, hoveredItem, subNav) {\n e.preventDefault();\n if (this.isOpened && hoveredItem !== this.selectedMenuItem) {\n this.handleItemOpen(hoveredItem, subNav);\n }\n }\n }, {\n key: 'itemOpenOnClick',\n value: function itemOpenOnClick(e, clickedItem, subNav) {\n e.preventDefault();\n if (this.selectedMenuItem !== clickedItem) {\n if (!this.isOpened) {\n _menuManager2.default.open(this.menuId);\n }\n this.handleItemOpen(clickedItem, subNav);\n }\n }\n }, {\n key: 'handleItemOpen',\n value: function handleItemOpen(clickedItem, subNav) {\n var _this3 = this;\n\n clickedItem.classList.add(this.isItemOpenedClass);\n this.selectedMenuItem = clickedItem;\n this.menuItems.forEach(function (item) {\n if (clickedItem !== item) {\n item.classList.remove(_this3.isItemOpenedClass);\n }\n });\n _TweenLite2.default.to(this.secondaryNav, 0.2, { autoAlpha: 0, display: 'none' });\n _TweenLite2.default.to(subNav, 0.2, { autoAlpha: 1, display: 'flex' });\n }\n }, {\n key: 'checkOuterClick',\n value: function checkOuterClick(e) {\n if (this.isOpened) {\n var $target = (0, _jquery2.default)(e.target);\n var itemsLinkSelector = this.itemsSelector + ' a';\n var subnavLinkSelector = this.subsSelector + ' li a';\n var subnavLiSelector = this.subsSelector + ' li';\n if (!$target.is(itemsLinkSelector) && !($target.is(subnavLinkSelector) || $target.parents(subnavLiSelector).length)) {\n _menuManager2.default.close(this.menuId);\n }\n }\n }\n }, {\n key: 'openMenu',\n value: function openMenu() {\n this.isOpened = true;\n this.container.classList.add(this.isItemOpenedMenuClass);\n _TweenLite2.default.to(this.bg, 0.3, { autoAlpha: 1, display: 'block' });\n _TweenLite2.default.fromTo(this.angleBg, 0.3, { y: 0 }, { y: 800 });\n }\n }, {\n key: 'closeMenu',\n value: function closeMenu() {\n this.isOpened = false;\n _TweenLite2.default.to(this.bg, 0.3, { delay: 0.2, autoAlpha: 0, display: 'none' });\n _TweenLite2.default.fromTo(this.angleBg, 0.3, { y: 800 }, { y: 0 });\n _TweenLite2.default.to(this.secondaryNav, 0.2, { autoAlpha: 0, display: 'none' });\n this.container.classList.remove(this.isItemOpenedMenuClass);\n this.selectedMenuItem.classList.remove(this.isItemOpenedClass);\n this.selectedMenuItem = null;\n }\n }, {\n key: 'onMouseOverItem',\n value: function onMouseOverItem(e) {\n if (!this.isMenuItemHovered) {\n this.isMenuItemHovered = true;\n this.container.classList.add(this.isItemHoveredMenuClass);\n }\n }\n }, {\n key: 'onMouseLeave',\n value: function onMouseLeave(e) {\n this.container.classList.remove(this.isItemHoveredMenuClass);\n this.isMenuItemHovered = false;\n }\n }]);\n\n return MainNav;\n}(_generic2.default);\n\nexports.default = MainNav;\n\n\nMainNav.id = 0;\n\n/***/ }),\n\n/***/ \"44Oj\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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 _modalController = __webpack_require__(\"dXM7\");\n\nvar _modalController2 = _interopRequireDefault(_modalController);\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 Modal = function () {\n function Modal(options) {\n _classCallCheck(this, Modal);\n\n this._content = null;\n this.options = _extends({}, Modal.defaultOptions, options);\n\n this.controller = _modalController2.default.getInstance();\n }\n\n _createClass(Modal, [{\n key: 'open',\n value: function open() {\n var refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.controller.open(this, refresh);\n }\n }, {\n key: 'getPreparedContent',\n value: function getPreparedContent(refresh) {\n var _this = this;\n\n if (this._content === null || refresh) {\n return this.getContent().then(function (content) {\n _this._content = content;\n return _this._content;\n });\n }\n return Promise.resolve(this._content);\n }\n }, {\n key: 'close',\n value: function close() {\n this.controller.close();\n }\n }, {\n key: 'getContent',\n value: function getContent() {\n throw new Error('You have to implement the method getContent!');\n }\n }, {\n key: 'disableClosing',\n value: function disableClosing() {\n this.options.closable = false;\n }\n }, {\n key: 'enableClosing',\n value: function enableClosing() {\n this.options.closable = true;\n }\n }]);\n\n return Modal;\n}();\n\nexports.default = Modal;\n\n\nModal.defaultOptions = {\n closable: true\n};\n\n/***/ }),\n\n/***/ \"4VVj\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"xwgm\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-helpline-menu-trigger',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"+9lV\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"4fe/\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"4gBd\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"4ohY\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar helpers = {};\n\nhelpers.debounce = function (context, f, ms) {\n\n var timer = null;\n\n return function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var onComplete = function onComplete() {\n f.apply(context, args);\n timer = null;\n };\n\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(onComplete, ms);\n };\n};\n\nhelpers.throttle = function (context, f, ms) {\n\n var timer = null;\n\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var onComplete = function onComplete() {\n f.apply(context, args);\n timer = null;\n };\n\n if (!timer) {\n timer = setTimeout(onComplete, ms);\n }\n };\n};\n\nhelpers.getParent = function (target, selector) {\n var includeSelf = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (includeSelf && target.matches(selector)) {\n return target;\n }\n\n var parent = target.parentElement;\n while (parent !== null) {\n if (parent.matches(selector)) {\n return parent;\n }\n parent = parent.parentElement;\n }\n\n return null;\n};\n\nexports.default = helpers;\n\n/***/ }),\n\n/***/ \"4wLO\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"51GQ\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-arrow-left\",\n \"use\": \"icon-arrow-left-usage\",\n \"viewBox\": \"82.083 0 280.364 444.531\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"5341\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Handlebars = __webpack_require__(\"alZG\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n},\"useData\":true});\n\n/***/ }),\n\n/***/ \"546j\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DEVICE_TYPE_MOBILE = exports.DEVICE_TYPE_TABLET = exports.DEVICE_TYPE_DESKTOP = undefined;\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__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _modernizrBuild = __webpack_require__(\"PvPc\");\n\nvar _modernizrBuild2 = _interopRequireDefault(_modernizrBuild);\n\nvar _wolfy87Eventemitter = __webpack_require__(\"I1Kh\");\n\nvar _wolfy87Eventemitter2 = _interopRequireDefault(_wolfy87Eventemitter);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEVICE_TYPE_DESKTOP = exports.DEVICE_TYPE_DESKTOP = 'desktop';\nvar DEVICE_TYPE_TABLET = exports.DEVICE_TYPE_TABLET = 'tablet';\nvar DEVICE_TYPE_MOBILE = exports.DEVICE_TYPE_MOBILE = 'mobile';\n\nvar App = function (_EventEmitter) {\n _inherits(App, _EventEmitter);\n\n function App() {\n _classCallCheck(this, App);\n\n var _this = _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).call(this));\n\n _this.timeoutTime = 150;\n _this.timeoutId = null;\n _this.$window = (0, _jquery2.default)(window);\n _this.isTouch = _modernizrBuild2.default.touchevents;\n _this.isIOSMobile = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\n _this.applyViewportData();\n\n _this.$window.on('resize orientationchange', _this.onWindowResize.bind(_this));\n return _this;\n }\n\n _createClass(App, [{\n key: 'applyViewportData',\n value: function applyViewportData() {\n this.viewport = {\n width: this.$window.outerWidth(),\n height: this.$window.outerHeight(),\n orientation: typeof window.orientation === \"undefined\" || Math.abs(window.orientation) === 90 ? \"landscape\" : \"portrait\"\n };\n this.isDesktop = _modernizrBuild2.default.mq('only screen and (min-width:1025px)');\n if (this.isDesktop) {\n this.isTablet = true;\n } else {\n this.isTablet = _modernizrBuild2.default.mq('only screen and (min-width:768px)');\n }\n this.deviceTypeByViewport = this.isDesktop ? DEVICE_TYPE_DESKTOP : this.isTablet ? DEVICE_TYPE_TABLET : DEVICE_TYPE_MOBILE;\n }\n }, {\n key: 'onWindowResize',\n value: function onWindowResize() {\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n }\n this.timeoutId = setTimeout(this.handleWindowResize.bind(this), this.timeoutTime);\n }\n }, {\n key: 'handleWindowResize',\n value: function handleWindowResize() {\n var oldDeviceType = this.deviceTypeByViewport;\n this.applyViewportData();\n this.emitEvent('resize:finished');\n if (oldDeviceType !== this.deviceTypeByViewport) {\n this.emitEvent('device-type-changed', [oldDeviceType, this.deviceTypeByViewport]);\n }\n }\n }, {\n key: 'isMobileDevice',\n value: function isMobileDevice() {\n return this.deviceTypeByViewport === DEVICE_TYPE_MOBILE;\n }\n }]);\n\n return App;\n}(_wolfy87Eventemitter2.default);\n\nvar instance = new App();\nexports.default = instance;\n\n/***/ }),\n\n/***/ \"5XoY\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"OV+y\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'panel-group',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"HT49\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"5f7H\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"Q1aM\");\n\nvar _generic2 = _interopRequireDefault(_generic);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CustomDonateForm = function (_Form) {\n _inherits(CustomDonateForm, _Form);\n\n function CustomDonateForm(el, notLoggedSubmitHandler, isLoggedIn) {\n _classCallCheck(this, CustomDonateForm);\n\n var _this = _possibleConstructorReturn(this, (CustomDonateForm.__proto__ || Object.getPrototypeOf(CustomDonateForm)).call(this, el));\n\n _this.isLoggedIn = isLoggedIn;\n _this.notLoggedSubmitHandler = notLoggedSubmitHandler;\n\n return _this;\n }\n\n _createClass(CustomDonateForm, [{\n key: 'beforeSubmit',\n value: function beforeSubmit(e) {\n\n if (this.isLoggedIn) {\n if (this.parsleyForm.validate()) {\n window.__doPostBack(this.submit.getAttribute('data-clientid'), '');\n }\n } else {\n this.notLoggedSubmitHandler();\n this.submit.setAttribute('disabled', '');\n }\n }\n }]);\n\n return CustomDonateForm;\n}(_generic2.default);\n\nexports.default = CustomDonateForm;\n\n/***/ }),\n\n/***/ \"5mra\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-download\",\n \"use\": \"icon-download-usage\",\n \"viewBox\": \"0 0 10 11.99\",\n \"content\": \"\\r\\n \\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"6iMZ\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"CJ7E\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"7Rlk\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"7cwp\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _modal = __webpack_require__(\"44Oj\");\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar UrlModal = function (_Modal) {\n _inherits(UrlModal, _Modal);\n\n function UrlModal(url) {\n _classCallCheck(this, UrlModal);\n\n var _this = _possibleConstructorReturn(this, (UrlModal.__proto__ || Object.getPrototypeOf(UrlModal)).call(this));\n\n _this.url = url;\n return _this;\n }\n\n _createClass(UrlModal, [{\n key: 'getContent',\n value: function getContent() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _jquery2.default.ajax({ url: _this2.url }).done(function (responseText) {\n var selector = 'body';\n //from jquery .load src\n var content = (0, _jquery2.default)(\"
\").content.append(responseText).find(selector);\n //for some reason body can disappear from jquery element content\n //and content in this case is empty\n //check this if url modal will be used\n resolve(content);\n }).fail(function (error) {\n reject(error);\n });\n });\n }\n }]);\n\n return UrlModal;\n}(_modal2.default);\n\nexports.default = UrlModal;\n\n/***/ }),\n\n/***/ \"8VB3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Handlebars = __webpack_require__(\"alZG\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"
\\r\\n
\"\n + alias4(((helper = (helper = helpers.number || (depth0 != null ? depth0.number : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"number\",\"hash\":{},\"data\":data}) : helper)))\n + \". \"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\"\n + alias4(((helper = (helper = helpers.pageTitle || (depth0 != null ? depth0.pageTitle : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"pageTitle\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n \\r\\n
\\r\\n
\"\n + alias4(((helper = (helper = helpers.currencySign || (depth0 != null ? depth0.currencySign : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"currencySign\",\"hash\":{},\"data\":data}) : helper)))\n + alias4(((helper = (helper = helpers.amount || (depth0 != null ? depth0.amount : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"amount\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\"\n + alias4(((helper = (helper = helpers.targetRate || (depth0 != null ? depth0.targetRate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"targetRate\",\"hash\":{},\"data\":data}) : helper)))\n + \"% of target
\\r\\n
\\r\\n
\\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression, buffer = \n \"
\\r\\n
Top \"\n + alias4(((helper = (helper = helpers.count || (depth0 != null ? depth0.count : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"count\",\"hash\":{},\"data\":data}) : helper)))\n + \" Fundraiser Leaderboard for \"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n\";\n stack1 = ((helper = (helper = helpers.leaders || (depth0 != null ? depth0.leaders : depth0)) != null ? helper : alias2),(options={\"name\":\"leaders\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!helpers.leaders) { stack1 = helpers.blockHelperMissing.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n return buffer + \"
\\r\\n\";\n},\"useData\":true});\n\n/***/ }),\n\n/***/ \"8rcf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _staticModal = __webpack_require__(\"9TyS\");\n\nvar _staticModal2 = _interopRequireDefault(_staticModal);\n\nvar _urlModal = __webpack_require__(\"7cwp\");\n\nvar _urlModal2 = _interopRequireDefault(_urlModal);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ModalComponent = function (_Component) {\n _inherits(ModalComponent, _Component);\n\n function ModalComponent(el) {\n _classCallCheck(this, ModalComponent);\n\n var _this = _possibleConstructorReturn(this, (ModalComponent.__proto__ || Object.getPrototypeOf(ModalComponent)).call(this, el));\n\n _this.$container = (0, _jquery2.default)(_this.container);\n _this.modalInstance = null;\n _this.init();\n return _this;\n }\n\n _createClass(ModalComponent, [{\n key: 'init',\n value: function init() {\n var _this2 = this;\n\n this.refresh = this.$container.data('modal-refresh') || false;\n this.$container.on('click', function (e) {\n _this2.handleClick(e);\n });\n }\n }, {\n key: 'handleClick',\n value: function handleClick(e) {\n e.preventDefault();\n\n if (this.modalInstance === null) {\n var targetSelector = this.$container.data('modal-target');\n if (targetSelector) {\n this.modalInstance = new _staticModal2.default(targetSelector);\n }\n\n var href = this.$container.attr('href');\n if (href) {\n this.modalInstance = new _urlModal2.default(href);\n }\n }\n\n if (this.modalInstance) {\n this.modalInstance.open(this.refresh);\n }\n }\n }]);\n\n return ModalComponent;\n}(_generic2.default);\n\nexports.default = ModalComponent;\n\n/***/ }),\n\n/***/ \"90h0\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"98Kd\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-search\",\n \"use\": \"icon-search-usage\",\n \"viewBox\": \"0 0 16 16\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"9BMC\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"X/E2\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"9GCv\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Handlebars = __webpack_require__(\"alZG\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"
\\r\\n
\\r\\n
\"\n + alias4(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\"\n + alias4(((helper = (helper = helpers.text || (depth0 != null ? depth0.text : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"text\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\\r\\n\\r\\n Get Directions\\r\\n
\\r\\n\";\n},\"useData\":true});\n\n/***/ }),\n\n/***/ \"9PxB\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"tzxB\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-donaton-selector',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"EKM+\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"9TyS\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _modal = __webpack_require__(\"44Oj\");\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StaticModal = function (_Modal) {\n _inherits(StaticModal, _Modal);\n\n function StaticModal(targetSelector) {\n _classCallCheck(this, StaticModal);\n\n var _this = _possibleConstructorReturn(this, (StaticModal.__proto__ || Object.getPrototypeOf(StaticModal)).call(this));\n\n _this.targetSelector = targetSelector;\n return _this;\n }\n\n _createClass(StaticModal, [{\n key: 'getContent',\n value: function getContent() {\n var target = (0, _jquery2.default)(this.targetSelector);\n if (target.length === 0) {\n throw new Error('Modal target not found');\n }\n\n var content = target.children();\n return Promise.resolve(content);\n }\n }]);\n\n return StaticModal;\n}(_modal2.default);\n\nexports.default = StaticModal;\n\n/***/ }),\n\n/***/ \"9ZNr\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _utils = __webpack_require__(\"U7Dy\");\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXFCLFVBQVU7O3FCQUVoQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZXh0ZW5kfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVyRGVjb3JhdG9yKCdpbmxpbmUnLCBmdW5jdGlvbihmbiwgcHJvcHMsIGNvbnRhaW5lciwgb3B0aW9ucykge1xuICAgIGxldCByZXQgPSBmbjtcbiAgICBpZiAoIXByb3BzLnBhcnRpYWxzKSB7XG4gICAgICBwcm9wcy5wYXJ0aWFscyA9IHt9O1xuICAgICAgcmV0ID0gZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgcGFydGlhbHMgc3RhY2sgZnJhbWUgcHJpb3IgdG8gZXhlYy5cbiAgICAgICAgbGV0IG9yaWdpbmFsID0gY29udGFpbmVyLnBhcnRpYWxzO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBleHRlbmQoe30sIG9yaWdpbmFsLCBwcm9wcy5wYXJ0aWFscyk7XG4gICAgICAgIGxldCByZXQgPSBmbihjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gb3JpZ2luYWw7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLnBhcnRpYWxzW29wdGlvbnMuYXJnc1swXV0gPSBvcHRpb25zLmZuO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n\n\n/***/ }),\n\n/***/ \"9fKf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"UOqn\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar shopItemInstance = new _generic2.default({\n className: 'js-shop-item',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"WZNx\");\n resolve(callAfter(instance.default || instance));\n }\n});\nshopItemInstance.init();\n\nvar shopBundleInstance = new _generic2.default({\n className: 'js-shop-bundle',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"IprN\");\n resolve(callAfter(instance.default || instance));\n }\n});\nshopBundleInstance.init();\n\nvar basketInstance = new _generic2.default({\n className: 'js-basket',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"KJaf\");\n resolve(callAfter(instance.default || instance));\n }\n});\nbasketInstance.init();\n\nvar basketInfoInstance = new _generic2.default({\n className: 'js-basket-info',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"0QBl\");\n resolve(callAfter(instance.default || instance));\n }\n});\nbasketInfoInstance.init();\n\nexports.default = {\n shopItemInstance: shopItemInstance,\n shopBundleInstance: shopBundleInstance,\n basketInstance: basketInstance,\n basketInfoInstance: basketInfoInstance\n};\n\n/***/ }),\n\n/***/ \"9mGK\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"9tDy\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"A7Qy\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Factory = function () {\n function Factory(settings) {\n _classCallCheck(this, Factory);\n\n this.settings = settings;\n this.elements = {};\n }\n\n _createClass(Factory, [{\n key: 'init',\n value: function init() {\n var elements = document.querySelectorAll('.' + this.settings.className + ':not(.' + this.getInitedClass() + ')');\n for (var i = 0, l = elements.length; i < l; i++) {\n this.initSingle(elements[i]);\n }\n }\n }, {\n key: 'getInitedClass',\n value: function getInitedClass() {\n return this.settings.className + '-inited';\n }\n }, {\n key: 'initSingle',\n value: function initSingle(element) {\n var _this = this;\n\n var createInstance = function createInstance(instance) {\n if (_this.hasClass(element, _this.getInitedClass())) {\n return _this.elements[element.getAttribute('data-id')] || null;\n }\n\n _this.addClass(element, _this.getInitedClass());\n\n var elementInstance = new instance(element);\n _this.elements[elementInstance.id] = elementInstance;\n return _this.elements[elementInstance.id];\n };\n\n var promise = new Promise(function (resolve, reject) {\n if (typeof _this.settings.ensure == \"function\") {\n _this.settings.ensure(resolve, createInstance);\n } else {\n reject(null);\n }\n });\n\n return promise;\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n for (var id in this.elements) {\n this.removeClass(this.elements[id].element, this.getInitedClass());\n this.elements[id].destroy();\n }\n this.elements = {};\n this.settings.classInstance.id = 0;\n }\n }, {\n key: 'destroySingle',\n value: function destroySingle(element) {\n if (!this.hasClass(element, this.getInitedClass())) {\n return element;\n }\n\n var id = element.getAttribute('data-id');\n if (!id || !this.elements[id]) {\n return;\n }\n this.removeClass(this.elements[id].element, this.getInitedClass());\n this.elements[id].destroy();\n\n delete this.elements[id];\n }\n }, {\n key: 'addClass',\n value: function addClass(element, className) {\n if (element.classList) {\n element.classList.add(className);\n } else {\n element.setAttribute('class', element.getAttribute('class') + ' ' + className);\n }\n }\n }, {\n key: 'removeClass',\n value: function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else {\n element.setAttribute('class', element.getAttribute('class').replace(className, ''));\n }\n }\n }, {\n key: 'hasClass',\n value: function hasClass(element, className) {\n if (element.classList) {\n return element.classList.contains(className);\n } else {\n return element.getAttribute('class').indexOf(className) >= 0;\n }\n }\n }]);\n\n return Factory;\n}();\n\nexports.default = Factory;\n\n/***/ }),\n\n/***/ \"ACx4\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"ANqr\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"ARHp\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/*!\n* Tippy.js v2.5.4\n* (c) 2017-2018 atomiks\n* MIT\n*/\n(function (global, factory) {\n\t true ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.tippy = factory());\n}(this, (function () { 'use strict';\n\nvar styles = \".tippy-touch{cursor:pointer!important}.tippy-notransition{transition:none!important}.tippy-popper{max-width:350px;-webkit-perspective:700px;perspective:700px;z-index:9999;outline:0;transition-timing-function:cubic-bezier(.165,.84,.44,1);pointer-events:none;line-height:1.4}.tippy-popper[data-html]{max-width:96%;max-width:calc(100% - 20px)}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 90%;transform-origin:0 90%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-50%,25%);transform:scale(6) translate(-50%,25%);opacity:1}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1) translate(-50%,25%);transform:scale(1) translate(-50%,25%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px) rotateX(0);transform:translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(90deg);transform:translateY(0) rotateX(90deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -90%;transform-origin:0 -90%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-50%,-125%);transform:scale(6) translate(-50%,-125%);opacity:1}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1) translate(-50%,-125%);transform:scale(1) translate(-50%,-125%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateY(10px) rotateX(0);transform:translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(-90deg);transform:translateY(0) rotateX(-90deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:100% 0;transform-origin:100% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(40%,-50%);transform:scale(6) translate(40%,-50%);opacity:1}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1.5) translate(40%,-50%);transform:scale(1.5) translate(40%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px) rotateY(0);transform:translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(-90deg);transform:translateX(0) rotateY(-90deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-100% 0;transform-origin:-100% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-140%,-50%);transform:scale(6) translate(-140%,-50%);opacity:1}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1.5) translate(-140%,-50%);transform:scale(1.5) translate(-140%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateX(10px) rotateY(0);transform:translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(90deg);transform:translateX(0) rotateY(90deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;text-align:center;will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-animatefill] .tippy-content{transition:-webkit-clip-path cubic-bezier(.46,.1,.52,.98);transition:clip-path cubic-bezier(.46,.1,.52,.98);transition:clip-path cubic-bezier(.46,.1,.52,.98),-webkit-clip-path cubic-bezier(.46,.1,.52,.98)}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.53,2,.36,.85)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:26%;left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:\\\"\\\";float:left;padding-top:100%}body:not(.tippy-touch) .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(100% 100% at 50% 50%);clip-path:ellipse(100% 100% at 50% 50%)}body:not(.tippy-touch) .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(5% 50% at 50% 50%);clip-path:ellipse(5% 50% at 50% 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=right] .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(135% 100% at 0 50%);clip-path:ellipse(135% 100% at 0 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=right] .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(40% 100% at 0 50%);clip-path:ellipse(40% 100% at 0 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=left] .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(135% 100% at 100% 50%);clip-path:ellipse(135% 100% at 100% 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=left] .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(40% 100% at 100% 50%);clip-path:ellipse(40% 100% at 100% 50%)}@media (max-width:360px){.tippy-popper{max-width:96%;max-width:calc(100% - 20px)}}\";\n\nvar version = \"2.5.4\";\n\nvar isBrowser = typeof window !== 'undefined';\n\nvar isIE = isBrowser && /MSIE |Trident\\//.test(navigator.userAgent);\n\nvar browser = {};\n\nif (isBrowser) {\n browser.supported = 'requestAnimationFrame' in window;\n browser.supportsTouch = 'ontouchstart' in window;\n browser.usingTouch = false;\n browser.dynamicInputDetection = true;\n browser.iOS = /iPhone|iPad|iPod/.test(navigator.platform) && !window.MSStream;\n browser.onUserInputChange = function () {};\n}\n\n/**\n * Selector constants used for grabbing elements\n */\nvar selectors = {\n POPPER: '.tippy-popper',\n TOOLTIP: '.tippy-tooltip',\n CONTENT: '.tippy-content',\n BACKDROP: '.tippy-backdrop',\n ARROW: '.tippy-arrow',\n ROUND_ARROW: '.tippy-roundarrow',\n REFERENCE: '[data-tippy]'\n};\n\nvar defaults = {\n placement: 'top',\n livePlacement: true,\n trigger: 'mouseenter focus',\n animation: 'shift-away',\n html: false,\n animateFill: true,\n arrow: false,\n delay: 0,\n duration: [350, 300],\n interactive: false,\n interactiveBorder: 2,\n theme: 'dark',\n size: 'regular',\n distance: 10,\n offset: 0,\n hideOnClick: true,\n multiple: false,\n followCursor: false,\n inertia: false,\n updateDuration: 350,\n sticky: false,\n appendTo: function appendTo() {\n return document.body;\n },\n zIndex: 9999,\n touchHold: false,\n performance: false,\n dynamicTitle: false,\n flip: true,\n flipBehavior: 'flip',\n arrowType: 'sharp',\n arrowTransform: '',\n maxWidth: '',\n target: null,\n allowTitleHTML: true,\n popperOptions: {},\n createPopperInstanceOnInit: false,\n onShow: function onShow() {},\n onShown: function onShown() {},\n onHide: function onHide() {},\n onHidden: function onHidden() {}\n};\n\n/**\n * The keys of the defaults object for reducing down into a new object\n * Used in `getIndividualOptions()`\n */\nvar defaultsKeys = browser.supported && Object.keys(defaults);\n\n/**\n * Determines if a value is an object literal\n * @param {*} value\n * @return {Boolean}\n */\nfunction isObjectLiteral(value) {\n return {}.toString.call(value) === '[object Object]';\n}\n\n/**\n * Ponyfill for Array.from\n * @param {*} value\n * @return {Array}\n */\nfunction toArray(value) {\n return [].slice.call(value);\n}\n\n/**\n * Returns an array of elements based on the selector input\n * @param {String|Element|Element[]|NodeList|Object} selector\n * @return {Element[]}\n */\nfunction getArrayOfElements(selector) {\n if (selector instanceof Element || isObjectLiteral(selector)) {\n return [selector];\n }\n\n if (selector instanceof NodeList) {\n return toArray(selector);\n }\n\n if (Array.isArray(selector)) {\n return selector;\n }\n\n try {\n return toArray(document.querySelectorAll(selector));\n } catch (_) {\n return [];\n }\n}\n\n/**\n * Polyfills needed props/methods for a virtual reference object\n * NOTE: in v3.0 this will be pure\n * @param {Object} reference\n */\nfunction polyfillVirtualReferenceProps(reference) {\n reference.refObj = true;\n reference.attributes = reference.attributes || {};\n reference.setAttribute = function (key, val) {\n reference.attributes[key] = val;\n };\n reference.getAttribute = function (key) {\n return reference.attributes[key];\n };\n reference.removeAttribute = function (key) {\n delete reference.attributes[key];\n };\n reference.hasAttribute = function (key) {\n return key in reference.attributes;\n };\n reference.addEventListener = function () {};\n reference.removeEventListener = function () {};\n reference.classList = {\n classNames: {},\n add: function add(key) {\n return reference.classList.classNames[key] = true;\n },\n remove: function remove(key) {\n delete reference.classList.classNames[key];\n return true;\n },\n contains: function contains(key) {\n return key in reference.classList.classNames;\n }\n };\n}\n\n/**\n * Returns the supported prefixed property - only `webkit` is needed, `moz`, `ms` and `o` are obsolete\n * @param {String} property\n * @return {String} - browser supported prefixed property\n */\nfunction prefix(property) {\n var prefixes = ['', 'webkit'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var _prefix = prefixes[i];\n var prefixedProp = _prefix ? _prefix + upperProp : property;\n if (typeof document.body.style[prefixedProp] !== 'undefined') {\n return prefixedProp;\n }\n }\n\n return null;\n}\n\n/**\n * Creates a div element\n * @return {Element}\n */\nfunction div() {\n return document.createElement('div');\n}\n\n/**\n * Creates a popper element then returns it\n * @param {Number} id - the popper id\n * @param {String} title - the tooltip's `title` attribute\n * @param {Object} options - individual options\n * @return {Element} - the popper element\n */\nfunction createPopperElement(id, title, options) {\n var popper = div();\n popper.setAttribute('class', 'tippy-popper');\n popper.setAttribute('role', 'tooltip');\n popper.setAttribute('id', 'tippy-' + id);\n popper.style.zIndex = options.zIndex;\n popper.style.maxWidth = options.maxWidth;\n\n var tooltip = div();\n tooltip.setAttribute('class', 'tippy-tooltip');\n tooltip.setAttribute('data-size', options.size);\n tooltip.setAttribute('data-animation', options.animation);\n tooltip.setAttribute('data-state', 'hidden');\n options.theme.split(' ').forEach(function (t) {\n tooltip.classList.add(t + '-theme');\n });\n\n var content = div();\n content.setAttribute('class', 'tippy-content');\n\n if (options.arrow) {\n var arrow = div();\n arrow.style[prefix('transform')] = options.arrowTransform;\n\n if (options.arrowType === 'round') {\n arrow.classList.add('tippy-roundarrow');\n arrow.innerHTML = '';\n } else {\n arrow.classList.add('tippy-arrow');\n }\n\n tooltip.appendChild(arrow);\n }\n\n if (options.animateFill) {\n // Create animateFill circle element for animation\n tooltip.setAttribute('data-animatefill', '');\n var backdrop = div();\n backdrop.classList.add('tippy-backdrop');\n backdrop.setAttribute('data-state', 'hidden');\n tooltip.appendChild(backdrop);\n }\n\n if (options.inertia) {\n // Change transition timing function cubic bezier\n tooltip.setAttribute('data-inertia', '');\n }\n\n if (options.interactive) {\n tooltip.setAttribute('data-interactive', '');\n }\n\n var html = options.html;\n if (html) {\n var templateId = void 0;\n\n if (html instanceof Element) {\n content.appendChild(html);\n templateId = '#' + (html.id || 'tippy-html-template');\n } else {\n // trick linters: https://github.com/atomiks/tippyjs/issues/197\n content[true && 'innerHTML'] = document.querySelector(html)[true && 'innerHTML'];\n templateId = html;\n }\n\n popper.setAttribute('data-html', '');\n tooltip.setAttribute('data-template-id', templateId);\n\n if (options.interactive) {\n popper.setAttribute('tabindex', '-1');\n }\n } else {\n content[options.allowTitleHTML ? 'innerHTML' : 'textContent'] = title;\n }\n\n tooltip.appendChild(content);\n popper.appendChild(tooltip);\n\n return popper;\n}\n\n/**\n * Creates a trigger by adding the necessary event listeners to the reference element\n * @param {String} eventType - the custom event specified in the `trigger` setting\n * @param {Element} reference\n * @param {Object} handlers - the handlers for each event\n * @param {Object} options\n * @return {Array} - array of listener objects\n */\nfunction createTrigger(eventType, reference, handlers, options) {\n var onTrigger = handlers.onTrigger,\n onMouseLeave = handlers.onMouseLeave,\n onBlur = handlers.onBlur,\n onDelegateShow = handlers.onDelegateShow,\n onDelegateHide = handlers.onDelegateHide;\n\n var listeners = [];\n\n if (eventType === 'manual') return listeners;\n\n var on = function on(eventType, handler) {\n reference.addEventListener(eventType, handler);\n listeners.push({ event: eventType, handler: handler });\n };\n\n if (!options.target) {\n on(eventType, onTrigger);\n\n if (browser.supportsTouch && options.touchHold) {\n on('touchstart', onTrigger);\n on('touchend', onMouseLeave);\n }\n if (eventType === 'mouseenter') {\n on('mouseleave', onMouseLeave);\n }\n if (eventType === 'focus') {\n on(isIE ? 'focusout' : 'blur', onBlur);\n }\n } else {\n if (browser.supportsTouch && options.touchHold) {\n on('touchstart', onDelegateShow);\n on('touchend', onDelegateHide);\n }\n if (eventType === 'mouseenter') {\n on('mouseover', onDelegateShow);\n on('mouseout', onDelegateHide);\n }\n if (eventType === 'focus') {\n on('focusin', onDelegateShow);\n on('focusout', onDelegateHide);\n }\n if (eventType === 'click') {\n on('click', onDelegateShow);\n }\n }\n\n return listeners;\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Returns an object of settings to override global settings\n * @param {Element} reference\n * @param {Object} instanceOptions\n * @return {Object} - individual options\n */\nfunction getIndividualOptions(reference, instanceOptions) {\n var options = defaultsKeys.reduce(function (acc, key) {\n var val = reference.getAttribute('data-tippy-' + key.toLowerCase()) || instanceOptions[key];\n\n // Convert strings to booleans\n if (val === 'false') val = false;\n if (val === 'true') val = true;\n\n // Convert number strings to true numbers\n if (isFinite(val) && !isNaN(parseFloat(val))) {\n val = parseFloat(val);\n }\n\n // Convert array strings to actual arrays\n if (key !== 'target' && typeof val === 'string' && val.trim().charAt(0) === '[') {\n val = JSON.parse(val);\n }\n\n acc[key] = val;\n\n return acc;\n }, {});\n\n return _extends({}, instanceOptions, options);\n}\n\n/**\n * Evaluates/modifies the options object for appropriate behavior\n * @param {Element|Object} reference\n * @param {Object} options\n * @return {Object} modified/evaluated options\n */\nfunction evaluateOptions(reference, options) {\n // animateFill is disabled if an arrow is true\n if (options.arrow) {\n options.animateFill = false;\n }\n\n if (options.appendTo && typeof options.appendTo === 'function') {\n options.appendTo = options.appendTo();\n }\n\n if (typeof options.html === 'function') {\n options.html = options.html(reference);\n }\n\n return options;\n}\n\n/**\n * Returns inner elements of the popper element\n * @param {Element} popper\n * @return {Object}\n */\nfunction getInnerElements(popper) {\n var select = function select(s) {\n return popper.querySelector(s);\n };\n return {\n tooltip: select(selectors.TOOLTIP),\n backdrop: select(selectors.BACKDROP),\n content: select(selectors.CONTENT),\n arrow: select(selectors.ARROW) || select(selectors.ROUND_ARROW)\n };\n}\n\n/**\n * Removes the title from an element, setting `data-original-title`\n * appropriately\n * @param {Element} el\n */\nfunction removeTitle(el) {\n var title = el.getAttribute('title');\n // Only set `data-original-title` attr if there is a title\n if (title) {\n el.setAttribute('data-original-title', title);\n }\n el.removeAttribute('title');\n}\n\n/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser$1 = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser$1 && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser$1 && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser$1 && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser$1 && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE$1(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE$1(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE$1(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE$1(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck$1 = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass$1 = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty$1 = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends$1({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE$1(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE$1(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE$1()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends$1({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // Avoid blurry text by using full pixel integers.\n // For pixel-perfect positioning, top/bottom prefers rounded\n // values, while left/right prefers floored values.\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.round(popper.top),\n bottom: Math.round(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends$1({}, attributes, data.attributes);\n data.styles = _extends$1({}, styles, data.styles);\n data.arrowStyles = _extends$1({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty$1(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty$1(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends$1({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty$1({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty$1({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends$1({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty$1({}, side, reference[side]),\n end: defineProperty$1({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends$1({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overriden using the `options` argument of Popper.js.
\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck$1(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends$1({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends$1({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends$1({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends$1({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass$1(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\n/**\n * Triggers document reflow.\n * Use void because some minifiers or engines think simply accessing the property\n * is unnecessary.\n * @param {Element} popper\n */\nfunction reflow(popper) {\n void popper.offsetHeight;\n}\n\n/**\n * Wrapper util for popper position updating.\n * Updates the popper's position and invokes the callback on update.\n * Hackish workaround until Popper 2.0's update() becomes sync.\n * @param {Popper} popperInstance\n * @param {Function} callback: to run once popper's position was updated\n * @param {Boolean} updateAlreadyCalled: was scheduleUpdate() already called?\n */\nfunction updatePopperPosition(popperInstance, callback, updateAlreadyCalled) {\n var popper = popperInstance.popper,\n options = popperInstance.options;\n\n var onCreate = options.onCreate;\n var onUpdate = options.onUpdate;\n\n options.onCreate = options.onUpdate = function () {\n reflow(popper), callback && callback(), onUpdate();\n options.onCreate = onCreate;\n options.onUpdate = onUpdate;\n };\n\n if (!updateAlreadyCalled) {\n popperInstance.scheduleUpdate();\n }\n}\n\n/**\n * Returns the core placement ('top', 'bottom', 'left', 'right') of a popper\n * @param {Element} popper\n * @return {String}\n */\nfunction getPopperPlacement(popper) {\n return popper.getAttribute('x-placement').replace(/-.+/, '');\n}\n\n/**\n * Determines if the mouse's cursor is outside the interactive border\n * @param {MouseEvent} event\n * @param {Element} popper\n * @param {Object} options\n * @return {Boolean}\n */\nfunction cursorIsOutsideInteractiveBorder(event, popper, options) {\n if (!popper.getAttribute('x-placement')) return true;\n\n var x = event.clientX,\n y = event.clientY;\n var interactiveBorder = options.interactiveBorder,\n distance = options.distance;\n\n\n var rect = popper.getBoundingClientRect();\n var placement = getPopperPlacement(popper);\n var borderWithDistance = interactiveBorder + distance;\n\n var exceeds = {\n top: rect.top - y > interactiveBorder,\n bottom: y - rect.bottom > interactiveBorder,\n left: rect.left - x > interactiveBorder,\n right: x - rect.right > interactiveBorder\n };\n\n switch (placement) {\n case 'top':\n exceeds.top = rect.top - y > borderWithDistance;\n break;\n case 'bottom':\n exceeds.bottom = y - rect.bottom > borderWithDistance;\n break;\n case 'left':\n exceeds.left = rect.left - x > borderWithDistance;\n break;\n case 'right':\n exceeds.right = x - rect.right > borderWithDistance;\n break;\n }\n\n return exceeds.top || exceeds.bottom || exceeds.left || exceeds.right;\n}\n\n/**\n * Transforms the `arrowTransform` numbers based on the placement axis\n * @param {String} type 'scale' or 'translate'\n * @param {Number[]} numbers\n * @param {Boolean} isVertical\n * @param {Boolean} isReverse\n * @return {String}\n */\nfunction transformNumbersBasedOnPlacementAxis(type, numbers, isVertical, isReverse) {\n if (!numbers.length) return '';\n\n var transforms = {\n scale: function () {\n if (numbers.length === 1) {\n return '' + numbers[0];\n } else {\n return isVertical ? numbers[0] + ', ' + numbers[1] : numbers[1] + ', ' + numbers[0];\n }\n }(),\n translate: function () {\n if (numbers.length === 1) {\n return isReverse ? -numbers[0] + 'px' : numbers[0] + 'px';\n } else {\n if (isVertical) {\n return isReverse ? numbers[0] + 'px, ' + -numbers[1] + 'px' : numbers[0] + 'px, ' + numbers[1] + 'px';\n } else {\n return isReverse ? -numbers[1] + 'px, ' + numbers[0] + 'px' : numbers[1] + 'px, ' + numbers[0] + 'px';\n }\n }\n }()\n };\n\n return transforms[type];\n}\n\n/**\n * Transforms the `arrowTransform` x or y axis based on the placement axis\n * @param {String} axis 'X', 'Y', ''\n * @param {Boolean} isVertical\n * @return {String}\n */\nfunction transformAxis(axis, isVertical) {\n if (!axis) return '';\n var map = {\n X: 'Y',\n Y: 'X'\n };\n return isVertical ? axis : map[axis];\n}\n\n/**\n * Computes and applies the necessary arrow transform\n * @param {Element} popper\n * @param {Element} arrow\n * @param {String} arrowTransform\n */\nfunction computeArrowTransform(popper, arrow, arrowTransform) {\n var placement = getPopperPlacement(popper);\n var isVertical = placement === 'top' || placement === 'bottom';\n var isReverse = placement === 'right' || placement === 'bottom';\n\n var getAxis = function getAxis(re) {\n var match = arrowTransform.match(re);\n return match ? match[1] : '';\n };\n\n var getNumbers = function getNumbers(re) {\n var match = arrowTransform.match(re);\n return match ? match[1].split(',').map(parseFloat) : [];\n };\n\n var re = {\n translate: /translateX?Y?\\(([^)]+)\\)/,\n scale: /scaleX?Y?\\(([^)]+)\\)/\n };\n\n var matches = {\n translate: {\n axis: getAxis(/translate([XY])/),\n numbers: getNumbers(re.translate)\n },\n scale: {\n axis: getAxis(/scale([XY])/),\n numbers: getNumbers(re.scale)\n }\n };\n\n var computedTransform = arrowTransform.replace(re.translate, 'translate' + transformAxis(matches.translate.axis, isVertical) + '(' + transformNumbersBasedOnPlacementAxis('translate', matches.translate.numbers, isVertical, isReverse) + ')').replace(re.scale, 'scale' + transformAxis(matches.scale.axis, isVertical) + '(' + transformNumbersBasedOnPlacementAxis('scale', matches.scale.numbers, isVertical, isReverse) + ')');\n\n arrow.style[prefix('transform')] = computedTransform;\n}\n\n/**\n * Returns the distance taking into account the default distance due to\n * the transform: translate setting in CSS\n * @param {Number} distance\n * @return {String}\n */\nfunction getOffsetDistanceInPx(distance) {\n return -(distance - defaults.distance) + 'px';\n}\n\n/**\n * Waits until next repaint to execute a fn\n * @param {Function} fn\n */\nfunction defer(fn) {\n requestAnimationFrame(function () {\n setTimeout(fn, 1);\n });\n}\n\nvar matches = {};\n\nif (isBrowser) {\n var e = Element.prototype;\n matches = e.matches || e.matchesSelector || e.webkitMatchesSelector || e.mozMatchesSelector || e.msMatchesSelector || function (s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s);\n var i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {} // eslint-disable-line no-empty\n return i > -1;\n };\n}\n\nvar matches$1 = matches;\n\n/**\n * Ponyfill to get the closest parent element\n * @param {Element} element - child of parent to be returned\n * @param {String} parentSelector - selector to match the parent if found\n * @return {Element}\n */\nfunction closest(element, parentSelector) {\n var fn = Element.prototype.closest || function (selector) {\n var el = this;\n while (el) {\n if (matches$1.call(el, selector)) {\n return el;\n }\n el = el.parentElement;\n }\n };\n\n return fn.call(element, parentSelector);\n}\n\n/**\n * Returns the value taking into account the value being either a number or array\n * @param {Number|Array} value\n * @param {Number} index\n * @return {Number}\n */\nfunction getValue(value, index) {\n return Array.isArray(value) ? value[index] : value;\n}\n\n/**\n * Sets the visibility state of an element for transition to begin\n * @param {Element[]} els - array of elements\n * @param {String} type - 'visible' or 'hidden'\n */\nfunction setVisibilityState(els, type) {\n els.forEach(function (el) {\n if (!el) return;\n el.setAttribute('data-state', type);\n });\n}\n\n/**\n * Sets the transition property to each element\n * @param {Element[]} els - Array of elements\n * @param {String} value\n */\nfunction applyTransitionDuration(els, value) {\n els.filter(Boolean).forEach(function (el) {\n el.style[prefix('transitionDuration')] = value + 'ms';\n });\n}\n\n/**\n * Focuses an element while preventing a scroll jump if it's not entirely within the viewport\n * @param {Element} el\n */\nfunction focus(el) {\n var x = window.scrollX || window.pageXOffset;\n var y = window.scrollY || window.pageYOffset;\n el.focus();\n scroll(x, y);\n}\n\nvar key = {};\nvar store = function store(data) {\n return function (k) {\n return k === key && data;\n };\n};\n\nvar Tippy = function () {\n function Tippy(config) {\n classCallCheck(this, Tippy);\n\n for (var _key in config) {\n this[_key] = config[_key];\n }\n\n this.state = {\n destroyed: false,\n visible: false,\n enabled: true\n };\n\n this._ = store({\n mutationObservers: []\n });\n }\n\n /**\n * Enables the tooltip to allow it to show or hide\n * @memberof Tippy\n * @public\n */\n\n\n createClass(Tippy, [{\n key: 'enable',\n value: function enable() {\n this.state.enabled = true;\n }\n\n /**\n * Disables the tooltip from showing or hiding, but does not destroy it\n * @memberof Tippy\n * @public\n */\n\n }, {\n key: 'disable',\n value: function disable() {\n this.state.enabled = false;\n }\n\n /**\n * Shows the tooltip\n * @param {Number} duration in milliseconds\n * @memberof Tippy\n * @public\n */\n\n }, {\n key: 'show',\n value: function show(duration) {\n var _this = this;\n\n if (this.state.destroyed || !this.state.enabled) return;\n\n var popper = this.popper,\n reference = this.reference,\n options = this.options;\n\n var _getInnerElements = getInnerElements(popper),\n tooltip = _getInnerElements.tooltip,\n backdrop = _getInnerElements.backdrop,\n content = _getInnerElements.content;\n\n // If the `dynamicTitle` option is true, the instance is allowed\n // to be created with an empty title. Make sure that the tooltip\n // content is not empty before showing it\n\n\n if (options.dynamicTitle && !reference.getAttribute('data-original-title')) {\n return;\n }\n\n // Do not show tooltip if reference contains 'disabled' attribute. FF fix for #221\n if (reference.hasAttribute('disabled')) return;\n\n // Destroy tooltip if the reference element is no longer on the DOM\n if (!reference.refObj && !document.documentElement.contains(reference)) {\n this.destroy();\n return;\n }\n\n options.onShow.call(popper, this);\n\n duration = getValue(duration !== undefined ? duration : options.duration, 0);\n\n // Prevent a transition when popper changes position\n applyTransitionDuration([popper, tooltip, backdrop], 0);\n\n popper.style.visibility = 'visible';\n this.state.visible = true;\n\n _mount.call(this, function () {\n if (!_this.state.visible) return;\n\n if (!_hasFollowCursorBehavior.call(_this)) {\n // FIX: Arrow will sometimes not be positioned correctly. Force another update.\n _this.popperInstance.scheduleUpdate();\n }\n\n // Set initial position near the cursor\n if (_hasFollowCursorBehavior.call(_this)) {\n _this.popperInstance.disableEventListeners();\n var delay = getValue(options.delay, 0);\n var lastTriggerEvent = _this._(key).lastTriggerEvent;\n if (lastTriggerEvent) {\n _this._(key).followCursorListener(delay && _this._(key).lastMouseMoveEvent ? _this._(key).lastMouseMoveEvent : lastTriggerEvent);\n }\n }\n\n // Re-apply transition durations\n applyTransitionDuration([tooltip, backdrop, backdrop ? content : null], duration);\n\n if (backdrop) {\n getComputedStyle(backdrop)[prefix('transform')];\n }\n\n if (options.interactive) {\n reference.classList.add('tippy-active');\n }\n\n if (options.sticky) {\n _makeSticky.call(_this);\n }\n\n setVisibilityState([tooltip, backdrop], 'visible');\n\n _onTransitionEnd.call(_this, duration, function () {\n if (!options.updateDuration) {\n tooltip.classList.add('tippy-notransition');\n }\n\n if (options.interactive) {\n focus(popper);\n }\n\n reference.setAttribute('aria-describedby', 'tippy-' + _this.id);\n\n options.onShown.call(popper, _this);\n });\n });\n }\n\n /**\n * Hides the tooltip\n * @param {Number} duration in milliseconds\n * @memberof Tippy\n * @public\n */\n\n }, {\n key: 'hide',\n value: function hide(duration) {\n var _this2 = this;\n\n if (this.state.destroyed || !this.state.enabled) return;\n\n var popper = this.popper,\n reference = this.reference,\n options = this.options;\n\n var _getInnerElements2 = getInnerElements(popper),\n tooltip = _getInnerElements2.tooltip,\n backdrop = _getInnerElements2.backdrop,\n content = _getInnerElements2.content;\n\n options.onHide.call(popper, this);\n\n duration = getValue(duration !== undefined ? duration : options.duration, 1);\n\n if (!options.updateDuration) {\n tooltip.classList.remove('tippy-notransition');\n }\n\n if (options.interactive) {\n reference.classList.remove('tippy-active');\n }\n\n popper.style.visibility = 'hidden';\n this.state.visible = false;\n\n applyTransitionDuration([tooltip, backdrop, backdrop ? content : null], duration);\n\n setVisibilityState([tooltip, backdrop], 'hidden');\n\n if (options.interactive && options.trigger.indexOf('click') > -1) {\n focus(reference);\n }\n\n /*\n * This call is deferred because sometimes when the tooltip is still transitioning in but hide()\n * is called before it finishes, the CSS transition won't reverse quickly enough, meaning\n * the CSS transition will finish 1-2 frames later, and onHidden() will run since the JS set it\n * more quickly. It should actually be onShown(). Seems to be something Chrome does, not Safari\n */\n defer(function () {\n _onTransitionEnd.call(_this2, duration, function () {\n if (_this2.state.visible || !options.appendTo.contains(popper)) return;\n\n if (!_this2._(key).isPreparingToShow) {\n document.removeEventListener('mousemove', _this2._(key).followCursorListener);\n _this2._(key).lastMouseMoveEvent = null;\n }\n\n if (_this2.popperInstance) {\n _this2.popperInstance.disableEventListeners();\n }\n\n reference.removeAttribute('aria-describedby');\n\n options.appendTo.removeChild(popper);\n\n options.onHidden.call(popper, _this2);\n });\n });\n }\n\n /**\n * Destroys the tooltip instance\n * @param {Boolean} destroyTargetInstances - relevant only when destroying delegates\n * @memberof Tippy\n * @public\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n var _this3 = this;\n\n var destroyTargetInstances = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (this.state.destroyed) return;\n\n // Ensure the popper is hidden\n if (this.state.visible) {\n this.hide(0);\n }\n\n this.listeners.forEach(function (listener) {\n _this3.reference.removeEventListener(listener.event, listener.handler);\n });\n\n // Restore title\n if (this.title) {\n this.reference.setAttribute('title', this.title);\n }\n\n delete this.reference._tippy;\n\n var attributes = ['data-original-title', 'data-tippy', 'data-tippy-delegate'];\n attributes.forEach(function (attr) {\n _this3.reference.removeAttribute(attr);\n });\n\n if (this.options.target && destroyTargetInstances) {\n toArray(this.reference.querySelectorAll(this.options.target)).forEach(function (child) {\n return child._tippy && child._tippy.destroy();\n });\n }\n\n if (this.popperInstance) {\n this.popperInstance.destroy();\n }\n\n this._(key).mutationObservers.forEach(function (observer) {\n observer.disconnect();\n });\n\n this.state.destroyed = true;\n }\n }]);\n return Tippy;\n}();\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n * Standalone functions to be called with the instance's `this` context to make\n * them truly private and not accessible on the prototype\n */\n\n/**\n * Determines if the tooltip instance has followCursor behavior\n * @return {Boolean}\n * @memberof Tippy\n * @private\n */\nfunction _hasFollowCursorBehavior() {\n var lastTriggerEvent = this._(key).lastTriggerEvent;\n return this.options.followCursor && !browser.usingTouch && lastTriggerEvent && lastTriggerEvent.type !== 'focus';\n}\n\n/**\n * Creates the Tippy instance for the child target of the delegate container\n * @param {Event} event\n * @memberof Tippy\n * @private\n */\nfunction _createDelegateChildTippy(event) {\n var targetEl = closest(event.target, this.options.target);\n if (targetEl && !targetEl._tippy) {\n var title = targetEl.getAttribute('title') || this.title;\n if (title) {\n targetEl.setAttribute('title', title);\n tippy(targetEl, _extends({}, this.options, { target: null }));\n _enter.call(targetEl._tippy, event);\n }\n }\n}\n\n/**\n * Method used by event listeners to invoke the show method, taking into account delays and\n * the `wait` option\n * @param {Event} event\n * @memberof Tippy\n * @private\n */\nfunction _enter(event) {\n var _this4 = this;\n\n var options = this.options;\n\n\n _clearDelayTimeouts.call(this);\n\n if (this.state.visible) return;\n\n // Is a delegate, create Tippy instance for the child target\n if (options.target) {\n _createDelegateChildTippy.call(this, event);\n return;\n }\n\n this._(key).isPreparingToShow = true;\n\n if (options.wait) {\n options.wait.call(this.popper, this.show.bind(this), event);\n return;\n }\n\n // If the tooltip has a delay, we need to be listening to the mousemove as soon as the trigger\n // event is fired so that it's in the correct position upon mount.\n if (_hasFollowCursorBehavior.call(this)) {\n if (!this._(key).followCursorListener) {\n _setFollowCursorListener.call(this);\n }\n\n var _getInnerElements3 = getInnerElements(this.popper),\n arrow = _getInnerElements3.arrow;\n\n if (arrow) arrow.style.margin = '0';\n document.addEventListener('mousemove', this._(key).followCursorListener);\n }\n\n var delay = getValue(options.delay, 0);\n\n if (delay) {\n this._(key).showTimeout = setTimeout(function () {\n _this4.show();\n }, delay);\n } else {\n this.show();\n }\n}\n\n/**\n * Method used by event listeners to invoke the hide method, taking into account delays\n * @memberof Tippy\n * @private\n */\nfunction _leave() {\n var _this5 = this;\n\n _clearDelayTimeouts.call(this);\n\n if (!this.state.visible) return;\n\n this._(key).isPreparingToShow = false;\n\n var delay = getValue(this.options.delay, 1);\n\n if (delay) {\n this._(key).hideTimeout = setTimeout(function () {\n if (_this5.state.visible) {\n _this5.hide();\n }\n }, delay);\n } else {\n this.hide();\n }\n}\n\n/**\n * Returns relevant listeners for the instance\n * @return {Object} of listeners\n * @memberof Tippy\n * @private\n */\nfunction _getEventListeners() {\n var _this6 = this;\n\n var onTrigger = function onTrigger(event) {\n if (!_this6.state.enabled) return;\n\n var shouldStopEvent = browser.supportsTouch && browser.usingTouch && ['mouseenter', 'mouseover', 'focus'].indexOf(event.type) > -1;\n\n if (shouldStopEvent && _this6.options.touchHold) return;\n\n _this6._(key).lastTriggerEvent = event;\n\n // Toggle show/hide when clicking click-triggered tooltips\n if (event.type === 'click' && _this6.options.hideOnClick !== 'persistent' && _this6.state.visible) {\n _leave.call(_this6);\n } else {\n _enter.call(_this6, event);\n }\n };\n\n var onMouseLeave = function onMouseLeave(event) {\n if (['mouseleave', 'mouseout'].indexOf(event.type) > -1 && browser.supportsTouch && browser.usingTouch && _this6.options.touchHold) return;\n\n if (_this6.options.interactive) {\n var hide = _leave.bind(_this6);\n\n var onMouseMove = function onMouseMove(event) {\n var referenceCursorIsOver = closest(event.target, selectors.REFERENCE);\n var cursorIsOverPopper = closest(event.target, selectors.POPPER) === _this6.popper;\n var cursorIsOverReference = referenceCursorIsOver === _this6.reference;\n\n if (cursorIsOverPopper || cursorIsOverReference) return;\n\n if (cursorIsOutsideInteractiveBorder(event, _this6.popper, _this6.options)) {\n document.body.removeEventListener('mouseleave', hide);\n document.removeEventListener('mousemove', onMouseMove);\n\n _leave.call(_this6, onMouseMove);\n }\n };\n\n document.body.addEventListener('mouseleave', hide);\n document.addEventListener('mousemove', onMouseMove);\n return;\n }\n\n _leave.call(_this6);\n };\n\n var onBlur = function onBlur(event) {\n if (event.target !== _this6.reference || browser.usingTouch) return;\n\n if (_this6.options.interactive) {\n if (!event.relatedTarget) return;\n if (closest(event.relatedTarget, selectors.POPPER)) return;\n }\n\n _leave.call(_this6);\n };\n\n var onDelegateShow = function onDelegateShow(event) {\n if (closest(event.target, _this6.options.target)) {\n _enter.call(_this6, event);\n }\n };\n\n var onDelegateHide = function onDelegateHide(event) {\n if (closest(event.target, _this6.options.target)) {\n _leave.call(_this6);\n }\n };\n\n return {\n onTrigger: onTrigger,\n onMouseLeave: onMouseLeave,\n onBlur: onBlur,\n onDelegateShow: onDelegateShow,\n onDelegateHide: onDelegateHide\n };\n}\n\n/**\n * Creates and returns a new popper instance\n * @return {Popper}\n * @memberof Tippy\n * @private\n */\nfunction _createPopperInstance() {\n var _this7 = this;\n\n var popper = this.popper,\n reference = this.reference,\n options = this.options;\n\n var _getInnerElements4 = getInnerElements(popper),\n tooltip = _getInnerElements4.tooltip;\n\n var popperOptions = options.popperOptions;\n\n var arrowSelector = options.arrowType === 'round' ? selectors.ROUND_ARROW : selectors.ARROW;\n var arrow = tooltip.querySelector(arrowSelector);\n\n var config = _extends({\n placement: options.placement\n }, popperOptions || {}, {\n modifiers: _extends({}, popperOptions ? popperOptions.modifiers : {}, {\n arrow: _extends({\n element: arrowSelector\n }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.arrow : {}),\n flip: _extends({\n enabled: options.flip,\n padding: options.distance + 5 /* 5px from viewport boundary */\n , behavior: options.flipBehavior\n }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.flip : {}),\n offset: _extends({\n offset: options.offset\n }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.offset : {})\n }),\n onCreate: function onCreate() {\n tooltip.style[getPopperPlacement(popper)] = getOffsetDistanceInPx(options.distance);\n\n if (arrow && options.arrowTransform) {\n computeArrowTransform(popper, arrow, options.arrowTransform);\n }\n },\n onUpdate: function onUpdate() {\n var styles = tooltip.style;\n styles.top = '';\n styles.bottom = '';\n styles.left = '';\n styles.right = '';\n styles[getPopperPlacement(popper)] = getOffsetDistanceInPx(options.distance);\n\n if (arrow && options.arrowTransform) {\n computeArrowTransform(popper, arrow, options.arrowTransform);\n }\n }\n });\n\n _addMutationObserver.call(this, {\n target: popper,\n callback: function callback() {\n _this7.popperInstance.update();\n },\n options: {\n childList: true,\n subtree: true,\n characterData: true\n }\n });\n\n return new Popper(reference, popper, config);\n}\n\n/**\n * Appends the popper element to the DOM, updating or creating the popper instance\n * @param {Function} callback\n * @memberof Tippy\n * @private\n */\nfunction _mount(callback) {\n var options = this.options;\n\n\n if (!this.popperInstance) {\n this.popperInstance = _createPopperInstance.call(this);\n if (!options.livePlacement) {\n this.popperInstance.disableEventListeners();\n }\n } else {\n this.popperInstance.scheduleUpdate();\n if (options.livePlacement && !_hasFollowCursorBehavior.call(this)) {\n this.popperInstance.enableEventListeners();\n }\n }\n\n // If the instance previously had followCursor behavior, it will be positioned incorrectly\n // if triggered by `focus` afterwards - update the reference back to the real DOM element\n if (!_hasFollowCursorBehavior.call(this)) {\n var _getInnerElements5 = getInnerElements(this.popper),\n arrow = _getInnerElements5.arrow;\n\n if (arrow) arrow.style.margin = '';\n this.popperInstance.reference = this.reference;\n }\n\n updatePopperPosition(this.popperInstance, callback, true);\n\n if (!options.appendTo.contains(this.popper)) {\n options.appendTo.appendChild(this.popper);\n }\n}\n\n/**\n * Clears the show and hide delay timeouts\n * @memberof Tippy\n * @private\n */\nfunction _clearDelayTimeouts() {\n var _ref = this._(key),\n showTimeout = _ref.showTimeout,\n hideTimeout = _ref.hideTimeout;\n\n clearTimeout(showTimeout);\n clearTimeout(hideTimeout);\n}\n\n/**\n * Sets the mousemove event listener function for `followCursor` option\n * @memberof Tippy\n * @private\n */\nfunction _setFollowCursorListener() {\n var _this8 = this;\n\n this._(key).followCursorListener = function (event) {\n var _$lastMouseMoveEvent = _this8._(key).lastMouseMoveEvent = event,\n clientX = _$lastMouseMoveEvent.clientX,\n clientY = _$lastMouseMoveEvent.clientY;\n\n if (!_this8.popperInstance) return;\n\n _this8.popperInstance.reference = {\n getBoundingClientRect: function getBoundingClientRect() {\n return {\n width: 0,\n height: 0,\n top: clientY,\n left: clientX,\n right: clientX,\n bottom: clientY\n };\n },\n clientWidth: 0,\n clientHeight: 0\n };\n\n _this8.popperInstance.scheduleUpdate();\n };\n}\n\n/**\n * Updates the popper's position on each animation frame\n * @memberof Tippy\n * @private\n */\nfunction _makeSticky() {\n var _this9 = this;\n\n var applyTransitionDuration$$1 = function applyTransitionDuration$$1() {\n _this9.popper.style[prefix('transitionDuration')] = _this9.options.updateDuration + 'ms';\n };\n\n var removeTransitionDuration = function removeTransitionDuration() {\n _this9.popper.style[prefix('transitionDuration')] = '';\n };\n\n var updatePosition = function updatePosition() {\n if (_this9.popperInstance) {\n _this9.popperInstance.update();\n }\n\n applyTransitionDuration$$1();\n\n if (_this9.state.visible) {\n requestAnimationFrame(updatePosition);\n } else {\n removeTransitionDuration();\n }\n };\n\n updatePosition();\n}\n\n/**\n * Adds a mutation observer to an element and stores it in the instance\n * @param {Object}\n * @memberof Tippy\n * @private\n */\nfunction _addMutationObserver(_ref2) {\n var target = _ref2.target,\n callback = _ref2.callback,\n options = _ref2.options;\n\n if (!window.MutationObserver) return;\n\n var observer = new MutationObserver(callback);\n observer.observe(target, options);\n\n this._(key).mutationObservers.push(observer);\n}\n\n/**\n * Fires the callback functions once the CSS transition ends for `show` and `hide` methods\n * @param {Number} duration\n * @param {Function} callback - callback function to fire once transition completes\n * @memberof Tippy\n * @private\n */\nfunction _onTransitionEnd(duration, callback) {\n // Make callback synchronous if duration is 0\n if (!duration) {\n return callback();\n }\n\n var _getInnerElements6 = getInnerElements(this.popper),\n tooltip = _getInnerElements6.tooltip;\n\n var toggleListeners = function toggleListeners(action, listener) {\n if (!listener) return;\n tooltip[action + 'EventListener']('transition' in document.body.style ? 'transitionend' : 'webkitTransitionEnd', listener);\n };\n\n var listener = function listener(e) {\n if (e.target === tooltip) {\n toggleListeners('remove', listener);\n callback();\n }\n };\n\n toggleListeners('remove', this._(key).transitionendListener);\n toggleListeners('add', listener);\n\n this._(key).transitionendListener = listener;\n}\n\nvar idCounter = 1;\n\n/**\n * Creates tooltips for each reference element\n * @param {Element[]} els\n * @param {Object} config\n * @return {Tippy[]} Array of Tippy instances\n */\nfunction createTooltips(els, config) {\n return els.reduce(function (acc, reference) {\n var id = idCounter;\n\n var options = evaluateOptions(reference, config.performance ? config : getIndividualOptions(reference, config));\n\n var title = reference.getAttribute('title');\n\n // Don't create an instance when:\n // * the `title` attribute is falsy (null or empty string), and\n // * it's not a delegate for tooltips, and\n // * there is no html template specified, and\n // * `dynamicTitle` option is false\n if (!title && !options.target && !options.html && !options.dynamicTitle) {\n return acc;\n }\n\n // Delegates should be highlighted as different\n reference.setAttribute(options.target ? 'data-tippy-delegate' : 'data-tippy', '');\n\n removeTitle(reference);\n\n var popper = createPopperElement(id, title, options);\n\n var tippy = new Tippy({\n id: id,\n reference: reference,\n popper: popper,\n options: options,\n title: title,\n popperInstance: null\n });\n\n if (options.createPopperInstanceOnInit) {\n tippy.popperInstance = _createPopperInstance.call(tippy);\n tippy.popperInstance.disableEventListeners();\n }\n\n var listeners = _getEventListeners.call(tippy);\n tippy.listeners = options.trigger.trim().split(' ').reduce(function (acc, eventType) {\n return acc.concat(createTrigger(eventType, reference, listeners, options));\n }, []);\n\n // Update tooltip content whenever the title attribute on the reference changes\n if (options.dynamicTitle) {\n _addMutationObserver.call(tippy, {\n target: reference,\n callback: function callback() {\n var _getInnerElements = getInnerElements(popper),\n content = _getInnerElements.content;\n\n var title = reference.getAttribute('title');\n if (title) {\n content[options.allowTitleHTML ? 'innerHTML' : 'textContent'] = tippy.title = title;\n removeTitle(reference);\n }\n },\n\n options: {\n attributes: true\n }\n });\n }\n\n // Shortcuts\n reference._tippy = tippy;\n popper._tippy = tippy;\n popper._reference = reference;\n\n acc.push(tippy);\n\n idCounter++;\n\n return acc;\n }, []);\n}\n\n/**\n * Hides all poppers\n * @param {Tippy} excludeTippy - tippy to exclude if needed\n */\nfunction hideAllPoppers(excludeTippy) {\n var poppers = toArray(document.querySelectorAll(selectors.POPPER));\n\n poppers.forEach(function (popper) {\n var tippy = popper._tippy;\n if (!tippy) return;\n\n var options = tippy.options;\n\n\n if ((options.hideOnClick === true || options.trigger.indexOf('focus') > -1) && (!excludeTippy || popper !== excludeTippy.popper)) {\n tippy.hide();\n }\n });\n}\n\n/**\n * Adds the needed event listeners\n */\nfunction bindEventListeners() {\n var onDocumentTouch = function onDocumentTouch() {\n if (browser.usingTouch) return;\n\n browser.usingTouch = true;\n\n if (browser.iOS) {\n document.body.classList.add('tippy-touch');\n }\n\n if (browser.dynamicInputDetection && window.performance) {\n document.addEventListener('mousemove', onDocumentMouseMove);\n }\n\n browser.onUserInputChange('touch');\n };\n\n var onDocumentMouseMove = function () {\n var time = void 0;\n\n return function () {\n var now = performance.now();\n\n // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference\n if (now - time < 20) {\n browser.usingTouch = false;\n document.removeEventListener('mousemove', onDocumentMouseMove);\n if (!browser.iOS) {\n document.body.classList.remove('tippy-touch');\n }\n browser.onUserInputChange('mouse');\n }\n\n time = now;\n };\n }();\n\n var onDocumentClick = function onDocumentClick(event) {\n // Simulated events dispatched on the document\n if (!(event.target instanceof Element)) {\n return hideAllPoppers();\n }\n\n var reference = closest(event.target, selectors.REFERENCE);\n var popper = closest(event.target, selectors.POPPER);\n\n if (popper && popper._tippy && popper._tippy.options.interactive) {\n return;\n }\n\n if (reference && reference._tippy) {\n var options = reference._tippy.options;\n\n var isClickTrigger = options.trigger.indexOf('click') > -1;\n var isMultiple = options.multiple;\n\n // Hide all poppers except the one belonging to the element that was clicked\n if (!isMultiple && browser.usingTouch || !isMultiple && isClickTrigger) {\n return hideAllPoppers(reference._tippy);\n }\n\n if (options.hideOnClick !== true || isClickTrigger) {\n return;\n }\n }\n\n hideAllPoppers();\n };\n\n var onWindowBlur = function onWindowBlur() {\n var _document = document,\n el = _document.activeElement;\n\n if (el && el.blur && matches$1.call(el, selectors.REFERENCE)) {\n el.blur();\n }\n };\n\n var onWindowResize = function onWindowResize() {\n toArray(document.querySelectorAll(selectors.POPPER)).forEach(function (popper) {\n var tippyInstance = popper._tippy;\n if (tippyInstance && !tippyInstance.options.livePlacement) {\n tippyInstance.popperInstance.scheduleUpdate();\n }\n });\n };\n\n document.addEventListener('click', onDocumentClick);\n document.addEventListener('touchstart', onDocumentTouch);\n window.addEventListener('blur', onWindowBlur);\n window.addEventListener('resize', onWindowResize);\n\n if (!browser.supportsTouch && (navigator.maxTouchPoints || navigator.msMaxTouchPoints)) {\n document.addEventListener('pointerdown', onDocumentTouch);\n }\n}\n\nvar eventListenersBound = false;\n\n/**\n * Exported module\n * @param {String|Element|Element[]|NodeList|Object} selector\n * @param {Object} options\n * @param {Boolean} one - create one tooltip\n * @return {Object}\n */\nfunction tippy(selector, options, one) {\n if (browser.supported && !eventListenersBound) {\n bindEventListeners();\n eventListenersBound = true;\n }\n\n if (isObjectLiteral(selector)) {\n polyfillVirtualReferenceProps(selector);\n }\n\n options = _extends({}, defaults, options);\n\n var references = getArrayOfElements(selector);\n var firstReference = references[0];\n\n return {\n selector: selector,\n options: options,\n tooltips: browser.supported ? createTooltips(one && firstReference ? [firstReference] : references, options) : [],\n destroyAll: function destroyAll() {\n this.tooltips.forEach(function (tooltip) {\n return tooltip.destroy();\n });\n this.tooltips = [];\n }\n };\n}\n\ntippy.version = version;\ntippy.browser = browser;\ntippy.defaults = defaults;\ntippy.one = function (selector, options) {\n return tippy(selector, options, true).tooltips[0];\n};\ntippy.disableAnimations = function () {\n defaults.updateDuration = defaults.duration = 0;\n defaults.animateFill = false;\n};\n\n/**\n * Injects CSS styles to document head\n * @param {String} css\n */\nfunction injectCSS() {\n var css = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (isBrowser && browser.supported) {\n var head = document.head || document.querySelector('head');\n var style = document.createElement('style');\n style.type = 'text/css';\n head.insertBefore(style, head.firstChild);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n }\n}\n\ninjectCSS(styles);\n\nreturn tippy;\n\n})));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(\"DuR2\")))\n\n/***/ }),\n\n/***/ \"B2fU\":\n/***/ (function(module, exports) {\n\n(function(window, factory) {\n\tvar lazySizes = factory(window, window.document);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(window, function l(window, document) {\n\t'use strict';\n\t/*jshint eqnull:true */\n\tif(!document.getElementsByClassName){return;}\n\n\tvar lazysizes, lazySizesConfig;\n\n\tvar docElem = document.documentElement;\n\n\tvar Date = window.Date;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\tvar addEventListener = window[_addEventListener];\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('CustomEvent');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initCustomEvent(name, !noBubbles, !noCancelable, detail);\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = 125;\n\t\tvar RIC_DEFAULT_TIMEOUT = 666;\n\t\tvar rICTimeout = RIC_DEFAULT_TIMEOUT;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\t\t\t\tif(rICTimeout !== RIC_DEFAULT_TIMEOUT){\n\t\t\t\t\trICTimeout = RIC_DEFAULT_TIMEOUT;\n\t\t\t\t}\n\t\t\t}:\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 44;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || (delay < 9 && requestIdleCallback)){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom;\n\n\t\tvar defaultExpand, preloadExpand, hFac;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/glebot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(e && e.target){\n\t\t\t\taddRemoveLoadEvents(e.target, resetPreloading);\n\t\t\t}\n\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = getCSS(document.body, 'visibility') == 'hidden' || getCSS(elem, 'visibility') != 'hidden';\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal, beforeExpandVal;\n\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tif(preloadExpand == null){\n\t\t\t\t\tif(!('expand' in lazySizesConfig)){\n\t\t\t\t\t\tlazySizesConfig.expand = docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefaultExpand = lazySizesConfig.expand;\n\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesConfig.expFactor;\n\t\t\t\t}\n\n\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\tlowRuns = 0;\n\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t} else {\n\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t}\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesConfig.loadHidden || getCSS(lazyloadElems[i], 'visibility') != 'hidden') &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\taddClass(e.target, lazySizesConfig.loadedClass);\n\t\t\tremoveClass(e.target, lazySizesConfig.loadingClass);\n\t\t\taddRemoveLoadEvents(e.target, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(e.target, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\ttry {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} catch(e){\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesConfig.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesConfig.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\taddRemoveLoadEvents(elem, resetPreloading, true);\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\n\t\t\t\t\taddClass(elem, lazySizesConfig.loadingClass);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesConfig.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\tif( !firesLoad || (elem.complete && elem.naturalWidth > 1)){\n\t\t\t\t\tif(firesLoad){\n\t\t\t\t\t\tresetPreloading(event);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisLoading--;\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\tvar unveilElement = function (elem){\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar afterScroll = debounce(function(){\n\t\t\t\tlazySizesConfig.loadMode = 3;\n\t\t\t\tthrottledCheckElements();\n\t\t\t});\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesConfig.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', function(){\n\t\t\t\tif(lazySizesConfig.loadMode == 3){\n\t\t\t\t\tlazySizesConfig.loadMode = 2;\n\t\t\t\t}\n\t\t\t\tafterScroll();\n\t\t\t}, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);\n\t\t\t\thFac = lazySizesConfig.hFac;\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t};\n\n\t\tlazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesConfig)){\n\t\t\t\tlazySizesConfig[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\n\t\twindow.lazySizesConfig = lazySizesConfig;\n\n\t\tsetTimeout(function(){\n\t\t\tif(lazySizesConfig.init){\n\t\t\t\tinit();\n\t\t\t}\n\t\t});\n\t})();\n\n\tlazysizes = {\n\t\tcfg: lazySizesConfig,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n\n\n/***/ }),\n\n/***/ \"B7NF\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"B91i\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"BFzH\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-letter\",\n \"use\": \"icon-letter-usage\",\n \"viewBox\": \"0 0 56.22 37.04\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"BWIW\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"tuIb\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"Bsi4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"Ha0Y\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"C2w5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _gaHelper = __webpack_require__(\"Ys1R\");\n\nvar _gaHelper2 = _interopRequireDefault(_gaHelper);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GaEvent = function (_Component) {\n _inherits(GaEvent, _Component);\n\n function GaEvent(el) {\n _classCallCheck(this, GaEvent);\n\n var _this = _possibleConstructorReturn(this, (GaEvent.__proto__ || Object.getPrototypeOf(GaEvent)).call(this, el));\n\n _this.init();\n return _this;\n }\n\n _createClass(GaEvent, [{\n key: 'init',\n value: function init() {\n this.container.addEventListener('click', this.onClick.bind(this));\n }\n }, {\n key: 'onClick',\n value: function onClick(e) {\n if (typeof e !== 'undefined' && typeof e.stopPropagation === \"function\") {\n e.stopPropagation();\n }\n\n var category = this.container.getAttribute('data-tracking-category') || 'n/a';\n var action = this.container.getAttribute('data-tracking-action') || 'n/a';\n var label = this.container.getAttribute('data-tracking-label') || 'n/a';\n\n _gaHelper2.default.ga('send', 'event', category, action, label);\n }\n }]);\n\n return GaEvent;\n}(_generic2.default);\n\nexports.default = GaEvent;\n\n/***/ }),\n\n/***/ \"C4/Y\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"x1RD\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"C4F1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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 _appInstance = __webpack_require__(\"546j\");\n\nvar _appInstance2 = _interopRequireDefault(_appInstance);\n\nvar _contentBlocker = __webpack_require__(\"Pw+U\");\n\nvar _contentBlocker2 = _interopRequireDefault(_contentBlocker);\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 MenuManager = function () {\n function MenuManager() {\n var _this = this;\n\n _classCallCheck(this, MenuManager);\n\n this.menuCollection = {};\n\n this.stack = [];\n\n this.defaultMenuConfig = {\n isBlocking: true,\n isEnabled: true\n };\n\n _appInstance2.default.addListener('device-type-changed', function (oldDeviceType, newDeviceType) {\n if (oldDeviceType === _appInstance.DEVICE_TYPE_DESKTOP || newDeviceType === _appInstance.DEVICE_TYPE_DESKTOP) {\n _this.switchBetweenDeviceType();\n }\n });\n }\n\n _createClass(MenuManager, [{\n key: 'init',\n value: function init(id, menuConfig) {\n if (menuConfig.default === undefined) {\n menuConfig.default = {};\n }\n menuConfig.default.id = id;\n this.menuCollection[id] = menuConfig;\n }\n }, {\n key: 'open',\n value: function open(id) {\n var config = this.getMenuConfig(id);\n if (config && config.isEnabled) {\n this.openMenu(config);\n }\n }\n }, {\n key: 'isOpened',\n value: function isOpened(id) {\n return this.stack.some(function (openedMenu) {\n return openedMenu.id === id;\n });\n }\n }, {\n key: 'openMenu',\n value: function openMenu(config) {\n var isBlocking = config.isBlocking,\n level = config.level;\n\n while (this.stack.length > 0) {\n var prevMenu = this.stack[this.stack.length - 1];\n if (prevMenu.level >= level) {\n this.stack.pop();\n prevMenu.close();\n } else {\n break;\n }\n }\n\n if (isBlocking) {\n if (!_contentBlocker2.default.isBlocked('menu')) {\n _contentBlocker2.default.block('menu');\n }\n }\n\n this.stack.push(config);\n config.open();\n }\n }, {\n key: 'close',\n value: function close(id) {\n while (this.stack.length > 0) {\n var prevMenu = this.stack.pop();\n prevMenu.close();\n if (prevMenu.id === id) {\n break;\n }\n }\n\n //there is no top level menu still in stack\n if (this.stack.length === 0) {\n _contentBlocker2.default.unblock('menu');\n }\n }\n }, {\n key: 'getMenuConfig',\n value: function getMenuConfig(name) {\n if (!(name in this.menuCollection)) {\n return null;\n }\n\n var menuConfig = this.menuCollection[name];\n var deviceConfig = void 0;\n if (_appInstance2.default.isDesktop) {\n deviceConfig = menuConfig['desktop'];\n } else {\n deviceConfig = menuConfig['mobile'];\n }\n\n return _extends({}, this.defaultMenuConfig, menuConfig['default'], deviceConfig);\n }\n }, {\n key: 'switchBetweenDeviceType',\n value: function switchBetweenDeviceType() {\n while (this.stack.length > 0) {\n var prevMenu = this.stack.pop();\n prevMenu.close();\n }\n _contentBlocker2.default.unblock('menu');\n }\n }]);\n\n return MenuManager;\n}();\n\nvar instance = new MenuManager();\n\nexports.default = instance;\n\n/***/ }),\n\n/***/ \"CBhC\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"CH/3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"bphb\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-spinbox',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"fQ+6\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"CJ7E\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"CZpf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"NatS\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-form',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"Q1aM\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nif (document.querySelector('.js-form-trigger')) {\n document.querySelector('.js-form-trigger').addEventListener(\"click\", function () {\n factoryInstance = new _generic2.default({\n className: 'js-form',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"Q1aM\");\n resolve(callAfter(instance.default || instance));\n }\n });\n factoryInstance.init();\n });\n}\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"ClJA\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _masonryLayout = __webpack_require__(\"FWuv\");\n\nvar _masonryLayout2 = _interopRequireDefault(_masonryLayout);\n\nvar _gaHelper = __webpack_require__(\"Ys1R\");\n\nvar _gaHelper2 = _interopRequireDefault(_gaHelper);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _fontLoader = __webpack_require__(\"x/aJ\");\n\nvar _fontLoader2 = _interopRequireDefault(_fontLoader);\n\nvar _pageSpinner = __webpack_require__(\"O0WQ\");\n\nvar _pageSpinner2 = _interopRequireDefault(_pageSpinner);\n\nvar _scroller = __webpack_require__(\"FTYA\");\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Listing = function () {\n function Listing(el) {\n _classCallCheck(this, Listing);\n\n this.container = el;\n this.$container = (0, _jquery2.default)(this.container);\n this.isLoading = false;\n this.filterSelector = '.js-listing-filter';\n this.filterFieldSelector = '.js-listing-filter-field';\n this.gridSelector = '.js-listing-grid';\n this.gridItemSelector = '.js-listing-item';\n this.stampItemSelector = '.js-listing-stamp';\n this.emptyMessageSelector = '.js-empty-message';\n this.transitionDuration = 500;\n this.filterFields = [];\n this.filterReset = null;\n\n this.currentPage = 1;\n }\n\n _createClass(Listing, [{\n key: 'init',\n value: function init() {\n this.initConfig();\n\n this.grid = this.container.querySelector(this.gridSelector);\n this.filter = this.container.querySelector(this.filterSelector);\n this.emptyMessage = this.container.querySelector(this.emptyMessageSelector);\n\n if (this.filter) {\n this.filterFields = [].concat(_toConsumableArray(this.filter.querySelectorAll(this.filterFieldSelector)));\n this.filterReset = this.filter.querySelector('.js-listing-filter-reset');\n }\n\n this.bootstrap();\n }\n }, {\n key: 'initConfig',\n value: function initConfig() {\n this.endpointUrl = this.container.getAttribute('data-endpoint-url');\n var multiColumnAttribute = this.container.getAttribute('data-multicolumn');\n this.isMultiColumn = multiColumnAttribute === null || multiColumnAttribute === \"true\";\n }\n }, {\n key: 'bootstrapFinish',\n value: function bootstrapFinish() {\n this.initPagination();\n if (this.filter) {\n this.filter.addEventListener(\"change\", this.onFilterChange.bind(this));\n if (this.isNeedTrackFilter()) {\n this.filter.addEventListener(\"change\", this.trackFilter.bind(this));\n }\n }\n if (this.filterReset) {\n this.filterReset.addEventListener(\"click\", this.resetFilter.bind(this));\n }\n _pageSpinner2.default.hide();\n }\n }, {\n key: 'bootstrap',\n value: function bootstrap() {\n var _this = this;\n\n _pageSpinner2.default.show();\n if (this.isMultiColumn) {\n this.bootstrapPromise = _fontLoader2.default.then(function () {\n setTimeout(function () {\n _this.masonry = new _masonryLayout2.default(_this.grid, {\n columnWidth: _this.gridItemSelector,\n itemSelector: _this.gridItemSelector,\n stamp: _this.stampItemSelector,\n percentPosition: true,\n transitionDuration: _this.transitionDuration,\n stagger: 30,\n horizontalOrder: true\n });\n\n _this.bootstrapFinish();\n }, 200);\n });\n } else {\n this.bootstrapPromise = Promise.resolve().then(function () {\n _this.bootstrapFinish();\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var append = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n this.isLoading = true;\n\n return this.getData(page).then(function (response) {\n _this2.currentPage = page;\n return _this2.renderData(response, append);\n }, function (error) {\n console.log(error);\n }).then(function () {\n _this2.isLoading = false;\n });\n }\n }, {\n key: 'getData',\n value: function getData(page) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n _jquery2.default.ajax({\n url: _this3.getUrl(page)\n }).done(function (response) {\n resolve(response);\n }).fail(function (error) {\n reject(error);\n });\n });\n }\n }, {\n key: 'removeItems',\n value: function removeItems(currentItems) {\n var _this4 = this;\n\n if (this.isMultiColumn) {\n this.masonry.remove(currentItems);\n } else {\n currentItems.forEach(function (item) {\n _this4.grid.removeChild(item);\n });\n }\n return new Promise(function (resolve) {\n setTimeout(function () {\n resolve();\n }, _this4.transitionDuration);\n });\n }\n }, {\n key: 'appendItems',\n value: function appendItems(items, append) {\n var _this5 = this;\n\n items.forEach(function (item) {\n _this5.grid.appendChild(item);\n });\n\n if (this.isMultiColumn) {\n this.masonry.appended(items);\n if (!append) {\n this.masonry.layout();\n }\n }\n }\n }, {\n key: 'renderData',\n value: function renderData(itemsHtml, append) {\n var _this6 = this;\n\n return this.bootstrapPromise.then(function () {\n var domParser = new DOMParser();\n var pseudoDocument = domParser.parseFromString(itemsHtml, \"text/html\");\n var items = [].concat(_toConsumableArray(pseudoDocument.querySelectorAll(_this6.gridItemSelector)));\n\n if (!append) {\n var currentItems = _this6.grid.querySelectorAll(_this6.gridItemSelector + ':not(.js-listing-item-pinned)');\n currentItems = [].concat(_toConsumableArray(currentItems));\n var listingClearPromise = _this6.removeItems(currentItems);\n _this6.handleEmptyResponse(items, listingClearPromise);\n }\n\n _this6.appendItems(items, append);\n _this6.updatePagination(pseudoDocument);\n });\n }\n }, {\n key: 'onFilterChange',\n value: function onFilterChange() {\n this.updateResetState();\n this.currentPage = null;\n _pageSpinner2.default.show();\n this.render().then(function () {\n _pageSpinner2.default.hide();\n });\n }\n }, {\n key: 'resetFilter',\n value: function resetFilter(e) {\n e.preventDefault();\n this.filterFields.forEach(function (x) {\n return x.value = \"\";\n });\n this.$container.trigger('flatpickr:clear');\n this.onFilterChange();\n var dropdownTextarea = document.querySelectorAll('.textAreaBtn');\n for (var t = 0; t < dropdownTextarea.length; t++) {\n dropdownTextarea[t].style.cssText = \"text-indent: -100%\";\n }\n\n for (var i = 0; i < this.filterFields.length; i++) {\n if (this.filterFields[i].options) {\n Array.from(this.filterFields[i].options).forEach(function (o) {\n return o.selected = false;\n });\n }\n }\n\n var items = document.getElementsByTagName('input');\n for (var _i = 0; _i < items.length; _i++) {\n if (items[_i].type == 'checkbox') items[_i].checked = false;\n }\n }\n }, {\n key: 'updateResetState',\n value: function updateResetState() {\n var isFilled = this.filterFields.some(function (x) {\n return x.value;\n });\n if (isFilled) {\n this.filterReset.classList.add(\"btn--violet\");\n this.filterReset.classList.remove(\"btn--disabled\");\n this.filterReset.disabled = false;\n } else {\n this.filterReset.classList.remove(\"btn--violet\");\n this.filterReset.classList.add(\"btn--disabled\");\n this.filterReset.disabled = 'disabled';\n }\n }\n }, {\n key: 'getUrl',\n value: function getUrl(page) {\n var params = this.getRequestParams();\n if (page !== null) {\n params['page'] = page;\n }\n var paramsString = Object.keys(params).map(function (key) {\n return key + '=' + params[key];\n }).join('&');\n var paramsPrefix = this.endpointUrl.indexOf('?') === -1 ? '?' : '&';\n return '' + this.endpointUrl + (paramsString !== '' ? '' + paramsPrefix + paramsString : '');\n }\n }, {\n key: 'getRequestParams',\n value: function getRequestParams() {\n var arrayRegexp = /(.+)\\[(.*)\\]/;\n\n var result = this.filterFields.reduce(function (result, field) {\n if (field && field.selectedOptions && field.selectedOptions.length > 0) {\n result[field.name] = Array.from(field.selectedOptions).map(function (x) {\n return x.value;\n });\n }\n\n if (field && field.value && Array.from(field.classList).includes('js-rangepicker')) {\n result[field.name] = field.value;\n }\n\n return result;\n }, {});\n\n Object.keys(result).map(function (key) {\n var value = result[key];\n if (Array.isArray(value)) {\n value = value.join(',');\n }\n result[key] = value;\n });\n\n return result;\n }\n }, {\n key: 'updatePagination',\n value: function updatePagination(container) {\n throw new Error('method not implemented');\n }\n }, {\n key: 'initPagination',\n value: function initPagination() {\n throw new Error('method not implemented');\n }\n }, {\n key: 'isNeedTrackFilter',\n value: function isNeedTrackFilter() {\n return this.endpointUrl.indexOf('events') !== -1;\n }\n }, {\n key: 'trackFilter',\n value: function trackFilter(e) {\n if (!this.isFilterEmpty()) {\n _gaHelper2.default.ga('send', 'event', this.getTrackingEventCategory(), this.getTrackingEventAction(), this.getTrackingEventLabel());\n }\n }\n }, {\n key: 'getTrackingEventCategory',\n value: function getTrackingEventCategory() {\n if (this.endpointUrl.indexOf('events') !== -1) {\n return 'Find The Right Event';\n } else {\n return 'unknown';\n }\n }\n }, {\n key: 'getTrackingEventAction',\n value: function getTrackingEventAction() {\n if (this.endpointUrl.indexOf('events') !== -1) {\n return 'Search';\n } else {\n return 'unknown';\n }\n }\n }, {\n key: 'getTrackingEventLabel',\n value: function getTrackingEventLabel() {\n if (this.endpointUrl.indexOf('events') !== -1) {\n var params = this.getRequestParams();\n return (params['startdate'] || 'n/a') + ' > ' + (params['type'] || 'n/a') + ' > ' + (params['location'] || 'n/a');\n } else {\n return 'unknown';\n }\n }\n }, {\n key: 'isFilterEmpty',\n value: function isFilterEmpty() {\n if (this.endpointUrl.indexOf('events') !== -1) {\n var params = this.getRequestParams();\n return !params['startdate'] && !params['type'] && !params['location'];\n } else {\n return true;\n }\n }\n }, {\n key: 'handleEmptyResponse',\n value: function handleEmptyResponse(items, listingClearPromise) {\n var _this7 = this;\n\n //current items removed and new array has 0 items\n if (items.length === 0) {\n this.container.classList.add('is-empty');\n listingClearPromise.then(function () {\n _scroller2.default.scrollToElement(_this7.emptyMessage);\n });\n } else {\n this.container.classList.remove('is-empty');\n }\n }\n }]);\n\n return Listing;\n}();\n\nexports.default = Listing;\n\n/***/ }),\n\n/***/ \"Cz5H\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n column = undefined;\n if (loc) {\n line = loc.start.line;\n column = loc.start.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n } else {\n this.column = column;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsSUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzs7QUFFbkcsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDdEIsSUFBSSxZQUFBO01BQ0osTUFBTSxZQUFBLENBQUM7QUFDWCxNQUFJLEdBQUcsRUFBRTtBQUNQLFFBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztBQUN0QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7O0FBRTFCLFdBQU8sSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7R0FDeEM7O0FBRUQsTUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzs7O0FBRzFELE9BQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0FBQ2hELFFBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7R0FDOUM7OztBQUdELE1BQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO0FBQzNCLFNBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7R0FDMUM7O0FBRUQsTUFBSTtBQUNGLFFBQUksR0FBRyxFQUFFO0FBQ1AsVUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Ozs7QUFJdkIsVUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO0FBQ3pCLGNBQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtBQUNwQyxlQUFLLEVBQUUsTUFBTTtBQUNiLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7T0FDdEI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgZXJyb3JQcm9wcyA9IFsnZGVzY3JpcHRpb24nLCAnZmlsZU5hbWUnLCAnbGluZU51bWJlcicsICdtZXNzYWdlJywgJ25hbWUnLCAnbnVtYmVyJywgJ3N0YWNrJ107XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgICAgbGluZSxcbiAgICAgIGNvbHVtbjtcbiAgaWYgKGxvYykge1xuICAgIGxpbmUgPSBsb2Muc3RhcnQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcblxuICAgICAgLy8gV29yayBhcm91bmQgaXNzdWUgdW5kZXIgc2FmYXJpIHdoZXJlIHdlIGNhbid0IGRpcmVjdGx5IHNldCB0aGUgY29sdW1uIHZhbHVlXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2NvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogY29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKG5vcCkge1xuICAgIC8qIElnbm9yZSBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IHBhcnRpY3VsYXIgKi9cbiAgfVxufVxuXG5FeGNlcHRpb24ucHJvdG90eXBlID0gbmV3IEVycm9yKCk7XG5cbmV4cG9ydCBkZWZhdWx0IEV4Y2VwdGlvbjtcbiJdfQ==\n\n\n/***/ }),\n\n/***/ \"D+Rp\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"EmLy\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"D3ir\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"DBgD\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-person\",\n \"use\": \"icon-person-usage\",\n \"viewBox\": \"0 0 2.91 6.61\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"DPol\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-sms\",\n \"use\": \"icon-sms-usage\",\n \"viewBox\": \"0 0 58.98 44\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"DXj3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-file-input',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"iJlY\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"EEIA\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"EKM+\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _helpers = __webpack_require__(\"4ohY\");\n\nvar _helpers2 = _interopRequireDefault(_helpers);\n\nvar _appInstance = __webpack_require__(\"546j\");\n\nvar _appInstance2 = _interopRequireDefault(_appInstance);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DonationSelector = function (_Component) {\n _inherits(DonationSelector, _Component);\n\n function DonationSelector(el) {\n _classCallCheck(this, DonationSelector);\n\n var _this = _possibleConstructorReturn(this, (DonationSelector.__proto__ || Object.getPrototypeOf(DonationSelector)).call(this, el));\n\n _this.handleBtnClick = _this.handleBtnClick.bind(_this);\n\n _this.$container = (0, _jquery2.default)(_this.container);\n _this.init();\n return _this;\n }\n\n _createClass(DonationSelector, [{\n key: 'init',\n value: function init() {\n\n this.$btn = this.$container.find('.js-donaton-selector__btn');\n this.$input = this.$container.find('.js-donaton-selector__inp');\n\n this.$btn.on('click', this.handleBtnClick);\n this.$input.on('input', _helpers2.default.throttle(this, this.handleInput, 300));\n }\n }, {\n key: 'handleBtnClick',\n value: function handleBtnClick(e) {\n var $targetBtn = (0, _jquery2.default)(e.target);\n this.$btn.removeClass('is-active');\n $targetBtn.addClass('is-active');\n\n var value = $targetBtn.data('value');\n this.$input.val(value);\n _appInstance2.default.emitEvent('donateAmount:input', [value]);\n }\n }, {\n key: 'handleInput',\n value: function handleInput() {\n var inputVal = parseFloat(this.$input.val());\n this.$btn.each(function (index, el) {\n var $el = (0, _jquery2.default)(el);\n\n if (inputVal === $el.data('value')) {\n $el.addClass('is-active');\n } else {\n $el.removeClass('is-active');\n }\n });\n\n _appInstance2.default.emitEvent('donateAmount:input', [inputVal]);\n }\n }]);\n\n return DonationSelector;\n}(_generic2.default);\n\nexports.default = DonationSelector;\n\n/***/ }),\n\n/***/ \"EdLV\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"EmLy\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"EqrE\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"xseL\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-tabs',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"ISDb\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"F9XD\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"CBhC\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-logo-list',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"g/gB\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"FTYA\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Scroller = function () {\n function Scroller() {\n _classCallCheck(this, Scroller);\n }\n\n _createClass(Scroller, [{\n key: \"scrollToElement\",\n value: function scrollToElement(element) {\n var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n\n if (element && !this.isInsideWindow(element)) {\n return this._scrollToElement(element, speed);\n }\n return Promise.resolve();\n }\n }, {\n key: \"isInsideWindow\",\n value: function isInsideWindow(element) {\n var elementPosition = this.getElementDocumentPosition(element);\n console.log(elementPosition);\n var windowTop = document.documentElement.scrollTop || document.body.scrollTop;\n var windowBottom = windowTop + window.innerHeight;\n return windowTop <= elementPosition.top && windowBottom >= elementPosition.bottom;\n }\n }, {\n key: \"getElementDocumentPosition\",\n value: function getElementDocumentPosition(element) {\n var box = element.getBoundingClientRect();\n return {\n top: box.top + pageYOffset,\n bottom: box.bottom + pageYOffset\n };\n }\n }, {\n key: \"_scrollToElement\",\n value: function _scrollToElement(element, speed) {\n var moveToRect = element.getBoundingClientRect();\n var scrollTargetY = moveToRect.top + pageYOffset - window.innerHeight * 0.2;\n\n return new Promise(function (resolve) {\n var currentY = window.scrollY || document.documentElement.scrollTop;\n var time = Math.max(0.1, Math.min(Math.abs(currentY - scrollTargetY) / speed, 0.8));\n\n var easingFunction = function easingFunction(pos) {\n return -0.5 * (Math.cos(Math.PI * pos) - 1);\n };\n\n var currentTime = 0;\n\n function tick() {\n currentTime += 1 / 60;\n\n var p = currentTime / time;\n var t = easingFunction(p);\n\n if (p < 1) {\n requestAnimationFrame(tick);\n window.scrollTo(0, currentY + (scrollTargetY - currentY) * t);\n return;\n }\n\n window.scrollTo(0, scrollTargetY);\n resolve();\n }\n\n tick();\n });\n }\n }]);\n\n return Scroller;\n}();\n\nvar instance = new Scroller();\nexports.default = instance;\n\n/***/ }),\n\n/***/ \"G0mC\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createEvent;\nfunction createEvent(name) {\n if (typeof Event === 'function') {\n return new Event(name, { bubbles: true });\n } else {\n var event = document.createEvent(\"Event\");\n event.initEvent(name, true, true);\n return event;\n }\n};\n\n/***/ }),\n\n/***/ \"GENp\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Handlebars = __webpack_require__(\"alZG\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\\r\\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
\\r\\n\";\n},\"useData\":true});\n\n/***/ }),\n\n/***/ \"GKKS\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-modal_close\",\n \"use\": \"icon-modal_close-usage\",\n \"viewBox\": \"0 0 12.98 12.98\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"GbIs\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"Gg7h\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _utils = __webpack_require__(\"U7Dy\");\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUErRSxVQUFVOztxQkFFMUUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVwQixRQUFJLENBQUMsZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNyQixVQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQ3hCLFVBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQy9CLFlBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO09BQ2hGOztBQUVELGFBQU8sRUFBRSxDQUFDLE9BQU8sRUFBRTtBQUNqQixZQUFJLEVBQUUsSUFBSTtBQUNWLG1CQUFXLEVBQUUsbUJBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7T0FDaEUsQ0FBQyxDQUFDO0tBQ0osTUFBTTtBQUNMLGFBQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5QjtHQUNGLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6IndpdGguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FwcGVuZENvbnRleHRQYXRoLCBibG9ja1BhcmFtcywgY3JlYXRlRnJhbWUsIGlzRW1wdHksIGlzRnVuY3Rpb259IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3dpdGgnLCBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHsgY29udGV4dCA9IGNvbnRleHQuY2FsbCh0aGlzKTsgfVxuXG4gICAgbGV0IGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmICghaXNFbXB0eShjb250ZXh0KSkge1xuICAgICAgbGV0IGRhdGEgPSBvcHRpb25zLmRhdGE7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgICBkYXRhLmNvbnRleHRQYXRoID0gYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmbihjb250ZXh0LCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dF0sIFtkYXRhICYmIGRhdGEuY29udGV4dFBhdGhdKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n\n\n/***/ }),\n\n/***/ \"Gt49\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-doc-ppt\",\n \"use\": \"icon-doc-ppt-usage\",\n \"viewBox\": \"0 0 30.43 32.77\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"H2+J\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"H7+E\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"H8Bx\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"HLIP\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"HT49\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _jqueryUi = __webpack_require__(\"MUu/\");\n\nvar _jqueryUi2 = _interopRequireDefault(_jqueryUi);\n\nvar _formValidityHandler = __webpack_require__(\"W/J5\");\n\nvar _formValidityHandler2 = _interopRequireDefault(_formValidityHandler);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AccordionEl = function (_Component) {\n _inherits(AccordionEl, _Component);\n\n function AccordionEl(el) {\n _classCallCheck(this, AccordionEl);\n\n var _this = _possibleConstructorReturn(this, (AccordionEl.__proto__ || Object.getPrototypeOf(AccordionEl)).call(this, el));\n\n _this.$container = (0, _jquery2.default)(_this.container);\n var customSettings = _this.$container.data('accordionSettings') || {};\n _this.settings = _extends({}, AccordionEl._settings, customSettings);\n _this.$nextButton = _this.$container.find('.js-accordion-next');\n\n _this.initAccordion();\n return _this;\n }\n\n _createClass(AccordionEl, [{\n key: 'initAccordion',\n value: function initAccordion() {\n var _this2 = this;\n\n this.$container.accordion(this.settings);\n this.instance = this.$container.accordion('instance');\n\n var $arrowElement = this.$container.find('.ui-icon');\n\n $arrowElement.append('');\n\n var $panels = this.$container.find('.panel');\n var formNode = this.$container.closest('.js-validated-form')[0];\n $panels.each(function (i, element) {\n new _formValidityHandler2.default({\n element: element,\n formNode: formNode,\n onFailed: _this2.onInnerFieldNotValid.bind(_this2, element),\n beforeSubmit: _this2.onBeforeSubmit.bind(_this2, element)\n });\n });\n\n this.$nextButton.on('click', this.onClickNext.bind(this));\n }\n }, {\n key: 'onClickNext',\n value: function onClickNext() {\n var nextIndex = this.getNextPanelIndex();\n\n this.$container.accordion('option', 'active', nextIndex);\n }\n }, {\n key: 'onInnerFieldNotValid',\n value: function onInnerFieldNotValid(el) {\n el.classList.add('is-invalid-panel');\n var siblings = [].concat(_toConsumableArray(el.parentNode.children));\n var index = siblings.indexOf(el);\n\n var mustOpenPanel = true;\n for (var i = 0; i < index; i++) {\n if (siblings[i].classList.contains('is-invalid-panel')) {\n mustOpenPanel = false;\n }\n }\n if (mustOpenPanel) {\n this.$container.accordion('option', 'active', index);\n }\n }\n }, {\n key: 'onBeforeSubmit',\n value: function onBeforeSubmit(el) {\n el.classList.remove('is-invalid-panel');\n }\n }, {\n key: 'getNextPanelIndex',\n value: function getNextPanelIndex() {\n var currentIndex = this.instance.options.active;\n var length = this.instance.panels.length;\n\n return currentIndex + 1 < length ? currentIndex + 1 : 0;\n }\n }]);\n\n return AccordionEl;\n}(_generic2.default);\n\nexports.default = AccordionEl;\n\n\nAccordionEl._settings = {\n header: '.panel-heading',\n collapsible: 'true',\n active: 'false',\n heightStyle: 'content',\n activate: function activate(event, ui) {\n var header = ui.newHeader[0];\n if (header) {\n var offsetTop = header.getBoundingClientRect().top;\n if (offsetTop < 0) {\n (0, _jquery2.default)('html:not(:animated), body:not(:animated)').animate({ scrollTop: window.pageYOffset + offsetTop }, 200);\n }\n }\n }\n};\n\n/***/ }),\n\n/***/ \"HXbm\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"MjPF\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"Ha0Y\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"Hm9o\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"I0Rb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"RXzJ\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"I1Kh\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * EventEmitter v5.2.2 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n return EventEmitter;\n }.call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n\n\n/***/ }),\n\n/***/ \"ICMN\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _TweenLite = __webpack_require__(\"W9M7\");\n\nvar _TweenLite2 = _interopRequireDefault(_TweenLite);\n\nvar _menuManager = __webpack_require__(\"C4F1\");\n\nvar _menuManager2 = _interopRequireDefault(_menuManager);\n\nvar _generic3 = __webpack_require__(\"pw1P\");\n\nvar _appInstance = __webpack_require__(\"546j\");\n\nvar _appInstance2 = _interopRequireDefault(_appInstance);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SearchTop = function (_Component) {\n _inherits(SearchTop, _Component);\n\n function SearchTop(el) {\n _classCallCheck(this, SearchTop);\n\n var _this = _possibleConstructorReturn(this, (SearchTop.__proto__ || Object.getPrototypeOf(SearchTop)).call(this, el));\n\n _this.init();\n return _this;\n }\n\n _createClass(SearchTop, [{\n key: 'init',\n value: function init() {\n this.defineVariables();\n this.toggle.addEventListener('click', this.toggleMenu.bind(this));\n this.shadow.addEventListener('click', this.toggleMenu.bind(this));\n if (this.trigger) {\n this.trigger.addEventListener('click', this.searchTrigger.bind(this));\n this.trigger.classList.add('js-search-top-trigger-inited');\n }\n }\n }, {\n key: 'defineVariables',\n value: function defineVariables() {\n this.menuId = 'search';\n this.isOpened = false;\n this.toggle = this.container.querySelector('.js-toggle');\n this.content = this.container.querySelector('.js-content');\n this.input = this.container.querySelector('.js-search-box');\n this.shadow = document.querySelector('.nav-top__shadow-bg');\n this.trigger = document.querySelector('.js-search-top-trigger:not(.js-search-top-trigger-inited)');\n\n var elementsToHide = [document.querySelector('.navbar'), document.querySelectorAll('.header__nav-btn')[0], document.querySelectorAll('.header__nav-btn')[1], document.querySelector('.js-search-top-mobile')];\n\n this.elementsToHide = elementsToHide.reduce(function (result, el) {\n if (el) {\n result.push(el);\n }\n return result;\n }, []);\n\n this.headerNav = document.querySelector('.header__nav');\n this.body = document.body;\n }\n }, {\n key: 'toggleMenu',\n value: function toggleMenu(e) {\n if (e) e.preventDefault();\n\n if (!this.isOpened) {\n this.openDesktop();\n } else {\n this.closeDesktop();\n }\n }\n }, {\n key: 'openDesktop',\n value: function openDesktop() {\n var _this2 = this;\n\n this.isOpened = true;\n _TweenLite2.default.from(this.content, 0.3, { y: -300 });\n _TweenLite2.default.to(this.content, 0.3, {\n y: 0,\n onComplete: function onComplete() {\n _this2.input.focus();\n }\n });\n this.container.classList.add('is-opened');\n this.toggle.querySelector('svg.icon use').setAttribute('xlink:href', '#icon-modal_close');\n\n this.elementsToHideDisplay = this.elementsToHide.map(function (element) {\n var display = element.style.display;\n element.style.display = 'none';\n return display;\n });\n\n this.shadow.classList.add('is-visible');\n }\n }, {\n key: 'closeDesktop',\n value: function closeDesktop() {\n var _this3 = this;\n\n this.isOpened = false;\n _TweenLite2.default.from(this.content, 0.3, { y: 0 });\n var self = this;\n _TweenLite2.default.to(this.content, 0.3, {\n y: -300,\n onComplete: function onComplete() {\n self.container.classList.remove('is-opened');\n }\n });\n this.toggle.querySelector('svg.icon use').setAttribute('xlink:href', '#icon-search');\n\n this.elementsToHide.forEach(function (element, index) {\n element.style.display = _this3.elementsToHideDisplay[index];\n });\n\n this.shadow.classList.remove('is-visible');\n }\n }, {\n key: 'searchTrigger',\n value: function searchTrigger(e) {\n e.preventDefault();\n window.scrollTo(0, 0);\n if (_appInstance2.default.isDesktop) {\n this.openDesktop();\n } else {\n _menuManager2.default.open(_generic3.MOBILE_MENU_ID);\n }\n }\n }]);\n\n return SearchTop;\n}(_generic2.default);\n\nexports.default = SearchTop;\n\n\nSearchTop.id = 0;\n\n/***/ }),\n\n/***/ \"IKFF\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"ISDb\":\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\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Tabs = function (_Component) {\n _inherits(Tabs, _Component);\n\n function Tabs(el, callbacks) {\n _classCallCheck(this, Tabs);\n\n var _this = _possibleConstructorReturn(this, (Tabs.__proto__ || Object.getPrototypeOf(Tabs)).call(this, el));\n\n _this.callbacks = callbacks;\n _this.initTabs();\n return _this;\n }\n\n _createClass(Tabs, [{\n key: 'initTabs',\n value: function initTabs() {\n var _this2 = this;\n\n this.defineVariables();\n Array.prototype.forEach.call(this.tabs, function (tab) {\n tab.addEventListener('click', _this2.setTab.bind(_this2));\n }, this);\n\n if (this.activeTabHash !== '' && this.supportTags) {\n this.setTab(this.activeTabHash);\n } else {\n this.setTab(this.defaultActive);\n }\n }\n }, {\n key: 'defineVariables',\n value: function defineVariables() {\n this.activeClass = 'js-active';\n this.supportTags = false;\n this.defaultActive = 0;\n this.tabs = this.container.querySelectorAll('.js-button');\n this.panels = this.container.querySelectorAll('.js-panel');\n this.activeTabHash = window.location.hash;\n }\n }, {\n key: 'setTab',\n value: function setTab(e) {\n if (e.target) {\n this.currentTab = e.target.getAttribute('href').substr(1);\n this.setActiveClass();\n } else if (typeof e === 'number') {\n this.currentTab = this.tabs[e].getAttribute('href').substr(1);\n this.setActiveClass();\n } else if (typeof e === 'string') {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.tabs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var tab = _step.value;\n\n if (tab.hash === this.activeTabHash) {\n this.currentTab = tab.hash.substring(1);\n this.setActiveClass();\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n\n if (e && e.preventDefault) {\n e.preventDefault();\n }\n\n if (_typeof(this.callbacks) === 'object' && typeof this.callbacks[this.currentTab] === 'function') {\n this.callbacks[this.currentTab]();\n }\n }\n }, {\n key: 'setActiveClass',\n value: function setActiveClass() {\n for (var i = 0; i < this.panels.length; i++) {\n if (this.panels[i].id === this.currentTab) {\n this.panels[i].classList.add(this.activeClass);\n this.tabs[i].classList.add(this.activeClass);\n this.panels[i].style.display = 'block';\n } else {\n this.panels[i].classList.remove(this.activeClass);\n this.tabs[i].classList.remove(this.activeClass);\n this.panels[i].style.display = 'none';\n }\n }\n }\n }]);\n\n return Tabs;\n}(_generic2.default);\n\nexports.default = Tabs;\n\n\nTabs.id = 0;\n\n/***/ }),\n\n/***/ \"IaZV\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {(function (global, factory) {\n\t true ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.BrowserSprite = factory());\n}(this, (function () { 'use strict';\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\n\n\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar index = createCommonjsModule(function (module, exports) {\n(function (root, factory) {\n if (false) {\n undefined(factory);\n } else {\n module.exports = factory();\n }\n}(commonjsGlobal, function () {\n\nfunction isMergeableObject(val) {\n var nonNullObject = val && typeof val === 'object';\n\n return nonNullObject\n && Object.prototype.toString.call(val) !== '[object RegExp]'\n && Object.prototype.toString.call(val) !== '[object Date]'\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function(e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (isMergeableObject(target)) {\n Object.keys(target).forEach(function (key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function (key) {\n if (!isMergeableObject(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n var array = Array.isArray(source);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n\n if (array) {\n return Array.isArray(target) ? arrayMerge(target, source, optionsArgument) : cloneIfNecessary(source, optionsArgument)\n } else {\n return mergeObject(target, source, optionsArgument)\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements')\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function(prev, next) {\n return deepmerge(prev, next, optionsArgument)\n })\n};\n\nreturn deepmerge\n\n}));\n});\n\n// \n// An event handler can take an optional event argument\n// and should not return a value\n \n// An array of all currently registered event handlers for a type\n \n// A map of event types and their corresponding event handlers.\n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberof mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nvar namespaces_1 = createCommonjsModule(function (module, exports) {\nvar namespaces = {\n svg: {\n name: 'xmlns',\n uri: 'http://www.w3.org/2000/svg'\n },\n xlink: {\n name: 'xmlns:xlink',\n uri: 'http://www.w3.org/1999/xlink'\n }\n};\n\nexports.default = namespaces;\nmodule.exports = exports.default;\n});\n\n/**\n * @param {Object} attrs\n * @return {string}\n */\nvar objectToAttrsString = function (attrs) {\n return Object.keys(attrs).map(function (attr) {\n var value = attrs[attr].toString().replace(/\"/g, '"');\n return (attr + \"=\\\"\" + value + \"\\\"\");\n }).join(' ');\n};\n\nvar svg = namespaces_1.svg;\nvar xlink = namespaces_1.xlink;\n\nvar defaultAttrs = {};\ndefaultAttrs[svg.name] = svg.uri;\ndefaultAttrs[xlink.name] = xlink.uri;\n\n/**\n * @param {string} [content]\n * @param {Object} [attributes]\n * @return {string}\n */\nvar wrapInSvgString = function (content, attributes) {\n if ( content === void 0 ) content = '';\n\n var attrs = index(defaultAttrs, attributes || {});\n var attrsRendered = objectToAttrsString(attrs);\n return (\"\" + content + \"\");\n};\n\nvar svg$1 = namespaces_1.svg;\nvar xlink$1 = namespaces_1.xlink;\n\nvar defaultConfig = {\n attrs: ( obj = {\n style: ['position: absolute', 'width: 0', 'height: 0'].join('; ')\n }, obj[svg$1.name] = svg$1.uri, obj[xlink$1.name] = xlink$1.uri, obj )\n};\nvar obj;\n\nvar Sprite = function Sprite(config) {\n this.config = index(defaultConfig, config || {});\n this.symbols = [];\n};\n\n/**\n * Add new symbol. If symbol with the same id exists it will be replaced.\n * @param {SpriteSymbol} symbol\n * @return {boolean} `true` - symbol was added, `false` - replaced\n */\nSprite.prototype.add = function add (symbol) {\n var ref = this;\n var symbols = ref.symbols;\n var existing = this.find(symbol.id);\n\n if (existing) {\n symbols[symbols.indexOf(existing)] = symbol;\n return false;\n }\n\n symbols.push(symbol);\n return true;\n};\n\n/**\n * Remove symbol & destroy it\n * @param {string} id\n * @return {boolean} `true` - symbol was found & successfully destroyed, `false` - otherwise\n */\nSprite.prototype.remove = function remove (id) {\n var ref = this;\n var symbols = ref.symbols;\n var symbol = this.find(id);\n\n if (symbol) {\n symbols.splice(symbols.indexOf(symbol), 1);\n symbol.destroy();\n return true;\n }\n\n return false;\n};\n\n/**\n * @param {string} id\n * @return {SpriteSymbol|null}\n */\nSprite.prototype.find = function find (id) {\n return this.symbols.filter(function (s) { return s.id === id; })[0] || null;\n};\n\n/**\n * @param {string} id\n * @return {boolean}\n */\nSprite.prototype.has = function has (id) {\n return this.find(id) !== null;\n};\n\n/**\n * @return {string}\n */\nSprite.prototype.stringify = function stringify () {\n var ref = this.config;\n var attrs = ref.attrs;\n var stringifiedSymbols = this.symbols.map(function (s) { return s.stringify(); }).join('');\n return wrapInSvgString(stringifiedSymbols, attrs);\n};\n\n/**\n * @return {string}\n */\nSprite.prototype.toString = function toString () {\n return this.stringify();\n};\n\nSprite.prototype.destroy = function destroy () {\n this.symbols.forEach(function (s) { return s.destroy(); });\n};\n\nvar defaultConfig$1 = {\n /**\n * Should following options be automatically configured:\n * - `syncUrlsWithBaseTag`\n * - `locationChangeAngularEmitter`\n * - `moveGradientsOutsideSymbol`\n * @type {boolean}\n */\n autoConfigure: true,\n\n /**\n * Default mounting selector\n * @type {string}\n */\n mountTo: 'body',\n\n /**\n * Fix disappearing SVG elements when exists.\n * Executes when sprite mounted.\n * @see http://stackoverflow.com/a/18265336/796152\n * @see https://github.com/everdimension/angular-svg-base-fix\n * @see https://github.com/angular/angular.js/issues/8934#issuecomment-56568466\n * @type {boolean}\n */\n syncUrlsWithBaseTag: false,\n\n /**\n * Should sprite listen custom location change event\n * @type {boolean}\n */\n listenLocationChangeEvent: true,\n\n /**\n * Custom window event name which should be emitted to update sprite urls\n * @type {string}\n */\n locationChangeEvent: 'locationChange',\n\n /**\n * Emit location change event in Angular automatically\n * @type {boolean}\n */\n locationChangeAngularEmitter: false,\n\n /**\n * Selector to find symbols usages when updating sprite urls\n * @type {string}\n */\n usagesToUpdate: 'use[*|href]',\n\n /**\n * Fix Firefox bug when gradients and patterns don't work if they are within a symbol.\n * Executes when sprite is rendered, but not mounted.\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=306674\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=353575\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=1235364\n * @type {boolean}\n */\n moveGradientsOutsideSymbol: false\n};\n\nvar arrayFrom = function (arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n};\n\nvar ua = navigator.userAgent;\n\nvar browser = {\n isChrome: /chrome/i.test(ua),\n isFirefox: /firefox/i.test(ua),\n isIE: /msie/i.test(ua),\n isEdge: /edge/i.test(ua)\n};\n\n/**\n * @param {string} name\n * @param {*} data\n */\nvar dispatchEvent = function (name, data) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent(name, false, false, data);\n window.dispatchEvent(event);\n};\n\n/**\n * @param {string} [url] If not provided - current URL will be used\n * @return {string}\n */\nvar getUrlWithoutFragment = function (url) {\n return (url || window.location.href).split('#')[0];\n};\n\n/* global angular */\n/**\n * @param {string} eventName\n */\nvar locationChangeAngularEmitter = function (eventName) {\n angular.module('ng').run(['$rootScope', function ($rootScope) {\n $rootScope.$on('$locationChangeSuccess', function (e, newUrl, oldUrl) {\n dispatchEvent(eventName, { oldUrl: oldUrl, newUrl: newUrl });\n });\n }]);\n};\n\nvar defaultSelector = 'linearGradient, radialGradient, pattern';\n\n/**\n * @param {Element} svg\n * @param {string} [selector]\n * @return {Element}\n */\nvar moveGradientsOutsideSymbol = function (svg, selector) {\n if ( selector === void 0 ) selector = defaultSelector;\n\n arrayFrom(svg.querySelectorAll('symbol')).forEach(function (symbol) {\n arrayFrom(symbol.querySelectorAll(selector)).forEach(function (node) {\n symbol.parentNode.insertBefore(node, symbol);\n });\n });\n return svg;\n};\n\n/**\n * @param {string} content\n * @return {Element}\n */\nvar parse = function (content) {\n var hasImportNode = !!document.importNode;\n var doc = new DOMParser().parseFromString(content, 'image/svg+xml').documentElement;\n\n /**\n * Fix for browser which are throwing WrongDocumentError\n * if you insert an element which is not part of the document\n * @see http://stackoverflow.com/a/7986519/4624403\n */\n if (hasImportNode) {\n return document.importNode(doc, true);\n }\n\n return doc;\n};\n\n/**\n * @param {NodeList} nodes\n * @param {Function} [matcher]\n * @return {Attr[]}\n */\nfunction selectAttributes(nodes, matcher) {\n var attrs = arrayFrom(nodes).reduce(function (acc, node) {\n if (!node.attributes) {\n return acc;\n }\n\n var arrayfied = arrayFrom(node.attributes);\n var matched = matcher ? arrayfied.filter(matcher) : arrayfied;\n return acc.concat(matched);\n }, []);\n\n return attrs;\n}\n\n/**\n * @param {NodeList|Node} nodes\n * @param {boolean} [clone=true]\n * @return {string}\n */\n\nvar xLinkNS = namespaces_1.xlink.uri;\nvar xLinkAttrName = 'xlink:href';\n\n// eslint-disable-next-line no-useless-escape\nvar specialUrlCharsPattern = /[(){}|\\\\\\^~\\[\\]`\"<>]/g;\n\nfunction encoder(url) {\n return url.replace(specialUrlCharsPattern, function (match) {\n return (\"%\" + (match[0].charCodeAt(0).toString(16).toUpperCase()));\n });\n}\n\n/**\n * @param {NodeList} nodes\n * @param {string} startsWith\n * @param {string} replaceWith\n * @return {NodeList}\n */\nfunction updateReferences(nodes, startsWith, replaceWith) {\n arrayFrom(nodes).forEach(function (node) {\n var href = node.getAttribute(xLinkAttrName);\n if (href && href.indexOf(startsWith) === 0) {\n var newUrl = href.replace(startsWith, replaceWith);\n node.setAttributeNS(xLinkNS, xLinkAttrName, newUrl);\n }\n });\n\n return nodes;\n}\n\n/**\n * List of SVG attributes to update url() target in them\n */\nvar attList = [\n 'clipPath',\n 'colorProfile',\n 'src',\n 'cursor',\n 'fill',\n 'filter',\n 'marker',\n 'markerStart',\n 'markerMid',\n 'markerEnd',\n 'mask',\n 'stroke',\n 'style'\n];\n\nvar attSelector = attList.map(function (attr) { return (\"[\" + attr + \"]\"); }).join(',');\n\n/**\n * Update URLs in svg image (like `fill=\"url(...)\"`) and update referencing elements\n * @param {Element} svg\n * @param {NodeList} references\n * @param {string|RegExp} startsWith\n * @param {string} replaceWith\n * @return {void}\n *\n * @example\n * const sprite = document.querySelector('svg.sprite');\n * const usages = document.querySelectorAll('use');\n * updateUrls(sprite, usages, '#', 'prefix#');\n */\nvar updateUrls = function (svg, references, startsWith, replaceWith) {\n var startsWithEncoded = encoder(startsWith);\n var replaceWithEncoded = encoder(replaceWith);\n\n var nodes = svg.querySelectorAll(attSelector);\n var attrs = selectAttributes(nodes, function (ref) {\n var localName = ref.localName;\n var value = ref.value;\n\n return attList.indexOf(localName) !== -1 && value.indexOf((\"url(\" + startsWithEncoded)) !== -1;\n });\n\n attrs.forEach(function (attr) { return attr.value = attr.value.replace(startsWithEncoded, replaceWithEncoded); });\n updateReferences(references, startsWithEncoded, replaceWithEncoded);\n};\n\n/**\n * Internal emitter events\n * @enum\n * @private\n */\nvar Events = {\n MOUNT: 'mount'\n};\n\nvar BrowserSprite = (function (Sprite$$1) {\n function BrowserSprite(cfg) {\n var this$1 = this;\n if ( cfg === void 0 ) cfg = {};\n\n Sprite$$1.call(this, index(defaultConfig$1, cfg));\n\n var emitter = mitt();\n this._emitter = emitter;\n this.node = null;\n\n var ref = this;\n var config = ref.config;\n\n if (config.autoConfigure) {\n this._autoConfigure(cfg);\n }\n\n if (config.syncUrlsWithBaseTag) {\n var baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\n emitter.on(Events.MOUNT, function () { return this$1.updateUrls('#', baseUrl); });\n }\n\n var handleLocationChange = this._handleLocationChange.bind(this);\n this._handleLocationChange = handleLocationChange;\n\n // Provide way to update sprite urls externally via dispatching custom window event\n if (config.listenLocationChangeEvent) {\n window.addEventListener(config.locationChangeEvent, handleLocationChange);\n }\n\n // Emit location change event in Angular automatically\n if (config.locationChangeAngularEmitter) {\n locationChangeAngularEmitter(config.locationChangeEvent);\n }\n\n if (config.moveGradientsOutsideSymbol) {\n emitter.on(Events.MOUNT, function (node) {\n moveGradientsOutsideSymbol(node);\n });\n }\n }\n\n if ( Sprite$$1 ) BrowserSprite.__proto__ = Sprite$$1;\n BrowserSprite.prototype = Object.create( Sprite$$1 && Sprite$$1.prototype );\n BrowserSprite.prototype.constructor = BrowserSprite;\n\n var prototypeAccessors = { isMounted: {} };\n\n /**\n * @return {boolean}\n */\n prototypeAccessors.isMounted.get = function () {\n return !!this.node;\n };\n\n /**\n * Automatically configure following options\n * - `syncUrlsWithBaseTag`\n * - `locationChangeAngularEmitter`\n * - `moveGradientsOutsideSymbol`\n * @param {Object} cfg\n * @private\n */\n BrowserSprite.prototype._autoConfigure = function _autoConfigure (cfg) {\n var ref = this;\n var config = ref.config;\n\n if (typeof cfg.syncUrlsWithBaseTag === 'undefined') {\n config.syncUrlsWithBaseTag = typeof document.getElementsByTagName('base')[0] !== 'undefined';\n }\n\n if (typeof cfg.locationChangeAngularEmitter === 'undefined') {\n config.locationChangeAngularEmitter = 'angular' in window;\n }\n\n if (typeof cfg.moveGradientsOutsideSymbol === 'undefined') {\n config.moveGradientsOutsideSymbol = browser.isFirefox;\n }\n };\n\n /**\n * @param {Event} event\n * @param {Object} event.detail\n * @param {string} event.detail.oldUrl\n * @param {string} event.detail.newUrl\n * @private\n */\n BrowserSprite.prototype._handleLocationChange = function _handleLocationChange (event) {\n var ref = event.detail;\n var oldUrl = ref.oldUrl;\n var newUrl = ref.newUrl;\n this.updateUrls(oldUrl, newUrl);\n };\n\n /**\n * Add new symbol. If symbol with the same id exists it will be replaced.\n * If sprite already mounted - `symbol.mount(sprite.node)` will be called.\n * @param {BrowserSpriteSymbol} symbol\n * @return {boolean} `true` - symbol was added, `false` - replaced\n */\n BrowserSprite.prototype.add = function add (symbol) {\n var isNewSymbol = Sprite$$1.prototype.add.call(this, symbol);\n\n if (this.isMounted && isNewSymbol) {\n symbol.mount(this.node);\n }\n\n return isNewSymbol;\n };\n\n BrowserSprite.prototype.destroy = function destroy () {\n var ref = this;\n var config = ref.config;\n var symbols = ref.symbols;\n var _emitter = ref._emitter;\n\n symbols.forEach(function (s) { return s.destroy(); });\n\n _emitter.off('*');\n window.removeEventListener(config.locationChangeEvent, this._handleLocationChange);\n\n if (this.isMounted) {\n this.unmount();\n }\n };\n\n /**\n * @param {Element|string} [target]\n * @param {boolean} [prepend=false]\n * @return {Element} rendered sprite node\n * @fires Events#MOUNT\n */\n BrowserSprite.prototype.mount = function mount (target, prepend) {\n if ( prepend === void 0 ) prepend = false;\n\n if (this.isMounted) {\n return this.node;\n }\n\n var mountTarget = target || this.config.mountTo;\n var parent = typeof mountTarget === 'string' ? document.querySelector(mountTarget) : mountTarget;\n var node = this.render();\n\n if (prepend && parent.childNodes[0]) {\n parent.insertBefore(node, parent.childNodes[0]);\n } else {\n parent.appendChild(node);\n }\n\n this.node = node;\n this._emitter.emit(Events.MOUNT, node);\n\n return node;\n };\n\n /**\n * @return {Element}\n */\n BrowserSprite.prototype.render = function render () {\n return parse(this.stringify());\n };\n\n /**\n * Detach sprite from the DOM\n */\n BrowserSprite.prototype.unmount = function unmount () {\n this.node.parentNode.removeChild(this.node);\n };\n\n /**\n * Update URLs in sprite and usage elements\n * @param {string} oldUrl\n * @param {string} newUrl\n * @return {boolean} `true` - URLs was updated, `false` - sprite is not mounted\n */\n BrowserSprite.prototype.updateUrls = function updateUrls$1 (oldUrl, newUrl) {\n if (!this.isMounted) {\n return false;\n }\n\n var usages = document.querySelectorAll(this.config.usagesToUpdate);\n\n updateUrls(\n this.node,\n usages,\n ((getUrlWithoutFragment(oldUrl)) + \"#\"),\n ((getUrlWithoutFragment(newUrl)) + \"#\")\n );\n\n return true;\n };\n\n Object.defineProperties( BrowserSprite.prototype, prototypeAccessors );\n\n return BrowserSprite;\n}(Sprite));\n\nvar ready$1 = createCommonjsModule(function (module) {\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n { module.exports = definition(); }\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n\n if (!loaded)\n { doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while (listener = fns.shift()) { listener(); }\n }); }\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n }\n\n});\n});\n\nvar sprite = new BrowserSprite();\n\nvar loadSprite = function () {\n var svg = sprite.mount(document.body, true);\n\n // :WORKAROUND:\n // IE doesn't evaluate ');\n }\n }\n\n // Build html markup and set references\n // ====================================\n\n // Build html code for buttons and insert into main template\n buttonStr = '';\n\n $.each(firstItemOpts.buttons, function (index, value) {\n buttonStr += firstItemOpts.btnTpl[value] || '';\n });\n\n // Create markup from base template, it will be initially hidden to\n // avoid unnecessary work like painting while initializing is not complete\n $container = $(self.translate(self, firstItemOpts.baseTpl.replace('\\{\\{BUTTONS\\}\\}', buttonStr))).addClass('fancybox-is-hidden').attr('id', 'fancybox-container-' + self.id).addClass(firstItemOpts.baseClass).data('FancyBox', self).prependTo(firstItemOpts.parentEl);\n\n // Create object holding references to jQuery wrapped nodes\n self.$refs = {\n container: $container\n };\n\n ['bg', 'inner', 'infobar', 'toolbar', 'stage', 'caption'].forEach(function (item) {\n self.$refs[item] = $container.find('.fancybox-' + item);\n });\n\n // Check for redundant elements\n if (!firstItemOpts.arrows || self.group.length < 2) {\n $container.find('.fancybox-navigation').remove();\n }\n\n if (!firstItemOpts.infobar) {\n self.$refs.infobar.remove();\n }\n\n if (!firstItemOpts.toolbar) {\n self.$refs.toolbar.remove();\n }\n\n self.trigger('onInit');\n\n // Bring to front and enable events\n self.activate();\n\n // Build slides, load and reveal content\n self.jumpTo(self.currIndex);\n },\n\n // Simple i18n support - replaces object keys found in template\n // with corresponding values\n // ============================================================\n\n translate: function translate(obj, str) {\n var arr = obj.opts.i18n[obj.opts.lang];\n\n return str.replace(/\\{\\{(\\w+)\\}\\}/g, function (match, n) {\n var value = arr[n];\n\n if (value === undefined) {\n return match;\n }\n\n return value;\n });\n },\n\n // Create array of gally item objects\n // Check if each object has valid type and content\n // ===============================================\n\n createGroup: function createGroup(content) {\n var self = this;\n var items = $.makeArray(content);\n\n $.each(items, function (i, item) {\n var obj = {},\n opts = {},\n data = [],\n $item,\n type,\n src,\n srcParts;\n\n // Step 1 - Make sure we have an object\n // ====================================\n\n if ($.isPlainObject(item)) {\n\n // We probably have manual usage here, something like\n // $.fancybox.open( [ { src : \"image.jpg\", type : \"image\" } ] )\n\n obj = item;\n opts = item.opts || item;\n } else if ($.type(item) === 'object' && $(item).length) {\n\n // Here we propbably have jQuery collection returned by some selector\n\n $item = $(item);\n data = $item.data();\n\n opts = 'options' in data ? data.options : {};\n opts = $.type(opts) === 'object' ? opts : {};\n\n obj.src = 'src' in data ? data.src : opts.src || $item.attr('href');\n\n ['width', 'height', 'thumb', 'type', 'filter'].forEach(function (item) {\n if (item in data) {\n opts[item] = data[item];\n }\n });\n\n if ('srcset' in data) {\n opts.image = { srcset: data.srcset };\n }\n\n opts.$orig = $item;\n\n if (!obj.type && !obj.src) {\n obj.type = 'inline';\n obj.src = item;\n }\n } else {\n\n // Assume we have a simple html code, for example:\n // $.fancybox.open( '

Hi!

' );\n\n obj = {\n type: 'html',\n src: item + ''\n };\n }\n\n // Each gallery object has full collection of options\n obj.opts = $.extend(true, {}, self.opts, opts);\n\n if ($.fancybox.isMobile) {\n obj.opts = $.extend(true, {}, obj.opts, obj.opts.mobile);\n }\n\n // Step 2 - Make sure we have content type, if not - try to guess\n // ==============================================================\n\n type = obj.type || obj.opts.type;\n src = obj.src || '';\n\n if (!type && src) {\n if (src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i)) {\n type = 'image';\n } else if (src.match(/\\.(pdf)((\\?|#).*)?$/i)) {\n type = 'pdf';\n } else if (src.charAt(0) === '#') {\n type = 'inline';\n }\n }\n\n obj.type = type;\n\n // Step 3 - Some adjustments\n // =========================\n\n obj.index = self.group.length;\n\n // Check if $orig and $thumb objects exist\n if (obj.opts.$orig && !obj.opts.$orig.length) {\n delete obj.opts.$orig;\n }\n\n if (!obj.opts.$thumb && obj.opts.$orig) {\n obj.opts.$thumb = obj.opts.$orig.find('img:first');\n }\n\n if (obj.opts.$thumb && !obj.opts.$thumb.length) {\n delete obj.opts.$thumb;\n }\n\n // Caption is a \"special\" option, it can be passed as a method\n if ($.type(obj.opts.caption) === 'function') {\n obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);\n } else if ('caption' in data) {\n obj.opts.caption = data.caption;\n }\n\n // Make sure we have caption as a string\n obj.opts.caption = obj.opts.caption === undefined ? '' : obj.opts.caption + '';\n\n // Check if url contains \"filter\" used to filter the content\n // Example: \"ajax.html #something\"\n if (type === 'ajax') {\n srcParts = src.split(/\\s+/, 2);\n\n if (srcParts.length > 1) {\n obj.src = srcParts.shift();\n\n obj.opts.filter = srcParts.shift();\n }\n }\n\n if (obj.opts.smallBtn == 'auto') {\n\n if ($.inArray(type, ['html', 'inline', 'ajax']) > -1) {\n obj.opts.toolbar = false;\n obj.opts.smallBtn = true;\n } else {\n obj.opts.smallBtn = false;\n }\n }\n\n // If the type is \"pdf\", then simply load file into iframe\n if (type === 'pdf') {\n obj.type = 'iframe';\n\n obj.opts.iframe.preload = false;\n }\n\n // Hide all buttons and disable interactivity for modal items\n if (obj.opts.modal) {\n\n obj.opts = $.extend(true, obj.opts, {\n // Remove buttons\n infobar: 0,\n toolbar: 0,\n\n smallBtn: 0,\n\n // Disable keyboard navigation\n keyboard: 0,\n\n // Disable some modules\n slideShow: 0,\n fullScreen: 0,\n thumbs: 0,\n touch: 0,\n\n // Disable click event handlers\n clickContent: false,\n clickSlide: false,\n clickOutside: false,\n dblclickContent: false,\n dblclickSlide: false,\n dblclickOutside: false\n });\n }\n\n // Step 4 - Add processed object to group\n // ======================================\n\n self.group.push(obj);\n });\n },\n\n // Attach an event handler functions for:\n // - navigation buttons\n // - browser scrolling, resizing;\n // - focusing\n // - keyboard\n // - detect idle\n // ======================================\n\n addEvents: function addEvents() {\n var self = this;\n\n self.removeEvents();\n\n // Make navigation elements clickable\n self.$refs.container.on('click.fb-close', '[data-fancybox-close]', function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n self.close(e);\n }).on('click.fb-prev touchend.fb-prev', '[data-fancybox-prev]', function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n self.previous();\n }).on('click.fb-next touchend.fb-next', '[data-fancybox-next]', function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n self.next();\n });\n\n // Handle page scrolling and browser resizing\n $W.on('orientationchange.fb resize.fb', function (e) {\n\n if (e && e.originalEvent && e.originalEvent.type === \"resize\") {\n\n requestAFrame(function () {\n self.update();\n });\n } else {\n\n self.$refs.stage.hide();\n\n setTimeout(function () {\n self.$refs.stage.show();\n\n self.update();\n }, 500);\n }\n });\n\n // Trap keyboard focus inside of the modal, so the user does not accidentally tab outside of the modal\n // (a.k.a. \"escaping the modal\")\n $D.on('focusin.fb', function (e) {\n var instance = $.fancybox ? $.fancybox.getInstance() : null;\n\n if (instance.isClosing || !instance.current || !instance.current.opts.trapFocus || $(e.target).hasClass('fancybox-container') || $(e.target).is(document)) {\n return;\n }\n\n if (instance && $(e.target).css('position') !== 'fixed' && !instance.$refs.container.has(e.target).length) {\n e.stopPropagation();\n\n instance.focus();\n\n // Sometimes page gets scrolled, set it back\n $W.scrollTop(self.scrollTop).scrollLeft(self.scrollLeft);\n }\n });\n\n // Enable keyboard navigation\n $D.on('keydown.fb', function (e) {\n var current = self.current,\n keycode = e.keyCode || e.which;\n\n if (!current || !current.opts.keyboard) {\n return;\n }\n\n if ($(e.target).is('input') || $(e.target).is('textarea')) {\n return;\n }\n\n // Backspace and Esc keys\n if (keycode === 8 || keycode === 27) {\n e.preventDefault();\n\n self.close(e);\n\n return;\n }\n\n // Left arrow and Up arrow\n if (keycode === 37 || keycode === 38) {\n e.preventDefault();\n\n self.previous();\n\n return;\n }\n\n // Righ arrow and Down arrow\n if (keycode === 39 || keycode === 40) {\n e.preventDefault();\n\n self.next();\n\n return;\n }\n\n self.trigger('afterKeydown', e, keycode);\n });\n\n // Hide controls after some inactivity period\n if (self.group[self.currIndex].opts.idleTime) {\n self.idleSecondsCounter = 0;\n\n $D.on('mousemove.fb-idle mouseenter.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle', function () {\n self.idleSecondsCounter = 0;\n\n if (self.isIdle) {\n self.showControls();\n }\n\n self.isIdle = false;\n });\n\n self.idleInterval = window.setInterval(function () {\n\n self.idleSecondsCounter++;\n\n if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime) {\n self.isIdle = true;\n self.idleSecondsCounter = 0;\n\n self.hideControls();\n }\n }, 1000);\n }\n },\n\n // Remove events added by the core\n // ===============================\n\n removeEvents: function removeEvents() {\n var self = this;\n\n $W.off('orientationchange.fb resize.fb');\n $D.off('focusin.fb keydown.fb .fb-idle');\n\n this.$refs.container.off('.fb-close .fb-prev .fb-next');\n\n if (self.idleInterval) {\n window.clearInterval(self.idleInterval);\n\n self.idleInterval = null;\n }\n },\n\n // Change to previous gallery item\n // ===============================\n\n previous: function previous(duration) {\n return this.jumpTo(this.currPos - 1, duration);\n },\n\n // Change to next gallery item\n // ===========================\n\n next: function next(duration) {\n return this.jumpTo(this.currPos + 1, duration);\n },\n\n // Switch to selected gallery item\n // ===============================\n\n jumpTo: function jumpTo(pos, duration, slide) {\n var self = this,\n firstRun,\n loop,\n current,\n previous,\n canvasWidth,\n currentPos,\n transitionProps;\n\n var groupLen = self.group.length;\n\n if (self.isSliding || self.isClosing || self.isAnimating && self.firstRun) {\n return;\n }\n\n pos = parseInt(pos, 10);\n loop = self.current ? self.current.opts.loop : self.opts.loop;\n\n if (!loop && (pos < 0 || pos >= groupLen)) {\n return false;\n }\n\n firstRun = self.firstRun = self.firstRun === null;\n\n if (groupLen < 2 && !firstRun && !!self.isSliding) {\n return;\n }\n\n previous = self.current;\n\n self.prevIndex = self.currIndex;\n self.prevPos = self.currPos;\n\n // Create slides\n current = self.createSlide(pos);\n\n if (groupLen > 1) {\n if (loop || current.index > 0) {\n self.createSlide(pos - 1);\n }\n\n if (loop || current.index < groupLen - 1) {\n self.createSlide(pos + 1);\n }\n }\n\n self.current = current;\n self.currIndex = current.index;\n self.currPos = current.pos;\n\n self.trigger('beforeShow', firstRun);\n\n self.updateControls();\n\n currentPos = $.fancybox.getTranslate(current.$slide);\n\n current.isMoved = (currentPos.left !== 0 || currentPos.top !== 0) && !current.$slide.hasClass('fancybox-animated');\n current.forcedDuration = undefined;\n\n if ($.isNumeric(duration)) {\n current.forcedDuration = duration;\n } else {\n duration = current.opts[firstRun ? 'animationDuration' : 'transitionDuration'];\n }\n\n duration = parseInt(duration, 10);\n\n // Fresh start - reveal container, current slide and start loading content\n if (firstRun) {\n\n if (current.opts.animationEffect && duration) {\n self.$refs.container.css('transition-duration', duration + 'ms');\n }\n\n self.$refs.container.removeClass('fancybox-is-hidden');\n\n forceRedraw(self.$refs.container);\n\n self.$refs.container.addClass('fancybox-is-open');\n\n // Make first slide visible (to display loading icon, if needed)\n current.$slide.addClass('fancybox-slide--current');\n\n self.loadSlide(current);\n\n self.preload();\n\n return;\n }\n\n // Clean up\n $.each(self.slides, function (index, slide) {\n $.fancybox.stop(slide.$slide);\n });\n\n // Make current that slide is visible even if content is still loading\n current.$slide.removeClass('fancybox-slide--next fancybox-slide--previous').addClass('fancybox-slide--current');\n\n // If slides have been dragged, animate them to correct position\n if (current.isMoved) {\n canvasWidth = Math.round(current.$slide.width());\n\n $.each(self.slides, function (index, slide) {\n var pos = slide.pos - current.pos;\n\n $.fancybox.animate(slide.$slide, {\n top: 0,\n left: pos * canvasWidth + pos * slide.opts.gutter\n }, duration, function () {\n\n slide.$slide.removeAttr('style').removeClass('fancybox-slide--next fancybox-slide--previous');\n\n if (slide.pos === self.currPos) {\n current.isMoved = false;\n\n self.complete();\n }\n });\n });\n } else {\n self.$refs.stage.children().removeAttr('style');\n }\n\n // Start transition that reveals current content\n // or wait when it will be loaded\n\n if (current.isLoaded) {\n self.revealContent(current);\n } else {\n self.loadSlide(current);\n }\n\n self.preload();\n\n if (previous.pos === current.pos) {\n return;\n }\n\n // Handle previous slide\n // =====================\n\n transitionProps = 'fancybox-slide--' + (previous.pos > current.pos ? 'next' : 'previous');\n\n previous.$slide.removeClass('fancybox-slide--complete fancybox-slide--current fancybox-slide--next fancybox-slide--previous');\n\n previous.isComplete = false;\n\n if (!duration || !current.isMoved && !current.opts.transitionEffect) {\n return;\n }\n\n if (current.isMoved) {\n previous.$slide.addClass(transitionProps);\n } else {\n\n transitionProps = 'fancybox-animated ' + transitionProps + ' fancybox-fx-' + current.opts.transitionEffect;\n\n $.fancybox.animate(previous.$slide, transitionProps, duration, function () {\n previous.$slide.removeClass(transitionProps).removeAttr('style');\n });\n }\n },\n\n // Create new \"slide\" element\n // These are gallery items that are actually added to DOM\n // =======================================================\n\n createSlide: function createSlide(pos) {\n\n var self = this;\n var $slide;\n var index;\n\n index = pos % self.group.length;\n index = index < 0 ? self.group.length + index : index;\n\n if (!self.slides[pos] && self.group[index]) {\n $slide = $('
').appendTo(self.$refs.stage);\n\n self.slides[pos] = $.extend(true, {}, self.group[index], {\n pos: pos,\n $slide: $slide,\n isLoaded: false\n });\n\n self.updateSlide(self.slides[pos]);\n }\n\n return self.slides[pos];\n },\n\n // Scale image to the actual size of the image\n // ===========================================\n\n scaleToActual: function scaleToActual(x, y, duration) {\n\n var self = this;\n\n var current = self.current;\n var $what = current.$content;\n\n var imgPos, posX, posY, scaleX, scaleY;\n\n var canvasWidth = parseInt(current.$slide.width(), 10);\n var canvasHeight = parseInt(current.$slide.height(), 10);\n\n var newImgWidth = current.width;\n var newImgHeight = current.height;\n\n if (!(current.type == 'image' && !current.hasError) || !$what || self.isAnimating) {\n return;\n }\n\n $.fancybox.stop($what);\n\n self.isAnimating = true;\n\n x = x === undefined ? canvasWidth * 0.5 : x;\n y = y === undefined ? canvasHeight * 0.5 : y;\n\n imgPos = $.fancybox.getTranslate($what);\n\n scaleX = newImgWidth / imgPos.width;\n scaleY = newImgHeight / imgPos.height;\n\n // Get center position for original image\n posX = canvasWidth * 0.5 - newImgWidth * 0.5;\n posY = canvasHeight * 0.5 - newImgHeight * 0.5;\n\n // Make sure image does not move away from edges\n if (newImgWidth > canvasWidth) {\n posX = imgPos.left * scaleX - (x * scaleX - x);\n\n if (posX > 0) {\n posX = 0;\n }\n\n if (posX < canvasWidth - newImgWidth) {\n posX = canvasWidth - newImgWidth;\n }\n }\n\n if (newImgHeight > canvasHeight) {\n posY = imgPos.top * scaleY - (y * scaleY - y);\n\n if (posY > 0) {\n posY = 0;\n }\n\n if (posY < canvasHeight - newImgHeight) {\n posY = canvasHeight - newImgHeight;\n }\n }\n\n self.updateCursor(newImgWidth, newImgHeight);\n\n $.fancybox.animate($what, {\n top: posY,\n left: posX,\n scaleX: scaleX,\n scaleY: scaleY\n }, duration || 330, function () {\n self.isAnimating = false;\n });\n\n // Stop slideshow\n if (self.SlideShow && self.SlideShow.isActive) {\n self.SlideShow.stop();\n }\n },\n\n // Scale image to fit inside parent element\n // ========================================\n\n scaleToFit: function scaleToFit(duration) {\n\n var self = this;\n\n var current = self.current;\n var $what = current.$content;\n var end;\n\n if (!(current.type == 'image' && !current.hasError) || !$what || self.isAnimating) {\n return;\n }\n\n $.fancybox.stop($what);\n\n self.isAnimating = true;\n\n end = self.getFitPos(current);\n\n self.updateCursor(end.width, end.height);\n\n $.fancybox.animate($what, {\n top: end.top,\n left: end.left,\n scaleX: end.width / $what.width(),\n scaleY: end.height / $what.height()\n }, duration || 330, function () {\n self.isAnimating = false;\n });\n },\n\n // Calculate image size to fit inside viewport\n // ===========================================\n\n getFitPos: function getFitPos(slide) {\n var self = this;\n var $what = slide.$content;\n\n var imgWidth = slide.width;\n var imgHeight = slide.height;\n\n var margin = slide.opts.margin;\n\n var canvasWidth, canvasHeight, minRatio, width, height;\n\n if (!$what || !$what.length || !imgWidth && !imgHeight) {\n return false;\n }\n\n // Convert \"margin to CSS style: [ top, right, bottom, left ]\n if ($.type(margin) === \"number\") {\n margin = [margin, margin];\n }\n\n if (margin.length == 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n\n if ($W.width() < 800) {\n margin = [0, 0, 0, 0];\n }\n\n // We can not use $slide width here, because it can have different diemensions while in transiton\n canvasWidth = parseInt(self.$refs.stage.width(), 10) - (margin[1] + margin[3]);\n canvasHeight = parseInt(self.$refs.stage.height(), 10) - (margin[0] + margin[2]);\n\n minRatio = Math.min(1, canvasWidth / imgWidth, canvasHeight / imgHeight);\n\n width = Math.floor(minRatio * imgWidth);\n height = Math.floor(minRatio * imgHeight);\n\n // Use floor rounding to make sure it really fits\n return {\n top: Math.floor((canvasHeight - height) * 0.5) + margin[0],\n left: Math.floor((canvasWidth - width) * 0.5) + margin[3],\n width: width,\n height: height\n };\n },\n\n // Update position and content of all slides\n // =========================================\n\n update: function update() {\n\n var self = this;\n\n $.each(self.slides, function (key, slide) {\n self.updateSlide(slide);\n });\n },\n\n // Update slide position and scale content to fit\n // ==============================================\n\n updateSlide: function updateSlide(slide) {\n\n var self = this;\n var $what = slide.$content;\n\n if ($what && (slide.width || slide.height)) {\n $.fancybox.stop($what);\n\n $.fancybox.setTranslate($what, self.getFitPos(slide));\n\n if (slide.pos === self.currPos) {\n self.updateCursor();\n }\n }\n\n slide.$slide.trigger('refresh');\n\n self.trigger('onUpdate', slide);\n },\n\n // Update cursor style depending if content can be zoomed\n // ======================================================\n\n updateCursor: function updateCursor(nextWidth, nextHeight) {\n\n var self = this;\n var isScaledDown;\n\n var $container = self.$refs.container.removeClass('fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-drag fancybox-can-zoomOut');\n\n if (!self.current || self.isClosing) {\n return;\n }\n\n if (self.isZoomable()) {\n\n $container.addClass('fancybox-is-zoomable');\n\n if (nextWidth !== undefined && nextHeight !== undefined) {\n isScaledDown = nextWidth < self.current.width && nextHeight < self.current.height;\n } else {\n isScaledDown = self.isScaledDown();\n }\n\n if (isScaledDown) {\n\n // If image is scaled down, then, obviously, it can be zoomed to full size\n $container.addClass('fancybox-can-zoomIn');\n } else {\n\n if (self.current.opts.touch) {\n\n // If image size ir largen than available available and touch module is not disable,\n // then user can do panning\n $container.addClass('fancybox-can-drag');\n } else {\n $container.addClass('fancybox-can-zoomOut');\n }\n }\n } else if (self.current.opts.touch) {\n $container.addClass('fancybox-can-drag');\n }\n },\n\n // Check if current slide is zoomable\n // ==================================\n\n isZoomable: function isZoomable() {\n\n var self = this;\n\n var current = self.current;\n var fitPos;\n\n if (!current || self.isClosing) {\n return;\n }\n\n // Assume that slide is zoomable if\n // - image is loaded successfuly\n // - click action is \"zoom\"\n // - actual size of the image is smaller than available area\n if (current.type === 'image' && current.isLoaded && !current.hasError && (current.opts.clickContent === 'zoom' || $.isFunction(current.opts.clickContent) && current.opts.clickContent(current) === \"zoom\")) {\n\n fitPos = self.getFitPos(current);\n\n if (current.width > fitPos.width || current.height > fitPos.height) {\n return true;\n }\n }\n\n return false;\n },\n\n // Check if current image dimensions are smaller than actual\n // =========================================================\n\n isScaledDown: function isScaledDown() {\n\n var self = this;\n\n var current = self.current;\n var $what = current.$content;\n\n var rez = false;\n\n if ($what) {\n rez = $.fancybox.getTranslate($what);\n rez = rez.width < current.width || rez.height < current.height;\n }\n\n return rez;\n },\n\n // Check if image dimensions exceed parent element\n // ===============================================\n\n canPan: function canPan() {\n\n var self = this;\n\n var current = self.current;\n var $what = current.$content;\n\n var rez = false;\n\n if ($what) {\n rez = self.getFitPos(current);\n rez = Math.abs($what.width() - rez.width) > 1 || Math.abs($what.height() - rez.height) > 1;\n }\n\n return rez;\n },\n\n // Load content into the slide\n // ===========================\n\n loadSlide: function loadSlide(slide) {\n\n var self = this,\n type,\n $slide;\n var ajaxLoad;\n\n if (slide.isLoading) {\n return;\n }\n\n if (slide.isLoaded) {\n return;\n }\n\n slide.isLoading = true;\n\n self.trigger('beforeLoad', slide);\n\n type = slide.type;\n $slide = slide.$slide;\n\n $slide.off('refresh').trigger('onReset').addClass('fancybox-slide--' + (type || 'unknown')).addClass(slide.opts.slideClass);\n\n // Create content depending on the type\n\n switch (type) {\n\n case 'image':\n\n self.setImage(slide);\n\n break;\n\n case 'iframe':\n\n self.setIframe(slide);\n\n break;\n\n case 'html':\n\n self.setContent(slide, slide.src || slide.content);\n\n break;\n\n case 'inline':\n\n if ($(slide.src).length) {\n self.setContent(slide, $(slide.src));\n } else {\n self.setError(slide);\n }\n\n break;\n\n case 'ajax':\n\n self.showLoading(slide);\n\n ajaxLoad = $.ajax($.extend({}, slide.opts.ajax.settings, {\n url: slide.src,\n success: function success(data, textStatus) {\n\n if (textStatus === 'success') {\n self.setContent(slide, data);\n }\n },\n error: function error(jqXHR, textStatus) {\n\n if (jqXHR && textStatus !== 'abort') {\n self.setError(slide);\n }\n }\n }));\n\n $slide.one('onReset', function () {\n ajaxLoad.abort();\n });\n\n break;\n\n default:\n\n self.setError(slide);\n\n break;\n\n }\n\n return true;\n },\n\n // Use thumbnail image, if possible\n // ================================\n\n setImage: function setImage(slide) {\n\n var self = this;\n var srcset = slide.opts.image.srcset;\n\n var found, temp, pxRatio, windowWidth;\n\n // If we have \"srcset\", then we need to find matching \"src\" value.\n // This is necessary, because when you set an src attribute, the browser will preload the image\n // before any javascript or even CSS is applied.\n if (srcset) {\n pxRatio = window.devicePixelRatio || 1;\n windowWidth = window.innerWidth * pxRatio;\n\n temp = srcset.split(',').map(function (el) {\n var ret = {};\n\n el.trim().split(/\\s+/).forEach(function (el, i) {\n var value = parseInt(el.substring(0, el.length - 1), 10);\n\n if (i === 0) {\n return ret.url = el;\n }\n\n if (value) {\n ret.value = value;\n ret.postfix = el[el.length - 1];\n }\n });\n\n return ret;\n });\n\n // Sort by value\n temp.sort(function (a, b) {\n return a.value - b.value;\n });\n\n // Ok, now we have an array of all srcset values\n for (var j = 0; j < temp.length; j++) {\n var el = temp[j];\n\n if (el.postfix === 'w' && el.value >= windowWidth || el.postfix === 'x' && el.value >= pxRatio) {\n found = el;\n break;\n }\n }\n\n // If not found, take the last one\n if (!found && temp.length) {\n found = temp[temp.length - 1];\n }\n\n if (found) {\n slide.src = found.url;\n\n // If we have default width/height values, we can calculate height for matching source\n if (slide.width && slide.height && found.postfix == 'w') {\n slide.height = slide.width / slide.height * found.value;\n slide.width = found.value;\n }\n }\n }\n\n // This will be wrapper containing both ghost and actual image\n slide.$content = $('
').addClass('fancybox-is-hidden').appendTo(slide.$slide);\n\n // If we have a thumbnail, we can display it while actual image is loading\n // Users will not stare at black screen and actual image will appear gradually\n if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && (slide.opts.thumb || slide.opts.$thumb)) {\n\n slide.width = slide.opts.width;\n slide.height = slide.opts.height;\n\n slide.$ghost = $('').one('error', function () {\n\n $(this).remove();\n\n slide.$ghost = null;\n\n self.setBigImage(slide);\n }).one('load', function () {\n\n self.afterLoad(slide);\n\n self.setBigImage(slide);\n }).addClass('fancybox-image').appendTo(slide.$content).attr('src', slide.opts.thumb || slide.opts.$thumb.attr('src'));\n } else {\n\n self.setBigImage(slide);\n }\n },\n\n // Create full-size image\n // ======================\n\n setBigImage: function setBigImage(slide) {\n var self = this;\n var $img = $('');\n\n slide.$image = $img.one('error', function () {\n\n self.setError(slide);\n }).one('load', function () {\n\n // Clear timeout that checks if loading icon needs to be displayed\n clearTimeout(slide.timouts);\n\n slide.timouts = null;\n\n if (self.isClosing) {\n return;\n }\n\n slide.width = this.naturalWidth;\n slide.height = this.naturalHeight;\n\n if (slide.opts.image.srcset) {\n $img.attr('sizes', '100vw').attr('srcset', slide.opts.image.srcset);\n }\n\n self.hideLoading(slide);\n\n if (slide.$ghost) {\n\n slide.timouts = setTimeout(function () {\n slide.timouts = null;\n\n slide.$ghost.hide();\n }, Math.min(300, Math.max(1000, slide.height / 1600)));\n } else {\n self.afterLoad(slide);\n }\n }).addClass('fancybox-image').attr('src', slide.src).appendTo(slide.$content);\n\n if ($img[0].complete) {\n $img.trigger('load');\n } else if ($img[0].error) {\n $img.trigger('error');\n } else {\n\n slide.timouts = setTimeout(function () {\n if (!$img[0].complete && !slide.hasError) {\n self.showLoading(slide);\n }\n }, 100);\n }\n },\n\n // Create iframe wrapper, iframe and bindings\n // ==========================================\n\n setIframe: function setIframe(slide) {\n var self = this,\n opts = slide.opts.iframe,\n $slide = slide.$slide,\n $iframe;\n\n slide.$content = $('
').css(opts.css).appendTo($slide);\n\n $iframe = $(opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime())).attr(opts.attr).appendTo(slide.$content);\n\n if (opts.preload) {\n\n self.showLoading(slide);\n\n // Unfortunately, it is not always possible to determine if iframe is successfully loaded\n // (due to browser security policy)\n\n $iframe.on('load.fb error.fb', function (e) {\n this.isReady = 1;\n\n slide.$slide.trigger('refresh');\n\n self.afterLoad(slide);\n });\n\n // Recalculate iframe content size\n // ===============================\n\n $slide.on('refresh.fb', function () {\n var $wrap = slide.$content,\n $contents,\n $body,\n scrollWidth,\n frameWidth,\n frameHeight;\n\n if ($iframe[0].isReady !== 1) {\n return;\n }\n\n // Check if content is accessible,\n // it will fail if frame is not with the same origin\n\n try {\n $contents = $iframe.contents();\n $body = $contents.find('body');\n } catch (ignore) {}\n\n // Calculate dimensions for the wrapper\n if ($body && $body.length && !(opts.css.width !== undefined && opts.css.height !== undefined)) {\n\n scrollWidth = $iframe[0].contentWindow.document.documentElement.scrollWidth;\n\n frameWidth = Math.ceil($body.outerWidth(true) + ($wrap.width() - scrollWidth));\n frameHeight = Math.ceil($body.outerHeight(true));\n\n // Resize wrapper to fit iframe content\n $wrap.css({\n 'width': opts.css.width === undefined ? frameWidth + ($wrap.outerWidth() - $wrap.innerWidth()) : opts.css.width,\n 'height': opts.css.height === undefined ? frameHeight + ($wrap.outerHeight() - $wrap.innerHeight()) : opts.css.height\n });\n }\n\n $wrap.removeClass('fancybox-is-hidden');\n });\n } else {\n\n this.afterLoad(slide);\n }\n\n $iframe.attr('src', slide.src);\n\n if (slide.opts.smallBtn === true) {\n slide.$content.prepend(self.translate(slide, slide.opts.btnTpl.smallBtn));\n }\n\n // Remove iframe if closing or changing gallery item\n $slide.one('onReset', function () {\n\n // This helps IE not to throw errors when closing\n try {\n\n $(this).find('iframe').hide().attr('src', '//about:blank');\n } catch (ignore) {}\n\n $(this).empty();\n\n slide.isLoaded = false;\n });\n },\n\n // Wrap and append content to the slide\n // ======================================\n\n setContent: function setContent(slide, content) {\n\n var self = this;\n\n if (self.isClosing) {\n return;\n }\n\n self.hideLoading(slide);\n\n slide.$slide.empty();\n\n if (isQuery(content) && content.parent().length) {\n\n // If content is a jQuery object, then it will be moved to the slide.\n // The placeholder is created so we will know where to put it back.\n // If user is navigating gallery fast, then the content might be already inside fancyBox\n // =====================================================================================\n\n // Make sure content is not already moved to fancyBox\n content.parent('.fancybox-slide--inline').trigger('onReset');\n\n // Create temporary element marking original place of the content\n slide.$placeholder = $('
').hide().insertAfter(content);\n\n // Make sure content is visible\n content.css('display', 'inline-block');\n } else if (!slide.hasError) {\n\n // If content is just a plain text, try to convert it to html\n if ($.type(content) === 'string') {\n content = $('
').append($.trim(content)).contents();\n\n // If we have text node, then add wrapping element to make vertical alignment work\n if (content[0].nodeType === 3) {\n content = $('
').html(content);\n }\n }\n\n // If \"filter\" option is provided, then filter content\n if (slide.opts.filter) {\n content = $('
').html(content).find(slide.opts.filter);\n }\n }\n\n slide.$slide.one('onReset', function () {\n\n // Put content back\n if (slide.$placeholder) {\n slide.$placeholder.after(content.hide()).remove();\n\n slide.$placeholder = null;\n }\n\n // Remove custom close button\n if (slide.$smallBtn) {\n slide.$smallBtn.remove();\n\n slide.$smallBtn = null;\n }\n\n // Remove content and mark slide as not loaded\n if (!slide.hasError) {\n $(this).empty();\n\n slide.isLoaded = false;\n }\n });\n\n slide.$content = $(content).appendTo(slide.$slide);\n\n if (slide.opts.smallBtn && !slide.$smallBtn) {\n slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);\n }\n\n this.afterLoad(slide);\n },\n\n // Display error message\n // =====================\n\n setError: function setError(slide) {\n\n slide.hasError = true;\n\n slide.$slide.removeClass('fancybox-slide--' + slide.type);\n\n this.setContent(slide, this.translate(slide, slide.opts.errorTpl));\n },\n\n // Show loading icon inside the slide\n // ==================================\n\n showLoading: function showLoading(slide) {\n\n var self = this;\n\n slide = slide || self.current;\n\n if (slide && !slide.$spinner) {\n slide.$spinner = $(self.opts.spinnerTpl).appendTo(slide.$slide);\n }\n },\n\n // Remove loading icon from the slide\n // ==================================\n\n hideLoading: function hideLoading(slide) {\n\n var self = this;\n\n slide = slide || self.current;\n\n if (slide && slide.$spinner) {\n slide.$spinner.remove();\n\n delete slide.$spinner;\n }\n },\n\n // Adjustments after slide content has been loaded\n // ===============================================\n\n afterLoad: function afterLoad(slide) {\n\n var self = this;\n\n if (self.isClosing) {\n return;\n }\n\n slide.isLoading = false;\n slide.isLoaded = true;\n\n self.trigger('afterLoad', slide);\n\n self.hideLoading(slide);\n\n if (slide.opts.protect && slide.$content && !slide.hasError) {\n\n // Disable right click\n slide.$content.on('contextmenu.fb', function (e) {\n if (e.button == 2) {\n e.preventDefault();\n }\n\n return true;\n });\n\n // Add fake element on top of the image\n // This makes a bit harder for user to select image\n if (slide.type === 'image') {\n $('
').appendTo(slide.$content);\n }\n }\n\n self.revealContent(slide);\n },\n\n // Make content visible\n // This method is called right after content has been loaded or\n // user navigates gallery and transition should start\n // ============================================================\n\n revealContent: function revealContent(slide) {\n\n var self = this;\n var $slide = slide.$slide;\n\n var effect,\n effectClassName,\n duration,\n opacity,\n end,\n start = false;\n\n effect = slide.opts[self.firstRun ? 'animationEffect' : 'transitionEffect'];\n duration = slide.opts[self.firstRun ? 'animationDuration' : 'transitionDuration'];\n\n duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);\n\n if (slide.isMoved || slide.pos !== self.currPos || !duration) {\n effect = false;\n }\n\n // Check if can zoom\n if (effect === 'zoom' && !(slide.pos === self.currPos && duration && slide.type === 'image' && !slide.hasError && (start = self.getThumbPos(slide)))) {\n effect = 'fade';\n }\n\n // Zoom animation\n // ==============\n\n if (effect === 'zoom') {\n end = self.getFitPos(slide);\n\n end.scaleX = Math.round(end.width / start.width * 100) / 100;\n end.scaleY = Math.round(end.height / start.height * 100) / 100;\n\n delete end.width;\n delete end.height;\n\n // Check if we need to animate opacity\n opacity = slide.opts.zoomOpacity;\n\n if (opacity == 'auto') {\n opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;\n }\n\n if (opacity) {\n start.opacity = 0.1;\n end.opacity = 1;\n }\n\n // Draw image at start position\n $.fancybox.setTranslate(slide.$content.removeClass('fancybox-is-hidden'), start);\n\n forceRedraw(slide.$content);\n\n // Start animation\n $.fancybox.animate(slide.$content, end, duration, function () {\n self.complete();\n });\n\n return;\n }\n\n self.updateSlide(slide);\n\n // Simply show content\n // ===================\n\n if (!effect) {\n forceRedraw($slide);\n\n slide.$content.removeClass('fancybox-is-hidden');\n\n if (slide.pos === self.currPos) {\n self.complete();\n }\n\n return;\n }\n\n $.fancybox.stop($slide);\n\n effectClassName = 'fancybox-animated fancybox-slide--' + (slide.pos > self.prevPos ? 'next' : 'previous') + ' fancybox-fx-' + effect;\n\n $slide.removeAttr('style').removeClass('fancybox-slide--current fancybox-slide--next fancybox-slide--previous').addClass(effectClassName);\n\n slide.$content.removeClass('fancybox-is-hidden');\n\n //Force reflow for CSS3 transitions\n forceRedraw($slide);\n\n $.fancybox.animate($slide, 'fancybox-slide--current', duration, function (e) {\n $slide.removeClass(effectClassName).removeAttr('style');\n\n if (slide.pos === self.currPos) {\n self.complete();\n }\n }, true);\n },\n\n // Check if we can and have to zoom from thumbnail\n //================================================\n\n getThumbPos: function getThumbPos(slide) {\n\n var self = this;\n var rez = false;\n\n // Check if element is inside the viewport by at least 1 pixel\n var isElementVisible = function isElementVisible($el) {\n var element = $el[0];\n\n var elementRect = element.getBoundingClientRect();\n var parentRects = [];\n\n var visibleInAllParents;\n\n while (element.parentElement !== null) {\n if ($(element.parentElement).css('overflow') === 'hidden' || $(element.parentElement).css('overflow') === 'auto') {\n parentRects.push(element.parentElement.getBoundingClientRect());\n }\n\n element = element.parentElement;\n }\n\n visibleInAllParents = parentRects.every(function (parentRect) {\n var visiblePixelX = Math.min(elementRect.right, parentRect.right) - Math.max(elementRect.left, parentRect.left);\n var visiblePixelY = Math.min(elementRect.bottom, parentRect.bottom) - Math.max(elementRect.top, parentRect.top);\n\n return visiblePixelX > 0 && visiblePixelY > 0;\n });\n\n return visibleInAllParents && elementRect.bottom > 0 && elementRect.right > 0 && elementRect.left < $(window).width() && elementRect.top < $(window).height();\n };\n\n var $thumb = slide.opts.$thumb;\n var thumbPos = $thumb ? $thumb.offset() : 0;\n var slidePos;\n\n if (thumbPos && $thumb[0].ownerDocument === document && isElementVisible($thumb)) {\n slidePos = self.$refs.stage.offset();\n\n rez = {\n top: thumbPos.top - slidePos.top + parseFloat($thumb.css(\"border-top-width\") || 0),\n left: thumbPos.left - slidePos.left + parseFloat($thumb.css(\"border-left-width\") || 0),\n width: $thumb.width(),\n height: $thumb.height(),\n scaleX: 1,\n scaleY: 1\n };\n }\n\n return rez;\n },\n\n // Final adjustments after current gallery item is moved to position\n // and it`s content is loaded\n // ==================================================================\n\n complete: function complete() {\n\n var self = this;\n\n var current = self.current;\n var slides = {};\n\n if (current.isMoved || !current.isLoaded || current.isComplete) {\n return;\n }\n\n current.isComplete = true;\n\n current.$slide.siblings().trigger('onReset');\n\n // Trigger any CSS3 transiton inside the slide\n forceRedraw(current.$slide);\n\n current.$slide.addClass('fancybox-slide--complete');\n\n // Remove unnecessary slides\n $.each(self.slides, function (key, slide) {\n if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {\n slides[slide.pos] = slide;\n } else if (slide) {\n\n $.fancybox.stop(slide.$slide);\n\n slide.$slide.unbind().remove();\n }\n });\n\n self.slides = slides;\n\n self.updateCursor();\n\n self.trigger('afterShow');\n\n // Try to focus on the first focusable element\n if ($(document.activeElement).is('[disabled]') || current.opts.autoFocus && !(current.type == 'image' || current.type === 'iframe')) {\n self.focus();\n }\n },\n\n // Preload next and previous slides\n // ================================\n\n preload: function preload() {\n var self = this;\n var next, prev;\n\n if (self.group.length < 2) {\n return;\n }\n\n next = self.slides[self.currPos + 1];\n prev = self.slides[self.currPos - 1];\n\n if (next && next.type === 'image') {\n self.loadSlide(next);\n }\n\n if (prev && prev.type === 'image') {\n self.loadSlide(prev);\n }\n },\n\n // Try to find and focus on the first focusable element\n // ====================================================\n\n focus: function focus() {\n var current = this.current;\n var $el;\n\n if (this.isClosing) {\n return;\n }\n\n // Skip for images and iframes\n $el = current && current.isComplete ? current.$slide.find('button,:input,[tabindex],a').filter(':not([disabled]):visible:first') : null;\n $el = $el && $el.length ? $el : this.$refs.container;\n\n $el.focus();\n },\n\n // Activates current instance - brings container to the front and enables keyboard,\n // notifies other instances about deactivating\n // =================================================================================\n\n activate: function activate() {\n var self = this;\n\n // Deactivate all instances\n $('.fancybox-container').each(function () {\n var instance = $(this).data('FancyBox');\n\n // Skip self and closing instances\n if (instance && instance.uid !== self.uid && !instance.isClosing) {\n instance.trigger('onDeactivate');\n }\n });\n\n if (self.current) {\n if (self.$refs.container.index() > 0) {\n self.$refs.container.prependTo(document.body);\n }\n\n self.updateControls();\n }\n\n self.trigger('onActivate');\n\n self.addEvents();\n },\n\n // Start closing procedure\n // This will start \"zoom-out\" animation if needed and clean everything up afterwards\n // =================================================================================\n\n close: function close(e, d) {\n\n var self = this;\n var current = self.current;\n\n var effect, duration;\n var $what, opacity, start, end;\n\n var done = function done() {\n self.cleanUp(e);\n };\n\n if (self.isClosing) {\n return false;\n }\n\n self.isClosing = true;\n\n // If beforeClose callback prevents closing, make sure content is centered\n if (self.trigger('beforeClose', e) === false) {\n self.isClosing = false;\n\n requestAFrame(function () {\n self.update();\n });\n\n return false;\n }\n\n // Remove all events\n // If there are multiple instances, they will be set again by \"activate\" method\n self.removeEvents();\n\n if (current.timouts) {\n clearTimeout(current.timouts);\n }\n\n $what = current.$content;\n effect = current.opts.animationEffect;\n duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;\n\n // Remove other slides\n current.$slide.off(transitionEnd).removeClass('fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated');\n\n current.$slide.siblings().trigger('onReset').remove();\n\n // Trigger animations\n if (duration) {\n self.$refs.container.removeClass('fancybox-is-open').addClass('fancybox-is-closing');\n }\n\n // Clean up\n self.hideLoading(current);\n\n self.hideControls();\n\n self.updateCursor();\n\n // Check if possible to zoom-out\n if (effect === 'zoom' && !(e !== true && $what && duration && current.type === 'image' && !current.hasError && (end = self.getThumbPos(current)))) {\n effect = 'fade';\n }\n\n if (effect === 'zoom') {\n $.fancybox.stop($what);\n\n start = $.fancybox.getTranslate($what);\n\n start.width = start.width * start.scaleX;\n start.height = start.height * start.scaleY;\n\n // Check if we need to animate opacity\n opacity = current.opts.zoomOpacity;\n\n if (opacity == 'auto') {\n opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;\n }\n\n if (opacity) {\n end.opacity = 0;\n }\n\n start.scaleX = start.width / end.width;\n start.scaleY = start.height / end.height;\n\n start.width = end.width;\n start.height = end.height;\n\n $.fancybox.setTranslate(current.$content, start);\n\n $.fancybox.animate(current.$content, end, duration, done);\n\n return true;\n }\n\n if (effect && duration) {\n\n // If skip animation\n if (e === true) {\n setTimeout(done, duration);\n } else {\n $.fancybox.animate(current.$slide.removeClass('fancybox-slide--current'), 'fancybox-animated fancybox-slide--previous fancybox-fx-' + effect, duration, done);\n }\n } else {\n done();\n }\n\n return true;\n },\n\n // Final adjustments after removing the instance\n // =============================================\n\n cleanUp: function cleanUp(e) {\n var self = this,\n instance;\n\n self.current.$slide.trigger('onReset');\n\n self.$refs.container.empty().remove();\n\n self.trigger('afterClose', e);\n\n // Place back focus\n if (self.$lastFocus && !!!self.current.focusBack) {\n self.$lastFocus.focus();\n }\n\n self.current = null;\n\n // Check if there are other instances\n instance = $.fancybox.getInstance();\n\n if (instance) {\n instance.activate();\n } else {\n\n $W.scrollTop(self.scrollTop).scrollLeft(self.scrollLeft);\n\n $('html').removeClass('fancybox-enabled');\n\n $('#fancybox-style-noscroll').remove();\n }\n },\n\n // Call callback and trigger an event\n // ==================================\n\n trigger: function trigger(name, slide) {\n var args = Array.prototype.slice.call(arguments, 1),\n self = this,\n obj = slide && slide.opts ? slide : self.current,\n rez;\n\n if (obj) {\n args.unshift(obj);\n } else {\n obj = self;\n }\n\n args.unshift(self);\n\n if ($.isFunction(obj.opts[name])) {\n rez = obj.opts[name].apply(obj, args);\n }\n\n if (rez === false) {\n return rez;\n }\n\n if (name === 'afterClose') {\n $D.trigger(name + '.fb', args);\n } else {\n self.$refs.container.trigger(name + '.fb', args);\n }\n },\n\n // Update infobar values, navigation button states and reveal caption\n // ==================================================================\n\n updateControls: function updateControls(force) {\n\n var self = this;\n\n var current = self.current;\n var index = current.index;\n var opts = current.opts;\n var caption = opts.caption;\n var $caption = self.$refs.caption;\n\n // Recalculate content dimensions\n current.$slide.trigger('refresh');\n\n self.$caption = caption && caption.length ? $caption.html(caption) : null;\n\n if (!self.isHiddenControls) {\n self.showControls();\n }\n\n // Update info and navigation elements\n $('[data-fancybox-count]').html(self.group.length);\n $('[data-fancybox-index]').html(index + 1);\n\n $('[data-fancybox-prev]').prop('disabled', !opts.loop && index <= 0);\n $('[data-fancybox-next]').prop('disabled', !opts.loop && index >= self.group.length - 1);\n },\n\n // Hide toolbar and caption\n // ========================\n\n hideControls: function hideControls() {\n\n this.isHiddenControls = true;\n\n this.$refs.container.removeClass('fancybox-show-infobar fancybox-show-toolbar fancybox-show-caption fancybox-show-nav');\n },\n\n showControls: function showControls() {\n\n var self = this;\n var opts = self.current ? self.current.opts : self.opts;\n var $container = self.$refs.container;\n\n self.isHiddenControls = false;\n self.idleSecondsCounter = 0;\n\n $container.toggleClass('fancybox-show-toolbar', !!(opts.toolbar && opts.buttons)).toggleClass('fancybox-show-infobar', !!(opts.infobar && self.group.length > 1)).toggleClass('fancybox-show-nav', !!(opts.arrows && self.group.length > 1)).toggleClass('fancybox-is-modal', !!opts.modal);\n\n if (self.$caption) {\n $container.addClass('fancybox-show-caption ');\n } else {\n $container.removeClass('fancybox-show-caption');\n }\n },\n\n // Toggle toolbar and caption\n // ==========================\n\n toggleControls: function toggleControls() {\n\n if (this.isHiddenControls) {\n this.showControls();\n } else {\n this.hideControls();\n }\n }\n\n });\n\n $.fancybox = {\n\n version: \"3.1.20\",\n defaults: defaults,\n\n // Get current instance and execute a command.\n //\n // Examples of usage:\n //\n // $instance = $.fancybox.getInstance();\n // $.fancybox.getInstance().jumpTo( 1 );\n // $.fancybox.getInstance( 'jumpTo', 1 );\n // $.fancybox.getInstance( function() {\n // console.info( this.currIndex );\n // });\n // ======================================================\n\n getInstance: function getInstance(command) {\n var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):first').data('FancyBox');\n var args = Array.prototype.slice.call(arguments, 1);\n\n if (instance instanceof FancyBox) {\n\n if ($.type(command) === 'string') {\n instance[command].apply(instance, args);\n } else if ($.type(command) === 'function') {\n command.apply(instance, args);\n }\n\n return instance;\n }\n\n return false;\n },\n\n // Create new instance\n // ===================\n\n open: function open(items, opts, index) {\n return new FancyBox(items, opts, index);\n },\n\n // Close current or all instances\n // ==============================\n\n close: function close(all) {\n var instance = this.getInstance();\n\n if (instance) {\n instance.close();\n\n // Try to find and close next instance\n\n if (all === true) {\n this.close();\n }\n }\n },\n\n // Close instances and unbind all events\n // ==============================\n\n destroy: function destroy() {\n\n this.close(true);\n\n $D.off('click.fb-start');\n },\n\n // Try to detect mobile devices\n // ============================\n\n isMobile: document.createTouch !== undefined && /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent),\n\n // Detect if 'translate3d' support is available\n // ============================================\n\n use3d: function () {\n var div = document.createElement('div');\n\n return window.getComputedStyle && window.getComputedStyle(div).getPropertyValue('transform') && !(document.documentMode && document.documentMode < 11);\n }(),\n\n // Helper function to get current visual state of an element\n // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\n // =====================================================================\n\n getTranslate: function getTranslate($el) {\n var matrix;\n\n if (!$el || !$el.length) {\n return false;\n }\n\n matrix = $el.eq(0).css('transform');\n\n if (matrix && matrix.indexOf('matrix') !== -1) {\n matrix = matrix.split('(')[1];\n matrix = matrix.split(')')[0];\n matrix = matrix.split(',');\n } else {\n matrix = [];\n }\n\n if (matrix.length) {\n\n // If IE\n if (matrix.length > 10) {\n matrix = [matrix[13], matrix[12], matrix[0], matrix[5]];\n } else {\n matrix = [matrix[5], matrix[4], matrix[0], matrix[3]];\n }\n\n matrix = matrix.map(parseFloat);\n } else {\n matrix = [0, 0, 1, 1];\n\n var transRegex = /\\.*translate\\((.*)px,(.*)px\\)/i;\n var transRez = transRegex.exec($el.eq(0).attr('style'));\n\n if (transRez) {\n matrix[0] = parseFloat(transRez[2]);\n matrix[1] = parseFloat(transRez[1]);\n }\n }\n\n return {\n top: matrix[0],\n left: matrix[1],\n scaleX: matrix[2],\n scaleY: matrix[3],\n opacity: parseFloat($el.css('opacity')),\n width: $el.width(),\n height: $el.height()\n };\n },\n\n // Shortcut for setting \"translate3d\" properties for element\n // Can set be used to set opacity, too\n // ========================================================\n\n setTranslate: function setTranslate($el, props) {\n var str = '';\n var css = {};\n\n if (!$el || !props) {\n return;\n }\n\n if (props.left !== undefined || props.top !== undefined) {\n str = (props.left === undefined ? $el.position().left : props.left) + 'px, ' + (props.top === undefined ? $el.position().top : props.top) + 'px';\n\n if (this.use3d) {\n str = 'translate3d(' + str + ', 0px)';\n } else {\n str = 'translate(' + str + ')';\n }\n }\n\n if (props.scaleX !== undefined && props.scaleY !== undefined) {\n str = (str.length ? str + ' ' : '') + 'scale(' + props.scaleX + ', ' + props.scaleY + ')';\n }\n\n if (str.length) {\n css.transform = str;\n }\n\n if (props.opacity !== undefined) {\n css.opacity = props.opacity;\n }\n\n if (props.width !== undefined) {\n css.width = props.width;\n }\n\n if (props.height !== undefined) {\n css.height = props.height;\n }\n\n return $el.css(css);\n },\n\n // Simple CSS transition handler\n // =============================\n\n animate: function animate($el, to, duration, callback, leaveAnimationName) {\n var event = transitionEnd || 'transitionend';\n\n if ($.isFunction(duration)) {\n callback = duration;\n duration = null;\n }\n\n if (!$.isPlainObject(to)) {\n $el.removeAttr('style');\n }\n\n $el.on(event, function (e) {\n\n // Skip events from child elements and z-index change\n if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == 'z-index')) {\n return;\n }\n\n $el.off(event);\n\n if ($.isPlainObject(to)) {\n\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\n $el.css('transition-duration', '0ms');\n\n to.width = $el.width() * to.scaleX;\n to.height = $el.height() * to.scaleY;\n\n to.scaleX = 1;\n to.scaleY = 1;\n\n $.fancybox.setTranslate($el, to);\n }\n } else if (leaveAnimationName !== true) {\n $el.removeClass(to);\n }\n\n if ($.isFunction(callback)) {\n callback(e);\n }\n });\n\n if ($.isNumeric(duration)) {\n $el.css('transition-duration', duration + 'ms');\n }\n\n if ($.isPlainObject(to)) {\n $.fancybox.setTranslate($el, to);\n } else {\n $el.addClass(to);\n }\n\n $el.data(\"timer\", setTimeout(function () {\n $el.trigger('transitionend');\n }, duration + 16));\n },\n\n stop: function stop($el) {\n clearTimeout($el.data(\"timer\"));\n\n $el.off(transitionEnd);\n }\n\n };\n\n // Default click handler for \"fancyboxed\" links\n // ============================================\n\n function _run(e) {\n var target = e.currentTarget,\n opts = e.data ? e.data.options : {},\n items = e.data ? e.data.items : [],\n value = $(target).attr('data-fancybox') || '',\n index = 0;\n\n e.preventDefault();\n e.stopPropagation();\n\n // Get all related items and find index for clicked one\n if (value) {\n items = items.length ? items.filter('[data-fancybox=\"' + value + '\"]') : $('[data-fancybox=\"' + value + '\"]');\n index = items.index(target);\n\n // Sometimes current item can not be found\n // (for example, when slider clones items)\n if (index < 0) {\n index = 0;\n }\n } else {\n items = [target];\n }\n\n $.fancybox.open(items, opts, index);\n }\n\n // Create a jQuery plugin\n // ======================\n\n $.fn.fancybox = function (options) {\n var selector;\n\n options = options || {};\n selector = options.selector || false;\n\n if (selector) {\n\n $('body').off('click.fb-start', selector).on('click.fb-start', selector, {\n items: $(selector),\n options: options\n }, _run);\n } else {\n\n this.off('click.fb-start').on('click.fb-start', {\n items: this,\n options: options\n }, _run);\n }\n\n return this;\n };\n\n // Self initializing plugin\n // ========================\n\n $D.on('click.fb-start', '[data-fancybox]', _run);\n})(window, document, _jquery2.default);\n\n// ==========================================================================\n//\n// Media\n// Adds additional media type support\n//\n// ==========================================================================\n;(function ($) {\n\n 'use strict';\n\n // Formats matching url to final form\n\n var format = function format(url, rez, params) {\n if (!url) {\n return;\n }\n\n params = params || '';\n\n if ($.type(params) === \"object\") {\n params = $.param(params, true);\n }\n\n $.each(rez, function (key, value) {\n url = url.replace('$' + key, value || '');\n });\n\n if (params.length) {\n url += (url.indexOf('?') > 0 ? '&' : '?') + params;\n }\n\n return url;\n };\n\n // Object containing properties for each media type\n\n var defaults = {\n youtube: {\n matcher: /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\n params: {\n autoplay: 1,\n autohide: 1,\n fs: 1,\n rel: 0,\n hd: 1,\n wmode: 'transparent',\n enablejsapi: 1,\n html5: 1\n },\n paramPlace: 8,\n type: 'iframe',\n url: '//www.youtube.com/embed/$4',\n thumb: '//img.youtube.com/vi/$4/hqdefault.jpg'\n },\n\n vimeo: {\n matcher: /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\n params: {\n autoplay: 1,\n hd: 1,\n show_title: 1,\n show_byline: 1,\n show_portrait: 0,\n fullscreen: 1,\n api: 1\n },\n paramPlace: 3,\n type: 'iframe',\n url: '//player.vimeo.com/video/$2'\n },\n\n metacafe: {\n matcher: /metacafe.com\\/watch\\/(\\d+)\\/(.*)?/,\n type: 'iframe',\n url: '//www.metacafe.com/embed/$1/?ap=1'\n },\n\n dailymotion: {\n matcher: /dailymotion.com\\/video\\/(.*)\\/?(.*)/,\n params: {\n additionalInfos: 0,\n autoStart: 1\n },\n type: 'iframe',\n url: '//www.dailymotion.com/embed/video/$1'\n },\n\n vine: {\n matcher: /vine.co\\/v\\/([a-zA-Z0-9\\?\\=\\-]+)/,\n type: 'iframe',\n url: '//vine.co/v/$1/embed/simple'\n },\n\n instagram: {\n matcher: /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\n type: 'image',\n url: '//$1/p/$2/media/?size=l'\n },\n\n // Examples:\n // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\n // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\n // https://www.google.lv/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\n google_maps: {\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\n type: 'iframe',\n url: function url(rez) {\n return '//maps.google.' + rez[2] + '/?ll=' + (rez[9] ? rez[9] + '&z=' + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\\//, \"&\") : '') : rez[12]) + '&output=' + (rez[12] && rez[12].indexOf('layer=c') > 0 ? 'svembed' : 'embed');\n }\n }\n };\n\n $(document).on('onInit.fb', function (e, instance) {\n\n $.each(instance.group, function (i, item) {\n\n var url = item.src || '',\n type = false,\n media,\n thumb,\n rez,\n params,\n urlParams,\n o,\n provider;\n\n // Skip items that already have content type\n if (item.type) {\n return;\n }\n\n media = $.extend(true, {}, defaults, item.opts.media);\n\n // Look for any matching media type\n $.each(media, function (n, el) {\n rez = url.match(el.matcher);\n o = {};\n provider = n;\n\n if (!rez) {\n return;\n }\n\n type = el.type;\n\n if (el.paramPlace && rez[el.paramPlace]) {\n urlParams = rez[el.paramPlace];\n\n if (urlParams[0] == '?') {\n urlParams = urlParams.substring(1);\n }\n\n urlParams = urlParams.split('&');\n\n for (var m = 0; m < urlParams.length; ++m) {\n var p = urlParams[m].split('=', 2);\n\n if (p.length == 2) {\n o[p[0]] = decodeURIComponent(p[1].replace(/\\+/g, \" \"));\n }\n }\n }\n\n params = $.extend(true, {}, el.params, item.opts[n], o);\n\n url = $.type(el.url) === \"function\" ? el.url.call(this, rez, params, item) : format(el.url, rez, params);\n thumb = $.type(el.thumb) === \"function\" ? el.thumb.call(this, rez, params, item) : format(el.thumb, rez);\n\n if (provider === 'vimeo') {\n url = url.replace('&%23', '#');\n }\n\n return false;\n });\n\n // If it is found, then change content type and update the url\n\n if (type) {\n item.src = url;\n item.type = type;\n\n if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {\n item.opts.thumb = thumb;\n }\n\n if (type === 'iframe') {\n $.extend(true, item.opts, {\n iframe: {\n preload: false,\n attr: {\n scrolling: \"no\"\n }\n }\n });\n\n item.contentProvider = provider;\n\n item.opts.slideClass += ' fancybox-slide--' + (provider == 'google_maps' ? 'map' : 'video');\n }\n } else {\n\n // If no content type is found, then set it to `image` as fallback\n item.type = 'image';\n }\n });\n });\n})(_jquery2.default);\n\n// ==========================================================================\n//\n// Guestures\n// Adds touch guestures, handles click and tap events\n//\n// ==========================================================================\n;(function (window, document, $) {\n 'use strict';\n\n var requestAFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame ||\n // if all else fails, use setTimeout\n function (callback) {\n return window.setTimeout(callback, 1000 / 60);\n };\n }();\n\n var cancelAFrame = function () {\n return window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || function (id) {\n window.clearTimeout(id);\n };\n }();\n\n var pointers = function pointers(e) {\n var result = [];\n\n e = e.originalEvent || e || window.e;\n e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];\n\n for (var key in e) {\n\n if (e[key].pageX) {\n result.push({ x: e[key].pageX, y: e[key].pageY });\n } else if (e[key].clientX) {\n result.push({ x: e[key].clientX, y: e[key].clientY });\n }\n }\n\n return result;\n };\n\n var distance = function distance(point2, point1, what) {\n if (!point1 || !point2) {\n return 0;\n }\n\n if (what === 'x') {\n return point2.x - point1.x;\n } else if (what === 'y') {\n return point2.y - point1.y;\n }\n\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n };\n\n var isClickable = function isClickable($el) {\n if ($el.is('a,button,input,select,textarea') || $.isFunction($el.get(0).onclick)) {\n return true;\n }\n\n // Check for attributes like data-fancybox-next or data-fancybox-close\n for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {\n if (atts[i].nodeName.substr(0, 14) === 'data-fancybox-') {\n return true;\n }\n }\n\n return false;\n };\n\n var hasScrollbars = function hasScrollbars(el) {\n var overflowY = window.getComputedStyle(el)['overflow-y'];\n var overflowX = window.getComputedStyle(el)['overflow-x'];\n\n var vertical = (overflowY === 'scroll' || overflowY === 'auto') && el.scrollHeight > el.clientHeight;\n var horizontal = (overflowX === 'scroll' || overflowX === 'auto') && el.scrollWidth > el.clientWidth;\n\n return vertical || horizontal;\n };\n\n var isScrollable = function isScrollable($el) {\n var rez = false;\n\n while (true) {\n rez = hasScrollbars($el.get(0));\n\n if (rez) {\n break;\n }\n\n $el = $el.parent();\n\n if (!$el.length || $el.hasClass('fancybox-stage') || $el.is('body')) {\n break;\n }\n }\n\n return rez;\n };\n\n var Guestures = function Guestures(instance) {\n var self = this;\n\n self.instance = instance;\n\n self.$bg = instance.$refs.bg;\n self.$stage = instance.$refs.stage;\n self.$container = instance.$refs.container;\n\n self.destroy();\n\n self.$container.on('touchstart.fb.touch mousedown.fb.touch', $.proxy(self, 'ontouchstart'));\n };\n\n Guestures.prototype.destroy = function () {\n this.$container.off('.fb.touch');\n };\n\n Guestures.prototype.ontouchstart = function (e) {\n var self = this;\n\n var $target = $(e.target);\n var instance = self.instance;\n var current = instance.current;\n var $content = current.$content;\n\n var isTouchDevice = e.type == 'touchstart';\n\n // Do not respond to both events\n if (isTouchDevice) {\n self.$container.off('mousedown.fb.touch');\n }\n\n // Ignore clicks while zooming or closing\n if (!current || self.instance.isAnimating || self.instance.isClosing) {\n e.stopPropagation();\n e.preventDefault();\n\n return;\n }\n\n // Ignore right click\n if (e.originalEvent && e.originalEvent.button == 2) {\n return;\n }\n\n // Ignore taping on links, buttons, input elements\n if (!$target.length || isClickable($target) || isClickable($target.parent())) {\n return;\n }\n\n // Ignore clicks on the scrollbar\n if (e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {\n return;\n }\n\n self.startPoints = pointers(e);\n\n // Prevent zooming if already swiping\n if (!self.startPoints || self.startPoints.length > 1 && instance.isSliding) {\n return;\n }\n\n self.$target = $target;\n self.$content = $content;\n self.canTap = true;\n\n $(document).off('.fb.touch');\n\n $(document).on(isTouchDevice ? 'touchend.fb.touch touchcancel.fb.touch' : 'mouseup.fb.touch mouseleave.fb.touch', $.proxy(self, \"ontouchend\"));\n $(document).on(isTouchDevice ? 'touchmove.fb.touch' : 'mousemove.fb.touch', $.proxy(self, \"ontouchmove\"));\n\n e.stopPropagation();\n\n if (!(instance.current.opts.touch || instance.canPan()) || !($target.is(self.$stage) || self.$stage.find($target).length)) {\n\n // Prevent ghosting\n if ($target.is('img')) {\n e.preventDefault();\n }\n\n return;\n }\n\n if (!($.fancybox.isMobile && (isScrollable(self.$target) || isScrollable(self.$target.parent())))) {\n e.preventDefault();\n }\n\n self.canvasWidth = Math.round(current.$slide[0].clientWidth);\n self.canvasHeight = Math.round(current.$slide[0].clientHeight);\n\n self.startTime = new Date().getTime();\n self.distanceX = self.distanceY = self.distance = 0;\n\n self.isPanning = false;\n self.isSwiping = false;\n self.isZooming = false;\n\n self.sliderStartPos = self.sliderLastPos || { top: 0, left: 0 };\n self.contentStartPos = $.fancybox.getTranslate(self.$content);\n self.contentLastPos = null;\n\n if (self.startPoints.length === 1 && !self.isZooming) {\n self.canTap = !instance.isSliding;\n\n if (current.type === 'image' && (self.contentStartPos.width > self.canvasWidth + 1 || self.contentStartPos.height > self.canvasHeight + 1)) {\n\n $.fancybox.stop(self.$content);\n\n self.$content.css('transition-duration', '0ms');\n\n self.isPanning = true;\n } else {\n\n self.isSwiping = true;\n }\n\n self.$container.addClass('fancybox-controls--isGrabbing');\n }\n\n if (self.startPoints.length === 2 && !instance.isAnimating && !current.hasError && current.type === 'image' && (current.isLoaded || current.$ghost)) {\n self.isZooming = true;\n\n self.isSwiping = false;\n self.isPanning = false;\n\n $.fancybox.stop(self.$content);\n\n self.$content.css('transition-duration', '0ms');\n\n self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();\n self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();\n\n self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;\n self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;\n\n self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);\n }\n };\n\n Guestures.prototype.ontouchmove = function (e) {\n\n var self = this;\n\n self.newPoints = pointers(e);\n\n if ($.fancybox.isMobile && (isScrollable(self.$target) || isScrollable(self.$target.parent()))) {\n e.stopPropagation();\n\n self.canTap = false;\n\n return;\n }\n\n if (!(self.instance.current.opts.touch || self.instance.canPan()) || !self.newPoints || !self.newPoints.length) {\n return;\n }\n\n self.distanceX = distance(self.newPoints[0], self.startPoints[0], 'x');\n self.distanceY = distance(self.newPoints[0], self.startPoints[0], 'y');\n\n self.distance = distance(self.newPoints[0], self.startPoints[0]);\n\n // Skip false ontouchmove events (Chrome)\n if (self.distance > 0) {\n\n if (!(self.$target.is(self.$stage) || self.$stage.find(self.$target).length)) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n if (self.isSwiping) {\n self.onSwipe();\n } else if (self.isPanning) {\n self.onPan();\n } else if (self.isZooming) {\n self.onZoom();\n }\n }\n };\n\n Guestures.prototype.onSwipe = function () {\n\n var self = this;\n\n var swiping = self.isSwiping;\n var left = self.sliderStartPos.left || 0;\n var angle;\n\n if (swiping === true) {\n\n if (Math.abs(self.distance) > 10) {\n\n self.canTap = false;\n\n if (self.instance.group.length < 2 && self.instance.opts.touch.vertical) {\n self.isSwiping = 'y';\n } else if (self.instance.isSliding || self.instance.opts.touch.vertical === false || self.instance.opts.touch.vertical === 'auto' && $(window).width() > 800) {\n self.isSwiping = 'x';\n } else {\n angle = Math.abs(Math.atan2(self.distanceY, self.distanceX) * 180 / Math.PI);\n\n self.isSwiping = angle > 45 && angle < 135 ? 'y' : 'x';\n }\n\n self.instance.isSliding = self.isSwiping;\n\n // Reset points to avoid jumping, because we dropped first swipes to calculate the angle\n self.startPoints = self.newPoints;\n\n $.each(self.instance.slides, function (index, slide) {\n $.fancybox.stop(slide.$slide);\n\n slide.$slide.css('transition-duration', '0ms');\n\n slide.inTransition = false;\n\n if (slide.pos === self.instance.current.pos) {\n self.sliderStartPos.left = $.fancybox.getTranslate(slide.$slide).left;\n }\n });\n\n //self.instance.current.isMoved = true;\n\n // Stop slideshow\n if (self.instance.SlideShow && self.instance.SlideShow.isActive) {\n self.instance.SlideShow.stop();\n }\n }\n } else {\n\n if (swiping == 'x') {\n\n // Sticky edges\n if (self.distanceX > 0 && (self.instance.group.length < 2 || self.instance.current.index === 0 && !self.instance.current.opts.loop)) {\n left = left + Math.pow(self.distanceX, 0.8);\n } else if (self.distanceX < 0 && (self.instance.group.length < 2 || self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop)) {\n left = left - Math.pow(-self.distanceX, 0.8);\n } else {\n left = left + self.distanceX;\n }\n }\n\n self.sliderLastPos = {\n top: swiping == 'x' ? 0 : self.sliderStartPos.top + self.distanceY,\n left: left\n };\n\n if (self.requestId) {\n cancelAFrame(self.requestId);\n\n self.requestId = null;\n }\n\n self.requestId = requestAFrame(function () {\n\n if (self.sliderLastPos) {\n $.each(self.instance.slides, function (index, slide) {\n var pos = slide.pos - self.instance.currPos;\n\n $.fancybox.setTranslate(slide.$slide, {\n top: self.sliderLastPos.top,\n left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter\n });\n });\n\n self.$container.addClass('fancybox-is-sliding');\n }\n });\n }\n };\n\n Guestures.prototype.onPan = function () {\n\n var self = this;\n\n var newOffsetX, newOffsetY, newPos;\n\n self.canTap = false;\n\n if (self.contentStartPos.width > self.canvasWidth) {\n newOffsetX = self.contentStartPos.left + self.distanceX;\n } else {\n newOffsetX = self.contentStartPos.left;\n }\n\n newOffsetY = self.contentStartPos.top + self.distanceY;\n\n newPos = self.limitMovement(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);\n\n newPos.scaleX = self.contentStartPos.scaleX;\n newPos.scaleY = self.contentStartPos.scaleY;\n\n self.contentLastPos = newPos;\n\n if (self.requestId) {\n cancelAFrame(self.requestId);\n\n self.requestId = null;\n }\n\n self.requestId = requestAFrame(function () {\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\n });\n };\n\n // Make panning sticky to the edges\n Guestures.prototype.limitMovement = function (newOffsetX, newOffsetY, newWidth, newHeight) {\n\n var self = this;\n\n var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY;\n\n var canvasWidth = self.canvasWidth;\n var canvasHeight = self.canvasHeight;\n\n var currentOffsetX = self.contentStartPos.left;\n var currentOffsetY = self.contentStartPos.top;\n\n var distanceX = self.distanceX;\n var distanceY = self.distanceY;\n\n // Slow down proportionally to traveled distance\n\n minTranslateX = Math.max(0, canvasWidth * 0.5 - newWidth * 0.5);\n minTranslateY = Math.max(0, canvasHeight * 0.5 - newHeight * 0.5);\n\n maxTranslateX = Math.min(canvasWidth - newWidth, canvasWidth * 0.5 - newWidth * 0.5);\n maxTranslateY = Math.min(canvasHeight - newHeight, canvasHeight * 0.5 - newHeight * 0.5);\n\n if (newWidth > canvasWidth) {\n\n // ->\n if (distanceX > 0 && newOffsetX > minTranslateX) {\n newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;\n }\n\n // <-\n if (distanceX < 0 && newOffsetX < maxTranslateX) {\n newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;\n }\n }\n\n if (newHeight > canvasHeight) {\n\n // \\/\n if (distanceY > 0 && newOffsetY > minTranslateY) {\n newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;\n }\n\n // /\\\n if (distanceY < 0 && newOffsetY < maxTranslateY) {\n newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;\n }\n }\n\n return {\n top: newOffsetY,\n left: newOffsetX\n };\n };\n\n Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) {\n\n var self = this;\n\n var canvasWidth = self.canvasWidth;\n var canvasHeight = self.canvasHeight;\n\n if (newWidth > canvasWidth) {\n newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\n newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\n } else {\n\n // Center horizontally\n newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);\n }\n\n if (newHeight > canvasHeight) {\n newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\n newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\n } else {\n\n // Center vertically\n newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);\n }\n\n return {\n top: newOffsetY,\n left: newOffsetX\n };\n };\n\n Guestures.prototype.onZoom = function () {\n\n var self = this;\n\n // Calculate current distance between points to get pinch ratio and new width and height\n\n var currentWidth = self.contentStartPos.width;\n var currentHeight = self.contentStartPos.height;\n\n var currentOffsetX = self.contentStartPos.left;\n var currentOffsetY = self.contentStartPos.top;\n\n var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);\n\n var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\n\n var newWidth = Math.floor(currentWidth * pinchRatio);\n var newHeight = Math.floor(currentHeight * pinchRatio);\n\n // This is the translation due to pinch-zooming\n var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\n var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\n\n //Point between the two touches\n\n var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();\n var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();\n\n // And this is the translation due to translation of the centerpoint\n // between the two fingers\n\n var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\n var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\n\n // The new offset is the old/current one plus the total translation\n\n var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);\n var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);\n\n var newPos = {\n top: newOffsetY,\n left: newOffsetX,\n scaleX: self.contentStartPos.scaleX * pinchRatio,\n scaleY: self.contentStartPos.scaleY * pinchRatio\n };\n\n self.canTap = false;\n\n self.newWidth = newWidth;\n self.newHeight = newHeight;\n\n self.contentLastPos = newPos;\n\n if (self.requestId) {\n cancelAFrame(self.requestId);\n\n self.requestId = null;\n }\n\n self.requestId = requestAFrame(function () {\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\n });\n };\n\n Guestures.prototype.ontouchend = function (e) {\n\n var self = this;\n var dMs = Math.max(new Date().getTime() - self.startTime, 1);\n\n var swiping = self.isSwiping;\n var panning = self.isPanning;\n var zooming = self.isZooming;\n\n self.endPoints = pointers(e);\n\n self.$container.removeClass('fancybox-controls--isGrabbing');\n\n $(document).off('.fb.touch');\n\n if (self.requestId) {\n cancelAFrame(self.requestId);\n\n self.requestId = null;\n }\n\n self.isSwiping = false;\n self.isPanning = false;\n self.isZooming = false;\n\n if (self.canTap) {\n return self.onTap(e);\n }\n\n self.speed = 366;\n\n // Speed in px/ms\n self.velocityX = self.distanceX / dMs * 0.5;\n self.velocityY = self.distanceY / dMs * 0.5;\n\n self.speedX = Math.max(self.speed * 0.5, Math.min(self.speed * 1.5, 1 / Math.abs(self.velocityX) * self.speed));\n\n if (panning) {\n self.endPanning();\n } else if (zooming) {\n self.endZooming();\n } else {\n self.endSwiping(swiping);\n }\n\n return;\n };\n\n Guestures.prototype.endSwiping = function (swiping) {\n\n var self = this;\n var ret = false;\n\n self.instance.isSliding = false;\n self.sliderLastPos = null;\n\n // Close if swiped vertically / navigate if horizontally\n if (swiping == 'y' && Math.abs(self.distanceY) > 50) {\n\n // Continue vertical movement\n $.fancybox.animate(self.instance.current.$slide, {\n top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,\n opacity: 0\n }, 150);\n\n ret = self.instance.close(true, 300);\n } else if (swiping == 'x' && self.distanceX > 50 && self.instance.group.length > 1) {\n ret = self.instance.previous(self.speedX);\n } else if (swiping == 'x' && self.distanceX < -50 && self.instance.group.length > 1) {\n ret = self.instance.next(self.speedX);\n }\n\n if (ret === false && (swiping == 'x' || swiping == 'y')) {\n self.instance.jumpTo(self.instance.current.index, 150);\n }\n\n self.$container.removeClass('fancybox-is-sliding');\n };\n\n // Limit panning from edges\n // ========================\n\n Guestures.prototype.endPanning = function () {\n\n var self = this;\n var newOffsetX, newOffsetY, newPos;\n\n if (!self.contentLastPos) {\n return;\n }\n\n if (self.instance.current.opts.touch.momentum === false) {\n newOffsetX = self.contentLastPos.left;\n newOffsetY = self.contentLastPos.top;\n } else {\n\n // Continue movement\n newOffsetX = self.contentLastPos.left + self.velocityX * self.speed;\n newOffsetY = self.contentLastPos.top + self.velocityY * self.speed;\n }\n\n newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);\n\n newPos.width = self.contentStartPos.width;\n newPos.height = self.contentStartPos.height;\n\n $.fancybox.animate(self.$content, newPos, 330);\n };\n\n Guestures.prototype.endZooming = function () {\n\n var self = this;\n\n var current = self.instance.current;\n\n var newOffsetX, newOffsetY, newPos, reset;\n\n var newWidth = self.newWidth;\n var newHeight = self.newHeight;\n\n if (!self.contentLastPos) {\n return;\n }\n\n newOffsetX = self.contentLastPos.left;\n newOffsetY = self.contentLastPos.top;\n\n reset = {\n top: newOffsetY,\n left: newOffsetX,\n width: newWidth,\n height: newHeight,\n scaleX: 1,\n scaleY: 1\n };\n\n // Reset scalex/scaleY values; this helps for perfomance and does not break animation\n $.fancybox.setTranslate(self.$content, reset);\n\n if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {\n self.instance.scaleToFit(150);\n } else if (newWidth > current.width || newHeight > current.height) {\n self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);\n } else {\n\n newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);\n\n // Switch from scale() to width/height or animation will not work correctly\n $.fancybox.setTranslate(self.content, $.fancybox.getTranslate(self.$content));\n\n $.fancybox.animate(self.$content, newPos, 150);\n }\n };\n\n Guestures.prototype.onTap = function (e) {\n var self = this;\n var $target = $(e.target);\n\n var instance = self.instance;\n var current = instance.current;\n\n var endPoints = e && pointers(e) || self.startPoints;\n\n var tapX = endPoints[0] ? endPoints[0].x - self.$stage.offset().left : 0;\n var tapY = endPoints[0] ? endPoints[0].y - self.$stage.offset().top : 0;\n\n var where;\n\n var process = function process(prefix) {\n\n var action = current.opts[prefix];\n\n if ($.isFunction(action)) {\n action = action.apply(instance, [current, e]);\n }\n\n if (!action) {\n return;\n }\n\n switch (action) {\n\n case \"close\":\n\n instance.close(self.startEvent);\n\n break;\n\n case \"toggleControls\":\n\n instance.toggleControls(true);\n\n break;\n\n case \"next\":\n\n instance.next();\n\n break;\n\n case \"nextOrClose\":\n\n if (instance.group.length > 1) {\n instance.next();\n } else {\n instance.close(self.startEvent);\n }\n\n break;\n\n case \"zoom\":\n\n if (current.type == 'image' && (current.isLoaded || current.$ghost)) {\n\n if (instance.canPan()) {\n instance.scaleToFit();\n } else if (instance.isScaledDown()) {\n instance.scaleToActual(tapX, tapY);\n } else if (instance.group.length < 2) {\n instance.close(self.startEvent);\n }\n }\n\n break;\n }\n };\n\n // Ignore right click\n if (e.originalEvent && e.originalEvent.button == 2) {\n return;\n }\n\n // Skip if current slide is not in the center\n if (instance.isSliding) {\n return;\n }\n\n // Skip if clicked on the scrollbar\n if (tapX > $target[0].clientWidth + $target.offset().left) {\n return;\n }\n\n // Check where is clicked\n if ($target.is('.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container')) {\n where = 'Outside';\n } else if ($target.is('.fancybox-slide')) {\n where = 'Slide';\n } else if (instance.current.$content && instance.current.$content.has(e.target).length) {\n where = 'Content';\n } else {\n return;\n }\n\n // Check if this is a double tap\n if (self.tapped) {\n\n // Stop previously created single tap\n clearTimeout(self.tapped);\n self.tapped = null;\n\n // Skip if distance between taps is too big\n if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50 || instance.isSliding) {\n return this;\n }\n\n // OK, now we assume that this is a double-tap\n process('dblclick' + where);\n } else {\n\n // Single tap will be processed if user has not clicked second time within 300ms\n // or there is no need to wait for double-tap\n self.tapX = tapX;\n self.tapY = tapY;\n\n if (current.opts['dblclick' + where] && current.opts['dblclick' + where] !== current.opts['click' + where]) {\n self.tapped = setTimeout(function () {\n self.tapped = null;\n\n process('click' + where);\n }, 300);\n } else {\n process('click' + where);\n }\n }\n\n return this;\n };\n\n $(document).on('onActivate.fb', function (e, instance) {\n if (instance && !instance.Guestures) {\n instance.Guestures = new Guestures(instance);\n }\n });\n\n $(document).on('beforeClose.fb', function (e, instance) {\n if (instance && instance.Guestures) {\n instance.Guestures.destroy();\n }\n });\n})(window, document, _jquery2.default);\n\n// ==========================================================================\n//\n// SlideShow\n// Enables slideshow functionality\n//\n// Example of usage:\n// $.fancybox.getInstance().SlideShow.start()\n//\n// ==========================================================================\n;(function (document, $) {\n 'use strict';\n\n var SlideShow = function SlideShow(instance) {\n this.instance = instance;\n this.init();\n };\n\n $.extend(SlideShow.prototype, {\n timer: null,\n isActive: false,\n $button: null,\n speed: 3000,\n\n init: function init() {\n var self = this;\n\n self.$button = self.instance.$refs.toolbar.find('[data-fancybox-play]').on('click', function () {\n self.toggle();\n });\n\n if (self.instance.group.length < 2 || !self.instance.group[self.instance.currIndex].opts.slideShow) {\n self.$button.hide();\n }\n },\n\n set: function set() {\n var self = this;\n\n // Check if reached last element\n if (self.instance && self.instance.current && (self.instance.current.opts.loop || self.instance.currIndex < self.instance.group.length - 1)) {\n self.timer = setTimeout(function () {\n self.instance.next();\n }, self.instance.current.opts.slideShow.speed || self.speed);\n } else {\n self.stop();\n self.instance.idleSecondsCounter = 0;\n self.instance.showControls();\n }\n },\n\n clear: function clear() {\n var self = this;\n\n clearTimeout(self.timer);\n\n self.timer = null;\n },\n\n start: function start() {\n var self = this;\n var current = self.instance.current;\n\n if (self.instance && current && (current.opts.loop || current.index < self.instance.group.length - 1)) {\n\n self.isActive = true;\n\n self.$button.attr('title', current.opts.i18n[current.opts.lang].PLAY_STOP).addClass('fancybox-button--pause');\n\n if (current.isComplete) {\n self.set();\n }\n }\n },\n\n stop: function stop() {\n var self = this;\n var current = self.instance.current;\n\n self.clear();\n\n self.$button.attr('title', current.opts.i18n[current.opts.lang].PLAY_START).removeClass('fancybox-button--pause');\n\n self.isActive = false;\n },\n\n toggle: function toggle() {\n var self = this;\n\n if (self.isActive) {\n self.stop();\n } else {\n self.start();\n }\n }\n\n });\n\n $(document).on({\n 'onInit.fb': function onInitFb(e, instance) {\n if (instance && !instance.SlideShow) {\n instance.SlideShow = new SlideShow(instance);\n }\n },\n\n 'beforeShow.fb': function beforeShowFb(e, instance, current, firstRun) {\n var SlideShow = instance && instance.SlideShow;\n\n if (firstRun) {\n\n if (SlideShow && current.opts.slideShow.autoStart) {\n SlideShow.start();\n }\n } else if (SlideShow && SlideShow.isActive) {\n SlideShow.clear();\n }\n },\n\n 'afterShow.fb': function afterShowFb(e, instance, current) {\n var SlideShow = instance && instance.SlideShow;\n\n if (SlideShow && SlideShow.isActive) {\n SlideShow.set();\n }\n },\n\n 'afterKeydown.fb': function afterKeydownFb(e, instance, current, keypress, keycode) {\n var SlideShow = instance && instance.SlideShow;\n\n // \"P\" or Spacebar\n if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is('button,a,input')) {\n keypress.preventDefault();\n\n SlideShow.toggle();\n }\n },\n\n 'beforeClose.fb onDeactivate.fb': function beforeCloseFbOnDeactivateFb(e, instance) {\n var SlideShow = instance && instance.SlideShow;\n\n if (SlideShow) {\n SlideShow.stop();\n }\n }\n });\n\n // Page Visibility API to pause slideshow when window is not active\n $(document).on(\"visibilitychange\", function () {\n var instance = $.fancybox.getInstance();\n var SlideShow = instance && instance.SlideShow;\n\n if (SlideShow && SlideShow.isActive) {\n if (document.hidden) {\n SlideShow.clear();\n } else {\n SlideShow.set();\n }\n }\n });\n})(document, _jquery2.default);\n\n// ==========================================================================\n//\n// FullScreen\n// Adds fullscreen functionality\n//\n// ==========================================================================\n;(function (document, $) {\n 'use strict';\n\n // Collection of methods supported by user browser\n\n var fn = function () {\n\n var fnMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'],\n // new WebKit\n ['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'],\n // old WebKit (Safari 5.1)\n ['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'], ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'], ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];\n\n var val;\n var ret = {};\n var i, j;\n\n for (i = 0; i < fnMap.length; i++) {\n val = fnMap[i];\n\n if (val && val[1] in document) {\n for (j = 0; j < val.length; j++) {\n ret[fnMap[0][j]] = val[j];\n }\n\n return ret;\n }\n }\n\n return false;\n }();\n\n // If browser does not have Full Screen API, then simply unset default button template and stop\n if (!fn) {\n $.fancybox.defaults.btnTpl.fullScreen = false;\n\n return;\n }\n\n var FullScreen = {\n request: function request(elem) {\n\n elem = elem || document.documentElement;\n\n elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);\n },\n exit: function exit() {\n\n document[fn.exitFullscreen]();\n },\n toggle: function toggle(elem) {\n\n elem = elem || document.documentElement;\n\n if (this.isFullscreen()) {\n this.exit();\n } else {\n this.request(elem);\n }\n },\n isFullscreen: function isFullscreen() {\n\n return Boolean(document[fn.fullscreenElement]);\n },\n enabled: function enabled() {\n\n return Boolean(document[fn.fullscreenEnabled]);\n }\n };\n\n $(document).on({\n 'onInit.fb': function onInitFb(e, instance) {\n var $container;\n\n var $button = instance.$refs.toolbar.find('[data-fancybox-fullscreen]');\n\n if (instance && !instance.FullScreen && instance.group[instance.currIndex].opts.fullScreen) {\n $container = instance.$refs.container;\n\n $container.on('click.fb-fullscreen', '[data-fancybox-fullscreen]', function (e) {\n\n e.stopPropagation();\n e.preventDefault();\n\n FullScreen.toggle($container[0]);\n });\n\n if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {\n FullScreen.request($container[0]);\n }\n\n // Expose API\n instance.FullScreen = FullScreen;\n } else {\n $button.hide();\n }\n },\n\n 'afterKeydown.fb': function afterKeydownFb(e, instance, current, keypress, keycode) {\n\n // \"P\" or Spacebar\n if (instance && instance.FullScreen && keycode === 70) {\n keypress.preventDefault();\n\n instance.FullScreen.toggle(instance.$refs.container[0]);\n }\n },\n\n 'beforeClose.fb': function beforeCloseFb(instance) {\n if (instance && instance.FullScreen) {\n FullScreen.exit();\n }\n }\n });\n\n $(document).on(fn.fullscreenchange, function () {\n var instance = $.fancybox.getInstance();\n\n // If image is zooming, then force to stop and reposition properly\n if (instance.current && instance.current.type === 'image' && instance.isAnimating) {\n instance.current.$content.css('transition', 'none');\n\n instance.isAnimating = false;\n\n instance.update(true, true, 0);\n }\n });\n})(document, _jquery2.default);\n\n// ==========================================================================\n//\n// Thumbs\n// Displays thumbnails in a grid\n//\n// ==========================================================================\n;(function (document, $) {\n 'use strict';\n\n var FancyThumbs = function FancyThumbs(instance) {\n this.instance = instance;\n this.init();\n };\n\n $.extend(FancyThumbs.prototype, {\n\n $button: null,\n $grid: null,\n $list: null,\n isVisible: false,\n\n init: function init() {\n var self = this;\n\n var first = self.instance.group[0],\n second = self.instance.group[1];\n\n self.$button = self.instance.$refs.toolbar.find('[data-fancybox-thumbs]');\n\n if (self.instance.group.length > 1 && self.instance.group[self.instance.currIndex].opts.thumbs && (first.type == 'image' || first.opts.thumb || first.opts.$thumb) && (second.type == 'image' || second.opts.thumb || second.opts.$thumb)) {\n\n self.$button.on('click', function () {\n self.toggle();\n });\n\n self.isActive = true;\n } else {\n self.$button.hide();\n\n self.isActive = false;\n }\n },\n\n create: function create() {\n var instance = this.instance,\n list,\n src;\n\n this.$grid = $('
').appendTo(instance.$refs.container);\n\n list = '
    ';\n\n $.each(instance.group, function (i, item) {\n\n src = item.opts.thumb || (item.opts.$thumb ? item.opts.$thumb.attr('src') : null);\n\n if (!src && item.type === 'image') {\n src = item.src;\n }\n\n if (src && src.length) {\n list += '
  • ';\n }\n });\n\n list += '
';\n\n this.$list = $(list).appendTo(this.$grid).on('click', 'li', function () {\n instance.jumpTo($(this).data('index'));\n });\n\n this.$list.find('img').hide().one('load', function () {\n\n var $parent = $(this).parent().removeClass('fancybox-thumbs-loading'),\n thumbWidth = $parent.outerWidth(),\n thumbHeight = $parent.outerHeight(),\n width,\n height,\n widthRatio,\n heightRatio;\n\n width = this.naturalWidth || this.width;\n height = this.naturalHeight || this.height;\n\n //Calculate thumbnail width/height and center it\n\n widthRatio = width / thumbWidth;\n heightRatio = height / thumbHeight;\n\n if (widthRatio >= 1 && heightRatio >= 1) {\n if (widthRatio > heightRatio) {\n width = width / heightRatio;\n height = thumbHeight;\n } else {\n width = thumbWidth;\n height = height / widthRatio;\n }\n }\n\n $(this).css({\n width: Math.floor(width),\n height: Math.floor(height),\n 'margin-top': Math.min(0, Math.floor(thumbHeight * 0.3 - height * 0.3)),\n 'margin-left': Math.min(0, Math.floor(thumbWidth * 0.5 - width * 0.5))\n }).show();\n }).each(function () {\n this.src = $(this).data('src');\n });\n },\n\n focus: function focus() {\n\n if (this.instance.current) {\n this.$list.children().removeClass('fancybox-thumbs-active').filter('[data-index=\"' + this.instance.current.index + '\"]').addClass('fancybox-thumbs-active').focus();\n }\n },\n\n close: function close() {\n this.$grid.hide();\n },\n\n update: function update() {\n\n this.instance.$refs.container.toggleClass('fancybox-show-thumbs', this.isVisible);\n\n if (this.isVisible) {\n\n if (!this.$grid) {\n this.create();\n }\n\n this.instance.trigger('onThumbsShow');\n\n this.focus();\n } else if (this.$grid) {\n this.instance.trigger('onThumbsHide');\n }\n\n // Update content position\n this.instance.update();\n },\n\n hide: function hide() {\n this.isVisible = false;\n this.update();\n },\n\n show: function show() {\n this.isVisible = true;\n this.update();\n },\n\n toggle: function toggle() {\n this.isVisible = !this.isVisible;\n this.update();\n }\n\n });\n\n $(document).on({\n\n 'onInit.fb': function onInitFb(e, instance) {\n if (instance && !instance.Thumbs) {\n instance.Thumbs = new FancyThumbs(instance);\n }\n },\n\n 'beforeShow.fb': function beforeShowFb(e, instance, item, firstRun) {\n var Thumbs = instance && instance.Thumbs;\n\n if (!Thumbs || !Thumbs.isActive) {\n return;\n }\n\n if (item.modal) {\n Thumbs.$button.hide();\n\n Thumbs.hide();\n\n return;\n }\n\n if (firstRun && instance.opts.thumbs.autoStart === true) {\n Thumbs.show();\n }\n\n if (Thumbs.isVisible) {\n Thumbs.focus();\n }\n },\n\n 'afterKeydown.fb': function afterKeydownFb(e, instance, current, keypress, keycode) {\n var Thumbs = instance && instance.Thumbs;\n\n // \"G\"\n if (Thumbs && Thumbs.isActive && keycode === 71) {\n keypress.preventDefault();\n\n Thumbs.toggle();\n }\n },\n\n 'beforeClose.fb': function beforeCloseFb(e, instance) {\n var Thumbs = instance && instance.Thumbs;\n\n if (Thumbs && Thumbs.isVisible && instance.opts.thumbs.hideOnClose !== false) {\n Thumbs.close();\n }\n }\n\n });\n})(document, _jquery2.default);\n\n// ==========================================================================\n//\n// Hash\n// Enables linking to each modal\n//\n// ==========================================================================\n;(function (document, window, $) {\n 'use strict';\n\n // Simple $.escapeSelector polyfill (for jQuery prior v3)\n\n if (!$.escapeSelector) {\n $.escapeSelector = function (sel) {\n var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n var fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return '\\uFFFD';\n }\n\n // Control characters and (dependent upon position) numbers get escaped as code points\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n }\n\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\" + ch;\n };\n\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n }\n\n // Variable containing last hash value set by fancyBox\n // It will be used to determine if fancyBox needs to close after hash change is detected\n var currentHash = null;\n\n // Throtlling the history change\n var timerID = null;\n\n // Get info about gallery name and current index from url\n function parseUrl() {\n var hash = window.location.hash.substr(1);\n var rez = hash.split('-');\n var index = rez.length > 1 && /^\\+?\\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1;\n var gallery = rez.join('-');\n\n // Index is starting from 1\n if (index < 1) {\n index = 1;\n }\n\n return {\n hash: hash,\n index: index,\n gallery: gallery\n };\n }\n\n // Trigger click evnt on links to open new fancyBox instance\n function triggerFromUrl(url) {\n var $el;\n\n if (url.gallery !== '') {\n\n // If we can find element matching 'data-fancybox' atribute, then trigger click event for that ..\n $el = $(\"[data-fancybox='\" + $.escapeSelector(url.gallery) + \"']\").eq(url.index - 1);\n\n if ($el.length) {\n $el.trigger('click');\n } else {\n\n // .. if not, try finding element by ID\n $(\"#\" + $.escapeSelector(url.gallery) + \"\").trigger('click');\n }\n }\n }\n\n // Get gallery name from current instance\n function getGallery(instance) {\n var opts;\n\n if (!instance) {\n return false;\n }\n\n opts = instance.current ? instance.current.opts : instance.opts;\n\n return opts.$orig ? opts.$orig.data('fancybox') : opts.hash || '';\n }\n\n // Star when DOM becomes ready\n $(function () {\n\n // Small delay is used to allow other scripts to process \"dom ready\" event\n setTimeout(function () {\n\n // Check if this module is not disabled\n if ($.fancybox.defaults.hash === false) {\n return;\n }\n\n // Update hash when opening/closing fancyBox\n $(document).on({\n 'onInit.fb': function onInitFb(e, instance) {\n var url, gallery;\n\n if (instance.group[instance.currIndex].opts.hash === false) {\n return;\n }\n\n url = parseUrl();\n gallery = getGallery(instance);\n\n // Make sure gallery start index matches index from hash\n if (gallery && url.gallery && gallery == url.gallery) {\n instance.currIndex = url.index - 1;\n }\n },\n\n 'beforeShow.fb': function beforeShowFb(e, instance, current, firstRun) {\n var gallery;\n\n if (current.opts.hash === false) {\n return;\n }\n\n gallery = getGallery(instance);\n\n // Update window hash\n if (gallery && gallery !== '') {\n\n if (window.location.hash.indexOf(gallery) < 0) {\n instance.opts.origHash = window.location.hash;\n }\n\n currentHash = gallery + (instance.group.length > 1 ? '-' + (current.index + 1) : '');\n\n if ('replaceState' in window.history) {\n if (timerID) {\n clearTimeout(timerID);\n }\n\n timerID = setTimeout(function () {\n window.history[firstRun ? 'pushState' : 'replaceState']({}, document.title, window.location.pathname + window.location.search + '#' + currentHash);\n\n timerID = null;\n }, 300);\n } else {\n window.location.hash = currentHash;\n }\n }\n },\n\n 'beforeClose.fb': function beforeCloseFb(e, instance, current) {\n var gallery, origHash;\n\n if (timerID) {\n clearTimeout(timerID);\n }\n\n if (current.opts.hash === false) {\n return;\n }\n\n gallery = getGallery(instance);\n origHash = instance && instance.opts.origHash ? instance.opts.origHash : '';\n\n // Remove hash from location bar\n if (gallery && gallery !== '') {\n\n if ('replaceState' in history) {\n window.history.replaceState({}, document.title, window.location.pathname + window.location.search + origHash);\n } else {\n window.location.hash = origHash;\n\n // Keep original scroll position\n $(window).scrollTop(instance.scrollTop).scrollLeft(instance.scrollLeft);\n }\n }\n\n currentHash = null;\n }\n });\n\n // Check if need to close after url has changed\n $(window).on('hashchange.fb', function () {\n var url = parseUrl();\n\n if ($.fancybox.getInstance()) {\n if (currentHash && currentHash !== url.gallery + '-' + url.index && !(url.index === 1 && currentHash == url.gallery)) {\n currentHash = null;\n\n $.fancybox.close();\n }\n } else if (url.gallery !== '') {\n triggerFromUrl(url);\n }\n });\n\n // If navigating away from current page\n $(window).one('unload.fb popstate.fb', function () {\n $.fancybox.getInstance('close', true, 0);\n });\n\n // Check current hash and trigger click event on matching element to start fancyBox, if needed\n triggerFromUrl(parseUrl());\n }, 50);\n });\n})(document, window, _jquery2.default);\n\n/***/ }),\n\n/***/ \"bRiX\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"bphb\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"c1Qd\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-phone\",\n \"use\": \"icon-phone-usage\",\n \"viewBox\": \"0 0 15 15\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"cHKD\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"e7u5\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"cZ/o\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"pEDh\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'poll-button',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"Qii6\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"caux\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"ceVE\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\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\nvar _handlebarsBase = __webpack_require__(\"jMIp\");\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = __webpack_require__(\"Qhfb\");\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = __webpack_require__(\"Cz5H\");\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = __webpack_require__(\"U7Dy\");\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = __webpack_require__(\"z5Fe\");\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = __webpack_require__(\"qfOY\");\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n\n\n/***/ }),\n\n/***/ \"cgz8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _flatpickr = __webpack_require__(\"rocC\");\n\nvar _flatpickr2 = _interopRequireDefault(_flatpickr);\n\nvar _baseDatepickerConfig = __webpack_require__(\"qOS5\");\n\nvar _baseDatepickerConfig2 = _interopRequireDefault(_baseDatepickerConfig);\n\nvar _cleave = __webpack_require__(\"sJdk\");\n\nvar _cleave2 = _interopRequireDefault(_cleave);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DatePicker = function (_Component) {\n _inherits(DatePicker, _Component);\n\n function DatePicker(el) {\n _classCallCheck(this, DatePicker);\n\n var _this = _possibleConstructorReturn(this, (DatePicker.__proto__ || Object.getPrototypeOf(DatePicker)).call(this, el));\n\n _this.init();\n return _this;\n }\n\n _createClass(DatePicker, [{\n key: 'init',\n value: function init() {\n var format = this.container.getAttribute('data-format') || 'd/m/Y';\n var calendar = new _flatpickr2.default(this.container, _extends({}, _baseDatepickerConfig2.default, {\n mode: \"single\",\n dateFormat: 'Y-m-d',\n altInput: true,\n altFormat: format,\n disableMobile: true,\n allowInput: true,\n\n onClose: function onClose(selDates, dateStr, instance) {\n if (this.config.allowInput) {\n var date = this.parseDate(this.altInput.value, this.config.altFormat);\n if (date === null) {\n //reset date\n this.setDate(null, true, this.config.altFormat);\n } else {\n var formattedDate = this.formatDate(date, this.config.dateFormat);\n if (formattedDate !== this.input.value) {\n this.setDate(this.altInput.value, true, this.config.altFormat);\n }\n }\n }\n },\n\n //we need validation on real input, so show it for validation purpose but hide from ui\n onReady: [_baseDatepickerConfig2.default.onReady, function (dates, value, instance) {\n if (instance.altInput) {\n instance.input.type = 'text';\n instance.input.style.position = 'absolute';\n instance.input.style.visibility = 'hidden';\n\n new _cleave2.default(instance.altInput, {\n date: true,\n datePattern: [\"d\", \"m\", \"Y\"],\n delimiter: '/'\n });\n }\n }]\n }));\n }\n }]);\n\n return DatePicker;\n}(_generic2.default);\n\nexports.default = DatePicker;\n\n/***/ }),\n\n/***/ \"czl+\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar EVENT_FIELD_VALIDATION_FAILED = 'field-validation-failed';\nvar EVENT_FIELD_VALIDATION_PASSED = 'field-validation-passed';\nvar EVENT_SPINBOX_CHANGED = 'spinbox-changed';\n\nexports.default = {\n EVENT_FIELD_VALIDATION_FAILED: EVENT_FIELD_VALIDATION_FAILED,\n EVENT_FIELD_VALIDATION_PASSED: EVENT_FIELD_VALIDATION_PASSED,\n EVENT_SPINBOX_CHANGED: EVENT_SPINBOX_CHANGED\n};\n\n/***/ }),\n\n/***/ \"d+Bm\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"dEgL\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _slickCarousel = __webpack_require__(\"gqkz\");\n\nvar _slickCarousel2 = _interopRequireDefault(_slickCarousel);\n\nvar _widowtamer = __webpack_require__(\"gfAR\");\n\nvar _widowtamer2 = _interopRequireDefault(_widowtamer);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar HeroCarousel = function (_Component) {\n _inherits(HeroCarousel, _Component);\n\n function HeroCarousel(el) {\n _classCallCheck(this, HeroCarousel);\n\n var _this = _possibleConstructorReturn(this, (HeroCarousel.__proto__ || Object.getPrototypeOf(HeroCarousel)).call(this, el));\n\n _this.$container = (0, _jquery2.default)(_this.container);\n _this.init();\n return _this;\n }\n\n _createClass(HeroCarousel, [{\n key: 'init',\n value: function init() {\n this.$inner = this.$container.find('.js-hero-carousel-inner');\n this.$dotsContainer = this.$container.find('.js-hero-carousel-dots');\n\n if (!this.$inner.length || !this.$dotsContainer.length) {\n this.$container.addClass('js-init-errors');\n return false;\n }\n\n this.$inner.slick({\n arrows: false,\n dots: true,\n appendDots: this.$dotsContainer,\n useTransform: false,\n speed: 500,\n autoplay: true,\n autoplaySpeed: 2500,\n slidesToShow: 1,\n slidesToScroll: 1,\n fade: true\n });\n\n _widowtamer2.default.fix({ elements: '.js-widow-fix', chars: 10, method: 'nbsp' });\n }\n }]);\n\n return HeroCarousel;\n}(_generic2.default);\n\nexports.default = HeroCarousel;\n\n/***/ }),\n\n/***/ \"dF52\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"IKFF\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"dFYk\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"Tr0U\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-login-block',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"SEPk\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"dQZv\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"Nd0x\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"dXM7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _TimelineLite = __webpack_require__(\"74Kd\");\n\nvar _TimelineLite2 = _interopRequireDefault(_TimelineLite);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _contentBlocker = __webpack_require__(\"Pw+U\");\n\nvar _contentBlocker2 = _interopRequireDefault(_contentBlocker);\n\nvar _modal = __webpack_require__(\"5341\");\n\nvar _modal2 = _interopRequireDefault(_modal);\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 ModalController = function () {\n _createClass(ModalController, null, [{\n key: 'getInstance',\n value: function getInstance() {\n if (ModalController.instance === null) {\n ModalController.instance = new ModalController();\n }\n return ModalController.instance;\n }\n }]);\n\n function ModalController() {\n _classCallCheck(this, ModalController);\n\n this.$body = (0, _jquery2.default)('body');\n // #form is kentico page wrapper\n this.form = (0, _jquery2.default)('#form');\n this.form.append(_modal2.default);\n this.containerSelector = '.js-modal-container';\n this.contentSelector = '.js-modal-content';\n this.contentWrapperSelector = '.js-modal-content-wrapper';\n this.closeSelector = '.js-modal-close';\n\n this.container = document.querySelector(this.containerSelector);\n if (this.container) {\n this.closeBtn = this.container.querySelector(this.closeSelector);\n this.content = this.container.querySelector(this.contentSelector);\n this.content = (0, _jquery2.default)(this.content);\n\n this.modalTween = new _TimelineLite2.default({ paused: true });\n this.modalTween.fromTo(this.container, 0.0, { visibility: 'hidden' }, { visibility: 'visible' });\n this.modalTween.fromTo(this.container, 0.5, { opacity: '0' }, { opacity: '1' });\n this.openedInstance = null;\n this.isOpened = false;\n\n var $document = (0, _jquery2.default)(document);\n $document.on('click', this.closeSelector, this._closeByUserHandle.bind(this));\n $document.on('click touchstart', this._outerClickHandle.bind(this));\n }\n }\n\n _createClass(ModalController, [{\n key: '_outerClickHandle',\n value: function _outerClickHandle(e) {\n if (this.isOpened) {\n var $target = (0, _jquery2.default)(e.target);\n\n if ($target.is(this.container) || $target.parents(this.containerSelector).length) {\n if ($target.is(this.contentWrapperSelector) || $target.parents(this.contentWrapperSelector).length) {\n return;\n }\n this._closeByUserHandle();\n }\n }\n }\n }, {\n key: '_closeByUserHandle',\n value: function _closeByUserHandle() {\n if (this.openedInstance && this.openedInstance.options.closable) {\n this.close();\n }\n }\n }, {\n key: '_renderContent',\n value: function _renderContent(content) {\n this.content.empty().append(content);\n }\n }, {\n key: '_renderLayout',\n value: function _renderLayout() {\n this.modalTween.play();\n }\n }, {\n key: 'close',\n value: function close() {\n this.modalTween.reverse();\n this._beforeClose(this.openedInstance);\n this.openedInstance = null;\n this.isOpened = false;\n }\n }, {\n key: 'open',\n value: function open(modal) {\n var _this = this;\n\n var refresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (this.openedInstance) {\n if (this.openedInstance === modal) {\n return;\n }\n this.close();\n this.openedInstance = null;\n }\n this.openedInstance = modal;\n this.isOpened = true;\n\n if (!this.openedInstance.options.closable) {\n this.closeBtn.classList.add('is-hidden');\n } else {\n this.closeBtn.classList.remove('is-hidden');\n }\n\n this._renderLayout();\n modal.getPreparedContent(refresh).then(function (content) {\n _this._renderContent(content);\n }).then(function () {\n _this._afterOpen(modal);\n });\n }\n }, {\n key: '_afterOpen',\n value: function _afterOpen() {\n _contentBlocker2.default.block('modal');\n this.container.style['-webkit-overflow-scrolling'] = 'touch';\n }\n }, {\n key: '_beforeClose',\n value: function _beforeClose() {\n _contentBlocker2.default.unblock('modal');\n this.container.style['-webkit-overflow-scrolling'] = 'auto';\n }\n }]);\n\n return ModalController;\n}();\n\nexports.default = ModalController;\n\n\nModalController.instance = null;\n\n/***/ }),\n\n/***/ \"ddC+\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-tick\",\n \"use\": \"icon-tick-usage\",\n \"viewBox\": \"0 0 26.85 21.33\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"ddPb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _menuManager = __webpack_require__(\"C4F1\");\n\nvar _menuManager2 = _interopRequireDefault(_menuManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NavTop = function (_Component) {\n _inherits(NavTop, _Component);\n\n function NavTop(el) {\n _classCallCheck(this, NavTop);\n\n var _this = _possibleConstructorReturn(this, (NavTop.__proto__ || Object.getPrototypeOf(NavTop)).call(this, el));\n\n _this.init();\n return _this;\n }\n\n _createClass(NavTop, [{\n key: 'init',\n value: function init() {\n var _this2 = this;\n\n this.menuId = 'navTop';\n this.items = [].concat(_toConsumableArray(this.container.querySelectorAll(\".js-nav-top-item\")));\n if (!this.container.classList.contains('js-nav-top--mobile')) {\n this.items.forEach(function (element) {\n element.addEventListener(\"mouseenter\", _this2.hover.bind(_this2));\n element.addEventListener(\"mouseleave\", _this2.blur.bind(_this2));\n });\n\n _menuManager2.default.init(this.menuId, {\n default: {\n open: this.open.bind(this),\n close: this.close.bind(this),\n level: 0,\n isBlocking: false\n },\n mobile: {\n isEnabled: false\n }\n });\n } else {\n this.mobileOpened = false;\n this.items.forEach(function (element) {\n element.addEventListener(\"click\", _this2.toggleMobileInstance.bind(_this2));\n });\n }\n }\n }, {\n key: 'hover',\n value: function hover() {\n _menuManager2.default.open(this.menuId);\n }\n }, {\n key: 'blur',\n value: function blur() {\n _menuManager2.default.close(this.menuId);\n }\n }, {\n key: 'toggleMobileInstance',\n value: function toggleMobileInstance(e) {\n if (!this.mobileOpened) {\n e.preventDefault();\n }\n this.container.classList.toggle(\"is-opened\");\n this.mobileOpened = !this.mobileOpened;\n }\n }, {\n key: 'open',\n value: function open() {\n this.container.classList.add(\"is-hover\");\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove(\"is-hover\");\n }\n }]);\n\n return NavTop;\n}(_generic2.default);\n\nexports.default = NavTop;\n\n\nNavTop.id = 0;\n\n/***/ }),\n\n/***/ \"de09\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _jgApi = __webpack_require__(\"SB4u\");\n\nvar _jgApi2 = _interopRequireDefault(_jgApi);\n\nvar _jgImagery = __webpack_require__(\"KfCa\");\n\nvar _jgImagery2 = _interopRequireDefault(_jgImagery);\n\nvar _jgImageryEmpty = __webpack_require__(\"GENp\");\n\nvar _jgImageryEmpty2 = _interopRequireDefault(_jgImageryEmpty);\n\nvar _generic3 = __webpack_require__(\"x9Sk\");\n\nvar _generic4 = _interopRequireDefault(_generic3);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar JgImagery = function (_Component) {\n _inherits(JgImagery, _Component);\n\n function JgImagery(el) {\n _classCallCheck(this, JgImagery);\n\n var _this = _possibleConstructorReturn(this, (JgImagery.__proto__ || Object.getPrototypeOf(JgImagery)).call(this, el));\n\n _this.$container = (0, _jquery2.default)(_this.container);\n _this.init();\n return _this;\n }\n\n _createClass(JgImagery, [{\n key: 'init',\n value: function init() {\n var _this2 = this;\n\n var pageName = this.$container.data('page-name');\n if (!pageName) {\n this.$container.addClass('js-init-errors');\n return false;\n }\n\n this.$container.addClass('is-loading');\n _jgApi2.default.getInstance().getPageDetails(pageName).then(function (response) {\n _this2.renderImagery(response.media.images);\n }, function (error) {\n _this2.renderError(error);\n }).then(function () {\n _this2.$container.removeClass('is-loading');\n });\n }\n }, {\n key: 'renderImagery',\n value: function renderImagery(images) {\n if (images.length > 0) {\n var content = (0, _jgImagery2.default)({ images: images });\n this.$container.html(content);\n var $gallery = this.$container.find('.js-image-gallery');\n var gallery = new _generic4.default($gallery[0]);\n } else {\n this.renderEmpty();\n }\n }\n }, {\n key: 'renderEmpty',\n value: function renderEmpty() {\n this.$container.html((0, _jgImageryEmpty2.default)({}));\n }\n }, {\n key: 'renderError',\n value: function renderError(error) {\n console.log(error);\n this.$container.html(_jgApi2.default.getDefaultErrorMessage());\n }\n }]);\n\n return JgImagery;\n}(_generic2.default);\n\nexports.default = JgImagery;\n\n/***/ }),\n\n/***/ \"dgvd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"EEIA\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-payment-summary',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"kXhy\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"dmON\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"3tuH\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-hero-carousel',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"dEgL\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"e7u5\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"eUbz\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TouchButton = function (_Component) {\n _inherits(TouchButton, _Component);\n\n function TouchButton(el) {\n _classCallCheck(this, TouchButton);\n\n var _this = _possibleConstructorReturn(this, (TouchButton.__proto__ || Object.getPrototypeOf(TouchButton)).call(this, el));\n\n _this.init();\n return _this;\n }\n\n _createClass(TouchButton, [{\n key: 'init',\n value: function init() {\n if ('ontouchstart' in window || navigator.msMaxTouchPoints) {\n this.container.addEventListener(\"touchstart\", this.addActiveClass);\n this.container.addEventListener(\"touchend\", this.removeActiveClass);\n this.container.addEventListener(\"touchcancel\", this.removeActiveClass);\n }\n }\n }, {\n key: 'addActiveClass',\n value: function addActiveClass(e) {\n e.target.classList.add(\"is-active\");\n }\n }, {\n key: 'removeActiveClass',\n value: function removeActiveClass(e) {\n var target = e.target;\n if (/is-active/g.test(target.className)) {\n target.classList.remove(\"is-active\");\n }\n }\n }]);\n\n return TouchButton;\n}(_generic2.default);\n\nexports.default = TouchButton;\n\n\nTouchButton.id = 0;\n\n/***/ }),\n\n/***/ \"f2JW\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-just-giving-logo\",\n \"use\": \"icon-just-giving-logo-usage\",\n \"viewBox\": \"0 0 832.7 142.1\",\n \"content\": \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"f5/6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"9mGK\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"fKfM\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"90h0\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-hamburger',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"pw1P\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"fQ+6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _createEvent = __webpack_require__(\"G0mC\");\n\nvar _createEvent2 = _interopRequireDefault(_createEvent);\n\nvar _constants = __webpack_require__(\"czl+\");\n\nvar _constants2 = _interopRequireDefault(_constants);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Spinbox = function (_Component) {\n _inherits(Spinbox, _Component);\n\n function Spinbox(el) {\n _classCallCheck(this, Spinbox);\n\n var _this = _possibleConstructorReturn(this, (Spinbox.__proto__ || Object.getPrototypeOf(Spinbox)).call(this, el));\n\n _this.container = el;\n _this.onIncrease = _this.onIncrease.bind(_this);\n _this.onDiscrease = _this.onDiscrease.bind(_this);\n _this.defineVariables();\n _this.init();\n return _this;\n }\n\n _createClass(Spinbox, [{\n key: 'defineVariables',\n value: function defineVariables() {\n this.input = this.container.querySelector('.js-spinbox-input');\n this.discrease = this.container.querySelector('.js-spinbox-discrease');\n this.increase = this.container.querySelector('.js-spinbox-increase');\n this.maxValue = parseInt(this.container.getAttribute('data-spinbox-max'), 10);\n var minAttr = this.container.getAttribute('data-spinbox-min');\n this.minValue = minAttr === null ? 1 : parseInt(minAttr, 10);\n }\n }, {\n key: 'init',\n value: function init() {\n this.increase.addEventListener('click', this.onIncrease);\n this.discrease.addEventListener('click', this.onDiscrease);\n }\n }, {\n key: 'onIncrease',\n value: function onIncrease(e) {\n e.preventDefault();\n if (!Number.isNaN(this.maxValue) && this.maxValue > this.input.value || Number.isNaN(this.maxValue)) {\n this.input.value++;\n this.triggerChange();\n }\n }\n }, {\n key: 'onDiscrease',\n value: function onDiscrease(e) {\n e.preventDefault();\n if (this.input.value > this.minValue) {\n this.input.value--;\n this.triggerChange();\n }\n }\n }, {\n key: 'triggerChange',\n value: function triggerChange() {\n this.input.dispatchEvent((0, _createEvent2.default)('input'));\n this.input.dispatchEvent((0, _createEvent2.default)('change'));\n\n this.input.dispatchEvent((0, _createEvent2.default)(_constants2.default.EVENT_SPINBOX_CHANGED));\n }\n }, {\n key: 'setToMin',\n value: function setToMin() {\n this.input.value = this.minValue;\n this.triggerChange();\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.input.setAttribute('disabled', '');\n }\n }, {\n key: 'enable',\n value: function enable() {\n this.input.removeAttribute('disabled');\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n _get(Spinbox.prototype.__proto__ || Object.getPrototypeOf(Spinbox.prototype), 'destroy', this).call(this);\n this.increase.removeEventListener('click', this.onIncrease);\n this.discrease.removeEventListener('click', this.onDiscrease);\n this.container.classList.remove('js-spinbox-inited');\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return this.input.value;\n }\n }]);\n\n return Spinbox;\n}(_generic2.default);\n\nexports.default = Spinbox;\n\nSpinbox.id = 0;\n\n/***/ }),\n\n/***/ \"fmMZ\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar HeaderTop = function (_Component) {\n _inherits(HeaderTop, _Component);\n\n function HeaderTop(el) {\n _classCallCheck(this, HeaderTop);\n\n var _this = _possibleConstructorReturn(this, (HeaderTop.__proto__ || Object.getPrototypeOf(HeaderTop)).call(this, el));\n\n _this.isActive = false;\n _this.init();\n return _this;\n }\n\n _createClass(HeaderTop, [{\n key: 'init',\n value: function init() {\n var _this2 = this;\n\n this.items = [].concat(_toConsumableArray(this.container.querySelectorAll('.js-header-top-item')));\n this.items.forEach(function (item) {\n item.addEventListener('mouseenter', _this2.hover.bind(_this2));\n });\n\n this.container.addEventListener('mouseleave', this.containerBlur.bind(this));\n\n document.querySelector('.js-header-dropdown').addEventListener('click', this.showStickyNav.bind(this));\n\n document.addEventListener('click', this.checkOuterClick.bind(this));\n\n window.addEventListener('scroll', this.scroll.bind(this));\n\n this.scroll();\n }\n }, {\n key: 'hover',\n value: function hover() {\n if (!this.isActive) {\n this.isActive = true;\n this.container.classList.add('is-active');\n }\n }\n }, {\n key: 'containerBlur',\n value: function containerBlur() {\n if (this.isActive) {\n this.isActive = false;\n this.container.classList.remove('is-active');\n }\n }\n }, {\n key: 'scroll',\n value: function scroll() {\n if (window.pageYOffset > 0) {\n document.body.classList.add('sticky-nav');\n } else {\n document.body.classList.remove('sticky-nav');\n }\n\n if (!document.body.classList.contains('is-blocked')) this.hideStickyNav();\n }\n }, {\n key: 'showStickyNav',\n value: function showStickyNav(e) {\n e.preventDefault();\n document.body.classList.add('sticky-nav--opened');\n }\n }, {\n key: 'hideStickyNav',\n value: function hideStickyNav() {\n document.body.classList.remove('sticky-nav--opened');\n }\n }, {\n key: 'checkOuterClick',\n value: function checkOuterClick(e) {\n if (document.body.classList.contains('sticky-nav--opened')) {\n var $target = (0, _jquery2.default)(e.target);\n\n if ($target.is('.js-header-dropdown') || $target.parents('.js-header-dropdown').length) return;\n\n if (!$target.is('.header-top') && !$target.is('.header__nav') && !$target.parents('.header-top').length && !$target.parents('.header__nav').length) {\n this.hideStickyNav();\n }\n }\n }\n }]);\n\n return HeaderTop;\n}(_generic2.default);\n\nexports.default = HeaderTop;\n\n/***/ }),\n\n/***/ \"fsM1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = __webpack_require__(\"9ZNr\");\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG5cbiJdfQ==\n\n\n/***/ }),\n\n/***/ \"ftiw\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _contentModal = __webpack_require__(\"YxkB\");\n\nvar _contentModal2 = _interopRequireDefault(_contentModal);\n\nvar _deleteAccount = __webpack_require__(\"Qzyp\");\n\nvar _deleteAccount2 = _interopRequireDefault(_deleteAccount);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Account = function (_Component) {\n _inherits(Account, _Component);\n\n function Account(el) {\n _classCallCheck(this, Account);\n\n var _this = _possibleConstructorReturn(this, (Account.__proto__ || Object.getPrototypeOf(Account)).call(this, el));\n\n _this.showDeleteModal = _this.showDeleteModal.bind(_this);\n _this.deleteAccTrigger = _this.container.querySelector('.js-account__delete-trigger');\n\n _this.modal = new _contentModal2.default('');\n\n _this.init();\n return _this;\n }\n\n _createClass(Account, [{\n key: 'init',\n value: function init() {\n if (this.deleteAccTrigger) {\n this.deletePostbackId = this.deleteAccTrigger.getAttribute('data-clientid');\n this.localization = {};\n var localizationString = this.deleteAccTrigger.getAttribute('data-localization');\n try {\n this.localization = JSON.parse(localizationString);\n } catch (e) {\n console.log(e);\n }\n this.deleteAccTrigger.addEventListener('click', this.showDeleteModal);\n }\n }\n }, {\n key: 'showDeleteModal',\n value: function showDeleteModal() {\n var content = (0, _deleteAccount2.default)({\n clientId: this.deletePostbackId,\n localization: this.localization\n });\n this.modal.setContent(content);\n this.modal.open();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n _get(Account.prototype.__proto__ || Object.getPrototypeOf(Account.prototype), 'destroy', this).call(this);\n\n this.deleteAccTrigger.removeEventListener('click', this.showDeleteModal);\n this.container.classList.remove('js-payment-summary-inited');\n }\n }]);\n\n return Account;\n}(_generic2.default);\n\nexports.default = Account;\n\n/***/ }),\n\n/***/ \"fvMr\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = __webpack_require__(\"Cz5H\");\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFBYyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDdkY7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ01pc3NpbmcgaGVscGVyOiBcIicgKyBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdLm5hbWUgKyAnXCInKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n\n\n/***/ }),\n\n/***/ \"g/gB\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _slickCarousel = __webpack_require__(\"gqkz\");\n\nvar _slickCarousel2 = _interopRequireDefault(_slickCarousel);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LogoList = function (_Component) {\n _inherits(LogoList, _Component);\n\n function LogoList(el) {\n _classCallCheck(this, LogoList);\n\n var _this = _possibleConstructorReturn(this, (LogoList.__proto__ || Object.getPrototypeOf(LogoList)).call(this, el));\n\n _this.$container = (0, _jquery2.default)(_this.container);\n _this.init();\n return _this;\n }\n\n _createClass(LogoList, [{\n key: 'init',\n value: function init() {\n this.$inner = this.$container.find('.js-logo-list-inner');\n this.$arrows = this.$container.find('.js-logo-list-arrows');\n\n this.$inner.slick({\n appendArrows: this.$arrows,\n infinite: true,\n arrows: true,\n speed: 300,\n autoplay: false,\n slidesToShow: 1,\n variableWidth: true,\n centerMode: true,\n mobileFirst: true,\n responsive: [{\n breakpoint: 768,\n settings: \"unslick\"\n }],\n prevArrow: '',\n nextArrow: ''\n });\n }\n }]);\n\n return LogoList;\n}(_generic2.default);\n\nexports.default = LogoList;\n\n/***/ }),\n\n/***/ \"gOR3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"wDqA\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-search-top',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"ICMN\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"gPpe\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-share\",\n \"use\": \"icon-share-usage\",\n \"viewBox\": \"0 0 16 16\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"gfAR\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// Widow Tamer JS by Nathan C. Ford http://artequalswork.com\n// from https://github.com/nathanford/widowtamer\n\nvar wt = {\n\n // default options\n opts: {\n elements: 'p,li,dd',\n chars: 14,\n method: 'wordSpacing',\n dir: 'pos',\n event: 'orientationchange'\n },\n\n to: new Array(),\n\n fix: function fix(opts) {\n\n if (document.readyState === 'complete') wt.init(opts);\n wt.bind('load', function () {\n wt.init(opts);\n });\n },\n\n init: function init(opts) {\n\n var m = opts.method;\n\n switch (m) {\n\n case 'padding-right':\n case 'nbsp':\n case 'padding-left':\n case 'word-spacing':\n case 'letter-spacing':\n case undefined:\n\n if (opts.dir == 'neg' && m && m.match('padding')) {\n\n console.log('Invalid method. You cannot use neg with padding.');\n } else wt.hunter(opts);\n\n break;\n\n default:\n console.log('Invalid method. Please use either padding-right, padding-left, word-spacing, or letter-spacing.');\n\n }\n },\n\n hunter: function hunter(uopts) {\n\n var opts = new Object();\n\n // overwrite defaults with options from user\n if (uopts) {\n\n for (i in wt.opts) {\n\n if (uopts[i]) opts[i] = i == 'method' && uopts[i].match('-') ? wt.fixmethod(uopts[i]) : uopts[i];else opts[i] = wt.opts[i];\n }\n } else opts = wt.opts;\n\n if (document.querySelectorAll) {\n\n var eles = document.querySelectorAll(opts.elements),\n i = 0;\n\n while (i < eles.length) {\n\n var t = eles[i];\n\n if (t.offsetHeight > wt.getstyle(t, 'line-height', true)) {\n\n // find a textnode longer than chars\n var nodes = t.childNodes,\n j = nodes.length - 1,\n c = false;\n\n while (j >= 0) {\n\n var ntext = wt.text(nodes[j]);\n\n if (ntext != undefined && ntext.length > opts.chars) {\n c = nodes[j];\n break;\n }\n\n j--;\n }\n\n t.style[opts.method] = '0';\n\n var ctext = wt.text(c);\n\n if (c) wt.tamer(c, t, ctext, 0, opts);\n }\n\n i++;\n }\n\n wt.bind(opts.event, function () {\n wt.onevent(opts);\n });\n }\n },\n\n text: function text(t) {\n\n return t.innerText || t.textContent;\n },\n\n settext: function settext(e, t) {\n\n if (e.innerText) e.innerText = t;else e.textContent = t;\n },\n\n tamer: function tamer(c, t, text, i, opts) {\n\n var h = t.offsetHeight;\n\n wt.settext(c, text.slice(0, opts.chars * -1));\n\n if (t.offsetHeight < h) {\n\n if (opts.method == 'nbsp') wt.settext(c, wt.text(c) + text.slice(opts.chars * -1).replace(/\\s/g, '\\xA0'));else {\n\n var inc = opts.method.match('padding') ? i / 10 : i / 100;\n\n if (opts.dir == 'neg') inc = inc * -1;\n\n t.style[opts.method] = inc + 'em';\n\n wt.settext(c, text);\n\n wt.tamer(c, t, text, i + 1, opts);\n }\n } else wt.settext(c, text);\n },\n\n onevent: function onevent(opts) {\n\n var to = \"'\" + opts.elements.replace(/[^a-zA-Z0-9\\-\\.]/g, '') + \"'\";\n\n clearTimeout(wt.to[to]);\n wt.to[to] = setTimeout(function () {\n wt.hunter(opts);\n }, 250);\n },\n\n bind: function bind(e, f) {\n\n if (window.attachEvent) window.attachEvent('on' + e, f);else window.addEventListener(e, f, true);\n },\n\n fixmethod: function fixmethod(s) {\n\n return s.replace(/-([a-zA-Z])/, function (m) {\n\n return m.replace('-', '').toUpperCase();\n });\n },\n\n getstyle: function getstyle(t, s, n) {\n\n var r;\n\n if (t.currentStyle) r = t.currentStyle[s.replace(/-([A-z])/gi, function (a, b) {\n return b.toUpperCase();\n })];else if (window.getComputedStyle) r = document.defaultView.getComputedStyle(t, null).getPropertyValue(s);\n\n if (n) return parseFloat(r);else return r;\n }\n\n};\n\nexports.default = wt;\n\n/***/ }),\n\n/***/ \"grUI\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Handlebars = __webpack_require__(\"alZG\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
\\r\\n
\\r\\n There has not been any recent donations, click here if you would like to show your\\r\\n support\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n},\"useData\":true});\n\n/***/ }),\n\n/***/ \"h+4i\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-account\",\n \"use\": \"icon-account-usage\",\n \"viewBox\": \"0 0 447 447\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"hqmG\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _head = __webpack_require__(\"sn83\");\n\nvar _head2 = _interopRequireDefault(_head);\n\nvar _vendor = __webpack_require__(\"RzLf\");\n\nvar _vendor2 = _interopRequireDefault(_vendor);\n\nvar _core = __webpack_require__(\"rsHF\");\n\nvar _core2 = _interopRequireDefault(_core);\n\n__webpack_require__(\"/AiR\");\n\nvar _main = __webpack_require__(\"pYpB\");\n\nvar _main2 = _interopRequireDefault(_main);\n\nvar _main3 = __webpack_require__(\"3JMX\");\n\nvar _main4 = _interopRequireDefault(_main3);\n\nvar _main5 = __webpack_require__(\"Ol1h\");\n\nvar _main6 = _interopRequireDefault(_main5);\n\nvar _main7 = __webpack_require__(\"yfj8\");\n\nvar _main8 = _interopRequireDefault(_main7);\n\nvar _main9 = __webpack_require__(\"dF52\");\n\nvar _main10 = _interopRequireDefault(_main9);\n\nvar _main11 = __webpack_require__(\"dmON\");\n\nvar _main12 = _interopRequireDefault(_main11);\n\nvar _main13 = __webpack_require__(\"QtJ4\");\n\nvar _main14 = _interopRequireDefault(_main13);\n\nvar _main15 = __webpack_require__(\"+Pxu\");\n\nvar _main16 = _interopRequireDefault(_main15);\n\nvar _main17 = __webpack_require__(\"r0Qx\");\n\nvar _main18 = _interopRequireDefault(_main17);\n\nvar _main19 = __webpack_require__(\"Qv6E\");\n\nvar _main20 = _interopRequireDefault(_main19);\n\nvar _main21 = __webpack_require__(\"IynX\");\n\nvar _main22 = _interopRequireDefault(_main21);\n\nvar _main23 = __webpack_require__(\"xy3E\");\n\nvar _main24 = _interopRequireDefault(_main23);\n\nvar _main25 = __webpack_require__(\"aoEw\");\n\nvar _main26 = _interopRequireDefault(_main25);\n\nvar _main27 = __webpack_require__(\"/z+F\");\n\nvar _main28 = _interopRequireDefault(_main27);\n\nvar _main29 = __webpack_require__(\"wJOR\");\n\nvar _main30 = _interopRequireDefault(_main29);\n\nvar _main31 = __webpack_require__(\"HXbm\");\n\nvar _main32 = _interopRequireDefault(_main31);\n\nvar _main33 = __webpack_require__(\"Bsi4\");\n\nvar _main34 = _interopRequireDefault(_main33);\n\nvar _main35 = __webpack_require__(\"P1B+\");\n\nvar _main36 = _interopRequireDefault(_main35);\n\nvar _main37 = __webpack_require__(\"BWIW\");\n\nvar _main38 = _interopRequireDefault(_main37);\n\nvar _main39 = __webpack_require__(\"nRRp\");\n\nvar _main40 = _interopRequireDefault(_main39);\n\nvar _main41 = __webpack_require__(\"QqN7\");\n\nvar _main42 = _interopRequireDefault(_main41);\n\nvar _main43 = __webpack_require__(\"raTT\");\n\nvar _main44 = _interopRequireDefault(_main43);\n\nvar _main45 = __webpack_require__(\"u11m\");\n\nvar _main46 = _interopRequireDefault(_main45);\n\nvar _main47 = __webpack_require__(\"PVDd\");\n\nvar _main48 = _interopRequireDefault(_main47);\n\nvar _main49 = __webpack_require__(\"orGh\");\n\nvar _main50 = _interopRequireDefault(_main49);\n\nvar _main51 = __webpack_require__(\"DXj3\");\n\nvar _main52 = _interopRequireDefault(_main51);\n\nvar _main53 = __webpack_require__(\"F9XD\");\n\nvar _main54 = _interopRequireDefault(_main53);\n\nvar _main55 = __webpack_require__(\"l22g\");\n\nvar _main56 = _interopRequireDefault(_main55);\n\nvar _main57 = __webpack_require__(\"i5WX\");\n\nvar _main58 = _interopRequireDefault(_main57);\n\nvar _main59 = __webpack_require__(\"yxA3\");\n\nvar _main60 = _interopRequireDefault(_main59);\n\nvar _main61 = __webpack_require__(\"C4/Y\");\n\nvar _main62 = _interopRequireDefault(_main61);\n\nvar _main63 = __webpack_require__(\"4VVj\");\n\nvar _main64 = _interopRequireDefault(_main63);\n\nvar _main65 = __webpack_require__(\"lL8I\");\n\nvar _main66 = _interopRequireDefault(_main65);\n\nvar _main67 = __webpack_require__(\"tqfx\");\n\nvar _main68 = _interopRequireDefault(_main67);\n\nvar _main69 = __webpack_require__(\"f5/6\");\n\nvar _main70 = _interopRequireDefault(_main69);\n\nvar _main71 = __webpack_require__(\"NnN2\");\n\nvar _main72 = _interopRequireDefault(_main71);\n\nvar _main73 = __webpack_require__(\"5XoY\");\n\nvar _main74 = _interopRequireDefault(_main73);\n\nvar _main75 = __webpack_require__(\"2eOn\");\n\nvar _main76 = _interopRequireDefault(_main75);\n\nvar _main77 = __webpack_require__(\"Mzdc\");\n\nvar _main78 = _interopRequireDefault(_main77);\n\nvar _main79 = __webpack_require__(\"EqrE\");\n\nvar _main80 = _interopRequireDefault(_main79);\n\nvar _main81 = __webpack_require__(\"CZpf\");\n\nvar _main82 = _interopRequireDefault(_main81);\n\nvar _main83 = __webpack_require__(\"PtbP\");\n\nvar _main84 = _interopRequireDefault(_main83);\n\nvar _main85 = __webpack_require__(\"mgOX\");\n\nvar _main86 = _interopRequireDefault(_main85);\n\nvar _main87 = __webpack_require__(\"RTOQ\");\n\nvar _main88 = _interopRequireDefault(_main87);\n\nvar _main89 = __webpack_require__(\"fKfM\");\n\nvar _main90 = _interopRequireDefault(_main89);\n\nvar _main91 = __webpack_require__(\"Z2ka\");\n\nvar _main92 = _interopRequireDefault(_main91);\n\nvar _main93 = __webpack_require__(\"PFd7\");\n\nvar _main94 = _interopRequireDefault(_main93);\n\nvar _main95 = __webpack_require__(\"D+Rp\");\n\nvar _main96 = _interopRequireDefault(_main95);\n\nvar _main97 = __webpack_require__(\"KwMc\");\n\nvar _main98 = _interopRequireDefault(_main97);\n\nvar _main99 = __webpack_require__(\"yuUt\");\n\nvar _main100 = _interopRequireDefault(_main99);\n\nvar _main101 = __webpack_require__(\"Xu5d\");\n\nvar _main102 = _interopRequireDefault(_main101);\n\nvar _main103 = __webpack_require__(\"s3YC\");\n\nvar _main104 = _interopRequireDefault(_main103);\n\nvar _main105 = __webpack_require__(\"+k1c\");\n\nvar _main106 = _interopRequireDefault(_main105);\n\nvar _main107 = __webpack_require__(\"Zwca\");\n\nvar _main108 = _interopRequireDefault(_main107);\n\nvar _main109 = __webpack_require__(\"jbQJ\");\n\nvar _main110 = _interopRequireDefault(_main109);\n\nvar _main111 = __webpack_require__(\"iXRB\");\n\nvar _main112 = _interopRequireDefault(_main111);\n\nvar _main113 = __webpack_require__(\"MHtb\");\n\nvar _main114 = _interopRequireDefault(_main113);\n\nvar _main115 = __webpack_require__(\"9fKf\");\n\nvar _main116 = _interopRequireDefault(_main115);\n\nvar _main117 = __webpack_require__(\"CH/3\");\n\nvar _main118 = _interopRequireDefault(_main117);\n\nvar _main119 = __webpack_require__(\"dQZv\");\n\nvar _main120 = _interopRequireDefault(_main119);\n\nvar _main121 = __webpack_require__(\"Qvhd\");\n\nvar _main122 = _interopRequireDefault(_main121);\n\nvar _main123 = __webpack_require__(\"wfUv\");\n\nvar _main124 = _interopRequireDefault(_main123);\n\nvar _main125 = __webpack_require__(\"gOR3\");\n\nvar _main126 = _interopRequireDefault(_main125);\n\nvar _main127 = __webpack_require__(\"2BvZ\");\n\nvar _main128 = _interopRequireDefault(_main127);\n\nvar _main129 = __webpack_require__(\"cHKD\");\n\nvar _main130 = _interopRequireDefault(_main129);\n\nvar _main131 = __webpack_require__(\"I0Rb\");\n\nvar _main132 = _interopRequireDefault(_main131);\n\nvar _main133 = __webpack_require__(\"XA+Y\");\n\nvar _main134 = _interopRequireDefault(_main133);\n\nvar _main135 = __webpack_require__(\"6iMZ\");\n\nvar _main136 = _interopRequireDefault(_main135);\n\nvar _main137 = __webpack_require__(\"3V1W\");\n\nvar _main138 = _interopRequireDefault(_main137);\n\nvar _main139 = __webpack_require__(\"ukGU\");\n\nvar _main140 = _interopRequireDefault(_main139);\n\nvar _main141 = __webpack_require__(\"dFYk\");\n\nvar _main142 = _interopRequireDefault(_main141);\n\nvar _main143 = __webpack_require__(\"9PxB\");\n\nvar _main144 = _interopRequireDefault(_main143);\n\nvar _main145 = __webpack_require__(\"p5De\");\n\nvar _main146 = _interopRequireDefault(_main145);\n\nvar _main147 = __webpack_require__(\"lHz6\");\n\nvar _main148 = _interopRequireDefault(_main147);\n\nvar _main149 = __webpack_require__(\"v1pR\");\n\nvar _main150 = _interopRequireDefault(_main149);\n\nvar _main151 = __webpack_require__(\"dgvd\");\n\nvar _main152 = _interopRequireDefault(_main151);\n\nvar _main153 = __webpack_require__(\"cZ/o\");\n\nvar _main154 = _interopRequireDefault(_main153);\n\nvar _main155 = __webpack_require__(\"9BMC\");\n\nvar _main156 = _interopRequireDefault(_main155);\n\nvar _main157 = __webpack_require__(\"U79u\");\n\nvar _main158 = _interopRequireDefault(_main157);\n\nvar _main159 = __webpack_require__(\"+I9t\");\n\nvar _main160 = _interopRequireDefault(_main159);\n\nvar _main161 = __webpack_require__(\"koiO\");\n\nvar _main162 = _interopRequireDefault(_main161);\n\nvar _main163 = __webpack_require__(\"anaZ\");\n\nvar _main164 = _interopRequireDefault(_main163);\n\nvar _main165 = __webpack_require__(\"tbjN\");\n\nvar _main166 = _interopRequireDefault(_main165);\n\nvar _main167 = __webpack_require__(\"ka6z\");\n\nvar _main168 = _interopRequireDefault(_main167);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// load all grobal icons\nvar files = __webpack_require__(\"vz3G\");\nfiles.keys().forEach(files);\n\n/***/ }),\n\n/***/ \"i5WX\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-content-heading',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"rEGq\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"iJlY\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FileInput = function (_Component) {\n _inherits(FileInput, _Component);\n\n function FileInput(el) {\n _classCallCheck(this, FileInput);\n\n var _this = _possibleConstructorReturn(this, (FileInput.__proto__ || Object.getPrototypeOf(FileInput)).call(this, el));\n\n _this.captionContainerSelector = '.js-file-input-caption';\n _this.defaultCaption = 'No file chosen';\n _this.init();\n return _this;\n }\n\n _createClass(FileInput, [{\n key: 'init',\n value: function init() {\n this.fileControl = this.container.querySelector('input[type=\"file\"]');\n this.captionContainer = this.container.querySelector(this.captionContainerSelector);\n if (!this.fileControl || !this.captionContainer) {\n return;\n }\n\n this.fileControl.setAttribute('style', '\\n width: 0.1px;\\n height: 0.1px;\\n opacity: 0;\\n overflow: hidden;\\n position: absolute;\\n z-index: -1;\\n ');\n\n this.caption = document.createElement('span');\n this.captionContainer.appendChild(this.caption);\n\n this.fileControl.addEventListener('change', this.onFileChange.bind(this));\n this.updateCaption();\n }\n }, {\n key: 'onFileChange',\n value: function onFileChange(e) {\n this.updateCaption();\n }\n }, {\n key: 'updateCaption',\n value: function updateCaption() {\n var caption = '';\n if (this.fileControl.files && this.fileControl.files.length > 1) {\n caption = this.fileControl.files.length + ' files selected';\n } else {\n caption = this.fileControl.value.split('\\\\').pop();\n }\n if (caption) {\n this.caption.innerHTML = caption;\n } else {\n this.caption.innerHTML = this.defaultCaption;\n }\n }\n }]);\n\n return FileInput;\n}(_generic2.default);\n\nexports.default = FileInput;\n\n/***/ }),\n\n/***/ \"iTDv\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"iXRB\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"azr3\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"iwUV\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-basket\",\n \"use\": \"icon-basket-usage\",\n \"viewBox\": \"0 0 242 226\",\n \"content\": \"\\r\\n\\r\\n\\t\\r\\n\\t\\r\\n\\t\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"jIbX\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-arrow-down\",\n \"use\": \"icon-arrow-down-usage\",\n \"viewBox\": \"215.909 218.314 13.001 8.194\",\n \"content\": \"\\r\\n\\r\\n\\t\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"jMIp\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = __webpack_require__(\"U7Dy\");\n\nvar _exception = __webpack_require__(\"Cz5H\");\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = __webpack_require__(\"oB/h\");\n\nvar _decorators = __webpack_require__(\"fsM1\");\n\nvar _logger = __webpack_require__(\"aiZw\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar VERSION = '4.0.10';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 7;\n\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQTRDLFNBQVM7O3lCQUMvQixhQUFhOzs7O3VCQUNFLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNuQyxVQUFVOzs7O0FBRXRCLElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQzs7QUFDekIsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxVQUFVO0NBQ2QsQ0FBQzs7O0FBRUYsSUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFNBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsTUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLE1BQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixNQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGtDQUF1QixJQUFJLENBQUMsQ0FBQztBQUM3Qix3Q0FBMEIsSUFBSSxDQUFDLENBQUM7Q0FDakM7O0FBRUQscUJBQXFCLENBQUMsU0FBUyxHQUFHO0FBQ2hDLGFBQVcsRUFBRSxxQkFBcUI7O0FBRWxDLFFBQU0scUJBQVE7QUFDZCxLQUFHLEVBQUUsb0JBQU8sR0FBRzs7QUFFZixnQkFBYyxFQUFFLHdCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDakMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQUUsY0FBTSwyQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO09BQUU7QUFDM0Usb0JBQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM1QixNQUFNO0FBQ0wsVUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDekI7R0FDRjtBQUNELGtCQUFnQixFQUFFLDBCQUFTLElBQUksRUFBRTtBQUMvQixXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDM0I7O0FBRUQsaUJBQWUsRUFBRSx5QkFBUyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ3ZDLFFBQUksZ0JBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxvQkFBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCLE1BQU07QUFDTCxVQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtBQUNsQyxjQUFNLHlFQUEwRCxJQUFJLG9CQUFpQixDQUFDO09BQ3ZGO0FBQ0QsVUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDL0I7R0FDRjtBQUNELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUI7O0FBRUQsbUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFBRSxjQUFNLDJCQUFjLDRDQUE0QyxDQUFDLENBQUM7T0FBRTtBQUM5RSxvQkFBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQy9CLE1BQU07QUFDTCxVQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUM1QjtHQUNGO0FBQ0QscUJBQW1CLEVBQUUsNkJBQVMsSUFBSSxFQUFFO0FBQ2xDLFdBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUM5QjtDQUNGLENBQUM7O0FBRUssSUFBSSxHQUFHLEdBQUcsb0JBQU8sR0FBRyxDQUFDOzs7UUFFcEIsV0FBVztRQUFFLE1BQU0iLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlRnJhbWUsIGV4dGVuZCwgdG9TdHJpbmd9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdEhlbHBlcnN9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnN9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnNC4wLjEwJztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDc7XG5cbmV4cG9ydCBjb25zdCBSRVZJU0lPTl9DSEFOR0VTID0ge1xuICAxOiAnPD0gMS4wLnJjLjInLCAvLyAxLjAucmMuMiBpcyBhY3R1YWxseSByZXYyIGJ1dCBkb2Vzbid0IHJlcG9ydCBpdFxuICAyOiAnPT0gMS4wLjAtcmMuMycsXG4gIDM6ICc9PSAxLjAuMC1yYy40JyxcbiAgNDogJz09IDEueC54JyxcbiAgNTogJz09IDIuMC4wLWFscGhhLngnLFxuICA2OiAnPj0gMi4wLjAtYmV0YS4xJyxcbiAgNzogJz49IDQuMC4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuaGVscGVycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmhlbHBlcnNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lLCBwYXJ0aWFsKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGV4dGVuZCh0aGlzLnBhcnRpYWxzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiBwYXJ0aWFsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKGBBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgcGFydGlhbCBjYWxsZWQgXCIke25hbWV9XCIgYXMgdW5kZWZpbmVkYCk7XG4gICAgICB9XG4gICAgICB0aGlzLnBhcnRpYWxzW25hbWVdID0gcGFydGlhbDtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMucGFydGlhbHNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJEZWNvcmF0b3I6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGRlY29yYXRvcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHtjcmVhdGVGcmFtZSwgbG9nZ2VyfTtcbiJdfQ==\n\n\n/***/ }),\n\n/***/ \"jbQJ\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"jcE8\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-jg-leaderboard',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"TCAm\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\n/***/ }),\n\n/***/ \"jcE8\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"kBgj\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _flatpickr = __webpack_require__(\"rocC\");\n\nvar _flatpickr2 = _interopRequireDefault(_flatpickr);\n\nvar _moment = __webpack_require__(\"PJh5\");\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _baseDatepickerConfig = __webpack_require__(\"qOS5\");\n\nvar _baseDatepickerConfig2 = _interopRequireDefault(_baseDatepickerConfig);\n\nvar _createEvent = __webpack_require__(\"G0mC\");\n\nvar _createEvent2 = _interopRequireDefault(_createEvent);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar RangePicker = function (_Component) {\n _inherits(RangePicker, _Component);\n\n function RangePicker(el) {\n _classCallCheck(this, RangePicker);\n\n var _this = _possibleConstructorReturn(this, (RangePicker.__proto__ || Object.getPrototypeOf(RangePicker)).call(this, el));\n\n _this.init();\n _this.$container = (0, _jquery2.default)(_this.container);\n\n _this.wrapper = null;\n var $wrapper = _this.$container.parent('.js-rangepicker-wrapper');\n if ($wrapper.length) {\n _this.wrapper = $wrapper[0];\n }\n return _this;\n }\n\n _createClass(RangePicker, [{\n key: 'init',\n value: function init() {\n var _this2 = this;\n\n this.currentValue = this.container.value;\n var rangePickerElement = this.container.cloneNode(false);\n rangePickerElement.classList.add('flatpickr');\n this.container.parentNode.insertBefore(rangePickerElement, this.container);\n var calendar = new _flatpickr2.default(rangePickerElement, _extends({}, _baseDatepickerConfig2.default, {\n dateFormat: 'j M y',\n mode: \"range\",\n disableMobile: true,\n clickOpens: false,\n onClose: function onClose(value) {\n var newValue = _this2.serializeValue(value);\n if (newValue !== _this2.currentValue) {\n _this2.currentValue = newValue;\n _this2.change(newValue);\n }\n if (_this2.wrapper) {\n _this2.wrapper.classList.remove('is-opened');\n }\n },\n onOpen: function onOpen() {\n if (_this2.wrapper) {\n _this2.wrapper.classList.add('is-opened');\n }\n }\n }));\n rangePickerElement.addEventListener(\"change\", function (e) {\n e.stopPropagation();\n });\n rangePickerElement.addEventListener('click', function (e) {\n calendar.toggle();\n });\n this.container.setAttribute('type', 'hidden');\n }\n }, {\n key: 'change',\n value: function change(newValue) {\n this.container.value = newValue;\n this.container.dispatchEvent((0, _createEvent2.default)(\"change\"));\n this.container.dispatchEvent((0, _createEvent2.default)(\"input\"));\n }\n }, {\n key: 'serializeValue',\n value: function serializeValue(dates) {\n if (dates.length === 2) {\n return dates.map(function (item) {\n return (0, _moment2.default)(item).format('YYYY-MM-DD');\n }).join('|');\n } else {\n return '';\n }\n }\n }]);\n\n return RangePicker;\n}(_generic2.default);\n\nexports.default = RangePicker;\n\n\nRangePicker.id = 0;\n\n/***/ }),\n\n/***/ \"kXhy\":\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\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _appInstance = __webpack_require__(\"546j\");\n\nvar _appInstance2 = _interopRequireDefault(_appInstance);\n\nvar _stickyfilljs = __webpack_require__(\"U7DK\");\n\nvar _stickyfilljs2 = _interopRequireDefault(_stickyfilljs);\n\nvar _table = __webpack_require__(\"xule\");\n\nvar _table2 = _interopRequireDefault(_table);\n\nvar _basketManager = __webpack_require__(\"K23W\");\n\nvar _basketManager2 = _interopRequireDefault(_basketManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar PaymentSummary = function (_Component) {\n _inherits(PaymentSummary, _Component);\n\n function PaymentSummary(el) {\n _classCallCheck(this, PaymentSummary);\n\n var _this = _possibleConstructorReturn(this, (PaymentSummary.__proto__ || Object.getPrototypeOf(PaymentSummary)).call(this, el));\n\n _this.onProductChange = _this.onProductChange.bind(_this);\n _this.onDonationChange = _this.onDonationChange.bind(_this);\n _this.renderContainerSelector = '.js-payment-summary__container';\n _this.productSelector = '.js-payment-summary__product';\n _this.productOptionSelector = '.js-payment-summary__product-option';\n _this.productEnableSelector = '.js-payment-summary__add-product';\n _this.productPriceSelector = '.js-payment-summary__product-price';\n\n _this.init();\n return _this;\n }\n\n _createClass(PaymentSummary, [{\n key: 'init',\n value: function init() {\n this.renderContainer = this.container.querySelector(this.renderContainerSelector);\n this.productNodes = this.container.querySelectorAll(this.productSelector);\n\n _stickyfilljs2.default.add(this.renderContainer);\n\n _appInstance2.default.addListener('donateAmount:input', this.onDonationChange.bind(this));\n\n for (var i = 0; i < this.productNodes.length; i++) {\n this.productNodes[i].addEventListener('change', this.onProductChange);\n }\n\n this.data = this.getInitialData();\n this.calcTotal();\n this.render();\n }\n }, {\n key: 'getInitialData',\n value: function getInitialData() {\n var _this2 = this;\n\n var initialDataString = this.container.getAttribute('data-payment-summary');\n var initialData = {};\n try {\n initialData = JSON.parse(initialDataString);\n } catch (e) {\n console.log(e);\n }\n\n if ((typeof initialData === 'undefined' ? 'undefined' : _typeof(initialData)) === 'object') {\n var _loop = function _loop(i) {\n var productInfoObj = {};\n\n try {\n productInfoObj = JSON.parse(_this2.productNodes[i].getAttribute('data-payment-summary-product'));\n productInfoObj.id = _this2.productNodes[i].getAttribute('data-payment-summary-product-id');\n } catch (e) {\n console.log(e);\n }\n var productRadio = _this2.productNodes[i].querySelector(_this2.productEnableSelector);\n productInfoObj.isAdded = productRadio === null || productRadio && productRadio.checked;\n\n var optionNodes = [].concat(_toConsumableArray(_this2.productNodes[i].querySelectorAll(_this2.productOptionSelector)));\n\n productInfoObj.options = _this2.getInitialOptions(optionNodes);\n productInfoObj.preparedOptions = _basketManager2.default.prepareItemOptions(productInfoObj.options);\n productInfoObj.priceNode = _this2.productNodes[i].querySelector(_this2.productPriceSelector);\n\n initialData.items.forEach(function (item) {\n if (typeof item.products === 'undefined') {\n item.products = [];\n }\n if (item.id.toString() === productInfoObj.attendeeId.toString()) {\n item.products.push(productInfoObj);\n }\n });\n };\n\n for (var i = 0; i < this.productNodes.length; i++) {\n _loop(i);\n }\n }\n\n return initialData;\n }\n }, {\n key: 'getInitialOptions',\n value: function getInitialOptions(optionNodes) {\n var options = [];\n optionNodes.forEach(function (option) {\n var optionId = option.getAttribute('data-shop-item-option-id');\n options.push({ id: optionId, element: option });\n });\n\n return options;\n }\n }, {\n key: 'render',\n value: function render() {\n this.renderContainer.innerHTML = (0, _table2.default)(this.data);\n }\n }, {\n key: 'onProductChange',\n value: function onProductChange(e) {\n var _this3 = this;\n\n var productNode = e.currentTarget;\n\n this.getProductInfo(productNode).then(function () {\n _this3.calcTotal();\n _this3.render();\n });\n }\n }, {\n key: 'getProductInfo',\n value: function getProductInfo(productNode) {\n var _this4 = this;\n\n var productRadio = productNode.querySelector(this.productEnableSelector);\n var productId = productNode.getAttribute('data-payment-summary-product-id');\n var productInfoObj = {};\n\n try {\n productInfoObj = JSON.parse(productNode.getAttribute('data-payment-summary-product'));\n } catch (e) {\n console.log(e);\n }\n\n var attendeeId = productInfoObj.attendeeId;\n\n var productInTree = this.getProductInTreeByIds(productId, attendeeId);\n productInTree.isAdded = productRadio === null || productRadio && productRadio.checked;\n\n if (productInTree.isAdded) {\n var requestBody = this.getPriceRequestBody(productInTree);\n\n return _basketManager2.default.doItemPriceRequest(requestBody).then(function (result) {\n productInTree.cost = result.Product.Price;\n productInTree.visualCost = result.Product.FormattedPrice;\n _this4.updatePriceNode(productInTree);\n });\n }\n return Promise.resolve();\n }\n }, {\n key: 'getProductInTreeByIds',\n value: function getProductInTreeByIds(productId, attendeeId) {\n var _this5 = this;\n\n var productInTree = void 0;\n\n this.data.items.some(function (item, i) {\n if (item.id.toString() === attendeeId.toString()) {\n item.products.some(function (product, j) {\n if (product.id.toString() === productId.toString()) {\n productInTree = _this5.data.items[i].products[j];\n return true;\n }\n return false;\n });\n return true;\n }\n return false;\n });\n\n return productInTree;\n }\n }, {\n key: 'updatePriceNode',\n value: function updatePriceNode(product) {\n product.priceNode.innerHTML = product.visualCost;\n }\n }, {\n key: 'calcTotal',\n value: function calcTotal() {\n var sum = 0;\n this.data.items.forEach(function (item) {\n sum += item.cost;\n if (item.products) {\n item.products.forEach(function (product) {\n if (product.isAdded) {\n sum += product.cost;\n }\n });\n }\n });\n\n if (this.data.donation) {\n sum += this.data.donation.cost;\n }\n\n this.data.total = {\n cost: sum,\n visualCost: sum === 0 ? 'FREE' : '' + this.data.currency + Number(sum).toFixed(2)\n };\n }\n }, {\n key: 'onDonationChange',\n value: function onDonationChange(value) {\n var donationVal = parseFloat(value) > 0 ? parseFloat(value) : 0;\n this.data.donation = this.getDonationObject(donationVal);\n this.calcTotal();\n this.render();\n }\n }, {\n key: 'getDonationObject',\n value: function getDonationObject(donationVal) {\n if (donationVal === 0) {\n return null;\n }\n\n return {\n cost: donationVal,\n visualCost: '' + this.data.currency + donationVal\n };\n }\n }, {\n key: 'getPriceRequestBody',\n value: function getPriceRequestBody(product) {\n var result = {\n Id: product.id\n };\n product.preparedOptions = _basketManager2.default.prepareItemOptions(product.options);\n if (product.preparedOptions.length) {\n result.Options = product.preparedOptions;\n }\n result.Quantity = 1;\n return result;\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n _get(PaymentSummary.prototype.__proto__ || Object.getPrototypeOf(PaymentSummary.prototype), 'destroy', this).call(this);\n\n for (var i = 0; i < this.productNodes.length; i++) {\n this.productNodes[i].removeEventListener('change', this.onProductChange);\n }\n this.container.classList.remove('js-payment-summary-inited');\n }\n }]);\n\n return PaymentSummary;\n}(_generic2.default);\n\nexports.default = PaymentSummary;\n\n/***/ }),\n\n/***/ \"ka6z\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"YW3G\");\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-account',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"ftiw\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\n/***/ }),\n\n/***/ \"koiO\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-gift-aid',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"KcaZ\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"kvc/\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*! lazysizes - v4.0.0-rc3 */\n!function(a,b){var c=function(){b(a.lazySizes),a.removeEventListener(\"lazyunveilread\",c,!0)};b=b.bind(null,a,a.document),\"object\"==typeof module&&module.exports?b(__webpack_require__(\"B2fU\")):a.lazySizes?c():a.addEventListener(\"lazyunveilread\",c,!0)}(window,function(a,b,c){\"use strict\";var d,e=b.createElement(\"img\");!(\"srcset\"in e)||\"sizes\"in e||a.HTMLPictureElement||(d=/^picture$/i,b.addEventListener(\"lazybeforeunveil\",function(a){if(a.detail.instance==c){var e,f,g,h,i,j,k;!a.defaultPrevented&&!lazySizesConfig.noIOSFix&&(e=a.target)&&(g=e.getAttribute(lazySizesConfig.srcsetAttr))&&(f=e.parentNode)&&((i=d.test(f.nodeName||\"\"))||(h=e.getAttribute(\"sizes\")||e.getAttribute(lazySizesConfig.sizesAttr)))&&(j=i?f:b.createElement(\"picture\"),e._lazyImgSrc||Object.defineProperty(e,\"_lazyImgSrc\",{value:b.createElement(\"source\"),writable:!0}),k=e._lazyImgSrc,h&&k.setAttribute(\"sizes\",h),k.setAttribute(lazySizesConfig.srcsetAttr,g),e.setAttribute(\"data-pfsrcset\",g),e.removeAttribute(lazySizesConfig.srcsetAttr),i||(f.insertBefore(j,e),j.appendChild(e)),j.insertBefore(k,e))}}))});\n\n/***/ }),\n\n/***/ \"l22g\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"d+Bm\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"lHz6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"H8Bx\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"lKHb\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-web\",\n \"use\": \"icon-web-usage\",\n \"viewBox\": \"171 108 314.1 314.1\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"lL8I\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"2jxP\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-donate-menu-trigger',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"1WoH\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"mYfr\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"mgOX\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"/emb\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"nQRT\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"nRRp\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"LJNT\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"njw8\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"noH7\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-header-angle\",\n \"use\": \"icon-header-angle-usage\",\n \"viewBox\": \"0 0 907.1 283.5\",\n \"content\": \"\\r\\n\\t\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"oB/h\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = __webpack_require__(\"at5K\");\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = __webpack_require__(\"1TTl\");\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = __webpack_require__(\"fvMr\");\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = __webpack_require__(\"U1TO\");\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = __webpack_require__(\"xDSz\");\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = __webpack_require__(\"b/95\");\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = __webpack_require__(\"Gg7h\");\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7eUNBQXVDLGdDQUFnQzs7OzsyQkFDOUMsZ0JBQWdCOzs7O29DQUNQLDBCQUEwQjs7Ozt5QkFDckMsY0FBYzs7OzswQkFDYixlQUFlOzs7OzZCQUNaLGtCQUFrQjs7OzsyQkFDcEIsZ0JBQWdCOzs7O0FBRWxDLFNBQVMsc0JBQXNCLENBQUMsUUFBUSxFQUFFO0FBQy9DLHlDQUEyQixRQUFRLENBQUMsQ0FBQztBQUNyQywyQkFBYSxRQUFRLENBQUMsQ0FBQztBQUN2QixvQ0FBc0IsUUFBUSxDQUFDLENBQUM7QUFDaEMseUJBQVcsUUFBUSxDQUFDLENBQUM7QUFDckIsMEJBQVksUUFBUSxDQUFDLENBQUM7QUFDdEIsNkJBQWUsUUFBUSxDQUFDLENBQUM7QUFDekIsMkJBQWEsUUFBUSxDQUFDLENBQUM7Q0FDeEIiLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZWdpc3RlckJsb2NrSGVscGVyTWlzc2luZyBmcm9tICcuL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcnO1xuaW1wb3J0IHJlZ2lzdGVyRWFjaCBmcm9tICcuL2hlbHBlcnMvZWFjaCc7XG5pbXBvcnQgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJJZiBmcm9tICcuL2hlbHBlcnMvaWYnO1xuaW1wb3J0IHJlZ2lzdGVyTG9nIGZyb20gJy4vaGVscGVycy9sb2cnO1xuaW1wb3J0IHJlZ2lzdGVyTG9va3VwIGZyb20gJy4vaGVscGVycy9sb29rdXAnO1xuaW1wb3J0IHJlZ2lzdGVyV2l0aCBmcm9tICcuL2hlbHBlcnMvd2l0aCc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckRlZmF1bHRIZWxwZXJzKGluc3RhbmNlKSB7XG4gIHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJFYWNoKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJJZihpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyTG9nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb29rdXAoaW5zdGFuY2UpO1xuICByZWdpc3RlcldpdGgoaW5zdGFuY2UpO1xufVxuIl19\n\n\n/***/ }),\n\n/***/ \"orGh\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"nQRT\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"ov/v\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _scroller = __webpack_require__(\"FTYA\");\n\nvar _scroller2 = _interopRequireDefault(_scroller);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MoveTo = function (_Component) {\n _inherits(MoveTo, _Component);\n\n function MoveTo(el) {\n _classCallCheck(this, MoveTo);\n\n var _this = _possibleConstructorReturn(this, (MoveTo.__proto__ || Object.getPrototypeOf(MoveTo)).call(this, el));\n\n _this.init();\n return _this;\n }\n\n _createClass(MoveTo, [{\n key: 'init',\n value: function init() {\n var _this2 = this;\n\n this.triggers = document.querySelectorAll('.js-move-to-trigger');\n this.moveToBlock = document.querySelector('.js-move-to-block');\n this.triggers.forEach(function (x) {\n return x.addEventListener('click', _this2.moveTo.bind(_this2));\n });\n }\n }, {\n key: 'moveTo',\n value: function moveTo() {\n return _scroller2.default.scrollToElement(this.moveToBlock);\n }\n }]);\n\n return MoveTo;\n}(_generic2.default);\n\nexports.default = MoveTo;\n\n\nMoveTo.id = 0;\n\n/***/ }),\n\n/***/ \"p5De\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"4wLO\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"pEDh\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"pYpB\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"B7NF\");\n\nvar _core2 = _interopRequireDefault(_core);\n\n__webpack_require__(\"LfxX\");\n\n__webpack_require__(\"s7RI\");\n\n__webpack_require__(\"VsEB\");\n\n__webpack_require__(\"Isn1\");\n\n__webpack_require__(\"B2fU\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"pvIt\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _appInstance = __webpack_require__(\"546j\");\n\nvar _appInstance2 = _interopRequireDefault(_appInstance);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar PinSwitcher = function (_Component) {\n _inherits(PinSwitcher, _Component);\n\n function PinSwitcher(el) {\n _classCallCheck(this, PinSwitcher);\n\n var _this = _possibleConstructorReturn(this, (PinSwitcher.__proto__ || Object.getPrototypeOf(PinSwitcher)).call(this, el));\n\n _this.switcherItemSelector = '.js-google-pin-switcher-item';\n _this.init();\n return _this;\n }\n\n _createClass(PinSwitcher, [{\n key: 'init',\n value: function init() {\n var _this2 = this;\n\n this.mapId = this.container.getAttribute('data-map-id');\n var items = [].concat(_toConsumableArray(this.container.querySelectorAll(this.switcherItemSelector)));\n items.forEach(function (item, index) {\n item.addEventListener('click', function () {\n _appInstance2.default.emitEvent('map:' + _this2.mapId, [index]);\n });\n });\n }\n }]);\n\n return PinSwitcher;\n}(_generic2.default);\n\nexports.default = PinSwitcher;\n\n/***/ }),\n\n/***/ \"pw1P\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MOBILE_MENU_ID = undefined;\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _menuManager = __webpack_require__(\"C4F1\");\n\nvar _menuManager2 = _interopRequireDefault(_menuManager);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MOBILE_MENU_ID = exports.MOBILE_MENU_ID = 'mobile';\n\nvar Hamburger = function (_Component) {\n _inherits(Hamburger, _Component);\n\n function Hamburger(el) {\n _classCallCheck(this, Hamburger);\n\n var _this = _possibleConstructorReturn(this, (Hamburger.__proto__ || Object.getPrototypeOf(Hamburger)).call(this, el));\n\n _this.defineVariables();\n _this.initHamburger();\n return _this;\n }\n\n _createClass(Hamburger, [{\n key: 'defineVariables',\n value: function defineVariables() {\n this.menuId = MOBILE_MENU_ID;\n\n this.isOpened = false;\n this.$hamburger = (0, _jquery2.default)(\".js-hamburger\");\n this.$header = (0, _jquery2.default)(\".js-header\");\n this.$body = (0, _jquery2.default)(\"body\");\n }\n }, {\n key: 'initHamburger',\n value: function initHamburger() {\n this.$hamburger.on('click', this.toggleMenu.bind(this));\n\n _menuManager2.default.init(this.menuId, {\n default: {\n level: 0,\n close: this.close.bind(this),\n open: this.open.bind(this)\n },\n desktop: {\n isEnabled: false\n }\n });\n }\n }, {\n key: 'toggleMenu',\n value: function toggleMenu() {\n if (this.isOpened) {\n _menuManager2.default.close(this.menuId);\n } else {\n _menuManager2.default.open(this.menuId);\n }\n }\n }, {\n key: 'open',\n value: function open() {\n this.isOpened = true;\n this.$header.addClass(\"is-mobile-open\");\n }\n }, {\n key: 'close',\n value: function close() {\n this.isOpened = false;\n this.$header.removeClass(\"is-mobile-open\");\n }\n }]);\n\n return Hamburger;\n}(_generic2.default);\n\nexports.default = Hamburger;\n\n\nHamburger.id = 0;\n\n/***/ }),\n\n/***/ \"q+S6\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-doc-doc\",\n \"use\": \"icon-doc-doc-usage\",\n \"viewBox\": \"0 0 30.4 32.69\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"qExC\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-arrow-down-thin\",\n \"use\": \"icon-arrow-down-thin-usage\",\n \"viewBox\": \"0 0 62.58 36.29\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"qOS5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n static: true,\n onReady: function onReady() {\n (0, _jquery2.default)(window).on('flatpickr:clear', _jquery2.default.proxy(function () {\n this.clear();\n }, this));\n },\n\n prevArrow: '',\n nextArrow: ''\n};\n\nexports.default = config;\n\n/***/ }),\n\n/***/ \"qfOY\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* global window */\n\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n var root = typeof global !== 'undefined' ? global : window,\n $Handlebars = root.Handlebars;\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (root.Handlebars === Handlebars) {\n root.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOztBQUVsQyxNQUFJLElBQUksR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLEdBQUcsTUFBTSxHQUFHLE1BQU07TUFDdEQsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7O0FBRWxDLFlBQVUsQ0FBQyxVQUFVLEdBQUcsWUFBVztBQUNqQyxRQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO0FBQ2xDLFVBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQy9CO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIHdpbmRvdyAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oSGFuZGxlYmFycykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBsZXQgcm9vdCA9IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93LFxuICAgICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ==\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(\"DuR2\")))\n\n/***/ }),\n\n/***/ \"r0Qx\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"wYJ3\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"rEGq\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ContentHeading = function (_Component) {\n _inherits(ContentHeading, _Component);\n\n function ContentHeading(el) {\n _classCallCheck(this, ContentHeading);\n\n var _this = _possibleConstructorReturn(this, (ContentHeading.__proto__ || Object.getPrototypeOf(ContentHeading)).call(this, el));\n\n _this.init();\n _this.maxNestedLevelsCount = 5;\n return _this;\n }\n\n _createClass(ContentHeading, [{\n key: 'init',\n value: function init() {\n var parentModule = null;\n var parent = this.container;\n var levelCount = 0;\n while (parent.parentElement !== null) {\n parent = parent.parentElement;\n\n if (parent.classList.contains('module') && parent.parentElement && parent.parentElement.classList.contains('module--content')) {\n parentModule = parent;\n break;\n }\n\n levelCount++;\n if (levelCount > this.maxNestedLevelsCount) {\n break;\n }\n }\n\n if (parentModule) {\n parentModule.classList.add('module--content-heading');\n }\n }\n }]);\n\n return ContentHeading;\n}(_generic2.default);\n\nexports.default = ContentHeading;\n\n/***/ }),\n\n/***/ \"raTT\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"H2+J\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"rsHF\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"s3YC\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-jg-total',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"WG5u\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\n/***/ }),\n\n/***/ \"s7+d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _appInstance = __webpack_require__(\"546j\");\n\nvar _appInstance2 = _interopRequireDefault(_appInstance);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar RoundDonation = function (_Component) {\n _inherits(RoundDonation, _Component);\n\n function RoundDonation(el) {\n _classCallCheck(this, RoundDonation);\n\n var _this = _possibleConstructorReturn(this, (RoundDonation.__proto__ || Object.getPrototypeOf(RoundDonation)).call(this, el));\n\n _this.options = JSON.parse(_this.container.getAttribute('data-round-donation-options'));\n _this.radios = [].concat(_toConsumableArray(_this.container.querySelectorAll('.js-round-donation__radio')));\n _this.customInput = _this.container.querySelector('.js-round-donation__custom');\n _this.onChange = _this.onChange.bind(_this);\n\n _this.init();\n return _this;\n }\n\n _createClass(RoundDonation, [{\n key: 'init',\n value: function init() {\n this.container.addEventListener('change', this.onChange);\n this.customInput.addEventListener('input', this.onChange);\n\n var value = this.getValue();\n _appInstance2.default.emitEvent('donateAmount:change', [value]);\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n var value = null;\n var checkedRadio = null;\n this.radios.forEach(function (radio) {\n if (radio.checked) {\n checkedRadio = radio;\n }\n });\n\n if (checkedRadio) {\n var checkedValue = checkedRadio.value;\n if (checkedValue.toString() === this.options.customDonation.toString()) {\n value = parseFloat(this.customInput.value);\n } else if (checkedValue.toString() === this.options.noDonation.toString()) {\n value = 0;\n } else {\n value = parseFloat(checkedValue);\n }\n }\n\n return value;\n }\n }, {\n key: 'onChange',\n value: function onChange() {\n var val = this.getValue();\n _appInstance2.default.emitEvent('donateAmount:change', [val]);\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n _get(RoundDonation.prototype.__proto__ || Object.getPrototypeOf(RoundDonation.prototype), 'destroy', this).call(this);\n this.container.removeEventListener('change', this.onChange);\n this.customInput.removeEventListener('input', this.onChange);\n this.$container.removeClass('js-round-donation-inited');\n }\n }]);\n\n return RoundDonation;\n}(_generic2.default);\n\nexports.default = RoundDonation;\n\n/***/ }),\n\n/***/ \"s7RI\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*! lazysizes - v4.0.0-rc3 */\n!function(a,b){var c=function(){b(a.lazySizes),a.removeEventListener(\"lazyunveilread\",c,!0)};b=b.bind(null,a,a.document),\"object\"==typeof module&&module.exports?b(__webpack_require__(\"B2fU\")):a.lazySizes?c():a.addEventListener(\"lazyunveilread\",c,!0)}(window,function(a,b,c){\"use strict\";if(a.addEventListener){var d=/\\s+/g,e=/\\s*\\|\\s+|\\s+\\|\\s*/g,f=/^(.+?)(?:\\s+\\[\\s*(.+?)\\s*\\])?$/,g=/\\(|\\)|'/,h={contain:1,cover:1},i=function(a){var b=c.gW(a,a.parentNode);return(!a._lazysizesWidth||b>a._lazysizesWidth)&&(a._lazysizesWidth=b),a._lazysizesWidth},j=function(a){var b;return b=(getComputedStyle(a)||{getPropertyValue:function(){}}).getPropertyValue(\"background-size\"),!h[b]&&h[a.style.backgroundSize]&&(b=a.style.backgroundSize),b},k=function(a,c,g){var h=b.createElement(\"picture\"),i=c.getAttribute(lazySizesConfig.sizesAttr),j=c.getAttribute(\"data-ratio\"),k=c.getAttribute(\"data-optimumx\");c._lazybgset&&c._lazybgset.parentNode==c&&c.removeChild(c._lazybgset),Object.defineProperty(g,\"_lazybgset\",{value:c,writable:!0}),Object.defineProperty(c,\"_lazybgset\",{value:h,writable:!0}),a=a.replace(d,\" \").split(e),h.style.display=\"none\",g.className=lazySizesConfig.lazyClass,1!=a.length||i||(i=\"auto\"),a.forEach(function(a){var c=b.createElement(\"source\");i&&\"auto\"!=i&&c.setAttribute(\"sizes\",i),a.match(f)&&(c.setAttribute(lazySizesConfig.srcsetAttr,RegExp.$1),RegExp.$2&&c.setAttribute(\"media\",lazySizesConfig.customMedia[RegExp.$2]||RegExp.$2)),h.appendChild(c)}),i&&(g.setAttribute(lazySizesConfig.sizesAttr,i),c.removeAttribute(lazySizesConfig.sizesAttr),c.removeAttribute(\"sizes\")),k&&g.setAttribute(\"data-optimumx\",k),j&&g.setAttribute(\"data-ratio\",j),h.appendChild(g),c.appendChild(h)},l=function(a){if(a.target._lazybgset){var b=a.target,d=b._lazybgset,e=b.currentSrc||b.src;e&&(d.style.backgroundImage=\"url(\"+(g.test(e)?JSON.stringify(e):e)+\")\"),b._lazybgsetLoading&&(c.fire(d,\"_lazyloaded\",{},!1,!0),delete b._lazybgsetLoading)}};addEventListener(\"lazybeforeunveil\",function(a){var d,e,f;!a.defaultPrevented&&(d=a.target.getAttribute(\"data-bgset\"))&&(f=a.target,e=b.createElement(\"img\"),e.alt=\"\",e._lazybgsetLoading=!0,a.detail.firesLoad=!0,k(d,f,e),setTimeout(function(){c.loader.unveil(e),c.rAF(function(){c.fire(e,\"_lazyloaded\",{},!0,!0),e.complete&&l({target:e})})}))}),b.addEventListener(\"load\",l,!0),a.addEventListener(\"lazybeforesizes\",function(a){if(a.detail.instance==c&&a.target._lazybgset&&a.detail.dataAttr){var b=a.target._lazybgset,d=j(b);h[d]&&(a.target._lazysizesParentFit=d,c.rAF(function(){a.target.setAttribute(\"data-parent-fit\",d),a.target._lazysizesParentFit&&delete a.target._lazysizesParentFit}))}},!0),b.documentElement.addEventListener(\"lazybeforesizes\",function(a){!a.defaultPrevented&&a.target._lazybgset&&a.detail.instance==c&&(a.detail.width=i(a.target._lazybgset))})}});\n\n/***/ }),\n\n/***/ \"sJdk\":\n/***/ (function(module, exports, __webpack_require__) {\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Cleave\"] = factory();\n\telse\n\t\troot[\"Cleave\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\n\t/**\n\t * Construct a new Cleave instance by passing the configuration object\n\t *\n\t * @param {String / HTMLElement} element\n\t * @param {Object} opts\n\t */\n\tvar Cleave = function (element, opts) {\n\t var owner = this;\n\n\t if (typeof element === 'string') {\n\t owner.element = document.querySelector(element);\n\t } else {\n\t owner.element = ((typeof element.length !== 'undefined') && element.length > 0) ? element[0] : element;\n\t }\n\n\t if (!owner.element) {\n\t throw new Error('[cleave.js] Please check the element');\n\t }\n\n\t opts.initValue = owner.element.value;\n\n\t owner.properties = Cleave.DefaultProperties.assign({}, opts);\n\n\t owner.init();\n\t};\n\n\tCleave.prototype = {\n\t init: function () {\n\t var owner = this, pps = owner.properties;\n\n\t // no need to use this lib\n\t if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {\n\t owner.onInput(pps.initValue);\n\n\t return;\n\t }\n\n\t pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n\n\t owner.isAndroid = Cleave.Util.isAndroid();\n\t owner.lastInputValue = '';\n\n\t owner.onChangeListener = owner.onChange.bind(owner);\n\t owner.onKeyDownListener = owner.onKeyDown.bind(owner);\n\t owner.onCutListener = owner.onCut.bind(owner);\n\t owner.onCopyListener = owner.onCopy.bind(owner);\n\n\t owner.element.addEventListener('input', owner.onChangeListener);\n\t owner.element.addEventListener('keydown', owner.onKeyDownListener);\n\t owner.element.addEventListener('cut', owner.onCutListener);\n\t owner.element.addEventListener('copy', owner.onCopyListener);\n\n\n\t owner.initPhoneFormatter();\n\t owner.initDateFormatter();\n\t owner.initNumeralFormatter();\n\n\t owner.onInput(pps.initValue);\n\t },\n\n\t initNumeralFormatter: function () {\n\t var owner = this, pps = owner.properties;\n\n\t if (!pps.numeral) {\n\t return;\n\t }\n\n\t pps.numeralFormatter = new Cleave.NumeralFormatter(\n\t pps.numeralDecimalMark,\n\t pps.numeralIntegerScale,\n\t pps.numeralDecimalScale,\n\t pps.numeralThousandsGroupStyle,\n\t pps.numeralPositiveOnly,\n\t pps.stripLeadingZeroes,\n\t pps.delimiter\n\t );\n\t },\n\n\t initDateFormatter: function () {\n\t var owner = this, pps = owner.properties;\n\n\t if (!pps.date) {\n\t return;\n\t }\n\n\t pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern);\n\t pps.blocks = pps.dateFormatter.getBlocks();\n\t pps.blocksLength = pps.blocks.length;\n\t pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n\t },\n\n\t initPhoneFormatter: function () {\n\t var owner = this, pps = owner.properties;\n\n\t if (!pps.phone) {\n\t return;\n\t }\n\n\t // Cleave.AsYouTypeFormatter should be provided by\n\t // external google closure lib\n\t try {\n\t pps.phoneFormatter = new Cleave.PhoneFormatter(\n\t new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),\n\t pps.delimiter\n\t );\n\t } catch (ex) {\n\t throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');\n\t }\n\t },\n\n\t onKeyDown: function (event) {\n\t var owner = this, pps = owner.properties,\n\t charCode = event.which || event.keyCode,\n\t Util = Cleave.Util,\n\t currentValue = owner.element.value;\n\n\t if (Util.isAndroidBackspaceKeydown(owner.lastInputValue, currentValue)) {\n\t charCode = 8;\n\t }\n\n\t owner.lastInputValue = currentValue;\n\n\t // hit backspace when last character is delimiter\n\t if (charCode === 8 && Util.isDelimiter(currentValue.slice(-pps.delimiterLength), pps.delimiter, pps.delimiters)) {\n\t pps.backspace = true;\n\n\t return;\n\t }\n\n\t pps.backspace = false;\n\t },\n\n\t onChange: function () {\n\t this.onInput(this.element.value);\n\t },\n\n\t onCut: function (e) {\n\t this.copyClipboardData(e);\n\t this.onInput('');\n\t },\n\n\t onCopy: function (e) {\n\t this.copyClipboardData(e);\n\t },\n\n\t copyClipboardData: function (e) {\n\t var owner = this,\n\t pps = owner.properties,\n\t Util = Cleave.Util,\n\t inputValue = owner.element.value,\n\t textToCopy = '';\n\n\t if (!pps.copyDelimiter) {\n\t textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);\n\t } else {\n\t textToCopy = inputValue;\n\t }\n\n\t try {\n\t if (e.clipboardData) {\n\t e.clipboardData.setData('Text', textToCopy);\n\t } else {\n\t window.clipboardData.setData('Text', textToCopy);\n\t }\n\n\t e.preventDefault();\n\t } catch (ex) {\n\t // empty\n\t }\n\t },\n\n\t onInput: function (value) {\n\t var owner = this, pps = owner.properties,\n\t Util = Cleave.Util;\n\n\t // case 1: delete one more character \"4\"\n\t // 1234*| -> hit backspace -> 123|\n\t // case 2: last character is not delimiter which is:\n\t // 12|34* -> hit backspace -> 1|34*\n\t // note: no need to apply this for numeral mode\n\t if (!pps.numeral && pps.backspace && !Util.isDelimiter(value.slice(-pps.delimiterLength), pps.delimiter, pps.delimiters)) {\n\t value = Util.headStr(value, value.length - pps.delimiterLength);\n\t }\n\n\t // phone formatter\n\t if (pps.phone) {\n\t pps.result = pps.phoneFormatter.format(value);\n\t owner.updateValueState();\n\n\t return;\n\t }\n\n\t // numeral formatter\n\t if (pps.numeral) {\n\t pps.result = pps.prefix + pps.numeralFormatter.format(value);\n\t owner.updateValueState();\n\n\t return;\n\t }\n\n\t // date\n\t if (pps.date) {\n\t value = pps.dateFormatter.getValidatedDate(value);\n\t }\n\n\t // strip delimiters\n\t value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);\n\n\t // strip prefix\n\t value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength);\n\n\t // strip non-numeric characters\n\t value = pps.numericOnly ? Util.strip(value, /[^\\d]/g) : value;\n\n\t // convert case\n\t value = pps.uppercase ? value.toUpperCase() : value;\n\t value = pps.lowercase ? value.toLowerCase() : value;\n\n\t // prefix\n\t if (pps.prefix) {\n\t value = pps.prefix + value;\n\n\t // no blocks specified, no need to do formatting\n\t if (pps.blocksLength === 0) {\n\t pps.result = value;\n\t owner.updateValueState();\n\n\t return;\n\t }\n\t }\n\n\t // update credit card props\n\t if (pps.creditCard) {\n\t owner.updateCreditCardPropsByValue(value);\n\t }\n\n\t // strip over length characters\n\t value = Util.headStr(value, pps.maxLength);\n\n\t // apply blocks\n\t pps.result = Util.getFormattedValue(value, pps.blocks, pps.blocksLength, pps.delimiter, pps.delimiters);\n\n\t owner.updateValueState();\n\t },\n\n\t updateCreditCardPropsByValue: function (value) {\n\t var owner = this, pps = owner.properties,\n\t Util = Cleave.Util,\n\t creditCardInfo;\n\n\t // At least one of the first 4 characters has changed\n\t if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {\n\t return;\n\t }\n\n\t creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);\n\n\t pps.blocks = creditCardInfo.blocks;\n\t pps.blocksLength = pps.blocks.length;\n\t pps.maxLength = Util.getMaxLength(pps.blocks);\n\n\t // credit card type changed\n\t if (pps.creditCardType !== creditCardInfo.type) {\n\t pps.creditCardType = creditCardInfo.type;\n\n\t pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);\n\t }\n\t },\n\n\t setCurrentSelection: function (endPos, oldValue) {\n\t var elem = this.element;\n\n\t // If cursor was at the end of value, just place it back.\n\t // Because new value could contain additional chars.\n\t if (oldValue.length === endPos) {\n\t return;\n\t }\n\n\t if (elem.createTextRange) {\n\t var range = elem.createTextRange();\n\n\t range.move('character', endPos);\n\t range.select();\n\t } else {\n\t elem.setSelectionRange(endPos, endPos);\n\t }\n\t },\n\n\t updateValueState: function () {\n\t var owner = this;\n\t var endPos = owner.element.selectionEnd;\n\t var oldValue = owner.element.value;\n\n\t // fix Android browser type=\"text\" input field\n\t // cursor not jumping issue\n\t if (owner.isAndroid) {\n\t window.setTimeout(function () {\n\t owner.element.value = owner.properties.result;\n\t owner.setCurrentSelection(endPos, oldValue);\n\t }, 1);\n\n\t return;\n\t }\n\n\t owner.element.value = owner.properties.result;\n\t owner.setCurrentSelection(endPos, oldValue);\n\t },\n\n\t setPhoneRegionCode: function (phoneRegionCode) {\n\t var owner = this, pps = owner.properties;\n\n\t pps.phoneRegionCode = phoneRegionCode;\n\t owner.initPhoneFormatter();\n\t owner.onChange();\n\t },\n\n\t setRawValue: function (value) {\n\t var owner = this, pps = owner.properties;\n\n\t value = value !== undefined && value !== null ? value.toString() : '';\n\n\t if (pps.numeral) {\n\t value = value.replace('.', pps.numeralDecimalMark);\n\t }\n\n\t owner.element.value = value;\n\t owner.onInput(value);\n\t },\n\n\t getRawValue: function () {\n\t var owner = this,\n\t pps = owner.properties,\n\t Util = Cleave.Util,\n\t rawValue = owner.element.value;\n\n\t if (pps.rawValueTrimPrefix) {\n\t rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength);\n\t }\n\n\t if (pps.numeral) {\n\t rawValue = pps.numeralFormatter.getRawValue(rawValue);\n\t } else {\n\t rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);\n\t }\n\n\t return rawValue;\n\t },\n\n\t getFormattedValue: function () {\n\t return this.element.value;\n\t },\n\n\t destroy: function () {\n\t var owner = this;\n\n\t owner.element.removeEventListener('input', owner.onChangeListener);\n\t owner.element.removeEventListener('keydown', owner.onKeyDownListener);\n\t owner.element.removeEventListener('cut', owner.onCutListener);\n\t owner.element.removeEventListener('copy', owner.onCopyListener);\n\t },\n\n\t toString: function () {\n\t return '[Cleave Object]';\n\t }\n\t};\n\n\tCleave.NumeralFormatter = __webpack_require__(1);\n\tCleave.DateFormatter = __webpack_require__(2);\n\tCleave.PhoneFormatter = __webpack_require__(3);\n\tCleave.CreditCardDetector = __webpack_require__(4);\n\tCleave.Util = __webpack_require__(5);\n\tCleave.DefaultProperties = __webpack_require__(6);\n\n\t// for angular directive\n\t((typeof global === 'object' && global) ? global : window)['Cleave'] = Cleave;\n\n\t// CommonJS\n\tmodule.exports = Cleave;\n\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar NumeralFormatter = function (numeralDecimalMark,\n\t numeralIntegerScale,\n\t numeralDecimalScale,\n\t numeralThousandsGroupStyle,\n\t numeralPositiveOnly,\n\t stripLeadingZeroes,\n\t delimiter) {\n\t var owner = this;\n\n\t owner.numeralDecimalMark = numeralDecimalMark || '.';\n\t owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0;\n\t owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;\n\t owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;\n\t owner.numeralPositiveOnly = !!numeralPositiveOnly;\n\t owner.stripLeadingZeroes = (undefined == stripLeadingZeroes) ? true : stripLeadingZeroes;\n\t owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';\n\t owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n\t};\n\n\tNumeralFormatter.groupStyle = {\n\t thousand: 'thousand',\n\t lakh: 'lakh',\n\t wan: 'wan'\n\t};\n\n\tNumeralFormatter.prototype = {\n\t getRawValue: function (value) {\n\t return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');\n\t },\n\n\t format: function (value) {\n\t var owner = this, parts, partInteger, partDecimal = '';\n\n\t // strip alphabet letters\n\t value = value.replace(/[A-Za-z]/g, '')\n\t // replace the first decimal mark with reserved placeholder\n\t .replace(owner.numeralDecimalMark, 'M')\n\n\t // strip non numeric letters except minus and \"M\"\n\t // this is to ensure prefix has been stripped\n\t .replace(/[^\\dM-]/g, '')\n\n\t // replace the leading minus with reserved placeholder\n\t .replace(/^\\-/, 'N')\n\n\t // strip the other minus sign (if present)\n\t .replace(/\\-/g, '')\n\n\t // replace the minus sign (if present)\n\t .replace('N', owner.numeralPositiveOnly ? '' : '-')\n\n\t // replace decimal mark\n\t .replace('M', owner.numeralDecimalMark);\n\n\t // strip any leading zeros\n\t if (owner.stripLeadingZeroes) {\n\t value = value.replace(/^(-)?0+(?=\\d)/, '$1');\n\t }\n\n\t partInteger = value;\n\n\t if (value.indexOf(owner.numeralDecimalMark) >= 0) {\n\t parts = value.split(owner.numeralDecimalMark);\n\t partInteger = parts[0];\n\t partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);\n\t }\n\n\t if (owner.numeralIntegerScale > 0) {\n\t partInteger = partInteger.slice(0, owner.numeralIntegerScale + (value.slice(0, 1) === '-' ? 1 : 0));\n\t }\n\n\t switch (owner.numeralThousandsGroupStyle) {\n\t case NumeralFormatter.groupStyle.lakh:\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d\\d)+\\d$)/g, '$1' + owner.delimiter);\n\n\t break;\n\n\t case NumeralFormatter.groupStyle.wan:\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d{4})+$)/g, '$1' + owner.delimiter);\n\n\t break;\n\n\t default:\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + owner.delimiter);\n\t }\n\n\t return partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');\n\t }\n\t};\n\n\tmodule.exports = NumeralFormatter;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar DateFormatter = function (datePattern) {\n\t var owner = this;\n\n\t owner.blocks = [];\n\t owner.datePattern = datePattern;\n\t owner.initBlocks();\n\t};\n\n\tDateFormatter.prototype = {\n\t initBlocks: function () {\n\t var owner = this;\n\t owner.datePattern.forEach(function (value) {\n\t if (value === 'Y') {\n\t owner.blocks.push(4);\n\t } else {\n\t owner.blocks.push(2);\n\t }\n\t });\n\t },\n\n\t getBlocks: function () {\n\t return this.blocks;\n\t },\n\n\t getValidatedDate: function (value) {\n\t var owner = this, result = '';\n\n\t value = value.replace(/[^\\d]/g, '');\n\n\t owner.blocks.forEach(function (length, index) {\n\t if (value.length > 0) {\n\t var sub = value.slice(0, length),\n\t sub0 = sub.slice(0, 1),\n\t rest = value.slice(length);\n\n\t switch (owner.datePattern[index]) {\n\t case 'd':\n\t if (sub === '00') {\n\t sub = '01';\n\t } else if (parseInt(sub0, 10) > 3) {\n\t sub = '0' + sub0;\n\t } else if (parseInt(sub, 10) > 31) {\n\t sub = '31';\n\t }\n\n\t break;\n\n\t case 'm':\n\t if (sub === '00') {\n\t sub = '01';\n\t } else if (parseInt(sub0, 10) > 1) {\n\t sub = '0' + sub0;\n\t } else if (parseInt(sub, 10) > 12) {\n\t sub = '12';\n\t }\n\n\t break;\n\t }\n\n\t result += sub;\n\n\t // update remaining string\n\t value = rest;\n\t }\n\t });\n\n\t return this.getFixedDateString(result);\n\t },\n\n\t getFixedDateString: function (value) {\n\t var owner = this, datePattern = owner.datePattern, date = [],\n\t dayIndex = 0, monthIndex = 0, yearIndex = 0,\n\t dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,\n\t day, month, year;\n\n\t // mm-dd || dd-mm\n\t if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {\n\t dayStartIndex = datePattern[0] === 'd' ? 0 : 2;\n\t monthStartIndex = 2 - dayStartIndex;\n\t day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n\t month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n\n\t date = this.getFixedDate(day, month, 0);\n\t }\n\n\t // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd\n\t if (value.length === 8) {\n\t datePattern.forEach(function (type, index) {\n\t switch (type) {\n\t case 'd':\n\t dayIndex = index;\n\t break;\n\t case 'm':\n\t monthIndex = index;\n\t break;\n\t default:\n\t yearIndex = index;\n\t break;\n\t }\n\t });\n\n\t yearStartIndex = yearIndex * 2;\n\t dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);\n\t monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);\n\n\t day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n\t month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n\t year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n\t date = this.getFixedDate(day, month, year);\n\t }\n\n\t return date.length === 0 ? value : datePattern.reduce(function (previous, current) {\n\t switch (current) {\n\t case 'd':\n\t return previous + owner.addLeadingZero(date[0]);\n\t case 'm':\n\t return previous + owner.addLeadingZero(date[1]);\n\t default:\n\t return previous + '' + (date[2] || '');\n\t }\n\t }, '');\n\t },\n\n\t getFixedDate: function (day, month, year) {\n\t day = Math.min(day, 31);\n\t month = Math.min(month, 12);\n\t year = parseInt((year || 0), 10);\n\n\t if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {\n\t day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);\n\t }\n\n\t return [day, month, year];\n\t },\n\n\t isLeapYear: function (year) {\n\t return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\n\t },\n\n\t addLeadingZero: function (number) {\n\t return (number < 10 ? '0' : '') + number;\n\t }\n\t};\n\n\tmodule.exports = DateFormatter;\n\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar PhoneFormatter = function (formatter, delimiter) {\n\t var owner = this;\n\n\t owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';\n\t owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n\n\t owner.formatter = formatter;\n\t};\n\n\tPhoneFormatter.prototype = {\n\t setFormatter: function (formatter) {\n\t this.formatter = formatter;\n\t },\n\n\t format: function (phoneNumber) {\n\t var owner = this;\n\n\t owner.formatter.clear();\n\n\t // only keep number and +\n\t phoneNumber = phoneNumber.replace(/[^\\d+]/g, '');\n\n\t // strip delimiter\n\t phoneNumber = phoneNumber.replace(owner.delimiterRE, '');\n\n\t var result = '', current, validated = false;\n\n\t for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {\n\t current = owner.formatter.inputDigit(phoneNumber.charAt(i));\n\n\t // has ()- or space inside\n\t if (/[\\s()-]/g.test(current)) {\n\t result = current;\n\n\t validated = true;\n\t } else {\n\t if (!validated) {\n\t result = current;\n\t }\n\t // else: over length input\n\t // it turns to invalid number again\n\t }\n\t }\n\n\t // strip ()\n\t // e.g. US: 7161234567 returns (716) 123-4567\n\t result = result.replace(/[()]/g, '');\n\t // replace library delimiter with user customized delimiter\n\t result = result.replace(/[\\s-]/g, owner.delimiter);\n\n\t return result;\n\t }\n\t};\n\n\tmodule.exports = PhoneFormatter;\n\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar CreditCardDetector = {\n\t blocks: {\n\t uatp: [4, 5, 6],\n\t amex: [4, 6, 5],\n\t diners: [4, 6, 4],\n\t discover: [4, 4, 4, 4],\n\t mastercard: [4, 4, 4, 4],\n\t dankort: [4, 4, 4, 4],\n\t instapayment: [4, 4, 4, 4],\n\t jcb: [4, 4, 4, 4],\n\t maestro: [4, 4, 4, 4],\n\t visa: [4, 4, 4, 4],\n\t general: [4, 4, 4, 4],\n\t generalStrict: [4, 4, 4, 7]\n\t },\n\n\t re: {\n\t // starts with 1; 15 digits, not starts with 1800 (jcb card)\n\t uatp: /^(?!1800)1\\d{0,14}/,\n\n\t // starts with 34/37; 15 digits\n\t amex: /^3[47]\\d{0,13}/,\n\n\t // starts with 6011/65/644-649; 16 digits\n\t discover: /^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,\n\n\t // starts with 300-305/309 or 36/38/39; 14 digits\n\t diners: /^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,\n\n\t // starts with 51-55/22-27; 16 digits\n\t mastercard: /^(5[1-5]|2[2-7])\\d{0,14}/,\n\n\t // starts with 5019/4175/4571; 16 digits\n\t dankort: /^(5019|4175|4571)\\d{0,12}/,\n\n\t // starts with 637-639; 16 digits\n\t instapayment: /^63[7-9]\\d{0,13}/,\n\n\t // starts with 2131/1800/35; 16 digits\n\t jcb: /^(?:2131|1800|35\\d{0,2})\\d{0,12}/,\n\n\t // starts with 50/56-58/6304/67; 16 digits\n\t maestro: /^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,\n\n\t // starts with 4; 16 digits\n\t visa: /^4\\d{0,15}/\n\t },\n\n\t getInfo: function (value, strictMode) {\n\t var blocks = CreditCardDetector.blocks,\n\t re = CreditCardDetector.re;\n\n\t // In theory, visa credit card can have up to 19 digits number.\n\t // Set strictMode to true will remove the 16 max-length restrain,\n\t // however, I never found any website validate card number like\n\t // this, hence probably you don't need to enable this option.\n\t strictMode = !!strictMode;\n\n\t if (re.amex.test(value)) {\n\t return {\n\t type: 'amex',\n\t blocks: blocks.amex\n\t };\n\t } else if (re.uatp.test(value)) {\n\t return {\n\t type: 'uatp',\n\t blocks: blocks.uatp\n\t };\n\t } else if (re.diners.test(value)) {\n\t return {\n\t type: 'diners',\n\t blocks: blocks.diners\n\t };\n\t } else if (re.discover.test(value)) {\n\t return {\n\t type: 'discover',\n\t blocks: strictMode ? blocks.generalStrict : blocks.discover\n\t };\n\t } else if (re.mastercard.test(value)) {\n\t return {\n\t type: 'mastercard',\n\t blocks: blocks.mastercard\n\t };\n\t } else if (re.dankort.test(value)) {\n\t return {\n\t type: 'dankort',\n\t blocks: blocks.dankort\n\t };\n\t } else if (re.instapayment.test(value)) {\n\t return {\n\t type: 'instapayment',\n\t blocks: blocks.instapayment\n\t };\n\t } else if (re.jcb.test(value)) {\n\t return {\n\t type: 'jcb',\n\t blocks: blocks.jcb\n\t };\n\t } else if (re.maestro.test(value)) {\n\t return {\n\t type: 'maestro',\n\t blocks: strictMode ? blocks.generalStrict : blocks.maestro\n\t };\n\t } else if (re.visa.test(value)) {\n\t return {\n\t type: 'visa',\n\t blocks: strictMode ? blocks.generalStrict : blocks.visa\n\t };\n\t } else {\n\t return {\n\t type: 'unknown',\n\t blocks: strictMode ? blocks.generalStrict : blocks.general\n\t };\n\t }\n\t }\n\t};\n\n\tmodule.exports = CreditCardDetector;\n\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar Util = {\n\t noop: function () {\n\t },\n\n\t strip: function (value, re) {\n\t return value.replace(re, '');\n\t },\n\n\t isDelimiter: function (letter, delimiter, delimiters) {\n\t // single delimiter\n\t if (delimiters.length === 0) {\n\t return letter === delimiter;\n\t }\n\n\t // multiple delimiters\n\t return delimiters.some(function (current) {\n\t if (letter === current) {\n\t return true;\n\t }\n\t });\n\t },\n\n\t getDelimiterREByDelimiter: function (delimiter) {\n\t return new RegExp(delimiter.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'), 'g');\n\t },\n\n\t stripDelimiters: function (value, delimiter, delimiters) {\n\t var owner = this;\n\n\t // single delimiter\n\t if (delimiters.length === 0) {\n\t var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';\n\n\t return value.replace(delimiterRE, '');\n\t }\n\n\t // multiple delimiters\n\t delimiters.forEach(function (current) {\n\t value = value.replace(owner.getDelimiterREByDelimiter(current), '');\n\t });\n\n\t return value;\n\t },\n\n\t headStr: function (str, length) {\n\t return str.slice(0, length);\n\t },\n\n\t getMaxLength: function (blocks) {\n\t return blocks.reduce(function (previous, current) {\n\t return previous + current;\n\t }, 0);\n\t },\n\n\t // strip value by prefix length\n\t // for prefix: PRE\n\t // (PRE123, 3) -> 123\n\t // (PR123, 3) -> 23 this happens when user hits backspace in front of \"PRE\"\n\t getPrefixStrippedValue: function (value, prefix, prefixLength) {\n\t if (value.slice(0, prefixLength) !== prefix) {\n\t var diffIndex = this.getFirstDiffIndex(prefix, value.slice(0, prefixLength));\n\n\t value = prefix + value.slice(diffIndex, diffIndex + 1) + value.slice(prefixLength + 1);\n\t }\n\n\t return value.slice(prefixLength);\n\t },\n\n\t getFirstDiffIndex: function (prev, current) {\n\t var index = 0;\n\n\t while (prev.charAt(index) === current.charAt(index))\n\t if (prev.charAt(index++) === '')\n\t return -1;\n\n\t return index;\n\t },\n\n\t getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters) {\n\t var result = '',\n\t multipleDelimiters = delimiters.length > 0,\n\t currentDelimiter;\n\n\t // no options, normal input\n\t if (blocksLength === 0) {\n\t return value;\n\t }\n\n\t blocks.forEach(function (length, index) {\n\t if (value.length > 0) {\n\t var sub = value.slice(0, length),\n\t rest = value.slice(length);\n\n\t result += sub;\n\n\t currentDelimiter = multipleDelimiters ? (delimiters[index] || currentDelimiter) : delimiter;\n\n\t if (sub.length === length && index < blocksLength - 1) {\n\t result += currentDelimiter;\n\t }\n\n\t // update remaining string\n\t value = rest;\n\t }\n\t });\n\n\t return result;\n\t },\n\n\t isAndroid: function () {\n\t if (navigator && /android/i.test(navigator.userAgent)) {\n\t return true;\n\t }\n\n\t return false;\n\t },\n\n\t // On Android chrome, the keyup and keydown events\n\t // always return key code 229 as a composition that\n\t // buffers the user’s keystrokes\n\t // see https://github.com/nosir/cleave.js/issues/147\n\t isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {\n\t if (!this.isAndroid()) {\n\t return false;\n\t }\n\n\t return currentInputValue === lastInputValue.slice(0, -1);\n\t }\n\t};\n\n\tmodule.exports = Util;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\n\t/**\n\t * Props Assignment\n\t *\n\t * Separate this, so react module can share the usage\n\t */\n\tvar DefaultProperties = {\n\t // Maybe change to object-assign\n\t // for now just keep it as simple\n\t assign: function (target, opts) {\n\t target = target || {};\n\t opts = opts || {};\n\n\t // credit card\n\t target.creditCard = !!opts.creditCard;\n\t target.creditCardStrictMode = !!opts.creditCardStrictMode;\n\t target.creditCardType = '';\n\t target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () {});\n\n\t // phone\n\t target.phone = !!opts.phone;\n\t target.phoneRegionCode = opts.phoneRegionCode || 'AU';\n\t target.phoneFormatter = {};\n\n\t // date\n\t target.date = !!opts.date;\n\t target.datePattern = opts.datePattern || ['d', 'm', 'Y'];\n\t target.dateFormatter = {};\n\n\t // numeral\n\t target.numeral = !!opts.numeral;\n\t target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;\n\t target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;\n\t target.numeralDecimalMark = opts.numeralDecimalMark || '.';\n\t target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';\n\t target.numeralPositiveOnly = !!opts.numeralPositiveOnly;\n\t target.stripLeadingZeroes = (undefined == opts.stripLeadingZeroes) ? true : opts.stripLeadingZeroes;\n\n\t // others\n\t target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;\n\n\t target.uppercase = !!opts.uppercase;\n\t target.lowercase = !!opts.lowercase;\n\n\t target.prefix = (target.creditCard || target.phone || target.date) ? '' : (opts.prefix || '');\n\t target.prefixLength = target.prefix.length;\n\t target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;\n\t target.copyDelimiter = !!opts.copyDelimiter;\n\n\t target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';\n\n\t target.delimiter =\n\t (opts.delimiter || opts.delimiter === '') ? opts.delimiter :\n\t (opts.date ? '/' :\n\t (opts.numeral ? ',' :\n\t (opts.phone ? ' ' :\n\t ' ')));\n\t target.delimiterLength = target.delimiter.length;\n\t target.delimiters = opts.delimiters || [];\n\n\t target.blocks = opts.blocks || [];\n\t target.blocksLength = target.blocks.length;\n\n\t target.root = (typeof global === 'object' && global) ? global : window;\n\n\t target.maxLength = 0;\n\n\t target.backspace = false;\n\t target.result = '';\n\n\t return target;\n\t }\n\t};\n\n\tmodule.exports = DefaultProperties;\n\n\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }\n/******/ ])\n});\n;\n\n/***/ }),\n\n/***/ \"sn83\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"tbjN\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"vgB/\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-round-donation',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"s7+d\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"tqfx\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"caux\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"tuIb\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"tzxB\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"u11m\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"HLIP\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"uWng\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _generic3 = __webpack_require__(\"Q1aM\");\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ShowRule = function (_Component) {\n _inherits(ShowRule, _Component);\n\n /**\r\n * example config\r\n * {\r\n * elements: \"id1,id2:false,id3:concreteValue\"\r\n * condition: 'and'\r\n action: 'show' //hide, class\r\n class: 'example-class' // if action is class\r\n * }\r\n *\r\n * @param el\r\n */\n function ShowRule(el) {\n _classCallCheck(this, ShowRule);\n\n var _this = _possibleConstructorReturn(this, (ShowRule.__proto__ || Object.getPrototypeOf(ShowRule)).call(this, el));\n\n _this.idAttributeName = 'data-rule-id';\n _this.config = {\n action: 'show',\n condition: 'and'\n };\n _this.elementsValues = {};\n _this.lastResult = undefined;\n _this.init();\n return _this;\n }\n\n _createClass(ShowRule, [{\n key: 'init',\n value: function init() {\n var _this2 = this;\n\n var configString = this.container.getAttribute('data-rule');\n var config = {};\n try {\n config = JSON.parse(configString);\n } catch (e) {\n //maybe we pass single string to set elements only\n config = { elements: configString };\n }\n\n var elementsString = config.elements;\n if (elementsString) {\n var elements = [];\n var elementsConditions = {};\n config.elements.split(',').forEach(function (elementCondition) {\n var _elementCondition$tri = elementCondition.trim().split(':'),\n _elementCondition$tri2 = _slicedToArray(_elementCondition$tri, 2),\n elementId = _elementCondition$tri2[0],\n elementValue = _elementCondition$tri2[1];\n\n var elementNodes = document.querySelectorAll('[' + _this2.idAttributeName + '=\"' + elementId + '\"]');\n for (var i = 0; i < elementNodes.length; i++) {\n if (elementNodes[i].tagName === 'INPUT') {\n elements.push(elementNodes[i]);\n if (!elementsConditions[elementId]) {\n elementsConditions[elementId] = elementValue === undefined || elementValue === 'true' ? true : elementValue === 'false' ? false : elementValue;\n }\n }\n }\n });\n config.elementsConditions = elementsConditions;\n if (elements.length) {\n this.bootstrap(config, elements);\n }\n }\n }\n }, {\n key: 'getElementId',\n value: function getElementId(element) {\n return element.getAttribute(this.idAttributeName);\n }\n }, {\n key: 'bootstrap',\n value: function bootstrap(configPart, elements) {\n var _this3 = this;\n\n _extends(this.config, configPart);\n this.elementsValues = elements.reduce(function (result, element) {\n result[_this3.getElementId(element)] = _this3.getElementValue(element);\n return result;\n }, {});\n\n elements.forEach(function (element) {\n if (element.type === 'text') {\n element.addEventListener('input', _this3.onElementChange.bind(_this3));\n } else {\n element.addEventListener('change', _this3.onElementChange.bind(_this3));\n }\n });\n this.manage();\n }\n }, {\n key: 'getElementValue',\n value: function getElementValue(element) {\n switch (element.type) {\n case 'checkbox':\n return element.checked;\n case 'radio':\n return element.checked ? element.value : false;\n default:\n return element.value;\n }\n }\n }, {\n key: 'onElementChange',\n value: function onElementChange(e) {\n var element = e.target;\n this.elementsValues[this.getElementId(element)] = this.getElementValue(element);\n this.manage();\n }\n }, {\n key: 'manage',\n value: function manage() {\n var _this4 = this;\n\n var result = false;\n\n var checkFunction = function checkFunction(id) {\n return _this4.elementsValues[id] === _this4.config.elementsConditions[id];\n };\n\n if (this.config.condition === 'and') {\n result = Object.keys(this.elementsValues).every(checkFunction);\n } else {\n result = Object.keys(this.elementsValues).some(checkFunction);\n }\n if (result !== this.lastResult) {\n this.update(result);\n }\n }\n }, {\n key: 'update',\n value: function update(result) {\n this.lastResult = result;\n switch (this.config.action) {\n case 'show':\n this.updateShow(result);\n break;\n case 'hide':\n this.updateShow(!result);\n break;\n case 'class':\n this.updateClass(result);\n break;\n }\n }\n }, {\n key: 'updateShow',\n value: function updateShow(result) {\n if (result) {\n this.container.style.display = 'block';\n this.container.removeAttribute(_generic3.ATTRIBUTE_VALIDATE_NEVER);\n } else {\n this.container.style.display = 'none';\n this.container.setAttribute(_generic3.ATTRIBUTE_VALIDATE_NEVER, '');\n }\n }\n }, {\n key: 'updateClass',\n value: function updateClass(result) {\n if (result) {\n this.container.classList.add(this.config.class);\n } else {\n this.container.classList.remove(this.config.class);\n }\n }\n }]);\n\n return ShowRule;\n}(_generic2.default);\n\nexports.default = ShowRule;\n\n/***/ }),\n\n/***/ \"ukGU\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"Z+vY\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"v1pR\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"O+/h\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-tooltip',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"Zw35\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"vgB/\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"vz3G\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./account.svg\": \"h+4i\",\n\t\"./arrow-down-thin.svg\": \"qExC\",\n\t\"./arrow-down.svg\": \"jIbX\",\n\t\"./arrow-left.svg\": \"51GQ\",\n\t\"./arrow-right.svg\": \"Qsna\",\n\t\"./arrow-up.svg\": \"Omm2\",\n\t\"./basket.svg\": \"iwUV\",\n\t\"./beaker.svg\": \"wMjV\",\n\t\"./calendar.svg\": \"Rrki\",\n\t\"./delete-logo.svg\": \"3yJq\",\n\t\"./doc-default.svg\": \"wVxo\",\n\t\"./doc-doc.svg\": \"q+S6\",\n\t\"./doc-pdf.svg\": \"M3U0\",\n\t\"./doc-ppt.svg\": \"Gt49\",\n\t\"./document.svg\": \"LUPE\",\n\t\"./download.svg\": \"5mra\",\n\t\"./header-angle.svg\": \"noH7\",\n\t\"./just-giving-logo.svg\": \"f2JW\",\n\t\"./letter.svg\": \"BFzH\",\n\t\"./modal_close.svg\": \"GKKS\",\n\t\"./pencil.svg\": \"wt25\",\n\t\"./person.svg\": \"DBgD\",\n\t\"./phone.svg\": \"c1Qd\",\n\t\"./search.svg\": \"98Kd\",\n\t\"./share.svg\": \"gPpe\",\n\t\"./slant-gradient.svg\": \"JqIc\",\n\t\"./sms.svg\": \"DPol\",\n\t\"./tick.svg\": \"ddC+\",\n\t\"./tick2.svg\": \"1Di1\",\n\t\"./user.svg\": \"OBau\",\n\t\"./user2.svg\": \"+Xj0\",\n\t\"./web.svg\": \"lKHb\"\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 = \"vz3G\";\n\n/***/ }),\n\n/***/ \"wDqA\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"wJOR\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"bRiX\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"wMjV\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-beaker\",\n \"use\": \"icon-beaker-usage\",\n \"viewBox\": \"70.3 74.5 154.3 166\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"wVxo\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-doc-default\",\n \"use\": \"icon-doc-default-usage\",\n \"viewBox\": \"0 0 24.57 32.69\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"wYJ3\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"wfUv\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"H7+E\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-custom-donate',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"Or2Y\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\n/***/ }),\n\n/***/ \"wknz\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"wlJa\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _createEvent = __webpack_require__(\"G0mC\");\n\nvar _createEvent2 = _interopRequireDefault(_createEvent);\n\nvar _pageSpinner = __webpack_require__(\"O0WQ\");\n\nvar _pageSpinner2 = _interopRequireDefault(_pageSpinner);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CurrencySwitcher = function (_Component) {\n _inherits(CurrencySwitcher, _Component);\n\n function CurrencySwitcher(el) {\n _classCallCheck(this, CurrencySwitcher);\n\n var _this = _possibleConstructorReturn(this, (CurrencySwitcher.__proto__ || Object.getPrototypeOf(CurrencySwitcher)).call(this, el));\n\n _this.pseudoItemDataAttributeName = 'data-switcher-value';\n\n _this.values = {\n Euro: { caption: '€ EUR', id: 'eu' },\n PoundSterling: { caption: '£ GBP', id: 'en' },\n UnitedStatesDollar: { caption: '$ USD', id: 'us' }\n };\n\n _this.currentValue = null;\n _this.isCustomPostback = _this.container.hasAttribute('data-currency-switcher-custom-postback');\n _this.init();\n return _this;\n }\n\n _createClass(CurrencySwitcher, [{\n key: 'init',\n value: function init() {\n var _this2 = this;\n\n this.pseudo = this.container.querySelector('.js-currency-switcher-pseudo');\n this.control = this.container.querySelector('.js-currency-switcher-control');\n this.nativeControlWrap = this.container.querySelector('.js-currency-switcher-select-wrap');\n\n if (this.nativeControlWrap) {\n this.customPostbackClientId = this.nativeControlWrap.getAttribute('data-clientid');\n }\n\n if (this.pseudo && this.control) {\n this.pseudoList = this.pseudo.querySelector('.js-currency-switcher-pseudo-list');\n this.pseudoValue = this.pseudo.querySelector('.js-currency-switcher-pseudo-value');\n\n this.controlInput = this.control.querySelector('select');\n\n this.setSwitcherValue(this.controlInput.value);\n this.renderPseudoList();\n\n this.pseudo.addEventListener('click', function (e) {\n e.stopPropagation();\n _this2.pseudo.classList.add('is-open');\n });\n this.pseudoList.addEventListener('click', this.onListClick.bind(this));\n\n document.addEventListener('click', function () {\n _this2.close();\n });\n }\n }\n }, {\n key: 'close',\n value: function close() {\n this.pseudo.classList.remove('is-open');\n }\n }, {\n key: 'setSwitcherValue',\n value: function setSwitcherValue(value) {\n if (this.currentValue !== value) {\n this.currentValue = value;\n this.pseudoValue.innerHTML = this.getCaptionByValue(value);\n this.pseudo.setAttribute('data-currency-id', this.getIdByValue(value));\n return true;\n }\n return false;\n }\n }, {\n key: 'onListClick',\n value: function onListClick(e) {\n e.stopPropagation();\n if (e.target) {\n var element = e.target;\n var value = element.getAttribute(this.pseudoItemDataAttributeName);\n if (value) {\n var isSet = this.setSwitcherValue(value);\n if (isSet) {\n this.triggerEvent(value);\n _pageSpinner2.default.show({ fade: true });\n }\n this.close();\n }\n }\n }\n }, {\n key: 'renderPseudoList',\n value: function renderPseudoList() {\n var _this3 = this;\n\n var listContent = '';\n\n Object.keys(this.values).forEach(function (value) {\n listContent += '' + _this3.getCaptionByValue(value) + '';\n });\n\n this.pseudoList.innerHTML = listContent;\n }\n }, {\n key: 'triggerEvent',\n value: function triggerEvent(value) {\n this.controlInput.value = value;\n if (this.isCustomPostback) {\n window.__doPostBack(this.customPostbackClientId, '');\n } else {\n this.controlInput.dispatchEvent((0, _createEvent2.default)('change'));\n }\n }\n }, {\n key: 'getCaptionByValue',\n value: function getCaptionByValue(value) {\n return this.values[value].caption;\n }\n }, {\n key: 'getIdByValue',\n value: function getIdByValue(value) {\n return this.values[value].id;\n }\n }]);\n\n return CurrencySwitcher;\n}(_generic2.default);\n\nexports.default = CurrencySwitcher;\n\n/***/ }),\n\n/***/ \"wt25\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__ = __webpack_require__(\"Wc9H\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__ = __webpack_require__(\"IaZV\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build__);\n\n\nvar symbol = new __WEBPACK_IMPORTED_MODULE_0_svg_baker_runtime_browser_symbol___default.a({\n \"id\": \"icon-pencil\",\n \"use\": \"icon-pencil-usage\",\n \"viewBox\": \"160.5 0.5 287 287\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = __WEBPACK_IMPORTED_MODULE_1_svg_sprite_loader_runtime_browser_sprite_build___default.a.add(symbol);\n/* harmony default export */ __webpack_exports__[\"default\"] = (symbol);\n\n/***/ }),\n\n/***/ \"x1RD\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"x9Sk\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _slickCarousel = __webpack_require__(\"gqkz\");\n\nvar _slickCarousel2 = _interopRequireDefault(_slickCarousel);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ImageGallery = function (_Component) {\n _inherits(ImageGallery, _Component);\n\n function ImageGallery(el) {\n _classCallCheck(this, ImageGallery);\n\n var _this = _possibleConstructorReturn(this, (ImageGallery.__proto__ || Object.getPrototypeOf(ImageGallery)).call(this, el));\n\n _this.$container = (0, _jquery2.default)(_this.container);\n _this.init();\n return _this;\n }\n\n _createClass(ImageGallery, [{\n key: 'init',\n value: function init() {\n\n this.$main = this.$container.find('.js-ig-main-carousel');\n this.$nav = this.$container.find('.js-ig-nav-carousel');\n this.$arrows = this.$container.find('.js-ig-nav-arrows');\n\n if (!this.$main.length || !this.$nav.length || !this.$arrows.length) {\n this.$container.addClass('js-init-errors');\n return false;\n }\n\n this.$main.slick({\n swipe: false,\n asNavFor: this.$nav,\n arrows: false,\n lazyLoad: 'ondemand'\n });\n\n this.$nav.slick({\n asNavFor: this.$main,\n slidesToShow: 4,\n slidesToScroll: 4,\n focusOnSelect: true,\n appendArrows: this.$arrows,\n lazyLoad: 'ondemand',\n responsive: [{\n breakpoint: 768,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }],\n prevArrow: '',\n nextArrow: ''\n });\n }\n }]);\n\n return ImageGallery;\n}(_generic2.default);\n\nexports.default = ImageGallery;\n\n/***/ }),\n\n/***/ \"xDSz\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVMsSUFBSSxDQUFDLENBQUM7R0FDeEIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgICBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICAgIH1cblxuICAgIGxldCBsZXZlbCA9IDE7XG4gICAgaWYgKG9wdGlvbnMuaGFzaC5sZXZlbCAhPSBudWxsKSB7XG4gICAgICBsZXZlbCA9IG9wdGlvbnMuaGFzaC5sZXZlbDtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGEubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmRhdGEubGV2ZWw7XG4gICAgfVxuICAgIGFyZ3NbMF0gPSBsZXZlbDtcblxuICAgIGluc3RhbmNlLmxvZyguLi4gYXJncyk7XG4gIH0pO1xufVxuIl19\n\n\n/***/ }),\n\n/***/ \"xLjo\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"xs8j\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Handlebars = __webpack_require__(\"alZG\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \" \\r\\n Add more items to basket\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" \\r\\n Add more items to basket\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"
\\r\\n
Item successfully added to your basket!
\\r\\n
You currently have \"\n + container.escapeExpression(((helper = (helper = helpers.basketDescription || (depth0 != null ? depth0.basketDescription : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"basketDescription\",\"hash\":{},\"data\":data}) : helper)))\n + \" in your basket
\\r\\n \\r\\n Go to my basket\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isEvent : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \"
\\r\\n
\\r\\n\";\n},\"useData\":true});\n\n/***/ }),\n\n/***/ \"xseL\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"xule\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Handlebars = __webpack_require__(\"alZG\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"
\\r\\n
\\r\\n
\\r\\n \"\n + container.escapeExpression(((helper = (helper = helpers.eventOption || (depth0 != null ? depth0.eventOption : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"eventOption\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.date : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"
\\r\\n
\\r\\n
\\r\\n \"\n + container.escapeExpression(((helper = (helper = helpers.date || (depth0 != null ? depth0.date : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"date\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\r\\n
\\r\\n
\"\n + alias4(((helper = (helper = helpers.visualCost || (depth0 != null ? depth0.visualCost : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"visualCost\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\\r\\n\\r\\n\"\n + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.products : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isAdded : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"6\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\";\n\n return \"
\\r\\n
\\r\\n \"\n + container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\r\\n\\r\\n
\\r\\n
\"\n + ((stack1 = ((helper = (helper = helpers.visualCost || (depth0 != null ? depth0.visualCost : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"visualCost\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"
\\r\\n
\\r\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Donation\\r\\n
\\r\\n
\"\n + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.donation : depth0)) != null ? stack1.visualCost : stack1), depth0))\n + \"
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Total\\r\\n
\\r\\n
\"\n + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.total : depth0)) != null ? stack1.visualCost : stack1), depth0))\n + \"
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"
\"\n + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\\r\\n\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.eventOption : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.items : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.donation : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.total : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n
\\r\\n\";\n},\"useData\":true});\n\n/***/ }),\n\n/***/ \"xwgm\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"xy3E\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _core = __webpack_require__(\"bE9d\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"y/lL\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"yfj8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(\"LnWC\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-main-nav',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"43qK\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"yuUt\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-datepicker',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"cgz8\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nif (document.querySelector('.js-form-trigger')) {\n document.querySelector('.js-form-trigger').addEventListener(\"click\", function () {\n factoryInstance = new _generic2.default({\n className: 'js-datepicker',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"cgz8\");\n resolve(callAfter(instance.default || instance));\n }\n });\n factoryInstance.init();\n });\n}\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"yx8j\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"yxA3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _generic = __webpack_require__(\"A7Qy\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar factoryInstance = new _generic2.default({\n className: 'js-ga-event',\n ensure: function ensure(resolve, callAfter) {\n var instance = __webpack_require__(\"C2w5\");\n resolve(callAfter(instance.default || instance));\n }\n});\n\nfactoryInstance.init();\n\nexports.default = factoryInstance;\n\n/***/ }),\n\n/***/ \"z0F1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _generic = __webpack_require__(\"YiNY\");\n\nvar _generic2 = _interopRequireDefault(_generic);\n\nvar _jquery = __webpack_require__(\"7t+N\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _jgDonations = __webpack_require__(\"Viim\");\n\nvar _jgDonations2 = _interopRequireDefault(_jgDonations);\n\nvar _jgDonationsEmpty = __webpack_require__(\"grUI\");\n\nvar _jgDonationsEmpty2 = _interopRequireDefault(_jgDonationsEmpty);\n\nvar _moment = __webpack_require__(\"PJh5\");\n\nvar _moment2 = _interopRequireDefault(_moment);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar JgDonations = function (_Component) {\n _inherits(JgDonations, _Component);\n\n function JgDonations(el) {\n _classCallCheck(this, JgDonations);\n\n var _this = _possibleConstructorReturn(this, (JgDonations.__proto__ || Object.getPrototypeOf(JgDonations)).call(this, el));\n\n _this.$container = (0, _jquery2.default)(_this.container);\n _this.init();\n return _this;\n }\n\n _createClass(JgDonations, [{\n key: 'init',\n value: function init() {\n this.baseURL = window.location.protocol + \"//\" + window.location.host;\n this.nodeId = this.$container.data('node-id');\n this.requestedPage = 1;\n\n if (!this.nodeId) {\n this.$container.addClass('js-init-errors');\n return false;\n }\n\n this.initLoadMore();\n this.loadData();\n }\n }, {\n key: 'initLoadMore',\n value: function initLoadMore() {\n this.loadMoreBtn = document.querySelector(\".js-jg-donations-load-more\");\n this.loadMoreBtn.addEventListener(\"click\", this.loadMore.bind(this));\n }\n }, {\n key: 'loadMore',\n value: function loadMore() {\n this.requestedPage++;\n this.loadData();\n }\n }, {\n key: 'loadData',\n value: function loadData() {\n var _this2 = this;\n\n this.$container.addClass('is-loading');\n console.log(this.baseURL + '/api/donation/Get?page=' + this.requestedPage + '&nodeId=' + this.nodeId);\n var request = this.getRequest(this.baseURL + '/api/donation/Get?page=' + this.requestedPage + '&nodeId=' + this.nodeId);\n request.then(function (response) {\n response.Next ? _this2.loadMoreBtn.classList.remove(\"is-hidden\") : _this2.loadMoreBtn.classList.add(\"is-hidden\");\n _this2.renderDonations(_this2.getPreparedDonations(response.Donations));\n }, function (error) {\n _this2.renderError(error);\n }).then(function () {\n _this2.$container.removeClass('is-loading');\n });\n }\n }, {\n key: 'renderDonations',\n value: function renderDonations(donations) {\n if (donations.length > 0) {\n var content = (0, _jgDonations2.default)({ donations: donations });\n this.$container.append(content);\n } else {\n this.renderEmpty();\n }\n this.loadMoreBtn.classList.remove(\"is-loading\");\n this.loadMoreBtn.classList.remove(\"spinner--faded\");\n }\n }, {\n key: 'renderEmpty',\n value: function renderEmpty() {\n this.$container.html((0, _jgDonationsEmpty2.default)({}));\n }\n }, {\n key: 'renderError',\n value: function renderError(error) {\n console.log(error);\n this.$container.html('\\n
\\n Sorry, we were unable to retrieve data. Please try again later.\\n
\\n ');\n }\n }, {\n key: 'getPreparedDonations',\n value: function getPreparedDonations(donations) {\n return donations.map(function (item) {\n var amount = parseFloat(item.Amount).toFixed(2);\n var giftAmount = item.GiftAidAmount !== undefined ? parseFloat(item.GiftAidAmount).toFixed(2) : 0;\n\n var dateString = null;\n var date = Date.parse(item.Date);\n date = parseInt(date);\n if (!isNaN(date)) {\n dateString = (0, _moment2.default)(date).format('DD MMM YYYY');\n }\n\n return {\n name: item.Donator || 'Anonymous',\n hasAmount: amount > 0,\n amount: amount,\n hasGift: giftAmount > 0,\n giftAmount: giftAmount,\n currencySign: \"£\",\n hasDate: dateString !== null,\n date: dateString,\n message: item.Comment\n };\n });\n }\n }, {\n key: 'getRequest',\n value: function getRequest(url) {\n this.loadMoreBtn.classList.add(\"is-loading\");\n this.loadMoreBtn.classList.add(\"spinner--faded\");\n return new Promise(function (resolve, reject) {\n _jquery2.default.ajax({\n url: url,\n contentType: 'application/json'\n }).done(function (response) {\n resolve(response);\n }).fail(function (error) {\n reject(error);\n });\n });\n }\n }]);\n\n return JgDonations;\n}(_generic2.default);\n\nexports.default = JgDonations;\n\n/***/ }),\n\n/***/ \"z5Fe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\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\nvar _utils = __webpack_require__(\"U7Dy\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = __webpack_require__(\"Cz5H\");\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = __webpack_require__(\"jMIp\");\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision !== currentRevision) {\n if (compilerRevision < currentRevision) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as psuedo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n var result = env.VM.invokePartial.call(this, partial, context, options);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, options);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name) {\n if (!(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj);\n }\n return obj[name];\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n if (depths[i] && depths[i][name] != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n merge: function merge(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n container.helpers = container.merge(options.helpers, env.helpers);\n\n if (templateSpec.usePartial) {\n container.partials = container.merge(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = container.merge(options.decorators, env.decorators);\n }\n } else {\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBQzhCLFFBQVE7O0FBRWxFLFNBQVMsYUFBYSxDQUFDLFlBQVksRUFBRTtBQUMxQyxNQUFNLGdCQUFnQixHQUFHLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztNQUN2RCxlQUFlLDBCQUFvQixDQUFDOztBQUUxQyxNQUFJLGdCQUFnQixLQUFLLGVBQWUsRUFBRTtBQUN4QyxRQUFJLGdCQUFnQixHQUFHLGVBQWUsRUFBRTtBQUN0QyxVQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1VBQ25ELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQzVELFlBQU0sMkJBQWMseUZBQXlGLEdBQ3ZHLHFEQUFxRCxHQUFHLGVBQWUsR0FBRyxtREFBbUQsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNoSyxNQUFNOztBQUVMLFlBQU0sMkJBQWMsd0ZBQXdGLEdBQ3RHLGlEQUFpRCxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNuRjtHQUNGO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztHQUN4RTs7QUFFRCxjQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7O0FBSWxELEtBQUcs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QUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUYsU0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7R0FDM0I7QUFDRCxTQUFPLElBQUksQ0FBQztDQUNiIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHsgQ09NUElMRVJfUkVWSVNJT04sIFJFVklTSU9OX0NIQU5HRVMsIGNyZWF0ZUZyYW1lIH0gZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUmV2aXNpb24oY29tcGlsZXJJbmZvKSB7XG4gIGNvbnN0IGNvbXBpbGVyUmV2aXNpb24gPSBjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdIHx8IDEsXG4gICAgICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChjb21waWxlclJldmlzaW9uICE9PSBjdXJyZW50UmV2aXNpb24pIHtcbiAgICBpZiAoY29tcGlsZXJSZXZpc2lvbiA8IGN1cnJlbnRSZXZpc2lvbikge1xuICAgICAgY29uc3QgcnVudGltZVZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjdXJyZW50UmV2aXNpb25dLFxuICAgICAgICAgICAgY29tcGlsZXJWZXJzaW9ucyA9IFJFVklTSU9OX0NIQU5HRVNbY29tcGlsZXJSZXZpc2lvbl07XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUZW1wbGF0ZSB3YXMgcHJlY29tcGlsZWQgd2l0aCBhbiBvbGRlciB2ZXJzaW9uIG9mIEhhbmRsZWJhcnMgdGhhbiB0aGUgY3VycmVudCBydW50aW1lLiAnICtcbiAgICAgICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcHJlY29tcGlsZXIgdG8gYSBuZXdlciB2ZXJzaW9uICgnICsgcnVudGltZVZlcnNpb25zICsgJykgb3IgZG93bmdyYWRlIHlvdXIgcnVudGltZSB0byBhbiBvbGRlciB2ZXJzaW9uICgnICsgY29tcGlsZXJWZXJzaW9ucyArICcpLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHJ1bnRpbWUgdG8gYSBuZXdlciB2ZXJzaW9uICgnICsgY29tcGlsZXJJbmZvWzFdICsgJykuJyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZSh0ZW1wbGF0ZVNwZWMsIGVudikge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoIWVudikge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ05vIGVudmlyb25tZW50IHBhc3NlZCB0byB0ZW1wbGF0ZScpO1xuICB9XG4gIGlmICghdGVtcGxhdGVTcGVjIHx8ICF0ZW1wbGF0ZVNwZWMubWFpbikge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vua25vd24gdGVtcGxhdGUgb2JqZWN0OiAnICsgdHlwZW9mIHRlbXBsYXRlU3BlYyk7XG4gIH1cblxuICB0ZW1wbGF0ZVNwZWMubWFpbi5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWMubWFpbl9kO1xuXG4gIC8vIE5vdGU6IFVzaW5nIGVudi5WTSByZWZlcmVuY2VzIHJhdGhlciB0aGFuIGxvY2FsIHZhciByZWZlcmVuY2VzIHRocm91Z2hvdXQgdGhpcyBzZWN0aW9uIHRvIGFsbG93XG4gIC8vIGZvciBleHRlcm5hbCB1c2VycyB0byBvdmVycmlkZSB0aGVzZSBhcyBwc3VlZG8tc3VwcG9ydGVkIEFQSXMuXG4gIGVudi5WTS5jaGVja1JldmlzaW9uKHRlbXBsYXRlU3BlYy5jb21waWxlcik7XG5cbiAgZnVuY3Rpb24gaW52b2tlUGFydGlhbFdyYXBwZXIocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAgIGNvbnRleHQgPSBVdGlscy5leHRlbmQoe30sIGNvbnRleHQsIG9wdGlvbnMuaGFzaCk7XG4gICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgb3B0aW9ucy5pZHNbMF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhcnRpYWwgPSBlbnYuVk0ucmVzb2x2ZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcblxuICAgIGlmIChyZXN1bHQgPT0gbnVsbCAmJiBlbnYuY29tcGlsZSkge1xuICAgICAgb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdID0gZW52LmNvbXBpbGUocGFydGlhbCwgdGVtcGxhdGVTcGVjLmNvbXBpbGVyT3B0aW9ucywgZW52KTtcbiAgICAgIHJlc3VsdCA9IG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXShjb250ZXh0LCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUaGUgcGFydGlhbCAnICsgb3B0aW9ucy5uYW1lICsgJyBjb3VsZCBub3QgYmUgY29tcGlsZWQgd2hlbiBydW5uaW5nIGluIHJ1bnRpbWUtb25seSBtb2RlJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gSnVzdCBhZGQgd2F0ZXJcbiAgbGV0IGNvbnRhaW5lciA9IHtcbiAgICBzdHJpY3Q6IGZ1bmN0aW9uKG9iaiwgbmFtZSkge1xuICAgICAgaWYgKCEobmFtZSBpbiBvYmopKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1wiJyArIG5hbWUgKyAnXCIgbm90IGRlZmluZWQgaW4gJyArIG9iaik7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqW25hbWVdO1xuICAgIH0sXG4gICAgbG9va3VwOiBmdW5jdGlvbihkZXB0aHMsIG5hbWUpIHtcbiAgICAgIGNvbnN0IGxlbiA9IGRlcHRocy5sZW5ndGg7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGlmIChkZXB0aHNbaV0gJiYgZGVwdGhzW2ldW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZGVwdGhzW2ldW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBsYW1iZGE6IGZ1bmN0aW9uKGN1cnJlbnQsIGNvbnRleHQpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgY3VycmVudCA9PT0gJ2Z1bmN0aW9uJyA/IGN1cnJlbnQuY2FsbChjb250ZXh0KSA6IGN1cnJlbnQ7XG4gICAgfSxcblxuICAgIGVzY2FwZUV4cHJlc3Npb246IFV0aWxzLmVzY2FwZUV4cHJlc3Npb24sXG4gICAgaW52b2tlUGFydGlhbDogaW52b2tlUGFydGlhbFdyYXBwZXIsXG5cbiAgICBmbjogZnVuY3Rpb24oaSkge1xuICAgICAgbGV0IHJldCA9IHRlbXBsYXRlU3BlY1tpXTtcbiAgICAgIHJldC5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWNbaSArICdfZCddO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuXG4gICAgcHJvZ3JhbXM6IFtdLFxuICAgIHByb2dyYW06IGZ1bmN0aW9uKGksIGRhdGEsIGRlY2xhcmVkQmxvY2tQYXJhbXMsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICAgIGxldCBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0sXG4gICAgICAgICAgZm4gPSB0aGlzLmZuKGkpO1xuICAgICAgaWYgKGRhdGEgfHwgZGVwdGhzIHx8IGJsb2NrUGFyYW1zIHx8IGRlY2xhcmVkQmxvY2tQYXJhbXMpIHtcbiAgICAgICAgcHJvZ3JhbVdyYXBwZXIgPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbiwgZGF0YSwgZGVjbGFyZWRCbG9ja1BhcmFtcywgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2U6IGZ1bmN0aW9uKHBhcmFtLCBjb21tb24pIHtcbiAgICAgIGxldCBvYmogPSBwYXJhbSB8fCBjb21tb247XG5cbiAgICAgIGlmIChwYXJhbSAmJiBjb21tb24gJiYgKHBhcmFtICE9PSBjb21tb24pKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgICBibG9ja1BhcmFtcyA9IHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyA/IFtdIDogdW5kZWZpbmVkO1xuICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlRGVwdGhzKSB7XG4gICAgICBpZiAob3B0aW9ucy5kZXB0aHMpIHtcbiAgICAgICAgZGVwdGhzID0gY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXSA/IFtjb250ZXh0XS5jb25jYXQob3B0aW9ucy5kZXB0aHMpIDogb3B0aW9ucy5kZXB0aHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZXB0aHMgPSBbY29udGV4dF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFpbihjb250ZXh0LyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuICcnICsgdGVtcGxhdGVTcGVjLm1haW4oY29udGFpbmVyLCBjb250ZXh0LCBjb250YWluZXIuaGVscGVycywgY29udGFpbmVyLnBhcnRpYWxzLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgICB9XG4gICAgbWFpbiA9IGV4ZWN1dGVEZWNvcmF0b3JzKHRlbXBsYXRlU3BlYy5tYWluLCBtYWluLCBjb250YWluZXIsIG9wdGlvbnMuZGVwdGhzIHx8IFtdLCBkYXRhLCBibG9ja1BhcmFtcyk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbiAgcmV0LmlzVG9wID0gdHJ1ZTtcblxuICByZXQuX3NldHVwID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucy5wYXJ0aWFsKSB7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLmhlbHBlcnMsIGVudi5oZWxwZXJzKTtcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLnBhcnRpYWxzLCBlbnYucGFydGlhbHMpO1xuICAgICAgfVxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsIHx8IHRlbXBsYXRlU3BlYy51c2VEZWNvcmF0b3JzKSB7XG4gICAgICAgIGNvbnRhaW5lci5kZWNvcmF0b3JzID0gY29udGFpbmVyLm1lcmdlKG9wdGlvbnMuZGVjb3JhdG9ycywgZW52LmRlY29yYXRvcnMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICB9XG4gIH07XG5cbiAgcmV0Ll9jaGlsZCA9IGZ1bmN0aW9uKGksIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZUJsb2NrUGFyYW1zICYmICFibG9ja1BhcmFtcykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIGJsb2NrIHBhcmFtcycpO1xuICAgIH1cbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocyAmJiAhZGVwdGhzKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdtdXN0IHBhc3MgcGFyZW50IGRlcHRocycpO1xuICAgIH1cblxuICAgIHJldHVybiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIHRlbXBsYXRlU3BlY1tpXSwgZGF0YSwgMCwgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIGZuLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKGRlcHRocyAmJiBjb250ZXh0ICE9IGRlcHRoc1swXSAmJiAhKGNvbnRleHQgPT09IGNvbnRhaW5lci5udWxsQ29udGV4dCAmJiBkZXB0aHNbMF0gPT09IG51bGwpKSB7XG4gICAgICBjdXJyZW50RGVwdGhzID0gW2NvbnRleHRdLmNvbmNhdChkZXB0aHMpO1xuICAgIH1cblxuICAgIHJldHVybiBmbihjb250YWluZXIsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGNvbnRhaW5lci5oZWxwZXJzLCBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgIG9wdGlvbnMuZGF0YSB8fCBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtcyAmJiBbb3B0aW9ucy5ibG9ja1BhcmFtc10uY29uY2F0KGJsb2NrUGFyYW1zKSxcbiAgICAgICAgY3VycmVudERlcHRocyk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuXG4gICAgICAvLyBSZXN0b3JlIHRoZSBwYXJ0aWFsLWJsb2NrIGZyb20gdGhlIGNsb3N1cmUgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGJsb2NrXG4gICAgICAvLyBpLmUuIHRoZSBwYXJ0IGluc2lkZSB0aGUgYmxvY2sgb2YgdGhlIHBhcnRpYWwgY2FsbC5cbiAgICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgICBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXSA9IGN1cnJlbnRQYXJ0aWFsQmxvY2s7XG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBpZiAoZm4ucGFydGlhbHMpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHMgPSBVdGlscy5leHRlbmQoe30sIG9wdGlvbnMucGFydGlhbHMsIGZuLnBhcnRpYWxzKTtcbiAgICB9XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkICYmIHBhcnRpYWxCbG9jaykge1xuICAgIHBhcnRpYWwgPSBwYXJ0aWFsQmxvY2s7XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVGhlIHBhcnRpYWwgJyArIG9wdGlvbnMubmFtZSArICcgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gIH0gZWxzZSBpZiAocGFydGlhbCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIHBhcnRpYWwoY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKSB7IHJldHVybiAnJzsgfVxuXG5mdW5jdGlvbiBpbml0RGF0YShjb250ZXh0LCBkYXRhKSB7XG4gIGlmICghZGF0YSB8fCAhKCdyb290JyBpbiBkYXRhKSkge1xuICAgIGRhdGEgPSBkYXRhID8gY3JlYXRlRnJhbWUoZGF0YSkgOiB7fTtcbiAgICBkYXRhLnJvb3QgPSBjb250ZXh0O1xuICB9XG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBleGVjdXRlRGVjb3JhdG9ycyhmbiwgcHJvZywgY29udGFpbmVyLCBkZXB0aHMsIGRhdGEsIGJsb2NrUGFyYW1zKSB7XG4gIGlmIChmbi5kZWNvcmF0b3IpIHtcbiAgICBsZXQgcHJvcHMgPSB7fTtcbiAgICBwcm9nID0gZm4uZGVjb3JhdG9yKHByb2csIHByb3BzLCBjb250YWluZXIsIGRlcHRocyAmJiBkZXB0aHNbMF0sIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpO1xuICAgIFV0aWxzLmV4dGVuZChwcm9nLCBwcm9wcyk7XG4gIH1cbiAgcmV0dXJuIHByb2c7XG59XG4iXX0=\n\n\n/***/ })\n\n},[2]);\n\n\n// WEBPACK FOOTER //\n// app.c7148aa7ef3d10e9fff3.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport menuManager from 'menu-manager';\r\nimport {MOBILE_MENU_ID} from '../../hamburger/js/generic.hamburger';\r\n\r\nexport default class HelplineMenu extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.container.addEventListener(\"click\", this.toggle.bind(this));\r\n\r\n this.menu = document.querySelector('.js-helpline-menu');\r\n this.menuId = 'helpline';\r\n this.isOpened = false;\r\n\r\n\r\n menuManager.init(this.menuId, {\r\n default: {\r\n open: this.open.bind(this),\r\n close: this.close.bind(this),\r\n level: 1\r\n },\r\n desktop: {\r\n isEnabled: false\r\n }\r\n });\r\n\r\n this.isOpenedGlabally = null;\r\n }\r\n\r\n toggle() {\r\n if (this.isOpened) {\r\n //check if we opened helpline from page or from mobile menu\r\n if (this.isOpenedGlabally === true) {\r\n menuManager.close(this.menuId);\r\n menuManager.close(MOBILE_MENU_ID);\r\n } else {\r\n menuManager.close(this.menuId);\r\n }\r\n } else {\r\n if (menuManager.isOpened(MOBILE_MENU_ID)) {\r\n this.isOpenedGlabally = false;\r\n } else {\r\n //open mobile menu manually\r\n menuManager.open(MOBILE_MENU_ID);\r\n this.isOpenedGlabally = true;\r\n }\r\n menuManager.open(this.menuId);\r\n }\r\n }\r\n\r\n open() {\r\n this.isOpened = true;\r\n this.menu.classList.add(\"is-opened\");\r\n this.container.classList.add(\"is-opened\");\r\n }\r\n\r\n close() {\r\n this.isOpened = false;\r\n this.isOpenedGlabally = null;\r\n this.menu.classList.remove(\"is-opened\");\r\n this.container.classList.remove(\"is-opened\");\r\n }\r\n\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/helpline-menu/js/generic.helpline-menu.js","'use strict';\r\n\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-postback-button',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.postback-button');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/postback-button/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-hero-image',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.hero-image');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/hero-image/main.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-user2\",\n \"use\": \"icon-user2-usage\",\n \"viewBox\": \"152.9 54.9 237.1 220.2\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/user2.svg\n// module id = +Xj0\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-jg-imagery',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.jg-imagery');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/jg-imagery/main.js","(function() {\r\n\r\n if (!Element.prototype.matches) {\r\n\r\n Element.prototype.matches = Element.prototype.matchesSelector ||\r\n Element.prototype.webkitMatchesSelector ||\r\n Element.prototype.mozMatchesSelector ||\r\n Element.prototype.msMatchesSelector;\r\n\r\n }\r\n\r\n})();\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/matches-polyfill.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-image-gallery',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.image-gallery');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/image-gallery/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\nimport app from 'app-instance';\r\n\r\nexport default class BasketInfo extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.basketInfoUrl = '/api/shoppingcart/get';\r\n this.totalCountSelector = '.js-basket-info-total-count';\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.totalCount = this.container.querySelector(this.totalCountSelector);\r\n if (!this.totalCount) {\r\n return;\r\n }\r\n\r\n this.loadInitial();\r\n app.addListener('basket', this.onBasketUpdate.bind(this));\r\n }\r\n\r\n onBasketUpdate(basket) {\r\n this.updateInfo(basket)\r\n }\r\n\r\n updateInfo(basket) {\r\n this.totalCount.innerHTML = basket.TotalCount;\r\n }\r\n\r\n loadInitial() {\r\n return this.doBasketInfoRequest().then((result) => {\r\n this.updateInfo(result);\r\n }, (error) => {\r\n console.log(error);\r\n })\r\n }\r\n\r\n doBasketInfoRequest(params = {}) {\r\n return new Promise((resolve, reject) => {\r\n $.ajax({\r\n method: \"get\",\r\n url: this.getUrl(params),\r\n }).done((response) => {\r\n resolve(response);\r\n }).fail((error) => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n getUrl(params) {\r\n let paramsString = Object.keys(params).map(key => `${key}=${params[key]}`).join('&');\r\n return `${this.basketInfoUrl}` + (paramsString !== '' ? `?${paramsString}` : '');\r\n }\r\n}\r\n\r\nBasketInfo.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/shop/js/generic.basket-info.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport app from 'app-instance';\r\n\r\nexport default class HeroDonate extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.elements = this.container.querySelectorAll(\".js-hero-donate-item\");\r\n this.currencyContainer = this.container.querySelector('.js-custom-donate-currency');\r\n this.init();\r\n app.addListener('donateAmount:input', this.removeActive.bind(this));\r\n }\r\n\r\n init() {\r\n [...this.elements].forEach(x => x.addEventListener(\"click\", this.removeActive.bind(this)));\r\n [...this.elements].forEach(x => x.addEventListener(\"click\", this.addActive.bind(this, x)));\r\n\r\n for (let i = 0; i < this.elements.length; i++) {\r\n this.elements[i].addEventListener('click', () => {\r\n document.getElementById(\"monthly-donation\").style.cssText = \"display: none\";\r\n document.querySelector(\".custom-donate__tab.js-button\").classList.remove('js-active');\r\n document.querySelector(\".custom-donate__tab.js-button.single-donate\").classList.add('js-active');\r\n document.getElementById(\"single-donation\").style.visibility = 'visible';\r\n document.getElementById(\"single-donation\").style.cssText = \"display: block\";\r\n document.querySelector(\".js-custom-donate-currency\").style.visibility = 'visible';\r\n });\r\n }\r\n }\r\n\r\n removeActive() {\r\n [...this.elements].forEach(x => x.classList.remove(\"is-active\"));\r\n this.container.classList.remove(\"is-some-active\");\r\n }\r\n\r\n addActive(element) {\r\n this.container.classList.add(\"is-some-active\");\r\n element.classList.add(\"is-active\");\r\n app.emitEvent('donateAmount:change', [element.dataset.amount])\r\n }\r\n}\r\n\r\nHeroDonate.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/hero-donate/js/generic.hero-donate.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-tick2\",\n \"use\": \"icon-tick2-usage\",\n \"viewBox\": \"0 0 28.85 23.75\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/tick2.svg\n// module id = 1Di1\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else {\n var priorKey = undefined;\n\n for (var key in context) {\n if (context.hasOwnProperty(key)) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n }\n }\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQUErRSxVQUFVOzt5QkFDbkUsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksQ0FBQyxPQUFPLEVBQUU7QUFDWixZQUFNLDJCQUFjLDZCQUE2QixDQUFDLENBQUM7S0FDcEQ7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUU7UUFDZixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU87UUFDekIsQ0FBQyxHQUFHLENBQUM7UUFDTCxHQUFHLEdBQUcsRUFBRTtRQUNSLElBQUksWUFBQTtRQUNKLFdBQVcsWUFBQSxDQUFDOztBQUVoQixRQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixpQkFBVyxHQUFHLHlCQUFrQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0tBQ2pGOztBQUVELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDaEIsVUFBSSxHQUFHLG1CQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNsQzs7QUFFRCxhQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN6QyxVQUFJLElBQUksRUFBRTtBQUNSLFlBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQ2pCLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQ25CLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUN6QixZQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7O0FBRW5CLFlBQUksV0FBVyxFQUFFO0FBQ2YsY0FBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQ3hDO09BQ0Y7O0FBRUQsU0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzdCLFlBQUksRUFBRSxJQUFJO0FBQ1YsbUJBQVcsRUFBRSxtQkFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDL0UsQ0FBQyxDQUFDO0tBQ0o7O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNO0FBQ0wsWUFBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixhQUFLLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRTtBQUN2QixjQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Ozs7QUFJL0IsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0w7U0FDRjtBQUNELFlBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQix1QkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3RDO09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXBwZW5kQ29udGV4dFBhdGgsIGJsb2NrUGFyYW1zLCBjcmVhdGVGcmFtZSwgaXNBcnJheSwgaXNGdW5jdGlvbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICAgIGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICByZXQgPSAnJyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY29udGV4dFBhdGg7XG5cbiAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICBjb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5pZHNbMF0pICsgJy4nO1xuICAgIH1cblxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7IGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7IH1cblxuICAgIGlmIChvcHRpb25zLmRhdGEpIHtcbiAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4ZWNJdGVyYXRpb24oZmllbGQsIGluZGV4LCBsYXN0KSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBkYXRhLmtleSA9IGZpZWxkO1xuICAgICAgICBkYXRhLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIGRhdGEuZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgZGF0YS5sYXN0ID0gISFsYXN0O1xuXG4gICAgICAgIGlmIChjb250ZXh0UGF0aCkge1xuICAgICAgICAgIGRhdGEuY29udGV4dFBhdGggPSBjb250ZXh0UGF0aCArIGZpZWxkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldCA9IHJldCArIGZuKGNvbnRleHRbZmllbGRdLCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dFtmaWVsZF0sIGZpZWxkXSwgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRleHQgJiYgdHlwZW9mIGNvbnRleHQgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgICBmb3IgKGxldCBqID0gY29udGV4dC5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgICAgICBpZiAoaSBpbiBjb250ZXh0KSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKGksIGksIGkgPT09IGNvbnRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgZm9yIChsZXQga2V5IGluIGNvbnRleHQpIHtcbiAgICAgICAgICBpZiAoY29udGV4dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAvLyBXZSdyZSBydW5uaW5nIHRoZSBpdGVyYXRpb25zIG9uZSBzdGVwIG91dCBvZiBzeW5jIHNvIHdlIGNhbiBkZXRlY3RcbiAgICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAgIC8vIGFuIGl0ZXJtZWRpYXRlIGtleXMgYXJyYXkuXG4gICAgICAgICAgICBpZiAocHJpb3JLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmlvcktleSA9IGtleTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgcmV0ID0gaW52ZXJzZSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js\n// module id = 1TTl\n// module chunks = 0","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport menuManager from 'menu-manager';\r\nimport {MOBILE_MENU_ID} from '../../hamburger/js/generic.hamburger';\r\n\r\nexport default class DonateeMenu extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.container.addEventListener(\"click\", this.toggle.bind(this));\r\n\r\n this.menu = document.querySelector('.js-donate-menu');\r\n this.menuId = 'donate';\r\n this.isOpened = false;\r\n\r\n\r\n menuManager.init(this.menuId, {\r\n default: {\r\n open: this.open.bind(this),\r\n close: this.close.bind(this),\r\n level: 1\r\n },\r\n desktop: {\r\n isEnabled: false\r\n }\r\n });\r\n\r\n this.isOpenedGlabally = null;\r\n }\r\n\r\n toggle() {\r\n if (this.isOpened) {\r\n //check if we opened helpline from page or from mobile menu\r\n if (this.isOpenedGlabally === true) {\r\n menuManager.close(this.menuId);\r\n menuManager.close(MOBILE_MENU_ID);\r\n } else {\r\n menuManager.close(this.menuId);\r\n }\r\n } else {\r\n if (menuManager.isOpened(MOBILE_MENU_ID)) {\r\n this.isOpenedGlabally = false;\r\n } else {\r\n //open mobile menu manually\r\n menuManager.open(MOBILE_MENU_ID);\r\n this.isOpenedGlabally = true;\r\n }\r\n menuManager.open(this.menuId);\r\n }\r\n }\r\n\r\n open() {\r\n this.isOpened = true;\r\n this.menu.classList.add(\"is-opened\");\r\n this.container.classList.add(\"is-opened\");\r\n }\r\n\r\n close() {\r\n this.isOpened = false;\r\n this.isOpenedGlabally = null;\r\n this.menu.classList.remove(\"is-opened\");\r\n this.container.classList.remove(\"is-opened\");\r\n }\r\n\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/donate-menu/js/generic.donate-menu.js","'use strict';\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-sharethis',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.sharethis');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/sharethis/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet mapInstance = new Factory({\r\n className: 'js-google-map-container',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.map');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nmapInstance.init();\r\n\r\nlet pinSwitcherInstance = new Factory({\r\n className: 'js-google-pin-switcher',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.pin-switcher');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\npinSwitcherInstance.init();\r\n\r\nexport default {\r\n mapInstance,\r\n pinSwitcherInstance\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/map/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-header-top',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.header-top');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/header/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/cookie-bar/main.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-delete-logo\",\n \"use\": \"icon-delete-logo-usage\",\n \"viewBox\": \"0 0 54 14.003\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/delete-logo.svg\n// module id = 3yJq\n// module chunks = 0","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport TweenLite from 'gsap/TweenLite';\r\nimport $ from 'jquery';\r\nimport menuManager from 'menu-manager';\r\n\r\nexport default class MainNav extends Component {\r\n\r\n constructor(el) {\r\n super(el);\r\n this.defineVariables();\r\n this.initNav();\r\n }\r\n\r\n defineVariables() {\r\n this.menuId = 'mainSubNav';\r\n\r\n this.itemsSelector = \".js-main-nav-item\";\r\n this.subsSelector = \".js-main-nav-sub\";\r\n\r\n this.body = document.body;\r\n this.menuItems = [...document.querySelectorAll(this.itemsSelector)];\r\n\r\n this.bg = document.querySelector(\".js-main-nav__bg\");\r\n this.shadowBg = document.querySelector(\".js-main-nav__shadow-bg\");\r\n this.angleBg = document.querySelector(\".js-main-nav__angle-bg\");\r\n this.secondaryNav = this.container.querySelectorAll(this.subsSelector);\r\n\r\n this.isOpened = false;\r\n this.isItemHoveredMenuClass = 'is-item-hovered';\r\n this.isItemOpenedMenuClass = 'is-item-opened';\r\n this.isMenuItemHovered = false;\r\n this.selectedMenuItem = null;\r\n this.isItemOpenedClass = 'is-opened';\r\n }\r\n\r\n initNav() {\r\n this.menuItems.forEach(item => {\r\n item.addEventListener('mouseenter', this.onMouseOverItem.bind(this));\r\n let subNav = item.querySelector(this.subsSelector);\r\n if (subNav) {\r\n let link = item.querySelector('a');\r\n if (link) {\r\n link.addEventListener('click', (e) => {\r\n this.itemOpenOnClick(e, item, subNav);\r\n });\r\n link.addEventListener('mouseenter', (e) => {\r\n this.itemOpenOnHover(e, item, subNav);\r\n });\r\n }\r\n }\r\n });\r\n document.addEventListener('click', this.checkOuterClick.bind(this));\r\n this.container.addEventListener('mouseleave', this.onMouseLeave.bind(this));\r\n\r\n menuManager.init(this.menuId, {\r\n default: {\r\n open: this.openMenu.bind(this),\r\n close: this.closeMenu.bind(this),\r\n level: 0\r\n },\r\n mobile: {\r\n isEnabled: false\r\n }\r\n });\r\n }\r\n\r\n itemOpenOnHover(e, hoveredItem, subNav) {\r\n e.preventDefault();\r\n if (this.isOpened && hoveredItem !== this.selectedMenuItem) {\r\n this.handleItemOpen(hoveredItem, subNav);\r\n }\r\n }\r\n\r\n itemOpenOnClick(e, clickedItem, subNav) {\r\n e.preventDefault();\r\n if (this.selectedMenuItem !== clickedItem) {\r\n if (!this.isOpened) {\r\n menuManager.open(this.menuId);\r\n }\r\n this.handleItemOpen(clickedItem, subNav);\r\n }\r\n }\r\n\r\n handleItemOpen(clickedItem, subNav) {\r\n clickedItem.classList.add(this.isItemOpenedClass);\r\n this.selectedMenuItem = clickedItem;\r\n this.menuItems.forEach(item => {\r\n if (clickedItem !== item) {\r\n item.classList.remove(this.isItemOpenedClass);\r\n }\r\n });\r\n TweenLite.to(this.secondaryNav, 0.2, {autoAlpha: 0, display: 'none'});\r\n TweenLite.to(subNav, 0.2, {autoAlpha: 1, display: 'flex'});\r\n }\r\n\r\n checkOuterClick(e) {\r\n if (this.isOpened) {\r\n let $target = $(e.target);\r\n let itemsLinkSelector = `${this.itemsSelector} a`;\r\n let subnavLinkSelector = `${this.subsSelector} li a`;\r\n let subnavLiSelector = `${this.subsSelector} li`;\r\n if (!$target.is(itemsLinkSelector) && !($target.is(subnavLinkSelector) || $target.parents(subnavLiSelector).length)) {\r\n menuManager.close(this.menuId);\r\n }\r\n }\r\n }\r\n\r\n openMenu() {\r\n this.isOpened = true;\r\n this.container.classList.add(this.isItemOpenedMenuClass);\r\n TweenLite.to(this.bg, 0.3, {autoAlpha: 1, display: 'block'});\r\n TweenLite.fromTo(this.angleBg, 0.3, {y: 0}, {y: 800});\r\n }\r\n\r\n closeMenu() {\r\n this.isOpened = false;\r\n TweenLite.to(this.bg, 0.3, {delay: 0.2, autoAlpha: 0, display: 'none'});\r\n TweenLite.fromTo(this.angleBg, 0.3, {y: 800}, {y: 0});\r\n TweenLite.to(this.secondaryNav, 0.2, {autoAlpha: 0, display: 'none'});\r\n this.container.classList.remove(this.isItemOpenedMenuClass);\r\n this.selectedMenuItem.classList.remove(this.isItemOpenedClass);\r\n this.selectedMenuItem = null;\r\n }\r\n\r\n onMouseOverItem(e) {\r\n if (!this.isMenuItemHovered) {\r\n this.isMenuItemHovered = true;\r\n this.container.classList.add(this.isItemHoveredMenuClass);\r\n }\r\n }\r\n\r\n onMouseLeave(e) {\r\n this.container.classList.remove(this.isItemHoveredMenuClass);\r\n this.isMenuItemHovered = false;\r\n }\r\n}\r\n\r\nMainNav.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/nav-main/js/generic.navmain.js","import ModalController from './modal-controller';\r\n\r\nexport default class Modal {\r\n constructor(options) {\r\n this._content = null;\r\n this.options = Object.assign({}, Modal.defaultOptions, options);\r\n\r\n this.controller = ModalController.getInstance();\r\n }\r\n\r\n open(refresh = true) {\r\n this.controller.open(this, refresh);\r\n }\r\n\r\n getPreparedContent(refresh) {\r\n if (this._content === null || refresh) {\r\n return this.getContent().then((content) => {\r\n this._content = content;\r\n return this._content;\r\n });\r\n }\r\n return Promise.resolve(this._content);\r\n }\r\n\r\n close() {\r\n this.controller.close();\r\n }\r\n\r\n getContent() {\r\n throw new Error('You have to implement the method getContent!');\r\n }\r\n\r\n disableClosing() {\r\n this.options.closable = false;\r\n }\r\n\r\n enableClosing() {\r\n this.options.closable = true;\r\n }\r\n}\r\n\r\nModal.defaultOptions = {\r\n closable: true\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/modal/js/modal.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-helpline-menu-trigger',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.helpline-menu');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/helpline-menu/main.js","const helpers = {};\r\n\r\nhelpers.debounce = (context, f, ms) => {\r\n\r\n let timer = null;\r\n\r\n return function (...args) {\r\n const onComplete = () => {\r\n f.apply(context, args);\r\n timer = null;\r\n };\r\n\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n\r\n timer = setTimeout(onComplete, ms);\r\n };\r\n};\r\n\r\nhelpers.throttle = (context, f, ms) => {\r\n\r\n let timer = null;\r\n\r\n return function (...args) {\r\n const onComplete = () => {\r\n f.apply(context, args);\r\n timer = null;\r\n };\r\n\r\n if (!timer) {\r\n timer = setTimeout(onComplete, ms);\r\n }\r\n\r\n };\r\n};\r\n\r\nhelpers.getParent = (target, selector, includeSelf = true) => {\r\n if (includeSelf && target.matches(selector)) {\r\n return target;\r\n }\r\n\r\n let parent = target.parentElement;\r\n while (parent !== null) {\r\n if (parent.matches(selector)) {\r\n return parent;\r\n }\r\n parent = parent.parentElement;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default helpers;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/helpers.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-arrow-left\",\n \"use\": \"icon-arrow-left-usage\",\n \"viewBox\": \"82.083 0 280.364 444.531\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/arrow-left.svg\n// module id = 51GQ\n// module chunks = 0","var Handlebars = require(\"C:\\\\TeamCityAgents\\\\02\\\\work\\\\bbe988d6cf529cbd\\\\CMS\\\\App_Themes\\\\DeleteKenticoFramework\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/modal/html/modal.handlebars\n// module id = 5341\n// module chunks = 0","'use strict';\r\n\r\nimport $ from 'jquery';\r\nimport Modernizr from 'imports-loader?this=>window!exports-loader?Modernizr!./modernizr-build';\r\nimport EventEmitter from 'wolfy87-eventemitter';\r\n\r\nexport const DEVICE_TYPE_DESKTOP = 'desktop';\r\nexport const DEVICE_TYPE_TABLET = 'tablet';\r\nexport const DEVICE_TYPE_MOBILE = 'mobile';\r\n\r\nclass App extends EventEmitter {\r\n constructor() {\r\n super();\r\n\r\n this.timeoutTime = 150;\r\n this.timeoutId = null;\r\n this.$window = $(window);\r\n this.isTouch = Modernizr.touchevents;\r\n this.isIOSMobile = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\r\n this.applyViewportData();\r\n\r\n this.$window.on('resize orientationchange', this.onWindowResize.bind(this));\r\n }\r\n\r\n applyViewportData() {\r\n this.viewport = {\r\n width: this.$window.outerWidth(),\r\n height: this.$window.outerHeight(),\r\n orientation: typeof window.orientation === \"undefined\" || Math.abs(window.orientation) === 90 ? \"landscape\" : \"portrait\"\r\n };\r\n this.isDesktop = Modernizr.mq('only screen and (min-width:1025px)');\r\n if (this.isDesktop) {\r\n this.isTablet = true;\r\n } else {\r\n this.isTablet = Modernizr.mq('only screen and (min-width:768px)');\r\n }\r\n this.deviceTypeByViewport = this.isDesktop ? DEVICE_TYPE_DESKTOP : (this.isTablet ? DEVICE_TYPE_TABLET : DEVICE_TYPE_MOBILE);\r\n }\r\n\r\n onWindowResize() {\r\n if (this.timeoutId !== null) {\r\n clearTimeout(this.timeoutId);\r\n }\r\n this.timeoutId = setTimeout(this.handleWindowResize.bind(this), this.timeoutTime);\r\n }\r\n\r\n handleWindowResize() {\r\n let oldDeviceType = this.deviceTypeByViewport;\r\n this.applyViewportData();\r\n this.emitEvent('resize:finished');\r\n if (oldDeviceType !== this.deviceTypeByViewport) {\r\n this.emitEvent('device-type-changed', [oldDeviceType, this.deviceTypeByViewport]);\r\n }\r\n }\r\n\r\n isMobileDevice() {\r\n return this.deviceTypeByViewport === DEVICE_TYPE_MOBILE;\r\n }\r\n}\r\n\r\nlet instance = new App();\r\nexport default instance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/app-instance.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'panel-group',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.accordion');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/accordion/main.js","'use strict';\r\n\r\nimport Form from '../../form/js/generic.form';\r\n\r\n\r\nexport default class CustomDonateForm extends Form {\r\n constructor(el, notLoggedSubmitHandler, isLoggedIn, ) {\r\n\r\n super(el);\r\n this.isLoggedIn = isLoggedIn;\r\n this.notLoggedSubmitHandler = notLoggedSubmitHandler;\r\n\r\n }\r\n\r\n beforeSubmit(e) {\r\n\r\n if (this.isLoggedIn) {\r\n if (this.parsleyForm.validate()) {\r\n window.__doPostBack(this.submit.getAttribute('data-clientid'), '');\r\n }\r\n } else {\r\n this.notLoggedSubmitHandler();\r\n this.submit.setAttribute('disabled','');\r\n }\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/custom-donate/js/custom-donate-form.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-download\",\n \"use\": \"icon-download-usage\",\n \"viewBox\": \"0 0 10 11.99\",\n \"content\": \"\\r\\n \\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/download.svg\n// module id = 5mra\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/eligibility-checker/main.js","import Modal from \"./modal\";\r\nimport $ from 'jquery';\r\n\r\nexport default class UrlModal extends Modal {\r\n constructor(url) {\r\n super();\r\n this.url = url;\r\n }\r\n\r\n getContent() {\r\n return new Promise((resolve, reject) => {\r\n $.ajax({url: this.url}).done((responseText) => {\r\n let selector = 'body';\r\n //from jquery .load src\r\n let content = $(\"
\").content.append(responseText).find(selector);\r\n //for some reason body can disappear from jquery element content\r\n //and content in this case is empty\r\n //check this if url modal will be used\r\n resolve(content);\r\n }).fail((error) => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/modal/js/url-modal.js","var Handlebars = require(\"C:\\\\TeamCityAgents\\\\02\\\\work\\\\bbe988d6cf529cbd\\\\CMS\\\\App_Themes\\\\DeleteKenticoFramework\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"
\\r\\n
\"\n + alias4(((helper = (helper = helpers.number || (depth0 != null ? depth0.number : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"number\",\"hash\":{},\"data\":data}) : helper)))\n + \". \"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\"\n + alias4(((helper = (helper = helpers.pageTitle || (depth0 != null ? depth0.pageTitle : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"pageTitle\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n \\r\\n
\\r\\n
\"\n + alias4(((helper = (helper = helpers.currencySign || (depth0 != null ? depth0.currencySign : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"currencySign\",\"hash\":{},\"data\":data}) : helper)))\n + alias4(((helper = (helper = helpers.amount || (depth0 != null ? depth0.amount : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"amount\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\"\n + alias4(((helper = (helper = helpers.targetRate || (depth0 != null ? depth0.targetRate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"targetRate\",\"hash\":{},\"data\":data}) : helper)))\n + \"% of target
\\r\\n
\\r\\n
\\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression, buffer = \n \"
\\r\\n
Top \"\n + alias4(((helper = (helper = helpers.count || (depth0 != null ? depth0.count : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"count\",\"hash\":{},\"data\":data}) : helper)))\n + \" Fundraiser Leaderboard for \"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n\";\n stack1 = ((helper = (helper = helpers.leaders || (depth0 != null ? depth0.leaders : depth0)) != null ? helper : alias2),(options={\"name\":\"leaders\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!helpers.leaders) { stack1 = helpers.blockHelperMissing.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n return buffer + \"
\\r\\n\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/jg-leaderboard/html/jg-leaderboard.hbs\n// module id = 8VB3\n// module chunks = 0","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\nimport StaticModal from \"./static-modal\";\r\nimport UrlModal from \"./url-modal\";\r\n\r\nexport default class ModalComponent extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.$container = $(this.container);\r\n this.modalInstance = null;\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.refresh = this.$container.data('modal-refresh') || false;\r\n this.$container.on('click', (e) => {\r\n this.handleClick(e);\r\n })\r\n }\r\n\r\n handleClick(e) {\r\n e.preventDefault();\r\n\r\n if (this.modalInstance === null) {\r\n let targetSelector = this.$container.data('modal-target');\r\n if (targetSelector) {\r\n this.modalInstance = new StaticModal(targetSelector);\r\n }\r\n\r\n let href = this.$container.attr('href');\r\n if (href) {\r\n this.modalInstance = new UrlModal(href);\r\n }\r\n }\r\n\r\n if (this.modalInstance) {\r\n this.modalInstance.open(this.refresh);\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/modal/js/generic.modal.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-search\",\n \"use\": \"icon-search-usage\",\n \"viewBox\": \"0 0 16 16\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/search.svg\n// module id = 98Kd\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/embed-product/main.js","var Handlebars = require(\"C:\\\\TeamCityAgents\\\\02\\\\work\\\\bbe988d6cf529cbd\\\\CMS\\\\App_Themes\\\\DeleteKenticoFramework\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"
\\r\\n
\\r\\n
\"\n + alias4(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\"\n + alias4(((helper = (helper = helpers.text || (depth0 != null ? depth0.text : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"text\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\\r\\n\\r\\n Get Directions\\r\\n
\\r\\n\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/map/html/infoWindowTemplate.hbs\n// module id = 9GCv\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-donaton-selector',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.donation-selector');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/donation-selector/main.js","import Modal from \"./modal\";\r\nimport $ from 'jquery';\r\n\r\nexport default class StaticModal extends Modal {\r\n\r\n constructor(targetSelector) {\r\n super();\r\n this.targetSelector = targetSelector;\r\n }\r\n\r\n getContent() {\r\n let target = $(this.targetSelector);\r\n if (target.length === 0) {\r\n throw new Error('Modal target not found');\r\n }\r\n\r\n let content = target.children();\r\n return Promise.resolve(content);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/modal/js/static-modal.js","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXFCLFVBQVU7O3FCQUVoQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZXh0ZW5kfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVyRGVjb3JhdG9yKCdpbmxpbmUnLCBmdW5jdGlvbihmbiwgcHJvcHMsIGNvbnRhaW5lciwgb3B0aW9ucykge1xuICAgIGxldCByZXQgPSBmbjtcbiAgICBpZiAoIXByb3BzLnBhcnRpYWxzKSB7XG4gICAgICBwcm9wcy5wYXJ0aWFscyA9IHt9O1xuICAgICAgcmV0ID0gZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgcGFydGlhbHMgc3RhY2sgZnJhbWUgcHJpb3IgdG8gZXhlYy5cbiAgICAgICAgbGV0IG9yaWdpbmFsID0gY29udGFpbmVyLnBhcnRpYWxzO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBleHRlbmQoe30sIG9yaWdpbmFsLCBwcm9wcy5wYXJ0aWFscyk7XG4gICAgICAgIGxldCByZXQgPSBmbihjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gb3JpZ2luYWw7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLnBhcnRpYWxzW29wdGlvbnMuYXJnc1swXV0gPSBvcHRpb25zLmZuO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js\n// module id = 9ZNr\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet shopItemInstance = new Factory({\r\n className: 'js-shop-item',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.shop-item');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\nshopItemInstance.init();\r\n\r\nlet shopBundleInstance = new Factory({\r\n className: 'js-shop-bundle',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.shop-bundle');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\nshopBundleInstance.init();\r\n\r\nlet basketInstance = new Factory({\r\n className: 'js-basket',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.basket');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\nbasketInstance.init();\r\n\r\nlet basketInfoInstance = new Factory({\r\n className: 'js-basket-info',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.basket-info');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\nbasketInfoInstance.init();\r\n\r\nexport default {\r\n shopItemInstance,\r\n shopBundleInstance,\r\n basketInstance,\r\n basketInfoInstance\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/shop/main.js","'use strict';\r\n\r\nexport default class Factory {\r\n constructor(settings) {\r\n this.settings = settings;\r\n this.elements = {};\r\n }\r\n\r\n init() {\r\n let elements = document.querySelectorAll(`.${this.settings.className}:not(.${this.getInitedClass()})`);\r\n for (let i = 0, l = elements.length; i < l; i++) {\r\n this.initSingle(elements[i]);\r\n }\r\n }\r\n\r\n getInitedClass() {\r\n return `${this.settings.className}-inited`;\r\n }\r\n\r\n initSingle(element) {\r\n const createInstance = (instance) => {\r\n if (this.hasClass(element, this.getInitedClass())) {\r\n return this.elements[element.getAttribute('data-id')] || null;\r\n }\r\n\r\n this.addClass(element, this.getInitedClass());\r\n\r\n let elementInstance = new instance(element);\r\n this.elements[elementInstance.id] = elementInstance;\r\n return this.elements[elementInstance.id];\r\n };\r\n\r\n let promise = new Promise((resolve, reject) => {\r\n if (typeof this.settings.ensure == \"function\") {\r\n this.settings.ensure(resolve, createInstance);\r\n } else {\r\n reject(null);\r\n }\r\n });\r\n\r\n return promise;\r\n }\r\n\r\n destroy() {\r\n for (let id in this.elements) {\r\n this.removeClass(this.elements[id].element, this.getInitedClass());\r\n this.elements[id].destroy();\r\n }\r\n this.elements = {};\r\n this.settings.classInstance.id = 0;\r\n }\r\n\r\n destroySingle(element) {\r\n if (!this.hasClass(element, this.getInitedClass())) {\r\n return element;\r\n }\r\n\r\n let id = element.getAttribute('data-id');\r\n if (!id || !this.elements[id]) {\r\n return;\r\n }\r\n this.removeClass(this.elements[id].element, this.getInitedClass());\r\n this.elements[id].destroy();\r\n\r\n delete this.elements[id];\r\n }\r\n\r\n addClass(element, className) {\r\n if (element.classList) {\r\n element.classList.add(className);\r\n } else {\r\n element.setAttribute('class', element.getAttribute('class') + ' ' + className);\r\n }\r\n }\r\n\r\n removeClass(element, className) {\r\n if (element.classList) {\r\n element.classList.remove(className);\r\n } else {\r\n element.setAttribute('class', element.getAttribute('class').replace(className, ''));\r\n }\r\n }\r\n\r\n hasClass(element, className) {\r\n if (element.classList) {\r\n return element.classList.contains(className);\r\n } else {\r\n return element.getAttribute('class').indexOf(className) >= 0;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/generic.factory.js","/*!\n* Tippy.js v2.5.4\n* (c) 2017-2018 atomiks\n* MIT\n*/\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.tippy = factory());\n}(this, (function () { 'use strict';\n\nvar styles = \".tippy-touch{cursor:pointer!important}.tippy-notransition{transition:none!important}.tippy-popper{max-width:350px;-webkit-perspective:700px;perspective:700px;z-index:9999;outline:0;transition-timing-function:cubic-bezier(.165,.84,.44,1);pointer-events:none;line-height:1.4}.tippy-popper[data-html]{max-width:96%;max-width:calc(100% - 20px)}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 90%;transform-origin:0 90%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-50%,25%);transform:scale(6) translate(-50%,25%);opacity:1}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1) translate(-50%,25%);transform:scale(1) translate(-50%,25%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px) rotateX(0);transform:translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(90deg);transform:translateY(0) rotateX(90deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -90%;transform-origin:0 -90%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-50%,-125%);transform:scale(6) translate(-50%,-125%);opacity:1}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1) translate(-50%,-125%);transform:scale(1) translate(-50%,-125%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateY(10px) rotateX(0);transform:translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(-90deg);transform:translateY(0) rotateX(-90deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:100% 0;transform-origin:100% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(40%,-50%);transform:scale(6) translate(40%,-50%);opacity:1}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1.5) translate(40%,-50%);transform:scale(1.5) translate(40%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px) rotateY(0);transform:translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(-90deg);transform:translateX(0) rotateY(-90deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-100% 0;transform-origin:-100% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-140%,-50%);transform:scale(6) translate(-140%,-50%);opacity:1}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1.5) translate(-140%,-50%);transform:scale(1.5) translate(-140%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateX(10px) rotateY(0);transform:translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(90deg);transform:translateX(0) rotateY(90deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;text-align:center;will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-animatefill] .tippy-content{transition:-webkit-clip-path cubic-bezier(.46,.1,.52,.98);transition:clip-path cubic-bezier(.46,.1,.52,.98);transition:clip-path cubic-bezier(.46,.1,.52,.98),-webkit-clip-path cubic-bezier(.46,.1,.52,.98)}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.53,2,.36,.85)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:26%;left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:\\\"\\\";float:left;padding-top:100%}body:not(.tippy-touch) .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(100% 100% at 50% 50%);clip-path:ellipse(100% 100% at 50% 50%)}body:not(.tippy-touch) .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(5% 50% at 50% 50%);clip-path:ellipse(5% 50% at 50% 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=right] .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(135% 100% at 0 50%);clip-path:ellipse(135% 100% at 0 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=right] .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(40% 100% at 0 50%);clip-path:ellipse(40% 100% at 0 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=left] .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(135% 100% at 100% 50%);clip-path:ellipse(135% 100% at 100% 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=left] .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(40% 100% at 100% 50%);clip-path:ellipse(40% 100% at 100% 50%)}@media (max-width:360px){.tippy-popper{max-width:96%;max-width:calc(100% - 20px)}}\";\n\nvar version = \"2.5.4\";\n\nvar isBrowser = typeof window !== 'undefined';\n\nvar isIE = isBrowser && /MSIE |Trident\\//.test(navigator.userAgent);\n\nvar browser = {};\n\nif (isBrowser) {\n browser.supported = 'requestAnimationFrame' in window;\n browser.supportsTouch = 'ontouchstart' in window;\n browser.usingTouch = false;\n browser.dynamicInputDetection = true;\n browser.iOS = /iPhone|iPad|iPod/.test(navigator.platform) && !window.MSStream;\n browser.onUserInputChange = function () {};\n}\n\n/**\n * Selector constants used for grabbing elements\n */\nvar selectors = {\n POPPER: '.tippy-popper',\n TOOLTIP: '.tippy-tooltip',\n CONTENT: '.tippy-content',\n BACKDROP: '.tippy-backdrop',\n ARROW: '.tippy-arrow',\n ROUND_ARROW: '.tippy-roundarrow',\n REFERENCE: '[data-tippy]'\n};\n\nvar defaults = {\n placement: 'top',\n livePlacement: true,\n trigger: 'mouseenter focus',\n animation: 'shift-away',\n html: false,\n animateFill: true,\n arrow: false,\n delay: 0,\n duration: [350, 300],\n interactive: false,\n interactiveBorder: 2,\n theme: 'dark',\n size: 'regular',\n distance: 10,\n offset: 0,\n hideOnClick: true,\n multiple: false,\n followCursor: false,\n inertia: false,\n updateDuration: 350,\n sticky: false,\n appendTo: function appendTo() {\n return document.body;\n },\n zIndex: 9999,\n touchHold: false,\n performance: false,\n dynamicTitle: false,\n flip: true,\n flipBehavior: 'flip',\n arrowType: 'sharp',\n arrowTransform: '',\n maxWidth: '',\n target: null,\n allowTitleHTML: true,\n popperOptions: {},\n createPopperInstanceOnInit: false,\n onShow: function onShow() {},\n onShown: function onShown() {},\n onHide: function onHide() {},\n onHidden: function onHidden() {}\n};\n\n/**\n * The keys of the defaults object for reducing down into a new object\n * Used in `getIndividualOptions()`\n */\nvar defaultsKeys = browser.supported && Object.keys(defaults);\n\n/**\n * Determines if a value is an object literal\n * @param {*} value\n * @return {Boolean}\n */\nfunction isObjectLiteral(value) {\n return {}.toString.call(value) === '[object Object]';\n}\n\n/**\n * Ponyfill for Array.from\n * @param {*} value\n * @return {Array}\n */\nfunction toArray(value) {\n return [].slice.call(value);\n}\n\n/**\n * Returns an array of elements based on the selector input\n * @param {String|Element|Element[]|NodeList|Object} selector\n * @return {Element[]}\n */\nfunction getArrayOfElements(selector) {\n if (selector instanceof Element || isObjectLiteral(selector)) {\n return [selector];\n }\n\n if (selector instanceof NodeList) {\n return toArray(selector);\n }\n\n if (Array.isArray(selector)) {\n return selector;\n }\n\n try {\n return toArray(document.querySelectorAll(selector));\n } catch (_) {\n return [];\n }\n}\n\n/**\n * Polyfills needed props/methods for a virtual reference object\n * NOTE: in v3.0 this will be pure\n * @param {Object} reference\n */\nfunction polyfillVirtualReferenceProps(reference) {\n reference.refObj = true;\n reference.attributes = reference.attributes || {};\n reference.setAttribute = function (key, val) {\n reference.attributes[key] = val;\n };\n reference.getAttribute = function (key) {\n return reference.attributes[key];\n };\n reference.removeAttribute = function (key) {\n delete reference.attributes[key];\n };\n reference.hasAttribute = function (key) {\n return key in reference.attributes;\n };\n reference.addEventListener = function () {};\n reference.removeEventListener = function () {};\n reference.classList = {\n classNames: {},\n add: function add(key) {\n return reference.classList.classNames[key] = true;\n },\n remove: function remove(key) {\n delete reference.classList.classNames[key];\n return true;\n },\n contains: function contains(key) {\n return key in reference.classList.classNames;\n }\n };\n}\n\n/**\n * Returns the supported prefixed property - only `webkit` is needed, `moz`, `ms` and `o` are obsolete\n * @param {String} property\n * @return {String} - browser supported prefixed property\n */\nfunction prefix(property) {\n var prefixes = ['', 'webkit'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var _prefix = prefixes[i];\n var prefixedProp = _prefix ? _prefix + upperProp : property;\n if (typeof document.body.style[prefixedProp] !== 'undefined') {\n return prefixedProp;\n }\n }\n\n return null;\n}\n\n/**\n * Creates a div element\n * @return {Element}\n */\nfunction div() {\n return document.createElement('div');\n}\n\n/**\n * Creates a popper element then returns it\n * @param {Number} id - the popper id\n * @param {String} title - the tooltip's `title` attribute\n * @param {Object} options - individual options\n * @return {Element} - the popper element\n */\nfunction createPopperElement(id, title, options) {\n var popper = div();\n popper.setAttribute('class', 'tippy-popper');\n popper.setAttribute('role', 'tooltip');\n popper.setAttribute('id', 'tippy-' + id);\n popper.style.zIndex = options.zIndex;\n popper.style.maxWidth = options.maxWidth;\n\n var tooltip = div();\n tooltip.setAttribute('class', 'tippy-tooltip');\n tooltip.setAttribute('data-size', options.size);\n tooltip.setAttribute('data-animation', options.animation);\n tooltip.setAttribute('data-state', 'hidden');\n options.theme.split(' ').forEach(function (t) {\n tooltip.classList.add(t + '-theme');\n });\n\n var content = div();\n content.setAttribute('class', 'tippy-content');\n\n if (options.arrow) {\n var arrow = div();\n arrow.style[prefix('transform')] = options.arrowTransform;\n\n if (options.arrowType === 'round') {\n arrow.classList.add('tippy-roundarrow');\n arrow.innerHTML = '';\n } else {\n arrow.classList.add('tippy-arrow');\n }\n\n tooltip.appendChild(arrow);\n }\n\n if (options.animateFill) {\n // Create animateFill circle element for animation\n tooltip.setAttribute('data-animatefill', '');\n var backdrop = div();\n backdrop.classList.add('tippy-backdrop');\n backdrop.setAttribute('data-state', 'hidden');\n tooltip.appendChild(backdrop);\n }\n\n if (options.inertia) {\n // Change transition timing function cubic bezier\n tooltip.setAttribute('data-inertia', '');\n }\n\n if (options.interactive) {\n tooltip.setAttribute('data-interactive', '');\n }\n\n var html = options.html;\n if (html) {\n var templateId = void 0;\n\n if (html instanceof Element) {\n content.appendChild(html);\n templateId = '#' + (html.id || 'tippy-html-template');\n } else {\n // trick linters: https://github.com/atomiks/tippyjs/issues/197\n content[true && 'innerHTML'] = document.querySelector(html)[true && 'innerHTML'];\n templateId = html;\n }\n\n popper.setAttribute('data-html', '');\n tooltip.setAttribute('data-template-id', templateId);\n\n if (options.interactive) {\n popper.setAttribute('tabindex', '-1');\n }\n } else {\n content[options.allowTitleHTML ? 'innerHTML' : 'textContent'] = title;\n }\n\n tooltip.appendChild(content);\n popper.appendChild(tooltip);\n\n return popper;\n}\n\n/**\n * Creates a trigger by adding the necessary event listeners to the reference element\n * @param {String} eventType - the custom event specified in the `trigger` setting\n * @param {Element} reference\n * @param {Object} handlers - the handlers for each event\n * @param {Object} options\n * @return {Array} - array of listener objects\n */\nfunction createTrigger(eventType, reference, handlers, options) {\n var onTrigger = handlers.onTrigger,\n onMouseLeave = handlers.onMouseLeave,\n onBlur = handlers.onBlur,\n onDelegateShow = handlers.onDelegateShow,\n onDelegateHide = handlers.onDelegateHide;\n\n var listeners = [];\n\n if (eventType === 'manual') return listeners;\n\n var on = function on(eventType, handler) {\n reference.addEventListener(eventType, handler);\n listeners.push({ event: eventType, handler: handler });\n };\n\n if (!options.target) {\n on(eventType, onTrigger);\n\n if (browser.supportsTouch && options.touchHold) {\n on('touchstart', onTrigger);\n on('touchend', onMouseLeave);\n }\n if (eventType === 'mouseenter') {\n on('mouseleave', onMouseLeave);\n }\n if (eventType === 'focus') {\n on(isIE ? 'focusout' : 'blur', onBlur);\n }\n } else {\n if (browser.supportsTouch && options.touchHold) {\n on('touchstart', onDelegateShow);\n on('touchend', onDelegateHide);\n }\n if (eventType === 'mouseenter') {\n on('mouseover', onDelegateShow);\n on('mouseout', onDelegateHide);\n }\n if (eventType === 'focus') {\n on('focusin', onDelegateShow);\n on('focusout', onDelegateHide);\n }\n if (eventType === 'click') {\n on('click', onDelegateShow);\n }\n }\n\n return listeners;\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Returns an object of settings to override global settings\n * @param {Element} reference\n * @param {Object} instanceOptions\n * @return {Object} - individual options\n */\nfunction getIndividualOptions(reference, instanceOptions) {\n var options = defaultsKeys.reduce(function (acc, key) {\n var val = reference.getAttribute('data-tippy-' + key.toLowerCase()) || instanceOptions[key];\n\n // Convert strings to booleans\n if (val === 'false') val = false;\n if (val === 'true') val = true;\n\n // Convert number strings to true numbers\n if (isFinite(val) && !isNaN(parseFloat(val))) {\n val = parseFloat(val);\n }\n\n // Convert array strings to actual arrays\n if (key !== 'target' && typeof val === 'string' && val.trim().charAt(0) === '[') {\n val = JSON.parse(val);\n }\n\n acc[key] = val;\n\n return acc;\n }, {});\n\n return _extends({}, instanceOptions, options);\n}\n\n/**\n * Evaluates/modifies the options object for appropriate behavior\n * @param {Element|Object} reference\n * @param {Object} options\n * @return {Object} modified/evaluated options\n */\nfunction evaluateOptions(reference, options) {\n // animateFill is disabled if an arrow is true\n if (options.arrow) {\n options.animateFill = false;\n }\n\n if (options.appendTo && typeof options.appendTo === 'function') {\n options.appendTo = options.appendTo();\n }\n\n if (typeof options.html === 'function') {\n options.html = options.html(reference);\n }\n\n return options;\n}\n\n/**\n * Returns inner elements of the popper element\n * @param {Element} popper\n * @return {Object}\n */\nfunction getInnerElements(popper) {\n var select = function select(s) {\n return popper.querySelector(s);\n };\n return {\n tooltip: select(selectors.TOOLTIP),\n backdrop: select(selectors.BACKDROP),\n content: select(selectors.CONTENT),\n arrow: select(selectors.ARROW) || select(selectors.ROUND_ARROW)\n };\n}\n\n/**\n * Removes the title from an element, setting `data-original-title`\n * appropriately\n * @param {Element} el\n */\nfunction removeTitle(el) {\n var title = el.getAttribute('title');\n // Only set `data-original-title` attr if there is a title\n if (title) {\n el.setAttribute('data-original-title', title);\n }\n el.removeAttribute('title');\n}\n\n/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser$1 = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser$1 && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser$1 && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser$1 && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser$1 && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE$1(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE$1(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE$1(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE$1(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck$1 = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass$1 = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty$1 = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends$1({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE$1(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE$1(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE$1()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends$1({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // Avoid blurry text by using full pixel integers.\n // For pixel-perfect positioning, top/bottom prefers rounded\n // values, while left/right prefers floored values.\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.round(popper.top),\n bottom: Math.round(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends$1({}, attributes, data.attributes);\n data.styles = _extends$1({}, styles, data.styles);\n data.arrowStyles = _extends$1({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty$1(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty$1(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends$1({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty$1({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty$1({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends$1({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty$1({}, side, reference[side]),\n end: defineProperty$1({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends$1({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overriden using the `options` argument of Popper.js.
\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck$1(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends$1({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends$1({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends$1({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends$1({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass$1(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\n/**\n * Triggers document reflow.\n * Use void because some minifiers or engines think simply accessing the property\n * is unnecessary.\n * @param {Element} popper\n */\nfunction reflow(popper) {\n void popper.offsetHeight;\n}\n\n/**\n * Wrapper util for popper position updating.\n * Updates the popper's position and invokes the callback on update.\n * Hackish workaround until Popper 2.0's update() becomes sync.\n * @param {Popper} popperInstance\n * @param {Function} callback: to run once popper's position was updated\n * @param {Boolean} updateAlreadyCalled: was scheduleUpdate() already called?\n */\nfunction updatePopperPosition(popperInstance, callback, updateAlreadyCalled) {\n var popper = popperInstance.popper,\n options = popperInstance.options;\n\n var onCreate = options.onCreate;\n var onUpdate = options.onUpdate;\n\n options.onCreate = options.onUpdate = function () {\n reflow(popper), callback && callback(), onUpdate();\n options.onCreate = onCreate;\n options.onUpdate = onUpdate;\n };\n\n if (!updateAlreadyCalled) {\n popperInstance.scheduleUpdate();\n }\n}\n\n/**\n * Returns the core placement ('top', 'bottom', 'left', 'right') of a popper\n * @param {Element} popper\n * @return {String}\n */\nfunction getPopperPlacement(popper) {\n return popper.getAttribute('x-placement').replace(/-.+/, '');\n}\n\n/**\n * Determines if the mouse's cursor is outside the interactive border\n * @param {MouseEvent} event\n * @param {Element} popper\n * @param {Object} options\n * @return {Boolean}\n */\nfunction cursorIsOutsideInteractiveBorder(event, popper, options) {\n if (!popper.getAttribute('x-placement')) return true;\n\n var x = event.clientX,\n y = event.clientY;\n var interactiveBorder = options.interactiveBorder,\n distance = options.distance;\n\n\n var rect = popper.getBoundingClientRect();\n var placement = getPopperPlacement(popper);\n var borderWithDistance = interactiveBorder + distance;\n\n var exceeds = {\n top: rect.top - y > interactiveBorder,\n bottom: y - rect.bottom > interactiveBorder,\n left: rect.left - x > interactiveBorder,\n right: x - rect.right > interactiveBorder\n };\n\n switch (placement) {\n case 'top':\n exceeds.top = rect.top - y > borderWithDistance;\n break;\n case 'bottom':\n exceeds.bottom = y - rect.bottom > borderWithDistance;\n break;\n case 'left':\n exceeds.left = rect.left - x > borderWithDistance;\n break;\n case 'right':\n exceeds.right = x - rect.right > borderWithDistance;\n break;\n }\n\n return exceeds.top || exceeds.bottom || exceeds.left || exceeds.right;\n}\n\n/**\n * Transforms the `arrowTransform` numbers based on the placement axis\n * @param {String} type 'scale' or 'translate'\n * @param {Number[]} numbers\n * @param {Boolean} isVertical\n * @param {Boolean} isReverse\n * @return {String}\n */\nfunction transformNumbersBasedOnPlacementAxis(type, numbers, isVertical, isReverse) {\n if (!numbers.length) return '';\n\n var transforms = {\n scale: function () {\n if (numbers.length === 1) {\n return '' + numbers[0];\n } else {\n return isVertical ? numbers[0] + ', ' + numbers[1] : numbers[1] + ', ' + numbers[0];\n }\n }(),\n translate: function () {\n if (numbers.length === 1) {\n return isReverse ? -numbers[0] + 'px' : numbers[0] + 'px';\n } else {\n if (isVertical) {\n return isReverse ? numbers[0] + 'px, ' + -numbers[1] + 'px' : numbers[0] + 'px, ' + numbers[1] + 'px';\n } else {\n return isReverse ? -numbers[1] + 'px, ' + numbers[0] + 'px' : numbers[1] + 'px, ' + numbers[0] + 'px';\n }\n }\n }()\n };\n\n return transforms[type];\n}\n\n/**\n * Transforms the `arrowTransform` x or y axis based on the placement axis\n * @param {String} axis 'X', 'Y', ''\n * @param {Boolean} isVertical\n * @return {String}\n */\nfunction transformAxis(axis, isVertical) {\n if (!axis) return '';\n var map = {\n X: 'Y',\n Y: 'X'\n };\n return isVertical ? axis : map[axis];\n}\n\n/**\n * Computes and applies the necessary arrow transform\n * @param {Element} popper\n * @param {Element} arrow\n * @param {String} arrowTransform\n */\nfunction computeArrowTransform(popper, arrow, arrowTransform) {\n var placement = getPopperPlacement(popper);\n var isVertical = placement === 'top' || placement === 'bottom';\n var isReverse = placement === 'right' || placement === 'bottom';\n\n var getAxis = function getAxis(re) {\n var match = arrowTransform.match(re);\n return match ? match[1] : '';\n };\n\n var getNumbers = function getNumbers(re) {\n var match = arrowTransform.match(re);\n return match ? match[1].split(',').map(parseFloat) : [];\n };\n\n var re = {\n translate: /translateX?Y?\\(([^)]+)\\)/,\n scale: /scaleX?Y?\\(([^)]+)\\)/\n };\n\n var matches = {\n translate: {\n axis: getAxis(/translate([XY])/),\n numbers: getNumbers(re.translate)\n },\n scale: {\n axis: getAxis(/scale([XY])/),\n numbers: getNumbers(re.scale)\n }\n };\n\n var computedTransform = arrowTransform.replace(re.translate, 'translate' + transformAxis(matches.translate.axis, isVertical) + '(' + transformNumbersBasedOnPlacementAxis('translate', matches.translate.numbers, isVertical, isReverse) + ')').replace(re.scale, 'scale' + transformAxis(matches.scale.axis, isVertical) + '(' + transformNumbersBasedOnPlacementAxis('scale', matches.scale.numbers, isVertical, isReverse) + ')');\n\n arrow.style[prefix('transform')] = computedTransform;\n}\n\n/**\n * Returns the distance taking into account the default distance due to\n * the transform: translate setting in CSS\n * @param {Number} distance\n * @return {String}\n */\nfunction getOffsetDistanceInPx(distance) {\n return -(distance - defaults.distance) + 'px';\n}\n\n/**\n * Waits until next repaint to execute a fn\n * @param {Function} fn\n */\nfunction defer(fn) {\n requestAnimationFrame(function () {\n setTimeout(fn, 1);\n });\n}\n\nvar matches = {};\n\nif (isBrowser) {\n var e = Element.prototype;\n matches = e.matches || e.matchesSelector || e.webkitMatchesSelector || e.mozMatchesSelector || e.msMatchesSelector || function (s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s);\n var i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {} // eslint-disable-line no-empty\n return i > -1;\n };\n}\n\nvar matches$1 = matches;\n\n/**\n * Ponyfill to get the closest parent element\n * @param {Element} element - child of parent to be returned\n * @param {String} parentSelector - selector to match the parent if found\n * @return {Element}\n */\nfunction closest(element, parentSelector) {\n var fn = Element.prototype.closest || function (selector) {\n var el = this;\n while (el) {\n if (matches$1.call(el, selector)) {\n return el;\n }\n el = el.parentElement;\n }\n };\n\n return fn.call(element, parentSelector);\n}\n\n/**\n * Returns the value taking into account the value being either a number or array\n * @param {Number|Array} value\n * @param {Number} index\n * @return {Number}\n */\nfunction getValue(value, index) {\n return Array.isArray(value) ? value[index] : value;\n}\n\n/**\n * Sets the visibility state of an element for transition to begin\n * @param {Element[]} els - array of elements\n * @param {String} type - 'visible' or 'hidden'\n */\nfunction setVisibilityState(els, type) {\n els.forEach(function (el) {\n if (!el) return;\n el.setAttribute('data-state', type);\n });\n}\n\n/**\n * Sets the transition property to each element\n * @param {Element[]} els - Array of elements\n * @param {String} value\n */\nfunction applyTransitionDuration(els, value) {\n els.filter(Boolean).forEach(function (el) {\n el.style[prefix('transitionDuration')] = value + 'ms';\n });\n}\n\n/**\n * Focuses an element while preventing a scroll jump if it's not entirely within the viewport\n * @param {Element} el\n */\nfunction focus(el) {\n var x = window.scrollX || window.pageXOffset;\n var y = window.scrollY || window.pageYOffset;\n el.focus();\n scroll(x, y);\n}\n\nvar key = {};\nvar store = function store(data) {\n return function (k) {\n return k === key && data;\n };\n};\n\nvar Tippy = function () {\n function Tippy(config) {\n classCallCheck(this, Tippy);\n\n for (var _key in config) {\n this[_key] = config[_key];\n }\n\n this.state = {\n destroyed: false,\n visible: false,\n enabled: true\n };\n\n this._ = store({\n mutationObservers: []\n });\n }\n\n /**\n * Enables the tooltip to allow it to show or hide\n * @memberof Tippy\n * @public\n */\n\n\n createClass(Tippy, [{\n key: 'enable',\n value: function enable() {\n this.state.enabled = true;\n }\n\n /**\n * Disables the tooltip from showing or hiding, but does not destroy it\n * @memberof Tippy\n * @public\n */\n\n }, {\n key: 'disable',\n value: function disable() {\n this.state.enabled = false;\n }\n\n /**\n * Shows the tooltip\n * @param {Number} duration in milliseconds\n * @memberof Tippy\n * @public\n */\n\n }, {\n key: 'show',\n value: function show(duration) {\n var _this = this;\n\n if (this.state.destroyed || !this.state.enabled) return;\n\n var popper = this.popper,\n reference = this.reference,\n options = this.options;\n\n var _getInnerElements = getInnerElements(popper),\n tooltip = _getInnerElements.tooltip,\n backdrop = _getInnerElements.backdrop,\n content = _getInnerElements.content;\n\n // If the `dynamicTitle` option is true, the instance is allowed\n // to be created with an empty title. Make sure that the tooltip\n // content is not empty before showing it\n\n\n if (options.dynamicTitle && !reference.getAttribute('data-original-title')) {\n return;\n }\n\n // Do not show tooltip if reference contains 'disabled' attribute. FF fix for #221\n if (reference.hasAttribute('disabled')) return;\n\n // Destroy tooltip if the reference element is no longer on the DOM\n if (!reference.refObj && !document.documentElement.contains(reference)) {\n this.destroy();\n return;\n }\n\n options.onShow.call(popper, this);\n\n duration = getValue(duration !== undefined ? duration : options.duration, 0);\n\n // Prevent a transition when popper changes position\n applyTransitionDuration([popper, tooltip, backdrop], 0);\n\n popper.style.visibility = 'visible';\n this.state.visible = true;\n\n _mount.call(this, function () {\n if (!_this.state.visible) return;\n\n if (!_hasFollowCursorBehavior.call(_this)) {\n // FIX: Arrow will sometimes not be positioned correctly. Force another update.\n _this.popperInstance.scheduleUpdate();\n }\n\n // Set initial position near the cursor\n if (_hasFollowCursorBehavior.call(_this)) {\n _this.popperInstance.disableEventListeners();\n var delay = getValue(options.delay, 0);\n var lastTriggerEvent = _this._(key).lastTriggerEvent;\n if (lastTriggerEvent) {\n _this._(key).followCursorListener(delay && _this._(key).lastMouseMoveEvent ? _this._(key).lastMouseMoveEvent : lastTriggerEvent);\n }\n }\n\n // Re-apply transition durations\n applyTransitionDuration([tooltip, backdrop, backdrop ? content : null], duration);\n\n if (backdrop) {\n getComputedStyle(backdrop)[prefix('transform')];\n }\n\n if (options.interactive) {\n reference.classList.add('tippy-active');\n }\n\n if (options.sticky) {\n _makeSticky.call(_this);\n }\n\n setVisibilityState([tooltip, backdrop], 'visible');\n\n _onTransitionEnd.call(_this, duration, function () {\n if (!options.updateDuration) {\n tooltip.classList.add('tippy-notransition');\n }\n\n if (options.interactive) {\n focus(popper);\n }\n\n reference.setAttribute('aria-describedby', 'tippy-' + _this.id);\n\n options.onShown.call(popper, _this);\n });\n });\n }\n\n /**\n * Hides the tooltip\n * @param {Number} duration in milliseconds\n * @memberof Tippy\n * @public\n */\n\n }, {\n key: 'hide',\n value: function hide(duration) {\n var _this2 = this;\n\n if (this.state.destroyed || !this.state.enabled) return;\n\n var popper = this.popper,\n reference = this.reference,\n options = this.options;\n\n var _getInnerElements2 = getInnerElements(popper),\n tooltip = _getInnerElements2.tooltip,\n backdrop = _getInnerElements2.backdrop,\n content = _getInnerElements2.content;\n\n options.onHide.call(popper, this);\n\n duration = getValue(duration !== undefined ? duration : options.duration, 1);\n\n if (!options.updateDuration) {\n tooltip.classList.remove('tippy-notransition');\n }\n\n if (options.interactive) {\n reference.classList.remove('tippy-active');\n }\n\n popper.style.visibility = 'hidden';\n this.state.visible = false;\n\n applyTransitionDuration([tooltip, backdrop, backdrop ? content : null], duration);\n\n setVisibilityState([tooltip, backdrop], 'hidden');\n\n if (options.interactive && options.trigger.indexOf('click') > -1) {\n focus(reference);\n }\n\n /*\n * This call is deferred because sometimes when the tooltip is still transitioning in but hide()\n * is called before it finishes, the CSS transition won't reverse quickly enough, meaning\n * the CSS transition will finish 1-2 frames later, and onHidden() will run since the JS set it\n * more quickly. It should actually be onShown(). Seems to be something Chrome does, not Safari\n */\n defer(function () {\n _onTransitionEnd.call(_this2, duration, function () {\n if (_this2.state.visible || !options.appendTo.contains(popper)) return;\n\n if (!_this2._(key).isPreparingToShow) {\n document.removeEventListener('mousemove', _this2._(key).followCursorListener);\n _this2._(key).lastMouseMoveEvent = null;\n }\n\n if (_this2.popperInstance) {\n _this2.popperInstance.disableEventListeners();\n }\n\n reference.removeAttribute('aria-describedby');\n\n options.appendTo.removeChild(popper);\n\n options.onHidden.call(popper, _this2);\n });\n });\n }\n\n /**\n * Destroys the tooltip instance\n * @param {Boolean} destroyTargetInstances - relevant only when destroying delegates\n * @memberof Tippy\n * @public\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n var _this3 = this;\n\n var destroyTargetInstances = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (this.state.destroyed) return;\n\n // Ensure the popper is hidden\n if (this.state.visible) {\n this.hide(0);\n }\n\n this.listeners.forEach(function (listener) {\n _this3.reference.removeEventListener(listener.event, listener.handler);\n });\n\n // Restore title\n if (this.title) {\n this.reference.setAttribute('title', this.title);\n }\n\n delete this.reference._tippy;\n\n var attributes = ['data-original-title', 'data-tippy', 'data-tippy-delegate'];\n attributes.forEach(function (attr) {\n _this3.reference.removeAttribute(attr);\n });\n\n if (this.options.target && destroyTargetInstances) {\n toArray(this.reference.querySelectorAll(this.options.target)).forEach(function (child) {\n return child._tippy && child._tippy.destroy();\n });\n }\n\n if (this.popperInstance) {\n this.popperInstance.destroy();\n }\n\n this._(key).mutationObservers.forEach(function (observer) {\n observer.disconnect();\n });\n\n this.state.destroyed = true;\n }\n }]);\n return Tippy;\n}();\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n * Standalone functions to be called with the instance's `this` context to make\n * them truly private and not accessible on the prototype\n */\n\n/**\n * Determines if the tooltip instance has followCursor behavior\n * @return {Boolean}\n * @memberof Tippy\n * @private\n */\nfunction _hasFollowCursorBehavior() {\n var lastTriggerEvent = this._(key).lastTriggerEvent;\n return this.options.followCursor && !browser.usingTouch && lastTriggerEvent && lastTriggerEvent.type !== 'focus';\n}\n\n/**\n * Creates the Tippy instance for the child target of the delegate container\n * @param {Event} event\n * @memberof Tippy\n * @private\n */\nfunction _createDelegateChildTippy(event) {\n var targetEl = closest(event.target, this.options.target);\n if (targetEl && !targetEl._tippy) {\n var title = targetEl.getAttribute('title') || this.title;\n if (title) {\n targetEl.setAttribute('title', title);\n tippy(targetEl, _extends({}, this.options, { target: null }));\n _enter.call(targetEl._tippy, event);\n }\n }\n}\n\n/**\n * Method used by event listeners to invoke the show method, taking into account delays and\n * the `wait` option\n * @param {Event} event\n * @memberof Tippy\n * @private\n */\nfunction _enter(event) {\n var _this4 = this;\n\n var options = this.options;\n\n\n _clearDelayTimeouts.call(this);\n\n if (this.state.visible) return;\n\n // Is a delegate, create Tippy instance for the child target\n if (options.target) {\n _createDelegateChildTippy.call(this, event);\n return;\n }\n\n this._(key).isPreparingToShow = true;\n\n if (options.wait) {\n options.wait.call(this.popper, this.show.bind(this), event);\n return;\n }\n\n // If the tooltip has a delay, we need to be listening to the mousemove as soon as the trigger\n // event is fired so that it's in the correct position upon mount.\n if (_hasFollowCursorBehavior.call(this)) {\n if (!this._(key).followCursorListener) {\n _setFollowCursorListener.call(this);\n }\n\n var _getInnerElements3 = getInnerElements(this.popper),\n arrow = _getInnerElements3.arrow;\n\n if (arrow) arrow.style.margin = '0';\n document.addEventListener('mousemove', this._(key).followCursorListener);\n }\n\n var delay = getValue(options.delay, 0);\n\n if (delay) {\n this._(key).showTimeout = setTimeout(function () {\n _this4.show();\n }, delay);\n } else {\n this.show();\n }\n}\n\n/**\n * Method used by event listeners to invoke the hide method, taking into account delays\n * @memberof Tippy\n * @private\n */\nfunction _leave() {\n var _this5 = this;\n\n _clearDelayTimeouts.call(this);\n\n if (!this.state.visible) return;\n\n this._(key).isPreparingToShow = false;\n\n var delay = getValue(this.options.delay, 1);\n\n if (delay) {\n this._(key).hideTimeout = setTimeout(function () {\n if (_this5.state.visible) {\n _this5.hide();\n }\n }, delay);\n } else {\n this.hide();\n }\n}\n\n/**\n * Returns relevant listeners for the instance\n * @return {Object} of listeners\n * @memberof Tippy\n * @private\n */\nfunction _getEventListeners() {\n var _this6 = this;\n\n var onTrigger = function onTrigger(event) {\n if (!_this6.state.enabled) return;\n\n var shouldStopEvent = browser.supportsTouch && browser.usingTouch && ['mouseenter', 'mouseover', 'focus'].indexOf(event.type) > -1;\n\n if (shouldStopEvent && _this6.options.touchHold) return;\n\n _this6._(key).lastTriggerEvent = event;\n\n // Toggle show/hide when clicking click-triggered tooltips\n if (event.type === 'click' && _this6.options.hideOnClick !== 'persistent' && _this6.state.visible) {\n _leave.call(_this6);\n } else {\n _enter.call(_this6, event);\n }\n };\n\n var onMouseLeave = function onMouseLeave(event) {\n if (['mouseleave', 'mouseout'].indexOf(event.type) > -1 && browser.supportsTouch && browser.usingTouch && _this6.options.touchHold) return;\n\n if (_this6.options.interactive) {\n var hide = _leave.bind(_this6);\n\n var onMouseMove = function onMouseMove(event) {\n var referenceCursorIsOver = closest(event.target, selectors.REFERENCE);\n var cursorIsOverPopper = closest(event.target, selectors.POPPER) === _this6.popper;\n var cursorIsOverReference = referenceCursorIsOver === _this6.reference;\n\n if (cursorIsOverPopper || cursorIsOverReference) return;\n\n if (cursorIsOutsideInteractiveBorder(event, _this6.popper, _this6.options)) {\n document.body.removeEventListener('mouseleave', hide);\n document.removeEventListener('mousemove', onMouseMove);\n\n _leave.call(_this6, onMouseMove);\n }\n };\n\n document.body.addEventListener('mouseleave', hide);\n document.addEventListener('mousemove', onMouseMove);\n return;\n }\n\n _leave.call(_this6);\n };\n\n var onBlur = function onBlur(event) {\n if (event.target !== _this6.reference || browser.usingTouch) return;\n\n if (_this6.options.interactive) {\n if (!event.relatedTarget) return;\n if (closest(event.relatedTarget, selectors.POPPER)) return;\n }\n\n _leave.call(_this6);\n };\n\n var onDelegateShow = function onDelegateShow(event) {\n if (closest(event.target, _this6.options.target)) {\n _enter.call(_this6, event);\n }\n };\n\n var onDelegateHide = function onDelegateHide(event) {\n if (closest(event.target, _this6.options.target)) {\n _leave.call(_this6);\n }\n };\n\n return {\n onTrigger: onTrigger,\n onMouseLeave: onMouseLeave,\n onBlur: onBlur,\n onDelegateShow: onDelegateShow,\n onDelegateHide: onDelegateHide\n };\n}\n\n/**\n * Creates and returns a new popper instance\n * @return {Popper}\n * @memberof Tippy\n * @private\n */\nfunction _createPopperInstance() {\n var _this7 = this;\n\n var popper = this.popper,\n reference = this.reference,\n options = this.options;\n\n var _getInnerElements4 = getInnerElements(popper),\n tooltip = _getInnerElements4.tooltip;\n\n var popperOptions = options.popperOptions;\n\n var arrowSelector = options.arrowType === 'round' ? selectors.ROUND_ARROW : selectors.ARROW;\n var arrow = tooltip.querySelector(arrowSelector);\n\n var config = _extends({\n placement: options.placement\n }, popperOptions || {}, {\n modifiers: _extends({}, popperOptions ? popperOptions.modifiers : {}, {\n arrow: _extends({\n element: arrowSelector\n }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.arrow : {}),\n flip: _extends({\n enabled: options.flip,\n padding: options.distance + 5 /* 5px from viewport boundary */\n , behavior: options.flipBehavior\n }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.flip : {}),\n offset: _extends({\n offset: options.offset\n }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.offset : {})\n }),\n onCreate: function onCreate() {\n tooltip.style[getPopperPlacement(popper)] = getOffsetDistanceInPx(options.distance);\n\n if (arrow && options.arrowTransform) {\n computeArrowTransform(popper, arrow, options.arrowTransform);\n }\n },\n onUpdate: function onUpdate() {\n var styles = tooltip.style;\n styles.top = '';\n styles.bottom = '';\n styles.left = '';\n styles.right = '';\n styles[getPopperPlacement(popper)] = getOffsetDistanceInPx(options.distance);\n\n if (arrow && options.arrowTransform) {\n computeArrowTransform(popper, arrow, options.arrowTransform);\n }\n }\n });\n\n _addMutationObserver.call(this, {\n target: popper,\n callback: function callback() {\n _this7.popperInstance.update();\n },\n options: {\n childList: true,\n subtree: true,\n characterData: true\n }\n });\n\n return new Popper(reference, popper, config);\n}\n\n/**\n * Appends the popper element to the DOM, updating or creating the popper instance\n * @param {Function} callback\n * @memberof Tippy\n * @private\n */\nfunction _mount(callback) {\n var options = this.options;\n\n\n if (!this.popperInstance) {\n this.popperInstance = _createPopperInstance.call(this);\n if (!options.livePlacement) {\n this.popperInstance.disableEventListeners();\n }\n } else {\n this.popperInstance.scheduleUpdate();\n if (options.livePlacement && !_hasFollowCursorBehavior.call(this)) {\n this.popperInstance.enableEventListeners();\n }\n }\n\n // If the instance previously had followCursor behavior, it will be positioned incorrectly\n // if triggered by `focus` afterwards - update the reference back to the real DOM element\n if (!_hasFollowCursorBehavior.call(this)) {\n var _getInnerElements5 = getInnerElements(this.popper),\n arrow = _getInnerElements5.arrow;\n\n if (arrow) arrow.style.margin = '';\n this.popperInstance.reference = this.reference;\n }\n\n updatePopperPosition(this.popperInstance, callback, true);\n\n if (!options.appendTo.contains(this.popper)) {\n options.appendTo.appendChild(this.popper);\n }\n}\n\n/**\n * Clears the show and hide delay timeouts\n * @memberof Tippy\n * @private\n */\nfunction _clearDelayTimeouts() {\n var _ref = this._(key),\n showTimeout = _ref.showTimeout,\n hideTimeout = _ref.hideTimeout;\n\n clearTimeout(showTimeout);\n clearTimeout(hideTimeout);\n}\n\n/**\n * Sets the mousemove event listener function for `followCursor` option\n * @memberof Tippy\n * @private\n */\nfunction _setFollowCursorListener() {\n var _this8 = this;\n\n this._(key).followCursorListener = function (event) {\n var _$lastMouseMoveEvent = _this8._(key).lastMouseMoveEvent = event,\n clientX = _$lastMouseMoveEvent.clientX,\n clientY = _$lastMouseMoveEvent.clientY;\n\n if (!_this8.popperInstance) return;\n\n _this8.popperInstance.reference = {\n getBoundingClientRect: function getBoundingClientRect() {\n return {\n width: 0,\n height: 0,\n top: clientY,\n left: clientX,\n right: clientX,\n bottom: clientY\n };\n },\n clientWidth: 0,\n clientHeight: 0\n };\n\n _this8.popperInstance.scheduleUpdate();\n };\n}\n\n/**\n * Updates the popper's position on each animation frame\n * @memberof Tippy\n * @private\n */\nfunction _makeSticky() {\n var _this9 = this;\n\n var applyTransitionDuration$$1 = function applyTransitionDuration$$1() {\n _this9.popper.style[prefix('transitionDuration')] = _this9.options.updateDuration + 'ms';\n };\n\n var removeTransitionDuration = function removeTransitionDuration() {\n _this9.popper.style[prefix('transitionDuration')] = '';\n };\n\n var updatePosition = function updatePosition() {\n if (_this9.popperInstance) {\n _this9.popperInstance.update();\n }\n\n applyTransitionDuration$$1();\n\n if (_this9.state.visible) {\n requestAnimationFrame(updatePosition);\n } else {\n removeTransitionDuration();\n }\n };\n\n updatePosition();\n}\n\n/**\n * Adds a mutation observer to an element and stores it in the instance\n * @param {Object}\n * @memberof Tippy\n * @private\n */\nfunction _addMutationObserver(_ref2) {\n var target = _ref2.target,\n callback = _ref2.callback,\n options = _ref2.options;\n\n if (!window.MutationObserver) return;\n\n var observer = new MutationObserver(callback);\n observer.observe(target, options);\n\n this._(key).mutationObservers.push(observer);\n}\n\n/**\n * Fires the callback functions once the CSS transition ends for `show` and `hide` methods\n * @param {Number} duration\n * @param {Function} callback - callback function to fire once transition completes\n * @memberof Tippy\n * @private\n */\nfunction _onTransitionEnd(duration, callback) {\n // Make callback synchronous if duration is 0\n if (!duration) {\n return callback();\n }\n\n var _getInnerElements6 = getInnerElements(this.popper),\n tooltip = _getInnerElements6.tooltip;\n\n var toggleListeners = function toggleListeners(action, listener) {\n if (!listener) return;\n tooltip[action + 'EventListener']('transition' in document.body.style ? 'transitionend' : 'webkitTransitionEnd', listener);\n };\n\n var listener = function listener(e) {\n if (e.target === tooltip) {\n toggleListeners('remove', listener);\n callback();\n }\n };\n\n toggleListeners('remove', this._(key).transitionendListener);\n toggleListeners('add', listener);\n\n this._(key).transitionendListener = listener;\n}\n\nvar idCounter = 1;\n\n/**\n * Creates tooltips for each reference element\n * @param {Element[]} els\n * @param {Object} config\n * @return {Tippy[]} Array of Tippy instances\n */\nfunction createTooltips(els, config) {\n return els.reduce(function (acc, reference) {\n var id = idCounter;\n\n var options = evaluateOptions(reference, config.performance ? config : getIndividualOptions(reference, config));\n\n var title = reference.getAttribute('title');\n\n // Don't create an instance when:\n // * the `title` attribute is falsy (null or empty string), and\n // * it's not a delegate for tooltips, and\n // * there is no html template specified, and\n // * `dynamicTitle` option is false\n if (!title && !options.target && !options.html && !options.dynamicTitle) {\n return acc;\n }\n\n // Delegates should be highlighted as different\n reference.setAttribute(options.target ? 'data-tippy-delegate' : 'data-tippy', '');\n\n removeTitle(reference);\n\n var popper = createPopperElement(id, title, options);\n\n var tippy = new Tippy({\n id: id,\n reference: reference,\n popper: popper,\n options: options,\n title: title,\n popperInstance: null\n });\n\n if (options.createPopperInstanceOnInit) {\n tippy.popperInstance = _createPopperInstance.call(tippy);\n tippy.popperInstance.disableEventListeners();\n }\n\n var listeners = _getEventListeners.call(tippy);\n tippy.listeners = options.trigger.trim().split(' ').reduce(function (acc, eventType) {\n return acc.concat(createTrigger(eventType, reference, listeners, options));\n }, []);\n\n // Update tooltip content whenever the title attribute on the reference changes\n if (options.dynamicTitle) {\n _addMutationObserver.call(tippy, {\n target: reference,\n callback: function callback() {\n var _getInnerElements = getInnerElements(popper),\n content = _getInnerElements.content;\n\n var title = reference.getAttribute('title');\n if (title) {\n content[options.allowTitleHTML ? 'innerHTML' : 'textContent'] = tippy.title = title;\n removeTitle(reference);\n }\n },\n\n options: {\n attributes: true\n }\n });\n }\n\n // Shortcuts\n reference._tippy = tippy;\n popper._tippy = tippy;\n popper._reference = reference;\n\n acc.push(tippy);\n\n idCounter++;\n\n return acc;\n }, []);\n}\n\n/**\n * Hides all poppers\n * @param {Tippy} excludeTippy - tippy to exclude if needed\n */\nfunction hideAllPoppers(excludeTippy) {\n var poppers = toArray(document.querySelectorAll(selectors.POPPER));\n\n poppers.forEach(function (popper) {\n var tippy = popper._tippy;\n if (!tippy) return;\n\n var options = tippy.options;\n\n\n if ((options.hideOnClick === true || options.trigger.indexOf('focus') > -1) && (!excludeTippy || popper !== excludeTippy.popper)) {\n tippy.hide();\n }\n });\n}\n\n/**\n * Adds the needed event listeners\n */\nfunction bindEventListeners() {\n var onDocumentTouch = function onDocumentTouch() {\n if (browser.usingTouch) return;\n\n browser.usingTouch = true;\n\n if (browser.iOS) {\n document.body.classList.add('tippy-touch');\n }\n\n if (browser.dynamicInputDetection && window.performance) {\n document.addEventListener('mousemove', onDocumentMouseMove);\n }\n\n browser.onUserInputChange('touch');\n };\n\n var onDocumentMouseMove = function () {\n var time = void 0;\n\n return function () {\n var now = performance.now();\n\n // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference\n if (now - time < 20) {\n browser.usingTouch = false;\n document.removeEventListener('mousemove', onDocumentMouseMove);\n if (!browser.iOS) {\n document.body.classList.remove('tippy-touch');\n }\n browser.onUserInputChange('mouse');\n }\n\n time = now;\n };\n }();\n\n var onDocumentClick = function onDocumentClick(event) {\n // Simulated events dispatched on the document\n if (!(event.target instanceof Element)) {\n return hideAllPoppers();\n }\n\n var reference = closest(event.target, selectors.REFERENCE);\n var popper = closest(event.target, selectors.POPPER);\n\n if (popper && popper._tippy && popper._tippy.options.interactive) {\n return;\n }\n\n if (reference && reference._tippy) {\n var options = reference._tippy.options;\n\n var isClickTrigger = options.trigger.indexOf('click') > -1;\n var isMultiple = options.multiple;\n\n // Hide all poppers except the one belonging to the element that was clicked\n if (!isMultiple && browser.usingTouch || !isMultiple && isClickTrigger) {\n return hideAllPoppers(reference._tippy);\n }\n\n if (options.hideOnClick !== true || isClickTrigger) {\n return;\n }\n }\n\n hideAllPoppers();\n };\n\n var onWindowBlur = function onWindowBlur() {\n var _document = document,\n el = _document.activeElement;\n\n if (el && el.blur && matches$1.call(el, selectors.REFERENCE)) {\n el.blur();\n }\n };\n\n var onWindowResize = function onWindowResize() {\n toArray(document.querySelectorAll(selectors.POPPER)).forEach(function (popper) {\n var tippyInstance = popper._tippy;\n if (tippyInstance && !tippyInstance.options.livePlacement) {\n tippyInstance.popperInstance.scheduleUpdate();\n }\n });\n };\n\n document.addEventListener('click', onDocumentClick);\n document.addEventListener('touchstart', onDocumentTouch);\n window.addEventListener('blur', onWindowBlur);\n window.addEventListener('resize', onWindowResize);\n\n if (!browser.supportsTouch && (navigator.maxTouchPoints || navigator.msMaxTouchPoints)) {\n document.addEventListener('pointerdown', onDocumentTouch);\n }\n}\n\nvar eventListenersBound = false;\n\n/**\n * Exported module\n * @param {String|Element|Element[]|NodeList|Object} selector\n * @param {Object} options\n * @param {Boolean} one - create one tooltip\n * @return {Object}\n */\nfunction tippy(selector, options, one) {\n if (browser.supported && !eventListenersBound) {\n bindEventListeners();\n eventListenersBound = true;\n }\n\n if (isObjectLiteral(selector)) {\n polyfillVirtualReferenceProps(selector);\n }\n\n options = _extends({}, defaults, options);\n\n var references = getArrayOfElements(selector);\n var firstReference = references[0];\n\n return {\n selector: selector,\n options: options,\n tooltips: browser.supported ? createTooltips(one && firstReference ? [firstReference] : references, options) : [],\n destroyAll: function destroyAll() {\n this.tooltips.forEach(function (tooltip) {\n return tooltip.destroy();\n });\n this.tooltips = [];\n }\n };\n}\n\ntippy.version = version;\ntippy.browser = browser;\ntippy.defaults = defaults;\ntippy.one = function (selector, options) {\n return tippy(selector, options, true).tooltips[0];\n};\ntippy.disableAnimations = function () {\n defaults.updateDuration = defaults.duration = 0;\n defaults.animateFill = false;\n};\n\n/**\n * Injects CSS styles to document head\n * @param {String} css\n */\nfunction injectCSS() {\n var css = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (isBrowser && browser.supported) {\n var head = document.head || document.querySelector('head');\n var style = document.createElement('style');\n style.type = 'text/css';\n head.insertBefore(style, head.firstChild);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n }\n}\n\ninjectCSS(styles);\n\nreturn tippy;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/tippy.js/dist/tippy.all.js\n// module id = ARHp\n// module chunks = 0","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(window, function l(window, document) {\n\t'use strict';\n\t/*jshint eqnull:true */\n\tif(!document.getElementsByClassName){return;}\n\n\tvar lazysizes, lazySizesConfig;\n\n\tvar docElem = document.documentElement;\n\n\tvar Date = window.Date;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\tvar addEventListener = window[_addEventListener];\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('CustomEvent');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initCustomEvent(name, !noBubbles, !noCancelable, detail);\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = 125;\n\t\tvar RIC_DEFAULT_TIMEOUT = 666;\n\t\tvar rICTimeout = RIC_DEFAULT_TIMEOUT;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\t\t\t\tif(rICTimeout !== RIC_DEFAULT_TIMEOUT){\n\t\t\t\t\trICTimeout = RIC_DEFAULT_TIMEOUT;\n\t\t\t\t}\n\t\t\t}:\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 44;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || (delay < 9 && requestIdleCallback)){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom;\n\n\t\tvar defaultExpand, preloadExpand, hFac;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/glebot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(e && e.target){\n\t\t\t\taddRemoveLoadEvents(e.target, resetPreloading);\n\t\t\t}\n\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = getCSS(document.body, 'visibility') == 'hidden' || getCSS(elem, 'visibility') != 'hidden';\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal, beforeExpandVal;\n\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tif(preloadExpand == null){\n\t\t\t\t\tif(!('expand' in lazySizesConfig)){\n\t\t\t\t\t\tlazySizesConfig.expand = docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefaultExpand = lazySizesConfig.expand;\n\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesConfig.expFactor;\n\t\t\t\t}\n\n\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\tlowRuns = 0;\n\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t} else {\n\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t}\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesConfig.loadHidden || getCSS(lazyloadElems[i], 'visibility') != 'hidden') &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\taddClass(e.target, lazySizesConfig.loadedClass);\n\t\t\tremoveClass(e.target, lazySizesConfig.loadingClass);\n\t\t\taddRemoveLoadEvents(e.target, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(e.target, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\ttry {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} catch(e){\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesConfig.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesConfig.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\taddRemoveLoadEvents(elem, resetPreloading, true);\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\n\t\t\t\t\taddClass(elem, lazySizesConfig.loadingClass);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesConfig.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\tif( !firesLoad || (elem.complete && elem.naturalWidth > 1)){\n\t\t\t\t\tif(firesLoad){\n\t\t\t\t\t\tresetPreloading(event);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisLoading--;\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\tvar unveilElement = function (elem){\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar afterScroll = debounce(function(){\n\t\t\t\tlazySizesConfig.loadMode = 3;\n\t\t\t\tthrottledCheckElements();\n\t\t\t});\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesConfig.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', function(){\n\t\t\t\tif(lazySizesConfig.loadMode == 3){\n\t\t\t\t\tlazySizesConfig.loadMode = 2;\n\t\t\t\t}\n\t\t\t\tafterScroll();\n\t\t\t}, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);\n\t\t\t\thFac = lazySizesConfig.hFac;\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t};\n\n\t\tlazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesConfig)){\n\t\t\t\tlazySizesConfig[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\n\t\twindow.lazySizesConfig = lazySizesConfig;\n\n\t\tsetTimeout(function(){\n\t\t\tif(lazySizesConfig.init){\n\t\t\t\tinit();\n\t\t\t}\n\t\t});\n\t})();\n\n\tlazysizes = {\n\t\tcfg: lazySizesConfig,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lazysizes/lazysizes.js\n// module id = B2fU\n// module chunks = 0","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-letter\",\n \"use\": \"icon-letter-usage\",\n \"viewBox\": \"0 0 56.22 37.04\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/letter.svg\n// module id = BFzH\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/pagination/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/text-with-statistic/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport gaHelper from 'ga-helper';\r\n\r\nexport default class GaEvent extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.container.addEventListener('click', this.onClick.bind(this));\r\n }\r\n\r\n onClick(e) {\r\n if (typeof e !== 'undefined' && typeof e.stopPropagation === \"function\") {\r\n e.stopPropagation();\r\n }\r\n\r\n let category = this.container.getAttribute('data-tracking-category') || 'n/a';\r\n let action = this.container.getAttribute('data-tracking-action') || 'n/a';\r\n let label = this.container.getAttribute('data-tracking-label') || 'n/a';\r\n\r\n gaHelper.ga('send', 'event', category, action, label);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/ga-tracker/js/generic.ga-event.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/page-spinner/main.js","import app, {DEVICE_TYPE_DESKTOP} from 'app-instance'\r\nimport contentBlocker from 'content-blocker';\r\n\r\nclass MenuManager {\r\n\r\n constructor() {\r\n this.menuCollection = {};\r\n\r\n this.stack = [];\r\n\r\n this.defaultMenuConfig = {\r\n isBlocking: true,\r\n isEnabled: true\r\n };\r\n\r\n app.addListener('device-type-changed', (oldDeviceType, newDeviceType) => {\r\n if (oldDeviceType === DEVICE_TYPE_DESKTOP || newDeviceType === DEVICE_TYPE_DESKTOP) {\r\n this.switchBetweenDeviceType();\r\n }\r\n })\r\n }\r\n\r\n init(id, menuConfig) {\r\n if (menuConfig.default === undefined) {\r\n menuConfig.default = {};\r\n }\r\n menuConfig.default.id = id;\r\n this.menuCollection[id] = menuConfig;\r\n }\r\n\r\n open(id) {\r\n let config = this.getMenuConfig(id);\r\n if (config && config.isEnabled) {\r\n this.openMenu(config);\r\n }\r\n }\r\n\r\n isOpened(id) {\r\n return this.stack.some((openedMenu) => openedMenu.id === id);\r\n }\r\n\r\n openMenu(config) {\r\n let {isBlocking, level} = config;\r\n while (this.stack.length > 0) {\r\n let prevMenu = this.stack[this.stack.length - 1];\r\n if (prevMenu.level >= level) {\r\n this.stack.pop();\r\n prevMenu.close();\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n if (isBlocking) {\r\n if (!contentBlocker.isBlocked('menu')) {\r\n contentBlocker.block('menu');\r\n }\r\n }\r\n\r\n this.stack.push(config);\r\n config.open();\r\n }\r\n\r\n close(id) {\r\n while (this.stack.length > 0) {\r\n let prevMenu = this.stack.pop();\r\n prevMenu.close();\r\n if (prevMenu.id === id) {\r\n break;\r\n }\r\n }\r\n\r\n //there is no top level menu still in stack\r\n if (this.stack.length === 0) {\r\n contentBlocker.unblock('menu');\r\n }\r\n }\r\n\r\n getMenuConfig(name) {\r\n if (!(name in this.menuCollection)) {\r\n return null;\r\n }\r\n\r\n let menuConfig = this.menuCollection[name];\r\n let deviceConfig;\r\n if (app.isDesktop) {\r\n deviceConfig = menuConfig['desktop'];\r\n } else {\r\n deviceConfig = menuConfig['mobile'];\r\n }\r\n\r\n return {...this.defaultMenuConfig, ...menuConfig['default'], ...deviceConfig};\r\n }\r\n\r\n switchBetweenDeviceType() {\r\n while (this.stack.length > 0) {\r\n let prevMenu = this.stack.pop();\r\n prevMenu.close();\r\n }\r\n contentBlocker.unblock('menu');\r\n }\r\n}\r\n\r\nlet instance = new MenuManager();\r\n\r\nexport default instance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/menu-manager.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-spinbox',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.spinbox');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/spinbox/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-form',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.form');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nif(document.querySelector('.js-form-trigger')) {\r\n document.querySelector('.js-form-trigger').addEventListener(\"click\", () => {\r\n factoryInstance = new Factory({\r\n className: 'js-form',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.form');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n });\r\n factoryInstance.init();\r\n });\r\n}\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/form/main.js","'use strict';\r\n\r\nimport Masonry from 'masonry-layout';\r\nimport gaHelper from 'ga-helper';\r\nimport $ from 'jquery';\r\nimport fontFinally from '../../../general/js/font-loader';\r\nimport pageSpinner from 'page-spinner';\r\nimport scroller from 'scroller';\r\n\r\nexport default class Listing {\r\n constructor(el) {\r\n this.container = el;\r\n this.$container = $(this.container);\r\n this.isLoading = false;\r\n this.filterSelector = '.js-listing-filter';\r\n this.filterFieldSelector = '.js-listing-filter-field';\r\n this.gridSelector = '.js-listing-grid';\r\n this.gridItemSelector = '.js-listing-item';\r\n this.stampItemSelector = '.js-listing-stamp';\r\n this.emptyMessageSelector = '.js-empty-message';\r\n this.transitionDuration = 500;\r\n this.filterFields = [];\r\n this.filterReset = null;\r\n\r\n this.currentPage = 1;\r\n }\r\n\r\n init() {\r\n this.initConfig();\r\n\r\n this.grid = this.container.querySelector(this.gridSelector);\r\n this.filter = this.container.querySelector(this.filterSelector);\r\n this.emptyMessage = this.container.querySelector(this.emptyMessageSelector);\r\n\r\n if (this.filter) {\r\n this.filterFields = [...this.filter.querySelectorAll(this.filterFieldSelector)];\r\n this.filterReset = this.filter.querySelector('.js-listing-filter-reset');\r\n }\r\n\r\n this.bootstrap();\r\n }\r\n\r\n initConfig() {\r\n this.endpointUrl = this.container.getAttribute('data-endpoint-url');\r\n let multiColumnAttribute = this.container.getAttribute('data-multicolumn');\r\n this.isMultiColumn = multiColumnAttribute === null || multiColumnAttribute === \"true\";\r\n }\r\n\r\n bootstrapFinish() {\r\n this.initPagination();\r\n if (this.filter) {\r\n this.filter.addEventListener(\"change\", this.onFilterChange.bind(this));\r\n if (this.isNeedTrackFilter()) {\r\n this.filter.addEventListener(\"change\", this.trackFilter.bind(this));\r\n }\r\n }\r\n if (this.filterReset) {\r\n this.filterReset.addEventListener(\"click\", this.resetFilter.bind(this));\r\n }\r\n pageSpinner.hide();\r\n }\r\n\r\n bootstrap() {\r\n pageSpinner.show();\r\n if (this.isMultiColumn) {\r\n this.bootstrapPromise = fontFinally.then(() => {\r\n setTimeout(() => {\r\n this.masonry = new Masonry(this.grid, {\r\n columnWidth: this.gridItemSelector,\r\n itemSelector: this.gridItemSelector,\r\n stamp: this.stampItemSelector,\r\n percentPosition: true,\r\n transitionDuration: this.transitionDuration,\r\n stagger: 30,\r\n horizontalOrder: true\r\n });\r\n\r\n this.bootstrapFinish();\r\n }, 200);\r\n });\r\n } else {\r\n this.bootstrapPromise = Promise.resolve().then(() => {\r\n this.bootstrapFinish();\r\n })\r\n }\r\n }\r\n\r\n render(page = 1, append = false) {\r\n this.isLoading = true;\r\n\r\n return this.getData(page).then((response) => {\r\n this.currentPage = page;\r\n return this.renderData(response, append);\r\n }, (error) => {\r\n console.log(error);\r\n }).then(() => {\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n getData(page) {\r\n return new Promise((resolve, reject) => {\r\n $.ajax({\r\n url: this.getUrl(page),\r\n }).done((response) => {\r\n resolve(response);\r\n }).fail((error) => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n removeItems(currentItems) {\r\n if (this.isMultiColumn) {\r\n this.masonry.remove(currentItems);\r\n } else {\r\n currentItems.forEach((item) => {\r\n this.grid.removeChild(item);\r\n });\r\n }\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n }, this.transitionDuration)\r\n });\r\n }\r\n\r\n appendItems(items, append) {\r\n items.forEach((item) => {\r\n this.grid.appendChild(item);\r\n });\r\n\r\n if (this.isMultiColumn) {\r\n this.masonry.appended(items);\r\n if (!append) {\r\n this.masonry.layout();\r\n }\r\n }\r\n }\r\n\r\n renderData(itemsHtml, append) {\r\n return this.bootstrapPromise.then(() => {\r\n let domParser = new DOMParser();\r\n let pseudoDocument = domParser.parseFromString(itemsHtml, \"text/html\");\r\n let items = [...pseudoDocument.querySelectorAll(this.gridItemSelector)];\r\n\r\n if (!append) {\r\n let currentItems = this.grid.querySelectorAll(`${this.gridItemSelector}:not(.js-listing-item-pinned)`);\r\n currentItems = [...currentItems];\r\n let listingClearPromise = this.removeItems(currentItems);\r\n this.handleEmptyResponse(items, listingClearPromise);\r\n }\r\n\r\n this.appendItems(items, append);\r\n this.updatePagination(pseudoDocument);\r\n })\r\n }\r\n\r\n onFilterChange() {\r\n this.updateResetState();\r\n this.currentPage = null;\r\n pageSpinner.show();\r\n this.render().then(() => {\r\n pageSpinner.hide();\r\n })\r\n }\r\n\r\n resetFilter(e) {\r\n e.preventDefault();\r\n this.filterFields.forEach(x => x.value = \"\");\r\n this.$container.trigger('flatpickr:clear');\r\n this.onFilterChange();\r\n var dropdownTextarea = document.querySelectorAll('.textAreaBtn');\r\n for(let t=0; t o.selected = false);\r\n }\r\n }\r\n\r\n var items = document.getElementsByTagName('input');\r\n for(let i=0; i x.value);\r\n if (isFilled) {\r\n this.filterReset.classList.add(\"btn--violet\");\r\n this.filterReset.classList.remove(\"btn--disabled\");\r\n this.filterReset.disabled = false;\r\n } else {\r\n this.filterReset.classList.remove(\"btn--violet\");\r\n this.filterReset.classList.add(\"btn--disabled\");\r\n this.filterReset.disabled = 'disabled';\r\n }\r\n }\r\n\r\n getUrl(page) {\r\n let params = this.getRequestParams();\r\n if (page !== null) {\r\n params['page'] = page;\r\n }\r\n let paramsString = Object.keys(params).map(key => `${key}=${params[key]}`).join('&');\r\n let paramsPrefix = this.endpointUrl.indexOf('?') === -1 ? '?' : '&';\r\n return `${this.endpointUrl}` + (paramsString !== '' ? `${paramsPrefix}${paramsString}` : '');\r\n }\r\n\r\n getRequestParams() {\r\n let arrayRegexp = /(.+)\\[(.*)\\]/;\r\n\r\n let result = this.filterFields.reduce((result, field) => {\r\n if (field && field.selectedOptions && field.selectedOptions.length > 0) {\r\n result[field.name] = Array.from(field.selectedOptions).map((x) => x.value);\r\n }\r\n \r\n if (field && field.value && Array.from(field.classList).includes('js-rangepicker')) {\r\n result[field.name] = field.value;\r\n }\r\n\r\n return result;\r\n }, {});\r\n\r\n\r\n Object.keys(result).map(function (key) {\r\n let value = result[key];\r\n if (Array.isArray(value)) {\r\n value = value.join(',');\r\n }\r\n result[key] = value;\r\n });\r\n\r\n return result;\r\n }\r\n\r\n updatePagination(container) {\r\n throw new Error('method not implemented');\r\n }\r\n\r\n initPagination() {\r\n throw new Error('method not implemented');\r\n }\r\n\r\n isNeedTrackFilter() {\r\n return this.endpointUrl.indexOf('events') !== -1;\r\n }\r\n\r\n trackFilter(e) {\r\n if (!this.isFilterEmpty()) {\r\n gaHelper.ga('send', 'event', this.getTrackingEventCategory(), this.getTrackingEventAction(), this.getTrackingEventLabel());\r\n }\r\n }\r\n\r\n getTrackingEventCategory() {\r\n if (this.endpointUrl.indexOf('events') !== -1) {\r\n return 'Find The Right Event';\r\n } else {\r\n return 'unknown';\r\n }\r\n }\r\n\r\n getTrackingEventAction() {\r\n if (this.endpointUrl.indexOf('events') !== -1) {\r\n return 'Search';\r\n } else {\r\n return 'unknown';\r\n }\r\n }\r\n\r\n getTrackingEventLabel() {\r\n if (this.endpointUrl.indexOf('events') !== -1) {\r\n let params = this.getRequestParams();\r\n return `${params['startdate'] || 'n/a'} > ${params['type'] || 'n/a'} > ${params['location'] || 'n/a'}`\r\n } else {\r\n return 'unknown';\r\n }\r\n }\r\n\r\n isFilterEmpty() {\r\n if (this.endpointUrl.indexOf('events') !== -1) {\r\n let params = this.getRequestParams();\r\n return !params['startdate'] && !params['type'] && !params['location'];\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n handleEmptyResponse(items, listingClearPromise) {\r\n //current items removed and new array has 0 items\r\n if (items.length === 0) {\r\n this.container.classList.add('is-empty');\r\n listingClearPromise.then(() => {\r\n scroller.scrollToElement(this.emptyMessage);\r\n });\r\n } else {\r\n this.container.classList.remove('is-empty');\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/listing/js/listing.js","'use strict';\n\nexports.__esModule = true;\n\nvar errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n column = undefined;\n if (loc) {\n line = loc.start.line;\n column = loc.start.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n } else {\n this.column = column;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsSUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzs7QUFFbkcsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDdEIsSUFBSSxZQUFBO01BQ0osTUFBTSxZQUFBLENBQUM7QUFDWCxNQUFJLEdBQUcsRUFBRTtBQUNQLFFBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztBQUN0QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7O0FBRTFCLFdBQU8sSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7R0FDeEM7O0FBRUQsTUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzs7O0FBRzFELE9BQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0FBQ2hELFFBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7R0FDOUM7OztBQUdELE1BQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO0FBQzNCLFNBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7R0FDMUM7O0FBRUQsTUFBSTtBQUNGLFFBQUksR0FBRyxFQUFFO0FBQ1AsVUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Ozs7QUFJdkIsVUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO0FBQ3pCLGNBQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtBQUNwQyxlQUFLLEVBQUUsTUFBTTtBQUNiLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7T0FDdEI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgZXJyb3JQcm9wcyA9IFsnZGVzY3JpcHRpb24nLCAnZmlsZU5hbWUnLCAnbGluZU51bWJlcicsICdtZXNzYWdlJywgJ25hbWUnLCAnbnVtYmVyJywgJ3N0YWNrJ107XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgICAgbGluZSxcbiAgICAgIGNvbHVtbjtcbiAgaWYgKGxvYykge1xuICAgIGxpbmUgPSBsb2Muc3RhcnQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcblxuICAgICAgLy8gV29yayBhcm91bmQgaXNzdWUgdW5kZXIgc2FmYXJpIHdoZXJlIHdlIGNhbid0IGRpcmVjdGx5IHNldCB0aGUgY29sdW1uIHZhbHVlXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2NvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogY29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKG5vcCkge1xuICAgIC8qIElnbm9yZSBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IHBhcnRpY3VsYXIgKi9cbiAgfVxufVxuXG5FeGNlcHRpb24ucHJvdG90eXBlID0gbmV3IEVycm9yKCk7XG5cbmV4cG9ydCBkZWZhdWx0IEV4Y2VwdGlvbjtcbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/exception.js\n// module id = Cz5H\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/filter/main.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-person\",\n \"use\": \"icon-person-usage\",\n \"viewBox\": \"0 0 2.91 6.61\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/person.svg\n// module id = DBgD\n// module chunks = 0","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-sms\",\n \"use\": \"icon-sms-usage\",\n \"viewBox\": \"0 0 58.98 44\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/sms.svg\n// module id = DPol\n// module chunks = 0","'use strict';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-file-input',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.file-input');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/file-input/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from \"jquery\";\r\nimport helpers from 'helpers';\r\nimport app from 'app-instance';\r\n\r\n\r\n\r\nexport default class DonationSelector extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.handleBtnClick = this.handleBtnClick.bind(this);\r\n\r\n this.$container = $(this.container);\r\n this.init();\r\n }\r\n\r\n init() {\r\n\r\n this.$btn = this.$container.find('.js-donaton-selector__btn');\r\n this.$input = this.$container.find('.js-donaton-selector__inp');\r\n\r\n this.$btn.on('click', this.handleBtnClick);\r\n this.$input.on('input', helpers.throttle(this, this.handleInput, 300));\r\n\r\n }\r\n\r\n handleBtnClick(e) {\r\n const $targetBtn = $(e.target);\r\n this.$btn.removeClass('is-active');\r\n $targetBtn.addClass('is-active');\r\n\r\n const value = $targetBtn.data('value');\r\n this.$input.val(value);\r\n app.emitEvent('donateAmount:input', [value]);\r\n }\r\n\r\n handleInput() {\r\n const inputVal = parseFloat(this.$input.val());\r\n this.$btn.each(( index, el ) => {\r\n const $el = $(el);\r\n\r\n if (inputVal === $el.data('value')) {\r\n $el.addClass('is-active');\r\n } else {\r\n $el.removeClass('is-active');\r\n }\r\n });\r\n\r\n app.emitEvent('donateAmount:input', [inputVal]);\r\n }\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/donation-selector/js/generic.donation-selector.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-tabs',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.tabs');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/tabs/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-logo-list',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.logo-list');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/logo-list/main.js","class Scroller {\r\n\r\n scrollToElement(element, speed = 500) {\r\n if (element && !this.isInsideWindow(element)) {\r\n return this._scrollToElement(element, speed);\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n isInsideWindow(element) {\r\n let elementPosition = this.getElementDocumentPosition(element);\r\n console.log(elementPosition);\r\n let windowTop = document.documentElement.scrollTop || document.body.scrollTop;\r\n let windowBottom = windowTop + window.innerHeight;\r\n return windowTop <= elementPosition.top && windowBottom >= elementPosition.bottom;\r\n }\r\n\r\n getElementDocumentPosition(element) {\r\n let box = element.getBoundingClientRect();\r\n return {\r\n top: box.top + pageYOffset,\r\n bottom: box.bottom + pageYOffset,\r\n }\r\n }\r\n\r\n _scrollToElement(element, speed) {\r\n let moveToRect = element.getBoundingClientRect();\r\n let scrollTargetY = (moveToRect.top + pageYOffset) - window.innerHeight * 0.2;\r\n\r\n return new Promise(resolve => {\r\n const currentY = window.scrollY || document.documentElement.scrollTop;\r\n const time = Math.max(0.1, Math.min(Math.abs(currentY - scrollTargetY) / speed, 0.8));\r\n\r\n const easingFunction = function (pos) {\r\n return -0.5 * (Math.cos(Math.PI * pos) - 1);\r\n };\r\n\r\n let currentTime = 0;\r\n\r\n function tick() {\r\n currentTime += 1 / 60;\r\n\r\n let p = currentTime / time;\r\n let t = easingFunction(p);\r\n\r\n if (p < 1) {\r\n requestAnimationFrame(tick);\r\n window.scrollTo(0, currentY + (scrollTargetY - currentY) * t);\r\n return;\r\n }\r\n\r\n window.scrollTo(0, scrollTargetY);\r\n resolve();\r\n }\r\n\r\n tick();\r\n });\r\n }\r\n}\r\n\r\nlet instance = new Scroller();\r\nexport default instance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/scroller.js","'use strict';\r\n\r\nexport default function createEvent(name) {\r\n if (typeof Event === 'function') {\r\n return new Event(name, {bubbles: true});\r\n } else {\r\n let event = document.createEvent(\"Event\");\r\n event.initEvent(name, true, true);\r\n return event;\r\n }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/create-event.js","var Handlebars = require(\"C:\\\\TeamCityAgents\\\\02\\\\work\\\\bbe988d6cf529cbd\\\\CMS\\\\App_Themes\\\\DeleteKenticoFramework\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\\r\\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
\\r\\n\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/jg-imagery/html/jg-imagery-empty.hbs\n// module id = GENp\n// module chunks = 0","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-modal_close\",\n \"use\": \"icon-modal_close-usage\",\n \"viewBox\": \"0 0 12.98 12.98\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/modal_close.svg\n// module id = GKKS\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUErRSxVQUFVOztxQkFFMUUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVwQixRQUFJLENBQUMsZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNyQixVQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQ3hCLFVBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQy9CLFlBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO09BQ2hGOztBQUVELGFBQU8sRUFBRSxDQUFDLE9BQU8sRUFBRTtBQUNqQixZQUFJLEVBQUUsSUFBSTtBQUNWLG1CQUFXLEVBQUUsbUJBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7T0FDaEUsQ0FBQyxDQUFDO0tBQ0osTUFBTTtBQUNMLGFBQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5QjtHQUNGLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6IndpdGguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FwcGVuZENvbnRleHRQYXRoLCBibG9ja1BhcmFtcywgY3JlYXRlRnJhbWUsIGlzRW1wdHksIGlzRnVuY3Rpb259IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3dpdGgnLCBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHsgY29udGV4dCA9IGNvbnRleHQuY2FsbCh0aGlzKTsgfVxuXG4gICAgbGV0IGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmICghaXNFbXB0eShjb250ZXh0KSkge1xuICAgICAgbGV0IGRhdGEgPSBvcHRpb25zLmRhdGE7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgICBkYXRhLmNvbnRleHRQYXRoID0gYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmbihjb250ZXh0LCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dF0sIFtkYXRhICYmIGRhdGEuY29udGV4dFBhdGhdKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js\n// module id = Gg7h\n// module chunks = 0","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-doc-ppt\",\n \"use\": \"icon-doc-ppt-usage\",\n \"viewBox\": \"0 0 30.43 32.77\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/doc-ppt.svg\n// module id = Gt49\n// module chunks = 0","\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\nimport Accordion from './plugins/jquery-ui';\r\nimport FormValidityHandler from '../../form/js/form-validity-handler';\r\n\r\nexport default class AccordionEl extends Component {\r\n constructor(el) {\r\n super(el);\r\n\r\n this.$container = $(this.container);\r\n const customSettings = this.$container.data('accordionSettings') || {};\r\n this.settings = Object.assign({}, AccordionEl._settings, customSettings);\r\n this.$nextButton = this.$container.find('.js-accordion-next');\r\n\r\n this.initAccordion();\r\n }\r\n\r\n initAccordion() {\r\n this.$container.accordion(this.settings);\r\n this.instance = this.$container.accordion('instance');\r\n\r\n\r\n const $arrowElement = this.$container.find('.ui-icon');\r\n\r\n $arrowElement.append('');\r\n\r\n const $panels = this.$container.find('.panel');\r\n const formNode = this.$container.closest('.js-validated-form')[0];\r\n $panels.each((i, element) => {\r\n new FormValidityHandler({\r\n element,\r\n formNode,\r\n onFailed: this.onInnerFieldNotValid.bind(this, element),\r\n beforeSubmit: this.onBeforeSubmit.bind(this, element)\r\n });\r\n });\r\n\r\n this.$nextButton.on('click', this.onClickNext.bind(this));\r\n }\r\n\r\n onClickNext() {\r\n const nextIndex = this.getNextPanelIndex();\r\n\r\n this.$container.accordion('option', 'active', nextIndex);\r\n }\r\n\r\n onInnerFieldNotValid(el) {\r\n el.classList.add('is-invalid-panel');\r\n const siblings = [...el.parentNode.children];\r\n const index = siblings.indexOf(el);\r\n\r\n let mustOpenPanel = true;\r\n for (let i = 0; i < index; i++) {\r\n if (siblings[i].classList.contains('is-invalid-panel')) {\r\n mustOpenPanel = false;\r\n }\r\n }\r\n if (mustOpenPanel) {\r\n this.$container.accordion('option', 'active', index);\r\n }\r\n }\r\n\r\n onBeforeSubmit(el) {\r\n el.classList.remove('is-invalid-panel');\r\n }\r\n\r\n\r\n getNextPanelIndex() {\r\n const currentIndex = this.instance.options.active;\r\n const length = this.instance.panels.length;\r\n\r\n return (currentIndex + 1 < length) ? currentIndex + 1 : 0;\r\n }\r\n}\r\n\r\nAccordionEl._settings = {\r\n header: '.panel-heading',\r\n collapsible: 'true',\r\n active: 'false',\r\n heightStyle: 'content',\r\n activate: (event, ui) => {\r\n const header = ui.newHeader[0];\r\n if (header) {\r\n const offsetTop = header.getBoundingClientRect().top;\r\n if (offsetTop < 0) {\r\n $('html:not(:animated), body:not(:animated)').animate({ scrollTop: window.pageYOffset + offsetTop }, 200);\r\n }\r\n }\r\n }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/accordion/js/generic.accordion.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/file-icon/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/downloads/main.js","/*!\n * EventEmitter v5.2.2 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/wolfy87-eventemitter/EventEmitter.js\n// module id = I1Kh\n// module chunks = 0","\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport TweenLite from 'gsap/TweenLite';\r\nimport menuManager from 'menu-manager';\r\nimport { MOBILE_MENU_ID } from '../../hamburger/js/generic.hamburger';\r\nimport app from '../../../general/js/app-instance';\r\n\r\nexport default class SearchTop extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.defineVariables();\r\n this.toggle.addEventListener('click', this.toggleMenu.bind(this));\r\n this.shadow.addEventListener('click', this.toggleMenu.bind(this));\r\n if (this.trigger) {\r\n this.trigger.addEventListener('click', this.searchTrigger.bind(this));\r\n this.trigger.classList.add('js-search-top-trigger-inited');\r\n }\r\n }\r\n\r\n defineVariables() {\r\n this.menuId = 'search';\r\n this.isOpened = false;\r\n this.toggle = this.container.querySelector('.js-toggle');\r\n this.content = this.container.querySelector('.js-content');\r\n this.input = this.container.querySelector('.js-search-box');\r\n this.shadow = document.querySelector('.nav-top__shadow-bg');\r\n this.trigger = document.querySelector('.js-search-top-trigger:not(.js-search-top-trigger-inited)');\r\n\r\n const elementsToHide = [\r\n document.querySelector('.navbar'),\r\n document.querySelectorAll('.header__nav-btn')[0],\r\n document.querySelectorAll('.header__nav-btn')[1],\r\n document.querySelector('.js-search-top-mobile')\r\n ];\r\n\r\n this.elementsToHide = elementsToHide.reduce((result, el) => {\r\n if (el) {\r\n result.push(el);\r\n }\r\n return result;\r\n }, []);\r\n\r\n this.headerNav = document.querySelector('.header__nav');\r\n this.body = document.body;\r\n }\r\n\r\n toggleMenu(e) {\r\n if (e) e.preventDefault();\r\n\r\n if (!this.isOpened) {\r\n this.openDesktop();\r\n } else {\r\n this.closeDesktop();\r\n }\r\n }\r\n\r\n\r\n openDesktop() {\r\n this.isOpened = true;\r\n TweenLite.from(this.content, 0.3, { y: -300 });\r\n TweenLite.to(this.content, 0.3, {\r\n y: 0,\r\n onComplete: () => {\r\n this.input.focus();\r\n }\r\n });\r\n this.container.classList.add('is-opened');\r\n this.toggle.querySelector('svg.icon use').setAttribute('xlink:href', '#icon-modal_close');\r\n\r\n this.elementsToHideDisplay = this.elementsToHide.map((element) => {\r\n const display = element.style.display;\r\n element.style.display = 'none';\r\n return display;\r\n });\r\n\r\n this.shadow.classList.add('is-visible');\r\n }\r\n\r\n\r\n closeDesktop() {\r\n this.isOpened = false;\r\n TweenLite.from(this.content, 0.3, { y: 0 });\r\n const self = this;\r\n TweenLite.to(this.content, 0.3, {\r\n y: -300,\r\n onComplete() {\r\n self.container.classList.remove('is-opened');\r\n }\r\n });\r\n this.toggle.querySelector('svg.icon use').setAttribute('xlink:href', '#icon-search');\r\n\r\n this.elementsToHide.forEach((element, index) => {\r\n element.style.display = this.elementsToHideDisplay[index];\r\n });\r\n\r\n this.shadow.classList.remove('is-visible');\r\n }\r\n\r\n searchTrigger(e) {\r\n e.preventDefault();\r\n window.scrollTo(0, 0);\r\n if (app.isDesktop) {\r\n this.openDesktop();\r\n } else {\r\n menuManager.open(MOBILE_MENU_ID);\r\n }\r\n }\r\n}\r\n\r\nSearchTop.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/search-top/js/generic.search-top.js","\r\n\r\nimport Component from 'generic.basecomponent';\r\n\r\n\r\nexport default class Tabs extends Component {\r\n constructor(el, callbacks) {\r\n super(el);\r\n this.callbacks = callbacks;\r\n this.initTabs();\r\n }\r\n\r\n initTabs() {\r\n this.defineVariables();\r\n Array.prototype.forEach.call(this.tabs, (tab) => {\r\n tab.addEventListener('click', this.setTab.bind(this));\r\n }, this);\r\n\r\n if (this.activeTabHash !== '' && this.supportTags) {\r\n this.setTab(this.activeTabHash);\r\n } else {\r\n this.setTab(this.defaultActive);\r\n }\r\n }\r\n\r\n defineVariables() {\r\n this.activeClass = 'js-active';\r\n this.supportTags = false;\r\n this.defaultActive = 0;\r\n this.tabs = this.container.querySelectorAll('.js-button');\r\n this.panels = this.container.querySelectorAll('.js-panel');\r\n this.activeTabHash = window.location.hash;\r\n }\r\n\r\n setTab(e) {\r\n if (e.target) {\r\n this.currentTab = e.target.getAttribute('href').substr(1);\r\n this.setActiveClass();\r\n } else if (typeof e === 'number') {\r\n this.currentTab = this.tabs[e].getAttribute('href').substr(1);\r\n this.setActiveClass();\r\n } else if (typeof e === 'string') {\r\n for (const tab of this.tabs) {\r\n if (tab.hash === this.activeTabHash) {\r\n this.currentTab = tab.hash.substring(1);\r\n this.setActiveClass();\r\n }\r\n }\r\n }\r\n\r\n if (e && e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n\r\n if (typeof this.callbacks === 'object' && typeof this.callbacks[this.currentTab] === 'function') {\r\n this.callbacks[this.currentTab]();\r\n }\r\n }\r\n\r\n setActiveClass() {\r\n for (let i = 0; i < this.panels.length; i++) {\r\n if (this.panels[i].id === this.currentTab) {\r\n this.panels[i].classList.add(this.activeClass);\r\n this.tabs[i].classList.add(this.activeClass);\r\n this.panels[i].style.display = 'block';\r\n } else {\r\n this.panels[i].classList.remove(this.activeClass);\r\n this.tabs[i].classList.remove(this.activeClass);\r\n this.panels[i].style.display = 'none';\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nTabs.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/tabs/js/generic.tabs.js","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.BrowserSprite = factory());\n}(this, (function () { 'use strict';\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\n\n\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar index = createCommonjsModule(function (module, exports) {\n(function (root, factory) {\n if (typeof undefined === 'function' && undefined.amd) {\n undefined(factory);\n } else {\n module.exports = factory();\n }\n}(commonjsGlobal, function () {\n\nfunction isMergeableObject(val) {\n var nonNullObject = val && typeof val === 'object';\n\n return nonNullObject\n && Object.prototype.toString.call(val) !== '[object RegExp]'\n && Object.prototype.toString.call(val) !== '[object Date]'\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function(e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (isMergeableObject(target)) {\n Object.keys(target).forEach(function (key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function (key) {\n if (!isMergeableObject(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n var array = Array.isArray(source);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n\n if (array) {\n return Array.isArray(target) ? arrayMerge(target, source, optionsArgument) : cloneIfNecessary(source, optionsArgument)\n } else {\n return mergeObject(target, source, optionsArgument)\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements')\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function(prev, next) {\n return deepmerge(prev, next, optionsArgument)\n })\n};\n\nreturn deepmerge\n\n}));\n});\n\n// \n// An event handler can take an optional event argument\n// and should not return a value\n \n// An array of all currently registered event handlers for a type\n \n// A map of event types and their corresponding event handlers.\n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberof mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nvar namespaces_1 = createCommonjsModule(function (module, exports) {\nvar namespaces = {\n svg: {\n name: 'xmlns',\n uri: 'http://www.w3.org/2000/svg'\n },\n xlink: {\n name: 'xmlns:xlink',\n uri: 'http://www.w3.org/1999/xlink'\n }\n};\n\nexports.default = namespaces;\nmodule.exports = exports.default;\n});\n\n/**\n * @param {Object} attrs\n * @return {string}\n */\nvar objectToAttrsString = function (attrs) {\n return Object.keys(attrs).map(function (attr) {\n var value = attrs[attr].toString().replace(/\"/g, '"');\n return (attr + \"=\\\"\" + value + \"\\\"\");\n }).join(' ');\n};\n\nvar svg = namespaces_1.svg;\nvar xlink = namespaces_1.xlink;\n\nvar defaultAttrs = {};\ndefaultAttrs[svg.name] = svg.uri;\ndefaultAttrs[xlink.name] = xlink.uri;\n\n/**\n * @param {string} [content]\n * @param {Object} [attributes]\n * @return {string}\n */\nvar wrapInSvgString = function (content, attributes) {\n if ( content === void 0 ) content = '';\n\n var attrs = index(defaultAttrs, attributes || {});\n var attrsRendered = objectToAttrsString(attrs);\n return (\"\" + content + \"\");\n};\n\nvar svg$1 = namespaces_1.svg;\nvar xlink$1 = namespaces_1.xlink;\n\nvar defaultConfig = {\n attrs: ( obj = {\n style: ['position: absolute', 'width: 0', 'height: 0'].join('; ')\n }, obj[svg$1.name] = svg$1.uri, obj[xlink$1.name] = xlink$1.uri, obj )\n};\nvar obj;\n\nvar Sprite = function Sprite(config) {\n this.config = index(defaultConfig, config || {});\n this.symbols = [];\n};\n\n/**\n * Add new symbol. If symbol with the same id exists it will be replaced.\n * @param {SpriteSymbol} symbol\n * @return {boolean} `true` - symbol was added, `false` - replaced\n */\nSprite.prototype.add = function add (symbol) {\n var ref = this;\n var symbols = ref.symbols;\n var existing = this.find(symbol.id);\n\n if (existing) {\n symbols[symbols.indexOf(existing)] = symbol;\n return false;\n }\n\n symbols.push(symbol);\n return true;\n};\n\n/**\n * Remove symbol & destroy it\n * @param {string} id\n * @return {boolean} `true` - symbol was found & successfully destroyed, `false` - otherwise\n */\nSprite.prototype.remove = function remove (id) {\n var ref = this;\n var symbols = ref.symbols;\n var symbol = this.find(id);\n\n if (symbol) {\n symbols.splice(symbols.indexOf(symbol), 1);\n symbol.destroy();\n return true;\n }\n\n return false;\n};\n\n/**\n * @param {string} id\n * @return {SpriteSymbol|null}\n */\nSprite.prototype.find = function find (id) {\n return this.symbols.filter(function (s) { return s.id === id; })[0] || null;\n};\n\n/**\n * @param {string} id\n * @return {boolean}\n */\nSprite.prototype.has = function has (id) {\n return this.find(id) !== null;\n};\n\n/**\n * @return {string}\n */\nSprite.prototype.stringify = function stringify () {\n var ref = this.config;\n var attrs = ref.attrs;\n var stringifiedSymbols = this.symbols.map(function (s) { return s.stringify(); }).join('');\n return wrapInSvgString(stringifiedSymbols, attrs);\n};\n\n/**\n * @return {string}\n */\nSprite.prototype.toString = function toString () {\n return this.stringify();\n};\n\nSprite.prototype.destroy = function destroy () {\n this.symbols.forEach(function (s) { return s.destroy(); });\n};\n\nvar defaultConfig$1 = {\n /**\n * Should following options be automatically configured:\n * - `syncUrlsWithBaseTag`\n * - `locationChangeAngularEmitter`\n * - `moveGradientsOutsideSymbol`\n * @type {boolean}\n */\n autoConfigure: true,\n\n /**\n * Default mounting selector\n * @type {string}\n */\n mountTo: 'body',\n\n /**\n * Fix disappearing SVG elements when exists.\n * Executes when sprite mounted.\n * @see http://stackoverflow.com/a/18265336/796152\n * @see https://github.com/everdimension/angular-svg-base-fix\n * @see https://github.com/angular/angular.js/issues/8934#issuecomment-56568466\n * @type {boolean}\n */\n syncUrlsWithBaseTag: false,\n\n /**\n * Should sprite listen custom location change event\n * @type {boolean}\n */\n listenLocationChangeEvent: true,\n\n /**\n * Custom window event name which should be emitted to update sprite urls\n * @type {string}\n */\n locationChangeEvent: 'locationChange',\n\n /**\n * Emit location change event in Angular automatically\n * @type {boolean}\n */\n locationChangeAngularEmitter: false,\n\n /**\n * Selector to find symbols usages when updating sprite urls\n * @type {string}\n */\n usagesToUpdate: 'use[*|href]',\n\n /**\n * Fix Firefox bug when gradients and patterns don't work if they are within a symbol.\n * Executes when sprite is rendered, but not mounted.\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=306674\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=353575\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=1235364\n * @type {boolean}\n */\n moveGradientsOutsideSymbol: false\n};\n\nvar arrayFrom = function (arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n};\n\nvar ua = navigator.userAgent;\n\nvar browser = {\n isChrome: /chrome/i.test(ua),\n isFirefox: /firefox/i.test(ua),\n isIE: /msie/i.test(ua),\n isEdge: /edge/i.test(ua)\n};\n\n/**\n * @param {string} name\n * @param {*} data\n */\nvar dispatchEvent = function (name, data) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent(name, false, false, data);\n window.dispatchEvent(event);\n};\n\n/**\n * @param {string} [url] If not provided - current URL will be used\n * @return {string}\n */\nvar getUrlWithoutFragment = function (url) {\n return (url || window.location.href).split('#')[0];\n};\n\n/* global angular */\n/**\n * @param {string} eventName\n */\nvar locationChangeAngularEmitter = function (eventName) {\n angular.module('ng').run(['$rootScope', function ($rootScope) {\n $rootScope.$on('$locationChangeSuccess', function (e, newUrl, oldUrl) {\n dispatchEvent(eventName, { oldUrl: oldUrl, newUrl: newUrl });\n });\n }]);\n};\n\nvar defaultSelector = 'linearGradient, radialGradient, pattern';\n\n/**\n * @param {Element} svg\n * @param {string} [selector]\n * @return {Element}\n */\nvar moveGradientsOutsideSymbol = function (svg, selector) {\n if ( selector === void 0 ) selector = defaultSelector;\n\n arrayFrom(svg.querySelectorAll('symbol')).forEach(function (symbol) {\n arrayFrom(symbol.querySelectorAll(selector)).forEach(function (node) {\n symbol.parentNode.insertBefore(node, symbol);\n });\n });\n return svg;\n};\n\n/**\n * @param {string} content\n * @return {Element}\n */\nvar parse = function (content) {\n var hasImportNode = !!document.importNode;\n var doc = new DOMParser().parseFromString(content, 'image/svg+xml').documentElement;\n\n /**\n * Fix for browser which are throwing WrongDocumentError\n * if you insert an element which is not part of the document\n * @see http://stackoverflow.com/a/7986519/4624403\n */\n if (hasImportNode) {\n return document.importNode(doc, true);\n }\n\n return doc;\n};\n\n/**\n * @param {NodeList} nodes\n * @param {Function} [matcher]\n * @return {Attr[]}\n */\nfunction selectAttributes(nodes, matcher) {\n var attrs = arrayFrom(nodes).reduce(function (acc, node) {\n if (!node.attributes) {\n return acc;\n }\n\n var arrayfied = arrayFrom(node.attributes);\n var matched = matcher ? arrayfied.filter(matcher) : arrayfied;\n return acc.concat(matched);\n }, []);\n\n return attrs;\n}\n\n/**\n * @param {NodeList|Node} nodes\n * @param {boolean} [clone=true]\n * @return {string}\n */\n\nvar xLinkNS = namespaces_1.xlink.uri;\nvar xLinkAttrName = 'xlink:href';\n\n// eslint-disable-next-line no-useless-escape\nvar specialUrlCharsPattern = /[(){}|\\\\\\^~\\[\\]`\"<>]/g;\n\nfunction encoder(url) {\n return url.replace(specialUrlCharsPattern, function (match) {\n return (\"%\" + (match[0].charCodeAt(0).toString(16).toUpperCase()));\n });\n}\n\n/**\n * @param {NodeList} nodes\n * @param {string} startsWith\n * @param {string} replaceWith\n * @return {NodeList}\n */\nfunction updateReferences(nodes, startsWith, replaceWith) {\n arrayFrom(nodes).forEach(function (node) {\n var href = node.getAttribute(xLinkAttrName);\n if (href && href.indexOf(startsWith) === 0) {\n var newUrl = href.replace(startsWith, replaceWith);\n node.setAttributeNS(xLinkNS, xLinkAttrName, newUrl);\n }\n });\n\n return nodes;\n}\n\n/**\n * List of SVG attributes to update url() target in them\n */\nvar attList = [\n 'clipPath',\n 'colorProfile',\n 'src',\n 'cursor',\n 'fill',\n 'filter',\n 'marker',\n 'markerStart',\n 'markerMid',\n 'markerEnd',\n 'mask',\n 'stroke',\n 'style'\n];\n\nvar attSelector = attList.map(function (attr) { return (\"[\" + attr + \"]\"); }).join(',');\n\n/**\n * Update URLs in svg image (like `fill=\"url(...)\"`) and update referencing elements\n * @param {Element} svg\n * @param {NodeList} references\n * @param {string|RegExp} startsWith\n * @param {string} replaceWith\n * @return {void}\n *\n * @example\n * const sprite = document.querySelector('svg.sprite');\n * const usages = document.querySelectorAll('use');\n * updateUrls(sprite, usages, '#', 'prefix#');\n */\nvar updateUrls = function (svg, references, startsWith, replaceWith) {\n var startsWithEncoded = encoder(startsWith);\n var replaceWithEncoded = encoder(replaceWith);\n\n var nodes = svg.querySelectorAll(attSelector);\n var attrs = selectAttributes(nodes, function (ref) {\n var localName = ref.localName;\n var value = ref.value;\n\n return attList.indexOf(localName) !== -1 && value.indexOf((\"url(\" + startsWithEncoded)) !== -1;\n });\n\n attrs.forEach(function (attr) { return attr.value = attr.value.replace(startsWithEncoded, replaceWithEncoded); });\n updateReferences(references, startsWithEncoded, replaceWithEncoded);\n};\n\n/**\n * Internal emitter events\n * @enum\n * @private\n */\nvar Events = {\n MOUNT: 'mount'\n};\n\nvar BrowserSprite = (function (Sprite$$1) {\n function BrowserSprite(cfg) {\n var this$1 = this;\n if ( cfg === void 0 ) cfg = {};\n\n Sprite$$1.call(this, index(defaultConfig$1, cfg));\n\n var emitter = mitt();\n this._emitter = emitter;\n this.node = null;\n\n var ref = this;\n var config = ref.config;\n\n if (config.autoConfigure) {\n this._autoConfigure(cfg);\n }\n\n if (config.syncUrlsWithBaseTag) {\n var baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\n emitter.on(Events.MOUNT, function () { return this$1.updateUrls('#', baseUrl); });\n }\n\n var handleLocationChange = this._handleLocationChange.bind(this);\n this._handleLocationChange = handleLocationChange;\n\n // Provide way to update sprite urls externally via dispatching custom window event\n if (config.listenLocationChangeEvent) {\n window.addEventListener(config.locationChangeEvent, handleLocationChange);\n }\n\n // Emit location change event in Angular automatically\n if (config.locationChangeAngularEmitter) {\n locationChangeAngularEmitter(config.locationChangeEvent);\n }\n\n if (config.moveGradientsOutsideSymbol) {\n emitter.on(Events.MOUNT, function (node) {\n moveGradientsOutsideSymbol(node);\n });\n }\n }\n\n if ( Sprite$$1 ) BrowserSprite.__proto__ = Sprite$$1;\n BrowserSprite.prototype = Object.create( Sprite$$1 && Sprite$$1.prototype );\n BrowserSprite.prototype.constructor = BrowserSprite;\n\n var prototypeAccessors = { isMounted: {} };\n\n /**\n * @return {boolean}\n */\n prototypeAccessors.isMounted.get = function () {\n return !!this.node;\n };\n\n /**\n * Automatically configure following options\n * - `syncUrlsWithBaseTag`\n * - `locationChangeAngularEmitter`\n * - `moveGradientsOutsideSymbol`\n * @param {Object} cfg\n * @private\n */\n BrowserSprite.prototype._autoConfigure = function _autoConfigure (cfg) {\n var ref = this;\n var config = ref.config;\n\n if (typeof cfg.syncUrlsWithBaseTag === 'undefined') {\n config.syncUrlsWithBaseTag = typeof document.getElementsByTagName('base')[0] !== 'undefined';\n }\n\n if (typeof cfg.locationChangeAngularEmitter === 'undefined') {\n config.locationChangeAngularEmitter = 'angular' in window;\n }\n\n if (typeof cfg.moveGradientsOutsideSymbol === 'undefined') {\n config.moveGradientsOutsideSymbol = browser.isFirefox;\n }\n };\n\n /**\n * @param {Event} event\n * @param {Object} event.detail\n * @param {string} event.detail.oldUrl\n * @param {string} event.detail.newUrl\n * @private\n */\n BrowserSprite.prototype._handleLocationChange = function _handleLocationChange (event) {\n var ref = event.detail;\n var oldUrl = ref.oldUrl;\n var newUrl = ref.newUrl;\n this.updateUrls(oldUrl, newUrl);\n };\n\n /**\n * Add new symbol. If symbol with the same id exists it will be replaced.\n * If sprite already mounted - `symbol.mount(sprite.node)` will be called.\n * @param {BrowserSpriteSymbol} symbol\n * @return {boolean} `true` - symbol was added, `false` - replaced\n */\n BrowserSprite.prototype.add = function add (symbol) {\n var isNewSymbol = Sprite$$1.prototype.add.call(this, symbol);\n\n if (this.isMounted && isNewSymbol) {\n symbol.mount(this.node);\n }\n\n return isNewSymbol;\n };\n\n BrowserSprite.prototype.destroy = function destroy () {\n var ref = this;\n var config = ref.config;\n var symbols = ref.symbols;\n var _emitter = ref._emitter;\n\n symbols.forEach(function (s) { return s.destroy(); });\n\n _emitter.off('*');\n window.removeEventListener(config.locationChangeEvent, this._handleLocationChange);\n\n if (this.isMounted) {\n this.unmount();\n }\n };\n\n /**\n * @param {Element|string} [target]\n * @param {boolean} [prepend=false]\n * @return {Element} rendered sprite node\n * @fires Events#MOUNT\n */\n BrowserSprite.prototype.mount = function mount (target, prepend) {\n if ( prepend === void 0 ) prepend = false;\n\n if (this.isMounted) {\n return this.node;\n }\n\n var mountTarget = target || this.config.mountTo;\n var parent = typeof mountTarget === 'string' ? document.querySelector(mountTarget) : mountTarget;\n var node = this.render();\n\n if (prepend && parent.childNodes[0]) {\n parent.insertBefore(node, parent.childNodes[0]);\n } else {\n parent.appendChild(node);\n }\n\n this.node = node;\n this._emitter.emit(Events.MOUNT, node);\n\n return node;\n };\n\n /**\n * @return {Element}\n */\n BrowserSprite.prototype.render = function render () {\n return parse(this.stringify());\n };\n\n /**\n * Detach sprite from the DOM\n */\n BrowserSprite.prototype.unmount = function unmount () {\n this.node.parentNode.removeChild(this.node);\n };\n\n /**\n * Update URLs in sprite and usage elements\n * @param {string} oldUrl\n * @param {string} newUrl\n * @return {boolean} `true` - URLs was updated, `false` - sprite is not mounted\n */\n BrowserSprite.prototype.updateUrls = function updateUrls$1 (oldUrl, newUrl) {\n if (!this.isMounted) {\n return false;\n }\n\n var usages = document.querySelectorAll(this.config.usagesToUpdate);\n\n updateUrls(\n this.node,\n usages,\n ((getUrlWithoutFragment(oldUrl)) + \"#\"),\n ((getUrlWithoutFragment(newUrl)) + \"#\")\n );\n\n return true;\n };\n\n Object.defineProperties( BrowserSprite.prototype, prototypeAccessors );\n\n return BrowserSprite;\n}(Sprite));\n\nvar ready$1 = createCommonjsModule(function (module) {\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n { module.exports = definition(); }\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n\n if (!loaded)\n { doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while (listener = fns.shift()) { listener(); }\n }); }\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n }\n\n});\n});\n\nvar sprite = new BrowserSprite();\n\nvar loadSprite = function () {\n var svg = sprite.mount(document.body, true);\n\n // :WORKAROUND:\n // IE doesn't evaluate ' );\r\n }\r\n }\r\n\r\n\r\n // Build html markup and set references\r\n // ====================================\r\n\r\n // Build html code for buttons and insert into main template\r\n buttonStr = '';\r\n\r\n $.each( firstItemOpts.buttons, function( index, value ) {\r\n buttonStr += ( firstItemOpts.btnTpl[ value ] || '' );\r\n });\r\n\r\n // Create markup from base template, it will be initially hidden to\r\n // avoid unnecessary work like painting while initializing is not complete\r\n $container = $( self.translate( self, firstItemOpts.baseTpl.replace( '\\{\\{BUTTONS\\}\\}', buttonStr ) ) )\r\n .addClass( 'fancybox-is-hidden' )\r\n .attr('id', 'fancybox-container-' + self.id)\r\n .addClass( firstItemOpts.baseClass )\r\n .data( 'FancyBox', self )\r\n .prependTo( firstItemOpts.parentEl );\r\n\r\n // Create object holding references to jQuery wrapped nodes\r\n self.$refs = {\r\n container : $container\r\n };\r\n\r\n [ 'bg', 'inner', 'infobar', 'toolbar', 'stage', 'caption' ].forEach(function(item) {\r\n self.$refs[ item ] = $container.find( '.fancybox-' + item );\r\n });\r\n\r\n // Check for redundant elements\r\n if ( !firstItemOpts.arrows || self.group.length < 2 ) {\r\n $container.find('.fancybox-navigation').remove();\r\n }\r\n\r\n if ( !firstItemOpts.infobar ) {\r\n self.$refs.infobar.remove();\r\n }\r\n\r\n if ( !firstItemOpts.toolbar ) {\r\n self.$refs.toolbar.remove();\r\n }\r\n\r\n self.trigger( 'onInit' );\r\n\r\n // Bring to front and enable events\r\n self.activate();\r\n\r\n // Build slides, load and reveal content\r\n self.jumpTo( self.currIndex );\r\n },\r\n\r\n\r\n // Simple i18n support - replaces object keys found in template\r\n // with corresponding values\r\n // ============================================================\r\n\r\n translate : function( obj, str ) {\r\n var arr = obj.opts.i18n[ obj.opts.lang ];\r\n\r\n return str.replace(/\\{\\{(\\w+)\\}\\}/g, function(match, n) {\r\n var value = arr[n];\r\n\r\n if ( value === undefined ) {\r\n return match;\r\n }\r\n\r\n return value;\r\n });\r\n },\r\n\r\n // Create array of gally item objects\r\n // Check if each object has valid type and content\r\n // ===============================================\r\n\r\n createGroup : function ( content ) {\r\n var self = this;\r\n var items = $.makeArray( content );\r\n\r\n $.each(items, function( i, item ) {\r\n var obj = {},\r\n opts = {},\r\n data = [],\r\n $item,\r\n type,\r\n src,\r\n srcParts;\r\n\r\n // Step 1 - Make sure we have an object\r\n // ====================================\r\n\r\n if ( $.isPlainObject( item ) ) {\r\n\r\n // We probably have manual usage here, something like\r\n // $.fancybox.open( [ { src : \"image.jpg\", type : \"image\" } ] )\r\n\r\n obj = item;\r\n opts = item.opts || item;\r\n\r\n } else if ( $.type( item ) === 'object' && $( item ).length ) {\r\n\r\n // Here we propbably have jQuery collection returned by some selector\r\n\r\n $item = $( item );\r\n data = $item.data();\r\n\r\n opts = 'options' in data ? data.options : {};\r\n opts = $.type( opts ) === 'object' ? opts : {};\r\n\r\n obj.src = 'src' in data ? data.src : ( opts.src || $item.attr( 'href' ) );\r\n\r\n [ 'width', 'height', 'thumb', 'type', 'filter' ].forEach(function(item) {\r\n if ( item in data ) {\r\n opts[ item ] = data[ item ];\r\n }\r\n });\r\n\r\n if ( 'srcset' in data ) {\r\n opts.image = { srcset : data.srcset };\r\n }\r\n\r\n opts.$orig = $item;\r\n\r\n if ( !obj.type && !obj.src ) {\r\n obj.type = 'inline';\r\n obj.src = item;\r\n }\r\n\r\n } else {\r\n\r\n // Assume we have a simple html code, for example:\r\n // $.fancybox.open( '

Hi!

' );\r\n\r\n obj = {\r\n type : 'html',\r\n src : item + ''\r\n };\r\n\r\n }\r\n\r\n // Each gallery object has full collection of options\r\n obj.opts = $.extend( true, {}, self.opts, opts );\r\n\r\n if ( $.fancybox.isMobile ) {\r\n obj.opts = $.extend( true, {}, obj.opts, obj.opts.mobile );\r\n }\r\n\r\n\r\n // Step 2 - Make sure we have content type, if not - try to guess\r\n // ==============================================================\r\n\r\n type = obj.type || obj.opts.type;\r\n src = obj.src || '';\r\n\r\n if ( !type && src ) {\r\n if ( src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i) ) {\r\n type = 'image';\r\n\r\n } else if ( src.match(/\\.(pdf)((\\?|#).*)?$/i) ) {\r\n type = 'pdf';\r\n\r\n } else if ( src.charAt(0) === '#' ) {\r\n type = 'inline';\r\n }\r\n }\r\n\r\n obj.type = type;\r\n\r\n\r\n // Step 3 - Some adjustments\r\n // =========================\r\n\r\n obj.index = self.group.length;\r\n\r\n // Check if $orig and $thumb objects exist\r\n if ( obj.opts.$orig && !obj.opts.$orig.length ) {\r\n delete obj.opts.$orig;\r\n }\r\n\r\n if ( !obj.opts.$thumb && obj.opts.$orig ) {\r\n obj.opts.$thumb = obj.opts.$orig.find( 'img:first' );\r\n }\r\n\r\n if ( obj.opts.$thumb && !obj.opts.$thumb.length ) {\r\n delete obj.opts.$thumb;\r\n }\r\n\r\n // Caption is a \"special\" option, it can be passed as a method\r\n if ( $.type( obj.opts.caption ) === 'function' ) {\r\n obj.opts.caption = obj.opts.caption.apply( item, [ self, obj ] );\r\n\r\n } else if ( 'caption' in data ) {\r\n obj.opts.caption = data.caption;\r\n }\r\n\r\n // Make sure we have caption as a string\r\n obj.opts.caption = obj.opts.caption === undefined ? '' : obj.opts.caption + '';\r\n\r\n // Check if url contains \"filter\" used to filter the content\r\n // Example: \"ajax.html #something\"\r\n if ( type === 'ajax' ) {\r\n srcParts = src.split(/\\s+/, 2);\r\n\r\n if ( srcParts.length > 1 ) {\r\n obj.src = srcParts.shift();\r\n\r\n obj.opts.filter = srcParts.shift();\r\n }\r\n }\r\n\r\n if ( obj.opts.smallBtn == 'auto' ) {\r\n\r\n if ( $.inArray( type, ['html', 'inline', 'ajax'] ) > -1 ) {\r\n obj.opts.toolbar = false;\r\n obj.opts.smallBtn = true;\r\n\r\n } else {\r\n obj.opts.smallBtn = false;\r\n }\r\n\r\n }\r\n\r\n // If the type is \"pdf\", then simply load file into iframe\r\n if ( type === 'pdf' ) {\r\n obj.type = 'iframe';\r\n\r\n obj.opts.iframe.preload = false;\r\n }\r\n\r\n // Hide all buttons and disable interactivity for modal items\r\n if ( obj.opts.modal ) {\r\n\r\n obj.opts = $.extend(true, obj.opts, {\r\n // Remove buttons\r\n infobar : 0,\r\n toolbar : 0,\r\n\r\n smallBtn : 0,\r\n\r\n // Disable keyboard navigation\r\n keyboard : 0,\r\n\r\n // Disable some modules\r\n slideShow : 0,\r\n fullScreen : 0,\r\n thumbs : 0,\r\n touch : 0,\r\n\r\n // Disable click event handlers\r\n clickContent : false,\r\n clickSlide : false,\r\n clickOutside : false,\r\n dblclickContent : false,\r\n dblclickSlide : false,\r\n dblclickOutside : false\r\n });\r\n\r\n }\r\n\r\n // Step 4 - Add processed object to group\r\n // ======================================\r\n\r\n self.group.push( obj );\r\n\r\n });\r\n\r\n },\r\n\r\n\r\n // Attach an event handler functions for:\r\n // - navigation buttons\r\n // - browser scrolling, resizing;\r\n // - focusing\r\n // - keyboard\r\n // - detect idle\r\n // ======================================\r\n\r\n addEvents : function() {\r\n var self = this;\r\n\r\n self.removeEvents();\r\n\r\n // Make navigation elements clickable\r\n self.$refs.container.on('click.fb-close', '[data-fancybox-close]', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.close( e );\r\n\r\n }).on( 'click.fb-prev touchend.fb-prev', '[data-fancybox-prev]', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.previous();\r\n\r\n }).on( 'click.fb-next touchend.fb-next', '[data-fancybox-next]', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.next();\r\n\r\n });\r\n\r\n\r\n // Handle page scrolling and browser resizing\r\n $W.on('orientationchange.fb resize.fb', function(e) {\r\n\r\n if ( e && e.originalEvent && e.originalEvent.type === \"resize\" ) {\r\n\r\n requestAFrame(function() {\r\n self.update();\r\n });\r\n\r\n } else {\r\n\r\n self.$refs.stage.hide();\r\n\r\n setTimeout(function() {\r\n self.$refs.stage.show();\r\n\r\n self.update();\r\n }, 500);\r\n\r\n }\r\n\r\n });\r\n\r\n // Trap keyboard focus inside of the modal, so the user does not accidentally tab outside of the modal\r\n // (a.k.a. \"escaping the modal\")\r\n $D.on('focusin.fb', function(e) {\r\n var instance = $.fancybox ? $.fancybox.getInstance() : null;\r\n\r\n if ( instance.isClosing || !instance.current || !instance.current.opts.trapFocus || $( e.target ).hasClass( 'fancybox-container' ) || $( e.target ).is( document ) ) {\r\n return;\r\n }\r\n\r\n if ( instance && $( e.target ).css( 'position' ) !== 'fixed' && !instance.$refs.container.has( e.target ).length ) {\r\n e.stopPropagation();\r\n\r\n instance.focus();\r\n\r\n // Sometimes page gets scrolled, set it back\r\n $W.scrollTop( self.scrollTop ).scrollLeft( self.scrollLeft );\r\n }\r\n });\r\n\r\n\r\n // Enable keyboard navigation\r\n $D.on('keydown.fb', function (e) {\r\n var current = self.current,\r\n keycode = e.keyCode || e.which;\r\n\r\n if ( !current || !current.opts.keyboard ) {\r\n return;\r\n }\r\n\r\n if ( $(e.target).is('input') || $(e.target).is('textarea') ) {\r\n return;\r\n }\r\n\r\n // Backspace and Esc keys\r\n if ( keycode === 8 || keycode === 27 ) {\r\n e.preventDefault();\r\n\r\n self.close( e );\r\n\r\n return;\r\n }\r\n\r\n // Left arrow and Up arrow\r\n if ( keycode === 37 || keycode === 38 ) {\r\n e.preventDefault();\r\n\r\n self.previous();\r\n\r\n return;\r\n }\r\n\r\n // Righ arrow and Down arrow\r\n if ( keycode === 39 || keycode === 40 ) {\r\n e.preventDefault();\r\n\r\n self.next();\r\n\r\n return;\r\n }\r\n\r\n self.trigger('afterKeydown', e, keycode);\r\n });\r\n\r\n\r\n // Hide controls after some inactivity period\r\n if ( self.group[ self.currIndex ].opts.idleTime ) {\r\n self.idleSecondsCounter = 0;\r\n\r\n $D.on('mousemove.fb-idle mouseenter.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle', function() {\r\n self.idleSecondsCounter = 0;\r\n\r\n if ( self.isIdle ) {\r\n self.showControls();\r\n }\r\n\r\n self.isIdle = false;\r\n });\r\n\r\n self.idleInterval = window.setInterval(function() {\r\n\r\n self.idleSecondsCounter++;\r\n\r\n if ( self.idleSecondsCounter >= self.group[ self.currIndex ].opts.idleTime ) {\r\n self.isIdle = true;\r\n self.idleSecondsCounter = 0;\r\n\r\n self.hideControls();\r\n }\r\n\r\n }, 1000);\r\n }\r\n\r\n },\r\n\r\n\r\n // Remove events added by the core\r\n // ===============================\r\n\r\n removeEvents : function () {\r\n var self = this;\r\n\r\n $W.off( 'orientationchange.fb resize.fb' );\r\n $D.off( 'focusin.fb keydown.fb .fb-idle' );\r\n\r\n this.$refs.container.off( '.fb-close .fb-prev .fb-next' );\r\n\r\n if ( self.idleInterval ) {\r\n window.clearInterval( self.idleInterval );\r\n\r\n self.idleInterval = null;\r\n }\r\n },\r\n\r\n\r\n // Change to previous gallery item\r\n // ===============================\r\n\r\n previous : function( duration ) {\r\n return this.jumpTo( this.currPos - 1, duration );\r\n },\r\n\r\n\r\n // Change to next gallery item\r\n // ===========================\r\n\r\n next : function( duration ) {\r\n return this.jumpTo( this.currPos + 1, duration );\r\n },\r\n\r\n\r\n // Switch to selected gallery item\r\n // ===============================\r\n\r\n jumpTo : function ( pos, duration, slide ) {\r\n var self = this,\r\n firstRun,\r\n loop,\r\n current,\r\n previous,\r\n canvasWidth,\r\n currentPos,\r\n transitionProps;\r\n\r\n var groupLen = self.group.length;\r\n\r\n if ( self.isSliding || self.isClosing || ( self.isAnimating && self.firstRun ) ) {\r\n return;\r\n }\r\n\r\n pos = parseInt( pos, 10 );\r\n loop = self.current ? self.current.opts.loop : self.opts.loop;\r\n\r\n if ( !loop && ( pos < 0 || pos >= groupLen ) ) {\r\n return false;\r\n }\r\n\r\n firstRun = self.firstRun = ( self.firstRun === null );\r\n\r\n if ( groupLen < 2 && !firstRun && !!self.isSliding ) {\r\n return;\r\n }\r\n\r\n previous = self.current;\r\n\r\n self.prevIndex = self.currIndex;\r\n self.prevPos = self.currPos;\r\n\r\n // Create slides\r\n current = self.createSlide( pos );\r\n\r\n if ( groupLen > 1 ) {\r\n if ( loop || current.index > 0 ) {\r\n self.createSlide( pos - 1 );\r\n }\r\n\r\n if ( loop || current.index < groupLen - 1 ) {\r\n self.createSlide( pos + 1 );\r\n }\r\n }\r\n\r\n self.current = current;\r\n self.currIndex = current.index;\r\n self.currPos = current.pos;\r\n\r\n self.trigger( 'beforeShow', firstRun );\r\n\r\n self.updateControls();\r\n\r\n currentPos = $.fancybox.getTranslate( current.$slide );\r\n\r\n current.isMoved = ( currentPos.left !== 0 || currentPos.top !== 0 ) && !current.$slide.hasClass( 'fancybox-animated' );\r\n current.forcedDuration = undefined;\r\n\r\n if ( $.isNumeric( duration ) ) {\r\n current.forcedDuration = duration;\r\n } else {\r\n duration = current.opts[ firstRun ? 'animationDuration' : 'transitionDuration' ];\r\n }\r\n\r\n duration = parseInt( duration, 10 );\r\n\r\n // Fresh start - reveal container, current slide and start loading content\r\n if ( firstRun ) {\r\n\r\n if ( current.opts.animationEffect && duration ) {\r\n self.$refs.container.css( 'transition-duration', duration + 'ms' );\r\n }\r\n\r\n self.$refs.container.removeClass( 'fancybox-is-hidden' );\r\n\r\n forceRedraw( self.$refs.container );\r\n\r\n self.$refs.container.addClass( 'fancybox-is-open' );\r\n\r\n // Make first slide visible (to display loading icon, if needed)\r\n current.$slide.addClass( 'fancybox-slide--current' );\r\n\r\n self.loadSlide( current );\r\n\r\n self.preload();\r\n\r\n return;\r\n }\r\n\r\n // Clean up\r\n $.each(self.slides, function( index, slide ) {\r\n $.fancybox.stop( slide.$slide );\r\n });\r\n\r\n // Make current that slide is visible even if content is still loading\r\n current.$slide.removeClass( 'fancybox-slide--next fancybox-slide--previous' ).addClass( 'fancybox-slide--current' );\r\n\r\n // If slides have been dragged, animate them to correct position\r\n if ( current.isMoved ) {\r\n canvasWidth = Math.round( current.$slide.width() );\r\n\r\n $.each(self.slides, function( index, slide ) {\r\n var pos = slide.pos - current.pos;\r\n\r\n $.fancybox.animate( slide.$slide, {\r\n top : 0,\r\n left : ( pos * canvasWidth ) + ( pos * slide.opts.gutter )\r\n }, duration, function() {\r\n\r\n slide.$slide.removeAttr('style').removeClass( 'fancybox-slide--next fancybox-slide--previous' );\r\n\r\n if ( slide.pos === self.currPos ) {\r\n current.isMoved = false;\r\n\r\n self.complete();\r\n }\r\n });\r\n });\r\n\r\n } else {\r\n self.$refs.stage.children().removeAttr( 'style' );\r\n }\r\n\r\n // Start transition that reveals current content\r\n // or wait when it will be loaded\r\n\r\n if ( current.isLoaded ) {\r\n self.revealContent( current );\r\n\r\n } else {\r\n self.loadSlide( current );\r\n }\r\n\r\n self.preload();\r\n\r\n if ( previous.pos === current.pos ) {\r\n return;\r\n }\r\n\r\n // Handle previous slide\r\n // =====================\r\n\r\n transitionProps = 'fancybox-slide--' + ( previous.pos > current.pos ? 'next' : 'previous' );\r\n\r\n previous.$slide.removeClass( 'fancybox-slide--complete fancybox-slide--current fancybox-slide--next fancybox-slide--previous' );\r\n\r\n previous.isComplete = false;\r\n\r\n if ( !duration || ( !current.isMoved && !current.opts.transitionEffect ) ) {\r\n return;\r\n }\r\n\r\n if ( current.isMoved ) {\r\n previous.$slide.addClass( transitionProps );\r\n\r\n } else {\r\n\r\n transitionProps = 'fancybox-animated ' + transitionProps + ' fancybox-fx-' + current.opts.transitionEffect;\r\n\r\n $.fancybox.animate( previous.$slide, transitionProps, duration, function() {\r\n previous.$slide.removeClass( transitionProps ).removeAttr( 'style' );\r\n });\r\n\r\n }\r\n\r\n },\r\n\r\n\r\n // Create new \"slide\" element\r\n // These are gallery items that are actually added to DOM\r\n // =======================================================\r\n\r\n createSlide : function( pos ) {\r\n\r\n var self = this;\r\n var $slide;\r\n var index;\r\n\r\n index = pos % self.group.length;\r\n index = index < 0 ? self.group.length + index : index;\r\n\r\n if ( !self.slides[ pos ] && self.group[ index ] ) {\r\n $slide = $('
').appendTo( self.$refs.stage );\r\n\r\n self.slides[ pos ] = $.extend( true, {}, self.group[ index ], {\r\n pos : pos,\r\n $slide : $slide,\r\n isLoaded : false,\r\n });\r\n\r\n self.updateSlide( self.slides[ pos ] );\r\n }\r\n\r\n return self.slides[ pos ];\r\n },\r\n\r\n\r\n // Scale image to the actual size of the image\r\n // ===========================================\r\n\r\n scaleToActual : function( x, y, duration ) {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var $what = current.$content;\r\n\r\n var imgPos, posX, posY, scaleX, scaleY;\r\n\r\n var canvasWidth = parseInt( current.$slide.width(), 10 );\r\n var canvasHeight = parseInt( current.$slide.height(), 10 );\r\n\r\n var newImgWidth = current.width;\r\n var newImgHeight = current.height;\r\n\r\n if ( !( current.type == 'image' && !current.hasError) || !$what || self.isAnimating) {\r\n return;\r\n }\r\n\r\n $.fancybox.stop( $what );\r\n\r\n self.isAnimating = true;\r\n\r\n x = x === undefined ? canvasWidth * 0.5 : x;\r\n y = y === undefined ? canvasHeight * 0.5 : y;\r\n\r\n imgPos = $.fancybox.getTranslate( $what );\r\n\r\n scaleX = newImgWidth / imgPos.width;\r\n scaleY = newImgHeight / imgPos.height;\r\n\r\n // Get center position for original image\r\n posX = ( canvasWidth * 0.5 - newImgWidth * 0.5 );\r\n posY = ( canvasHeight * 0.5 - newImgHeight * 0.5 );\r\n\r\n // Make sure image does not move away from edges\r\n if ( newImgWidth > canvasWidth ) {\r\n posX = imgPos.left * scaleX - ( ( x * scaleX ) - x );\r\n\r\n if ( posX > 0 ) {\r\n posX = 0;\r\n }\r\n\r\n if ( posX < canvasWidth - newImgWidth ) {\r\n posX = canvasWidth - newImgWidth;\r\n }\r\n }\r\n\r\n if ( newImgHeight > canvasHeight) {\r\n posY = imgPos.top * scaleY - ( ( y * scaleY ) - y );\r\n\r\n if ( posY > 0 ) {\r\n posY = 0;\r\n }\r\n\r\n if ( posY < canvasHeight - newImgHeight ) {\r\n posY = canvasHeight - newImgHeight;\r\n }\r\n }\r\n\r\n self.updateCursor( newImgWidth, newImgHeight );\r\n\r\n $.fancybox.animate( $what, {\r\n top : posY,\r\n left : posX,\r\n scaleX : scaleX,\r\n scaleY : scaleY\r\n }, duration || 330, function() {\r\n self.isAnimating = false;\r\n });\r\n\r\n // Stop slideshow\r\n if ( self.SlideShow && self.SlideShow.isActive ) {\r\n self.SlideShow.stop();\r\n }\r\n },\r\n\r\n\r\n // Scale image to fit inside parent element\r\n // ========================================\r\n\r\n scaleToFit : function( duration ) {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var $what = current.$content;\r\n var end;\r\n\r\n if ( !( current.type == 'image' && !current.hasError) || !$what || self.isAnimating ) {\r\n return;\r\n }\r\n\r\n $.fancybox.stop( $what );\r\n\r\n self.isAnimating = true;\r\n\r\n end = self.getFitPos( current );\r\n\r\n self.updateCursor( end.width, end.height );\r\n\r\n $.fancybox.animate( $what, {\r\n top : end.top,\r\n left : end.left,\r\n scaleX : end.width / $what.width(),\r\n scaleY : end.height / $what.height()\r\n }, duration || 330, function() {\r\n self.isAnimating = false;\r\n });\r\n\r\n },\r\n\r\n // Calculate image size to fit inside viewport\r\n // ===========================================\r\n\r\n getFitPos : function( slide ) {\r\n var self = this;\r\n var $what = slide.$content;\r\n\r\n var imgWidth = slide.width;\r\n var imgHeight = slide.height;\r\n\r\n var margin = slide.opts.margin;\r\n\r\n var canvasWidth, canvasHeight, minRatio, width, height;\r\n\r\n if ( !$what || !$what.length || ( !imgWidth && !imgHeight) ) {\r\n return false;\r\n }\r\n\r\n // Convert \"margin to CSS style: [ top, right, bottom, left ]\r\n if ( $.type( margin ) === \"number\" ) {\r\n margin = [ margin, margin ];\r\n }\r\n\r\n if ( margin.length == 2 ) {\r\n margin = [ margin[0], margin[1], margin[0], margin[1] ];\r\n }\r\n\r\n if ( $W.width() < 800 ) {\r\n margin = [ 0, 0, 0, 0 ];\r\n }\r\n\r\n // We can not use $slide width here, because it can have different diemensions while in transiton\r\n canvasWidth = parseInt( self.$refs.stage.width(), 10 ) - ( margin[ 1 ] + margin[ 3 ] );\r\n canvasHeight = parseInt( self.$refs.stage.height(), 10 ) - ( margin[ 0 ] + margin[ 2 ] );\r\n\r\n minRatio = Math.min(1, canvasWidth / imgWidth, canvasHeight / imgHeight );\r\n\r\n width = Math.floor( minRatio * imgWidth );\r\n height = Math.floor( minRatio * imgHeight );\r\n\r\n // Use floor rounding to make sure it really fits\r\n return {\r\n top : Math.floor( ( canvasHeight - height ) * 0.5 ) + margin[ 0 ],\r\n left : Math.floor( ( canvasWidth - width ) * 0.5 ) + margin[ 3 ],\r\n width : width,\r\n height : height\r\n };\r\n\r\n },\r\n\r\n\r\n // Update position and content of all slides\r\n // =========================================\r\n\r\n update : function() {\r\n\r\n var self = this;\r\n\r\n $.each( self.slides, function( key, slide ) {\r\n self.updateSlide( slide );\r\n });\r\n\r\n },\r\n\r\n\r\n // Update slide position and scale content to fit\r\n // ==============================================\r\n\r\n updateSlide : function( slide ) {\r\n\r\n var self = this;\r\n var $what = slide.$content;\r\n\r\n if ( $what && ( slide.width || slide.height ) ) {\r\n $.fancybox.stop( $what );\r\n\r\n $.fancybox.setTranslate( $what, self.getFitPos( slide ) );\r\n\r\n if ( slide.pos === self.currPos ) {\r\n self.updateCursor();\r\n }\r\n }\r\n\r\n slide.$slide.trigger( 'refresh' );\r\n\r\n self.trigger( 'onUpdate', slide );\r\n\r\n },\r\n\r\n // Update cursor style depending if content can be zoomed\r\n // ======================================================\r\n\r\n updateCursor : function( nextWidth, nextHeight ) {\r\n\r\n var self = this;\r\n var isScaledDown;\r\n\r\n var $container = self.$refs.container.removeClass('fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-drag fancybox-can-zoomOut');\r\n\r\n if ( !self.current || self.isClosing ) {\r\n return;\r\n }\r\n\r\n if ( self.isZoomable() ) {\r\n\r\n $container.addClass( 'fancybox-is-zoomable' );\r\n\r\n if ( nextWidth !== undefined && nextHeight !== undefined ) {\r\n isScaledDown = nextWidth < self.current.width && nextHeight < self.current.height;\r\n\r\n } else {\r\n isScaledDown = self.isScaledDown();\r\n }\r\n\r\n if ( isScaledDown ) {\r\n\r\n // If image is scaled down, then, obviously, it can be zoomed to full size\r\n $container.addClass('fancybox-can-zoomIn');\r\n\r\n } else {\r\n\r\n if ( self.current.opts.touch ) {\r\n\r\n // If image size ir largen than available available and touch module is not disable,\r\n // then user can do panning\r\n $container.addClass('fancybox-can-drag');\r\n\r\n } else {\r\n $container.addClass('fancybox-can-zoomOut');\r\n }\r\n\r\n }\r\n\r\n } else if ( self.current.opts.touch ) {\r\n $container.addClass('fancybox-can-drag');\r\n }\r\n\r\n },\r\n\r\n\r\n // Check if current slide is zoomable\r\n // ==================================\r\n\r\n isZoomable : function() {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var fitPos;\r\n\r\n if ( !current || self.isClosing ) {\r\n return;\r\n }\r\n\r\n // Assume that slide is zoomable if\r\n // - image is loaded successfuly\r\n // - click action is \"zoom\"\r\n // - actual size of the image is smaller than available area\r\n if ( current.type === 'image' && current.isLoaded && !current.hasError &&\r\n ( current.opts.clickContent === 'zoom' || ( $.isFunction( current.opts.clickContent ) && current.opts.clickContent( current ) === \"zoom\" ) )\r\n ) {\r\n\r\n fitPos = self.getFitPos( current );\r\n\r\n if ( current.width > fitPos.width || current.height > fitPos.height ) {\r\n return true;\r\n }\r\n\r\n }\r\n\r\n return false;\r\n\r\n },\r\n\r\n\r\n // Check if current image dimensions are smaller than actual\r\n // =========================================================\r\n\r\n isScaledDown : function() {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var $what = current.$content;\r\n\r\n var rez = false;\r\n\r\n if ( $what ) {\r\n rez = $.fancybox.getTranslate( $what );\r\n rez = rez.width < current.width || rez.height < current.height;\r\n }\r\n\r\n return rez;\r\n\r\n },\r\n\r\n\r\n // Check if image dimensions exceed parent element\r\n // ===============================================\r\n\r\n canPan : function() {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var $what = current.$content;\r\n\r\n var rez = false;\r\n\r\n if ( $what ) {\r\n rez = self.getFitPos( current );\r\n rez = Math.abs( $what.width() - rez.width ) > 1 || Math.abs( $what.height() - rez.height ) > 1;\r\n\r\n }\r\n\r\n return rez;\r\n\r\n },\r\n\r\n\r\n // Load content into the slide\r\n // ===========================\r\n\r\n loadSlide : function( slide ) {\r\n\r\n var self = this, type, $slide;\r\n var ajaxLoad;\r\n\r\n if ( slide.isLoading ) {\r\n return;\r\n }\r\n\r\n if ( slide.isLoaded ) {\r\n return;\r\n }\r\n\r\n slide.isLoading = true;\r\n\r\n self.trigger( 'beforeLoad', slide );\r\n\r\n type = slide.type;\r\n $slide = slide.$slide;\r\n\r\n $slide\r\n .off( 'refresh' )\r\n .trigger( 'onReset' )\r\n .addClass( 'fancybox-slide--' + ( type || 'unknown' ) )\r\n .addClass( slide.opts.slideClass );\r\n\r\n // Create content depending on the type\r\n\r\n switch ( type ) {\r\n\r\n case 'image':\r\n\r\n self.setImage( slide );\r\n\r\n break;\r\n\r\n case 'iframe':\r\n\r\n self.setIframe( slide );\r\n\r\n break;\r\n\r\n case 'html':\r\n\r\n self.setContent( slide, slide.src || slide.content );\r\n\r\n break;\r\n\r\n case 'inline':\r\n\r\n if ( $( slide.src ).length ) {\r\n self.setContent( slide, $( slide.src ) );\r\n\r\n } else {\r\n self.setError( slide );\r\n }\r\n\r\n break;\r\n\r\n case 'ajax':\r\n\r\n self.showLoading( slide );\r\n\r\n ajaxLoad = $.ajax( $.extend( {}, slide.opts.ajax.settings, {\r\n url : slide.src,\r\n success : function ( data, textStatus ) {\r\n\r\n if ( textStatus === 'success' ) {\r\n self.setContent( slide, data );\r\n }\r\n\r\n },\r\n error : function ( jqXHR, textStatus ) {\r\n\r\n if ( jqXHR && textStatus !== 'abort' ) {\r\n self.setError( slide );\r\n }\r\n\r\n }\r\n }));\r\n\r\n $slide.one( 'onReset', function () {\r\n ajaxLoad.abort();\r\n });\r\n\r\n break;\r\n\r\n default:\r\n\r\n self.setError( slide );\r\n\r\n break;\r\n\r\n }\r\n\r\n return true;\r\n\r\n },\r\n\r\n\r\n // Use thumbnail image, if possible\r\n // ================================\r\n\r\n setImage : function( slide ) {\r\n\r\n var self = this;\r\n var srcset = slide.opts.image.srcset;\r\n\r\n var found, temp, pxRatio, windowWidth;\r\n\r\n // If we have \"srcset\", then we need to find matching \"src\" value.\r\n // This is necessary, because when you set an src attribute, the browser will preload the image\r\n // before any javascript or even CSS is applied.\r\n if ( srcset ) {\r\n pxRatio = window.devicePixelRatio || 1;\r\n windowWidth = window.innerWidth * pxRatio;\r\n\r\n temp = srcset.split(',').map(function ( el ) {\r\n \t\tvar ret = {};\r\n\r\n \t\tel.trim().split(/\\s+/).forEach(function ( el, i ) {\r\n var value = parseInt( el.substring(0, el.length - 1), 10 );\r\n\r\n \t\t\tif ( i === 0 ) {\r\n \t\t\t\treturn ( ret.url = el );\r\n \t\t\t}\r\n\r\n if ( value ) {\r\n ret.value = value;\r\n ret.postfix = el[ el.length - 1 ];\r\n }\r\n\r\n \t\t});\r\n\r\n \t\treturn ret;\r\n \t});\r\n\r\n // Sort by value\r\n temp.sort(function (a, b) {\r\n return a.value - b.value;\r\n });\r\n\r\n // Ok, now we have an array of all srcset values\r\n for ( var j = 0; j < temp.length; j++ ) {\r\n var el = temp[ j ];\r\n\r\n if ( ( el.postfix === 'w' && el.value >= windowWidth ) || ( el.postfix === 'x' && el.value >= pxRatio ) ) {\r\n found = el;\r\n break;\r\n }\r\n }\r\n\r\n // If not found, take the last one\r\n if ( !found && temp.length ) {\r\n found = temp[ temp.length - 1 ];\r\n }\r\n\r\n if ( found ) {\r\n slide.src = found.url;\r\n\r\n // If we have default width/height values, we can calculate height for matching source\r\n if ( slide.width && slide.height && found.postfix == 'w' ) {\r\n slide.height = ( slide.width / slide.height ) * found.value;\r\n slide.width = found.value;\r\n }\r\n }\r\n }\r\n\r\n // This will be wrapper containing both ghost and actual image\r\n slide.$content = $('
')\r\n .addClass( 'fancybox-is-hidden' )\r\n .appendTo( slide.$slide );\r\n\r\n\r\n // If we have a thumbnail, we can display it while actual image is loading\r\n // Users will not stare at black screen and actual image will appear gradually\r\n if ( slide.opts.preload !== false && slide.opts.width && slide.opts.height && ( slide.opts.thumb || slide.opts.$thumb ) ) {\r\n\r\n slide.width = slide.opts.width;\r\n slide.height = slide.opts.height;\r\n\r\n slide.$ghost = $('')\r\n .one('error', function() {\r\n\r\n $(this).remove();\r\n\r\n slide.$ghost = null;\r\n\r\n self.setBigImage( slide );\r\n\r\n })\r\n .one('load', function() {\r\n\r\n self.afterLoad( slide );\r\n\r\n self.setBigImage( slide );\r\n\r\n })\r\n .addClass( 'fancybox-image' )\r\n .appendTo( slide.$content )\r\n .attr( 'src', slide.opts.thumb || slide.opts.$thumb.attr( 'src' ) );\r\n\r\n } else {\r\n\r\n self.setBigImage( slide );\r\n\r\n }\r\n\r\n },\r\n\r\n\r\n // Create full-size image\r\n // ======================\r\n\r\n setBigImage : function ( slide ) {\r\n var self = this;\r\n var $img = $('');\r\n\r\n slide.$image = $img\r\n .one('error', function() {\r\n\r\n self.setError( slide );\r\n\r\n })\r\n .one('load', function() {\r\n\r\n // Clear timeout that checks if loading icon needs to be displayed\r\n clearTimeout( slide.timouts );\r\n\r\n slide.timouts = null;\r\n\r\n if ( self.isClosing ) {\r\n return;\r\n }\r\n\r\n slide.width = this.naturalWidth;\r\n slide.height = this.naturalHeight;\r\n\r\n if ( slide.opts.image.srcset ) {\r\n $img.attr( 'sizes', '100vw' ).attr( 'srcset', slide.opts.image.srcset );\r\n }\r\n\r\n self.hideLoading( slide );\r\n\r\n if ( slide.$ghost ) {\r\n\r\n slide.timouts = setTimeout(function() {\r\n slide.timouts = null;\r\n\r\n slide.$ghost.hide();\r\n\r\n }, Math.min( 300, Math.max( 1000, slide.height / 1600 ) ) );\r\n\r\n } else {\r\n self.afterLoad( slide );\r\n }\r\n\r\n })\r\n .addClass( 'fancybox-image' )\r\n .attr('src', slide.src)\r\n .appendTo( slide.$content );\r\n\r\n if ( $img[0].complete ) {\r\n $img.trigger( 'load' );\r\n\r\n } else if( $img[0].error ) {\r\n $img.trigger( 'error' );\r\n\r\n } else {\r\n\r\n slide.timouts = setTimeout(function() {\r\n if ( !$img[0].complete && !slide.hasError ) {\r\n self.showLoading( slide );\r\n }\r\n\r\n }, 100);\r\n\r\n }\r\n\r\n },\r\n\r\n\r\n // Create iframe wrapper, iframe and bindings\r\n // ==========================================\r\n\r\n setIframe : function( slide ) {\r\n var self\t= this,\r\n opts = slide.opts.iframe,\r\n $slide\t= slide.$slide,\r\n $iframe;\r\n\r\n slide.$content = $('
')\r\n .css( opts.css )\r\n .appendTo( $slide );\r\n\r\n $iframe = $( opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime()) )\r\n .attr( opts.attr )\r\n .appendTo( slide.$content );\r\n\r\n if ( opts.preload ) {\r\n\r\n self.showLoading( slide );\r\n\r\n // Unfortunately, it is not always possible to determine if iframe is successfully loaded\r\n // (due to browser security policy)\r\n\r\n $iframe.on('load.fb error.fb', function(e) {\r\n this.isReady = 1;\r\n\r\n slide.$slide.trigger( 'refresh' );\r\n\r\n self.afterLoad( slide );\r\n });\r\n\r\n // Recalculate iframe content size\r\n // ===============================\r\n\r\n $slide.on('refresh.fb', function() {\r\n var $wrap = slide.$content,\r\n $contents,\r\n $body,\r\n scrollWidth,\r\n frameWidth,\r\n frameHeight;\r\n\r\n if ( $iframe[0].isReady !== 1 ) {\r\n return;\r\n }\r\n\r\n // Check if content is accessible,\r\n // it will fail if frame is not with the same origin\r\n\r\n try {\r\n $contents = $iframe.contents();\r\n $body = $contents.find('body');\r\n\r\n } catch (ignore) {}\r\n\r\n // Calculate dimensions for the wrapper\r\n if ( $body && $body.length && !( opts.css.width !== undefined && opts.css.height !== undefined ) ) {\r\n\r\n scrollWidth = $iframe[0].contentWindow.document.documentElement.scrollWidth;\r\n\r\n frameWidth\t= Math.ceil( $body.outerWidth(true) + ( $wrap.width() - scrollWidth ) );\r\n frameHeight\t= Math.ceil( $body.outerHeight(true) );\r\n\r\n // Resize wrapper to fit iframe content\r\n $wrap.css({\r\n 'width' : opts.css.width === undefined ? frameWidth + ( $wrap.outerWidth() - $wrap.innerWidth() ) : opts.css.width,\r\n 'height' : opts.css.height === undefined ? frameHeight + ( $wrap.outerHeight() - $wrap.innerHeight() ) : opts.css.height\r\n });\r\n\r\n }\r\n\r\n $wrap.removeClass( 'fancybox-is-hidden' );\r\n\r\n });\r\n\r\n } else {\r\n\r\n this.afterLoad( slide );\r\n\r\n }\r\n\r\n $iframe.attr( 'src', slide.src );\r\n\r\n if ( slide.opts.smallBtn === true ) {\r\n slide.$content.prepend( self.translate( slide, slide.opts.btnTpl.smallBtn ) );\r\n }\r\n\r\n // Remove iframe if closing or changing gallery item\r\n $slide.one( 'onReset', function () {\r\n\r\n // This helps IE not to throw errors when closing\r\n try {\r\n\r\n $( this ).find( 'iframe' ).hide().attr( 'src', '//about:blank' );\r\n\r\n } catch ( ignore ) {}\r\n\r\n $( this ).empty();\r\n\r\n slide.isLoaded = false;\r\n\r\n });\r\n\r\n },\r\n\r\n\r\n // Wrap and append content to the slide\r\n // ======================================\r\n\r\n setContent : function ( slide, content ) {\r\n\r\n var self = this;\r\n\r\n if ( self.isClosing ) {\r\n return;\r\n }\r\n\r\n self.hideLoading( slide );\r\n\r\n slide.$slide.empty();\r\n\r\n if ( isQuery( content ) && content.parent().length ) {\r\n\r\n // If content is a jQuery object, then it will be moved to the slide.\r\n // The placeholder is created so we will know where to put it back.\r\n // If user is navigating gallery fast, then the content might be already inside fancyBox\r\n // =====================================================================================\r\n\r\n // Make sure content is not already moved to fancyBox\r\n content.parent( '.fancybox-slide--inline' ).trigger( 'onReset' );\r\n\r\n // Create temporary element marking original place of the content\r\n slide.$placeholder = $( '
' ).hide().insertAfter( content );\r\n\r\n // Make sure content is visible\r\n content.css('display', 'inline-block');\r\n\r\n } else if ( !slide.hasError ) {\r\n\r\n // If content is just a plain text, try to convert it to html\r\n if ( $.type( content ) === 'string' ) {\r\n content = $('
').append( $.trim( content ) ).contents();\r\n\r\n // If we have text node, then add wrapping element to make vertical alignment work\r\n if ( content[0].nodeType === 3 ) {\r\n content = $('
').html( content );\r\n }\r\n }\r\n\r\n // If \"filter\" option is provided, then filter content\r\n if ( slide.opts.filter ) {\r\n content = $('
').html( content ).find( slide.opts.filter );\r\n }\r\n\r\n }\r\n\r\n slide.$slide.one('onReset', function () {\r\n\r\n // Put content back\r\n if ( slide.$placeholder ) {\r\n slide.$placeholder.after( content.hide() ).remove();\r\n\r\n slide.$placeholder = null;\r\n }\r\n\r\n // Remove custom close button\r\n if ( slide.$smallBtn ) {\r\n slide.$smallBtn.remove();\r\n\r\n slide.$smallBtn = null;\r\n }\r\n\r\n // Remove content and mark slide as not loaded\r\n if ( !slide.hasError ) {\r\n $(this).empty();\r\n\r\n slide.isLoaded = false;\r\n }\r\n\r\n });\r\n\r\n slide.$content = $( content ).appendTo( slide.$slide );\r\n\r\n if ( slide.opts.smallBtn && !slide.$smallBtn ) {\r\n slide.$smallBtn = $( self.translate( slide, slide.opts.btnTpl.smallBtn ) ).appendTo( slide.$content );\r\n }\r\n\r\n this.afterLoad( slide );\r\n },\r\n\r\n // Display error message\r\n // =====================\r\n\r\n setError : function ( slide ) {\r\n\r\n slide.hasError = true;\r\n\r\n slide.$slide.removeClass( 'fancybox-slide--' + slide.type );\r\n\r\n this.setContent( slide, this.translate( slide, slide.opts.errorTpl ) );\r\n\r\n },\r\n\r\n\r\n // Show loading icon inside the slide\r\n // ==================================\r\n\r\n showLoading : function( slide ) {\r\n\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if ( slide && !slide.$spinner ) {\r\n slide.$spinner = $( self.opts.spinnerTpl ).appendTo( slide.$slide );\r\n }\r\n\r\n },\r\n\r\n // Remove loading icon from the slide\r\n // ==================================\r\n\r\n hideLoading : function( slide ) {\r\n\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if ( slide && slide.$spinner ) {\r\n slide.$spinner.remove();\r\n\r\n delete slide.$spinner;\r\n }\r\n\r\n },\r\n\r\n\r\n // Adjustments after slide content has been loaded\r\n // ===============================================\r\n\r\n afterLoad : function( slide ) {\r\n\r\n var self = this;\r\n\r\n if ( self.isClosing ) {\r\n return;\r\n }\r\n\r\n slide.isLoading = false;\r\n slide.isLoaded = true;\r\n\r\n self.trigger( 'afterLoad', slide );\r\n\r\n self.hideLoading( slide );\r\n\r\n if ( slide.opts.protect && slide.$content && !slide.hasError ) {\r\n\r\n // Disable right click\r\n slide.$content.on( 'contextmenu.fb', function( e ) {\r\n if ( e.button == 2 ) {\r\n e.preventDefault();\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // Add fake element on top of the image\r\n // This makes a bit harder for user to select image\r\n if ( slide.type === 'image' ) {\r\n $( '
' ).appendTo( slide.$content );\r\n }\r\n\r\n }\r\n\r\n self.revealContent( slide );\r\n\r\n },\r\n\r\n\r\n // Make content visible\r\n // This method is called right after content has been loaded or\r\n // user navigates gallery and transition should start\r\n // ============================================================\r\n\r\n revealContent : function( slide ) {\r\n\r\n var self = this;\r\n var $slide = slide.$slide;\r\n\r\n var effect, effectClassName, duration, opacity, end, start = false;\r\n\r\n effect = slide.opts[ self.firstRun ? 'animationEffect' : 'transitionEffect' ];\r\n duration = slide.opts[ self.firstRun ? 'animationDuration' : 'transitionDuration' ];\r\n\r\n duration = parseInt( slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10 );\r\n\r\n if ( slide.isMoved || slide.pos !== self.currPos || !duration ) {\r\n effect = false;\r\n }\r\n\r\n // Check if can zoom\r\n if ( effect === 'zoom' && !( slide.pos === self.currPos && duration && slide.type === 'image' && !slide.hasError && ( start = self.getThumbPos( slide ) ) ) ) {\r\n effect = 'fade';\r\n }\r\n\r\n\r\n // Zoom animation\r\n // ==============\r\n\r\n if ( effect === 'zoom' ) {\r\n end = self.getFitPos( slide );\r\n\r\n end.scaleX = Math.round( (end.width / start.width) * 100 ) / 100;\r\n end.scaleY = Math.round( (end.height / start.height) * 100 ) / 100;\r\n\r\n delete end.width;\r\n delete end.height;\r\n\r\n // Check if we need to animate opacity\r\n opacity = slide.opts.zoomOpacity;\r\n\r\n if ( opacity == 'auto' ) {\r\n opacity = Math.abs( slide.width / slide.height - start.width / start.height ) > 0.1;\r\n }\r\n\r\n if ( opacity ) {\r\n start.opacity = 0.1;\r\n end.opacity = 1;\r\n }\r\n\r\n // Draw image at start position\r\n $.fancybox.setTranslate( slide.$content.removeClass( 'fancybox-is-hidden' ), start );\r\n\r\n forceRedraw( slide.$content );\r\n\r\n // Start animation\r\n $.fancybox.animate( slide.$content, end, duration, function() {\r\n self.complete();\r\n });\r\n\r\n return;\r\n }\r\n\r\n\r\n self.updateSlide( slide );\r\n\r\n\r\n // Simply show content\r\n // ===================\r\n\r\n if ( !effect ) {\r\n forceRedraw( $slide );\r\n\r\n slide.$content.removeClass( 'fancybox-is-hidden' );\r\n\r\n if ( slide.pos === self.currPos ) {\r\n self.complete();\r\n }\r\n\r\n return;\r\n }\r\n\r\n $.fancybox.stop( $slide );\r\n\r\n effectClassName = 'fancybox-animated fancybox-slide--' + ( slide.pos > self.prevPos ? 'next' : 'previous' ) + ' fancybox-fx-' + effect;\r\n\r\n $slide.removeAttr( 'style' ).removeClass( 'fancybox-slide--current fancybox-slide--next fancybox-slide--previous' ).addClass( effectClassName );\r\n\r\n slide.$content.removeClass( 'fancybox-is-hidden' );\r\n\r\n //Force reflow for CSS3 transitions\r\n forceRedraw( $slide );\r\n\r\n $.fancybox.animate( $slide, 'fancybox-slide--current', duration, function(e) {\r\n $slide.removeClass( effectClassName ).removeAttr( 'style' );\r\n\r\n if ( slide.pos === self.currPos ) {\r\n self.complete();\r\n }\r\n\r\n }, true);\r\n\r\n },\r\n\r\n\r\n // Check if we can and have to zoom from thumbnail\r\n //================================================\r\n\r\n getThumbPos : function( slide ) {\r\n\r\n var self = this;\r\n var rez = false;\r\n\r\n // Check if element is inside the viewport by at least 1 pixel\r\n var isElementVisible = function( $el ) {\r\n var element = $el[0];\r\n\r\n var elementRect = element.getBoundingClientRect();\r\n var parentRects = [];\r\n\r\n var visibleInAllParents;\r\n\r\n while ( element.parentElement !== null ) {\r\n if ( $(element.parentElement).css('overflow') === 'hidden' || $(element.parentElement).css('overflow') === 'auto' ) {\r\n parentRects.push(element.parentElement.getBoundingClientRect());\r\n }\r\n\r\n element = element.parentElement;\r\n }\r\n\r\n visibleInAllParents = parentRects.every(function(parentRect){\r\n var visiblePixelX = Math.min(elementRect.right, parentRect.right) - Math.max(elementRect.left, parentRect.left);\r\n var visiblePixelY = Math.min(elementRect.bottom, parentRect.bottom) - Math.max(elementRect.top, parentRect.top);\r\n\r\n return visiblePixelX > 0 && visiblePixelY > 0;\r\n });\r\n\r\n return visibleInAllParents &&\r\n elementRect.bottom > 0 && elementRect.right > 0 &&\r\n elementRect.left < $(window).width() && elementRect.top < $(window).height();\r\n };\r\n\r\n var $thumb = slide.opts.$thumb;\r\n var thumbPos = $thumb ? $thumb.offset() : 0;\r\n var slidePos;\r\n\r\n if ( thumbPos && $thumb[0].ownerDocument === document && isElementVisible( $thumb ) ) {\r\n slidePos = self.$refs.stage.offset();\r\n\r\n rez = {\r\n top : thumbPos.top - slidePos.top + parseFloat( $thumb.css( \"border-top-width\" ) || 0 ),\r\n left : thumbPos.left - slidePos.left + parseFloat( $thumb.css( \"border-left-width\" ) || 0 ),\r\n width : $thumb.width(),\r\n height : $thumb.height(),\r\n scaleX : 1,\r\n scaleY : 1\r\n };\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n\r\n // Final adjustments after current gallery item is moved to position\r\n // and it`s content is loaded\r\n // ==================================================================\r\n\r\n complete : function() {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var slides = {};\r\n\r\n if ( current.isMoved || !current.isLoaded || current.isComplete ) {\r\n return;\r\n }\r\n\r\n current.isComplete = true;\r\n\r\n current.$slide.siblings().trigger( 'onReset' );\r\n\r\n // Trigger any CSS3 transiton inside the slide\r\n forceRedraw( current.$slide );\r\n\r\n current.$slide.addClass( 'fancybox-slide--complete' );\r\n\r\n // Remove unnecessary slides\r\n $.each( self.slides, function( key, slide ) {\r\n if ( slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1 ) {\r\n slides[ slide.pos ] = slide;\r\n\r\n } else if ( slide ) {\r\n\r\n $.fancybox.stop( slide.$slide );\r\n\r\n slide.$slide.unbind().remove();\r\n }\r\n });\r\n\r\n self.slides = slides;\r\n\r\n self.updateCursor();\r\n\r\n self.trigger( 'afterShow' );\r\n\r\n // Try to focus on the first focusable element\r\n if ( $( document.activeElement ).is( '[disabled]' ) || ( current.opts.autoFocus && !( current.type == 'image' || current.type === 'iframe' ) ) ) {\r\n self.focus();\r\n }\r\n\r\n },\r\n\r\n\r\n // Preload next and previous slides\r\n // ================================\r\n\r\n preload : function() {\r\n var self = this;\r\n var next, prev;\r\n\r\n if ( self.group.length < 2 ) {\r\n return;\r\n }\r\n\r\n next = self.slides[ self.currPos + 1 ];\r\n prev = self.slides[ self.currPos - 1 ];\r\n\r\n if ( next && next.type === 'image' ) {\r\n self.loadSlide( next );\r\n }\r\n\r\n if ( prev && prev.type === 'image' ) {\r\n self.loadSlide( prev );\r\n }\r\n\r\n },\r\n\r\n\r\n // Try to find and focus on the first focusable element\r\n // ====================================================\r\n\r\n focus : function() {\r\n var current = this.current;\r\n var $el;\r\n\r\n if ( this.isClosing ) {\r\n return;\r\n }\r\n\r\n // Skip for images and iframes\r\n $el = current && current.isComplete ? current.$slide.find('button,:input,[tabindex],a').filter(':not([disabled]):visible:first') : null;\r\n $el = $el && $el.length ? $el : this.$refs.container;\r\n\r\n $el.focus();\r\n },\r\n\r\n\r\n // Activates current instance - brings container to the front and enables keyboard,\r\n // notifies other instances about deactivating\r\n // =================================================================================\r\n\r\n activate : function () {\r\n var self = this;\r\n\r\n // Deactivate all instances\r\n $( '.fancybox-container' ).each(function () {\r\n var instance = $(this).data( 'FancyBox' );\r\n\r\n // Skip self and closing instances\r\n if (instance && instance.uid !== self.uid && !instance.isClosing) {\r\n instance.trigger( 'onDeactivate' );\r\n }\r\n\r\n });\r\n\r\n if ( self.current ) {\r\n if ( self.$refs.container.index() > 0 ) {\r\n self.$refs.container.prependTo( document.body );\r\n }\r\n\r\n self.updateControls();\r\n }\r\n\r\n self.trigger( 'onActivate' );\r\n\r\n self.addEvents();\r\n\r\n },\r\n\r\n\r\n // Start closing procedure\r\n // This will start \"zoom-out\" animation if needed and clean everything up afterwards\r\n // =================================================================================\r\n\r\n close : function( e, d ) {\r\n\r\n var self = this;\r\n var current = self.current;\r\n\r\n var effect, duration;\r\n var $what, opacity, start, end;\r\n\r\n var done = function() {\r\n self.cleanUp( e );\r\n };\r\n\r\n if ( self.isClosing ) {\r\n return false;\r\n }\r\n\r\n self.isClosing = true;\r\n\r\n // If beforeClose callback prevents closing, make sure content is centered\r\n if ( self.trigger( 'beforeClose', e ) === false ) {\r\n self.isClosing = false;\r\n\r\n requestAFrame(function() {\r\n self.update();\r\n });\r\n\r\n return false;\r\n }\r\n\r\n // Remove all events\r\n // If there are multiple instances, they will be set again by \"activate\" method\r\n self.removeEvents();\r\n\r\n if ( current.timouts ) {\r\n clearTimeout( current.timouts );\r\n }\r\n\r\n $what = current.$content;\r\n effect = current.opts.animationEffect;\r\n duration = $.isNumeric( d ) ? d : ( effect ? current.opts.animationDuration : 0 );\r\n\r\n // Remove other slides\r\n current.$slide.off( transitionEnd ).removeClass( 'fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated' );\r\n\r\n current.$slide.siblings().trigger( 'onReset' ).remove();\r\n\r\n // Trigger animations\r\n if ( duration ) {\r\n self.$refs.container.removeClass( 'fancybox-is-open' ).addClass( 'fancybox-is-closing' );\r\n }\r\n\r\n // Clean up\r\n self.hideLoading( current );\r\n\r\n self.hideControls();\r\n\r\n self.updateCursor();\r\n\r\n // Check if possible to zoom-out\r\n if ( effect === 'zoom' && !( e !== true && $what && duration && current.type === 'image' && !current.hasError && ( end = self.getThumbPos( current ) ) ) ) {\r\n effect = 'fade';\r\n }\r\n\r\n if ( effect === 'zoom' ) {\r\n $.fancybox.stop( $what );\r\n\r\n start = $.fancybox.getTranslate( $what );\r\n\r\n start.width = start.width * start.scaleX;\r\n start.height = start.height * start.scaleY;\r\n\r\n // Check if we need to animate opacity\r\n opacity = current.opts.zoomOpacity;\r\n\r\n if ( opacity == 'auto' ) {\r\n opacity = Math.abs( current.width / current.height - end.width / end.height ) > 0.1;\r\n }\r\n\r\n if ( opacity ) {\r\n end.opacity = 0;\r\n }\r\n\r\n start.scaleX = start.width / end.width;\r\n start.scaleY = start.height / end.height;\r\n\r\n start.width = end.width;\r\n start.height = end.height;\r\n\r\n $.fancybox.setTranslate( current.$content, start );\r\n\r\n $.fancybox.animate( current.$content, end, duration, done );\r\n\r\n return true;\r\n }\r\n\r\n if ( effect && duration ) {\r\n\r\n // If skip animation\r\n if ( e === true ) {\r\n setTimeout( done, duration );\r\n\r\n } else {\r\n $.fancybox.animate( current.$slide.removeClass( 'fancybox-slide--current' ), 'fancybox-animated fancybox-slide--previous fancybox-fx-' + effect, duration, done );\r\n }\r\n\r\n } else {\r\n done();\r\n }\r\n\r\n return true;\r\n },\r\n\r\n\r\n // Final adjustments after removing the instance\r\n // =============================================\r\n\r\n cleanUp : function( e ) {\r\n var self = this,\r\n instance;\r\n\r\n self.current.$slide.trigger( 'onReset' );\r\n\r\n self.$refs.container.empty().remove();\r\n\r\n self.trigger( 'afterClose', e );\r\n\r\n // Place back focus\r\n if ( self.$lastFocus && !!!self.current.focusBack ) {\r\n self.$lastFocus.focus();\r\n }\r\n\r\n self.current = null;\r\n\r\n // Check if there are other instances\r\n instance = $.fancybox.getInstance();\r\n\r\n if ( instance ) {\r\n instance.activate();\r\n\r\n } else {\r\n\r\n $W.scrollTop( self.scrollTop ).scrollLeft( self.scrollLeft );\r\n\r\n $( 'html' ).removeClass( 'fancybox-enabled' );\r\n\r\n $( '#fancybox-style-noscroll' ).remove();\r\n }\r\n\r\n },\r\n\r\n\r\n // Call callback and trigger an event\r\n // ==================================\r\n\r\n trigger : function( name, slide ) {\r\n var args = Array.prototype.slice.call(arguments, 1),\r\n self = this,\r\n obj = slide && slide.opts ? slide : self.current,\r\n rez;\r\n\r\n if ( obj ) {\r\n args.unshift( obj );\r\n\r\n } else {\r\n obj = self;\r\n }\r\n\r\n args.unshift( self );\r\n\r\n if ( $.isFunction( obj.opts[ name ] ) ) {\r\n rez = obj.opts[ name ].apply( obj, args );\r\n }\r\n\r\n if ( rez === false ) {\r\n return rez;\r\n }\r\n\r\n if ( name === 'afterClose' ) {\r\n $D.trigger( name + '.fb', args );\r\n\r\n } else {\r\n self.$refs.container.trigger( name + '.fb', args );\r\n }\r\n\r\n },\r\n\r\n\r\n // Update infobar values, navigation button states and reveal caption\r\n // ==================================================================\r\n\r\n updateControls : function ( force ) {\r\n\r\n var self = this;\r\n\r\n var current = self.current;\r\n var index = current.index;\r\n var opts = current.opts;\r\n var caption = opts.caption;\r\n var $caption = self.$refs.caption;\r\n\r\n // Recalculate content dimensions\r\n current.$slide.trigger( 'refresh' );\r\n\r\n self.$caption = caption && caption.length ? $caption.html( caption ) : null;\r\n\r\n if ( !self.isHiddenControls ) {\r\n self.showControls();\r\n }\r\n\r\n // Update info and navigation elements\r\n $('[data-fancybox-count]').html( self.group.length );\r\n $('[data-fancybox-index]').html( index + 1 );\r\n\r\n $('[data-fancybox-prev]').prop('disabled', ( !opts.loop && index <= 0 ) );\r\n $('[data-fancybox-next]').prop('disabled', ( !opts.loop && index >= self.group.length - 1 ) );\r\n\r\n },\r\n\r\n // Hide toolbar and caption\r\n // ========================\r\n\r\n hideControls : function () {\r\n\r\n this.isHiddenControls = true;\r\n\r\n this.$refs.container.removeClass('fancybox-show-infobar fancybox-show-toolbar fancybox-show-caption fancybox-show-nav');\r\n\r\n },\r\n\r\n showControls : function() {\r\n\r\n var self = this;\r\n var opts = self.current ? self.current.opts : self.opts;\r\n var $container = self.$refs.container;\r\n\r\n self.isHiddenControls = false;\r\n self.idleSecondsCounter = 0;\r\n\r\n $container\r\n .toggleClass('fancybox-show-toolbar', !!( opts.toolbar && opts.buttons ) )\r\n .toggleClass('fancybox-show-infobar', !!( opts.infobar && self.group.length > 1 ) )\r\n .toggleClass('fancybox-show-nav', !!( opts.arrows && self.group.length > 1 ) )\r\n .toggleClass('fancybox-is-modal', !!opts.modal );\r\n\r\n if ( self.$caption ) {\r\n $container.addClass( 'fancybox-show-caption ');\r\n\r\n } else {\r\n $container.removeClass( 'fancybox-show-caption' );\r\n }\r\n\r\n },\r\n\r\n\r\n // Toggle toolbar and caption\r\n // ==========================\r\n\r\n toggleControls : function() {\r\n\r\n if ( this.isHiddenControls ) {\r\n this.showControls();\r\n\r\n } else {\r\n this.hideControls();\r\n }\r\n\r\n },\r\n\r\n\r\n });\r\n\r\n\r\n $.fancybox = {\r\n\r\n version : \"3.1.20\",\r\n defaults : defaults,\r\n\r\n\r\n // Get current instance and execute a command.\r\n //\r\n // Examples of usage:\r\n //\r\n // $instance = $.fancybox.getInstance();\r\n // $.fancybox.getInstance().jumpTo( 1 );\r\n // $.fancybox.getInstance( 'jumpTo', 1 );\r\n // $.fancybox.getInstance( function() {\r\n // console.info( this.currIndex );\r\n // });\r\n // ======================================================\r\n\r\n getInstance : function ( command ) {\r\n var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):first').data( 'FancyBox' );\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n\r\n if ( instance instanceof FancyBox ) {\r\n\r\n if ( $.type( command ) === 'string' ) {\r\n instance[ command ].apply( instance, args );\r\n\r\n } else if ( $.type( command ) === 'function' ) {\r\n command.apply( instance, args );\r\n\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n return false;\r\n\r\n },\r\n\r\n\r\n // Create new instance\r\n // ===================\r\n\r\n open : function ( items, opts, index ) {\r\n return new FancyBox( items, opts, index );\r\n },\r\n\r\n\r\n // Close current or all instances\r\n // ==============================\r\n\r\n close : function ( all ) {\r\n var instance = this.getInstance();\r\n\r\n if ( instance ) {\r\n instance.close();\r\n\r\n // Try to find and close next instance\r\n\r\n if ( all === true ) {\r\n this.close();\r\n }\r\n }\r\n\r\n },\r\n\r\n // Close instances and unbind all events\r\n // ==============================\r\n\r\n destroy : function() {\r\n\r\n this.close( true );\r\n\r\n $D.off( 'click.fb-start' );\r\n\r\n },\r\n\r\n\r\n // Try to detect mobile devices\r\n // ============================\r\n\r\n isMobile : document.createTouch !== undefined && /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent),\r\n\r\n\r\n // Detect if 'translate3d' support is available\r\n // ============================================\r\n\r\n use3d : (function() {\r\n var div = document.createElement('div');\r\n\r\n return window.getComputedStyle && window.getComputedStyle( div ).getPropertyValue('transform') && !(document.documentMode && document.documentMode < 11);\r\n }()),\r\n\r\n\r\n // Helper function to get current visual state of an element\r\n // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\r\n // =====================================================================\r\n\r\n getTranslate : function( $el ) {\r\n var matrix;\r\n\r\n if ( !$el || !$el.length ) {\r\n return false;\r\n }\r\n\r\n matrix = $el.eq( 0 ).css('transform');\r\n\r\n if ( matrix && matrix.indexOf( 'matrix' ) !== -1 ) {\r\n matrix = matrix.split('(')[1];\r\n matrix = matrix.split(')')[0];\r\n matrix = matrix.split(',');\r\n } else {\r\n matrix = [];\r\n }\r\n\r\n if ( matrix.length ) {\r\n\r\n // If IE\r\n if ( matrix.length > 10 ) {\r\n matrix = [ matrix[13], matrix[12], matrix[0], matrix[5] ];\r\n\r\n } else {\r\n matrix = [ matrix[5], matrix[4], matrix[0], matrix[3]];\r\n }\r\n\r\n matrix = matrix.map(parseFloat);\r\n\r\n } else {\r\n matrix = [ 0, 0, 1, 1 ];\r\n\r\n var transRegex = /\\.*translate\\((.*)px,(.*)px\\)/i;\r\n var transRez = transRegex.exec( $el.eq( 0 ).attr('style') );\r\n\r\n if ( transRez ) {\r\n matrix[ 0 ] = parseFloat( transRez[2] );\r\n matrix[ 1 ] = parseFloat( transRez[1] );\r\n }\r\n }\r\n\r\n return {\r\n top : matrix[ 0 ],\r\n left : matrix[ 1 ],\r\n scaleX : matrix[ 2 ],\r\n scaleY : matrix[ 3 ],\r\n opacity : parseFloat( $el.css('opacity') ),\r\n width : $el.width(),\r\n height : $el.height()\r\n };\r\n\r\n },\r\n\r\n\r\n // Shortcut for setting \"translate3d\" properties for element\r\n // Can set be used to set opacity, too\r\n // ========================================================\r\n\r\n setTranslate : function( $el, props ) {\r\n var str = '';\r\n var css = {};\r\n\r\n if ( !$el || !props ) {\r\n return;\r\n }\r\n\r\n if ( props.left !== undefined || props.top !== undefined ) {\r\n str = ( props.left === undefined ? $el.position().left : props.left ) + 'px, ' + ( props.top === undefined ? $el.position().top : props.top ) + 'px';\r\n\r\n if ( this.use3d ) {\r\n str = 'translate3d(' + str + ', 0px)';\r\n\r\n } else {\r\n str = 'translate(' + str + ')';\r\n }\r\n }\r\n\r\n if ( props.scaleX !== undefined && props.scaleY !== undefined ) {\r\n str = (str.length ? str + ' ' : '') + 'scale(' + props.scaleX + ', ' + props.scaleY + ')';\r\n }\r\n\r\n if ( str.length ) {\r\n css.transform = str;\r\n }\r\n\r\n if ( props.opacity !== undefined ) {\r\n css.opacity = props.opacity;\r\n }\r\n\r\n if ( props.width !== undefined ) {\r\n css.width = props.width;\r\n }\r\n\r\n if ( props.height !== undefined ) {\r\n css.height = props.height;\r\n }\r\n\r\n return $el.css( css );\r\n },\r\n\r\n\r\n // Simple CSS transition handler\r\n // =============================\r\n\r\n animate : function ( $el, to, duration, callback, leaveAnimationName ) {\r\n var event = transitionEnd || 'transitionend';\r\n\r\n if ( $.isFunction( duration ) ) {\r\n callback = duration;\r\n duration = null;\r\n }\r\n\r\n if ( !$.isPlainObject( to ) ) {\r\n $el.removeAttr('style');\r\n }\r\n\r\n $el.on( event, function(e) {\r\n\r\n // Skip events from child elements and z-index change\r\n if ( e && e.originalEvent && ( !$el.is( e.originalEvent.target ) || e.originalEvent.propertyName == 'z-index' ) ) {\r\n return;\r\n }\r\n\r\n $el.off( event );\r\n\r\n if ( $.isPlainObject( to ) ) {\r\n\r\n if ( to.scaleX !== undefined && to.scaleY !== undefined ) {\r\n $el.css( 'transition-duration', '0ms' );\r\n\r\n to.width = $el.width() * to.scaleX;\r\n to.height = $el.height() * to.scaleY;\r\n\r\n to.scaleX = 1;\r\n to.scaleY = 1;\r\n\r\n $.fancybox.setTranslate( $el, to );\r\n }\r\n\r\n } else if ( leaveAnimationName !== true ) {\r\n $el.removeClass( to );\r\n }\r\n\r\n if ( $.isFunction( callback ) ) {\r\n callback( e );\r\n }\r\n\r\n });\r\n\r\n if ( $.isNumeric( duration ) ) {\r\n $el.css( 'transition-duration', duration + 'ms' );\r\n }\r\n\r\n if ( $.isPlainObject( to ) ) {\r\n $.fancybox.setTranslate( $el, to );\r\n\r\n } else {\r\n $el.addClass( to );\r\n }\r\n\r\n $el.data(\"timer\", setTimeout(function() {\r\n $el.trigger( 'transitionend' );\r\n }, duration + 16));\r\n\r\n },\r\n\r\n stop : function( $el ) {\r\n clearTimeout( $el.data(\"timer\") );\r\n\r\n $el.off( transitionEnd );\r\n }\r\n\r\n };\r\n\r\n\r\n // Default click handler for \"fancyboxed\" links\r\n // ============================================\r\n\r\n function _run( e ) {\r\n var target\t= e.currentTarget,\r\n opts\t= e.data ? e.data.options : {},\r\n items\t= e.data ? e.data.items : [],\r\n value\t= $(target).attr( 'data-fancybox' ) || '',\r\n index\t= 0;\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n // Get all related items and find index for clicked one\r\n if ( value ) {\r\n items = items.length ? items.filter( '[data-fancybox=\"' + value + '\"]' ) : $( '[data-fancybox=\"' + value + '\"]' );\r\n index = items.index( target );\r\n\r\n // Sometimes current item can not be found\r\n // (for example, when slider clones items)\r\n if ( index < 0 ) {\r\n index = 0;\r\n }\r\n\r\n } else {\r\n items = [ target ];\r\n }\r\n\r\n $.fancybox.open( items, opts, index );\r\n }\r\n\r\n\r\n // Create a jQuery plugin\r\n // ======================\r\n\r\n $.fn.fancybox = function (options) {\r\n var selector;\r\n\r\n options = options || {};\r\n selector = options.selector || false;\r\n\r\n if ( selector ) {\r\n\r\n $( 'body' ).off( 'click.fb-start', selector ).on( 'click.fb-start', selector, {\r\n items : $( selector ),\r\n options : options\r\n }, _run );\r\n\r\n } else {\r\n\r\n this.off( 'click.fb-start' ).on( 'click.fb-start', {\r\n items : this,\r\n options : options\r\n }, _run);\r\n\r\n }\r\n\r\n return this;\r\n };\r\n\r\n\r\n // Self initializing plugin\r\n // ========================\r\n\r\n $D.on( 'click.fb-start', '[data-fancybox]', _run );\r\n\r\n}( window, document, $));\r\n\r\n// ==========================================================================\r\n//\r\n// Media\r\n// Adds additional media type support\r\n//\r\n// ==========================================================================\r\n;(function ($) {\r\n\r\n\t'use strict';\r\n\r\n\t// Formats matching url to final form\r\n\r\n\tvar format = function (url, rez, params) {\r\n\t\tif ( !url ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tparams = params || '';\r\n\r\n\t\tif ( $.type(params) === \"object\" ) {\r\n\t\t\tparams = $.param(params, true);\r\n\t\t}\r\n\r\n\t\t$.each(rez, function (key, value) {\r\n\t\t\turl = url.replace('$' + key, value || '');\r\n\t\t});\r\n\r\n\t\tif (params.length) {\r\n\t\t\turl += (url.indexOf('?') > 0 ? '&' : '?') + params;\r\n\t\t}\r\n\r\n\t\treturn url;\r\n\t};\r\n\r\n\t// Object containing properties for each media type\r\n\r\n\tvar defaults = {\r\n\t\tyoutube : {\r\n\t\t\tmatcher : /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\r\n\t\t\tparams : {\r\n\t\t\t\tautoplay : 1,\r\n\t\t\t\tautohide : 1,\r\n\t\t\t\tfs : 1,\r\n\t\t\t\trel : 0,\r\n\t\t\t\thd : 1,\r\n\t\t\t\twmode : 'transparent',\r\n\t\t\t\tenablejsapi : 1,\r\n\t\t\t\thtml5 : 1\r\n\t\t\t},\r\n\t\t\tparamPlace : 8,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : '//www.youtube.com/embed/$4',\r\n\t\t\tthumb : '//img.youtube.com/vi/$4/hqdefault.jpg'\r\n\t\t},\r\n\r\n\t\tvimeo : {\r\n\t\t\tmatcher : /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\r\n\t\t\tparams : {\r\n\t\t\t\tautoplay : 1,\r\n\t\t\t\thd : 1,\r\n\t\t\t\tshow_title : 1,\r\n\t\t\t\tshow_byline : 1,\r\n\t\t\t\tshow_portrait : 0,\r\n\t\t\t\tfullscreen : 1,\r\n\t\t\t\tapi : 1\r\n\t\t\t},\r\n\t\t\tparamPlace : 3,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : '//player.vimeo.com/video/$2'\r\n\t\t},\r\n\r\n\t\tmetacafe : {\r\n\t\t\tmatcher : /metacafe.com\\/watch\\/(\\d+)\\/(.*)?/,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : '//www.metacafe.com/embed/$1/?ap=1'\r\n\t\t},\r\n\r\n\t\tdailymotion : {\r\n\t\t\tmatcher : /dailymotion.com\\/video\\/(.*)\\/?(.*)/,\r\n\t\t\tparams : {\r\n\t\t\t\tadditionalInfos : 0,\r\n\t\t\t\tautoStart : 1\r\n\t\t\t},\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : '//www.dailymotion.com/embed/video/$1'\r\n\t\t},\r\n\r\n\t\tvine : {\r\n\t\t\tmatcher : /vine.co\\/v\\/([a-zA-Z0-9\\?\\=\\-]+)/,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : '//vine.co/v/$1/embed/simple'\r\n\t\t},\r\n\r\n\t\tinstagram : {\r\n\t\t\tmatcher : /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\r\n\t\t\ttype : 'image',\r\n\t\t\turl : '//$1/p/$2/media/?size=l'\r\n\t\t},\r\n\r\n\t\t// Examples:\r\n\t\t// http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\r\n\t\t// http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\r\n\t\t// https://www.google.lv/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\r\n\t\tgoogle_maps : {\r\n\t\t\tmatcher : /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\r\n\t\t\ttype : 'iframe',\r\n\t\t\turl : function (rez) {\r\n\t\t\t\treturn '//maps.google.' + rez[2] + '/?ll=' + ( rez[9] ? rez[9] + '&z=' + Math.floor( rez[10] ) + ( rez[12] ? rez[12].replace(/^\\//, \"&\") : '' ) : rez[12] ) + '&output=' + ( rez[12] && rez[12].indexOf('layer=c') > 0 ? 'svembed' : 'embed' );\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t$(document).on('onInit.fb', function (e, instance) {\r\n\r\n\t\t$.each(instance.group, function( i, item ) {\r\n\r\n\t\t\tvar url\t = item.src || '',\r\n\t\t\t\ttype = false,\r\n\t\t\t\tmedia,\r\n\t\t\t\tthumb,\r\n\t\t\t\trez,\r\n\t\t\t\tparams,\r\n\t\t\t\turlParams,\r\n\t\t\t\to,\r\n\t\t\t\tprovider;\r\n\r\n\t\t\t// Skip items that already have content type\r\n\t\t\tif ( item.type ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tmedia = $.extend( true, {}, defaults, item.opts.media );\r\n\r\n\t\t\t// Look for any matching media type\r\n\t\t\t$.each(media, function ( n, el ) {\r\n\t\t\t\trez = url.match(el.matcher);\r\n\t\t\t\to = {};\r\n\t\t\t\tprovider = n;\r\n\r\n\t\t\t\tif (!rez) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttype = el.type;\r\n\r\n\t\t\t\tif ( el.paramPlace && rez[ el.paramPlace ] ) {\r\n\t\t\t\t\turlParams = rez[ el.paramPlace ];\r\n\r\n\t\t\t\t\tif ( urlParams[ 0 ] == '?' ) {\r\n\t\t\t\t\t\turlParams = urlParams.substring(1);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\turlParams = urlParams.split('&');\r\n\r\n\t\t\t\t\tfor ( var m = 0; m < urlParams.length; ++m ) {\r\n\t\t\t\t\t\tvar p = urlParams[ m ].split('=', 2);\r\n\r\n\t\t\t\t\t\tif ( p.length == 2 ) {\r\n\t\t\t\t\t\t\to[ p[0] ] = decodeURIComponent( p[1].replace(/\\+/g, \" \") );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tparams = $.extend( true, {}, el.params, item.opts[ n ], o );\r\n\r\n\t\t\t\turl = $.type(el.url) === \"function\" ? el.url.call(this, rez, params, item) : format(el.url, rez, params);\r\n\t\t\t\tthumb = $.type(el.thumb) === \"function\" ? el.thumb.call(this, rez, params, item) : format(el.thumb, rez);\r\n\r\n\t\t\t\tif ( provider === 'vimeo' ) {\r\n\t\t\t\t\turl = url.replace('&%23', '#');\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\r\n\t\t\t// If it is found, then change content type and update the url\r\n\r\n\t\t\tif ( type ) {\r\n\t\t\t\titem.src = url;\r\n\t\t\t\titem.type = type;\r\n\r\n\t\t\t\tif ( !item.opts.thumb && !( item.opts.$thumb && item.opts.$thumb.length ) ) {\r\n\t\t\t\t\titem.opts.thumb = thumb;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( type === 'iframe' ) {\r\n\t\t\t\t\t$.extend(true, item.opts, {\r\n\t\t\t\t\t\tiframe : {\r\n\t\t\t\t\t\t\tpreload : false,\r\n\t\t\t\t\t\t\tattr : {\r\n\t\t\t\t\t\t\t\tscrolling : \"no\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\titem.contentProvider = provider;\r\n\r\n\t\t\t\t\titem.opts.slideClass += ' fancybox-slide--' + ( provider == 'google_maps' ? 'map' : 'video' );\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// If no content type is found, then set it to `image` as fallback\r\n\t\t\t\titem.type = 'image';\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t});\r\n\r\n}($));\r\n\r\n// ==========================================================================\r\n//\r\n// Guestures\r\n// Adds touch guestures, handles click and tap events\r\n//\r\n// ==========================================================================\r\n;(function (window, document, $) {\r\n\t'use strict';\r\n\r\n\tvar requestAFrame = (function () {\r\n return window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n };\r\n })();\r\n\r\n\r\n var cancelAFrame = (function () {\r\n return window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n };\r\n })();\r\n\r\n\r\n\tvar pointers = function( e ) {\r\n\t\tvar result = [];\r\n\r\n\t\te = e.originalEvent || e || window.e;\r\n\t\te = e.touches && e.touches.length ? e.touches : ( e.changedTouches && e.changedTouches.length ? e.changedTouches : [ e ] );\r\n\r\n\t\tfor ( var key in e ) {\r\n\r\n\t\t\tif ( e[ key ].pageX ) {\r\n\t\t\t\tresult.push( { x : e[ key ].pageX, y : e[ key ].pageY } );\r\n\r\n\t\t\t} else if ( e[ key ].clientX ) {\r\n\t\t\t\tresult.push( { x : e[ key ].clientX, y : e[ key ].clientY } );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t};\r\n\r\n\tvar distance = function( point2, point1, what ) {\r\n\t\tif ( !point1 || !point2 ) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tif ( what === 'x' ) {\r\n\t\t\treturn point2.x - point1.x;\r\n\r\n\t\t} else if ( what === 'y' ) {\r\n\t\t\treturn point2.y - point1.y;\r\n\t\t}\r\n\r\n\t\treturn Math.sqrt( Math.pow( point2.x - point1.x, 2 ) + Math.pow( point2.y - point1.y, 2 ) );\r\n\t};\r\n\r\n\tvar isClickable = function( $el ) {\r\n\t\tif ( $el.is('a,button,input,select,textarea') || $.isFunction( $el.get(0).onclick ) ) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Check for attributes like data-fancybox-next or data-fancybox-close\r\n\t\tfor ( var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++ ) {\r\n if ( atts[i].nodeName.substr(0, 14) === 'data-fancybox-' ) {\r\n return true;\r\n }\r\n }\r\n\r\n\t \treturn false;\r\n\t};\r\n\r\n\tvar hasScrollbars = function( el ) {\r\n\t\tvar overflowY = window.getComputedStyle( el )['overflow-y'];\r\n\t\tvar overflowX = window.getComputedStyle( el )['overflow-x'];\r\n\r\n\t\tvar vertical = (overflowY === 'scroll' || overflowY === 'auto') && el.scrollHeight > el.clientHeight;\r\n\t\tvar horizontal = (overflowX === 'scroll' || overflowX === 'auto') && el.scrollWidth > el.clientWidth;\r\n\r\n\t\treturn vertical || horizontal;\r\n\t};\r\n\r\n\tvar isScrollable = function ( $el ) {\r\n\t\tvar rez = false;\r\n\r\n\t\twhile ( true ) {\r\n\t\t\trez\t= hasScrollbars( $el.get(0) );\r\n\r\n\t\t\tif ( rez ) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\t$el = $el.parent();\r\n\r\n\t\t\tif ( !$el.length || $el.hasClass( 'fancybox-stage' ) || $el.is( 'body' ) ) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn rez;\r\n\t};\r\n\r\n\r\n\tvar Guestures = function ( instance ) {\r\n\t\tvar self = this;\r\n\r\n\t\tself.instance = instance;\r\n\r\n\t\tself.$bg = instance.$refs.bg;\r\n\t\tself.$stage = instance.$refs.stage;\r\n\t\tself.$container = instance.$refs.container;\r\n\r\n\t\tself.destroy();\r\n\r\n\t\tself.$container.on( 'touchstart.fb.touch mousedown.fb.touch', $.proxy(self, 'ontouchstart') );\r\n\t};\r\n\r\n\tGuestures.prototype.destroy = function() {\r\n\t\tthis.$container.off( '.fb.touch' );\r\n\t};\r\n\r\n\tGuestures.prototype.ontouchstart = function( e ) {\r\n\t\tvar self = this;\r\n\r\n\t\tvar $target = $( e.target );\r\n\t\tvar instance = self.instance;\r\n\t\tvar current = instance.current;\r\n\t\tvar $content = current.$content;\r\n\r\n\t\tvar isTouchDevice = ( e.type == 'touchstart' );\r\n\r\n\t\t// Do not respond to both events\r\n\t\tif ( isTouchDevice ) {\r\n\t self.$container.off( 'mousedown.fb.touch' );\r\n\t }\r\n\r\n\t\t// Ignore clicks while zooming or closing\r\n\t\tif ( !current || self.instance.isAnimating || self.instance.isClosing ) {\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Ignore right click\r\n\t\tif ( e.originalEvent && e.originalEvent.button == 2 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Ignore taping on links, buttons, input elements\r\n\t\tif ( !$target.length || isClickable( $target ) || isClickable( $target.parent() ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Ignore clicks on the scrollbar\r\n\t\tif ( e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tself.startPoints = pointers( e );\r\n\r\n\t\t// Prevent zooming if already swiping\r\n\t\tif ( !self.startPoints || ( self.startPoints.length > 1 && instance.isSliding ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tself.$target = $target;\r\n\t\tself.$content = $content;\r\n\t\tself.canTap = true;\r\n\r\n\t\t$(document).off( '.fb.touch' );\r\n\r\n\t\t$(document).on( isTouchDevice ? 'touchend.fb.touch touchcancel.fb.touch' : 'mouseup.fb.touch mouseleave.fb.touch', $.proxy(self, \"ontouchend\"));\r\n\t\t$(document).on( isTouchDevice ? 'touchmove.fb.touch' : 'mousemove.fb.touch', $.proxy(self, \"ontouchmove\"));\r\n\r\n\t\te.stopPropagation();\r\n\r\n\t\tif ( !(instance.current.opts.touch || instance.canPan() ) || !( $target.is( self.$stage ) || self.$stage.find( $target ).length ) ) {\r\n\r\n\t\t\t// Prevent ghosting\r\n\t\t\tif ( $target.is('img') ) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( !( $.fancybox.isMobile && ( isScrollable( self.$target ) || isScrollable( self.$target.parent() ) ) ) ) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\r\n\t\tself.canvasWidth = Math.round( current.$slide[0].clientWidth );\r\n\t\tself.canvasHeight = Math.round( current.$slide[0].clientHeight );\r\n\r\n\t\tself.startTime = new Date().getTime();\r\n\t\tself.distanceX = self.distanceY = self.distance = 0;\r\n\r\n\t\tself.isPanning = false;\r\n\t\tself.isSwiping = false;\r\n\t\tself.isZooming = false;\r\n\r\n\t\tself.sliderStartPos = self.sliderLastPos || { top: 0, left: 0 };\r\n\t\tself.contentStartPos = $.fancybox.getTranslate( self.$content );\r\n\t\tself.contentLastPos = null;\r\n\r\n\t\tif ( self.startPoints.length === 1 && !self.isZooming ) {\r\n\t\t\tself.canTap = !instance.isSliding;\r\n\r\n\t\t\tif ( current.type === 'image' && ( self.contentStartPos.width > self.canvasWidth + 1 || self.contentStartPos.height > self.canvasHeight + 1 ) ) {\r\n\r\n\t\t\t\t$.fancybox.stop( self.$content );\r\n\r\n\t\t\t\tself.$content.css( 'transition-duration', '0ms' );\r\n\r\n\t\t\t\tself.isPanning = true;\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tself.isSwiping = true;\r\n\t\t\t}\r\n\r\n\t\t\tself.$container.addClass('fancybox-controls--isGrabbing');\r\n\t\t}\r\n\r\n\t\tif ( self.startPoints.length === 2 && !instance.isAnimating && !current.hasError && current.type === 'image' && ( current.isLoaded || current.$ghost ) ) {\r\n\t\t\tself.isZooming = true;\r\n\r\n\t\t\tself.isSwiping = false;\r\n\t\t\tself.isPanning = false;\r\n\r\n\t\t\t$.fancybox.stop( self.$content );\r\n\r\n\t\t\tself.$content.css( 'transition-duration', '0ms' );\r\n\r\n\t\t\tself.centerPointStartX = ( ( self.startPoints[0].x + self.startPoints[1].x ) * 0.5 ) - $(window).scrollLeft();\r\n\t\t\tself.centerPointStartY = ( ( self.startPoints[0].y + self.startPoints[1].y ) * 0.5 ) - $(window).scrollTop();\r\n\r\n\t\t\tself.percentageOfImageAtPinchPointX = ( self.centerPointStartX - self.contentStartPos.left ) / self.contentStartPos.width;\r\n\t\t\tself.percentageOfImageAtPinchPointY = ( self.centerPointStartY - self.contentStartPos.top ) / self.contentStartPos.height;\r\n\r\n\t\t\tself.startDistanceBetweenFingers = distance( self.startPoints[0], self.startPoints[1] );\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.ontouchmove = function( e ) {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tself.newPoints = pointers( e );\r\n\r\n\t\tif ( $.fancybox.isMobile && ( isScrollable( self.$target ) || isScrollable( self.$target.parent() ) ) ) {\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t\tself.canTap = false;\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( !( self.instance.current.opts.touch || self.instance.canPan() ) || !self.newPoints || !self.newPoints.length ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tself.distanceX = distance( self.newPoints[0], self.startPoints[0], 'x' );\r\n\t\tself.distanceY = distance( self.newPoints[0], self.startPoints[0], 'y' );\r\n\r\n\t\tself.distance = distance( self.newPoints[0], self.startPoints[0] );\r\n\r\n\t\t// Skip false ontouchmove events (Chrome)\r\n\t\tif ( self.distance > 0 ) {\r\n\r\n\t\t\tif ( !( self.$target.is( self.$stage ) || self.$stage.find( self.$target ).length ) ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tif ( self.isSwiping ) {\r\n\t\t\t\tself.onSwipe();\r\n\r\n\t\t\t} else if ( self.isPanning ) {\r\n\t\t\t\tself.onPan();\r\n\r\n\t\t\t} else if ( self.isZooming ) {\r\n\t\t\t\tself.onZoom();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.onSwipe = function() {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tvar swiping = self.isSwiping;\r\n\t\tvar left = self.sliderStartPos.left || 0;\r\n\t\tvar angle;\r\n\r\n\t\tif ( swiping === true ) {\r\n\r\n\t\t\tif ( Math.abs( self.distance ) > 10 ) {\r\n\r\n\t\t\t\tself.canTap = false;\r\n\r\n\t\t\t\tif ( self.instance.group.length < 2 && self.instance.opts.touch.vertical ) {\r\n\t\t\t\t\tself.isSwiping = 'y';\r\n\r\n\t\t\t\t} else if ( self.instance.isSliding || self.instance.opts.touch.vertical === false || ( self.instance.opts.touch.vertical === 'auto' && $( window ).width() > 800 ) ) {\r\n\t\t\t\t\tself.isSwiping = 'x';\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tangle = Math.abs( Math.atan2( self.distanceY, self.distanceX ) * 180 / Math.PI );\r\n\r\n\t\t\t\t\tself.isSwiping = ( angle > 45 && angle < 135 ) ? 'y' : 'x';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.instance.isSliding = self.isSwiping;\r\n\r\n\t\t\t\t// Reset points to avoid jumping, because we dropped first swipes to calculate the angle\r\n\t\t\t\tself.startPoints = self.newPoints;\r\n\r\n\t\t\t\t$.each(self.instance.slides, function( index, slide ) {\r\n\t\t\t\t\t$.fancybox.stop( slide.$slide );\r\n\r\n\t\t\t\t\tslide.$slide.css( 'transition-duration', '0ms' );\r\n\r\n\t\t\t\t\tslide.inTransition = false;\r\n\r\n\t\t\t\t\tif ( slide.pos === self.instance.current.pos ) {\r\n\t\t\t\t\t\tself.sliderStartPos.left = $.fancybox.getTranslate( slide.$slide ).left;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//self.instance.current.isMoved = true;\r\n\r\n\t\t\t\t// Stop slideshow\r\n\t\t\t\tif ( self.instance.SlideShow && self.instance.SlideShow.isActive ) {\r\n\t\t\t\t\tself.instance.SlideShow.stop();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\r\n\t\t\tif ( swiping == 'x' ) {\r\n\r\n\t\t\t\t// Sticky edges\r\n\t\t\t\tif ( self.distanceX > 0 && ( self.instance.group.length < 2 || ( self.instance.current.index === 0 && !self.instance.current.opts.loop ) ) ) {\r\n\t\t\t\t\tleft = left + Math.pow( self.distanceX, 0.8 );\r\n\r\n\t\t\t\t} else if ( self.distanceX < 0 && ( self.instance.group.length < 2 || ( self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop ) ) ) {\r\n\t\t\t\t\tleft = left - Math.pow( -self.distanceX, 0.8 );\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tleft = left + self.distanceX;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tself.sliderLastPos = {\r\n\t\t\t\ttop : swiping == 'x' ? 0 : self.sliderStartPos.top + self.distanceY,\r\n\t\t\t\tleft : left\r\n\t\t\t};\r\n\r\n\t\t\tif ( self.requestId ) {\r\n\t\t\t\tcancelAFrame( self.requestId );\r\n\r\n\t\t\t\tself.requestId = null;\r\n\t\t\t}\r\n\r\n\t\t\tself.requestId = requestAFrame(function() {\r\n\r\n\t\t\t\tif ( self.sliderLastPos ) {\r\n\t\t\t\t\t$.each(self.instance.slides, function( index, slide ) {\r\n\t\t\t\t\t\tvar pos = slide.pos - self.instance.currPos;\r\n\r\n\t\t\t\t\t\t$.fancybox.setTranslate( slide.$slide, {\r\n\t\t\t\t\t\t\ttop : self.sliderLastPos.top,\r\n\t\t\t\t\t\t\tleft : self.sliderLastPos.left + ( pos * self.canvasWidth ) + ( pos * slide.opts.gutter )\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tself.$container.addClass( 'fancybox-is-sliding' );\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.onPan = function() {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tvar newOffsetX, newOffsetY, newPos;\r\n\r\n\t\tself.canTap = false;\r\n\r\n\t\tif ( self.contentStartPos.width > self.canvasWidth ) {\r\n\t\t\tnewOffsetX = self.contentStartPos.left + self.distanceX;\r\n\r\n\t\t} else {\r\n\t\t\tnewOffsetX = self.contentStartPos.left;\r\n\t\t}\r\n\r\n\t\tnewOffsetY = self.contentStartPos.top + self.distanceY;\r\n\r\n\t\tnewPos = self.limitMovement( newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height );\r\n\r\n\t\tnewPos.scaleX = self.contentStartPos.scaleX;\r\n\t\tnewPos.scaleY = self.contentStartPos.scaleY;\r\n\r\n\t\tself.contentLastPos = newPos;\r\n\r\n\t\tif ( self.requestId ) {\r\n\t\t\tcancelAFrame( self.requestId );\r\n\r\n\t\t\tself.requestId = null;\r\n\t\t}\r\n\r\n\t\tself.requestId = requestAFrame(function() {\r\n\t\t\t$.fancybox.setTranslate( self.$content, self.contentLastPos );\r\n\t\t});\r\n\t};\r\n\r\n\t// Make panning sticky to the edges\r\n\tGuestures.prototype.limitMovement = function( newOffsetX, newOffsetY, newWidth, newHeight ) {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tvar minTranslateX, minTranslateY, maxTranslateX, maxTranslateY;\r\n\r\n\t\tvar canvasWidth = self.canvasWidth;\r\n\t\tvar canvasHeight = self.canvasHeight;\r\n\r\n\t\tvar currentOffsetX = self.contentStartPos.left;\r\n\t\tvar currentOffsetY = self.contentStartPos.top;\r\n\r\n\t\tvar distanceX = self.distanceX;\r\n\t\tvar distanceY = self.distanceY;\r\n\r\n\t\t// Slow down proportionally to traveled distance\r\n\r\n\t\tminTranslateX = Math.max(0, canvasWidth * 0.5 - newWidth * 0.5 );\r\n\t\tminTranslateY = Math.max(0, canvasHeight * 0.5 - newHeight * 0.5 );\r\n\r\n\t\tmaxTranslateX = Math.min( canvasWidth - newWidth, canvasWidth * 0.5 - newWidth * 0.5 );\r\n\t\tmaxTranslateY = Math.min( canvasHeight - newHeight, canvasHeight * 0.5 - newHeight * 0.5 );\r\n\r\n\t\tif ( newWidth > canvasWidth ) {\r\n\r\n\t\t\t// ->\r\n\t\t\tif ( distanceX > 0 && newOffsetX > minTranslateX ) {\r\n\t\t\t\tnewOffsetX = minTranslateX - 1 + Math.pow( -minTranslateX + currentOffsetX + distanceX, 0.8 ) || 0;\r\n\t\t\t}\r\n\r\n\t\t\t// <-\r\n\t\t\tif ( distanceX < 0 && newOffsetX < maxTranslateX ) {\r\n\t\t\t\tnewOffsetX = maxTranslateX + 1 - Math.pow( maxTranslateX - currentOffsetX - distanceX, 0.8 ) || 0;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif ( newHeight > canvasHeight ) {\r\n\r\n\t\t\t// \\/\r\n\t\t\tif ( distanceY > 0 && newOffsetY > minTranslateY ) {\r\n\t\t\t\tnewOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8 ) || 0;\r\n\t\t\t}\r\n\r\n\t\t\t// /\\\r\n\t\t\tif ( distanceY < 0 && newOffsetY < maxTranslateY ) {\r\n\t\t\t\tnewOffsetY = maxTranslateY + 1 - Math.pow ( maxTranslateY - currentOffsetY - distanceY, 0.8 ) || 0;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop : newOffsetY,\r\n\t\t\tleft : newOffsetX\r\n\t\t};\r\n\r\n\t};\r\n\r\n\r\n\tGuestures.prototype.limitPosition = function( newOffsetX, newOffsetY, newWidth, newHeight ) {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tvar canvasWidth = self.canvasWidth;\r\n\t\tvar canvasHeight = self.canvasHeight;\r\n\r\n\t\tif ( newWidth > canvasWidth ) {\r\n\t\t\tnewOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\r\n\t\t\tnewOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// Center horizontally\r\n\t\t\tnewOffsetX = Math.max( 0, canvasWidth / 2 - newWidth / 2 );\r\n\r\n\t\t}\r\n\r\n\t\tif ( newHeight > canvasHeight ) {\r\n\t\t\tnewOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\r\n\t\t\tnewOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// Center vertically\r\n\t\t\tnewOffsetY = Math.max( 0, canvasHeight / 2 - newHeight / 2 );\r\n\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop : newOffsetY,\r\n\t\t\tleft : newOffsetX\r\n\t\t};\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.onZoom = function() {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\t// Calculate current distance between points to get pinch ratio and new width and height\r\n\r\n\t\tvar currentWidth = self.contentStartPos.width;\r\n\t\tvar currentHeight = self.contentStartPos.height;\r\n\r\n\t\tvar currentOffsetX = self.contentStartPos.left;\r\n\t\tvar currentOffsetY = self.contentStartPos.top;\r\n\r\n\t\tvar endDistanceBetweenFingers = distance( self.newPoints[0], self.newPoints[1] );\r\n\r\n\t\tvar pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\r\n\r\n\t\tvar newWidth = Math.floor( currentWidth * pinchRatio );\r\n\t\tvar newHeight = Math.floor( currentHeight * pinchRatio );\r\n\r\n\t\t// This is the translation due to pinch-zooming\r\n\t\tvar translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\r\n\t\tvar translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\r\n\r\n\t\t//Point between the two touches\r\n\r\n\t\tvar centerPointEndX = ((self.newPoints[0].x + self.newPoints[1].x) / 2) - $(window).scrollLeft();\r\n\t\tvar centerPointEndY = ((self.newPoints[0].y + self.newPoints[1].y) / 2) - $(window).scrollTop();\r\n\r\n\t\t// And this is the translation due to translation of the centerpoint\r\n\t\t// between the two fingers\r\n\r\n\t\tvar translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\r\n\t\tvar translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\r\n\r\n\t\t// The new offset is the old/current one plus the total translation\r\n\r\n\t\tvar newOffsetX = currentOffsetX + ( translateFromZoomingX + translateFromTranslatingX );\r\n\t\tvar newOffsetY = currentOffsetY + ( translateFromZoomingY + translateFromTranslatingY );\r\n\r\n\t\tvar newPos = {\r\n\t\t\ttop : newOffsetY,\r\n\t\t\tleft : newOffsetX,\r\n\t\t\tscaleX : self.contentStartPos.scaleX * pinchRatio,\r\n\t\t\tscaleY : self.contentStartPos.scaleY * pinchRatio\r\n\t\t};\r\n\r\n\t\tself.canTap = false;\r\n\r\n\t\tself.newWidth = newWidth;\r\n\t\tself.newHeight = newHeight;\r\n\r\n\t\tself.contentLastPos = newPos;\r\n\r\n\t\tif ( self.requestId ) {\r\n\t\t\tcancelAFrame( self.requestId );\r\n\r\n\t\t\tself.requestId = null;\r\n\t\t}\r\n\r\n\t\tself.requestId = requestAFrame(function() {\r\n\t\t\t$.fancybox.setTranslate( self.$content, self.contentLastPos );\r\n\t\t});\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.ontouchend = function( e ) {\r\n\r\n\t\tvar self = this;\r\n\t\tvar dMs = Math.max( (new Date().getTime() ) - self.startTime, 1);\r\n\r\n\t\tvar swiping = self.isSwiping;\r\n\t\tvar panning = self.isPanning;\r\n\t\tvar zooming = self.isZooming;\r\n\r\n\t\tself.endPoints = pointers( e );\r\n\r\n\t\tself.$container.removeClass( 'fancybox-controls--isGrabbing' );\r\n\r\n\t\t$(document).off( '.fb.touch' );\r\n\r\n\t\tif ( self.requestId ) {\r\n\t\t\tcancelAFrame( self.requestId );\r\n\r\n\t\t\tself.requestId = null;\r\n\t\t}\r\n\r\n\t\tself.isSwiping = false;\r\n\t\tself.isPanning = false;\r\n\t\tself.isZooming = false;\r\n\r\n\t\tif ( self.canTap ) {\r\n\t\t\treturn self.onTap( e );\r\n\t\t}\r\n\r\n\t\tself.speed = 366;\r\n\r\n\t\t// Speed in px/ms\r\n\t\tself.velocityX = self.distanceX / dMs * 0.5;\r\n\t\tself.velocityY = self.distanceY / dMs * 0.5;\r\n\r\n\t\tself.speedX = Math.max( self.speed * 0.5, Math.min( self.speed * 1.5, ( 1 / Math.abs( self.velocityX ) ) * self.speed ) );\r\n\r\n\t\tif ( panning ) {\r\n\t\t\tself.endPanning();\r\n\r\n\t\t} else if ( zooming ) {\r\n\t\t\tself.endZooming();\r\n\r\n\t\t} else {\r\n\t\t\tself.endSwiping( swiping );\r\n\t\t}\r\n\r\n\t\treturn;\r\n\t};\r\n\r\n\tGuestures.prototype.endSwiping = function( swiping ) {\r\n\r\n\t\tvar self = this;\r\n\t\tvar ret = false;\r\n\r\n\t\tself.instance.isSliding = false;\r\n\t\tself.sliderLastPos = null;\r\n\r\n\t\t// Close if swiped vertically / navigate if horizontally\r\n\t\tif ( swiping == 'y' && Math.abs( self.distanceY ) > 50 ) {\r\n\r\n\t\t\t// Continue vertical movement\r\n\t\t\t$.fancybox.animate( self.instance.current.$slide, {\r\n\t\t\t\ttop : self.sliderStartPos.top + self.distanceY + ( self.velocityY * 150 ),\r\n\t\t\t\topacity : 0\r\n\t\t\t}, 150 );\r\n\r\n\t\t\tret = self.instance.close( true, 300 );\r\n\r\n\t\t} else if ( swiping == 'x' && self.distanceX > 50 && self.instance.group.length > 1 ) {\r\n\t\t\tret = self.instance.previous( self.speedX );\r\n\r\n\t\t} else if ( swiping == 'x' && self.distanceX < -50 && self.instance.group.length > 1 ) {\r\n\t\t\tret = self.instance.next( self.speedX );\r\n\t\t}\r\n\r\n\t\tif ( ret === false && ( swiping == 'x' || swiping == 'y' ) ) {\r\n\t\t\tself.instance.jumpTo( self.instance.current.index, 150 );\r\n\t\t}\r\n\r\n\t\tself.$container.removeClass( 'fancybox-is-sliding' );\r\n\r\n\t};\r\n\r\n\t// Limit panning from edges\r\n\t// ========================\r\n\r\n\tGuestures.prototype.endPanning = function() {\r\n\r\n\t\tvar self = this;\r\n\t\tvar newOffsetX, newOffsetY, newPos;\r\n\r\n\t\tif ( !self.contentLastPos ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( self.instance.current.opts.touch.momentum === false ) {\r\n\t\t\tnewOffsetX = self.contentLastPos.left;\r\n\t\t\tnewOffsetY = self.contentLastPos.top;\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// Continue movement\r\n\t\t\tnewOffsetX = self.contentLastPos.left + ( self.velocityX * self.speed );\r\n\t\t\tnewOffsetY = self.contentLastPos.top + ( self.velocityY * self.speed );\r\n\t\t}\r\n\r\n\t\tnewPos = self.limitPosition( newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height );\r\n\r\n\t\t newPos.width = self.contentStartPos.width;\r\n\t\t newPos.height = self.contentStartPos.height;\r\n\r\n\t\t$.fancybox.animate( self.$content, newPos, 330 );\r\n\t};\r\n\r\n\r\n\tGuestures.prototype.endZooming = function() {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tvar current = self.instance.current;\r\n\r\n\t\tvar newOffsetX, newOffsetY, newPos, reset;\r\n\r\n\t\tvar newWidth = self.newWidth;\r\n\t\tvar newHeight = self.newHeight;\r\n\r\n\t\tif ( !self.contentLastPos ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tnewOffsetX = self.contentLastPos.left;\r\n\t\tnewOffsetY = self.contentLastPos.top;\r\n\r\n\t\treset = {\r\n\t\t \ttop : newOffsetY,\r\n\t\t \tleft : newOffsetX,\r\n\t\t \twidth : newWidth,\r\n\t\t \theight : newHeight,\r\n\t\t\tscaleX : 1,\r\n\t\t\tscaleY : 1\r\n\t };\r\n\r\n\t // Reset scalex/scaleY values; this helps for perfomance and does not break animation\r\n\t $.fancybox.setTranslate( self.$content, reset );\r\n\r\n\t\tif ( newWidth < self.canvasWidth && newHeight < self.canvasHeight ) {\r\n\t\t\tself.instance.scaleToFit( 150 );\r\n\r\n\t\t} else if ( newWidth > current.width || newHeight > current.height ) {\r\n\t\t\tself.instance.scaleToActual( self.centerPointStartX, self.centerPointStartY, 150 );\r\n\r\n\t\t} else {\r\n\r\n\t\t\tnewPos = self.limitPosition( newOffsetX, newOffsetY, newWidth, newHeight );\r\n\r\n\t\t\t// Switch from scale() to width/height or animation will not work correctly\r\n\t\t\t$.fancybox.setTranslate( self.content, $.fancybox.getTranslate( self.$content ) );\r\n\r\n\t\t\t$.fancybox.animate( self.$content, newPos, 150 );\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tGuestures.prototype.onTap = function(e) {\r\n\t\tvar self = this;\r\n\t\tvar $target = $( e.target );\r\n\r\n\t\tvar instance = self.instance;\r\n\t\tvar current = instance.current;\r\n\r\n\t\tvar endPoints = ( e && pointers( e ) ) || self.startPoints;\r\n\r\n\t\tvar tapX = endPoints[0] ? endPoints[0].x - self.$stage.offset().left : 0;\r\n\t\tvar tapY = endPoints[0] ? endPoints[0].y - self.$stage.offset().top : 0;\r\n\r\n\t\tvar where;\r\n\r\n\t\tvar process = function ( prefix ) {\r\n\r\n\t\t\tvar action = current.opts[ prefix ];\r\n\r\n\t\t\tif ( $.isFunction( action ) ) {\r\n\t\t\t\taction = action.apply( instance, [ current, e ] );\r\n\t\t\t}\r\n\r\n\t\t\tif ( !action) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tswitch ( action ) {\r\n\r\n\t\t\t\tcase \"close\" :\r\n\r\n\t\t\t\t\tinstance.close( self.startEvent );\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"toggleControls\" :\r\n\r\n\t\t\t\t\tinstance.toggleControls( true );\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"next\" :\r\n\r\n\t\t\t\t\tinstance.next();\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"nextOrClose\" :\r\n\r\n\t\t\t\t\tif ( instance.group.length > 1 ) {\r\n\t\t\t\t\t\tinstance.next();\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tinstance.close( self.startEvent );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"zoom\" :\r\n\r\n\t\t\t\t\tif ( current.type == 'image' && ( current.isLoaded || current.$ghost ) ) {\r\n\r\n\t\t\t\t\t\tif ( instance.canPan() ) {\r\n\t\t\t\t\t\t\tinstance.scaleToFit();\r\n\r\n\t\t\t\t\t\t} else if ( instance.isScaledDown() ) {\r\n\t\t\t\t\t\t\tinstance.scaleToActual( tapX, tapY );\r\n\r\n\t\t\t\t\t\t} else if ( instance.group.length < 2 ) {\r\n\t\t\t\t\t\t\tinstance.close( self.startEvent );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t};\r\n\r\n\t\t// Ignore right click\r\n\t\tif ( e.originalEvent && e.originalEvent.button == 2 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Skip if current slide is not in the center\r\n\t\tif ( instance.isSliding ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Skip if clicked on the scrollbar\r\n\t\tif ( tapX > $target[0].clientWidth + $target.offset().left ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check where is clicked\r\n\t\tif ( $target.is( '.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container' ) ) {\r\n\t\t\twhere = 'Outside';\r\n\r\n\t\t} else if ( $target.is( '.fancybox-slide' ) ) {\r\n\t\t\twhere = 'Slide';\r\n\r\n\t\t} else if ( instance.current.$content && instance.current.$content.has( e.target ).length ) {\r\n\t\t \twhere = 'Content';\r\n\r\n\t\t} else {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check if this is a double tap\r\n\t\tif ( self.tapped ) {\r\n\r\n\t\t\t// Stop previously created single tap\r\n\t\t\tclearTimeout( self.tapped );\r\n\t\t\tself.tapped = null;\r\n\r\n\t\t\t// Skip if distance between taps is too big\r\n\t\t\tif ( Math.abs( tapX - self.tapX ) > 50 || Math.abs( tapY - self.tapY ) > 50 || instance.isSliding ) {\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\r\n\t\t\t// OK, now we assume that this is a double-tap\r\n\t\t\tprocess( 'dblclick' + where );\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// Single tap will be processed if user has not clicked second time within 300ms\r\n\t\t\t// or there is no need to wait for double-tap\r\n\t\t\tself.tapX = tapX;\r\n\t\t\tself.tapY = tapY;\r\n\r\n\t\t\tif ( current.opts[ 'dblclick' + where ] && current.opts[ 'dblclick' + where ] !== current.opts[ 'click' + where ] ) {\r\n\t\t\t\tself.tapped = setTimeout(function() {\r\n\t\t\t\t\tself.tapped = null;\r\n\r\n\t\t\t\t\tprocess( 'click' + where );\r\n\r\n\t\t\t\t}, 300);\r\n\r\n\t\t\t} else {\r\n\t\t\t\tprocess( 'click' + where );\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t$(document).on('onActivate.fb', function (e, instance) {\r\n\t\tif ( instance && !instance.Guestures ) {\r\n\t\t\tinstance.Guestures = new Guestures( instance );\r\n\t\t}\r\n\t});\r\n\r\n\t$(document).on('beforeClose.fb', function (e, instance) {\r\n\t\tif ( instance && instance.Guestures ) {\r\n\t\t\tinstance.Guestures.destroy();\r\n\t\t}\r\n\t});\r\n\r\n\r\n}(window, document, $));\r\n\r\n// ==========================================================================\r\n//\r\n// SlideShow\r\n// Enables slideshow functionality\r\n//\r\n// Example of usage:\r\n// $.fancybox.getInstance().SlideShow.start()\r\n//\r\n// ==========================================================================\r\n;(function (document, $) {\r\n\t'use strict';\r\n\r\n\tvar SlideShow = function( instance ) {\r\n\t\tthis.instance = instance;\r\n\t\tthis.init();\r\n\t};\r\n\r\n\t$.extend( SlideShow.prototype, {\r\n\t\ttimer : null,\r\n\t\tisActive : false,\r\n\t\t$button : null,\r\n\t\tspeed : 3000,\r\n\r\n\t\tinit : function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tself.$button = self.instance.$refs.toolbar.find('[data-fancybox-play]').on('click', function() {\r\n\t\t\t\tself.toggle();\r\n\t\t\t});\r\n\r\n\t\t\tif ( self.instance.group.length < 2 || !self.instance.group[ self.instance.currIndex ].opts.slideShow ) {\r\n\t\t\t\tself.$button.hide();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tset : function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\t// Check if reached last element\r\n\t\t\tif ( self.instance && self.instance.current && (self.instance.current.opts.loop || self.instance.currIndex < self.instance.group.length - 1 )) {\r\n\t\t\t\tself.timer = setTimeout(function() {\r\n\t\t\t\t\tself.instance.next();\r\n\r\n\t\t\t\t}, self.instance.current.opts.slideShow.speed || self.speed);\r\n\r\n\t\t\t} else {\r\n\t\t\t\tself.stop();\r\n\t\t\t\tself.instance.idleSecondsCounter = 0;\r\n\t\t\t\tself.instance.showControls();\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\tclear : function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tclearTimeout( self.timer );\r\n\r\n\t\t\tself.timer = null;\r\n\t\t},\r\n\r\n\t\tstart : function() {\r\n\t\t\tvar self = this;\r\n\t\t\tvar current = self.instance.current;\r\n\r\n\t\t\tif ( self.instance && current && ( current.opts.loop || current.index < self.instance.group.length - 1 )) {\r\n\r\n\t\t\t\tself.isActive = true;\r\n\r\n\t\t\t\tself.$button\r\n\t\t\t\t\t.attr( 'title', current.opts.i18n[ current.opts.lang ].PLAY_STOP )\r\n\t\t\t\t\t.addClass( 'fancybox-button--pause' );\r\n\r\n\t\t\t\tif ( current.isComplete ) {\r\n\t\t\t\t\tself.set();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tstop : function() {\r\n\t\t\tvar self = this;\r\n\t\t\tvar current = self.instance.current;\r\n\r\n\t\t\tself.clear();\r\n\r\n\t\t\tself.$button\r\n\t\t\t\t.attr( 'title', current.opts.i18n[ current.opts.lang ].PLAY_START )\r\n\t\t\t\t.removeClass( 'fancybox-button--pause' );\r\n\r\n\t\t\tself.isActive = false;\r\n\t\t},\r\n\r\n\t\ttoggle : function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tif ( self.isActive ) {\r\n\t\t\t\tself.stop();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tself.start();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t});\r\n\r\n\t$(document).on({\r\n\t\t'onInit.fb' : function(e, instance) {\r\n\t\t\tif ( instance && !instance.SlideShow ) {\r\n\t\t\t\tinstance.SlideShow = new SlideShow( instance );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'beforeShow.fb' : function(e, instance, current, firstRun) {\r\n\t\t\tvar SlideShow = instance && instance.SlideShow;\r\n\r\n\t\t\tif ( firstRun ) {\r\n\r\n\t\t\t\tif ( SlideShow && current.opts.slideShow.autoStart ) {\r\n\t\t\t\t\tSlideShow.start();\r\n\t\t\t\t}\r\n\r\n\t\t\t} else if ( SlideShow && SlideShow.isActive ) {\r\n\t\t\t\tSlideShow.clear();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'afterShow.fb' : function(e, instance, current) {\r\n\t\t\tvar SlideShow = instance && instance.SlideShow;\r\n\r\n\t\t\tif ( SlideShow && SlideShow.isActive ) {\r\n\t\t\t\tSlideShow.set();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'afterKeydown.fb' : function(e, instance, current, keypress, keycode) {\r\n\t\t\tvar SlideShow = instance && instance.SlideShow;\r\n\r\n\t\t\t// \"P\" or Spacebar\r\n\t\t\tif ( SlideShow && current.opts.slideShow && ( keycode === 80 || keycode === 32 ) && !$(document.activeElement).is( 'button,a,input' ) ) {\r\n\t\t\t\tkeypress.preventDefault();\r\n\r\n\t\t\t\tSlideShow.toggle();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'beforeClose.fb onDeactivate.fb' : function(e, instance) {\r\n\t\t\tvar SlideShow = instance && instance.SlideShow;\r\n\r\n\t\t\tif ( SlideShow ) {\r\n\t\t\t\tSlideShow.stop();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t// Page Visibility API to pause slideshow when window is not active\r\n\t$(document).on(\"visibilitychange\", function() {\r\n\t\tvar instance = $.fancybox.getInstance();\r\n\t\tvar SlideShow = instance && instance.SlideShow;\r\n\r\n\t\tif ( SlideShow && SlideShow.isActive ) {\r\n\t\t\tif ( document.hidden ) {\r\n\t\t\t\tSlideShow.clear();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tSlideShow.set();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n}(document, $));\r\n\r\n// ==========================================================================\r\n//\r\n// FullScreen\r\n// Adds fullscreen functionality\r\n//\r\n// ==========================================================================\r\n;(function (document, $) {\r\n\t'use strict';\r\n\r\n\t// Collection of methods supported by user browser\r\n\tvar fn = (function () {\r\n\r\n\t\tvar fnMap = [\r\n\t\t\t[\r\n\t\t\t\t'requestFullscreen',\r\n\t\t\t\t'exitFullscreen',\r\n\t\t\t\t'fullscreenElement',\r\n\t\t\t\t'fullscreenEnabled',\r\n\t\t\t\t'fullscreenchange',\r\n\t\t\t\t'fullscreenerror'\r\n\t\t\t],\r\n\t\t\t// new WebKit\r\n\t\t\t[\r\n\t\t\t\t'webkitRequestFullscreen',\r\n\t\t\t\t'webkitExitFullscreen',\r\n\t\t\t\t'webkitFullscreenElement',\r\n\t\t\t\t'webkitFullscreenEnabled',\r\n\t\t\t\t'webkitfullscreenchange',\r\n\t\t\t\t'webkitfullscreenerror'\r\n\r\n\t\t\t],\r\n\t\t\t// old WebKit (Safari 5.1)\r\n\t\t\t[\r\n\t\t\t\t'webkitRequestFullScreen',\r\n\t\t\t\t'webkitCancelFullScreen',\r\n\t\t\t\t'webkitCurrentFullScreenElement',\r\n\t\t\t\t'webkitCancelFullScreen',\r\n\t\t\t\t'webkitfullscreenchange',\r\n\t\t\t\t'webkitfullscreenerror'\r\n\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'mozRequestFullScreen',\r\n\t\t\t\t'mozCancelFullScreen',\r\n\t\t\t\t'mozFullScreenElement',\r\n\t\t\t\t'mozFullScreenEnabled',\r\n\t\t\t\t'mozfullscreenchange',\r\n\t\t\t\t'mozfullscreenerror'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'msRequestFullscreen',\r\n\t\t\t\t'msExitFullscreen',\r\n\t\t\t\t'msFullscreenElement',\r\n\t\t\t\t'msFullscreenEnabled',\r\n\t\t\t\t'MSFullscreenChange',\r\n\t\t\t\t'MSFullscreenError'\r\n\t\t\t]\r\n\t\t];\r\n\r\n\t\tvar val;\r\n\t\tvar ret = {};\r\n\t\tvar i, j;\r\n\r\n\t\tfor ( i = 0; i < fnMap.length; i++ ) {\r\n\t\t\tval = fnMap[ i ];\r\n\r\n\t\t\tif ( val && val[ 1 ] in document ) {\r\n\t\t\t\tfor ( j = 0; j < val.length; j++ ) {\r\n\t\t\t\t\tret[ fnMap[ 0 ][ j ] ] = val[ j ];\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t})();\r\n\r\n\t// If browser does not have Full Screen API, then simply unset default button template and stop\r\n\tif ( !fn ) {\r\n\t\t$.fancybox.defaults.btnTpl.fullScreen = false;\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar FullScreen = {\r\n\t\trequest : function ( elem ) {\r\n\r\n\t\t\telem = elem || document.documentElement;\r\n\r\n\t\t\telem[ fn.requestFullscreen ]( elem.ALLOW_KEYBOARD_INPUT );\r\n\r\n\t\t},\r\n\t\texit : function () {\r\n\r\n\t\t\tdocument[ fn.exitFullscreen ]();\r\n\r\n\t\t},\r\n\t\ttoggle : function ( elem ) {\r\n\r\n\t\t\telem = elem || document.documentElement;\r\n\r\n\t\t\tif ( this.isFullscreen() ) {\r\n\t\t\t\tthis.exit();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis.request( elem );\r\n\t\t\t}\r\n\r\n\t\t},\r\n\t\tisFullscreen : function() {\r\n\r\n\t\t\treturn Boolean( document[ fn.fullscreenElement ] );\r\n\r\n\t\t},\r\n\t\tenabled : function() {\r\n\r\n\t\t\treturn Boolean( document[ fn.fullscreenEnabled ] );\r\n\r\n\t\t}\r\n\t};\r\n\r\n\t$(document).on({\r\n\t\t'onInit.fb' : function(e, instance) {\r\n\t\t\tvar $container;\r\n\r\n\t\t\tvar $button = instance.$refs.toolbar.find('[data-fancybox-fullscreen]');\r\n\r\n\t\t\tif ( instance && !instance.FullScreen && instance.group[ instance.currIndex ].opts.fullScreen ) {\r\n\t\t\t\t$container = instance.$refs.container;\r\n\r\n\t\t\t\t$container.on('click.fb-fullscreen', '[data-fancybox-fullscreen]', function(e) {\r\n\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tFullScreen.toggle( $container[ 0 ] );\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif ( instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true ) {\r\n\t\t\t\t\tFullScreen.request( $container[ 0 ] );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Expose API\r\n\t\t\t\tinstance.FullScreen = FullScreen;\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$button.hide();\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\t'afterKeydown.fb' : function(e, instance, current, keypress, keycode) {\r\n\r\n\t\t\t// \"P\" or Spacebar\r\n\t\t\tif ( instance && instance.FullScreen && keycode === 70 ) {\r\n\t\t\t\tkeypress.preventDefault();\r\n\r\n\t\t\t\tinstance.FullScreen.toggle( instance.$refs.container[ 0 ] );\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\t'beforeClose.fb' : function( instance ) {\r\n\t\t\tif ( instance && instance.FullScreen ) {\r\n\t\t\t\tFullScreen.exit();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t$(document).on(fn.fullscreenchange, function() {\r\n\t\tvar instance = $.fancybox.getInstance();\r\n\r\n\t\t// If image is zooming, then force to stop and reposition properly\r\n\t\tif ( instance.current && instance.current.type === 'image' && instance.isAnimating ) {\r\n\t\t\tinstance.current.$content.css( 'transition', 'none' );\r\n\r\n\t\t\tinstance.isAnimating = false;\r\n\r\n\t\t\tinstance.update( true, true, 0 );\r\n\t\t}\r\n\r\n\t});\r\n\r\n}(document, $));\r\n\r\n// ==========================================================================\r\n//\r\n// Thumbs\r\n// Displays thumbnails in a grid\r\n//\r\n// ==========================================================================\r\n;(function (document, $) {\r\n\t'use strict';\r\n\r\n\tvar FancyThumbs = function( instance ) {\r\n\t\tthis.instance = instance;\r\n\t\tthis.init();\r\n\t};\r\n\r\n\t$.extend( FancyThumbs.prototype, {\r\n\r\n\t\t$button\t\t: null,\r\n\t\t$grid\t\t: null,\r\n\t\t$list\t\t: null,\r\n\t\tisVisible\t: false,\r\n\r\n\t\tinit : function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tvar first = self.instance.group[0],\r\n\t\t\t\tsecond = self.instance.group[1];\r\n\r\n\t\t\tself.$button = self.instance.$refs.toolbar.find( '[data-fancybox-thumbs]' );\r\n\r\n\t\t\tif ( self.instance.group.length > 1 && self.instance.group[ self.instance.currIndex ].opts.thumbs && (\r\n\t\t \t\t( first.type == 'image' || first.opts.thumb || first.opts.$thumb ) &&\r\n\t\t \t\t( second.type == 'image' || second.opts.thumb || second.opts.$thumb )\r\n\t\t\t)) {\r\n\r\n\t\t\t\tself.$button.on('click', function() {\r\n\t\t\t\t\tself.toggle();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.isActive = true;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tself.$button.hide();\r\n\r\n\t\t\t\tself.isActive = false;\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\tcreate : function() {\r\n\t\t\tvar instance = this.instance,\r\n\t\t\t\tlist,\r\n\t\t\t\tsrc;\r\n\r\n\t\t\tthis.$grid = $('
').appendTo( instance.$refs.container );\r\n\r\n\t\t\tlist = '
    ';\r\n\r\n\t\t\t$.each(instance.group, function( i, item ) {\r\n\r\n\t\t\t\tsrc = item.opts.thumb || ( item.opts.$thumb ? item.opts.$thumb.attr('src') : null );\r\n\r\n\t\t\t\tif ( !src && item.type === 'image' ) {\r\n\t\t\t\t\tsrc = item.src;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( src && src.length ) {\r\n\t\t\t\t\tlist += '
  • ';\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t\tlist += '
';\r\n\r\n\t\t\tthis.$list = $( list ).appendTo( this.$grid ).on('click', 'li', function() {\r\n\t\t\t\tinstance.jumpTo( $(this).data('index') );\r\n\t\t\t});\r\n\r\n\t\t\tthis.$list.find('img').hide().one('load', function() {\r\n\r\n\t\t\t\tvar $parent\t\t= $(this).parent().removeClass('fancybox-thumbs-loading'),\r\n\t\t\t\t\tthumbWidth\t= $parent.outerWidth(),\r\n\t\t\t\t\tthumbHeight\t= $parent.outerHeight(),\r\n\t\t\t\t\twidth,\r\n\t\t\t\t\theight,\r\n\t\t\t\t\twidthRatio,\r\n\t\t\t\t\theightRatio;\r\n\r\n\t\t\t\twidth = this.naturalWidth\t|| this.width;\r\n\t\t\t\theight = this.naturalHeight\t|| this.height;\r\n\r\n\t\t\t\t//Calculate thumbnail width/height and center it\r\n\r\n\t\t\t\twidthRatio = width / thumbWidth;\r\n\t\t\t\theightRatio = height / thumbHeight;\r\n\r\n\t\t\t\tif (widthRatio >= 1 && heightRatio >= 1) {\r\n\t\t\t\t\tif (widthRatio > heightRatio) {\r\n\t\t\t\t\t\twidth = width / heightRatio;\r\n\t\t\t\t\t\theight = thumbHeight;\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\twidth = thumbWidth;\r\n\t\t\t\t\t\theight = height / widthRatio;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(this).css({\r\n\t\t\t\t\twidth : Math.floor(width),\r\n\t\t\t\t\theight : Math.floor(height),\r\n\t\t\t\t\t'margin-top' : Math.min( 0, Math.floor(thumbHeight * 0.3 - height * 0.3 ) ),\r\n\t\t\t\t\t'margin-left' : Math.min( 0, Math.floor(thumbWidth * 0.5 - width * 0.5 ) )\r\n\t\t\t\t}).show();\r\n\r\n\t\t\t})\r\n\t\t\t.each(function() {\r\n\t\t\t\tthis.src = $( this ).data( 'src' );\r\n\t\t\t});\r\n\r\n\t\t},\r\n\r\n\t\tfocus : function() {\r\n\r\n\t\t\tif ( this.instance.current ) {\r\n\t\t\t\tthis.$list\r\n\t\t\t\t\t.children()\r\n\t\t\t\t\t.removeClass('fancybox-thumbs-active')\r\n\t\t\t\t\t.filter('[data-index=\"' + this.instance.current.index + '\"]')\r\n\t\t\t\t\t.addClass('fancybox-thumbs-active')\r\n\t\t\t\t\t.focus();\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\tclose : function() {\r\n\t\t\tthis.$grid.hide();\r\n\t\t},\r\n\r\n\t\tupdate : function() {\r\n\r\n\t\t\tthis.instance.$refs.container.toggleClass( 'fancybox-show-thumbs', this.isVisible );\r\n\r\n\t\t\tif ( this.isVisible ) {\r\n\r\n\t\t\t\tif ( !this.$grid ) {\r\n\t\t\t\t\tthis.create();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.instance.trigger( 'onThumbsShow' );\r\n\r\n\t\t\t\tthis.focus();\r\n\r\n\t\t\t} else if ( this.$grid ) {\r\n\t\t\t\tthis.instance.trigger( 'onThumbsHide' );\r\n\t\t\t}\r\n\r\n\t\t\t// Update content position\r\n\t\t\tthis.instance.update();\r\n\r\n\t\t},\r\n\r\n\t\thide : function() {\r\n\t\t\tthis.isVisible = false;\r\n\t\t\tthis.update();\r\n\t\t},\r\n\r\n\t\tshow : function() {\r\n\t\t\tthis.isVisible = true;\r\n\t\t\tthis.update();\r\n\t\t},\r\n\r\n\t\ttoggle : function() {\r\n\t\t\tthis.isVisible = !this.isVisible;\r\n\t\t\tthis.update();\r\n\t\t}\r\n\r\n\t});\r\n\r\n\t$(document).on({\r\n\r\n\t\t'onInit.fb' : function(e, instance) {\r\n\t\t\tif ( instance && !instance.Thumbs ) {\r\n\t\t\t\tinstance.Thumbs = new FancyThumbs( instance );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'beforeShow.fb' : function(e, instance, item, firstRun) {\r\n\t\t\tvar Thumbs = instance && instance.Thumbs;\r\n\r\n\t\t\tif ( !Thumbs || !Thumbs.isActive ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif ( item.modal ) {\r\n\t\t\t\tThumbs.$button.hide();\r\n\r\n\t\t\t\tThumbs.hide();\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif ( firstRun && instance.opts.thumbs.autoStart === true ) {\r\n\t\t\t\tThumbs.show();\r\n\t\t\t}\r\n\r\n\t\t\tif ( Thumbs.isVisible ) {\r\n\t\t\t\tThumbs.focus();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'afterKeydown.fb' : function(e, instance, current, keypress, keycode) {\r\n\t\t\tvar Thumbs = instance && instance.Thumbs;\r\n\r\n\t\t\t// \"G\"\r\n\t\t\tif ( Thumbs && Thumbs.isActive && keycode === 71 ) {\r\n\t\t\t\tkeypress.preventDefault();\r\n\r\n\t\t\t\tThumbs.toggle();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t'beforeClose.fb' : function( e, instance ) {\r\n\t\t\tvar Thumbs = instance && instance.Thumbs;\r\n\r\n\t\t\tif ( Thumbs && Thumbs.isVisible && instance.opts.thumbs.hideOnClose !== false ) {\r\n\t\t\t\tThumbs.close();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t});\r\n\r\n}(document, $));\r\n\r\n// ==========================================================================\r\n//\r\n// Hash\r\n// Enables linking to each modal\r\n//\r\n// ==========================================================================\r\n;(function (document, window, $) {\r\n\t'use strict';\r\n\r\n\t// Simple $.escapeSelector polyfill (for jQuery prior v3)\r\n\tif ( !$.escapeSelector ) {\r\n\t\t$.escapeSelector = function( sel ) {\r\n\t\t\tvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\r\n\t\t\tvar fcssescape = function( ch, asCodePoint ) {\r\n\t\t\t\tif ( asCodePoint ) {\r\n\t\t\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n\t\t\t\t\tif ( ch === \"\\0\" ) {\r\n\t\t\t\t\t\treturn \"\\uFFFD\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\r\n\t\t\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Other potentially-special ASCII characters get backslash-escaped\r\n\t\t\t\treturn \"\\\\\" + ch;\r\n\t\t\t};\r\n\r\n\t\t\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\r\n\t\t};\r\n\t}\r\n\r\n\t// Variable containing last hash value set by fancyBox\r\n\t// It will be used to determine if fancyBox needs to close after hash change is detected\r\n var currentHash = null;\r\n\r\n\t// Throtlling the history change\r\n\tvar timerID = null;\r\n\r\n\t// Get info about gallery name and current index from url\r\n function parseUrl() {\r\n var hash = window.location.hash.substr( 1 );\r\n var rez = hash.split( '-' );\r\n var index = rez.length > 1 && /^\\+?\\d+$/.test( rez[ rez.length - 1 ] ) ? parseInt( rez.pop( -1 ), 10 ) || 1 : 1;\r\n var gallery = rez.join( '-' );\r\n\r\n\t\t// Index is starting from 1\r\n\t\tif ( index < 1 ) {\r\n\t\t\tindex = 1;\r\n\t\t}\r\n\r\n return {\r\n hash : hash,\r\n index : index,\r\n gallery : gallery\r\n };\r\n }\r\n\r\n\t// Trigger click evnt on links to open new fancyBox instance\r\n\tfunction triggerFromUrl( url ) {\r\n\t\tvar $el;\r\n\r\n if ( url.gallery !== '' ) {\r\n\r\n\t\t\t// If we can find element matching 'data-fancybox' atribute, then trigger click event for that ..\r\n\t\t\t$el = $( \"[data-fancybox='\" + $.escapeSelector( url.gallery ) + \"']\" ).eq( url.index - 1 );\r\n\r\n if ( $el.length ) {\r\n\t\t\t\t$el.trigger( 'click' );\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// .. if not, try finding element by ID\r\n\t\t\t\t$( \"#\" + $.escapeSelector( url.gallery ) + \"\" ).trigger( 'click' );\r\n\r\n\t\t\t}\r\n\r\n }\r\n\t}\r\n\r\n\t// Get gallery name from current instance\r\n\tfunction getGallery( instance ) {\r\n\t\tvar opts;\r\n\r\n\t\tif ( !instance ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\topts = instance.current ? instance.current.opts : instance.opts;\r\n\r\n\t\treturn opts.$orig ? opts.$orig.data( 'fancybox' ) : ( opts.hash || '' );\r\n\t}\r\n\r\n\t// Star when DOM becomes ready\r\n $(function() {\r\n\r\n\t\t// Small delay is used to allow other scripts to process \"dom ready\" event\r\n\t\tsetTimeout(function() {\r\n\r\n\t\t\t// Check if this module is not disabled\r\n\t\t\tif ( $.fancybox.defaults.hash === false ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Update hash when opening/closing fancyBox\r\n\t\t $(document).on({\r\n\t\t\t\t'onInit.fb' : function( e, instance ) {\r\n\t\t\t\t\tvar url, gallery;\r\n\r\n\t\t\t\t\tif ( instance.group[ instance.currIndex ].opts.hash === false ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\turl = parseUrl();\r\n\t\t\t\t\tgallery = getGallery( instance );\r\n\r\n\t\t\t\t\t// Make sure gallery start index matches index from hash\r\n\t\t\t\t\tif ( gallery && url.gallery && gallery == url.gallery ) {\r\n\t\t\t\t\t\tinstance.currIndex = url.index - 1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'beforeShow.fb' : function( e, instance, current, firstRun ) {\r\n\t\t\t\t\tvar gallery;\r\n\r\n\t\t\t\t\tif ( current.opts.hash === false ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t gallery = getGallery( instance );\r\n\r\n\t\t // Update window hash\r\n\t\t if ( gallery && gallery !== '' ) {\r\n\r\n\t\t\t\t\t\tif ( window.location.hash.indexOf( gallery ) < 0 ) {\r\n\t\t\t instance.opts.origHash = window.location.hash;\r\n\t\t\t }\r\n\r\n\t\t\t\t\t\tcurrentHash = gallery + ( instance.group.length > 1 ? '-' + ( current.index + 1 ) : '' );\r\n\r\n\t\t\t\t\t\tif ( 'replaceState' in window.history ) {\r\n\t\t\t\t\t\t\tif ( timerID ) {\r\n\t\t\t\t\t\t\t\tclearTimeout( timerID );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\ttimerID = setTimeout(function() {\r\n\t\t\t\t\t\t\t\twindow.history[ firstRun ? 'pushState' : 'replaceState' ]( {} , document.title, window.location.pathname + window.location.search + '#' + currentHash );\r\n\r\n\t\t\t\t\t\t\t\ttimerID = null;\r\n\r\n\t\t\t\t\t\t\t}, 300);\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\twindow.location.hash = currentHash;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t }\r\n\r\n\t\t },\r\n\r\n\t\t\t\t'beforeClose.fb' : function( e, instance, current ) {\r\n\t\t\t\t\tvar gallery, origHash;\r\n\r\n\t\t\t\t\tif ( timerID ) {\r\n\t\t\t\t\t\tclearTimeout( timerID );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( current.opts.hash === false ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tgallery = getGallery( instance );\r\n\t\t\t\t\torigHash = instance && instance.opts.origHash ? instance.opts.origHash : '';\r\n\r\n\t\t // Remove hash from location bar\r\n\t\t if ( gallery && gallery !== '' ) {\r\n\r\n\t\t if ( 'replaceState' in history ) {\r\n\t\t\t\t\t\t\twindow.history.replaceState( {} , document.title, window.location.pathname + window.location.search + origHash );\r\n\r\n\t\t } else {\r\n\t\t\t\t\t\t\twindow.location.hash = origHash;\r\n\r\n\t\t\t\t\t\t\t// Keep original scroll position\r\n\t\t\t\t\t\t\t$( window ).scrollTop( instance.scrollTop ).scrollLeft( instance.scrollLeft );\r\n\t\t }\r\n\t\t }\r\n\r\n\t\t\t\t\tcurrentHash = null;\r\n\t\t }\r\n\t\t });\r\n\r\n\t\t\t// Check if need to close after url has changed\r\n\t\t\t$(window).on('hashchange.fb', function() {\r\n\t\t\t\tvar url = parseUrl();\r\n\r\n\t\t\t\tif ( $.fancybox.getInstance() ) {\r\n\t\t\t\t\tif ( currentHash && currentHash !== url.gallery + '-' + url.index && !( url.index === 1 && currentHash == url.gallery ) ) {\r\n\t\t\t\t\t\tcurrentHash = null;\r\n\r\n\t\t\t\t\t\t$.fancybox.close();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if ( url.gallery !== '' ) {\r\n\t\t\t\t\ttriggerFromUrl( url );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If navigating away from current page\r\n\t\t\t$(window).one('unload.fb popstate.fb', function() {\r\n\t\t\t\t$.fancybox.getInstance( 'close', true, 0 );\r\n\t\t\t});\r\n\r\n\t\t\t// Check current hash and trigger click event on matching element to start fancyBox, if needed\r\n\t\t\ttriggerFromUrl( parseUrl() );\r\n\r\n\t\t}, 50);\r\n\r\n });\r\n\r\n\r\n}(document, window, $));\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/jquery.fancybox.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-phone\",\n \"use\": \"icon-phone-usage\",\n \"viewBox\": \"0 0 15 15\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/phone.svg\n// module id = c1Qd\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/search-results/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'poll-button',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/poll-button.js');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/poll-button/main.js","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\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\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars.runtime.js\n// module id = ceVE\n// module chunks = 0","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport Flatpickr from \"flatpickr\";\r\nimport baseDatePickerConfig from 'base-datepicker-config';\r\nimport Cleave from 'cleave.js';\r\n\r\nexport default class DatePicker extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n }\r\n\r\n init() {\r\n let format = this.container.getAttribute('data-format') || 'd/m/Y';\r\n let calendar = new Flatpickr(this.container, Object.assign({}, baseDatePickerConfig, {\r\n mode: \"single\",\r\n dateFormat: 'Y-m-d',\r\n altInput: true,\r\n altFormat: format,\r\n disableMobile: true,\r\n allowInput: true,\r\n\r\n onClose: function (selDates, dateStr, instance) {\r\n if (this.config.allowInput) {\r\n let date = this.parseDate(this.altInput.value, this.config.altFormat);\r\n if (date === null) {\r\n //reset date\r\n this.setDate(null, true, this.config.altFormat);\r\n } else {\r\n let formattedDate = this.formatDate(date, this.config.dateFormat);\r\n if (formattedDate !== this.input.value) {\r\n this.setDate(this.altInput.value, true, this.config.altFormat);\r\n }\r\n }\r\n }\r\n },\r\n\r\n //we need validation on real input, so show it for validation purpose but hide from ui\r\n onReady: [baseDatePickerConfig.onReady, function (dates, value, instance) {\r\n if (instance.altInput) {\r\n instance.input.type = 'text';\r\n instance.input.style.position = 'absolute';\r\n instance.input.style.visibility = 'hidden';\r\n\r\n new Cleave(instance.altInput, {\r\n date: true,\r\n datePattern: [\"d\", \"m\", \"Y\"],\r\n delimiter: '/'\r\n });\r\n }\r\n }]\r\n }));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/datepicker/js/generic.datepicker.js","const EVENT_FIELD_VALIDATION_FAILED = 'field-validation-failed';\r\nconst EVENT_FIELD_VALIDATION_PASSED = 'field-validation-passed';\r\nconst EVENT_SPINBOX_CHANGED = 'spinbox-changed';\r\n\r\nexport default {\r\n EVENT_FIELD_VALIDATION_FAILED,\r\n EVENT_FIELD_VALIDATION_PASSED,\r\n EVENT_SPINBOX_CHANGED\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/constants.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\nimport slick from 'slick-carousel';\r\nimport wt from 'widowtamer';\r\n\r\nexport default class HeroCarousel extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.$container = $(this.container);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.$inner = this.$container.find('.js-hero-carousel-inner');\r\n this.$dotsContainer = this.$container.find('.js-hero-carousel-dots');\r\n\r\n if (!this.$inner.length || !this.$dotsContainer.length) {\r\n this.$container.addClass('js-init-errors');\r\n return false;\r\n }\r\n\r\n this.$inner.slick({\r\n arrows: false,\r\n dots: true,\r\n appendDots: this.$dotsContainer,\r\n useTransform: false,\r\n speed: 500,\r\n autoplay: true,\r\n autoplaySpeed: 2500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n fade: true\r\n });\r\n\r\n wt.fix({elements: '.js-widow-fix', chars: 10, method: 'nbsp'});\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/hero-carousel/js/generic.hero-carousel.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/hero/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-login-block',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.login-block');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/login-block/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/symptom-checker/main.js","import TimelineLite from 'gsap/TimelineLite';\r\nimport $ from 'jquery';\r\nimport contentBlocker from 'content-blocker';\r\nimport template from '../html/modal.handlebars';\r\n\r\n\r\nexport default class ModalController {\r\n static getInstance() {\r\n if (ModalController.instance === null) {\r\n ModalController.instance = new ModalController();\r\n }\r\n return ModalController.instance;\r\n }\r\n\r\n constructor() {\r\n this.$body = $('body');\r\n // #form is kentico page wrapper\r\n this.form = $('#form');\r\n this.form.append(template);\r\n this.containerSelector = '.js-modal-container';\r\n this.contentSelector = '.js-modal-content';\r\n this.contentWrapperSelector = '.js-modal-content-wrapper';\r\n this.closeSelector = '.js-modal-close';\r\n\r\n this.container = document.querySelector(this.containerSelector);\r\n if (this.container) {\r\n this.closeBtn = this.container.querySelector(this.closeSelector);\r\n this.content = this.container.querySelector(this.contentSelector);\r\n this.content = $(this.content);\r\n\r\n this.modalTween = new TimelineLite({ paused: true });\r\n this.modalTween.fromTo(this.container, 0.0, { visibility: 'hidden' }, { visibility: 'visible' });\r\n this.modalTween.fromTo(this.container, 0.5, { opacity: '0' }, { opacity: '1' });\r\n this.openedInstance = null;\r\n this.isOpened = false;\r\n\r\n const $document = $(document);\r\n $document.on('click', this.closeSelector, this._closeByUserHandle.bind(this));\r\n $document.on('click touchstart', this._outerClickHandle.bind(this));\r\n }\r\n }\r\n\r\n _outerClickHandle(e) {\r\n if (this.isOpened) {\r\n const $target = $(e.target);\r\n\r\n if ($target.is(this.container) || $target.parents(this.containerSelector).length) {\r\n if ($target.is(this.contentWrapperSelector) || $target.parents(this.contentWrapperSelector).length) {\r\n return;\r\n }\r\n this._closeByUserHandle();\r\n }\r\n }\r\n }\r\n\r\n _closeByUserHandle() {\r\n if (this.openedInstance && this.openedInstance.options.closable) {\r\n this.close();\r\n }\r\n }\r\n\r\n _renderContent(content) {\r\n this.content.empty().append(content);\r\n }\r\n\r\n _renderLayout() {\r\n this.modalTween.play();\r\n }\r\n\r\n close() {\r\n this.modalTween.reverse();\r\n this._beforeClose(this.openedInstance);\r\n this.openedInstance = null;\r\n this.isOpened = false;\r\n }\r\n\r\n open(modal, refresh = false) {\r\n if (this.openedInstance) {\r\n if (this.openedInstance === modal) {\r\n return;\r\n }\r\n this.close();\r\n this.openedInstance = null;\r\n }\r\n this.openedInstance = modal;\r\n this.isOpened = true;\r\n\r\n if (!this.openedInstance.options.closable) {\r\n this.closeBtn.classList.add('is-hidden');\r\n } else {\r\n this.closeBtn.classList.remove('is-hidden');\r\n }\r\n\r\n this._renderLayout();\r\n modal.getPreparedContent(refresh).then((content) => {\r\n this._renderContent(content);\r\n }).then(() => {\r\n this._afterOpen(modal);\r\n });\r\n }\r\n\r\n _afterOpen() {\r\n contentBlocker.block('modal');\r\n this.container.style['-webkit-overflow-scrolling'] = 'touch';\r\n }\r\n\r\n _beforeClose() {\r\n contentBlocker.unblock('modal');\r\n this.container.style['-webkit-overflow-scrolling'] = 'auto';\r\n }\r\n}\r\n\r\nModalController.instance = null;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/modal/js/modal-controller.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-tick\",\n \"use\": \"icon-tick-usage\",\n \"viewBox\": \"0 0 26.85 21.33\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/tick.svg\n// module id = ddC+\n// module chunks = 0","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport menuManager from 'menu-manager';\r\n\r\nexport default class NavTop extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.menuId = 'navTop';\r\n this.items = [...this.container.querySelectorAll(\".js-nav-top-item\")];\r\n if(!this.container.classList.contains('js-nav-top--mobile')) {\r\n this.items.forEach(element => {\r\n element.addEventListener(\"mouseenter\", this.hover.bind(this));\r\n element.addEventListener(\"mouseleave\", this.blur.bind(this));\r\n });\r\n\r\n menuManager.init(this.menuId, {\r\n default: {\r\n open: this.open.bind(this),\r\n close: this.close.bind(this),\r\n level: 0,\r\n isBlocking: false\r\n },\r\n mobile: {\r\n isEnabled: false\r\n }\r\n });\r\n } else {\r\n this.mobileOpened = false;\r\n this.items.forEach(element => {\r\n element.addEventListener(\"click\", this.toggleMobileInstance.bind(this));\r\n });\r\n }\r\n }\r\n\r\n hover() {\r\n menuManager.open(this.menuId);\r\n }\r\n\r\n blur() {\r\n menuManager.close(this.menuId);\r\n }\r\n\r\n toggleMobileInstance(e) {\r\n if(!this.mobileOpened) {\r\n e.preventDefault();\r\n }\r\n this.container.classList.toggle(\"is-opened\");\r\n this.mobileOpened = !this.mobileOpened;\r\n }\r\n\r\n open() {\r\n this.container.classList.add(\"is-hover\");\r\n }\r\n\r\n close() {\r\n this.container.classList.remove(\"is-hover\");\r\n }\r\n}\r\n\r\n\r\nNavTop.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/nav-top/js/generic.navtop.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\nimport JGApi from '../../../general/js/jg-api';\r\nimport template from '../html/jg-imagery.hbs';\r\nimport templateEmpty from '../html/jg-imagery-empty.hbs';\r\nimport ImageGallery from '../../image-gallery/js/generic.image-gallery';\r\n\r\nexport default class JgImagery extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.$container = $(this.container);\r\n this.init();\r\n }\r\n\r\n init() {\r\n let pageName = this.$container.data('page-name');\r\n if (!pageName) {\r\n this.$container.addClass('js-init-errors');\r\n return false;\r\n }\r\n\r\n this.$container.addClass('is-loading');\r\n JGApi.getInstance().getPageDetails(pageName).then((response) => {\r\n this.renderImagery(response.media.images);\r\n }, (error) => {\r\n this.renderError(error);\r\n }).then(() => {\r\n this.$container.removeClass('is-loading');\r\n });\r\n }\r\n\r\n renderImagery(images) {\r\n if (images.length > 0) {\r\n let content = template({images});\r\n this.$container.html(content);\r\n let $gallery = this.$container.find('.js-image-gallery');\r\n let gallery = new ImageGallery($gallery[0]);\r\n } else {\r\n this.renderEmpty();\r\n }\r\n }\r\n\r\n renderEmpty() {\r\n this.$container.html(templateEmpty({}));\r\n }\r\n\r\n\r\n renderError(error) {\r\n console.log(error);\r\n this.$container.html(JGApi.getDefaultErrorMessage());\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/jg-imagery/js/generic.jg-imagery.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-payment-summary',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.payment-summary');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/payment-summary/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-hero-carousel',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.hero-carousel');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/hero-carousel/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\n\r\nexport default class TouchButton extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n }\r\n\r\n init() {\r\n if ( 'ontouchstart' in window || navigator.msMaxTouchPoints ) {\r\n this.container.addEventListener(\"touchstart\", this.addActiveClass);\r\n this.container.addEventListener(\"touchend\", this.removeActiveClass);\r\n this.container.addEventListener(\"touchcancel\", this.removeActiveClass);\r\n }\r\n }\r\n\r\n addActiveClass(e) {\r\n e.target.classList.add(\"is-active\");\r\n }\r\n\r\n removeActiveClass(e) {\r\n let target = e.target;\r\n if( /is-active/g.test(target.className) ) {\r\n target.classList.remove(\"is-active\");\r\n }\r\n }\r\n}\r\n\r\nTouchButton.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/touch-button/js/generic.touch-button.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-just-giving-logo\",\n \"use\": \"icon-just-giving-logo-usage\",\n \"viewBox\": \"0 0 832.7 142.1\",\n \"content\": \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/just-giving-logo.svg\n// module id = f2JW\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/promo/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-hamburger',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.hamburger');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/hamburger/main.js","\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport createEvent from 'create-event';\r\nimport constants from 'general/js/constants';\r\n\r\nexport default class Spinbox extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.container = el;\r\n this.onIncrease = this.onIncrease.bind(this);\r\n this.onDiscrease = this.onDiscrease.bind(this);\r\n this.defineVariables();\r\n this.init();\r\n }\r\n\r\n defineVariables() {\r\n this.input = this.container.querySelector('.js-spinbox-input');\r\n this.discrease = this.container.querySelector('.js-spinbox-discrease');\r\n this.increase = this.container.querySelector('.js-spinbox-increase');\r\n this.maxValue = parseInt(this.container.getAttribute('data-spinbox-max'), 10);\r\n const minAttr = this.container.getAttribute('data-spinbox-min');\r\n this.minValue = (minAttr === null) ? 1 : parseInt(minAttr, 10);\r\n }\r\n\r\n init() {\r\n this.increase.addEventListener('click', this.onIncrease);\r\n this.discrease.addEventListener('click', this.onDiscrease);\r\n }\r\n\r\n onIncrease(e) {\r\n e.preventDefault();\r\n if ((!Number.isNaN(this.maxValue) && this.maxValue > this.input.value) || (Number.isNaN(this.maxValue))) {\r\n this.input.value++;\r\n this.triggerChange();\r\n }\r\n }\r\n\r\n onDiscrease(e) {\r\n e.preventDefault();\r\n if (this.input.value > this.minValue) {\r\n this.input.value--;\r\n this.triggerChange();\r\n }\r\n }\r\n\r\n triggerChange() {\r\n this.input.dispatchEvent(createEvent('input'));\r\n this.input.dispatchEvent(createEvent('change'));\r\n\r\n this.input.dispatchEvent(createEvent(constants.EVENT_SPINBOX_CHANGED));\r\n }\r\n\r\n setToMin() {\r\n this.input.value = this.minValue;\r\n this.triggerChange();\r\n }\r\n\r\n disable() {\r\n this.input.setAttribute('disabled', '');\r\n }\r\n\r\n enable() {\r\n this.input.removeAttribute('disabled');\r\n }\r\n\r\n destroy() {\r\n super.destroy();\r\n this.increase.removeEventListener('click', this.onIncrease);\r\n this.discrease.removeEventListener('click', this.onDiscrease);\r\n this.container.classList.remove('js-spinbox-inited');\r\n }\r\n\r\n getValue() {\r\n return this.input.value;\r\n }\r\n}\r\nSpinbox.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/spinbox/js/generic.spinbox.js","\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\n\r\nexport default class HeaderTop extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.isActive = false;\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.items = [...this.container.querySelectorAll('.js-header-top-item')];\r\n this.items.forEach((item) => {\r\n item.addEventListener('mouseenter', this.hover.bind(this));\r\n });\r\n\r\n this.container.addEventListener('mouseleave', this.containerBlur.bind(this));\r\n\r\n document.querySelector('.js-header-dropdown').addEventListener('click', this.showStickyNav.bind(this));\r\n\r\n document.addEventListener('click', this.checkOuterClick.bind(this));\r\n\r\n window.addEventListener('scroll', this.scroll.bind(this));\r\n\r\n this.scroll();\r\n }\r\n\r\n hover() {\r\n if (!this.isActive) {\r\n this.isActive = true;\r\n this.container.classList.add('is-active');\r\n }\r\n }\r\n\r\n containerBlur() {\r\n if (this.isActive) {\r\n this.isActive = false;\r\n this.container.classList.remove('is-active');\r\n }\r\n }\r\n\r\n scroll() {\r\n if (window.pageYOffset > 0) {\r\n document.body.classList.add('sticky-nav');\r\n } else {\r\n document.body.classList.remove('sticky-nav');\r\n }\r\n\r\n if (!document.body.classList.contains('is-blocked')) this.hideStickyNav();\r\n }\r\n\r\n showStickyNav(e) {\r\n e.preventDefault();\r\n document.body.classList.add('sticky-nav--opened');\r\n }\r\n\r\n hideStickyNav() {\r\n document.body.classList.remove('sticky-nav--opened');\r\n }\r\n\r\n checkOuterClick(e) {\r\n if (document.body.classList.contains('sticky-nav--opened')) {\r\n const $target = $(e.target);\r\n\r\n if ($target.is('.js-header-dropdown') || $target.parents('.js-header-dropdown').length) return;\r\n\r\n if (!$target.is('.header-top') &&\r\n !$target.is('.header__nav') &&\r\n !$target.parents('.header-top').length &&\r\n !$target.parents('.header__nav').length) {\r\n this.hideStickyNav();\r\n }\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/header/js/generic.header-top.js","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG5cbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/decorators.js\n// module id = fsM1\n// module chunks = 0","\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport ContentModal from '../../modal/js/content-modal';\r\nimport deleteAccountTemplate from '../html/delete-account.hbs';\r\n\r\n\r\nexport default class Account extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.showDeleteModal = this.showDeleteModal.bind(this);\r\n this.deleteAccTrigger = this.container.querySelector('.js-account__delete-trigger');\r\n\r\n this.modal = new ContentModal('');\r\n\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.deleteAccTrigger) {\r\n this.deletePostbackId = this.deleteAccTrigger.getAttribute('data-clientid');\r\n this.localization = {};\r\n const localizationString = this.deleteAccTrigger.getAttribute('data-localization');\r\n try {\r\n this.localization = JSON.parse(localizationString);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n this.deleteAccTrigger.addEventListener('click', this.showDeleteModal);\r\n }\r\n }\r\n\r\n showDeleteModal() {\r\n const content = deleteAccountTemplate(\r\n {\r\n clientId: this.deletePostbackId,\r\n localization: this.localization\r\n }\r\n );\r\n this.modal.setContent(content);\r\n this.modal.open();\r\n }\r\n\r\n destroy() {\r\n super.destroy();\r\n\r\n this.deleteAccTrigger.removeEventListener('click', this.showDeleteModal);\r\n this.container.classList.remove('js-payment-summary-inited');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/account/js/generic.account.js","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFBYyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDdkY7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ01pc3NpbmcgaGVscGVyOiBcIicgKyBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdLm5hbWUgKyAnXCInKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js\n// module id = fvMr\n// module chunks = 0","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\nimport slick from 'slick-carousel';\r\n\r\nexport default class LogoList extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.$container = $(this.container);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.$inner = this.$container.find('.js-logo-list-inner');\r\n this.$arrows = this.$container.find('.js-logo-list-arrows');\r\n\r\n this.$inner.slick({\r\n appendArrows: this.$arrows,\r\n infinite: true,\r\n arrows: true,\r\n speed: 300,\r\n autoplay: false,\r\n slidesToShow: 1,\r\n variableWidth: true,\r\n centerMode: true,\r\n mobileFirst: true,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: \"unslick\"\r\n }\r\n ],\r\n prevArrow: ``,\r\n nextArrow: ``,\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/logo-list/js/generic.logo-list.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-search-top',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.search-top');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/search-top/main.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-share\",\n \"use\": \"icon-share-usage\",\n \"viewBox\": \"0 0 16 16\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/share.svg\n// module id = gPpe\n// module chunks = 0","// Widow Tamer JS by Nathan C. Ford http://artequalswork.com\r\n// from https://github.com/nathanford/widowtamer\r\n\r\nlet wt = {\r\n\r\n // default options\r\n opts: {\r\n elements: 'p,li,dd',\r\n chars: 14,\r\n method: 'wordSpacing',\r\n dir: 'pos',\r\n event: 'orientationchange'\r\n },\r\n\r\n to: new Array(),\r\n\r\n fix: function (opts) {\r\n\r\n if (document.readyState === 'complete') wt.init(opts);\r\n wt.bind('load', function () {\r\n wt.init(opts);\r\n });\r\n\r\n },\r\n\r\n init: function (opts) {\r\n\r\n var m = opts.method;\r\n\r\n switch (m) {\r\n\r\n case 'padding-right':\r\n case 'nbsp':\r\n case 'padding-left':\r\n case 'word-spacing':\r\n case 'letter-spacing' :\r\n case undefined :\r\n\r\n if (opts.dir == 'neg' && m && m.match('padding')) {\r\n\r\n console.log('Invalid method. You cannot use neg with padding.');\r\n\r\n } else wt.hunter(opts);\r\n\r\n break;\r\n\r\n default :\r\n console.log('Invalid method. Please use either padding-right, padding-left, word-spacing, or letter-spacing.');\r\n\r\n }\r\n\r\n },\r\n\r\n hunter: function (uopts) {\r\n\r\n var opts = new Object();\r\n\r\n // overwrite defaults with options from user\r\n if (uopts) {\r\n\r\n for (i in wt.opts) {\r\n\r\n if (uopts[i]) opts[i] = (i == 'method' && uopts[i].match('-')) ? wt.fixmethod(uopts[i]) : uopts[i];\r\n else opts[i] = wt.opts[i];\r\n\r\n }\r\n\r\n }\r\n else opts = wt.opts;\r\n\r\n if (document.querySelectorAll) {\r\n\r\n var eles = document.querySelectorAll(opts.elements),\r\n i = 0;\r\n\r\n while (i < eles.length) {\r\n\r\n var t = eles[i];\r\n\r\n if (t.offsetHeight > wt.getstyle(t, 'line-height', true)) {\r\n\r\n // find a textnode longer than chars\r\n var nodes = t.childNodes,\r\n j = nodes.length - 1,\r\n c = false;\r\n\r\n while (j >= 0) {\r\n\r\n var ntext = wt.text(nodes[j]);\r\n\r\n if (ntext != undefined && ntext.length > opts.chars) {\r\n c = nodes[j];\r\n break;\r\n }\r\n\r\n j--;\r\n\r\n }\r\n\r\n t.style[opts.method] = '0';\r\n\r\n var ctext = wt.text(c);\r\n\r\n if (c) wt.tamer(c, t, ctext, 0, opts);\r\n\r\n }\r\n\r\n i++;\r\n\r\n }\r\n\r\n wt.bind(opts.event, function () {\r\n wt.onevent(opts);\r\n });\r\n\r\n }\r\n\r\n },\r\n\r\n text: function (t) {\r\n\r\n return t.innerText || t.textContent;\r\n\r\n },\r\n\r\n settext: function (e, t) {\r\n\r\n if (e.innerText) e.innerText = t;\r\n else e.textContent = t;\r\n\r\n },\r\n\r\n tamer: function (c, t, text, i, opts) {\r\n\r\n var h = t.offsetHeight;\r\n\r\n wt.settext(c, text.slice(0, (opts.chars * -1)));\r\n\r\n if (t.offsetHeight < h) {\r\n\r\n if (opts.method == 'nbsp') wt.settext(c, wt.text(c) + text.slice((opts.chars * -1)).replace(/\\s/g, '\\u00a0'));\r\n\r\n else {\r\n\r\n var inc = (opts.method.match('padding')) ? (i / 10) : (i / 100);\r\n\r\n if (opts.dir == 'neg') inc = inc * -1;\r\n\r\n t.style[opts.method] = inc + 'em';\r\n\r\n wt.settext(c, text);\r\n\r\n wt.tamer(c, t, text, i + 1, opts);\r\n\r\n }\r\n\r\n }\r\n else wt.settext(c, text);\r\n\r\n },\r\n\r\n onevent: function (opts) {\r\n\r\n var to = \"'\" + opts.elements.replace(/[^a-zA-Z0-9\\-\\.]/g, '') + \"'\";\r\n\r\n clearTimeout(wt.to[to]);\r\n wt.to[to] = setTimeout(function () {\r\n wt.hunter(opts);\r\n }, 250);\r\n\r\n },\r\n\r\n bind: function (e, f) {\r\n\r\n if (window.attachEvent) window.attachEvent('on' + e, f);\r\n else window.addEventListener(e, f, true);\r\n\r\n },\r\n\r\n fixmethod: function (s) {\r\n\r\n return s.replace(/-([a-zA-Z])/, function (m) {\r\n\r\n return m.replace('-', '').toUpperCase();\r\n\r\n });\r\n\r\n },\r\n\r\n getstyle: function (t, s, n) {\r\n\r\n var r;\r\n\r\n if (t.currentStyle) r = t.currentStyle[s.replace(/-([A-z])/gi, function (a, b) {\r\n return b.toUpperCase();\r\n })];\r\n else if (window.getComputedStyle) r = document.defaultView.getComputedStyle(t, null).getPropertyValue(s);\r\n\r\n if (n) return parseFloat(r);\r\n else return r;\r\n\r\n }\r\n\r\n};\r\n\r\nexport default wt;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/widowtamer.js","var Handlebars = require(\"C:\\\\TeamCityAgents\\\\02\\\\work\\\\bbe988d6cf529cbd\\\\CMS\\\\App_Themes\\\\DeleteKenticoFramework\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
\\r\\n
\\r\\n There has not been any recent donations, click here if you would like to show your\\r\\n support\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/jg-donations/html/jg-donations-empty.hbs\n// module id = grUI\n// module chunks = 0","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-account\",\n \"use\": \"icon-account-usage\",\n \"viewBox\": \"0 0 447 447\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/account.svg\n// module id = h+4i\n// module chunks = 0","\r\n\r\nimport head from 'head.less';\r\nimport vendorCss from 'vendor.css';\r\nimport core from 'core.less';\r\n\r\nimport './general/js/matches-polyfill';\r\nimport responsiveImages from 'responsive-images/main';\r\nimport header from 'header/main';\r\nimport navTop from 'nav-top/main';\r\nimport navMain from 'nav-main/main';\r\nimport hero from 'hero/main';\r\nimport heroCarousel from 'hero-carousel/main';\r\nimport init from 'multi-selector/main';\r\nimport heroImage from 'hero-image/main';\r\nimport footer from 'footer/main';\r\nimport breadcrumbs from 'breadcrumbs/main';\r\nimport modal from 'modal/main';\r\nimport signposts from 'signposts/main';\r\nimport featuredContent from 'featured-content/main';\r\nimport imageGallery from 'image-gallery/main';\r\nimport waysToDonate from 'ways-to-donate/main';\r\nimport fileIcon from 'file-icon/main';\r\nimport textWithStatistic from 'text-with-statistic/main';\r\nimport statistic from 'statistic/main';\r\nimport pagination from 'pagination/main';\r\nimport relatedContent from 'related-content/main';\r\nimport forum from 'forum/main';\r\nimport socialLinks from 'social-links/main';\r\nimport buttonsGroup from 'buttons-group/main';\r\nimport showRule from 'show-rule/main';\r\nimport getInTouch from 'get-in-touch/main';\r\nimport fileInput from 'file-input/main';\r\nimport logoList from 'logo-list/main';\r\nimport centeredButton from 'centered-button/main';\r\nimport contentHeading from 'content-heading/main';\r\nimport gaTracker from 'ga-tracker/main';\r\nimport pageSpinner from 'page-spinner/main';\r\nimport helplineMenu from 'helpline-menu/main';\r\nimport donateMenu from 'donate-menu/main';\r\n\r\nimport textWithImage from 'text-with-image/main';\r\nimport promo from 'promo/main';\r\nimport video from 'video/main';\r\n\r\nimport accordion from 'accordion/main';\r\nimport map from 'map/main';\r\nimport lightbox from 'lightbox/main';\r\nimport tabs from 'tabs/main';\r\nimport form from 'form/main';\r\nimport staffContact from 'staff-contact/main';\r\nimport waysYouCanHelp from 'ways-you-can-help/main';\r\nimport touchButton from 'touch-button/main';\r\nimport hamburger from 'hamburger/main';\r\nimport profile from 'profile/main';\r\nimport listing from 'listing/main';\r\nimport filter from 'filter/main';\r\nimport rangePicker from 'rangepicker/main';\r\nimport datePicker from 'datepicker/main';\r\nimport justGiving from 'just-giving/main';\r\nimport jgTotal from 'jg-total/main';\r\nimport jgImagery from 'jg-imagery/main';\r\nimport jgDonations from 'jg-donations/main';\r\nimport jgLeaderboard from 'jg-leaderboard/main';\r\nimport spinner from 'spinner/main';\r\nimport currencySwitcher from 'currency-switcher/main';\r\n\r\nimport shop from 'shop/main';\r\nimport spinbox from 'spinbox/main';\r\nimport symptomChecker from 'symptom-checker/main';\r\nimport heroDonate from 'hero-donate/main';\r\nimport customDonate from 'custom-donate/main';\r\nimport searchtop from 'search-top/main';\r\nimport sharethis from 'sharethis/main';\r\nimport searchResults from 'search-results/main';\r\nimport downloads from 'downloads/main';\r\nimport moveTo from 'move-to/main';\r\nimport eligibilityChecker from 'eligibility-checker/main';\r\nimport cookieBar from 'cookie-bar/main';\r\nimport borderedBlock from 'bordered-block/main';\r\nimport loginBlock from 'login-block/main';\r\nimport donationSelector from 'donation-selector/main';\r\nimport paymentNav from 'payment-nav/main';\r\nimport fromContainer from 'form-container/main';\r\nimport tooltip from 'tooltip/main';\r\nimport paymentSummary from 'payment-summary/main';\r\nimport poolbutton from 'poll-button/main';\r\nimport embedProduct from 'embed-product/main';\r\nimport simpleList from 'simple-list/main';\r\nimport postbackButton from 'postback-button/main';\r\nimport giftAid from 'gift-aid/main';\r\nimport eventOptions from 'event-options/main';\r\nimport roundDonation from 'round-donation/main';\r\nimport account from 'account/main';\r\n\r\n// load all grobal icons\r\nconst files = require.context('general/svg', true, /^\\.\\/.*\\.svg/);\r\nfiles.keys().forEach(files);\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/app.js","'use strict';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-content-heading',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.content-heading');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/content-heading/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\n\r\nexport default class FileInput extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.captionContainerSelector = '.js-file-input-caption';\r\n this.defaultCaption = 'No file chosen';\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.fileControl = this.container.querySelector('input[type=\"file\"]');\r\n this.captionContainer = this.container.querySelector(this.captionContainerSelector);\r\n if (!this.fileControl || !this.captionContainer) {\r\n return;\r\n }\r\n\r\n this.fileControl.setAttribute('style', `\r\n width: 0.1px;\r\n height: 0.1px;\r\n opacity: 0;\r\n overflow: hidden;\r\n position: absolute;\r\n z-index: -1;\r\n `);\r\n\r\n this.caption = document.createElement('span');\r\n this.captionContainer.appendChild(this.caption);\r\n\r\n\r\n this.fileControl.addEventListener('change', this.onFileChange.bind(this));\r\n this.updateCaption();\r\n }\r\n\r\n onFileChange(e) {\r\n this.updateCaption();\r\n }\r\n\r\n updateCaption() {\r\n let caption = '';\r\n if (this.fileControl.files && this.fileControl.files.length > 1) {\r\n caption = `${this.fileControl.files.length} files selected`;\r\n } else {\r\n caption = this.fileControl.value.split('\\\\').pop();\r\n }\r\n if (caption) {\r\n this.caption.innerHTML = caption;\r\n } else {\r\n this.caption.innerHTML = this.defaultCaption;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/file-input/js/generic.file-input.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/spinner/main.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-basket\",\n \"use\": \"icon-basket-usage\",\n \"viewBox\": \"0 0 242 226\",\n \"content\": \"\\r\\n\\r\\n\\t\\r\\n\\t\\r\\n\\t\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/basket.svg\n// module id = iwUV\n// module chunks = 0","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-arrow-down\",\n \"use\": \"icon-arrow-down-usage\",\n \"viewBox\": \"215.909 218.314 13.001 8.194\",\n \"content\": \"\\r\\n\\r\\n\\t\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/arrow-down.svg\n// module id = jIbX\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar VERSION = '4.0.10';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 7;\n\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQTRDLFNBQVM7O3lCQUMvQixhQUFhOzs7O3VCQUNFLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNuQyxVQUFVOzs7O0FBRXRCLElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQzs7QUFDekIsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxVQUFVO0NBQ2QsQ0FBQzs7O0FBRUYsSUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFNBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsTUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLE1BQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixNQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGtDQUF1QixJQUFJLENBQUMsQ0FBQztBQUM3Qix3Q0FBMEIsSUFBSSxDQUFDLENBQUM7Q0FDakM7O0FBRUQscUJBQXFCLENBQUMsU0FBUyxHQUFHO0FBQ2hDLGFBQVcsRUFBRSxxQkFBcUI7O0FBRWxDLFFBQU0scUJBQVE7QUFDZCxLQUFHLEVBQUUsb0JBQU8sR0FBRzs7QUFFZixnQkFBYyxFQUFFLHdCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDakMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQUUsY0FBTSwyQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO09BQUU7QUFDM0Usb0JBQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM1QixNQUFNO0FBQ0wsVUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDekI7R0FDRjtBQUNELGtCQUFnQixFQUFFLDBCQUFTLElBQUksRUFBRTtBQUMvQixXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDM0I7O0FBRUQsaUJBQWUsRUFBRSx5QkFBUyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ3ZDLFFBQUksZ0JBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxvQkFBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCLE1BQU07QUFDTCxVQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtBQUNsQyxjQUFNLHlFQUEwRCxJQUFJLG9CQUFpQixDQUFDO09BQ3ZGO0FBQ0QsVUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDL0I7R0FDRjtBQUNELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUI7O0FBRUQsbUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFBRSxjQUFNLDJCQUFjLDRDQUE0QyxDQUFDLENBQUM7T0FBRTtBQUM5RSxvQkFBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQy9CLE1BQU07QUFDTCxVQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUM1QjtHQUNGO0FBQ0QscUJBQW1CLEVBQUUsNkJBQVMsSUFBSSxFQUFFO0FBQ2xDLFdBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUM5QjtDQUNGLENBQUM7O0FBRUssSUFBSSxHQUFHLEdBQUcsb0JBQU8sR0FBRyxDQUFDOzs7UUFFcEIsV0FBVztRQUFFLE1BQU0iLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlRnJhbWUsIGV4dGVuZCwgdG9TdHJpbmd9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdEhlbHBlcnN9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnN9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnNC4wLjEwJztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDc7XG5cbmV4cG9ydCBjb25zdCBSRVZJU0lPTl9DSEFOR0VTID0ge1xuICAxOiAnPD0gMS4wLnJjLjInLCAvLyAxLjAucmMuMiBpcyBhY3R1YWxseSByZXYyIGJ1dCBkb2Vzbid0IHJlcG9ydCBpdFxuICAyOiAnPT0gMS4wLjAtcmMuMycsXG4gIDM6ICc9PSAxLjAuMC1yYy40JyxcbiAgNDogJz09IDEueC54JyxcbiAgNTogJz09IDIuMC4wLWFscGhhLngnLFxuICA2OiAnPj0gMi4wLjAtYmV0YS4xJyxcbiAgNzogJz49IDQuMC4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuaGVscGVycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmhlbHBlcnNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lLCBwYXJ0aWFsKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGV4dGVuZCh0aGlzLnBhcnRpYWxzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiBwYXJ0aWFsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKGBBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgcGFydGlhbCBjYWxsZWQgXCIke25hbWV9XCIgYXMgdW5kZWZpbmVkYCk7XG4gICAgICB9XG4gICAgICB0aGlzLnBhcnRpYWxzW25hbWVdID0gcGFydGlhbDtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMucGFydGlhbHNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJEZWNvcmF0b3I6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGRlY29yYXRvcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHtjcmVhdGVGcmFtZSwgbG9nZ2VyfTtcbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/base.js\n// module id = jMIp\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-jg-leaderboard',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.jg-leaderboard');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/jg-leaderboard/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport flatpickr from \"flatpickr\";\r\nimport moment from 'moment';\r\nimport baseDatePickerConfig from 'base-datepicker-config';\r\nimport createEvent from 'create-event';\r\nimport $ from 'jquery';\r\n\r\nexport default class RangePicker extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n this.$container = $(this.container);\r\n\r\n this.wrapper = null;\r\n let $wrapper = this.$container.parent('.js-rangepicker-wrapper');\r\n if ($wrapper.length) {\r\n this.wrapper = $wrapper[0];\r\n }\r\n }\r\n\r\n init() {\r\n this.currentValue = this.container.value;\r\n let rangePickerElement = this.container.cloneNode(false);\r\n rangePickerElement.classList.add('flatpickr');\r\n this.container.parentNode.insertBefore(rangePickerElement, this.container);\r\n let calendar = new flatpickr(rangePickerElement, Object.assign({}, baseDatePickerConfig, {\r\n dateFormat: 'j M y',\r\n mode: \"range\",\r\n disableMobile: true,\r\n clickOpens: false,\r\n onClose: (value) => {\r\n let newValue = this.serializeValue(value);\r\n if (newValue !== this.currentValue) {\r\n this.currentValue = newValue;\r\n this.change(newValue);\r\n }\r\n if (this.wrapper) {\r\n this.wrapper.classList.remove('is-opened');\r\n }\r\n },\r\n onOpen: () => {\r\n if (this.wrapper) {\r\n this.wrapper.classList.add('is-opened');\r\n }\r\n }\r\n }));\r\n rangePickerElement.addEventListener(\"change\", (e) => {\r\n e.stopPropagation();\r\n });\r\n rangePickerElement.addEventListener('click', (e) => {\r\n calendar.toggle();\r\n });\r\n this.container.setAttribute('type', 'hidden');\r\n\r\n }\r\n\r\n change(newValue) {\r\n this.container.value = newValue;\r\n this.container.dispatchEvent(createEvent(\"change\"));\r\n this.container.dispatchEvent(createEvent(\"input\"));\r\n }\r\n\r\n serializeValue(dates) {\r\n if (dates.length === 2) {\r\n return dates.map(item => moment(item).format('YYYY-MM-DD')).join('|');\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n\r\n\r\nRangePicker.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/rangepicker/js/generic.rangepicker.js","import Component from 'generic.basecomponent';\r\nimport app from 'app-instance';\r\nimport Stickyfill from 'stickyfilljs';\r\nimport tableTemplate from '../html/table.hbs';\r\nimport basketManager from '../../shop/js/basket-manager';\r\n\r\n\r\nexport default class PaymentSummary extends Component {\r\n constructor(el) {\r\n super(el);\r\n\r\n this.onProductChange = this.onProductChange.bind(this);\r\n this.onDonationChange = this.onDonationChange.bind(this);\r\n this.renderContainerSelector = '.js-payment-summary__container';\r\n this.productSelector = '.js-payment-summary__product';\r\n this.productOptionSelector = '.js-payment-summary__product-option';\r\n this.productEnableSelector = '.js-payment-summary__add-product';\r\n this.productPriceSelector = '.js-payment-summary__product-price';\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.renderContainer = this.container.querySelector(this.renderContainerSelector);\r\n this.productNodes = this.container.querySelectorAll(this.productSelector);\r\n\r\n\r\n Stickyfill.add(this.renderContainer);\r\n\r\n app.addListener('donateAmount:input', this.onDonationChange.bind(this));\r\n\r\n for (let i = 0; i < this.productNodes.length; i++) {\r\n this.productNodes[i].addEventListener('change', this.onProductChange);\r\n }\r\n\r\n this.data = this.getInitialData();\r\n this.calcTotal();\r\n this.render();\r\n }\r\n\r\n getInitialData() {\r\n const initialDataString = this.container.getAttribute('data-payment-summary');\r\n let initialData = {};\r\n try {\r\n initialData = JSON.parse(initialDataString);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n if (typeof initialData === 'object') {\r\n for (let i = 0; i < this.productNodes.length; i++) {\r\n let productInfoObj = {};\r\n\r\n try {\r\n productInfoObj = JSON.parse(this.productNodes[i].getAttribute('data-payment-summary-product'));\r\n productInfoObj.id = this.productNodes[i].getAttribute('data-payment-summary-product-id');\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n const productRadio = this.productNodes[i].querySelector(this.productEnableSelector);\r\n productInfoObj.isAdded = (productRadio === null) || (productRadio && productRadio.checked);\r\n\r\n const optionNodes = [...this.productNodes[i].querySelectorAll(this.productOptionSelector)];\r\n\r\n productInfoObj.options = this.getInitialOptions(optionNodes);\r\n productInfoObj.preparedOptions = basketManager.prepareItemOptions(productInfoObj.options);\r\n productInfoObj.priceNode = this.productNodes[i].querySelector(this.productPriceSelector);\r\n\r\n\r\n initialData.items.forEach((item) => {\r\n if (typeof item.products === 'undefined') {\r\n item.products = [];\r\n }\r\n if (item.id.toString() === productInfoObj.attendeeId.toString()) {\r\n item.products.push(productInfoObj);\r\n }\r\n });\r\n }\r\n }\r\n\r\n return initialData;\r\n }\r\n\r\n getInitialOptions(optionNodes) {\r\n const options = [];\r\n optionNodes.forEach((option) => {\r\n const optionId = option.getAttribute('data-shop-item-option-id');\r\n options.push({ id: optionId, element: option });\r\n });\r\n\r\n return options;\r\n }\r\n\r\n render() {\r\n this.renderContainer.innerHTML = tableTemplate(this.data);\r\n }\r\n\r\n onProductChange(e) {\r\n const productNode = e.currentTarget;\r\n\r\n this.getProductInfo(productNode).then(() => {\r\n this.calcTotal();\r\n this.render();\r\n });\r\n }\r\n\r\n getProductInfo(productNode) {\r\n const productRadio = productNode.querySelector(this.productEnableSelector);\r\n const productId = productNode.getAttribute('data-payment-summary-product-id');\r\n let productInfoObj = {};\r\n\r\n try {\r\n productInfoObj = JSON.parse(productNode.getAttribute('data-payment-summary-product'));\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n\r\n const attendeeId = productInfoObj.attendeeId;\r\n\r\n const productInTree = this.getProductInTreeByIds(productId, attendeeId);\r\n productInTree.isAdded = (productRadio === null) || (productRadio && productRadio.checked);\r\n\r\n\r\n if (productInTree.isAdded) {\r\n const requestBody = this.getPriceRequestBody(productInTree);\r\n\r\n return basketManager.doItemPriceRequest(requestBody).then((result) => {\r\n productInTree.cost = result.Product.Price;\r\n productInTree.visualCost = result.Product.FormattedPrice;\r\n this.updatePriceNode(productInTree);\r\n });\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n getProductInTreeByIds(productId, attendeeId) {\r\n let productInTree;\r\n\r\n this.data.items.some((item, i) => {\r\n if (item.id.toString() === attendeeId.toString()) {\r\n item.products.some((product, j) => {\r\n if (product.id.toString() === productId.toString()) {\r\n productInTree = this.data.items[i].products[j];\r\n return true;\r\n }\r\n return false;\r\n });\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n return productInTree;\r\n }\r\n\r\n updatePriceNode(product) {\r\n product.priceNode.innerHTML = product.visualCost;\r\n }\r\n\r\n calcTotal() {\r\n let sum = 0;\r\n this.data.items.forEach((item) => {\r\n sum += item.cost;\r\n if (item.products) {\r\n item.products.forEach((product) => {\r\n if (product.isAdded) {\r\n sum += product.cost;\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (this.data.donation) {\r\n sum += this.data.donation.cost;\r\n }\r\n\r\n this.data.total = {\r\n cost: sum,\r\n visualCost: sum === 0 ? 'FREE' : `${this.data.currency}${Number(sum).toFixed(2)}`\r\n };\r\n }\r\n\r\n onDonationChange(value) {\r\n const donationVal = parseFloat(value) > 0 ? parseFloat(value) : 0;\r\n this.data.donation = this.getDonationObject(donationVal);\r\n this.calcTotal();\r\n this.render();\r\n }\r\n\r\n getDonationObject(donationVal) {\r\n if (donationVal === 0) {\r\n return null;\r\n }\r\n\r\n return {\r\n cost: donationVal,\r\n visualCost: `${this.data.currency}${donationVal}`\r\n };\r\n }\r\n\r\n getPriceRequestBody(product) {\r\n const result = {\r\n Id: product.id,\r\n };\r\n product.preparedOptions = basketManager.prepareItemOptions(product.options);\r\n if (product.preparedOptions.length) {\r\n result.Options = product.preparedOptions;\r\n }\r\n result.Quantity = 1;\r\n return result;\r\n }\r\n\r\n\r\n destroy() {\r\n super.destroy();\r\n\r\n for (let i = 0; i < this.productNodes.length; i++) {\r\n this.productNodes[i].removeEventListener('change', this.onProductChange);\r\n }\r\n this.container.classList.remove('js-payment-summary-inited');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/payment-summary/js/generic.payment-summary.js","\r\nimport './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nconst factoryInstance = new Factory({\r\n className: 'js-account',\r\n ensure: (resolve, callAfter) => {\r\n const instance = require('./js/generic.account');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/account/main.js","'use strict';\r\n\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-gift-aid',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.gift-aid');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/gift-aid/main.js","/*! lazysizes - v4.0.0-rc3 */\n!function(a,b){var c=function(){b(a.lazySizes),a.removeEventListener(\"lazyunveilread\",c,!0)};b=b.bind(null,a,a.document),\"object\"==typeof module&&module.exports?b(require(\"lazysizes\")):a.lazySizes?c():a.addEventListener(\"lazyunveilread\",c,!0)}(window,function(a,b,c){\"use strict\";var d,e=b.createElement(\"img\");!(\"srcset\"in e)||\"sizes\"in e||a.HTMLPictureElement||(d=/^picture$/i,b.addEventListener(\"lazybeforeunveil\",function(a){if(a.detail.instance==c){var e,f,g,h,i,j,k;!a.defaultPrevented&&!lazySizesConfig.noIOSFix&&(e=a.target)&&(g=e.getAttribute(lazySizesConfig.srcsetAttr))&&(f=e.parentNode)&&((i=d.test(f.nodeName||\"\"))||(h=e.getAttribute(\"sizes\")||e.getAttribute(lazySizesConfig.sizesAttr)))&&(j=i?f:b.createElement(\"picture\"),e._lazyImgSrc||Object.defineProperty(e,\"_lazyImgSrc\",{value:b.createElement(\"source\"),writable:!0}),k=e._lazyImgSrc,h&&k.setAttribute(\"sizes\",h),k.setAttribute(lazySizesConfig.srcsetAttr,g),e.setAttribute(\"data-pfsrcset\",g),e.removeAttribute(lazySizesConfig.srcsetAttr),i||(f.insertBefore(j,e),j.appendChild(e)),j.insertBefore(k,e))}}))});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lazysizes/plugins/fix-ios-sizes/fix-ios-sizes.min.js\n// module id = kvc/\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/centered-button/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/form-container/main.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-web\",\n \"use\": \"icon-web-usage\",\n \"viewBox\": \"171 108 314.1 314.1\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/web.svg\n// module id = lKHb\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-donate-menu-trigger',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.donate-menu');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/donate-menu/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/ways-you-can-help/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/related-content/main.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-header-angle\",\n \"use\": \"icon-header-angle-usage\",\n \"viewBox\": \"0 0 907.1 283.5\",\n \"content\": \"\\r\\n\\t\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/header-angle.svg\n// module id = noH7\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7eUNBQXVDLGdDQUFnQzs7OzsyQkFDOUMsZ0JBQWdCOzs7O29DQUNQLDBCQUEwQjs7Ozt5QkFDckMsY0FBYzs7OzswQkFDYixlQUFlOzs7OzZCQUNaLGtCQUFrQjs7OzsyQkFDcEIsZ0JBQWdCOzs7O0FBRWxDLFNBQVMsc0JBQXNCLENBQUMsUUFBUSxFQUFFO0FBQy9DLHlDQUEyQixRQUFRLENBQUMsQ0FBQztBQUNyQywyQkFBYSxRQUFRLENBQUMsQ0FBQztBQUN2QixvQ0FBc0IsUUFBUSxDQUFDLENBQUM7QUFDaEMseUJBQVcsUUFBUSxDQUFDLENBQUM7QUFDckIsMEJBQVksUUFBUSxDQUFDLENBQUM7QUFDdEIsNkJBQWUsUUFBUSxDQUFDLENBQUM7QUFDekIsMkJBQWEsUUFBUSxDQUFDLENBQUM7Q0FDeEIiLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZWdpc3RlckJsb2NrSGVscGVyTWlzc2luZyBmcm9tICcuL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcnO1xuaW1wb3J0IHJlZ2lzdGVyRWFjaCBmcm9tICcuL2hlbHBlcnMvZWFjaCc7XG5pbXBvcnQgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJJZiBmcm9tICcuL2hlbHBlcnMvaWYnO1xuaW1wb3J0IHJlZ2lzdGVyTG9nIGZyb20gJy4vaGVscGVycy9sb2cnO1xuaW1wb3J0IHJlZ2lzdGVyTG9va3VwIGZyb20gJy4vaGVscGVycy9sb29rdXAnO1xuaW1wb3J0IHJlZ2lzdGVyV2l0aCBmcm9tICcuL2hlbHBlcnMvd2l0aCc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckRlZmF1bHRIZWxwZXJzKGluc3RhbmNlKSB7XG4gIHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJFYWNoKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJJZihpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyTG9nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb29rdXAoaW5zdGFuY2UpO1xuICByZWdpc3RlcldpdGgoaW5zdGFuY2UpO1xufVxuIl19\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/helpers.js\n// module id = oB/h\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/get-in-touch/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport scroller from 'scroller';\r\n\r\nexport default class MoveTo extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.triggers = document.querySelectorAll('.js-move-to-trigger');\r\n this.moveToBlock = document.querySelector('.js-move-to-block');\r\n this.triggers.forEach(x => x.addEventListener('click', this.moveTo.bind(this)));\r\n }\r\n\r\n moveTo() {\r\n return scroller.scrollToElement(this.moveToBlock);\r\n }\r\n}\r\n\r\nMoveTo.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/move-to/js/generic.move-to.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/payment-nav/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport 'lazysizes/plugins/object-fit/ls.object-fit';\r\nimport 'lazysizes/plugins/bgset/ls.bgset';\r\nimport 'lazysizes/plugins/respimg/ls.respimg';\r\nimport 'lazysizes/plugins/parent-fit/ls.parent-fit';\r\nimport 'lazysizes';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/responsive-images/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport app from 'app-instance';\r\n\r\nexport default class PinSwitcher extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.switcherItemSelector = '.js-google-pin-switcher-item';\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.mapId = this.container.getAttribute('data-map-id');\r\n let items = [...this.container.querySelectorAll(this.switcherItemSelector)];\r\n items.forEach((item, index) => {\r\n item.addEventListener('click', () => {\r\n app.emitEvent(`map:${this.mapId}`, [index]);\r\n })\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/map/js/generic.pin-switcher.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\nimport menuManager from 'menu-manager';\r\n\r\nexport const MOBILE_MENU_ID = 'mobile';\r\n\r\nexport default class Hamburger extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.defineVariables();\r\n this.initHamburger();\r\n }\r\n\r\n defineVariables() {\r\n this.menuId = MOBILE_MENU_ID;\r\n\r\n this.isOpened = false;\r\n this.$hamburger = $(\".js-hamburger\");\r\n this.$header = $(\".js-header\");\r\n this.$body = $(\"body\");\r\n }\r\n\r\n initHamburger() {\r\n this.$hamburger.on('click', this.toggleMenu.bind(this));\r\n\r\n menuManager.init(this.menuId, {\r\n default: {\r\n level: 0,\r\n close: this.close.bind(this),\r\n open: this.open.bind(this)\r\n },\r\n desktop: {\r\n isEnabled: false\r\n }\r\n });\r\n }\r\n\r\n toggleMenu() {\r\n if (this.isOpened) {\r\n menuManager.close(this.menuId);\r\n } else {\r\n menuManager.open(this.menuId);\r\n }\r\n }\r\n\r\n open() {\r\n this.isOpened = true;\r\n this.$header.addClass(\"is-mobile-open\");\r\n }\r\n\r\n close() {\r\n this.isOpened = false;\r\n this.$header.removeClass(\"is-mobile-open\");\r\n }\r\n}\r\n\r\nHamburger.id = 0;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/hamburger/js/generic.hamburger.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-doc-doc\",\n \"use\": \"icon-doc-doc-usage\",\n \"viewBox\": \"0 0 30.4 32.69\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/doc-doc.svg\n// module id = q+S6\n// module chunks = 0","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-arrow-down-thin\",\n \"use\": \"icon-arrow-down-thin-usage\",\n \"viewBox\": \"0 0 62.58 36.29\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/arrow-down-thin.svg\n// module id = qExC\n// module chunks = 0","'use strict';\r\n\r\nimport $ from 'jquery';\r\n\r\nlet config = {\r\n static: true,\r\n onReady() {\r\n $(window).on('flatpickr:clear', $.proxy(function () {\r\n this.clear();\r\n }, this));\r\n },\r\n prevArrow: ``,\r\n nextArrow: ``,\r\n};\r\n\r\nexport default config;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/general/js/base-datepicker-config.js","/* global window */\n'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n var root = typeof global !== 'undefined' ? global : window,\n $Handlebars = root.Handlebars;\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (root.Handlebars === Handlebars) {\n root.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOztBQUVsQyxNQUFJLElBQUksR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLEdBQUcsTUFBTSxHQUFHLE1BQU07TUFDdEQsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7O0FBRWxDLFlBQVUsQ0FBQyxVQUFVLEdBQUcsWUFBVztBQUNqQyxRQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO0FBQ2xDLFVBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQy9CO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIHdpbmRvdyAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oSGFuZGxlYmFycykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBsZXQgcm9vdCA9IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93LFxuICAgICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js\n// module id = qfOY\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/footer/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\n\r\nexport default class ContentHeading extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.init();\r\n this.maxNestedLevelsCount = 5;\r\n }\r\n\r\n init() {\r\n let parentModule = null;\r\n let parent = this.container;\r\n let levelCount = 0;\r\n while (parent.parentElement !== null) {\r\n parent = parent.parentElement;\r\n\r\n if (parent.classList.contains('module') && parent.parentElement && parent.parentElement.classList.contains('module--content')) {\r\n parentModule = parent;\r\n break;\r\n }\r\n\r\n levelCount++;\r\n if (levelCount > this.maxNestedLevelsCount) {\r\n break;\r\n }\r\n }\r\n\r\n if (parentModule) {\r\n parentModule.classList.add('module--content-heading');\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/content-heading/js/generic.content-heading.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/social-links/main.js","'use strict';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-jg-total',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.jg-total');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/jg-total/main.js","\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport app from 'app-instance';\r\n\r\n\r\nexport default class RoundDonation extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.options = JSON.parse(this.container.getAttribute('data-round-donation-options'));\r\n this.radios = [...this.container.querySelectorAll('.js-round-donation__radio')];\r\n this.customInput = this.container.querySelector('.js-round-donation__custom');\r\n this.onChange = this.onChange.bind(this);\r\n\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.container.addEventListener('change', this.onChange);\r\n this.customInput.addEventListener('input', this.onChange);\r\n\r\n const value = this.getValue();\r\n app.emitEvent('donateAmount:change', [value]);\r\n }\r\n\r\n getValue() {\r\n let value = null;\r\n let checkedRadio = null;\r\n this.radios.forEach((radio) => {\r\n if (radio.checked) {\r\n checkedRadio = radio;\r\n }\r\n });\r\n\r\n if (checkedRadio) {\r\n const checkedValue = checkedRadio.value;\r\n if (checkedValue.toString() === this.options.customDonation.toString()) {\r\n value = parseFloat(this.customInput.value);\r\n } else if (checkedValue.toString() === this.options.noDonation.toString()) {\r\n value = 0;\r\n } else {\r\n value = parseFloat(checkedValue);\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n onChange() {\r\n const val = this.getValue();\r\n app.emitEvent('donateAmount:change', [val]);\r\n }\r\n\r\n destroy() {\r\n super.destroy();\r\n this.container.removeEventListener('change', this.onChange);\r\n this.customInput.removeEventListener('input', this.onChange);\r\n this.$container.removeClass('js-round-donation-inited');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/round-donation/js/generic.round-donation.js","/*! lazysizes - v4.0.0-rc3 */\n!function(a,b){var c=function(){b(a.lazySizes),a.removeEventListener(\"lazyunveilread\",c,!0)};b=b.bind(null,a,a.document),\"object\"==typeof module&&module.exports?b(require(\"lazysizes\")):a.lazySizes?c():a.addEventListener(\"lazyunveilread\",c,!0)}(window,function(a,b,c){\"use strict\";if(a.addEventListener){var d=/\\s+/g,e=/\\s*\\|\\s+|\\s+\\|\\s*/g,f=/^(.+?)(?:\\s+\\[\\s*(.+?)\\s*\\])?$/,g=/\\(|\\)|'/,h={contain:1,cover:1},i=function(a){var b=c.gW(a,a.parentNode);return(!a._lazysizesWidth||b>a._lazysizesWidth)&&(a._lazysizesWidth=b),a._lazysizesWidth},j=function(a){var b;return b=(getComputedStyle(a)||{getPropertyValue:function(){}}).getPropertyValue(\"background-size\"),!h[b]&&h[a.style.backgroundSize]&&(b=a.style.backgroundSize),b},k=function(a,c,g){var h=b.createElement(\"picture\"),i=c.getAttribute(lazySizesConfig.sizesAttr),j=c.getAttribute(\"data-ratio\"),k=c.getAttribute(\"data-optimumx\");c._lazybgset&&c._lazybgset.parentNode==c&&c.removeChild(c._lazybgset),Object.defineProperty(g,\"_lazybgset\",{value:c,writable:!0}),Object.defineProperty(c,\"_lazybgset\",{value:h,writable:!0}),a=a.replace(d,\" \").split(e),h.style.display=\"none\",g.className=lazySizesConfig.lazyClass,1!=a.length||i||(i=\"auto\"),a.forEach(function(a){var c=b.createElement(\"source\");i&&\"auto\"!=i&&c.setAttribute(\"sizes\",i),a.match(f)&&(c.setAttribute(lazySizesConfig.srcsetAttr,RegExp.$1),RegExp.$2&&c.setAttribute(\"media\",lazySizesConfig.customMedia[RegExp.$2]||RegExp.$2)),h.appendChild(c)}),i&&(g.setAttribute(lazySizesConfig.sizesAttr,i),c.removeAttribute(lazySizesConfig.sizesAttr),c.removeAttribute(\"sizes\")),k&&g.setAttribute(\"data-optimumx\",k),j&&g.setAttribute(\"data-ratio\",j),h.appendChild(g),c.appendChild(h)},l=function(a){if(a.target._lazybgset){var b=a.target,d=b._lazybgset,e=b.currentSrc||b.src;e&&(d.style.backgroundImage=\"url(\"+(g.test(e)?JSON.stringify(e):e)+\")\"),b._lazybgsetLoading&&(c.fire(d,\"_lazyloaded\",{},!1,!0),delete b._lazybgsetLoading)}};addEventListener(\"lazybeforeunveil\",function(a){var d,e,f;!a.defaultPrevented&&(d=a.target.getAttribute(\"data-bgset\"))&&(f=a.target,e=b.createElement(\"img\"),e.alt=\"\",e._lazybgsetLoading=!0,a.detail.firesLoad=!0,k(d,f,e),setTimeout(function(){c.loader.unveil(e),c.rAF(function(){c.fire(e,\"_lazyloaded\",{},!0,!0),e.complete&&l({target:e})})}))}),b.addEventListener(\"load\",l,!0),a.addEventListener(\"lazybeforesizes\",function(a){if(a.detail.instance==c&&a.target._lazybgset&&a.detail.dataAttr){var b=a.target._lazybgset,d=j(b);h[d]&&(a.target._lazysizesParentFit=d,c.rAF(function(){a.target.setAttribute(\"data-parent-fit\",d),a.target._lazysizesParentFit&&delete a.target._lazysizesParentFit}))}},!0),b.documentElement.addEventListener(\"lazybeforesizes\",function(a){!a.defaultPrevented&&a.target._lazybgset&&a.detail.instance==c&&(a.detail.width=i(a.target._lazybgset))})}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lazysizes/plugins/bgset/ls.bgset.min.js\n// module id = s7RI\n// module chunks = 0","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Cleave\"] = factory();\n\telse\n\t\troot[\"Cleave\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\n\t/**\n\t * Construct a new Cleave instance by passing the configuration object\n\t *\n\t * @param {String / HTMLElement} element\n\t * @param {Object} opts\n\t */\n\tvar Cleave = function (element, opts) {\n\t var owner = this;\n\n\t if (typeof element === 'string') {\n\t owner.element = document.querySelector(element);\n\t } else {\n\t owner.element = ((typeof element.length !== 'undefined') && element.length > 0) ? element[0] : element;\n\t }\n\n\t if (!owner.element) {\n\t throw new Error('[cleave.js] Please check the element');\n\t }\n\n\t opts.initValue = owner.element.value;\n\n\t owner.properties = Cleave.DefaultProperties.assign({}, opts);\n\n\t owner.init();\n\t};\n\n\tCleave.prototype = {\n\t init: function () {\n\t var owner = this, pps = owner.properties;\n\n\t // no need to use this lib\n\t if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {\n\t owner.onInput(pps.initValue);\n\n\t return;\n\t }\n\n\t pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n\n\t owner.isAndroid = Cleave.Util.isAndroid();\n\t owner.lastInputValue = '';\n\n\t owner.onChangeListener = owner.onChange.bind(owner);\n\t owner.onKeyDownListener = owner.onKeyDown.bind(owner);\n\t owner.onCutListener = owner.onCut.bind(owner);\n\t owner.onCopyListener = owner.onCopy.bind(owner);\n\n\t owner.element.addEventListener('input', owner.onChangeListener);\n\t owner.element.addEventListener('keydown', owner.onKeyDownListener);\n\t owner.element.addEventListener('cut', owner.onCutListener);\n\t owner.element.addEventListener('copy', owner.onCopyListener);\n\n\n\t owner.initPhoneFormatter();\n\t owner.initDateFormatter();\n\t owner.initNumeralFormatter();\n\n\t owner.onInput(pps.initValue);\n\t },\n\n\t initNumeralFormatter: function () {\n\t var owner = this, pps = owner.properties;\n\n\t if (!pps.numeral) {\n\t return;\n\t }\n\n\t pps.numeralFormatter = new Cleave.NumeralFormatter(\n\t pps.numeralDecimalMark,\n\t pps.numeralIntegerScale,\n\t pps.numeralDecimalScale,\n\t pps.numeralThousandsGroupStyle,\n\t pps.numeralPositiveOnly,\n\t pps.stripLeadingZeroes,\n\t pps.delimiter\n\t );\n\t },\n\n\t initDateFormatter: function () {\n\t var owner = this, pps = owner.properties;\n\n\t if (!pps.date) {\n\t return;\n\t }\n\n\t pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern);\n\t pps.blocks = pps.dateFormatter.getBlocks();\n\t pps.blocksLength = pps.blocks.length;\n\t pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n\t },\n\n\t initPhoneFormatter: function () {\n\t var owner = this, pps = owner.properties;\n\n\t if (!pps.phone) {\n\t return;\n\t }\n\n\t // Cleave.AsYouTypeFormatter should be provided by\n\t // external google closure lib\n\t try {\n\t pps.phoneFormatter = new Cleave.PhoneFormatter(\n\t new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),\n\t pps.delimiter\n\t );\n\t } catch (ex) {\n\t throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');\n\t }\n\t },\n\n\t onKeyDown: function (event) {\n\t var owner = this, pps = owner.properties,\n\t charCode = event.which || event.keyCode,\n\t Util = Cleave.Util,\n\t currentValue = owner.element.value;\n\n\t if (Util.isAndroidBackspaceKeydown(owner.lastInputValue, currentValue)) {\n\t charCode = 8;\n\t }\n\n\t owner.lastInputValue = currentValue;\n\n\t // hit backspace when last character is delimiter\n\t if (charCode === 8 && Util.isDelimiter(currentValue.slice(-pps.delimiterLength), pps.delimiter, pps.delimiters)) {\n\t pps.backspace = true;\n\n\t return;\n\t }\n\n\t pps.backspace = false;\n\t },\n\n\t onChange: function () {\n\t this.onInput(this.element.value);\n\t },\n\n\t onCut: function (e) {\n\t this.copyClipboardData(e);\n\t this.onInput('');\n\t },\n\n\t onCopy: function (e) {\n\t this.copyClipboardData(e);\n\t },\n\n\t copyClipboardData: function (e) {\n\t var owner = this,\n\t pps = owner.properties,\n\t Util = Cleave.Util,\n\t inputValue = owner.element.value,\n\t textToCopy = '';\n\n\t if (!pps.copyDelimiter) {\n\t textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);\n\t } else {\n\t textToCopy = inputValue;\n\t }\n\n\t try {\n\t if (e.clipboardData) {\n\t e.clipboardData.setData('Text', textToCopy);\n\t } else {\n\t window.clipboardData.setData('Text', textToCopy);\n\t }\n\n\t e.preventDefault();\n\t } catch (ex) {\n\t // empty\n\t }\n\t },\n\n\t onInput: function (value) {\n\t var owner = this, pps = owner.properties,\n\t Util = Cleave.Util;\n\n\t // case 1: delete one more character \"4\"\n\t // 1234*| -> hit backspace -> 123|\n\t // case 2: last character is not delimiter which is:\n\t // 12|34* -> hit backspace -> 1|34*\n\t // note: no need to apply this for numeral mode\n\t if (!pps.numeral && pps.backspace && !Util.isDelimiter(value.slice(-pps.delimiterLength), pps.delimiter, pps.delimiters)) {\n\t value = Util.headStr(value, value.length - pps.delimiterLength);\n\t }\n\n\t // phone formatter\n\t if (pps.phone) {\n\t pps.result = pps.phoneFormatter.format(value);\n\t owner.updateValueState();\n\n\t return;\n\t }\n\n\t // numeral formatter\n\t if (pps.numeral) {\n\t pps.result = pps.prefix + pps.numeralFormatter.format(value);\n\t owner.updateValueState();\n\n\t return;\n\t }\n\n\t // date\n\t if (pps.date) {\n\t value = pps.dateFormatter.getValidatedDate(value);\n\t }\n\n\t // strip delimiters\n\t value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);\n\n\t // strip prefix\n\t value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength);\n\n\t // strip non-numeric characters\n\t value = pps.numericOnly ? Util.strip(value, /[^\\d]/g) : value;\n\n\t // convert case\n\t value = pps.uppercase ? value.toUpperCase() : value;\n\t value = pps.lowercase ? value.toLowerCase() : value;\n\n\t // prefix\n\t if (pps.prefix) {\n\t value = pps.prefix + value;\n\n\t // no blocks specified, no need to do formatting\n\t if (pps.blocksLength === 0) {\n\t pps.result = value;\n\t owner.updateValueState();\n\n\t return;\n\t }\n\t }\n\n\t // update credit card props\n\t if (pps.creditCard) {\n\t owner.updateCreditCardPropsByValue(value);\n\t }\n\n\t // strip over length characters\n\t value = Util.headStr(value, pps.maxLength);\n\n\t // apply blocks\n\t pps.result = Util.getFormattedValue(value, pps.blocks, pps.blocksLength, pps.delimiter, pps.delimiters);\n\n\t owner.updateValueState();\n\t },\n\n\t updateCreditCardPropsByValue: function (value) {\n\t var owner = this, pps = owner.properties,\n\t Util = Cleave.Util,\n\t creditCardInfo;\n\n\t // At least one of the first 4 characters has changed\n\t if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {\n\t return;\n\t }\n\n\t creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);\n\n\t pps.blocks = creditCardInfo.blocks;\n\t pps.blocksLength = pps.blocks.length;\n\t pps.maxLength = Util.getMaxLength(pps.blocks);\n\n\t // credit card type changed\n\t if (pps.creditCardType !== creditCardInfo.type) {\n\t pps.creditCardType = creditCardInfo.type;\n\n\t pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);\n\t }\n\t },\n\n\t setCurrentSelection: function (endPos, oldValue) {\n\t var elem = this.element;\n\n\t // If cursor was at the end of value, just place it back.\n\t // Because new value could contain additional chars.\n\t if (oldValue.length === endPos) {\n\t return;\n\t }\n\n\t if (elem.createTextRange) {\n\t var range = elem.createTextRange();\n\n\t range.move('character', endPos);\n\t range.select();\n\t } else {\n\t elem.setSelectionRange(endPos, endPos);\n\t }\n\t },\n\n\t updateValueState: function () {\n\t var owner = this;\n\t var endPos = owner.element.selectionEnd;\n\t var oldValue = owner.element.value;\n\n\t // fix Android browser type=\"text\" input field\n\t // cursor not jumping issue\n\t if (owner.isAndroid) {\n\t window.setTimeout(function () {\n\t owner.element.value = owner.properties.result;\n\t owner.setCurrentSelection(endPos, oldValue);\n\t }, 1);\n\n\t return;\n\t }\n\n\t owner.element.value = owner.properties.result;\n\t owner.setCurrentSelection(endPos, oldValue);\n\t },\n\n\t setPhoneRegionCode: function (phoneRegionCode) {\n\t var owner = this, pps = owner.properties;\n\n\t pps.phoneRegionCode = phoneRegionCode;\n\t owner.initPhoneFormatter();\n\t owner.onChange();\n\t },\n\n\t setRawValue: function (value) {\n\t var owner = this, pps = owner.properties;\n\n\t value = value !== undefined && value !== null ? value.toString() : '';\n\n\t if (pps.numeral) {\n\t value = value.replace('.', pps.numeralDecimalMark);\n\t }\n\n\t owner.element.value = value;\n\t owner.onInput(value);\n\t },\n\n\t getRawValue: function () {\n\t var owner = this,\n\t pps = owner.properties,\n\t Util = Cleave.Util,\n\t rawValue = owner.element.value;\n\n\t if (pps.rawValueTrimPrefix) {\n\t rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength);\n\t }\n\n\t if (pps.numeral) {\n\t rawValue = pps.numeralFormatter.getRawValue(rawValue);\n\t } else {\n\t rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);\n\t }\n\n\t return rawValue;\n\t },\n\n\t getFormattedValue: function () {\n\t return this.element.value;\n\t },\n\n\t destroy: function () {\n\t var owner = this;\n\n\t owner.element.removeEventListener('input', owner.onChangeListener);\n\t owner.element.removeEventListener('keydown', owner.onKeyDownListener);\n\t owner.element.removeEventListener('cut', owner.onCutListener);\n\t owner.element.removeEventListener('copy', owner.onCopyListener);\n\t },\n\n\t toString: function () {\n\t return '[Cleave Object]';\n\t }\n\t};\n\n\tCleave.NumeralFormatter = __webpack_require__(1);\n\tCleave.DateFormatter = __webpack_require__(2);\n\tCleave.PhoneFormatter = __webpack_require__(3);\n\tCleave.CreditCardDetector = __webpack_require__(4);\n\tCleave.Util = __webpack_require__(5);\n\tCleave.DefaultProperties = __webpack_require__(6);\n\n\t// for angular directive\n\t((typeof global === 'object' && global) ? global : window)['Cleave'] = Cleave;\n\n\t// CommonJS\n\tmodule.exports = Cleave;\n\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar NumeralFormatter = function (numeralDecimalMark,\n\t numeralIntegerScale,\n\t numeralDecimalScale,\n\t numeralThousandsGroupStyle,\n\t numeralPositiveOnly,\n\t stripLeadingZeroes,\n\t delimiter) {\n\t var owner = this;\n\n\t owner.numeralDecimalMark = numeralDecimalMark || '.';\n\t owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0;\n\t owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;\n\t owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;\n\t owner.numeralPositiveOnly = !!numeralPositiveOnly;\n\t owner.stripLeadingZeroes = (undefined == stripLeadingZeroes) ? true : stripLeadingZeroes;\n\t owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';\n\t owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n\t};\n\n\tNumeralFormatter.groupStyle = {\n\t thousand: 'thousand',\n\t lakh: 'lakh',\n\t wan: 'wan'\n\t};\n\n\tNumeralFormatter.prototype = {\n\t getRawValue: function (value) {\n\t return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');\n\t },\n\n\t format: function (value) {\n\t var owner = this, parts, partInteger, partDecimal = '';\n\n\t // strip alphabet letters\n\t value = value.replace(/[A-Za-z]/g, '')\n\t // replace the first decimal mark with reserved placeholder\n\t .replace(owner.numeralDecimalMark, 'M')\n\n\t // strip non numeric letters except minus and \"M\"\n\t // this is to ensure prefix has been stripped\n\t .replace(/[^\\dM-]/g, '')\n\n\t // replace the leading minus with reserved placeholder\n\t .replace(/^\\-/, 'N')\n\n\t // strip the other minus sign (if present)\n\t .replace(/\\-/g, '')\n\n\t // replace the minus sign (if present)\n\t .replace('N', owner.numeralPositiveOnly ? '' : '-')\n\n\t // replace decimal mark\n\t .replace('M', owner.numeralDecimalMark);\n\n\t // strip any leading zeros\n\t if (owner.stripLeadingZeroes) {\n\t value = value.replace(/^(-)?0+(?=\\d)/, '$1');\n\t }\n\n\t partInteger = value;\n\n\t if (value.indexOf(owner.numeralDecimalMark) >= 0) {\n\t parts = value.split(owner.numeralDecimalMark);\n\t partInteger = parts[0];\n\t partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);\n\t }\n\n\t if (owner.numeralIntegerScale > 0) {\n\t partInteger = partInteger.slice(0, owner.numeralIntegerScale + (value.slice(0, 1) === '-' ? 1 : 0));\n\t }\n\n\t switch (owner.numeralThousandsGroupStyle) {\n\t case NumeralFormatter.groupStyle.lakh:\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d\\d)+\\d$)/g, '$1' + owner.delimiter);\n\n\t break;\n\n\t case NumeralFormatter.groupStyle.wan:\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d{4})+$)/g, '$1' + owner.delimiter);\n\n\t break;\n\n\t default:\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + owner.delimiter);\n\t }\n\n\t return partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');\n\t }\n\t};\n\n\tmodule.exports = NumeralFormatter;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar DateFormatter = function (datePattern) {\n\t var owner = this;\n\n\t owner.blocks = [];\n\t owner.datePattern = datePattern;\n\t owner.initBlocks();\n\t};\n\n\tDateFormatter.prototype = {\n\t initBlocks: function () {\n\t var owner = this;\n\t owner.datePattern.forEach(function (value) {\n\t if (value === 'Y') {\n\t owner.blocks.push(4);\n\t } else {\n\t owner.blocks.push(2);\n\t }\n\t });\n\t },\n\n\t getBlocks: function () {\n\t return this.blocks;\n\t },\n\n\t getValidatedDate: function (value) {\n\t var owner = this, result = '';\n\n\t value = value.replace(/[^\\d]/g, '');\n\n\t owner.blocks.forEach(function (length, index) {\n\t if (value.length > 0) {\n\t var sub = value.slice(0, length),\n\t sub0 = sub.slice(0, 1),\n\t rest = value.slice(length);\n\n\t switch (owner.datePattern[index]) {\n\t case 'd':\n\t if (sub === '00') {\n\t sub = '01';\n\t } else if (parseInt(sub0, 10) > 3) {\n\t sub = '0' + sub0;\n\t } else if (parseInt(sub, 10) > 31) {\n\t sub = '31';\n\t }\n\n\t break;\n\n\t case 'm':\n\t if (sub === '00') {\n\t sub = '01';\n\t } else if (parseInt(sub0, 10) > 1) {\n\t sub = '0' + sub0;\n\t } else if (parseInt(sub, 10) > 12) {\n\t sub = '12';\n\t }\n\n\t break;\n\t }\n\n\t result += sub;\n\n\t // update remaining string\n\t value = rest;\n\t }\n\t });\n\n\t return this.getFixedDateString(result);\n\t },\n\n\t getFixedDateString: function (value) {\n\t var owner = this, datePattern = owner.datePattern, date = [],\n\t dayIndex = 0, monthIndex = 0, yearIndex = 0,\n\t dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,\n\t day, month, year;\n\n\t // mm-dd || dd-mm\n\t if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {\n\t dayStartIndex = datePattern[0] === 'd' ? 0 : 2;\n\t monthStartIndex = 2 - dayStartIndex;\n\t day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n\t month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n\n\t date = this.getFixedDate(day, month, 0);\n\t }\n\n\t // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd\n\t if (value.length === 8) {\n\t datePattern.forEach(function (type, index) {\n\t switch (type) {\n\t case 'd':\n\t dayIndex = index;\n\t break;\n\t case 'm':\n\t monthIndex = index;\n\t break;\n\t default:\n\t yearIndex = index;\n\t break;\n\t }\n\t });\n\n\t yearStartIndex = yearIndex * 2;\n\t dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);\n\t monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);\n\n\t day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n\t month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n\t year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n\t date = this.getFixedDate(day, month, year);\n\t }\n\n\t return date.length === 0 ? value : datePattern.reduce(function (previous, current) {\n\t switch (current) {\n\t case 'd':\n\t return previous + owner.addLeadingZero(date[0]);\n\t case 'm':\n\t return previous + owner.addLeadingZero(date[1]);\n\t default:\n\t return previous + '' + (date[2] || '');\n\t }\n\t }, '');\n\t },\n\n\t getFixedDate: function (day, month, year) {\n\t day = Math.min(day, 31);\n\t month = Math.min(month, 12);\n\t year = parseInt((year || 0), 10);\n\n\t if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {\n\t day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);\n\t }\n\n\t return [day, month, year];\n\t },\n\n\t isLeapYear: function (year) {\n\t return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\n\t },\n\n\t addLeadingZero: function (number) {\n\t return (number < 10 ? '0' : '') + number;\n\t }\n\t};\n\n\tmodule.exports = DateFormatter;\n\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar PhoneFormatter = function (formatter, delimiter) {\n\t var owner = this;\n\n\t owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';\n\t owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n\n\t owner.formatter = formatter;\n\t};\n\n\tPhoneFormatter.prototype = {\n\t setFormatter: function (formatter) {\n\t this.formatter = formatter;\n\t },\n\n\t format: function (phoneNumber) {\n\t var owner = this;\n\n\t owner.formatter.clear();\n\n\t // only keep number and +\n\t phoneNumber = phoneNumber.replace(/[^\\d+]/g, '');\n\n\t // strip delimiter\n\t phoneNumber = phoneNumber.replace(owner.delimiterRE, '');\n\n\t var result = '', current, validated = false;\n\n\t for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {\n\t current = owner.formatter.inputDigit(phoneNumber.charAt(i));\n\n\t // has ()- or space inside\n\t if (/[\\s()-]/g.test(current)) {\n\t result = current;\n\n\t validated = true;\n\t } else {\n\t if (!validated) {\n\t result = current;\n\t }\n\t // else: over length input\n\t // it turns to invalid number again\n\t }\n\t }\n\n\t // strip ()\n\t // e.g. US: 7161234567 returns (716) 123-4567\n\t result = result.replace(/[()]/g, '');\n\t // replace library delimiter with user customized delimiter\n\t result = result.replace(/[\\s-]/g, owner.delimiter);\n\n\t return result;\n\t }\n\t};\n\n\tmodule.exports = PhoneFormatter;\n\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar CreditCardDetector = {\n\t blocks: {\n\t uatp: [4, 5, 6],\n\t amex: [4, 6, 5],\n\t diners: [4, 6, 4],\n\t discover: [4, 4, 4, 4],\n\t mastercard: [4, 4, 4, 4],\n\t dankort: [4, 4, 4, 4],\n\t instapayment: [4, 4, 4, 4],\n\t jcb: [4, 4, 4, 4],\n\t maestro: [4, 4, 4, 4],\n\t visa: [4, 4, 4, 4],\n\t general: [4, 4, 4, 4],\n\t generalStrict: [4, 4, 4, 7]\n\t },\n\n\t re: {\n\t // starts with 1; 15 digits, not starts with 1800 (jcb card)\n\t uatp: /^(?!1800)1\\d{0,14}/,\n\n\t // starts with 34/37; 15 digits\n\t amex: /^3[47]\\d{0,13}/,\n\n\t // starts with 6011/65/644-649; 16 digits\n\t discover: /^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,\n\n\t // starts with 300-305/309 or 36/38/39; 14 digits\n\t diners: /^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,\n\n\t // starts with 51-55/22-27; 16 digits\n\t mastercard: /^(5[1-5]|2[2-7])\\d{0,14}/,\n\n\t // starts with 5019/4175/4571; 16 digits\n\t dankort: /^(5019|4175|4571)\\d{0,12}/,\n\n\t // starts with 637-639; 16 digits\n\t instapayment: /^63[7-9]\\d{0,13}/,\n\n\t // starts with 2131/1800/35; 16 digits\n\t jcb: /^(?:2131|1800|35\\d{0,2})\\d{0,12}/,\n\n\t // starts with 50/56-58/6304/67; 16 digits\n\t maestro: /^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,\n\n\t // starts with 4; 16 digits\n\t visa: /^4\\d{0,15}/\n\t },\n\n\t getInfo: function (value, strictMode) {\n\t var blocks = CreditCardDetector.blocks,\n\t re = CreditCardDetector.re;\n\n\t // In theory, visa credit card can have up to 19 digits number.\n\t // Set strictMode to true will remove the 16 max-length restrain,\n\t // however, I never found any website validate card number like\n\t // this, hence probably you don't need to enable this option.\n\t strictMode = !!strictMode;\n\n\t if (re.amex.test(value)) {\n\t return {\n\t type: 'amex',\n\t blocks: blocks.amex\n\t };\n\t } else if (re.uatp.test(value)) {\n\t return {\n\t type: 'uatp',\n\t blocks: blocks.uatp\n\t };\n\t } else if (re.diners.test(value)) {\n\t return {\n\t type: 'diners',\n\t blocks: blocks.diners\n\t };\n\t } else if (re.discover.test(value)) {\n\t return {\n\t type: 'discover',\n\t blocks: strictMode ? blocks.generalStrict : blocks.discover\n\t };\n\t } else if (re.mastercard.test(value)) {\n\t return {\n\t type: 'mastercard',\n\t blocks: blocks.mastercard\n\t };\n\t } else if (re.dankort.test(value)) {\n\t return {\n\t type: 'dankort',\n\t blocks: blocks.dankort\n\t };\n\t } else if (re.instapayment.test(value)) {\n\t return {\n\t type: 'instapayment',\n\t blocks: blocks.instapayment\n\t };\n\t } else if (re.jcb.test(value)) {\n\t return {\n\t type: 'jcb',\n\t blocks: blocks.jcb\n\t };\n\t } else if (re.maestro.test(value)) {\n\t return {\n\t type: 'maestro',\n\t blocks: strictMode ? blocks.generalStrict : blocks.maestro\n\t };\n\t } else if (re.visa.test(value)) {\n\t return {\n\t type: 'visa',\n\t blocks: strictMode ? blocks.generalStrict : blocks.visa\n\t };\n\t } else {\n\t return {\n\t type: 'unknown',\n\t blocks: strictMode ? blocks.generalStrict : blocks.general\n\t };\n\t }\n\t }\n\t};\n\n\tmodule.exports = CreditCardDetector;\n\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar Util = {\n\t noop: function () {\n\t },\n\n\t strip: function (value, re) {\n\t return value.replace(re, '');\n\t },\n\n\t isDelimiter: function (letter, delimiter, delimiters) {\n\t // single delimiter\n\t if (delimiters.length === 0) {\n\t return letter === delimiter;\n\t }\n\n\t // multiple delimiters\n\t return delimiters.some(function (current) {\n\t if (letter === current) {\n\t return true;\n\t }\n\t });\n\t },\n\n\t getDelimiterREByDelimiter: function (delimiter) {\n\t return new RegExp(delimiter.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'), 'g');\n\t },\n\n\t stripDelimiters: function (value, delimiter, delimiters) {\n\t var owner = this;\n\n\t // single delimiter\n\t if (delimiters.length === 0) {\n\t var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';\n\n\t return value.replace(delimiterRE, '');\n\t }\n\n\t // multiple delimiters\n\t delimiters.forEach(function (current) {\n\t value = value.replace(owner.getDelimiterREByDelimiter(current), '');\n\t });\n\n\t return value;\n\t },\n\n\t headStr: function (str, length) {\n\t return str.slice(0, length);\n\t },\n\n\t getMaxLength: function (blocks) {\n\t return blocks.reduce(function (previous, current) {\n\t return previous + current;\n\t }, 0);\n\t },\n\n\t // strip value by prefix length\n\t // for prefix: PRE\n\t // (PRE123, 3) -> 123\n\t // (PR123, 3) -> 23 this happens when user hits backspace in front of \"PRE\"\n\t getPrefixStrippedValue: function (value, prefix, prefixLength) {\n\t if (value.slice(0, prefixLength) !== prefix) {\n\t var diffIndex = this.getFirstDiffIndex(prefix, value.slice(0, prefixLength));\n\n\t value = prefix + value.slice(diffIndex, diffIndex + 1) + value.slice(prefixLength + 1);\n\t }\n\n\t return value.slice(prefixLength);\n\t },\n\n\t getFirstDiffIndex: function (prev, current) {\n\t var index = 0;\n\n\t while (prev.charAt(index) === current.charAt(index))\n\t if (prev.charAt(index++) === '')\n\t return -1;\n\n\t return index;\n\t },\n\n\t getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters) {\n\t var result = '',\n\t multipleDelimiters = delimiters.length > 0,\n\t currentDelimiter;\n\n\t // no options, normal input\n\t if (blocksLength === 0) {\n\t return value;\n\t }\n\n\t blocks.forEach(function (length, index) {\n\t if (value.length > 0) {\n\t var sub = value.slice(0, length),\n\t rest = value.slice(length);\n\n\t result += sub;\n\n\t currentDelimiter = multipleDelimiters ? (delimiters[index] || currentDelimiter) : delimiter;\n\n\t if (sub.length === length && index < blocksLength - 1) {\n\t result += currentDelimiter;\n\t }\n\n\t // update remaining string\n\t value = rest;\n\t }\n\t });\n\n\t return result;\n\t },\n\n\t isAndroid: function () {\n\t if (navigator && /android/i.test(navigator.userAgent)) {\n\t return true;\n\t }\n\n\t return false;\n\t },\n\n\t // On Android chrome, the keyup and keydown events\n\t // always return key code 229 as a composition that\n\t // buffers the user’s keystrokes\n\t // see https://github.com/nosir/cleave.js/issues/147\n\t isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {\n\t if (!this.isAndroid()) {\n\t return false;\n\t }\n\n\t return currentInputValue === lastInputValue.slice(0, -1);\n\t }\n\t};\n\n\tmodule.exports = Util;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\n\t/**\n\t * Props Assignment\n\t *\n\t * Separate this, so react module can share the usage\n\t */\n\tvar DefaultProperties = {\n\t // Maybe change to object-assign\n\t // for now just keep it as simple\n\t assign: function (target, opts) {\n\t target = target || {};\n\t opts = opts || {};\n\n\t // credit card\n\t target.creditCard = !!opts.creditCard;\n\t target.creditCardStrictMode = !!opts.creditCardStrictMode;\n\t target.creditCardType = '';\n\t target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () {});\n\n\t // phone\n\t target.phone = !!opts.phone;\n\t target.phoneRegionCode = opts.phoneRegionCode || 'AU';\n\t target.phoneFormatter = {};\n\n\t // date\n\t target.date = !!opts.date;\n\t target.datePattern = opts.datePattern || ['d', 'm', 'Y'];\n\t target.dateFormatter = {};\n\n\t // numeral\n\t target.numeral = !!opts.numeral;\n\t target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;\n\t target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;\n\t target.numeralDecimalMark = opts.numeralDecimalMark || '.';\n\t target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';\n\t target.numeralPositiveOnly = !!opts.numeralPositiveOnly;\n\t target.stripLeadingZeroes = (undefined == opts.stripLeadingZeroes) ? true : opts.stripLeadingZeroes;\n\n\t // others\n\t target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;\n\n\t target.uppercase = !!opts.uppercase;\n\t target.lowercase = !!opts.lowercase;\n\n\t target.prefix = (target.creditCard || target.phone || target.date) ? '' : (opts.prefix || '');\n\t target.prefixLength = target.prefix.length;\n\t target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;\n\t target.copyDelimiter = !!opts.copyDelimiter;\n\n\t target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';\n\n\t target.delimiter =\n\t (opts.delimiter || opts.delimiter === '') ? opts.delimiter :\n\t (opts.date ? '/' :\n\t (opts.numeral ? ',' :\n\t (opts.phone ? ' ' :\n\t ' ')));\n\t target.delimiterLength = target.delimiter.length;\n\t target.delimiters = opts.delimiters || [];\n\n\t target.blocks = opts.blocks || [];\n\t target.blocksLength = target.blocks.length;\n\n\t target.root = (typeof global === 'object' && global) ? global : window;\n\n\t target.maxLength = 0;\n\n\t target.backspace = false;\n\t target.result = '';\n\n\t return target;\n\t }\n\t};\n\n\tmodule.exports = DefaultProperties;\n\n\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }\n/******/ ])\n});\n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/cleave.js/dist/cleave.js\n// module id = sJdk\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-round-donation',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.round-donation');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/round-donation/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/text-with-image/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/buttons-group/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport {ATTRIBUTE_VALIDATE_NEVER} from '../../form/js/generic.form';\r\n\r\nexport default class ShowRule extends Component {\r\n\r\n /**\r\n * example config\r\n * {\r\n * elements: \"id1,id2:false,id3:concreteValue\"\r\n * condition: 'and'\r\n action: 'show' //hide, class\r\n class: 'example-class' // if action is class\r\n * }\r\n *\r\n * @param el\r\n */\r\n constructor(el) {\r\n super(el);\r\n this.idAttributeName = 'data-rule-id';\r\n this.config = {\r\n action: 'show',\r\n condition: 'and'\r\n };\r\n this.elementsValues = {};\r\n this.lastResult = undefined;\r\n this.init();\r\n }\r\n\r\n init() {\r\n let configString = this.container.getAttribute('data-rule');\r\n let config = {};\r\n try {\r\n config = JSON.parse(configString);\r\n } catch (e) {\r\n //maybe we pass single string to set elements only\r\n config = {elements: configString};\r\n }\r\n\r\n let elementsString = config.elements;\r\n if (elementsString) {\r\n let elements = [];\r\n let elementsConditions = {};\r\n config.elements.split(',').forEach((elementCondition) => {\r\n let [elementId, elementValue] = elementCondition.trim().split(':');\r\n\r\n\r\n let elementNodes = document.querySelectorAll(`[${this.idAttributeName}=\"${elementId}\"]`);\r\n for (let i = 0; i < elementNodes.length; i++) {\r\n if (elementNodes[i].tagName === 'INPUT') {\r\n elements.push(elementNodes[i]);\r\n if (!elementsConditions[elementId]) {\r\n elementsConditions[elementId] = (elementValue === undefined || elementValue === 'true') ? true : (elementValue === 'false' ? false : elementValue);\r\n }\r\n }\r\n }\r\n });\r\n config.elementsConditions = elementsConditions;\r\n if (elements.length) {\r\n this.bootstrap(config, elements);\r\n }\r\n }\r\n }\r\n\r\n getElementId(element) {\r\n return element.getAttribute(this.idAttributeName);\r\n }\r\n\r\n bootstrap(configPart, elements) {\r\n Object.assign(this.config, configPart);\r\n this.elementsValues = elements.reduce((result, element) => {\r\n result[this.getElementId(element)] = this.getElementValue(element);\r\n return result;\r\n }, {});\r\n\r\n elements.forEach((element) => {\r\n if (element.type === 'text') {\r\n element.addEventListener('input', this.onElementChange.bind(this));\r\n } else {\r\n element.addEventListener('change', this.onElementChange.bind(this));\r\n }\r\n });\r\n this.manage();\r\n }\r\n\r\n getElementValue(element) {\r\n switch (element.type) {\r\n case 'checkbox':\r\n return element.checked;\r\n case 'radio':\r\n return element.checked ? element.value : false;\r\n default:\r\n return element.value;\r\n }\r\n }\r\n\r\n onElementChange(e) {\r\n let element = e.target;\r\n this.elementsValues[this.getElementId(element)] = this.getElementValue(element);\r\n this.manage();\r\n }\r\n\r\n manage() {\r\n let result = false;\r\n\r\n let checkFunction = (id) => {\r\n return this.elementsValues[id] === this.config.elementsConditions[id];\r\n };\r\n\r\n if (this.config.condition === 'and') {\r\n result = Object.keys(this.elementsValues).every(checkFunction);\r\n } else {\r\n result = Object.keys(this.elementsValues).some(checkFunction);\r\n }\r\n if (result !== this.lastResult) {\r\n this.update(result)\r\n }\r\n }\r\n\r\n update(result) {\r\n this.lastResult = result;\r\n switch (this.config.action) {\r\n case 'show':\r\n this.updateShow(result);\r\n break;\r\n case 'hide':\r\n this.updateShow(!result);\r\n break;\r\n case 'class':\r\n this.updateClass(result);\r\n break;\r\n }\r\n }\r\n\r\n updateShow(result) {\r\n if (result) {\r\n this.container.style.display = 'block';\r\n this.container.removeAttribute(ATTRIBUTE_VALIDATE_NEVER);\r\n } else {\r\n this.container.style.display = 'none';\r\n this.container.setAttribute(ATTRIBUTE_VALIDATE_NEVER, '');\r\n }\r\n }\r\n\r\n updateClass(result) {\r\n if (result) {\r\n this.container.classList.add(this.config.class);\r\n } else {\r\n this.container.classList.remove(this.config.class);\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/show-rule/js/generic.show-rule.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/bordered-block/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-tooltip',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.tooltip');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/tooltip/main.js","var map = {\n\t\"./account.svg\": \"h+4i\",\n\t\"./arrow-down-thin.svg\": \"qExC\",\n\t\"./arrow-down.svg\": \"jIbX\",\n\t\"./arrow-left.svg\": \"51GQ\",\n\t\"./arrow-right.svg\": \"Qsna\",\n\t\"./arrow-up.svg\": \"Omm2\",\n\t\"./basket.svg\": \"iwUV\",\n\t\"./beaker.svg\": \"wMjV\",\n\t\"./calendar.svg\": \"Rrki\",\n\t\"./delete-logo.svg\": \"3yJq\",\n\t\"./doc-default.svg\": \"wVxo\",\n\t\"./doc-doc.svg\": \"q+S6\",\n\t\"./doc-pdf.svg\": \"M3U0\",\n\t\"./doc-ppt.svg\": \"Gt49\",\n\t\"./document.svg\": \"LUPE\",\n\t\"./download.svg\": \"5mra\",\n\t\"./header-angle.svg\": \"noH7\",\n\t\"./just-giving-logo.svg\": \"f2JW\",\n\t\"./letter.svg\": \"BFzH\",\n\t\"./modal_close.svg\": \"GKKS\",\n\t\"./pencil.svg\": \"wt25\",\n\t\"./person.svg\": \"DBgD\",\n\t\"./phone.svg\": \"c1Qd\",\n\t\"./search.svg\": \"98Kd\",\n\t\"./share.svg\": \"gPpe\",\n\t\"./slant-gradient.svg\": \"JqIc\",\n\t\"./sms.svg\": \"DPol\",\n\t\"./tick.svg\": \"ddC+\",\n\t\"./tick2.svg\": \"1Di1\",\n\t\"./user.svg\": \"OBau\",\n\t\"./user2.svg\": \"+Xj0\",\n\t\"./web.svg\": \"lKHb\"\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 = \"vz3G\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg ^\\.\\/.*\\.svg\n// module id = vz3G\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/ways-to-donate/main.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-beaker\",\n \"use\": \"icon-beaker-usage\",\n \"viewBox\": \"70.3 74.5 154.3 166\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/beaker.svg\n// module id = wMjV\n// module chunks = 0","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-doc-default\",\n \"use\": \"icon-doc-default-usage\",\n \"viewBox\": \"0 0 24.57 32.69\",\n \"content\": \"\\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/doc-default.svg\n// module id = wVxo\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-custom-donate',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.custom-donate');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/custom-donate/main.js","\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\nimport createEvent from 'create-event';\r\nimport pageSpinner from 'page-spinner';\r\n\r\nexport default class CurrencySwitcher extends Component {\r\n constructor(el) {\r\n super(el);\r\n\r\n this.pseudoItemDataAttributeName = 'data-switcher-value';\r\n\r\n this.values = {\r\n Euro: { caption: '€ EUR', id: 'eu' },\r\n PoundSterling: { caption: '£ GBP', id: 'en' },\r\n UnitedStatesDollar: { caption: '$ USD', id: 'us' },\r\n };\r\n\r\n this.currentValue = null;\r\n this.isCustomPostback = this.container.hasAttribute('data-currency-switcher-custom-postback');\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.pseudo = this.container.querySelector('.js-currency-switcher-pseudo');\r\n this.control = this.container.querySelector('.js-currency-switcher-control');\r\n this.nativeControlWrap = this.container.querySelector('.js-currency-switcher-select-wrap');\r\n\r\n if (this.nativeControlWrap) {\r\n this.customPostbackClientId = this.nativeControlWrap.getAttribute('data-clientid');\r\n }\r\n\r\n\r\n if (this.pseudo && this.control) {\r\n this.pseudoList = this.pseudo.querySelector('.js-currency-switcher-pseudo-list');\r\n this.pseudoValue = this.pseudo.querySelector('.js-currency-switcher-pseudo-value');\r\n\r\n\r\n this.controlInput = this.control.querySelector('select');\r\n\r\n this.setSwitcherValue(this.controlInput.value);\r\n this.renderPseudoList();\r\n\r\n this.pseudo.addEventListener('click', (e) => {\r\n e.stopPropagation();\r\n this.pseudo.classList.add('is-open');\r\n });\r\n this.pseudoList.addEventListener('click', this.onListClick.bind(this));\r\n\r\n document.addEventListener('click', () => {\r\n this.close();\r\n });\r\n }\r\n }\r\n\r\n close() {\r\n this.pseudo.classList.remove('is-open');\r\n }\r\n\r\n setSwitcherValue(value) {\r\n if (this.currentValue !== value) {\r\n this.currentValue = value;\r\n this.pseudoValue.innerHTML = this.getCaptionByValue(value);\r\n this.pseudo.setAttribute('data-currency-id', this.getIdByValue(value));\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n onListClick(e) {\r\n e.stopPropagation();\r\n if (e.target) {\r\n const element = e.target;\r\n const value = element.getAttribute(this.pseudoItemDataAttributeName);\r\n if (value) {\r\n const isSet = this.setSwitcherValue(value);\r\n if (isSet) {\r\n this.triggerEvent(value);\r\n pageSpinner.show({ fade: true });\r\n }\r\n this.close();\r\n }\r\n }\r\n }\r\n\r\n renderPseudoList() {\r\n let listContent = '';\r\n\r\n\r\n Object.keys(this.values).forEach((value) => {\r\n listContent += `${this.getCaptionByValue(value)}`;\r\n });\r\n\r\n this.pseudoList.innerHTML = listContent;\r\n }\r\n\r\n triggerEvent(value) {\r\n this.controlInput.value = value;\r\n if (this.isCustomPostback) {\r\n window.__doPostBack(this.customPostbackClientId, '');\r\n } else {\r\n this.controlInput.dispatchEvent(createEvent('change'));\r\n }\r\n }\r\n\r\n getCaptionByValue(value) {\r\n return this.values[value].caption;\r\n }\r\n\r\n getIdByValue(value) {\r\n return this.values[value].id;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/currency-switcher/js/generic.currency-switcher.js","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-pencil\",\n \"use\": \"icon-pencil-usage\",\n \"viewBox\": \"160.5 0.5 287 287\",\n \"content\": \"\\r\\n\\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/general/svg/pencil.svg\n// module id = wt25\n// module chunks = 0","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\nimport slick from 'slick-carousel';\r\n\r\nexport default class ImageGallery extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.$container = $(this.container);\r\n this.init();\r\n }\r\n\r\n init() {\r\n\r\n this.$main = this.$container.find('.js-ig-main-carousel');\r\n this.$nav = this.$container.find('.js-ig-nav-carousel');\r\n this.$arrows = this.$container.find('.js-ig-nav-arrows');\r\n\r\n if (!this.$main.length || !this.$nav.length || !this.$arrows.length) {\r\n this.$container.addClass('js-init-errors');\r\n return false;\r\n }\r\n\r\n this.$main.slick({\r\n swipe: false,\r\n asNavFor: this.$nav,\r\n arrows: false,\r\n lazyLoad: 'ondemand'\r\n });\r\n\r\n this.$nav.slick({\r\n asNavFor: this.$main,\r\n slidesToShow: 4,\r\n slidesToScroll: 4,\r\n focusOnSelect: true,\r\n appendArrows: this.$arrows,\r\n lazyLoad: 'ondemand',\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2,\r\n }\r\n }\r\n ],\r\n prevArrow: ``,\r\n nextArrow: ``,\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/image-gallery/js/generic.image-gallery.js","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVMsSUFBSSxDQUFDLENBQUM7R0FDeEIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgICBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICAgIH1cblxuICAgIGxldCBsZXZlbCA9IDE7XG4gICAgaWYgKG9wdGlvbnMuaGFzaC5sZXZlbCAhPSBudWxsKSB7XG4gICAgICBsZXZlbCA9IG9wdGlvbnMuaGFzaC5sZXZlbDtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGEubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmRhdGEubGV2ZWw7XG4gICAgfVxuICAgIGFyZ3NbMF0gPSBsZXZlbDtcblxuICAgIGluc3RhbmNlLmxvZyguLi4gYXJncyk7XG4gIH0pO1xufVxuIl19\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js\n// module id = xDSz\n// module chunks = 0","var Handlebars = require(\"C:\\\\TeamCityAgents\\\\02\\\\work\\\\bbe988d6cf529cbd\\\\CMS\\\\App_Themes\\\\DeleteKenticoFramework\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \" \\r\\n Add more items to basket\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" \\r\\n Add more items to basket\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"
\\r\\n
Item successfully added to your basket!
\\r\\n
You currently have \"\n + container.escapeExpression(((helper = (helper = helpers.basketDescription || (depth0 != null ? depth0.basketDescription : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"basketDescription\",\"hash\":{},\"data\":data}) : helper)))\n + \" in your basket
\\r\\n \\r\\n Go to my basket\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isEvent : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \"
\\r\\n
\\r\\n\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/shop/html/add-item-message.hbs\n// module id = xs8j\n// module chunks = 0","var Handlebars = require(\"C:\\\\TeamCityAgents\\\\02\\\\work\\\\bbe988d6cf529cbd\\\\CMS\\\\App_Themes\\\\DeleteKenticoFramework\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"
\\r\\n
\\r\\n
\\r\\n \"\n + container.escapeExpression(((helper = (helper = helpers.eventOption || (depth0 != null ? depth0.eventOption : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"eventOption\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.date : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"
\\r\\n
\\r\\n
\\r\\n \"\n + container.escapeExpression(((helper = (helper = helpers.date || (depth0 != null ? depth0.date : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"date\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\r\\n
\\r\\n
\"\n + alias4(((helper = (helper = helpers.visualCost || (depth0 != null ? depth0.visualCost : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"visualCost\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\\r\\n\\r\\n\"\n + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.products : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isAdded : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"6\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\";\n\n return \"
\\r\\n
\\r\\n \"\n + container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\r\\n\\r\\n
\\r\\n
\"\n + ((stack1 = ((helper = (helper = helpers.visualCost || (depth0 != null ? depth0.visualCost : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"visualCost\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"
\\r\\n
\\r\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Donation\\r\\n
\\r\\n
\"\n + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.donation : depth0)) != null ? stack1.visualCost : stack1), depth0))\n + \"
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Total\\r\\n
\\r\\n
\"\n + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.total : depth0)) != null ? stack1.visualCost : stack1), depth0))\n + \"
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"
\"\n + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n
\\r\\n\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.eventOption : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.items : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.donation : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.total : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n
\\r\\n\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/payment-summary/html/table.hbs\n// module id = xule\n// module chunks = 0","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/signposts/main.js","'use strict';\r\n\r\nimport Styles from './less/core.less';\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-main-nav',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.navmain');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/nav-main/main.js","'use strict';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-datepicker',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.datepicker');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nif(document.querySelector('.js-form-trigger')) {\r\n document.querySelector('.js-form-trigger').addEventListener(\"click\", () => {\r\n factoryInstance = new Factory({\r\n className: 'js-datepicker',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.datepicker');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n });\r\n factoryInstance.init();\r\n });\r\n}\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/datepicker/main.js","'use strict';\r\n\r\nimport Factory from 'generic.factory';\r\n\r\nlet factoryInstance = new Factory({\r\n className: 'js-ga-event',\r\n ensure: (resolve, callAfter) => {\r\n let instance = require('./js/generic.ga-event');\r\n resolve(callAfter(instance.default || instance));\r\n }\r\n});\r\n\r\nfactoryInstance.init();\r\n\r\nexport default factoryInstance;\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/ga-tracker/main.js","'use strict';\r\n\r\nimport Component from 'generic.basecomponent';\r\nimport $ from 'jquery';\r\nimport template from '../html/jg-donations.hbs';\r\nimport templateEmpty from '../html/jg-donations-empty.hbs';\r\nimport moment from 'moment';\r\n\r\nexport default class JgDonations extends Component {\r\n constructor(el) {\r\n super(el);\r\n this.$container = $(this.container);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.baseURL = window.location.protocol + \"//\" + window.location.host;\r\n this.nodeId = this.$container.data('node-id');\r\n this.requestedPage = 1;\r\n\r\n if (!this.nodeId) {\r\n this.$container.addClass('js-init-errors');\r\n return false;\r\n }\r\n\r\n this.initLoadMore();\r\n this.loadData();\r\n }\r\n\r\n initLoadMore() {\r\n this.loadMoreBtn = document.querySelector(\".js-jg-donations-load-more\");\r\n this.loadMoreBtn.addEventListener(\"click\", this.loadMore.bind(this));\r\n }\r\n\r\n loadMore() {\r\n this.requestedPage++;\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n this.$container.addClass('is-loading');\r\n console.log(`${this.baseURL}/api/donation/Get?page=${this.requestedPage}&nodeId=${this.nodeId}`);\r\n const request = this.getRequest(`${this.baseURL}/api/donation/Get?page=${this.requestedPage}&nodeId=${this.nodeId}`);\r\n request.then((response) => {\r\n response.Next ? this.loadMoreBtn.classList.remove(\"is-hidden\") : this.loadMoreBtn.classList.add(\"is-hidden\");\r\n this.renderDonations(this.getPreparedDonations(response.Donations));\r\n }, (error) => {\r\n this.renderError(error);\r\n }).then(() => {\r\n this.$container.removeClass('is-loading');\r\n });\r\n }\r\n\r\n renderDonations(donations) {\r\n if (donations.length > 0) {\r\n let content = template({donations});\r\n this.$container.append(content);\r\n } else {\r\n this.renderEmpty();\r\n }\r\n this.loadMoreBtn.classList.remove(\"is-loading\");\r\n this.loadMoreBtn.classList.remove(\"spinner--faded\");\r\n }\r\n\r\n renderEmpty() {\r\n this.$container.html(templateEmpty({}));\r\n }\r\n\r\n renderError(error) {\r\n console.log(error);\r\n this.$container.html(`\r\n
\r\n Sorry, we were unable to retrieve data. Please try again later.\r\n
\r\n `);\r\n }\r\n\r\n getPreparedDonations(donations) {\r\n return donations.map(item => {\r\n let amount = parseFloat(item.Amount).toFixed(2);\r\n let giftAmount = item.GiftAidAmount !== undefined ? parseFloat(item.GiftAidAmount).toFixed(2) : 0;\r\n\r\n let dateString = null;\r\n let date = Date.parse(item.Date);\r\n date = parseInt(date);\r\n if (!isNaN(date)) {\r\n dateString = moment(date).format('DD MMM YYYY');\r\n }\r\n\r\n return {\r\n name: item.Donator || 'Anonymous',\r\n hasAmount: amount > 0,\r\n amount: amount,\r\n hasGift: giftAmount > 0,\r\n giftAmount: giftAmount,\r\n currencySign: \"£\",\r\n hasDate: dateString !== null,\r\n date: dateString,\r\n message: item.Comment\r\n }\r\n });\r\n }\r\n\r\n getRequest(url) {\r\n this.loadMoreBtn.classList.add(\"is-loading\");\r\n this.loadMoreBtn.classList.add(\"spinner--faded\");\r\n return new Promise((resolve, reject) => {\r\n $.ajax({\r\n url: url,\r\n contentType: 'application/json'\r\n }).done((response) => {\r\n resolve(response);\r\n }).fail((error) => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./app/components/jg-donations/js/generic.jg-donations.js","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\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\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision !== currentRevision) {\n if (compilerRevision < currentRevision) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as psuedo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n var result = env.VM.invokePartial.call(this, partial, context, options);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, options);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name) {\n if (!(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj);\n }\n return obj[name];\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n if (depths[i] && depths[i][name] != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n merge: function merge(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n container.helpers = container.merge(options.helpers, env.helpers);\n\n if (templateSpec.usePartial) {\n container.partials = container.merge(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = container.merge(options.decorators, env.decorators);\n }\n } else {\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBQzhCLFFBQVE7O0FBRWxFLFNBQVMsYUFBYSxDQUFDLFlBQVksRUFBRTtBQUMxQyxNQUFNLGdCQUFnQixHQUFHLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztNQUN2RCxlQUFlLDBCQUFvQixDQUFDOztBQUUxQyxNQUFJLGdCQUFnQixLQUFLLGVBQWUsRUFBRTtBQUN4QyxRQUFJLGdCQUFnQixHQUFHLGVBQWUsRUFBRTtBQUN0QyxVQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1VBQ25ELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQzVELFlBQU0sMkJBQWMseUZBQXlGLEdBQ3ZHLHFEQUFxRCxHQUFHLGVBQWUsR0FBRyxtREFBbUQsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNoSyxNQUFNOztBQUVMLFlBQU0sMkJBQWMsd0ZBQXdGLEdBQ3RHLGlEQUFpRCxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNuRjtHQUNGO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztHQUN4RTs7QUFFRCxjQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7O0FBSWxELEtBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7QUFFNUMsV0FBUyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN2RCxRQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDaEIsYUFBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEQsVUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQ2YsZUFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7T0FDdkI7S0FDRjs7QUFFRCxXQUFPLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RFLFFBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzs7QUFFeEUsUUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUU7QUFDakMsYUFBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN6RixZQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQzNEO0FBQ0QsUUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ2xCLFVBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtBQUNsQixZQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLGFBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDNUMsY0FBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUM1QixrQkFBTTtXQUNQOztBQUVELGVBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QztBQUNELGNBQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO09BQzNCO0FBQ0QsYUFBTyxNQUFNLENBQUM7S0FDZixNQUFNO0FBQ0wsWUFBTSwyQkFBYyxjQUFjLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRywwREFBMEQsQ0FBQyxDQUFDO0tBQ2pIO0dBQ0Y7OztBQUdELE1BQUksU0FBUyxHQUFHO0FBQ2QsVUFBTSxFQUFFLGdCQUFTLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDMUIsVUFBSSxFQUFFLElBQUksSUFBSSxHQUFHLENBQUEsQUFBQyxFQUFFO0FBQ2xCLGNBQU0sMkJBQWMsR0FBRyxHQUFHLElBQUksR0FBRyxtQkFBbUIsR0FBRyxHQUFHLENBQUMsQ0FBQztPQUM3RDtBQUNELGFBQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xCO0FBQ0QsVUFBTSxFQUFFLGdCQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDN0IsVUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUMxQixXQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVCLFlBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7QUFDeEMsaUJBQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO09BQ0Y7S0FDRjtBQUNELFVBQU0sRUFBRSxnQkFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ2pDLGFBQU8sT0FBTyxPQUFPLEtBQUssVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQ3hFOztBQUVELG9CQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7QUFDeEMsaUJBQWEsRUFBRSxvQkFBb0I7O0FBRW5DLE1BQUUsRUFBRSxZQUFTLENBQUMsRUFBRTtBQUNkLFVBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQixTQUFHLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDdkMsYUFBTyxHQUFHLENBQUM7S0FDWjs7QUFFRCxZQUFRLEVBQUUsRUFBRTtBQUNaLFdBQU8sRUFBRSxpQkFBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7QUFDbkUsVUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7VUFDakMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsVUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLFdBQVcsSUFBSSxtQkFBbUIsRUFBRTtBQUN4RCxzQkFBYyxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO09BQzNGLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRTtBQUMxQixzQkFBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7T0FDOUQ7QUFDRCxhQUFPLGNBQWMsQ0FBQztLQUN2Qjs7QUFFRCxRQUFJLEVBQUUsY0FBUyxLQUFLLEVBQUUsS0FBSyxFQUFFO0FBQzNCLGFBQU8sS0FBSyxJQUFJLEtBQUssRUFBRSxFQUFFO0FBQ3ZCLGFBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO09BQ3ZCO0FBQ0QsYUFBTyxLQUFLLENBQUM7S0FDZDtBQUNELFNBQUssRUFBRSxlQUFTLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDN0IsVUFBSSxHQUFHLEdBQUcsS0FBSyxJQUFJLE1BQU0sQ0FBQzs7QUFFMUIsVUFBSSxLQUFLLElBQUksTUFBTSxJQUFLLEtBQUssS0FBSyxNQUFNLEFBQUMsRUFBRTtBQUN6QyxXQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO09BQ3ZDOztBQUVELGFBQU8sR0FBRyxDQUFDO0tBQ1o7O0FBRUQsZUFBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDOztBQUU1QixRQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJO0FBQ2pCLGdCQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVE7R0FDcEMsQ0FBQzs7QUFFRixXQUFTLEdBQUcsQ0FBQyxPQUFPLEVBQWdCO1FBQWQsT0FBTyx5REFBRyxFQUFFOztBQUNoQyxRQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDOztBQUV4QixPQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BCLFFBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7QUFDNUMsVUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDaEM7QUFDRCxRQUFJLE1BQU0sWUFBQTtRQUNOLFdBQVcsR0FBRyxZQUFZLENBQUMsY0FBYyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7QUFDL0QsUUFBSSxZQUFZLENBQUMsU0FBUyxFQUFFO0FBQzFCLFVBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtBQUNsQixjQUFNLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7T0FDM0YsTUFBTTtBQUNMLGNBQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO09BQ3BCO0tBQ0Y7O0FBRUQsYUFBUyxJQUFJLENBQUMsT0FBTyxnQkFBZTtBQUNsQyxhQUFPLEVBQUUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDckg7QUFDRCxRQUFJLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztBQUN0RyxXQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7R0FDL0I7QUFDRCxLQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs7QUFFakIsS0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFTLE9BQU8sRUFBRTtBQUM3QixRQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtBQUNwQixlQUFTLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7O0FBRWxFLFVBQUksWUFBWSxDQUFDLFVBQVUsRUFBRTtBQUMzQixpQkFBUyxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO09BQ3RFO0FBQ0QsVUFBSSxZQUFZLENBQUMsVUFBVSxJQUFJLFlBQVksQ0FBQyxhQUFhLEVBQUU7QUFDekQsaUJBQVMsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztPQUM1RTtLQUNGLE1BQU07QUFDTCxlQUFTLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDcEMsZUFBUyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQ3RDLGVBQVMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztLQUMzQztHQUNGLENBQUM7O0FBRUYsS0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtBQUNsRCxRQUFJLFlBQVksQ0FBQyxjQUFjLElBQUksQ0FBQyxXQUFXLEVBQUU7QUFDL0MsWUFBTSwyQkFBYyx3QkFBd0IsQ0FBQyxDQUFDO0tBQy9DO0FBQ0QsUUFBSSxZQUFZLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ3JDLFlBQU0sMkJBQWMseUJBQXlCLENBQUMsQ0FBQztLQUNoRDs7QUFFRCxXQUFPLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztHQUNqRixDQUFDO0FBQ0YsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtBQUM1RixXQUFTLElBQUksQ0FBQyxPQUFPLEVBQWdCO1FBQWQsT0FBTyx5REFBRyxFQUFFOztBQUNqQyxRQUFJLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFDM0IsUUFBSSxNQUFNLElBQUksT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sS0FBSyxTQUFTLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUEsQUFBQyxFQUFFO0FBQ2hHLG1CQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDMUM7O0FBRUQsV0FBTyxFQUFFLENBQUMsU0FBUyxFQUNmLE9BQU8sRUFDUCxTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQ3JDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxFQUNwQixXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUN4RCxhQUFhLENBQUMsQ0FBQztHQUNwQjs7QUFFRCxNQUFJLEdBQUcsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQzs7QUFFekUsTUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDeEMsTUFBSSxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsSUFBSSxDQUFDLENBQUM7QUFDNUMsU0FBTyxJQUFJLENBQUM7Q0FDYjs7QUFFTSxTQUFTLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN4RCxNQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osUUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFO0FBQ3JDLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3pDLE1BQU07QUFDTCxhQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDMUM7R0FDRixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTs7QUFFekMsV0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7QUFDdkIsV0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7R0FDckM7QUFDRCxTQUFPLE9BQU8sQ0FBQztDQUNoQjs7QUFFTSxTQUFTLGFBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTs7QUFFdkQsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDMUUsU0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDdkIsTUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQ2YsV0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztHQUN2RTs7QUFFRCxNQUFJLFlBQVksWUFBQSxDQUFDO0FBQ2pCLE1BQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRTs7QUFDckMsYUFBTyxDQUFDLElBQUksR0FBRyxrQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRXpDLFVBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDcEIsa0JBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLFNBQVMsbUJBQW1CLENBQUMsT0FBTyxFQUFnQjtZQUFkLE9BQU8seURBQUcsRUFBRTs7OztBQUkvRixlQUFPLENBQUMsSUFBSSxHQUFHLGtCQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QyxlQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLG1CQUFtQixDQUFDO0FBQ3BELGVBQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztPQUM3QixDQUFDO0FBQ0YsVUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0FBQ2YsZUFBTyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztPQUNwRTs7R0FDRjs7QUFFRCxNQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksWUFBWSxFQUFFO0FBQ3pDLFdBQU8sR0FBRyxZQUFZLENBQUM7R0FDeEI7O0FBRUQsTUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO0FBQ3pCLFVBQU0sMkJBQWMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUMsQ0FBQztHQUM1RSxNQUFNLElBQUksT0FBTyxZQUFZLFFBQVEsRUFBRTtBQUN0QyxXQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7R0FDbEM7Q0FDRjs7QUFFTSxTQUFTLElBQUksR0FBRztBQUFFLFNBQU8sRUFBRSxDQUFDO0NBQUU7O0FBRXJDLFNBQVMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7QUFDL0IsTUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUEsQUFBQyxFQUFFO0FBQzlCLFFBQUksR0FBRyxJQUFJLEdBQUcsa0JBQVksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3JDLFFBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO0dBQ3JCO0FBQ0QsU0FBTyxJQUFJLENBQUM7Q0FDYjs7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3pFLE1BQUksRUFBRSxDQUFDLFNBQVMsRUFBRTtBQUNoQixRQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDZixRQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUYsU0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7R0FDM0I7QUFDRCxTQUFPLElBQUksQ0FBQztDQUNiIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHsgQ09NUElMRVJfUkVWSVNJT04sIFJFVklTSU9OX0NIQU5HRVMsIGNyZWF0ZUZyYW1lIH0gZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUmV2aXNpb24oY29tcGlsZXJJbmZvKSB7XG4gIGNvbnN0IGNvbXBpbGVyUmV2aXNpb24gPSBjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdIHx8IDEsXG4gICAgICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChjb21waWxlclJldmlzaW9uICE9PSBjdXJyZW50UmV2aXNpb24pIHtcbiAgICBpZiAoY29tcGlsZXJSZXZpc2lvbiA8IGN1cnJlbnRSZXZpc2lvbikge1xuICAgICAgY29uc3QgcnVudGltZVZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjdXJyZW50UmV2aXNpb25dLFxuICAgICAgICAgICAgY29tcGlsZXJWZXJzaW9ucyA9IFJFVklTSU9OX0NIQU5HRVNbY29tcGlsZXJSZXZpc2lvbl07XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUZW1wbGF0ZSB3YXMgcHJlY29tcGlsZWQgd2l0aCBhbiBvbGRlciB2ZXJzaW9uIG9mIEhhbmRsZWJhcnMgdGhhbiB0aGUgY3VycmVudCBydW50aW1lLiAnICtcbiAgICAgICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcHJlY29tcGlsZXIgdG8gYSBuZXdlciB2ZXJzaW9uICgnICsgcnVudGltZVZlcnNpb25zICsgJykgb3IgZG93bmdyYWRlIHlvdXIgcnVudGltZSB0byBhbiBvbGRlciB2ZXJzaW9uICgnICsgY29tcGlsZXJWZXJzaW9ucyArICcpLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHJ1bnRpbWUgdG8gYSBuZXdlciB2ZXJzaW9uICgnICsgY29tcGlsZXJJbmZvWzFdICsgJykuJyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZSh0ZW1wbGF0ZVNwZWMsIGVudikge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoIWVudikge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ05vIGVudmlyb25tZW50IHBhc3NlZCB0byB0ZW1wbGF0ZScpO1xuICB9XG4gIGlmICghdGVtcGxhdGVTcGVjIHx8ICF0ZW1wbGF0ZVNwZWMubWFpbikge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vua25vd24gdGVtcGxhdGUgb2JqZWN0OiAnICsgdHlwZW9mIHRlbXBsYXRlU3BlYyk7XG4gIH1cblxuICB0ZW1wbGF0ZVNwZWMubWFpbi5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWMubWFpbl9kO1xuXG4gIC8vIE5vdGU6IFVzaW5nIGVudi5WTSByZWZlcmVuY2VzIHJhdGhlciB0aGFuIGxvY2FsIHZhciByZWZlcmVuY2VzIHRocm91Z2hvdXQgdGhpcyBzZWN0aW9uIHRvIGFsbG93XG4gIC8vIGZvciBleHRlcm5hbCB1c2VycyB0byBvdmVycmlkZSB0aGVzZSBhcyBwc3VlZG8tc3VwcG9ydGVkIEFQSXMuXG4gIGVudi5WTS5jaGVja1JldmlzaW9uKHRlbXBsYXRlU3BlYy5jb21waWxlcik7XG5cbiAgZnVuY3Rpb24gaW52b2tlUGFydGlhbFdyYXBwZXIocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAgIGNvbnRleHQgPSBVdGlscy5leHRlbmQoe30sIGNvbnRleHQsIG9wdGlvbnMuaGFzaCk7XG4gICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgb3B0aW9ucy5pZHNbMF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhcnRpYWwgPSBlbnYuVk0ucmVzb2x2ZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcblxuICAgIGlmIChyZXN1bHQgPT0gbnVsbCAmJiBlbnYuY29tcGlsZSkge1xuICAgICAgb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdID0gZW52LmNvbXBpbGUocGFydGlhbCwgdGVtcGxhdGVTcGVjLmNvbXBpbGVyT3B0aW9ucywgZW52KTtcbiAgICAgIHJlc3VsdCA9IG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXShjb250ZXh0LCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUaGUgcGFydGlhbCAnICsgb3B0aW9ucy5uYW1lICsgJyBjb3VsZCBub3QgYmUgY29tcGlsZWQgd2hlbiBydW5uaW5nIGluIHJ1bnRpbWUtb25seSBtb2RlJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gSnVzdCBhZGQgd2F0ZXJcbiAgbGV0IGNvbnRhaW5lciA9IHtcbiAgICBzdHJpY3Q6IGZ1bmN0aW9uKG9iaiwgbmFtZSkge1xuICAgICAgaWYgKCEobmFtZSBpbiBvYmopKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1wiJyArIG5hbWUgKyAnXCIgbm90IGRlZmluZWQgaW4gJyArIG9iaik7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqW25hbWVdO1xuICAgIH0sXG4gICAgbG9va3VwOiBmdW5jdGlvbihkZXB0aHMsIG5hbWUpIHtcbiAgICAgIGNvbnN0IGxlbiA9IGRlcHRocy5sZW5ndGg7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGlmIChkZXB0aHNbaV0gJiYgZGVwdGhzW2ldW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZGVwdGhzW2ldW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBsYW1iZGE6IGZ1bmN0aW9uKGN1cnJlbnQsIGNvbnRleHQpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgY3VycmVudCA9PT0gJ2Z1bmN0aW9uJyA/IGN1cnJlbnQuY2FsbChjb250ZXh0KSA6IGN1cnJlbnQ7XG4gICAgfSxcblxuICAgIGVzY2FwZUV4cHJlc3Npb246IFV0aWxzLmVzY2FwZUV4cHJlc3Npb24sXG4gICAgaW52b2tlUGFydGlhbDogaW52b2tlUGFydGlhbFdyYXBwZXIsXG5cbiAgICBmbjogZnVuY3Rpb24oaSkge1xuICAgICAgbGV0IHJldCA9IHRlbXBsYXRlU3BlY1tpXTtcbiAgICAgIHJldC5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWNbaSArICdfZCddO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuXG4gICAgcHJvZ3JhbXM6IFtdLFxuICAgIHByb2dyYW06IGZ1bmN0aW9uKGksIGRhdGEsIGRlY2xhcmVkQmxvY2tQYXJhbXMsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICAgIGxldCBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0sXG4gICAgICAgICAgZm4gPSB0aGlzLmZuKGkpO1xuICAgICAgaWYgKGRhdGEgfHwgZGVwdGhzIHx8IGJsb2NrUGFyYW1zIHx8IGRlY2xhcmVkQmxvY2tQYXJhbXMpIHtcbiAgICAgICAgcHJvZ3JhbVdyYXBwZXIgPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbiwgZGF0YSwgZGVjbGFyZWRCbG9ja1BhcmFtcywgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2U6IGZ1bmN0aW9uKHBhcmFtLCBjb21tb24pIHtcbiAgICAgIGxldCBvYmogPSBwYXJhbSB8fCBjb21tb247XG5cbiAgICAgIGlmIChwYXJhbSAmJiBjb21tb24gJiYgKHBhcmFtICE9PSBjb21tb24pKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgICBibG9ja1BhcmFtcyA9IHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyA/IFtdIDogdW5kZWZpbmVkO1xuICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlRGVwdGhzKSB7XG4gICAgICBpZiAob3B0aW9ucy5kZXB0aHMpIHtcbiAgICAgICAgZGVwdGhzID0gY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXSA/IFtjb250ZXh0XS5jb25jYXQob3B0aW9ucy5kZXB0aHMpIDogb3B0aW9ucy5kZXB0aHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZXB0aHMgPSBbY29udGV4dF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFpbihjb250ZXh0LyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuICcnICsgdGVtcGxhdGVTcGVjLm1haW4oY29udGFpbmVyLCBjb250ZXh0LCBjb250YWluZXIuaGVscGVycywgY29udGFpbmVyLnBhcnRpYWxzLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgICB9XG4gICAgbWFpbiA9IGV4ZWN1dGVEZWNvcmF0b3JzKHRlbXBsYXRlU3BlYy5tYWluLCBtYWluLCBjb250YWluZXIsIG9wdGlvbnMuZGVwdGhzIHx8IFtdLCBkYXRhLCBibG9ja1BhcmFtcyk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbiAgcmV0LmlzVG9wID0gdHJ1ZTtcblxuICByZXQuX3NldHVwID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucy5wYXJ0aWFsKSB7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLmhlbHBlcnMsIGVudi5oZWxwZXJzKTtcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLnBhcnRpYWxzLCBlbnYucGFydGlhbHMpO1xuICAgICAgfVxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsIHx8IHRlbXBsYXRlU3BlYy51c2VEZWNvcmF0b3JzKSB7XG4gICAgICAgIGNvbnRhaW5lci5kZWNvcmF0b3JzID0gY29udGFpbmVyLm1lcmdlKG9wdGlvbnMuZGVjb3JhdG9ycywgZW52LmRlY29yYXRvcnMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICB9XG4gIH07XG5cbiAgcmV0Ll9jaGlsZCA9IGZ1bmN0aW9uKGksIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZUJsb2NrUGFyYW1zICYmICFibG9ja1BhcmFtcykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIGJsb2NrIHBhcmFtcycpO1xuICAgIH1cbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocyAmJiAhZGVwdGhzKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdtdXN0IHBhc3MgcGFyZW50IGRlcHRocycpO1xuICAgIH1cblxuICAgIHJldHVybiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIHRlbXBsYXRlU3BlY1tpXSwgZGF0YSwgMCwgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIGZuLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKGRlcHRocyAmJiBjb250ZXh0ICE9IGRlcHRoc1swXSAmJiAhKGNvbnRleHQgPT09IGNvbnRhaW5lci5udWxsQ29udGV4dCAmJiBkZXB0aHNbMF0gPT09IG51bGwpKSB7XG4gICAgICBjdXJyZW50RGVwdGhzID0gW2NvbnRleHRdLmNvbmNhdChkZXB0aHMpO1xuICAgIH1cblxuICAgIHJldHVybiBmbihjb250YWluZXIsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGNvbnRhaW5lci5oZWxwZXJzLCBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgIG9wdGlvbnMuZGF0YSB8fCBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtcyAmJiBbb3B0aW9ucy5ibG9ja1BhcmFtc10uY29uY2F0KGJsb2NrUGFyYW1zKSxcbiAgICAgICAgY3VycmVudERlcHRocyk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuXG4gICAgICAvLyBSZXN0b3JlIHRoZSBwYXJ0aWFsLWJsb2NrIGZyb20gdGhlIGNsb3N1cmUgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGJsb2NrXG4gICAgICAvLyBpLmUuIHRoZSBwYXJ0IGluc2lkZSB0aGUgYmxvY2sgb2YgdGhlIHBhcnRpYWwgY2FsbC5cbiAgICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgICBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXSA9IGN1cnJlbnRQYXJ0aWFsQmxvY2s7XG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBpZiAoZm4ucGFydGlhbHMpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHMgPSBVdGlscy5leHRlbmQoe30sIG9wdGlvbnMucGFydGlhbHMsIGZuLnBhcnRpYWxzKTtcbiAgICB9XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkICYmIHBhcnRpYWxCbG9jaykge1xuICAgIHBhcnRpYWwgPSBwYXJ0aWFsQmxvY2s7XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVGhlIHBhcnRpYWwgJyArIG9wdGlvbnMubmFtZSArICcgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gIH0gZWxzZSBpZiAocGFydGlhbCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIHBhcnRpYWwoY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKSB7IHJldHVybiAnJzsgfVxuXG5mdW5jdGlvbiBpbml0RGF0YShjb250ZXh0LCBkYXRhKSB7XG4gIGlmICghZGF0YSB8fCAhKCdyb290JyBpbiBkYXRhKSkge1xuICAgIGRhdGEgPSBkYXRhID8gY3JlYXRlRnJhbWUoZGF0YSkgOiB7fTtcbiAgICBkYXRhLnJvb3QgPSBjb250ZXh0O1xuICB9XG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBleGVjdXRlRGVjb3JhdG9ycyhmbiwgcHJvZywgY29udGFpbmVyLCBkZXB0aHMsIGRhdGEsIGJsb2NrUGFyYW1zKSB7XG4gIGlmIChmbi5kZWNvcmF0b3IpIHtcbiAgICBsZXQgcHJvcHMgPSB7fTtcbiAgICBwcm9nID0gZm4uZGVjb3JhdG9yKHByb2csIHByb3BzLCBjb250YWluZXIsIGRlcHRocyAmJiBkZXB0aHNbMF0sIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpO1xuICAgIFV0aWxzLmV4dGVuZChwcm9nLCBwcm9wcyk7XG4gIH1cbiAgcmV0dXJuIHByb2c7XG59XG4iXX0=\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/handlebars/dist/cjs/handlebars/runtime.js\n// module id = z5Fe\n// module chunks = 0"],"sourceRoot":""}