{"version":3,"file":"main.js","mappings":"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","sources":["webpack://Flow.TguTrud/webpack/bootstrap","webpack://Flow.TguTrud/webpack/runtime/define property getters","webpack://Flow.TguTrud/webpack/runtime/hasOwnProperty shorthand","webpack://Flow.TguTrud/webpack/runtime/make namespace object","webpack://Flow.TguTrud/./wwwroot/src/modules/accordion/accordion.js","webpack://Flow.TguTrud/./wwwroot/src/modules/resize.js","webpack://Flow.TguTrud/./node_modules/ssr-window/ssr-window.esm.js","webpack://Flow.TguTrud/./node_modules/dom7/dom7.esm.js","webpack://Flow.TguTrud/./node_modules/swiper/shared/dom.js","webpack://Flow.TguTrud/./node_modules/swiper/shared/utils.js","webpack://Flow.TguTrud/./node_modules/swiper/shared/get-support.js","webpack://Flow.TguTrud/./node_modules/swiper/shared/get-device.js","webpack://Flow.TguTrud/./node_modules/swiper/shared/get-browser.js","webpack://Flow.TguTrud/./node_modules/swiper/core/events-emitter.js","webpack://Flow.TguTrud/./node_modules/swiper/core/update/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/update/updateSize.js","webpack://Flow.TguTrud/./node_modules/swiper/core/update/updateSlides.js","webpack://Flow.TguTrud/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://Flow.TguTrud/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://Flow.TguTrud/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://Flow.TguTrud/./node_modules/swiper/core/update/updateProgress.js","webpack://Flow.TguTrud/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://Flow.TguTrud/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://Flow.TguTrud/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://Flow.TguTrud/./node_modules/swiper/core/transition/transitionEmit.js","webpack://Flow.TguTrud/./node_modules/swiper/core/slide/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/slide/slideTo.js","webpack://Flow.TguTrud/./node_modules/swiper/core/slide/slideToLoop.js","webpack://Flow.TguTrud/./node_modules/swiper/core/slide/slideNext.js","webpack://Flow.TguTrud/./node_modules/swiper/core/slide/slidePrev.js","webpack://Flow.TguTrud/./node_modules/swiper/core/slide/slideReset.js","webpack://Flow.TguTrud/./node_modules/swiper/core/slide/slideToClosest.js","webpack://Flow.TguTrud/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://Flow.TguTrud/./node_modules/swiper/core/loop/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/loop/loopCreate.js","webpack://Flow.TguTrud/./node_modules/swiper/core/loop/loopFix.js","webpack://Flow.TguTrud/./node_modules/swiper/core/loop/loopDestroy.js","webpack://Flow.TguTrud/./node_modules/swiper/core/events/onTouchStart.js","webpack://Flow.TguTrud/./node_modules/swiper/core/events/onTouchMove.js","webpack://Flow.TguTrud/./node_modules/swiper/core/events/onTouchEnd.js","webpack://Flow.TguTrud/./node_modules/swiper/core/events/onResize.js","webpack://Flow.TguTrud/./node_modules/swiper/core/events/onClick.js","webpack://Flow.TguTrud/./node_modules/swiper/core/events/onScroll.js","webpack://Flow.TguTrud/./node_modules/swiper/core/events/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://Flow.TguTrud/./node_modules/swiper/core/breakpoints/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/classes/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/classes/addClasses.js","webpack://Flow.TguTrud/./node_modules/swiper/core/classes/removeClasses.js","webpack://Flow.TguTrud/./node_modules/swiper/core/defaults.js","webpack://Flow.TguTrud/./node_modules/swiper/core/moduleExtendParams.js","webpack://Flow.TguTrud/./node_modules/swiper/core/core.js","webpack://Flow.TguTrud/./node_modules/swiper/core/translate/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/translate/getTranslate.js","webpack://Flow.TguTrud/./node_modules/swiper/core/translate/setTranslate.js","webpack://Flow.TguTrud/./node_modules/swiper/core/translate/minTranslate.js","webpack://Flow.TguTrud/./node_modules/swiper/core/translate/maxTranslate.js","webpack://Flow.TguTrud/./node_modules/swiper/core/translate/translateTo.js","webpack://Flow.TguTrud/./node_modules/swiper/core/transition/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/transition/setTransition.js","webpack://Flow.TguTrud/./node_modules/swiper/core/transition/transitionStart.js","webpack://Flow.TguTrud/./node_modules/swiper/core/transition/transitionEnd.js","webpack://Flow.TguTrud/./node_modules/swiper/core/grab-cursor/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://Flow.TguTrud/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://Flow.TguTrud/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://Flow.TguTrud/./node_modules/swiper/core/check-overflow/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/images/index.js","webpack://Flow.TguTrud/./node_modules/swiper/core/images/loadImage.js","webpack://Flow.TguTrud/./node_modules/swiper/core/images/preloadImages.js","webpack://Flow.TguTrud/./node_modules/swiper/core/modules/resize/resize.js","webpack://Flow.TguTrud/./node_modules/swiper/core/modules/observer/observer.js","webpack://Flow.TguTrud/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://Flow.TguTrud/./node_modules/swiper/modules/navigation/navigation.js","webpack://Flow.TguTrud/./node_modules/swiper/shared/classes-to-selector.js","webpack://Flow.TguTrud/./node_modules/swiper/modules/pagination/pagination.js","webpack://Flow.TguTrud/./node_modules/swiper/modules/lazy/lazy.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-educators-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-faq-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-graduates-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-media-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-how-to-get-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-status-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-categories-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-dissmisalrisk-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-education-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/sliders.js","webpack://Flow.TguTrud/./wwwroot/src/modules/getPageName.js","webpack://Flow.TguTrud/./wwwroot/src/modules/lazyloadBlock.js","webpack://Flow.TguTrud/./wwwroot/src/modules/seeAll.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-cases-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/cases.js","webpack://Flow.TguTrud/./wwwroot/src/modules/sliders.js/init-reviews-slider.js","webpack://Flow.TguTrud/./wwwroot/src/modules/site.js","webpack://Flow.TguTrud/./wwwroot/src/modules/catalog.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/formLock.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/modalMissProgProgram.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/modalMissProgMain.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/getDataProgram.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/dropDownPrograms.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/netRequests.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/bind.js","webpack://Flow.TguTrud/./node_modules/axios/lib/utils.js","webpack://Flow.TguTrud/./node_modules/axios/lib/core/AxiosError.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/toFormData.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/buildURL.js","webpack://Flow.TguTrud/./node_modules/axios/lib/core/InterceptorManager.js","webpack://Flow.TguTrud/./node_modules/axios/lib/defaults/transitional.js","webpack://Flow.TguTrud/./node_modules/axios/lib/platform/browser/index.js","webpack://Flow.TguTrud/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://Flow.TguTrud/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://Flow.TguTrud/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://Flow.TguTrud/./node_modules/axios/lib/platform/common/utils.js","webpack://Flow.TguTrud/./node_modules/axios/lib/platform/index.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://Flow.TguTrud/./node_modules/axios/lib/defaults/index.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://Flow.TguTrud/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://Flow.TguTrud/./node_modules/axios/lib/core/transformData.js","webpack://Flow.TguTrud/./node_modules/axios/lib/cancel/isCancel.js","webpack://Flow.TguTrud/./node_modules/axios/lib/cancel/CanceledError.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/cookies.js","webpack://Flow.TguTrud/./node_modules/axios/lib/core/buildFullPath.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/combineURLs.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://Flow.TguTrud/./node_modules/axios/lib/adapters/xhr.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/speedometer.js","webpack://Flow.TguTrud/./node_modules/axios/lib/adapters/adapters.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/null.js","webpack://Flow.TguTrud/./node_modules/axios/lib/core/settle.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://Flow.TguTrud/./node_modules/axios/lib/core/dispatchRequest.js","webpack://Flow.TguTrud/./node_modules/axios/lib/core/mergeConfig.js","webpack://Flow.TguTrud/./node_modules/axios/lib/env/data.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/validator.js","webpack://Flow.TguTrud/./node_modules/axios/lib/core/Axios.js","webpack://Flow.TguTrud/./node_modules/axios/lib/cancel/CancelToken.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://Flow.TguTrud/./node_modules/axios/lib/axios.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/spread.js","webpack://Flow.TguTrud/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://Flow.TguTrud/./wwwroot/src/modules/metrics.js","webpack://Flow.TguTrud/./wwwroot/src/modules/getCookie.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/constants.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/send.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/form.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/init-datepicker.js","webpack://Flow.TguTrud/./wwwroot/src/modules/form/selects.js","webpack://Flow.TguTrud/./wwwroot/src/modules/modal/modal.js","webpack://Flow.TguTrud/./wwwroot/src/modules/modal/init-modal.js","webpack://Flow.TguTrud/./wwwroot/src/modules/date/ChangeDate.js","webpack://Flow.TguTrud/./wwwroot/src/modules/date/set-date.js","webpack://Flow.TguTrud/./wwwroot/src/modules/date/set-timer.js","webpack://Flow.TguTrud/./wwwroot/src/modules/date/init-counter.js","webpack://Flow.TguTrud/./wwwroot/src/index.js","webpack://Flow.TguTrud/./wwwroot/src/modules/init-tabs.js","webpack://Flow.TguTrud/./wwwroot/src/modules/modal/render-steps-modal.js","webpack://Flow.TguTrud/./wwwroot/src/modules/reviews.js","webpack://Flow.TguTrud/./wwwroot/src/modules/init-tooltips.js","webpack://Flow.TguTrud/./wwwroot/src/modules/init-banner.js","webpack://Flow.TguTrud/./wwwroot/src/modules/date/index.js","webpack://Flow.TguTrud/./wwwroot/src/modules/UtmTags.js","webpack://Flow.TguTrud/./wwwroot/src/modules/collapse.js","webpack://Flow.TguTrud/./wwwroot/src/modules/accordion/init-accordion.js","webpack://Flow.TguTrud/./wwwroot/src/modules/modal/init-complete-modal.js","webpack://Flow.TguTrud/./wwwroot/src/modules/start-video.js","webpack://Flow.TguTrud/./wwwroot/src/modules/faq.js","webpack://Flow.TguTrud/./wwwroot/src/modules/modal/init-leave-page-modal.js","webpack://Flow.TguTrud/./wwwroot/src/modules/init-show-more-button.js","webpack://Flow.TguTrud/./wwwroot/src/modules/geography.js","webpack://Flow.TguTrud/./wwwroot/src/modules/init-widget.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export class Accordion {\r\n constructor() {\r\n this._openHeight = 0;\r\n this._windowWidth = window.innerWidth;\r\n this._documentClickHandler = this._documentClickHandler.bind(this);\r\n this._windowResizeHandler = this._windowResizeHandler.bind(this);\r\n this._init();\r\n }\r\n\r\n _init() {\r\n this.fullUpdate();\r\n document.addEventListener('click', this._documentClickHandler);\r\n window.addEventListener('resize', this._windowResizeHandler);\r\n }\r\n\r\n _documentClickHandler(evt) {\r\n const target = evt.target;\r\n if (!target.closest('[data-accordion=\"button\"]')) {\r\n return;\r\n }\r\n\r\n evt.preventDefault();\r\n const parent = target.closest('[data-accordion=\"parent\"]');\r\n\r\n if (\r\n parent.dataset.destroy &&\r\n !window.matchMedia(parent.dataset.destroy).matches\r\n ) {\r\n return;\r\n }\r\n\r\n const element = target.closest('[data-accordion=\"element\"]');\r\n if (element.classList.contains('is-active')) {\r\n this.closeAccordion(element);\r\n return;\r\n }\r\n this.openAccordion(element);\r\n }\r\n\r\n _windowResizeHandler() {\r\n if (this._windowWidth === window.innerWidth) {\r\n return;\r\n }\r\n this._windowWidth = window.innerWidth;\r\n this.updateAccordionsHeight();\r\n }\r\n\r\n closeAllAccordion(parent) {\r\n const elements = parent.querySelectorAll('[data-accordion=\"element\"]');\r\n elements.forEach((element) => {\r\n const currentParent = element.closest('[data-accordion=\"parent\"]');\r\n if (currentParent === parent) {\r\n this.closeAccordion(element);\r\n }\r\n });\r\n }\r\n\r\n updateAccordionsHeight(element = null) {\r\n if (element) {\r\n const content = element.querySelector('[data-accordion=\"content\"]');\r\n content.style.transition = 'none';\r\n content.style.maxHeight = `${content.scrollHeight}px`;\r\n setTimeout(() => {\r\n content.style.transition = null;\r\n });\r\n return;\r\n }\r\n\r\n const closeElements = document.querySelectorAll(\r\n '[data-accordion=\"element\"]:not(.is-active)'\r\n );\r\n\r\n closeElements.forEach((closeElement) => {\r\n const parent = closeElement.closest('[data-accordion=\"parent\"]');\r\n const content = closeElement?.querySelector('[data-accordion=\"content\"]');\r\n if (\r\n parent.dataset.destroy &&\r\n !window.matchMedia(parent.dataset.destroy).matches\r\n ) {\r\n content.style.maxHeight = '100%';\r\n return;\r\n }\r\n if (content) {\r\n content.style.maxHeight = null;\r\n }\r\n });\r\n\r\n const openElements = document.querySelectorAll(\r\n '[data-accordion=\"element\"].is-active'\r\n );\r\n openElements.forEach((openElement) => {\r\n const content = openElement.querySelector('[data-accordion=\"content\"]');\r\n const parent = openElement.closest('[data-accordion=\"parent\"]');\r\n if (\r\n parent.dataset.destroy &&\r\n !window.matchMedia(parent.dataset.destroy).matches\r\n ) {\r\n content.style.maxHeight = '100%';\r\n return;\r\n }\r\n content.style.transition = 'none';\r\n content.style.maxHeight = `${content.scrollHeight}px`;\r\n setTimeout(() => {\r\n content.style.transition = null;\r\n });\r\n });\r\n }\r\n\r\n fullUpdate(parent = null, transition = false) {\r\n let openElements;\r\n if (parent) {\r\n openElements = parent.querySelectorAll(\r\n '[data-accordion=\"element\"].is-active'\r\n );\r\n } else {\r\n openElements = document.querySelectorAll(\r\n '[data-accordion=\"element\"].is-active'\r\n );\r\n }\r\n openElements.forEach((openElement) => {\r\n const innerParent = openElement.querySelector(\r\n '[data-accordion=\"parent\"]'\r\n );\r\n if (innerParent) {\r\n return;\r\n }\r\n this.openAccordion(openElement, transition);\r\n });\r\n this.updateAccordionsHeight();\r\n }\r\n\r\n openAccordion(element, transition = true) {\r\n const parentElement = element.closest('[data-accordion=\"parent\"]');\r\n const contentElement = element.querySelector('[data-accordion=\"content\"]');\r\n this._openHeight += contentElement.scrollHeight;\r\n\r\n if (parentElement.hasAttribute('data-single')) {\r\n this.closeAllAccordion(parentElement);\r\n }\r\n\r\n element.classList.add('is-active');\r\n if (transition) {\r\n contentElement.style.maxHeight = `${this._openHeight}px`;\r\n } else {\r\n contentElement.style.transition = 'none';\r\n contentElement.style.maxHeight = `${this._openHeight}px`;\r\n setTimeout(() => {\r\n contentElement.style.transition = null;\r\n });\r\n }\r\n\r\n if (parentElement.closest('[data-accordion=\"element\"]')) {\r\n this.openAccordion(\r\n parentElement.closest('[data-accordion=\"element\"]'),\r\n transition\r\n );\r\n return;\r\n }\r\n\r\n this._openHeight = 0;\r\n }\r\n\r\n closeAccordion(element, transition = true) {\r\n const contentElement = element.querySelector('[data-accordion=\"content\"]');\r\n if (!contentElement) {\r\n return;\r\n }\r\n element.classList.remove('is-active');\r\n if (transition) {\r\n contentElement.style.maxHeight = '0';\r\n } else {\r\n contentElement.style.transition = 'none';\r\n contentElement.style.maxHeight = '0';\r\n setTimeout(() => {\r\n contentElement.style.transition = null;\r\n });\r\n }\r\n }\r\n}\r\n","let resize = (func) => {\r\n let currentInnerWidth = window.innerWidth;\r\n\r\n window.addEventListener('resize', () => {\r\n if (window.innerWidth === currentInnerWidth) return;\r\n currentInnerWidth = window.innerWidth;\r\n func();\r\n });\r\n}\r\n\r\nexport default resize;","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n return swiper.slideTo(swiper.slides.length - 1, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Lazy({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate = true) {\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(imageEl => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(sourceEl => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n } // Prev Slides\n\n\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n const window = getWindow();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}","import resize from \"../resize\";\r\nimport Swiper, { Navigation, Pagination, Lazy } from \"swiper\";\r\nSwiper.use([Pagination, Navigation, Lazy]);\r\n\r\nconst initEducatorsSlider = () => {\r\n const slider = document.querySelector(\".educators-slider\");\r\n let swiper = null;\r\n\r\n function init() {\r\n if (!swiper) {\r\n swiper = new Swiper(slider, {\r\n autoHeight: false,\r\n loop: true,\r\n spaceBetween: 20,\r\n slidesPerView: 1.3,\r\n pagination: {\r\n el: \".educators-pagination\",\r\n type: \"fraction\",\r\n },\r\n });\r\n }\r\n }\r\n\r\n function destroy() {\r\n if (swiper) {\r\n swiper.destroy();\r\n swiper = null;\r\n }\r\n }\r\n\r\n function resizeSwiper() {\r\n window.innerWidth <= 600\r\n ? init() \r\n : destroy();\r\n }\r\n\r\n if (document.querySelectorAll(\".educators-item\").length > 1) {\r\n resizeSwiper();\r\n resize(resizeSwiper);\r\n }\r\n};\r\n\r\nexport default initEducatorsSlider;\r\n","import resize from \"../resize\";\r\nimport Swiper, { Navigation, Pagination, Lazy } from \"swiper\";\r\nSwiper.use([Pagination, Navigation, Lazy]);\r\n\r\nconst initFaqSlider = () => {\r\n const slider = document.querySelector(\".faq-slider\");\r\n let swiper = null;\r\n\r\n function init() {\r\n if (!swiper) {\r\n swiper = new Swiper(slider, {\r\n observer: true,\r\n observeParents: true,\r\n loop: false,\r\n spaceBetween: 10,\r\n breakpoints: {\r\n 650: {\r\n slidesPerView: 3.4,\r\n },\r\n 500: {\r\n slidesPerView: 2.7,\r\n },\r\n 370: {\r\n slidesPerView: 2,\r\n },\r\n 0: {\r\n slidesPerView: 1.8,\r\n },\r\n },\r\n });\r\n }\r\n }\r\n\r\n function destroy() {\r\n if (swiper) {\r\n swiper.destroy();\r\n swiper = null;\r\n }\r\n }\r\n\r\n function resizeSwiper() {\r\n window.innerWidth <= 750\r\n ? init() \r\n : destroy();\r\n }\r\n\r\n slider && resizeSwiper();\r\n slider && resize(resizeSwiper);\r\n};\r\n\r\nexport default initFaqSlider;\r\n","import Swiper, { Navigation, Pagination } from \"swiper\";\r\nSwiper.use([Pagination, Navigation]);\r\n\r\nconst initGraduatesSlider = () => {\r\n const slider = document.querySelector(\".graduates__swiper\");\r\n\r\n slider &&\r\n new Swiper(slider, {\r\n navigation: {\r\n nextEl: \".graduates__next\",\r\n prevEl: \".graduates__prev\",\r\n disabledClass: \"last\",\r\n },\r\n pagination: {\r\n el: \".graduates__pagination\",\r\n clickable: true,\r\n currentClass: \"active\",\r\n },\r\n });\r\n};\r\n\r\nexport default initGraduatesSlider;\r\n","import Swiper, { Navigation, Pagination, Lazy } from \"swiper\";\r\nSwiper.use([Pagination, Navigation, Lazy]);\r\n\r\nconst initMediaSlider = () => {\r\n const slider = document.querySelector(\".media__swiper\");\r\n let swiper = null;\r\n\r\n function init() {\r\n if (!swiper) {\r\n swiper = new Swiper(slider, {\r\n speed: 200,\r\n loop: true,\r\n lazy: true,\r\n breakpoints: {\r\n 1441: {\r\n slidesPerView: 4,\r\n spaceBetween: 20,\r\n centeredSlides: true,\r\n initialSlide: 1,\r\n },\r\n 991: {\r\n slidesPerView: 3,\r\n spaceBetween: 10,\r\n centeredSlides: true,\r\n },\r\n 751: {\r\n centeredSlides: true,\r\n slidesPerView: 2,\r\n spaceBetween: 20,\r\n initialSlide: 2,\r\n },\r\n 665: {\r\n slidesPerView: 2,\r\n spaceBetween: 10,\r\n centeredSlides: false,\r\n },\r\n 360: {\r\n slidesPerView: 1.3,\r\n spaceBetween: 20,\r\n centeredSlides: false,\r\n },\r\n 0: {\r\n slidesPerView: 1,\r\n spaceBetween: 20,\r\n centeredSlides: true,\r\n },\r\n },\r\n\r\n pagination: {\r\n el: \".media .media__pagination\",\r\n type: \"fraction\",\r\n },\r\n\r\n navigation: {\r\n nextEl: \".media .media__next\",\r\n prevEl: \".media .media__prev\",\r\n },\r\n });\r\n }\r\n }\r\n\r\n init();\r\n\r\n function destroy() {\r\n if (swiper) {\r\n swiper.destroy();\r\n swiper = null;\r\n }\r\n }\r\n\r\n function resizeSwiper() {\r\n window.addEventListener(\r\n \"resize\",\r\n function () {\r\n destroy();\r\n init();\r\n },\r\n true\r\n );\r\n }\r\n\r\n slider && resizeSwiper();\r\n};\r\n\r\nexport default initMediaSlider;\r\n","import Swiper, { Navigation, Pagination, Lazy } from \"swiper\";\r\nSwiper.use([Pagination, Navigation, Lazy]);\r\n\r\nconst initHowTOGetSlider = () => {\r\n const slider = document.querySelector(\".howtoGet__slider\");\r\n\r\n slider &&\r\n new Swiper(slider, {\r\n autoHeight: true,\r\n loop: false,\r\n lazy: true,\r\n spaceBetween: 20,\r\n slidesPerView: 1,\r\n navigation: {\r\n nextEl: \".howtoGet-navigation-next\",\r\n prevEl: \".howtoGet-navigation-prev\",\r\n type: \"fraction\",\r\n },\r\n pagination: {\r\n el: \".howtoGet-navigation__pagination\",\r\n type: \"fraction\",\r\n },\r\n });\r\n};\r\n\r\nexport default initHowTOGetSlider;\r\n","import Swiper, { Navigation, Pagination, Lazy } from \"swiper\";\r\nSwiper.use([Pagination, Navigation, Lazy]);\r\n\r\nconst initStatusSlider = () => {\r\n const slider = document.querySelector(\".status__slider\");\r\n\r\n slider &&\r\n new Swiper(slider, {\r\n autoHeight: true,\r\n loop: false,\r\n lazy: true,\r\n spaceBetween: 20,\r\n slidesPerView: 1,\r\n navigation: {\r\n nextEl: \".status-navigation-next\",\r\n prevEl: \".status-navigation-prev\",\r\n type: \"fraction\",\r\n },\r\n pagination: {\r\n el: \".status-navigation__pagination\",\r\n type: \"fraction\",\r\n },\r\n });\r\n};\r\n\r\nexport default initStatusSlider;\r\n","import resize from \"../resize\";\r\nimport Swiper, { Navigation, Pagination, Lazy } from \"swiper\";\r\nSwiper.use([Pagination, Navigation, Lazy]);\r\n\r\nconst initCategoriesSlider = () => {\r\n const slider = document.querySelector(\".categories-slider\");\r\n let swiper = null;\r\n\r\n function init() {\r\n if (!swiper) {\r\n swiper = new Swiper(slider, {\r\n autoHeight: false,\r\n loop: true,\r\n lazy: true,\r\n spaceBetween: 15,\r\n breakpoints: {\r\n 0: {\r\n slidesPerView: 1\r\n },\r\n 751: {\r\n slidesPerView: 5\r\n }\r\n }, \r\n navigation: {\r\n nextEl: \".categories .slider-navigation__button--next\",\r\n prevEl: \".categories .slider-navigation__button--prev\",\r\n }\r\n });\r\n }\r\n }\r\n\r\n function destroy() {\r\n if (swiper) {\r\n swiper.destroy();\r\n swiper = null;\r\n }\r\n }\r\n\r\n function resizeSwiper() {\r\n window.innerWidth <= 750\r\n ? destroy() \r\n : init();\r\n }\r\n\r\n slider && resizeSwiper();\r\n slider && resize(resizeSwiper);\r\n};\r\n\r\nexport default initCategoriesSlider;\r\n","import Swiper, { Navigation, Pagination, Lazy } from \"swiper\";\r\nSwiper.use([Pagination, Navigation, Lazy]);\r\n\r\nconst initDissmisalriskSlider = () => {\r\n const slider = document.querySelector(\".riskDiss__content\");\r\n\r\n slider &&\r\n new Swiper(slider, {\r\n autoHeight: true,\r\n loop: false,\r\n lazy: true,\r\n spaceBetween: 20,\r\n slidesPerView: 1,\r\n navigation: {\r\n nextEl: \".riskDiss__navigation-next\",\r\n prevEl: \".riskDiss__navigation-prev\",\r\n disabledClass: \"last\",\r\n },\r\n pagination: {\r\n el: \".riskDiss__pagination\",\r\n type: \"fraction\",\r\n },\r\n });\r\n};\r\n\r\nexport default initDissmisalriskSlider;\r\n","import resize from \"../resize\";\r\nimport Swiper, { Navigation, Pagination, Lazy } from \"swiper\";\r\nSwiper.use([Pagination, Navigation, Lazy]);\r\n\r\nconst initEducationSlider = () => {\r\n const slider = document.querySelector(\".education-slider\");\r\n let swiper = null;\r\n\r\n function init() {\r\n if (!swiper) {\r\n swiper = new Swiper(slider, {\r\n autoHeight: false,\r\n loop: false,\r\n lazy: true,\r\n spaceBetween: 15,\r\n breakpoints: {\r\n 0: {\r\n slidesPerView: 1\r\n },\r\n 360: {\r\n slidesPerView: 1.2\r\n },\r\n 665: {\r\n slidesPerView: 2\r\n },\r\n },\r\n pagination: {\r\n el: \".education .education-pagination\",\r\n bulletActiveClass: \"active\",\r\n clickable: true,\r\n },\r\n });\r\n }\r\n }\r\n\r\n function destroy() {\r\n if (swiper) {\r\n swiper.destroy();\r\n swiper = null;\r\n }\r\n }\r\n\r\n function resizeSwiper() {\r\n window.innerWidth <= 750\r\n ? init() \r\n : destroy();\r\n }\r\n\r\n slider && resizeSwiper();\r\n slider && resize(resizeSwiper);\r\n};\r\n\r\nexport default initEducationSlider;\r\n","import initEducatorsSlider from \"./init-educators-slider\";\r\nimport initFaqSlider from \"./init-faq-slider\";\r\nimport initGraduatesSlider from \"./init-graduates-slider\";\r\nimport initMediaSlider from \"./init-media-slider\";\r\nimport initHowTOGetSlider from \"./init-how-to-get-slider\";\r\nimport initStatusSlider from \"./init-status-slider\";\r\nimport initCategoriesSlider from \"./init-categories-slider\";\r\nimport initDissmisalriskSlider from \"./init-dissmisalrisk-slider\";\r\nimport initEducationSlider from \"./init-education-slider\";\r\n\r\nconst sliders = () => {\r\n initCategoriesSlider();\r\n initGraduatesSlider();\r\n initEducatorsSlider();\r\n initMediaSlider();\r\n initFaqSlider();\r\n initHowTOGetSlider();\r\n initStatusSlider();\r\n initDissmisalriskSlider();\r\n initEducationSlider();\r\n}\r\n\r\nexport default sliders;","const getPageName = () => {\r\n const segments = new URL(window.location.href).pathname.split(\"/\");\r\n const last = segments.pop() || segments.pop();\r\n return last.toLocaleLowerCase();\r\n}\r\n\r\nexport default getPageName;","const lazyLoadBlock = (block) => {\r\n let status = false;\r\n\r\n window.addEventListener(\"scroll\", () => {\r\n if (status === false) {\r\n status = true;\r\n setTimeout(() => {\r\n block();\r\n }, 1000);\r\n }\r\n });\r\n\r\n window.addEventListener(\"mousemove\", () => {\r\n if (status === false) {\r\n status = true;\r\n setTimeout(() => {\r\n block();\r\n }, 1000);\r\n }\r\n });\r\n};\r\n\r\nexport default lazyLoadBlock;\r\n","const seeAll = (i) => {\r\n let contentAll;\r\n let btn_viewAll;\r\n let btnContent;\r\n let slides = document.querySelectorAll(\".newCases__block\");\r\n\r\n // Перебираем слайды\r\n for (let slide of slides) {\r\n contentAll = slide.querySelectorAll(\".newCasesBlock__content\");\r\n\r\n if (slide.getAttribute(\"data-id\") == i) {\r\n btn_viewAll = slide.querySelector(\".openBlock__link\");\r\n btnContent = slide.querySelector(\".openBlock__p\");\r\n let contentAllSlide = slide.querySelectorAll(\".newCasesBlock__content\");\r\n btn_viewAll.classList.remove(\"active\");\r\n btnContent.textContent = \"Развернуть кейс\";\r\n btn_viewAll.addEventListener(\"click\", function (e) {\r\n e.stopImmediatePropagation();\r\n\r\n for (let item of contentAllSlide) {\r\n item.classList.toggle(\"disable\");\r\n contentAllSlide[0].classList.remove(\"disable\");\r\n }\r\n\r\n if (btn_viewAll.classList.contains(\"active\")) {\r\n btn_viewAll.classList.remove(\"active\");\r\n btnContent.textContent = \"Развернуть кейс\";\r\n } else {\r\n btn_viewAll.classList.add(\"active\");\r\n btnContent.textContent = \"Свернуть кейс\";\r\n }\r\n });\r\n }\r\n\r\n //Перебираем все параграфы каждого слайда и скрываем все кроме первого параграфы\r\n for (let item of contentAll) {\r\n item.classList.add(\"disable\");\r\n contentAll[0].classList.remove(\"disable\");\r\n }\r\n }\r\n};\r\n\r\nexport default seeAll;\r\n","import Swiper, { Navigation, Pagination } from \"swiper\";\r\nSwiper.use([Pagination, Navigation]);\r\nimport seeAll from \"../seeAll\";\r\n\r\nconst initCasesSlider = () => {\r\n const slider = document.querySelector(\".newCases__slider\");\r\n\r\n const swiper = new Swiper(slider, {\r\n autoHeight: false,\r\n lazy: true,\r\n navigation: {\r\n nextEl: \".newCasesPagination__pagination-next\",\r\n prevEl: \".newCasesPagination__pagination-prew\",\r\n disabledClass: \"last\",\r\n },\r\n\r\n on: {\r\n init: function () {\r\n seeAll(this.activeIndex);\r\n const totalSlides = this.slides.length;\r\n document.querySelector(\".newCasesPagination__total\").innerHTML =\r\n totalSlides;\r\n document.querySelector(\".newCasesPagination__count\").innerHTML =\r\n this.snapIndex + 1;\r\n },\r\n activeIndexChange: function () {\r\n seeAll(this.activeIndex);\r\n },\r\n slideChange: function () {\r\n const index_currentSlide = swiper.realIndex;\r\n document.querySelector(\".newCasesPagination__count\").innerHTML =\r\n index_currentSlide + 1;\r\n },\r\n },\r\n });\r\n};\r\n\r\nexport default initCasesSlider;\r\n","import getPageName from \"./getPageName\";\r\nimport lazyLoadBlock from \"./lazyloadBlock\";\r\nimport initCasesSlider from \"./sliders.js/init-cases-slider\";\r\n\r\nconst cases = () => {\r\n const casesWrap = document.querySelector(\".newCases__blocks\"),\r\n thisUrl = getPageName();\r\n\r\n if (!casesWrap) {\r\n return;\r\n }\r\n\r\n async function parseReviewsCareer() {\r\n let response = await fetch(`/files/cases.json`),\r\n result = await response.json(),\r\n dataCases;\r\n\r\n result.some((data) => {\r\n if (data.url == thisUrl) {\r\n dataCases = data;\r\n return dataCases;\r\n } else {\r\n dataCases = data;\r\n }\r\n });\r\n\r\n createCasesCardCareer(dataCases);\r\n }\r\n\r\n function createCasesCardCareer(data) {\r\n data.cases.forEach((item) => {\r\n function generContent(arr) {\r\n let result = \"\";\r\n\r\n arr?.forEach((el) => {\r\n result += `

${el}

`;\r\n });\r\n\r\n return result;\r\n }\r\n\r\n casesWrap.innerHTML += `\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n

${item.name}

\r\n

${item.graduate}

\r\n

${item.nameProgram}

\r\n
\r\n\r\n
\r\n ${generContent(item.content)}\r\n
\r\n
\r\n \r\n

Развернуть кейс

\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n\r\n setTimeout(() => {\r\n initCasesSlider();\r\n }, 50);\r\n });\r\n }\r\n\r\n lazyLoadBlock(parseReviewsCareer);\r\n};\r\n\r\nexport default cases;\r\n","import Swiper, { Navigation, Pagination } from \"swiper\";\r\nSwiper.use([Pagination, Navigation]);\r\nimport seeAll from \"../seeAll\";\r\n\r\nconst initReviewsSlider = () => {\r\n const slider = document.querySelector(\".reviews-swiper\");\r\n\r\n new Swiper(slider, {\r\n speed: 200,\r\n loop: true,\r\n breakpoints: { \r\n 1281: {\r\n slidesPerView: 5,\r\n spaceBetween: 20,\r\n centeredSlides: true,\r\n },\r\n 991: {\r\n slidesPerView: 3,\r\n spaceBetween: 10,\r\n centeredSlides: true,\r\n },\r\n 751: {\r\n centeredSlides: true,\r\n slidesPerView: 2,\r\n spaceBetween: 10,\r\n },\r\n 665: {\r\n slidesPerView: 2,\r\n spaceBetween: 10,\r\n centeredSlides: true,\r\n },\r\n 580: {\r\n slidesPerView: 1.7,\r\n spaceBetween: 10,\r\n centeredSlides: false,\r\n },\r\n 530: {\r\n slidesPerView: 1.5,\r\n spaceBetween: 10,\r\n centeredSlides: false,\r\n },\r\n 480: {\r\n slidesPerView: 1.3,\r\n spaceBetween: 10,\r\n centeredSlides: false,\r\n },\r\n 420: {\r\n slidesPerView: 1.2,\r\n spaceBetween: 10,\r\n centeredSlides: false,\r\n },\r\n 361: {\r\n slidesPerView: 1,\r\n spaceBetween: 10,\r\n centeredSlides: false,\r\n },\r\n 0: {\r\n slidesPerView: 1,\r\n spaceBetween: 10,\r\n centeredSlides: true,\r\n },\r\n },\r\n navigation: {\r\n nextEl: \".reviews-swiper__next\",\r\n prevEl: \".reviews-swiper__prev\",\r\n disabledClass: \"last\",\r\n },\r\n on: {\r\n init: function () {\r\n seeAll(this.activeIndex);\r\n const totalSlides = this.slides.length;\r\n\r\n let i = 0;\r\n\r\n for (let item of this.slides) {\r\n item.classList.contains(\"swiper-slide-duplicate\") ? i++ : \"\";\r\n }\r\n document.querySelector(\".reviews-pagination-total\").innerHTML =\r\n totalSlides - i;\r\n },\r\n slideChange: function () {\r\n const index_currentSlide = this.realIndex + 1;\r\n document.querySelector(\".reviews-pagination-current\").innerHTML =\r\n index_currentSlide;\r\n },\r\n },\r\n });\r\n\r\n refreshFsLightbox();\r\n};\r\n\r\nexport default initReviewsSlider;\r\n","import getPageName from \"./getPageName\";\r\n\r\nconst site = () => {\r\n /* Установка целей счетчиков */\r\n function setTargets() {\r\n $(\".page-header__phone\").click(function () {\r\n if (window.yaCounter74433037) {\r\n yaCounter74433037.reachGoal(\"TopPhone\");\r\n }\r\n });\r\n $(\".page-header__btn\").click(function () {\r\n if (window.yaCounter74433037) {\r\n yaCounter74433037.reachGoal(\"HeadButton\");\r\n }\r\n });\r\n $(\".home__btn\").click(function () {\r\n if (window.yaCounter74433037) {\r\n yaCounter74433037.reachGoal(\"TopButton\");\r\n }\r\n });\r\n\r\n setCategoriesMetrics();\r\n }\r\n\r\n function setCategoriesMetrics() {\r\n const categoriesModalIds = [1, 2, 3, 4, 5, 6].map(\r\n (n) => `categories-modal-${n}`\r\n );\r\n const categoriesBtns = categoriesModalIds.map(\r\n (modalId) => `[href=\"#${modalId}\"]`\r\n );\r\n categoriesModalIds.forEach((modalId, index) => {\r\n const modalBtn = document.querySelector(`#${modalId} [href=\"#form\"]`);\r\n if (!modalBtn) {\r\n return;\r\n }\r\n modalBtn.addEventListener(\"click\", () => {\r\n const n = index + 1;\r\n const goalId = \"CategoryModalButton\" + n;\r\n if (window.yaCounter74433037) {\r\n yaCounter74433037.reachGoal(goalId);\r\n }\r\n });\r\n });\r\n categoriesBtns.forEach((selector, index) => {\r\n const btn = document.querySelector(selector);\r\n if (!btn) {\r\n return;\r\n }\r\n btn.addEventListener(\"click\", () => {\r\n const n = index + 1;\r\n const goalId = \"CategoryButton\" + n;\r\n if (window.yaCounter74433037) {\r\n yaCounter74433037.reachGoal(goalId);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Плавный скролл\r\n */\r\n function setNavigation() {\r\n $(\"a[href^='#']:not(.employment-formats__btn):not([rel='modal:open'])\").on(\r\n \"click\",\r\n function (e) {\r\n e.preventDefault();\r\n $(\"html,body\")\r\n .stop()\r\n .animate(\r\n {\r\n scrollTop:\r\n $(`#${this.href.split(\"#\").pop()}`).offset()?.top - 100,\r\n },\r\n 700\r\n );\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Отслеживание страницы 404\r\n */\r\n function catchNotFound() {\r\n let flag = document.querySelector(\".notFound\");\r\n\r\n if (flag) {\r\n let ref;\r\n if (localStorage.referrer) {\r\n ref = localStorage.getItem(\"referrer\");\r\n }\r\n\r\n let siteurl = document.location.href;\r\n visitParams = { NotFoundURL: { [siteurl]: { Реферер: ref } } };\r\n\r\n ym(74433037, \"reachGoal\", \"404error\", visitParams);\r\n localStorage.removeItem(\"referrer\");\r\n } else {\r\n localStorage.setItem(\"referrer\", document.location.href);\r\n }\r\n }\r\n\r\n /**\r\n * Запуск Видео на секции с розыгрышем\r\n */\r\n function findVideos() {\r\n let videos = document.querySelectorAll(\".present__picture\");\r\n\r\n for (let i = 0; i < videos.length; i++) {\r\n setupVideo(videos[i]);\r\n }\r\n }\r\n\r\n function setupVideo(video) {\r\n let link = video.querySelector(\".present__picture-video__link\"),\r\n button = video.querySelector(\".present__picture-logo\");\r\n\r\n video.addEventListener(\"click\", () => {\r\n let id = video.dataset.id,\r\n iframe = createIframe(id);\r\n\r\n link.remove();\r\n button.remove();\r\n video.classList.remove(\"active\");\r\n video.appendChild(iframe);\r\n });\r\n\r\n link.removeAttribute(\"href\");\r\n video.classList.add(\"video--enabled\");\r\n }\r\n\r\n function createIframe(id) {\r\n let iframe = document.createElement(\"iframe\");\r\n\r\n iframe.setAttribute(\"allowfullscreen\", \"\");\r\n iframe.setAttribute(\"allow\", \"autoplay\");\r\n iframe.setAttribute(\"src\", generateURL(id));\r\n iframe.classList.add(\"present__picture-video\");\r\n\r\n return iframe;\r\n }\r\n\r\n function generateURL(id) {\r\n let query = \"?rel=0&showinfo=0&autoplay=1\";\r\n\r\n return \"https://www.youtube.com/embed/\" + id + query;\r\n }\r\n\r\n /**\r\n * В каталоге при клике на карточку переход на программу\r\n */\r\n $(document).on(\"click\", \".tile.active\", function () {\r\n window.location = $(this).find(\"a\").attr(\"href\");\r\n });\r\n\r\n /**\r\n * Collapse\r\n */\r\n function collapseList(wrapper, btns, collapse, icon) {\r\n let wrap = document.querySelector(wrapper);\r\n\r\n if (wrap) {\r\n let buttons = wrap.querySelectorAll(btns),\r\n blockCollapseHeights = [],\r\n collapseBlock = wrap?.querySelectorAll(collapse);\r\n\r\n buttons.forEach((item, i) => {\r\n blockCollapseHeights.push(collapseBlock[i].clientHeight);\r\n collapseBlock[i].style.height = 0;\r\n\r\n item.addEventListener(\"click\", (e) => {\r\n e.stopImmediatePropagation();\r\n\r\n if (collapseBlock[i].style.height == 0 + \"px\") {\r\n collapseBlock[i].style.height = blockCollapseHeights[i] + \"px\";\r\n item.querySelector(icon).classList.add(\"rotate\");\r\n } else {\r\n collapseBlock[i].style.height = 0;\r\n item.querySelector(icon).classList.remove(\"rotate\");\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Добавляем блок с требованиями после блока с категориями подходящих граждан\r\n */\r\n function addRequirementsTgu() {\r\n if (\r\n window.location.pathname == \"/program/realtor72\" ||\r\n window.location.pathname == \"/\" ||\r\n window.location.pathname == \"/program/marketplace72\" ||\r\n window.location.pathname == \"/program/procurementagent\" ||\r\n window.location.pathname == \"/program/smmtargetologist\" ||\r\n window.location.pathname == \"/program/businessmarketplace\" ||\r\n window.location.pathname == \"/program/academicsecretary\"\r\n ) {\r\n return;\r\n } else if (\r\n window.location.pathname == \"/program/itprojectmanagement\" ||\r\n window.location.pathname == \"/program/psychologist\" ||\r\n getPageName() == \"psychologist144\"\r\n ) {\r\n $(\r\n /* html */\r\n `
\r\n
\r\n
\r\n \r\n Требования
к участникам:

