{"version":3,"file":"main.js","mappings":"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","sources":["webpack://flow.dpoedusigmalanding/./node_modules/vanilla-toast/vanilla-toast.js","webpack://flow.dpoedusigmalanding/./wwwroot/plugins/fslightbox.js","webpack://flow.dpoedusigmalanding/webpack/bootstrap","webpack://flow.dpoedusigmalanding/webpack/runtime/compat get default export","webpack://flow.dpoedusigmalanding/webpack/runtime/define property getters","webpack://flow.dpoedusigmalanding/webpack/runtime/hasOwnProperty shorthand","webpack://flow.dpoedusigmalanding/webpack/runtime/node module decorator","webpack://flow.dpoedusigmalanding/./node_modules/ssr-window/ssr-window.esm.js","webpack://flow.dpoedusigmalanding/./node_modules/dom7/dom7.esm.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/shared/dom.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/shared/utils.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/shared/get-support.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/shared/get-device.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/shared/get-browser.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/events-emitter.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/update/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/update/updateSize.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/update/updateSlides.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/update/updateProgress.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/transition/transitionEmit.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/slide/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/slide/slideTo.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/slide/slideToLoop.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/slide/slideNext.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/slide/slidePrev.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/slide/slideReset.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/slide/slideToClosest.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/loop/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/loop/loopCreate.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/loop/loopFix.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/loop/loopDestroy.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/events/onTouchStart.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/events/onTouchMove.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/events/onTouchEnd.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/events/onResize.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/events/onClick.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/events/onScroll.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/events/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/breakpoints/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/classes/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/classes/addClasses.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/classes/removeClasses.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/defaults.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/moduleExtendParams.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/core.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/translate/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/translate/getTranslate.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/translate/setTranslate.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/translate/minTranslate.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/translate/maxTranslate.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/translate/translateTo.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/transition/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/transition/setTransition.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/transition/transitionStart.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/transition/transitionEnd.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/grab-cursor/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/check-overflow/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/images/index.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/images/loadImage.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/images/preloadImages.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/modules/resize/resize.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/core/modules/observer/observer.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/modules/navigation/navigation.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/shared/classes-to-selector.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/modules/pagination/pagination.js","webpack://flow.dpoedusigmalanding/./node_modules/swiper/modules/lazy/lazy.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/resize.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-participation-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-diplom-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-partners-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-cases-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-reviews-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-news-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-teachers-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-cooperation-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-stories-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-hr-reviews-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-team-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-reviewsPage-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-job-seeker-sliders.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-dissmisalrisk-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/sliders.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/sliders/init-faq-slider.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/accordion/accordion.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/modal/modal.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/modal/init-modal.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-show-more-button.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-filters.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/monitoring.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/metrics.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/getCookie.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/calculator.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/UtmTags.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/getRedirectLink.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/online/modalMissProgMain.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/modalMissCategorySearchJob.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/online/modalMissProgProgram.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/getPageName.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/filterNoDublicate.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/getByChance.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/init-regions.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/online/dropDownPrograms.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/offline/modalMissProgMain.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/offline/modalMissProgProgram.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/offline/dropDownPrograms.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/online/netRequests.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/offline/netRequests.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/shortForm.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/core/utils.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/core/action-details.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/core/holder.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/factory.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/controls/mask-element.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/controls/html-mask-element.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/controls/html-input-mask-element.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/controls/html-contenteditable-mask-element.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/controls/input.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/core/change-details.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/core/continuous-tail-details.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/base.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/pattern/chunk-tail-details.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/pattern/cursor.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/pattern/fixed-definition.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/pattern/input-definition.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/regexp.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/pattern.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/range.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/date.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/dynamic.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/enum.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/function.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/number.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/masked/pipe.js","webpack://flow.dpoedusigmalanding/./node_modules/imask/esm/index.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/bind.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/utils.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/core/AxiosError.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/toFormData.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/buildURL.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/core/InterceptorManager.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/defaults/transitional.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/platform/browser/index.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/defaults/index.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/core/transformData.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/cancel/isCancel.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/cancel/CanceledError.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/cookies.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/core/buildFullPath.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/combineURLs.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/adapters/xhr.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/speedometer.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/adapters/adapters.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/null.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/core/settle.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/core/dispatchRequest.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/core/mergeConfig.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/env/data.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/validator.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/core/Axios.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/cancel/CancelToken.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/axios.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/spread.js","webpack://flow.dpoedusigmalanding/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/form.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/init-form.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/unlock-program-field.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/datepicker.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/select.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/date/ChangeDate.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/date/set-date.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/date/init-counter.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/date/set-timer.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/index.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-tabs.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-scroll-to-top.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/burger.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/set-teachers-class.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-banner.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-tooltips.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/modal/init-appearing-modal.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/modal/render-participation-modal.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/accordion/init-accordion.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/scroll.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/modal/render-teachers-modal.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/faq.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/catalog.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/modal/init-leave-page-modal.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/advCaceProgram.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/bannerBack.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/collapse.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/modal/render-stories-modal.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/modal/render-steps-modal.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/date/index.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-video-volume-button.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-resolution-link.js"],"sourcesContent":["(function() {\r\n \"use strict\";\r\n\r\n // VanillaToast class\r\n var VanillaToast = (function() {\r\n function VanillaToast() {\r\n this.queue = new TaskQueue();\r\n this.cancellationTokens = [];\r\n this.element = null;\r\n }\r\n\r\n var constants = {\r\n default: {\r\n className: 'default',\r\n fadeDuration: 400,\r\n fadeInterval: 16,\r\n duration: 2000,\r\n closeButton: false,\r\n immediately: false\r\n },\r\n success: {\r\n className: 'success'\r\n },\r\n info: {\r\n className: 'info'\r\n },\r\n warning: {\r\n className: 'warning'\r\n },\r\n error: {\r\n className: 'error',\r\n duration: 3000,\r\n closeButton: true\r\n }\r\n };\r\n\r\n // create elements.\r\n VanillaToast.prototype.initElement = function(selector) {\r\n var container = document.createElement('div');\r\n var toastBox = document.createElement('div');\r\n var text = document.createElement('div');\r\n var closeButton = document.createElement('span');\r\n\r\n container.setAttribute(\"id\", \"vanilla-toast-container\");\r\n\r\n toastBox.setAttribute(\"id\", \"vanilla-toast\");\r\n\r\n text.setAttribute(\"id\", \"vanilla-toast-text\");\r\n\r\n closeButton.setAttribute(\"id\", \"vanilla-toast-close-button\");\r\n closeButton.innerHTML = '✖';\r\n\r\n toastBox.appendChild(text);\r\n toastBox.appendChild(closeButton);\r\n container.appendChild(toastBox);\r\n\r\n if (selector) {\r\n document.getElementById(seletor).appendChild(containter);\r\n } else {\r\n document.body.appendChild(container);\r\n }\r\n\r\n this.element = {\r\n container: container,\r\n toastBox: toastBox,\r\n text: text,\r\n closeButton: closeButton\r\n };\r\n\r\n _setStyle(this, constants.default);\r\n };\r\n\r\n // cancel current showing toast.\r\n VanillaToast.prototype.cancel = function() {\r\n if (this.cancellationTokens.length) this.cancellationTokens[0].cancel();\r\n };\r\n\r\n // cancel all enqueued toasts.\r\n VanillaToast.prototype.cancelAll = function() {\r\n var length = this.cancellationTokens.length;\r\n for (var i = 0; i < length; ++i) {\r\n (function(token) {\r\n token.cancel();\r\n })(this.cancellationTokens[length - i - 1]);\r\n }\r\n };\r\n\r\n // show toast\r\n VanillaToast.prototype.show = function(text, option, callback) {\r\n var self = this;\r\n if (!self.element) self.initElement();\r\n if (!option) option = {};\r\n // if immediately show option is on, cancel all previous toasts.\r\n if (option.immediately) self.cancelAll();\r\n\r\n var cancellationToken = new CancellationToken();\r\n // enqueue\r\n self.queue.enqueue(function(next) {\r\n // time setting\r\n var fadeDuration = option.fadeDuration || constants.default.fadeDuration;\r\n var fadeInterval = option.fadeInterval || constants.default.fadeInterval;\r\n var fadeStep = Math.min(fadeInterval / fadeDuration, 1);\r\n var duration = option.duration || constants.default.duration;\r\n\r\n // close button setting\r\n self.element.closeButton.style.display =\r\n option.closeButton ? 'inline' : 'none';\r\n\r\n // set text\r\n self.element.text.innerHTML = text;\r\n\r\n // set visible\r\n var s = self.element.toastBox.style;\r\n s.opacity = 0;\r\n s.display = 'inline-block';\r\n\r\n // set styles\r\n _setStyle(self, option);\r\n\r\n // timeoutId\r\n var timeoutId = null;\r\n\r\n // duration timeout callback.\r\n var timeoutCallback = function() {\r\n timeoutId = null;\r\n // release click clickHandler\r\n self.element.toastBox.removeEventListener('click', cancelHandler);\r\n _hide(self, option, cancellationToken, function() {\r\n if (callback) callback();\r\n self.cancellationTokens.shift().dispose();\r\n next();\r\n });\r\n };\r\n\r\n // click for close handler\r\n var cancelHandler = function() {\r\n if (!timeoutId) return;\r\n clearTimeout(timeoutId);\r\n timeoutCallback();\r\n };\r\n\r\n // start fade in.\r\n _fade(s, fadeStep, fadeInterval, cancellationToken, function() {\r\n // show while duration time and hide.\r\n self.element.toastBox.addEventListener('click', cancelHandler);\r\n if (cancellationToken.isCancellationRequested) {\r\n timeoutCallback();\r\n } else {\r\n timeoutId = setTimeout(timeoutCallback, duration);\r\n cancellationToken.register(function() {\r\n cancelHandler();\r\n });\r\n }\r\n });\r\n });\r\n\r\n self.cancellationTokens.push(cancellationToken);\r\n\r\n return self;\r\n };\r\n\r\n // create preset methods\r\n for (var item in constants) {\r\n (function(preset) {\r\n VanillaToast.prototype[preset] = function(text, option, callback) {\r\n if (!option) option = {};\r\n\r\n // copy preset options\r\n for (var propertyName in constants[preset]) {\r\n if (option[propertyName] === undefined)\r\n option[propertyName] = constants[preset][propertyName];\r\n }\r\n\r\n return this.show(text, option, callback);\r\n };\r\n })(item);\r\n }\r\n\r\n // private methods.\r\n\r\n // set style\r\n function _setStyle(self, option) {\r\n self.element.toastBox.className = option.className || constants.default.className;\r\n };\r\n\r\n // hide toast\r\n function _hide(self, option, cancellationToken, callback) {\r\n if (!option) option = {};\r\n\r\n // time setting\r\n var fadeDuration = option.fadeDuration || constants.default.fadeDuration;\r\n var fadeInterval = option.fadeInterval || constants.default.fadeInterval;\r\n var fadeStep = Math.min(fadeInterval / fadeDuration, 1);\r\n\r\n // set visible\r\n var s = self.element.toastBox.style;\r\n s.opacity = 1;\r\n\r\n // start fade out and call callback function.\r\n _fade(s, -fadeStep, fadeInterval, cancellationToken, function() {\r\n s.display = 'none';\r\n if (callback) callback();\r\n });\r\n\r\n return self;\r\n };\r\n\r\n // run fade animation\r\n function _fade(style, step, interval, cancellationToken, callback) {\r\n (function fade() {\r\n if (cancellationToken.isCancellationRequested) {\r\n style.opacity = step < 0 ? 0 : 1;\r\n if (callback) callback();\r\n return;\r\n }\r\n style.opacity = Number(style.opacity) + step;\r\n if (step < 0 && style.opacity < 0) {\r\n if (callback) callback();\r\n } else if (step > 0 && style.opacity >= 1) {\r\n if (callback) callback();\r\n } else {\r\n var timeoutId = setTimeout(function() {\r\n timeoutId = null;\r\n fade();\r\n }, interval);\r\n cancellationToken.register(function() {\r\n if (!timeoutId) return;\r\n clearTimeout(timeoutId);\r\n timeoutId = null;\r\n if (callback) callback();\r\n });\r\n }\r\n })();\r\n };\r\n\r\n return VanillaToast;\r\n })();\r\n\r\n // CancellationToken class\r\n var CancellationToken = (function() {\r\n function CancellationToken() {\r\n this.isCancellationRequested = false;\r\n this.cancelCallbacks = [];\r\n }\r\n\r\n CancellationToken.prototype.cancel = function() {\r\n this.isCancellationRequested = true;\r\n var copiedCallbacks = this.cancelCallbacks.slice();\r\n while (copiedCallbacks.length) copiedCallbacks.shift()();\r\n };\r\n\r\n CancellationToken.prototype.register = function(callback) {\r\n this.cancelCallbacks.push(callback);\r\n };\r\n\r\n CancellationToken.prototype.dispose = function() {\r\n while (this.cancelCallbacks.length) this.cancelCallbacks.shift();\r\n };\r\n\r\n return CancellationToken;\r\n })();\r\n\r\n // TaskQueue class from https://github.com/talsu/async-task-queue\r\n var TaskQueue = (function() {\r\n function TaskQueue() {\r\n this.queue = [];\r\n this.isExecuting = false;\r\n }\r\n\r\n // enqueue job. run immediately.\r\n TaskQueue.prototype.enqueue = function(job) {\r\n // enqueue.\r\n this.queue.push(job);\r\n // call execute.\r\n dequeueAndExecute(this);\r\n };\r\n\r\n // Dequeue and execute job.\r\n function dequeueAndExecute(self) {\r\n if (self.isExecuting) return;\r\n\r\n // Dequeue Job.\r\n var job = self.queue.shift();\r\n if (!job) return;\r\n\r\n //Execute Job.\r\n self.isExecuting = true;\r\n\r\n // Pass next job execute callback.\r\n job(function() {\r\n self.isExecuting = false;\r\n dequeueAndExecute(self);\r\n });\r\n }\r\n\r\n return TaskQueue;\r\n })();\r\n\r\n // export\r\n if (typeof exports !== 'undefined') {\r\n if (typeof module !== 'undefined' && module.exports) {\r\n exports = module.exports = new VanillaToast();\r\n }\r\n exports.vanillaToast = new VanillaToast();\r\n } else {\r\n this.vanillaToast = new VanillaToast();\r\n }\r\n}.call(this));\r\n","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)(\"object\"==typeof exports?exports:e)[o]=n[o]}}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t,n){\"use strict\";n.r(t);var o,i=\"fslightbox-\",r=\"\".concat(i,\"styles\"),s=\"\".concat(i,\"cursor-grabbing\"),a=\"\".concat(i,\"full-dimension\"),c=\"\".concat(i,\"flex-centered\"),l=\"\".concat(i,\"open\"),u=\"\".concat(i,\"transform-transition\"),d=\"\".concat(i,\"absoluted\"),f=\"\".concat(i,\"slide-btn\"),p=\"\".concat(f,\"-container\"),h=\"\".concat(i,\"fade-in\"),m=\"\".concat(i,\"fade-out\"),g=h+\"-strong\",v=m+\"-strong\",b=\"\".concat(i,\"opacity-\"),x=\"\".concat(b,\"1\"),y=\"\".concat(i,\"source\");function w(e){return(w=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function S(e){var t=e.stageIndexes,n=e.core.stageManager,o=e.props.sources.length-1;n.getPreviousSlideIndex=function(){return 0===t.current?o:t.current-1},n.getNextSlideIndex=function(){return t.current===o?0:t.current+1},n.updateStageIndexes=0===o?function(){}:1===o?function(){0===t.current?(t.next=1,delete t.previous):(t.previous=0,delete t.next)}:function(){t.previous=n.getPreviousSlideIndex(),t.next=n.getNextSlideIndex()},n.i=o<=2?function(){return!0}:function(e){var n=t.current;if(0===n&&e===o||n===o&&0===e)return!0;var i=n-e;return-1===i||0===i||1===i}}\"object\"===(\"undefined\"==typeof document?\"undefined\":w(document))&&((o=document.createElement(\"style\")).className=r,o.appendChild(document.createTextNode(\".fslightbox-absoluted{position:absolute;top:0;left:0}.fslightbox-fade-in{animation:fslightbox-fade-in .3s cubic-bezier(0,0,.7,1)}.fslightbox-fade-out{animation:fslightbox-fade-out .3s ease}.fslightbox-fade-in-strong{animation:fslightbox-fade-in-strong .3s cubic-bezier(0,0,.7,1)}.fslightbox-fade-out-strong{animation:fslightbox-fade-out-strong .3s ease}@keyframes fslightbox-fade-in{from{opacity:.65}to{opacity:1}}@keyframes fslightbox-fade-out{from{opacity:.35}to{opacity:0}}@keyframes fslightbox-fade-in-strong{from{opacity:.3}to{opacity:1}}@keyframes fslightbox-fade-out-strong{from{opacity:1}to{opacity:0}}.fslightbox-cursor-grabbing{cursor:grabbing}.fslightbox-full-dimension{width:100%;height:100%}.fslightbox-open{overflow:hidden;height:100%}.fslightbox-flex-centered{display:flex;justify-content:center;align-items:center}.fslightbox-opacity-0{opacity:0!important}.fslightbox-opacity-1{opacity:1!important}.fslightbox-scrollbarfix{padding-right:17px}.fslightbox-transform-transition{transition:transform .3s}.fslightbox-container{font-family:Arial,sans-serif;position:fixed;top:0;left:0;background:linear-gradient(rgba(30,30,30,.9),#000 1810%);touch-action:pinch-zoom;z-index:1000000000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.fslightbox-container *{box-sizing:border-box}.fslightbox-svg-path{transition:fill .15s ease;fill:#ddd}.fslightbox-nav{height:45px;width:100%;position:absolute;top:0;left:0}.fslightbox-slide-number-container{display:flex;justify-content:center;align-items:center;position:relative;height:100%;font-size:15px;color:#d7d7d7;z-index:0;max-width:55px;text-align:left}.fslightbox-slide-number-container .fslightbox-flex-centered{height:100%}.fslightbox-slash{display:block;margin:0 5px;width:1px;height:12px;transform:rotate(15deg);background:#fff}.fslightbox-toolbar{position:absolute;z-index:3;right:0;top:0;height:100%;display:flex;background:rgba(35,35,35,.65)}.fslightbox-toolbar-button{height:100%;width:45px;cursor:pointer}.fslightbox-toolbar-button:hover .fslightbox-svg-path{fill:#fff}.fslightbox-slide-btn-container{display:flex;align-items:center;padding:12px 12px 12px 6px;position:absolute;top:50%;cursor:pointer;z-index:3;transform:translateY(-50%)}@media (min-width:476px){.fslightbox-slide-btn-container{padding:22px 22px 22px 6px}}@media (min-width:768px){.fslightbox-slide-btn-container{padding:30px 30px 30px 6px}}.fslightbox-slide-btn-container:hover .fslightbox-svg-path{fill:#f1f1f1}.fslightbox-slide-btn{padding:9px;font-size:26px;background:rgba(35,35,35,.65)}@media (min-width:768px){.fslightbox-slide-btn{padding:10px}}@media (min-width:1600px){.fslightbox-slide-btn{padding:11px}}.fslightbox-slide-btn-container-previous{left:0}@media (max-width:475.99px){.fslightbox-slide-btn-container-previous{padding-left:3px}}.fslightbox-slide-btn-container-next{right:0;padding-left:12px;padding-right:3px}@media (min-width:476px){.fslightbox-slide-btn-container-next{padding-left:22px}}@media (min-width:768px){.fslightbox-slide-btn-container-next{padding-left:30px}}@media (min-width:476px){.fslightbox-slide-btn-container-next{padding-right:6px}}.fslightbox-down-event-detector{position:absolute;z-index:1}.fslightbox-slide-swiping-hoverer{z-index:4}.fslightbox-invalid-file-wrapper{font-size:22px;color:#eaebeb;margin:auto}.fslightbox-video{object-fit:cover}.fslightbox-youtube-iframe{border:0}.fslightboxl{display:block;margin:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:67px;height:67px}.fslightboxl div{box-sizing:border-box;display:block;position:absolute;width:54px;height:54px;margin:6px;border:5px solid;border-color:#999 transparent transparent transparent;border-radius:50%;animation:fslightboxl 1.2s cubic-bezier(.5,0,.5,1) infinite}.fslightboxl div:nth-child(1){animation-delay:-.45s}.fslightboxl div:nth-child(2){animation-delay:-.3s}.fslightboxl div:nth-child(3){animation-delay:-.15s}@keyframes fslightboxl{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fslightbox-source{position:relative;z-index:2;opacity:0}\")),document.head.appendChild(o));function L(e){var t,n=e.props,o=0,i={};this.getSourceTypeFromLocalStorageByUrl=function(e){return t[e]?t[e]:r(e)},this.handleReceivedSourceTypeForUrl=function(e,n){if(!1===i[n]&&(o--,\"invalid\"!==e?i[n]=e:delete i[n],0===o)){!function(e,t){for(var n in t)e[n]=t[n]}(t,i);try{localStorage.setItem(\"fslightbox-types\",JSON.stringify(t))}catch(e){}}};var r=function(e){o++,i[e]=!1};if(n.disableLocalStorage)this.getSourceTypeFromLocalStorageByUrl=function(){},this.handleReceivedSourceTypeForUrl=function(){};else{try{t=JSON.parse(localStorage.getItem(\"fslightbox-types\"))}catch(e){}t||(t={},this.getSourceTypeFromLocalStorageByUrl=r)}}function A(e,t,n,o){var i=e.data,r=e.elements.sources,s=n/o,a=0;this.adjustSize=function(){if((a=i.maxSourceWidth/s)i.maxSourceHeight?i.maxSourceHeight:o,c()};var c=function(){r[t].style.width=a*s+\"px\",r[t].style.height=a+\"px\"}}function C(e,t){var n=this,o=e.collections.sourceSizers,i=e.elements,r=i.sourceAnimationWrappers,s=i.sources,a=e.isl,c=e.resolve;function l(e,n){o[t]=c(A,[t,e,n]),o[t].adjustSize()}this.runActions=function(e,o){a[t]=!0,s[t].classList.add(x),r[t].classList.add(g),r[t].removeChild(r[t].firstChild),l(e,o),n.runActions=l}}function E(e,t){var n,o=this,i=e.elements.sources,r=e.props,s=(0,e.resolve)(C,[t]);this.handleImageLoad=function(e){var t=e.target,n=t.naturalWidth,o=t.naturalHeight;s.runActions(n,o)},this.handleVideoLoad=function(e){var t=e.target,o=t.videoWidth,i=t.videoHeight;n=!0,s.runActions(o,i)},this.handleNotMetaDatedVideoLoad=function(){n||o.handleYoutubeLoad()},this.handleYoutubeLoad=function(){var e=1920,t=1080;r.maxYoutubeDimensions&&(e=r.maxYoutubeDimensions.width,t=r.maxYoutubeDimensions.height),s.runActions(e,t)},this.handleCustomLoad=function(){var e=i[t],n=e.offsetWidth,r=e.offsetHeight;n&&r?s.runActions(n,r):setTimeout(o.handleCustomLoad)}}function F(e,t,n){var o=e.elements.sources,i=e.props.customClasses,r=i[t]?i[t]:\"\";o[t].className=n+\" \"+r}function I(e,t){var n=e.elements.sources,o=e.props.customAttributes;for(var i in o[t])n[t].setAttribute(i,o[t][i])}function T(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,i=o.sources,r=o.sourceAnimationWrappers,s=e.props.sources;i[t]=document.createElement(\"img\"),F(e,t,y),i[t].src=s[t],i[t].onload=n[t].handleImageLoad,I(e,t),r[t].appendChild(i[t])}function N(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,i=o.sources,r=o.sourceAnimationWrappers,s=e.props,a=s.sources,c=s.videosPosters;i[t]=document.createElement(\"video\"),F(e,t,y),i[t].src=a[t],i[t].onloadedmetadata=function(e){n[t].handleVideoLoad(e)},i[t].controls=!0,I(e,t),c[t]&&(i[t].poster=c[t]);var l=document.createElement(\"source\");l.src=a[t],i[t].appendChild(l),setTimeout(n[t].handleNotMetaDatedVideoLoad,3e3),r[t].appendChild(i[t])}function z(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,r=o.sources,s=o.sourceAnimationWrappers,a=e.props.sources;r[t]=document.createElement(\"iframe\"),F(e,t,\"\".concat(y,\" \").concat(i,\"youtube-iframe\"));var c=a[t],l=c.split(\"?\")[1];r[t].src=\"https://www.youtube.com/embed/\".concat(c.match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/)[2],\"?\").concat(l||\"\"),r[t].allowFullscreen=!0,I(e,t),s[t].appendChild(r[t]),n[t].handleYoutubeLoad()}function P(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,i=o.sources,r=o.sourceAnimationWrappers,s=e.props.sources;i[t]=s[t],F(e,t,\"\".concat(i[t].className,\" \").concat(y)),r[t].appendChild(i[t]),n[t].handleCustomLoad()}function k(e,t){var n=e.elements,o=n.sources,r=n.sourceAnimationWrappers;e.props.sources;o[t]=document.createElement(\"div\"),o[t].className=\"\".concat(i,\"invalid-file-wrapper \").concat(c),o[t].innerHTML=\"Invalid source\",r[t].classList.add(g),r[t].removeChild(r[t].firstChild),r[t].appendChild(o[t])}function H(e){var t=e.collections,n=t.sourceLoadHandlers,o=t.sourcesRenderFunctions,i=e.core.sourceDisplayFacade,r=e.resolve;this.runActionsForSourceTypeAndIndex=function(t,s){var a;switch(\"invalid\"!==t&&(n[s]=r(E,[s])),t){case\"image\":a=T;break;case\"video\":a=N;break;case\"youtube\":a=z;break;case\"custom\":a=P;break;default:a=k}o[s]=function(){return a(e,s)},i.displaySourcesWhichShouldBeDisplayed()}}function W(){var e,t,n,o={isUrlYoutubeOne:function(e){var t=document.createElement(\"a\");return t.href=e,\"www.youtube.com\"===t.hostname||\"youtu.be\"===t.hostname},getTypeFromResponseContentType:function(e){return e.slice(0,e.indexOf(\"/\"))}};function i(){if(4!==n.readyState){if(2===n.readyState){var e;switch(o.getTypeFromResponseContentType(n.getResponseHeader(\"content-type\"))){case\"image\":e=\"image\";break;case\"video\":e=\"video\";break;default:e=\"invalid\"}n.onreadystatechange=null,n.abort(),t(e)}}else t(\"invalid\")}this.setUrlToCheck=function(t){e=t},this.getSourceType=function(r){if(o.isUrlYoutubeOne(e))return r(\"youtube\");t=r,(n=new XMLHttpRequest).onreadystatechange=i,n.open(\"GET\",e,!0),n.send()}}function R(e,t,n){var o=e.props,i=o.types,r=o.type,s=o.sources,a=e.resolve;this.getTypeSetByClientForIndex=function(e){var t;return i&&i[e]?t=i[e]:r&&(t=r),t},this.retrieveTypeWithXhrForIndex=function(e){var o=a(W);o.setUrlToCheck(s[e]),o.getSourceType((function(o){t.handleReceivedSourceTypeForUrl(o,s[e]),n.runActionsForSourceTypeAndIndex(o,e)}))}}function D(e,t){var n=e.core.stageManager,o=e.elements,i=o.smw,r=o.sourceWrappersContainer,s=e.props,l=0,f=document.createElement(\"div\");function p(e){f.style.transform=\"translateX(\".concat(e+l,\"px)\"),l=0}function h(){return(1+s.slideDistance)*innerWidth}f.className=\"\".concat(d,\" \").concat(a,\" \").concat(c),f.s=function(){f.style.display=\"flex\"},f.h=function(){f.style.display=\"none\"},f.a=function(){f.classList.add(u)},f.d=function(){f.classList.remove(u)},f.n=function(){f.style.removeProperty(\"transform\")},f.v=function(e){return l=e,f},f.ne=function(){p(-h())},f.z=function(){p(0)},f.p=function(){p(h())},n.i(t)||f.h(),i[t]=f,r.appendChild(f),function(e,t){var n=e.elements,o=n.smw,i=n.sourceAnimationWrappers,r=document.createElement(\"div\"),s=document.createElement(\"div\");s.className=\"fslightboxl\";for(var a=0;a<3;a++){var c=document.createElement(\"div\");s.appendChild(c)}r.appendChild(s),o[t].appendChild(r),i[t]=r}(e,t)}function O(e,t,n,o){var r=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");r.setAttributeNS(null,\"width\",t),r.setAttributeNS(null,\"height\",t),r.setAttributeNS(null,\"viewBox\",n);var s=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");return s.setAttributeNS(null,\"class\",\"\".concat(i,\"svg-path\")),s.setAttributeNS(null,\"d\",o),r.appendChild(s),e.appendChild(r),r}function M(e,t){var n=document.createElement(\"div\");return n.className=\"\".concat(i,\"toolbar-button \").concat(c),n.title=t,e.appendChild(n),n}function j(e,t){var n=document.createElement(\"div\");n.className=\"\".concat(i,\"toolbar\"),t.appendChild(n),function(e,t){var n=e.componentsServices,o=e.data,i=e.fs,r=\"M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z\",s=M(t);s.title=\"Enter fullscreen\";var a=O(s,\"20px\",\"0 0 18 18\",r);n.ofs=function(){o.ifs=!0,s.title=\"Exit fullscreen\",a.setAttributeNS(null,\"width\",\"24px\"),a.setAttributeNS(null,\"height\",\"24px\"),a.setAttributeNS(null,\"viewBox\",\"0 0 950 1024\"),a.firstChild.setAttributeNS(null,\"d\",\"M682 342h128v84h-212v-212h84v128zM598 810v-212h212v84h-128v128h-84zM342 342v-128h84v212h-212v-84h128zM214 682v-84h212v212h-84v-128h-128z\")},n.xfs=function(){o.ifs=!1,s.title=\"Enter fullscreen\",a.setAttributeNS(null,\"width\",\"20px\"),a.setAttributeNS(null,\"height\",\"20px\"),a.setAttributeNS(null,\"viewBox\",\"0 0 18 18\"),a.firstChild.setAttributeNS(null,\"d\",r)},s.onclick=i.t}(e,n),function(e,t){var n=M(t,\"Close\");n.onclick=e.core.lightboxCloser.closeLightbox,O(n,\"20px\",\"0 0 24 24\",\"M 4.7070312 3.2929688 L 3.2929688 4.7070312 L 10.585938 12 L 3.2929688 19.292969 L 4.7070312 20.707031 L 12 13.414062 L 19.292969 20.707031 L 20.707031 19.292969 L 13.414062 12 L 20.707031 4.7070312 L 19.292969 3.2929688 L 12 10.585938 L 4.7070312 3.2929688 z\")}(e,n)}function X(e){var t=e.props.sources,n=e.elements.container,o=document.createElement(\"div\");o.className=\"\".concat(i,\"nav\"),n.appendChild(o),j(e,o),t.length>1&&function(e,t){var n=e.componentsServices,o=e.props.sources,r=(e.stageIndexes,document.createElement(\"div\"));r.className=\"\".concat(i,\"slide-number-container\");var s=document.createElement(\"div\");s.className=c;var a=document.createElement(\"span\");n.setSlideNumber=function(e){return a.innerHTML=e};var l=document.createElement(\"span\");l.className=\"\".concat(i,\"slash\");var u=document.createElement(\"div\");u.innerHTML=o.length,r.appendChild(s),s.appendChild(a),s.appendChild(l),s.appendChild(u),t.appendChild(r),setTimeout((function(){s.offsetWidth>55&&(r.style.justifyContent=\"flex-start\")}))}(e,o)}function B(e,t,n,o){var i=e.elements.container,r=n.charAt(0).toUpperCase()+n.slice(1),s=document.createElement(\"div\");s.className=\"\".concat(p,\" \").concat(p,\"-\").concat(n),s.title=\"\".concat(r,\" slide\"),s.onclick=t,function(e,t){var n=document.createElement(\"div\");n.className=\"\".concat(f,\" \").concat(c),O(n,\"20px\",\"0 0 20 20\",t),e.appendChild(n)}(s,o),i.appendChild(s)}function U(e){var t=e.core,n=t.lightboxCloser,o=t.slideChangeFacade,i=e.fs;this.listener=function(e){switch(e.key){case\"Escape\":n.closeLightbox();break;case\"ArrowLeft\":o.changeToPrevious();break;case\"ArrowRight\":o.changeToNext();break;case\"F11\":e.preventDefault(),i.t()}}}function q(e){var t=e.elements,n=e.sourcePointerProps,o=e.stageIndexes;function i(e,o){t.smw[e].v(n.swipedX)[o]()}this.runActionsForEvent=function(e){var r,a,c;t.container.contains(t.slideSwipingHoverer)||t.container.appendChild(t.slideSwipingHoverer),r=t.container,a=s,(c=r.classList).contains(a)||c.add(a),n.swipedX=e.screenX-n.downScreenX;var l=o.previous,u=o.next;i(o.current,\"z\"),void 0!==l&&n.swipedX>0?i(l,\"ne\"):void 0!==u&&n.swipedX<0&&i(u,\"p\")}}function V(e){var t=e.props.sources,n=e.resolve,o=e.sourcePointerProps,i=n(q);1===t.length?this.listener=function(){o.swipedX=1}:this.listener=function(e){o.isPointering&&i.runActionsForEvent(e)}}function _(e){var t=e.core.slideIndexChanger,n=e.elements.smw,o=e.stageIndexes,i=e.sws;function r(e){var t=n[o.current];t.a(),t[e]()}function s(e,t){void 0!==e&&(n[e].s(),n[e][t]())}this.runPositiveSwipedXActions=function(){var e=o.previous;if(void 0===e)r(\"z\");else{r(\"p\");var n=o.next;t.changeTo(e);var a=o.previous;i.d(a),i.b(n),r(\"z\"),s(a,\"ne\")}},this.runNegativeSwipedXActions=function(){var e=o.next;if(void 0===e)r(\"z\");else{r(\"ne\");var n=o.previous;t.changeTo(e);var a=o.next;i.d(a),i.b(n),r(\"z\"),s(a,\"p\")}}}function Y(e,t){e.contains(t)&&e.removeChild(t)}function J(e){var t=e.core.lightboxCloser,n=e.elements,o=e.resolve,i=e.sourcePointerProps,r=o(_);this.runNoSwipeActions=function(){Y(n.container,n.slideSwipingHoverer),i.isSourceDownEventTarget||t.closeLightbox(),i.isPointering=!1},this.runActions=function(){i.swipedX>0?r.runPositiveSwipedXActions():r.runNegativeSwipedXActions(),Y(n.container,n.slideSwipingHoverer),n.container.classList.remove(s),i.isPointering=!1}}function G(e){var t=e.resolve,n=e.sourcePointerProps,o=t(J);this.listener=function(){n.isPointering&&(n.swipedX?o.runActions():o.runNoSwipeActions())}}function $(e){var t=this,n=e.core,o=n.eventsDispatcher,i=n.globalEventsController,r=n.scrollbarRecompensor,s=e.data,a=e.elements,c=e.fs,u=e.props,d=e.sourcePointerProps;this.isLightboxFadingOut=!1,this.runActions=function(){t.isLightboxFadingOut=!0,a.container.classList.add(v),i.removeListeners(),u.exitFullscreenOnClose&&s.ifs&&c.x(),setTimeout((function(){t.isLightboxFadingOut=!1,d.isPointering=!1,a.container.classList.remove(v),document.documentElement.classList.remove(l),r.removeRecompense(),document.body.removeChild(a.container),o.dispatch(\"onClose\")}),270)}}function K(e,t){var n=e.classList;n.contains(t)&&n.remove(t)}function Q(e){var t,n,o;n=(t=e).core.eventsDispatcher,o=t.props,n.dispatch=function(e){o[e]&&o[e]()},function(e){var t=e.componentsServices,n=e.data,o=e.fs,i=[\"fullscreenchange\",\"webkitfullscreenchange\",\"mozfullscreenchange\",\"MSFullscreenChange\"];function r(e){for(var t=0;tinnerHeight&&(document.body.style.marginRight=t.scrollbarWidth+\"px\")}n.addRecompense=function(){\"complete\"===document.readyState?o():addEventListener(\"load\",(function(){o(),n.addRecompense=o}))},n.removeRecompense=function(){document.body.style.removeProperty(\"margin-right\")}}(e),function(e){var t=e.core,n=t.slideChangeFacade,o=t.slideIndexChanger,i=t.stageManager;e.props.sources.length>1?(n.changeToPrevious=function(){o.jumpTo(i.getPreviousSlideIndex())},n.changeToNext=function(){o.jumpTo(i.getNextSlideIndex())}):(n.changeToPrevious=function(){},n.changeToNext=function(){})}(e),function(e){var t=e.componentsServices,n=e.core,o=n.slideIndexChanger,i=n.sourceDisplayFacade,r=n.stageManager,s=e.elements,a=s.smw,c=s.sourceAnimationWrappers,l=e.isl,u=e.stageIndexes,d=e.sws;o.changeTo=function(e){u.current=e,r.updateStageIndexes(),t.setSlideNumber(e+1),i.displaySourcesWhichShouldBeDisplayed()},o.jumpTo=function(e){var t=u.previous,n=u.current,i=u.next,s=l[n],f=l[e];o.changeTo(e);for(var p=0;p1&&(n=(t=e).core.slideChangeFacade,B(t,n.changeToPrevious,\"previous\",\"M18.271,9.212H3.615l4.184-4.184c0.306-0.306,0.306-0.801,0-1.107c-0.306-0.306-0.801-0.306-1.107,0L1.21,9.403C1.194,9.417,1.174,9.421,1.158,9.437c-0.181,0.181-0.242,0.425-0.209,0.66c0.005,0.038,0.012,0.071,0.022,0.109c0.028,0.098,0.075,0.188,0.142,0.271c0.021,0.026,0.021,0.061,0.045,0.085c0.015,0.016,0.034,0.02,0.05,0.033l5.484,5.483c0.306,0.307,0.801,0.307,1.107,0c0.306-0.305,0.306-0.801,0-1.105l-4.184-4.185h14.656c0.436,0,0.788-0.353,0.788-0.788S18.707,9.212,18.271,9.212z\"),B(t,n.changeToNext,\"next\",\"M1.729,9.212h14.656l-4.184-4.184c-0.307-0.306-0.307-0.801,0-1.107c0.305-0.306,0.801-0.306,1.106,0l5.481,5.482c0.018,0.014,0.037,0.019,0.053,0.034c0.181,0.181,0.242,0.425,0.209,0.66c-0.004,0.038-0.012,0.071-0.021,0.109c-0.028,0.098-0.075,0.188-0.143,0.271c-0.021,0.026-0.021,0.061-0.045,0.085c-0.015,0.016-0.034,0.02-0.051,0.033l-5.483,5.483c-0.306,0.307-0.802,0.307-1.106,0c-0.307-0.305-0.307-0.801,0-1.105l4.184-4.185H1.729c-0.436,0-0.788-0.353-0.788-0.788S1.293,9.212,1.729,9.212z\")),function(e){for(var t=e.props.sources,n=e.resolve,o=n(L),i=n(H),r=n(R,[o,i]),s=0;s0&&void 0!==arguments[0]?arguments[0]:0,i=m.previous,a=m.current,d=m.next;m.current=n,p.i||S(e),u.updateStageIndexes(),p.i?(v.c(),v.a(),v.b(i),v.b(a),v.b(d),o.dispatch(\"onShow\")):b(),c.displaySourcesWhichShouldBeDisplayed(),t.setSlideNumber(n+1),document.body.appendChild(h.container),document.documentElement.classList.add(l),s.addRecompense(),r.attachListeners(),f.runActions(),h.smw[m.current].n(),o.dispatch(\"onOpen\")}}function ee(e,t,n){return(ee=te()?Reflect.construct.bind():function(e,t,n){var o=[null];o.push.apply(o,t);var i=new(Function.bind.apply(e,o));return n&&ne(i,n.prototype),i}).apply(null,arguments)}function te(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function ne(e,t){return(ne=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function oe(e){return function(e){if(Array.isArray(e))return ie(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,t){if(!e)return;if(\"string\"==typeof e)return ie(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ie(e,t)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:[];return n.unshift(e),ee(t,oe(n))},this.collections={sourceLoadHandlers:[],sourcesRenderFunctions:[],sourceSizers:[]},this.core={eventsDispatcher:{},globalEventsController:{},lightboxCloser:{},lightboxUpdater:{},scrollbarRecompensor:{},slideChangeFacade:{},slideIndexChanger:{},sourcesPointerDown:{},sourceDisplayFacade:{},stageManager:{},windowResizeActioner:{}},this.fs={},this.sws={},Z(this),this.close=function(){return e.core.lightboxCloser.closeLightbox()}},window.fsLightboxInstances={},re(),window.refreshFsLightbox=function(){for(var e in fsLightboxInstances){var t=fsLightboxInstances[e].props;fsLightboxInstances[e]=new FsLightbox,fsLightboxInstances[e].props=t,fsLightboxInstances[e].props.sources=[],fsLightboxInstances[e].elements.a=[]}re()}}])}));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\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); }","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","/**\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}","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;","import Swiper, { Navigation, Pagination, Lazy } from 'swiper';\r\nimport resize from '../resize';\r\nSwiper.use([Pagination, Navigation, Lazy]);\r\n\r\nconst initParticipationSlider = () => {\r\n const sliderContainer = document.querySelector('.participation__slider');\r\n let swiper = null;\r\n\r\n function init() {\r\n if (!swiper) {\r\n swiper = new Swiper(sliderContainer, {\r\n loop: true,\r\n lazy: true,\r\n effect: 'slide',\r\n breakpoints: {\r\n 1170: {\r\n slidesPerView: 5,\r\n spaceBetween: 20,\r\n },\r\n 768: {\r\n slidesPerView: 3,\r\n spaceBetween: 20,\r\n }\r\n },\r\n navigation: {\r\n nextEl: '.participation .slider-navigation__button--next',\r\n prevEl: '.participation .slider-navigation__button--prev',\r\n },\r\n pagination: {\r\n el: '.participation .swiper-pagination',\r\n type: 'fraction',\r\n },\r\n a11y: {\r\n enabled: true,\r\n prevSlideMessage: 'Переход на предыдущий слайд',\r\n nextSlideMessage: 'Переход на следующий слайд',\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 > 767\r\n ? init()\r\n : destroy()\r\n }\r\n \r\n sliderContainer && resizeSwiper();\r\n sliderContainer && resize(resizeSwiper);\r\n};\r\n\r\nexport default initParticipationSlider;\r\n","import Swiper, { Navigation, Pagination } from \"swiper\";\r\nSwiper.use([Pagination, Navigation]);\r\n\r\nconst initDiplomSlider = () => {\r\n const slider = document.querySelector(\".diplom__slider\");\r\n\r\n slider && new Swiper(slider, {\r\n watchOverflow: true,\r\n autoHeight: false,\r\n slidesPerView: 1,\r\n spaceBetween: 10,\r\n navigation: {\r\n nextEl: \".diplom .slider-navigation__button--next\",\r\n prevEl: \".diplom .slider-navigation__button--prev\",\r\n },\r\n pagination: {\r\n el: \".diplom .swiper-pagination\",\r\n type: \"fraction\",\r\n },\r\n});\r\n};\r\n\r\nexport default initDiplomSlider;\r\n","import Swiper, { Navigation, Lazy } from \"swiper\";\r\nimport resize from \"../resize\";\r\nSwiper.use([Navigation, Lazy]);\r\n\r\nconst initPartnersSlider = () => {\r\n const sliderContainerDesc = document.querySelector(\".partners-slider-desc\");\r\n const sliderContainerMob = document.querySelector(\".partners-slider-mob\");\r\n let swiper = null;\r\n\r\n if (sliderContainerDesc && sliderContainerMob) {\r\n function swiperDesc() {\r\n swiper = new Swiper(sliderContainerDesc, {\r\n loop: true,\r\n lazy: true,\r\n slidesPerView: 1,\r\n autoHeight: true,\r\n navigation: {\r\n nextEl: \".partners .slider-navigation__button--next\",\r\n prevEl: \".partners .slider-navigation__button--prev\",\r\n },\r\n pagination: {\r\n el: \".partners .partners-pagination\",\r\n bulletActiveClass: \"active\",\r\n clickable: true,\r\n },\r\n a11y: {\r\n enabled: true,\r\n prevSlideMessage: \"Переход на предыдущий слайд\",\r\n nextSlideMessage: \"Переход на следующий слайд\",\r\n },\r\n });\r\n }\r\n\r\n function swiperMob() {\r\n swiper = new Swiper(sliderContainerMob, {\r\n loop: true,\r\n lazy: true,\r\n slidesPerView: 1,\r\n autoHeight: true,\r\n navigation: {\r\n nextEl: \".partners .slider-navigation__button--next\",\r\n prevEl: \".partners .slider-navigation__button--prev\",\r\n },\r\n pagination: {\r\n el: \".partners .partners-pagination\",\r\n bulletActiveClass: \"active\",\r\n clickable: true,\r\n },\r\n a11y: {\r\n enabled: true,\r\n prevSlideMessage: \"Переход на предыдущий слайд\",\r\n nextSlideMessage: \"Переход на следующий слайд\",\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 if (window.innerWidth <= 767) {\r\n destroy();\r\n swiperMob();\r\n } else {\r\n destroy();\r\n swiperDesc();\r\n }\r\n }\r\n\r\n resizeSwiper();\r\n resize(resizeSwiper);\r\n }\r\n};\r\n\r\nexport default initPartnersSlider;\r\n","import Swiper, { Navigation, Pagination } from \"swiper\";\r\nSwiper.use([Pagination, Navigation]);\r\n\r\nconst initCasesSlider = () => {\r\n const slider = document.querySelector(\".cases__slider\");\r\n\r\n slider && new Swiper(slider, {\r\n loop: true,\r\n breakpoints: {\r\n 1441: {\r\n slidesPerView: 3,\r\n spaceBetween: 30,\r\n },\r\n 1170: {\r\n slidesPerView: 3,\r\n spaceBetween: 20,\r\n },\r\n 768: {\r\n slidesPerView: 2,\r\n spaceBetween: 20,\r\n },\r\n 0: {\r\n slidesPerView: 1,\r\n spaceBetween: 10,\r\n },\r\n },\r\n navigation: {\r\n nextEl: \".cases .slider-navigation__button--next\",\r\n prevEl: \".cases .slider-navigation__button--prev\",\r\n },\r\n pagination: {\r\n el: \".cases .swiper-pagination\",\r\n type: \"fraction\",\r\n },\r\n });\r\n};\r\n\r\nexport default initCasesSlider;\r\n","import Swiper, {Navigation, Pagination} from 'swiper';\r\nSwiper.use([Navigation, Pagination]);\r\n\r\nconst initReviewsSlider = () => {\r\n const sliderContainers = document.querySelectorAll('.reviews');\r\n sliderContainers.length && sliderContainers.forEach((sliderContainer) => {\r\n const slider = sliderContainer.querySelector('.reviews__slider');\r\n\r\n new Swiper(slider, {\r\n loop: true,\r\n effect: 'slide',\r\n spaceBetween: 20,\r\n breakpoints: {\r\n 1441: {\r\n slidesPerView: 5,\r\n },\r\n 1171: {\r\n slidesPerView: 4,\r\n },\r\n 651: {\r\n slidesPerView: 2,\r\n },\r\n 501: {\r\n slidesPerView: 1.5,\r\n },\r\n 0: {\r\n slidesPerView: 1,\r\n },\r\n },\r\n navigation: {\r\n nextEl: sliderContainer.querySelector('.slider-navigation__button--next'),\r\n prevEl: sliderContainer.querySelector('.slider-navigation__button--prev'),\r\n },\r\n pagination: {\r\n el: sliderContainer.querySelector('.swiper-pagination'),\r\n type: \"fraction\",\r\n },\r\n a11y: {\r\n enabled: true,\r\n prevSlideMessage: 'Переход на предыдущий слайд',\r\n nextSlideMessage: 'Переход на следующий слайд',\r\n },\r\n });\r\n\r\n const videoReviews = sliderContainer.querySelectorAll('.reviews__slide');\r\n videoReviews?.forEach((videoReview) => {\r\n videoReview.addEventListener(\"mouseover\", () => videoReview.querySelector(\"video\")?.play());\r\n\r\n videoReview.addEventListener(\"mouseleave\", () => videoReview.querySelector(\"video\")?.pause());\r\n });\r\n });\r\n \r\n sliderContainers.length && sliderContainers.forEach((sliderContainer, index) => {\r\n const dublicateSlides = sliderContainer.querySelectorAll('.swiper-slide-duplicate');\r\n dublicateSlides?.forEach((slide, indexSlide) => {\r\n slide.querySelector('.reviews__slide-play')?.setAttribute('data-fslightbox', `dublicate-review-${index + 1}-${indexSlide + 1}`);\r\n }); \r\n });\r\n \r\n refreshFsLightbox();\r\n};\r\n\r\nexport default initReviewsSlider;\r\n","import Swiper, {Navigation, Pagination, Lazy} from 'swiper';\r\nSwiper.use([Navigation, Pagination, Lazy]);\r\n\r\nconst initNewsSlider = () => {\r\n const sliderContainer = document.querySelector('.news__slider');\r\n sliderContainer && new Swiper(sliderContainer, {\r\n loop: true,\r\n lazy: true,\r\n effect: 'slide',\r\n breakpoints: {\r\n 1440: {\r\n slidesPerView: 3,\r\n spaceBetween: 20,\r\n },\r\n 1170: {\r\n slidesPerView: 2,\r\n spaceBetween: 20,\r\n },\r\n 768: {\r\n slidesPerView: 3,\r\n spaceBetween: 15,\r\n },\r\n 500: {\r\n slidesPerView: 2.2,\r\n spaceBetween: 15,\r\n },\r\n 0: {\r\n slidesPerView: 1.1,\r\n spaceBetween: 10,\r\n },\r\n },\r\n navigation: {\r\n nextEl: \".news .slider-navigation__button--next\",\r\n prevEl: \".news .slider-navigation__button--prev\",\r\n },\r\n pagination: {\r\n el: \".news .swiper-pagination\",\r\n type: \"fraction\",\r\n },\r\n a11y: {\r\n enabled: true,\r\n prevSlideMessage: 'Переход на предыдущий слайд',\r\n nextSlideMessage: 'Переход на следующий слайд',\r\n },\r\n });\r\n};\r\n\r\nexport default initNewsSlider;\r\n","import Swiper, {Navigation, Pagination} from 'swiper';\r\nSwiper.use([Navigation, Pagination]);\r\n\r\nconst initTeachersSlider = () => {\r\n const sliderContainer = document.querySelector('.teachers__slider');\r\n sliderContainer && new Swiper(sliderContainer, {\r\n watchOverflow: true,\r\n effect: 'slide',\r\n breakpoints: {\r\n 1170: {\r\n slidesPerView: 4,\r\n spaceBetween: 20,\r\n },\r\n 768: {\r\n slidesPerView: 3,\r\n spaceBetween: 15,\r\n },\r\n 500: {\r\n slidesPerView: 2,\r\n spaceBetween: 15,\r\n },\r\n 0: {\r\n slidesPerView: 1.2,\r\n spaceBetween: 10,\r\n },\r\n },\r\n navigation: {\r\n nextEl: \".teachers .slider-navigation__button--next\",\r\n prevEl: \".teachers .slider-navigation__button--prev\",\r\n },\r\n pagination: {\r\n el: \".teachers .swiper-pagination\",\r\n type: \"fraction\",\r\n },\r\n a11y: {\r\n enabled: true,\r\n prevSlideMessage: 'Переход на предыдущий слайд',\r\n nextSlideMessage: 'Переход на следующий слайд',\r\n },\r\n });\r\n};\r\n\r\nexport default initTeachersSlider;\r\n","import Swiper, { Navigation, Pagination } from \"swiper\";\r\nSwiper.use([Pagination, Navigation]);\r\n\r\nconst initCooperationSlider = () => {\r\n const slider = document.querySelector(\".cooperation__slider\");\r\n\r\n slider && new Swiper(slider, {\r\n breakpoints: {\r\n 1170: {\r\n slidesPerGroup: 3,\r\n slidesPerView: 3,\r\n spaceBetween: 20,\r\n },\r\n 767: {\r\n slidesPerGroup: 2,\r\n slidesPerView: 2,\r\n spaceBetween: 15,\r\n },\r\n 0: {\r\n slidesPerView: 1,\r\n spaceBetween: 20,\r\n },\r\n },\r\n navigation: {\r\n nextEl: \".cooperation .slider-navigation__button--next\",\r\n prevEl: \".cooperation .slider-navigation__button--prev\",\r\n },\r\n pagination: {\r\n el: \".cooperation .swiper-pagination\",\r\n type: \"fraction\",\r\n },\r\n });\r\n};\r\n\r\nexport default initCooperationSlider;\r\n","import Swiper, { Navigation, Pagination } from \"swiper\";\r\nSwiper.use([Pagination, Navigation]);\r\n\r\nconst initStoriesSlider = () => {\r\n const slider = document.querySelector(\".stories__slider\");\r\n\r\n slider && new Swiper(slider, {\r\n loop: true,\r\n slidesPerView: 1,\r\n spaceBetween: 20,\r\n navigation: {\r\n nextEl: \".stories .slider-navigation__button--next\",\r\n prevEl: \".stories .slider-navigation__button--prev\",\r\n },\r\n pagination: {\r\n el: \".stories .swiper-pagination\",\r\n type: \"fraction\",\r\n },\r\n });\r\n};\r\n\r\nexport default initStoriesSlider;\r\n","import Swiper, {Navigation, Pagination} from \"swiper\";\r\nSwiper.use([Navigation, Pagination]);\r\n\r\nconst initHrReviewsSlider = () => {\r\n const slider = document.querySelector(\".hr-reviews__slider\");\r\n\r\n slider && new Swiper(slider, {\r\n loop: true,\r\n spaceBetween: 20,\r\n autoHeight: true,\r\n breakpoints: {\r\n 1441: {\r\n slidesPerView: 5,\r\n },\r\n 1171: {\r\n slidesPerView: 4,\r\n },\r\n 767: {\r\n slidesPerView: 3,\r\n },\r\n 0: {\r\n slidesPerView: 1,\r\n },\r\n },\r\n pagination: {\r\n el: \".hr-reviews .swiper-pagination\",\r\n type: \"fraction\",\r\n },\r\n navigation: {\r\n nextEl: \".hr-reviews .slider-navigation__button--next\",\r\n prevEl: \".hr-reviews .slider-navigation__button--prev\",\r\n },\r\n });\r\n};\r\n\r\nexport default initHrReviewsSlider;\r\n","import Swiper, {Navigation, Pagination} from 'swiper';\r\nSwiper.use([Navigation, Pagination]);\r\n\r\nconst initTeamSlider = () => {\r\n const sliderContainer = document.querySelector('.team__slider');\r\n sliderContainer && new Swiper(sliderContainer, {\r\n watchOverflow: true,\r\n effect: 'slide',\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 4,\r\n spaceBetween: 20,\r\n },\r\n 500: {\r\n slidesPerView: 2,\r\n spaceBetween: 20,\r\n },\r\n 0: {\r\n slidesPerView: 1.2,\r\n spaceBetween: 10,\r\n },\r\n },\r\n navigation: {\r\n nextEl: \".team .slider-navigation__button--next\",\r\n prevEl: \".team .slider-navigation__button--prev\",\r\n },\r\n pagination: {\r\n el: \".team .swiper-pagination\",\r\n type: \"fraction\",\r\n },\r\n a11y: {\r\n enabled: true,\r\n prevSlideMessage: 'Переход на предыдущий слайд',\r\n nextSlideMessage: 'Переход на следующий слайд',\r\n },\r\n });\r\n};\r\n\r\nexport default initTeamSlider;\r\n","import Swiper, { Navigation, Pagination } from 'swiper';\r\nSwiper.use([Navigation, Pagination]);\r\n\r\nconst initReviewsPageSlider = () => {\r\n const sliderContainers = document.querySelectorAll('.reviewsPage-reviews');\r\n sliderContainers.length &&\r\n sliderContainers.forEach((sliderContainer) => {\r\n const slider = sliderContainer.querySelector(\r\n '.reviewsPage-reviews__swiper'\r\n );\r\n\r\n new Swiper(slider, {\r\n loop: true,\r\n effect: 'slide',\r\n spaceBetween: 20,\r\n breakpoints: {\r\n 1441: {\r\n slidesPerView: 6,\r\n },\r\n 1171: {\r\n slidesPerView: 4,\r\n },\r\n 651: {\r\n slidesPerView: 2,\r\n },\r\n 501: {\r\n slidesPerView: 1.5,\r\n },\r\n 350: {\r\n slidesPerView: 1.4,\r\n },\r\n 0: {\r\n slidesPerView: 1,\r\n },\r\n },\r\n navigation: {\r\n nextEl: sliderContainer.querySelector(\r\n '.reviewsPage__reviews .slider-navigation__button--next'\r\n ),\r\n prevEl: sliderContainer.querySelector(\r\n '.reviewsPage__reviews .slider-navigation__button--prev'\r\n ),\r\n },\r\n pagination: {\r\n el: sliderContainer.querySelector('.swiper-pagination'),\r\n type: 'fraction',\r\n },\r\n a11y: {\r\n enabled: true,\r\n prevSlideMessage: 'Переход на предыдущий слайд',\r\n nextSlideMessage: 'Переход на следующий слайд',\r\n },\r\n });\r\n\r\n const videoReviews = sliderContainer.querySelectorAll(\r\n '.reviewsPage-reviews__slide'\r\n );\r\n videoReviews?.forEach((videoReview) => {\r\n videoReview.addEventListener('mouseover', () =>\r\n videoReview.querySelector('video')?.play()\r\n );\r\n\r\n videoReview.addEventListener('mouseleave', () =>\r\n videoReview.querySelector('video')?.pause()\r\n );\r\n });\r\n });\r\n\r\n sliderContainers.length &&\r\n sliderContainers.forEach((sliderContainer, index) => {\r\n const dublicateSlides = sliderContainer.querySelectorAll(\r\n '.swiper-slide-duplicate'\r\n );\r\n dublicateSlides?.forEach((slide, indexSlide) => {\r\n slide\r\n .querySelector('.reviewsPage-reviews__slide-play')\r\n ?.setAttribute(\r\n 'data-fslightbox',\r\n `dublicate-review-${index + 1}-${indexSlide + 1}`\r\n );\r\n });\r\n });\r\n\r\n refreshFsLightbox();\r\n};\r\n\r\nexport default initReviewsPageSlider;\r\n","import Swiper, {Pagination, Navigation, Lazy} from \"swiper\";\r\n\r\nSwiper.use([Pagination, Navigation, Lazy]);\r\n\r\nconst initJobSeekerSliders = () => {\r\n const sliderContainers = document.querySelectorAll('.job-seeker');\r\n sliderContainers.length && sliderContainers.forEach((sliderContainer) => {\r\n const slider = sliderContainer.querySelector('.job-seeker__slider');\r\n \r\n new Swiper(slider, {\r\n loop: true,\r\n lazy: true,\r\n effect: 'slide',\r\n slidesPerView: 1,\r\n spaceBetween: 10,\r\n autoHeight: true,\r\n navigation: {\r\n nextEl: sliderContainer.querySelector('.slider-navigation__button--next'),\r\n prevEl: sliderContainer.querySelector('.slider-navigation__button--prev'),\r\n },\r\n pagination: {\r\n el: sliderContainer.querySelector('.swiper-pagination'),\r\n type: \"fraction\",\r\n },\r\n a11y: {\r\n enabled: true,\r\n prevSlideMessage: 'Переход на предыдущий слайд',\r\n nextSlideMessage: 'Переход на следующий слайд',\r\n },\r\n }); \r\n });\r\n };\r\n\r\nexport default initJobSeekerSliders;\r\n","import Swiper, { Navigation, Pagination } from 'swiper';\r\nSwiper.use([Pagination, Navigation]);\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","\r\nimport initParticipationSlider from './init-participation-slider';\r\nimport initFaqSlider from './init-faq-slider';\r\nimport initDiplomSlider from './init-diplom-slider.js';\r\nimport initPartnersSlider from './init-partners-slider.js';\r\nimport initCasesSlider from './init-cases-slider.js';\r\nimport initReviewsSlider from './init-reviews-slider.js';\r\nimport initNewsSlider from './init-news-slider.js';\r\nimport initTeachersSlider from './init-teachers-slider.js';\r\nimport initCooperationSlider from './init-cooperation-slider.js';\r\nimport initStoriesSlider from './init-stories-slider.js';\r\nimport initHrReviewsSlider from './init-hr-reviews-slider.js';\r\nimport initTeamsSlider from './init-team-slider.js';\r\nimport initReviewsPageSlider from './init-reviewsPage-slider.js';\r\nimport initJobSeekerSliders from './init-job-seeker-sliders.js';\r\nimport initDissmisalriskSlider from './init-dissmisalrisk-slider.js';\r\n\r\nconst sliders = () => {\r\n initParticipationSlider();\r\n initFaqSlider();\r\n initDiplomSlider();\r\n initPartnersSlider();\r\n initCasesSlider();\r\n initReviewsSlider();\r\n initNewsSlider();\r\n initTeachersSlider();\r\n initCooperationSlider();\r\n initStoriesSlider();\r\n initHrReviewsSlider();\r\n initTeamsSlider();\r\n initReviewsPageSlider();\r\n initJobSeekerSliders();\r\n initDissmisalriskSlider();\r\n}\r\n\r\nexport default sliders;","import resize from \"../resize\";\r\nimport Swiper from \"swiper\";\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.05,\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 <= 767\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","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","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.classList.value.includes('select2')) {\r\n if (this.modal.getAttribute('data-select2-id')) {\r\n this.modal.removeAttribute('data-select2-id');\r\n }\r\n }\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 if (this.modal.getAttribute('data-select2-id')) {\r\n this.modal.removeAttribute('data-select2-id');\r\n }\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};","// Функция для инициализации кнопки Показать ещё.\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 initFilters = () => {\r\n const filters = document.querySelectorAll('[data-filter]');\r\n const items = document.querySelectorAll('[data-filter-item]');\r\n const titlePO = document.querySelector('.catalog__courses-title-po');\r\n const itemsPO = document.querySelector('.catalog__tiles-po')? document.querySelector('.catalog__tiles-po').children : '';\r\n\r\n \r\n let active = document.querySelector('.active[data-filter]');\r\n\r\n filters.length && items.length && filters.forEach(filter => {\r\n filter.addEventListener('click', () => {\r\n let direction = filter.getAttribute('data-direction');\r\n\r\n filter.classList.add('active');\r\n active.classList.remove('active');\r\n active = filter;\r\n\r\n items.forEach((item) => {\r\n switch (direction) {\r\n case 'all':\r\n item.style.display = 'flex';\r\n break;\r\n case item.getAttribute('data-direction'):\r\n item.style.display = 'flex';\r\n item.style.opacity = '1';\r\n break;\r\n default:\r\n item.style.display = 'none';\r\n break;\r\n };\r\n });\r\n \r\n /*Скрытие заголовка для категории PO, если там нет карточек */\r\n if (\r\n [...itemsPO].filter((item) => item.style.display !== \"none\")\r\n .length == 0\r\n ) {\r\n titlePO.style.display = \"none\";\r\n } else {\r\n titlePO.style.display = \"block\";\r\n }\r\n })\r\n })\r\n \r\n};\r\n \r\nexport default initFilters;\r\n","const monitoring = () => {\r\n const block = document.getElementById('monitoring');\r\n\r\n if (!block) {\r\n return;\r\n }\r\n\r\n /* Переменные для хранения списка программ для разных операторов */\r\n async function getPrograms() {\r\n const DPO_TGU = 'https://2025.api.tgu-dpo.ru/regions/GetAllProgramsWithRegions?isShowTgu=true&&isVisibleWithoutDirection=true',\r\n PO_TGU = 'https://2025.api.tgu-dpo.ru/regions/GetAllProgramsWithRegions?isShowTgu=true&&isVisibleWithoutDirection=true&&withoutEducation=true',\r\n OFLINE = 'https://2025.api.tgu-dpo.ru/regions/GetAllProgramsWithRegions?isShowTgu=true&isVisibleWithoutDirection=true&withoutEducation=true&exceptOffline=false&exceptOnline=true';\r\n \r\n const loader = document.querySelector('.monitoring__loader');\r\n\r\n try {\r\n let result_TGU_DPO_FETCH = await getJson(DPO_TGU),\r\n result_TGU_PO_FETCH = await getJson(PO_TGU),\r\n result_ofline = await getJson(OFLINE),\r\n arrTgu = [\r\n ...result_TGU_DPO_FETCH,\r\n ...result_TGU_PO_FETCH\r\n ],\r\n arrOffline = [\r\n ...result_ofline\r\n ];\r\n \r\n /* Добавление тега ПО */\r\n [...result_TGU_PO_FETCH, ...arrOffline].map(\r\n (item) => {\r\n item.po = true;\r\n }\r\n );\r\n\r\n /* Добавление оператора для программ */\r\n arrTgu.map((it) => (it.operator = 'TGU'));\r\n arrOffline.map((it) => (it.operator = 'TGU'));\r\n \r\n loader.classList.remove('active');\r\n dataOutput(arrTgu, arrOffline);\r\n } catch(e) {\r\n loader.classList.remove('active');\r\n block.innerHTML = `\r\n

Не удалось подключиться к серверу. Попробуйте зайти позже.

\r\n `\r\n console.log(e);\r\n\r\n }\r\n };\r\n\r\n /* Вывод данных */\r\n function dataOutput(TGU, OFFLINE) {\r\n let wrap = document.createElement('div');\r\n wrap.classList.add('monitoring__wrap');\r\n wrap.append(createList(TGU, 'TGU'));\r\n wrap.append(createList(OFFLINE, 'OFFLINE'));\r\n block.append(wrap); \r\n }\r\n\r\n /* Создание таблицы с данными */\r\n function createList(data, operator) {\r\n const block = document.createElement('div'),\r\n tbody = document.createElement('tbody'),\r\n modals = document.createElement('div');\r\n \r\n block.classList.add('monitoring__block');\r\n\r\n if (data.length < 1) {\r\n block.innerHTML = `\r\n

Программы ${operator}

\r\n

Нет доступных программ!

\r\n `\r\n } else {\r\n data.forEach(function (elem, i) {\r\n const {name, id, shortName, directionName, directionId, regions, po} = elem;\r\n\r\n tbody.innerHTML += `\r\n \r\n ${i + 1}\r\n \r\n ${id}\r\n ${po == true ? \"ПО\" : \"ДПО\"}\r\n ${shortName}\r\n ${directionName} (id - ${directionId})\r\n \r\n `\r\n /* Создание модального окна со списком регионов */\r\n const modal = document.createElement('div');\r\n modal.classList.add('monitoring__modal', 'custom-modal__hidden');\r\n modal.setAttribute('id', `${shortName + '-' + id}`); \r\n\r\n let arrRegions = [];\r\n\r\n if (operator != \"OFFLINE\") {\r\n for (let j = 0; j < regions.length; j++) {\r\n arrRegions.push(regions[j].regionName);\r\n } \r\n\r\n arrRegions.sort();\r\n \r\n for (let j = 0; j < arrRegions.length; j++) {\r\n modal.innerHTML += `\r\n

${j + 1}: ${arrRegions[j]}

\r\n `\r\n } \r\n } else {\r\n for (let j = 0; j < regions.length; j++) {\r\n arrRegions.push({\r\n \"name\": regions[j].regionName,\r\n \"cities\": regions[j].cities\r\n });\r\n } \r\n \r\n for (let j = 0; j < arrRegions.length; j++) {\r\n if (arrRegions[j].cities.length < 1) {\r\n modal.innerHTML += `\r\n
\r\n

${j + 1}: ${arrRegions[j].name}

\r\n

   —

\r\n
\r\n `\r\n } else {\r\n let cities = '';\r\n\r\n arrRegions[j].cities.forEach(city => {\r\n cities += `

   ${city.city}

`; \r\n \r\n })\r\n\r\n modal.innerHTML += `\r\n
\r\n

${j + 1}: ${arrRegions[j].name}

\r\n ${cities}\r\n
\r\n ` \r\n }\r\n } \r\n } \r\n \r\n modals.append(modal);\r\n });\r\n \r\n block.innerHTML = `\r\n

Программы ${operator} (${data.length})

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ${tbody.innerHTML}\r\n
НазваниеOdinIdLevelUrlНаправление
\r\n ${modals.innerHTML}\r\n `\r\n }\r\n\r\n return block;\r\n }\r\n\r\n /* Запрос на получение json */\r\n async function getJson(patch) {\r\n let response = await fetch(patch),\r\n result = await response.json();\r\n\r\n /*Добавление свойства regions в объект, если оно отсутствует */\r\n result.map((item) => {\r\n if (!item.regions) {\r\n item.regions = regionsDefault;\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getPrograms();\r\n}\r\n\r\nexport default monitoring;","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(94760218, '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 (\r\n (buttonsBot.length > 0 && cookie) ||\r\n (buttonsBot.length > 0 && session)\r\n ) {\r\n buttonsBot.forEach((button) => {\r\n if (cookie) {\r\n button.setAttribute(\r\n 'href',\r\n button.getAttribute('href') + '?_ym_uid=' + cookie\r\n );\r\n } else if (session) {\r\n button.setAttribute(\r\n 'href',\r\n button.getAttribute('href') + '?_ym_uid=' + session\r\n );\r\n }\r\n });\r\n }\r\n })();\r\n\r\n /* Установка метрики по клику на \"Зарегистрироваться\" или “Начать зарабатывать” на странице https://dpo.edu-sigma.ru/referralprogram */\r\n (() => {\r\n const refButtonsReg = document?.querySelectorAll('.ref-goal-1'),\r\n refButtonsEnter = document?.querySelector('.ref-goal-2'),\r\n refButtonsProgramm = document?.querySelectorAll('.ref-goal-3');\r\n\r\n refButtonsReg?.forEach((button) => {\r\n button?.addEventListener('click', () => {\r\n ym(94760218, 'reachGoal', 'referral_registration_click');\r\n });\r\n });\r\n\r\n /* Установка метрики по клику на \"Войти\" на странице https://dpo.edu-sigma.ru/referralprogram */\r\n refButtonsEnter?.addEventListener('click', () => {\r\n ym(94760218, 'reachGoal', 'referral_login_click');\r\n });\r\n\r\n /* Клик по кнопкам \"Реферальная программа\" на всем сайте https://dpo.edu-sigma.ru */\r\n refButtonsProgramm?.forEach((button) => {\r\n button?.addEventListener('click', () => {\r\n ym(94760218, 'reachGoal', 'referral_program_click');\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","const calculator = () => {\r\n let buttons = [...document?.querySelectorAll('.calc__button')],\r\n display = document?.querySelector('.calc_display'),\r\n totalPrice = document?.querySelector('.total-price'),\r\n rate;\r\n\r\n for (let button of buttons) {\r\n button?.addEventListener('click', (e) => {\r\n e.target == buttons[0]\r\n ? (display.value = Number(display.value) - 1)\r\n : (display.value = Number(display.value) + 1);\r\n\r\n limiter(0, 1000);\r\n\r\n rate = Number(display.value);\r\n\r\n totalPrice.textContent = 1500 * rate;\r\n });\r\n }\r\n\r\n display?.addEventListener('input', inputField);\r\n\r\n function inputField() {\r\n\r\n /* Запрет на ввод кроме цифр */\r\n this.value = this.value.replace(/[^\\d.]/g, '');\r\n\r\n limiter(0, 1000);\r\n\r\n rate = Number(display.value);\r\n totalPrice.textContent = 1500 * rate;\r\n }\r\n\r\n /* Ограничение по вводу максимального числа и минимального */\r\n function limiter(min, max) {\r\n if (display.value < min) {\r\n display.value = min;\r\n }\r\n\r\n if (display.value > max) {\r\n display.value = max;\r\n }\r\n }\r\n};\r\n\r\nexport default calculator;\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","function getRedirectLink(arrFetch, e, region) {\r\n let link = '';\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;\r\n }\r\n\r\n /* Получаем ссылку с отфильтрованного массива */\r\n link = filterProgramArr.regions.find((item) => item.regionId == region)?.link;\r\n \r\n return link;\r\n}\r\n\r\nexport default getRedirectLink;\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","/* Модальное окно об отсутствии программ на странице программ */\r\nfunction modalMissCategorySearchJob() {\r\n let a = document.querySelector(\".ProgramsModalCategorySearchJob__btn\"),\r\n modal = document.createElement(\"div\"),\r\n modalRegions = document.querySelectorAll(\".modal-categorySearchJob\");\r\n\r\n /* Очищаем модальное окно */\r\n if (modalRegions.length > 0) {\r\n modalRegions.forEach((modal) => modal.remove());\r\n }\r\n\r\n /* Создаем модальное окно */\r\n if (!a) {\r\n (a = document.createElement(\"button\")),\r\n a.setAttribute(\"data-modal-open\", \"\");\r\n a.setAttribute(\"data-modal-id\", \"ProgramsModalCategorySearchJob\");\r\n a.setAttribute(\"data-modal-close\", \"\");\r\n a.classList.add(\"ProgramsModalCategorySearchJob__btn\");\r\n a.style.display = \"none\";\r\n document.body.append(a);\r\n }\r\n\r\n modal.classList.add(\"custom-modal__hidden\", \"modal-categorySearchJob\");\r\n modal.id = \"ProgramsModalCategorySearchJob\";\r\n modal.innerHTML = `
\r\n

Пожалуйста, выберите другую программу

\r\n

Для категории «Граждане, ищущие работу (или трудоустроенные)»\r\n мы разработали определенные программы по наиболее перспективным специальностям

\r\n

5 самых популярных курсов:

\r\n \r\n

Ознакомиться с полным перечнем бесплатных программ для вашей категории вы можете по кнопке ниже

\r\n Выбрать курс\r\n
`;\r\n document.body.append(modal);\r\n a.click();\r\n}\r\n\r\nexport default modalMissCategorySearchJob;\r\n","import modalMissCategorySearchJob from \"../modalMissCategorySearchJob\";\r\nimport {modal} from '../../modal/init-modal';\r\n\r\n/* Модальное окно об отсутствии программ на странице программ */\r\nfunction modalMissProgProgram(\r\n arr,\r\n region,\r\n submit,\r\n checkbox,\r\n category,\r\n Url,\r\n arrStatus\r\n) {\r\n let shortUrl = location.href.split(\"/\"),\r\n a = document.querySelector(\".ProgramsModal__btn\"),\r\n Modal = document.createElement(\"div\"),\r\n regionsArr = [],\r\n allProgramsRegionFiltred = [],\r\n firstArr,\r\n secondArr,\r\n modalRegions = document.querySelectorAll(\".modal-programs\");\r\n \r\n /* Если не сайт программы, прекращаем выполнение функции */\r\n if (!shortUrl.includes(\"program\")) {\r\n return;\r\n }\r\n\r\n if (region && category) {\r\n /* Очищаем модальное окно */\r\n if (modalRegions.length > 0) {\r\n modalRegions.forEach((modal) => modal.remove());\r\n }\r\n\r\n /* Фильтрация общего массива по выбранному региону */\r\n allProgramsRegionFiltred = arr.filter((item) =>\r\n item.regions.some((it) => it.regionId == 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 /* Модальные окна */\r\n function createModal() {\r\n if (allProgramsNoDublicate.length == 0) {\r\n Modal.classList.add(\"custom-modal__hidden\", \"modal-programs\");\r\n Modal.id = \"ProgramsModal\";\r\n Modal.innerHTML = `
\r\n

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

\r\n
`;\r\n document.body.append(Modal);\r\n blockedForm(\"block\");\r\n modal.openModal('ProgramsModal');\r\n } else if (arrStatus[0] == true && arrStatus[1] == false) {\r\n Modal.classList.add(\"custom-modal__hidden\", \"modal-programs\");\r\n Modal.id = \"ProgramsModal\";\r\n Modal.innerHTML = `
\r\n

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

\r\n
`;\r\n document.body.append(Modal);\r\n blockedForm(\"block\");\r\n modal.openModal('ProgramsModal');\r\n } else {\r\n Modal.classList.add(\"custom-modal__hidden\", \"modal-programs\");\r\n Modal.id = \"ProgramsModal\";\r\n Modal.innerHTML = `
\r\n

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

\r\n

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

\r\n
\r\n
`;\r\n document.body.append(Modal);\r\n\r\n /* Заполняем список доступных программ. Также проверка на наличие shortname на лендинг */\r\n allProgramsNoDublicate.forEach((item) => {\r\n document.querySelector(\".modal-programs__links\").innerHTML += `\r\n ${\r\n item.shortName\r\n ? `${item.name}`\r\n : \"\"\r\n }\r\n `;\r\n });/* Скрываекм модальное окно ТОП-5 программ, так как там все программы ТГУ */\r\n modal.openModal('ProgramsModal');\r\n // modalTop5Programs(region, Top5Programs);\r\n blockedForm(\"unBlock\");\r\n } \r\n }\r\n\r\n /* Фильтруем общий массив по shortName */\r\n let filterProgramsByShortname = arr.filter((it) => it.shortName == Url);\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.regionId)\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 logicShowModalCategory() != false)\r\n ) {\r\n createModal();\r\n } else {\r\n blockedForm(\"unBlock\");\r\n\r\n if (logicShowModalCategory() == false) {\r\n modalMissCategorySearchJob();\r\n blockedForm(\"block\");\r\n }\r\n }\r\n\r\n /* Логика вывода модального окна, если программа не доступна для категории Ищущих */\r\n function logicShowModalCategory() {\r\n if (category == \"12\") {\r\n let status = false,\r\n filterCategorySearchJob = arr.filter(\r\n (item) => item.availableCategories == 1\r\n );\r\n\r\n filterCategorySearchJob.forEach((program) => {\r\n if (program.shortName == Url) {\r\n status = true;\r\n }\r\n });\r\n\r\n return status;\r\n }\r\n }\r\n\r\n /* Блокировка отправки формы на сайтах программ при выводе модального окна с доступными программами в регионе */\r\n function blockedForm(status) {\r\n if (status == \"block\") {\r\n checkbox.style.display = \"none\";\r\n submit.disabled = true;\r\n } else {\r\n checkbox.style.display = \"block\";\r\n submit.disabled = false;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default modalMissProgProgram;\r\n","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;","import getByChance from \"./getByChance\";\r\n\r\nconst filterNoDublicate = (programsDublicate, region) => {\r\n let programs__obj = {},\r\n two_dimensial_arr = [],\r\n val,\r\n filterNoDublicatePrograms = [];\r\n\r\n /* Добавление программ в объект с разделением по shortname */\r\n for (var i = 0; i < programsDublicate.length; i++) {\r\n val = programsDublicate[i][\"shortName\"];\r\n\r\n if (!programs__obj.hasOwnProperty(val)) {\r\n programs__obj[val] = [];\r\n }\r\n\r\n programs__obj[val].push(programsDublicate[i]);\r\n }\r\n\r\n /* Добавление разделенных по массивам программ в один общий массив */\r\n for (let key in programs__obj) {\r\n if (programs__obj.hasOwnProperty(key)) {\r\n two_dimensial_arr.push(programs__obj[key]);\r\n }\r\n }\r\n\r\n /* Выборка программ путем рандомной функции процентного шанса */\r\n two_dimensial_arr.forEach((programs) => {\r\n filterNoDublicatePrograms.push(getByChance(programs, region));\r\n });\r\n\r\n return filterNoDublicatePrograms;\r\n};\r\n\r\nexport default filterNoDublicate;\r\n","/* Рандомная функция с процентным шансом */\r\nconst getByChance = (items, region) => {\r\n const totalChances = items.reduce((acc, c) => acc + c.dropChance, 0);\r\n const rnd = totalChances * Math.random();\r\n\r\n if (items.length < 2) {\r\n return items[0];\r\n } else {\r\n items.forEach((item) => {\r\n item.regions.forEach((el) => {\r\n if (el.regionId == region && el.link) {\r\n item.Redirect = true;\r\n }\r\n });\r\n });\r\n\r\n const result = items.filter((item) => item.Redirect);\r\n if (result.length == 0) {\r\n for (let i = 0, sum = 0; ; i++) {\r\n sum += items[i].dropChance;\r\n if (sum > rnd) return items[i];\r\n }\r\n } else if (result.length == 1) {\r\n return result[0];\r\n } else {\r\n for (let i = 0, sum = 0; ; i++) {\r\n sum += result[i].dropChance;\r\n if (sum > rnd) return result[i];\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default getByChance;\r\n","const initRegions = (requestPrograms, status, field) => {\r\n const link = \"https://2025.api.tgu-dpo.ru/regions/GetRegions\";\r\n let regionsList = [];\r\n\r\n /* Инициализация поля регионы */\r\n /* Добавление всех возможных регионов доступных программ */\r\n\r\n if (status == \"online\") { \r\n async function initRegionsOnline() {\r\n try {\r\n let response = await fetch(link),\r\n result = await response.json();\r\n \r\n function addRegionsSelect(id) {\r\n let regionsSelect = $(id);\r\n regionsSelect.html('').select2();\r\n \r\n result.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(`#${field}`);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n initRegionsOnline();\r\n } else { \r\n requestPrograms.forEach((item) => {\r\n item.regions.forEach((region) => {\r\n if (region.cities && region.cities.length > 0) {\r\n let data = {};\r\n data.regionId = region.regionId;\r\n data.regionName = region.regionName;\r\n \r\n regionsList.push(data);\r\n } else {\r\n let data = {};\r\n data.regionId = region.regionId;\r\n data.regionName = region.regionName;\r\n \r\n regionsList.push(data);\r\n }\r\n });\r\n });\r\n \r\n /* Удаление дублей регионов */\r\n const filterRegions = regionsList.filter(\r\n (obj, idx, array) =>\r\n idx === array.findIndex((t) => t.regionId === obj.regionId)\r\n );\r\n \r\n /* Инициализация поля Регионы */\r\n initRegionsOffline(filterRegions);\r\n \r\n /* Добавление регионов в форму */\r\n function initRegionsOffline(regions) {\r\n function addRegionsSelect(id) {\r\n let regionsSelect = $(id);\r\n regionsSelect.html('').select2();\r\n \r\n regions.forEach(function (el) {\r\n let selected = false,\r\n option = new Option(el.regionName, el.regionId, false, selected);\r\n \r\n option.accessKey = el.regionId;\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(`#${field}`);\r\n }\r\n } \r\n};\r\n\r\nexport default initRegions;\r\n","import getRedirectLink from \"../getRedirectLink\";\r\nimport modalMissProgMain from \"./modalMissProgMain\";\r\nimport modalMissProgProgram from \"./modalMissProgProgram\";\r\nimport getPageName from \"../../getPageName\";\r\nimport filterNoDublicate from \"../filterNoDublicate\";\r\nimport initRegions from \"../init-regions\";\r\n\r\nasync function initDropDownsProgramsOnline(pref, requestPrograms) {\r\n if (!pref) {\r\n pref = \"\";\r\n }\r\n\r\n let filterNoDublicatePrograms = [],\r\n filterPrograms = [],\r\n allProgramsRegion = [],\r\n level = \"\",\r\n region = \"\",\r\n category = \"\",\r\n allProgramsRegionFiltred = [],\r\n Category = document.getElementById(`Category${pref}`),\r\n Program = document.getElementById(`Program${pref}`),\r\n ProgramsHidden = document.querySelectorAll(\".program-hidden\"),\r\n DirectionHidden = document.querySelector(\".direction-hidden\"),\r\n Education = document.getElementById(`Education${pref}`),\r\n Regions = document.getElementById(`Regions${pref}`),\r\n Direction = document.getElementById(`Direction${pref}`),\r\n submitButton = document.getElementById(`form-btn${pref}`),\r\n formCheckbox = document.querySelector(`.form__checkboxs${pref}`),\r\n shortUrl = getPageName();\r\n\r\n /* Инициализация поля Регионы */\r\n initRegions(requestPrograms, \"online\", `Regions${pref}`);\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 region = e.target.value;\r\n $(`#Direction${pref}`).val(null).trigger(\"change\");\r\n\r\n /* Фильтрация общего массива в зависимости от выбранного региона */\r\n allProgramsRegionFiltred = allPrograms.filter((item) =>\r\n item.regions.some((it) => it.regionId == region)\r\n );\r\n\r\n /* Логика по отсеиванию программ с одинаковыми shortname, у которых нет в данном регионе задачи */\r\n let programsDublicate = structuredClone(allProgramsRegionFiltred);\r\n\r\n /* Обнуление массива программ перед выборкой */\r\n filterNoDublicatePrograms = [];\r\n filterNoDublicatePrograms = filterNoDublicate(programsDublicate, region);\r\n\r\n /* Добавление в переменную всех возможных программ для данного региона для отслеживания логики вывода модального окна с нужным сообщением */\r\n allProgramsRegion = [];\r\n allProgramsRegion = structuredClone(filterNoDublicatePrograms);\r\n\r\n /* Сценарии вывода программ для страниц с полем Выбора программы и без него */\r\n if (!ProgramsHidden.length) {\r\n logicEducationFields();\r\n } else {\r\n logicEducationFields();\r\n setAttrforSingleField();\r\n logicModalPageProgram();\r\n }\r\n };\r\n }\r\n\r\n /* Выбор категории */\r\n if (Category !== null) {\r\n Category.onchange = function (e) {\r\n $(`#Program${pref}`).val(null).trigger(\"change\");\r\n category = e.target.value;\r\n\r\n logicEducationFields();\r\n logicModalPageProgram();\r\n };\r\n }\r\n\r\n /* Выбор уровня образования */\r\n if (Education !== null) {\r\n Education.onchange = function (e) {\r\n $(`#Program${pref}`).val(null).trigger(\"change\");\r\n level = e.target.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 /* Фильтрация массива (с выбранным регионом) по направлению */\r\n const filterDirectionPrograms = structuredClone(\r\n allProgramsRegionFiltred\r\n ).filter((item) => item.directionId == this.value);\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.length && Program) {\r\n Program.onchange = function (e) {\r\n\r\n e.target.options[e.target.selectedIndex].setAttribute(\r\n \"linkrvr\",\r\n getRedirectLink(filterNoDublicatePrograms, e, region)\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 && category && 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(\r\n filterNoDublicatePrograms,\r\n region,\r\n submitButton,\r\n formCheckbox,\r\n category,\r\n shortUrl,\r\n [statusPO, statusDPO]\r\n );\r\n }\r\n }\r\n\r\n /* Логика полей в зависимости от выбора уровня образования */\r\n function logicEducationFields() {\r\n if (level == 1) {\r\n if (category == 12) {\r\n filterPrograms = filterNoDublicatePrograms\r\n .filter((item) => item.po)\r\n .filter((item) => item.availableCategories == 1);\r\n } else {\r\n filterPrograms = filterNoDublicatePrograms.filter((item) => item.po);\r\n }\r\n } else {\r\n if (category == 12) {\r\n filterPrograms = filterNoDublicatePrograms.filter(\r\n (item) => item.availableCategories == 1\r\n );\r\n } else {\r\n filterPrograms = filterNoDublicatePrograms;\r\n }\r\n }\r\n\r\n if (!ProgramsHidden.length) {\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(\"operator\", item.operator);\r\n option.setAttribute(\"shortName\", item.shortName);\r\n option.setAttribute(\"odinid\", item.id);\r\n option.setAttribute(\"programowner\", item.programOwner);\r\n\r\n Program.append(option);\r\n });\r\n }\r\n\r\n /* Если страница программы, добавляем необходимые аттрибуты к скрытым полям */\r\n function setAttrforSingleField() {\r\n let newFilterArr = filterNoDublicatePrograms.find(\r\n (it) => it.shortName == shortUrl\r\n );\r\n\r\n ProgramsHidden.forEach((programHidden) => {\r\n programHidden.setAttribute(\"shortname\", shortUrl);\r\n programHidden.setAttribute(\r\n \"linkrvr\",\r\n getRedirectLink(filterNoDublicatePrograms, programHidden, region)\r\n );\r\n });\r\n\r\n if (newFilterArr !== undefined) {\r\n ProgramsHidden.forEach((programHidden) => {\r\n programHidden.setAttribute(\"operator\", newFilterArr.operator);\r\n programHidden.setAttribute(\"odinid\", newFilterArr.id);\r\n programHidden.setAttribute(\"programowner\", newFilterArr.programOwner);\r\n });\r\n DirectionHidden.value = newFilterArr.directionId;\r\n }\r\n }\r\n}\r\n\r\nexport default initDropDownsProgramsOnline;\r\n","/* Модальное окно об отсутствии программ для Главной страницы */\r\nfunction modalMissProgMain(Regions, arr, arrAllProgramsRegions) {\r\n let elementEmptyModal = document.querySelector('.form__field-regions'), \r\n emptyModal = arrAllProgramsRegions.length == 0 ? \r\n `

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

` :\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","import modalMissCategorySearchJob from \"../modalMissCategorySearchJob\";\r\n\r\n/* Модальное окно об отсутствии программ на странице программ */\r\nfunction modalMissProgProgram(\r\n arr,\r\n region,\r\n submit,\r\n checkbox,\r\n category,\r\n Url,\r\n arrStatus,\r\n city\r\n) {\r\n let shortUrl = location.href.split(\"/\"),\r\n a = document.querySelector(\".ProgramsModal__btn\"),\r\n modal = document.createElement(\"div\"),\r\n regionsArr = [],\r\n allProgramsRegionFiltred = [],\r\n firstArr,\r\n secondArr,\r\n modalRegions = document.querySelectorAll(\".modal-programs\"),\r\n statusCity = false;\r\n\r\n /* Если не сайт программы, прекращаем выполнение функции */\r\n if (!shortUrl.includes(\"program\")) {\r\n return;\r\n }\r\n\r\n if (region && category) {\r\n /* Очищаем модальное окно */\r\n if (modalRegions.length > 0) {\r\n modalRegions.forEach((modal) => modal.remove());\r\n }\r\n\r\n /* Создаем модальное окно */\r\n if (!a) {\r\n (a = document.createElement(\"button\")),\r\n a.setAttribute(\"data-modal-open\", \"\");\r\n a.setAttribute(\"data-modal-id\", \"ProgramsModal\");\r\n a.setAttribute(\"data-modal-close\", \"\");\r\n a.classList.add(\"ProgramsModal__btn\");\r\n a.style.display = \"none\";\r\n document.body.append(a);\r\n }\r\n\r\n /* Фильтрация общего массива по выбранному региону */\r\n allProgramsRegionFiltred = arr.filter((item) =>\r\n item.regions.some((it) => it.regionId == 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 /* Проверка на доступность программы по выбранному городу */ \r\n allProgramsNoDublicate.forEach(i => {\r\n if (i.shortName == Url) {\r\n i.regions.forEach(j => {\r\n if (j.regionId == region) {\r\n j.cities.forEach(k => {\r\n if (k.city == city) {\r\n statusCity = true;\r\n }\r\n })\r\n }\r\n })\r\n }\r\n })\r\n\r\n /* Модальные окна */\r\n function createModal() {\r\n if (allProgramsNoDublicate.length == 0) {\r\n modal.classList.add(\"custom-modal__hidden\", \"modal-programs\");\r\n modal.id = \"ProgramsModal\";\r\n modal.innerHTML = `
\r\n

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

\r\n
`;\r\n document.body.append(modal);\r\n } else if (arrStatus[0] == true && arrStatus[1] == false) {\r\n modal.classList.add(\"custom-modal__hidden\", \"modal-programs\");\r\n modal.id = \"ProgramsModal\";\r\n\r\n if (statusCity == false) {\r\n modal.innerHTML = `
\r\n

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

\r\n
`;\r\n } else {\r\n modal.innerHTML = `
\r\n

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

\r\n
`;\r\n }\r\n \r\n document.body.append(modal);\r\n } else {\r\n modal.classList.add(\"custom-modal__hidden\", \"modal-programs\");\r\n modal.id = \"ProgramsModal\";\r\n modal.innerHTML = `
\r\n

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

\r\n

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

\r\n
\r\n
`;\r\n document.body.append(modal);\r\n\r\n /* Заполняем список доступных программ. Также проверка на наличие shortname на лендинг */\r\n allProgramsNoDublicate.forEach((item) => {\r\n document.querySelector(\".modal-programs__links\").innerHTML += `\r\n ${\r\n item.shortName\r\n ? `${item.name}`\r\n : \"\"\r\n }\r\n `;\r\n });\r\n }\r\n }\r\n\r\n /* Фильтруем общий массив по shortName */\r\n let filterProgramsByShortname = arr.filter((it) => it.shortName == Url);\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.regionId)\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 logicShowModalCategory() != false)\r\n ) {\r\n createModal();\r\n a.click();\r\n blockedForm(\"block\");\r\n } else {\r\n blockedForm(\"unBlock\");\r\n\r\n if (logicShowModalCategory() == false) {\r\n modalMissCategorySearchJob();\r\n blockedForm(\"block\");\r\n }\r\n }\r\n\r\n /* Логика вывода модального окна, если программа не доступна для категории Ищущих */\r\n function logicShowModalCategory() {\r\n if (category == \"12\") {\r\n let status = false,\r\n filterCategorySearchJob = arr.filter(\r\n (item) => item.availableCategories == 1\r\n );\r\n\r\n filterCategorySearchJob.forEach((program) => {\r\n if (program.shortName == Url) {\r\n status = true;\r\n }\r\n });\r\n\r\n return status;\r\n }\r\n }\r\n\r\n /* Блокировка отправки формы на сайтах программ при выводе модального окна с доступными программами в регионе */\r\n function blockedForm(status) {\r\n if (status == \"block\") {\r\n checkbox.style.display = \"none\";\r\n submit.disabled = true;\r\n } else {\r\n checkbox.style.display = \"block\";\r\n submit.disabled = false;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default modalMissProgProgram;\r\n","import getRedirectLink from \"../getRedirectLink\";\r\nimport modalMissProgMain from \"./modalMissProgMain\";\r\nimport modalMissProgProgram from \"./modalMissProgProgram\";\r\nimport getPageName from \"../../getPageName\";\r\nimport initRegions from \"../init-regions\";\r\nimport { all } from \"axios\";\r\n\r\nasync function initDropDownsProgramsOffline(pref, requestPrograms) {\r\n if (!pref) {\r\n pref = \"\";\r\n }\r\n\r\n const url = location.href.split(\"/\");\r\n\r\n let filterNoDublicatePrograms = [],\r\n filterPrograms = [],\r\n level = \"\",\r\n city = \"\",\r\n region = \"\",\r\n category = \"\",\r\n allProgramsRegionFiltred = [],\r\n Category = document.getElementById(`Category${pref}`),\r\n Program = document.getElementById(`Program${pref}`),\r\n City = document.getElementById(`City${pref}`),\r\n ProgramsHidden = document.querySelectorAll(\".program-hidden\"),\r\n Education = document.getElementById(`Education${pref}`),\r\n Regions = document.getElementById(`Regions${pref}`),\r\n submitButton = document.getElementById(`form-btn${pref}`),\r\n formCheckbox = document.querySelector(`.form__checkboxs${pref}`),\r\n shortUrl = getPageName();\r\n\r\n /* Инициализация поля Регионы */\r\n initRegions(requestPrograms, \"offline\", `Regions${pref}`);\r\n\r\n /* Общий уникальный массив с операторами */\r\n let allPrograms = requestPrograms;\r\n\r\n /* Список городов, доступный для данного региона */\r\n let cities = [];\r\n\r\n /* Выбор региона и программ в зависимости от региона */\r\n if (Regions !== null) {\r\n Regions.onchange = function (e) {\r\n region = e.target.value;\r\n\r\n /* Фильтрация общего массива в зависимости от выбранного региона */\r\n allProgramsRegionFiltred = allPrograms.filter((item) =>\r\n item.regions.some((it) => it.regionId == region)\r\n );\r\n\r\n /* Клонирование списка программ */\r\n let programsDublicate = structuredClone(allProgramsRegionFiltred);\r\n\r\n /* Обнуление списка городов и программ */\r\n cities = [];\r\n filterNoDublicatePrograms = [];\r\n city = \"\";\r\n\r\n /* Логика по добавлению списка городов, доступных в данном регионе и списка программ */\r\n\r\n // Формирование массива городов для конкретной страницы программы\r\n if (url.includes(\"program\")) {\r\n programsDublicate = programsDublicate.filter(\r\n (item) => item.shortName == shortUrl\r\n );\r\n }\r\n\r\n programsDublicate.forEach((i) => {\r\n i.regions.forEach((j) => {\r\n if (j.regionId == region) {\r\n filterNoDublicatePrograms.push(i);\r\n j.cities.forEach((k) => {\r\n cities.push(k.city);\r\n });\r\n }\r\n });\r\n });\r\n\r\n cities = cities.filter((item, index) => cities.indexOf(item) === index);\r\n\r\n /* Сценарии вывода программ для страниц с полем Выбора программы и без него */\r\n if (!ProgramsHidden.length) {\r\n logicEducationFields();\r\n [...Program.children].map((item, idx) => {\r\n if (idx > 0) {\r\n item.remove();\r\n }\r\n });\r\n } else {\r\n logicEducationFields();\r\n setAttrforSingleField();\r\n logicModalPageProgram();\r\n }\r\n\r\n /* Создаем option только на главной для поля Город */\r\n renderOptions(cities, \"City\");\r\n };\r\n }\r\n\r\n /* Выбор категории */\r\n if (Category !== null) {\r\n Category.onchange = function (e) {\r\n $(`#Program${pref}`).val(null).trigger(\"change\");\r\n category = e.target.value;\r\n\r\n logicEducationFields();\r\n logicModalPageProgram();\r\n };\r\n }\r\n\r\n /* Выбор уровня образования */\r\n if (Education !== null) {\r\n Education.onchange = function (e) {\r\n $(`#Program${pref}`).val(null).trigger(\"change\");\r\n level = e.target.value;\r\n\r\n logicEducationFields();\r\n logicModalPageProgram();\r\n };\r\n }\r\n\r\n /* Выбор уровня образования */\r\n if (City !== null) {\r\n City.onchange = function (e) {\r\n $(`#Program${pref}`).val(null).trigger(\"change\");\r\n city = e.target.value;\r\n\r\n logicEducationFields();\r\n logicModalPageProgram();\r\n };\r\n }\r\n\r\n /* Выбор программы. Получаем ссылку на РВР и устанавливаем ее в качестве аттрибута */\r\n if (!ProgramsHidden.length && Program) {\r\n Program.onchange = function (e) { \r\n e.target.options[e.target.selectedIndex].setAttribute(\r\n \"linkrvr\",\r\n getRedirectLink(requestPrograms, e, region)\r\n );\r\n };\r\n }\r\n\r\n /* Логика вывода модальных окон на странице программы */\r\n function logicModalPageProgram() {\r\n /* Если не сайт программы, прекращаем выполнение функции */\r\n if (!url.includes(\"program\")) {\r\n return;\r\n }\r\n\r\n if (region && category && 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(\r\n filterNoDublicatePrograms,\r\n region,\r\n submitButton,\r\n formCheckbox,\r\n category,\r\n shortUrl,\r\n [statusPO, statusDPO],\r\n city\r\n );\r\n }\r\n }\r\n\r\n /* Логика полей в зависимости от выбора уровня образования */\r\n function logicEducationFields() {\r\n let searchCityProgram = [];\r\n\r\n if (level == 1) {\r\n if (category == 12) {\r\n searchCityProgram = filterNoDublicatePrograms\r\n .filter((item) => item.po)\r\n .filter((item) => item.availableCategories == 1);\r\n } else {\r\n searchCityProgram = filterNoDublicatePrograms.filter((item) => item.po);\r\n }\r\n } else {\r\n if (category == 12) {\r\n searchCityProgram = filterNoDublicatePrograms.filter(\r\n (item) => item.availableCategories == 1\r\n );\r\n } else {\r\n searchCityProgram = filterNoDublicatePrograms;\r\n }\r\n }\r\n\r\n if (city == \"\") {\r\n filterPrograms = searchCityProgram;\r\n } else {\r\n filterPrograms = [];\r\n\r\n searchCityProgram.forEach((i) => {\r\n i.regions.forEach((j) => {\r\n if (j.regionId == region) {\r\n j.cities.forEach((k) => {\r\n if (k.city == city) {\r\n filterPrograms.push(i);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n filterPrograms = filterPrograms.filter(\r\n (item, idx, filterPrograms) =>\r\n filterPrograms.findIndex((el) => el.shortName === item.shortName) == idx\r\n );\r\n\r\n if (!url.includes(\"program\")) {\r\n /* Создаем option только на главной для поля Программы */\r\n renderOptions(filterPrograms, \"Program\");\r\n }\r\n\r\n if (!ProgramsHidden.length) {\r\n /* Модальное окно отсутствия программ по выбранному региону для главной страницы */\r\n modalMissProgMain(Regions, filterPrograms, filterNoDublicatePrograms);\r\n }\r\n }\r\n\r\n /* Создаем нужные options */\r\n function renderOptions(arr, field) {\r\n if (field == \"City\") {\r\n [...City.children].map((item, idx) => {\r\n if (idx > 0) {\r\n item.remove();\r\n }\r\n });\r\n\r\n cities.forEach((item) => {\r\n let option = new Option(item, item, false, false);\r\n City.append(option);\r\n });\r\n } else {\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(\"operator\", item.operator);\r\n option.setAttribute(\"shortName\", item.shortName);\r\n option.setAttribute(\"odinid\", item.id);\r\n option.setAttribute(\"programowner\", item.programOwner);\r\n\r\n Program.append(option);\r\n });\r\n }\r\n }\r\n\r\n /* Если страница программы, добавляем необходимые аттрибуты к скрытым полям */\r\n function setAttrforSingleField() {\r\n let newFilterArr = filterNoDublicatePrograms.find(\r\n (it) => it.shortName == shortUrl\r\n );\r\n\r\n ProgramsHidden.forEach((programHidden) => {\r\n programHidden.setAttribute(\"shortname\", shortUrl);\r\n programHidden.setAttribute(\r\n \"linkrvr\",\r\n getRedirectLink(requestPrograms, programHidden, region)\r\n );\r\n });\r\n\r\n if (newFilterArr !== undefined) {\r\n ProgramsHidden.forEach((programHidden) => {\r\n programHidden.setAttribute(\"operator\", newFilterArr.operator);\r\n programHidden.setAttribute(\"odinid\", newFilterArr.id);\r\n programHidden.setAttribute(\"programowner\", newFilterArr.programOwner);\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default initDropDownsProgramsOffline;\r\n","async function netRequestsOnline() {\r\n const regionsDefault = [\r\n {\r\n name: \"Алтайский край\",\r\n regionId: 69,\r\n },\r\n {\r\n name: \"Амурская область\",\r\n regionId: 31,\r\n },\r\n {\r\n name: \"Архангельская область\",\r\n regionId: 32,\r\n },\r\n {\r\n name: \"Астраханская область\",\r\n regionId: 33,\r\n },\r\n {\r\n name: \"Белгородская область\",\r\n regionId: 34,\r\n },\r\n {\r\n name: \"Брянская область\",\r\n regionId: 35,\r\n },\r\n {\r\n name: \"Владимирская область\",\r\n regionId: 36,\r\n },\r\n {\r\n name: \"Волгоградская область\",\r\n regionId: 37,\r\n },\r\n {\r\n name: \"Вологодская область\",\r\n regionId: 9,\r\n },\r\n {\r\n name: \"Воронежская область\",\r\n regionId: 10,\r\n },\r\n {\r\n name: \"город Байконур\",\r\n regionId: 59,\r\n },\r\n {\r\n name: \"город Москва\",\r\n regionId: 77,\r\n },\r\n {\r\n name: \"город Санкт-Петербург\",\r\n regionId: 78,\r\n },\r\n {\r\n name: \"город Севастополь\",\r\n regionId: 58,\r\n },\r\n {\r\n name: \"Донецкая Народная республика\",\r\n regionId: 87,\r\n },\r\n {\r\n name: \"Еврейская АО\",\r\n regionId: 79,\r\n },\r\n {\r\n name: \"Забайкальский край\",\r\n regionId: 75,\r\n },\r\n {\r\n name: \"Запорожская область\",\r\n regionId: 90,\r\n },\r\n {\r\n name: \"Ивановская область\",\r\n regionId: 11,\r\n },\r\n {\r\n name: \"Иркутская область\",\r\n regionId: 23,\r\n },\r\n {\r\n name: \"Кабардино-Балкарская Республика\",\r\n regionId: 19,\r\n },\r\n {\r\n name: \"Калининградская область\",\r\n regionId: 12,\r\n },\r\n {\r\n name: \"Калужская область\",\r\n regionId: 38,\r\n },\r\n {\r\n name: \"Камчатский край\",\r\n regionId: 39,\r\n },\r\n {\r\n name: \"Карачаево-Черкесская Республика\",\r\n regionId: 21,\r\n },\r\n {\r\n name: \"Кемеровская область — Кузбасс\",\r\n regionId: 40,\r\n },\r\n {\r\n name: \"Кировская область\",\r\n regionId: 41,\r\n },\r\n {\r\n name: \"Костромская область\",\r\n regionId: 13,\r\n },\r\n {\r\n name: \"Краснодарский край\",\r\n regionId: 70,\r\n },\r\n {\r\n name: \"Красноярский край\",\r\n regionId: 71,\r\n },\r\n {\r\n name: \"Курганская область\",\r\n regionId: 14,\r\n },\r\n {\r\n name: \"Курская область\",\r\n regionId: 86,\r\n },\r\n {\r\n name: \"Ленинградская область\",\r\n regionId: 15,\r\n },\r\n {\r\n name: \"Липецкая область\",\r\n regionId: 16,\r\n },\r\n {\r\n name: \"Луганская Народная республика\",\r\n regionId: 88,\r\n },\r\n {\r\n name: \"Магаданская область\",\r\n regionId: 60,\r\n },\r\n {\r\n name: \"Московская область\",\r\n regionId: 61,\r\n },\r\n {\r\n name: \"Мурманская область\",\r\n regionId: 62,\r\n },\r\n {\r\n name: \"Ненецкий АО\",\r\n regionId: 53,\r\n },\r\n {\r\n name: \"Нижегородская область\",\r\n regionId: 24,\r\n },\r\n {\r\n name: \"Новгородская область\",\r\n regionId: 25,\r\n },\r\n {\r\n name: \"Новосибирская область\",\r\n regionId: 26,\r\n },\r\n {\r\n name: \"Омская область\",\r\n regionId: 73,\r\n },\r\n {\r\n name: \"Оренбургская область\",\r\n regionId: 63,\r\n },\r\n {\r\n name: \"Орловская область\",\r\n regionId: 64,\r\n },\r\n {\r\n name: \"Пензенская область\",\r\n regionId: 42,\r\n },\r\n {\r\n name: \"Пермский край\",\r\n regionId: 81,\r\n },\r\n {\r\n name: \"Приморский край\",\r\n regionId: 72,\r\n },\r\n {\r\n name: \"Псковская область\",\r\n regionId: 82,\r\n },\r\n {\r\n name: \"Республика Адыгея\",\r\n regionId: 80,\r\n },\r\n {\r\n name: \"Республика Алтай\",\r\n regionId: 3,\r\n },\r\n {\r\n name: \"Республика Башкортостан\",\r\n regionId: 1,\r\n },\r\n {\r\n name: \"Республика Бурятия\",\r\n regionId: 2,\r\n },\r\n {\r\n name: \"Республика Дагестан\",\r\n regionId: 17,\r\n },\r\n {\r\n name: \"Республика Ингушетия\",\r\n regionId: 18,\r\n },\r\n {\r\n name: \"Республика Калмыкия\",\r\n regionId: 20,\r\n },\r\n {\r\n name: \"Республика Карелия\",\r\n regionId: 22,\r\n },\r\n {\r\n name: \"Республика Коми\",\r\n regionId: 4,\r\n },\r\n {\r\n name: \"Республика Крым\",\r\n regionId: 57,\r\n },\r\n {\r\n name: \"Республика Марий Эл\",\r\n regionId: 5,\r\n },\r\n {\r\n name: \"Республика Мордовия\",\r\n regionId: 6,\r\n },\r\n {\r\n name: \"Республика Саха (Якутия)\",\r\n regionId: 7,\r\n },\r\n {\r\n name: \"Республика Северная Осетия - Алания\",\r\n regionId: 8,\r\n },\r\n {\r\n name: \"Республика Татарстан\",\r\n regionId: 27,\r\n },\r\n {\r\n name: \"Республика Тыва\",\r\n regionId: 65,\r\n },\r\n {\r\n name: \"Республика Хакасия\",\r\n regionId: 66,\r\n },\r\n {\r\n name: \"Ростовская область\",\r\n regionId: 83,\r\n },\r\n {\r\n name: \"Рязанская область\",\r\n regionId: 84,\r\n },\r\n {\r\n name: \"Самарская область\",\r\n regionId: 85,\r\n },\r\n {\r\n name: \"Саратовская область\",\r\n regionId: 43,\r\n },\r\n {\r\n name: \"Сахалинская область\",\r\n regionId: 44,\r\n },\r\n {\r\n name: \"Свердловская область\",\r\n regionId: 45,\r\n },\r\n {\r\n name: \"Смоленская область\",\r\n regionId: 46,\r\n },\r\n {\r\n name: \"Ставропольский край\",\r\n regionId: 29,\r\n },\r\n {\r\n name: \"Тамбовская область\",\r\n regionId: 47,\r\n },\r\n {\r\n name: \"Тверская область\",\r\n regionId: 48,\r\n },\r\n {\r\n name: \"Томская область\",\r\n regionId: 49,\r\n },\r\n {\r\n name: \"Тульская область\",\r\n regionId: 50,\r\n },\r\n {\r\n name: \"Тюменская область\",\r\n regionId: 51,\r\n },\r\n {\r\n name: \"Удмуртская Республика\",\r\n regionId: 28,\r\n },\r\n {\r\n name: \"Ульяновская область\",\r\n regionId: 52,\r\n },\r\n {\r\n name: \"Хабаровский край\",\r\n regionId: 30,\r\n },\r\n {\r\n name: \"Ханты-Мансийский АО — Югра\",\r\n regionId: 54,\r\n },\r\n {\r\n name: \"Херсонская область\",\r\n regionId: 89,\r\n },\r\n {\r\n name: \"Челябинская область\",\r\n regionId: 74,\r\n },\r\n {\r\n name: \"Чеченская Республика\",\r\n regionId: 67,\r\n },\r\n {\r\n name: \"Чувашская Республика — Чувашия\",\r\n regionId: 68,\r\n },\r\n {\r\n name: \"Чукотский АО\",\r\n regionId: 55,\r\n },\r\n {\r\n name: \"Ямало-Ненецкий АО\",\r\n regionId: 56,\r\n },\r\n {\r\n name: \"Ярославская область\",\r\n regionId: 76,\r\n },\r\n ];\r\n\r\n const TGU = {\r\n operator: \"TGU\",\r\n dropChance: 0.5,\r\n DPO: {\r\n fetch:\r\n \"\",\r\n json: \"/files/TGUDPO.json\",\r\n },\r\n PO: {\r\n fetch:\r\n \"\",\r\n json: \"/files/TGUPO.json\",\r\n },\r\n };\r\n\r\n async function operatorPrograms(Operator) {\r\n let arr = [];\r\n\r\n let dpo_fetch = await getJson(Operator.DPO.fetch),\r\n dpo_json = await getJson(Operator.DPO.json),\r\n po_fetch = await getJson(Operator.PO.fetch),\r\n po_json = await getJson(Operator.PO.json);\r\n\r\n addPropertyProgram(dpo_fetch, arr, Operator);\r\n addPropertyProgram(dpo_json, arr, Operator);\r\n addPropertyProgram(po_fetch, arr, Operator, \"po\");\r\n addPropertyProgram(po_json, arr, Operator, \"po\");\r\n\r\n return arr.filter(\r\n (item, idx, arr) =>\r\n arr.findIndex((el) => el.shortName === item.shortName) == idx\r\n );\r\n }\r\n\r\n /* Добавление свойств для программ */\r\n function addPropertyProgram(programs, array, Operator, status = \"dpo\") {\r\n if (programs) {\r\n programs.map((item) => {\r\n item.operator = Operator.operator;\r\n item.dropChance = Operator.dropChance;\r\n\r\n if (status == \"po\") {\r\n item.po = true;\r\n }\r\n });\r\n\r\n array.push(...programs);\r\n }\r\n }\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 result.map((item) => {\r\n if (!item.regions) {\r\n item.regions = regionsDefault;\r\n }\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 const TGU_PROGRAMS = await operatorPrograms(TGU);\r\n\r\n return [...TGU_PROGRAMS];\r\n}\r\n\r\nexport default netRequestsOnline;\r\n","async function netRequestsOffline() {\r\n const PROGRAMS = {\r\n operator: \"TGU\",\r\n DPO: {\r\n json: \"\",\r\n },\r\n PO: {\r\n fetch:\r\n \"https://2025.api.tgu-dpo.ru/regions/GetAllProgramsWithRegions?isShowTgu=true&isVisibleWithoutDirection=true&withoutEducation=true&exceptOffline=false&exceptOnline=true\",\r\n json: \"/files/Programs.json\",\r\n },\r\n };\r\n\r\n async function operatorPrograms(Operator) {\r\n let arr = [];\r\n\r\n let dpo_json = await getJson(Operator.DPO.json),\r\n po_fetch = await getJson(Operator.PO.fetch),\r\n po_json = await getJson(Operator.PO.json);\r\n\r\n addPropertyProgram(dpo_json, arr, Operator);\r\n addPropertyProgram(po_fetch, arr, Operator, \"po\");\r\n addPropertyProgram(po_json, arr, Operator, \"po\");\r\n\r\n /* Добавление регионов для программ с редиректом */\r\n for (let i = 0; i < arr.length; i++) {\r\n for (let j = i + 1; j < arr.length; j++) {\r\n if (arr[i].shortName === arr[j].shortName) {\r\n arr[i].regions = arr[i].regions.concat(arr[j].regions);\r\n }\r\n }\r\n }\r\n\r\n /* Удаление дублей программ */\r\n arr = arr.filter(\r\n (item, idx, arr) =>\r\n arr.findIndex((el) => el.shortName === item.shortName) == idx\r\n );\r\n\r\n /* Добавление городов */\r\n for (let item of arr) {\r\n for (let i = 0; i < item.regions.length; i++) {\r\n for (let j = i + 1; j < item.regions.length; j++) {\r\n if (item.regions[i].regionId === item.regions[j].regionId) {\r\n item.regions[i].cities = item.regions[i].cities.concat(item.regions[j].cities);\r\n item.regions[j].dublicate = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* Удаление дублей регионов */\r\n for (let item of arr) {\r\n item.regions = item.regions.filter((item) => item.dublicate != true);\r\n }\r\n \r\n return arr;\r\n }\r\n\r\n /* Добавление свойств для программ */\r\n function addPropertyProgram(programs, array, Operator, status = \"dpo\") {\r\n if (programs) {\r\n programs.map((item) => {\r\n item.operator = Operator.operator;\r\n\r\n if (status == \"po\") {\r\n item.po = true;\r\n }\r\n\r\n /* Удаление регионов с отсутствием городов */\r\n let result = item.regions.filter(region => region.cities.length > 0);\r\n item.regions = [];\r\n item.regions = result;\r\n });\r\n\r\n array.push(...programs);\r\n }\r\n }\r\n\r\n /* Запрос на получение json */\r\n async function getJson(patch) {\r\n if (!patch) return;\r\n\r\n let response = await fetch(patch);\r\n let result = await response.json();\r\n\r\n return result;\r\n }\r\n\r\n return await operatorPrograms(PROGRAMS);\r\n}\r\n\r\nexport default netRequestsOffline;\r\n","import filterNoDublicate from \"./filterNoDublicate\";\r\nimport getRedirectLink from \"./getRedirectLink\";\r\nimport initRegions from \"./init-regions\";\r\n\r\nconst shortForm = (OnlinePrograms, OfflinePrograms) => {\r\n const formBlock = document.getElementById(\"shortForm\");\r\n\r\n if (!formBlock) {\r\n return;\r\n }\r\n\r\n try {\r\n if (OnlinePrograms.length > 0 || OfflinePrograms.length > 0) {\r\n const loader = document.querySelector(\".monitoring__loader\");\r\n\r\n loader.classList.remove(\"active\");\r\n formBlock.style.display = \"block\";\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n const Regions = document.getElementById(\"shortFormRegions\"),\r\n Program = document.getElementById(\"shortFormProgram\"),\r\n link = document.getElementById(\"shortForm-link\"),\r\n Format = document.getElementById(\"shortTrainingFormat\"),\r\n City = document.getElementById(\"shortCity\"),\r\n HiddenBlock = document.getElementById(\"hiddenBlockShortForm\");\r\n\r\n let region = \"\",\r\n format = \"\",\r\n city = \"\",\r\n allPrograms = [],\r\n allProgramsRegionFiltred = [],\r\n filterNoDublicatePrograms = [],\r\n allProgramsFilter = [],\r\n filterPrograms = [];\r\n\r\n /* Список городов, доступный для данного региона */\r\n let cities = [];\r\n\r\n /* Событие на изменение поля Формат обучения */\r\n Format.onchange = function (e) {\r\n HiddenBlock.style.display = \"block\";\r\n format = e.target.value;\r\n $(`#shortFormRegions`).val(null).trigger(\"change\");\r\n $(`#shortFormProgram`).val(null).trigger(\"change\");\r\n\r\n let elementEmptyModal = document.querySelector(\".form__field-regions\");\r\n elementEmptyModal?.remove();\r\n allPrograms = [];\r\n\r\n if (format == \"online\") {\r\n allPrograms = OnlinePrograms;\r\n City.parentElement.style.display = \"none\";\r\n City.parentElement\r\n .querySelector(\".city-required\")\r\n .classList.remove(\"form-required\");\r\n initRegions(OnlinePrograms, \"online\", \"shortFormRegions\");\r\n } else {\r\n allPrograms = OfflinePrograms;\r\n $(`#shortCity`).val(null).trigger(\"change\");\r\n City.parentElement.style.display = \"block\";\r\n City.parentElement\r\n .querySelector(\".city-required\")\r\n .classList.add(\"form-required\");\r\n initRegions(OfflinePrograms, \"offline\", \"shortFormRegions\");\r\n }\r\n };\r\n\r\n /* Событие на изменение поля Регионы */\r\n Regions.onchange = function (e) {\r\n region = e.target.value;\r\n\r\n /* Фильтрация общего массива в зависимости от выбранного региона */\r\n allProgramsRegionFiltred = allPrograms.filter((item) =>\r\n item.regions.some((it) => it.regionId == region)\r\n );\r\n\r\n /* Логика по отсеиванию программ с одинаковыми shortname, у которых нет в данном регионе редиректа */\r\n let programsDublicate = structuredClone(allProgramsRegionFiltred);\r\n\r\n filterNoDublicatePrograms = [];\r\n allProgramsFilter = [];\r\n allProgramsFilter = filterNoDublicate(programsDublicate);\r\n\r\n if (format == \"online\") {\r\n allProgramsFilter.forEach((item) => {\r\n item.regions.forEach((el) => {\r\n if (el.regionId == region && el.link) {\r\n item.Redirect = true;\r\n }\r\n });\r\n });\r\n\r\n filterNoDublicatePrograms = allProgramsFilter.filter(\r\n (item) => item.Redirect\r\n );\r\n\r\n logicFieldCategory();\r\n renderOptions(filterPrograms, \"Program\"); \r\n } else {\r\n cities = [];\r\n city = \"\";\r\n\r\n allProgramsFilter.forEach((i) => {\r\n i.regions.forEach((j) => {\r\n if (j.regionId == region && j.link) {\r\n i.Redirect = true;\r\n filterNoDublicatePrograms.push(i);\r\n j.cities.forEach((k) => {\r\n cities.push(k.city);\r\n });\r\n }\r\n });\r\n });\r\n\r\n cities = cities.filter((item, index) => cities.indexOf(item) === index);\r\n\r\n logicFieldCategory();\r\n renderOptions(filterPrograms, \"City\");\r\n } \r\n };\r\n\r\n /* События на изменение поля Город */\r\n City.onchange = function (e) {\r\n link.classList.add(\"disabled\");\r\n city = e.target.value;\r\n\r\n renderOptions(filterPrograms, \"Program\");\r\n logicFieldCategory();\r\n renderOptions(filterPrograms); \r\n };\r\n\r\n /* Добавление ссылки на кнопку */\r\n Program.onchange = function (e) {\r\n if (region != \"\") {\r\n let redirect = getRedirectLink(filterNoDublicatePrograms, e, region);\r\n\r\n e.target.options[e.target.selectedIndex].setAttribute(\r\n \"linkrvr\",\r\n redirect\r\n );\r\n\r\n /* Добавляем ссылку на РВР в кнопку */\r\n link.classList.remove(\"disabled\");\r\n link.href = redirect;\r\n link.addEventListener(\"click\", () => {\r\n if (window.yaCounter94760218) {\r\n ym(94760218, \"reachGoal\", \"form_short\");\r\n }\r\n });\r\n }\r\n };\r\n\r\n /* Логика на поле Категории */\r\n function logicFieldCategory() {\r\n link.classList.add(\"disabled\");\r\n filterPrograms = filterNoDublicatePrograms;\r\n\r\n if (region != \"\") {\r\n modalMissProgMain(\r\n Regions,\r\n filterPrograms,\r\n filterNoDublicatePrograms\r\n );\r\n }\r\n }\r\n\r\n /* Создаем нужные options */\r\n function renderOptions(arr, field) {\r\n if (field == \"City\") {\r\n [...City.children].map((item, idx) => {\r\n if (idx > 0) {\r\n item.remove();\r\n }\r\n });\r\n\r\n cities.forEach((item) => {\r\n let option = new Option(item, item, false, false);\r\n City.append(option);\r\n });\r\n } else {\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(\"operator\", item.operator);\r\n option.setAttribute(\"shortName\", item.shortName);\r\n option.setAttribute(\"odinid\", item.id);\r\n\r\n Program.append(option);\r\n });\r\n }\r\n }\r\n\r\n /* Модальное окно об отсутствии программ для Главной страницы */\r\n function modalMissProgMain(Regions, arr, arrAllProgramsRegions) {\r\n let elementEmptyModal = document.querySelector(\".form__field-regions\"),\r\n emptyModal =\r\n arrAllProgramsRegions.length == 0\r\n ? `

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

`\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\n\r\nexport default shortForm;\r\n","/** Checks if value is string */\nfunction isString(str) {\n return typeof str === 'string' || str instanceof String;\n}\n\n/** Checks if value is object */\nfunction isObject(obj) {\n var _obj$constructor;\n return typeof obj === 'object' && obj != null && (obj == null || (_obj$constructor = obj.constructor) == null ? void 0 : _obj$constructor.name) === 'Object';\n}\nfunction pick(obj, keys) {\n if (Array.isArray(keys)) return pick(obj, (_, k) => keys.includes(k));\n return Object.entries(obj).reduce((acc, _ref) => {\n let [k, v] = _ref;\n if (keys(v, k)) acc[k] = v;\n return acc;\n }, {});\n}\n\n/** Direction */\nconst DIRECTION = {\n NONE: 'NONE',\n LEFT: 'LEFT',\n FORCE_LEFT: 'FORCE_LEFT',\n RIGHT: 'RIGHT',\n FORCE_RIGHT: 'FORCE_RIGHT'\n};\n\n/** Direction */\n\nfunction forceDirection(direction) {\n switch (direction) {\n case DIRECTION.LEFT:\n return DIRECTION.FORCE_LEFT;\n case DIRECTION.RIGHT:\n return DIRECTION.FORCE_RIGHT;\n default:\n return direction;\n }\n}\n\n/** Escapes regular expression control chars */\nfunction escapeRegExp(str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n}\n\n// cloned from https://github.com/epoberezkin/fast-deep-equal with small changes\nfunction objectIncludes(b, a) {\n if (a === b) return true;\n const arrA = Array.isArray(a),\n arrB = Array.isArray(b);\n let i;\n if (arrA && arrB) {\n if (a.length != b.length) return false;\n for (i = 0; i < a.length; i++) if (!objectIncludes(a[i], b[i])) return false;\n return true;\n }\n if (arrA != arrB) return false;\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n const dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA && dateB) return a.getTime() == b.getTime();\n if (dateA != dateB) return false;\n const regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA && regexpB) return a.toString() == b.toString();\n if (regexpA != regexpB) return false;\n const keys = Object.keys(a);\n // if (keys.length !== Object.keys(b).length) return false;\n\n for (i = 0; i < keys.length; i++) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = 0; i < keys.length; i++) if (!objectIncludes(b[keys[i]], a[keys[i]])) return false;\n return true;\n } else if (a && b && typeof a === 'function' && typeof b === 'function') {\n return a.toString() === b.toString();\n }\n return false;\n}\n\n/** Selection range */\n\nexport { DIRECTION, escapeRegExp, forceDirection, isObject, isString, objectIncludes, pick };\n","import { DIRECTION } from './utils.js';\n\n/** Provides details of changing input */\nclass ActionDetails {\n /** Current input value */\n\n /** Current cursor position */\n\n /** Old input value */\n\n /** Old selection */\n\n constructor(opts) {\n Object.assign(this, opts);\n\n // double check if left part was changed (autofilling, other non-standard input triggers)\n while (this.value.slice(0, this.startChangePos) !== this.oldValue.slice(0, this.startChangePos)) {\n --this.oldSelection.start;\n }\n }\n\n /** Start changing position */\n get startChangePos() {\n return Math.min(this.cursorPos, this.oldSelection.start);\n }\n\n /** Inserted symbols count */\n get insertedCount() {\n return this.cursorPos - this.startChangePos;\n }\n\n /** Inserted symbols */\n get inserted() {\n return this.value.substr(this.startChangePos, this.insertedCount);\n }\n\n /** Removed symbols count */\n get removedCount() {\n // Math.max for opposite operation\n return Math.max(this.oldSelection.end - this.startChangePos ||\n // for Delete\n this.oldValue.length - this.value.length, 0);\n }\n\n /** Removed symbols */\n get removed() {\n return this.oldValue.substr(this.startChangePos, this.removedCount);\n }\n\n /** Unchanged head symbols */\n get head() {\n return this.value.substring(0, this.startChangePos);\n }\n\n /** Unchanged tail symbols */\n get tail() {\n return this.value.substring(this.startChangePos + this.insertedCount);\n }\n\n /** Remove direction */\n get removeDirection() {\n if (!this.removedCount || this.insertedCount) return DIRECTION.NONE;\n\n // align right if delete at right\n return (this.oldSelection.end === this.cursorPos || this.oldSelection.start === this.cursorPos) &&\n // if not range removed (event with backspace)\n this.oldSelection.end === this.oldSelection.start ? DIRECTION.RIGHT : DIRECTION.LEFT;\n }\n}\n\nexport { ActionDetails as default };\n","/** Applies mask on element */\nfunction IMask(el, opts) {\n // currently available only for input-like elements\n return new IMask.InputMask(el, opts);\n}\n\nexport { IMask as default };\n","import { isString, isObject, pick } from '../core/utils.js';\nimport IMask from '../core/holder.js';\n\n// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754\n// export function maskedClass(mask: string): typeof MaskedPattern;\n// export function maskedClass(mask: DateConstructor): typeof MaskedDate;\n// export function maskedClass(mask: NumberConstructor): typeof MaskedNumber;\n// export function maskedClass(mask: Array | ArrayConstructor): typeof MaskedDynamic;\n// export function maskedClass(mask: MaskedDate): typeof MaskedDate;\n// export function maskedClass(mask: MaskedNumber): typeof MaskedNumber;\n// export function maskedClass(mask: MaskedEnum): typeof MaskedEnum;\n// export function maskedClass(mask: MaskedRange): typeof MaskedRange;\n// export function maskedClass(mask: MaskedRegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: MaskedFunction): typeof MaskedFunction;\n// export function maskedClass(mask: MaskedPattern): typeof MaskedPattern;\n// export function maskedClass(mask: MaskedDynamic): typeof MaskedDynamic;\n// export function maskedClass(mask: Masked): typeof Masked;\n// export function maskedClass(mask: typeof Masked): typeof Masked;\n// export function maskedClass(mask: typeof MaskedDate): typeof MaskedDate;\n// export function maskedClass(mask: typeof MaskedNumber): typeof MaskedNumber;\n// export function maskedClass(mask: typeof MaskedEnum): typeof MaskedEnum;\n// export function maskedClass(mask: typeof MaskedRange): typeof MaskedRange;\n// export function maskedClass(mask: typeof MaskedRegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: typeof MaskedFunction): typeof MaskedFunction;\n// export function maskedClass(mask: typeof MaskedPattern): typeof MaskedPattern;\n// export function maskedClass(mask: typeof MaskedDynamic): typeof MaskedDynamic;\n// export function maskedClass (mask: Mask): Mask;\n// export function maskedClass(mask: RegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: (value: string, ...args: any[]) => boolean): typeof MaskedFunction;\n/** Get Masked class by mask type */\nfunction maskedClass(mask) /* TODO */{\n if (mask == null) throw new Error('mask property should be defined');\n if (mask instanceof RegExp) return IMask.MaskedRegExp;\n if (isString(mask)) return IMask.MaskedPattern;\n if (mask === Date) return IMask.MaskedDate;\n if (mask === Number) return IMask.MaskedNumber;\n if (Array.isArray(mask) || mask === Array) return IMask.MaskedDynamic;\n if (IMask.Masked && mask.prototype instanceof IMask.Masked) return mask;\n if (IMask.Masked && mask instanceof IMask.Masked) return mask.constructor;\n if (mask instanceof Function) return IMask.MaskedFunction;\n console.warn('Mask not found for mask', mask); // eslint-disable-line no-console\n return IMask.Masked;\n}\nfunction normalizeOpts(opts) {\n if (!opts) throw new Error('Options in not defined');\n if (IMask.Masked) {\n if (opts.prototype instanceof IMask.Masked) return {\n mask: opts\n };\n\n /*\n handle cases like:\n 1) opts = Masked\n 2) opts = { mask: Masked, ...instanceOpts }\n */\n const {\n mask = undefined,\n ...instanceOpts\n } = opts instanceof IMask.Masked ? {\n mask: opts\n } : isObject(opts) && opts.mask instanceof IMask.Masked ? opts : {};\n if (mask) {\n const _mask = mask.mask;\n return {\n ...pick(mask, (_, k) => !k.startsWith('_')),\n mask: mask.constructor,\n _mask,\n ...instanceOpts\n };\n }\n }\n if (!isObject(opts)) return {\n mask: opts\n };\n return {\n ...opts\n };\n}\n\n// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754\n\n// From masked\n// export default function createMask (opts: Opts): ReturnMasked;\n// // From masked class\n// export default function createMask, ReturnMasked extends Masked=InstanceType> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedDate=MaskedDate> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedNumber=MaskedNumber> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedEnum=MaskedEnum> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedRange=MaskedRange> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedRegExp=MaskedRegExp> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedFunction=MaskedFunction> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedPattern=MaskedPattern> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedDynamic=MaskedDynamic> (opts: Opts): ReturnMasked;\n// // From mask opts\n// export default function createMask, ReturnMasked=Opts extends MaskedOptions ? M : never> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedRegExp=MaskedRegExp> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedFunction=MaskedFunction> (opts: Opts): ReturnMasked;\n\n/** Creates new {@link Masked} depending on mask type */\nfunction createMask(opts) {\n if (IMask.Masked && opts instanceof IMask.Masked) return opts;\n const nOpts = normalizeOpts(opts);\n const MaskedClass = maskedClass(nOpts.mask);\n if (!MaskedClass) throw new Error('Masked class is not found for provided mask, appropriate module needs to be imported manually before creating mask.');\n if (nOpts.mask === MaskedClass) delete nOpts.mask;\n if (nOpts._mask) {\n nOpts.mask = nOpts._mask;\n delete nOpts._mask;\n }\n return new MaskedClass(nOpts);\n}\nIMask.createMask = createMask;\n\nexport { createMask as default, maskedClass, normalizeOpts };\n","import IMask from '../core/holder.js';\n\n/** Generic element API to use with mask */\nclass MaskElement {\n /** */\n\n /** */\n\n /** */\n\n /** Safely returns selection start */\n get selectionStart() {\n let start;\n try {\n start = this._unsafeSelectionStart;\n } catch {}\n return start != null ? start : this.value.length;\n }\n\n /** Safely returns selection end */\n get selectionEnd() {\n let end;\n try {\n end = this._unsafeSelectionEnd;\n } catch {}\n return end != null ? end : this.value.length;\n }\n\n /** Safely sets element selection */\n select(start, end) {\n if (start == null || end == null || start === this.selectionStart && end === this.selectionEnd) return;\n try {\n this._unsafeSelect(start, end);\n } catch {}\n }\n\n /** */\n get isActive() {\n return false;\n }\n /** */\n\n /** */\n\n /** */\n}\n\nIMask.MaskElement = MaskElement;\n\nexport { MaskElement as default };\n","import MaskElement from './mask-element.js';\nimport IMask from '../core/holder.js';\n\n/** Bridge between HTMLElement and {@link Masked} */\nclass HTMLMaskElement extends MaskElement {\n /** HTMLElement to use mask on */\n\n constructor(input) {\n super();\n this.input = input;\n this._handlers = {};\n }\n get rootElement() {\n var _this$input$getRootNo, _this$input$getRootNo2, _this$input;\n return (_this$input$getRootNo = (_this$input$getRootNo2 = (_this$input = this.input).getRootNode) == null ? void 0 : _this$input$getRootNo2.call(_this$input)) != null ? _this$input$getRootNo : document;\n }\n\n /**\n Is element in focus\n */\n get isActive() {\n return this.input === this.rootElement.activeElement;\n }\n\n /**\n Binds HTMLElement events to mask internal events\n */\n bindEvents(handlers) {\n Object.keys(handlers).forEach(event => this._toggleEventHandler(HTMLMaskElement.EVENTS_MAP[event], handlers[event]));\n }\n\n /**\n Unbinds HTMLElement events to mask internal events\n */\n unbindEvents() {\n Object.keys(this._handlers).forEach(event => this._toggleEventHandler(event));\n }\n _toggleEventHandler(event, handler) {\n if (this._handlers[event]) {\n this.input.removeEventListener(event, this._handlers[event]);\n delete this._handlers[event];\n }\n if (handler) {\n this.input.addEventListener(event, handler);\n this._handlers[event] = handler;\n }\n }\n}\n/** Mapping between HTMLElement events and mask internal events */\nHTMLMaskElement.EVENTS_MAP = {\n selectionChange: 'keydown',\n input: 'input',\n drop: 'drop',\n click: 'click',\n focus: 'focus',\n commit: 'blur'\n};\nIMask.HTMLMaskElement = HTMLMaskElement;\n\nexport { HTMLMaskElement as default };\n","import HTMLMaskElement from './html-mask-element.js';\nimport IMask from '../core/holder.js';\nimport './mask-element.js';\n\n/** Bridge between InputElement and {@link Masked} */\nclass HTMLInputMaskElement extends HTMLMaskElement {\n /** InputElement to use mask on */\n\n constructor(input) {\n super(input);\n this.input = input;\n this._handlers = {};\n }\n\n /** Returns InputElement selection start */\n get _unsafeSelectionStart() {\n return this.input.selectionStart != null ? this.input.selectionStart : this.value.length;\n }\n\n /** Returns InputElement selection end */\n get _unsafeSelectionEnd() {\n return this.input.selectionEnd;\n }\n\n /** Sets InputElement selection */\n _unsafeSelect(start, end) {\n this.input.setSelectionRange(start, end);\n }\n get value() {\n return this.input.value;\n }\n set value(value) {\n this.input.value = value;\n }\n}\nIMask.HTMLMaskElement = HTMLMaskElement;\n\nexport { HTMLInputMaskElement as default };\n","import HTMLMaskElement from './html-mask-element.js';\nimport IMask from '../core/holder.js';\nimport './mask-element.js';\n\nclass HTMLContenteditableMaskElement extends HTMLMaskElement {\n /** Returns HTMLElement selection start */\n get _unsafeSelectionStart() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (focusOffset == null || anchorOffset == null || anchorOffset < focusOffset) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /** Returns HTMLElement selection end */\n get _unsafeSelectionEnd() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (focusOffset == null || anchorOffset == null || anchorOffset > focusOffset) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /** Sets HTMLElement selection */\n _unsafeSelect(start, end) {\n if (!this.rootElement.createRange) return;\n const range = this.rootElement.createRange();\n range.setStart(this.input.firstChild || this.input, start);\n range.setEnd(this.input.lastChild || this.input, end);\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n /** HTMLElement value */\n get value() {\n return this.input.textContent || '';\n }\n set value(value) {\n this.input.textContent = value;\n }\n}\nIMask.HTMLContenteditableMaskElement = HTMLContenteditableMaskElement;\n\nexport { HTMLContenteditableMaskElement as default };\n","import { objectIncludes, DIRECTION } from '../core/utils.js';\nimport ActionDetails from '../core/action-details.js';\nimport createMask, { maskedClass } from '../masked/factory.js';\nimport MaskElement from './mask-element.js';\nimport HTMLInputMaskElement from './html-input-mask-element.js';\nimport HTMLContenteditableMaskElement from './html-contenteditable-mask-element.js';\nimport IMask from '../core/holder.js';\nimport './html-mask-element.js';\n\n/** Listens to element events and controls changes between element and {@link Masked} */\nclass InputMask {\n /**\n View element\n */\n\n /** Internal {@link Masked} model */\n\n constructor(el, opts) {\n this.el = el instanceof MaskElement ? el : el.isContentEditable && el.tagName !== 'INPUT' && el.tagName !== 'TEXTAREA' ? new HTMLContenteditableMaskElement(el) : new HTMLInputMaskElement(el);\n this.masked = createMask(opts);\n this._listeners = {};\n this._value = '';\n this._unmaskedValue = '';\n this._saveSelection = this._saveSelection.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onChange = this._onChange.bind(this);\n this._onDrop = this._onDrop.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onClick = this._onClick.bind(this);\n this.alignCursor = this.alignCursor.bind(this);\n this.alignCursorFriendly = this.alignCursorFriendly.bind(this);\n this._bindEvents();\n\n // refresh\n this.updateValue();\n this._onChange();\n }\n maskEquals(mask) {\n var _this$masked;\n return mask == null || ((_this$masked = this.masked) == null ? void 0 : _this$masked.maskEquals(mask));\n }\n\n /** Masked */\n get mask() {\n return this.masked.mask;\n }\n set mask(mask) {\n if (this.maskEquals(mask)) return;\n if (!(mask instanceof IMask.Masked) && this.masked.constructor === maskedClass(mask)) {\n // TODO \"any\" no idea\n this.masked.updateOptions({\n mask\n });\n return;\n }\n const masked = mask instanceof IMask.Masked ? mask : createMask({\n mask\n });\n masked.unmaskedValue = this.masked.unmaskedValue;\n this.masked = masked;\n }\n\n /** Raw value */\n get value() {\n return this._value;\n }\n set value(str) {\n if (this.value === str) return;\n this.masked.value = str;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Unmasked value */\n get unmaskedValue() {\n return this._unmaskedValue;\n }\n set unmaskedValue(str) {\n if (this.unmaskedValue === str) return;\n this.masked.unmaskedValue = str;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Typed unmasked value */\n get typedValue() {\n return this.masked.typedValue;\n }\n set typedValue(val) {\n if (this.masked.typedValueEquals(val)) return;\n this.masked.typedValue = val;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Display value */\n get displayValue() {\n return this.masked.displayValue;\n }\n\n /** Starts listening to element events */\n _bindEvents() {\n this.el.bindEvents({\n selectionChange: this._saveSelection,\n input: this._onInput,\n drop: this._onDrop,\n click: this._onClick,\n focus: this._onFocus,\n commit: this._onChange\n });\n }\n\n /** Stops listening to element events */\n _unbindEvents() {\n if (this.el) this.el.unbindEvents();\n }\n\n /** Fires custom event */\n _fireEvent(ev, e) {\n const listeners = this._listeners[ev];\n if (!listeners) return;\n listeners.forEach(l => l(e));\n }\n\n /** Current selection start */\n get selectionStart() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart;\n }\n\n /** Current cursor position */\n get cursorPos() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd;\n }\n set cursorPos(pos) {\n if (!this.el || !this.el.isActive) return;\n this.el.select(pos, pos);\n this._saveSelection();\n }\n\n /** Stores current selection */\n _saveSelection( /* ev */\n ) {\n if (this.displayValue !== this.el.value) {\n console.warn('Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly.'); // eslint-disable-line no-console\n }\n\n this._selection = {\n start: this.selectionStart,\n end: this.cursorPos\n };\n }\n\n /** Syncronizes model value from view */\n updateValue() {\n this.masked.value = this.el.value;\n this._value = this.masked.value;\n }\n\n /** Syncronizes view from model value, fires change events */\n updateControl() {\n const newUnmaskedValue = this.masked.unmaskedValue;\n const newValue = this.masked.value;\n const newDisplayValue = this.displayValue;\n const isChanged = this.unmaskedValue !== newUnmaskedValue || this.value !== newValue;\n this._unmaskedValue = newUnmaskedValue;\n this._value = newValue;\n if (this.el.value !== newDisplayValue) this.el.value = newDisplayValue;\n if (isChanged) this._fireChangeEvents();\n }\n\n /** Updates options with deep equal check, recreates {@link Masked} model if mask type changes */\n updateOptions(opts) {\n const {\n mask,\n ...restOpts\n } = opts;\n const updateMask = !this.maskEquals(mask);\n const updateOpts = !objectIncludes(this.masked, restOpts);\n if (updateMask) this.mask = mask;\n if (updateOpts) this.masked.updateOptions(restOpts); // TODO\n\n if (updateMask || updateOpts) this.updateControl();\n }\n\n /** Updates cursor */\n updateCursor(cursorPos) {\n if (cursorPos == null) return;\n this.cursorPos = cursorPos;\n\n // also queue change cursor for mobile browsers\n this._delayUpdateCursor(cursorPos);\n }\n\n /** Delays cursor update to support mobile browsers */\n _delayUpdateCursor(cursorPos) {\n this._abortUpdateCursor();\n this._changingCursorPos = cursorPos;\n this._cursorChanging = setTimeout(() => {\n if (!this.el) return; // if was destroyed\n this.cursorPos = this._changingCursorPos;\n this._abortUpdateCursor();\n }, 10);\n }\n\n /** Fires custom events */\n _fireChangeEvents() {\n this._fireEvent('accept', this._inputEvent);\n if (this.masked.isComplete) this._fireEvent('complete', this._inputEvent);\n }\n\n /** Aborts delayed cursor update */\n _abortUpdateCursor() {\n if (this._cursorChanging) {\n clearTimeout(this._cursorChanging);\n delete this._cursorChanging;\n }\n }\n\n /** Aligns cursor to nearest available position */\n alignCursor() {\n this.cursorPos = this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos, DIRECTION.LEFT));\n }\n\n /** Aligns cursor only if selection is empty */\n alignCursorFriendly() {\n if (this.selectionStart !== this.cursorPos) return; // skip if range is selected\n this.alignCursor();\n }\n\n /** Adds listener on custom event */\n on(ev, handler) {\n if (!this._listeners[ev]) this._listeners[ev] = [];\n this._listeners[ev].push(handler);\n return this;\n }\n\n /** Removes custom event listener */\n off(ev, handler) {\n if (!this._listeners[ev]) return this;\n if (!handler) {\n delete this._listeners[ev];\n return this;\n }\n const hIndex = this._listeners[ev].indexOf(handler);\n if (hIndex >= 0) this._listeners[ev].splice(hIndex, 1);\n return this;\n }\n\n /** Handles view input event */\n _onInput(e) {\n this._inputEvent = e;\n this._abortUpdateCursor();\n\n // fix strange IE behavior\n if (!this._selection) return this.updateValue();\n const details = new ActionDetails({\n // new state\n value: this.el.value,\n cursorPos: this.cursorPos,\n // old state\n oldValue: this.displayValue,\n oldSelection: this._selection\n });\n const oldRawValue = this.masked.rawInputValue;\n const offset = this.masked.splice(details.startChangePos, details.removed.length, details.inserted, details.removeDirection, {\n input: true,\n raw: true\n }).offset;\n\n // force align in remove direction only if no input chars were removed\n // otherwise we still need to align with NONE (to get out from fixed symbols for instance)\n const removeDirection = oldRawValue === this.masked.rawInputValue ? details.removeDirection : DIRECTION.NONE;\n let cursorPos = this.masked.nearestInputPos(details.startChangePos + offset, removeDirection);\n if (removeDirection !== DIRECTION.NONE) cursorPos = this.masked.nearestInputPos(cursorPos, DIRECTION.NONE);\n this.updateControl();\n this.updateCursor(cursorPos);\n delete this._inputEvent;\n }\n\n /** Handles view change event and commits model value */\n _onChange() {\n if (this.displayValue !== this.el.value) {\n this.updateValue();\n }\n this.masked.doCommit();\n this.updateControl();\n this._saveSelection();\n }\n\n /** Handles view drop event, prevents by default */\n _onDrop(ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n /** Restore last selection on focus */\n _onFocus(ev) {\n this.alignCursorFriendly();\n }\n\n /** Restore last selection on focus */\n _onClick(ev) {\n this.alignCursorFriendly();\n }\n\n /** Unbind view events and removes element reference */\n destroy() {\n this._unbindEvents();\n this._listeners.length = 0;\n delete this.el;\n }\n}\nIMask.InputMask = InputMask;\n\nexport { InputMask as default };\n","import IMask from './holder.js';\n\n/** Provides details of changing model value */\nclass ChangeDetails {\n /** Inserted symbols */\n\n /** Can skip chars */\n\n /** Additional offset if any changes occurred before tail */\n\n /** Raw inserted is used by dynamic mask */\n\n static normalize(prep) {\n return Array.isArray(prep) ? prep : [prep, new ChangeDetails()];\n }\n constructor(details) {\n Object.assign(this, {\n inserted: '',\n rawInserted: '',\n skip: false,\n tailShift: 0\n }, details);\n }\n\n /** Aggregate changes */\n aggregate(details) {\n this.rawInserted += details.rawInserted;\n this.skip = this.skip || details.skip;\n this.inserted += details.inserted;\n this.tailShift += details.tailShift;\n return this;\n }\n\n /** Total offset considering all changes */\n get offset() {\n return this.tailShift + this.inserted.length;\n }\n}\nIMask.ChangeDetails = ChangeDetails;\n\nexport { ChangeDetails as default };\n","/** Provides details of continuous extracted tail */\nclass ContinuousTailDetails {\n /** Tail value as string */\n\n /** Tail start position */\n\n /** Start position */\n\n constructor(value, from, stop) {\n if (value === void 0) {\n value = '';\n }\n if (from === void 0) {\n from = 0;\n }\n this.value = value;\n this.from = from;\n this.stop = stop;\n }\n toString() {\n return this.value;\n }\n extend(tail) {\n this.value += String(tail);\n }\n appendTo(masked) {\n return masked.append(this.toString(), {\n tail: true\n }).aggregate(masked._appendPlaceholder());\n }\n get state() {\n return {\n value: this.value,\n from: this.from,\n stop: this.stop\n };\n }\n set state(state) {\n Object.assign(this, state);\n }\n unshift(beforePos) {\n if (!this.value.length || beforePos != null && this.from >= beforePos) return '';\n const shiftChar = this.value[0];\n this.value = this.value.slice(1);\n return shiftChar;\n }\n shift() {\n if (!this.value.length) return '';\n const shiftChar = this.value[this.value.length - 1];\n this.value = this.value.slice(0, -1);\n return shiftChar;\n }\n}\n\nexport { ContinuousTailDetails as default };\n","import ChangeDetails from '../core/change-details.js';\nimport ContinuousTailDetails from '../core/continuous-tail-details.js';\nimport { isString, DIRECTION, forceDirection } from '../core/utils.js';\nimport IMask from '../core/holder.js';\n\n/** Append flags */\n\n/** Extract flags */\n\n// see https://github.com/microsoft/TypeScript/issues/6223\n\n/** Provides common masking stuff */\nclass Masked {\n /** */\n\n /** */\n\n /** Transforms value before mask processing */\n\n /** Transforms each char before mask processing */\n\n /** Validates if value is acceptable */\n\n /** Does additional processing at the end of editing */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n this._value = '';\n this._update({\n ...Masked.DEFAULTS,\n ...opts\n });\n this._initialized = true;\n }\n\n /** Sets and applies new options */\n updateOptions(opts) {\n if (!Object.keys(opts).length) return;\n this.withValueRefresh(this._update.bind(this, opts));\n }\n\n /** Sets new options */\n _update(opts) {\n Object.assign(this, opts);\n }\n\n /** Mask state */\n get state() {\n return {\n _value: this.value,\n _rawInputValue: this.rawInputValue\n };\n }\n set state(state) {\n this._value = state._value;\n }\n\n /** Resets value */\n reset() {\n this._value = '';\n }\n get value() {\n return this._value;\n }\n set value(value) {\n this.resolve(value, {\n input: true\n });\n }\n\n /** Resolve new value */\n resolve(value, flags) {\n if (flags === void 0) {\n flags = {\n input: true\n };\n }\n this.reset();\n this.append(value, flags, '');\n this.doCommit();\n }\n get unmaskedValue() {\n return this.value;\n }\n set unmaskedValue(value) {\n this.resolve(value, {});\n }\n get typedValue() {\n return this.parse ? this.parse(this.value, this) : this.unmaskedValue;\n }\n set typedValue(value) {\n if (this.format) {\n this.value = this.format(value, this);\n } else {\n this.unmaskedValue = String(value);\n }\n }\n\n /** Value that includes raw user input */\n get rawInputValue() {\n return this.extractInput(0, this.displayValue.length, {\n raw: true\n });\n }\n set rawInputValue(value) {\n this.resolve(value, {\n raw: true\n });\n }\n get displayValue() {\n return this.value;\n }\n get isComplete() {\n return true;\n }\n get isFilled() {\n return this.isComplete;\n }\n\n /** Finds nearest input position in direction */\n nearestInputPos(cursorPos, direction) {\n return cursorPos;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return Math.min(this.displayValue.length, toPos - fromPos);\n }\n\n /** Extracts value in range considering flags */\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return this.displayValue.slice(fromPos, toPos);\n }\n\n /** Extracts tail in range */\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return new ContinuousTailDetails(this.extractInput(fromPos, toPos), fromPos);\n }\n\n /** Appends tail */\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n\n /** Appends char */\n _appendCharRaw(ch, flags) {\n if (!ch) return new ChangeDetails();\n this._value += ch;\n return new ChangeDetails({\n inserted: ch,\n rawInserted: ch\n });\n }\n\n /** Appends char */\n _appendChar(ch, flags, checkTail) {\n if (flags === void 0) {\n flags = {};\n }\n const consistentState = this.state;\n let details;\n [ch, details] = this.doPrepareChar(ch, flags);\n details = details.aggregate(this._appendCharRaw(ch, flags));\n if (details.inserted) {\n let consistentTail;\n let appended = this.doValidate(flags) !== false;\n if (appended && checkTail != null) {\n // validation ok, check tail\n const beforeTailState = this.state;\n if (this.overwrite === true) {\n consistentTail = checkTail.state;\n checkTail.unshift(this.displayValue.length - details.tailShift);\n }\n let tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted === checkTail.toString();\n\n // not ok, try shift\n if (!(appended && tailDetails.inserted) && this.overwrite === 'shift') {\n this.state = beforeTailState;\n consistentTail = checkTail.state;\n checkTail.shift();\n tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted === checkTail.toString();\n }\n\n // if ok, rollback state after tail\n if (appended && tailDetails.inserted) this.state = beforeTailState;\n }\n\n // revert all if something went wrong\n if (!appended) {\n details = new ChangeDetails();\n this.state = consistentState;\n if (checkTail && consistentTail) checkTail.state = consistentTail;\n }\n }\n return details;\n }\n\n /** Appends optional placeholder at the end */\n _appendPlaceholder() {\n return new ChangeDetails();\n }\n\n /** Appends optional eager placeholder at the end */\n _appendEager() {\n return new ChangeDetails();\n }\n\n /** Appends symbols considering flags */\n append(str, flags, tail) {\n if (!isString(str)) throw new Error('value should be string');\n const checkTail = isString(tail) ? new ContinuousTailDetails(String(tail)) : tail;\n if (flags != null && flags.tail) flags._beforeTailState = this.state;\n let details;\n [str, details] = this.doPrepare(str, flags);\n for (let ci = 0; ci < str.length; ++ci) {\n const d = this._appendChar(str[ci], flags, checkTail);\n if (!d.rawInserted && !this.doSkipInvalid(str[ci], flags, checkTail)) break;\n details.aggregate(d);\n }\n if ((this.eager === true || this.eager === 'append') && flags != null && flags.input && str) {\n details.aggregate(this._appendEager());\n }\n\n // append tail but aggregate only tailShift\n if (checkTail != null) {\n details.tailShift += this.appendTail(checkTail).tailShift;\n // TODO it's a good idea to clear state after appending ends\n // but it causes bugs when one append calls another (when dynamic dispatch set rawInputValue)\n // this._resetBeforeTailState();\n }\n\n return details;\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n this._value = this.displayValue.slice(0, fromPos) + this.displayValue.slice(toPos);\n return new ChangeDetails();\n }\n\n /** Calls function and reapplies current value */\n withValueRefresh(fn) {\n if (this._refreshing || !this._initialized) return fn();\n this._refreshing = true;\n const rawInput = this.rawInputValue;\n const value = this.value;\n const ret = fn();\n this.rawInputValue = rawInput;\n // append lost trailing chars at the end\n if (this.value && this.value !== value && value.indexOf(this.value) === 0) {\n this.append(value.slice(this.displayValue.length), {}, '');\n }\n delete this._refreshing;\n return ret;\n }\n runIsolated(fn) {\n if (this._isolated || !this._initialized) return fn(this);\n this._isolated = true;\n const state = this.state;\n const ret = fn(this);\n this.state = state;\n delete this._isolated;\n return ret;\n }\n doSkipInvalid(ch, flags, checkTail) {\n return Boolean(this.skipInvalid);\n }\n\n /** Prepares string before mask processing */\n doPrepare(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n return ChangeDetails.normalize(this.prepare ? this.prepare(str, this, flags) : str);\n }\n\n /** Prepares each char before mask processing */\n doPrepareChar(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n return ChangeDetails.normalize(this.prepareChar ? this.prepareChar(str, this, flags) : str);\n }\n\n /** Validates if value is acceptable */\n doValidate(flags) {\n return (!this.validate || this.validate(this.value, this, flags)) && (!this.parent || this.parent.doValidate(flags));\n }\n\n /** Does additional processing at the end of editing */\n doCommit() {\n if (this.commit) this.commit(this.value, this);\n }\n splice(start, deleteCount, inserted, removeDirection, flags) {\n if (removeDirection === void 0) {\n removeDirection = DIRECTION.NONE;\n }\n if (flags === void 0) {\n flags = {\n input: true\n };\n }\n const tailPos = start + deleteCount;\n const tail = this.extractTail(tailPos);\n const eagerRemove = this.eager === true || this.eager === 'remove';\n let oldRawValue;\n if (eagerRemove) {\n removeDirection = forceDirection(removeDirection);\n oldRawValue = this.extractInput(0, tailPos, {\n raw: true\n });\n }\n let startChangePos = start;\n const details = new ChangeDetails();\n\n // if it is just deletion without insertion\n if (removeDirection !== DIRECTION.NONE) {\n startChangePos = this.nearestInputPos(start, deleteCount > 1 && start !== 0 && !eagerRemove ? DIRECTION.NONE : removeDirection);\n\n // adjust tailShift if start was aligned\n details.tailShift = startChangePos - start;\n }\n details.aggregate(this.remove(startChangePos));\n if (eagerRemove && removeDirection !== DIRECTION.NONE && oldRawValue === this.rawInputValue) {\n if (removeDirection === DIRECTION.FORCE_LEFT) {\n let valLength;\n while (oldRawValue === this.rawInputValue && (valLength = this.displayValue.length)) {\n details.aggregate(new ChangeDetails({\n tailShift: -1\n })).aggregate(this.remove(valLength - 1));\n }\n } else if (removeDirection === DIRECTION.FORCE_RIGHT) {\n tail.unshift();\n }\n }\n return details.aggregate(this.append(inserted, flags, tail));\n }\n maskEquals(mask) {\n return this.mask === mask;\n }\n typedValueEquals(value) {\n const tval = this.typedValue;\n return value === tval || Masked.EMPTY_VALUES.includes(value) && Masked.EMPTY_VALUES.includes(tval) || (this.format ? this.format(value, this) === this.format(this.typedValue, this) : false);\n }\n}\nMasked.DEFAULTS = {\n skipInvalid: true\n};\nMasked.EMPTY_VALUES = [undefined, null, ''];\nIMask.Masked = Masked;\n\nexport { Masked as default };\n","import ChangeDetails from '../../core/change-details.js';\nimport { isString } from '../../core/utils.js';\nimport ContinuousTailDetails from '../../core/continuous-tail-details.js';\nimport IMask from '../../core/holder.js';\n\nclass ChunksTailDetails {\n /** */\n\n constructor(chunks, from) {\n if (chunks === void 0) {\n chunks = [];\n }\n if (from === void 0) {\n from = 0;\n }\n this.chunks = chunks;\n this.from = from;\n }\n toString() {\n return this.chunks.map(String).join('');\n }\n extend(tailChunk) {\n if (!String(tailChunk)) return;\n tailChunk = isString(tailChunk) ? new ContinuousTailDetails(String(tailChunk)) : tailChunk;\n const lastChunk = this.chunks[this.chunks.length - 1];\n const extendLast = lastChunk && (\n // if stops are same or tail has no stop\n lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&\n // if tail chunk goes just after last chunk\n tailChunk.from === lastChunk.from + lastChunk.toString().length;\n if (tailChunk instanceof ContinuousTailDetails) {\n // check the ability to extend previous chunk\n if (extendLast) {\n // extend previous chunk\n lastChunk.extend(tailChunk.toString());\n } else {\n // append new chunk\n this.chunks.push(tailChunk);\n }\n } else if (tailChunk instanceof ChunksTailDetails) {\n if (tailChunk.stop == null) {\n // unwrap floating chunks to parent, keeping `from` pos\n let firstTailChunk;\n while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {\n firstTailChunk = tailChunk.chunks.shift(); // not possible to be `undefined` because length was checked above\n firstTailChunk.from += tailChunk.from;\n this.extend(firstTailChunk);\n }\n }\n\n // if tail chunk still has value\n if (tailChunk.toString()) {\n // if chunks contains stops, then popup stop to container\n tailChunk.stop = tailChunk.blockIndex;\n this.chunks.push(tailChunk);\n }\n }\n }\n appendTo(masked) {\n if (!(masked instanceof IMask.MaskedPattern)) {\n const tail = new ContinuousTailDetails(this.toString());\n return tail.appendTo(masked);\n }\n const details = new ChangeDetails();\n for (let ci = 0; ci < this.chunks.length && !details.skip; ++ci) {\n const chunk = this.chunks[ci];\n const lastBlockIter = masked._mapPosToBlock(masked.displayValue.length);\n const stop = chunk.stop;\n let chunkBlock;\n if (stop != null && (\n // if block not found or stop is behind lastBlock\n !lastBlockIter || lastBlockIter.index <= stop)) {\n if (chunk instanceof ChunksTailDetails ||\n // for continuous block also check if stop is exist\n masked._stops.indexOf(stop) >= 0) {\n const phDetails = masked._appendPlaceholder(stop);\n details.aggregate(phDetails);\n }\n chunkBlock = chunk instanceof ChunksTailDetails && masked._blocks[stop];\n }\n if (chunkBlock) {\n const tailDetails = chunkBlock.appendTail(chunk);\n tailDetails.skip = false; // always ignore skip, it will be set on last\n details.aggregate(tailDetails);\n masked._value += tailDetails.inserted;\n\n // get not inserted chars\n const remainChars = chunk.toString().slice(tailDetails.rawInserted.length);\n if (remainChars) details.aggregate(masked.append(remainChars, {\n tail: true\n }));\n } else {\n details.aggregate(masked.append(chunk.toString(), {\n tail: true\n }));\n }\n }\n return details;\n }\n get state() {\n return {\n chunks: this.chunks.map(c => c.state),\n from: this.from,\n stop: this.stop,\n blockIndex: this.blockIndex\n };\n }\n set state(state) {\n const {\n chunks,\n ...props\n } = state;\n Object.assign(this, props);\n this.chunks = chunks.map(cstate => {\n const chunk = \"chunks\" in cstate ? new ChunksTailDetails() : new ContinuousTailDetails();\n chunk.state = cstate;\n return chunk;\n });\n }\n unshift(beforePos) {\n if (!this.chunks.length || beforePos != null && this.from >= beforePos) return '';\n const chunkShiftPos = beforePos != null ? beforePos - this.from : beforePos;\n let ci = 0;\n while (ci < this.chunks.length) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.unshift(chunkShiftPos);\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n ++ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n shift() {\n if (!this.chunks.length) return '';\n let ci = this.chunks.length - 1;\n while (0 <= ci) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.shift();\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n --ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n}\n\nexport { ChunksTailDetails as default };\n","import { DIRECTION } from '../../core/utils.js';\n\nclass PatternCursor {\n constructor(masked, pos) {\n this.masked = masked;\n this._log = [];\n const {\n offset,\n index\n } = masked._mapPosToBlock(pos) || (pos < 0 ?\n // first\n {\n index: 0,\n offset: 0\n } :\n // last\n {\n index: this.masked._blocks.length,\n offset: 0\n });\n this.offset = offset;\n this.index = index;\n this.ok = false;\n }\n get block() {\n return this.masked._blocks[this.index];\n }\n get pos() {\n return this.masked._blockStartPos(this.index) + this.offset;\n }\n get state() {\n return {\n index: this.index,\n offset: this.offset,\n ok: this.ok\n };\n }\n set state(s) {\n Object.assign(this, s);\n }\n pushState() {\n this._log.push(this.state);\n }\n popState() {\n const s = this._log.pop();\n if (s) this.state = s;\n return s;\n }\n bindBlock() {\n if (this.block) return;\n if (this.index < 0) {\n this.index = 0;\n this.offset = 0;\n }\n if (this.index >= this.masked._blocks.length) {\n this.index = this.masked._blocks.length - 1;\n this.offset = this.block.displayValue.length; // TODO this is stupid type error, `block` depends on index that was changed above\n }\n }\n\n _pushLeft(fn) {\n this.pushState();\n for (this.bindBlock(); 0 <= this.index; --this.index, this.offset = ((_this$block = this.block) == null ? void 0 : _this$block.displayValue.length) || 0) {\n var _this$block;\n if (fn()) return this.ok = true;\n }\n return this.ok = false;\n }\n _pushRight(fn) {\n this.pushState();\n for (this.bindBlock(); this.index < this.masked._blocks.length; ++this.index, this.offset = 0) {\n if (fn()) return this.ok = true;\n }\n return this.ok = false;\n }\n pushLeftBeforeFilled() {\n return this._pushLeft(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_LEFT);\n if (this.offset !== 0) return true;\n });\n }\n pushLeftBeforeInput() {\n // cases:\n // filled input: 00|\n // optional empty input: 00[]|\n // nested block: XX<[]>|\n return this._pushLeft(() => {\n if (this.block.isFixed) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushLeftBeforeRequired() {\n return this._pushLeft(() => {\n if (this.block.isFixed || this.block.isOptional && !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushRightBeforeFilled() {\n return this._pushRight(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_RIGHT);\n if (this.offset !== this.block.value.length) return true;\n });\n }\n pushRightBeforeInput() {\n return this._pushRight(() => {\n if (this.block.isFixed) return;\n\n // const o = this.offset;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n // HACK cases like (STILL DOES NOT WORK FOR NESTED)\n // aa|X\n // aaX_ - this will not work\n // if (o && o === this.offset && this.block instanceof PatternInputDefinition) continue;\n return true;\n });\n }\n pushRightBeforeRequired() {\n return this._pushRight(() => {\n if (this.block.isFixed || this.block.isOptional && !this.block.value) return;\n\n // TODO check |[*]XX_\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n return true;\n });\n }\n}\n\nexport { PatternCursor as default };\n","import ChangeDetails from '../../core/change-details.js';\nimport { DIRECTION, isString } from '../../core/utils.js';\nimport ContinuousTailDetails from '../../core/continuous-tail-details.js';\nimport '../../core/holder.js';\n\nclass PatternFixedDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n Object.assign(this, opts);\n this._value = '';\n this.isFixed = true;\n }\n get value() {\n return this._value;\n }\n get unmaskedValue() {\n return this.isUnmasking ? this.value : '';\n }\n get rawInputValue() {\n return this._isRawInput ? this.value : '';\n }\n get displayValue() {\n return this.value;\n }\n reset() {\n this._isRawInput = false;\n this._value = '';\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n this._value = this._value.slice(0, fromPos) + this._value.slice(toPos);\n if (!this._value) this._isRawInput = false;\n return new ChangeDetails();\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n const minPos = 0;\n const maxPos = this._value.length;\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return minPos;\n case DIRECTION.NONE:\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n default:\n return maxPos;\n }\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n return this._isRawInput ? toPos - fromPos : 0;\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n if (flags === void 0) {\n flags = {};\n }\n return flags.raw && this._isRawInput && this._value.slice(fromPos, toPos) || '';\n }\n get isComplete() {\n return true;\n }\n get isFilled() {\n return Boolean(this._value);\n }\n _appendChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const details = new ChangeDetails();\n if (this.isFilled) return details;\n const appendEager = this.eager === true || this.eager === 'append';\n const appended = this.char === ch;\n const isResolved = appended && (this.isUnmasking || flags.input || flags.raw) && (!flags.raw || !appendEager) && !flags.tail;\n if (isResolved) details.rawInserted = this.char;\n this._value = details.inserted = this.char;\n this._isRawInput = isResolved && (flags.raw || flags.input);\n return details;\n }\n _appendEager() {\n return this._appendChar(this.char, {\n tail: true\n });\n }\n _appendPlaceholder() {\n const details = new ChangeDetails();\n if (this.isFilled) return details;\n this._value = details.inserted = this.char;\n return details;\n }\n extractTail() {\n return new ContinuousTailDetails('');\n }\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n append(str, flags, tail) {\n const details = this._appendChar(str[0], flags);\n if (tail != null) {\n details.tailShift += this.appendTail(tail).tailShift;\n }\n return details;\n }\n doCommit() {}\n get state() {\n return {\n _value: this._value,\n _rawInputValue: this.rawInputValue\n };\n }\n set state(state) {\n this._value = state._value;\n this._isRawInput = Boolean(state._rawInputValue);\n }\n}\n\nexport { PatternFixedDefinition as default };\n","import createMask from '../factory.js';\nimport ChangeDetails from '../../core/change-details.js';\nimport { DIRECTION } from '../../core/utils.js';\nimport '../../core/holder.js';\n\nclass PatternInputDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n const {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager,\n ...maskOpts\n } = opts;\n this.masked = createMask(maskOpts);\n Object.assign(this, {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager\n });\n }\n reset() {\n this.isFilled = false;\n this.masked.reset();\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n if (fromPos === 0 && toPos >= 1) {\n this.isFilled = false;\n return this.masked.remove(fromPos, toPos);\n }\n return new ChangeDetails();\n }\n get value() {\n return this.masked.value || (this.isFilled && !this.isOptional ? this.placeholderChar : '');\n }\n get unmaskedValue() {\n return this.masked.unmaskedValue;\n }\n get rawInputValue() {\n return this.masked.rawInputValue;\n }\n get displayValue() {\n return this.masked.value && this.displayChar || this.value;\n }\n get isComplete() {\n return Boolean(this.masked.value) || this.isOptional;\n }\n _appendChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n if (this.isFilled) return new ChangeDetails();\n const state = this.masked.state;\n // simulate input\n const details = this.masked._appendChar(ch, this.currentMaskFlags(flags));\n if (details.inserted && this.doValidate(flags) === false) {\n details.inserted = details.rawInserted = '';\n this.masked.state = state;\n }\n if (!details.inserted && !this.isOptional && !this.lazy && !flags.input) {\n details.inserted = this.placeholderChar;\n }\n details.skip = !details.inserted && !this.isOptional;\n this.isFilled = Boolean(details.inserted);\n return details;\n }\n append(str, flags, tail) {\n // TODO probably should be done via _appendChar\n return this.masked.append(str, this.currentMaskFlags(flags), tail);\n }\n _appendPlaceholder() {\n const details = new ChangeDetails();\n if (this.isFilled || this.isOptional) return details;\n this.isFilled = true;\n details.inserted = this.placeholderChar;\n return details;\n }\n _appendEager() {\n return new ChangeDetails();\n }\n extractTail(fromPos, toPos) {\n return this.masked.extractTail(fromPos, toPos);\n }\n appendTail(tail) {\n return this.masked.appendTail(tail);\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n return this.masked.extractInput(fromPos, toPos, flags);\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n const minPos = 0;\n const maxPos = this.value.length;\n const boundPos = Math.min(Math.max(cursorPos, minPos), maxPos);\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return this.isComplete ? boundPos : minPos;\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n return this.isComplete ? boundPos : maxPos;\n case DIRECTION.NONE:\n default:\n return boundPos;\n }\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n return this.value.slice(fromPos, toPos).length;\n }\n doValidate(flags) {\n return this.masked.doValidate(this.currentMaskFlags(flags)) && (!this.parent || this.parent.doValidate(this.currentMaskFlags(flags)));\n }\n doCommit() {\n this.masked.doCommit();\n }\n get state() {\n return {\n _value: this.value,\n _rawInputValue: this.rawInputValue,\n masked: this.masked.state,\n isFilled: this.isFilled\n };\n }\n set state(state) {\n this.masked.state = state.masked;\n this.isFilled = state.isFilled;\n }\n currentMaskFlags(flags) {\n var _flags$_beforeTailSta;\n return {\n ...flags,\n _beforeTailState: (flags == null || (_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.masked) || (flags == null ? void 0 : flags._beforeTailState)\n };\n }\n}\nPatternInputDefinition.DEFAULT_DEFINITIONS = {\n '0': /\\d/,\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // http://stackoverflow.com/a/22075070\n '*': /./\n};\n\nexport { PatternInputDefinition as default };\n","import Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/continuous-tail-details.js';\nimport '../core/utils.js';\n\n/** Masking by RegExp */\nclass MaskedRegExp extends Masked {\n /** */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const mask = opts.mask;\n if (mask) opts.validate = value => value.search(mask) >= 0;\n super._update(opts);\n }\n}\nIMask.MaskedRegExp = MaskedRegExp;\n\nexport { MaskedRegExp as default };\n","import ChangeDetails from '../core/change-details.js';\nimport IMask from '../core/holder.js';\nimport { DIRECTION } from '../core/utils.js';\nimport Masked from './base.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport ChunksTailDetails from './pattern/chunk-tail-details.js';\nimport PatternCursor from './pattern/cursor.js';\nimport PatternFixedDefinition from './pattern/fixed-definition.js';\nimport PatternInputDefinition from './pattern/input-definition.js';\nimport './regexp.js';\nimport '../core/continuous-tail-details.js';\n\n/** Pattern mask */\nclass MaskedPattern extends Masked {\n /** */\n\n /** */\n\n /** Single char for empty input */\n\n /** Single char for filled input */\n\n /** Show placeholder only when needed */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n constructor(opts) {\n super({\n ...MaskedPattern.DEFAULTS,\n ...opts,\n definitions: Object.assign({}, PatternInputDefinition.DEFAULT_DEFINITIONS, opts == null ? void 0 : opts.definitions)\n });\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n opts.definitions = Object.assign({}, this.definitions, opts.definitions);\n super._update(opts);\n this._rebuildMask();\n }\n _rebuildMask() {\n const defs = this.definitions;\n this._blocks = [];\n this.exposeBlock = undefined;\n this._stops = [];\n this._maskedBlocks = {};\n const pattern = this.mask;\n if (!pattern || !defs) return;\n let unmaskingBlock = false;\n let optionalBlock = false;\n for (let i = 0; i < pattern.length; ++i) {\n if (this.blocks) {\n const p = pattern.slice(i);\n const bNames = Object.keys(this.blocks).filter(bName => p.indexOf(bName) === 0);\n // order by key length\n bNames.sort((a, b) => b.length - a.length);\n // use block name with max length\n const bName = bNames[0];\n if (bName) {\n const {\n expose,\n ...blockOpts\n } = normalizeOpts(this.blocks[bName]);\n const maskedBlock = createMask({\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n overwrite: this.overwrite,\n ...blockOpts,\n parent: this\n });\n if (maskedBlock) {\n this._blocks.push(maskedBlock);\n if (expose) this.exposeBlock = maskedBlock;\n\n // store block index\n if (!this._maskedBlocks[bName]) this._maskedBlocks[bName] = [];\n this._maskedBlocks[bName].push(this._blocks.length - 1);\n }\n i += bName.length - 1;\n continue;\n }\n }\n let char = pattern[i];\n let isInput = (char in defs);\n if (char === MaskedPattern.STOP_CHAR) {\n this._stops.push(this._blocks.length);\n continue;\n }\n if (char === '{' || char === '}') {\n unmaskingBlock = !unmaskingBlock;\n continue;\n }\n if (char === '[' || char === ']') {\n optionalBlock = !optionalBlock;\n continue;\n }\n if (char === MaskedPattern.ESCAPE_CHAR) {\n ++i;\n char = pattern[i];\n if (!char) break;\n isInput = false;\n }\n const def = isInput ? new PatternInputDefinition({\n isOptional: optionalBlock,\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n ...normalizeOpts(defs[char]),\n parent: this\n }) : new PatternFixedDefinition({\n char,\n eager: this.eager,\n isUnmasking: unmaskingBlock\n });\n this._blocks.push(def);\n }\n }\n get state() {\n return {\n ...super.state,\n _blocks: this._blocks.map(b => b.state)\n };\n }\n set state(state) {\n const {\n _blocks,\n ...maskedState\n } = state;\n this._blocks.forEach((b, bi) => b.state = _blocks[bi]);\n super.state = maskedState;\n }\n reset() {\n super.reset();\n this._blocks.forEach(b => b.reset());\n }\n get isComplete() {\n return this.exposeBlock ? this.exposeBlock.isComplete : this._blocks.every(b => b.isComplete);\n }\n get isFilled() {\n return this._blocks.every(b => b.isFilled);\n }\n get isFixed() {\n return this._blocks.every(b => b.isFixed);\n }\n get isOptional() {\n return this._blocks.every(b => b.isOptional);\n }\n doCommit() {\n this._blocks.forEach(b => b.doCommit());\n super.doCommit();\n }\n get unmaskedValue() {\n return this.exposeBlock ? this.exposeBlock.unmaskedValue : this._blocks.reduce((str, b) => str += b.unmaskedValue, '');\n }\n set unmaskedValue(unmaskedValue) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.unmaskedValue = unmaskedValue;\n this.appendTail(tail);\n this.doCommit();\n } else super.unmaskedValue = unmaskedValue;\n }\n get value() {\n return this.exposeBlock ? this.exposeBlock.value :\n // TODO return _value when not in change?\n this._blocks.reduce((str, b) => str += b.value, '');\n }\n set value(value) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.value = value;\n this.appendTail(tail);\n this.doCommit();\n } else super.value = value;\n }\n get typedValue() {\n return this.exposeBlock ? this.exposeBlock.typedValue : super.typedValue;\n }\n set typedValue(value) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.typedValue = value;\n this.appendTail(tail);\n this.doCommit();\n } else super.typedValue = value;\n }\n get displayValue() {\n return this._blocks.reduce((str, b) => str += b.displayValue, '');\n }\n appendTail(tail) {\n return super.appendTail(tail).aggregate(this._appendPlaceholder());\n }\n _appendEager() {\n var _this$_mapPosToBlock;\n const details = new ChangeDetails();\n let startBlockIndex = (_this$_mapPosToBlock = this._mapPosToBlock(this.displayValue.length)) == null ? void 0 : _this$_mapPosToBlock.index;\n if (startBlockIndex == null) return details;\n\n // TODO test if it works for nested pattern masks\n if (this._blocks[startBlockIndex].isFilled) ++startBlockIndex;\n for (let bi = startBlockIndex; bi < this._blocks.length; ++bi) {\n const d = this._blocks[bi]._appendEager();\n if (!d.inserted) break;\n details.aggregate(d);\n }\n return details;\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const blockIter = this._mapPosToBlock(this.displayValue.length);\n const details = new ChangeDetails();\n if (!blockIter) return details;\n for (let bi = blockIter.index;; ++bi) {\n var _flags$_beforeTailSta;\n const block = this._blocks[bi];\n if (!block) break;\n const blockDetails = block._appendChar(ch, {\n ...flags,\n _beforeTailState: (_flags$_beforeTailSta = flags._beforeTailState) == null || (_flags$_beforeTailSta = _flags$_beforeTailSta._blocks) == null ? void 0 : _flags$_beforeTailSta[bi]\n });\n const skip = blockDetails.skip;\n details.aggregate(blockDetails);\n if (skip || blockDetails.rawInserted) break; // go next char\n }\n\n return details;\n }\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const chunkTail = new ChunksTailDetails();\n if (fromPos === toPos) return chunkTail;\n this._forEachBlocksInRange(fromPos, toPos, (b, bi, bFromPos, bToPos) => {\n const blockChunk = b.extractTail(bFromPos, bToPos);\n blockChunk.stop = this._findStopBefore(bi);\n blockChunk.from = this._blockStartPos(bi);\n if (blockChunk instanceof ChunksTailDetails) blockChunk.blockIndex = bi;\n chunkTail.extend(blockChunk);\n });\n return chunkTail;\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n if (flags === void 0) {\n flags = {};\n }\n if (fromPos === toPos) return '';\n let input = '';\n this._forEachBlocksInRange(fromPos, toPos, (b, _, fromPos, toPos) => {\n input += b.extractInput(fromPos, toPos, flags);\n });\n return input;\n }\n _findStopBefore(blockIndex) {\n let stopBefore;\n for (let si = 0; si < this._stops.length; ++si) {\n const stop = this._stops[si];\n if (stop <= blockIndex) stopBefore = stop;else break;\n }\n return stopBefore;\n }\n\n /** Appends placeholder depending on laziness */\n _appendPlaceholder(toBlockIndex) {\n const details = new ChangeDetails();\n if (this.lazy && toBlockIndex == null) return details;\n const startBlockIter = this._mapPosToBlock(this.displayValue.length);\n if (!startBlockIter) return details;\n const startBlockIndex = startBlockIter.index;\n const endBlockIndex = toBlockIndex != null ? toBlockIndex : this._blocks.length;\n this._blocks.slice(startBlockIndex, endBlockIndex).forEach(b => {\n if (!b.lazy || toBlockIndex != null) {\n var _blocks2;\n const bDetails = b._appendPlaceholder((_blocks2 = b._blocks) == null ? void 0 : _blocks2.length);\n this._value += bDetails.inserted;\n details.aggregate(bDetails);\n }\n });\n return details;\n }\n\n /** Finds block in pos */\n _mapPosToBlock(pos) {\n let accVal = '';\n for (let bi = 0; bi < this._blocks.length; ++bi) {\n const block = this._blocks[bi];\n const blockStartPos = accVal.length;\n accVal += block.displayValue;\n if (pos <= accVal.length) {\n return {\n index: bi,\n offset: pos - blockStartPos\n };\n }\n }\n }\n _blockStartPos(blockIndex) {\n return this._blocks.slice(0, blockIndex).reduce((pos, b) => pos += b.displayValue.length, 0);\n }\n _forEachBlocksInRange(fromPos, toPos, fn) {\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const fromBlockIter = this._mapPosToBlock(fromPos);\n if (fromBlockIter) {\n const toBlockIter = this._mapPosToBlock(toPos);\n // process first block\n const isSameBlock = toBlockIter && fromBlockIter.index === toBlockIter.index;\n const fromBlockStartPos = fromBlockIter.offset;\n const fromBlockEndPos = toBlockIter && isSameBlock ? toBlockIter.offset : this._blocks[fromBlockIter.index].displayValue.length;\n fn(this._blocks[fromBlockIter.index], fromBlockIter.index, fromBlockStartPos, fromBlockEndPos);\n if (toBlockIter && !isSameBlock) {\n // process intermediate blocks\n for (let bi = fromBlockIter.index + 1; bi < toBlockIter.index; ++bi) {\n fn(this._blocks[bi], bi, 0, this._blocks[bi].displayValue.length);\n }\n\n // process last block\n fn(this._blocks[toBlockIter.index], toBlockIter.index, 0, toBlockIter.offset);\n }\n }\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const removeDetails = super.remove(fromPos, toPos);\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n removeDetails.aggregate(b.remove(bFromPos, bToPos));\n });\n return removeDetails;\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n if (!this._blocks.length) return 0;\n const cursor = new PatternCursor(this, cursorPos);\n if (direction === DIRECTION.NONE) {\n // -------------------------------------------------\n // NONE should only go out from fixed to the right!\n // -------------------------------------------------\n if (cursor.pushRightBeforeInput()) return cursor.pos;\n cursor.popState();\n if (cursor.pushLeftBeforeInput()) return cursor.pos;\n return this.displayValue.length;\n }\n\n // FORCE is only about a|* otherwise is 0\n if (direction === DIRECTION.LEFT || direction === DIRECTION.FORCE_LEFT) {\n // try to break fast when *|a\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeFilled();\n if (cursor.ok && cursor.pos === cursorPos) return cursorPos;\n cursor.popState();\n }\n\n // forward flow\n cursor.pushLeftBeforeInput();\n cursor.pushLeftBeforeRequired();\n cursor.pushLeftBeforeFilled();\n\n // backward flow\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n }\n if (cursor.ok) return cursor.pos;\n if (direction === DIRECTION.FORCE_LEFT) return 0;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n return 0;\n }\n if (direction === DIRECTION.RIGHT || direction === DIRECTION.FORCE_RIGHT) {\n // forward flow\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.pushRightBeforeFilled()) return cursor.pos;\n if (direction === DIRECTION.FORCE_RIGHT) return this.displayValue.length;\n\n // backward flow\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n return this.nearestInputPos(cursorPos, DIRECTION.LEFT);\n }\n return cursorPos;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n let total = 0;\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n total += b.totalInputPositions(bFromPos, bToPos);\n });\n return total;\n }\n\n /** Get block by name */\n maskedBlock(name) {\n return this.maskedBlocks(name)[0];\n }\n\n /** Get all blocks by name */\n maskedBlocks(name) {\n const indices = this._maskedBlocks[name];\n if (!indices) return [];\n return indices.map(gi => this._blocks[gi]);\n }\n}\nMaskedPattern.DEFAULTS = {\n lazy: true,\n placeholderChar: '_'\n};\nMaskedPattern.STOP_CHAR = '`';\nMaskedPattern.ESCAPE_CHAR = '\\\\';\nMaskedPattern.InputDefinition = PatternInputDefinition;\nMaskedPattern.FixedDefinition = PatternFixedDefinition;\nIMask.MaskedPattern = MaskedPattern;\n\nexport { MaskedPattern as default };\n","import IMask from '../core/holder.js';\nimport MaskedPattern from './pattern.js';\nimport '../core/change-details.js';\nimport '../core/utils.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern which accepts ranges */\nclass MaskedRange extends MaskedPattern {\n /**\n Optionally sets max length of pattern.\n Used when pattern length is longer then `to` param length. Pads zeros at start in this case.\n */\n\n /** Min bound */\n\n /** Max bound */\n\n /** */\n\n get _matchFrom() {\n return this.maxLength - String(this.from).length;\n }\n constructor(opts) {\n super(opts); // mask will be created in _update\n }\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n to = this.to || 0,\n from = this.from || 0,\n maxLength = this.maxLength || 0,\n autofix = this.autofix,\n ...patternOpts\n } = opts;\n this.to = to;\n this.from = from;\n this.maxLength = Math.max(String(to).length, maxLength);\n this.autofix = autofix;\n const fromStr = String(this.from).padStart(this.maxLength, '0');\n const toStr = String(this.to).padStart(this.maxLength, '0');\n let sameCharsCount = 0;\n while (sameCharsCount < toStr.length && toStr[sameCharsCount] === fromStr[sameCharsCount]) ++sameCharsCount;\n patternOpts.mask = toStr.slice(0, sameCharsCount).replace(/0/g, '\\\\0') + '0'.repeat(this.maxLength - sameCharsCount);\n super._update(patternOpts);\n }\n get isComplete() {\n return super.isComplete && Boolean(this.value);\n }\n boundaries(str) {\n let minstr = '';\n let maxstr = '';\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/) || [];\n if (num) {\n minstr = '0'.repeat(placeholder.length) + num;\n maxstr = '9'.repeat(placeholder.length) + num;\n }\n minstr = minstr.padEnd(this.maxLength, '0');\n maxstr = maxstr.padEnd(this.maxLength, '9');\n return [minstr, maxstr];\n }\n doPrepareChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let details;\n [ch, details] = super.doPrepareChar(ch.replace(/\\D/g, ''), flags);\n if (!this.autofix || !ch) return [ch, details];\n const fromStr = String(this.from).padStart(this.maxLength, '0');\n const toStr = String(this.to).padStart(this.maxLength, '0');\n const nextVal = this.value + ch;\n if (nextVal.length > this.maxLength) return ['', details];\n const [minstr, maxstr] = this.boundaries(nextVal);\n if (Number(maxstr) < this.from) return [fromStr[nextVal.length - 1], details];\n if (Number(minstr) > this.to) {\n if (this.autofix === 'pad' && nextVal.length < this.maxLength) {\n return ['', details.aggregate(this.append(fromStr[nextVal.length - 1] + ch, flags))];\n }\n return [toStr[nextVal.length - 1], details];\n }\n return [ch, details];\n }\n doValidate(flags) {\n const str = this.value;\n const firstNonZero = str.search(/[^0]/);\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\n const [minstr, maxstr] = this.boundaries(str);\n return this.from <= Number(maxstr) && Number(minstr) <= this.to && super.doValidate(flags);\n }\n}\nIMask.MaskedRange = MaskedRange;\n\nexport { MaskedRange as default };\n","import MaskedPattern from './pattern.js';\nimport MaskedRange from './range.js';\nimport IMask from '../core/holder.js';\nimport { isString } from '../core/utils.js';\nimport '../core/change-details.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Date mask */\nclass MaskedDate extends MaskedPattern {\n /** Pattern mask for date according to {@link MaskedDate#format} */\n\n /** Start date */\n\n /** End date */\n\n /** */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n constructor(opts) {\n const {\n mask,\n pattern,\n ...patternOpts\n } = {\n ...MaskedDate.DEFAULTS,\n ...opts\n };\n super({\n ...patternOpts,\n mask: isString(mask) ? mask : pattern\n });\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n mask,\n pattern,\n blocks,\n ...patternOpts\n } = {\n ...MaskedDate.DEFAULTS,\n ...opts\n };\n const patternBlocks = Object.assign({}, MaskedDate.GET_DEFAULT_BLOCKS());\n // adjust year block\n if (opts.min) patternBlocks.Y.from = opts.min.getFullYear();\n if (opts.max) patternBlocks.Y.to = opts.max.getFullYear();\n if (opts.min && opts.max && patternBlocks.Y.from === patternBlocks.Y.to) {\n patternBlocks.m.from = opts.min.getMonth() + 1;\n patternBlocks.m.to = opts.max.getMonth() + 1;\n if (patternBlocks.m.from === patternBlocks.m.to) {\n patternBlocks.d.from = opts.min.getDate();\n patternBlocks.d.to = opts.max.getDate();\n }\n }\n Object.assign(patternBlocks, this.blocks, blocks);\n\n // add autofix\n Object.keys(patternBlocks).forEach(bk => {\n const b = patternBlocks[bk];\n if (!('autofix' in b) && 'autofix' in opts) b.autofix = opts.autofix;\n });\n super._update({\n ...patternOpts,\n mask: isString(mask) ? mask : pattern,\n blocks: patternBlocks\n });\n }\n doValidate(flags) {\n const date = this.date;\n return super.doValidate(flags) && (!this.isComplete || this.isDateExist(this.value) && date != null && (this.min == null || this.min <= date) && (this.max == null || date <= this.max));\n }\n\n /** Checks if date is exists */\n isDateExist(str) {\n return this.format(this.parse(str, this), this).indexOf(str) >= 0;\n }\n\n /** Parsed Date */\n get date() {\n return this.typedValue;\n }\n set date(date) {\n this.typedValue = date;\n }\n get typedValue() {\n return this.isComplete ? super.typedValue : null;\n }\n set typedValue(value) {\n super.typedValue = value;\n }\n maskEquals(mask) {\n return mask === Date || super.maskEquals(mask);\n }\n}\nMaskedDate.GET_DEFAULT_BLOCKS = () => ({\n d: {\n mask: MaskedRange,\n from: 1,\n to: 31,\n maxLength: 2\n },\n m: {\n mask: MaskedRange,\n from: 1,\n to: 12,\n maxLength: 2\n },\n Y: {\n mask: MaskedRange,\n from: 1900,\n to: 9999\n }\n});\nMaskedDate.DEFAULTS = {\n mask: Date,\n pattern: 'd{.}`m{.}`Y',\n format: (date, masked) => {\n if (!date) return '';\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = date.getFullYear();\n return [day, month, year].join('.');\n },\n parse: (str, masked) => {\n const [day, month, year] = str.split('.').map(Number);\n return new Date(year, month - 1, day);\n }\n};\nIMask.MaskedDate = MaskedDate;\n\nexport { MaskedDate as default };\n","import { DIRECTION, objectIncludes } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\n/** Dynamic mask for choosing appropriate mask in run-time */\nclass MaskedDynamic extends Masked {\n /** Currently chosen mask */\n\n /** Currently chosen mask */\n\n /** Compliled {@link Masked} options */\n\n /** Chooses {@link Masked} depending on input value */\n\n constructor(opts) {\n super({\n ...MaskedDynamic.DEFAULTS,\n ...opts\n });\n this.currentMask = undefined;\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update(opts);\n if ('mask' in opts) {\n this.exposeMask = undefined;\n // mask could be totally dynamic with only `dispatch` option\n this.compiledMasks = Array.isArray(opts.mask) ? opts.mask.map(m => {\n const {\n expose,\n ...maskOpts\n } = normalizeOpts(m);\n const masked = createMask({\n overwrite: this._overwrite,\n eager: this._eager,\n skipInvalid: this._skipInvalid,\n ...maskOpts\n });\n if (expose) this.exposeMask = masked;\n return masked;\n }) : [];\n\n // this.currentMask = this.doDispatch(''); // probably not needed but lets see\n }\n }\n\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const details = this._applyDispatch(ch, flags);\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendChar(ch, this.currentMaskFlags(flags)));\n }\n return details;\n }\n _applyDispatch(appended, flags, tail) {\n if (appended === void 0) {\n appended = '';\n }\n if (flags === void 0) {\n flags = {};\n }\n if (tail === void 0) {\n tail = '';\n }\n const prevValueBeforeTail = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._value : this.value;\n const inputValue = this.rawInputValue;\n const insertValue = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._rawInputValue : inputValue;\n const tailValue = inputValue.slice(insertValue.length);\n const prevMask = this.currentMask;\n const details = new ChangeDetails();\n const prevMaskState = prevMask == null ? void 0 : prevMask.state;\n\n // clone flags to prevent overwriting `_beforeTailState`\n this.currentMask = this.doDispatch(appended, {\n ...flags\n }, tail);\n\n // restore state after dispatch\n if (this.currentMask) {\n if (this.currentMask !== prevMask) {\n // if mask changed reapply input\n this.currentMask.reset();\n if (insertValue) {\n const d = this.currentMask.append(insertValue, {\n raw: true\n });\n details.tailShift = d.inserted.length - prevValueBeforeTail.length;\n }\n if (tailValue) {\n details.tailShift += this.currentMask.append(tailValue, {\n raw: true,\n tail: true\n }).tailShift;\n }\n } else if (prevMaskState) {\n // Dispatch can do something bad with state, so\n // restore prev mask state\n this.currentMask.state = prevMaskState;\n }\n }\n return details;\n }\n _appendPlaceholder() {\n const details = this._applyDispatch();\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendPlaceholder());\n }\n return details;\n }\n _appendEager() {\n const details = this._applyDispatch();\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendEager());\n }\n return details;\n }\n appendTail(tail) {\n const details = new ChangeDetails();\n if (tail) details.aggregate(this._applyDispatch('', {}, tail));\n return details.aggregate(this.currentMask ? this.currentMask.appendTail(tail) : super.appendTail(tail));\n }\n currentMaskFlags(flags) {\n var _flags$_beforeTailSta, _flags$_beforeTailSta2;\n return {\n ...flags,\n _beforeTailState: ((_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.currentMaskRef) === this.currentMask && ((_flags$_beforeTailSta2 = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta2.currentMask) || flags._beforeTailState\n };\n }\n doDispatch(appended, flags, tail) {\n if (flags === void 0) {\n flags = {};\n }\n if (tail === void 0) {\n tail = '';\n }\n return this.dispatch(appended, this, flags, tail);\n }\n doValidate(flags) {\n return super.doValidate(flags) && (!this.currentMask || this.currentMask.doValidate(this.currentMaskFlags(flags)));\n }\n doPrepare(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let [s, details] = super.doPrepare(str, flags);\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = super.doPrepare(s, this.currentMaskFlags(flags));\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n doPrepareChar(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let [s, details] = super.doPrepareChar(str, flags);\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = super.doPrepareChar(s, this.currentMaskFlags(flags));\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n reset() {\n var _this$currentMask;\n (_this$currentMask = this.currentMask) == null ? void 0 : _this$currentMask.reset();\n this.compiledMasks.forEach(m => m.reset());\n }\n get value() {\n return this.exposeMask ? this.exposeMask.value : this.currentMask ? this.currentMask.value : '';\n }\n set value(value) {\n if (this.exposeMask) {\n this.exposeMask.value = value;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n } else super.value = value;\n }\n get unmaskedValue() {\n return this.exposeMask ? this.exposeMask.unmaskedValue : this.currentMask ? this.currentMask.unmaskedValue : '';\n }\n set unmaskedValue(unmaskedValue) {\n if (this.exposeMask) {\n this.exposeMask.unmaskedValue = unmaskedValue;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n } else super.unmaskedValue = unmaskedValue;\n }\n get typedValue() {\n return this.exposeMask ? this.exposeMask.typedValue : this.currentMask ? this.currentMask.typedValue : '';\n }\n set typedValue(typedValue) {\n if (this.exposeMask) {\n this.exposeMask.typedValue = typedValue;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n return;\n }\n let unmaskedValue = String(typedValue);\n\n // double check it\n if (this.currentMask) {\n this.currentMask.typedValue = typedValue;\n unmaskedValue = this.currentMask.unmaskedValue;\n }\n this.unmaskedValue = unmaskedValue;\n }\n get displayValue() {\n return this.currentMask ? this.currentMask.displayValue : '';\n }\n get isComplete() {\n var _this$currentMask2;\n return Boolean((_this$currentMask2 = this.currentMask) == null ? void 0 : _this$currentMask2.isComplete);\n }\n get isFilled() {\n var _this$currentMask3;\n return Boolean((_this$currentMask3 = this.currentMask) == null ? void 0 : _this$currentMask3.isFilled);\n }\n remove(fromPos, toPos) {\n const details = new ChangeDetails();\n if (this.currentMask) {\n details.aggregate(this.currentMask.remove(fromPos, toPos))\n // update with dispatch\n .aggregate(this._applyDispatch());\n }\n return details;\n }\n get state() {\n var _this$currentMask4;\n return {\n ...super.state,\n _rawInputValue: this.rawInputValue,\n compiledMasks: this.compiledMasks.map(m => m.state),\n currentMaskRef: this.currentMask,\n currentMask: (_this$currentMask4 = this.currentMask) == null ? void 0 : _this$currentMask4.state\n };\n }\n set state(state) {\n const {\n compiledMasks,\n currentMaskRef,\n currentMask,\n ...maskedState\n } = state;\n if (compiledMasks) this.compiledMasks.forEach((m, mi) => m.state = compiledMasks[mi]);\n if (currentMaskRef != null) {\n this.currentMask = currentMaskRef;\n this.currentMask.state = currentMask;\n }\n super.state = maskedState;\n }\n extractInput(fromPos, toPos, flags) {\n return this.currentMask ? this.currentMask.extractInput(fromPos, toPos, flags) : '';\n }\n extractTail(fromPos, toPos) {\n return this.currentMask ? this.currentMask.extractTail(fromPos, toPos) : super.extractTail(fromPos, toPos);\n }\n doCommit() {\n if (this.currentMask) this.currentMask.doCommit();\n super.doCommit();\n }\n nearestInputPos(cursorPos, direction) {\n return this.currentMask ? this.currentMask.nearestInputPos(cursorPos, direction) : super.nearestInputPos(cursorPos, direction);\n }\n get overwrite() {\n return this.currentMask ? this.currentMask.overwrite : this._overwrite;\n }\n set overwrite(overwrite) {\n this._overwrite = overwrite;\n }\n get eager() {\n return this.currentMask ? this.currentMask.eager : this._eager;\n }\n set eager(eager) {\n this._eager = eager;\n }\n get skipInvalid() {\n return this.currentMask ? this.currentMask.skipInvalid : this._skipInvalid;\n }\n set skipInvalid(skipInvalid) {\n this._skipInvalid = skipInvalid;\n }\n maskEquals(mask) {\n return Array.isArray(mask) ? this.compiledMasks.every((m, mi) => {\n if (!mask[mi]) return;\n const {\n mask: oldMask,\n ...restOpts\n } = mask[mi];\n return objectIncludes(m, restOpts) && m.maskEquals(oldMask);\n }) : super.maskEquals(mask);\n }\n typedValueEquals(value) {\n var _this$currentMask5;\n return Boolean((_this$currentMask5 = this.currentMask) == null ? void 0 : _this$currentMask5.typedValueEquals(value));\n }\n}\nMaskedDynamic.DEFAULTS = void 0;\nMaskedDynamic.DEFAULTS = {\n dispatch: (appended, masked, flags, tail) => {\n if (!masked.compiledMasks.length) return;\n const inputValue = masked.rawInputValue;\n\n // simulate input\n const inputs = masked.compiledMasks.map((m, index) => {\n const isCurrent = masked.currentMask === m;\n const startInputPos = isCurrent ? m.displayValue.length : m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT);\n if (m.rawInputValue !== inputValue) {\n m.reset();\n m.append(inputValue, {\n raw: true\n });\n } else if (!isCurrent) {\n m.remove(startInputPos);\n }\n m.append(appended, masked.currentMaskFlags(flags));\n m.appendTail(tail);\n return {\n index,\n weight: m.rawInputValue.length,\n totalInputPositions: m.totalInputPositions(0, Math.max(startInputPos, m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT)))\n };\n });\n\n // pop masks with longer values first\n inputs.sort((i1, i2) => i2.weight - i1.weight || i2.totalInputPositions - i1.totalInputPositions);\n return masked.compiledMasks[inputs[0].index];\n }\n};\nIMask.MaskedDynamic = MaskedDynamic;\n\nexport { MaskedDynamic as default };\n","import MaskedPattern from './pattern.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/utils.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern which validates enum values */\nclass MaskedEnum extends MaskedPattern {\n constructor(opts) {\n super(opts); // mask will be created in _update\n }\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n enum: _enum,\n ...eopts\n } = opts;\n if (_enum) {\n const lengths = _enum.map(e => e.length);\n const requiredLength = Math.min(...lengths);\n const optionalLength = Math.max(...lengths) - requiredLength;\n eopts.mask = '*'.repeat(requiredLength);\n if (optionalLength) eopts.mask += '[' + '*'.repeat(optionalLength) + ']';\n this.enum = _enum;\n }\n super._update(eopts);\n }\n doValidate(flags) {\n return this.enum.some(e => e.indexOf(this.unmaskedValue) === 0) && super.doValidate(flags);\n }\n}\nIMask.MaskedEnum = MaskedEnum;\n\nexport { MaskedEnum as default };\n","import Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/continuous-tail-details.js';\nimport '../core/utils.js';\n\n/** Masking by custom Function */\nclass MaskedFunction extends Masked {\n /** */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update({\n ...opts,\n validate: opts.mask\n });\n }\n}\nIMask.MaskedFunction = MaskedFunction;\n\nexport { MaskedFunction as default };\n","import { escapeRegExp, DIRECTION } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\n/** Number mask */\nclass MaskedNumber extends Masked {\n /** Single char */\n\n /** Single char */\n\n /** Array of single chars */\n\n /** */\n\n /** */\n\n /** Digits after point */\n\n /** Flag to remove leading and trailing zeros in the end of editing */\n\n /** Flag to pad trailing zeros after point in the end of editing */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n constructor(opts) {\n super({\n ...MaskedNumber.DEFAULTS,\n ...opts\n });\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update(opts);\n this._updateRegExps();\n }\n _updateRegExps() {\n const start = '^' + (this.allowNegative ? '[+|\\\\-]?' : '');\n const mid = '\\\\d*';\n const end = (this.scale ? \"(\" + escapeRegExp(this.radix) + \"\\\\d{0,\" + this.scale + \"})?\" : '') + '$';\n this._numberRegExp = new RegExp(start + mid + end);\n this._mapToRadixRegExp = new RegExp(\"[\" + this.mapToRadix.map(escapeRegExp).join('') + \"]\", 'g');\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(this.thousandsSeparator), 'g');\n }\n _removeThousandsSeparators(value) {\n return value.replace(this._thousandsSeparatorRegExp, '');\n }\n _insertThousandsSeparators(value) {\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\n const parts = value.split(this.radix);\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\n return parts.join(this.radix);\n }\n doPrepareChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const [prepCh, details] = super.doPrepareChar(this._removeThousandsSeparators(this.scale && this.mapToRadix.length && (\n /*\n radix should be mapped when\n 1) input is done from keyboard = flags.input && flags.raw\n 2) unmasked value is set = !flags.input && !flags.raw\n and should not be mapped when\n 1) value is set = flags.input && !flags.raw\n 2) raw value is set = !flags.input && flags.raw\n */\n flags.input && flags.raw || !flags.input && !flags.raw) ? ch.replace(this._mapToRadixRegExp, this.radix) : ch), flags);\n if (ch && !prepCh) details.skip = true;\n if (prepCh && !this.allowPositive && !this.value && prepCh !== '-') details.aggregate(this._appendChar('-'));\n return [prepCh, details];\n }\n _separatorsCount(to, extendOnSeparators) {\n if (extendOnSeparators === void 0) {\n extendOnSeparators = false;\n }\n let count = 0;\n for (let pos = 0; pos < to; ++pos) {\n if (this._value.indexOf(this.thousandsSeparator, pos) === pos) {\n ++count;\n if (extendOnSeparators) to += this.thousandsSeparator.length;\n }\n }\n return count;\n }\n _separatorsCountFromSlice(slice) {\n if (slice === void 0) {\n slice = this._value;\n }\n return this._separatorsCount(this._removeThousandsSeparators(slice).length, true);\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n return this._removeThousandsSeparators(super.extractInput(fromPos, toPos, flags));\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n if (!this.thousandsSeparator) return super._appendCharRaw(ch, flags);\n const prevBeforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const prevBeforeTailSeparatorsCount = this._separatorsCountFromSlice(prevBeforeTailValue);\n this._value = this._removeThousandsSeparators(this.value);\n const appendDetails = super._appendCharRaw(ch, flags);\n this._value = this._insertThousandsSeparators(this._value);\n const beforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(beforeTailValue);\n appendDetails.tailShift += (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length;\n appendDetails.skip = !appendDetails.rawInserted && ch === this.thousandsSeparator;\n return appendDetails;\n }\n _findSeparatorAround(pos) {\n if (this.thousandsSeparator) {\n const searchFrom = pos - this.thousandsSeparator.length + 1;\n const separatorPos = this.value.indexOf(this.thousandsSeparator, searchFrom);\n if (separatorPos <= pos) return separatorPos;\n }\n return -1;\n }\n _adjustRangeWithSeparators(from, to) {\n const separatorAroundFromPos = this._findSeparatorAround(from);\n if (separatorAroundFromPos >= 0) from = separatorAroundFromPos;\n const separatorAroundToPos = this._findSeparatorAround(to);\n if (separatorAroundToPos >= 0) to = separatorAroundToPos + this.thousandsSeparator.length;\n return [from, to];\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n const valueBeforePos = this.value.slice(0, fromPos);\n const valueAfterPos = this.value.slice(toPos);\n const prevBeforeTailSeparatorsCount = this._separatorsCount(valueBeforePos.length);\n this._value = this._insertThousandsSeparators(this._removeThousandsSeparators(valueBeforePos + valueAfterPos));\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(valueBeforePos);\n return new ChangeDetails({\n tailShift: (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length\n });\n }\n nearestInputPos(cursorPos, direction) {\n if (!this.thousandsSeparator) return cursorPos;\n switch (direction) {\n case DIRECTION.NONE:\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n {\n const separatorAtLeftPos = this._findSeparatorAround(cursorPos - 1);\n if (separatorAtLeftPos >= 0) {\n const separatorAtLeftEndPos = separatorAtLeftPos + this.thousandsSeparator.length;\n if (cursorPos < separatorAtLeftEndPos || this.value.length <= separatorAtLeftEndPos || direction === DIRECTION.FORCE_LEFT) {\n return separatorAtLeftPos;\n }\n }\n break;\n }\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n {\n const separatorAtRightPos = this._findSeparatorAround(cursorPos);\n if (separatorAtRightPos >= 0) {\n return separatorAtRightPos + this.thousandsSeparator.length;\n }\n }\n }\n return cursorPos;\n }\n doValidate(flags) {\n // validate as string\n let valid = Boolean(this._removeThousandsSeparators(this.value).match(this._numberRegExp));\n if (valid) {\n // validate as number\n const number = this.number;\n valid = valid && !isNaN(number) && (\n // check min bound for negative values\n this.min == null || this.min >= 0 || this.min <= this.number) && (\n // check max bound for positive values\n this.max == null || this.max <= 0 || this.number <= this.max);\n }\n return valid && super.doValidate(flags);\n }\n doCommit() {\n if (this.value) {\n const number = this.number;\n let validnum = number;\n\n // check bounds\n if (this.min != null) validnum = Math.max(validnum, this.min);\n if (this.max != null) validnum = Math.min(validnum, this.max);\n if (validnum !== number) this.unmaskedValue = this.format(validnum, this);\n let formatted = this.value;\n if (this.normalizeZeros) formatted = this._normalizeZeros(formatted);\n if (this.padFractionalZeros && this.scale > 0) formatted = this._padFractionalZeros(formatted);\n this._value = formatted;\n }\n super.doCommit();\n }\n _normalizeZeros(value) {\n const parts = this._removeThousandsSeparators(value).split(this.radix);\n\n // remove leading zeros\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\n // add leading zero\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\n if (parts.length > 1) {\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\n if (!parts[1].length) parts.length = 1; // remove fractional\n }\n\n return this._insertThousandsSeparators(parts.join(this.radix));\n }\n _padFractionalZeros(value) {\n if (!value) return value;\n const parts = value.split(this.radix);\n if (parts.length < 2) parts.push('');\n parts[1] = parts[1].padEnd(this.scale, '0');\n return parts.join(this.radix);\n }\n doSkipInvalid(ch, flags, checkTail) {\n if (flags === void 0) {\n flags = {};\n }\n const dropFractional = this.scale === 0 && ch !== this.thousandsSeparator && (ch === this.radix || ch === MaskedNumber.UNMASKED_RADIX || this.mapToRadix.includes(ch));\n return super.doSkipInvalid(ch, flags, checkTail) && !dropFractional;\n }\n get unmaskedValue() {\n return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix, MaskedNumber.UNMASKED_RADIX);\n }\n set unmaskedValue(unmaskedValue) {\n super.unmaskedValue = unmaskedValue;\n }\n get typedValue() {\n return this.parse(this.unmaskedValue, this);\n }\n set typedValue(n) {\n this.rawInputValue = this.format(n, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);\n }\n\n /** Parsed Number */\n get number() {\n return this.typedValue;\n }\n set number(number) {\n this.typedValue = number;\n }\n\n /**\n Is negative allowed\n */\n get allowNegative() {\n return this.min != null && this.min < 0 || this.max != null && this.max < 0;\n }\n\n /**\n Is positive allowed\n */\n get allowPositive() {\n return this.min != null && this.min > 0 || this.max != null && this.max > 0;\n }\n typedValueEquals(value) {\n // handle 0 -> '' case (typed = 0 even if value = '')\n // for details see https://github.com/uNmAnNeR/imaskjs/issues/134\n return (super.typedValueEquals(value) || MaskedNumber.EMPTY_VALUES.includes(value) && MaskedNumber.EMPTY_VALUES.includes(this.typedValue)) && !(value === 0 && this.value === '');\n }\n}\nMaskedNumber.UNMASKED_RADIX = '.';\nMaskedNumber.EMPTY_VALUES = [...Masked.EMPTY_VALUES, 0];\nMaskedNumber.DEFAULTS = {\n mask: Number,\n radix: ',',\n thousandsSeparator: '',\n mapToRadix: [MaskedNumber.UNMASKED_RADIX],\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n scale: 2,\n normalizeZeros: true,\n padFractionalZeros: false,\n parse: Number,\n format: n => n.toLocaleString('en-US', {\n useGrouping: false,\n maximumFractionDigits: 20\n })\n};\nIMask.MaskedNumber = MaskedNumber;\n\nexport { MaskedNumber as default };\n","import createMask from './factory.js';\nimport IMask from '../core/holder.js';\nimport '../core/utils.js';\n\n/** Mask pipe source and destination types */\nconst PIPE_TYPE = {\n MASKED: 'value',\n UNMASKED: 'unmaskedValue',\n TYPED: 'typedValue'\n};\n/** Creates new pipe function depending on mask type, source and destination options */\nfunction createPipe(arg, from, to) {\n if (from === void 0) {\n from = PIPE_TYPE.MASKED;\n }\n if (to === void 0) {\n to = PIPE_TYPE.MASKED;\n }\n const masked = createMask(arg);\n return value => masked.runIsolated(m => {\n m[from] = value;\n return m[to];\n });\n}\n\n/** Pipes value through mask depending on mask type, source and destination options */\nfunction pipe(value, mask, from, to) {\n return createPipe(mask, from, to)(value);\n}\nIMask.PIPE_TYPE = PIPE_TYPE;\nIMask.createPipe = createPipe;\nIMask.pipe = pipe;\n\nexport { PIPE_TYPE, createPipe, pipe };\n","export { default as InputMask } from './controls/input.js';\nimport IMask from './core/holder.js';\nexport { default as HTMLContenteditableMaskElement } from './controls/html-contenteditable-mask-element.js';\nexport { default as HTMLInputMaskElement } from './controls/html-input-mask-element.js';\nexport { default as HTMLMaskElement } from './controls/html-mask-element.js';\nexport { default as MaskElement } from './controls/mask-element.js';\nexport { default as ChangeDetails } from './core/change-details.js';\nexport { DIRECTION, forceDirection } from './core/utils.js';\nexport { default as Masked } from './masked/base.js';\nexport { default as MaskedDate } from './masked/date.js';\nexport { default as MaskedDynamic } from './masked/dynamic.js';\nexport { default as MaskedEnum } from './masked/enum.js';\nexport { default as createMask, normalizeOpts } from './masked/factory.js';\nexport { default as MaskedFunction } from './masked/function.js';\nexport { default as MaskedNumber } from './masked/number.js';\nexport { default as MaskedPattern } from './masked/pattern.js';\nexport { default as ChunksTailDetails } from './masked/pattern/chunk-tail-details.js';\nexport { default as PatternFixedDefinition } from './masked/pattern/fixed-definition.js';\nexport { default as PatternInputDefinition } from './masked/pattern/input-definition.js';\nexport { PIPE_TYPE, createPipe, pipe } from './masked/pipe.js';\nexport { default as MaskedRange } from './masked/range.js';\nexport { default as MaskedRegExp } from './masked/regexp.js';\nimport './core/action-details.js';\nimport './core/continuous-tail-details.js';\nimport './masked/pattern/cursor.js';\n\ntry {\n globalThis.IMask = IMask;\n} catch {}\n\nexport { IMask as default };\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 if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = 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\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 isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\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 */\n const isStandardBrowserWebWorkerEnv = (() => {\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\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\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","'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\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\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 }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\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\nutils.freezeMethods(AxiosHeaders.prototype);\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","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function 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.isStandardBrowserEnv ?\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 it's 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 const responseType = config.responseType;\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 if (utils.isFormData(requestData)) {\n if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else {\n requestHeaders.setContentType('multipart/form-data;', false); // mobile/desktop app frameworks\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.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\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\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 for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\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 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.4.0\";","'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 let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && 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 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.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 resize from '../resize';\r\nimport IMask from 'imask';\r\nimport vanillaToast from 'vanilla-toast';\r\nimport axios from 'axios';\r\nimport metrics from '../metrics';\r\n\r\nconst form = () => {\r\n //const citizenRequestTGU ='https://localhost:44328/CitizenRequest/InternalNewRequest'; // debug\r\n\r\n const formCitizenRequest = 'https://2025.api.tgu-dpo.ru/citizenrequest/InternalNewRequest',\r\n citizenRequestCommerce = \"https://2025.api.tgu-dpo.ru/citizenrequest/NewInternationalCommerceRequest\",\r\n crmRequest = \"https://sigmaedu.ru/profi/handler.php\",\r\n citizenRequestTop5ProgramsTGU = 'https://2025.api.tgu-dpo.ru/regions/GetTop5ForRegions',\r\n INSTRUCTION = '/files/documents/INSTRUCTION.pdf';\r\n\r\n /* Замена текста в зависимости от ширины экрана */\r\n function resizeForm() {\r\n const text = document.querySelector('.form__info-change');\r\n\r\n if (!text) {\r\n return;\r\n }\r\n\r\n if (innerWidth > 996) {\r\n text.innerHTML = 'справа';\r\n } else {\r\n text.innerHTML = 'снизу';\r\n }\r\n }\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-invalid')) {\r\n input.classList.remove('form-invalid');\r\n inputParent.querySelector('.form-error')?.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-invalid');\r\n\r\n showError(error, inputParent)\r\n }\r\n });\r\n\r\n // Подсказки для ввода почты\r\n const validDomains = ['yandex.ru', 'mail.ru', 'gmail.com', 'hotmail.com', 'outlook.com'];\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 => domain.startsWith(domainPart));\r\n suggestionsDiv.empty(); // Очистка предыдущих подсказок\r\n\r\n if (suggestions.length > 0) {\r\n suggestions.forEach(domain => {\r\n suggestionsDiv.append(`${emailValue.slice(0, atIndex + 1)}${domain}`);\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 const 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 (/^((\\+7|7|8)\\s?\\(?(\\d{3})\\)?[\\s-]?(\\d{3})[\\s-]?(\\d{2})[\\s-]?(\\d{2}))$/.test(value)) {\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 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');\r\n field.appendChild(errorContainer);\r\n }\r\n }\r\n\r\n /* Удаление ошибок валидации */\r\n function deleteErrors(form) {\r\n form.querySelectorAll('.form-error').forEach(function (el) {\r\n el.remove();\r\n });\r\n form.querySelectorAll('.form-invalid').forEach(function (el) {\r\n el.classList.remove('form-invalid');\r\n });\r\n }\r\n\r\n /* Валидация формы */\r\n function validate(form) {\r\n let result = true;\r\n\r\n Array.from(form.querySelectorAll('.form__field')).forEach(function (\r\n formField\r\n ) {\r\n let error = {},\r\n control = formField.querySelector('select, input, textarea');\r\n\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-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-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-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-invalid');\r\n result = false;\r\n }\r\n }\r\n });\r\n\r\n let invalidField = form.querySelector('.form-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 /* Получения cookie */\r\n 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\r\n /* Проверка ИНН */\r\n function validateInn(INN) {\r\n var result = false;\r\n let inn = +INN;\r\n \r\n if (typeof inn === 'number') {\r\n inn = inn.toString();\r\n } else if (typeof inn !== 'string') {\r\n inn = '';\r\n }\r\n\r\n if (!inn.length) {\r\n result = false;\r\n } else if (/[^0-9]/.test(inn)) {\r\n result = false; \r\n } else if ([10].indexOf(inn.length) === -1) {\r\n result = false; \r\n } else {\r\n result = true; \r\n }\r\n\r\n return result;\r\n }\r\n\r\n /* Отправка формы */\r\n async function send(form, e, modalData) {\r\n let sendBtn = form.querySelector(\r\n 'button[type=\"submit\"], input[type=\"submit\"]'\r\n ),\r\n data = {};\r\n\r\n if (modalData) {\r\n data = { ...modalData };\r\n } else {\r\n e.preventDefault();\r\n deleteErrors(form);\r\n\r\n data = {};\r\n\r\n if (!validate(form)) {\r\n return;\r\n }\r\n\r\n Array.from(new FormData(form)).forEach(function (formElement) {\r\n let key = formElement[0],\r\n value = formElement[1];\r\n\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 == \"ParticipantNumber\") {\r\n if (validateInn(value)) {\r\n data[\"ParticipantNumber\"] = value;\r\n } else {\r\n data[\"ParticipantNumber\"] = \"\";\r\n }\r\n } else {\r\n data[key] = value;\r\n }\r\n });\r\n }\r\n\r\n sendBtn.disabled = true;\r\n\r\n let url = document.location.href,\r\n paramsStartIndex = url.indexOf('?');\r\n\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 }\r\n\r\n data['Landing'] = url.split('?')[0] || url;\r\n\r\n /* Добавление данных в передачу формы */\r\n const programList = document.querySelector('#Program')?.children,\r\n programHidden = form.querySelector('.program-hidden'),\r\n programListModal = document.querySelector('#Program-modal')?.children;\r\n\r\n if (programList && programListModal) {\r\n [...programList, ...programListModal].forEach((item) => {\r\n if (data['Program'] == item.value) {\r\n data['Operator'] = item.getAttribute('operator');\r\n data['ProgramOwner'] = item.getAttribute('programowner');\r\n\r\n if (item.getAttribute('linkrvr') != 'undefined') {\r\n data['LinkRVR'] = item.getAttribute('linkrvr');\r\n data['OdinId'] = item.getAttribute('odinid');\r\n }\r\n }\r\n });\r\n } else if (programList && !programHidden) {\r\n [...programList].forEach((item) => {\r\n if (data['Program'] == item.value) {\r\n data['Operator'] = item.getAttribute('operator');\r\n data['ProgramOwner'] = item.getAttribute('programowner');\r\n\r\n if (item.getAttribute('linkrvr') != 'undefined') {\r\n data['LinkRVR'] = item.getAttribute('linkrvr');\r\n data['OdinId'] = item.getAttribute('odinid');\r\n }\r\n }\r\n });\r\n } else {\r\n data['Operator'] = programHidden.getAttribute('operator');\r\n data['ProgramOwner'] = programHidden.getAttribute('programowner');\r\n\r\n if (programHidden.getAttribute('linkrvr') != 'undefined') {\r\n data['LinkRVR'] = programHidden.getAttribute('linkrvr');\r\n data['OdinId'] = programHidden.getAttribute('odinid');\r\n }\r\n }\r\n\r\n if (data['OdinId'] == undefined) {\r\n data['OdinId'] = null;\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 /* Получение UTM меток из cookie */\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 /* AdvCake cookie берем до удаления cookie */\r\n let advcakeCookie = getCookie('advcake_track_id');\r\n\r\n /* Ройстат */\r\n let roistatCookie = getCookie(\"roistat_visit\");\r\n if (!!roistatCookie) {\r\n if (data[\"Operator\"] == \"IRPO\") {\r\n data[\"RoistatCookie\"] = \"111111\";\r\n } else {\r\n data[\"RoistatCookie\"] = roistatCookie;\r\n }\r\n }\r\n\r\n /* Ссылка по отправке формы в базу данных в зависимости от оператора */\r\n let citizenRequest = '';\r\n if (data[\"Operator\"] == \"TGU\") {\r\n citizenRequest = formCitizenRequest;\r\n } else {\r\n citizenRequest = citizenRequestCommerce;\r\n }\r\n\r\n axios\r\n .post(citizenRequest, data)\r\n .then(function (result) {\r\n sendBtn.disabled = false;\r\n onSuccess(data);\r\n\r\n /* Метрики */\r\n VK.Goal('lead');\r\n fbq('track', 'Lead');\r\n VK.Retargeting.Event('lead');\r\n ym(94760218, 'reachGoal', 'submit_form');\r\n var _tmr = window._tmr || (window._tmr = []);\r\n _tmr.push({ id: '3244339', type: 'reachGoal', goal: 'lead' });\r\n _tmr.push({ type: 'reachGoal', id: 3413771, goal: 'lead' });\r\n\r\n if (data['EmploymentFormat'] === '2') {\r\n ym(94760218, 'reachGoal', 'submit_form_trud');\r\n _tmr.push({ type: 'reachGoal', id: 3413771, goal: 'lead_trud' });\r\n }\r\n\r\n addAdvCakeScript(\r\n result.data.requestId,\r\n result.data.odinId,\r\n result.data.programName,\r\n data.Email,\r\n advcakeCookie\r\n );\r\n\r\n /* Отправка в АМО всех операторов, кроме ТГУ */\r\n if (data[\"Operator\"] != \"TGU\") {\r\n formSubmitAmo(data);\r\n } \r\n\r\n form.reset();\r\n $('#Category').val('').trigger('change');\r\n $('#Category-modal').val('').trigger('change');\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n sendBtn.disabled = false;\r\n vanillaToast.error(\r\n 'Пожалуйста, проверьте ваше соединение с сетью или повторите попытку позже',\r\n { duration: 3000, fadeDuration: 500 }\r\n );\r\n });\r\n }\r\n\r\n /* Отправка формы в АМО */\r\n function formSubmitAmo(data) {\r\n axios\r\n .post(crmRequest, data)\r\n }\r\n\r\n /* Установка форм */\r\n function setForm(selector) {\r\n var form = document.querySelector(selector);\r\n\r\n if (!form) {\r\n return;\r\n }\r\n\r\n form.addEventListener('submit', function (e) {\r\n send(form, e);\r\n });\r\n\r\n onFormFilling(form, () => {\r\n ym(94760218, 'reachGoal', 'FormStart');\r\n fbq('track', 'InitiateCheckout');\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 /* Получение Топ 5 программ для всех регионов */\r\n let Top5ProgramsTGU = [];\r\n\r\n async function getTop5Programs() {\r\n Top5ProgramsTGU = await getJson(citizenRequestTop5ProgramsTGU);\r\n }\r\n\r\n /* Функция успешной отправки формы */\r\n function onSuccess(data = null) {\r\n if (data !== null) {\r\n if (data.LinkRVR && data.LinkRVR !== 'undefined') {\r\n let urlRvR = data.LinkRVR;\r\n /* FLOW-12326 */\r\n // successRedirectModal(urlRvR, data['Operator']);\r\n\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 }, 0);\r\n } else {\r\n if (data['TrainingFormat'] == 'offline') {\r\n successModal(data['Operator'], false)\r\n } else {\r\n successModal(data['Operator'], false)\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* Модальное окно после отправки формы с редиректом */\r\n function successRedirectModal(urlRvR, operator) {\r\n let modal = document.querySelector('.success__modal'),\r\n btn = document.querySelector('.success__modal-open');\r\n\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 if (!modal) {\r\n modal = document.createElement('div');\r\n modal.classList.add('success__modal', 'custom-modal__hidden');\r\n modal.id = 'success__modal';\r\n document.body.append(modal);\r\n }\r\n\r\n modal.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

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

\r\n Вступить в чат программы\r\n
\r\n `;\r\n\r\n setTimerRedirect(modal.querySelector('.timer'));\r\n\r\n if (!btn) {\r\n btn = document.createElement('button');\r\n btn.classList.add('success__modal-open');\r\n btn.setAttribute('data-modal-id', 'success__modal');\r\n btn.setAttribute('data-modal-open', '');\r\n btn.style.display = 'none';\r\n\r\n document.body.append(btn);\r\n }\r\n\r\n btn.click();\r\n document.querySelector('.custom-modal-close').style.display = 'none';\r\n document.querySelector('.custom-modal__overlay').style.pointerEvents =\r\n 'none';\r\n\r\n /* Запуск метрики для кнопки телеграм в модальных окнах */\r\n metrics();\r\n }\r\n\r\n /* Создание модального окна со ссылками на РВР Топ 5 программ региона */\r\n function modalTop5Programs(operator, region) {\r\n let data = [];\r\n\r\n Top5ProgramsTGU.forEach((item) => {\r\n if (item.regionId == region) {\r\n data = item.programsSuggestions;\r\n }\r\n });\r\n\r\n if (data.length < 1) {\r\n successModal(operator, false);\r\n return;\r\n }\r\n\r\n let a = document.querySelector('.ProgramsModal__btn'),\r\n modal = document.createElement('div'),\r\n modalRegions = document.querySelector('.modal-programs');\r\n\r\n /* Очищаем модальное окно */\r\n if (modalRegions) {\r\n modalRegions.remove();\r\n }\r\n\r\n /* Создаем модальное окно */\r\n if (!a) {\r\n (a = document.createElement('button')),\r\n a.setAttribute('data-modal-open', '');\r\n a.setAttribute('data-modal-id', 'ProgramsModal');\r\n a.classList.add('ProgramsModal__btn');\r\n a.style.display = 'none';\r\n document.body.append(a);\r\n }\r\n\r\n /* Модальные окна */\r\n modal.classList.add('custom-modal__hidden', 'modal-programs');\r\n modal.id = 'ProgramsModal';\r\n modal.innerHTML = `
\r\n

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

\r\n

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

\r\n
\r\n
`;\r\n document.body.append(modal);\r\n\r\n /* Заполняем список доступных программ. Также проверка на наличие shortname на лендинг */\r\n data.forEach((item) => {\r\n document.querySelector('.modal-programs__links').innerHTML += `\r\n ${item.programName}\r\n `;\r\n });\r\n\r\n a.click();\r\n a.remove();\r\n }\r\n\r\n /* Модальное окно после отправки формы */\r\n function successModal(operator, isJobSeeker = true) {\r\n /* Добавляем ссылку на скачивание лида */\r\n const downloadLead = document.createElement('a');\r\n downloadLead.href ='/files/documents/Instruction_TGU_1.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 let modal = document.querySelector('.success__modal'),\r\n btn = document.querySelector('.success__modal-open'),\r\n botLink;\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 if (!modal) {\r\n modal = document.createElement('div');\r\n modal.classList.add('success__modal', 'custom-modal__hidden');\r\n modal.id = 'success__modal';\r\n document.body.append(modal);\r\n }\r\n\r\n if (isJobSeeker) { \r\n modal.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

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

\r\n Вступить в чат программы\r\n
\r\n `;\r\n } else {\r\n modal.innerHTML = `\r\n
\r\n

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

\r\n

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

\r\n

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

\r\n

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

\r\n

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

\r\n

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

\r\n
\r\n
\r\n \"Картинка\r\n
\r\n `;\r\n }\r\n\r\n if (!btn) {\r\n btn = document.createElement('button');\r\n btn.classList.add('success__modal-open');\r\n btn.setAttribute('data-modal-id', 'success__modal');\r\n btn.setAttribute('data-modal-open', '');\r\n btn.style.display = 'none';\r\n\r\n document.body.append(btn);\r\n }\r\n\r\n btn.click();\r\n\r\n /* Запуск метрики для кнопки телеграм в модальных окнах */\r\n metrics();\r\n }\r\n\r\n /* Модальное окно после отправки формы категории ищущих*/\r\n function successModalForSeekers(operator) {\r\n \r\n window.location.href = '/steps-for-employed';\r\n /* Добавляем ссылку на скачивание лида */\r\n /*const downloadLead = document.createElement('a');\r\n downloadLead.href = '/files/documents/Instruction_TGU_1.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 let modal = document.querySelector('.success__modal'),\r\n btn = document.querySelector('.success__modal-open'),\r\n botLink;\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 if (!modal) {\r\n modal = document.createElement('div');\r\n modal.classList.add('success__modal', 'custom-modal__hidden');\r\n modal.id = 'success__modal';\r\n document.body.append(modal);\r\n }\r\n\r\n modal.innerHTML = `\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 if (!btn) {\r\n btn = document.createElement('button');\r\n btn.classList.add('success__modal-open');\r\n btn.setAttribute('data-modal-id', 'success__modal');\r\n btn.setAttribute('data-modal-open', '');\r\n btn.style.display = 'none';\r\n\r\n document.body.append(btn);\r\n }\r\n\r\n btn.click();*/\r\n\r\n /* Запуск метрики для кнопки телеграм в модальных окнах */\r\n metrics();\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 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 /* Запрос на получение json */\r\n async function getJson(patch) {\r\n let result;\r\n\r\n try {\r\n let response = await fetch(patch);\r\n result = await response.json();\r\n } catch (error) {\r\n console.log('Не удалось подключиться к базе');\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /* Вызов функций */\r\n let phoneInput = document.getElementById('phone');\r\n let phoneModalInput = document.getElementById('phone-modal');\r\n\r\n if (phoneInput) {\r\n new IMask(phoneInput, {\r\n mask: '+{7} (000) 000-00-00',\r\n });\r\n }\r\n\r\n if (phoneModalInput) {\r\n new IMask(phoneModalInput, {\r\n mask: '+{7} (000) 000-00-00',\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 getFormModalData() {\r\n const forms = document.querySelectorAll('.formModal__modal-form');\r\n\r\n let data = {};\r\n [...forms].forEach((form) => {\r\n Array.from(new FormData(form)).forEach(function (formElement) {\r\n let key = formElement[0];\r\n let value = formElement[1];\r\n\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-modal option', value);\r\n data['RegionId'] = value;\r\n } else {\r\n data[key] = value;\r\n }\r\n });\r\n\r\n form.reset();\r\n });\r\n\r\n return data;\r\n }\r\n\r\n /* Переключение и отправка формы в модальном окне */\r\n function formModal() {\r\n const modalBtn = document.querySelectorAll('.formModal__modal-btn');\r\n\r\n modalBtn?.forEach((btn) => {\r\n btn.addEventListener('click', (e) => {\r\n let target = e.target,\r\n form = target.closest('.formModal__modal-form');\r\n\r\n e.preventDefault();\r\n deleteErrors(form);\r\n\r\n if (validate(form)) {\r\n if (target.type == 'button') {\r\n btn.setAttribute('data-modal-open', '');\r\n btn.setAttribute('data-modal-close', '');\r\n } else if (target.type == 'submit') {\r\n btn.setAttribute('data-modal-close', '');\r\n send(form, e, getFormModalData());\r\n }\r\n } else {\r\n if (\r\n target.closest('[data-modal-close]') &&\r\n target.closest('[data-modal-open]')\r\n ) {\r\n btn.removeAttribute('data-modal-open', '');\r\n btn.removeAttribute('data-modal-close', '');\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n /* Инициализация функций */\r\n setForm('#form-app');\r\n setForm('#modal-main');\r\n setFormCheckbox(\r\n [\r\n document.querySelector('#form-check'),\r\n document.querySelector('#form-check--pd'),\r\n ],\r\n document.querySelector('#form-btn')\r\n );\r\n setFormCheckbox(\r\n [\r\n document.querySelector('#form-check-modal'),\r\n document.querySelector('#form-check-modal--pd'),\r\n ],\r\n document.querySelector('#form-btn-modal')\r\n );\r\n resize(resizeForm);\r\n resizeForm();\r\n formModal();\r\n getTop5Programs();\r\n\r\n /* Пользователь находится на сайте больше 30 сек */\r\n setTimeout(() => {\r\n VK.Retargeting.Event('PageView30sec');\r\n fbq('track', 'PageView30s');\r\n }, 30000);\r\n\r\n /* Добавление скрипта AdvCake на сайт */\r\n function addAdvCakeScript(id, OdinId, program, email, advcakeCookie) {\r\n const pageUrl = document.location.href;\r\n\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 leadInfo: {\r\n id: `${id}`,\r\n leadid: `${OdinId}`,\r\n name: `${program}`,\r\n totalPrice: 0,\r\n coupon: '',\r\n marketing_cat: 1,\r\n trackId: `${advcakeCookie}`,\r\n url: `${pageUrl}`,\r\n },\r\n });\r\n }\r\n};\r\n\r\nexport default form;\r\n","import initDropDownsProgramsOnline from \"./online/dropDownPrograms\";\r\nimport initDropDownsProgramsOffline from \"./offline/dropDownPrograms\";\r\nimport netRequestsOnline from \"./online/netRequests\";\r\nimport netRequestsOffline from \"./offline/netRequests\";\r\nimport shortForm from \"./shortForm\";\r\nimport unlockProgramField from \"./unlock-program-field\";\r\nimport datepicker from \"./datepicker\";\r\nimport form from \"./form\";\r\nimport select from \"./select\";\r\n\r\nconst initForm = () => {\r\n const TrainingFormat = document.getElementById(\"TrainingFormat\");\r\n const TrainingFormatModal = document.getElementById(\"TrainingFormat-modal\");\r\n const Program = document.getElementById(`Program`);\r\n const ProgramModal = document.getElementById(`Program-modal`);\r\n const url = location.href.split(\"/\");\r\n\r\n /* Получение списка доступных программ для редиректа и передача в инициализацию поля \"Программа обучения\" */\r\n async function initNetRequests() {\r\n const allProgramsOffline = await netRequestsOffline();\r\n const allProgramsOnline = await netRequestsOnline();\r\n\r\n /* Логика на поле \"Формат обучения\" */\r\n choiceTrainingFormat(TrainingFormat, \"\");\r\n choiceTrainingFormat(TrainingFormatModal, \"-modal\");\r\n\r\n /* Логика по выводу программ в укороченной форме */\r\n shortForm(allProgramsOnline, allProgramsOffline);\r\n\r\n function choiceTrainingFormat(FORMAT, pref) {\r\n if (url.includes(\"program\")) {\r\n const TrainingFormatValue = document.getElementById(\r\n `TrainingFormatHidden${pref}`\r\n );\r\n\r\n if (TrainingFormatValue) {\r\n logicFieldTrainingFormat(Program, pref, TrainingFormatValue.value);\r\n }\r\n } else {\r\n if (FORMAT !== null) {\r\n FORMAT.onchange = function (e) {\r\n logicFieldTrainingFormat(ProgramModal, pref, e.target.value);\r\n };\r\n }\r\n }\r\n }\r\n\r\n function logicFieldTrainingFormat(PROGRAM, pref, status) {\r\n const block = document.getElementById(`hiddenBlockForm${pref}`);\r\n const City = document.getElementById(`City${pref}`);\r\n const Direction = document.getElementById(`Direction${pref}`);\r\n const required = City.parentElement.querySelector(\".city-required\");\r\n let requiredDirection;\r\n if (Direction) {\r\n requiredDirection = Direction.parentElement?.querySelector(\r\n \".direction-required\"\r\n );\r\n }\r\n\r\n $(`#Category${pref}`).val(\"\").trigger(\"change\");\r\n $(`#Education${pref}`).val(\"\").trigger(\"change\");\r\n\r\n block.style.display = \"block\";\r\n\r\n if (PROGRAM) {\r\n [...PROGRAM.children].map((item, idx) => {\r\n if (idx > 0) {\r\n item.remove();\r\n }\r\n });\r\n }\r\n\r\n if (status === \"online\") {\r\n initDropDownsProgramsOnline(`${pref}`, allProgramsOnline);\r\n\r\n City.parentElement.style.display = \"none\";\r\n\r\n if (Direction) {\r\n Direction.parentElement.style.display = \"block\";\r\n requiredDirection?.classList.add(\"form-required\");\r\n }\r\n if (required.classList.contains(\"form-required\")) {\r\n required.classList.remove(\"form-required\");\r\n }\r\n } else {\r\n initDropDownsProgramsOffline(`${pref}`, allProgramsOffline);\r\n\r\n City.parentElement.style.display = \"block\";\r\n required.classList.add(\"form-required\");\r\n\r\n if (Direction) {\r\n Direction.parentElement.style.display = \"none\";\r\n\r\n if (requiredDirection.classList.contains(\"form-required\")) {\r\n requiredDirection.classList.remove(\"form-required\");\r\n }\r\n }\r\n }\r\n\r\n /* Разблокирование поля \"Программы обучения\" после получения списка программ */\r\n unlockProgramField();\r\n }\r\n }\r\n\r\n datepicker();\r\n select();\r\n initNetRequests();\r\n form();\r\n};\r\n\r\nexport default initForm;\r\n","function unlockProgramField() {\r\n const FIELDS = document.querySelectorAll('select[name=\"Program\"]');\r\n\r\n if (FIELDS.length > 0) {\r\n FIELDS.forEach((field) => {\r\n field.disabled = false;\r\n field.parentElement.classList.remove(\"spinner\");\r\n });\r\n }\r\n}\r\n\r\nexport default unlockProgramField;\r\n","const datepicker = () => {\r\n const date = new Datepicker('#BirthDate');\r\n const dateModal = new Datepicker('#BirthDate-modal');\r\n}\r\n\r\nexport default datepicker;","const select = () => {\r\n const selectors = [\r\n {\r\n id: \"#Education\",\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-modal\",\r\n placeholder: \"Текущий уровень вашего образования\",\r\n },\r\n {\r\n id: \"#Program\",\r\n placeholder: \"Программа обучения\",\r\n },\r\n {\r\n id: \"#Program-modal\",\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: \"#shortFormProgram\",\r\n placeholder: \"Программа обучения\",\r\n },\r\n {\r\n id: \"#EmploymentFormat\",\r\n placeholder: \"Форма занятости\",\r\n },\r\n {\r\n id: \"#EmploymentFormat-modal\",\r\n placeholder: \"Форма занятости\",\r\n },\r\n {\r\n id: \"#shortCategory\",\r\n placeholder: \"Категория участника\",\r\n },\r\n {\r\n id: \"#City\",\r\n placeholder: \"Город\",\r\n },\r\n {\r\n id: \"#City-modal\",\r\n placeholder: \"Город\",\r\n },\r\n {\r\n id: \"#TrainingFormat\",\r\n placeholder: \"Формат обучения\",\r\n },\r\n {\r\n id: \"#TrainingFormat-modal\",\r\n placeholder: \"Формат обучения\",\r\n },\r\n {\r\n id: \"#shortTrainingFormat\",\r\n placeholder: \"Формат обучения\",\r\n },\r\n {\r\n id: \"#shortCity\",\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\" || item.id == \"#Education-modal\") {\r\n if (window.innerWidth <= 767) {\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 select;\r\n","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.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(this.start.getTime() + 24 * 60 * 60 * 1000 * this.period);\r\n }\r\n\r\n setDate(this.end);\r\n initCounter(this.start, this.end, this.data);\r\n setTimer(this.end);\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 initCounter = (start, finish, data) => {\r\n const counters = document.querySelectorAll(\"[data-counter]\"),\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 ","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","'use strict';\r\n\r\n/* Стили */\r\nimport '../css/site.scss';\r\n\r\n/* Скрипты */\r\nimport '../plugins/fslightbox.js';\r\nimport sliders from './modules/sliders/sliders.js';\r\nimport scroll from './modules/scroll';\r\nimport faq from './modules/faq';\r\nimport { initAccordion } from './modules/accordion/init-accordion.js';\r\nimport { initModal } from './modules/modal/init-modal.js';\r\nimport renderParticipationModal from './modules/modal/render-participation-modal.js';\r\nimport renderTeachersModal from './modules/modal/render-teachers-modal.js';\r\nimport initShowMoreButton from './modules/init-show-more-button.js';\r\nimport initAppearingModal from './modules/modal/init-appearing-modal.js';\r\nimport initLeavePageModal from './modules/modal/init-leave-page-modal.js';\r\nimport initBanner from './modules/init-banner.js';\r\nimport advCaceProgram from './modules/advCaceProgram.js';\r\nimport setTeachersClass from './modules/set-teachers-class.js';\r\nimport initFilters from './modules/init-filters.js';\r\nimport monitoring from './modules/monitoring.js';\r\nimport burger from './modules/burger.js';\r\nimport initScrollToTop from './modules/init-scroll-to-top.js';\r\nimport metrics from './modules/metrics.js';\r\nimport bannerBack from './modules/bannerBack.js';\r\nimport calculator from './modules/calculator.js';\r\nimport UtmTags from './modules/UtmTags.js';\r\nimport collapse from './modules/collapse.js';\r\nimport initForm from './modules/form/init-form.js';\r\nimport renderStoriesModal from './modules/modal/render-stories-modal.js';\r\nimport initTooltips from './modules/init-tooltips.js';\r\nimport catalog from './modules/catalog.js';\r\nimport renderStepsModal from './modules/modal/render-steps-modal.js';\r\nimport initChangeDate from './modules/date/index.js';\r\nimport initVideoVolumeButton from './modules/init-video-volume-button.js';\r\nimport initTabs from './modules/init-tabs.js';\r\nimport initResolutionLink from './modules/init-resolution-link.js';\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n initModal();\r\n initAccordion();\r\n UtmTags();\r\n metrics();\r\n scroll();\r\n renderParticipationModal();\r\n renderTeachersModal();\r\n sliders();\r\n faq();\r\n initShowMoreButton('.program', 4);\r\n initShowMoreButton('.reviewsPage-cards', 5);\r\n initShowMoreButton('.jobSeeker_catalog', 4);\r\n initShowMoreButton('.moms_catalog_dpo', 8);\r\n initShowMoreButton('.moms_catalog_po', 6);\r\n catalog();\r\n initAppearingModal();\r\n initLeavePageModal();\r\n initTooltips();\r\n initForm();\r\n initBanner();\r\n advCaceProgram();\r\n setTeachersClass();\r\n initFilters();\r\n monitoring();\r\n burger();\r\n initScrollToTop();\r\n bannerBack();\r\n calculator();\r\n collapse();\r\n renderStoriesModal();\r\n initTabs();\r\n renderStepsModal();\r\n initChangeDate();\r\n initVideoVolumeButton();\r\n initResolutionLink();\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 initScrollToTop = () => {\r\n const buttonScrollToTop = document.querySelector(\".scroll-to-top__button\");\r\n const onClickButtonScrollToTop = (evt) => {\r\n evt.preventDefault();\r\n \r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth',\r\n });\r\n };\r\n\r\n if (!buttonScrollToTop) {\r\n return;\r\n }\r\n \r\n \r\n if (window.scrollY > 200) {\r\n buttonScrollToTop.classList.add('is-visible');\r\n }\r\n\r\n window.addEventListener('scroll', () => {\r\n if (window.scrollY > 200) {\r\n buttonScrollToTop.classList.add('is-visible');\r\n } else {\r\n buttonScrollToTop.classList.remove('is-visible');\r\n }\r\n });\r\n \r\n buttonScrollToTop.addEventListener('click', onClickButtonScrollToTop);\r\n};\r\n\r\nexport default initScrollToTop;\r\n ","const burger = () => {\r\n const btn = document.querySelector('.header-btn'),\r\n menu = document.querySelector('.popup-menu'),\r\n menuMob = document.querySelector('.popup-mob'),\r\n header = document.querySelector('.header'),\r\n body = document.body;\r\n\r\n if (!btn) {\r\n return;\r\n }\r\n\r\n btn.addEventListener('click', () => {\r\n if (btn.classList.contains('active')) {\r\n btn.classList.remove('active');\r\n\r\n if (innerWidth < 767) {\r\n menuMob.classList.remove('active');\r\n body.style.removeProperty('overflow');\r\n header.style.zIndex = 'unset';\r\n } else {\r\n menu.classList.remove('active');\r\n }\r\n } else {\r\n btn.classList.add('active');\r\n\r\n if (innerWidth < 767) {\r\n menuMob.classList.add('active');\r\n body.style.overflow = 'hidden';\r\n header.style.zIndex = '100000';\r\n } else {\r\n menu.classList.add('active');\r\n }\r\n }\r\n });\r\n\r\n document.addEventListener('click', (event) => {\r\n let target = event.target;\r\n\r\n if (target.classList.contains('popup__link')) {\r\n btn.classList.remove('active');\r\n menuMob?.classList.remove('active');\r\n menu.classList.remove('active');\r\n body.style.removeProperty('overflow');\r\n header.style.zIndex = 'unset';\r\n }\r\n });\r\n};\r\n\r\nexport default burger;\r\n","const setTeachersClass = () => {\r\n // При количестве преподавателей меньше 4 блоку добавляется класс для стилизации\r\n const teachersContainer = document.querySelector('.teachers');\r\n if (!teachersContainer) return;\r\n const teachers = teachersContainer.querySelectorAll('.teachers__item');\r\n\r\n teachersContainer.classList.add('teachers--alt');\r\n};\r\n \r\nexport default setTeachersClass;\r\n ","const initBanner = () => {\r\n const banner = document.querySelector(\".banner-set\"),\r\n form = document.querySelector(\".form\"),\r\n home = document.querySelector(\".home\"),\r\n buttonScroll = document.querySelector(\".scroll-to-top__button\");\r\n if (!banner || !form || !home) return;\r\n const trackScroll = () => {\r\n const scrolled = window.pageYOffset;\r\n if (scrolled < home.offsetTop + home.clientHeight) {\r\n banner.style.transform = \"translateY(170%)\";\r\n buttonScroll.classList.remove('activeScroll');\r\n } else if (\r\n scrolled + document.documentElement.clientHeight >\r\n form.offsetTop\r\n ) {\r\n banner.style.transform = \"translateY(170%)\";\r\n buttonScroll.classList.remove('activeScroll');\r\n } else if (scrolled < form.offsetTop) {\r\n banner.style.transform = \"translateY(0)\";\r\n buttonScroll.classList.add('activeScroll');\r\n }\r\n };\r\n window.addEventListener(\"scroll\", trackScroll);\r\n };\r\n \r\n export default initBanner;\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","import {modal} from './init-modal';\r\n\r\nconst initAppearingModal = () => {\r\n const appearingModal = document.querySelector('[data-appearing-modal]');\r\n const buttonToForm = document.querySelector('[data-appearing-modal] .appearing-modal__button');\r\n\r\n appearingModal && setTimeout(() => {\r\n // Если после таймаута уже будет открыто какое-либо модальное окно или пользователь уже будет работать с селектами, то функция не отработает\r\n const openSelect = document.querySelector('.select2-container--open');\r\n const activeModal = document.querySelector('.custom-modal.active');\r\n if (!activeModal && !openSelect) {\r\n modal.openModal(appearingModal);\r\n }\r\n\r\n buttonToForm?.addEventListener('click', () => {\r\n appearingModal.removeAttribute('data-modal-open');\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 }, 180000);\r\n};\r\n\r\nexport default initAppearingModal;\r\n","const renderParticipationModal = () => {\r\n const pageBody = document.querySelector('body');\r\n const participationModal = document.querySelector('.participation__modal');\r\n const modalTitle = participationModal?.querySelector('h2');\r\n const participateList = participationModal?.querySelector('.participation__rules-list--participate');\r\n const documentsList = participationModal?.querySelector('.participation__rules-list--documents');\r\n\r\n const onCardClick = (evt) => {\r\n if (evt.target.closest('[data-modal-id=\"participation-modal\"]')) {\r\n const targetCard = evt.target.closest('.participation__slide');\r\n const participateRules = Array.from(targetCard.querySelectorAll('.participation__slide-rules li')).map((rule) => rule.outerHTML);\r\n const documents = Array.from(targetCard.querySelectorAll('.participation__slide-documents li')).map((document) => document.outerHTML); \r\n\r\n modalTitle.textContent = targetCard.querySelector('.participation__slide-info p').textContent;\r\n participateList.innerHTML = participateRules.join(' ');\r\n documentsList.innerHTML = documents.join(' ');\r\n }\r\n };\r\n\r\n participationModal && pageBody.addEventListener('click', onCardClick);\r\n};\r\n\r\nexport default renderParticipationModal;\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","const scroll = () => {\r\n $(\"a[href^='#']:not([data-fslightbox])\").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: $(`#${this.href.split(\"#\").pop()}`).offset().top,\r\n },\r\n 700\r\n );\r\n }\r\n );\r\n}\r\n\r\nexport default scroll;","const renderTeachersModal = () => {\r\n const pageBody = document.querySelector('body');\r\n const teachersModal = document.querySelector('.teachers__modal');\r\n const modalTitle = teachersModal?.querySelector('h3');\r\n const modalDescription = teachersModal?.querySelector('.teachers__modal-description');\r\n const modalImage = teachersModal?.querySelector('.teachers__modal-img img');\r\n const modalFeatures = teachersModal?.querySelector('.teachers__modal-features');\r\n\r\n const onCardClick = (evt) => {\r\n if (evt.target.closest('[data-modal-id=\"teachers-modal\"]')) {\r\n const targetCard = evt.target.closest('.teachers__item');\r\n const cardName = targetCard.querySelector('h5').textContent;\r\n const cardDescription = targetCard.querySelector('p').textContent;\r\n const cardImage = targetCard.querySelector('img');\r\n const cardfeaturesList = targetCard.querySelector('.teachers__item-features');\r\n\r\n modalTitle.textContent = cardName;\r\n modalDescription.textContent = cardDescription;\r\n modalImage.src = cardImage.src;\r\n modalImage.alt = cardImage.alt;\r\n if (cardfeaturesList) {\r\n const features = cardfeaturesList && Array.from(cardfeaturesList.querySelectorAll('li')).map((feature) => feature.outerHTML); \r\n modalFeatures.innerHTML = features.join(' ');\r\n };\r\n }\r\n };\r\n\r\n teachersModal && pageBody.addEventListener('click', onCardClick);\r\n};\r\n\r\nexport default renderTeachersModal;\r\n","const faq = () => {\r\n (function () {\r\n try {\r\n const cards = document.querySelectorAll('.faq__card'),\r\n blocks = document.querySelectorAll('.faq__item');\r\n\r\n let activeCard = document.querySelector('.faq__card.active'),\r\n activeBlock = document.querySelector('.faq__item.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 getPageName from \"../modules/getPageName\";\r\n\r\n/* Логика для страниц каталога фильтрации программ */\r\nconst catalog = () => {\r\n const notFound = document.querySelector(\".catalog__notFound\");\r\n\r\n if (getPageName() === \"employed-job-seeker\") {\r\n document\r\n .querySelectorAll(\".tile__head-block__cost\")\r\n .forEach(\r\n (field) => (field.innerHTML = \"Подходит для трудоустроенных\")\r\n );\r\n }\r\n\r\n /* В каталоге при клике на карточку переход на программу */\r\n $(document).on(\"click\", \".tile\", function () {\r\n window.location = $(this).find(\"a\").attr(\"href\");\r\n });\r\n\r\n if (!notFound) {\r\n return;\r\n }\r\n\r\n /* Замена свойства overflow для основного wrapper, чтобы сработало position: sticky для меню фильтров */\r\n document.querySelector(\".wrapper\").style.overflow = \"visible\";\r\n\r\n const utmCategory = getParam(\"category\"),\r\n utmLevel = getParam(\"level\"),\r\n utmFormat = getParam(\"format\"),\r\n inputsCategory = document.querySelectorAll('input[name=\"category\"]'),\r\n inputsLevel = document.querySelectorAll('input[name=\"level\"]'),\r\n inputsFormat = document.querySelectorAll('input[name=\"format\"]'),\r\n linksPrograms = document.querySelectorAll(\".tile__open-btn\"),\r\n linksDirections = document.querySelectorAll(\".catalog-filter\"),\r\n wrap = document.querySelector(\".catalog__courses\");\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 'repair-locksmith',\r\n 'car-locksmith'\r\n ];\r\n\r\n const offlinePrograms = [\r\n 'cook',\r\n 'medical-care',\r\n 'repair-master',\r\n 'foreman',\r\n 'bim-engineering',\r\n 'car-locksmith',\r\n 'repair-locksmith',\r\n 'welding',\r\n 'electric-welder'\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 (utmFormat) {\r\n inputsFormat.forEach((input) => {\r\n if (input.value == utmFormat) {\r\n input.setAttribute(\"checked\", \"true\");\r\n }\r\n });\r\n }\r\n\r\n update();\r\n initFiltersPopup();\r\n resetAllFilters();\r\n\r\n /* Замена текста в плашках для программ категории ищущих */\r\n linksPrograms.forEach((tile) => {\r\n if (list.includes(returnPageProgram(tile.href))) {\r\n let field = tile\r\n .closest(\".tile\")\r\n .querySelector(\".tile__head-block__cost\");\r\n field.innerHTML = \"Подходит для ищущих работу\";\r\n }\r\n });\r\n \r\n /* Замена текста в плашках для офлайн программ */\r\n linksPrograms.forEach((tile) => {\r\n if (offlinePrograms.includes(returnPageProgram(tile.href))) {\r\n let field = tile\r\n .closest(\".tile\")\r\n .querySelector(\".tile__head-block__cost\");\r\n field.innerHTML = \"Офлайн\";\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 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 scrollToTop();\r\n });\r\n });\r\n\r\n /* Событие на чекбокс формата обучения */\r\n inputsFormat.forEach((input) => {\r\n input.addEventListener(\"change\", () => {\r\n updateQueryStringParam(\"format\", input.value);\r\n update();\r\n scrollToTop();\r\n });\r\n });\r\n \r\n /* Функция для попапа фильтров */\r\n function initFiltersPopup () {\r\n const filtersContainer = document.querySelector(\".catalog__filters-radios\");\r\n if (!filtersContainer) return;\r\n\r\n const filtersPopupButton = document.querySelector(\".catalog__filters-button\");\r\n const filtersPopupClose = filtersContainer.querySelector(\".catalog__filters-close\");\r\n\r\n filtersPopupButton.addEventListener(\"click\", () => {\r\n filtersContainer.classList.add(\"is-active\");\r\n document.body.classList.add(\"scroll-lock\");\r\n\r\n filtersPopupClose.addEventListener(\"click\", () => {\r\n filtersContainer.classList.remove(\"is-active\");\r\n document.body.classList.remove(\"scroll-lock\");\r\n })\r\n })\r\n };\r\n\r\n /* Обновление контента */\r\n function update() {\r\n filterProgramsByFormat(searchValueCheckbox(inputsFormat));\r\n filterProgramsByCategory(searchValueCheckbox(inputsCategory));\r\n blockDisplayLogic(searchValueCheckbox(inputsLevel));\r\n addLinks();\r\n }\r\n\r\n /* Отображение или скрытие блока списка программ и notFound */\r\n function blockDisplayLogic(level) {\r\n let countDPO = countPrograms(\".catalog__DPO\"),\r\n countPO = countPrograms(\".catalog__PO\"),\r\n DPO = document.querySelector(\".catalog__DPO\"),\r\n PO = document.querySelector(\".catalog__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 (countDPO < 1) {\r\n DPO.style.display = \"none\";\r\n wrap.style.display = \"flex\";\r\n notFound.style.display = \"none\";\r\n } else {\r\n DPO.style.display = \"block\";\r\n wrap.style.display = \"flex\";\r\n notFound.style.display = \"none\";\r\n }\r\n }\r\n }\r\n\r\n /* Фильтрация программ */\r\n function filterProgramsByCategory(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)) && !tile.closest(\".tile\").classList.contains(\"hidden\")) {\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 if (filter == \"all\") {\r\n let count = 0;\r\n\r\n linksPrograms.forEach((tile) => {\r\n if (!tile.closest(\".tile\").classList.contains(\"hidden\")) {\r\n if (count == 4) {\r\n count = 0;\r\n }\r\n \r\n count++;\r\n changeStateTiles(tile, count)\r\n \r\n }\r\n });\r\n }\r\n }\r\n\r\n /* Фильтрация программ по формату */\r\n function filterProgramsByFormat(filter) {\r\n if (filter == \"offline\") {\r\n let count = 0;\r\n\r\n linksPrograms.forEach((tile) => {\r\n if (offlinePrograms.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 if (filter == \"online\") {\r\n let count = 0;\r\n\r\n linksPrograms.forEach((tile) => {\r\n if (!offlinePrograms.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 (count == 4) {\r\n count = 0;\r\n }\r\n\r\n count++;\r\n changeStateTiles(tile, count);\r\n });\r\n }\r\n }\r\n\r\n /* Отобраение и замена цвета у карточек каталога */\r\n function changeStateTiles(tile, count) {\r\n const colors = [\r\n [\"#703EFF\", \"#9373F1\"],\r\n [\"#3E74FF\", \"#7599F6\"],\r\n [\"#DB803E\", \"#F1A771\"],\r\n [\"#B63EFF\", \"#C365FD\"],\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.closest(\".tile\").querySelector(\".tile__oval\").style.backgroundColor =\r\n 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) {\r\n const wrap = document.querySelector(block);\r\n\r\n if (!wrap) {\r\n return 0;\r\n }\r\n\r\n const programs = wrap.querySelectorAll(\".tile.visible\");\r\n return programs.length;\r\n }\r\n\r\n /* Добавление для ссылок на направлениях utm меток */\r\n function addLinks() {\r\n let category = searchValueCheckbox(inputsCategory),\r\n level = searchValueCheckbox(inputsLevel),\r\n format = searchValueCheckbox(inputsFormat);\r\n\r\n if (category && !level && !format) {\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 && !format) {\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 if (category && level && format) {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split(\"?\")[0] + `?category=${category}&level=${level}&format=${format}`;\r\n });\r\n } else if (!category && level && !format) {\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 && format) {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split(\"?\")[0] + `?format=${format}`;\r\n });\r\n } else if (!category && level && format) {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split(\"?\")[0] + `?level=${level}&format=${format}`;\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 resetAllFilters() {\r\n let resetAllFilters = document.querySelector('.catalog__filters-li-button');\r\n\r\n resetAllFilters.addEventListener('click', () => {\r\n document.location.href = '/catalog';\r\n });\r\n }\r\n\r\n /* Плавный скролл в начало блока списка программ */\r\n function scrollToTop() {\r\n let scropllBlock = document.querySelector(\".catalog__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","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","// Интеграция Adv.Cace для программ\r\nfunction advCaceProgram() {\r\n let targetUrl = location.href.split('/');\r\n\r\n //Включаем на странице программ и передаем имя программы\r\n if (!targetUrl.includes('program')) {\r\n return;\r\n } \r\n\r\n try { \r\n const title = document.querySelector('.home__title')?.textContent,\r\n programName = title.slice(title.indexOf(\"«\") + 1, title.indexOf(\"»\"));\r\n\r\n window.advcake_data = window.advcake_data || [];\r\n window.advcake_data.push({\r\n pageType: 2,\r\n user: {\r\n email: '',\r\n },\r\n currentLead: {\r\n leadid: '',\r\n name: programName,\r\n },\r\n });\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n}\r\n\r\nexport default advCaceProgram;\r\n","const bannerBack = () => {\r\n let banner = document?.querySelector('.banner-back'),\r\n topBlock = document?.querySelector('.home'),\r\n close = document?.querySelector('.banner-back__close'),\r\n bottomBlock = document?.querySelector('.footer');\r\n\r\n if (banner) {\r\n window.addEventListener('scroll', function () {\r\n if (topBlock.getBoundingClientRect().bottom < -50) { \r\n banner.classList.add('banner-fixed');\r\n } else {\r\n banner.classList.remove('banner-fixed');\r\n }\r\n\r\n if (bottomBlock.getBoundingClientRect().bottom < 1050) {\r\n banner.classList.remove('banner-fixed');\r\n }\r\n });\r\n\r\n close?.addEventListener('click', function () {\r\n banner.style.opacity = \"0\";\r\n });\r\n }\r\n};\r\n\r\nexport default bannerBack;\r\n","import resize from \"./resize\";\r\n\r\nconst collapse = () => {\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 collapseBlock = wrap?.querySelectorAll(collapse);\r\n\r\n buttons.forEach((item, i) => {\r\n let ul = collapseBlock[i].querySelector('ul');\r\n collapseBlock[i].style.height = 0;\r\n\r\n item.addEventListener(\"click\", (e) => {\r\n if (window.innerWidth <= 767) {\r\n e.stopImmediatePropagation();\r\n\r\n if (collapseBlock[i].style.height == 0 + \"px\") {\r\n collapseBlock[i].style.height = ul.clientHeight + 10 + \"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 function resizeCollapse() {\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 }\r\n }\r\n\r\n resizeCollapse();\r\n resize(resizeCollapse);\r\n};\r\n\r\nexport default collapse;\r\n","const renderStoriesModal = () => {\r\n const pageBody = document.querySelector('body');\r\n const storiesModal = document.querySelector('.stories__modal');\r\n const modalImage = storiesModal?.querySelector('img');\r\n const modalName = storiesModal?.querySelector('h5');\r\n const modalCourse = storiesModal?.querySelector('b');\r\n const modalQuote = storiesModal?.querySelector('q');\r\n const blockquote = storiesModal?.querySelector('blockquote');\r\n\r\n const onCardClick = (evt) => {\r\n if (evt.target.closest('[data-modal-id=\"stories-modal\"]')) {\r\n const modalContent = document.querySelector(\".custom-modal__content\");\r\n modalContent.classList.add(\"custom-modal__content--stories\");\r\n const closeButtons = document.querySelectorAll(\"[data-modal-close]\");\r\n closeButtons.forEach((button) => {\r\n button.addEventListener(\"click\", () => modalContent.classList.remove(\"custom-modal__content--stories\"))\r\n });\r\n const targetCard = evt.target.closest('.stories__slide');\r\n const blockquoteParagraphs = Array.from(targetCard.querySelectorAll('.stories__slide-hidden p')).map((paragraph) => paragraph.outerHTML);\r\n\r\n modalImage.src = targetCard.querySelector('img').src;\r\n modalName.textContent = targetCard.querySelector('h5').textContent;\r\n modalCourse.textContent = targetCard.querySelector('b').textContent;\r\n modalQuote.textContent = targetCard.querySelector('q').textContent;\r\n blockquote.innerHTML = blockquoteParagraphs.join(' ');\r\n }\r\n };\r\n\r\n storiesModal && pageBody.addEventListener('click', onCardClick);\r\n};\r\n\r\nexport default renderStoriesModal;\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 { ChangeDate } from \"./ChangeDate\";\r\n\r\nconst initChangeDate = () => {\r\n new ChangeDate({\r\n start: \"2024-03-22\",\r\n end: \"\",\r\n period: 14,\r\n data: {\r\n main: {\r\n total: 467,\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 initVideoVolumeButton = () => {\r\n const quizVideo = document.querySelector(\".graduates__video\");\r\n\r\n if (!quizVideo) return;\r\n \r\n const quizVideoButton = quizVideo.querySelector(\".graduates__video-mute\");\r\n let currentMute = quizVideo.querySelector(\"video\").muted;\r\n\r\n const onVideoAction = () => {\r\n quizVideoButton.style.opacity = \"1\";\r\n quizVideo.removeEventListener(\"mouseenter\", onVideoAction);\r\n quizVideo.addEventListener(\"mouseleave\", fromVideoAction);\r\n }\r\n\r\n const fromVideoAction = () => {\r\n quizVideoButton.style.opacity = \"0\";\r\n quizVideo.addEventListener(\"mouseenter\", onVideoAction);\r\n quizVideo.removeEventListener(\"mouseenter\", fromVideoAction);\r\n }\r\n\r\n quizVideoButton.addEventListener(\"click\", () => {\r\n currentMute = !currentMute;\r\n quizVideo.querySelector(\"video\").muted = currentMute;\r\n quizVideoButton.classList.toggle(\"graduates__video-mute--on\");\r\n })\r\n\r\n\r\n quizVideo.addEventListener(\"mouseenter\", onVideoAction);\r\n quizVideo.addEventListener(\"click\", onVideoAction);\r\n};\r\n\r\nexport default initVideoVolumeButton;\r\n","const initResolutionLink = () => {\r\n const links = document.querySelectorAll(\"[data-resolution]\");\r\n links.forEach((link) => {\r\n link.addEventListener(\"click\", () => {\r\n link.href = link.href.split('?')[0];\r\n })\r\n }) \r\n};\r\n\r\nexport default initResolutionLink;\r\n"],"names":["VanillaToast","this","queue","TaskQueue","cancellationTokens","element","constants","default","className","fadeDuration","fadeInterval","duration","closeButton","immediately","success","info","warning","error","item","prototype","initElement","selector","container","document","createElement","toastBox","text","setAttribute","innerHTML","appendChild","getElementById","seletor","containter","body","_setStyle","cancel","length","cancelAll","i","show","option","callback","self","cancellationToken","CancellationToken","enqueue","next","fadeStep","Math","min","style","display","s","opacity","timeoutId","timeoutCallback","removeEventListener","cancelHandler","_fade","_hide","shift","dispose","clearTimeout","addEventListener","isCancellationRequested","setTimeout","register","push","preset","propertyName","undefined","step","interval","fade","Number","cancelCallbacks","copiedCallbacks","slice","isExecuting","dequeueAndExecute","job","module","exports","vanillaToast","call","t","window","e","n","o","l","m","c","d","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","_typeof","__esModule","create","bind","hasOwnProperty","p","concat","a","u","f","h","g","v","b","x","y","w","iterator","constructor","L","props","getSourceTypeFromLocalStorageByUrl","handleReceivedSourceTypeForUrl","localStorage","setItem","JSON","stringify","disableLocalStorage","parse","getItem","A","data","elements","sources","adjustSize","maxSourceWidth","maxSourceHeight","width","height","C","collections","sourceSizers","sourceAnimationWrappers","isl","resolve","runActions","classList","add","removeChild","firstChild","E","handleImageLoad","target","naturalWidth","naturalHeight","handleVideoLoad","videoWidth","videoHeight","handleNotMetaDatedVideoLoad","handleYoutubeLoad","maxYoutubeDimensions","handleCustomLoad","offsetWidth","offsetHeight","F","customClasses","I","customAttributes","T","sourceLoadHandlers","src","onload","N","videosPosters","onloadedmetadata","controls","poster","z","split","match","allowFullscreen","P","k","H","sourcesRenderFunctions","core","sourceDisplayFacade","runActionsForSourceTypeAndIndex","displaySourcesWhichShouldBeDisplayed","W","readyState","indexOf","getResponseHeader","onreadystatechange","abort","setUrlToCheck","getSourceType","href","hostname","XMLHttpRequest","open","send","R","types","type","getTypeSetByClientForIndex","retrieveTypeWithXhrForIndex","D","stageManager","smw","sourceWrappersContainer","transform","slideDistance","innerWidth","remove","removeProperty","ne","O","createElementNS","setAttributeNS","M","title","X","componentsServices","fs","ofs","ifs","xfs","onclick","lightboxCloser","closeLightbox","j","stageIndexes","setSlideNumber","justifyContent","B","charAt","toUpperCase","U","slideChangeFacade","listener","key","changeToPrevious","changeToNext","preventDefault","q","sourcePointerProps","swipedX","runActionsForEvent","contains","slideSwipingHoverer","screenX","downScreenX","previous","current","V","isPointering","_","slideIndexChanger","sws","runPositiveSwipedXActions","changeTo","runNegativeSwipedXActions","Y","J","runNoSwipeActions","isSourceDownEventTarget","G","$","eventsDispatcher","globalEventsController","scrollbarRecompensor","isLightboxFadingOut","removeListeners","exitFullscreenOnClose","documentElement","removeRecompense","dispatch","K","Q","fullscreenElement","webkitIsFullScreen","mozFullScreen","msFullscreenElement","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","windowResizeActioner","attachListeners","innerHeight","marginRight","scrollbarWidth","addRecompense","jumpTo","getPreviousSlideIndex","getNextSlideIndex","updateStageIndexes","requestAnimationFrame","sourcesPointerDown","tagName","loadOnlyCurrentSource","ee","Reflect","construct","sham","Proxy","Boolean","valueOf","te","apply","Function","arguments","setPrototypeOf","__proto__","ie","Array","re","getElementsByTagName","hasAttribute","getAttribute","console","warn","fsLightboxInstances","FsLightbox","substring","cloneNode","removeAttribute","attributes","name","substr","keys","fsLightbox","createTextNode","head","isFullscreenOpen","unshift","isArray","from","toString","test","TypeError","oe","lightboxUpdater","visibility","msOverflowStyle","overflow","S","Z","close","refreshFsLightbox","define","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","id","loaded","__webpack_modules__","getter","definition","obj","prop","nmd","paths","children","isObject","extend","forEach","ssrDocument","activeElement","blur","nodeName","querySelector","querySelectorAll","createEvent","initEvent","childNodes","importNode","location","hash","host","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","matchMedia","cancelAnimationFrame","getWindow","win","Dom7","items","super","proto","set","makeReactive","arrayFlat","arr","res","el","arrayFilter","filter","context","html","trim","toCreate","tempParent","qsa","nodeType","uniqueArray","arrayUnique","fn","noTrigger","shortcut","args","trigger","on","Methods","addClass","classes","classNames","map","removeClass","hasClass","toggleClass","toggle","attr","attrs","attrName","removeAttr","transition","transitionDuration","eventType","targetSelector","capture","handleLiveEvent","eventData","dom7EventData","is","parents","handleEvent","events","event","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","splice","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","parseFloat","outerHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","each","index","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","prepend","insertBefore","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","find","foundElements","found","methodName","writable","nextTick","delay","now","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","animate","getTime","progress","max","easeProgress","cos","PI","currentPosition","scrollTo","support","deviceCached","browser","getSupport","smoothScroll","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","priority","method","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","updateSize","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","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","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","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","slideTo","internal","initial","Error","indexAsNumber","isFinite","animating","preventInteractionOnTransition","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","setTranslate","transitionStart","isH","_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","diff","getTranslate","loopDestroy","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","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","updateOnWindowResize","ios","android","attachEvents","detachEvents","isGridEnabled","addClasses","suffixes","entries","prefix","resultClasses","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","translateTo","translateBounds","newTranslate","onTranslateToWrapperTransitionEnd","moving","isLocked","cursor","unsetGrabCursor","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","points","point","minRatio","sort","wasLocked","lastSlideIndex","lastSlideRightEdge","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","overrides","platform","ua","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getDevice","isSafari","toLowerCase","isWebView","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","destroy","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","observer","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","createElementIfNotDefined","checkProps","Navigation","getEl","toggleEl","disabled","disabledClass","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","func","currentInnerWidth","sliderContainer","sliderContainers","slider","resizeSwiper","a11y","prevSlideMessage","nextSlideMessage","resize","initParticipationSlider","initFaqSlider","sliderContainerDesc","sliderContainerMob","initPartnersSlider","initCasesSlider","videoReviews","videoReview","_videoReview$querySel","play","_videoReview$querySel2","pause","dublicateSlides","indexSlide","_slide$querySelector","initTeachersSlider","initCooperationSlider","initStoriesSlider","initHrReviewsSlider","initTeamsSlider","initReviewsPageSlider","initJobSeekerSliders","initDissmisalriskSlider","Accordion","_classCallCheck","_openHeight","_windowWidth","_documentClickHandler","_windowResizeHandler","_init","fullUpdate","dataset","closeAccordion","openAccordion","updateAccordionsHeight","_this","content","maxHeight","scrollHeight","closeElement","openElement","_this2","parentElement","contentElement","closeAllAccordion","modal","Modal","_modal","_modal_inset","_modal_content","createModal","includes","closeModal","openModal","visibleItems","itemsContainer","showMoreButton","hiddenItems","resetParameters","onShowMoreButtonClick","onCollapseButtonClick","filters","titlePO","itemsPO","active","_regeneratorRuntime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","configurable","err","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","reject","record","result","__await","then","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","doneResult","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","Promise","iter","reverse","pop","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","catch","thrown","delegateYield","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","arr2","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","buttonsBot","cookie","session","_document","_document2","_document3","refButtonsReg","refButtonsEnter","refButtonsProgramm","ym","cname","ca","decodeURIComponent","getCookie","sessionStorage","rate","_step","buttons","totalPrice","_iterator","_createForOfIteratorHelper","limiter","arrFetch","region","_filterProgramArr$reg","selectedIndex","filterProgramArr","shortName","regions","regionId","link","Regions","arrAllProgramsDirections","arrAllProgramsRegions","emptyModal","elementEmptyModal","insertAdjacentHTML","modalRegions","click","submit","checkbox","category","Url","arrStatus","firstArr","secondArr","shortUrl","regionsArr","logicShowModalCategory","status","availableCategories","program","blockedForm","allProgramsNoDublicate","some","it","idx","findLastIndex","filterProgramsByShortname","_filterProgramsByShor","_slicedToArray","modalMissCategorySearchJob","segments","URL","toLocaleLowerCase","programsDublicate","programs__obj","two_dimensial_arr","filterNoDublicatePrograms","programs","rnd","reduce","acc","dropChance","random","Redirect","sum","getByChance","requestPrograms","field","regionsSelect","regionsList","initRegionsOnline","_ref","_callee","addRegionsSelect","response","_context","select2","Option","accessKey","placeholder","fetch","json","t0","log","cities","regionName","array","findIndex","_initDropDownsProgramsOnline","pref","filterPrograms","allProgramsRegion","level","allProgramsRegionFiltred","Category","Program","ProgramsHidden","DirectionHidden","Education","Direction","submitButton","formCheckbox","allPrograms","logicModalPageProgram","logicEducationFields","renderOptions","setAttrforSingleField","newFilterArr","programHidden","getRedirectLink","operator","programOwner","directionId","po","modalMissProgMain","statusPO","statusDPO","modalMissProgProgram","getPageName","initRegions","onchange","structuredClone","filterNoDublicate","filterDirectionPrograms","_x","_x2","city","statusCity","_initDropDownsProgramsOffline","City","searchCityProgram","_netRequestsOnline","_callee4","regionsDefault","TGU","operatorPrograms","_operatorPrograms","addPropertyProgram","getJson","_getJson","fetchWithTimeout","_fetchWithTimeout","TGU_PROGRAMS","_context4","_callee3","resource","_options$timeout","timeout","controller","_args3","_context3","AbortController","_objectSpread","signal","_x3","_callee2","patch","_response","_context2","Operator","dpo_fetch","dpo_json","po_fetch","po_json","DPO","PO","allowArrayLike","_e","normalCompletion","didErr","_e2","_netRequestsOffline","PROGRAMS","_i","_j","_iterator2","_step2","_item","dublicate","OnlinePrograms","OfflinePrograms","formBlock","Format","HiddenBlock","format","allProgramsFilter","logicFieldCategory","redirect","yaCounter94760218","isString","str","String","_obj$constructor","pick","DIRECTION","escapeRegExp","objectIncludes","arrA","arrB","dateA","dateB","regexpA","RegExp","regexpB","ActionDetails","startChangePos","oldValue","oldSelection","cursorPos","insertedCount","inserted","removedCount","removed","tail","removeDirection","IMask","InputMask","maskedClass","mask","MaskedRegExp","MaskedPattern","MaskedDate","MaskedNumber","MaskedDynamic","Masked","MaskedFunction","normalizeOpts","instanceOpts","_mask","startsWith","createMask","nOpts","MaskedClass","MaskElement","selectionStart","_unsafeSelectionStart","selectionEnd","_unsafeSelectionEnd","select","_unsafeSelect","isActive","HTMLMaskElement","input","_handlers","rootElement","_this$input$getRootNo","_this$input$getRootNo2","_this$input","bindEvents","_toggleEventHandler","EVENTS_MAP","unbindEvents","selectionChange","drop","focus","commit","HTMLInputMaskElement","setSelectionRange","HTMLContenteditableMaskElement","root","selection","getSelection","anchorOffset","focusOffset","createRange","range","setStart","setEnd","lastChild","removeAllRanges","addRange","masked","_listeners","_value","_unmaskedValue","_saveSelection","_onInput","_onChange","_onDrop","_onFocus","_onClick","alignCursor","alignCursorFriendly","_bindEvents","updateValue","maskEquals","_this$masked","updateOptions","unmaskedValue","updateControl","typedValue","typedValueEquals","displayValue","_unbindEvents","_fireEvent","ev","listeners","_cursorChanging","_changingCursorPos","pos","_selection","newUnmaskedValue","newValue","newDisplayValue","isChanged","_fireChangeEvents","restOpts","updateMask","updateOpts","updateCursor","_delayUpdateCursor","_abortUpdateCursor","_inputEvent","isComplete","nearestInputPos","hIndex","details","oldRawValue","rawInputValue","raw","doCommit","ChangeDetails","prep","rawInserted","tailShift","aggregate","ContinuousTailDetails","appendTo","_appendPlaceholder","beforePos","shiftChar","_update","DEFAULTS","_initialized","withValueRefresh","_rawInputValue","flags","extractInput","isFilled","totalInputPositions","fromPos","toPos","extractTail","appendTail","_appendCharRaw","ch","_appendChar","checkTail","consistentState","doPrepareChar","consistentTail","appended","doValidate","beforeTailState","overwrite","tailDetails","_appendEager","_beforeTailState","doPrepare","ci","doSkipInvalid","eager","_refreshing","rawInput","ret","runIsolated","_isolated","skipInvalid","prepare","prepareChar","validate","deleteCount","tailPos","eagerRemove","forceDirection","valLength","tval","EMPTY_VALUES","ChunksTailDetails","chunks","tailChunk","lastChunk","extendLast","firstTailChunk","blockIndex","chunk","lastBlockIter","_mapPosToBlock","chunkBlock","_stops","phDetails","_blocks","remainChars","cstate","chunkShiftPos","PatternCursor","_log","ok","block","_blockStartPos","popState","bindBlock","_pushLeft","_this$block","_pushRight","pushLeftBeforeFilled","isFixed","pushLeftBeforeInput","pushLeftBeforeRequired","isOptional","pushRightBeforeFilled","pushRightBeforeInput","pushRightBeforeRequired","PatternFixedDefinition","isUnmasking","_isRawInput","maxPos","appendEager","isResolved","char","PatternInputDefinition","placeholderChar","displayChar","maskOpts","currentMaskFlags","boundPos","_flags$_beforeTailSta","DEFAULT_DEFINITIONS","definitions","_rebuildMask","defs","exposeBlock","_maskedBlocks","pattern","unmaskingBlock","optionalBlock","blocks","bNames","bName","expose","blockOpts","maskedBlock","isInput","STOP_CHAR","ESCAPE_CHAR","def","maskedState","bi","every","_this$_mapPosToBlock","startBlockIndex","blockIter","blockDetails","chunkTail","_forEachBlocksInRange","bFromPos","bToPos","blockChunk","_findStopBefore","stopBefore","si","toBlockIndex","startBlockIter","endBlockIndex","_blocks2","bDetails","accVal","blockStartPos","fromBlockIter","toBlockIter","isSameBlock","fromBlockStartPos","fromBlockEndPos","removeDetails","maskedBlocks","indices","gi","InputDefinition","FixedDefinition","MaskedRange","_matchFrom","maxLength","autofix","patternOpts","fromStr","padStart","toStr","sameCharsCount","repeat","boundaries","minstr","maxstr","num","padEnd","nextVal","patternBlocks","GET_DEFAULT_BLOCKS","getFullYear","getMonth","getDate","bk","date","isDateExist","day","month","year","currentMask","exposeMask","compiledMasks","_overwrite","_eager","_skipInvalid","_applyDispatch","prevValueBeforeTail","inputValue","insertValue","tailValue","prevMask","prevMaskState","doDispatch","_flags$_beforeTailSta2","currentMaskRef","currentDetails","_this$currentMask","_this$currentMask2","_this$currentMask3","_this$currentMask4","mi","oldMask","_this$currentMask5","inputs","isCurrent","startInputPos","weight","i1","i2","MaskedEnum","enum","_enum","eopts","lengths","requiredLength","optionalLength","_updateRegExps","allowNegative","radix","_numberRegExp","_mapToRadixRegExp","mapToRadix","_thousandsSeparatorRegExp","thousandsSeparator","_removeThousandsSeparators","_insertThousandsSeparators","parts","prepCh","allowPositive","_separatorsCount","extendOnSeparators","count","_separatorsCountFromSlice","_adjustRangeWithSeparators","prevBeforeTailValue","prevBeforeTailSeparatorsCount","appendDetails","beforeTailValue","beforeTailSeparatorsCount","_findSeparatorAround","searchFrom","separatorPos","separatorAroundFromPos","separatorAroundToPos","valueBeforePos","valueAfterPos","separatorAtLeftPos","separatorAtLeftEndPos","separatorAtRightPos","valid","validnum","formatted","normalizeZeros","_normalizeZeros","padFractionalZeros","_padFractionalZeros","sign","zeros","dropFractional","UNMASKED_RADIX","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","toLocaleString","useGrouping","maximumFractionDigits","PIPE_TYPE","MASKED","UNMASKED","TYPED","createPipe","pipe","globalThis","thisArg","kindOf","cache","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isFunction","isNumber","isPlainObject","isDate","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","getOwnPropertyNames","findKey","_key","_global","global","isContextDefined","isTypedArray","TypedArray","Uint8Array","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","isBuffer","isFormData","kind","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","merge","caseless","assignValue","targetKey","stripBOM","charCodeAt","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","toArray","forEachEntry","pair","matchAll","regExp","exec","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","toCamelCase","p1","p2","noop","toFiniteNumber","defaultValue","generateString","alphabet","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","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","isStandardBrowserEnv","product","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","protocols","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","DEFAULT_CONTENT_TYPE","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","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","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","parseHeaders","tokens","tokensRE","parseTokens","has","matcher","delete","deleted","deleteHeader","normalized","formatHeader","targets","asStrings","first","computed","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","write","expires","domain","secure","toGMTString","read","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","urlParsingNode","originURL","resolveURL","port","requestURL","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","samplesCount","bytes","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","round","speedometer","lengthComputable","progressBytes","estimated","knownAdapters","http","xhr","requestData","requestHeaders","onCanceled","cancelToken","unsubscribe","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","statusText","paramsSerializer","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","isURLSameOrigin","cookies","setRequestHeader","onDownloadProgress","onUploadProgress","upload","subscribe","aborted","parseProtocol","throwIfCancellationRequested","throwIfRequested","dispatchRequest","adapters","nameOrAdapter","reason","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","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","contextHeaders","boolean","function","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","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","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_defineProperty","hint","prim","toPrimitive","_toPrimitive","_toPropertyKey","formCitizenRequest","citizenRequestCommerce","crmRequest","resizeForm","invalidCharsRegex","_inputParent$querySel","invalidChars","inputParent","showError","validDomains","emailInput","emailValue","suggestionsDiv","siblings","atIndex","domainPart","suggestions","empty","hide","requried","phone","email","birthday","errorContainer","deleteErrors","form","formField","control","invalidField","scrollIntoView","_send","modalData","_document$querySelect","_document$querySelect2","sendBtn","paramsStartIndex","programList","programListModal","ym_uid","advcakeCookie","roistatCookie","citizenRequest","formElement","inn","returnRegionName","utmString","utmMark","post","onSuccess","VK","Goal","fbq","Retargeting","Event","_tmr","goal","addAdvCakeScript","requestId","odinId","programName","Email","formSubmitAmo","setForm","changed","one","onFormFilling","setFormCheckbox","btn","checked","_getTop5Programs","LinkRVR","urlRvR","newTab","isJobSeeker","downloadLead","metrics","successModal","_x4","modalBtn","phoneInput","phoneModalInput","regionList","OdinId","pageUrl","advcake_data","pageType","user","leadInfo","leadid","coupon","marketing_cat","trackId","forms","getTop5Programs","TrainingFormat","TrainingFormatModal","ProgramModal","_initNetRequests","allProgramsOffline","allProgramsOnline","choiceTrainingFormat","logicFieldTrainingFormat","PROGRAM","requiredDirection","_Direction$parentElem","_requiredDirection","FIELDS","required","initDropDownsProgramsOnline","initDropDownsProgramsOffline","FORMAT","TrainingFormatValue","netRequestsOffline","netRequestsOnline","shortForm","Datepicker","language","noResults","escapeMarkup","markup","initNetRequests","ChangeDate","period","fields","arrMonths","setDate","counters","countersPrograms","decreaseQuantity","final","stepDay","formatNumber","startDate","finishDate","totalMembers","finalNunber","Intl","NumberFormat","txt","declination","counter","main","initCounter","timerElement","timer","utcDate","UTC","countDownDate","timeInterval","setInterval","distance","days","hours","minutes","lastDigit","getDaysWord","getHoursWord","getMinutesWord","clearInterval","setTimer","tabs","buttonScrollToTop","menu","menuMob","teachersContainer","banner","home","buttonScroll","appearingModal","buttonToForm","pageBody","participationModal","modalTitle","participateList","documentsList","metaTags","toUTCString","updatedCookie","optionKey","optionValue","setCookie","UtmTags","targetCard","participateRules","rule","outerHTML","documents","teachersModal","modalDescription","modalImage","modalFeatures","cardName","cardDescription","cardImage","cardfeaturesList","alt","features","feature","renderTeachersModal","sliders","cards","activeCard","activeBlock","card","initShowMoreButton","notFound","utmCategory","getParam","utmLevel","utmFormat","inputsCategory","inputsLevel","inputsFormat","linksPrograms","linksDirections","list","offlinePrograms","filtersContainer","filtersPopupButton","filtersPopupClose","initFiltersPopup","tile","returnPageProgram","updateQueryStringParam","searchParams","scrollToTop","countDPO","countPO","changeStateTiles","hiddenTiles","filterProgramsByFormat","searchValueCheckbox","filterProgramsByCategory","countPrograms","addLinks","colors","backgroundColor","param","scropllBlock","catalog","openSelect","leavePageModal","openModalWindow","statusModal","removeEventOpenModal","documentLeaveHandle","eventHandlerHiddenElement","toElement","relatedTarget","initLeavePageModal","openTooltip","initForm","scrolled","pageYOffset","currentLead","advCaceProgram","initFilters","_getPrograms","PO_TGU","OFLINE","loader","result_TGU_DPO_FETCH","result_TGU_PO_FETCH","result_ofline","arrTgu","arrOffline","OFFLINE","createList","tbody","modals","elem","directionName","arrRegions","_loop","getPrograms","monitoring","zIndex","_document4","topBlock","bottomBlock","bottom","bannerBack","calculator","collapseList","btns","collapse","icon","collapseBlock","ul","resizeCollapse","storiesModal","modalName","modalCourse","modalQuote","blockquote","modalContent","blockquoteParagraphs","paragraph","renderStoriesModal","tab","activeButton","stepsModal","renderStepsModal","quizVideo","quizVideoButton","currentMute","muted","onVideoAction","fromVideoAction","initVideoVolumeButton"],"sourceRoot":""}