{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/fslightbox/index.js","webpack:///./src/scripts/base/util.js","webpack:///./src/scripts/base/TaskRunner.js","webpack:///./src/scripts/components/viewportWatcher.js","webpack:///./src/scripts/tasks/others.js","webpack:///./src/scripts/base/LiveEvent.js","webpack:///./src/scripts/components/FloatMenu.js","webpack:///./src/scripts/tasks/header.js","webpack:///./src/scripts/components/Accordion.js","webpack:///./src/scripts/base/jqWrap.js","webpack:///./src/scripts/tasks/accordion.js","webpack:///./src/scripts/data/swiper.js","webpack:///./src/scripts/tasks/swiper.js","webpack:///./src/scripts/tasks/customFocus.js","webpack:///./src/scripts/components/Popup.js","webpack:///./src/scripts/tasks/popups.js","webpack:///./src/scripts/components/Tabs.js","webpack:///./src/scripts/tasks/tabs.js","webpack:///./src/scripts/components/FileInput.js","webpack:///./src/scripts/data/maskers.js","webpack:///./src/scripts/components/FieldMasker.js","webpack:///./src/scripts/data/validators.js","webpack:///./src/scripts/components/FieldValidation.js","webpack:///./src/scripts/components/DatePicker.js","webpack:///./src/scripts/data/formatters.js","webpack:///./src/scripts/components/FieldFormatter.js","webpack:///./src/scripts/tasks/forms.js","webpack:///./src/scripts/tasks/fslightbox.js","webpack:///./src/scripts/data/animItems.js","webpack:///./src/scripts/tasks/scrollAnimations.js","webpack:///./src/scripts/tasks/filters.js","webpack:///./src/scripts/tasks/pageMain.js","webpack:///./src/scripts/tasks/body.js","webpack:///./src/scripts/app.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","e","default","concat","a","u","f","h","g","v","b","x","y","S","iterator","constructor","w","props","this","getSourceTypeFromLocalStorageByUrl","handleReceivedSourceTypeForUrl","localStorage","setItem","JSON","stringify","disableLocalStorage","parse","getItem","L","data","elements","sources","adjustSize","maxSourceWidth","maxSourceHeight","style","width","height","C","collections","sourceSizers","sourceAnimationWrappers","sourceMainWrappers","resolve","runActions","classList","add","removeChild","firstChild","F","handleImageLoad","target","naturalWidth","naturalHeight","handleVideoLoad","videoWidth","videoHeight","handleNotMetaDatedVideoLoad","handleYoutubeLoad","maxYoutubeDimensions","handleCustomLoad","setTimeout","offsetWidth","offsetHeight","A","customClasses","className","I","customAttributes","setAttribute","T","sourceLoadHandlers","document","createElement","src","onload","appendChild","E","videosPosters","onloadedmetadata","controls","poster","N","match","allowFullscreen","W","z","innerHTML","M","sourcesRenderFunctions","core","sourceDisplayFacade","runActionsForSourceTypeAndIndex","displaySourcesWhichShouldBeDisplayed","P","href","hostname","slice","indexOf","readyState","getResponseHeader","onreadystatechange","abort","setUrlToCheck","getSourceType","XMLHttpRequest","open","send","H","types","type","getTypeSetByClientForIndex","retrieveTypeWithXhrForIndex","k","componentsServices","hideSourceLoaderIfNotYetCollection","sourceWrappersContainer","contains","O","createElementNS","setAttributeNS","R","title","j","container","fullscreenToggler","enterFullscreen","isFullscreenOpen","exitFullscreen","onclick","lightboxCloser","closeLightbox","D","length","stageIndexes","setSlideNumber","justifyContent","X","byValue","negative","zero","positive","transform","slideDistance","innerWidth","B","charAt","toUpperCase","U","remove","V","eventsDispatcher","globalEventsController","scrollbarRecompensor","sourcePointerProps","isLightboxFadingOut","removeListeners","exitFullscreenOnClose","isPointering","documentElement","removeRecompense","body","dispatch","_","slideChangeFacade","listener","changeToPrevious","changeToNext","preventDefault","q","sourceMainWrappersTransformers","swipedX","runActionsForEvent","slideSwipingHoverer","screenX","downScreenX","current","previous","next","J","G","slideIndexChanger","runPositiveSwipedXActions","changeTo","runNegativeSwipedXActions","$","K","runNoSwipeActions","isSourceDownEventTarget","Q","Z","classFacade","removeFromEachElementClassIfContains","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","windowResizeActioner","attachListeners","addEventListener","removeEventListener","ne","addRecompense","innerHeight","marginRight","scrollbarWidth","removeProperty","stageManager","jumpTo","getPreviousSlideIndex","getNextSlideIndex","push","pop","updateStageIndexes","Y","sourcesPointerDown","tagName","loadOnlyCurrentSource","isSourceInStage","te","isInitialized","visibility","msOverflowStyle","overflow","toString","ee","lightboxOpener","arguments","oe","re","Reflect","construct","apply","Function","ie","sham","Proxy","Date","setPrototypeOf","__proto__","se","Array","isArray","ae","from","test","TypeError","ce","getElementsByTagName","hasAttribute","getAttribute","fsLightboxInstances","FsLightbox","getElementById","substring","attributes","substr","keys","fsLightbox","createTextNode","head","unshift","lightboxUpdater","close","refreshFsLightbox","scrollTop","bodyFixable","bodyScrollEnabled","scrollDisableElem","isTouch","prefixes","split","DocumentTouch","query","matchMedia","matches","mq","join","isSafari","navigator","userAgent","refreshCustomVH","vh","setProperty","wh","clientHeight","bodyDisableScroll","top","bodyEnableScroll","tasks","isInit","console","warn","forEach","task","logError","error","message","errmess","innerText","taskFunc","includes","DEFAULT_OPTIONS","root","rootMargin","threshold","observeCallback","entries","obs","entry","isIntersecting","dispatchEvent","CustomEvent","isObserverSupporting","IntersectionObserverEntry","watchElements","options","elem","IntersectionObserver","observe","Event","documentWidth","parseInt","clientWidth","submenuElem","querySelector","smoothScrollTo","rect","getBoundingClientRect","scrollTo","scrollY","behavior","watcherOptions","targets","querySelectorAll","trigger","targSelector","targElement","currActiveElem","callbacks","LiveEvent","event","selector","callback","String","selectors","strselectors","mainHandler","log","selInd","splice","targ","closest","ind","defaults","offset","hide","FloatMenu","opts","assign","lastPos","tick","st","delta","isBreakpoint","show","reset","toggle","header","on","toggleExpand","selfClose","multiple","collapseChilds","Accordion","content","accordion","isExpand","maxHeight","scrollHeight","collapse","expand","currExpandedElem","parentElement","undefined","par","force","$this","each","inst","params","varName","ClassName","fn","acc","mainCatalogSlider","loop","slidesPerView","watchOverflow","mainAdvantagesSlider","effect","speed","lazy","preloadImages","autoHeight","navigation","pagination","simpleSlider","clientsSlider","loadPrevNext","loadPrevNextAmount","partnersSlider","slidesPerColumn","slidesPerColumnFill","breakpoints","768","992","tabsNavSlider","freeMode","fractionNumFunc","num","places","padStart","zeroPad","el","clickable","paginationFraction","formatFractionCurrent","formatFractionTotal","nextEl","prevEl","scrollbar","draggable","wrapSlider","settings","sliderIdentifier","settObj","swiperCont","swiperWrap","children","slide","append","replace","customProgressObject","textH","textV","textHEl","textVEl","calcCustomProgress","swp","widthHeight","progress","activeIndexChange","afterInit","navigationPrev","navigationNext","scrollbarEl","lazyElem","after","preloader","getPreloaderTemplate","thumbs","thumbSettings","swiper","thumbElement","thumbSwiper","er","slider","autoplay","Number","delay","disableOnInteraction","waitForTransition","mediaQuery","breakpoint","breakpointChecker","Swiper","origSettings","destroy","linkWith","linkedSlider","slideTo","realIndex","wrapSwiperSlider","onReset","field","onBlur","onFocus","inputField","closePos","scrollBackground","closeToEscape","currPopup","popup","contentElement","contentElem","templ","overlay","closeBtn","id","removeAttribute","getPopupTemplate","iframe","video","pause","popupSelector","popupElem","err","modal","Popup","initAll","Tabs","rootElement","nav","hash","location","activeInd","navElem","expandTab","tabs","currActiveNav","currActiveTab","FileInput","cont","form","fcont","display","rbtn","files","clear","fill","resetField","childNodes","node","currFile","fileName","ruPhone","filter","val","numonly","pattern","cardNumber","passportNumber","passportSubdivisionCode","snils","cardExpiration","smsCode","NUMBER_PLACEHOLDER_REGEX","ALT_CARET_REGEX","maskType","fieldMasker","mask","focusInHandler","focusOutHandler","caretIndex","selectionStart","maskVal","newVal","filteredVal","filterNum","phReg","placeholder","strval","padEnd","fm","maskedVal","newCaret","getCaretNumIndex","maskedValBeforeCaret","selectionEnd","prevCaret","caretPos","altCaret","index","ruTel","password","number","numberDec","url","date","validator","fieldValidator","validators","validate","once","defaultError","flag","parentNode","errfld","validity","valid","monthNames","DatePicker","linkedElem","currDate","disableBeforeCurrent","disableFrom","identifier","getTime","originDate","_currDate","selectedDay","datePicker","monthControls","prev","text","selectContainer","ev","setDate","toLocaleDateString","monthPrev","monthNext","init","selectCurrent","firstDayCurrMonth","spaceCount","getDayFromDate","mon","getMonth","origTime","disabledTime","prevDisabled","template","currDay","getDate","currTime","isDisabledBack","isDisabledForward","disabled","getFullYear","setMonth","dateObj","day","getDay","currencyDefault","vals","toLocaleString","maximumFractionDigits","formatter","initFld","inp","masker","reInitFormField","unlockTarg","allFields","allValid","checkValidity","input","srcSet","galId","lb","observer","onViewportHandler","watchOnce","unobserve","detail","item","itm","list","watchingTarget","subtarg","subtargSelector","anim","delayBase","delayStep","subtargElement","customOptions","flt","filterTarget","fltVal","filterTargets","wasteParent","filterTargetsParent","update","load","btn","bubbles","currActiveButton","blocksChangeTime","scrollerMinHeight","scrollLocked","pageMainLayoutSlider","unlockScroll","startStopAutoplay","block","start","innerElem","stop","play","pageLayoutSwiper","direction","preventInteractionOnTransition","followFinger","keyboard","enabled","slideChange","activeIndex","slides","preventClicks","preventClicksPropagation","allowTouchMove","shortSwipes","lognSwipes","edgeSwipeDetection","isSliderEnabled","initMainSlider","deltaY","slideNext","slidePrev","scrollLockerStopPropagation","stopPropagation","scrollLockerEl","viewportInHandler","viewportOutHandler","windowHeight","documentHeight","recalcParams","Math","max","prevScroll","pageProgress","pageProgressRelative","run"],"mappings":"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","file":"app.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)(\"object\"==typeof exports?exports:e)[o]=n[o]}}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t,n){\"use strict\";n.r(t);var o,r=\"fslightbox-\",i=\"\".concat(r,\"styles\"),s=\"\".concat(r,\"cursor-grabbing\"),a=\"\".concat(r,\"full-dimension\"),c=\"\".concat(r,\"flex-centered\"),l=\"\".concat(r,\"open\"),u=\"\".concat(r,\"transform-transition\"),d=\"\".concat(r,\"absoluted\"),p=\"\".concat(r,\"slide-btn\"),f=\"\".concat(p,\"-container\"),h=\"\".concat(r,\"fade-in\"),m=\"\".concat(r,\"fade-out\"),g=h+\"-strong\",v=m+\"-strong\",b=\"\".concat(r,\"opacity-\"),x=\"\".concat(b,\"1\"),y=\"\".concat(r,\"source\");function S(e){return(S=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}\"object\"===(\"undefined\"==typeof document?\"undefined\":S(document))&&((o=document.createElement(\"style\")).className=i,o.appendChild(document.createTextNode(\".fslightbox-absoluted{position:absolute;top:0;left:0}.fslightbox-fade-in{animation:fslightbox-fade-in .3s cubic-bezier(0,0,.7,1)}.fslightbox-fade-out{animation:fslightbox-fade-out .3s ease}.fslightbox-fade-in-strong{animation:fslightbox-fade-in-strong .3s cubic-bezier(0,0,.7,1)}.fslightbox-fade-out-strong{animation:fslightbox-fade-out-strong .3s ease}@keyframes fslightbox-fade-in{from{opacity:.65}to{opacity:1}}@keyframes fslightbox-fade-out{from{opacity:.35}to{opacity:0}}@keyframes fslightbox-fade-in-strong{from{opacity:.3}to{opacity:1}}@keyframes fslightbox-fade-out-strong{from{opacity:1}to{opacity:0}}.fslightbox-cursor-grabbing{cursor:grabbing}.fslightbox-full-dimension{width:100%;height:100%}.fslightbox-open{overflow:hidden;height:100%}.fslightbox-flex-centered{display:flex;justify-content:center;align-items:center}.fslightbox-opacity-0{opacity:0!important}.fslightbox-opacity-1{opacity:1!important}.fslightbox-scrollbarfix{padding-right:17px}.fslightbox-transform-transition{transition:transform .3s}.fslightbox-container{font-family:Arial,sans-serif;position:fixed;top:0;left:0;background:linear-gradient(rgba(30,30,30,.9),#000 1810%);touch-action:none;z-index:1000000000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.fslightbox-container *{box-sizing:border-box}.fslightbox-svg-path{transition:fill .15s ease;fill:#ddd}.fslightbox-nav{height:45px;width:100%;position:absolute;top:0;left:0}.fslightbox-slide-number-container{display:flex;justify-content:center;align-items:center;position:relative;height:100%;font-size:15px;color:#d7d7d7;z-index:0;max-width:55px;text-align:left}.fslightbox-slide-number-container .fslightbox-flex-centered{height:100%}.fslightbox-slash{display:block;margin:0 5px;width:1px;height:12px;transform:rotate(15deg);background:#fff}.fslightbox-toolbar{position:absolute;z-index:3;right:0;top:0;height:100%;display:flex;background:rgba(35,35,35,.65)}.fslightbox-toolbar-button{height:100%;width:45px;cursor:pointer}.fslightbox-toolbar-button:hover .fslightbox-svg-path{fill:#fff}.fslightbox-slide-btn-container{display:flex;align-items:center;padding:12px 12px 12px 6px;position:absolute;top:50%;cursor:pointer;z-index:3;transform:translateY(-50%)}@media (min-width:476px){.fslightbox-slide-btn-container{padding:22px 22px 22px 6px}}@media (min-width:768px){.fslightbox-slide-btn-container{padding:30px 30px 30px 6px}}.fslightbox-slide-btn-container:hover .fslightbox-svg-path{fill:#f1f1f1}.fslightbox-slide-btn{padding:9px;font-size:26px;background:rgba(35,35,35,.65)}@media (min-width:768px){.fslightbox-slide-btn{padding:10px}}@media (min-width:1600px){.fslightbox-slide-btn{padding:11px}}.fslightbox-slide-btn-container-previous{left:0}@media (max-width:475.99px){.fslightbox-slide-btn-container-previous{padding-left:3px}}.fslightbox-slide-btn-container-next{right:0;padding-left:12px;padding-right:3px}@media (min-width:476px){.fslightbox-slide-btn-container-next{padding-left:22px}}@media (min-width:768px){.fslightbox-slide-btn-container-next{padding-left:30px}}@media (min-width:476px){.fslightbox-slide-btn-container-next{padding-right:6px}}.fslightbox-down-event-detector{position:absolute;z-index:1}.fslightbox-slide-swiping-hoverer{z-index:4}.fslightbox-invalid-file-wrapper{font-size:22px;color:#eaebeb;margin:auto}.fslightbox-video{object-fit:cover}.fslightbox-youtube-iframe{border:0}.fslightbox-loader{display:block;margin:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:67px;height:67px}.fslightbox-loader div{box-sizing:border-box;display:block;position:absolute;width:54px;height:54px;margin:6px;border:5px solid;border-color:#999 transparent transparent transparent;border-radius:50%;animation:fslightbox-loader 1.2s cubic-bezier(.5,0,.5,1) infinite}.fslightbox-loader div:nth-child(1){animation-delay:-.45s}.fslightbox-loader div:nth-child(2){animation-delay:-.3s}.fslightbox-loader div:nth-child(3){animation-delay:-.15s}@keyframes fslightbox-loader{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fslightbox-source{position:relative;z-index:2;opacity:0}\")),document.head.appendChild(o));function w(e){var t,n=e.props,o=0,r={};this.getSourceTypeFromLocalStorageByUrl=function(e){return t[e]?t[e]:i(e)},this.handleReceivedSourceTypeForUrl=function(e,n){!1===r[n]&&(o--,\"invalid\"!==e?r[n]=e:delete r[n],0===o&&(!function(e,t){for(var n in t)e[n]=t[n]}(t,r),localStorage.setItem(\"fslightbox-types\",JSON.stringify(t))))};var i=function(e){o++,r[e]=!1};n.disableLocalStorage?(this.getSourceTypeFromLocalStorageByUrl=function(){},this.handleReceivedSourceTypeForUrl=function(){}):(t=JSON.parse(localStorage.getItem(\"fslightbox-types\")))||(t={},this.getSourceTypeFromLocalStorageByUrl=i)}function L(e,t,n,o){var r=e.data,i=e.elements.sources,s=n/o,a=0;this.adjustSize=function(){if((a=r.maxSourceWidth/s)r.maxSourceHeight?r.maxSourceHeight:o,c()};var c=function(){i[t].style.width=a*s+\"px\",i[t].style.height=a+\"px\"}}function C(e,t){var n=this,o=e.collections.sourceSizers,r=e.elements,i=r.sourceAnimationWrappers,s=r.sourceMainWrappers,a=r.sources,c=e.resolve;function l(e,n){o[t]=c(L,[t,e,n]),o[t].adjustSize()}this.runActions=function(e,o){a[t].classList.add(x),i[t].classList.add(g),s[t].removeChild(s[t].firstChild),l(e,o),n.runActions=l}}function F(e,t){var n,o=this,r=e.elements.sources,i=e.props,s=(0,e.resolve)(C,[t]);this.handleImageLoad=function(e){var t=e.target,n=t.naturalWidth,o=t.naturalHeight;s.runActions(n,o)},this.handleVideoLoad=function(e){var t=e.target,o=t.videoWidth,r=t.videoHeight;n=!0,s.runActions(o,r)},this.handleNotMetaDatedVideoLoad=function(){n||o.handleYoutubeLoad()},this.handleYoutubeLoad=function(){var e=1920,t=1080;i.maxYoutubeDimensions&&(e=i.maxYoutubeDimensions.width,t=i.maxYoutubeDimensions.height),s.runActions(e,t)},this.handleCustomLoad=function(){setTimeout((function(){var e=r[t];s.runActions(e.offsetWidth,e.offsetHeight)}))}}function A(e,t,n){var o=e.elements.sources,r=e.props.customClasses,i=r[t]?r[t]:\"\";o[t].className=n+\" \"+i}function I(e,t){var n=e.elements.sources,o=e.props.customAttributes;for(var r in o[t])n[t].setAttribute(r,o[t][r])}function T(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,r=o.sources,i=o.sourceAnimationWrappers,s=e.props.sources;r[t]=document.createElement(\"img\"),A(e,t,y),r[t].src=s[t],r[t].onload=n[t].handleImageLoad,I(e,t),i[t].appendChild(r[t])}function E(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,r=o.sources,i=o.sourceAnimationWrappers,s=e.props,a=s.sources,c=s.videosPosters;r[t]=document.createElement(\"video\"),A(e,t,y),r[t].src=a[t],r[t].onloadedmetadata=function(e){n[t].handleVideoLoad(e)},r[t].controls=!0,I(e,t),c[t]&&(r[t].poster=c[t]);var l=document.createElement(\"source\");l.src=a[t],r[t].appendChild(l),setTimeout(n[t].handleNotMetaDatedVideoLoad,3e3),i[t].appendChild(r[t])}function N(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,i=o.sources,s=o.sourceAnimationWrappers,a=e.props.sources;i[t]=document.createElement(\"iframe\"),A(e,t,\"\".concat(y,\" \").concat(r,\"youtube-iframe\")),i[t].src=\"https://www.youtube.com/embed/\".concat(a[t].match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/)[2],\"?enablejsapi=1\"),i[t].allowFullscreen=!0,I(e,t),s[t].appendChild(i[t]),n[t].handleYoutubeLoad()}function W(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,r=o.sources,i=o.sourceAnimationWrappers,s=e.props.sources;r[t]=s[t],A(e,t,\"\".concat(r[t].className,\" \").concat(y)),i[t].appendChild(r[t]),n[t].handleCustomLoad()}function z(e,t){var n=e.elements,o=n.sources,i=n.sourceAnimationWrappers,s=n.sourceMainWrappers;e.props.sources;o[t]=document.createElement(\"div\"),o[t].className=\"\".concat(r,\"invalid-file-wrapper \").concat(c),o[t].innerHTML=\"Invalid source\",i[t].classList.add(g),i[t].appendChild(o[t]),s[t].removeChild(s[t].firstChild)}function M(e){var t=e.collections,n=t.sourceLoadHandlers,o=t.sourcesRenderFunctions,r=e.core.sourceDisplayFacade,i=e.resolve;this.runActionsForSourceTypeAndIndex=function(t,s){var a;switch(\"invalid\"!==t&&(n[s]=i(F,[s])),t){case\"image\":a=T;break;case\"video\":a=E;break;case\"youtube\":a=N;break;case\"custom\":a=W;break;default:a=z}o[s]=function(){return a(e,s)},r.displaySourcesWhichShouldBeDisplayed()}}function P(){var e,t,n,o={isUrlYoutubeOne:function(e){var t=document.createElement(\"a\");return t.href=e,\"www.youtube.com\"===t.hostname},getTypeFromResponseContentType:function(e){return e.slice(0,e.indexOf(\"/\"))}};function r(){if(4!==n.readyState){if(2===n.readyState){var e;switch(o.getTypeFromResponseContentType(n.getResponseHeader(\"content-type\"))){case\"image\":e=\"image\";break;case\"video\":e=\"video\";break;default:e=\"invalid\"}n.onreadystatechange=null,n.abort(),t(e)}}else t(\"invalid\")}this.setUrlToCheck=function(t){e=t},this.getSourceType=function(i){if(o.isUrlYoutubeOne(e))return i(\"youtube\");t=i,(n=new XMLHttpRequest).onreadystatechange=r,n.open(\"GET\",e,!0),n.send()}}function H(e,t,n){var o=e.props,r=o.types,i=o.type,s=o.sources,a=e.resolve;this.getTypeSetByClientForIndex=function(e){var t;return r&&r[e]?t=r[e]:i&&(t=i),t},this.retrieveTypeWithXhrForIndex=function(e){var o=a(P);o.setUrlToCheck(s[e]),o.getSourceType((function(o){t.handleReceivedSourceTypeForUrl(o,s[e]),n.runActionsForSourceTypeAndIndex(o,e)}))}}function k(e,t){var n=e.componentsServices.hideSourceLoaderIfNotYetCollection,o=e.elements,r=o.sourceWrappersContainer,i=o.sourceMainWrappers;i[t]=document.createElement(\"div\"),i[t].className=\"\".concat(d,\" \").concat(a,\" \").concat(c),i[t].innerHTML='
';var s=i[t].firstChild;n[t]=function(){i[t].contains(s)&&i[t].removeChild(s)},r.appendChild(i[t]),function(e,t){var n=e.elements,o=n.sourceMainWrappers,r=n.sourceAnimationWrappers;r[t]=document.createElement(\"div\"),o[t].appendChild(r[t])}(e,t)}function O(e,t,n,o){var i=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");i.setAttributeNS(null,\"width\",t),i.setAttributeNS(null,\"height\",t),i.setAttributeNS(null,\"viewBox\",n);var s=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");return s.setAttributeNS(null,\"class\",\"\".concat(r,\"svg-path\")),s.setAttributeNS(null,\"d\",o),i.appendChild(s),e.appendChild(i),i}function R(e,t){var n=document.createElement(\"div\");return n.className=\"\".concat(r,\"toolbar-button \").concat(c),n.title=t,e.appendChild(n),n}function D(e,t){var n=document.createElement(\"div\");n.className=\"\".concat(r,\"toolbar\"),t.appendChild(n),function(e,t){var n=e.componentsServices,o=e.core.fullscreenToggler,r=e.data,i=\"M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z\",s=R(t);s.title=\"Enter fullscreen\";var a=O(s,\"20px\",\"0 0 18 18\",i);n.enterFullscreen=function(){r.isFullscreenOpen=!0,s.title=\"Exit fullscreen\",a.setAttributeNS(null,\"width\",\"24px\"),a.setAttributeNS(null,\"height\",\"24px\"),a.setAttributeNS(null,\"viewBox\",\"0 0 950 1024\"),a.firstChild.setAttributeNS(null,\"d\",\"M682 342h128v84h-212v-212h84v128zM598 810v-212h212v84h-128v128h-84zM342 342v-128h84v212h-212v-84h128zM214 682v-84h212v212h-84v-128h-128z\")},n.exitFullscreen=function(){r.isFullscreenOpen=!1,s.title=\"Enter fullscreen\",a.setAttributeNS(null,\"width\",\"20px\"),a.setAttributeNS(null,\"height\",\"20px\"),a.setAttributeNS(null,\"viewBox\",\"0 0 18 18\"),a.firstChild.setAttributeNS(null,\"d\",i)},s.onclick=function(){r.isFullscreenOpen?o.exitFullscreen():o.enterFullscreen()}}(e,n),function(e,t){var n=R(t,\"Close\");n.onclick=e.core.lightboxCloser.closeLightbox,O(n,\"20px\",\"0 0 24 24\",\"M 4.7070312 3.2929688 L 3.2929688 4.7070312 L 10.585938 12 L 3.2929688 19.292969 L 4.7070312 20.707031 L 12 13.414062 L 19.292969 20.707031 L 20.707031 19.292969 L 13.414062 12 L 20.707031 4.7070312 L 19.292969 3.2929688 L 12 10.585938 L 4.7070312 3.2929688 z\")}(e,n)}function j(e){var t=e.props.sources,n=e.elements.container,o=document.createElement(\"div\");o.className=\"\".concat(r,\"nav\"),n.appendChild(o),D(e,o),t.length>1&&function(e,t){var n=e.componentsServices,o=e.props.sources,i=(e.stageIndexes,document.createElement(\"div\"));i.className=\"\".concat(r,\"slide-number-container\");var s=document.createElement(\"div\");s.className=c;var a=document.createElement(\"span\");n.setSlideNumber=function(e){return a.innerHTML=e};var l=document.createElement(\"span\");l.className=\"\".concat(r,\"slash\");var u=document.createElement(\"div\");u.innerHTML=o.length,i.appendChild(s),s.appendChild(a),s.appendChild(l),s.appendChild(u),t.appendChild(i),setTimeout((function(){s.offsetWidth>55&&(i.style.justifyContent=\"flex-start\")}))}(e,o)}function X(e,t){var n=this,o=e.elements.sourceMainWrappers,r=e.props,i=0;this.byValue=function(e){return i=e,n},this.negative=function(){s(-a())},this.zero=function(){s(0)},this.positive=function(){s(a())};var s=function(e){o[t].style.transform=\"translateX(\".concat(e+i,\"px)\"),i=0},a=function(){return(1+r.slideDistance)*innerWidth}}function B(e,t,n,o){var r=e.elements.container,i=n.charAt(0).toUpperCase()+n.slice(1),s=document.createElement(\"div\");s.className=\"\".concat(f,\" \").concat(f,\"-\").concat(n),s.title=\"\".concat(i,\" slide\"),s.onclick=t,function(e,t){var n=document.createElement(\"div\");n.className=\"\".concat(p,\" \").concat(c),O(n,\"20px\",\"0 0 20 20\",t),e.appendChild(n)}(s,o),r.appendChild(s)}function U(e,t){var n=e.classList;n.contains(t)&&n.remove(t)}function V(e){var t=this,n=e.core,o=n.eventsDispatcher,r=n.fullscreenToggler,i=n.globalEventsController,s=n.scrollbarRecompensor,a=e.data,c=e.elements,u=e.props,d=e.sourcePointerProps;this.isLightboxFadingOut=!1,this.runActions=function(){t.isLightboxFadingOut=!0,c.container.classList.add(v),i.removeListeners(),u.exitFullscreenOnClose&&a.isFullscreenOpen&&r.exitFullscreen(),setTimeout((function(){t.isLightboxFadingOut=!1,d.isPointering=!1,c.container.classList.remove(v),document.documentElement.classList.remove(l),s.removeRecompense(),document.body.removeChild(c.container),o.dispatch(\"onClose\")}),270)}}function Y(e){var t,n,o,r=e.collections.sourceMainWrappersTransformers,i=e.componentsServices,s=e.core,a=s.classFacade,c=s.slideIndexChanger,l=s.sourceDisplayFacade,d=s.stageManager,p=e.elements.sourceAnimationWrappers,f=e.stageIndexes,v=(t=function(){a.removeFromEachElementClassIfContains(\"sourceAnimationWrappers\",m)},n=300,o=[],function(){o.push(!0),setTimeout((function(){o.pop(),o.length||t()}),n)});c.changeTo=function(e){f.current=e,d.updateStageIndexes(),i.setSlideNumber(e+1),l.displaySourcesWhichShouldBeDisplayed()},c.jumpTo=function(e){var t=f.current;c.changeTo(e),a.removeFromEachElementClassIfContains(\"sourceMainWrappers\",u),U(p[t],g),U(p[t],h),p[t].classList.add(m),U(p[e],g),U(p[e],m),p[e].classList.add(h),v(),r[e].zero(),setTimeout((function(){t!==f.current&&r[t].negative()}),270)}}function _(e){var t=e.core,n=t.lightboxCloser,o=t.fullscreenToggler,r=t.slideChangeFacade;this.listener=function(e){switch(e.key){case\"Escape\":n.closeLightbox();break;case\"ArrowLeft\":r.changeToPrevious();break;case\"ArrowRight\":r.changeToNext();break;case\"F11\":e.preventDefault(),o.enterFullscreen()}}}function q(e){var t=e.collections.sourceMainWrappersTransformers,n=e.elements,o=e.sourcePointerProps,r=e.stageIndexes;function i(e,n){t[e].byValue(o.swipedX)[n]()}this.runActionsForEvent=function(e){var t,a,c;n.container.contains(n.slideSwipingHoverer)||n.container.appendChild(n.slideSwipingHoverer),t=n.container,a=s,(c=t.classList).contains(a)||c.add(a),o.swipedX=e.screenX-o.downScreenX,i(r.current,\"zero\"),void 0!==r.previous&&o.swipedX>0?i(r.previous,\"negative\"):void 0!==r.next&&o.swipedX<0&&i(r.next,\"positive\")}}function J(e){var t=e.props.sources,n=e.resolve,o=e.sourcePointerProps,r=n(q);1===t.length?this.listener=function(){o.swipedX=1}:this.listener=function(e){o.isPointering&&r.runActionsForEvent(e)}}function G(e){var t=e.collections.sourceMainWrappersTransformers,n=e.core.slideIndexChanger,o=e.elements.sourceMainWrappers,r=e.stageIndexes;this.runPositiveSwipedXActions=function(){void 0===r.previous||(i(\"positive\"),n.changeTo(r.previous)),i(\"zero\")},this.runNegativeSwipedXActions=function(){void 0===r.next||(i(\"negative\"),n.changeTo(r.next)),i(\"zero\")};var i=function(e){o[r.current].classList.add(u),t[r.current][e]()}}function $(e,t){e.contains(t)&&e.removeChild(t)}function K(e){var t=e.core.lightboxCloser,n=e.elements,o=e.resolve,r=e.sourcePointerProps,i=o(G);this.runNoSwipeActions=function(){$(n.container,n.slideSwipingHoverer),r.isSourceDownEventTarget||t.closeLightbox(),r.isPointering=!1},this.runActions=function(){r.swipedX>0?i.runPositiveSwipedXActions():i.runNegativeSwipedXActions(),$(n.container,n.slideSwipingHoverer),n.container.classList.remove(s),r.isPointering=!1}}function Q(e){var t=e.resolve,n=e.sourcePointerProps,o=t(K);this.listener=function(){n.isPointering&&(n.swipedX?o.runActions():o.runNoSwipeActions())}}function Z(e){var t,n,o;n=(t=e).core.classFacade,o=t.elements,n.removeFromEachElementClassIfContains=function(e,t){for(var n=0;ninnerHeight&&(document.body.style.marginRight=t.scrollbarWidth+\"px\")};n.removeRecompense=function(){document.body.style.removeProperty(\"margin-right\")}}(e),function(e){var t=e.core,n=t.slideChangeFacade,o=t.slideIndexChanger,r=t.stageManager;e.props.sources.length>1?(n.changeToPrevious=function(){o.jumpTo(r.getPreviousSlideIndex())},n.changeToNext=function(){o.jumpTo(r.getNextSlideIndex())}):(n.changeToPrevious=function(){},n.changeToNext=function(){})}(e),Y(e),function(e){var t=e.core,n=t.classFacade,o=t.sourcesPointerDown,r=e.elements.sources,i=e.sourcePointerProps,s=e.stageIndexes;o.listener=function(e){\"VIDEO\"!==e.target.tagName&&e.preventDefault(),i.isPointering=!0,i.downScreenX=e.screenX,i.swipedX=0;var t=r[s.current];t&&t.contains(e.target)?i.isSourceDownEventTarget=!0:i.isSourceDownEventTarget=!1,n.removeFromEachElementClassIfContains(\"sourceMainWrappers\",u)}}(e),function(e){var t=e.collections.sourcesRenderFunctions,n=e.core.sourceDisplayFacade,o=e.props,r=e.stageIndexes;function i(e){t[e]&&(t[e](),delete t[e])}n.displaySourcesWhichShouldBeDisplayed=function(){if(o.loadOnlyCurrentSource)i(r.current);else for(var e in r)i(r[e])}}(e),function(e){var t=e.stageIndexes,n=e.core.stageManager,o=e.props.sources.length-1;n.getPreviousSlideIndex=function(){return 0===t.current?o:t.current-1},n.getNextSlideIndex=function(){return t.current===o?0:t.current+1},n.updateStageIndexes=0===o?function(){}:1===o?function(){0===t.current?(t.next=1,delete t.previous):(t.previous=0,delete t.next)}:function(){t.previous=n.getPreviousSlideIndex(),t.next=n.getNextSlideIndex()},n.isSourceInStage=o<=2?function(){return!0}:function(e){var n=t.current;if(0===n&&e===o||n===o&&0===e)return!0;var r=n-e;return-1===r||0===r||1===r}}(e),function(e){var t=e.collections,n=t.sourceMainWrappersTransformers,o=t.sourceSizers,r=e.core.windowResizeActioner,i=e.data,s=e.elements.sourceMainWrappers,a=e.props,c=e.stageIndexes;r.runActions=function(){innerWidth<992?i.maxSourceWidth=innerWidth:i.maxSourceWidth=.9*innerWidth,i.maxSourceHeight=.9*innerHeight;for(var e=0;e1&&function(e){var t=e.core.slideChangeFacade;B(e,t.changeToPrevious,\"previous\",\"M18.271,9.212H3.615l4.184-4.184c0.306-0.306,0.306-0.801,0-1.107c-0.306-0.306-0.801-0.306-1.107,0L1.21,9.403C1.194,9.417,1.174,9.421,1.158,9.437c-0.181,0.181-0.242,0.425-0.209,0.66c0.005,0.038,0.012,0.071,0.022,0.109c0.028,0.098,0.075,0.188,0.142,0.271c0.021,0.026,0.021,0.061,0.045,0.085c0.015,0.016,0.034,0.02,0.05,0.033l5.484,5.483c0.306,0.307,0.801,0.307,1.107,0c0.306-0.305,0.306-0.801,0-1.105l-4.184-4.185h14.656c0.436,0,0.788-0.353,0.788-0.788S18.707,9.212,18.271,9.212z\"),B(e,t.changeToNext,\"next\",\"M1.729,9.212h14.656l-4.184-4.184c-0.307-0.306-0.307-0.801,0-1.107c0.305-0.306,0.801-0.306,1.106,0l5.481,5.482c0.018,0.014,0.037,0.019,0.053,0.034c0.181,0.181,0.242,0.425,0.209,0.66c-0.004,0.038-0.012,0.071-0.021,0.109c-0.028,0.098-0.075,0.188-0.143,0.271c-0.021,0.026-0.021,0.061-0.045,0.085c-0.015,0.016-0.034,0.02-0.051,0.033l-5.483,5.483c-0.306,0.307-0.802,0.307-1.106,0c-0.307-0.305-0.307-0.801,0-1.105l4.184-4.185H1.729c-0.436,0-0.788-0.353-0.788-0.788S1.293,9.212,1.729,9.212z\")}(e),function(e){for(var t=e.props.sources,n=e.resolve,o=n(w),r=n(M),i=n(H,[o,r]),s=0;s0&&void 0!==arguments[0]?arguments[0]:0;h.current=o,p.isInitialized?r.dispatch(\"onShow\"):te(e),u.updateStageIndexes(),c.displaySourcesWhichShouldBeDisplayed(),n.setSlideNumber(o+1),document.body.appendChild(f.container),document.documentElement.classList.add(l),a.addRecompense(),s.attachListeners(),d.runActions(),t[h.current].zero(),r.dispatch(\"onOpen\")}}function oe(e,t,n){return(oe=re()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var r=new(Function.bind.apply(e,o));return n&&ie(r,n.prototype),r}).apply(null,arguments)}function re(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function ie(e,t){return(ie=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function se(e){return function(e){if(Array.isArray(e))return ae(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if(\"string\"==typeof e)return ae(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ae(e,t)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:[];return n.unshift(e),oe(t,se(n))},this.collections={sourceMainWrappersTransformers:[],sourceLoadHandlers:[],sourcesRenderFunctions:[],sourceSizers:[]},this.core={classFacade:{},eventsDispatcher:{},fullscreenToggler:{},globalEventsController:{},lightboxCloser:{},lightboxOpener:{},lightboxUpdater:{},scrollbarRecompensor:{},slideChangeFacade:{},slideIndexChanger:{},sourcesPointerDown:{},sourceDisplayFacade:{},stageManager:{},windowResizeActioner:{}},ne(this),this.open=function(t){return e.core.lightboxOpener.open(t)},this.close=function(){return e.core.lightboxCloser.closeLightbox()}},window.fsLightboxInstances={},ce(),window.refreshFsLightbox=function(){for(var e in fsLightboxInstances){var t=fsLightboxInstances[e].props;fsLightboxInstances[e]=new FsLightbox,fsLightboxInstances[e].props=t,fsLightboxInstances[e].props.sources=[],fsLightboxInstances[e].elements.a=[]}ce()}}])}));","/**\r\n * Различные утилиты, геттеры и т.д.\r\n */\r\n\r\nlet scrollTop = 0;\r\nlet bodyFixable = false;\r\nlet bodyScrollEnabled = true;\r\n\r\nlet scrollDisableElem = document.documentElement;\r\n\r\nexport const isTouch = () => {\r\n var prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\r\n var mq = function (query) {\r\n return window.matchMedia(query).matches;\r\n };\r\n\r\n if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\r\n return true;\r\n }\r\n\r\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\r\n // https://git.io/vznFH\r\n var query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\r\n return mq(query);\r\n};\r\n\r\nexport const isIe = () => {\r\n return navigator.userAgent.match(/Trident\\/7.0/i);\r\n};\r\n\r\nexport const isSafari = () => {\r\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n};\r\n\r\nexport const refreshCustomVH = () => {\r\n let vh = window.innerHeight * 0.01;\r\n document.documentElement.style.setProperty('--vh', `${vh}px`);\r\n};\r\n\r\nexport const getScrollbarWidth = () => {\r\n let documentWidth = parseInt(document.documentElement.clientWidth),\r\n windowsWidth = parseInt(window.innerWidth);\r\n\r\n return windowsWidth - documentWidth;\r\n};\r\n\r\nexport const ww = () => {\r\n return window.innerWidth || document.documentElement.clientWidth;\r\n};\r\n\r\nexport const wh = () => {\r\n return window.innerHeight || document.documentElement.clientHeight;\r\n};\r\n\r\nexport const isBodyScrollEnabled = () => {\r\n return bodyScrollEnabled;\r\n};\r\n\r\nexport const isBodyFixable = () => {\r\n return bodyFixable;\r\n};\r\n\r\nexport const bodyDisableScroll = () => {\r\n scrollTop = scrollDisableElem.scrollTop;\r\n scrollDisableElem.classList.add('scroll-disabled');\r\n\r\n if (bodyFixable) scrollDisableElem.style.top = (-scrollTop) + 'px';\r\n\r\n bodyScrollEnabled = false;\r\n};\r\n\r\nexport const bodyEnableScroll = () => {\r\n scrollDisableElem.classList.remove('scroll-disabled');\r\n\r\n if (bodyFixable) {\r\n scrollDisableElem.style.top = '';\r\n scrollDisableElem.scrollTop = scrollTop;\r\n }\r\n\r\n bodyScrollEnabled = true;\r\n};\r\n\r\nexport const rootElem = () => {\r\n return scrollDisableElem;\r\n};\r\n\r\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\r\n\r\nbodyFixable = isTouch() && isSafari();","/**\r\n * Таск раннер\r\n */\r\nimport { isTouch } from './util';\r\n\r\nlet tasks = [];\r\nlet isInit = false;\r\n\r\nexport default class TaskRunner {\r\n static run() {\r\n if (isInit) {\r\n console.warn('Tasks already run!');\r\n return;\r\n }\r\n\r\n tasks.forEach(task => {\r\n setTimeout(() => {\r\n try{\r\n task.call();\r\n }catch(e){\r\n TaskRunner.logError(e);\r\n }\r\n }, 0);\r\n });\r\n\r\n isInit = true;\r\n tasks = null;\r\n }\r\n\r\n static logError(error) {\r\n let message = `Error: ${error.name}\\nMessage: ${error.message}`;\r\n\r\n if (isTouch()) {\r\n var errmess = document.createElement('span');\r\n errmess.classList.add('debug-message');\r\n errmess.innerText = message;\r\n document.body.appendChild(errmess);\r\n }\r\n\r\n console.error(message);\r\n }\r\n\r\n static add(taskFunc) {\r\n if (typeof taskFunc !== 'function') {\r\n console.warn('Wrong task type!');\r\n return;\r\n } else if (tasks.includes(taskFunc)) {\r\n console.warn('That task is already exist!');\r\n return;\r\n } else if (isInit) {\r\n taskFunc.call();\r\n return;\r\n }\r\n\r\n tasks.push(taskFunc);\r\n }\r\n}","/**\r\n * Модуль для проверки наличия какого-то блока во вьюпорте и триггера события с него\r\n */\r\n\r\nexport const IN_VIEWPORT = 'inViewport';\r\nexport const OUT_VIEWPORT = 'outViewport';\r\n\r\nexport const DEFAULT_OPTIONS = {\r\n root: null,\r\n rootMargin: '-20% 0px',\r\n threshold: 0.01\r\n};\r\n\r\nconst observeCallback = (entries, obs) => {\r\n let iterator = 0;\r\n\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n entry.target.dispatchEvent(new CustomEvent(IN_VIEWPORT, { 'detail': iterator++ }));\r\n } else {\r\n entry.target.dispatchEvent(new CustomEvent(OUT_VIEWPORT));\r\n }\r\n });\r\n};\r\n\r\nexport const isObserverSupporting = !(!'IntersectionObserver' in window &&\r\n !'IntersectionObserverEntry' in window &&\r\n !'intersectionRatio' in window.IntersectionObserverEntry.prototype);\r\n\r\nexport const watchElement = (element, options = DEFAULT_OPTIONS) => {\r\n let obs;\r\n\r\n if (element) {\r\n obs = new IntersectionObserver(observeCallback, options);\r\n obs.observe(element);\r\n }\r\n\r\n return obs;\r\n};\r\n\r\nexport const watchElements = (elements, options = DEFAULT_OPTIONS) => {\r\n let obs;\r\n\r\n if (elements && elements.length > 0) {\r\n elements.forEach(elem => {\r\n if (!isObserverSupporting) {\r\n elem.dispatchEvent(new Event(IN_VIEWPORT));\r\n } else {\r\n if (!obs) obs = new IntersectionObserver(observeCallback, options);\r\n\r\n obs.observe(elem);\r\n }\r\n });\r\n }\r\n\r\n return obs;\r\n};","import * as util from '../base/util';\r\nimport TaskRunner from '../base/TaskRunner';\r\n// import LiveEvent from '../base/LiveEvent';\r\nimport * as Watcher from '../components/viewportWatcher';\r\n\r\nTaskRunner.add(() => {\r\n // Кастомный vh\r\n util.refreshCustomVH();\r\n\r\n window.addEventListener('resize', () => {\r\n util.refreshCustomVH();\r\n });\r\n\r\n document.documentElement.style.setProperty('--scrollbarWidth', util.getScrollbarWidth() + 'px');\r\n\r\n // LiveEvent\r\n // // .on('click', '#pageScrollUp', (e) => {\r\n // // window.scrollTo({\r\n // // top: 0,\r\n // // behavior: 'smooth'\r\n // // });\r\n // // })\r\n // .on('click', '.countpicker-dec', (e, targ) => {\r\n // const fld = targ.nextElementSibling;\r\n\r\n // if(--fld.value === 1){\r\n // targ.disabled = true;\r\n // }\r\n // })\r\n // .on('click', '.countpicker-inc', (e, targ) => {\r\n // const fld = targ.previousElementSibling;\r\n\r\n // if(++fld.value === 2){\r\n // fld.previousElementSibling.disabled = false;\r\n // }\r\n // })\r\n // .on('change', '.countpicker-num', (e, targ) => {\r\n // if(targ.value <= 1){\r\n // targ.value = 1;\r\n // targ.previousElementSibling.disabled = true;\r\n // }else{\r\n // targ.previousElementSibling.disabled = false;\r\n // }\r\n // });\r\n\r\n // Секция проверки в случае наличия у нас на странице субменю\r\n const submenuElem = document.querySelector('.page_inner--layout-sidebar nav');\r\n\r\n if (submenuElem) {\r\n const smoothScrollTo = (elem) => {\r\n const rect = elem.getBoundingClientRect();\r\n\r\n window.scrollTo({\r\n top: rect.top + window.scrollY,\r\n behavior: 'smooth'\r\n });\r\n };\r\n\r\n const watcherOptions = {\r\n root: null,\r\n rootMargin: '-30% 0px',\r\n threshold: 0.01\r\n };\r\n\r\n let targets = [];\r\n\r\n submenuElem.querySelectorAll('a,button').forEach(trigger => {\r\n const targSelector = trigger.getAttribute('href') || trigger.getAttribute('data-target');\r\n const targElement = document.querySelector(targSelector);\r\n\r\n if (targElement) {\r\n trigger.addEventListener('click', (e) => {\r\n smoothScrollTo(targElement);\r\n\r\n e.preventDefault();\r\n });\r\n\r\n targElement.addEventListener(Watcher.IN_VIEWPORT, () => {\r\n const currActiveElem = submenuElem.querySelector('.active');\r\n\r\n if (currActiveElem && currActiveElem !== trigger) {\r\n currActiveElem.classList.remove('active');\r\n }\r\n\r\n trigger.classList.add('active');\r\n });\r\n\r\n targets.push(targElement);\r\n };\r\n });\r\n\r\n Watcher.watchElements(targets, watcherOptions);\r\n }\r\n});","/**\r\n * Данный класс является альтернативой $(document).on('event', 'selector', callback);\r\n */\r\n\r\n/**\r\n * Структура этого объекта такая: callbacks: {\r\n * click: {\r\n * selectors: [],\r\n * callbacks: [],\r\n * strselectors: ''\r\n * }\r\n * }\r\n */\r\nlet callbacks = {};\r\n\r\nexport default class LiveEvent {\r\n static on(event, selector, callback) {\r\n event = String(event);\r\n selector = String(selector);\r\n\r\n if (typeof callback !== 'function') {\r\n console.log('Third arfument must be the function!');\r\n return;\r\n }\r\n\r\n if (typeof callbacks[event] === 'undefined') {\r\n callbacks[event] = {\r\n selectors: [],\r\n callbacks: [],\r\n strselectors: ''\r\n };\r\n\r\n document.addEventListener(event, LiveEvent.mainHandler);\r\n }\r\n\r\n callbacks[event].selectors.push(selector);\r\n callbacks[event].callbacks.push(callback);\r\n callbacks[event].strselectors += (callbacks[event].strselectors.length > 0) ? ',' + selector : selector;\r\n\r\n return LiveEvent;\r\n }\r\n\r\n static off(event, selector) {\r\n if (typeof callbacks[event] !== 'undefined') {\r\n let selInd = callbacks[event].selectors.indexOf(selector);\r\n\r\n if(selInd >= 0){\r\n callbacks[event].selectors.splice(selInd, 1);\r\n callbacks[event].callbacks.splice(selInd, 1);\r\n callbacks[event].strselectors = callbacks[event].selectors.join(',');\r\n }\r\n\r\n if(callbacks[event].selectors.length === 0){\r\n delete callbacks[event];\r\n document.removeEventListener(event, LiveEvent.mainHandler);\r\n }\r\n }\r\n\r\n return LiveEvent;\r\n }\r\n\r\n static mainHandler(e) {\r\n if (typeof callbacks[e.type] !== 'undefined') {\r\n let targ = e.target.closest(callbacks[e.type].strselectors);\r\n\r\n if(targ !== null){\r\n for(let ind in callbacks[e.type].selectors){\r\n if(targ.matches(callbacks[e.type].selectors[ind])){\r\n callbacks[e.type].callbacks[ind].call(targ, e, targ);\r\n }\r\n }\r\n }\r\n } else {\r\n document.removeEventListener(e.type, LiveEvent.mainHandler);\r\n }\r\n }\r\n}","/**\r\n * Модуль плавающего меню (любого)\r\n */\r\n\r\nconst defaults = {\r\n offset: 100, // Отступ от верха экрана до верха элемента, когда отменяется фиксация\r\n hide: true // Скрывать ли элемент при прокрутке вниз и показывать при прокрутке вверх\r\n};\r\n\r\nexport default class FloatMenu {\r\n constructor(elem, options = defaults) {\r\n this.elem = elem;\r\n this.opts = Object.assign({}, defaults, options);\r\n this.lastPos = 0;\r\n\r\n this.tick();\r\n\r\n window.addEventListener('scroll', (e) => {\r\n this.tick();\r\n });\r\n }\r\n\r\n tick() {\r\n let st = window.scrollY;\r\n let delta = this.lastPos - st;\r\n\r\n if(delta === 0) return;\r\n\r\n let offset = this.elem.clientHeight + this.options.offset;\r\n let isBreakpoint = this.lastPos <= offset;\r\n\r\n if (st > offset) {\r\n this.elem.classList.add('fix');\r\n\r\n if (this.options.hide && !isBreakpoint) {\r\n if (delta <= 0) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n }\r\n } else if (st == 0) {\r\n this.reset();\r\n }\r\n\r\n this.lastPos = st;\r\n }\r\n\r\n toggleExpand(){\r\n this.elem.classList.toggle('expanded');\r\n\r\n return this.elem.classList.contains('expanded');\r\n }\r\n\r\n show(){\r\n this.elem.classList.remove('hide');\r\n this.elem.classList.add('show');\r\n }\r\n\r\n hide(){\r\n this.elem.classList.remove('show');\r\n this.elem.classList.add('hide');\r\n }\r\n\r\n reset(){\r\n this.elem.classList.remove('fix', 'show', 'hide');\r\n }\r\n\r\n get options() {\r\n return this.opts;\r\n }\r\n\r\n get element() {\r\n return this.elem;\r\n }\r\n\r\n static get defaults() {\r\n return defaults;\r\n }\r\n}","import * as util from '../base/util';\r\nimport TaskRunner from '../base/TaskRunner';\r\nimport LiveEvent from '../base/LiveEvent';\r\n\r\nimport FloatMenu from '../components/FloatMenu';\r\n\r\nTaskRunner.add(() => {\r\n let header = new FloatMenu(document.getElementById('pageHeader'));\r\n\r\n LiveEvent.on('click', '#menuBurger', (e) => {\r\n var has = header.toggleExpand();\r\n\r\n if (has) {\r\n util.bodyDisableScroll();\r\n } else {\r\n util.bodyEnableScroll();\r\n\r\n if(util.isBodyFixable()) header.show();\r\n }\r\n\r\n e.preventDefault();\r\n }).on('click', '#headerSearchToggle', (e, targ) => {\r\n targ.classList.toggle('toggle');\r\n });\r\n});","/**\r\n * Модуль аккордиона\r\n */\r\n\r\nconst defaults = {\r\n selfClose: true, // Позволять закрыть текущий элемент (нужно сочитать с multiple)\r\n multiple: true, // Если false то нельзя развернуть больше 1 аккордиона\r\n collapseChilds: false, // Сворачивать ли детей при свертывании родителя\r\n};\r\n\r\nconst ACCORDION_EXPANDED = 'AccordionExpanded';\r\nconst ACCORDION_COLLAPSED = 'AccordionCollapsed';\r\n\r\nexport default class Accordion {\r\n constructor(elem, options = defaults) {\r\n this.opts = Object.assign({}, defaults, options);\r\n\r\n this.elem = elem;\r\n this.content = elem.querySelector('.accordion-content');\r\n\r\n elem.classList.add('accordion-root');\r\n elem.accordion = this;\r\n\r\n this.isExpand = elem.classList.contains('expanded');\r\n\r\n if (this.isExpand) {\r\n elem.style.maxHeight = this.content.scrollHeight;\r\n }\r\n }\r\n\r\n static get ACCORDION_EXPANDED() {\r\n return ACCORDION_EXPANDED;\r\n }\r\n\r\n static get ACCORDION_COLLAPSED() {\r\n return ACCORDION_COLLAPSED;\r\n }\r\n\r\n get options() {\r\n return this.opts;\r\n }\r\n\r\n get element() {\r\n return this.elem;\r\n }\r\n\r\n toggle() {\r\n if (this.isExpand)\r\n this.collapse();\r\n else\r\n this.expand();\r\n }\r\n\r\n expand() {\r\n if (!this.options.multiple) {\r\n let currExpandedElem = this.elem.parentElement.querySelector('.accordion-root.expanded');\r\n\r\n if (currExpandedElem && currExpandedElem.accordion != undefined) {\r\n currExpandedElem.accordion.collapse(true);\r\n }\r\n }\r\n\r\n this.content.style.maxHeight = `${this.content.scrollHeight}px`;\r\n this.elem.classList.add('expanded');\r\n this.isExpand = true;\r\n\r\n let par = this.elem.closest('.accordion-content');\r\n\r\n if (par) {\r\n par.style.maxHeight = `${par.clientHeight + this.content.scrollHeight}px`;\r\n }\r\n\r\n this.elem.dispatchEvent(new Event(ACCORDION_EXPANDED));\r\n }\r\n\r\n collapse(force = false) {\r\n if (this.options.selfClose || force) {\r\n this.elem.classList.remove('expanded');\r\n this.isExpand = false;\r\n\r\n if (this.options.collapseChilds) {\r\n this.elem.querySelectorAll('.accordion-root.expanded').forEach(elem => {\r\n if(elem.accordion)\r\n elem.accordion.collapse(true);\r\n });\r\n }\r\n\r\n this.elem.dispatchEvent(new Event(ACCORDION_COLLAPSED));\r\n }\r\n }\r\n\r\n destroy(){\r\n this.elem.accordion = null;\r\n this.elem = null;\r\n this.opts = null;\r\n this.content = null;\r\n }\r\n}","export default ($this, ClassName, varName, params) => {\r\n $this.each((i, v) => {\r\n let inst;\r\n\r\n if (\r\n params == undefined ||\r\n params.length === 0 ||\r\n typeof params[0] === 'object' ||\r\n typeof v[varName] === 'undefined'\r\n ) {\r\n inst = new ClassName(v, params != undefined ? params[0] : {});\r\n } else if (v[varName] != undefined) {\r\n inst = v[varName];\r\n }/*else{\r\n return $this;\r\n }*/\r\n\r\n if (\r\n inst != undefined &&\r\n params != undefined &&\r\n typeof params[0] == 'string' &&\r\n inst[params[0]] != undefined &&\r\n typeof inst[params[0]] == \"function\"\r\n ) {\r\n inst[params[0]].apply(inst, params.slice(1));\r\n }\r\n });\r\n\r\n return $this;\r\n};","import Accordion from '../components/Accordion';\r\nimport $wrap from '../base/jqWrap';\r\nimport TaskRunner from '../base/TaskRunner';\r\nimport LiveEvent from '../base/LiveEvent';\r\n\r\nconst defaults = {\r\n multiple: true,\r\n selfClose: true,\r\n collapseChilds: true\r\n};\r\n\r\nTaskRunner.add(() => {\r\n if (typeof $ !== 'undefined') {\r\n $.fn.accordion = function (...params) {\r\n return $wrap(this, Accordion, 'accordion', params);\r\n };\r\n }\r\n\r\n window.Accordion = Accordion;\r\n\r\n LiveEvent.on('click', '.accordion-header', (e) => {\r\n let root = e.target.closest('.accordion-root');\r\n\r\n if (root && root.accordion != undefined) {\r\n root.accordion.toggle();\r\n }\r\n });\r\n\r\n document.querySelectorAll('.accordion').forEach(acc => {\r\n new Accordion(acc, defaults);\r\n });\r\n});","export default {\r\n mainCatalogSlider: {\r\n loop: false,\r\n slidesPerView: 'auto',\r\n watchOverflow: true\r\n },\r\n mainAdvantagesSlider: {\r\n loop: false,\r\n effect: 'fade',\r\n speed: 0,\r\n lazy: true,\r\n preloadImages: false,\r\n autoHeight: true,\r\n navigation: 'default',\r\n pagination: 'fraction',\r\n watchOverflow: true\r\n },\r\n simpleSlider: {\r\n loop: false,\r\n effect: 'fade',\r\n speed: 0,\r\n lazy: true,\r\n preloadImages: false,\r\n navigation: 'default',\r\n pagination: 'fraction',\r\n watchOverflow: true\r\n },\r\n clientsSlider: {\r\n loop: false,\r\n lazy: {\r\n loadPrevNext: true,\r\n loadPrevNextAmount: 4\r\n },\r\n preloadImages: false,\r\n slidesPerView: 'auto',\r\n watchOverflow: true\r\n },\r\n partnersSlider: {\r\n loop: false,\r\n navigation: 'default',\r\n pagination: 'fraction',\r\n slidesPerView: 2,\r\n slidesPerColumn: 4,\r\n slidesPerColumnFill: 'row',\r\n watchOverflow: true,\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 3\r\n },\r\n 992: {\r\n slidesPerView: 4\r\n }\r\n }\r\n },\r\n tabsNavSlider: {\r\n loop: false,\r\n freeMode: true,\r\n watchOverflow: true,\r\n slidesPerView: 'auto'\r\n }\r\n};","import TaskRunner from '../base/TaskRunner';\r\nimport sliders from '../data/swiper';\r\nimport { zeroPad } from '../base/util';\r\n\r\nconst fractionNumFunc = (num) => {\r\n return zeroPad(num, 2);\r\n};\r\n\r\nconst defaults = {\r\n pagination: {\r\n el: '.swiper-pagination',\r\n clickable: true\r\n },\r\n paginationFraction: {\r\n el: '.swiper-pagination',\r\n type: 'fraction',\r\n formatFractionCurrent: fractionNumFunc,\r\n formatFractionTotal: fractionNumFunc\r\n },\r\n navigation: {\r\n nextEl: '.swiper-button-next',\r\n prevEl: '.swiper-button-prev',\r\n },\r\n scrollbar: {\r\n el: '.swiper-scrollbar',\r\n draggable: true\r\n }\r\n};\r\n\r\nconst getPreloaderTemplate = () => {\r\n let preloader = document.createElement('div');\r\n preloader.classList.add('swiper-lazy-preloader', 'swiper-lazy-preloader-white');\r\n return preloader;\r\n};\r\n\r\n\r\n/**\r\n * Обёртка для слайдеров.\r\n * @param {DOM Object} elem Объект, который нужно обернуть и проинициализировать.\r\n */\r\nexport const wrapSlider = (elem, settings = undefined) => {\r\n let sliderIdentifier = elem.getAttribute('data-swiper');\r\n settings = settings || sliders[sliderIdentifier];\r\n\r\n if (typeof settings === 'object') {\r\n settings.el = undefined;\r\n let settObj = Object.assign({}, settings);\r\n\r\n elem.classList.add('swiper-root');\r\n\r\n let swiperCont = document.createElement('div');\r\n swiperCont.classList.add('swiper-container');\r\n let swiperWrap = document.createElement('div');\r\n swiperWrap.classList.add('swiper-wrapper');\r\n\r\n while (elem.children.length > 0) {\r\n let slide = elem.children[0];\r\n slide.classList.add('swiper-slide');\r\n swiperWrap.append(slide);\r\n }\r\n\r\n swiperCont.append(swiperWrap);\r\n elem.append(swiperCont);\r\n\r\n switch (settObj.pagination) {\r\n case 'default':\r\n // Отрисуем пагинацию, а шо делать\r\n settObj.pagination = Object.assign({}, defaults.pagination);\r\n\r\n let pagination = document.createElement('div');\r\n pagination.classList.add(settObj.pagination.el.replace(/\\./g, ''));\r\n\r\n elem.append(pagination);\r\n\r\n settObj.pagination.el = pagination;\r\n break;\r\n case 'fraction':\r\n // Отрисуем пагинацию, а шо делать\r\n settObj.pagination = Object.assign({}, defaults.paginationFraction);\r\n\r\n let paginationFraction = document.createElement('div');\r\n paginationFraction.classList.add(settObj.pagination.el.replace(/\\./g, ''));\r\n\r\n elem.append(paginationFraction);\r\n\r\n settObj.pagination.el = paginationFraction;\r\n break;\r\n case 'customProgress':\r\n const customProgressObject = document.createElement('div');\r\n customProgressObject.classList.add('swiper-progress_custom');\r\n\r\n const textH = elem.getAttribute('data-progress-h');\r\n const textV = elem.getAttribute('data-progress-v');\r\n\r\n const textHEl = document.createElement('span');\r\n textHEl.innerText = textH;\r\n const textVEl = document.createElement('span');\r\n textVEl.innerText = textV;\r\n\r\n customProgressObject.append(textHEl, textVEl);\r\n\r\n elem.append(customProgressObject);\r\n\r\n const calcCustomProgress = (swp) => {\r\n const widthHeight = `${swp.progress * 100}%`;\r\n customProgressObject.style.width = customProgressObject.style.height = widthHeight;\r\n };\r\n\r\n settObj.pagination = {};\r\n settObj.on = Object.assign({}, settObj.on, {\r\n activeIndexChange: calcCustomProgress,\r\n afterInit: calcCustomProgress\r\n });\r\n\r\n break;\r\n }\r\n\r\n if (settObj.navigation === 'default') {\r\n // Отрисуем навигацию, а шо делать\r\n settObj.navigation = Object.assign({}, defaults.navigation);\r\n\r\n let navigationPrev = document.createElement('button');\r\n navigationPrev.setAttribute('type', 'button');\r\n navigationPrev.classList.add(settObj.navigation.prevEl.replace(/\\./g, ''));\r\n\r\n let navigationNext = document.createElement('button');\r\n navigationNext.setAttribute('type', 'button');\r\n navigationNext.classList.add(settObj.navigation.nextEl.replace(/\\./g, ''));\r\n\r\n elem.append(navigationPrev, navigationNext);\r\n\r\n settObj.navigation.prevEl = navigationPrev;\r\n settObj.navigation.nextEl = navigationNext;\r\n }\r\n\r\n if (settObj.scrollbar === 'default') {\r\n // Отрисуем скроллбар, а шо делать\r\n settObj.scrollbar = Object.assign({}, defaults.scrollbar);\r\n\r\n let scrollbarEl = document.createElement('div');\r\n scrollbarEl.classList.add('swiper-scrollbar');\r\n\r\n elem.append(scrollbarEl);\r\n\r\n settObj.scrollbar.el = scrollbarEl;\r\n }\r\n\r\n if (settObj.lazy) {\r\n // Если у нас врублен лезилодинг\r\n swiperWrap.querySelectorAll('[data-src],[data-background],[data-srcset]').forEach(lazyElem => {\r\n lazyElem.classList.add('swiper-lazy');\r\n lazyElem.after(getPreloaderTemplate());\r\n });\r\n }\r\n\r\n if (settObj.thumbs != undefined) {\r\n // Инициализируем слайдер с тумбами\r\n const thumbSettings = Object.assign({}, settObj.thumbs.swiper);\r\n \r\n try{\r\n const thumbElement = elem.parentElement.querySelector(thumbSettings.el);\r\n const thumbSwiper = wrapSlider(thumbElement, thumbSettings);\r\n\r\n if(thumbSwiper){\r\n settObj.thumbs = {\r\n swiper: thumbSwiper\r\n };\r\n }else{\r\n settObj.thumbs = undefined;\r\n }\r\n }catch(er){\r\n console.error('Unable to find thumb object :(\\ninitializing slider without it!');\r\n settObj.thumbs = undefined;\r\n }\r\n }\r\n\r\n let autoplay = Number(elem.getAttribute('data-autoplay'));\r\n if (autoplay > 0) {\r\n settObj.autoplay = {\r\n delay: autoplay,\r\n disableOnInteraction: false,\r\n waitForTransition: false\r\n };\r\n }\r\n\r\n // Пришло время инициализировать слайдер\r\n let slider;\r\n\r\n if (settObj.mediaQuery && settObj.mediaQuery.length > 0) {\r\n const breakpoint = window.matchMedia(settObj.mediaQuery);\r\n const breakpointChecker = () => {\r\n if (breakpoint.matches === true) {\r\n slider = new Swiper(swiperCont, settObj);\r\n slider.origSettings = settObj;\r\n } else if (breakpoint.matches === false && slider !== undefined) {\r\n slider.destroy(true, true);\r\n }\r\n };\r\n\r\n breakpoint.addEventListener('change', breakpointChecker);\r\n\r\n breakpointChecker();\r\n } else {\r\n slider = new Swiper(swiperCont, settObj);\r\n slider.origSettings = settObj;\r\n }\r\n\r\n if (settObj.linkWith) {\r\n // Связываем слайдеры\r\n slider.on('slideChange', function () {\r\n try {\r\n let linkedSlider = document.querySelector(`${slider.params.linkWith} .swiper-container`).swiper;\r\n\r\n if (linkedSlider != undefined) {\r\n linkedSlider.slideTo(slider.realIndex);\r\n }\r\n } catch (e) {\r\n console.warn(e.message);\r\n }\r\n });\r\n }\r\n\r\n return slider;\r\n } else {\r\n console.warn('slider with id ' + sliderIdentifier + ' is not found');\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const initSliders = () => {\r\n let foundSliders = document.querySelectorAll('[data-swiper]:not(.swiper-root)');\r\n\r\n foundSliders.forEach(slider => {\r\n wrapSlider(slider);\r\n });\r\n};\r\n\r\nTaskRunner.add(() => {\r\n if (typeof Swiper === 'undefined') return;\r\n\r\n window.wrapSwiperSlider = wrapSlider;\r\n\r\n initSliders();\r\n});","import TaskRunner from '../base/TaskRunner';\r\nimport LiveEvent from '../base/LiveEvent';\r\n\r\nconst onReset = (e) => {\r\n e.target.querySelectorAll('input.focused, textarea.focused, select.focused').forEach(field => {\r\n field.classList.remove('focused');\r\n field.setAttribute('value', '');\r\n });\r\n};\r\n\r\nconst onBlur = (e) => {\r\n if (e.target.value.length === 0) {\r\n e.target.classList.remove('focused');\r\n }\r\n};\r\n\r\nconst onFocus = (e) => {\r\n e.target.classList.add('focused');\r\n};\r\n\r\nTaskRunner.add(() => {\r\n let inputs = document.querySelectorAll('input, textarea, select');\r\n\r\n inputs.forEach(inputField => {\r\n if (inputField.value.length > 0) {\r\n inputField.classList.add('focused');\r\n }\r\n });\r\n\r\n LiveEvent\r\n .on('reset', 'form', onReset)\r\n .on('focusout', 'input, textarea, select', onBlur)\r\n .on('focusin', 'input, textarea, select', onFocus);\r\n});","/**\r\n * Модуль попапов\r\n * Доступные методы: .show(), .hide()\r\n */\r\n\r\nimport { bodyDisableScroll, bodyEnableScroll, wh } from '../base/util';\r\nimport LiveEvent from '../base/LiveEvent';\r\n\r\nconst POSITION_INNER = 'inner';\r\nconst POSITION_OUTER = 'outer';\r\n\r\nconst IFRAME_SELECTOR = 'iframe[src*=\"youtube\"]';\r\n\r\nconst defaults = {\r\n closePos: POSITION_INNER, // Позиция кнопки закрытия. Может быть внутри или снаружи самого окна\r\n scrollBackground: false, // Флаг прокрутки контента за модалкой\r\n};\r\n\r\nconst closeToEscape = (e) => {\r\n if (e.key === \"Escape\") {\r\n let currPopup = document.querySelector('.popup-root.popup-initialized.popup-visible');\r\n\r\n if (currPopup && currPopup.popup) currPopup.popup.hide();\r\n\r\n e.preventDefault();\r\n }\r\n};\r\n\r\nconst getPopupTemplate = (closePos, contentElem) => {\r\n let templ = document.createElement('div');\r\n templ.classList.add('popup-root', 'popup-initialized');\r\n let container = document.createElement('div');\r\n container.classList.add('popup-container');\r\n let overlay = document.createElement('div');\r\n overlay.classList.add('popup-overlay', 'popup-close');\r\n\r\n let closeBtn = document.createElement('button');\r\n closeBtn.classList.add('popup-cross', 'popup-close');\r\n closeBtn.setAttribute('type', 'button');\r\n\r\n templ.appendChild(container);\r\n container.appendChild(overlay);\r\n\r\n switch (closePos) {\r\n case POSITION_INNER:\r\n contentElem.appendChild(closeBtn);\r\n break;\r\n case POSITION_OUTER:\r\n container.appendChild(closeBtn);\r\n break;\r\n default:\r\n console.warn('Wrong closePos value!');\r\n return null;\r\n }\r\n\r\n let id = contentElem.id;\r\n contentElem.removeAttribute('id');\r\n templ.setAttribute('id', id);\r\n\r\n container.appendChild(contentElem);\r\n\r\n return templ;\r\n};\r\n\r\nexport default class Popup {\r\n constructor(contentElement, options = defaults) {\r\n this.opts = Object.assign({}, defaults, options);\r\n this.content = contentElement;\r\n\r\n this.root = getPopupTemplate(this.opts.closePos, this.content);\r\n this.root.popup = this;\r\n\r\n // this.container = this.root.children[0];\r\n\r\n document.body.appendChild(this.root);\r\n }\r\n\r\n show() {\r\n this.root.classList.add('popup-visible');\r\n\r\n let cancelScroll =\r\n !this.opts.scrollBackground ||\r\n wh() < this.root.scrollHeight;\r\n\r\n // Если высота окна меньше чем высота модалки то запрещаем скроллить html (модалка скроллится)\r\n if (cancelScroll) {\r\n bodyDisableScroll();\r\n\r\n if (wh() >= this.root.scrollHeight) {\r\n this.root.classList.add('popup-non-scrollable');\r\n }\r\n }\r\n\r\n // Поставим слушатель эскейпа\r\n document.addEventListener('keydown', closeToEscape);\r\n }\r\n\r\n hide() {\r\n var iframe = this.content.querySelector(IFRAME_SELECTOR);\r\n\r\n if (iframe) {\r\n var src = iframe.src;\r\n iframe.src = '';\r\n iframe.src = src;\r\n }\r\n\r\n var video = this.content.querySelector('video');\r\n\r\n if (video) {\r\n video.pause();\r\n }\r\n\r\n // Скрываем модалку\r\n this.root.classList.remove('popup-visible', 'popup-non-scrollable');\r\n\r\n // Возвращаем возможность скроллинга html\r\n bodyEnableScroll();\r\n\r\n document.removeEventListener('keydown', closeToEscape);\r\n }\r\n\r\n get options() {\r\n return this.opts;\r\n }\r\n\r\n get POSITION_INNER() {\r\n return POSITION_INNER;\r\n }\r\n\r\n get POSITION_OUTER() {\r\n return POSITION_OUTER;\r\n }\r\n\r\n get rootElem() {\r\n return this.root;\r\n }\r\n\r\n static initAll(options = defaults) {\r\n LiveEvent.on('click', '[data-popup]', (e, targ) => {\r\n let popupSelector = targ.getAttribute('data-popup');\r\n let popupElem = document.querySelector(popupSelector);\r\n\r\n if (popupElem) {\r\n let popup;\r\n\r\n if (!popupElem.classList.contains('popup-initialized')) {\r\n popup = new Popup(popupElem, options);\r\n } else if (popupElem.popup) {\r\n popup = popupElem.popup;\r\n } else {\r\n console.warn('Popup element has not popup attribute!');\r\n return;\r\n }\r\n\r\n try {\r\n document.getElementById(targ.getAttribute('data-change-text-on')).innerText = targ.getAttribute('data-change-text-to');\r\n } catch (err) {\r\n console.warn('Unable to change text in element!');\r\n }\r\n\r\n popup.show();\r\n e.preventDefault();\r\n }\r\n });\r\n\r\n LiveEvent.on('click', '.popup-close', e => {\r\n let popup = e.target.closest('.popup-root');\r\n\r\n if (popup && popup.popup) {\r\n popup.popup.hide();\r\n e.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n static getObject(selector) {\r\n let elem = document.querySelector(selector);\r\n\r\n if (elem) {\r\n return typeof elem.popup !== 'undefined' ? elem.popup : new Popup(elem);\r\n }\r\n\r\n return null;\r\n }\r\n}","import Popup from '../components/Popup.js';\r\nimport $wrap from '../base/jqWrap';\r\nimport TaskRunner from '../base/TaskRunner';\r\n\r\nTaskRunner.add(() => {\r\n if (typeof $ !== 'undefined')\r\n $.fn.modal = function (...params) {\r\n return $wrap(this, Popup, 'popup', params);\r\n };\r\n \r\n window.Popup = Popup;\r\n\r\n Popup.initAll();\r\n});","/**\r\n * Модуль табов\r\n */\r\n\r\nconst defaults = {\r\n\r\n};\r\n\r\nexport default class Tabs {\r\n constructor(rootElement, options = defaults) {\r\n this.opts = Object.assign({}, defaults, options);\r\n\r\n this.root = rootElement;\r\n this.root.classList.add('tabs-root', 'tabs-initialized');\r\n\r\n this.nav = this.root.querySelector('.tabs-nav');\r\n this.container = this.root.querySelector('.tabs-container');\r\n\r\n const hash = window.location.hash.replace('#','');\r\n let activeInd = 1;\r\n\r\n this.nav.querySelectorAll('.tabs-nav-item').forEach((navElem, ind) => {\r\n if(hash.length > 0 && navElem.id === hash){\r\n activeInd = ind + 1;\r\n }\r\n\r\n navElem.addEventListener('click', (e) => {\r\n this.expandTab(ind + 1);\r\n });\r\n });\r\n\r\n this.root.tabs = this;\r\n\r\n this.expandTab(activeInd);\r\n }\r\n\r\n expandTab(ind) {\r\n try {\r\n let currActiveNav = this.nav.querySelector('.tabs-active');\r\n\r\n if(currActiveNav){\r\n currActiveNav.classList.remove('tabs-active');\r\n }\r\n \r\n this.nav.querySelector(`.tabs-nav-item:nth-child(${ind})`).classList.add('tabs-active');\r\n\r\n let currActiveTab = this.container.querySelector('.tabs-active');\r\n\r\n if(currActiveTab){\r\n currActiveTab.classList.remove('tabs-active');\r\n }\r\n \r\n this.container.querySelector(`.tabs-tab:nth-child(${ind})`).classList.add('tabs-active');\r\n } catch (e) {\r\n console.error(e.message);\r\n }\r\n }\r\n}","import Tabs from '../components/Tabs';\r\nimport $wrap from '../base/jqWrap';\r\nimport TaskRunner from '../base/TaskRunner';\r\n\r\nTaskRunner.add(() => {\r\n if (typeof $ !== 'undefined') {\r\n $.fn.tabs = function (...params) {\r\n return $wrap(this, Tabs, 'tabs', params);\r\n };\r\n }\r\n\r\n window.Tabs = Tabs;\r\n\r\n document.querySelectorAll('.tabs').forEach(tabs => {\r\n new Tabs(tabs);\r\n });\r\n});","const rootClass = \"input_container\";\r\n\r\nexport default class FileInput {\r\n constructor(elem) {\r\n this.elem = elem;\r\n this.cont = this.elem.closest('.' + rootClass);\r\n this.form = this.elem.closest('form');\r\n // this.label = cont.querySelector('.input-container__label');\r\n // Создаем файловый контейнер\r\n this.fcont = document.createElement('span');\r\n this.fcont.classList.add(`${rootClass}--files`);\r\n this.fcont.style.display = 'none';\r\n\r\n this.rbtn = document.createElement('button');\r\n this.rbtn.type = 'button';\r\n\r\n this.fcont.append(this.rbtn);\r\n this.cont.append(this.fcont);\r\n\r\n this.elem.addEventListener('change', (e) => {\r\n if (this.elem.files.length > 0) {\r\n this.fcont.style.display = '';\r\n this.clear();\r\n this.fill();\r\n } else {\r\n this.fcont.style.display = 'none';\r\n }\r\n });\r\n\r\n this.rbtn.addEventListener('click', (e) => {\r\n this.resetField();\r\n });\r\n\r\n this.form.addEventListener('reset', (e) => {\r\n this.clear();\r\n this.fcont.style.display = 'none';\r\n });\r\n }\r\n\r\n clear() {\r\n this.fcont.childNodes.forEach(node => {\r\n if (node.tagName === 'SPAN') {\r\n this.fcont.removeChild(node);\r\n }\r\n });\r\n }\r\n\r\n resetField() {\r\n this.elem.value = '';\r\n this.clear();\r\n this.fcont.style.display = 'none';\r\n }\r\n\r\n fill() {\r\n for (let i = 0; i < this.elem.files.length; i++) {\r\n const currFile = this.elem.files[i];\r\n const fileName = document.createElement('span');\r\n fileName.innerText = currFile.name;\r\n this.fcont.append(fileName);\r\n }\r\n }\r\n}","export default {\r\n ruPhone: {\r\n filter: (val) => {\r\n let numonly = val.replace(/\\D/g, '') || '7';\r\n\r\n if (/7|8/.test(numonly[0])) numonly = numonly.slice(1, numonly.length);\r\n\r\n return numonly;\r\n },\r\n pattern: '+7 (___) ___-__-__'\r\n },\r\n cardNumber: {\r\n pattern: '____ ____ ____ ____'\r\n },\r\n passportNumber: {\r\n pattern: '____ ______'\r\n },\r\n passportSubdivisionCode: {\r\n pattern: '___-___'\r\n },\r\n snils: {\r\n pattern: '___-___-___ __'\r\n },\r\n cardExpiration: {\r\n pattern: '__/__'\r\n },\r\n smsCode: {\r\n pattern: '_ _ _ _'\r\n }\r\n};","/**\r\n * Маскировальщик полей ввода для форм\r\n */\r\n\r\nimport MASK_TYPES from '../data/maskers';\r\n\r\nconst NUMBER_PLACEHOLDER = '_';\r\nconst NUMBER_PLACEHOLDER_REGEX = /_/;\r\n\r\nconst ALT_CARET_REGEX = /\\d?\\D*$/;\r\n\r\nexport default class FieldMasker {\r\n constructor(elem, maskType) {\r\n if (typeof MASK_TYPES[maskType] === 'undefined') {\r\n console.warn(`Wrong mask type (${maskType})!`);\r\n return;\r\n }\r\n\r\n this.elem = elem;\r\n this.elem.fieldMasker = this;\r\n this.mask = MASK_TYPES[maskType];\r\n\r\n elem.addEventListener('focus', FieldMasker.focusInHandler);\r\n elem.addEventListener('blur', FieldMasker.focusOutHandler);\r\n elem.addEventListener('input', FieldMasker.mask);\r\n }\r\n\r\n get maskedValBeforeCaret() {\r\n const caretIndex = this.elem.selectionStart || this.elem.value.length;\r\n\r\n return this.maskVal(this.elem.value.slice(0, caretIndex));\r\n }\r\n\r\n get maskedVal() {\r\n return this.maskVal(this.elem.value);\r\n }\r\n\r\n maskVal(value) {\r\n let newVal = this.mask.pattern;\r\n let filteredVal = typeof this.mask.filter !== 'undefined' ? this.mask.filter(value) : FieldMasker.filterNum(value);\r\n let phReg = typeof this.mask.placeholder !== 'undefined' ? this.mask.placeholder : NUMBER_PLACEHOLDER_REGEX;\r\n\r\n for (let i = 0; i < filteredVal.length; i++) {\r\n newVal = newVal.replace(phReg, filteredVal[i]);\r\n }\r\n\r\n return newVal;\r\n }\r\n\r\n static get MASK_TYPES() {\r\n return MASK_TYPES;\r\n }\r\n\r\n static focusInHandler(e) {\r\n if (e.target.value === '') {\r\n e.target.value = e.target.fieldMasker.mask.pattern;\r\n }\r\n }\r\n\r\n static focusOutHandler(e) {\r\n if (e.target.value === e.target.fieldMasker.mask.pattern) {\r\n e.target.value = '';\r\n }\r\n }\r\n\r\n static fillPlaceholder(val, length, placeholder) {\r\n let strval = val.toString();\r\n\r\n if (strval.length < length) {\r\n return strval.padEnd(length, placeholder[0]);\r\n } else if (strval.length > length) {\r\n return strval.substring(0, length);\r\n }\r\n\r\n return val;\r\n }\r\n\r\n static mask(e) {\r\n const fm = e.target.fieldMasker;\r\n const newVal = fm.maskedVal;\r\n let newCaret;\r\n\r\n newCaret = FieldMasker.getCaretNumIndex(e.target, fm.maskedValBeforeCaret);\r\n\r\n e.target.value = newVal;\r\n\r\n e.target.selectionStart = newCaret[0];\r\n e.target.selectionEnd = newCaret[1];\r\n }\r\n\r\n static filterNum(val) {\r\n return val.replace(/\\D/g, '');\r\n }\r\n\r\n static getCaretNumIndex(targ, newVal) {\r\n let prevCaret = targ.selectionStart || targ.value.length;\r\n\r\n let caretPos = newVal.indexOf(NUMBER_PLACEHOLDER);\r\n let altCaret = newVal.match(ALT_CARET_REGEX);\r\n let newCaret;\r\n\r\n if (caretPos > 0) {\r\n newCaret = [altCaret.index + 1, altCaret.index + 1];\r\n } else if (prevCaret < targ.value.length) {\r\n while (prevCaret < targ.value.length && !/\\d/.test(targ.value[prevCaret])) {\r\n prevCaret++;\r\n }\r\n\r\n newCaret = [prevCaret, prevCaret + 1];\r\n } else if (prevCaret >= newVal.length) {\r\n newCaret = [newVal.length, newVal.length];\r\n } else {\r\n newCaret = [0, 0];\r\n }\r\n\r\n return newCaret;\r\n }\r\n}","export default {\r\n ruTel: '^(\\\\+7|7|8)?[\\\\s\\\\-]?\\\\(?[489][0-9]{2}\\\\)?[\\\\s\\\\-]?[0-9]{3}[\\\\s\\\\-]?[0-9]{2}[\\\\s\\\\-]?[0-9]{2}$',\r\n password: '^(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\\\\s).*$',\r\n number: '[-+]?[0-9]',\r\n numberDec: '[-+]?[0-9]*[.,]?[0-9]+',\r\n url: '^(?:(?:https?|HTTPS?|ftp|FTP):\\\\/\\\\/)(?:\\\\S+(?::\\\\S*)?@)?(?:(?!(?:10|127)(?:\\\\.\\\\d{1,3}){3})(?!(?:169\\\\.254|192\\\\.168)(?:\\\\.\\\\d{1,3}){2})(?!172\\\\.(?:1[6-9]|2\\\\d|3[0-1])(?:\\\\.\\\\d{1,3}){2})(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-zA-Z\\\\u00a1-\\\\uffff0-9]-*)*[a-zA-Z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-zA-Z\\\\u00a1-\\\\uffff0-9]-*)*[a-zA-Z\\\\u00a1-\\\\uffff0-9]+)*)(?::\\\\d{2,})?(?:[\\\\/?#]\\\\S*)?$',\r\n date: '(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))',\r\n\r\n};","/**\r\n * Компонент валидации полей форм\r\n */\r\n\r\nimport validators from '../data/validators';\r\n\r\nconst errorLabelSelector = '.input_container--error';\r\n\r\nexport default class FieldValidation {\r\n constructor(elem, validator) {\r\n this.elem = elem;\r\n this.elem.fieldValidator = this;\r\n\r\n if (typeof validators[validator] !== 'undefined') {\r\n this.validator = validators[validator];\r\n this.elem.setAttribute('pattern', this.validator);\r\n }\r\n\r\n this.elem.addEventListener('focus', (e) => {\r\n this.elem.classList.add('validation-touched');\r\n\r\n this.elem.addEventListener('blur', (ee) => {\r\n this.validate();\r\n });\r\n\r\n if (this.elem.tagName === 'SELECT') {\r\n this.elem.addEventListener('change', (ee) => {\r\n this.validate();\r\n });\r\n }\r\n }, { once: true });\r\n }\r\n\r\n validate() {\r\n let defaultError;\r\n let flag = false;\r\n\r\n this.elem.parentNode.querySelectorAll(errorLabelSelector).forEach(errfld => {\r\n if (!this.elem.validity.valid) {\r\n let validity = errfld.getAttribute('data-validity');\r\n\r\n if (validity) {\r\n if (this.elem.validity[validity]) {\r\n flag = true;\r\n errfld.classList.add('validation-visible');\r\n return;\r\n }\r\n } else {\r\n defaultError = errfld;\r\n }\r\n }\r\n\r\n errfld.classList.remove('validation-visible');\r\n });\r\n\r\n if (!flag && defaultError) {\r\n defaultError.classList.add('validation-visible');\r\n }\r\n }\r\n}","/**\r\n * elem - Элемент самого датепикера\r\n * linkedElem - кнопка, вызывающая его, туда будет записываться строка с датой\r\n * currDate - текущая дата в виде объекта даты\r\n * disableFrom - залочить все дни начиная с этого. Формат - объект даты\r\n * disableBeforeCurrent - залочить все дни до текущего\r\n */\r\nconst oneDaySpace = 100 / 7;\r\nconst monthNames = [\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\nexport default class DatePicker {\r\n constructor(elem, linkedElem, currDate = new Date(), disableBeforeCurrent = true, disableFrom = null, identifier = 'datePick' + (new Date().getTime())) {\r\n this.elem = elem;\r\n this.linkedElem = linkedElem;\r\n this.originDate = new Date(currDate.getTime());\r\n this._currDate = currDate;\r\n this.disableFrom = disableFrom;\r\n this.identifier = identifier;\r\n this.disableBeforeCurrent = disableBeforeCurrent;\r\n this.selectedDay = currDate.getTime();\r\n\r\n this.elem.datePicker = this;\r\n\r\n this.monthControls = {\r\n prev: this.elem.querySelector('.form_default--datepicker-calendar-month > button:first-child'),\r\n next: this.elem.querySelector('.form_default--datepicker-calendar-month > button:last-child'),\r\n text: this.elem.querySelector('.form_default--datepicker-calendar-month > span')\r\n };\r\n\r\n this.selectContainer = this.elem.querySelector('.form_default--datepicker-calendar-select');\r\n this.elem.addEventListener('change', (ev) => {\r\n this._currDate.setDate(ev.target.value);\r\n this.selectedDay = this._currDate.getTime();\r\n this.linkedElem.innerText = this._currDate.toLocaleDateString();\r\n });\r\n\r\n this.monthControls.prev.onclick = () => this.monthPrev();\r\n this.monthControls.next.onclick = () => this.monthNext();\r\n\r\n this.init(true);\r\n\r\n this.linkedElem.innerText = this._currDate.toLocaleDateString();\r\n }\r\n\r\n init(selectCurrent = false) {\r\n let firstDayCurrMonth = new Date(this._currDate.getTime());\r\n firstDayCurrMonth.setDate(1);\r\n // Получим количество пробелов\r\n const spaceCount = DatePicker.getDayFromDate(firstDayCurrMonth);\r\n\r\n // Сгенерим сетку\r\n const mon = this._currDate.getMonth();\r\n const origTime = this.originDate.getTime();\r\n const disabledTime = this.disableFrom != null ? this.disableFrom.getTime() : -1;\r\n const prevDisabled = origTime > firstDayCurrMonth.getTime() - 1;\r\n\r\n let template = '';\r\n while (firstDayCurrMonth.getMonth() === mon) {\r\n const currDay = firstDayCurrMonth.getDate();\r\n const currTime = firstDayCurrMonth.getTime();\r\n const isDisabledBack = this.disableBeforeCurrent && origTime > currTime;\r\n const isDisabledForward = disabledTime > 0 && currTime >= disabledTime;\r\n\r\n template += `\r\n \r\n \r\n \r\n `;\r\n\r\n firstDayCurrMonth.setDate(currDay + 1);\r\n }\r\n\r\n // Залочим или разлочим кнопки управления месяцами\r\n this.monthControls.prev.disabled = prevDisabled;\r\n this.monthControls.next.disabled = disabledTime > 0 && firstDayCurrMonth.getTime() >= disabledTime;\r\n\r\n this.selectContainer.innerHTML = template;\r\n this.monthControls.text.innerText = `${monthNames[this._currDate.getMonth()]} ${this._currDate.getFullYear()}`;\r\n }\r\n\r\n monthPrev(){\r\n this._currDate.setMonth(this._currDate.getMonth() - 1);\r\n this.init(true);\r\n }\r\n\r\n monthNext(){\r\n this._currDate.setMonth(this._currDate.getMonth() + 1);\r\n this.init(true);\r\n }\r\n\r\n get currDate() {\r\n return this._currDate;\r\n }\r\n\r\n set currDate(dateObj) {\r\n this._currDate = dateObj;\r\n this.selectedDay = this._currDate.getTime();\r\n this.init(true);\r\n }\r\n\r\n static getDayFromDate(dateObj) {\r\n let day = dateObj.getDay();\r\n if (day == 0) day = 7; // сделать воскресенье (0) последним днем\r\n return day - 1;\r\n }\r\n}","const FORMATTERS = {\r\n currencyDefault: (val) => {\r\n let filteredVal = val.replace(/[^0-9,.]+/g, '').replace(',', '.');\r\n const vals = filteredVal.match(/^(\\d*)\\.(.*)$/);\r\n\r\n if (vals != null && vals.length === 3) {\r\n filteredVal = `${vals[1]}.${vals[2].replace(/\\.*/g, '')}`;\r\n }\r\n\r\n return Number(filteredVal).toLocaleString('ru-RU',{maximumFractionDigits: 2});\r\n }\r\n};\r\n\r\nexport default FORMATTERS;","/**\r\n * Класс - форматирует поле в заданном виде. Список форматтеров как обычно\r\n */\r\n\r\nimport FORMATTERS from '../data/formatters';\r\n\r\nexport default class FieldFormatter{\r\n constructor(elem, formatter){\r\n this.elem = elem;\r\n this.formatter = FORMATTERS[formatter];\r\n\r\n if(!this.formatter){\r\n console.warn('This type of formatter does not exist!');\r\n return;\r\n }\r\n\r\n this.elem.addEventListener('blur', (e)=>{\r\n e.target.value = this.formatter(e.target.value);\r\n });\r\n }\r\n}","import TaskRunner from '../base/TaskRunner';\r\nimport FileInput from '../components/FileInput';\r\nimport FieldMasker from '../components/FieldMasker';\r\nimport FieldValidation from '../components/FieldValidation';\r\nimport LiveEvent from '../base/LiveEvent';\r\nimport DatePicker from '../components/DatePicker';\r\nimport FieldFormatter from '../components/FieldFormatter';\r\n\r\nTaskRunner.add(() => {\r\n const initFld = function(inp){\r\n switch (inp.type) {\r\n case 'file':\r\n new FileInput(inp);\r\n break;\r\n }\r\n\r\n const validator = inp.getAttribute('data-validation');\r\n\r\n if (validator != null) {\r\n new FieldValidation(inp, validator);\r\n }\r\n\r\n const masker = inp.getAttribute('data-mask');\r\n\r\n if(masker != null && masker.length > 0){\r\n new FieldMasker(inp, masker);\r\n }\r\n\r\n const formatter = inp.getAttribute('data-format');\r\n\r\n if(formatter != null && formatter.length > 0){\r\n new FieldFormatter(inp, formatter);\r\n }\r\n };\r\n\r\n window.reInitFormField = initFld;\r\n\r\n document.querySelectorAll('input, textarea, select').forEach(initFld);\r\n\r\n document.querySelectorAll('[data-validation-unlock]').forEach(form => {\r\n let unlockTarg = document.getElementById(form.getAttribute('data-validation-unlock'));\r\n\r\n form.addEventListener('input', (e) => {\r\n let allFields = form.querySelectorAll('input,textarea,select');\r\n let allValid = true;\r\n\r\n for (let inp of allFields) {\r\n if (!inp.checkValidity()) {\r\n allValid = false;\r\n break;\r\n }\r\n }\r\n\r\n unlockTarg.disabled = !allValid;\r\n });\r\n });\r\n\r\n LiveEvent.on('click', '.input_container--switch', (e, targ) => {\r\n const input = targ.parentElement.querySelector('input');\r\n\r\n if(input){\r\n input.type = input.type === 'password' ? 'text' : 'password';\r\n }\r\n }).on('click', '.input_container--expandable-insert', (e, targ) => {\r\n const input = targ.closest('.input_container--expandable').querySelector('input,select,textarea');\r\n\r\n if(input){\r\n input.value = targ.innerText;\r\n }\r\n });\r\n\r\n window.DatePicker = DatePicker;\r\n});","import TaskRunner from '../base/TaskRunner';\r\nimport LiveEvent from '../base/LiveEvent';\r\nimport 'fslightbox';\r\n\r\nTaskRunner.add(() => {\r\n LiveEvent.on('click', '[data-opengal]', (e, targ) => {\r\n let srcSet = [];\r\n let galId = targ.getAttribute('data-opengal');\r\n\r\n document.querySelectorAll(`a[data-fslightbox=\"${galId}\"]`).forEach(elem => {\r\n srcSet.push(elem.getAttribute('href'));\r\n });\r\n\r\n if (srcSet.length > 0) {\r\n let lb = new FsLightbox();\r\n lb.props.sources = srcSet;\r\n lb.open();\r\n }\r\n \r\n e.preventDefault();\r\n });\r\n});","const animItems = [\r\n // Главная\r\n {\r\n selector: '.page_main--layout-slide'\r\n }\r\n];\r\n\r\nexport default animItems;","import animItems from '../data/animItems';\r\nimport TaskRunner from '../base/TaskRunner';\r\nimport * as Watcher from '../components/viewportWatcher';\r\n\r\nconst defaults = {\r\n anim: 'animate__fadeIn',\r\n delayBase: 0,\r\n delayStep: 0,\r\n itemClass: 'anim-item',\r\n parentClass: 'anim-parent',\r\n classWhenViewport: 'animate__animated'\r\n};\r\n\r\nlet observer;\r\n\r\nconst onViewportHandler = (e) => {\r\n if (e.target.watchOnce) {\r\n observer.unobserve(e.target);\r\n }\r\n\r\n e.target.classList.add('anim-inViewport', `anim-order${e.detail}`);\r\n e.target.querySelectorAll('.' + defaults.itemClass).forEach(item => {\r\n item.classList.add(defaults.classWhenViewport);\r\n });\r\n};\r\n\r\nTaskRunner.add(() => {\r\n let elements = [];\r\n\r\n animItems.forEach(itm => {\r\n let list = (itm.customOptions) ? [] : elements;\r\n\r\n document.querySelectorAll(itm.selector).forEach(targ => {\r\n let watchingTarget = targ;\r\n\r\n if (itm.targets != undefined && itm.targets.length > 0) {\r\n targ.classList.add(defaults.parentClass);\r\n\r\n itm.targets.forEach(subtarg => {\r\n let subtargSelector;\r\n let anim;\r\n let delayBase;\r\n let delayStep;\r\n\r\n switch (typeof subtarg) {\r\n case \"object\":\r\n subtargSelector = subtarg.selector;\r\n anim = subtarg.anim || defaults.anim;\r\n delayBase = subtarg.delayBase || defaults.delayBase;\r\n delayStep = subtarg.delayStep || defaults.delayStep;\r\n break;\r\n case \"string\":\r\n subtargSelector = subtarg;\r\n anim = defaults.anim;\r\n delayBase = defaults.delayBase;\r\n delayStep = defaults.delayStep;\r\n break;\r\n default: return;\r\n }\r\n\r\n targ.querySelectorAll(subtargSelector).forEach(subtargElement => {\r\n subtargElement.classList.add(defaults.itemClass, anim);\r\n subtargElement.style['animation-delay'] = `${delayBase}s`;\r\n delayBase += delayStep;\r\n });\r\n });\r\n }\r\n\r\n // if(itm.createTrigger){\r\n\r\n // }\r\n\r\n watchingTarget.watchOnce = itm.once;\r\n watchingTarget.addEventListener(Watcher.IN_VIEWPORT, onViewportHandler, { once: itm.once });\r\n list.push(watchingTarget);\r\n });\r\n\r\n if(itm.customOptions && list.length > 0){\r\n Watcher.watchElements(list, itm.customOptions);\r\n }\r\n });\r\n\r\n if (elements.length > 0)\r\n observer = Watcher.watchElements(elements);\r\n});","import TaskRunner from '../base/TaskRunner';\r\nimport LiveEvent from '../base/LiveEvent';\r\n\r\nTaskRunner.add(() => {\r\n document.querySelectorAll('[data-filter-target]').forEach(flt => {\r\n const filterTarget = document.getElementById(flt.getAttribute('data-filter-target'));\r\n\r\n flt.addEventListener('filterChanged', (e) => {\r\n const fltVal = e.target.getAttribute('data-filter');\r\n\r\n try {\r\n if (filterTarget) {\r\n if(!filterTarget.filterTargets){\r\n filterTarget.filterTargets = filterTarget.querySelectorAll('.filter_buttons--target');\r\n filterTarget.wasteParent = document.createElement('div');\r\n filterTarget.wasteParent.classList.add('d-none');\r\n filterTarget.parentElement.appendChild(filterTarget.wasteParent);\r\n filterTarget.filterTargetsParent = filterTarget.filterTargets[0].parentElement;\r\n }\r\n\r\n filterTarget.filterTargets.forEach(targ => {\r\n targ.classList.remove('swiper-slide-active','swiper-slide-next','swiper-slide-prev');\r\n\r\n if (fltVal && fltVal.length > 0 && !targ.classList.contains(fltVal)) {\r\n filterTarget.wasteParent.appendChild(targ);\r\n } else {\r\n filterTarget.filterTargetsParent.appendChild(targ);\r\n }\r\n });\r\n\r\n if (filterTarget.classList.contains('swiper-root')) {\r\n const swiperContainer = filterTarget.querySelector('.swiper-container');\r\n let swiper = swiperContainer.swiper;\r\n\r\n if (swiper) {\r\n swiper.update();\r\n\r\n if(swiper.lazy){\r\n swiper.lazy.load();\r\n }\r\n }\r\n }\r\n }\r\n } catch (err) {\r\n console.warn('Unable to init filter: ' + err.message);\r\n }\r\n });\r\n });\r\n\r\n document.querySelectorAll('.filter_buttons--button:first-child').forEach(btn => {\r\n btn.classList.add('active');\r\n\r\n if(btn.getAttribute('data-filter').length > 0){\r\n btn.dispatchEvent(new Event('filterChanged', { bubbles: true }));\r\n }\r\n });\r\n\r\n LiveEvent\r\n .on('click', '.filter_buttons--button', (e, targ) => {\r\n targ.dispatchEvent(new Event('filterChanged', { bubbles: true }));\r\n const currActiveButton = targ.parentElement.querySelector('.filter_buttons--button.active');\r\n\r\n if (currActiveButton && currActiveButton !== targ) {\r\n currActiveButton.classList.remove('active');\r\n }\r\n\r\n targ.classList.add('active');\r\n });\r\n})","import TaskRunner from '../base/TaskRunner';\r\nimport * as Watcher from '../components/viewportWatcher';\r\n\r\nTaskRunner.add(() => {\r\n if (document.querySelector('.page_main')) {\r\n const blocksChangeTime = 1000; // Время смены слайдов\r\n const scrollerMinHeight = 800; // Минимальная высота окна при которой включается постраничная прокрутка\r\n let scrollLocked = true; // Флаг, который отвечает за блокировку скролла (отключение главного слайдера)\r\n\r\n const pageMainLayoutSlider = document.getElementById('pageMainLayoutSlider');\r\n\r\n const unlockScroll = () => {\r\n scrollLocked = false;\r\n };\r\n\r\n const startStopAutoplay = (block, start = false) => {\r\n let innerElem = block.querySelector('[data-autoplay] .swiper-container');\r\n\r\n if (innerElem && innerElem.swiper.autoplay) {\r\n start ? innerElem.swiper.autoplay.start() : innerElem.swiper.autoplay.stop();\r\n }\r\n\r\n innerElem = block.querySelector('video');\r\n\r\n if (innerElem) {\r\n start ? innerElem.play() : innerElem.pause();\r\n }\r\n };\r\n\r\n const slidesChangeHandler = (swiper) => {\r\n // const currentSlideEl = swiper.slides[swiper.activeIndex];\r\n // const previousSlideEl = swiper.slides[swiper.previousIndex];\r\n\r\n scrollLocked = true;\r\n setTimeout(unlockScroll, blocksChangeTime);\r\n\r\n pageMainLayoutSlider.classList.toggle('page_main--layout-end', swiper.activeIndex + 1 === swiper.slides.length);\r\n\r\n // try {\r\n // startStopAutoplay(currentSlideEl, true);\r\n // startStopAutoplay(previousSlideEl);\r\n // // var innerSwiperElem = currentSlideEl.querySelector('[data-autoplay] .swiper-container');\r\n\r\n // // if (innerSwiperElem && innerSwiperElem.swiper.autoplay) {\r\n // // innerSwiperElem.swiper.autoplay.start();\r\n // // }\r\n\r\n // // innerSwiperElem = previousSlideEl.querySelector('[data-autoplay] .swiper-container');\r\n\r\n // // if (innerSwiperElem && innerSwiperElem.swiper.autoplay) {\r\n // // innerSwiperElem.swiper.autoplay.stop();\r\n // // }\r\n // } catch (err) {\r\n // console.warn('Unable to find inner swiper! ' + err.message)\r\n // }\r\n };\r\n\r\n let pageLayoutSwiper;\r\n const settings = {\r\n loop: false,\r\n // pagination: {\r\n // el: '#pageMainLayoutSliderPagination',\r\n // clickable: true\r\n // },\r\n direction: 'vertical',\r\n slidesPerView: 1,\r\n speed: blocksChangeTime,\r\n preventInteractionOnTransition: true,\r\n // shortSwipes: false,\r\n // longSwipesRatio: .2,\r\n // longSwipesMs: 200,\r\n followFinger: false,\r\n keyboard: {\r\n enabled: true,\r\n },\r\n // mousewheel: {\r\n // thresholdTime: 400,\r\n // forceToAxis: true\r\n // },\r\n on: {\r\n slideChange: slidesChangeHandler\r\n },\r\n preventClicks: false,\r\n preventClicksPropagation: false,\r\n allowTouchMove: false,\r\n shortSwipes: false,\r\n lognSwipes: false,\r\n edgeSwipeDetection: true\r\n };\r\n\r\n const isSliderEnabled = () => {\r\n // Если ширина окна меньше 1200 или высота меньеш 670 то слайдер не заработает\r\n return window.innerWidth >= 1200 && window.innerHeight >= scrollerMinHeight;\r\n };\r\n\r\n const initMainSlider = () => {\r\n if (isSliderEnabled() && !pageLayoutSwiper) {\r\n scrollLocked = false;\r\n pageLayoutSwiper = new Swiper(pageMainLayoutSlider, settings);\r\n } else if (!isSliderEnabled() && pageLayoutSwiper) {\r\n scrollLocked = true;\r\n pageLayoutSwiper.destroy();\r\n pageLayoutSwiper = null;\r\n }\r\n };\r\n\r\n window.addEventListener('resize', () => {\r\n initMainSlider();\r\n });\r\n\r\n initMainSlider();\r\n\r\n \r\n\r\n pageMainLayoutSlider.addEventListener('wheel', (e) => {\r\n if (!scrollLocked) {\r\n e.preventDefault();\r\n\r\n if (e.deltaY > 0) {\r\n pageLayoutSwiper.slideNext();\r\n } else {\r\n pageLayoutSwiper.slidePrev();\r\n }\r\n }\r\n });\r\n\r\n const scrollLockerStopPropagation = (e) => {\r\n e.stopPropagation();\r\n };\r\n\r\n document.querySelectorAll('.page_main--layout-lock_scroll').forEach(scrollLockerEl => {\r\n scrollLockerEl.addEventListener('wheel', scrollLockerStopPropagation);\r\n });\r\n\r\n const viewportInHandler = (e) => {\r\n startStopAutoplay(e.target, true);\r\n };\r\n\r\n const viewportOutHandler = (e) => {\r\n startStopAutoplay(e.target);\r\n };\r\n\r\n document.querySelectorAll('.page_main--layout-slide').forEach(targ => {\r\n targ.addEventListener(Watcher.IN_VIEWPORT, viewportInHandler);\r\n targ.addEventListener(Watcher.OUT_VIEWPORT, viewportOutHandler);\r\n });\r\n }\r\n});","import * as util from '../base/util';\r\nimport TaskRunner from '../base/TaskRunner';\r\n\r\nTaskRunner.add(() => {\r\n let classList = util.rootElem().classList;\r\n\r\n if (util.isTouch()) classList.add('touch-device');\r\n if (util.isIe()) classList.add('is-ie');\r\n if (util.isSafari()) classList.add('is-safari');\r\n\r\n const getDocumentLength = () => {\r\n return Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);\r\n };\r\n\r\n let windowHeight;\r\n let documentHeight;\r\n\r\n const recalcParams = () => {\r\n windowHeight = window.innerHeight;\r\n documentHeight = getDocumentLength() - windowHeight;\r\n };\r\n\r\n let prevScroll;\r\n\r\n const tick = () => {\r\n prevScroll = window.scrollY;\r\n\r\n const pageProgress = prevScroll / documentHeight;\r\n const pageProgressRelative = prevScroll / windowHeight;\r\n\r\n document.documentElement.style.setProperty('--pageProgress', `${pageProgress * 100}%`);\r\n document.documentElement.style.setProperty('--pageProgressRelative', `${pageProgressRelative * 100}vh`);\r\n document.documentElement.style.setProperty('--pageProgressRelativeNegative', `-${pageProgressRelative * 100}vh`);\r\n }\r\n\r\n setTimeout(() => {\r\n recalcParams();\r\n tick();\r\n }, 200);\r\n\r\n window.addEventListener('scroll', (e) => {\r\n if (prevScroll === window.scrollY) return;\r\n\r\n tick();\r\n });\r\n\r\n window.addEventListener('resize', (e) => {\r\n recalcParams();\r\n tick();\r\n });\r\n\r\n document.body.classList.remove('preload');\r\n});","import TaskRunner from './base/TaskRunner';\r\n// const breakpoints = require('./base/breakpoints');\r\n\r\n// breakpoints.regBreakpoint('medium', 768);\r\n// breakpoints.regBreakpoint('big', 1200);\r\n\r\n// breakpoints.start();\r\n\r\nimport './tasks/others';\r\nimport './tasks/header';\r\n\r\nimport './tasks/accordion';\r\nimport './tasks/swiper';\r\n// import './tasks/fancybox';\r\n// import './tasks/smoothScroll';\r\n// import './tasks/tippy';\r\n// import './tasks/youtube';\r\nimport './tasks/customFocus';\r\nimport './tasks/popups';\r\nimport './tasks/tabs';\r\nimport './tasks/forms';\r\n// import './tasks/rellax';\r\n// import './tasks/nouislider';\r\nimport './tasks/fslightbox';\r\n// import './tasks/pseudoselect';\r\nimport './tasks/scrollAnimations';\r\nimport './tasks/filters';\r\n\r\nimport './tasks/pageMain';\r\n\r\nimport './tasks/body';\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n TaskRunner.run();\r\n});"],"sourceRoot":""}