граждане РФ с высшим образованием\r\n
\r\n
\r\n
`\r\n ).insertAfter(\".categories\");\r\n } else if (\r\n window.location.pathname == \"/program/operator1c\" || \r\n window.location.pathname == \"/program/social-worker\" || \r\n window.location.pathname == \"/program/warehousemanagement\" || \r\n window.location.pathname == \"/program/cashier\" || \r\n window.location.pathname == \"/program/milling-online\" || \r\n window.location.pathname == \"/program/purchasingagent\" || \r\n window.location.pathname == \"/program/archivist\" || \r\n window.location.pathname == \"/program/passportofficer\"\r\n ) {\r\n $(\r\n /* html */\r\n `
\r\n
\r\n
\r\n \r\n Требования
к участникам:

граждане РФ с основным общим образованием\r\n
\r\n
\r\n
`\r\n ).insertAfter(\".categories\");\r\n } else if (window.location.pathname == \"/program/retinoblastoma\") {\r\n $(\r\n /* html */\r\n `
\r\n
\r\n
\r\n \r\n Требования
к слушателям:

медицинские специалисты (врачи-детские онкологи; врачи-педиатры, врачи-офтальмологи, врачи-онкологи, врачи-гематологи, врачи-эндокринологи, врачи-реаниматологи)\r\n
\r\n
\r\n
`\r\n ).insertAfter(\".categories\");\r\n } else {\r\n $(\r\n /* html */\r\n `
\r\n
\r\n
\r\n \r\n Требования
к участникам:

