Системный аналитик
Luxoft
Омск
2 дня назад
source : HeadHunter

Требуемый опыт работы : 1 3 года

Полная занятость, полный день

  • tmplt hh width : 100%; margin : 25px auto; overflow : hidden; font-family : 'Arial', sans-serif; .tmplt hh-clearfix : before,.
  • tmplt hh-clearfix : after content : ""; display : table; .tmplt hh-clearfix : after clear : both; .tmplt hh h1,.tmplt hh h2,.

    tmplt hh h3,.tmplt hh h4,.tmplt hh h5,.tmplt hh h6,.tmplt hh p,.tmplt hh blockquote,.tmplt hh pre,.tmplt hh a,.tmplt hh abbr,.

    tmplt hh acronym,.tmplt hh address,.tmplt hh big,.tmplt hh cite,.tmplt hh code,.tmplt hh img,.tmplt hh ol,.tmplt hh ul,.tmplt hh li,.

  • tmplt hh footer,.tmplt hh header margin : 0; padding : 0; border : 0; font-size : 100%; font : inherit; vertical-align : baseline;
  • tmplt hh ul,.tmplt hh ul ul list-style : none; / *.b-vacancy-desc overflow : visible; * / .hht-vacancydescription padding : 0px;
  • tmplt hh .l-cell,.tmplt hh .l-paddings padding : 0px; .tmplt hh .b-vacancy-desc,.tmplt hh .l-paddings line-height : inherit;
  • tmplt hh-content ol li b,.tmplt hh-content ol li strong,.tmplt hh-content ol li p b,.tmplt hh-content ol li p strong,.tmplt hh-content ul li b,.
  • tmplt hh-content ul li strong,.tmplt hh-content ul li p b,.tmplt hh-content ul li p strong font-weight : normal; font-size : inherit!important;
  • line-height : inherit!important; color : inherit!important; margin : 0!important; padding : 0!important; background : none!important;
  • display : inline!important; text-transform : none; .tmplt hh-content ol li p,.tmplt hh-content ul li p font-weight : normal!important;
  • margin : 0!important; .tmplt hh-content p b,.tmplt hh-content p strong display : inline!important; margin : 0!important;
  • tmplt hh flex display : -webkit-box; display : -moz-box; display : -ms-flexbox; display : -webkit-flex; display : flex;
  • ms-flex-wrap : wrap; flex-wrap : wrap; -ms-flex-pack : justify; justify-content : space-between; / *Slider* / .swiper-container margin-left : auto;
  • margin-right : auto; position : relative; overflow : hidden; / * Fix of Webkit flickering * / z-index : 1; .swiper-container-no-flexbox .

    swiper-slide float : left; .swiper-container-vertical >

  • swiper-wrapper -webkit-box-orient : vertical; -moz-box-orient : vertical; -ms-flex-direction : column; -webkit-flex-direction : column;
  • flex-direction : column; .swiper-wrapper position : relative; width : 100%; height : 100%; z-index : 1; display : -webkit-box;
  • display : -moz-box; display : -ms-flexbox; display : -webkit-flex; display : flex; -webkit-transition-property : -webkit-transform;
  • moz-transition-property : -moz-transform; -o-transition-property : -o-transform; -ms-transition-property : -ms-transform;
  • transition-property : transform; -webkit-box-sizing : content-box; -moz-box-sizing : content-box; box-sizing : content-box;
  • swiper-container-android .swiper-slide,.swiper-wrapper -webkit-transform : translate3d(0px, 0, 0); -moz-transform : translate3d(0px, 0, 0);
  • o-transform : translate(0px, 0px); -ms-transform : translate3d(0px, 0, 0); transform : translate3d(0px, 0, 0); .swiper-container-multirow >
  • swiper-wrapper -webkit-box-lines : multiple; -moz-box-lines : multiple; -ms-flex-wrap : wrap; -webkit-flex-wrap : wrap;
  • flex-wrap : wrap; .swiper-container-free-mode >

  • swiper-wrapper -webkit-transition-timing-function : ease-out; -moz-transition-timing-function : ease-out; -ms-transition-timing-function : ease-out;
  • o-transition-timing-function : ease-out; transition-timing-function : ease-out; margin : 0 auto; .swiper-slide -webkit-flex-shrink : 0;
  • ms-flex : 0 0 auto; flex-shrink : 0; width : 100%; height : 100%; position : relative; .swiper-slide img display : block;
  • width : 100%; / * Auto Height * / .swiper-container-autoheight,.swiper-container-autoheight .swiper-slide height : auto;
  • swiper-container-autoheight .swiper-wrapper -webkit-box-align : start; -ms-flex-align : start; -webkit-align-items : flex-start;
  • align-items : flex-start; -webkit-transition-property : -webkit-transform, height; -moz-transition-property : -moz-transform;
  • o-transition-property : -o-transform; -ms-transition-property : -ms-transform; transition-property : transform, height;
  • a11y * / .swiper-container .swiper-notification position : absolute; left : 0; top : 0; pointer-events : none; opacity : 0;
  • z-index : -1000; / * IE10 Windows Phone 8 Fixes * / .swiper-wp8-horizontal -ms-touch-action : pan-y; touch-action : pan-y;
  • swiper-wp8-vertical -ms-touch-action : pan-x; touch-action : pan-x; / * Arrows * / .swiper-button-prev,.swiper-button-next position : absolute;
  • width : 0; height : 0; margin-top : 0; z-index : 10; cursor : pointer; border-top : 13px solid transparent; border-bottom : 13px solid transparent;
  • swiper-button-prev border-right : 24px solid #e76324; top : 33.8%; left : -13%; right : auto; .swiper-button-next border-left : 24px solid #e76324;
  • top : 68.6%; right : -11%; left : auto; / * Pagination Styles * / .tmplt hh-swiper-pagination position : relative; width : 100%;
  • margin : 13% 0 0; text-align : center; -webkit-transition : 300ms; -moz-transition : 300ms; -o-transition : 300ms; transition : 300ms;
  • webkit-transform : translate3d(0, 0, 0); -ms-transform : translate3d(0, 0, 0); -o-transform : translate3d(0, 0, 0); transform : translate3d(0, 0, 0);
  • z-index : 10; .tmplt hh-swiper-pagination.swiper-pagination-hidden opacity : 0; / * Bullets * / .swiper-pagination-bullet width : 8px;
  • height : 8px; margin : 0 4px; display : inline-block; background : #b6bcc1; cursor : pointer; -webkit-transform : rotate(-45deg);
  • ms-transform : rotate(-45deg); -o-transform : rotate(-45deg); transform : rotate(-45deg); .swiper-pagination-bullet-active background : #e76324;
  • tmplt hh-inner padding : 37px 51px 16%; .tmplt hh-header position : relative; padding : 11.5% 0 9.5%; .tmplt hh-header img.
  • tmpl hh logo width : 155px; position : static; margin-bottom : 29px; .tmplt hh-header p color : #556575; position : relative;
  • z-index : 2; font-size : 15px; line-height : 20px; width : 45%; .tmplt hh-header img display : block; position : absolute;
  • width : 61%; top : 0; right : -5%; / * Styles content * / .tmplt hh-content padding : 0px 0 18%; font-size : 15px; line-height : 20px;
  • webkit-box-sizing : border-box; -moz-box-sizing : border-box; box-sizing : border-box; margin : 0 auto; color : #556575;
  • tmplt hh-content strong,.tmplt hh-content b display : inline-block; font-size : 18px; line-height : 20px; color : #004180;
  • text-transform : uppercase; .tmplt hh-content p,.tmplt hh-content strong,.tmplt hh-content b margin : 40px 0 4px; .tmplt hh .

  • tmplt hh-content ul,.tmplt hh .tmplt hh-content ul ul list-style : none; .tmplt hh-content ol list-style : decimal inside;
  • tmplt hh-content ul,.tmplt hh-content ol ol margin-left : 18px; .tmplt hh-content ol ul margin-left : 36px; .tmplt hh-content ul,.
  • tmplt hh-content ol margin-top : 20px; .tmplt hh-content ul ul,.tmplt hh-content ol ul margin-top : 0; .tmplt hh-content ul li,.

    tmplt hh-content ol li position : relative; .tmplt hh-content ul>

  • li : before content : ' '; position : absolute; left : -18px; top : 0; .tmplt hh-content ul.tmplt hh-offers margin-left : 0;
  • tmplt hh-content ul.tmplt hh-offers li.tmplt hh-offer-item margin-bottom : 20px; padding-left : 70px; .tmplt hh-content ul.
  • tmplt hh-offers li svg position : absolute; top : 4px; left : 0; .tmplt hh-content ul.tmplt hh-offers li : before display : none;
  • tmplt hh-content ul.tmplt hh-offers li.tmplt hh-offer-item1 svg width : 50px; height : 50px; .tmplt hh-content ul.tmplt hh-offers li.
  • tmplt hh-offer-item2 svg width : 50px; height : 53px; top : -2px; .tmplt hh-content ul.tmplt hh-offers li.tmplt hh-offer-item3 svg width : 48px;
  • height : 50px; top : -5px; .tmplt hh-content ul.tmplt hh-offers li.tmplt hh-offer-item4 svg width : 44px; height : 41px;
  • top : 20px; .tmplt hh-content ul.tmplt hh-offers li.tmplt hh-offer-item span text-transform : uppercase; font-weight : bold;
  • font-size : 15px; .tmplt hh-content ul.tmplt hh-offers li.tmplt hh-offer-item1 span color : #34a4c9; .tmplt hh-content ul.

  • tmplt hh-offers li.tmplt hh-offer-item2 span color : #e76324; .tmplt hh-content ul.tmplt hh-offers li.tmplt hh-offer-item3 span color : #004180;
  • tmplt hh-content ul.tmplt hh-offers li.tmplt hh-offer-item4 span color : #4e6b86; .tmplt hh-content ul.tmplt hh-garanties margin-left : 0;
  • tmplt hh-content ul.tmplt hh-garanties li padding-left : 26px; margin-bottom : 4px; .tmplt hh-content ul.tmplt hh-garanties li : before content : "";
  • display : block; width : 9px; height : 9px; position : absolute; top : 7px; left : 4px; -webkit-transform : rotate(-45deg);
  • ms-transform : rotate(-45deg); -o-transform : rotate(-45deg); transform : rotate(-45deg); .tmplt hh-content ul.tmplt hh-garanties li : nth-child(1) : before background : #004180;
  • tmplt hh-content ul.tmplt hh-garanties li : nth-child(2) : before background : #be235e; .tmplt hh-content ul.tmplt hh-garanties li : nth-child(3) : before background : #e76324;
  • tmplt hh-content ul.tmplt hh-garanties li : nth-child(4) : before background : #fee600; .tmplt hh-content ul.tmplt hh-garanties li : nth-child(5) : before background : #4e6b86;
  • wrap hh slider wrapper position : relative; max-width : 454px; margin : 0 auto; width : 77%; .wrap hh slider wrapper : before content : '';
  • position : absolute; top : -1%; left : -1.2%; width : 102.6%; height : 102.6%; border : 1px solid #004180; -webkit-box-sizing : border-box;
  • moz-box-sizing : border-box; box-sizing : border-box; -webkit-transform : rotate(11.4deg); -moz-transform : rotate(11.4deg);
  • ms-transform : rotate(11.4deg); -o-transform : rotate(11.4deg); transform : rotate(11.4deg); z-index : 11; .wrap hh slider wrapper .
  • wrap hh slider -webkit-transform : rotate(20.8deg); -moz-transform : rotate(20.8deg); -ms-transform : rotate(20.8deg); -o-transform : rotate(20.

  • 8deg); transform : rotate(20.8deg); overflow : hidden; position : relative; left : 2.7%; .wrap hh slider wrapper .people slider margin : -15% -15%;
  • webkit-transform : rotate(-20.8deg); -moz-transform : rotate(-20.8deg); -ms-transform : rotate(-20.8deg); -o-transform : rotate(-20.
  • 8deg); transform : rotate(-20.8deg); .tmplt hh-header p br display : none; .tmplt hh-swiper-pagination display : none; media screen and (max-width : 699px) .

  • tmplt hh-inner padding : 5% 0 16%; .tmplt hh-header img position : relative; right : 0; width : 100%; margin : 20px auto 0;
  • tmplt hh-header p width : 100%; .tmplt hh-content padding : 5% 3% 17.5%; .swiper-button-prev, .swiper-button-next display : none;
  • tmplt hh-swiper-pagination display : block; .wrap hh slider wrapper .wrap hh slider left : 0; .tmplt hh-header padding-bottom : 0;
  • Ведущая компания на мировом рынке

    в области разработки программного обеспечения и инновационных ИТ-решений приглашает Вас присоединиться к нашей дружной команде талантливых и перспективных ИТ специалистов

    Мы ищем специалистов для развития цифровой платформы, предоставляющей услуги на базе ИТ-архитектуры крупнейшего банка России, СНГ и Восточной Европы (аналог Amazon, Azure).

    Инфраструктура, информационно-технологические платформы и услуги предоставляются внешним клиентам - корпоративным заказчикам и государственным организациям.

    Цифровая платформа состоит из инфраструктурных и платформенных сервисов, которые, в свою очередь, состоят из сотен сервисов и тысяч микросервисов. Основные слои это :

    Слой работы с данными отвечает за быстрое и гибкое создание приложений на основе данных для удовлетворения потребностей бизнеса.

    Её задачи загрузка, хранение и обработка данных с достаточным уровнем качества.

    Общий слой базовых и прикладных сервисов и учетных сервисов. Их задача предоставлять всегда корректные и актуальные мастер данные для всех потребителей внутри платформы.

    Слой работы бизнес приложений, реализующие продукты и услуги для любых клиентов организации. Задачи платформы - быстрое создание готовых облачных приложений, обеспечение готовых инструменты разработки и архитектурных шаблонов, реализация доступности систем в режиме 24 / 7 и обеспечение производительности и линейной масштабируемость системы.

    Единый фронт отвечает за развитие каналов взаимодействия с клиентами (B2C, B2B, B2G). Это инфраструктура канальных приложений, обеспечивающих взаимодействие организации с клиентами через всевозможные каналы обслуживания.

    Задачи системы - предоставлять единый стандарт обслуживания клиентов во всех каналах и обеспечивать параллельное и независимое производство бизнес-функционала.

    Система состоит из нескольких групп сервисов :

    Технологический стек довольно обширен : Java, Spring, Docker, JavaScript, React, Openshift, TypeScript, Redux, Node.js, Hibernate, JPA, GridGain, Apache Spark, Kafka, Oracle, Hadoop, Exadata, Teradata, ELK и т.д.

    Responsibilities :

  • Создание уникальных, нетрадиционных для банка сервисов обучающего характера ( продукт для общеобразовательных школ, университетов)
  • Анализ рынка новых технологий, на предмет адаптации решений, под текущие потребности банка
  • Поиск, сравнительный анализ и разработка вариантов технической реализации поставленных задач.
  • Mandatory Skills :

  • Опыт написания функциональных требований / бизнес-требований / технических спецификаций на разработку;
  • Опыт работы на позиции системного аналитика / технолога в ИТ-компании
  • Знания в области построения интерфейсов взаимодействия между автоматизированными системами (Работа с XML, JSON. Понимание принципов работы REST, SOAP, микросервисной архитектуры);
  • Знание основ баз данных и современных процессов и средств разработки ПО;
  • Понимание одного из современных языков программирования хотя бы на уровне чтения кода;
  • Неистовый интерес к образовательным технологиям, желание изменить текущий процесс образования.
  • Высшее техническое образование
  • Nice-to-Have Skills :

  • Знание смежных проф. областей (UI / UX, Data Science, поведенческая аналитика и т.д.);
  • Знание SQL, на уровне написания сложных, вложенных запросов / циклов / процедур;
  • Опыт работы с ER-диаграммами и нотациями моделирования бизнес-процессов (UML, IDEF и т. д.);
  • Опыт работы с DevOps.
  • мы предлагаем

    Программа релокации

    предоставляет возможность кандидатам и сотрудникам Luxoft работать в любом из 42 офисов Luxoft по всему миру, а также включает в себя помощь при переезде и адаптации для сотрудников и их семей.

    Internal Mobility

    Программа, позволяющая сотрудникам перемещаться в рамках Компании по карьерной лестнице как вертикально, так и горизонтально.

    Рекомендуя знакомых, друзей, бывших коллег по Программе Рекомендаций Luxoft, Вы получаете не только возможность работать вместе со своими друзьями, но и бонусы с растущим коэффициентом!

    В Luxoft приятно не только работать, но и отдыхать : корпоративные праздники, спортивные мероприятия и квесты являются неотъемлемой частью жизни Компании.

    Кроме того, мы активно принимаем участие в благотворительных инициативах, предлагая помощь тем, кто в ней нуждается.

    мы гарантируем

  • Расширенный социальный пакет
  • Программу ДМС
  • Профессиональное обучение и повышение квалификации
  • Льготное страхование
  • Корпоративные скидки в фитнес-клубах, тур-агентствах и других организациях города
  • window.jqueryMigrateOnLoad function() try jQuery.UNSAFE restoreLegacyHtmlPrefilter(); ; / / / / slider!function() "use strict";
  • function e(e) e.fn.swiper function(a) var s;return e(this).each(function() var e new t(this,a);s (s e) ),s var a,t function(e,i) function n(e) return Math.

    floor(e) function o() var e S.params.autoplay,a S.slides.eq(S.activeIndex);a.attr("data-swiper-autoplay")&&(e a.attr("data-swiper-autoplay") S.

    params.autoplay),S.autoplayTimeoutId setTimeout(function() S.params.loop?(S.fixLoop(),S. slideNext(),S.emit("onAutoplay",S)) : S.

    isEnd?i.autoplayStopOnLast?S.stopAutoplay() : (S. slideTo(0),S.emit("onAutoplay",S)) : (S. slideNext(),S.emit("onAutoplay",S)) ,e) function l(e,t) var s a(e.

    target);if(!s.is(t))if("string" typeof t)s s.parents(t);else if(t.nodeType) var i;return s.parents().each(function(e,a) a t&&(i t) ),i?

    t : void 0 if(0! s.length)return s 0 function p(e,a) a a ;var t window.MutationObserver window.WebkitMutationObserver,s new t(function(e) e.

    forEach(function(e) S.onResize(!0),S.emit("onObserverUpdate",S,e) ) );s.observe(e, attributes : "undefined" typeof a.attributes a.

    attributes,childList : "undefined" typeof a.childList a.childList,characterData : "undefined" typeof a.characterData a.characterData ),S.

    observers.push(s) function d(e) e.originalEvent&&(e e.originalEvent);var a e.keyCode e.charCode;if(!S.params.allowSwipeToNext&&(S.

  • isHorizontal()&&39 a !S.isHorizontal()&&40 a))return!1;if(!S.params.allowSwipeToPrev&&(S.isHorizontal()&&37 a !S.isHorizontal()&&38 a))return!1;
  • if(!(e.shiftKey e.altKey e.ctrlKey e.metaKey document.activeElement&&document.activeElement.nodeName&&("input" document.activeElement.

    nodeName.toLowerCase() "textarea" document.activeElement.nodeName.toLowerCase()))) if(37 a 39 a 38 a 40 a) var t !1;if(S.

    container.parents("."+S.params.slideClass).length>

    0&&0 S.container.parents("."+S.params.slideActiveClass).length)return;var s left : window.pageXOffset,top : window.pageYOffset ,i window.

    innerWidth,r window.innerHeight,n S.container.offset();S.rtl&&(n.left n.left-S.container 0 .scrollLeft);for(var o n.left,n.

    top , n.left+S.width,n.top , n.left,n.top+S.height , n.left+S.width,n.top+S.height ,l 0;l

    s.left&&p 0

    s.top&&p 1 < s.top+r&&(t !0) if(!t)return S.isHorizontal()?(37! a&&39! a (e.preventDefault?e.preventDefault() : e.returnValue !1),(39 a&&!S.

    rtl 37 a&&S.rtl)&&S.slideNext(),(37 a&&!S.rtl 39 a&&S.rtl)&&S.slidePrev()) : (38! a&&40! a (e.preventDefault?e.preventDefault() : e.

    returnValue !1),40 a&&S.slideNext(),38 a&&S.slidePrev()) function u() var e "onwheel",a e in document;if(!a) var t document.

    createElement("div");t.setAttribute(e,"return;"),a "function" typeof t e return!a&&document.implementation&&document.implementation.

    hasFeature&&document.implementation.hasFeature("","")! !0&&(a document.implementation.hasFeature("Events.wheel","3.0")),a function c(e) e.

    originalEvent&&(e e.originalEvent);var a 0,t S.rtl?-1 : 1,s m(e);if(S.params.mousewheelForceToAxis)if(S.isHorizontal()) if(!(Math.abs(s.pixelX)>

    Math.abs(s.pixelY)))return;a s.pixelX*t else if(!(Math.abs(s.pixelY)>

    Math.abs(s.pixelX)))return;a s.pixelY else a Math.abs(s.pixelX)>

    Math.abs(s.pixelY)?-s.pixelX*t : -s.pixelY;if(0! a) if(S.params.mousewheelInvert&&(a -a),S.params.freeMode) var i S.getWrapperTranslate()+a*S.

    params.mousewheelSensitivity,r S.isBeginning,n S.isEnd;if(i>

    S.minTranslate()&&(i S.minTranslate()),i< S.maxTranslate()&&(i S.maxTranslate()),S.setWrapperTransition(0),S.setWrapperTranslate(i),S.

    updateProgress(),S.updateActiveIndex(),(!r&&S.isBeginning !n&&S.isEnd)&&S.updateClasses(),S.params.freeModeSticky?(clearTimeout(S.

    mousewheel.timeout),S.mousewheel.timeout setTimeout(function() S.slideReset() ,300)) : S.params.lazyLoading&&S.lazy&&S.lazy.

    load(),S.emit("onScroll",S,e),S.params.autoplay&&S.params.autoplayDisableOnInteraction&&S.stopAutoplay(),0 i i S.maxTranslate())return else if((new window.

    Date).getTime()-S.mousewheel.lastScrollTime>

    60)if(a

    parseInt(a,10) );for(var s 0;s

    window.innerWidth&&!a&&(a e);return a "max" ,S.setBreakpoint function() var e S.getActiveBreakpoint();if(e&&S.currentBreakpoint! e) var a e in S.

    params.breakpoints?S.params.breakpoints e : S.originalParams,t S.params.loop&&a.slidesPerView! S.params.slidesPerView;for(var s in a)S.

    params s a s ;S.currentBreakpoint e,t&&S.destroyLoop&&S.reLoop(!0) ,S.params.breakpoints&&S.setBreakpoint(),S.container a(e),0! S.

    container.length)) if(S.container.length>

    1) var C ;return S.container.each(function() C.push(new t(this,i)) ),C S.container 0 .swiper S,S.container.data("swiper",S),S.

    classNames.push(S.params.containerModifierClass+S.params.direction),S.params.freeMode&&S.classNames.push(S.params.containerModifierClass+"free-mode"),S.

    support.flexbox (S.classNames.push(S.params.containerModifierClass+"no-flexbox"),S.params.slidesPerColumn 1),S.params.autoHeight&&S.

    classNames.push(S.params.containerModifierClass+"autoheight"),(S.params.parallax S.params.watchSlidesVisibility)&&(S.params.

    watchSlidesProgress !0),S.params.touchReleaseOnEdges&&(S.params.resistanceRatio 0), "cube","coverflow","flip" .indexOf(S.params.effect)>

    0&&(S.support.transforms3d?(S.params.watchSlidesProgress !0,S.classNames.push(S.params.containerModifierClass+"3d")) : S.

    params.effect "slide"),"slide"! S.params.effect&&S.classNames.push(S.params.containerModifierClass+S.params.effect),"cube" S.

    params.effect&&(S.params.resistanceRatio 0,S.params.slidesPerView 1,S.params.slidesPerColumn 1,S.params.slidesPerGroup 1,S.

    params.centeredSlides !1,S.params.spaceBetween 0,S.params.virtualTranslate !0,S.params.setWrapperSize !1),"fade"! S.params.

    effect&&"flip"! S.params.effect (S.params.slidesPerView 1,S.params.slidesPerColumn 1,S.params.slidesPerGroup 1,S.params.watchSlidesProgress !0,S.

    params.spaceBetween 0,S.params.setWrapperSize !1,"undefined" typeof v&&(S.params.virtualTranslate !0)),S.params.grabCursor&&S.

    support.touch&&(S.params.grabCursor !1),S.wrapper S.container.children("."+S.params.wrapperClass),S.params.pagination&&(S.

    paginationContainer a(S.params.pagination),S.params.uniqueNavElements&&"string" typeof S.params.pagination&&S.paginationContainer.length>

    1&&1 S.container.find(S.params.pagination).length&&(S.paginationContainer S.container.find(S.params.pagination)),"bullets" S.

    params.paginationType&&S.params.paginationClickable?S.paginationContainer.addClass(S.params.paginationModifierClass+"clickable") : S.

    params.paginationClickable !1,S.paginationContainer.addClass(S.params.paginationModifierClass+S.params.paginationType)),(S.

    params.nextButton S.params.prevButton)&&(S.params.nextButton&&(S.nextButton a(S.params.nextButton),S.params.uniqueNavElements&&"string" typeof S.

    params.nextButton&&S.nextButton.length>

    1&&1 S.container.find(S.params.nextButton).length&&(S.nextButton S.container.find(S.params.nextButton))),S.params.prevButton&&(S.

    prevButton a(S.params.prevButton),S.params.uniqueNavElements&&"string" typeof S.params.prevButton&&S.prevButton.length>

    1&&1 S.container.find(S.params.prevButton).length&&(S.prevButton S.container.find(S.params.prevButton)))),S.isHorizontal function() return"horizontal" S.

    params.direction ,S.rtl S.isHorizontal()&&("rtl" S.container 0 .dir.toLowerCase() "rtl" S.container.css("direction")),S.rtl&&S.

    classNames.push(S.params.containerModifierClass+"rtl"),S.rtl&&(S.wrongRTL "-webkit-box" S.wrapper.css("display")),S.params.slidesPerColumn>

    1&&S.classNames.push(S.params.containerModifierClass+"multirow"),S.device.android&&S.classNames.push(S.params.containerModifierClass+"android"),S.

    container.addClass(S.classNames.join(" ")),S.translate 0,S.progress 0,S.velocity 0,S.lockSwipeToNext function() S.params.

    allowSwipeToNext !1,S.params.allowSwipeToPrev !1&&S.params.grabCursor&&S.unsetGrabCursor() ,S.lockSwipeToPrev function() S.

    params.allowSwipeToPrev !1,S.params.allowSwipeToNext !1&&S.params.grabCursor&&S.unsetGrabCursor() ,S.lockSwipes function() S.

    params.allowSwipeToNext S.params.allowSwipeToPrev !1,S.params.grabCursor&&S.unsetGrabCursor() ,S.unlockSwipeToNext function() S.

    params.allowSwipeToNext !0,S.params.allowSwipeToPrev !0&&S.params.grabCursor&&S.setGrabCursor() ,S.unlockSwipeToPrev function() S.

    params.allowSwipeToPrev !0,S.params.allowSwipeToNext !0&&S.params.grabCursor&&S.setGrabCursor() ,S.unlockSwipes function() S.

    params.allowSwipeToNext S.params.allowSwipeToPrev !0,S.params.grabCursor&&S.setGrabCursor() ,S.setGrabCursor function(e) S.

    container 0 .style.cursor "move",S.container 0 .style.cursor e?"-webkit-grabbing" : "-webkit-grab",S.container 0 .style.cursor e?

    moz-grabbin" : "-moz-grab",S.container 0 .style.cursor e?"grabbing" : "grab" ,S.unsetGrabCursor function() S.container 0 .

  • style.cursor "" ,S.params.grabCursor&&S.setGrabCursor(),S.imagesToLoad ,S.imagesLoaded 0,S.loadImage function(e,a,t,s,i,r) function n() r&&r() var o;
  • e.complete&&i?n() : a?(o new window.Image,o.onload n,o.onerror n,s&&(o.sizes s),t&&(o.srcset t),a&&(o.src a)) : n() ,S.preloadImages function() function e() "undefined"! typeof S&&null! S&&(void 0! S.

    imagesLoaded&&S.imagesLoaded++,S.imagesLoaded S.imagesToLoad.length&&(S.params.updateOnImagesReady&&S.update(),S.emit("onImagesReady",S))) S.

    imagesToLoad S.container.find("img");for(var a 0;a

    1)for(r 0;r

    S.slides.length)break;e.push(S.slides.eq(t) 0 ) else e.push(S.slides.eq(S.activeIndex) 0 );for(r 0;r

    a?s : a a&&S.wrapper.css("height",a+"px") ,S.updateContainerSize function() var e,a;e "undefined"! typeof S.params.width?

    S.params.width : S.container 0 .clientWidth,a "undefined"! typeof S.params.height?S.params.height : S.container 0 .clientHeight,0 e&&S.

    isHorizontal() 0 a&&!S.isHorizontal() (e e-parseInt(S.container.css("padding-left"),10)-parseInt(S.container.css("padding-right"),10),a a-parseInt(S.

    container.css("padding-top"),10)-parseInt(S.container.css("padding-bottom"),10),S.width e,S.height a,S.size S.isHorizontal()?

    S.width : S.height) ,S.updateSlidesSize function() S.slides S.wrapper.children("."+S.params.slideClass),S.snapGrid ,S.slidesGrid ,S.

    slidesSizesGrid ;var e,a S.params.spaceBetween,t -S.params.slidesOffsetBefore,s 0,i 0;if("undefined"! typeof S.size) "string" typeof a&&a.indexOf("%")>

    0&&(a parseFloat(a.replace("%","")) / 100*S.size),S.virtualSize -a,S.rtl?S.slides.css( marginLeft : "",marginTop : "" ) : S.

    slides.css( marginRight : "",marginBottom : "" );var r;S.params.slidesPerColumn>

    1&&(r Math.floor(S.slides.length / S.params.slidesPerColumn) S.slides.length / S.params.slidesPerColumn?S.slides.length : Math.

    ceil(S.slides.length / S.params.slidesPerColumn)*S.params.slidesPerColumn,"auto"! S.params.slidesPerView&&"row" S.params.

    slidesPerColumnFill&&(r Math.max(r,S.params.slidesPerView*S.params.slidesPerColumn)));var o,l S.params.slidesPerColumn,p r / l,d p-(S.

    params.slidesPerColumn*p-S.slides.length);for(e 0;e

    1) var c,m,h;"column" S.params.slidesPerColumnFill?(m Math.floor(e / l),h e-m*l,(m>

    d m d&&h l-1)&&++h>

    l&&(h 0,m++),c m+h*r / l,u.css( "-webkit-box-ordinal-group" : c,"-moz-box-ordinal-group" : c,"-ms-flex-order" : c,"-webkit-order" : c,order : c )) : (h Math.

    floor(e / p),m e-h*p),u.css("margin-"+(S.isHorizontal()?"top" : "left"),0! h&&S.params.spaceBetween&&S.params.spaceBetween+"px").

    attr("data-swiper-column",m).attr("data-swiper-row",h) "none"! u.css("display")&&("auto" S.params.slidesPerView?(o S.isHorizontal()?

    u.outerWidth(!0) : u.outerHeight(!0),S.params.roundLengths&&(o n(o))) : (o (S.size-(S.params.slidesPerView-1)*a) / S.params.

    slidesPerView,S.params.roundLengths&&(o n(o)),S.isHorizontal()?S.slides e .style.width o+"px" : S.slides e .style.height o+"px"),S.

    slides e .swiperSlideSize o,S.slidesSizesGrid.push(o),S.params.centeredSlides?(t t+o / 2+s / 2+a,0 e&&(t t-S.size / 2-a),Math.abs(t)

    1&&(S.virtualSize (o+S.params.spaceBetween)*r,S.virtualSize Math.ceil(S.virtualSize / S.params.slidesPerColumn)-S.params.

    spaceBetween,S.isHorizontal()?S.wrapper.css( width : S.virtualSize+S.params.spaceBetween+"px" ) : S.wrapper.css( height : S.

    virtualSize+S.params.spaceBetween+"px" ),S.params.centeredSlides)) for(g ,e 0;e

    0) var r,n S.params.loop?Math.ceil((S.slides.length-2*S.loopedSlides) / S.params.slidesPerGroup) : S.snapGrid.length;if(S.

    params.loop?(r Math.ceil((S.activeIndex-S.loopedSlides) / S.params.slidesPerGroup),r>

    S.slides.length-1-2*S.loopedSlides&&(r- S.slides.length-2*S.loopedSlides),r>

    n-1&&(r- n),r

    0&&(S.bullets.removeClass(S.params.bulletActiveClass),S.paginationContainer.length>

    1?S.bullets.each(function() a(this).index() r&&a(this).addClass(S.params.bulletActiveClass) ) : S.bullets.eq(r).addClass(S.

    params.bulletActiveClass)),"fraction" S.params.paginationType&&(S.paginationContainer.find("."+S.params.paginationCurrentClass).

  • text(r+1),S.paginationContainer.find("."+S.params.paginationTotalClass).text(n)),"progress" S.params.paginationType) var o (r+1) / n,l o,p 1;
  • S.isHorizontal() (p o,l 1),S.paginationContainer.find("."+S.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX("+l+") scaleY("+p+")").

    transition(S.params.speed) "custom" S.params.paginationType&&S.params.paginationCustomRender&&(S.paginationContainer.html(S.

    params.paginationCustomRender(S,r+1,n)),S.emit("onPaginationRendered",S,S.paginationContainer 0 )) S.params.loop (S.params.

    prevButton&&S.prevButton&&S.prevButton.length>

    0&&(S.isBeginning?(S.prevButton.addClass(S.params.buttonDisabledClass),S.params.a11y&&S.a11y&&S.a11y.disable(S.prevButton)) : (S.

    prevButton.removeClass(S.params.buttonDisabledClass),S.params.a11y&&S.a11y&&S.a11y.enable(S.prevButton))),S.params.nextButton&&S.

    nextButton&&S.nextButton.length>

    0&&(S.isEnd?(S.nextButton.addClass(S.params.buttonDisabledClass),S.params.a11y&&S.a11y&&S.a11y.disable(S.nextButton)) : (S.

    nextButton.removeClass(S.params.buttonDisabledClass),S.params.a11y&&S.a11y&&S.a11y.enable(S.nextButton)))) ,S.updatePagination function() if(S.

    params.pagination&&S.paginationContainer&&S.paginationContainer.length>

    0) var e "";if("bullets" S.params.paginationType) for(var a S.params.loop?Math.ceil((S.slides.length-2*S.loopedSlides) / S.

    params.slidesPerGroup) : S.snapGrid.length,t 0;t

    S.paginationContainer.html(e),S.bullets S.paginationContainer.find("."+S.params.bulletClass),S.params.paginationClickable&&S.

    params.a11y&&S.a11y&&S.a11y.initPagination() "fraction" S.params.paginationType&&(e S.params.paginationFractionRender?S.params.

    paginationFractionRender(S,S.params.paginationCurrentClass,S.params.paginationTotalClass) : ' / ',S.paginationContainer.html(e)),"progress" S.

    params.paginationType&&(e S.params.paginationProgressRender?S.params.paginationProgressRender(S,S.params.paginationProgressbarClass) : ' ',S.

    paginationContainer.html(e)),"custom"! S.params.paginationType&&S.emit("onPaginationRendered",S,S.paginationContainer 0 ) ,S.

    update function(e) function a() S.rtl?-S.translate : S.translate;s Math.min(Math.max(S.translate,S.maxTranslate()),S.minTranslate()),S.

    setWrapperTranslate(s),S.updateActiveIndex(),S.updateClasses() if(S.updateContainerSize(),S.updateSlidesSize(),S.updateProgress(),S.

    updatePagination(),S.updateClasses(),S.params.scrollbar&&S.scrollbar&&S.scrollbar.set(),e) var t,s;S.controller&&S.controller.

    spline&&(S.controller.spline void 0),S.params.freeMode?(a(),S.params.autoHeight&&S.updateAutoHeight()) : (t ("auto" S.params.

    slidesPerView S.params.slidesPerView>

    1)&&S.isEnd&&!S.params.centeredSlides?S.slideTo(S.slides.length-1,0,!1,!0) : S.slideTo(S.activeIndex,0,!1,!0),t a()) else S.

    params.autoHeight&&S.updateAutoHeight() ,S.onResize function(e) S.params.breakpoints&&S.setBreakpoint();var a S.params.allowSwipeToPrev,t S.

    params.allowSwipeToNext;S.params.allowSwipeToPrev S.params.allowSwipeToNext !0,S.updateContainerSize(),S.updateSlidesSize(),("auto" S.

    params.slidesPerView S.params.freeMode e)&&S.updatePagination(),S.params.scrollbar&&S.scrollbar&&S.scrollbar.set(),S.controller&&S.

    controller.spline&&(S.controller.spline void 0);var s !1;if(S.params.freeMode) var i Math.min(Math.max(S.translate,S.maxTranslate()),S.

    minTranslate());S.setWrapperTranslate(i),S.updateActiveIndex(),S.updateClasses(),S.params.autoHeight&&S.updateAutoHeight() else S.

    updateClasses(),s ("auto" S.params.slidesPerView S.params.slidesPerView>

    1)&&S.isEnd&&!S.params.centeredSlides?S.slideTo(S.slides.length-1,0,!1,!0) : S.slideTo(S.activeIndex,0,!1,!0);S.params.lazyLoading&&!s&&S.

    lazy&&S.lazy.load(),S.params.allowSwipeToPrev a,S.params.allowSwipeToNext t ,S.touchEventsDesktop start : "mousedown",move : "mousemove",end : "mouseup" ,window.

    navigator.pointerEnabled?S.touchEventsDesktop start : "pointerdown",move : "pointermove",end : "pointerup" : window.navigator.

    msPointerEnabled&&(S.touchEventsDesktop start : "MSPointerDown",move : "MSPointerMove",end : "MSPointerUp" ),S.touchEvents start : S.

    support.touch !S.params.simulateTouch?"touchstart" : S.touchEventsDesktop.start,move : S.support.touch !S.params.simulateTouch?

    touchmove" : S.touchEventsDesktop.move,end : S.support.touch !S.params.simulateTouch?"touchend" : S.touchEventsDesktop.end ,(window.

    navigator.pointerEnabled window.navigator.msPointerEnabled)&&("container" S.params.touchEventsTarget?S.container : S.wrapper).

    addClass("swiper-wp8-"+S.params.direction),S.initEvents function(e) var a e?"off" : "on",t e?"removeEventListener" : "addEventListener",s "container" S.

    params.touchEventsTarget?S.container 0 : S.wrapper 0 ,r S.support.touch?s : document,n !!S.params.nested;if(S.browser.ie)s t (S.

    touchEvents.start,S.onTouchStart,!1),r t (S.touchEvents.move,S.onTouchMove,n),r t (S.touchEvents.end,S.onTouchEnd,!1);else if(S.

  • support.touch) var o !("touchstart"! S.touchEvents.start !S.support.passiveListener !S.params.passiveListeners)&& passive : !0,capture : !1 ;
  • s t (S.touchEvents.start,S.onTouchStart,o),s t (S.touchEvents.move,S.onTouchMove,n),s t (S.touchEvents.end,S.onTouchEnd,o) (i.

    simulateTouch&&!S.device.ios&&!S.device.android i.simulateTouch&&!S.support.touch&&S.device.ios)&&(s t ("mousedown",S.onTouchStart,!1),document t ("mousemove",S.

    onTouchMove,n),document t ("mouseup",S.onTouchEnd,!1)) window t ("resize",S.onResize),S.params.nextButton&&S.nextButton&&S.nextButton.length>

    0&&(S.nextButton a ("click",S.onClickNext),S.params.a11y&&S.a11y&&S.nextButton a ("keydown",S.a11y.onEnterKey)),S.params.

    prevButton&&S.prevButton&&S.prevButton.length>

    0&&(S.prevButton a ("click",S.onClickPrev),S.params.a11y&&S.a11y&&S.prevButton a ("keydown",S.a11y.onEnterKey)),S.params.

    pagination&&S.params.paginationClickable&&(S.paginationContainer a ("click","."+S.params.bulletClass,S.onClickIndex),S.params.

    a11y&&S.a11y&&S.paginationContainer a ("keydown","."+S.params.bulletClass,S.a11y.onEnterKey)),(S.params.preventClicks S.params.

    preventClicksPropagation)&&s t ("click",S.preventClicks,!0) ,S.attachEvents function() S.initEvents() ,S.detachEvents function() S.

    initEvents(!0) ,S.allowClick !0,S.preventClicks function(e) S.allowClick (S.params.preventClicks&&e.preventDefault(),S.params.

    preventClicksPropagation&&S.animating&&(e.stopPropagation(),e.stopImmediatePropagation())) ,S.onClickNext function(e) e.preventDefault(),S.

    isEnd&&!S.params.loop S.slideNext() ,S.onClickPrev function(e) e.preventDefault(),S.isBeginning&&!S.params.loop S.slidePrev() ,S.

    onClickIndex function(e) e.preventDefault();var t a(this).index()*S.params.slidesPerGroup;S.params.loop&&(t+ S.loopedSlides),S.

    slideTo(t) ,S.updateClickedSlide function(e) var t l(e,"."+S.params.slideClass),s !1;if(t)for(var i 0;i

    S.slides.length-S.params.slidesPerView?(S.fixLoop(),n S.wrapper.children("."+S.params.slideClass+' data-swiper-slide-index "'+r+'" : not(.

  • S.params.slideDuplicateClass+")").eq(0).index(),setTimeout(function() S.slideTo(n) ,0)) : S.slideTo(n) else S.slideTo(n) ;
  • var z,M,E,P,I,k,L,D,B,H,G "input, select, textarea, button, video",X Date.now(),Y ;S.animating !1,S.touches startX : 0,startY : 0,currentX : 0,currentY : 0,diff : 0 ;
  • var A,O;S.onTouchStart function(e) if(e.originalEvent&&(e e.originalEvent),A "touchstart" e.type,A !("which"in e) 3! e.which) if(S.

    params.noSwiping&&l(e,"."+S.params.noSwipingClass))return void(S.allowClick !0);if(!S.params.swipeHandler l(e,S.params.swipeHandler)) var t S.

    touches.currentX "touchstart" e.type?e.targetTouches 0 .pageX : e.pageX,s S.touches.currentY "touchstart" e.type?e.targetTouches 0 .

    pageY : e.pageY;if(!(S.device.ios&&S.params.iOSEdgeSwipeDetection&&t< S.params.iOSEdgeSwipeThreshold)) if(z !0,M !1,E !0,I void 0,O void 0,S.

    touches.startX t,S.touches.startY s,P Date.now(),S.allowClick !0,S.updateContainerSize(),S.swipeDirection void 0,S.params.threshold>

    0&&(D !1),"touchstart"! e.type) var i !0;a(e.target).is(G)&&(i !1),document.activeElement&&a(document.activeElement).is(G)&&document.

    activeElement.blur(),i&&e.preventDefault() S.emit("onTouchStart",S,e) ,S.onTouchMove function(e) if(e.originalEvent&&(e e.

    originalEvent),!A "mousemove"! e.type) if(e.preventedByNestedSwiper)return S.touches.startX "touchmove" e.type?e.targetTouches 0 .

    pageX : e.pageX,void(S.touches.startY "touchmove" e.type?e.targetTouches 0 .pageY : e.pageY);if(S.params.onlyExternal)return S.

    allowClick !1,void(z&&(S.touches.startX S.touches.currentX "touchmove" e.type?e.targetTouches 0 .pageX : e.pageX,S.touches.

    startY S.touches.currentY "touchmove" e.type?e.targetTouches 0 .pageY : e.pageY,P Date.now()));if(A&&S.params.touchReleaseOnEdges&&!S.

    params.loop)if(S.isHorizontal()) if(S.touches.currentX

    S.touches.startX&&S.translate>

    S.minTranslate())return else if(S.touches.currentY

    S.touches.startY&&S.translate>

    S.minTranslate())return;if(A&&document.activeElement&&e.target document.activeElement&&a(e.target).is(G))return M !0,void(S.

    allowClick !1);if(E&&S.emit("onTouchMove",S,e),!(e.targetTouches&&e.targetTouches.length>

    1)) if(S.touches.currentX "touchmove" e.type?e.targetTouches 0 .pageX : e.pageX,S.touches.currentY "touchmove" e.type?e.

    targetTouches 0 .pageY : e.pageY,"undefined" typeof I) var t;S.isHorizontal()&&S.touches.currentY S.touches.startY !S.isHorizontal()&&S.

    touches.currentX! S.touches.startX?I !1 : (t 180*Math.atan2(Math.abs(S.touches.currentY-S.touches.startY),Math.abs(S.touches.

    currentX-S.touches.startX)) / Math.PI,I S.isHorizontal()?t>

    S.params.touchAngle : 90-t>

    S.params.touchAngle) if(I&&S.emit("onTouchMoveOpposite",S,e),"undefined" typeof O&&S.browser.ieTouch&&(S.touches.currentX S.

    touches.startX&&S.touches.currentY S.touches.startY (O !0)),z) if(I)return void(z !1);if(O !S.browser.ieTouch) S.allowClick !1,S.

    emit("onSliderMove",S,e),e.preventDefault(),S.params.touchMoveStopPropagation&&!S.params.nested&&e.stopPropagation(),M (i.

    loop&&S.fixLoop(),L S.getWrapperTranslate(),S.setWrapperTransition(0),S.animating&&S.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),S.

    params.autoplay&&S.autoplaying&&(S.params.autoplayDisableOnInteraction?S.stopAutoplay() : S.pauseAutoplay()),H !1,!S.params.

    grabCursor S.params.allowSwipeToNext! !0&&S.params.allowSwipeToPrev! !0 S.setGrabCursor(!0)),M !0;var s S.touches.diff S.

    isHorizontal()?S.touches.currentX-S.touches.startX : S.touches.currentY-S.touches.startY;s* S.params.touchRatio,S.rtl&&(s -s),S.swipeDirection s>

    0?"prev" : "next",k s+L;var r !0;if(s>

    0&&k>

    S.minTranslate()?(r !1,S.params.resistance&&(k S.minTranslate()-1+Math.pow(-S.minTranslate()+L+s,S.params.resistanceRatio))) : s

    S.params.threshold D))return void(k L);if(!D)return D !0,S.touches.startX S.touches.currentX,S.touches.startY S.touches.

    currentY,k L,void(S.touches.diff S.isHorizontal()?S.touches.currentX-S.touches.startX : S.touches.currentY-S.touches.startY) S.

    params.followFinger&&((S.params.freeMode S.params.watchSlidesProgress)&&S.updateActiveIndex(),S.params.freeMode&&(0 Y.length&&Y.

    push( position : S.touches S.isHorizontal()?"startX" : "startY" ,time : P ),Y.push( position : S.touches S.isHorizontal()?

    currentX" : "currentY" ,time : (new window.Date).getTime() )),S.updateProgress(k),S.setWrapperTranslate(k)) ,S.onTouchEnd function(e) if(e.

    originalEvent&&(e e.originalEvent),E&&S.emit("onTouchEnd",S,e),E !1,z) S.params.grabCursor&&M&&z&&(S.params.allowSwipeToNext !0 S.

    params.allowSwipeToPrev !0)&&S.setGrabCursor(!1);var t Date.now(),s t-P;if(S.allowClick&&(S.updateClickedSlide(e),S.emit("onTap",S,e),s

    300&&(B&&clearTimeout(B),B setTimeout(function() S&&(S.params.paginationHide&&S.paginationContainer.length>

    0&&!a(e.target).hasClass(S.params.bulletClass)&&S.paginationContainer.toggleClass(S.params.paginationHiddenClass),S.emit("onClick",S,e)) ,300)),s

    S.params.longSwipesMs) if(!S.params.longSwipes)return void S.slideTo(S.activeIndex);"next" S.swipeDirection&&(x>

    S.params.longSwipesRatio?S.slideTo(w+S.params.slidesPerGroup) : S.slideTo(w)),"prev" S.swipeDirection&&(x>

    1-S.params.longSwipesRatio?S.slideTo(w+S.params.slidesPerGroup) : S.slideTo(w)) else if(!S.params.shortSwipes)return void S.

    slideTo(S.activeIndex);"next" S.swipeDirection&&S.slideTo(w+S.params.slidesPerGroup),"prev" S.swipeDirection&&S.slideTo(w) ,S.

    slideTo function(e,a) return S.slideTo(e,a,!0,!0) ,S.slideTo function(e,a,t,s) "undefined" typeof t&&(t !0),"undefined" typeof e&&(e 0),e

    S.snapGrid.length&&(S.snapIndex S.snapGrid.length-1);var i -S.snapGrid S.snapIndex ;if(S.params.autoplay&&S.autoplaying&&(s !S.

    params.autoplayDisableOnInteraction?S.pauseAutoplay(a) : S.stopAutoplay()),S.updateProgress(i),S.params.normalizeSlideIndex)for(var r 0;r

    Math.floor(100*S.slidesGrid r )&&(e r);return!(!S.params.allowSwipeToNext&&i

    S.maxTranslate()&&(S.activeIndex 0)! e)&&("undefined" typeof a&&(a S.params.speed),S.previousIndex S.activeIndex 0,S.activeIndex e,S.

    updateRealIndex(),S.rtl&&-i S.translate !S.rtl&&i S.translate?(S.params.autoHeight&&S.updateAutoHeight(),S.updateClasses(),"slide"! S.

    params.effect&&S.setWrapperTranslate(i),!1) : (S.updateClasses(),S.onTransitionStart(t),0 a S.browser.lteIE9?(S.setWrapperTranslate(i),S.

    setWrapperTransition(0),S.onTransitionEnd(t)) : (S.setWrapperTranslate(i),S.setWrapperTransition(a),S.animating (S.animating !0,S.

    wrapper.transitionEnd(function() S&&S.onTransitionEnd(t) ))),!0))) ,S.onTransitionStart function(e) "undefined" typeof e&&(e !0),S.

    params.autoHeight&&S.updateAutoHeight(),S.lazy&&S.lazy.onTransitionStart(),e&&(S.emit("onTransitionStart",S),S.activeIndex! S.

    previousIndex&&(S.emit("onSlideChangeStart",S),S.activeIndex>

    S.previousIndex?S.emit("onSlideNextStart",S) : S.emit("onSlidePrevStart",S))) ,S.onTransitionEnd function(e) S.animating !1,S.

    setWrapperTransition(0),"undefined" typeof e&&(e !0),S.lazy&&S.lazy.onTransitionEnd(),e&&(S.emit("onTransitionEnd",S),S.activeIndex! S.

    previousIndex&&(S.emit("onSlideChangeEnd",S),S.activeIndex>

    S.previousIndex?S.emit("onSlideNextEnd",S) : S.emit("onSlidePrevEnd",S))),S.params.history&&S.history&&S.history.setHistory(S.

    params.history,S.activeIndex),S.params.hashnav&&S.hashnav&&S.hashnav.setHash() ,S.slideNext function(e,a,t) if(S.params.loop) if(S.

    animating)return!1;S.fixLoop();S.container 0 .clientLeft;return S.slideTo(S.activeIndex+S.params.slidesPerGroup,a,e,t) return S.

    slideTo(S.activeIndex+S.params.slidesPerGroup,a,e,t) ,S. slideNext function(e) return S.slideNext(!0,e,!0) ,S.slidePrev function(e,a,t) if(S.

    params.loop) if(S.animating)return!1;S.fixLoop();S.container 0 .clientLeft;return S.slideTo(S.activeIndex-1,a,e,t) return S.

    slideTo(S.activeIndex-1,a,e,t) ,S. slidePrev function(e) return S.slidePrev(!0,e,!0) ,S.slideReset function(e,a,t) return S.

    slideTo(S.activeIndex,a,e) ,S.disableTouchControl function() return S.params.onlyExternal !0,!0 ,S.enableTouchControl function() return S.

    params.onlyExternal !1,!0 ,S.setWrapperTransition function(e,a) S.wrapper.transition(e),"slide"! S.params.effect&&S.effects S.

    params.effect &&S.effects S.params.effect .setTransition(e),S.params.parallax&&S.parallax&&S.parallax.setTransition(e),S.

    params.scrollbar&&S.scrollbar&&S.scrollbar.setTransition(e),S.params.control&&S.controller&&S.controller.setTransition(e,a),S.

    emit("onSetTransition",S,e) ,S.setWrapperTranslate function(e,a,t) var s 0,i 0,r 0;S.isHorizontal()?s S.rtl?-e : e : i e,S.

    params.roundLengths&&(s n(s),i n(i)),S.params.virtualTranslate (S.support.transforms3d?S.wrapper.transform("translate3d("+s+"px, "+i+"px, "+r+"px)") : S.

  • wrapper.transform("translate("+s+"px, "+i+"px)")),S.translate S.isHorizontal()?s : i;var o,l S.maxTranslate()-S.minTranslate();
  • o 0 l?0 : (e-S.minTranslate()) / l,o! S.progress&&S.updateProgress(e),a&&S.updateActiveIndex(),"slide"! S.params.effect&&S.

    effects S.params.effect &&S.effects S.params.effect .setTranslate(S.translate),S.params.parallax&&S.parallax&&S.parallax.

    setTranslate(S.translate),S.params.scrollbar&&S.scrollbar&&S.scrollbar.setTranslate(S.translate),S.params.control&&S.controller&&S.

    controller.setTranslate(S.translate,t),S.emit("onSetTranslate",S,S.translate) ,S.getTranslate function(e,a) var t,s,i,r;return"undefined" typeof a&&(a "x"),S.

    params.virtualTranslate?S.rtl?-S.translate : S.translate : (i window.getComputedStyle(e,null),window.WebKitCSSMatrix?(s i.

    transform i.webkitTransform,s.split(",").length>

    6&&(s s.split(", ").map(function(e) return e.replace(",",".") ).join(", ")),r new window.WebKitCSSMatrix("none" s?"" : s)) : (r i.

    MozTransform i.OTransform i.MsTransform i.msTransform i.transform i.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),t r.

    toString().split(",")),"x" a&&(s window.WebKitCSSMatrix?r.m41 : 16 t.length?parseFloat(t 12 ) : parseFloat(t 4 )),"y" a&&(s window.

    WebKitCSSMatrix?r.m42 : 16 t.length?parseFloat(t 13 ) : parseFloat(t 5 )),S.rtl&&s&&(s -s),s 0) ,S.getWrapperTranslate function(e) return"undefined" typeof e&&(e S.

    isHorizontal()?"x" : "y"),S.getTranslate(S.wrapper 0 ,e) ,S.observers ,S.initObservers function() if(S.params.observeParents)for(var e S.container.parents(),a 0;a

    1)for(e S.activeIndex;e

    1 S.params.lazyLoadingInPrevNextAmount&&S.params.lazyLoadingInPrevNextAmount>

    1) var s S.params.lazyLoadingInPrevNextAmount,i t,r Math.min(S.activeIndex+i+Math.max(s,i),S.slides.length),n Math.max(S.

    activeIndex-Math.max(i,s),0);for(e S.activeIndex+t;e

    0&&S.lazy.loadImageInSlide(l.index()) ,onTransitionStart : function() S.params.lazyLoading&&(S.params.lazyLoadingOnTransitionStart !S.

    params.lazyLoadingOnTransitionStart&&!S.lazy.initialImageLoaded)&&S.lazy.load() ,onTransitionEnd : function() S.params.lazyLoading&&!S.

    params.lazyLoadingOnTransitionStart&&S.lazy.load() ,S.scrollbar isTouched : !1,setDragPosition : function(e) var a S.scrollbar,t S.

    isHorizontal()?"touchstart" e.type "touchmove" e.type?e.targetTouches 0 .pageX : e.pageX e.clientX : "touchstart" e.type "touchmove" e.

    type?e.targetTouches 0 .pageY : e.pageY e.clientY,s t-a.track.offset() S.isHorizontal()?"left" : "top" -a.dragSize / 2,i -S.

    minTranslate()*a.moveDivider,r -S.maxTranslate()*a.moveDivider;s

  • r&&(s r),s -s / a.moveDivider,S.updateProgress(s),S.setWrapperTranslate(s,!0) ,dragStart : function(e) var a S.scrollbar;
  • a.isTouched !0,e.preventDefault(),e.stopPropagation(),a.setDragPosition(e),clearTimeout(a.dragTimeout),a.track.transition(0),S.

    params.scrollbarHide&&a.track.css("opacity",1),S.wrapper.transition(100),a.drag.transition(100),S.emit("onScrollbarDragStart",S) ,dragMove : function(e) var a S.

    scrollbar;a.isTouched&&(e.preventDefault?e.preventDefault() : e.returnValue !1,a.setDragPosition(e),S.wrapper.transition(0),a.

    track.transition(0),a.drag.transition(0),S.emit("onScrollbarDragMove",S)) ,dragEnd : function(e) var a S.scrollbar;a.isTouched&&(a.

    isTouched !1,S.params.scrollbarHide&&(clearTimeout(a.dragTimeout),a.dragTimeout setTimeout(function() a.track.css("opacity",0),a.

    track.transition(400) ,1e3)),S.emit("onScrollbarDragEnd",S),S.params.scrollbarSnapOnRelease&&S.slideReset()) ,draggableEvents : function() return S.

    params.simulateTouch! !1 S.support.touch?S.touchEvents : S.touchEventsDesktop (),enableDraggable : function() var e S.scrollbar,t S.

    support.touch?e.track : document;a(e.track).on(e.draggableEvents.start,e.dragStart),a(t).on(e.draggableEvents.move,e.dragMove),a(t).

  • on(e.draggableEvents.end,e.dragEnd) ,disableDraggable : function() var e S.scrollbar,t S.support.touch?e.track : document;
  • a(e.track).off(S.draggableEvents.start,e.dragStart),a(t).off(S.draggableEvents.move,e.dragMove),a(t).off(S.draggableEvents.

    end,e.dragEnd) ,set : function() if(S.params.scrollbar) var e S.scrollbar;e.track a(S.params.scrollbar),S.params.uniqueNavElements&&"string" typeof S.

    params.scrollbar&&e.track.length>

    1&&1 S.container.find(S.params.scrollbar).length&&(e.track S.container.find(S.params.scrollbar)),e.drag e.track.find(".swiper-scrollbar-drag"),0 e.drag.length&&(e.drag a('

    e.track.append(e.drag)),e.drag 0 .style.width "",e.drag 0 .style.height "",e.trackSize S.isHorizontal()?e.track 0 .offsetWidth : e.

    track 0 .offsetHeight,e.divider S.size / S.virtualSize,e.moveDivider e.divider*(e.trackSize / S.size),e.dragSize e.trackSize*e.

    divider,S.isHorizontal()?e.drag 0 .style.width e.dragSize+"px" : e.drag 0 .style.height e.dragSize+"px",e.divider>

    1?e.track 0 .style.display "none" : e.track 0 .style.display "",S.params.scrollbarHide&&(e.track 0 .style.opacity 0) ,setTranslate : function() if(S.

    params.scrollbar) var e,a S.scrollbar,t (S.translate 0,a.dragSize);e (a.trackSize-a.dragSize)*S.progress,S.rtl&&S.isHorizontal()?(e -e,e>

    0?(t a.dragSize-e,e 0) : -e+a.dragSize>

    a.trackSize&&(t a.trackSize+e)) : e

    a.trackSize&&(t a.trackSize-e),S.isHorizontal()?(S.support.transforms3d?a.drag.transform("translate3d("+e+"px, 0, 0)") : a.

    drag.transform("translateX("+e+"px)"),a.drag 0 .style.width t+"px") : (S.support.transforms3d?a.drag.transform("translate3d(0px, "+e+"px, 0)") : a.

    drag.transform("translateY("+e+"px)"),a.drag 0 .style.height t+"px"),S.params.scrollbarHide&&(clearTimeout(a.timeout),a.track 0 .

    style.opacity 1,a.timeout setTimeout(function() a.track 0 .style.opacity 0,a.track.transition(400) ,1e3)) ,setTransition : function(e) S.

    params.scrollbar&&S.scrollbar.drag.transition(e) ,S.controller LinearSpline : function(e,a) this.x e,this.y a,this.lastIndex e.

    length-1;var t,s;this.x.length;this.interpolate function(e) return e?(s i(this.x,e),t s-1,(e-this.x t )*(this.y s -this.y t ) / (this.

    x s -this.x t )+this.y t ) : 0 ;var i function() var e,a,t;return function(s,i) for(a -1,e s.length;e-a>

    1;)s t e+a>

    1 < i?a t : e t;return e () ,getInterpolateFunction : function(e) S.controller.spline (S.controller.spline S.params.loop?

    new S.controller.LinearSpline(S.slidesGrid,e.slidesGrid) : new S.controller.LinearSpline(S.snapGrid,e.snapGrid)) ,setTranslate : function(e,a) function s(a) e a.

    rtl&&"horizontal" a.params.direction?-S.translate : S.translate,"slide" S.params.controlBy&&(S.controller.getInterpolateFunction(a),r -S.

    controller.spline.interpolate(-e)),r&&"container"! S.params.controlBy (i (a.maxTranslate()-a.minTranslate()) / (S.maxTranslate()-S.

    minTranslate()),r (e-S.minTranslate())*i+a.minTranslate()),S.params.controlInverse&&(r a.maxTranslate()-r),a.updateProgress(r),a.

    setWrapperTranslate(r,!1,S),a.updateActiveIndex() var i,r,n S.params.control;if(S.isArray(n))for(var o 0;o

    0?e?this 0 .offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")) : this 0 .offsetWidth : null ,height : function() return this 0 window?

    window.innerHeight : this.length>

    0?parseFloat(this.css("height")) : null ,outerHeight : function(e) return this.length>

    0?e?this 0 .offsetHeight+parseFloat(this.css("margin-top"))+parseFloat(this.css("margin-bottom")) : this 0 .offsetHeight : null ,offset : function() if(this.length>

    0) var e this 0 ,a e.getBoundingClientRect(),t document.body,s e.clientTop t.clientTop 0,i e.clientLeft t.clientLeft 0,r window.

  • pageYOffset e.scrollTop,n window.pageXOffset e.scrollLeft;return top : a.top+r-s,left : a.left+n-i return null ,css : function(e,a) var t;
  • if(1 arguments.length) if("string"! typeof e) for(t 0;t

    Сообщите об этом задании
    checkmark

    Thank you for reporting this job!

    Your feedback will help us improve the quality of our services.

    Откликнуться
    Мой Email
    Нажимая «Продолжить», я даю согласие neuvoo на обработку моих данных и отправку уведомлений по электронной почте, как описано в Политике конфиденциальности neuvoo. В любое время я могу отозвать свое согласие или отказаться от подписки.
    Продолжить
    Форма заявки