{"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/form/modalMissProgMain.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/modalMissProgProgram.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/getPageName.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/getDataProgram.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/dropDownPrograms.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/netRequests.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/constants.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/form/form.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-banner.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/modal/init-complete-modal.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/quiz.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/set-timer.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/date/init-counter.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/index.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-tabs.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/bannerBack.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-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/init-widget.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/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","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/geography.js","webpack://flow.dpoedusigmalanding/./wwwroot/src/modules/init-quiz-video.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.stack = [];\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-open]') && target.closest('[data-modal-back]')) {\r\n this.closeModal();\r\n setTimeout(() => {\r\n this._modal_inset.innerHTML = '';\r\n this.openModal(target);\r\n\r\n if (this.stack.length > 0) {\r\n this.stack = [];\r\n }\r\n\r\n this.setStack(this._modal_content.id);\r\n }, 50);\r\n\r\n return;\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 this.stack = [];\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\r\n if (this.stack.length > 0 && this._modal_content && this._modal_content.id !== this.stack[0]) {\r\n this.openModal(this.stack[0]);\r\n this.stack = [];\r\n } else { \r\n this.body.classList.remove('scroll-lock');\r\n }\r\n }\r\n\r\n setStack(id) {\r\n this.stack.push(id);\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 DPO_IRPO = 'https://2025.api.tgu-dpo.ru/regions/GetAllIrpoProgramsWithRegions?isVisibleWithoutDirection=true',\r\n PO_IRPO = 'https://2025.api.tgu-dpo.ru/regions/GetAllIrpoProgramsWithRegions?isVisibleWithoutDirection=true&&withoutEducation=true',\r\n DPO_RANHIGS = 'https://2025.api.tgu-dpo.ru/regions/GetAllRanepaProgramsWithRegions?isVisibleWithoutDirection=true',\r\n PO_RANHIGS = 'https://2025.api.tgu-dpo.ru/regions/GetAllRanepaProgramsWithRegions?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_IRPO_DPO_FETCH = await getJson(DPO_IRPO),\r\n result_IRPO_PO_FETCH = await getJson(PO_IRPO),\r\n result_RANHIGS_DPO_FETCH = await getJson(DPO_RANHIGS),\r\n result_RANHIGS_PO_FETCH = await getJson(PO_RANHIGS),\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 arrIRPO = [\r\n ...result_IRPO_DPO_FETCH,\r\n ...result_IRPO_PO_FETCH\r\n ],\r\n arrRANHIGS = [\r\n ...result_RANHIGS_DPO_FETCH,\r\n ...result_RANHIGS_PO_FETCH\r\n ],\r\n arrOffline = [\r\n ...result_ofline\r\n ];\r\n \r\n /* Добавление тега ПО */\r\n [...result_TGU_PO_FETCH, ...result_IRPO_PO_FETCH, ...result_RANHIGS_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 arrIRPO.map((it) => (it.operator = 'IRPO'));\r\n arrRANHIGS.map((it) => (it.operator = 'RANHIGS'));\r\n arrOffline.map((it) => (it.operator = 'TGU'));\r\n \r\n loader.classList.remove('active');\r\n dataOutput(arrTgu, arrIRPO, arrRANHIGS, 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, IRPO, RANHIGS, 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(IRPO, 'IRPO'));\r\n wrap.append(createList(RANHIGS, 'RANHIGS'));\r\n wrap.append(createList(OFFLINE, 'OFFLINE'));\r\n wrap.append(createList(OFFLINE, 'OFFLINE PARTNERS'));\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 /* Если программы размещены на сайте offline.edu-sigma, скрываем эти программы */\r\n if (operator == \"OFFLINE\") {\r\n data = data.filter((item) => item.shortName !== \"car-locksmith\" && item.shortName !== \"repair-locksmith\"); \r\n }\r\n\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\" && operator != \"OFFLINE PARTNERS\") {\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 > 0) {\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

${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","/* Модальное окно об отсутствии программ для Главной страницы */\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","import {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 Url,\r\n arrStatus\r\n) {\r\n let shortUrl = location.href.split(\"/\"),\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) {\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.region_id == region)\r\n );\r\n\r\n /* Удаляем дубли в отфильтрованном массиве */\r\n let allProgramsNoDublicate = allProgramsRegionFiltred.filter(\r\n (item, idx, arr) => {\r\n return (\r\n arr.findLastIndex((it) => it.shortname === item.shortname) === idx\r\n );\r\n }\r\n );\r\n\r\n /* Модальные окна */\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 });\r\n\r\n modal.openModal('ProgramsModal');\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.region_id)\r\n .find((it) => it == region);\r\n\r\n if (\r\n findRedionId === undefined ||\r\n (arrStatus[0] == true &&\r\n arrStatus[1] == false)\r\n ) {\r\n createModal();\r\n } else {\r\n blockedForm(\"unBlock\");\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;","const getDataProgram = (arrFetch, e, region, quiz = false) => {\r\n let arr = \"\",\r\n operator = '',\r\n link = '',\r\n program_id = null;\r\n\r\n if (!region) {\r\n return;\r\n }\r\n\r\n /* Проверяем это option или input */\r\n if (quiz == true) {\r\n e = e.target;\r\n } else {\r\n e.target ? (e = e.target.options[e.target.selectedIndex]) : e;\r\n }\r\n\r\n /* Фильтруем общий массив по shortname выбранной программы */\r\n let filterProgramArr = arrFetch.find(\r\n (item) => item.shortname == e.getAttribute(\"shortname\")\r\n );\r\n\r\n if (filterProgramArr == undefined) {\r\n return {operator, program_id, link};\r\n }\r\n\r\n /* Получаем ссылку с отфильтрованного массива */\r\n arr = filterProgramArr.regions.find(\r\n (item) => item.region_id == region\r\n );\r\n\r\n /* ID Program */\r\n program_id = arr.program_id; \r\n \r\n /* Получение оператора и ссылки на РР */\r\n arr.fields.forEach(element => { \r\n if (element.field == \"funnel\") {\r\n operator = element.value\r\n } \r\n\r\n if (element.field == \"rvr_link\") {\r\n link = element.value\r\n }\r\n });\r\n \r\n return {operator, program_id, link};\r\n};\r\n\r\nexport default getDataProgram;\r\n","import modalMissProgMain from './modalMissProgMain';\r\nimport modalMissProgProgram from './modalMissProgProgram';\r\nimport getPageName from '../getPageName';\r\nimport getDataProgram from './getDataProgram';\r\n\r\nasync function initDropDownsPrograms(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 allProgramsRegionFiltred = [],\r\n Program = document.getElementById(`Program${pref}`),\r\n ProgramsHidden = document.querySelectorAll('.program-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 /* FLOW-11265 срабатывание цели один раз при выборе региона и программы */\r\n let selectedOnceRegion = false,\r\n selectedOnceProgram = false;\r\n\r\n /* Общий уникальный массив с операторами */\r\n let allPrograms = requestPrograms;\r\n\r\n /* Выбор региона и программ в зависимости от региона */\r\n if (Regions !== null) {\r\n Regions.onchange = function (e) {\r\n if (!selectedOnceRegion) {\r\n ym(94760218, 'reachGoal', 'geo');\r\n selectedOnceRegion = true;\r\n }\r\n\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.region_id == region)\r\n );\r\n\r\n /* Логика по отсеиванию программ с одинаковыми shortname, у которых нет в данном регионе задачи */\r\n filterNoDublicatePrograms = structuredClone(allProgramsRegionFiltred);\r\n \r\n /* Добавление в переменную всех возможных программ для данного региона для отслеживания логики вывода модального окна с нужным сообщением */\r\n allProgramsRegion = [];\r\n allProgramsRegion = structuredClone(filterNoDublicatePrograms);\r\n\r\n /* Сценарии вывода программ для страниц с полем Выбора программы и без него */\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 (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(allProgramsRegion).filter(\r\n (item) => item.direction_id == this.value\r\n );\r\n\r\n /* Убираем дубли по shortName и присваиваем рандомно оператора */\r\n filterNoDublicatePrograms = filterDirectionPrograms.filter(\r\n (item, idx, arr) => {\r\n return arr.findIndex((it) => it.shortname === item.shortname) === idx;\r\n }\r\n );\r\n\r\n logicEducationFields();\r\n };\r\n }\r\n\r\n /* Выбор программы. Получаем ссылку на РВР и устанавливаем ее в качестве аттрибута */\r\n if (!ProgramsHidden.length && Program) {\r\n Program.onchange = function (e) {\r\n if (!selectedOnceProgram && e.target.value != '') {\r\n selectedOnceProgram = true;\r\n ym(94760218, 'reachGoal', 'prog');\r\n }\r\n\r\n let data = getDataProgram(filterNoDublicatePrograms, e, region);\r\n \r\n /* Добавление аттрибута ссылки на РВР */\r\n e.target.options[e.target.selectedIndex].setAttribute(\r\n 'linkrvr', data?.link\r\n );\r\n \r\n /* Добавление аттрибута оператора */\r\n e.target.options[e.target.selectedIndex].setAttribute(\r\n 'operator', data?.operator\r\n );\r\n \r\n /* Добавление аттрибута id программы */\r\n e.target.options[e.target.selectedIndex].setAttribute(\r\n 'program_id', data?.program_id\r\n );\r\n };\r\n }\r\n\r\n /* Логика вывода модальных окон на странице программы */\r\n function logicModalPageProgram() {\r\n let url = location.href.split('/');\r\n\r\n /* Если не сайт программы, прекращаем выполнение функции */\r\n if (!url.includes('program')) {\r\n return;\r\n }\r\n\r\n if (region && level) {\r\n let statusPO = false,\r\n statusDPO = false;\r\n\r\n filterNoDublicatePrograms.forEach((program) => {\r\n if (program.shortname == shortUrl) {\r\n statusPO = true;\r\n }\r\n });\r\n\r\n filterPrograms.forEach((program) => {\r\n if (program.shortname == shortUrl) {\r\n statusDPO = true;\r\n }\r\n });\r\n\r\n /* Модальное окно отсутствия программ по выбранному региону для страниц программ */\r\n modalMissProgProgram(\r\n filterNoDublicatePrograms,\r\n region,\r\n submitButton,\r\n formCheckbox,\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 filterPrograms = filterNoDublicatePrograms.filter((item) => item.level == \"vocational\");\r\n } else {\r\n filterPrograms = filterNoDublicatePrograms;\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('shortName', item.shortname);\r\n\r\n Program.append(option);\r\n });\r\n }\r\n\r\n /* Если страница программы, добавляем необходимые аттрибуты к скрытым полям */\r\n function setAttrforSingleField() {\r\n ProgramsHidden.forEach((programHidden) => {\r\n programHidden.setAttribute('shortname', shortUrl);\r\n\r\n let data = getDataProgram(filterNoDublicatePrograms, programHidden, region);\r\n \r\n programHidden.setAttribute(\r\n 'linkrvr', data?.link\r\n );\r\n programHidden.setAttribute(\r\n 'operator', data?.operator\r\n );\r\n programHidden.setAttribute(\r\n 'program_id', data?.program_id\r\n );\r\n });\r\n }\r\n}\r\n\r\nexport default initDropDownsPrograms;\r\n","async function netRequests() {\r\n const PROGRAMS = \"https://hermes.smile-tech.study/api/v1/project/1/programs/regional\";\r\n\r\n /* Запрос на получение json */\r\n async function getJson(patch) {\r\n if (!patch) return;\r\n\r\n let result;\r\n\r\n try {\r\n /* На данный момент не все браузеры поддерживают AbortController */\r\n if (\"AbortController\" in window) {\r\n const response = await fetchWithTimeout(patch, {\r\n timeout: 3000,\r\n });\r\n result = await response.json();\r\n } else {\r\n const response = await fetch(patch);\r\n result = await response.json();\r\n }\r\n\r\n return result;\r\n } catch (error) {\r\n console.log(error.name === \"AbortError\");\r\n }\r\n }\r\n\r\n /* Функция прерывания запроса через определенный промежуток времени на основе AbortController */\r\n async function fetchWithTimeout(resource, options = {}) {\r\n const { timeout = 6000 } = options;\r\n\r\n const controller = new AbortController();\r\n const id = setTimeout(() => controller.abort(), timeout);\r\n\r\n const response = await fetch(resource, {\r\n ...options,\r\n signal: controller.signal,\r\n });\r\n clearTimeout(id);\r\n\r\n return response;\r\n }\r\n\r\n /* Передача массива программ фед операторов */\r\n return await getJson(PROGRAMS);\r\n}\r\n\r\nexport default netRequests;\r\n","/** 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","export const Category = {\r\n \"12\": \"Граждане, ищущие работу (или трудоустроенные)\",\r\n \"4\": \"Женщины, находящиеся в отпуске по уходу за ребенком до 3 лет\",\r\n \"5\": \"Женщины, имеющие детей дошкольного возраста, не состоящие в трудовых отношениях\",\r\n \"2\": \"Лица в возрасте 50-ти лет и старше\",\r\n \"3\": \"Гражданин предпенсионного возраста\",\r\n \"1\": \"Безработные граждане, зарегистрированные в органах службы занятости\",\r\n \"7\": \"Граждане до 35 лет включительно, не имеющие среднего профессионального и высшего образования\",\r\n \"8\": \"Граждане до 35 лет включительно, не занятые по истечении 4 месяцев с даты выдачи им документа об образовании и о квалификации\",\r\n \"6\": \"Граждане до 35 лет включительно, не занятые по истечении 4 месяцев с даты окончания военной службы по призыву\",\r\n \"11\": \"Работники, находящиеся под риском увольнения\"\r\n};\r\n\r\nexport const EmploymentFormat = {\r\n \"2\": \"Официально трудоустроен\",\r\n \"1\": \"Не трудоустроен официально\",\r\n};\r\n\r\nexport const Education = {\r\n \"1\": \"Среднее (школьное)\",\r\n \"2\": \"Получаю среднее профессиональное\",\r\n \"3\": \"Среднее профессиональное (колледж, техникум и т.д.)\",\r\n \"4\": \"Получаю высшее образование\",\r\n \"5\": \"Высшее (оконченное)\",\r\n};","import 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\nimport {modal} from '../modal/init-modal';\r\nimport { Category, EmploymentFormat, Education } from './constants';\r\n\r\nconst form = () => {\r\n const citizenRequest= \"https://hermes.smile-tech.study/api/v1/lead?programId=\";\r\n const FlowCRM = \"https://2025.api.tgu-dpo.ru/citizenrequest/InternalNewRequest\";\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, quiz = false) {\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 if (key == \"ParticipationSZ\"){\r\n if (value == \"true\"){\r\n data[\"ParticipationSZ\"] = true;\r\n }\r\n else{\r\n data[\"ParticipationSZ\"] = false;\r\n }\r\n } else if (key == 'category') {\r\n data[key] = Category[value] ? Category[value] : value;\r\n } else if (key == 'EmploymentFormat') {\r\n data[key] = EmploymentFormat[value] ? EmploymentFormat[value] : value;\r\n } else if (key == 'Education') {\r\n data[key] = Education[value] ? Education[value] : value;\r\n } else {\r\n data[key] = value;\r\n }\r\n });\r\n }\r\n\r\n sendBtn.disabled = true;\r\n\r\n let url = document.location.href,\r\n paramsStartIndex = url.indexOf(\"?\");\r\n\r\n try {\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 } catch(e) {\r\n console.log(e); \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\r\n if (!quiz) {\r\n if (programList && !programHidden) {\r\n [...programList].forEach((item) => {\r\n if (data[\"Program\"] == item.value) {\r\n if (item.getAttribute(\"operator\")) {\r\n data[\"Operator\"] = item.getAttribute(\"operator\");\r\n }\r\n \r\n if (item.getAttribute(\"program_id\")) {\r\n if (item.getAttribute(\"program_id\") == \"null\" || item.getAttribute(\"program_id\") == null) {\r\n data[\"program_id\"] = null;\r\n } else {\r\n data[\"program_id\"] = Number(item.getAttribute(\"program_id\"));\r\n }\r\n }\r\n \r\n if (item.getAttribute(\"linkrvr\")) {\r\n data[\"rvr_link\"] = item.getAttribute(\"linkrvr\");\r\n }\r\n }\r\n });\r\n } else {\r\n if (programHidden.getAttribute(\"operator\")) {\r\n data[\"Operator\"] = programHidden.getAttribute(\"operator\");\r\n }\r\n\r\n if (programHidden.getAttribute(\"program_id\")) {\r\n if (programHidden.getAttribute(\"program_id\") == \"null\" || programHidden.getAttribute(\"program_id\") == null) {\r\n data[\"program_id\"] = null;\r\n } else {\r\n data[\"program_id\"] = Number(programHidden.getAttribute(\"program_id\"));\r\n }\r\n }\r\n \r\n if (programHidden.getAttribute(\"linkrvr\")) {\r\n data[\"rvr_link\"] = programHidden.getAttribute(\"linkrvr\");\r\n }\r\n }\r\n }\r\n\r\n let ym_uid = getCookie(\"_ym_uid\");\r\n if (ym_uid) {\r\n data[\"client_id\"] = ym_uid;\r\n }\r\n\r\n /* Ройстат */\r\n let roistatCookie = getCookie(\"roistat_visit\");\r\n\r\n if (!!roistatCookie) {\r\n data[\"roistat\"] = roistatCookie;\r\n }\r\n\r\n /* AdvCake cookie берем до удаления cookie */\r\n let advcakeCookie = getCookie(\"advcake_track_id\");\r\n \r\n axios\r\n .post(citizenRequest + data[\"program_id\"], data)\r\n .then(function (result) {\r\n sendBtn.disabled = false;\r\n\r\n formSubmitFlow(data);\r\n\r\n if (form.id == \"quiz-form\") {\r\n ym(94760218, \"reachGoal\", \"qwiz_submit_form\");\r\n setTimeout(() => {\r\n const newTab = window.open(\"https://t.me/TGUinfoBot\", \"_blank\");\r\n if (newTab) {\r\n newTab.focus();\r\n } else {\r\n window.location.assign(\"https://t.me/TGUinfoBot\");\r\n }\r\n }, 0); \r\n } else {\r\n onSuccess(data);\r\n }\r\n\r\n /* Метрики */\r\n fbq(\"track\", \"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 try {\r\n VK.Goal(\"lead\");\r\n VK.Retargeting.Event(\"lead\");\r\n } catch {}\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.programName,\r\n data.email,\r\n advcakeCookie\r\n );\r\n\r\n form.reset();\r\n $('#Category').val('').trigger('change');\r\n $('#Education').val('').trigger('change');\r\n $('#EmploymentFormat').val('').trigger('change');\r\n $('#Regions').val('').trigger('change');\r\n $('#Program').val('').trigger('change');\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n sendBtn.disabled = false;\r\n vanillaToast.error(\r\n \"Пожалуйста, проверьте ваше соединение с сетью или повторите попытку позже\",\r\n { duration: 3000, fadeDuration: 500 }\r\n );\r\n });\r\n }\r\n\r\n /* Отправка формы во FLOW */\r\n function formSubmitFlow(data) {\r\n data['FirstName'] = data['name'];\r\n data['Phone'] = data['phone'];\r\n data['Email'] = data['email'];\r\n data['LastName'] = '-';\r\n data[\"category\"] = getKeyByValue(Category, data[\"category\"]);\r\n data[\"EmploymentFormat\"] = getKeyByValue(EmploymentFormat, data[\"EmploymentFormat\"]);\r\n data[\"Education\"] = getKeyByValue(Education, data[\"Education\"]);\r\n\r\n axios\r\n .post(FlowCRM, data)\r\n }\r\n\r\n /* Полчуние ключа объекта */\r\n function getKeyByValue(object, value) {\r\n return Object.keys(object).find(key => object[key] === value);\r\n } \r\n\r\n /* Установка форм */\r\n 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 VK.Retargeting.Event('Initiate_Checkout');\r\n });\r\n }\r\n\r\n /* Блокировка кнопки отправки формы */\r\n function setFormCheckbox(arr, btn) {\r\n try {\r\n arr.forEach((item) => {\r\n item.addEventListener(\"change\", function () {\r\n if (!arr.find((checkbox) => !checkbox.checked)) {\r\n btn.removeAttribute(\"disabled\");\r\n } else {\r\n btn.setAttribute(\"disabled\", \"disabled\");\r\n }\r\n });\r\n });\r\n } catch (e) {}\r\n }\r\n\r\n /* Функция успешной отправки формы */\r\n function onSuccess(data = null) {\r\n if (data !== null) {\r\n if (data.rvr_link && data.rvr_link !== \"undefined\") {\r\n let urlRvR = data.rvr_link;\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 ym(94760218,'reachGoal','click_RR');\r\n ym(94760218,'reachGoal','wait_redirect');\r\n }, 0);\r\n } else {\r\n successModal();\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 /* Добавляем ссылку на скачивание инструкции */\r\n // const downloadInstruction = document.createElement(\"a\");\r\n // downloadInstruction.setAttribute(\"download\", \"\");\r\n // downloadInstruction.style.display = \"none\";\r\n // document.body.append(downloadInstruction); \r\n // downloadInstruction.href = INSTRUCTION;\r\n // downloadInstruction.click();\r\n\r\n /* Добавляем ссылку на скачивание лида */\r\n // const downloadLead = document.createElement(\"a\");\r\n // downloadLead.href =\r\n // \"/files/documents/Otvety_na_to_kak_vyyti_na_dokhod_ot_70_000_rubley_new.pdf\";\r\n // downloadLead.setAttribute(\"download\", \"\");\r\n // downloadLead.style.display = \"none\";\r\n // document.body.append(downloadLead);\r\n // downloadLead.click();\r\n\r\n if (!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

Далее вам необходимо подтвердить заявку на портале «Работа в России» в течение 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 setTimerRedirect(Modal.querySelector(\".timer\"));\r\n modal.openModal('success__modal');\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 /* Модальное окно после отправки формы */\r\n function successModal() {\r\n /* Добавляем ссылку на скачивание лида */\r\n // const downloadLead = document.createElement(\"a\");\r\n // downloadLead.href = \"/files/documents/Otvety_na_to_kak_vyyti_na_dokhod_ot_70_000_rubley_new.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\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 = /*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 modal.openModal('success__modal');\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 /* Вызов функций */\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 returnRegionNameInQuiz(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].id;\r\n }\r\n }\r\n }\r\n\r\n /* Переключение и отправка формы в Квизе */\r\n function quizForm() {\r\n const slides = document.querySelectorAll(\".quiz__slide\"),\r\n submit = document.getElementById(\"quiz-btn\");\r\n\r\n if (slides.length < 1) {\r\n return;\r\n }\r\n\r\n submit.addEventListener(\"click\", (e) => {\r\n let target = e.target,\r\n form = target.closest(\".quiz__slide-form\");\r\n\r\n e.preventDefault();\r\n deleteErrors(form);\r\n\r\n if (validate(form)) {\r\n send(form, e, getFormModalData(), true);\r\n }\r\n });\r\n }\r\n\r\n /* Получение данных с форм в модальных окнах */\r\n function getFormModalData() {\r\n const forms = document.querySelectorAll(\".quiz__slide-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 == \"Program\") {\r\n const Program = document.querySelector(\"input[name='Program']:checked\");\r\n data[key] = value;\r\n \r\n if (Program) {\r\n if (Program.getAttribute(\"operator\")) {\r\n data[\"Operator\"] = Program.getAttribute(\"operator\");\r\n }\r\n\r\n if (Program.getAttribute(\"program_id\")) {\r\n if (Program.getAttribute(\"program_id\") == \"null\" || Program.getAttribute(\"program_id\") == null) {\r\n data[\"program_id\"] = null;\r\n } else {\r\n data[\"program_id\"] = Number(Program.getAttribute(\"program_id\"));\r\n }\r\n }\r\n \r\n if (Program.getAttribute(\"linkrvr\")) {\r\n data[\"rvr_link\"] = Program.getAttribute(\"linkrvr\");\r\n }\r\n }\r\n } else if (key == \"BirthDate\") {\r\n data[key] = value.split(\".\").reverse().join(\"-\");\r\n } else if (key == \"Region\") {\r\n data[key] = value;\r\n data[\"RegionId\"] = returnRegionNameInQuiz(\"input[name=Region]\", 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 if (key == \"ParticipationSZ\"){\r\n if (value == \"true\"){\r\n data[\"ParticipationSZ\"] = true;\r\n }\r\n else{\r\n data[\"ParticipationSZ\"] = false;\r\n }\r\n } else if (key == 'category') {\r\n data[key] = Category[value] ? Category[value] : value;\r\n } else if (key == 'EmploymentFormat') {\r\n data[key] = EmploymentFormat[value] ? EmploymentFormat[value] : value;\r\n } else if (key == 'Education') {\r\n data[key] = Education[value] ? Education[value] : value;\r\n } else {\r\n data[key] = value;\r\n }\r\n });\r\n\r\n form.reset();\r\n });\r\n\r\n return data;\r\n }\r\n\r\n /* Инициализация функций */\r\n setForm(\"#form-app\");\r\n setForm(\"#modal-main\");\r\n quizForm();\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-quiz\"),\r\n document.querySelector(\"#form-check-quiz--pd\"),\r\n ],\r\n document.querySelector(\"#quiz-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\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, 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 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 getPageName from \"./getPageName\";\r\nimport initCompleteModal from \"./modal/init-complete-modal\";\r\n\r\nconst initBanner = (PROGRAMS) => {\r\n const banner = document.querySelector(\".banner-set\"),\r\n form = document.querySelector(\".form\"),\r\n home = document.querySelector(\".home\");\r\n\r\n if (!banner || !form || !home) return;\r\n\r\n const trackScroll = () => {\r\n const scrolled = window.pageYOffset;\r\n \r\n if (scrolled < home.offsetTop + home.clientHeight) {\r\n banner.style.transform = \"translateY(170%)\";\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 } else if (scrolled < form.offsetTop) {\r\n banner.style.transform = \"translateY(0)\";\r\n }\r\n };\r\n\r\n /* Отображение текста для активной или выключенной программы */\r\n (() => {\r\n const url = location.href.split('/');\r\n\r\n if (url.includes('program')) { \r\n if (PROGRAMS.some(program => program.shortname === getPageName())) {\r\n banner.querySelector('.active').style.display = 'flex'; \r\n\r\n if (form.querySelector('.spinner-content')) {\r\n form.querySelector('.active').style.display = 'block';\r\n form.querySelector('.spinner-content').classList.remove('spinner-content');\r\n }\r\n } else {\r\n banner.querySelector('.not-active').style.display = 'flex';\r\n\r\n if (form.querySelector('.spinner-content')) {\r\n form.querySelector('.not-active').style.display = 'block';\r\n form.querySelector('.spinner-content').classList.remove('spinner-content');\r\n }\r\n\r\n initCompleteModal();\r\n } \r\n\r\n window.addEventListener(\"scroll\", trackScroll); \r\n } else { \r\n banner.querySelector('.active').style.display = 'flex';\r\n\r\n if (form.querySelector('.spinner-content')) {\r\n form.querySelector('.active').style.display = 'block';\r\n form.querySelector('.spinner-content').classList.remove('spinner-content');\r\n }\r\n\r\n window.addEventListener(\"scroll\", trackScroll);\r\n }\r\n })();\r\n};\r\n\r\nexport default initBanner;\r\n","import {modal} from './init-modal';\r\n\r\nconst initCompleteModal = () => {\r\n if (document.getElementById('CompleteModal')) {\r\n setTimeout(() => { \r\n modal.openModal('CompleteModal');\r\n }, 5000);\r\n }\r\n};\r\n\r\nexport default initCompleteModal;\r\n","import getDataProgram from \"./form/getDataProgram\";\r\nimport { modal } from \"./modal/init-modal\";\r\n\r\nconst quiz = (requestPrograms, programs) => {\r\n const quiz = document.querySelector(\"[data-quiz]\");\r\n if (!quiz) return;\r\n\r\n const btnsPrevSlide = document.querySelectorAll(\".quiz__slide-switches__back\"),\r\n btnsNextSlide = document.querySelectorAll(\".quiz__slide-btn\"),\r\n slides = document.querySelectorAll(\".quiz__slide\");\r\n\r\n if (btnsPrevSlide.length < 1) {\r\n return;\r\n }\r\n\r\n /* */\r\n let level = \"\",\r\n region = \"\",\r\n allProgramsRegionFiltred = [],\r\n filterNoDublicatePrograms = [],\r\n filterPrograms = [],\r\n allProgramsRegion = [];\r\n\r\n /* Блокируем по умолчанию первую кнопку \"Назад\" в квизе */\r\n btnsPrevSlide[0].disabled = true;\r\n\r\n /* Переключение через кнопку \"Назад\" */\r\n (function PrevSlide() {\r\n for (let i = 0; i < btnsPrevSlide.length; i++) {\r\n btnsPrevSlide[i].addEventListener(\"click\", () => {\r\n slides[i].style.display = \"none\";\r\n slides[i - 1].style.display = \"flex\";\r\n });\r\n }\r\n })();\r\n\r\n /* Переключение через кнопку \"Далее\" */\r\n const nextSlide = (form) => {\r\n form\r\n .closest(\".quiz__slide\")\r\n .querySelector(\".quiz__slide-btn\").disabled = false;\r\n\r\n setTimeout(() => {\r\n form.closest(\".quiz__slide\").style.display = \"none\";\r\n let number = +form.closest(\".quiz__slide\").getAttribute(\"data-number\");\r\n slides[number + 1].style.display = \"flex\";\r\n resetCheked(number + 1);\r\n }, 500);\r\n };\r\n\r\n /* переключение на кнопку Далее */\r\n for (let i = 0; i < btnsNextSlide.length; i++) {\r\n btnsNextSlide[i].addEventListener(\"click\", () => {\r\n /* Срабатывание метрики на конпку \"Далее\" на конкретном слайде */\r\n let slide_name = btnsNextSlide[i].closest(\".quiz__slide\").getAttribute(\"data-slide\");\r\n\r\n if (slide_name) { \r\n switch (slide_name) {\r\n case \"category\":\r\n ym(94760218,'reachGoal','category');\r\n break;\r\n case \"education\":\r\n ym(94760218,'reachGoal','education');\r\n break;\r\n case \"geo\":\r\n ym(94760218,'reachGoal','geo_quiz');\r\n break;\r\n case \"program\":\r\n ym(94760218,'reachGoal','program');\r\n break;\r\n default: console.log('no metricks');\r\n }\r\n }\r\n\r\n /* Переключение */\r\n slides[i].style.display = \"none\";\r\n slides[i + 1].style.display = \"flex\";\r\n resetCheked(i + 1);\r\n });\r\n }\r\n\r\n /* Сброс checked у следующего слайда */\r\n function resetCheked(number) {\r\n if (number < slides.length - 1) {\r\n slides[number].querySelector(\".quiz__slide-btn\").disabled = true;\r\n let radios = slides[number].querySelectorAll(\"input[type='radio']\");\r\n\r\n for (let radio of radios) {\r\n if (radio.checked) {\r\n radio.checked = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* События на категории и уровень образования */\r\n (() => {\r\n const categories = document.querySelectorAll(\"input[name='category']\");\r\n categories.forEach((input) => {\r\n input.addEventListener(\"change\", () => {\r\n nextSlide(input.closest(\"form\"));\r\n ym(94760218,'reachGoal','category');\r\n });\r\n });\r\n\r\n const educations = document.querySelectorAll(\"input[name='Education']\");\r\n educations.forEach((input) => {\r\n input.addEventListener(\"change\", (event) => {\r\n level = event.target.value;\r\n nextSlide(input.closest(\"form\"));\r\n ym(94760218,'reachGoal','education');\r\n });\r\n });\r\n })();\r\n\r\n /* Рендеринг регионов в квиз */\r\n (async function renderRegionsQuiz() {\r\n const RegionsQuiz = document.getElementById(\"Regions-quiz\");\r\n\r\n if (!RegionsQuiz) {\r\n return;\r\n }\r\n\r\n try {\r\n let data = \"\";\r\n requestPrograms.regions.forEach((item) => {\r\n data += `\r\n
\r\n \r\n \r\n
\r\n `;\r\n });\r\n\r\n RegionsQuiz.innerHTML = data;\r\n\r\n const Regions = document.querySelectorAll(\"input[name='Region']\");\r\n Regions.forEach((input) => {\r\n input.addEventListener(\"change\", (event) => {\r\n ym(94760218,'reachGoal','geo_quiz');\r\n region = event.target.id;\r\n\r\n /* Фильтрация общего массива в зависимости от выбранного региона */\r\n allProgramsRegionFiltred = programs.filter((item) =>\r\n item.regions.some((it) => it.region_id == region)\r\n );\r\n\r\n /* Логика по отсеиванию программ с одинаковыми shortname, у которых нет в данном регионе задачи */\r\n filterNoDublicatePrograms = structuredClone(allProgramsRegionFiltred);\r\n \r\n /* Добавление в переменную всех возможных программ для данного региона для отслеживания логики вывода модального окна с нужным сообщением */\r\n allProgramsRegion = [];\r\n allProgramsRegion = structuredClone(filterNoDublicatePrograms);\r\n\r\n logicEducationFields();\r\n renderProgramsQuiz(filterPrograms);\r\n\r\n if (filterPrograms.length > 0) {\r\n nextSlide(input.closest(\"form\"));\r\n } else {\r\n input\r\n .closest(\".quiz__slide\")\r\n .querySelector(\".quiz__slide-btn\").disabled = true;\r\n modalMissProgMain(allProgramsRegion);\r\n }\r\n });\r\n });\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n })();\r\n\r\n /* Логика полей в зависимости от выбора уровня образования */\r\n function logicEducationFields() {\r\n if (level == 1) { \r\n filterPrograms = filterNoDublicatePrograms.filter((item) => item.level == \"vocational\");\r\n } else {\r\n filterPrograms = filterNoDublicatePrograms;\r\n }\r\n }\r\n\r\n /* Рендеринг программ в квиз */\r\n function renderProgramsQuiz(programs) {\r\n const ProgramsQuiz = document.getElementById(\"Programs-quiz\");\r\n\r\n let data = \"\";\r\n programs.forEach((item, index) => {\r\n data += `\r\n
\r\n \r\n \r\n
\r\n `;\r\n });\r\n\r\n ProgramsQuiz.innerHTML = data;\r\n\r\n const Programs = document.querySelectorAll(\"input[name='Program']\");\r\n Programs.forEach((input) => {\r\n input.addEventListener(\"change\", (e) => {\r\n let data = getDataProgram(filterNoDublicatePrograms, e, region, true);\r\n\r\n /* Добавление аттрибута ссылки на РВР */\r\n e.target.setAttribute(\r\n 'linkrvr', data?.link\r\n );\r\n \r\n /* Добавление аттрибута оператора */\r\n e.target.setAttribute(\r\n 'operator', data?.operator\r\n );\r\n \r\n /* Добавление аттрибута id программы */\r\n e.target.setAttribute(\r\n 'program_id', data?.program_id\r\n );\r\n\r\n \r\n nextSlide(input.closest(\"form\"));\r\n ym(94760218,'reachGoal','program');\r\n });\r\n });\r\n }\r\n\r\n /* Модальное окно об отсутствии программ для Главной страницы */\r\n function modalMissProgMain(arr) {\r\n let Modal = document.getElementById(\"QuizModal\");\r\n\r\n if (!Modal) {\r\n Modal = document.createElement(\"div\");\r\n Modal.classList.add(\"custom-modal__hidden\", \"modal-programs\");\r\n Modal.id = \"QuizModal\";\r\n document.body.append(Modal);\r\n }\r\n\r\n if (arr.length == 0) {\r\n Modal.innerHTML = `
\r\n
\"icon\"/
\r\n

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

\r\n

Попробуйте выбрать другой регион или зайдите позже, чтобы узнать о наличии новых программ

\r\n
`;\r\n modal.openModal(\"QuizModal\");\r\n } else {\r\n Modal.innerHTML = `
\r\n
\"icon\"/
\r\n

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

\r\n

Попробуйте зайти позже, чтобы узнать о наличии новых программ

\r\n
`;\r\n modal.openModal(\"QuizModal\");\r\n }\r\n }\r\n};\r\n\r\nexport default quiz;\r\n","import initDropDownsPrograms from \"./dropDownPrograms\";\r\nimport netRequests from \"./netRequests\";\r\nimport unlockProgramField from \"./unlock-program-field\";\r\nimport datepicker from \"./datepicker\";\r\nimport form from \"./form\";\r\nimport select from \"./select\";\r\nimport initBanner from \"../init-banner\";\r\nimport quiz from \"../quiz\";\r\n\r\nconst initForm = () => {\r\n /* Получение списка доступных программ для редиректа и передача в инициализацию поля \"Программа обучения\" */\r\n async function initNetRequests() {\r\n const allPrograms = await netRequests();\r\n\r\n // Возвращаем только онлайн программы\r\n const ONLINE_PROGRAMS = allPrograms.programs.filter((program) => program.educational_form == \"online\");\r\n\r\n initRegions(allPrograms.regions);\r\n form();\r\n initDropDownsPrograms(\"\", ONLINE_PROGRAMS);\r\n\r\n /* Разблокирование поля \"Программы обучения\" после получения списка программ */\r\n unlockProgramField();\r\n\r\n /* Инициализация баннера + отображение контента для активной или выключенной программы */ \r\n initBanner(ONLINE_PROGRAMS);\r\n quiz(allPrograms, ONLINE_PROGRAMS);\r\n }\r\n\r\n datepicker();\r\n select();\r\n initNetRequests();\r\n \r\n /* Добавление регионов в форму */\r\n function initRegions(data) {\r\n try {\r\n function addRegionsSelect(id) {\r\n let regionsSelect = $(id);\r\n\r\n data.forEach(function (el) {\r\n let selected = false,\r\n option = new Option(el.name, el.id, false, selected);\r\n\r\n option.accessKey = el.id;\r\n regionsSelect.append(option);\r\n });\r\n\r\n regionsSelect.val(null);\r\n regionsSelect.select2({\r\n placeholder: \"Ваш регион\",\r\n });\r\n }\r\n\r\n addRegionsSelect(\"#Regions\");\r\n addRegionsSelect(\"#Regions-modal\");\r\n\r\n // FLOW-8072 короткая форма\r\n addRegionsSelect(\"#shortFormRegions\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\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: \"#ParticipationSZ\",\r\n placeholder: \"Участие в проекте «Содействие занятости»\",\r\n }\r\n ];\r\n\r\n selectors.forEach((item) => {\r\n let selector = $(item.id),\r\n message = \"\",\r\n placeholder;\r\n\r\n /* вывод сообщения в зависимости от поля */\r\n if (item.id == \"#ProgramHome\") {\r\n message = \"Нет доступных программ\";\r\n } else {\r\n message = \"Ничего не найдено\";\r\n }\r\n /* */\r\n\r\n /* замена placeholder по размеру экрана */\r\n if (item.id == \"#Education\" || 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.timer = options.timer;\r\n this.selectorCounter = options.selectorCounter;\r\n this.data = options.data;\r\n this.count = Math.floor((Date.now() - this.start) / 864e5);\r\n this._init();\r\n }\r\n\r\n _init() {\r\n if (this.end == 'Invalid Date') {\r\n let i = this.count;\r\n\r\n while (i >= this.period) {\r\n i -= this.period;\r\n }\r\n\r\n this.start = new Date(new Date().getTime() - 24 * 60 * 60 * 1000 * i);\r\n this.end = new Date(\r\n this.start.getTime() + 24 * 60 * 60 * 1000 * this.period\r\n );\r\n }\r\n\r\n if (this.timer == true) {\r\n setDate(this.end);\r\n setTimer(this.end);\r\n }\r\n\r\n initCounter(this.start, this.end, this.data, this.selectorCounter);\r\n }\r\n}\r\n","const setDate = (date) => {\r\n const fields = document.querySelectorAll(\"[data-date]\"); \r\n const arrMonths = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];\r\n\r\n fields.forEach(field => {\r\n field.innerHTML = `${date.getDate()} ${arrMonths[date.getMonth()]}`\r\n })\r\n}\r\n\r\nexport default setDate;","const setTimer = (date) => {\r\n const timerElement = document.querySelector('[data-timer]');\r\n if (!timerElement) return;\r\n\r\n (function timer() {\r\n // При изменении конечной даты в баннере вставляем сюда дату в формате (год, месяц[от 0 до 11], число, часы[от 0 до 23 и вычитаем разницу для Москвы], минуты, секунды)\r\n const utcDate = new Date(\r\n Date.UTC(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate() - 1,\r\n 23 - 3,\r\n 59,\r\n 0\r\n )\r\n );\r\n const countDownDate = new Date(utcDate).getTime();\r\n const timeInterval = setInterval(timer, 60000);\r\n const now = new Date().getTime();\r\n const distance = countDownDate - now;\r\n const days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n const hours = Math.floor(\r\n (distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)\r\n );\r\n const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n\r\n const getMinutesWord = (minutes) => {\r\n let result = 'минут';\r\n if (minutes > 10 && minutes < 20) {\r\n return result;\r\n }\r\n const lastDigit = Number(String(minutes).slice(-1));\r\n if (lastDigit === 0 || lastDigit >= 5) {\r\n return result;\r\n }\r\n if (lastDigit === 1) {\r\n return result + 'а';\r\n }\r\n return result + 'ы';\r\n };\r\n\r\n const getHoursWord = (hours) => {\r\n let result = 'часов';\r\n if (hours > 10 && hours < 20) {\r\n return result;\r\n }\r\n const lastDigit = Number(String(hours).slice(-1));\r\n if (lastDigit === 0 || lastDigit >= 5) {\r\n return result;\r\n }\r\n if (lastDigit === 1) {\r\n return 'час';\r\n }\r\n return 'часа';\r\n };\r\n\r\n const getDaysWord = (days) => {\r\n let result = 'дней';\r\n if (days > 10 && days < 20) {\r\n return result;\r\n }\r\n const lastDigit = Number(String(days).slice(-1));\r\n if (lastDigit === 0 || lastDigit >= 5) {\r\n return result;\r\n }\r\n if (lastDigit === 1) {\r\n return 'день';\r\n }\r\n return 'дня';\r\n };\r\n\r\n timerElement.innerHTML = `${days} ${getDaysWord(\r\n days\r\n )} ${hours} ${getHoursWord(\r\n hours\r\n )} ${minutes} ${getMinutesWord(minutes)}`;\r\n\r\n if (distance < 0) {\r\n clearInterval(timeInterval);\r\n timerElement.innerHTML = `0 дней 0 часов 0 минут`;\r\n }\r\n })();\r\n};\r\n\r\nexport default setTimer;\r\n","const initCounter = (start, finish, data, selector) => {\r\n const counters = Array.from(document.querySelectorAll(selector)),\r\n countersPrograms = document.querySelectorAll(\"[data-counter-program]\"); \r\n \r\n function decreaseQuantity(start, finish, total, final, rate) {\r\n let startDate = start, // Начальное дата\r\n finishDate = finish, // Конечная дата\r\n totalMembers = total, // Начальное число мест\r\n finalNunber = final, // Конечное число мест\r\n ratio = rate, // На какое количество уменьшаем\r\n shift,\r\n stepDay,\r\n number,\r\n formatNumber;\r\n \r\n // Возвращает пробелы в числах\r\n function format(value) {\r\n return new Intl.NumberFormat().format(value);\r\n }\r\n \r\n // Склонение окончания в тексте\r\n function declination(number, txt) {\r\n var cases = [2, 0, 1, 1, 1, 2];\r\n return txt[\r\n number % 100 > 4 && number % 100 < 20\r\n ? 2\r\n : cases[number % 10 < 5 ? number % 10 : 5]\r\n ];\r\n }\r\n \r\n // Количество дней прошедших с даты старта счетчика\r\n stepDay = Math.floor((Date.now() - startDate) / 864e5);\r\n \r\n if (stepDay <= 0) {\r\n shift = 0;\r\n } else {\r\n shift = ratio * stepDay;\r\n }\r\n \r\n if (stepDay >= (finishDate - startDate) / 864e5) {\r\n number = finalNunber;\r\n } else {\r\n number = totalMembers - shift;\r\n }\r\n \r\n formatNumber =\r\n format(number) + \" \" + declination(number, [\"место\", \"места\", \"мест\"]);\r\n \r\n return formatNumber;\r\n }\r\n \r\n counters.length &&\r\n counters.forEach(\r\n (counter) =>\r\n (counter.innerHTML = decreaseQuantity(\r\n start,\r\n finish,\r\n data.main.total,\r\n data.main.final,\r\n data.main.rate\r\n ))\r\n );\r\n \r\n countersPrograms.length &&\r\n countersPrograms.forEach(\r\n (counter) =>\r\n (counter.innerHTML = decreaseQuantity(\r\n start,\r\n finish,\r\n data.program.total,\r\n data.program.final,\r\n data.program.rate\r\n ))\r\n );\r\n };\r\n \r\n export default initCounter;\r\n ","'use strict';\r\n\r\n/* Стили */\r\nimport '../css/site.scss';\r\n\r\n/* Скрипты */\r\nimport '../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 initLeavePageModal from './modules/modal/init-leave-page-modal.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 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\nimport geography from './modules/geography.js';\r\nimport initWidjet from './modules/init-widget.js';\r\nimport initAppearingModal from './modules/modal/init-appearing-modal.js';\r\nimport initQuizVideo from './modules/init-quiz-video.js';\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n initModal();\r\n initAccordion();\r\n initWidjet();\r\n // FLOW-10948\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 initLeavePageModal();\r\n initAppearingModal();\r\n initTooltips();\r\n initForm();\r\n advCaceProgram();\r\n setTeachersClass();\r\n initFilters();\r\n monitoring();\r\n burger();\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 geography();\r\n initQuizVideo();\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 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","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 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 initWidjet = () => {\r\n const widget = document.querySelector(\"[data-widget]\");\r\n if (!widget) return;\r\n \r\n const trackScroll = () => {\r\n window.scrollY > 300\r\n ? widget.style.opacity = \"1\"\r\n : widget.style.opacity = \"0\";\r\n };\r\n \r\n trackScroll();\r\n window.addEventListener(\"scroll\", trackScroll);\r\n\r\n /* Метрики на виджет */\r\n const widgetIcon = widget.querySelector(\"[data-widget-icon]\");\r\n const widgetLink = widget.querySelector(\"[data-widget-link]\");\r\n const isHoverableDevice = window.matchMedia(\"(hover: hover)\");\r\n\r\n isHoverableDevice.matches\r\n ? widgetIcon.addEventListener(\"mouseenter\", () => ym(94760218,'reachGoal','hover_widget'))\r\n : widgetIcon.addEventListener(\"click\", () => ym(94760218,'reachGoal','hover_widget'));\r\n\r\n widgetLink.addEventListener(\"click\", () => ym(94760218,'reachGoal','click_widget'));\r\n};\r\n\r\nexport default initWidjet;\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 /* Изменение текста на странице для ищущих в карточке программ */\r\n if (getPageName() === 'employed-job-seeker') {\r\n document\r\n .querySelectorAll('.tile__head-block__cost')\r\n .forEach((field) => (field.innerHTML = 'Подходит для трудоустроенных'));\r\n }\r\n\r\n /* В каталоге при клике на карточку переход на программу */\r\n $(document).on('click', '.tile.active', function () {\r\n window.location = $(this).find('a').attr('href');\r\n });\r\n\r\n /* Далее скрипты только для страниц каталога */\r\n 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 utmRecruitment = getParam('recruitment'),\r\n inputsCategory = document.querySelectorAll('input[name=\"category\"]'),\r\n inputsLevel = document.querySelectorAll('input[name=\"level\"]'),\r\n inputsRecruitment = document.querySelectorAll('input[name=\"recruitment\"]'),\r\n linksPrograms = document.querySelectorAll('.tile__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 ];\r\n\r\n /* Инициализация */\r\n (() => {\r\n // Добавление активности для инпута на основе данных из utm метки\r\n if (utmCategory) {\r\n inputsCategory.forEach((input) => {\r\n if (input.value == utmCategory) {\r\n input.setAttribute('checked', 'true');\r\n }\r\n });\r\n }\r\n\r\n if (utmLevel) {\r\n inputsLevel.forEach((input) => {\r\n if (input.value == utmLevel) {\r\n input.setAttribute('checked', 'true');\r\n }\r\n });\r\n }\r\n\r\n if (utmRecruitment) {\r\n inputsRecruitment.forEach((input) => {\r\n if (input.value == utmRecruitment) {\r\n input.setAttribute('checked', 'true');\r\n }\r\n });\r\n }\r\n\r\n 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 if (!tile.closest(\".tile\").classList.contains('disable')) {\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\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 inputsRecruitment.forEach((input) => {\r\n input.addEventListener('change', () => {\r\n updateQueryStringParam('recruitment', 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(\r\n '.catalog__filters-button'\r\n );\r\n const filtersPopupClose = filtersContainer.querySelector(\r\n '.catalog__filters-close'\r\n );\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 filterPrograms(searchValueCheckbox(inputsCategory));\r\n blockDisplayLogic(\r\n searchValueCheckbox(inputsLevel),\r\n searchValueCheckbox(inputsRecruitment)\r\n );\r\n addLinks();\r\n }\r\n\r\n /* Сброс установок фильтров */\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 /* Отображение или скрытие блока списка программ и notFound */\r\n function blockDisplayLogic(level, filter) {\r\n let countDPO = countPrograms('.catalog__DPO', \"enable\"),\r\n countPO = countPrograms('.catalog__PO', \"enable\"),\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 (countPO < 1) {\r\n if (PO) {\r\n PO.style.display = 'none';\r\n }\r\n wrap.style.display = 'flex';\r\n notFound.style.display = 'none'; \r\n } else if (countDPO < 1) {\r\n if (DPO) {\r\n DPO.style.display = 'none';\r\n }\r\n wrap.style.display = 'flex';\r\n notFound.style.display = 'none'; \r\n } else {\r\n if (PO) {\r\n PO.style.display = 'block';\r\n }\r\n if (DPO) {\r\n DPO.style.display = 'block';\r\n }\r\n wrap.style.display = 'flex';\r\n notFound.style.display = 'none'; \r\n }\r\n }\r\n\r\n //Фильтрация по активности программ\r\n if (filter == 'disable') {\r\n let checkDisableDPO = [...linksPrograms].find((it) => {\r\n if (level == 'DPO' && it.closest('.catalog__DPO')) {\r\n if (it.closest('.disable')) {\r\n return it;\r\n }\r\n }\r\n });\r\n\r\n let checkDisablePO = [...linksPrograms].find((it) => {\r\n if (level == 'PO' && it.closest('.catalog__PO')) {\r\n if (it.closest('.disable')) {\r\n return it;\r\n }\r\n }\r\n });\r\n\r\n let checkDisablePOAll = [...linksPrograms].find((it) => {\r\n if (it.closest('.catalog__PO')) {\r\n if (it.closest('.disable')) {\r\n return it;\r\n }\r\n }\r\n });\r\n\r\n let checkDisableDPOAll = [...linksPrograms].find((it) => {\r\n if (it.closest('.catalog__DPO')) {\r\n if (it.closest('.disable')) {\r\n return it;\r\n }\r\n }\r\n });\r\n \r\n if (level == 'DPO') {\r\n if (typeof checkDisableDPO == 'undefined') {\r\n wrap.style.display = 'none';\r\n notFound.style.display = 'flex';\r\n }\r\n } else if (level == 'PO') {\r\n if (typeof checkDisablePO == 'undefined') {\r\n wrap.style.display = 'none';\r\n notFound.style.display = 'flex';\r\n }\r\n } else { \r\n if (typeof checkDisablePOAll == 'undefined') {\r\n if (PO) {\r\n PO.style.display = 'none';\r\n }\r\n } else {\r\n if (PO) {\r\n PO.style.display = 'block';\r\n }\r\n }\r\n \r\n if (typeof checkDisableDPOAll == 'undefined') {\r\n if (DPO) {\r\n DPO.style.display = 'none';\r\n }\r\n } else {\r\n if (DPO) {\r\n DPO.style.display = 'block';\r\n }\r\n }\r\n\r\n if (\r\n typeof checkDisableDPOAll == 'undefined' &&\r\n typeof checkDisablePOAll == 'undefined'\r\n ) {\r\n wrap.style.display = 'none';\r\n notFound.style.display = 'flex';\r\n }\r\n }\r\n\r\n [...linksPrograms].map((it) => {\r\n it.closest('.tile').style.display = 'none';\r\n\r\n if (it.closest('.disable')) {\r\n it.closest('.tile').style.display = 'flex';\r\n }\r\n });\r\n } else {\r\n const enablePrograms = document.querySelectorAll(\".tile:not(.disable)\");\r\n\r\n if (level == \"DPO\") { \r\n if (countPrograms('.catalog__DPO', \"disable\") == countPrograms('.catalog__DPO', \"enable\")) {\r\n if (DPO) {\r\n DPO.style.display = 'none';\r\n wrap.style.display = 'none';\r\n notFound.style.display = 'flex';\r\n }\r\n }\r\n } else if (level == \"PO\") {\r\n if (countPrograms('.catalog__PO', \"disable\") == countPrograms('.catalog__PO', \"enable\")) {\r\n if (PO) {\r\n PO.style.display = 'none';\r\n wrap.style.display = 'none';\r\n notFound.style.display = 'flex';\r\n }\r\n } \r\n } else {\r\n if (countPrograms('.catalog__DPO', \"disable\") == countPrograms('.catalog__DPO', \"enable\")) {\r\n if (DPO) {\r\n DPO.style.display = 'none';\r\n }\r\n } else {\r\n if (DPO) {\r\n DPO.style.display = 'block';\r\n }\r\n }\r\n \r\n if (countPrograms('.catalog__PO', \"disable\") == countPrograms('.catalog__PO', \"enable\")) {\r\n if (PO) {\r\n PO.style.display = 'none';\r\n }\r\n } else {\r\n if (PO) {\r\n PO.style.display = 'block';\r\n }\r\n } \r\n \r\n if (!enablePrograms.length) {\r\n wrap.style.display = 'none';\r\n notFound.style.display = 'flex';\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* Фильтрация программ */\r\n function filterPrograms(filter) {\r\n if (filter == 'employed') {\r\n let count = 0;\r\n\r\n linksPrograms.forEach((tile) => {\r\n if (list.includes(returnPageProgram(tile.href))) {\r\n if (count == 4) {\r\n count = 0;\r\n }\r\n\r\n count++;\r\n changeStateTiles(tile, count);\r\n } else {\r\n hiddenTiles(tile);\r\n }\r\n });\r\n } else {\r\n let count = 0;\r\n\r\n linksPrograms.forEach((tile) => {\r\n if (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 if (tile.closest('.disable')) {\r\n tile.closest('.tile').style.display = 'none';\r\n }\r\n }\r\n\r\n /* Скрытие карточки в каталоге */\r\n function hiddenTiles(tile) {\r\n if (tile.closest('.tile').classList.contains('visible')) {\r\n tile.closest('.tile').classList.remove('visible');\r\n }\r\n\r\n tile.closest('.tile').classList.add('hidden');\r\n tile.closest('.tile').style.display = 'none';\r\n }\r\n\r\n /* Скрытие или отображение блока для программ ДПО и ПО */\r\n function countPrograms(block, filter) {\r\n const wrap = document.querySelector(block);\r\n\r\n if (!wrap) {\r\n return 0;\r\n }\r\n\r\n if (filter == \"disable\") { \r\n const programs = wrap.querySelectorAll('.tile.visible.disable');\r\n return programs.length;\r\n } else {\r\n const programs = wrap.querySelectorAll('.tile.visible');\r\n return programs.length;\r\n }\r\n }\r\n\r\n /* Добавление для ссылок на направлениях utm меток */\r\n function addLinks() {\r\n let category = searchValueCheckbox(inputsCategory),\r\n level = searchValueCheckbox(inputsLevel);\r\n\r\n if (category && !level) {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split('?')[0] + `?category=${category}`;\r\n });\r\n } else if (!category && level) {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split('?')[0] + `?level=${level}`;\r\n });\r\n } else if (category && level) {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split('?')[0] + `?category=${category}&level=${level}`;\r\n });\r\n } else {\r\n linksDirections.forEach((link) => {\r\n let href = link.href;\r\n link.href = href.split('?')[0];\r\n });\r\n }\r\n }\r\n\r\n /* Поиск выбранного чекбокса */\r\n function searchValueCheckbox(inputs) {\r\n for (var i = 0; i < inputs.length; i++) {\r\n if (inputs[i].checked) {\r\n let value = inputs[i].value;\r\n\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n /* Получение url программы из ссылки */\r\n function returnPageProgram(link) {\r\n const segments = link.split('/'),\r\n last = segments.pop() || segments.pop();\r\n\r\n return last;\r\n }\r\n\r\n /* Функция получения определенной utm метки */\r\n function getParam(param) {\r\n const urlParams = new URL(window.location.toString()).searchParams;\r\n return urlParams.get(param) || '';\r\n }\r\n\r\n /* Плавный скролл в начало блока списка программ */\r\n function scrollToTop() {\r\n let scropllBlock = document.querySelector(\".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","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 timer: true,\r\n start: \"2024-01-26\",\r\n end: '',\r\n period: 14,\r\n selectorCounter: \"[data-counter]\",\r\n data: {\r\n main: {\r\n total: 921,\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","const geography = () => {\r\n gsap.registerPlugin(ScrollTrigger);\r\n\r\n /* Инициализация анимации */\r\n initGsapGeography('.geography__list--top', false);\r\n initGsapGeography('.geography__list--mid', true);\r\n initGsapGeography('.geography__list--bottom', false);\r\n \r\n\r\n /* Настройка параметров для анимации */\r\n function initGsapGeography(block, status) {\r\n const motion = status ? \"25%\" : \"-25%\";\r\n gsap.to(block, {\r\n scrollTrigger: {\r\n trigger: \".geography\",\r\n start: \"-400px bottom\",\r\n end: \"bottom -1000px\",\r\n scrub: !0,\r\n toggleActions: \"restart pause reverse pause\"\r\n },\r\n x: motion,\r\n ease: \"none\",\r\n duration: 4e3\r\n });\r\n }\r\n};\r\n\r\nexport default geography;\r\n\r\n\r\n","const initQuizVideo = () => {\r\n const quizVideo = document.querySelector(\".quiz__video\");\r\n\r\n if (!quizVideo) return;\r\n\r\n if (!quizVideo) return;\r\n const quizVideoButton = quizVideo.querySelector(\".quiz__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(\"quiz__video-mute--on\");\r\n });\r\n\r\n quizVideo.addEventListener(\"mouseenter\", onVideoAction);\r\n quizVideo.addEventListener(\"click\", onVideoAction);\r\n };\r\n\r\n export default initQuizVideo;"],"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","stack","createModal","includes","closeModal","openModal","setStack","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","Regions","arrAllProgramsDirections","arrAllProgramsRegions","emptyModal","elementEmptyModal","insertAdjacentHTML","region","submit","checkbox","Url","arrStatus","firstArr","secondArr","shortUrl","regionsArr","modalRegions","blockedForm","status","allProgramsNoDublicate","regions","some","it","region_id","idx","findLastIndex","shortname","filterProgramsByShortname","_filterProgramsByShor","_slicedToArray","segments","URL","toLocaleLowerCase","arrFetch","operator","link","program_id","selectedIndex","filterProgramArr","fields","field","_initDropDownsPrograms","_callee","pref","requestPrograms","filterNoDublicatePrograms","filterPrograms","allProgramsRegion","level","allProgramsRegionFiltred","Program","ProgramsHidden","Education","Direction","submitButton","formCheckbox","selectedOnceRegion","selectedOnceProgram","allPrograms","logicModalPageProgram","logicEducationFields","renderOptions","setAttrforSingleField","_context","programHidden","getDataProgram","Option","modalMissProgMain","statusPO","statusDPO","program","modalMissProgProgram","getPageName","onchange","structuredClone","filterDirectionPrograms","direction_id","findIndex","_x","_x2","_netRequests","_callee3","getJson","_getJson","fetchWithTimeout","_fetchWithTimeout","_context3","_callee2","resource","_options$timeout","timeout","controller","response","_args2","_context2","AbortController","fetch","_objectSpread","signal","patch","_response","json","t0","log","isString","str","String","_obj$constructor","pick","reduce","acc","_ref","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","click","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","format","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","placeholder","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","random","isSpecCompliantForm","toJSONObject","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","Category","EmploymentFormat","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_defineProperty","hint","prim","toPrimitive","_toPrimitive","_toPropertyKey","citizenRequest","FlowCRM","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","validateInn","INN","inn","_x3","_send","modalData","_document$querySelect","quiz","sendBtn","paramsStartIndex","programList","ym_uid","roistatCookie","advcakeCookie","_args","formElement","returnRegionName","utmString","utmMark","post","formSubmitFlow","newTab","onSuccess","fbq","_tmr","goal","VK","Goal","Retargeting","Event","_unused","addAdvCakeScript","requestId","programName","getKeyByValue","setForm","changed","one","onFormFilling","setFormCheckbox","btn","checked","rvr_link","urlRvR","metrics","successModal","phoneInput","phoneModalInput","regionList","pageUrl","advcake_data","pageType","user","leadInfo","coupon","marketing_cat","trackId","forms","returnRegionNameInQuiz","PROGRAMS","banner","home","trackScroll","scrolled","pageYOffset","programs","btnsPrevSlide","btnsNextSlide","_loop","_renderRegionsQuiz","resetCheked","_loop2","slide_name","RegionsQuiz","renderProgramsQuiz","allowArrayLike","_e","normalCompletion","didErr","_e2","radio","ProgramsQuiz","_initNetRequests","ONLINE_PROGRAMS","netRequests","educational_form","initRegions","initDropDownsPrograms","FIELDS","initBanner","addRegionsSelect","regionsSelect","accessKey","select2","Datepicker","language","noResults","escapeMarkup","markup","initNetRequests","ChangeDate","period","timer","selectorCounter","arrMonths","setDate","timerElement","utcDate","UTC","countDownDate","timeInterval","setInterval","distance","days","hours","minutes","lastDigit","getDaysWord","getHoursWord","getMinutesWord","clearInterval","setTimer","counters","countersPrograms","decreaseQuantity","final","stepDay","formatNumber","startDate","finishDate","totalMembers","finalNunber","Intl","NumberFormat","txt","declination","counter","main","initCounter","tabs","_document4","topBlock","bottomBlock","menu","menuMob","teachersContainer","appearingModal","buttonToForm","pageBody","participationModal","modalTitle","participateList","documentsList","widget","widgetIcon","widgetLink","initWidjet","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","utmRecruitment","inputsCategory","inputsLevel","inputsRecruitment","linksPrograms","linksDirections","list","filtersContainer","filtersPopupButton","filtersPopupClose","initFiltersPopup","tile","returnPageProgram","updateQueryStringParam","searchParams","scrollToTop","category","changeStateTiles","hiddenTiles","searchValueCheckbox","countDPO","countPrograms","countPO","DPO","PO","checkDisableDPO","checkDisablePO","checkDisablePOAll","checkDisableDPOAll","enablePrograms","blockDisplayLogic","colors","backgroundColor","param","scropllBlock","catalog","leavePageModal","openModalWindow","statusModal","removeEventOpenModal","documentLeaveHandle","eventHandlerHiddenElement","toElement","relatedTarget","initLeavePageModal","openSelect","openTooltip","initForm","currentLead","leadid","advCaceProgram","initFilters","_getPrograms","PO_TGU","DPO_IRPO","PO_IRPO","DPO_RANHIGS","PO_RANHIGS","OFLINE","loader","result_TGU_DPO_FETCH","result_TGU_PO_FETCH","result_IRPO_DPO_FETCH","result_IRPO_PO_FETCH","result_RANHIGS_DPO_FETCH","result_RANHIGS_PO_FETCH","result_ofline","arrTgu","arrIRPO","arrRANHIGS","arrOffline","po","TGU","IRPO","RANHIGS","OFFLINE","createList","tbody","modals","shortName","elem","directionName","directionId","arrRegions","regionName","cities","city","regionsDefault","getPrograms","monitoring","zIndex","bottom","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","initGsapGeography","motion","gsap","scrollTrigger","scrub","toggleActions","ease","registerPlugin","ScrollTrigger","geography","initQuizVideo"],"sourceRoot":""}