граждане РФ со средним профессиональным или высшим образованием\r\n
\r\n
\r\n
`\r\n ).insertAfter(\".categories\");\r\n }\r\n }\r\n\r\n /* Табы блока tools на странице реферальной программы */\r\n (() => {\r\n const buttons = document.querySelectorAll(\".tools__button button\");\r\n if (!buttons.length) return;\r\n const cards = document.querySelectorAll(\".tools__card\");\r\n\r\n buttons.forEach((button, index) => {\r\n button.addEventListener(\"click\", () => {\r\n const activeButton = document.querySelector(\r\n \".tools__button button.is-active\"\r\n );\r\n const activeCard = document.querySelector(\".tools__card.is-active\");\r\n activeButton.classList.remove(\"is-active\");\r\n activeCard.classList.remove(\"is-active\");\r\n button.classList.add(\"is-active\");\r\n cards[index].classList.add(\"is-active\");\r\n });\r\n });\r\n })();\r\n\r\n /* Инициализация */\r\n $(function () {\r\n setNavigation();\r\n catchNotFound();\r\n findVideos();\r\n addRequirementsTgu();\r\n setTargets();\r\n \r\n /* collapse для блоков футера */\r\n if (window.innerWidth <= 767) {\r\n collapseList(\r\n \".footer-item__list--1\",\r\n \".footer-item__list-title\",\r\n \".footer-item__list-collapse\",\r\n \".footer-item__list-title__icon\"\r\n );\r\n collapseList(\r\n \".footer-item__list--2\",\r\n \".footer-item__list-title\",\r\n \".footer-item__list-collapse\",\r\n \".footer-item__list-title__icon\"\r\n );\r\n collapseList(\r\n \".footer-item__list--3\",\r\n \".footer-item__list-title\",\r\n \".footer-item__list-collapse\",\r\n \".footer-item__list-title__icon\"\r\n );\r\n collapseList(\r\n \".footer-item__list--4\",\r\n \".footer-item__list-title\",\r\n \".footer-item__list-collapse\",\r\n \".footer-item__list-title__icon\"\r\n );\r\n }\r\n });\r\n};\r\n\r\nexport default site;\r\n","/* Логика для страниц каталога фильтрации программ */\r\nconst catalog = (allPrograms) => {\r\n if (!document.querySelector(\"[data-catalog-filters]\")) {\r\n return;\r\n }\r\n\r\n const utmCategory = getParam(\"category\"),\r\n utmLevel = getParam(\"level\"),\r\n utmRecruitment = getParam(\"recruitment\"),\r\n utmRegion = getParam(\"region\"),\r\n inputsCategory = document.querySelectorAll('input[name=\"category\"]'),\r\n inputsLevel = document.querySelectorAll('input[name=\"level\"]'),\r\n inputsRecruitment = document.querySelectorAll('input[name=\"recruitment\"]'),\r\n linksPrograms = document.querySelectorAll(\".tile-link\"),\r\n linksDirections = document.querySelectorAll(\"[catalog-filter]\"),\r\n notFound = document.querySelector(\".tiles__not-found\"),\r\n wrap = document.querySelector(\".tiles__programs\"),\r\n selectRegions = document.getElementById(\"CatalogRegions\");\r\n\r\n /* Список программ доступных для категории ищущих */\r\n const list = [\r\n \"onec144\",\r\n \"accountant\",\r\n \"personneladmin\",\r\n \"methodist\",\r\n \"bpla\",\r\n \"preschool-education\",\r\n \"social-worker\",\r\n \"social-specialist\",\r\n \"softwaretesting\",\r\n \"webprogrammer\",\r\n ];\r\n\r\n /* Инициализация */\r\n (() => {\r\n // Добавление активности для инпута на основе данных из utm метки\r\n if (utmCategory) {\r\n inputsCategory.forEach((input) => {\r\n if (input.value == utmCategory) {\r\n input.setAttribute(\"checked\", \"true\");\r\n }\r\n });\r\n }\r\n\r\n if (utmLevel) {\r\n inputsLevel.forEach((input) => {\r\n if (input.value == utmLevel) {\r\n input.setAttribute(\"checked\", \"true\");\r\n }\r\n });\r\n }\r\n\r\n if (utmRecruitment) {\r\n inputsRecruitment.forEach((input) => {\r\n if (input.value == utmRecruitment) {\r\n input.setAttribute(\"checked\", \"true\");\r\n }\r\n });\r\n }\r\n\r\n addCardsClass();\r\n update();\r\n if (utmRegion) {\r\n $(\"#CatalogRegions\").val(utmRegion);\r\n $(\"#CatalogRegions\").trigger(\"change\");\r\n }\r\n filterRegions(utmRegion);\r\n resetAllFilters();\r\n\r\n /* Замена текста в плашках для программ категории ищущих */\r\n linksPrograms.forEach((tile) => {\r\n if (list.includes(returnPageProgram(tile.href))) {\r\n if (!tile.closest(\".tile\").classList.contains(\"disable\")) {\r\n let field = tile\r\n .closest(\".tile\")\r\n .querySelector(\".tile__header-info-cost--employed\");\r\n field.textContent = \"Бесплатно\";\r\n }\r\n }\r\n });\r\n })();\r\n\r\n /* Функция добавления UTM меток в url сайта */\r\n const updateQueryStringParam = function (key, value) {\r\n let url = new URL(document.location.href);\r\n\r\n url.searchParams.set(key, value);\r\n window.history.replaceState({}, \"\", url.href);\r\n };\r\n\r\n /* Событие на чекбокс категории */\r\n inputsCategory.forEach((input) => {\r\n input.addEventListener(\"change\", () => {\r\n updateQueryStringParam(\"category\", input.value);\r\n update();\r\n filterRegions(utmRegion);\r\n scrollToTop();\r\n });\r\n });\r\n\r\n /* Событие на чекбокс уровня образования */\r\n inputsLevel.forEach((input) => {\r\n input.addEventListener(\"change\", () => {\r\n updateQueryStringParam(\"level\", input.value);\r\n update();\r\n filterRegions(utmRegion);\r\n scrollToTop();\r\n });\r\n });\r\n\r\n /* Событие на чекбокс активного набора */\r\n inputsRecruitment.forEach((input) => {\r\n input.addEventListener(\"change\", () => {\r\n updateQueryStringParam(\"recruitment\", input.value);\r\n update();\r\n filterRegions(utmRegion);\r\n scrollToTop();\r\n\r\n // Блокировка селекта по регионам\r\n if (input.value == \"disable\") {\r\n selectRegions.setAttribute(\"disabled\", \"disabled\");\r\n } else {\r\n selectRegions.removeAttribute(\"disabled\");\r\n }\r\n });\r\n });\r\n\r\n /* Событие на селект региона */\r\n selectRegions.onchange = (e) => {\r\n let target = e.target.value;\r\n updateQueryStringParam(\"region\", target);\r\n update();\r\n filterRegions(target);\r\n scrollToTop();\r\n };\r\n\r\n /* Обновление контента */\r\n function update() {\r\n filterPrograms(searchValueCheckbox(inputsCategory));\r\n blockDisplayLogic(\r\n searchValueCheckbox(inputsLevel),\r\n searchValueCheckbox(inputsRecruitment)\r\n );\r\n addLinks();\r\n }\r\n\r\n /* Отображение или скрытие блока списка программ и notFound */\r\n function blockDisplayLogic(level, filter) {\r\n let countDPO = countPrograms(\".tiles__DPO\", \"enable\"),\r\n countPO = countPrograms(\".tiles__PO\", \"enable\"),\r\n DPO = document.querySelector(\".tiles__DPO\"),\r\n PO = document.querySelector(\".tiles__PO\");\r\n\r\n if (level == \"DPO\") {\r\n DPO.style.display = \"block\";\r\n if (PO) {\r\n PO.style.display = \"none\";\r\n }\r\n\r\n if (countDPO < 1) {\r\n wrap.style.display = \"none\";\r\n notFound.style.display = \"flex\";\r\n } else {\r\n wrap.style.display = \"flex\";\r\n notFound.style.display = \"none\";\r\n }\r\n } else if (level == \"PO\") {\r\n DPO.style.display = \"none\";\r\n if (PO) {\r\n PO.style.display = \"block\";\r\n }\r\n\r\n if (countPO < 1) {\r\n wrap.style.display = \"none\";\r\n notFound.style.display = \"flex\";\r\n } else {\r\n wrap.style.display = \"flex\";\r\n notFound.style.display = \"none\";\r\n }\r\n } else {\r\n if (countDPO < 1 && countPO < 1) {\r\n wrap.style.display = \"none\";\r\n notFound.style.display = \"flex\";\r\n } else if (countPO < 1) {\r\n if (PO) {\r\n PO.style.display = \"none\";\r\n }\r\n wrap.style.display = \"flex\";\r\n notFound.style.display = \"none\";\r\n } else if (countDPO < 1) {\r\n if (DPO) {\r\n DPO.style.display = \"none\";\r\n }\r\n wrap.style.display = \"flex\";\r\n notFound.style.display = \"none\";\r\n } else {\r\n if (PO) {\r\n PO.style.display = \"block\";\r\n }\r\n if (DPO) {\r\n DPO.style.display = \"block\";\r\n }\r\n wrap.style.display = \"flex\";\r\n notFound.style.display = \"none\";\r\n }\r\n }\r\n\r\n //Фильтрация по активности программ\r\n if (filter == \"disable\") {\r\n let checkDisableDPO = [...linksPrograms].find((it) => {\r\n if (level == \"DPO\" && it.closest(\".tiles__DPO\")) {\r\n if (it.closest(\".disable\")) {\r\n return it;\r\n }\r\n }\r\n });\r\n \r\n let checkDisablePO = [...linksPrograms].find((it) => {\r\n if (level == \"PO\" && it.closest(\".tiles__PO\")) {\r\n if (it.closest(\".disable\")) {\r\n return it;\r\n }\r\n }\r\n });\r\n\r\n let checkDisablePOAll = [...linksPrograms].find((it) => {\r\n if (it.closest(\".tiles__PO\")) {\r\n if (it.closest(\".disable\")) {\r\n return it;\r\n }\r\n }\r\n });\r\n\r\n let checkDisableDPOAll = [...linksPrograms].find((it) => {\r\n if (it.closest(\".tiles__DPO\")) {\r\n if (it.closest(\".disable\")) {\r\n return it;\r\n }\r\n }\r\n });\r\n\r\n if (level == \"DPO\") {\r\n if (typeof checkDisableDPO == \"undefined\") {\r\n wrap.style.display = \"none\";\r\n notFound.style.display = \"flex\";\r\n }\r\n } else if (level == \"PO\") {\r\n if (typeof checkDisablePO == \"undefined\") {\r\n wrap.style.display = \"none\";\r\n notFound.style.display = \"flex\";\r\n }\r\n } else {\r\n if (typeof checkDisablePOAll == \"undefined\") {\r\n if (PO) {\r\n PO.style.display = \"none\";\r\n }\r\n } else {\r\n if (PO) {\r\n PO.style.display = \"block\";\r\n }\r\n }\r\n\r\n if (typeof checkDisableDPOAll == \"undefined\") {\r\n if (DPO) {\r\n DPO.style.display = \"none\";\r\n }\r\n } else {\r\n if (DPO) {\r\n DPO.style.display = \"block\";\r\n }\r\n }\r\n\r\n if (\r\n typeof checkDisableDPOAll == \"undefined\" &&\r\n typeof checkDisablePOAll == \"undefined\"\r\n ) {\r\n wrap.style.display = \"none\";\r\n notFound.style.display = \"flex\";\r\n }\r\n }\r\n\r\n [...linksPrograms].map((it) => {\r\n it.closest(\".tile\").style.display = \"none\";\r\n \r\n if (it.closest(\".disable\")) {\r\n it.closest(\".tile\").style.display = \"flex\";\r\n }\r\n });\r\n } else {\r\n const enablePrograms = document.querySelectorAll(\".tile:not(.disable)\");\r\n\r\n if (level == \"DPO\") {\r\n if (\r\n countPrograms(\".tiles__DPO\", \"disable\") ==\r\n countPrograms(\".tiles__DPO\", \"enable\")\r\n ) {\r\n if (DPO) {\r\n DPO.style.display = \"none\";\r\n wrap.style.display = \"none\";\r\n notFound.style.display = \"flex\";\r\n }\r\n }\r\n } else if (level == \"PO\") {\r\n if (\r\n countPrograms(\".tiles__PO\", \"disable\") ==\r\n countPrograms(\".tiles__PO\", \"enable\")\r\n ) {\r\n if (PO) {\r\n PO.style.display = \"none\";\r\n wrap.style.display = \"none\";\r\n notFound.style.display = \"flex\";\r\n }\r\n }\r\n } else {\r\n if (\r\n countPrograms(\".tiles__DPO\", \"disable\") ==\r\n countPrograms(\".tiles__DPO\", \"enable\")\r\n ) {\r\n if (DPO) {\r\n DPO.style.display = \"none\";\r\n }\r\n } else {\r\n if (DPO) {\r\n DPO.style.display = \"block\";\r\n }\r\n }\r\n\r\n if (\r\n countPrograms(\".tiles__PO\", \"disable\") ==\r\n countPrograms(\".tiles__PO\", \"enable\")\r\n ) {\r\n if (PO) {\r\n PO.style.display = \"none\";\r\n }\r\n } else {\r\n if (PO) {\r\n PO.style.display = \"block\";\r\n }\r\n }\r\n\r\n if (!enablePrograms.length) {\r\n wrap.style.display = \"none\";\r\n notFound.style.display = \"flex\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* Фильтрация программ */\r\n function filterPrograms(filter) {\r\n if (filter == \"employed\") {\r\n let count = 0;\r\n\r\n linksPrograms.forEach((tile) => {\r\n if (list.includes(returnPageProgram(tile.href))) {\r\n if (count == 4) {\r\n count = 0;\r\n }\r\n\r\n count++;\r\n changeStateTiles(tile, count);\r\n } else {\r\n hiddenTiles(tile);\r\n }\r\n });\r\n } else {\r\n let count = 0;\r\n\r\n linksPrograms.forEach((tile) => {\r\n if (!tile.closest(\".tile\").classList.contains(\"disable\")) { \r\n if (count == 4) {\r\n count = 0;\r\n }\r\n \r\n count++;\r\n changeStateTiles(tile, count);\r\n } else { \r\n tile.closest(\".tile\").style.display = \"none\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n /* Сброс установок фильтров */\r\n function resetAllFilters() {\r\n let resetAllFilters = document.querySelector(\"[data-reset-all]\");\r\n\r\n resetAllFilters.addEventListener(\"click\", () => {\r\n document.location.href = \"/catalog\";\r\n });\r\n }\r\n\r\n /* Отобраение и замена цвета у карточек каталога */\r\n function changeStateTiles(tile, count) {\r\n const colors = [\r\n [\"#FFB84F\", \"#FFC877\"],\r\n [\"#FF9F9F\", \"#FFBABE\"],\r\n [\"#64BBFF\", \"#82C7FC\"],\r\n [\"#9896FF\", \"#AFAEF2\"],\r\n ];\r\n\r\n if (tile.closest(\".tile\").classList.contains(\"hidden\")) {\r\n tile.closest(\".tile\").classList.remove(\"hidden\");\r\n }\r\n \r\n tile.closest(\".tile\").style.backgroundColor = colors[count - 1][0];\r\n tile\r\n .closest(\".tile\")\r\n .querySelectorAll(\".tile__header-icon\")\r\n .forEach((icon) => (icon.style.backgroundColor = colors[count - 1][1]));\r\n\r\n tile.closest(\".tile\").style.display = \"flex\";\r\n tile.closest(\".tile\").classList.add(\"visible\");\r\n }\r\n\r\n /* Скрытие карточки в каталоге */\r\n function hiddenTiles(tile) {\r\n if (tile.closest(\".tile\").classList.contains(\"visible\")) {\r\n tile.closest(\".tile\").classList.remove(\"visible\");\r\n }\r\n\r\n tile.closest(\".tile\").classList.add(\"hidden\");\r\n tile.closest(\".tile\").style.display = \"none\";\r\n }\r\n\r\n /* Скрытие или отображение блока для программ ДПО и ПО */\r\n function countPrograms(block, filter) {\r\n const wrap = document.querySelector(block);\r\n\r\n if (!wrap) {\r\n return 0;\r\n }\r\n\r\n if (filter == \"disable\") {\r\n const programs = wrap.querySelectorAll(\".tile.visible.disable\");\r\n return programs.length;\r\n } else {\r\n const programs = wrap.querySelectorAll(\".tile.visible\");\r\n return programs.length;\r\n }\r\n }\r\n\r\n /* Добавление класса active или disable карточкам */\r\n function addCardsClass() {\r\n const enablePrograms = document.querySelectorAll(\".tile:not(.disable)\");\r\n\r\n let dataPrograms = [];\r\n\r\n allPrograms.forEach((program) => {\r\n dataPrograms.push(program.shortname);\r\n });\r\n\r\n enablePrograms.forEach((program) => {\r\n let link = program.getAttribute(\"data-link\"); \r\n\r\n if (dataPrograms.includes(returnPageProgram(link))) {\r\n program.classList.add('active');\r\n } else {\r\n program.classList.add('disable');\r\n }\r\n });\r\n }\r\n\r\n /* Фильтрация по региону */\r\n function filterRegions(region = null) {\r\n const enablePrograms = document.querySelectorAll(\".tile:not(.disable)\");\r\n\r\n let dataPrograms = [];\r\n let listPrograms = [];\r\n\r\n allPrograms.forEach((program) => {\r\n dataPrograms.push(program.shortname);\r\n });\r\n\r\n enablePrograms.forEach((program) => {\r\n let link = program.getAttribute(\"data-link\"); \r\n\r\n if (dataPrograms.includes(returnPageProgram(link))) {\r\n listPrograms.push(program);\r\n } \r\n });\r\n\r\n if (!region) return;\r\n \r\n let list = [];\r\n let filterAllPrograms = allPrograms.filter((item) =>\r\n item.regions.some((it) => it.region_id == region)\r\n );\r\n\r\n filterAllPrograms.forEach((program) => {\r\n list.push(program.shortname);\r\n }); \r\n \r\n enablePrograms.forEach((program) => {\r\n program.style.display = \"none\"; \r\n });\r\n\r\n if (searchValueCheckbox(inputsRecruitment) != \"disable\") {\r\n listPrograms.forEach((program) => {\r\n let link = program.getAttribute(\"data-link\");\r\n \r\n if (list.includes(returnPageProgram(link))) {\r\n program.style.display = \"flex\";\r\n } else {\r\n program.style.display = \"none\";\r\n }\r\n }); \r\n }\r\n }\r\n\r\n /* Добавление для ссылок на направлениях utm меток */\r\n function addLinks() {\r\n let category = searchValueCheckbox(inputsCategory),\r\n level = searchValueCheckbox(inputsLevel);\r\n\r\n if (category && !level) {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split(\"?\")[0] + `?category=${category}`;\r\n });\r\n } else if (!category && level) {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split(\"?\")[0] + `?level=${level}`;\r\n });\r\n } else if (category && level) {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split(\"?\")[0] + `?category=${category}&level=${level}`;\r\n });\r\n } else {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split(\"?\")[0];\r\n });\r\n }\r\n }\r\n\r\n /* Поиск выбранного чекбокса */\r\n function searchValueCheckbox(inputs) {\r\n for (var i = 0; i < inputs.length; i++) {\r\n if (inputs[i].checked) {\r\n let value = inputs[i].value;\r\n\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n /* Получение url программы из ссылки */\r\n function returnPageProgram(link) {\r\n const segments = link.split(\"/\"),\r\n last = segments.pop() || segments.pop();\r\n\r\n return last;\r\n }\r\n\r\n /* Функция получения определенной utm метки */\r\n function getParam(param) {\r\n const urlParams = new URL(window.location.toString()).searchParams;\r\n return urlParams.get(param) || \"\";\r\n }\r\n\r\n /* Плавный скролл в начало блока списка программ */\r\n function scrollToTop() {\r\n let scropllBlock = document.querySelector(\".tiles-wrap\");\r\n if (scropllBlock) {\r\n scropllBlock.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"start\",\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport default catalog;\r\n","const formLock = (status) => {\r\n /**\r\n * Блокировка отправки формы при отсутствии программ в регионе\r\n */\r\n const form = document.getElementById(\"form-app\");\r\n if (status == \"lock\") {\r\n form.querySelector(\".form__checkboxs\").style.display = \"none\";\r\n form.querySelector(\"#personal-data\").checked = false;\r\n form.querySelector(\"#personal-data--pd\").checked = false;\r\n form.querySelector(\".form__btn\").disabled = true;\r\n } else {\r\n form.querySelector(\".form__checkboxs\").style.display = \"block\";\r\n form.querySelector(\"#personal-data\").checked = true;\r\n form.querySelector(\"#personal-data--pd\").checked = true;\r\n form.querySelector(\".form__btn\").disabled = false;\r\n }\r\n};\r\n\r\nexport default formLock;\r\n","import getPageName from \"../getPageName\";\r\nimport formLock from \"./formLock\";\r\n\r\n/* Модальное окно об отсутствии программ на странице программ */\r\nfunction modalMissProgProgram(arr, region, arrStatus) {\r\n let shortUrl = location.href.split(\"/\"),\r\n regionsArr = [],\r\n allProgramsRegionFiltred = [],\r\n firstArr,\r\n secondArr;\r\n\r\n /* Если не сайт программы, прекращаем выполнение функции */\r\n if (!shortUrl.includes(\"program\")) {\r\n return;\r\n }\r\n\r\n if (region) {\r\n /* Фильтрация общего массива по выбранному региону */\r\n allProgramsRegionFiltred = arr.filter((item) =>\r\n item.regions.some((it) => it.region_id == region)\r\n );\r\n\r\n /* Удаляем дубли в отфильтрованном массиве */\r\n let allProgramsNoDublicate = allProgramsRegionFiltred.filter(\r\n (item, idx, arr) => {\r\n return (\r\n arr.findLastIndex((it) => it.shortname === item.shortname) === idx\r\n );\r\n }\r\n );\r\n\r\n /* Фильтруем общий массив по shortname */\r\n let filterProgramsByshortname = arr.filter(\r\n (it) => it.shortname == getPageName()\r\n );\r\n\r\n /* Деструктуризируем отфильтрованный массив в переменную */\r\n if (filterProgramsByshortname.length > 1) {\r\n [firstArr, secondArr] = filterProgramsByshortname;\r\n regionsArr = firstArr.regions.concat(secondArr.regions);\r\n } else if (filterProgramsByshortname.length == 1) {\r\n [firstArr] = filterProgramsByshortname;\r\n regionsArr = firstArr.regions;\r\n }\r\n\r\n /* Проверяем есть ли в массиве выбранный регион */\r\n let findRedionId = regionsArr\r\n .map((it) => it.region_id)\r\n .find((it) => it == region);\r\n\r\n if (\r\n findRedionId === undefined ||\r\n (arrStatus[0] == true &&\r\n arrStatus[1] == false)\r\n ) {\r\n if (allProgramsNoDublicate.length == 0) {\r\n createModal(\"1\");\r\n formLock(\"lock\");\r\n } else if (arrStatus[0] == true && arrStatus[1] == false) {\r\n createModal(\"2\");\r\n formLock(\"lock\");\r\n } else {\r\n createModal(\"3\", allProgramsNoDublicate);\r\n formLock(\"unlock\");\r\n }\r\n } else {\r\n formLock(\"unlock\");\r\n }\r\n\r\n /* Создание модального окна с доступными программами в регионе */\r\n function createModal(status) {\r\n const a = document.createElement(\"a\");\r\n a.href = \"#ProgramsModal\";\r\n a.rel = \"modal:open\";\r\n a.style.display = \"none\";\r\n document.body.append(a);\r\n\r\n let modalRegions = document.querySelector(\"#ProgramsModal\");\r\n\r\n if (modalRegions) {\r\n modalRegions.remove();\r\n }\r\n\r\n let modal = document.createElement(\"div\");\r\n [\"modal\", \"modal-programs\"].forEach((additionalClass) => {\r\n modal.classList.add(additionalClass);\r\n });\r\n\r\n modal.id = \"ProgramsModal\";\r\n\r\n if (status == \"1\") {\r\n modal.innerHTML = `
\r\n

К сожалению, в вашем регионе программы не реализуются

\r\n
`;\r\n document.body.append(modal);\r\n } else if (status == \"2\") {\r\n modal.innerHTML = `
\r\n

К сожалению, по данному уровню образования программа не доступна

\r\n
`;\r\n document.body.append(modal);\r\n } else {\r\n modal.innerHTML = `
\r\n

К сожалению, в вашем регионе программа не реализуется

\r\n

Но вы все еще можете пройти бесплатное обучение и получить помощь в старте карьеры по другим программам. Вот какие программы доступны в вашем регионе:

\r\n
\r\n
`;\r\n document.body.append(modal);\r\n \r\n allProgramsNoDublicate.forEach((item) => {\r\n document.querySelector(\".modal-programs__links\").innerHTML += `\r\n ${item.name}\r\n `;\r\n });\r\n }\r\n\r\n a.click();\r\n a.remove();\r\n }\r\n }\r\n}\r\n\r\nexport default modalMissProgProgram;\r\n","/* Модальное окно об отсутствии программ для Главной страницы */\r\nfunction modalMissProgMain(Regions, arr, arrAllProgramsDirections, arrAllProgramsRegions) {\r\n let elementEmptyModal = document.querySelector('.form__field-regions'), \r\n emptyModal = '';\r\n \r\n if (arrAllProgramsRegions.length == 0) {\r\n emptyModal = `

К сожалению, по данному региону нет доступных программ

` \r\n } else if (arrAllProgramsDirections.length == 0) {\r\n emptyModal = `

К сожалению, по данному направлению нет доступных программ. Выберите другое направление.

`;\r\n } else {\r\n emptyModal = `

К сожалению, по данному уровню образования нет доступных программ

`;\r\n }\r\n\r\n elementEmptyModal?.remove();\r\n\r\n if (Regions.value == '') {\r\n return;\r\n }\r\n \r\n if (arr === undefined || arr.length == 0) {\r\n Regions.insertAdjacentHTML('afterend', emptyModal);\r\n } else {\r\n elementEmptyModal?.remove();\r\n }\r\n}\r\n\r\nexport default modalMissProgMain;\r\n","const getDataProgram = (arrFetch, e, region) => {\r\n let arr = \"\",\r\n operator = '',\r\n link = '',\r\n program_id = null;\r\n\r\n if (!region) {\r\n return;\r\n }\r\n\r\n /* Проверяем это option или input */\r\n e.target ? (e = e.target.options[e.target.selectedIndex]) : e;\r\n\r\n /* Фильтруем общий массив по shortname выбранной программы */\r\n let filterProgramArr = arrFetch.find(\r\n (item) => item.shortname == e.getAttribute(\"shortname\")\r\n );\r\n\r\n if (filterProgramArr == undefined) {\r\n return {operator, program_id, link};\r\n }\r\n\r\n /* Получаем ссылку с отфильтрованного массива */\r\n arr = filterProgramArr.regions.find(\r\n (item) => item.region_id == region\r\n );\r\n\r\n /* ID Program */\r\n program_id = arr.program_id;\r\n \r\n /* Получение оператора и ссылки на РР */\r\n arr.fields.forEach(element => { \r\n if (element.field == \"funnel\") {\r\n operator = element.value\r\n } \r\n\r\n if (element.field == \"rvr_link\") {\r\n link = element.value\r\n }\r\n });\r\n \r\n return {operator, program_id, link};\r\n};\r\n\r\nexport default getDataProgram;\r\n","import getPageName from \"../getPageName\";\r\nimport modalMissProgProgram from \"./modalMissProgProgram\";\r\nimport modalMissProgMain from \"./modalMissProgMain\";\r\nimport getDataProgram from \"./getDataProgram\";\r\n\r\nasync function initDropDownsPrograms(requestPrograms) {\r\n let filterNoDublicatePrograms = [],\r\n filterPrograms = [],\r\n allProgramsRegion = [],\r\n level = \"\",\r\n region = \"\",\r\n allProgramsRegionFiltred = [],\r\n Program = document.getElementById(`ProgramHome`),\r\n ProgramsHidden = document.querySelector(\".program-hidden\"),\r\n Education = document.getElementById(`education-level`),\r\n Direction = document.getElementById(`Direction`),\r\n Regions = document.getElementById(`Regions`),\r\n shortUrl = getPageName();\r\n\r\n /* FLOW-11265 срабатывание цели один раз при выборе региона и программы */\r\n let selectedOnceRegion = false,\r\n selectedOnceProgram = false,\r\n selectedOnceDirection = false;\r\n\r\n /* Общий уникальный массив с операторами */\r\n let allPrograms = requestPrograms;\r\n\r\n /* Выбор региона и программ в зависимости от региона */\r\n if (Regions !== null) {\r\n Regions.onchange = function (e) {\r\n if (!selectedOnceRegion) {\r\n ym(74433037, \"reachGoal\", \"geo\");\r\n selectedOnceRegion = true;\r\n }\r\n\r\n region = e.target.value;\r\n $(`#Direction`).val(null).trigger(\"change\");\r\n\r\n /* Фильтрация общего массива в зависимости от выбранного региона */\r\n allProgramsRegionFiltred = allPrograms.filter((item) =>\r\n item.regions.some((it) => it.region_id == region)\r\n );\r\n\r\n /* Логика по отсеиванию программ с одинаковыми shortname, у которых нет в данном регионе задачи */\r\n filterNoDublicatePrograms = structuredClone(allProgramsRegionFiltred);\r\n\r\n /* Добавление в переменную всех возможных программ для данного региона для отслеживания логики вывода модального окна с нужным сообщением */\r\n allProgramsRegion = [];\r\n allProgramsRegion = structuredClone(filterNoDublicatePrograms);\r\n\r\n if (!ProgramsHidden) {\r\n logicEducationFields();\r\n } else {\r\n /* Добавление названия программы в форму */\r\n const title = document.querySelector(\".home__title\").textContent;\r\n let newProgram = title.slice(\r\n title.indexOf(\"«\") + 1,\r\n title.indexOf(\"»\")\r\n );\r\n\r\n ProgramsHidden.value = newProgram;\r\n logicEducationFields();\r\n setAttrforSingleField();\r\n logicModalPageProgram();\r\n }\r\n };\r\n }\r\n\r\n /* Выбор уровня образования */\r\n if (Education !== null) {\r\n Education.onchange = function () {\r\n $(`#Program`).val(null).trigger(\"change\");\r\n level = this.value;\r\n\r\n logicEducationFields();\r\n logicModalPageProgram();\r\n };\r\n }\r\n\r\n /* Выбор направления */\r\n if (Direction !== null) {\r\n Direction.onchange = function () {\r\n if (!selectedOnceDirection) {\r\n ym(74433037, \"reachGoal\", \"field\");\r\n selectedOnceDirection = true;\r\n }\r\n /* Фильтрация массива (с выбранным регионом) по направлению */\r\n const filterDirectionPrograms = structuredClone(allProgramsRegion).filter(\r\n (item) => item.direction_id == this.value\r\n );\r\n\r\n /* Убираем дубли по shortname и присваиваем рандомно оператора */\r\n filterNoDublicatePrograms = filterDirectionPrograms.filter(\r\n (item, idx, arr) => {\r\n return arr.findIndex((it) => it.shortname === item.shortname) === idx;\r\n }\r\n );\r\n\r\n logicEducationFields();\r\n };\r\n }\r\n\r\n /* Выбор программы. Получаем ссылку на РВР и устанавливаем ее в качестве аттрибута */\r\n if (!ProgramsHidden && Program) {\r\n Program.onchange = function (e) {\r\n if (!selectedOnceProgram && e.target.value != \"\") {\r\n selectedOnceProgram = true;\r\n ym(74433037, \"reachGoal\", \"prog\");\r\n }\r\n\r\n let data = getDataProgram(filterNoDublicatePrograms, e, region);\r\n\r\n /* Добавление аттрибута ссылки на РВР */\r\n e.target.options[e.target.selectedIndex].setAttribute(\r\n \"linkrvr\",\r\n data?.link\r\n );\r\n\r\n /* Добавление аттрибута оператора */\r\n e.target.options[e.target.selectedIndex].setAttribute(\r\n \"operator\",\r\n data?.operator\r\n );\r\n\r\n /* Добавление аттрибута id программы */\r\n e.target.options[e.target.selectedIndex].setAttribute(\r\n \"program_id\",\r\n data?.program_id\r\n );\r\n };\r\n }\r\n\r\n /* Логика вывода модальных окон на странице программы */\r\n function logicModalPageProgram() {\r\n let url = location.href.split(\"/\");\r\n\r\n /* Если не сайт программы, прекращаем выполнение функции */\r\n if (!url.includes(\"program\")) {\r\n return;\r\n }\r\n\r\n if (region && level) {\r\n let statusPO = false,\r\n statusDPO = false;\r\n\r\n filterNoDublicatePrograms.forEach((program) => {\r\n if (program.shortname == shortUrl) {\r\n statusPO = true;\r\n }\r\n });\r\n\r\n filterPrograms.forEach((program) => {\r\n if (program.shortname == shortUrl) {\r\n statusDPO = true;\r\n }\r\n });\r\n\r\n /* Модальное окно отсутствия программ по выбранному региону для страниц программ */\r\n modalMissProgProgram(filterNoDublicatePrograms, region, [\r\n statusPO,\r\n statusDPO,\r\n ]);\r\n }\r\n }\r\n\r\n /* Логика полей в зависимости от выбора уровня образования */\r\n function logicEducationFields() {\r\n if (level == 1) {\r\n filterPrograms = filterNoDublicatePrograms.filter(\r\n (item) => item.level == \"vocational\"\r\n );\r\n } else {\r\n filterPrograms = filterNoDublicatePrograms;\r\n }\r\n\r\n if (!ProgramsHidden) {\r\n /* Модальное окно отсутствия программ по выбранному региону для главной страницы */\r\n if (Regions.value == \"\") {\r\n return;\r\n }\r\n\r\n /* Модальное окно отсутствия программ по выбранному региону для главной страницы */\r\n modalMissProgMain(\r\n Regions,\r\n filterPrograms,\r\n filterNoDublicatePrograms,\r\n allProgramsRegion\r\n );\r\n\r\n /* Создаем option только на главной */\r\n renderOptions(filterPrograms);\r\n }\r\n }\r\n\r\n /* Создаем нужные options */\r\n function renderOptions(arr) {\r\n [...Program.children].map((item, idx) => {\r\n if (idx > 0) {\r\n item.remove();\r\n }\r\n });\r\n\r\n arr.forEach((item) => {\r\n let option = new Option(item.name, item.name, false, false);\r\n option.setAttribute(\"shortname\", item.shortname);\r\n\r\n Program.append(option);\r\n });\r\n }\r\n\r\n /* Если страница программы, добавляем необходимые аттрибуты к скрытым полям */\r\n function setAttrforSingleField() {\r\n ProgramsHidden.setAttribute(\"shortname\", shortUrl);\r\n\r\n let data = getDataProgram(filterNoDublicatePrograms, ProgramsHidden, region);\r\n\r\n ProgramsHidden.setAttribute(\"linkrvr\", data?.link);\r\n ProgramsHidden.setAttribute(\"operator\", data?.operator);\r\n ProgramsHidden.setAttribute(\"program_id\", data?.program_id);\r\n }\r\n}\r\n\r\nexport default initDropDownsPrograms;\r\n","async function netRequests() {\r\n const PROGRAMS = \"https://hermes.smile-tech.study/api/v1/project/1/programs/regional\";\r\n\r\n /* Запрос на получение json */\r\n async function getJson(patch) {\r\n if (!patch) return;\r\n\r\n let result;\r\n\r\n try {\r\n /* На данный момент не все браузеры поддерживают AbortController */\r\n if (\"AbortController\" in window) {\r\n const response = await fetchWithTimeout(patch, {\r\n timeout: 3000,\r\n });\r\n result = await response.json();\r\n } else {\r\n const response = await fetch(patch);\r\n result = await response.json();\r\n }\r\n\r\n return result;\r\n } catch (error) {\r\n console.log(error.name === \"AbortError\");\r\n }\r\n }\r\n\r\n /* Функция прерывания запроса через определенный промежуток времени на основе AbortController */\r\n async function fetchWithTimeout(resource, options = {}) {\r\n const { timeout = 6000 } = options;\r\n\r\n const controller = new AbortController();\r\n const id = setTimeout(() => controller.abort(), timeout);\r\n\r\n const response = await fetch(resource, {\r\n ...options,\r\n signal: controller.signal,\r\n });\r\n clearTimeout(id);\r\n\r\n return response;\r\n }\r\n\r\n /* Передача массива программ фед операторов */\r\n return await getJson(PROGRAMS);\r\n}\r\n\r\nexport default netRequests;\r\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import { getCookie } from \"./getCookie\";\r\n\r\nconst metrics = () => {\r\n /* Установка метрики по клику на кнопку телеграмма */\r\n (() => {\r\n const buttonsTelegram = document.querySelectorAll('.TelegramClickSZ');\r\n \r\n buttonsTelegram.forEach(button => {\r\n button.addEventListener('click', () => {\r\n ym(74433037,'reachGoal','TelegramClickSZ');\r\n })\r\n })\r\n })(); \r\n\r\n /* Установка на бота _ym_uid из cookie */\r\n (() => {\r\n const buttonsBot = document.querySelectorAll('.TelegramBotClick');\r\n let cookie = getCookie(\"_ym_uid\"),\r\n session = sessionStorage.getItem(\"ym_uid\");\r\n\r\n if (buttonsBot.length > 0 && cookie || buttonsBot.length > 0 && session) {\r\n buttonsBot.forEach((button) => {\r\n if (cookie) {\r\n button.setAttribute('href', button.getAttribute('href') + \"?_ym_uid=\" + cookie); \r\n } else if (session) {\r\n button.setAttribute('href', button.getAttribute('href') + \"?_ym_uid=\" + session); \r\n }\r\n });\r\n }\r\n })();\r\n};\r\n\r\nexport default metrics;\r\n","/* Получения cookie */\r\nexport function getCookie(cname) {\r\n let name = cname + \"=\",\r\n decodedCookie = decodeURIComponent(document.cookie),\r\n ca = decodedCookie.split(\";\");\r\n\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n\r\n while (c.charAt(0) === \" \") {\r\n c = c.substring(1);\r\n }\r\n\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n\r\n return \"\";\r\n}\r\n","export const Category = {\r\n \"12\": \"Граждане, ищущие работу (или трудоустроенные)\",\r\n \"4\": \"Женщины, находящиеся в отпуске по уходу за ребенком до 3 лет\",\r\n \"5\": \"Женщины, имеющие детей дошкольного возраста, не состоящие в трудовых отношениях\",\r\n \"2\": \"Лица в возрасте 50-ти лет и старше\",\r\n \"3\": \"Гражданин предпенсионного возраста\",\r\n \"1\": \"Безработные граждане, зарегистрированные в органах службы занятости\",\r\n \"7\": \"Граждане до 35 лет включительно, не имеющие среднего профессионального и высшего образования\",\r\n \"8\": \"Граждане до 35 лет включительно, не занятые по истечении 4 месяцев с даты выдачи им документа об образовании и о квалификации\",\r\n \"6\": \"Граждане до 35 лет включительно, не занятые по истечении 4 месяцев с даты окончания военной службы по призыву\",\r\n \"11\": \"Работники, находящиеся под риском увольнения\"\r\n};\r\n\r\nexport const EmploymentFormat = {\r\n \"2\": \"Официально трудоустроен\",\r\n \"1\": \"Не трудоустроен официально\",\r\n};\r\n\r\nexport const Education = {\r\n \"1\": \"Среднее (школьное)\",\r\n \"2\": \"Получаю среднее профессиональное\",\r\n \"3\": \"Среднее профессиональное (колледж, техникум и т.д.)\",\r\n \"4\": \"Получаю высшее образование\",\r\n \"5\": \"Высшее (оконченное)\",\r\n};","import axios from \"axios\";\r\nimport metrics from \"../metrics\";\r\nimport { modal } from \"../modal/init-modal\";\r\nimport { Category, EmploymentFormat, Education } from \"./constants\";\r\n\r\nconst send = () => {\r\n const formCitizenRequest =\r\n \"https://hermes.smile-tech.study/api/v1/lead?programId=\",\r\n FlowCRM = \"https://2025.api.tgu-dpo.ru/citizenrequest/InternalNewRequest\";\r\n\r\n const invalidCharsRegex = /[^a-zA-Z0-9.@_-]/; // Разрешённые символы\r\n\r\n $(\"[type=email]\").on(\"input\", function () {\r\n const inputValue = $(this).val();\r\n\r\n // Проверяем наличие недопустимых символов\r\n const invalidChars = inputValue.match(invalidCharsRegex);\r\n const input = $(this).get(0);\r\n const inputParent = $(this).parent().get(0);\r\n\r\n if (input.classList.contains(\"form__field--invalid\")) {\r\n input.classList.remove(\"form__field--invalid\");\r\n inputParent.querySelector(\".form__error-container\")?.remove();\r\n }\r\n const error = {};\r\n\r\n if (invalidChars) {\r\n error.message = `Недопустимый символ: \"${invalidChars[0]}\"`;\r\n input.classList.add(\"form__field--invalid\");\r\n\r\n showError(error, inputParent);\r\n }\r\n });\r\n\r\n // Подсказки для ввода почты\r\n const validDomains = [\r\n \"yandex.ru\",\r\n \"mail.ru\",\r\n \"gmail.com\",\r\n \"hotmail.com\",\r\n \"outlook.com\",\r\n ];\r\n\r\n $(\"[type=email]\").on(\"input\", function () {\r\n const emailInput = $(this);\r\n const emailValue = emailInput.val();\r\n const suggestionsDiv = emailInput.siblings(\".suggestions\");\r\n\r\n const atIndex = emailValue.indexOf(\"@\");\r\n if (atIndex !== -1) {\r\n const domainPart = emailValue.slice(atIndex + 1);\r\n const suggestions = validDomains.filter((domain) =>\r\n domain.startsWith(domainPart)\r\n );\r\n suggestionsDiv.empty(); // Очистка предыдущих подсказок\r\n\r\n if (suggestions.length > 0) {\r\n suggestions.forEach((domain) => {\r\n suggestionsDiv.append(\r\n `${emailValue.slice(\r\n 0,\r\n atIndex + 1\r\n )}${domain}`\r\n );\r\n });\r\n suggestionsDiv.show();\r\n } else {\r\n suggestionsDiv.hide();\r\n }\r\n } else {\r\n suggestionsDiv.hide();\r\n }\r\n });\r\n\r\n // Обработчик клика на предложениях\r\n $(document).on(\"click\", \".suggestion-item\", function () {\r\n const emailInput = $(this).closest(\"form\").find(\"[type=email]\");\r\n emailInput.val($(this).text()).focus();\r\n emailInput.siblings(\".suggestions\").hide();\r\n });\r\n\r\n /**\r\n * Валидаторы\r\n */\r\n var validators = {\r\n requried: function (value, error) {\r\n if (!value || value.length === 0) {\r\n error.message = \"Это поле обязательно\";\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n },\r\n phone: function (value, error) {\r\n if (\r\n /^((\\+7|7|8)\\s?\\(?(\\d{3})\\)?[\\s-]?(\\d{3})[\\s-]?(\\d{2})[\\s-]?(\\d{2}))$/.test(\r\n value\r\n )\r\n ) {\r\n return true;\r\n } else {\r\n error.message = \"Некорректный номер телефона\";\r\n return false;\r\n }\r\n },\r\n email: function (value, error) {\r\n if (/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/.test(value)) {\r\n return true;\r\n } else {\r\n error.message = \"Некорректный email\";\r\n return false;\r\n }\r\n },\r\n birthday: function (value, error) {\r\n var parts = value.split(\".\");\r\n if (\r\n parts.length != 3 ||\r\n parts[0].length != 2 ||\r\n parts[1].length != 2 ||\r\n parts[2].length != 4\r\n ) {\r\n error.message = \"Некорректная дата рождения\";\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n };\r\n\r\n /**\r\n * Показ ошибок в вёрстке\r\n * @param {Object} error Объект ошибки\r\n * @param {HTMLElement} field Элемент поля ввода\r\n */\r\n function showError(error, field) {\r\n if (error.message) {\r\n var errorContainer = document.createElement(\"div\");\r\n errorContainer.textContent = error.message;\r\n errorContainer.classList.add(\"form__error-container\");\r\n field.appendChild(errorContainer);\r\n }\r\n }\r\n\r\n /**\r\n * Удаление ошибок из формы\r\n * @param {HTMLElement} form Форма\r\n */\r\n function deleteErrors(form) {\r\n form.querySelectorAll(\".form__error-container\").forEach(function (el) {\r\n el.remove();\r\n });\r\n form.querySelectorAll(\".form__field--invalid\").forEach(function (el) {\r\n el.classList.remove(\"form__field--invalid\");\r\n });\r\n }\r\n\r\n /**\r\n * Валидация формы\r\n * @param {HTMLElement} form Форма\r\n * @returns Валидна ли форма\r\n */\r\n function validate(form) {\r\n var result = true;\r\n Array.from(form.querySelectorAll(\".form__field\")).forEach(function (\r\n formField\r\n ) {\r\n var error = {};\r\n var control = formField.querySelector(\"select, input, textarea\");\r\n if (formField.querySelector(\".form__required\")) {\r\n if (!validators.requried(control.value, error)) {\r\n showError(error, formField);\r\n control.classList.add(\"form__field--invalid\");\r\n result = false;\r\n return;\r\n }\r\n }\r\n\r\n if (control.type === \"tel\") {\r\n if (!validators.phone(control.value, error)) {\r\n showError(error, formField);\r\n control.classList.add(\"form__field--invalid\");\r\n result = false;\r\n }\r\n }\r\n\r\n if (control.type === \"email\") {\r\n if (!validators.email(control.value, error)) {\r\n showError(error, formField);\r\n control.classList.add(\"form__field--invalid\");\r\n result = false;\r\n }\r\n }\r\n\r\n if (control.id === \"birthday\") {\r\n if (!validators.birthday(control.value, error)) {\r\n showError(error, formField);\r\n control.classList.add(\"form__field--invalid\");\r\n result = false;\r\n }\r\n }\r\n });\r\n\r\n let invalidField = document.querySelector(\".form__field--invalid\");\r\n if (invalidField) {\r\n invalidField.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"center\",\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Установка масок ввода\r\n */\r\n function setMasks() {\r\n $(\"#phone\").mask(\"+7 (999) 999-99-99\", { autoclear: false });\r\n $(\"input[type='tel']\").mask(\"+7 (999) 999-99-99\", { autoclear: false });\r\n }\r\n\r\n /**\r\n * Получение cookie\r\n */\r\n function getCookie(cname) {\r\n let name = cname + \"=\";\r\n let decodedCookie = decodeURIComponent(document.cookie);\r\n let ca = decodedCookie.split(\";\");\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) === \" \") {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * Отправка формы для отписки от рассылки\r\n */\r\n function sendUnsubscribe(evt) {\r\n evt.preventDefault();\r\n\r\n const queryString = window.location.search;\r\n const urlParams = new URLSearchParams(queryString);\r\n const authenticationTicket = urlParams.get(\"direct-crm-ticket\");\r\n\r\n if (!authenticationTicket) return;\r\n\r\n const unsubscribingReason = document.querySelector(\r\n \"input[name='reason']:checked\"\r\n ).value;\r\n\r\n const data = {\r\n customer: {\r\n authenticationTicket,\r\n customFields: {\r\n unsubscribingReason,\r\n },\r\n subscriptions: [\r\n {\r\n pointOfContact: \"Email\",\r\n isSubscribed: false,\r\n },\r\n ],\r\n },\r\n };\r\n\r\n $.ajax({\r\n url: \"https://api.mindbox.ru/v3/operations/async?endpointId=edusigma.Website1&operation=Website1.UnsubscribeCustomer\",\r\n method: \"POST\",\r\n contentType: \"application/json;charset=utf-8\",\r\n data: JSON.stringify(data),\r\n success: function () {\r\n toastr.success(\"Вы отписались от рассылки\", \"Успех!\");\r\n },\r\n error: function () {\r\n toastr.error(\r\n \"Пожалуйста, проверьте ваше соединение с сетью или повторите попытку позже\",\r\n \"Произошла ошибка!\"\r\n );\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Отправка данных из формы и url\r\n * @param {Event} e Событие submit\r\n */\r\n function send(form, e) {\r\n var sendBtn = form.querySelector(\r\n 'button[type=\"submit\"], input[type=\"submit\"]'\r\n );\r\n e.preventDefault();\r\n deleteErrors(form);\r\n var data = {};\r\n if (!validate(form)) {\r\n return;\r\n }\r\n sendBtn.disabled = true;\r\n Array.from(new FormData(form)).forEach(function (formElement) {\r\n var key = formElement[0];\r\n var value = formElement[1];\r\n if (key == \"BirthDate\") {\r\n data[key] = value.split(\".\").reverse().join(\"-\");\r\n } else if (key == \"Region\") {\r\n data[key] = returnRegionName(\"#Regions option\", value);\r\n data[\"RegionId\"] = value;\r\n } else if (key == \"ParticipationSZ\") {\r\n if (value == \"true\") {\r\n data[\"ParticipationSZ\"] = true;\r\n } else {\r\n data[\"ParticipationSZ\"] = false;\r\n }\r\n } else if (key == \"category\") {\r\n data[key] = Category[value] ? Category[value] : value;\r\n } else if (key == \"EmploymentFormat\") {\r\n data[key] = EmploymentFormat[value] ? EmploymentFormat[value] : value;\r\n } else if (key == \"Education\") {\r\n data[key] = Education[value] ? Education[value] : value;\r\n } else {\r\n data[key] = value;\r\n }\r\n });\r\n\r\n // Добавление поля Категории для сайтов unemployed и dismissalrisk\r\n if (document.location.pathname == \"/unemployed\") {\r\n data[\"category\"] = \"1\";\r\n }\r\n\r\n if (document.location.pathname == \"/dismissalrisk\") {\r\n data[\"category\"] = \"11\";\r\n }\r\n\r\n let url = document.location.href,\r\n paramsStartIndex = url.indexOf(\"?\");\r\n\r\n // UTM\r\n if (paramsStartIndex > -1) {\r\n url\r\n .slice(paramsStartIndex + 1, url.length)\r\n .split(\"&\")\r\n .map(function (utmString) {\r\n return utmString.split(\"=\");\r\n })\r\n .forEach(function (utmMark) {\r\n var key = utmMark[0];\r\n key = key[0].toUpperCase() + key.slice(1, key.length);\r\n var value = utmMark[1];\r\n value =\r\n value.indexOf(\"#\") > -1\r\n ? value.slice(0, value.indexOf(\"#\"))\r\n : value;\r\n data[key] = value;\r\n });\r\n } else {\r\n if (getCookie(\"utm_tags\")) {\r\n getCookie(\"utm_tags\")\r\n .slice(paramsStartIndex + 1, getCookie(\"utm_tags\").length)\r\n .split(\"&\")\r\n .map(function (utmString) {\r\n return utmString.split(\"=\");\r\n })\r\n .forEach(function (utmMark) {\r\n var key = utmMark[0];\r\n key = key[0].toUpperCase() + key.slice(1, key.length);\r\n var value = utmMark[1];\r\n value =\r\n value.indexOf(\"#\") > -1\r\n ? value.slice(0, value.indexOf(\"#\"))\r\n : value;\r\n data[key] = value;\r\n });\r\n }\r\n }\r\n\r\n if (!data.Program) {\r\n const title = document.querySelector(\".home__title\").textContent;\r\n let newProgram = title.slice(title.indexOf(\"«\") + 1, title.indexOf(\"»\"));\r\n data[\"Program\"] = newProgram;\r\n }\r\n\r\n data[\"Landing\"] = url.split(\"?\")[0] || url;\r\n\r\n toastr.options.progressBar = true;\r\n\r\n /* Добавление данных в передачу формы */\r\n const programList = document.querySelector(\"#ProgramHome\")?.children,\r\n programHidden = form.querySelector(\".program-hidden\");\r\n\r\n if (programList && !programHidden) {\r\n [...programList].forEach((item) => {\r\n if (data[\"Program\"] == item.value) {\r\n if (item.getAttribute(\"operator\")) {\r\n data[\"Operator\"] = item.getAttribute(\"operator\");\r\n }\r\n\r\n if (item.getAttribute(\"program_id\")) {\r\n if (item.getAttribute(\"program_id\") == \"null\" || item.getAttribute(\"program_id\") == null) {\r\n data[\"program_id\"] = null;\r\n } else {\r\n data[\"program_id\"] = Number(item.getAttribute(\"program_id\"));\r\n }\r\n }\r\n\r\n if (item.getAttribute(\"linkrvr\")) {\r\n data[\"rvr_link\"] = item.getAttribute(\"linkrvr\");\r\n }\r\n }\r\n });\r\n } else {\r\n if (programHidden.getAttribute(\"operator\")) {\r\n data[\"Operator\"] = programHidden.getAttribute(\"operator\");\r\n }\r\n\r\n if (programHidden.getAttribute(\"program_id\")) {\r\n if (programHidden.getAttribute(\"program_id\") == \"null\" || programHidden.getAttribute(\"program_id\") == null) {\r\n data[\"program_id\"] = null;\r\n } else {\r\n data[\"program_id\"] = Number(programHidden.getAttribute(\"program_id\"));\r\n }\r\n }\r\n\r\n if (programHidden.getAttribute(\"linkrvr\")) {\r\n data[\"rvr_link\"] = programHidden.getAttribute(\"linkrvr\");\r\n }\r\n }\r\n\r\n let ym_uid = getCookie(\"_ym_uid\");\r\n if (ym_uid) {\r\n data[\"ClientId\"] = ym_uid;\r\n }\r\n\r\n /* Ройстат */\r\n let roistatCookie = getCookie(\"roistat_visit\");\r\n\r\n if (!!roistatCookie) {\r\n data[\"RoistatCookie\"] = roistatCookie;\r\n }\r\n\r\n axios\r\n .post(formCitizenRequest + data[\"program_id\"], data)\r\n .then(function (result) {\r\n sendBtn.disabled = false;\r\n addAdvCakeScript(\r\n result.data.requestId,\r\n result.data.programName,\r\n data.Email\r\n );\r\n\r\n /* Метрики */\r\n if (window.yaCounter74433037) {\r\n yaCounter74433037.reachGoal(\"FormSubmit\");\r\n }\r\n if (setFBQ) {\r\n setFBQ(data);\r\n }\r\n\r\n fbq(\"track\", \"Lead\");\r\n VK.Goal(\"lead\");\r\n VK.Retargeting.Event(\"lead\");\r\n var _tmr = window._tmr || (window._tmr = []);\r\n _tmr.push({ id: \"3244339\", type: \"reachGoal\", goal: \"lead\" });\r\n\r\n if (data[\"EmploymentFormat\"] === \"2\") {\r\n ym(74433037, \"reachGoal\", \"submit_form_trud\");\r\n }\r\n\r\n formSubmitFlow(data);\r\n onSuccess(data);\r\n\r\n form.reset();\r\n $('#Category').val('').trigger('change');\r\n $('#Education').val('').trigger('change');\r\n $('#EmploymentFormat').val('').trigger('change');\r\n $('#Regions').val('').trigger('change');\r\n $('#Program').val('').trigger('change');\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n sendBtn.disabled = false;\r\n toastr.error(\r\n \"Пожалуйста, проверьте ваше соединение с сетью или повторите попытку позже\",\r\n { duration: 3000, fadeDuration: 500 }\r\n );\r\n });\r\n }\r\n\r\n /* Отправка формы в АМО */\r\n function formSubmitFlow(data) {\r\n data['FirstName'] = data['name'];\r\n data['Phone'] = data['phone'];\r\n data['Email'] = data['email'];\r\n data['LastName'] = '-';\r\n data[\"category\"] = getKeyByValue(Category, data[\"category\"]);\r\n data[\"EmploymentFormat\"] = getKeyByValue(EmploymentFormat, data[\"EmploymentFormat\"]);\r\n data[\"Education\"] = getKeyByValue(Education, data[\"Education\"]);\r\n\r\n axios\r\n .post(FlowCRM, data)\r\n }\r\n\r\n /* Полчуние ключа объекта */\r\n function getKeyByValue(object, value) {\r\n return Object.keys(object).find(key => object[key] === value);\r\n } \r\n\r\n /**\r\n * Функция для определения вывода модальных окон после успешной отправки формы\r\n */\r\n function onSuccess(data = null) {\r\n let urlRvR = null;\r\n\r\n if (data !== null) {\r\n urlRvR = data.rvr_link;\r\n }\r\n\r\n if (urlRvR) {\r\n /* FLOW-12326 */\r\n // openSuccessModal(urlRvR, data[\"Operator\"]);\r\n setTimeout(() => {\r\n const newTab = window.open(urlRvR, \"_blank\");\r\n if (newTab) {\r\n newTab.focus();\r\n } else {\r\n window.location.assign(urlRvR);\r\n }\r\n ym(74433037, \"reachGoal\", \"click_RR\");\r\n ym(74433037, \"reachGoal\", \"wait_redirect\");\r\n }, 0);\r\n } else {\r\n openNoRedirectSaveBaseModal();\r\n }\r\n\r\n toastr.success(\"Анкета успешно отправлена\", \"Успех!\");\r\n\r\n const container = document.querySelector(\".form__container\");\r\n if (container) {\r\n container.classList.add(\"success-container\");\r\n container.innerHTML = `
\r\n

\r\n Ваша заявка успешно отправлена\r\n

\r\n
`;\r\n if (!data || !data.url) {\r\n document.querySelector(\".banner__btn\").click();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Функция добавления стилей\r\n */\r\n function setStyles(el, stylesObject) {\r\n if (!el) {\r\n return;\r\n }\r\n Object.keys(stylesObject).forEach((key) => {\r\n el.style[key] = stylesObject[key];\r\n });\r\n }\r\n\r\n /**\r\n * Функция с модальными окнами при успешной отправки фломы\r\n */\r\n function successModal() {\r\n let modal = document.querySelector(\"#quiz-success\"),\r\n botLink;\r\n\r\n if (!modal) {\r\n modal = document.createElement(\"div\");\r\n [\"modal\", \"quiz\"].forEach((additionalClass) => {\r\n modal.classList.add(additionalClass);\r\n });\r\n modal.id = \"quiz-success\";\r\n modal.innerHTML = '
';\r\n\r\n document.body.append(modal);\r\n }\r\n\r\n const a = document.createElement(\"a\");\r\n a.href = \"#quiz-success\";\r\n a.rel = \"modal:open\";\r\n a.style.display = \"none\";\r\n document.body.append(a);\r\n\r\n window.openSuccessModal = (url = \"\", operator) => {\r\n /* Инструкция */\r\n // const downloadInstruction = document.createElement(\"a\");\r\n // downloadInstruction.setAttribute(\"download\", \"\");\r\n // downloadInstruction.style.display = \"none\";\r\n // document.body.append(downloadInstruction);\r\n // downloadInstruction.href = INSTRUCTION;\r\n // downloadInstruction.click();\r\n\r\n /* Скачивание лид магнита */\r\n // const downloadLead = document.createElement(\"a\");\r\n // downloadLead.href = \"/files/Kak_uvelichit_dohod_v_2024_godu.pdf\";\r\n // downloadLead.setAttribute(\"download\", \"\");\r\n // downloadLead.style.display = \"none\";\r\n // document.body.append(downloadLead);\r\n // downloadLead.click();\r\n\r\n if (operator == \"TGU\") {\r\n botLink = \"https://salebot.site/ff4cf9b214c75cd7e132af3c2a07fa7a_1\";\r\n } else {\r\n botLink = \"https://t.me/SigmaszBot\";\r\n }\r\n\r\n const withLink = url.length > 0;\r\n if (withLink) {\r\n modal.classList.add(\"rvr-modal\");\r\n setStyles(modal, {\r\n position: \"relative\",\r\n paddingBottom: \"2rem\",\r\n pointerEvents: \"auto\",\r\n });\r\n modal.querySelector(\".quiz__content\").innerHTML = `\r\n

Поздравляем с успешной регистрацией!

\r\n

Далее вам необходимо подтвердить заявку на портале «Работа в России» в течение 3 дней.

\r\n

\r\n Через 15 секунд вы будете автоматически перенаправлены на портал «Работа России»\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

Остались вопросы? Напишите в Telegram-бот, наши кураторы ответят на все вопросы и помогут найти решение, расскажут как работодателю подписать договор о намерениях.

\r\n Вступить в чат программы\r\n
\r\n `;\r\n\r\n setTimerRedirect(modal.querySelector(\".timer\"));\r\n }\r\n a.click();\r\n document.querySelector(\".rvr-modal .close-modal\").style.display = \"none\";\r\n metrics();\r\n };\r\n\r\n window.openNoRedirectSaveBaseModal = () => {\r\n // const downloadLead = document.createElement(\"a\");\r\n // downloadLead.href = \"/files/Kak_uvelichit_dohod_v_2024_godu.pdf\";\r\n // downloadLead.setAttribute(\"download\", \"\");\r\n // downloadLead.style.display = \"none\";\r\n // document.body.append(downloadLead);\r\n // downloadLead.click();\r\n\r\n modal.classList.add(\"norvr-modal\", \"rvr-modal\");\r\n setStyles(modal, {\r\n position: \"relative\",\r\n paddingBottom: \"2rem\",\r\n });\r\n\r\n // modal.querySelector(\".quiz__content\").innerHTML = /*html*/ `\r\n //

Благодарим за заявку!

\r\n //

Ваша заявка попала в список приоритетных кандидатов.

\r\n //

Мы сообщим вам о дате возобновления набора. Далее вам будет необходимо подтвердить заявку на портале «Работа России».

\r\n //

Это обязательное условие для участия в проекте «Содействие занятости».

\r\n //
\r\n //
\r\n //

На указанную почту мы пришлем подробные инструкции как:

\r\n //

• пройти все шаги до зачисления на программу;

\r\n //

• вступить в чат программы;

\r\n //

• начать обучение в ближайшей группе.

\r\n //

Не забывайте проверять папку «Спам».

\r\n //
\r\n //
\r\n //
\r\n //

Остались вопросы? Напишите в Telegram-бот, наши кураторы ответят на все вопросы и помогут найти решение, расскажут как работодателю подписать договор о намерениях.

\r\n // Вступить в чат программы\r\n //
\r\n // `;\r\n modal.querySelector(\".quiz__content\").innerHTML = /*html*/ `\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

Остались вопросы? Напишите в Telegram-бот, наши кураторы ответят на все вопросы и помогут найти решение, расскажут как работодателю подписать договор о намерениях.

\r\n Вступить в чат программы\r\n
\r\n `;\r\n\r\n a.click();\r\n metrics();\r\n };\r\n }\r\n\r\n /**\r\n * Таймер редиректа\r\n */\r\n function setTimerRedirect(el) {\r\n if (!el) {\r\n console.error(\"Не передан элемент\");\r\n return;\r\n }\r\n const interval = setInterval(() => {\r\n if (el.textContent === \"0\" || Number(el.textContent) < 1) {\r\n clearInterval(interval);\r\n return;\r\n }\r\n el.textContent = Number(el.textContent) - 1;\r\n }, 1000);\r\n }\r\n\r\n /**\r\n * Начало заполнения формы\r\n */\r\n function onFormFilling(form, callback) {\r\n const controls = form.querySelectorAll(\"input, select, textarea\");\r\n let changed = false;\r\n controls.forEach((control) => {\r\n $(control).one(\"blur\", (e) => {\r\n if (!changed) {\r\n callback(e);\r\n changed = true;\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Установка формы\r\n */\r\n function setForm(selector, small = false) {\r\n var form = document.querySelector(selector);\r\n\r\n if (!form) {\r\n return;\r\n }\r\n\r\n if (selector == \"#form-unsubscribe\") {\r\n form.addEventListener(\"submit\", function (evt) {\r\n sendUnsubscribe(evt);\r\n });\r\n } else {\r\n form.addEventListener(\"submit\", function (e) {\r\n send(form, e, small);\r\n });\r\n\r\n addMaxLength(form);\r\n onFormFilling(form, () => {\r\n ym(74433037, \"reachGoal\", \" filling\");\r\n VK.Retargeting.Event(\"Initiate_Checkout\");\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Установка максимального количества символов в полях формы\r\n */\r\n function addMaxLength(form) {\r\n form\r\n .querySelectorAll('input[type=\"text\"], textarea')\r\n .forEach((control) => control.setAttribute(\"maxlength\", \"250\"));\r\n }\r\n\r\n /**\r\n * Блокировка кнопки отправки формы\r\n */\r\n function setFormCheckbox(arr, btn) {\r\n try {\r\n arr.forEach((item) => {\r\n item.addEventListener(\"change\", function () {\r\n if (!arr.find((checkbox) => !checkbox.checked)) {\r\n btn.removeAttribute(\"disabled\");\r\n } else {\r\n btn.setAttribute(\"disabled\", \"disabled\");\r\n }\r\n });\r\n });\r\n } catch (e) {}\r\n }\r\n\r\n /**\r\n * Событие для fbq\r\n */\r\n function setFBQ(data = null) {\r\n if (data && data.leadId) {\r\n fbq(\"track\", \"Lead\", {}, { eventID: data.leadId });\r\n }\r\n }\r\n\r\n /**\r\n * Отслеживание нажатия в форме на любое поле\r\n */\r\n function clickOnForm() {\r\n const elementsForm = document.querySelectorAll(\r\n \".form__field input, .form__field select, .form__field textarea, .form__field .select2\"\r\n );\r\n\r\n let result = true;\r\n\r\n for (let element of elementsForm) {\r\n element.addEventListener(\"click\", () => {\r\n if (result) {\r\n ym(74433037, \"reachGoal\", \"FormStart\");\r\n result = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /* Возвращает название региона для отправки формы */\r\n function returnRegionName(id, region) {\r\n let regionList = document.querySelectorAll(id);\r\n\r\n for (let i = 0; i < regionList.length; i++) {\r\n if (region == regionList[i].value) {\r\n return regionList[i].textContent;\r\n }\r\n }\r\n }\r\n\r\n // Инициализация\r\n $(function () {\r\n setMasks();\r\n setForm(\"#form-app\");\r\n setForm(\"#form-app-modal\");\r\n setForm(\"#form-unsubscribe\");\r\n setFormCheckbox(\r\n [\r\n document.querySelector(\"#personal-data\"),\r\n document.querySelector(\"#personal-data--pd\"),\r\n ],\r\n document.querySelector(\".form__btn\")\r\n );\r\n setFormCheckbox(\r\n [\r\n document.querySelector(\"#personal-data-modal\"),\r\n document.querySelector(\"#personal-data-modal--pd\"),\r\n ],\r\n document.querySelector(\".submit-modal\")\r\n );\r\n successModal();\r\n\r\n setTimeout(() => {\r\n clickOnForm();\r\n }, 2000);\r\n });\r\n\r\n /* Добавление скрипта AdvCake на сайт */\r\n function addAdvCakeScript(id, program, email) {\r\n window.advcake_data = window.advcake_data || [];\r\n window.advcake_data.push({\r\n pageType: 6,\r\n user: {\r\n email: `md5(${email})`,\r\n type: \"\",\r\n },\r\n\r\n leadInfo: {\r\n id: `${id}`,\r\n name: `${program}`,\r\n totalPrice: 0,\r\n coupon: \"\",\r\n marketing_cat: 1,\r\n },\r\n });\r\n }\r\n};\r\n\r\nexport default send;\r\n","import catalog from \"../catalog\";\r\nimport initDropDownsPrograms from \"./dropDownPrograms\";\r\nimport initDatepicker from \"./init-datepicker\";\r\nimport netRequests from \"./netRequests\";\r\nimport selects from \"./selects\";\r\nimport send from \"./send\";\r\n\r\nconst form = () => { \r\n /* Получение списка доступных программ для редиректа и передача в инициализацию поля \"Программа обучения\" */\r\n async function initNetRequests() {\r\n const allPrograms = await netRequests();\r\n // Возвращаем только онлайн программы\r\n const ONLINE_PROGRAMS = allPrograms.programs.filter((program) => program.educational_form == \"online\");\r\n \r\n initRegions(allPrograms.regions);\r\n catalog(ONLINE_PROGRAMS);\r\n initDropDownsPrograms(ONLINE_PROGRAMS);\r\n send();\r\n // shortForm(allPrograms);\r\n }\r\n\r\n initDatepicker();\r\n selects();\r\n initNetRequests();\r\n\r\n function initRegions(data) { \r\n try {\r\n function addRegionsSelect(id) {\r\n let regionsSelect = $(id);\r\n \r\n data.forEach(function (el) {\r\n let selected = false,\r\n option = new Option(el.name, el.id, false, selected);\r\n \r\n option.accessKey = el.id;\r\n regionsSelect.append(option);\r\n });\r\n \r\n regionsSelect.val(null);\r\n regionsSelect.select2({\r\n placeholder: \"Ваш регион\",\r\n });\r\n }\r\n \r\n addRegionsSelect(\"#Regions\");\r\n addRegionsSelect(\"#shortFormRegions\");\r\n addRegionsSelect(\"#CatalogRegions\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n } \r\n};\r\n\r\nexport default form;\r\n","const initDatepicker = () => {\r\n const datepicker = document.getElementById(\"birthday\");\r\n if (datepicker) {\r\n IMask(datepicker, {\r\n mask: Date,\r\n min: new Date(1900, 0, 1),\r\n max: new Date(2100, 0, 1),\r\n });\r\n $(\"#birthday\").datepicker();\r\n }\r\n\r\n const datepickerModal = document.getElementById(\"birthday-form-modal\");\r\n if (datepickerModal) {\r\n IMask(datepickerModal, {\r\n mask: Date,\r\n min: new Date(1900, 0, 1),\r\n max: new Date(2100, 0, 1),\r\n });\r\n $(\"#birthday-form-modal\").datepicker();\r\n }\r\n};\r\n\r\nexport default initDatepicker;\r\n","const selects = () => {\r\n const selectors = [\r\n {\r\n id: \"#English\",\r\n placeholder: \"Уровень владения английским языком\",\r\n },\r\n {\r\n id: \"#unemployed\",\r\n placeholder: \"Срок регистрации безработным\",\r\n },\r\n {\r\n id: \"#education-level\",\r\n placeholder: \"Текущий уровень вашего образования\",\r\n },\r\n {\r\n id: \"#category\",\r\n placeholder: \"Категория участника\",\r\n },\r\n {\r\n id: \"#category-modal\",\r\n placeholder: \"Категория участника\",\r\n },\r\n {\r\n id: \"#EmploymentFormat\",\r\n placeholder: \"Форма занятости\",\r\n },\r\n {\r\n id: \"#futureunemployed\",\r\n placeholder: \"Регистрация в качестве безработного\",\r\n },\r\n {\r\n id: \"#futuredismissal\",\r\n placeholder: \"Наличие подтверждающих категорию документов\",\r\n },\r\n {\r\n id: \"#Regions\",\r\n placeholder: \"Ваш регион\",\r\n },\r\n {\r\n id: \"#ProgramHome\",\r\n placeholder: \"Программа обучения\",\r\n },\r\n {\r\n id: \"#ProgramHome-modal\",\r\n placeholder: \"Программа обучения\",\r\n },\r\n {\r\n id: \"#Direction\",\r\n placeholder: \"Направление\",\r\n },\r\n {\r\n id: \"#Direction-modal\",\r\n placeholder: \"Направление\",\r\n },\r\n {\r\n id: \"#education-level-modal\",\r\n placeholder: \"Уровень образования\",\r\n },\r\n {\r\n id: \"#shortFormProgram\",\r\n placeholder: \"Программа обучения\",\r\n },\r\n {\r\n id: \"#shortCategory\",\r\n placeholder: \"Категория участника\",\r\n },\r\n {\r\n id: \"#ParticipationSZ\",\r\n placeholder: \"Участие в проекте «Содействие занятости»\",\r\n }\r\n ];\r\n\r\n selectors.forEach((item) => {\r\n let selector = $(item.id),\r\n message = \"\",\r\n placeholder;\r\n\r\n /* вывод сообщения в зависимости от поля */\r\n if (item.id == \"#ProgramHome\") {\r\n message = \"Нет доступных программ\";\r\n } else {\r\n message = \"Ничего не найдено\";\r\n }\r\n /* */\r\n\r\n /* замена placeholder по размеру экрана */\r\n if (item.id == \"#education-level\") {\r\n if (window.innerWidth <= 750) {\r\n placeholder = \"Образование\";\r\n } else {\r\n placeholder = \"Текущий уровень вашего образования\";\r\n }\r\n } else {\r\n placeholder = item.placeholder;\r\n }\r\n /* */\r\n\r\n selector.select2({\r\n placeholder: placeholder,\r\n language: {\r\n noResults: function () {\r\n return message;\r\n },\r\n },\r\n escapeMarkup: function (markup) {\r\n return markup;\r\n },\r\n });\r\n\r\n selector.val(null).trigger(\"change\");\r\n });\r\n};\r\n\r\nexport default selects;\r\n","export class Modal {\r\n constructor() {\r\n this._modal = document.querySelector('.custom-modal');\r\n this._modal_inset = null;\r\n this._modal_content = null;\r\n this._documentClickHandler = this._documentClickHandler.bind(this);\r\n this.body = document.body;\r\n this._init();\r\n }\r\n\r\n _init() {\r\n this.createModal();\r\n document.addEventListener('click', this._documentClickHandler);\r\n }\r\n\r\n _documentClickHandler(evt) {\r\n const target = evt.target;\r\n\r\n if (target.closest('[data-modal-close]') && target.closest('[data-modal-open]')) {\r\n this.closeModal();\r\n setTimeout(() => {\r\n this._modal_inset.innerHTML = '';\r\n this.openModal(target);\r\n }, 50);\r\n\r\n return;\r\n }\r\n\r\n if (target.closest('[data-modal-close]')) {\r\n this.closeModal();\r\n\r\n return;\r\n } \r\n\r\n if (target.closest('[data-modal-open]')) {\r\n evt.preventDefault();\r\n setTimeout(() => {\r\n this._modal_inset.innerHTML = '';\r\n this.openModal(target);\r\n }, 50);\r\n\r\n return;\r\n }\r\n }\r\n\r\n openModal(element) {\r\n if (document.getElementById(element)) {\r\n this._modal_content = document.getElementById(element);\r\n } else {\r\n const attr = element.closest('[data-modal-open]').getAttribute(\"data-modal-id\");\r\n this._modal_content = document.getElementById(attr);\r\n }\r\n \r\n this._modal_inset.append(this._modal_content);\r\n this.modal.classList.add('active');\r\n this.body.classList.add('scroll-lock');\r\n }\r\n\r\n closeModal() {\r\n this.modal.classList.remove('active');\r\n this.body.append(this._modal_content); \r\n this.body.classList.remove('scroll-lock');\r\n }\r\n\r\n createModal() {\r\n if (!this.modal) {\r\n this.modal = document.createElement('div');\r\n this.modal.classList.add('custom-modal');\r\n document.body.append(this.modal);\r\n\r\n this.modal.innerHTML = `\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n `\r\n\r\n this._modal_inset = document.querySelector('.custom-modal__inset');\r\n }\r\n }\r\n}","import { Modal } from './modal';\r\nlet modal;\r\n\r\nconst initModal = () => {\r\n modal = new Modal();\r\n};\r\n\r\nexport {initModal, modal};","import initCounter from './init-counter';\r\nimport setDate from './set-date';\r\nimport setTimer from './set-timer';\r\n\r\nexport class ChangeDate {\r\n constructor(options) {\r\n this.start = new Date(options.start);\r\n this.end = new Date(options.end);\r\n this.period = options.period;\r\n this.timer = options.timer;\r\n this.selectorCounter = options.selectorCounter;\r\n this.data = options.data;\r\n this.count = Math.floor((Date.now() - this.start) / 864e5);\r\n this._init();\r\n }\r\n\r\n _init() {\r\n if (this.end == 'Invalid Date') {\r\n let i = this.count;\r\n\r\n while (i >= this.period) {\r\n i -= this.period;\r\n }\r\n\r\n this.start = new Date(new Date().getTime() - 24 * 60 * 60 * 1000 * i);\r\n this.end = new Date(\r\n this.start.getTime() + 24 * 60 * 60 * 1000 * this.period\r\n );\r\n }\r\n\r\n if (this.timer == true) {\r\n setDate(this.end);\r\n setTimer(this.end);\r\n }\r\n\r\n initCounter(this.start, this.end, this.data, this.selectorCounter);\r\n }\r\n}\r\n","const setDate = (date) => {\r\n const fields = document.querySelectorAll(\"[data-date]\"); \r\n const arrMonths = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];\r\n\r\n fields.forEach(field => {\r\n field.innerHTML = `${date.getDate()} ${arrMonths[date.getMonth()]}`\r\n })\r\n}\r\n\r\nexport default setDate;","const setTimer = (date) => {\r\n const timerElement = document.querySelector('[data-timer]');\r\n if (!timerElement) return;\r\n\r\n (function timer() {\r\n // При изменении конечной даты в баннере вставляем сюда дату в формате (год, месяц[от 0 до 11], число, часы[от 0 до 23 и вычитаем разницу для Москвы], минуты, секунды)\r\n const utcDate = new Date(\r\n Date.UTC(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate() - 1,\r\n 23 - 3,\r\n 59,\r\n 0\r\n )\r\n );\r\n const countDownDate = new Date(utcDate).getTime();\r\n const timeInterval = setInterval(timer, 60000);\r\n const now = new Date().getTime();\r\n const distance = countDownDate - now;\r\n const days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n const hours = Math.floor(\r\n (distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)\r\n );\r\n const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n\r\n const getMinutesWord = (minutes) => {\r\n let result = 'минут';\r\n if (minutes > 10 && minutes < 20) {\r\n return result;\r\n }\r\n const lastDigit = Number(String(minutes).slice(-1));\r\n if (lastDigit === 0 || lastDigit >= 5) {\r\n return result;\r\n }\r\n if (lastDigit === 1) {\r\n return result + 'а';\r\n }\r\n return result + 'ы';\r\n };\r\n\r\n const getHoursWord = (hours) => {\r\n let result = 'часов';\r\n if (hours > 10 && hours < 20) {\r\n return result;\r\n }\r\n const lastDigit = Number(String(hours).slice(-1));\r\n if (lastDigit === 0 || lastDigit >= 5) {\r\n return result;\r\n }\r\n if (lastDigit === 1) {\r\n return 'час';\r\n }\r\n return 'часа';\r\n };\r\n\r\n const getDaysWord = (days) => {\r\n let result = 'дней';\r\n if (days > 10 && days < 20) {\r\n return result;\r\n }\r\n const lastDigit = Number(String(days).slice(-1));\r\n if (lastDigit === 0 || lastDigit >= 5) {\r\n return result;\r\n }\r\n if (lastDigit === 1) {\r\n return 'день';\r\n }\r\n return 'дня';\r\n };\r\n\r\n timerElement.innerHTML = `${days} ${getDaysWord(\r\n days\r\n )} ${hours} ${getHoursWord(\r\n hours\r\n )} ${minutes} ${getMinutesWord(minutes)}`;\r\n\r\n if (distance < 0) {\r\n clearInterval(timeInterval);\r\n timerElement.innerHTML = `0 дней 0 часов 0 минут`;\r\n }\r\n })();\r\n};\r\n\r\nexport default setTimer;\r\n","const initCounter = (start, finish, data, selector) => {\r\n const counters = Array.from(document.querySelectorAll(selector)),\r\n countersPrograms = document.querySelectorAll(\"[data-counter-program]\"); \r\n \r\n function decreaseQuantity(start, finish, total, final, rate) {\r\n let startDate = start, // Начальное дата\r\n finishDate = finish, // Конечная дата\r\n totalMembers = total, // Начальное число мест\r\n finalNunber = final, // Конечное число мест\r\n ratio = rate, // На какое количество уменьшаем\r\n shift,\r\n stepDay,\r\n number,\r\n formatNumber;\r\n \r\n // Возвращает пробелы в числах\r\n function format(value) {\r\n return new Intl.NumberFormat().format(value);\r\n }\r\n \r\n // Склонение окончания в тексте\r\n function declination(number, txt) {\r\n var cases = [2, 0, 1, 1, 1, 2];\r\n return txt[\r\n number % 100 > 4 && number % 100 < 20\r\n ? 2\r\n : cases[number % 10 < 5 ? number % 10 : 5]\r\n ];\r\n }\r\n \r\n // Количество дней прошедших с даты старта счетчика\r\n stepDay = Math.floor((Date.now() - startDate) / 864e5);\r\n \r\n if (stepDay <= 0) {\r\n shift = 0;\r\n } else {\r\n shift = ratio * stepDay;\r\n }\r\n \r\n if (stepDay >= (finishDate - startDate) / 864e5) {\r\n number = finalNunber;\r\n } else {\r\n number = totalMembers - shift;\r\n }\r\n \r\n formatNumber =\r\n format(number) + \" \" + declination(number, [\"место\", \"места\", \"мест\"]);\r\n \r\n return formatNumber;\r\n }\r\n \r\n counters.length &&\r\n counters.forEach(\r\n (counter) =>\r\n (counter.innerHTML = decreaseQuantity(\r\n start,\r\n finish,\r\n data.main.total,\r\n data.main.final,\r\n data.main.rate\r\n ))\r\n );\r\n \r\n countersPrograms.length &&\r\n countersPrograms.forEach(\r\n (counter) =>\r\n (counter.innerHTML = decreaseQuantity(\r\n start,\r\n finish,\r\n data.program.total,\r\n data.program.final,\r\n data.program.rate\r\n ))\r\n );\r\n };\r\n \r\n export default initCounter;\r\n ","'use strict';\r\n\r\n/* Стили */\r\nimport '../css/site.scss';\r\n\r\n/* Библиотеки */\r\nimport { initAccordion } from './modules/accordion/init-accordion.js';\r\n\r\n/* Скрипты */\r\nimport sliders from './modules/sliders.js/sliders';\r\nimport cases from './modules/cases';\r\nimport start_video from './modules/start-video';\r\nimport reviews from './modules/reviews';\r\nimport faq from './modules/faq.js';\r\nimport collapse from './modules/collapse.js';\r\nimport initBanner from './modules/init-banner.js';\r\nimport site from './modules/site.js';\r\nimport form from './modules/form/form.js';\r\nimport metrics from './modules/metrics.js';\r\nimport UtmTags from './modules/UtmTags.js';\r\nimport initFilters from './modules/init-filters.js';\r\nimport initTooltips from './modules/init-tooltips.js';\r\nimport {initModal} from './modules/modal/init-modal.js';\r\nimport renderStepsModal from './modules/modal/render-steps-modal.js';\r\nimport initTabs from './modules/init-tabs.js';\r\nimport initShowMoreButton from './modules/init-show-more-button.js';\r\nimport initChangeDate from './modules/date/index.js';\r\nimport geography from './modules/geography.js';\r\nimport initLeavePageModal from './modules/modal/init-leave-page-modal.js';\r\nimport initWidjet from './modules/init-widget.js';\r\nimport initCompleteModal from './modules/modal/init-complete-modal.js';\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n initChangeDate();\r\n UtmTags();\r\n metrics();\r\n initBanner();\r\n collapse();\r\n initAccordion();\r\n //initFilters();\r\n initTooltips();\r\n initCompleteModal();\r\n site();\r\n start_video();\r\n reviews();\r\n faq();\r\n sliders();\r\n cases();\r\n form();\r\n initModal();\r\n renderStepsModal();\r\n initLeavePageModal();\r\n initTabs();\r\n initShowMoreButton('.products', 4);\r\n geography();\r\n initWidjet();\r\n});\r\n","const initTabs = () => {\r\n const tabs = document.querySelectorAll(\"[data-tabs]\");\r\n if (!tabs.length) return;\r\n tabs.forEach(tab => {\r\n const buttons = tab.querySelectorAll(\"[data-tab-button]\");\r\n const cards = tab.querySelectorAll(\"[data-tab-card]\");\r\n \r\n buttons.forEach((button, index) => {\r\n button.addEventListener(\"click\", () => {\r\n const activeButton = tab.querySelector(\"[data-tab-button].is-active\");\r\n const activeCard = tab.querySelector(\"[data-tab-card].is-active\");\r\n activeButton?.classList.remove(\"is-active\");\r\n activeCard?.classList.remove(\"is-active\");\r\n button.classList.add(\"is-active\");\r\n cards[index].classList.add(\"is-active\");\r\n });\r\n });\r\n })\r\n};\r\n\r\nexport default initTabs;\r\n","const renderStepsModal = () => {\r\n const pageBody = document.querySelector('body');\r\n const stepsModal = document.querySelector('.steps__modal');\r\n\r\n const onCardClick = (evt) => {\r\n if (evt.target.closest('[data-modal-id=\"steps-modal\"]')) {\r\n const targetCard = evt.target.closest('.steps__item');\r\n const modalContent = targetCard.querySelector('.steps__item-hidden').cloneNode(true);\r\n stepsModal.innerHTML = modalContent.innerHTML;\r\n }\r\n };\r\n\r\n stepsModal && pageBody.addEventListener('click', onCardClick);\r\n};\r\n\r\nexport default renderStepsModal;\r\n","import getPageName from \"./getPageName\";\r\nimport lazyLoadBlock from \"./lazyloadBlock\";\r\nimport initReviewsSlider from \"./sliders.js/init-reviews-slider\";\r\n\r\nconst reviews = () => {\r\n const reviewsWrap = document.querySelector(\".reviews__cards-wrapper\");\r\n\r\n if (!reviewsWrap) {\r\n return;\r\n }\r\n\r\n function parseReviews() {\r\n $.ajax({\r\n type: \"GET\",\r\n url: \"/files/reviews.json\",\r\n }).then(function (regions) {\r\n regions.forEach(function (el) {\r\n if (el.url == getPageName()) {\r\n createReviewsCard(el.data);\r\n }\r\n });\r\n });\r\n }\r\n\r\n function createReviewsCard(data) {\r\n let content = '';\r\n\r\n data.forEach((item, i) => {\r\n if (item.video) {\r\n content += `\r\n
\r\n
\r\n \r\n
\r\n \r\n

Смотреть отзыв

\r\n
\r\n
\r\n

${item.name}

\r\n

${item.profession}

\r\n
\r\n
\r\n
\r\n `;\r\n } else {\r\n content += `\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n

${item.name}

\r\n
\r\n

${item.text}

\r\n
\r\n
\r\n

${item.rating} / 5

\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n }\r\n });\r\n\r\n reviewsWrap.innerHTML = content;\r\n\r\n setTimeout(() => { \r\n initReviewsSlider();\r\n }, 50);\r\n }\r\n \r\n lazyLoadBlock(parseReviews);\r\n};\r\n\r\nexport default reviews;\r\n","const initTooltips = () => {\r\n const buttons = document.querySelectorAll(\".form-tooltip__btn\");\r\n if (!buttons.length) return;\r\n\r\n buttons.forEach((button) => {\r\n button.addEventListener(\"click\", () => {\r\n const openTooltip = document.querySelector(\".form-tooltip__text.visible\");\r\n if (openTooltip) {\r\n openTooltip.classList.remove(\"visible\");\r\n }\r\n button.parentElement.querySelector(\".form-tooltip__text\").classList.add(\"visible\");\r\n document.addEventListener(\"click\", (evt) => {\r\n if (!evt.target.closest(\".form-tooltip__btn\")) {\r\n button.parentElement.querySelector(\".form-tooltip__text\").classList.remove(\"visible\");\r\n }\r\n })\r\n })\r\n })\r\n};\r\n\r\nexport default initTooltips;\r\n","const initBanner = () => {\r\n const banner = document.querySelector(\".banner--tgu\"),\r\n form = document.querySelector(\".form--tgu\"),\r\n home = document.querySelector(\".home\");\r\n\r\n if (!banner || !form || !home) return;\r\n\r\n const trackScroll = () => {\r\n const scrolled = window.pageYOffset;\r\n if (scrolled < home.offsetTop + home.clientHeight) {\r\n banner.classList.remove('active');\r\n } else if (\r\n scrolled + document.documentElement.clientHeight >\r\n form.offsetTop\r\n ) {\r\n banner.classList.remove('active');\r\n } else if (scrolled < form.offsetTop) {\r\n banner.classList.add('active');\r\n }\r\n };\r\n window.addEventListener(\"scroll\", trackScroll);\r\n };\r\n \r\n export default initBanner;\r\n ","import { ChangeDate } from './ChangeDate';\r\n\r\nconst initChangeDate = () => {\r\n new ChangeDate({\r\n timer: true,\r\n start: \"2024-01-26\",\r\n end: '',\r\n period: 14,\r\n selectorCounter: \"[data-counter]\",\r\n data: {\r\n main: {\r\n total: 934,\r\n final: 45,\r\n rate: 27,\r\n },\r\n program: {\r\n total: 94,\r\n final: 12,\r\n rate: 6,\r\n },\r\n },\r\n });\r\n};\r\n\r\nexport default initChangeDate;\r\n","const UtmTags = () => {\r\n const url = document.location.href,\r\n paramsStartIndex = url.indexOf(\"?\"),\r\n metaTags = url.slice(paramsStartIndex + 1, url.length);\r\n \r\n /* Установка cookie */\r\n function setCookie(name, value, options = {}) {\r\n options = {\r\n path: \"/\",\r\n // при необходимости добавьте другие значения по умолчанию\r\n ...options,\r\n };\r\n\r\n if (options.expires instanceof Date) {\r\n options.expires = options.expires.toUTCString();\r\n }\r\n\r\n let updatedCookie =\r\n encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\r\n\r\n for (let optionKey in options) {\r\n updatedCookie += \"; \" + optionKey;\r\n let optionValue = options[optionKey];\r\n if (optionValue !== true) {\r\n updatedCookie += \"=\" + optionValue;\r\n }\r\n }\r\n\r\n document.cookie = updatedCookie;\r\n }\r\n\r\n if (paramsStartIndex > -1) {\r\n // Добавление UTM меток в cookie\r\n if (metaTags.includes(\"category\") || metaTags.includes(\"level\") || metaTags.includes(\"format\")) {\r\n console.log(\"repeatCookie\");\r\n return;\r\n }\r\n\r\n setCookie(\"utm_tags\", metaTags, { \"max-age\": 86400 });\r\n\r\n console.log(\"setCookie\");\r\n }\r\n};\r\n\r\nexport default UtmTags;\r\n","const collapse = () => {\r\n let collapseParent = document.querySelectorAll(\r\n \".course-program .collapse--content\"\r\n );\r\n let collapseButton = document.querySelectorAll(\r\n \".course-program .collapse-btn\"\r\n );\r\n let collapseHeader = document.querySelectorAll(\r\n \".course-program-container__title\"\r\n );\r\n\r\n collapseHeader.forEach(function (el) {\r\n const button = el.querySelector(\".collapse-btn\");\r\n if (el.parentElement.querySelector(\".collapse--content\") && button) {\r\n el.style.cursor = \"pointer\";\r\n el.addEventListener(\"click\", function () {\r\n button.click();\r\n });\r\n }\r\n });\r\n collapseButton.forEach(function (b, i) {\r\n let height = getContentHeight(collapseParent[i]);\r\n let isCollapsed = false;\r\n b.parentElement.nextElementSibling.style.height = isCollapsed\r\n ? height + \"px\"\r\n : 0;\r\n window.addEventListener(\"resize\", function () {\r\n b.parentElement.nextElementSibling.style.height = isCollapsed\r\n ? getContentHeight(collapseParent[i]) + \"px\"\r\n : 0;\r\n });\r\n b.onclick = function (e) {\r\n height = getContentHeight(collapseParent[i]);\r\n e.stopPropagation();\r\n isCollapsed = !isCollapsed;\r\n e.target.parentElement.nextElementSibling.classList.toggle(\"collapsed\");\r\n e.target.parentElement.nextElementSibling.style.height = isCollapsed\r\n ? getContentHeight(collapseParent[i]) + \"px\"\r\n : 0;\r\n e.target.classList.toggle(\"rotate\");\r\n };\r\n });\r\n\r\n /* Определение высоты элемента */\r\n function getContentHeight(el) {\r\n var sum = 0;\r\n el.childNodes.forEach(function (child) {\r\n sum += child.scrollHeight || 0;\r\n });\r\n return sum;\r\n }\r\n};\r\n\r\nexport default collapse;\r\n","import {Accordion} from './accordion';\r\nlet accordion;\r\n\r\nconst initAccordion = () => {\r\n accordion = new Accordion();\r\n};\r\n\r\nexport {initAccordion, accordion};\r\n","import {modal} from './init-modal';\r\n\r\nconst initCompleteModal = () => {\r\n if (document.getElementById('CompleteModal')) {\r\n setTimeout(() => { \r\n modal.openModal('CompleteModal');\r\n }, 5000);\r\n }\r\n};\r\n\r\nexport default initCompleteModal;\r\n","const start_video = () => {\r\n setTimeout(() => {\r\n $(\"body\").on(\"mouseover\", \"video\", function () {\r\n this.play();\r\n });\r\n $(\"body\").on(\"mouseleave\", \"video\", function () {\r\n this.pause();\r\n });\r\n }, 100);\r\n};\r\n\r\nexport default start_video;\r\n","const faq = () => {\r\n (function () {\r\n try {\r\n const cards = document.querySelectorAll('.faq__card'),\r\n blocks = document.querySelectorAll('.faq__list');\r\n\r\n let activeCard = document.querySelector('.faq__card.active'),\r\n activeBlock = document.querySelector('.faq__list.active');\r\n\r\n cards.forEach((card, i) => {\r\n card.addEventListener('click', () => {\r\n activeCard.classList.remove('active');\r\n activeBlock.classList.remove('active');\r\n card.classList.add('active');\r\n blocks[i].classList.add('active');\r\n activeCard = card;\r\n activeBlock = blocks[i];\r\n })\r\n })\r\n } catch(e) {\r\n console.log(e);\r\n }\r\n }());\r\n}\r\n\r\nexport default faq;","import {modal} from './init-modal';\r\n\r\nconst initLeavePageModal = () => {\r\n const leavePageModal = document.getElementById('leave-page-modal'); \r\n\r\n if (leavePageModal) { \r\n const buttonToForm = leavePageModal.querySelector('.appearing-modal__button'),\r\n forms = document.querySelectorAll('form');\r\n let statusModal = false;\r\n\r\n /* Отключение модального окна при заполнении формы */\r\n if (forms.length > 0) {\r\n forms.forEach(form => {\r\n form.addEventListener('click', () => {\r\n statusModal = true;\r\n removeEventOpenModal();\r\n })\r\n })\r\n }\r\n\r\n /* Вывод модального окна при перемещении курсора за пределы сайта */\r\n const documentLeaveHandle = (evt) => {\r\n\r\n if (!evt.toElement && !evt.relatedTarget) {\r\n openModalWindow();\r\n }\r\n };\r\n\r\n /* Вывод моального окна при неактивности более 10 сек */\r\n let timeout;\r\n const eventHandlerHiddenElement = () => {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n openModalWindow(); \r\n }, 10000);\r\n }\r\n\r\n /* Открытие модального окна */\r\n function openModalWindow() {\r\n if (statusModal == true) return;\r\n const activeModal = document.querySelector('.custom-modal.active');\r\n\r\n if (activeModal) return;\r\n\r\n statusModal = true;\r\n modal.openModal(leavePageModal);\r\n removeEventOpenModal();\r\n\r\n buttonToForm.addEventListener('click', () => {\r\n modal.closeModal();\r\n \r\n if (!document.querySelector('#form')) {\r\n window.location.href = '/#form';\r\n } else {\r\n document.querySelector('#form').scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start'\r\n });\r\n };\r\n });\r\n }\r\n\r\n /* Удаления событий открытия модального окна */\r\n function removeEventOpenModal() {\r\n document.removeEventListener(\"mouseout\", documentLeaveHandle);\r\n document.removeEventListener(\"mousemove\", eventHandlerHiddenElement);\r\n document.removeEventListener(\"scroll\", eventHandlerHiddenElement);\r\n leavePageModal.removeAttribute('data-modal-open');\r\n }\r\n\r\n /* */\r\n setTimeout(() => {\r\n document.addEventListener(\"mouseout\", documentLeaveHandle);\r\n document.addEventListener(\"mousemove\", eventHandlerHiddenElement);\r\n document.addEventListener(\"scroll\", eventHandlerHiddenElement);\r\n }, 120000);\r\n };\r\n};\r\n\r\nexport default initLeavePageModal;\r\n","// Функция для инициализации кнопки Показать ещё.\r\n// При вызове аргументами передаются селектор блока, в котором нужен данный функционал, а также количество элементов, видимых изначально. Например, initShowMoreButton('.program', 4);\r\n// При вёрстке кнопке добавить класс .show-button для стилизации, если нужны специфические стили для кнопки, то стилизовать каскадом от родителя. Например, \r\n// .program {\r\n// .show-button {\r\n// ... \r\n// } \r\n// }\r\n// Также кнопке ОБЯЗАТЕЛЬНО добавить атрибут data-show-button\r\n// Также ОБЯЗАТЕЛЬНО добавить атрибут data-collapse-item всем элементам из раскрывающегося списка, даже если они видимы изначально\r\n\r\nconst initShowMoreButton = (container, visibleItems) => {\r\n const itemsContainer = document.querySelector(container);\r\n if (!itemsContainer) return;\r\n const showMoreButton = itemsContainer.querySelector(\"[data-show-button]\");\r\n let items = Array.from(itemsContainer.querySelectorAll(\"[data-collapse-item]\")).filter((item) => item.style.display !== \"none\"),\r\n hiddenItems = items.slice(visibleItems);\r\n\r\n // Обнуление перед переинициализацией\r\n const resetParameters = () => {\r\n items.forEach(item => {\r\n item.style.display = null;\r\n item.style.opacity = 1;\r\n });\r\n \r\n if (showMoreButton) {\r\n showMoreButton.classList.remove(\"hidden\");\r\n showMoreButton.textContent = \"Показать еще\";\r\n }\r\n \r\n if (items.length <= visibleItems) {\r\n showMoreButton?.classList.add(\"hidden\");\r\n return;\r\n };\r\n \r\n hiddenItems.forEach((item) => {\r\n item.style.display = 'none';\r\n item.style.opacity = 0;\r\n });\r\n }\r\n\r\n resetParameters();\r\n\r\n const onShowMoreButtonClick = () => {\r\n hiddenItems.forEach((item) => {\r\n item.style.display = null;\r\n setTimeout(() => {\r\n item.style.opacity = 1;\r\n });\r\n });\r\n showMoreButton.textContent = \"Свернуть\";\r\n showMoreButton.removeEventListener(\"click\", onShowMoreButtonClick);\r\n showMoreButton.addEventListener(\"click\", onCollapseButtonClick);\r\n }\r\n\r\n const onCollapseButtonClick = () => {\r\n hiddenItems.forEach((item) => {\r\n setTimeout(() => {\r\n item.style.display = 'none';\r\n }, 250);\r\n item.style.opacity = 0;\r\n });\r\n showMoreButton.textContent = \"Показать еще\";\r\n showMoreButton.removeEventListener(\"click\", onCollapseButtonClick);\r\n showMoreButton.addEventListener(\"click\", onShowMoreButtonClick);\r\n }\r\n\r\n showMoreButton?.addEventListener(\"click\", onShowMoreButtonClick);\r\n\r\n document.addEventListener('click', (evt) => {\r\n if (evt.target.closest('[data-filter]')) {\r\n showMoreButton?.removeEventListener(\"click\", onCollapseButtonClick);\r\n items = Array.from(itemsContainer.querySelectorAll(\"[data-collapse-item]\")).filter((item) => item.style.display !== \"none\");\r\n hiddenItems = items.slice(visibleItems);\r\n resetParameters();\r\n showMoreButton?.addEventListener(\"click\", onShowMoreButtonClick);\r\n } \r\n })\r\n};\r\n\r\nexport default initShowMoreButton;\r\n","const geography = () => {\r\n gsap.registerPlugin(ScrollTrigger);\r\n\r\n /* Инициализация анимации */\r\n initGsapGeography('.geography__list--top', false);\r\n initGsapGeography('.geography__list--mid', true);\r\n initGsapGeography('.geography__list--bottom', false);\r\n \r\n\r\n /* Настройка параметров для анимации */\r\n function initGsapGeography(block, status) {\r\n const motion = status ? \"25%\" : \"-25%\";\r\n gsap.to(block, {\r\n scrollTrigger: {\r\n trigger: \".geography\",\r\n start: \"-400px bottom\",\r\n end: \"bottom -1000px\",\r\n scrub: !0,\r\n toggleActions: \"restart pause reverse pause\"\r\n },\r\n x: motion,\r\n ease: \"none\",\r\n duration: 4e3\r\n });\r\n }\r\n};\r\n\r\nexport default geography;\r\n\r\n\r\n","const initWidjet = () => {\r\n const widget = document.querySelector(\"[data-widget]\");\r\n if (!widget) return;\r\n \r\n const trackScroll = () => {\r\n window.scrollY > 300\r\n ? widget.style.opacity = \"1\"\r\n : widget.style.opacity = \"0\";\r\n };\r\n \r\n trackScroll();\r\n window.addEventListener(\"scroll\", trackScroll);\r\n};\r\n\r\nexport default initWidjet;\r\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","Accordion","_classCallCheck","this","_openHeight","_windowWidth","window","innerWidth","_documentClickHandler","bind","_windowResizeHandler","_init","fullUpdate","document","addEventListener","evt","target","closest","preventDefault","parent","dataset","destroy","matchMedia","matches","element","classList","contains","closeAccordion","openAccordion","updateAccordionsHeight","_this","querySelectorAll","forEach","arguments","length","undefined","content","querySelector","style","transition","maxHeight","concat","scrollHeight","setTimeout","closeElement","openElement","_this2","parentElement","contentElement","hasAttribute","closeAllAccordion","add","remove","func","currentInnerWidth","isObject","constructor","extend","src","keys","ssrDocument","body","removeEventListener","activeElement","blur","nodeName","getElementById","createEvent","initEvent","createElement","children","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","clearTimeout","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","Dom7","Array","items","super","proto","__proto__","set","makeReactive","arrayFlat","arr","res","el","isArray","push","arrayFilter","filter","$","selector","context","html","trim","indexOf","toCreate","tempParent","innerHTML","i","a","qsa","nodeType","uniqueArray","arrayUnique","fn","noTrigger","split","shortcut","name","args","trigger","on","Methods","addClass","classes","classNames","map","c","removeClass","hasClass","className","toggleClass","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","duration","transitionDuration","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","events","j","event","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","splice","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","each","index","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parentNode","find","foundElements","found","removeChild","methodName","writable","nextTick","delay","now","toString","slice","to","noExtend","nextSource","node","HTMLElement","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","priority","self","method","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","updateSize","width","height","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","assign","size","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","replace","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","ceil","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","transitionEmit","runCallbacks","direction","step","slideTo","internal","initial","Error","indexAsNumber","isFinite","animating","preventInteractionOnTransition","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","setTranslate","transitionStart","isH","t","_immediateVirtual","_swiperImmediateVirtual","behavior","onSlideToWrapperTransitionEnd","destroyed","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","diff","getTranslate","loopDestroy","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","onTouchEnd","touchEndTime","timeDiff","pathTree","composedPath","lastClickTime","currentPos","stopIndex","groupSize","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","newProgress","previousTranslate","dummyEventAttached","dummyEventListener","touchEvents","device","domMethod","swiperMethod","start","passiveListeners","passive","move","end","cancel","updateOnWindowResize","ios","android","attachEvents","detachEvents","isGridEnabled","addClasses","suffixes","entries","prefix","resultClasses","item","prepareClasses","fill","containerModifierClass","join","emitContainerClasses","removeClasses","init","resizeObserver","createElements","url","virtualTranslate","breakpointsBase","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","update","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","x","y","translateTo","translateBounds","newTranslate","onTranslateToWrapperTransitionEnd","moving","isLocked","cursor","unsetGrabCursor","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","b","wasLocked","lastSlideIndex","lastSlideRightEdge","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","overrides","platform","ua","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getDevice","isSafari","toLowerCase","isWebView","test","calcBrowser","modules","__modules__","mod","extendParams","swiperParams","defaults","passedParams","eventName","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","options","wrapper","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","observer","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","createElementIfNotDefined","checkProps","Navigation","getEl","toggleEl","disabled","disabledClass","tagName","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","hideOnClick","hiddenClass","_s","targetEl","pagination","clickable","isHidden","classesToSelector","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","position","total","paginationType","firstIndex","lastIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","Lazy","lazy","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$slideEl","$images","$imageEl","background","$pictureEl","sourceEl","$source","slideOriginalIndex","load","slideExist","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","swiperOffset","inView","swiperCoord","sticky","slider","resizeSwiper","resize","initCategoriesSlider","initEducatorsSlider","initMediaSlider","initFaqSlider","initHowTOGetSlider","initStatusSlider","initDissmisalriskSlider","initEducationSlider","segments","URL","pop","toLocaleLowerCase","block","status","contentAll","btn_viewAll","btnContent","_step","_iterator","_createForOfIteratorHelper","_loop","contentAllSlide","_step2","_iterator2","s","n","done","err","f","_step3","_iterator3","_regeneratorRuntime","r","iterator","asyncIterator","u","define","configurable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","h","l","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","mark","setPrototypeOf","awrap","async","Promise","reverse","charAt","stop","rval","handle","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","info","error","casesWrap","thisUrl","getPageName","_parseReviewsCareer","_callee","response","dataCases","_context","fetch","json","some","cases","result","imgIndex","graduate","nameProgram","seeAll","totalSlides","activeIndexChange","slideChange","index_currentSlide","lazyLoadBlock","refreshFsLightbox","setupVideo","video","link","iframe","generateURL","createIframe","collapseList","btns","collapse","icon","buttons","blockCollapseHeights","collapseBlock","cards","activeButton","activeCard","categoriesModalIds","categoriesBtns","_$$offset","ref","localStorage","referrer","getItem","siteurl","visitParams","NotFoundURL","Реферер","ym","removeItem","setItem","catchNotFound","videos","findVideos","insertAfter","click","yaCounter74433037","reachGoal","modalId","modalBtn","goalId","btn","allPrograms","enablePrograms","dataPrograms","utmCategory","getParam","utmLevel","utmRecruitment","utmRegion","inputsCategory","inputsLevel","inputsRecruitment","linksPrograms","linksDirections","notFound","selectRegions","list","input","program","shortname","includes","returnPageProgram","filterRegions","tile","updateQueryStringParam","searchParams","scrollToTop","onchange","category","level","count","changeStateTiles","display","hiddenTiles","filterPrograms","searchValueCheckbox","countDPO","countPrograms","countPO","DPO","PO","checkDisableDPO","_toConsumableArray","it","checkDisablePO","checkDisablePOAll","checkDisableDPOAll","blockDisplayLogic","colors","backgroundColor","region","listPrograms","regions","region_id","inputs","checked","param","scropllBlock","scrollIntoView","form","arrStatus","firstArr","secondArr","regionsArr","createModal","rel","modalRegions","modal","additionalClass","allProgramsNoDublicate","idx","findLastIndex","filterProgramsByshortname","_filterProgramsByshor","_slicedToArray","formLock","Regions","arrAllProgramsDirections","arrAllProgramsRegions","emptyModal","elementEmptyModal","insertAdjacentHTML","arrFetch","operator","program_id","selectedIndex","filterProgramArr","fields","field","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","arr2","_initDropDownsPrograms","requestPrograms","filterNoDublicatePrograms","allProgramsRegion","allProgramsRegionFiltred","Program","ProgramsHidden","Education","Direction","shortUrl","selectedOnceRegion","selectedOnceProgram","selectedOnceDirection","logicModalPageProgram","logicEducationFields","renderOptions","setAttrforSingleField","getDataProgram","option","Option","modalMissProgMain","statusPO","statusDPO","modalMissProgProgram","structuredClone","title","newProgram","filterDirectionPrograms","direction_id","findIndex","_x","_asyncToGenerator","_netRequests","_callee3","getJson","_getJson","fetchWithTimeout","_fetchWithTimeout","_context3","_callee2","resource","_options$timeout","timeout","controller","_args2","_context2","AbortController","abort","_objectSpread","signal","_x2","patch","_response","t0","console","log","thisArg","kindOf","cache","thing","str","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isPlainObject","isDate","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","getOwnPropertyNames","findKey","_key","_global","globalThis","global","isContextDefined","isTypedArray","TypedArray","Uint8Array","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","toUpperCase","isAsyncFn","isBuffer","isFormData","kind","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","stripBOM","charCodeAt","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","String","toArray","forEachEntry","pair","matchAll","regExp","exec","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","toCamelCase","p1","p2","noop","toFiniteNumber","defaultValue","generateString","alphabet","random","isSpecCompliantForm","toJSONObject","stack","visit","source","reducedValue","isThenable","AxiosError","message","code","config","request","captureStackTrace","utils","toJSON","description","fileName","lineNumber","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","token","predicates","formData","metaTokens","indexes","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","isFlatArray","exposedHelpers","build","encode","charMap","encodeURIComponent","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","fulfilled","rejected","synchronous","runWhen","eject","clear","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","tokens","tokensRE","parseTokens","has","matcher","delete","deleted","deleteHeader","format","normalized","w","char","formatHeader","targets","asStrings","first","computed","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","urlParsingNode","originURL","resolveURL","port","requestURL","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","samplesCount","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","round","speedometer","loaded","lengthComputable","progressBytes","rate","estimated","knownAdapters","http","xhr","XMLHttpRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","unsubscribe","Boolean","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","isURLSameOrigin","xsrfValue","cookies","setRequestHeader","withCredentials","onDownloadProgress","onUploadProgress","upload","subscribe","aborted","parseProtocol","send","renderReason","reason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators","deprecatedWarnings","validator","version","formatMessage","opt","ERR_DEPRECATED","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","instance","VERSION","Cancel","all","promises","spread","isAxiosError","payload","formToJSON","getAdapter","default","buttonsBot","session","cname","ca","getCookie","sessionStorage","Category","EmploymentFormat","formCitizenRequest","FlowCRM","invalidCharsRegex","_inputParent$querySel","invalidChars","inputParent","showError","validDomains","emailInput","emailValue","suggestionsDiv","siblings","atIndex","domainPart","suggestions","startsWith","empty","show","hide","focus","requried","phone","email","birthday","parts","errorContainer","_document$querySelect","sendBtn","deleteErrors","formField","control","invalidField","validate","formElement","regionList","returnRegionName","paramsStartIndex","utmString","utmMark","toastr","progressBar","programList","programHidden","ym_uid","roistatCookie","post","requestId","programName","Email","advcake_data","pageType","user","leadInfo","totalPrice","coupon","marketing_cat","setFBQ","fbq","VK","Goal","Retargeting","Event","_tmr","goal","getKeyByValue","formSubmitFlow","urlRvR","rvr_link","newTab","openNoRedirectSaveBaseModal","success","container","onSuccess","fadeDuration","setStyles","stylesObject","setForm","queryString","authenticationTicket","customer","customFields","unsubscribingReason","subscriptions","pointOfContact","isSubscribed","ajax","sendUnsubscribe","addMaxLength","controls","changed","one","onFormFilling","setFormCheckbox","checkbox","leadId","eventID","mask","autoclear","openSuccessModal","paddingBottom","pointerEvents","interval","setInterval","clearInterval","setTimerRedirect","metrics","successModal","elementsForm","clickOnForm","_initNetRequests","ONLINE_PROGRAMS","netRequests","programs","educational_form","initRegions","catalog","initDropDownsPrograms","addRegionsSelect","regionsSelect","accessKey","select2","placeholder","datepicker","IMask","datepickerModal","initDatepicker","language","noResults","escapeMarkup","markup","initNetRequests","Modal","_modal","_modal_inset","_modal_content","closeModal","openModal","ChangeDate","period","timer","selectorCounter","date","arrMonths","getDate","getMonth","setDate","timerElement","utcDate","UTC","getFullYear","countDownDate","timeInterval","distance","days","hours","minutes","lastDigit","getDaysWord","getHoursWord","getMinutesWord","setTimer","counters","countersPrograms","decreaseQuantity","final","shift","stepDay","formatNumber","startDate","finishDate","totalMembers","finalNunber","Intl","NumberFormat","txt","declination","counter","main","initCounter","tabs","pageBody","stepsModal","reviewsWrap","banner","home","metaTags","toUTCString","updatedCookie","optionKey","optionValue","setCookie","UtmTags","scrolled","pageYOffset","collapseParent","collapseButton","getContentHeight","sum","isCollapsed","onclick","openTooltip","site","play","pause","poster","profession","img","rating","star","initReviewsSlider","blocks","activeBlock","card","sliders","modalContent","leavePageModal","openModalWindow","statusModal","removeEventOpenModal","buttonToForm","documentLeaveHandle","eventHandlerHiddenElement","forms","toElement","relatedTarget","initLeavePageModal","tab","visibleItems","itemsContainer","showMoreButton","hiddenItems","resetParameters","opacity","onShowMoreButtonClick","onCollapseButtonClick","initShowMoreButton","initGsapGeography","motion","gsap","scrollTrigger","scrub","toggleActions","ease","registerPlugin","ScrollTrigger","geography","widget","trackScroll","initWidjet"],"sourceRoot":""}