/*! elementor - v3.16.0 - 14-09-2023 */
(self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["frontend-modules"],{
/***/ "../assets/dev/js/editor/utils/is-instanceof.js":
/*!******************************************************!*\
!*** ../assets/dev/js/editor/utils/is-instanceof.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
/**
* Some FileAPI objects such as FileList, DataTransferItem and DataTransferItemList has inconsistency with the retrieved
* object (from events, etc.) and the actual JavaScript object so a regular instanceof doesn't work. This function can
* check whether it's instanceof by using the objects constructor and prototype names.
*
* @param object
* @param constructors
* @return {boolean}
*/
var _default = (object, constructors) => {
constructors = Array.isArray(constructors) ? constructors : [constructors];
for (const constructor of constructors) {
if (object.constructor.name === constructor.prototype[Symbol.toStringTag]) {
return true;
}
}
return false;
};
exports["default"] = _default;
/***/ }),
/***/ "../assets/dev/js/frontend/document.js":
/*!*********************************************!*\
!*** ../assets/dev/js/frontend/document.js ***!
\*********************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
class _default extends elementorModules.ViewModule {
getDefaultSettings() {
return {
selectors: {
elements: '.elementor-element',
nestedDocumentElements: '.elementor .elementor-element'
},
classes: {
editMode: 'elementor-edit-mode'
}
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
$elements: this.$element.find(selectors.elements).not(this.$element.find(selectors.nestedDocumentElements))
};
}
getDocumentSettings(setting) {
let elementSettings;
if (this.isEdit) {
elementSettings = {};
const settings = elementor.settings.page.model;
jQuery.each(settings.getActiveControls(), controlKey => {
elementSettings[controlKey] = settings.attributes[controlKey];
});
} else {
elementSettings = this.$element.data('elementor-settings') || {};
}
return this.getItems(elementSettings, setting);
}
runElementsHandlers() {
this.elements.$elements.each((index, element) => setTimeout(() => elementorFrontend.elementsHandler.runReadyTrigger(element)));
}
onInit() {
this.$element = this.getSettings('$element');
super.onInit();
this.isEdit = this.$element.hasClass(this.getSettings('classes.editMode'));
if (this.isEdit) {
elementor.on('document:loaded', () => {
elementor.settings.page.model.on('change', this.onSettingsChange.bind(this));
});
} else {
this.runElementsHandlers();
}
}
onSettingsChange() {}
}
exports["default"] = _default;
/***/ }),
/***/ "../assets/dev/js/frontend/handlers/accessibility/nested-title-keyboard-handler.js":
/*!*****************************************************************************************!*\
!*** ../assets/dev/js/frontend/handlers/accessibility/nested-title-keyboard-handler.js ***!
\*****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _base = _interopRequireDefault(__webpack_require__(/*! ../base */ "../assets/dev/js/frontend/handlers/base.js"));
class NestedTitleKeyboardHandler extends _base.default {
__construct(settings) {
super.__construct(settings);
this.directionNext = 'next';
this.directionPrevious = 'previous';
this.focusableElementSelector = 'audio, button, canvas, details, iframe, input, select, summary, textarea, video, [accesskey], [contenteditable], [href], [tabindex]:not([tabindex="-1"])';
}
getDefaultSettings() {
return {
selectors: {
itemTitle: '.e-n-tab-title',
itemContainer: '.e-n-tabs-content > .e-con'
},
ariaAttributes: {
titleStateAttribute: 'aria-selected',
activeTitleSelector: '[aria-selected="true"]'
},
datasets: {
titleIndex: 'data-tab-index'
},
keyDirection: {
ArrowLeft: elementorFrontendConfig.is_rtl ? this.directionNext : this.directionPrevious,
ArrowUp: this.directionPrevious,
ArrowRight: elementorFrontendConfig.is_rtl ? this.directionPrevious : this.directionNext,
ArrowDown: this.directionNext
}
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
$itemTitles: this.findElement(selectors.itemTitle),
$itemContainers: this.findElement(selectors.itemContainer),
$focusableContainerElements: this.getFocusableElements(this.findElement(selectors.itemContainer))
};
}
getFocusableElements($elements) {
return $elements.find(this.focusableElementSelector).not('[disabled], [inert]');
}
getKeyDirectionValue(event) {
const direction = this.getSettings('keyDirection')[event.key];
return this.directionNext === direction ? 1 : -1;
}
/**
* @param {HTMLElement} itemTitleElement
*
* @return {string}
*/
getTitleIndex(itemTitleElement) {
const {
titleIndex: indexAttribute
} = this.getSettings('datasets');
return itemTitleElement.getAttribute(indexAttribute);
}
/**
* @param {string|number} titleIndex
*
* @return {string}
*/
getTitleFilterSelector(titleIndex) {
const {
titleIndex: indexAttribute
} = this.getSettings('datasets');
return `[${indexAttribute}="${titleIndex}"]`;
}
getActiveTitleElement() {
const activeTitleFilter = this.getSettings('ariaAttributes').activeTitleSelector;
return this.elements.$itemTitles.filter(activeTitleFilter);
}
onInit() {
super.onInit(...arguments);
}
bindEvents() {
this.elements.$itemTitles.on(this.getTitleEvents());
this.elements.$focusableContainerElements.on(this.getContentElementEvents());
}
unbindEvents() {
this.elements.$itemTitles.off();
this.elements.$itemContainers.children().off();
}
getTitleEvents() {
return {
keydown: this.handleTitleKeyboardNavigation.bind(this)
};
}
getContentElementEvents() {
return {
keydown: this.handleContentElementKeyboardNavigation.bind(this)
};
}
isDirectionKey(event) {
const directionKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'];
return directionKeys.includes(event.key);
}
isActivationKey(event) {
const activationKeys = ['Enter', ' '];
return activationKeys.includes(event.key);
}
handleTitleKeyboardNavigation(event) {
if (this.isDirectionKey(event)) {
event.preventDefault();
const currentTitleIndex = parseInt(this.getTitleIndex(event.currentTarget)) || 1,
numberOfTitles = this.elements.$itemTitles.length,
titleIndexUpdated = this.getTitleIndexFocusUpdated(event, currentTitleIndex, numberOfTitles);
this.changeTitleFocus(titleIndexUpdated);
event.stopPropagation();
} else if (this.isActivationKey(event)) {
event.preventDefault();
if (this.handeTitleLinkEnterOrSpaceEvent(event)) {
return;
}
const titleIndex = this.getTitleIndex(event.currentTarget);
elementorFrontend.elements.$window.trigger('elementor/nested-elements/activate-by-keyboard', {
widgetId: this.getID(),
titleIndex
});
} else if ('Escape' === event.key) {
this.handleTitleEscapeKeyEvents(event);
}
}
handeTitleLinkEnterOrSpaceEvent(event) {
const isLinkElement = 'a' === event?.currentTarget?.tagName?.toLowerCase();
if (!elementorFrontend.isEditMode() && isLinkElement) {
event?.currentTarget?.click();
event.stopPropagation();
}
return isLinkElement;
}
getTitleIndexFocusUpdated(event, currentTitleIndex, numberOfTitles) {
let titleIndexUpdated = 0;
switch (event.key) {
case 'Home':
titleIndexUpdated = 1;
break;
case 'End':
titleIndexUpdated = numberOfTitles;
break;
default:
const directionValue = this.getKeyDirectionValue(event),
isEndReached = numberOfTitles < currentTitleIndex + directionValue,
isStartReached = 0 === currentTitleIndex + directionValue;
if (isEndReached) {
titleIndexUpdated = 1;
} else if (isStartReached) {
titleIndexUpdated = numberOfTitles;
} else {
titleIndexUpdated = currentTitleIndex + directionValue;
}
}
return titleIndexUpdated;
}
changeTitleFocus(titleIndexUpdated) {
const $newTitle = this.elements.$itemTitles.filter(this.getTitleFilterSelector(titleIndexUpdated));
this.setTitleTabindex(titleIndexUpdated);
$newTitle.trigger('focus');
}
setTitleTabindex(titleIndex) {
this.elements.$itemTitles.attr('tabindex', '-1');
const $newTitle = this.elements.$itemTitles.filter(this.getTitleFilterSelector(titleIndex));
$newTitle.attr('tabindex', '0');
}
handleTitleEscapeKeyEvents() {}
handleContentElementKeyboardNavigation(event) {
if ('Tab' === event.key && !event.shiftKey) {
this.handleContentElementTabEvents(event);
} else if ('Escape' === event.key) {
event.preventDefault();
event.stopPropagation();
this.handleContentElementEscapeEvents();
}
}
handleContentElementEscapeEvents() {
this.getActiveTitleElement().trigger('focus');
}
handleContentElementTabEvents() {}
}
exports["default"] = NestedTitleKeyboardHandler;
/***/ }),
/***/ "../assets/dev/js/frontend/handlers/base-carousel.js":
/*!***********************************************************!*\
!*** ../assets/dev/js/frontend/handlers/base-carousel.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _baseSwiper = _interopRequireDefault(__webpack_require__(/*! ./base-swiper */ "../assets/dev/js/frontend/handlers/base-swiper.js"));
class CarouselHandlerBase extends _baseSwiper.default {
getDefaultSettings() {
return {
selectors: {
carousel: `.${elementorFrontend.config.swiperClass}`,
swiperWrapper: '.swiper-wrapper',
slideContent: '.swiper-slide',
swiperArrow: '.elementor-swiper-button',
paginationWrapper: '.swiper-pagination',
paginationBullet: '.swiper-pagination-bullet',
paginationBulletWrapper: '.swiper-pagination-bullets'
}
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors'),
elements = {
$swiperContainer: this.$element.find(selectors.carousel),
$swiperWrapper: this.$element.find(selectors.swiperWrapper),
$swiperArrows: this.$element.find(selectors.swiperArrow),
$paginationWrapper: this.$element.find(selectors.paginationWrapper),
$paginationBullets: this.$element.find(selectors.paginationBullet),
$paginationBulletWrapper: this.$element.find(selectors.paginationBulletWrapper)
};
elements.$slides = elements.$swiperContainer.find(selectors.slideContent);
return elements;
}
getSwiperSettings() {
const elementSettings = this.getElementSettings(),
slidesToShow = +elementSettings.slides_to_show || 3,
isSingleSlide = 1 === slidesToShow,
elementorBreakpoints = elementorFrontend.config.responsive.activeBreakpoints,
defaultSlidesToShowMap = {
mobile: 1,
tablet: isSingleSlide ? 1 : 2
};
const swiperOptions = {
slidesPerView: slidesToShow,
loop: 'yes' === elementSettings.infinite,
speed: elementSettings.speed,
handleElementorBreakpoints: true
};
swiperOptions.breakpoints = {};
let lastBreakpointSlidesToShowValue = slidesToShow;
Object.keys(elementorBreakpoints).reverse().forEach(breakpointName => {
// Tablet has a specific default `slides_to_show`.
const defaultSlidesToShow = defaultSlidesToShowMap[breakpointName] ? defaultSlidesToShowMap[breakpointName] : lastBreakpointSlidesToShowValue;
swiperOptions.breakpoints[elementorBreakpoints[breakpointName].value] = {
slidesPerView: +elementSettings['slides_to_show_' + breakpointName] || defaultSlidesToShow,
slidesPerGroup: +elementSettings['slides_to_scroll_' + breakpointName] || 1
};
if (elementSettings.image_spacing_custom) {
swiperOptions.breakpoints[elementorBreakpoints[breakpointName].value].spaceBetween = this.getSpaceBetween(breakpointName);
}
lastBreakpointSlidesToShowValue = +elementSettings['slides_to_show_' + breakpointName] || defaultSlidesToShow;
});
if ('yes' === elementSettings.autoplay) {
swiperOptions.autoplay = {
delay: elementSettings.autoplay_speed,
disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
};
}
if (isSingleSlide) {
swiperOptions.effect = elementSettings.effect;
if ('fade' === elementSettings.effect) {
swiperOptions.fadeEffect = {
crossFade: true
};
}
} else {
swiperOptions.slidesPerGroup = +elementSettings.slides_to_scroll || 1;
}
if (elementSettings.image_spacing_custom) {
swiperOptions.spaceBetween = this.getSpaceBetween();
}
const showArrows = 'arrows' === elementSettings.navigation || 'both' === elementSettings.navigation,
showPagination = 'dots' === elementSettings.navigation || 'both' === elementSettings.navigation || elementSettings.pagination;
if (showArrows) {
swiperOptions.navigation = {
prevEl: '.elementor-swiper-button-prev',
nextEl: '.elementor-swiper-button-next'
};
}
if (showPagination) {
swiperOptions.pagination = {
el: `.elementor-element-${this.getID()} .swiper-pagination`,
type: !!elementSettings.pagination ? elementSettings.pagination : 'bullets',
clickable: true,
renderBullet: (index, classname) => {
return ``;
}
};
}
if ('yes' === elementSettings.lazyload) {
swiperOptions.lazy = {
loadPrevNext: true,
loadPrevNextAmount: 1
};
}
swiperOptions.a11y = {
enabled: true,
prevSlideMessage: elementorFrontend.config.i18n.a11yCarouselPrevSlideMessage,
nextSlideMessage: elementorFrontend.config.i18n.a11yCarouselNextSlideMessage,
firstSlideMessage: elementorFrontend.config.i18n.a11yCarouselFirstSlideMessage,
lastSlideMessage: elementorFrontend.config.i18n.a11yCarouselLastSlideMessage
};
swiperOptions.on = {
slideChangeTransitionEnd: () => {
this.a11ySetSlideAriaHidden();
},
slideChange: () => {
this.a11ySetPaginationTabindex();
this.handleElementHandlers();
}
};
this.applyOffsetSettings(elementSettings, swiperOptions, slidesToShow);
return swiperOptions;
}
getOffsetWidth() {
const currentDevice = elementorFrontend.getCurrentDeviceMode();
return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), 'offset_width', 'size', currentDevice) || 0;
}
applyOffsetSettings(elementSettings, swiperOptions, slidesToShow) {
const offsetSide = elementSettings.offset_sides,
isNestedCarouselInEditMode = elementorFrontend.isEditMode() && 'NestedCarousel' === this.constructor.name;
if (isNestedCarouselInEditMode || !offsetSide || 'none' === offsetSide) {
return;
}
const offset = this.getOffsetWidth();
switch (offsetSide) {
case 'right':
this.forceSliderToShowNextSlideWhenOnLast(swiperOptions, slidesToShow);
this.addClassToSwiperContainer('offset-right');
break;
case 'left':
this.addClassToSwiperContainer('offset-left');
break;
case 'both':
this.forceSliderToShowNextSlideWhenOnLast(swiperOptions, slidesToShow);
this.addClassToSwiperContainer('offset-both');
break;
}
}
forceSliderToShowNextSlideWhenOnLast(swiperOptions, slidesToShow) {
swiperOptions.slidesPerView = slidesToShow + 0.001;
}
addClassToSwiperContainer(className) {
this.getDefaultElements().$swiperContainer[0].classList.add(className);
}
async onInit() {
super.onInit(...arguments);
if (!this.elements.$swiperContainer.length || 2 > this.elements.$slides.length) {
return;
}
const Swiper = elementorFrontend.utils.swiper;
this.swiper = await new Swiper(this.elements.$swiperContainer, this.getSwiperSettings());
// Expose the swiper instance in the frontend
this.elements.$swiperContainer.data('swiper', this.swiper);
const elementSettings = this.getElementSettings();
if ('yes' === elementSettings.pause_on_hover) {
this.togglePauseOnHover(true);
}
this.a11ySetWidgetAriaDetails();
this.a11ySetPaginationTabindex();
this.a11ySetSlideAriaHidden('initialisation');
}
bindEvents() {
this.elements.$swiperArrows.on('keydown', this.onDirectionArrowKeydown.bind(this));
this.elements.$paginationWrapper.on('keydown', '.swiper-pagination-bullet', this.onDirectionArrowKeydown.bind(this));
this.elements.$swiperContainer.on('keydown', '.swiper-slide', this.onDirectionArrowKeydown.bind(this));
this.$element.find(':focusable').on('focus', this.onFocusDisableAutoplay.bind(this));
elementorFrontend.elements.$window.on('resize', this.getSwiperSettings.bind(this));
}
unbindEvents() {
this.elements.$swiperArrows.off();
this.elements.$paginationWrapper.off();
this.elements.$swiperContainer.off();
this.$element.find(':focusable').off();
elementorFrontend.elements.$window.off('resize');
}
onDirectionArrowKeydown(event) {
const isRTL = elementorFrontend.config.isRTL,
inlineDirectionArrows = ['ArrowLeft', 'ArrowRight'],
currentKeydown = event.originalEvent.code,
isDirectionInlineKeydown = -1 !== inlineDirectionArrows.indexOf(currentKeydown),
directionStart = isRTL ? 'ArrowRight' : 'ArrowLeft',
directionEnd = isRTL ? 'ArrowLeft' : 'ArrowRight';
if (!isDirectionInlineKeydown) {
return true;
} else if (directionStart === currentKeydown) {
this.swiper.slidePrev();
} else if (directionEnd === currentKeydown) {
this.swiper.slideNext();
}
}
onFocusDisableAutoplay() {
this.swiper.autoplay.stop();
}
updateSwiperOption(propertyName) {
const elementSettings = this.getElementSettings(),
newSettingValue = elementSettings[propertyName],
params = this.swiper.params;
// Handle special cases where the value to update is not the value that the Swiper library accepts.
switch (propertyName) {
case 'autoplay_speed':
params.autoplay.delay = newSettingValue;
break;
case 'speed':
params.speed = newSettingValue;
break;
}
this.swiper.update();
}
getChangeableProperties() {
return {
pause_on_hover: 'pauseOnHover',
autoplay_speed: 'delay',
speed: 'speed',
arrows_position: 'arrows_position' // Not a Swiper setting.
};
}
onElementChange(propertyName) {
if (0 === propertyName.indexOf('image_spacing_custom')) {
this.updateSpaceBetween(propertyName);
return;
}
const changeableProperties = this.getChangeableProperties();
if (changeableProperties[propertyName]) {
// 'pause_on_hover' is implemented by the handler with event listeners, not the Swiper library.
if ('pause_on_hover' === propertyName) {
const newSettingValue = this.getElementSettings('pause_on_hover');
this.togglePauseOnHover('yes' === newSettingValue);
} else {
this.updateSwiperOption(propertyName);
}
}
}
onEditSettingsChange(propertyName) {
if ('activeItemIndex' === propertyName) {
this.swiper.slideToLoop(this.getEditSettings('activeItemIndex') - 1);
}
}
getSpaceBetween() {
let device = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), 'image_spacing_custom', 'size', device) || 0;
}
updateSpaceBetween(propertyName) {
const deviceMatch = propertyName.match('image_spacing_custom_(.*)'),
device = deviceMatch ? deviceMatch[1] : 'desktop',
newSpaceBetween = this.getSpaceBetween(device);
if ('desktop' !== device) {
this.swiper.params.breakpoints[elementorFrontend.config.responsive.activeBreakpoints[device].value].spaceBetween = newSpaceBetween;
}
this.swiper.params.spaceBetween = newSpaceBetween;
this.swiper.update();
}
getPaginationBullets() {
let type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'array';
const paginationBullets = this.$element.find(this.getSettings('selectors').paginationBullet);
return 'array' === type ? Array.from(paginationBullets) : paginationBullets;
}
a11ySetWidgetAriaDetails() {
const $widget = this.$element;
$widget.attr('aria-roledescription', 'carousel');
$widget.attr('aria-label', elementorFrontend.config.i18n.a11yCarouselWrapperAriaLabel);
}
a11ySetPaginationTabindex() {
const bulletClass = this.swiper?.params.pagination.bulletClass,
activeBulletClass = this.swiper?.params.pagination.bulletActiveClass;
this.getPaginationBullets().forEach(bullet => {
if (!bullet.classList.contains(activeBulletClass)) {
bullet.removeAttribute('tabindex');
}
});
const isDirectionInlineArrowKey = 'ArrowLeft' === event?.code || 'ArrowRight' === event?.code;
if (event?.target?.classList.contains(bulletClass) && isDirectionInlineArrowKey) {
this.$element.find(`.${activeBulletClass}`).trigger('focus');
}
}
getSwiperWrapperTranformXValue() {
let transformValue = this.elements.$swiperWrapper[0]?.style.transform;
transformValue = transformValue.replace('translate3d(', '');
transformValue = transformValue.split(',');
transformValue = parseInt(transformValue[0].replace('px', ''));
return !!transformValue ? transformValue : 0;
}
a11ySetSlideAriaHidden() {
let status = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
const currentIndex = 'initialisation' === status ? 0 : this.swiper?.activeIndex;
if ('number' !== typeof currentIndex) {
return;
}
const swiperWrapperTransformXValue = this.getSwiperWrapperTranformXValue(),
swiperWrapperWidth = this.elements.$swiperWrapper[0].clientWidth,
$slides = this.elements.$swiperContainer.find(this.getSettings('selectors').slideContent);
$slides.each((index, slide) => {
const isSlideInsideWrapper = 0 <= slide.offsetLeft + swiperWrapperTransformXValue && swiperWrapperWidth > slide.offsetLeft + swiperWrapperTransformXValue;
if (!isSlideInsideWrapper) {
slide.setAttribute('aria-hidden', true);
slide.setAttribute('inert', '');
} else {
slide.removeAttribute('aria-hidden');
slide.removeAttribute('inert');
}
});
}
// Empty method which can be overwritten by child methods.
handleElementHandlers() {}
}
exports["default"] = CarouselHandlerBase;
/***/ }),
/***/ "../assets/dev/js/frontend/handlers/base-swiper.js":
/*!*********************************************************!*\
!*** ../assets/dev/js/frontend/handlers/base-swiper.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../assets/dev/js/frontend/handlers/base.js"));
class SwiperHandlerBase extends _base.default {
getInitialSlide() {
const editSettings = this.getEditSettings();
return editSettings.activeItemIndex ? editSettings.activeItemIndex - 1 : 0;
}
getSlidesCount() {
return this.elements.$slides.length;
}
// This method live-handles the 'Pause On Hover' control's value being changed in the Editor Panel
togglePauseOnHover(toggleOn) {
if (toggleOn) {
this.elements.$swiperContainer.on({
mouseenter: () => {
this.swiper.autoplay.stop();
},
mouseleave: () => {
this.swiper.autoplay.start();
}
});
} else {
this.elements.$swiperContainer.off('mouseenter mouseleave');
}
}
handleKenBurns() {
const settings = this.getSettings();
if (this.$activeImageBg) {
this.$activeImageBg.removeClass(settings.classes.kenBurnsActive);
}
this.activeItemIndex = this.swiper ? this.swiper.activeIndex : this.getInitialSlide();
if (this.swiper) {
this.$activeImageBg = jQuery(this.swiper.slides[this.activeItemIndex]).children('.' + settings.classes.slideBackground);
} else {
this.$activeImageBg = jQuery(this.elements.$slides[0]).children('.' + settings.classes.slideBackground);
}
this.$activeImageBg.addClass(settings.classes.kenBurnsActive);
}
}
exports["default"] = SwiperHandlerBase;
/***/ }),
/***/ "../assets/dev/js/frontend/handlers/base.js":
/*!**************************************************!*\
!*** ../assets/dev/js/frontend/handlers/base.js ***!
\**************************************************/
/***/ ((module) => {
"use strict";
module.exports = elementorModules.ViewModule.extend({
$element: null,
editorListeners: null,
onElementChange: null,
onEditSettingsChange: null,
onPageSettingsChange: null,
isEdit: null,
__construct(settings) {
if (!this.isActive(settings)) {
return;
}
this.$element = settings.$element;
this.isEdit = this.$element.hasClass('elementor-element-edit-mode');
if (this.isEdit) {
this.addEditorListeners();
}
},
isActive() {
return true;
},
isElementInTheCurrentDocument() {
if (!elementorFrontend.isEditMode()) {
return false;
}
return elementor.documents.currentDocument.id.toString() === this.$element[0].closest('.elementor').dataset.elementorId;
},
findElement(selector) {
var $mainElement = this.$element;
return $mainElement.find(selector).filter(function () {
// Start `closest` from parent since self can be `.elementor-element`.
return jQuery(this).parent().closest('.elementor-element').is($mainElement);
});
},
getUniqueHandlerID(cid, $element) {
if (!cid) {
cid = this.getModelCID();
}
if (!$element) {
$element = this.$element;
}
return cid + $element.attr('data-element_type') + this.getConstructorID();
},
initEditorListeners() {
var self = this;
self.editorListeners = [{
event: 'element:destroy',
to: elementor.channels.data,
callback(removedModel) {
if (removedModel.cid !== self.getModelCID()) {
return;
}
self.onDestroy();
}
}];
if (self.onElementChange) {
const elementType = self.getWidgetType() || self.getElementType();
let eventName = 'change';
if ('global' !== elementType) {
eventName += ':' + elementType;
}
self.editorListeners.push({
event: eventName,
to: elementor.channels.editor,
callback(controlView, elementView) {
var elementViewHandlerID = self.getUniqueHandlerID(elementView.model.cid, elementView.$el);
if (elementViewHandlerID !== self.getUniqueHandlerID()) {
return;
}
self.onElementChange(controlView.model.get('name'), controlView, elementView);
}
});
}
if (self.onEditSettingsChange) {
self.editorListeners.push({
event: 'change:editSettings',
to: elementor.channels.editor,
callback(changedModel, view) {
if (view.model.cid !== self.getModelCID()) {
return;
}
const propName = Object.keys(changedModel.changed)[0];
self.onEditSettingsChange(propName, changedModel.changed[propName]);
}
});
}
['page'].forEach(function (settingsType) {
var listenerMethodName = 'on' + settingsType[0].toUpperCase() + settingsType.slice(1) + 'SettingsChange';
if (self[listenerMethodName]) {
self.editorListeners.push({
event: 'change',
to: elementor.settings[settingsType].model,
callback(model) {
self[listenerMethodName](model.changed);
}
});
}
});
},
getEditorListeners() {
if (!this.editorListeners) {
this.initEditorListeners();
}
return this.editorListeners;
},
addEditorListeners() {
var uniqueHandlerID = this.getUniqueHandlerID();
this.getEditorListeners().forEach(function (listener) {
elementorFrontend.addListenerOnce(uniqueHandlerID, listener.event, listener.callback, listener.to);
});
},
removeEditorListeners() {
var uniqueHandlerID = this.getUniqueHandlerID();
this.getEditorListeners().forEach(function (listener) {
elementorFrontend.removeListeners(uniqueHandlerID, listener.event, null, listener.to);
});
},
getElementType() {
return this.$element.data('element_type');
},
getWidgetType() {
const widgetType = this.$element.data('widget_type');
if (!widgetType) {
return;
}
return widgetType.split('.')[0];
},
getID() {
return this.$element.data('id');
},
getModelCID() {
return this.$element.data('model-cid');
},
getElementSettings(setting) {
let elementSettings = {};
const modelCID = this.getModelCID();
if (this.isEdit && modelCID) {
const settings = elementorFrontend.config.elements.data[modelCID],
attributes = settings.attributes;
let type = attributes.widgetType || attributes.elType;
if (attributes.isInner) {
type = 'inner-' + type;
}
let settingsKeys = elementorFrontend.config.elements.keys[type];
if (!settingsKeys) {
settingsKeys = elementorFrontend.config.elements.keys[type] = [];
jQuery.each(settings.controls, (name, control) => {
if (control.frontend_available) {
settingsKeys.push(name);
}
});
}
jQuery.each(settings.getActiveControls(), function (controlKey) {
if (-1 !== settingsKeys.indexOf(controlKey)) {
let value = attributes[controlKey];
if (value.toJSON) {
value = value.toJSON();
}
elementSettings[controlKey] = value;
}
});
} else {
elementSettings = this.$element.data('settings') || {};
}
return this.getItems(elementSettings, setting);
},
getEditSettings(setting) {
var attributes = {};
if (this.isEdit) {
attributes = elementorFrontend.config.elements.editSettings[this.getModelCID()].attributes;
}
return this.getItems(attributes, setting);
},
getCurrentDeviceSetting(settingKey) {
return elementorFrontend.getCurrentDeviceSetting(this.getElementSettings(), settingKey);
},
onInit() {
if (this.isActive(this.getSettings())) {
elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
}
},
onDestroy() {
if (this.isEdit) {
this.removeEditorListeners();
}
if (this.unbindEvents) {
this.unbindEvents();
}
}
});
/***/ }),
/***/ "../assets/dev/js/frontend/handlers/stretched-element.js":
/*!***************************************************************!*\
!*** ../assets/dev/js/frontend/handlers/stretched-element.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../assets/dev/js/frontend/handlers/base.js"));
class StretchedElement extends _base.default {
getStretchedClass() {
return 'e-stretched';
}
getStretchSettingName() {
return 'stretch_element';
}
getStretchActiveValue() {
return 'yes';
}
bindEvents() {
const handlerID = this.getUniqueHandlerID();
elementorFrontend.addListenerOnce(handlerID, 'resize', this.stretch);
elementorFrontend.addListenerOnce(handlerID, 'sticky:stick', this.stretch, this.$element);
elementorFrontend.addListenerOnce(handlerID, 'sticky:unstick', this.stretch, this.$element);
if (elementorFrontend.isEditMode()) {
this.onKitChangeStretchContainerChange = this.onKitChangeStretchContainerChange.bind(this);
elementor.channels.editor.on('kit:change:stretchContainer', this.onKitChangeStretchContainerChange);
}
}
unbindEvents() {
elementorFrontend.removeListeners(this.getUniqueHandlerID(), 'resize', this.stretch);
if (elementorFrontend.isEditMode()) {
elementor.channels.editor.off('kit:change:stretchContainer', this.onKitChangeStretchContainerChange);
}
}
isActive(settings) {
return elementorFrontend.isEditMode() || settings.$element.hasClass(this.getStretchedClass());
}
getStretchElementForConfig() {
let childSelector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
if (childSelector) {
return this.$element.find(childSelector);
}
return this.$element;
}
getStretchElementConfig() {
return {
element: this.getStretchElementForConfig(),
selectors: {
container: this.getStretchContainer()
},
considerScrollbar: elementorFrontend.isEditMode() && elementorFrontend.config.is_rtl
};
}
initStretch() {
this.stretch = this.stretch.bind(this);
this.stretchElement = new elementorModules.frontend.tools.StretchElement(this.getStretchElementConfig());
}
getStretchContainer() {
return elementorFrontend.getKitSettings('stretched_section_container') || window;
}
isStretchSettingEnabled() {
return this.getElementSettings(this.getStretchSettingName()) === this.getStretchActiveValue();
}
stretch() {
if (!this.isStretchSettingEnabled()) {
return;
}
this.stretchElement.stretch();
}
onInit() {
if (!this.isActive(this.getSettings())) {
return;
}
this.initStretch();
super.onInit(...arguments);
this.stretch();
}
onElementChange(propertyName) {
const stretchSettingName = this.getStretchSettingName();
if (stretchSettingName === propertyName) {
if (this.isStretchSettingEnabled()) {
this.stretch();
} else {
this.stretchElement.reset();
}
}
}
onKitChangeStretchContainerChange() {
this.stretchElement.setSettings('selectors.container', this.getStretchContainer());
this.stretch();
}
}
exports["default"] = StretchedElement;
/***/ }),
/***/ "../assets/dev/js/frontend/modules.js":
/*!********************************************!*\
!*** ../assets/dev/js/frontend/modules.js ***!
\********************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _modules = _interopRequireDefault(__webpack_require__(/*! ../modules/modules */ "../assets/dev/js/modules/modules.js"));
var _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../assets/dev/js/frontend/document.js"));
var _stretchElement = _interopRequireDefault(__webpack_require__(/*! ./tools/stretch-element */ "../assets/dev/js/frontend/tools/stretch-element.js"));
var _stretchedElement = _interopRequireDefault(__webpack_require__(/*! ./handlers/stretched-element */ "../assets/dev/js/frontend/handlers/stretched-element.js"));
var _base = _interopRequireDefault(__webpack_require__(/*! ./handlers/base */ "../assets/dev/js/frontend/handlers/base.js"));
var _baseSwiper = _interopRequireDefault(__webpack_require__(/*! ./handlers/base-swiper */ "../assets/dev/js/frontend/handlers/base-swiper.js"));
var _baseCarousel = _interopRequireDefault(__webpack_require__(/*! ./handlers/base-carousel */ "../assets/dev/js/frontend/handlers/base-carousel.js"));
var _nestedTabs = _interopRequireDefault(__webpack_require__(/*! elementor/modules/nested-tabs/assets/js/frontend/handlers/nested-tabs */ "../modules/nested-tabs/assets/js/frontend/handlers/nested-tabs.js"));
var _nestedAccordion = _interopRequireDefault(__webpack_require__(/*! elementor/modules/nested-accordion/assets/js/frontend/handlers/nested-accordion */ "../modules/nested-accordion/assets/js/frontend/handlers/nested-accordion.js"));
var _nestedTitleKeyboardHandler = _interopRequireDefault(__webpack_require__(/*! ./handlers/accessibility/nested-title-keyboard-handler */ "../assets/dev/js/frontend/handlers/accessibility/nested-title-keyboard-handler.js"));
_modules.default.frontend = {
Document: _document.default,
tools: {
StretchElement: _stretchElement.default
},
handlers: {
Base: _base.default,
StretchedElement: _stretchedElement.default,
SwiperBase: _baseSwiper.default,
CarouselBase: _baseCarousel.default,
NestedTabs: _nestedTabs.default,
NestedAccordion: _nestedAccordion.default,
NestedTitleKeyboardHandler: _nestedTitleKeyboardHandler.default
}
};
/***/ }),
/***/ "../assets/dev/js/frontend/tools/stretch-element.js":
/*!**********************************************************!*\
!*** ../assets/dev/js/frontend/tools/stretch-element.js ***!
\**********************************************************/
/***/ ((module) => {
"use strict";
module.exports = elementorModules.ViewModule.extend({
getDefaultSettings() {
return {
element: null,
direction: elementorFrontend.config.is_rtl ? 'right' : 'left',
selectors: {
container: window
},
considerScrollbar: false,
cssOutput: 'inline'
};
},
getDefaultElements() {
return {
$element: jQuery(this.getSettings('element'))
};
},
stretch() {
const settings = this.getSettings();
let $container;
try {
$container = jQuery(settings.selectors.container);
// eslint-disable-next-line no-empty
} catch (e) {}
if (!$container || !$container.length) {
$container = jQuery(this.getDefaultSettings().selectors.container);
}
this.reset();
var $element = this.elements.$element,
containerWidth = $container.innerWidth(),
elementOffset = $element.offset().left,
isFixed = 'fixed' === $element.css('position'),
correctOffset = isFixed ? 0 : elementOffset,
isContainerFullScreen = window === $container[0];
if (!isContainerFullScreen) {
var containerOffset = $container.offset().left;
if (isFixed) {
correctOffset = containerOffset;
}
if (elementOffset > containerOffset) {
correctOffset = elementOffset - containerOffset;
}
}
if (settings.considerScrollbar && isContainerFullScreen) {
const scrollbarWidth = window.innerWidth - containerWidth;
correctOffset -= scrollbarWidth;
}
if (!isFixed) {
if (elementorFrontend.config.is_rtl) {
correctOffset = containerWidth - ($element.outerWidth() + correctOffset);
}
correctOffset = -correctOffset;
}
// Consider margin
if (settings.margin) {
correctOffset += settings.margin;
}
var css = {};
let width = containerWidth;
if (settings.margin) {
width -= settings.margin * 2;
}
css.width = width + 'px';
css[settings.direction] = correctOffset + 'px';
if ('variables' === settings.cssOutput) {
this.applyCssVariables($element, css);
return;
}
$element.css(css);
},
reset() {
const css = {},
settings = this.getSettings(),
$element = this.elements.$element;
if ('variables' === settings.cssOutput) {
this.resetCssVariables($element);
return;
}
css.width = '';
css[settings.direction] = '';
$element.css(css);
},
applyCssVariables($element, css) {
$element.css('--stretch-width', css.width);
if (!!css.left) {
$element.css('--stretch-left', css.left);
} else {
$element.css('--stretch-right', css.right);
}
},
resetCssVariables($element) {
$element.css({
'--stretch-width': '',
'--stretch-left': '',
'--stretch-right': ''
});
}
});
/***/ }),
/***/ "../assets/dev/js/frontend/utils/flex-horizontal-scroll.js":
/*!*****************************************************************!*\
!*** ../assets/dev/js/frontend/utils/flex-horizontal-scroll.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.changeScrollStatus = changeScrollStatus;
exports.setHorizontalScrollAlignment = setHorizontalScrollAlignment;
exports.setHorizontalTitleScrollValues = setHorizontalTitleScrollValues;
function changeScrollStatus(element, event) {
if ('mousedown' === event.type) {
element.classList.add('e-scroll');
element.dataset.pageX = event.pageX;
} else {
element.classList.remove('e-scroll', 'e-scroll-active');
element.dataset.pageX = '';
}
}
// This function was written using this example https://codepen.io/thenutz/pen/VwYeYEE.
function setHorizontalTitleScrollValues(element, horizontalScrollStatus, event) {
const isActiveScroll = element.classList.contains('e-scroll'),
isHorizontalScrollActive = 'enable' === horizontalScrollStatus,
headingContentIsWiderThanWrapper = element.scrollWidth > element.clientWidth;
if (!isActiveScroll || !isHorizontalScrollActive || !headingContentIsWiderThanWrapper) {
return;
}
event.preventDefault();
const previousPositionX = parseFloat(element.dataset.pageX),
mouseMoveX = event.pageX - previousPositionX,
maximumScrollValue = 5,
stepLimit = 20;
let toScrollDistanceX = 0;
if (stepLimit < mouseMoveX) {
toScrollDistanceX = maximumScrollValue;
} else if (stepLimit * -1 > mouseMoveX) {
toScrollDistanceX = -1 * maximumScrollValue;
} else {
toScrollDistanceX = mouseMoveX;
}
element.scrollLeft = element.scrollLeft - toScrollDistanceX;
element.classList.add('e-scroll-active');
}
function setHorizontalScrollAlignment(_ref) {
let {
element,
direction,
justifyCSSVariable,
horizontalScrollStatus
} = _ref;
if (!element) {
return;
}
if (isHorizontalScroll(element, horizontalScrollStatus)) {
initialScrollPosition(element, direction, justifyCSSVariable);
} else {
element.style.setProperty(justifyCSSVariable, '');
}
}
function isHorizontalScroll(element, horizontalScrollStatus) {
return element.clientWidth < getChildrenWidth(element.children) && 'enable' === horizontalScrollStatus;
}
function getChildrenWidth(children) {
let totalWidth = 0;
const parentContainer = children[0].parentNode,
computedStyles = getComputedStyle(parentContainer),
gap = parseFloat(computedStyles.gap) || 0; // Get the gap value or default to 0 if it's not specified
for (let i = 0; i < children.length; i++) {
totalWidth += children[i].offsetWidth + gap;
}
return totalWidth;
}
function initialScrollPosition(element, direction, justifyCSSVariable) {
const isRTL = elementorCommon.config.isRTL;
switch (direction) {
case 'end':
element.style.setProperty(justifyCSSVariable, 'start');
element.scrollLeft = isRTL ? -1 * getChildrenWidth(element.children) : getChildrenWidth(element.children);
break;
default:
element.style.setProperty(justifyCSSVariable, 'start');
element.scrollLeft = 0;
}
}
/***/ }),
/***/ "../assets/dev/js/modules/imports/args-object.js":
/*!*******************************************************!*\
!*** ../assets/dev/js/modules/imports/args-object.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
__webpack_require__(/*! core-js/modules/es.error.cause.js */ "../node_modules/core-js/modules/es.error.cause.js");
var _instanceType = _interopRequireDefault(__webpack_require__(/*! ./instance-type */ "../assets/dev/js/modules/imports/instance-type.js"));
var _isInstanceof = _interopRequireDefault(__webpack_require__(/*! ../../editor/utils/is-instanceof */ "../assets/dev/js/editor/utils/is-instanceof.js"));
class ArgsObject extends _instanceType.default {
static getInstanceType() {
return 'ArgsObject';
}
/**
* Function constructor().
*
* Create ArgsObject.
*
* @param {{}} args
*/
constructor(args) {
super();
this.args = args;
}
/**
* Function requireArgument().
*
* Validate property in args.
*
* @param {string} property
* @param {{}} args
*
* @throws {Error}
*
*/
requireArgument(property) {
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.args;
if (!Object.prototype.hasOwnProperty.call(args, property)) {
throw Error(`${property} is required.`);
}
}
/**
* Function requireArgumentType().
*
* Validate property in args using `type === typeof(args.whatever)`.
*
* @param {string} property
* @param {string} type
* @param {{}} args
*
* @throws {Error}
*
*/
requireArgumentType(property, type) {
let args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.args;
this.requireArgument(property, args);
if (typeof args[property] !== type) {
throw Error(`${property} invalid type: ${type}.`);
}
}
/**
* Function requireArgumentInstance().
*
* Validate property in args using `args.whatever instanceof instance`.
*
* @param {string} property
* @param {*} instance
* @param {{}} args
*
* @throws {Error}
*
*/
requireArgumentInstance(property, instance) {
let args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.args;
this.requireArgument(property, args);
if (!(args[property] instanceof instance) && !(0, _isInstanceof.default)(args[property], instance)) {
throw Error(`${property} invalid instance.`);
}
}
/**
* Function requireArgumentConstructor().
*
* Validate property in args using `type === args.whatever.constructor`.
*
* @param {string} property
* @param {*} type
* @param {{}} args
*
* @throws {Error}
*
*/
requireArgumentConstructor(property, type) {
let args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.args;
this.requireArgument(property, args);
// Note: Converting the constructor to string in order to avoid equation issues
// due to different memory addresses between iframes (window.Object !== window.top.Object).
if (args[property].constructor.toString() !== type.prototype.constructor.toString()) {
throw Error(`${property} invalid constructor type.`);
}
}
}
exports["default"] = ArgsObject;
/***/ }),
/***/ "../assets/dev/js/modules/imports/force-method-implementation.js":
/*!***********************************************************************!*\
!*** ../assets/dev/js/modules/imports/force-method-implementation.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = exports.ForceMethodImplementation = void 0;
__webpack_require__(/*! core-js/modules/es.error.cause.js */ "../node_modules/core-js/modules/es.error.cause.js");
// TODO: Wrong location used as `elementorModules.ForceMethodImplementation(); should be` `elementorUtils.forceMethodImplementation()`;
class ForceMethodImplementation extends Error {
constructor() {
let info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
super(`${info.isStatic ? 'static ' : ''}${info.fullName}() should be implemented, please provide '${info.functionName || info.fullName}' functionality.`, args);
// Allow to pass custom properties to the error.
if (Object.keys(args).length) {
// eslint-disable-next-line no-console
console.error(args);
}
Error.captureStackTrace(this, ForceMethodImplementation);
}
}
exports.ForceMethodImplementation = ForceMethodImplementation;
var _default = args => {
const stack = Error().stack,
caller = stack.split('\n')[2].trim(),
callerName = caller.startsWith('at new') ? 'constructor' : caller.split(' ')[1],
info = {};
info.functionName = callerName;
info.fullName = callerName;
if (info.functionName.includes('.')) {
const parts = info.functionName.split('.');
info.className = parts[0];
info.functionName = parts[1];
} else {
info.isStatic = true;
}
throw new ForceMethodImplementation(info, args);
};
exports["default"] = _default;
/***/ }),
/***/ "../assets/dev/js/modules/imports/instance-type.js":
/*!*********************************************************!*\
!*** ../assets/dev/js/modules/imports/instance-type.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
class InstanceType {
static [Symbol.hasInstance](target) {
/**
* This is function extending being called each time JS uses instanceOf, since babel use it each time it create new class
* its give's opportunity to mange capabilities of instanceOf operator.
* saving current class each time will give option later to handle instanceOf manually.
*/
let result = super[Symbol.hasInstance](target);
// Act normal when validate a class, which does not have instance type.
if (target && !target.constructor.getInstanceType) {
return result;
}
if (target) {
if (!target.instanceTypes) {
target.instanceTypes = [];
}
if (!result) {
if (this.getInstanceType() === target.constructor.getInstanceType()) {
result = true;
}
}
if (result) {
const name = this.getInstanceType === InstanceType.getInstanceType ? 'BaseInstanceType' : this.getInstanceType();
if (-1 === target.instanceTypes.indexOf(name)) {
target.instanceTypes.push(name);
}
}
}
if (!result && target) {
// Check if the given 'target', is instance of known types.
result = target.instanceTypes && Array.isArray(target.instanceTypes) && -1 !== target.instanceTypes.indexOf(this.getInstanceType());
}
return result;
}
static getInstanceType() {
elementorModules.ForceMethodImplementation();
}
constructor() {
// Since anonymous classes sometimes do not get validated by babel, do it manually.
let target = new.target;
const prototypes = [];
while (target.__proto__ && target.__proto__.name) {
prototypes.push(target.__proto__);
target = target.__proto__;
}
prototypes.reverse().forEach(proto => this instanceof proto);
}
}
exports["default"] = InstanceType;
/***/ }),
/***/ "../assets/dev/js/modules/imports/module.js":
/*!**************************************************!*\
!*** ../assets/dev/js/modules/imports/module.js ***!
\**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
__webpack_require__(/*! core-js/modules/es.error.cause.js */ "../node_modules/core-js/modules/es.error.cause.js");
const Module = function () {
const $ = jQuery,
instanceParams = arguments,
self = this,
events = {};
let settings;
const ensureClosureMethods = function () {
$.each(self, function (methodName) {
const oldMethod = self[methodName];
if ('function' !== typeof oldMethod) {
return;
}
self[methodName] = function () {
return oldMethod.apply(self, arguments);
};
});
};
const initSettings = function () {
settings = self.getDefaultSettings();
const instanceSettings = instanceParams[0];
if (instanceSettings) {
$.extend(true, settings, instanceSettings);
}
};
const init = function () {
self.__construct.apply(self, instanceParams);
ensureClosureMethods();
initSettings();
self.trigger('init');
};
this.getItems = function (items, itemKey) {
if (itemKey) {
const keyStack = itemKey.split('.'),
currentKey = keyStack.splice(0, 1);
if (!keyStack.length) {
return items[currentKey];
}
if (!items[currentKey]) {
return;
}
return this.getItems(items[currentKey], keyStack.join('.'));
}
return items;
};
this.getSettings = function (setting) {
return this.getItems(settings, setting);
};
this.setSettings = function (settingKey, value, settingsContainer) {
if (!settingsContainer) {
settingsContainer = settings;
}
if ('object' === typeof settingKey) {
$.extend(settingsContainer, settingKey);
return self;
}
const keyStack = settingKey.split('.'),
currentKey = keyStack.splice(0, 1);
if (!keyStack.length) {
settingsContainer[currentKey] = value;
return self;
}
if (!settingsContainer[currentKey]) {
settingsContainer[currentKey] = {};
}
return self.setSettings(keyStack.join('.'), value, settingsContainer[currentKey]);
};
this.getErrorMessage = function (type, functionName) {
let message;
switch (type) {
case 'forceMethodImplementation':
message = `The method '${functionName}' must to be implemented in the inheritor child.`;
break;
default:
message = 'An error occurs';
}
return message;
};
// TODO: This function should be deleted ?.
this.forceMethodImplementation = function (functionName) {
throw new Error(this.getErrorMessage('forceMethodImplementation', functionName));
};
this.on = function (eventName, callback) {
if ('object' === typeof eventName) {
$.each(eventName, function (singleEventName) {
self.on(singleEventName, this);
});
return self;
}
const eventNames = eventName.split(' ');
eventNames.forEach(function (singleEventName) {
if (!events[singleEventName]) {
events[singleEventName] = [];
}
events[singleEventName].push(callback);
});
return self;
};
this.off = function (eventName, callback) {
if (!events[eventName]) {
return self;
}
if (!callback) {
delete events[eventName];
return self;
}
const callbackIndex = events[eventName].indexOf(callback);
if (-1 !== callbackIndex) {
delete events[eventName][callbackIndex];
// Reset array index (for next off on same event).
events[eventName] = events[eventName].filter(val => val);
}
return self;
};
this.trigger = function (eventName) {
const methodName = 'on' + eventName[0].toUpperCase() + eventName.slice(1),
params = Array.prototype.slice.call(arguments, 1);
if (self[methodName]) {
self[methodName].apply(self, params);
}
const callbacks = events[eventName];
if (!callbacks) {
return self;
}
$.each(callbacks, function (index, callback) {
callback.apply(self, params);
});
return self;
};
init();
};
Module.prototype.__construct = function () {};
Module.prototype.getDefaultSettings = function () {
return {};
};
Module.prototype.getConstructorID = function () {
return this.constructor.name;
};
Module.extend = function (properties) {
const $ = jQuery,
parent = this;
const child = function () {
return parent.apply(this, arguments);
};
$.extend(child, parent);
child.prototype = Object.create($.extend({}, parent.prototype, properties));
child.prototype.constructor = child;
child.__super__ = parent.prototype;
return child;
};
module.exports = Module;
/***/ }),
/***/ "../assets/dev/js/modules/imports/utils/masonry.js":
/*!*********************************************************!*\
!*** ../assets/dev/js/modules/imports/utils/masonry.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _viewModule = _interopRequireDefault(__webpack_require__(/*! ../view-module */ "../assets/dev/js/modules/imports/view-module.js"));
var _default = _viewModule.default.extend({
getDefaultSettings() {
return {
container: null,
items: null,
columnsCount: 3,
verticalSpaceBetween: 30
};
},
getDefaultElements() {
return {
$container: jQuery(this.getSettings('container')),
$items: jQuery(this.getSettings('items'))
};
},
run() {
var heights = [],
distanceFromTop = this.elements.$container.position().top,
settings = this.getSettings(),
columnsCount = settings.columnsCount;
distanceFromTop += parseInt(this.elements.$container.css('margin-top'), 10);
this.elements.$items.each(function (index) {
var row = Math.floor(index / columnsCount),
$item = jQuery(this),
itemHeight = $item[0].getBoundingClientRect().height + settings.verticalSpaceBetween;
if (row) {
var itemPosition = $item.position(),
indexAtRow = index % columnsCount,
pullHeight = itemPosition.top - distanceFromTop - heights[indexAtRow];
pullHeight -= parseInt($item.css('margin-top'), 10);
pullHeight *= -1;
$item.css('margin-top', pullHeight + 'px');
heights[indexAtRow] += itemHeight;
} else {
heights.push(itemHeight);
}
});
}
});
exports["default"] = _default;
/***/ }),
/***/ "../assets/dev/js/modules/imports/utils/scroll.js":
/*!********************************************************!*\
!*** ../assets/dev/js/modules/imports/utils/scroll.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
// Moved from elementor pro: 'assets/dev/js/frontend/utils'
class Scroll {
/**
* @param {Object} obj
* @param {number} obj.sensitivity - Value between 0-100 - Will determine the intersection trigger points on the element
* @param {Function} obj.callback - Will be triggered on each intersection point between the element and the viewport top/bottom
* @param {string} obj.offset - Offset between the element intersection points and the viewport, written like in CSS: '-50% 0 -25%'
* @param {HTMLElement} obj.root - The element that the events will be relative to, if 'null' will be relative to the viewport
*/
static scrollObserver(obj) {
let lastScrollY = 0;
// Generating threshholds points along the animation height
// More threshholds points = more trigger points of the callback
const buildThreshholds = function () {
let sensitivityPercentage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
const threshholds = [];
if (sensitivityPercentage > 0 && sensitivityPercentage <= 100) {
const increment = 100 / sensitivityPercentage;
for (let i = 0; i <= 100; i += increment) {
threshholds.push(i / 100);
}
} else {
threshholds.push(0);
}
return threshholds;
};
const options = {
root: obj.root || null,
rootMargin: obj.offset || '0px',
threshold: buildThreshholds(obj.sensitivity)
};
function handleIntersect(entries) {
const currentScrollY = entries[0].boundingClientRect.y,
isInViewport = entries[0].isIntersecting,
intersectionScrollDirection = currentScrollY < lastScrollY ? 'down' : 'up',
scrollPercentage = Math.abs(parseFloat((entries[0].intersectionRatio * 100).toFixed(2)));
obj.callback({
sensitivity: obj.sensitivity,
isInViewport,
scrollPercentage,
intersectionScrollDirection
});
lastScrollY = currentScrollY;
}
return new IntersectionObserver(handleIntersect, options);
}
/**
* @param {jQuery.Element} $element
* @param {Object} offsetObj
* @param {number} offsetObj.start - Offset start value in percentages
* @param {number} offsetObj.end - Offset end value in percentages
*/
static getElementViewportPercentage($element) {
let offsetObj = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
const elementOffset = $element[0].getBoundingClientRect(),
offsetStart = offsetObj.start || 0,
offsetEnd = offsetObj.end || 0,
windowStartOffset = window.innerHeight * offsetStart / 100,
windowEndOffset = window.innerHeight * offsetEnd / 100,
y1 = elementOffset.top - window.innerHeight,
y2 = elementOffset.top + windowStartOffset + $element.height(),
startPosition = 0 - y1 + windowStartOffset,
endPosition = y2 - y1 + windowEndOffset,
percent = Math.max(0, Math.min(startPosition / endPosition, 1));
return parseFloat((percent * 100).toFixed(2));
}
/**
* @param {Object} offsetObj
* @param {number} offsetObj.start - Offset start value in percentages
* @param {number} offsetObj.end - Offset end value in percentages
* @param {number} limitPageHeight - Will limit the page height calculation
*/
static getPageScrollPercentage() {
let offsetObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let limitPageHeight = arguments.length > 1 ? arguments[1] : undefined;
const offsetStart = offsetObj.start || 0,
offsetEnd = offsetObj.end || 0,
initialPageHeight = limitPageHeight || document.documentElement.scrollHeight - document.documentElement.clientHeight,
heightOffset = initialPageHeight * offsetStart / 100,
pageRange = initialPageHeight + heightOffset + initialPageHeight * offsetEnd / 100,
scrollPos = document.documentElement.scrollTop + document.body.scrollTop + heightOffset;
return scrollPos / pageRange * 100;
}
}
exports["default"] = Scroll;
/***/ }),
/***/ "../assets/dev/js/modules/imports/view-module.js":
/*!*******************************************************!*\
!*** ../assets/dev/js/modules/imports/view-module.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _module = _interopRequireDefault(__webpack_require__(/*! ./module */ "../assets/dev/js/modules/imports/module.js"));
var _default = _module.default.extend({
elements: null,
getDefaultElements() {
return {};
},
bindEvents() {},
onInit() {
this.initElements();
this.bindEvents();
},
initElements() {
this.elements = this.getDefaultElements();
}
});
exports["default"] = _default;
/***/ }),
/***/ "../assets/dev/js/modules/modules.js":
/*!*******************************************!*\
!*** ../assets/dev/js/modules/modules.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _module = _interopRequireDefault(__webpack_require__(/*! ./imports/module */ "../assets/dev/js/modules/imports/module.js"));
var _viewModule = _interopRequireDefault(__webpack_require__(/*! ./imports/view-module */ "../assets/dev/js/modules/imports/view-module.js"));
var _argsObject = _interopRequireDefault(__webpack_require__(/*! ./imports/args-object */ "../assets/dev/js/modules/imports/args-object.js"));
var _masonry = _interopRequireDefault(__webpack_require__(/*! ./imports/utils/masonry */ "../assets/dev/js/modules/imports/utils/masonry.js"));
var _scroll = _interopRequireDefault(__webpack_require__(/*! ./imports/utils/scroll */ "../assets/dev/js/modules/imports/utils/scroll.js"));
var _forceMethodImplementation = _interopRequireDefault(__webpack_require__(/*! ./imports/force-method-implementation */ "../assets/dev/js/modules/imports/force-method-implementation.js"));
var _default = window.elementorModules = {
Module: _module.default,
ViewModule: _viewModule.default,
ArgsObject: _argsObject.default,
ForceMethodImplementation: _forceMethodImplementation.default,
utils: {
Masonry: _masonry.default,
Scroll: _scroll.default
}
};
exports["default"] = _default;
/***/ }),
/***/ "../modules/nested-accordion/assets/js/frontend/handlers/nested-accordion.js":
/*!***********************************************************************************!*\
!*** ../modules/nested-accordion/assets/js/frontend/handlers/nested-accordion.js ***!
\***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _base = _interopRequireDefault(__webpack_require__(/*! elementor/assets/dev/js/frontend/handlers/base */ "../assets/dev/js/frontend/handlers/base.js"));
class NestedAccordion extends _base.default {
constructor() {
super(...arguments);
this.animations = new Map();
}
getDefaultSettings() {
return {
selectors: {
accordion: '.e-n-accordion',
accordionContentContainers: '.e-n-accordion > .e-con',
accordionItems: '.e-n-accordion-item',
accordionItemTitles: '.e-n-accordion-item-title',
accordionContent: '.e-n-accordion-item > .e-con'
},
default_state: 'expanded'
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
$accordion: this.findElement(selectors.accordion),
$contentContainers: this.findElement(selectors.accordionContentContainers),
$accordionItems: this.findElement(selectors.accordionItems),
$accordionTitles: this.findElement(selectors.accordionItemTitles),
$accordionContent: this.findElement(selectors.accordionContent)
};
}
onInit() {
super.onInit(...arguments);
if (elementorFrontend.isEditMode()) {
this.interlaceContainers();
}
}
interlaceContainers() {
const {
$contentContainers,
$accordionItems
} = this.getDefaultElements();
$contentContainers.each((index, element) => {
$accordionItems[index].appendChild(element);
});
}
bindEvents() {
this.elements.$accordionTitles.on('click', this.clickListener.bind(this));
}
unbindEvents() {
this.elements.$accordionTitles.off();
}
clickListener(event) {
event.preventDefault();
const accordionItem = event.currentTarget.parentElement,
settings = this.getSettings(),
accordionContent = accordionItem.querySelector(settings.selectors.accordionContent),
{
max_items_expended: maxItemsExpended
} = this.getElementSettings(),
{
$accordionTitles,
$accordionItems
} = this.elements;
if ('one' === maxItemsExpended) {
this.closeAllItems($accordionItems, $accordionTitles);
}
if (!accordionItem.open) {
this.prepareOpenAnimation(accordionItem, event.currentTarget, accordionContent);
} else {
this.closeAccordionItem(accordionItem, event.currentTarget);
}
}
animateItem(accordionItem, startHeight, endHeight, isOpen) {
accordionItem.style.overflow = 'hidden';
let animation = this.animations.get(accordionItem);
if (animation) {
animation.cancel();
}
animation = accordionItem.animate({
height: [startHeight, endHeight]
}, {
duration: this.getAnimationDuration()
});
animation.onfinish = () => this.onAnimationFinish(accordionItem, isOpen);
this.animations.set(accordionItem, animation);
}
closeAccordionItem(accordionItem, accordionItemTitle) {
const startHeight = `${accordionItem.offsetHeight}px`,
endHeight = `${accordionItemTitle.offsetHeight}px`;
this.animateItem(accordionItem, startHeight, endHeight, false);
}
prepareOpenAnimation(accordionItem, accordionItemTitle, accordionItemContent) {
accordionItem.style.overflow = 'hidden';
accordionItem.style.height = `${accordionItem.offsetHeight}px`;
accordionItem.open = true;
window.requestAnimationFrame(() => this.openAccordionItem(accordionItem, accordionItemTitle, accordionItemContent));
}
openAccordionItem(accordionItem, accordionItemTitle, accordionItemContent) {
const startHeight = `${accordionItem.offsetHeight}px`,
endHeight = `${accordionItemTitle.offsetHeight + accordionItemContent.offsetHeight}px`;
this.animateItem(accordionItem, startHeight, endHeight, true);
}
onAnimationFinish(accordionItem, isOpen) {
accordionItem.open = isOpen;
this.animations.set(accordionItem, null);
accordionItem.style.height = accordionItem.style.overflow = '';
}
closeAllItems($items, $titles) {
$titles.each((index, title) => {
this.closeAccordionItem($items[index], title);
});
}
getAnimationDuration() {
const {
size,
unit
} = this.getElementSettings('n_accordion_animation_duration');
return size * ('ms' === unit ? 1 : 1000);
}
}
exports["default"] = NestedAccordion;
/***/ }),
/***/ "../modules/nested-tabs/assets/js/frontend/handlers/nested-tabs.js":
/*!*************************************************************************!*\
!*** ../modules/nested-tabs/assets/js/frontend/handlers/nested-tabs.js ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _base = _interopRequireDefault(__webpack_require__(/*! elementor-frontend/handlers/base */ "../assets/dev/js/frontend/handlers/base.js"));
var _flexHorizontalScroll = __webpack_require__(/*! elementor-frontend-utils/flex-horizontal-scroll */ "../assets/dev/js/frontend/utils/flex-horizontal-scroll.js");
class NestedTabs extends _base.default {
constructor() {
super(...arguments);
this.resizeListenerNestedTabs = null;
}
/**
* @param {string|number} tabIndex
*
* @return {string}
*/
getTabTitleFilterSelector(tabIndex) {
return `[data-tab-index="${tabIndex}"]`;
}
/**
* @param {string|number} tabIndex
*
* @return {string}
*/
getTabContentFilterSelector(tabIndex) {
return `*:nth-child(${tabIndex})`;
}
/**
* @param {HTMLElement} tabTitleElement
*
* @return {string}
*/
getTabIndex(tabTitleElement) {
return tabTitleElement.getAttribute('data-tab-index');
}
getDefaultSettings() {
return {
selectors: {
widgetContainer: '.e-n-tabs',
tabTitle: '.e-n-tab-title',
tabContent: '.e-n-tabs-content > .e-con',
headingContainer: '.e-n-tabs-heading',
activeTabContentContainers: '.e-con.e-active'
},
classes: {
active: 'e-active'
},
ariaAttributes: {
titleStateAttribute: 'aria-selected',
activeTitleSelector: '[aria-selected="true"]'
},
showTabFn: 'show',
hideTabFn: 'hide',
toggleSelf: false,
hidePrevious: true,
autoExpand: true
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
$tabTitles: this.findElement(selectors.tabTitle),
$tabContents: this.findElement(selectors.tabContent),
$headingContainer: this.findElement(selectors.headingContainer)
};
}
getKeyboardNavigationSettings() {
return this.getSettings();
}
activateDefaultTab() {
const settings = this.getSettings();
const defaultActiveTab = this.getEditSettings('activeItemIndex') || 1,
originalToggleMethods = {
showTabFn: settings.showTabFn,
hideTabFn: settings.hideTabFn
};
// Toggle tabs without animation to avoid jumping
this.setSettings({
showTabFn: 'show',
hideTabFn: 'hide'
});
this.changeActiveTab(defaultActiveTab);
// Return back original toggle effects
this.setSettings(originalToggleMethods);
}
deactivateActiveTab(newTabIndex) {
const settings = this.getSettings(),
activeClass = settings.classes.active,
activeTitleFilter = settings.ariaAttributes.activeTitleSelector,
activeContentFilter = '.' + activeClass,
$activeTitle = this.elements.$tabTitles.filter(activeTitleFilter),
$activeContent = this.elements.$tabContents.filter(activeContentFilter);
this.setTabDeactivationAttributes($activeTitle, newTabIndex);
$activeContent.removeClass(activeClass);
$activeContent[settings.hideTabFn](0, () => this.onHideTabContent($activeContent));
return $activeContent;
}
getTitleActivationAttributes() {
const titleStateAttribute = this.getSettings('ariaAttributes').titleStateAttribute;
return {
tabindex: '0',
[titleStateAttribute]: 'true'
};
}
setTabDeactivationAttributes($activeTitle) {
const titleStateAttribute = this.getSettings('ariaAttributes').titleStateAttribute;
$activeTitle.attr({
tabindex: '-1',
[titleStateAttribute]: 'false'
});
}
onHideTabContent() {}
activateTab(tabIndex) {
const settings = this.getSettings(),
activeClass = settings.classes.active,
animationDuration = 'show' === settings.showTabFn ? 0 : 400;
let $requestedTitle = this.elements.$tabTitles.filter(this.getTabTitleFilterSelector(tabIndex)),
$requestedContent = this.elements.$tabContents.filter(this.getTabContentFilterSelector(tabIndex));
// Check if the tabIndex exists.
if (!$requestedTitle.length) {
// Activate the previous tab and ensure that the tab index is not less than 1.
const previousTabIndex = Math.max(tabIndex - 1, 1);
$requestedTitle = this.elements.$tabTitles.filter(this.getTabTitleFilterSelector(previousTabIndex));
$requestedContent = this.elements.$tabContents.filter(this.getTabContentFilterSelector(previousTabIndex));
}
$requestedTitle.attr(this.getTitleActivationAttributes());
$requestedContent.addClass(activeClass);
$requestedContent[settings.showTabFn](animationDuration, () => this.onShowTabContent($requestedContent));
}
onShowTabContent($requestedContent) {
elementorFrontend.elements.$window.trigger('elementor-pro/motion-fx/recalc');
elementorFrontend.elements.$window.trigger('elementor/nested-tabs/activate', $requestedContent);
elementorFrontend.elements.$window.trigger('elementor/bg-video/recalc');
}
isActiveTab(tabIndex) {
return 'true' === this.elements.$tabTitles.filter('[data-tab-index="' + tabIndex + '"]').attr(this.getSettings('ariaAttributes').titleStateAttribute);
}
onTabClick(event) {
event.preventDefault();
this.changeActiveTab(event.currentTarget?.getAttribute('data-tab-index'), true);
}
getTabEvents() {
return {
click: this.onTabClick.bind(this)
};
}
getHeadingEvents() {
const navigationWrapper = this.elements.$headingContainer[0];
return {
mousedown: _flexHorizontalScroll.changeScrollStatus.bind(this, navigationWrapper),
mouseup: _flexHorizontalScroll.changeScrollStatus.bind(this, navigationWrapper),
mouseleave: _flexHorizontalScroll.changeScrollStatus.bind(this, navigationWrapper),
mousemove: _flexHorizontalScroll.setHorizontalTitleScrollValues.bind(this, navigationWrapper, this.getHorizontalScrollSetting())
};
}
bindEvents() {
this.elements.$tabTitles.on(this.getTabEvents());
this.elements.$headingContainer.on(this.getHeadingEvents());
const settingsObject = {
element: this.elements.$headingContainer[0],
direction: this.getTabsDirection(),
justifyCSSVariable: '--n-tabs-heading-justify-content',
horizontalScrollStatus: this.getHorizontalScrollSetting()
};
this.resizeListenerNestedTabs = _flexHorizontalScroll.setHorizontalScrollAlignment.bind(this, settingsObject);
elementorFrontend.elements.$window.on('resize', this.resizeListenerNestedTabs);
elementorFrontend.elements.$window.on('resize', this.setTouchMode.bind(this));
elementorFrontend.elements.$window.on('elementor/nested-tabs/activate', this.reInitSwipers);
elementorFrontend.elements.$window.on('elementor/nested-elements/activate-by-keyboard', this.changeActiveTabByKeyboard.bind(this));
}
unbindEvents() {
this.elements.$tabTitles.off();
this.elements.$headingContainer.off();
this.elements.$tabContents.children().off();
elementorFrontend.elements.$window.off('resize');
elementorFrontend.elements.$window.off('elementor/nested-tabs/activate');
}
/**
* Fixes issues where Swipers that have been initialized while a tab is not visible are not properly rendered
* and when switching to the tab the swiper will not respect any of the chosen `autoplay` related settings.
*
* This is triggered when switching to a nested tab, looks for Swipers in the tab content and reinitializes them.
*
* @param {Object} event - Incoming event.
* @param {Object} content - Active nested tab dom element.
*/
reInitSwipers(event, content) {
const swiperElements = content.querySelectorAll(`.${elementorFrontend.config.swiperClass}`);
for (const element of swiperElements) {
if (!element.swiper) {
return;
}
element.swiper.initialized = false;
element.swiper.init();
}
}
onInit() {
super.onInit(...arguments);
if (this.getSettings('autoExpand')) {
this.activateDefaultTab();
}
const settingsObject = {
element: this.elements.$headingContainer[0],
direction: this.getTabsDirection(),
justifyCSSVariable: '--n-tabs-heading-justify-content',
horizontalScrollStatus: this.getHorizontalScrollSetting()
};
(0, _flexHorizontalScroll.setHorizontalScrollAlignment)(settingsObject);
this.setTouchMode();
if ('nested-tabs.default' === this.getSettings('elementName')) {
new elementorModules.frontend.handlers.NestedTitleKeyboardHandler(this.getKeyboardNavigationSettings());
}
}
onEditSettingsChange(propertyName, value) {
if ('activeItemIndex' === propertyName) {
this.changeActiveTab(value, false);
}
}
onElementChange(propertyName) {
if (this.checkSliderPropsToWatch(propertyName)) {
const settingsObject = {
element: this.elements.$headingContainer[0],
direction: this.getTabsDirection(),
justifyCSSVariable: '--n-tabs-heading-justify-content',
horizontalScrollStatus: this.getHorizontalScrollSetting()
};
(0, _flexHorizontalScroll.setHorizontalScrollAlignment)(settingsObject);
}
}
checkSliderPropsToWatch(propertyName) {
return 0 === propertyName.indexOf('horizontal_scroll') || 'breakpoint_selector' === propertyName || 0 === propertyName.indexOf('tabs_justify_horizontal') || 0 === propertyName.indexOf('tabs_title_space_between');
}
/**
* @param {string} tabIndex
* @param {boolean} fromUser - Whether the call is caused by the user or internal.
*/
changeActiveTab(tabIndex) {
let fromUser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
// `document/repeater/select` is used only in the editor, only when the element
// is in the currently-edited document, and only when its not internal call,
if (fromUser && this.isEdit && this.isElementInTheCurrentDocument()) {
return window.top.$e.run('document/repeater/select', {
container: elementor.getContainer(this.$element.attr('data-id')),
index: parseInt(tabIndex)
});
}
const isActiveTab = this.isActiveTab(tabIndex),
settings = this.getSettings();
if ((settings.toggleSelf || !isActiveTab) && settings.hidePrevious) {
this.deactivateActiveTab(tabIndex);
}
if (!settings.hidePrevious && isActiveTab) {
this.deactivateActiveTab(tabIndex);
}
if (!isActiveTab) {
if (this.isAccordionVersion()) {
this.activateMobileTab(tabIndex);
return;
}
this.activateTab(tabIndex);
}
}
changeActiveTabByKeyboard(event, settings) {
if (settings.widgetId !== this.getID()) {
return;
}
this.changeActiveTab(settings.titleIndex, true);
}
activateMobileTab(tabIndex) {
// Timeout time added to ensure that opening of the active tab starts after closing the other tab on Apple devices.
setTimeout(() => {
this.activateTab(tabIndex);
this.forceActiveTabToBeInViewport(tabIndex);
}, 10);
}
forceActiveTabToBeInViewport(tabIndex) {
if (!elementorFrontend.isEditMode()) {
return;
}
const $activeTabTitle = this.elements.$tabTitles.filter(this.getTabTitleFilterSelector(tabIndex));
if (!elementor.helpers.isInViewport($activeTabTitle[0])) {
$activeTabTitle[0].scrollIntoView({
block: 'center'
});
}
}
getActiveClass() {
const settings = this.getSettings();
return settings.classes.active;
}
getTabsDirection() {
const currentDevice = elementorFrontend.getCurrentDeviceMode();
return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), 'tabs_justify_horizontal', '', currentDevice);
}
getHorizontalScrollSetting() {
const currentDevice = elementorFrontend.getCurrentDeviceMode();
return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), 'horizontal_scroll', '', currentDevice);
}
isAccordionVersion() {
return 'contents' === this.elements.$headingContainer.css('display');
}
setTouchMode() {
const widgetSelector = this.getSettings('selectors').widgetContainer;
if (elementorFrontend.isEditMode() || 'resize' === event?.type) {
const responsiveDevices = ['mobile', 'mobile_extra', 'tablet', 'tablet_extra'],
currentDevice = elementorFrontend.getCurrentDeviceMode();
if (-1 !== responsiveDevices.indexOf(currentDevice)) {
this.$element.find(widgetSelector).attr('data-touch-mode', 'true');
return;
}
} else if ('ontouchstart' in window) {
this.$element.find(widgetSelector).attr('data-touch-mode', 'true');
return;
}
this.$element.find(widgetSelector).attr('data-touch-mode', 'false');
}
}
exports["default"] = NestedTabs;
/***/ }),
/***/ "../node_modules/core-js/internals/a-callable.js":
/*!*******************************************************!*\
!*** ../node_modules/core-js/internals/a-callable.js ***!
\*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "../node_modules/core-js/internals/try-to-string.js");
var $TypeError = TypeError;
// `Assert: IsCallable(argument) is true`
module.exports = function (argument) {
if (isCallable(argument)) return argument;
throw $TypeError(tryToString(argument) + ' is not a function');
};
/***/ }),
/***/ "../node_modules/core-js/internals/a-possible-prototype.js":
/*!*****************************************************************!*\
!*** ../node_modules/core-js/internals/a-possible-prototype.js ***!
\*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var $String = String;
var $TypeError = TypeError;
module.exports = function (argument) {
if (typeof argument == 'object' || isCallable(argument)) return argument;
throw $TypeError("Can't set " + $String(argument) + ' as a prototype');
};
/***/ }),
/***/ "../node_modules/core-js/internals/an-object.js":
/*!******************************************************!*\
!*** ../node_modules/core-js/internals/an-object.js ***!
\******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js");
var $String = String;
var $TypeError = TypeError;
// `Assert: Type(argument) is Object`
module.exports = function (argument) {
if (isObject(argument)) return argument;
throw $TypeError($String(argument) + ' is not an object');
};
/***/ }),
/***/ "../node_modules/core-js/internals/array-includes.js":
/*!***********************************************************!*\
!*** ../node_modules/core-js/internals/array-includes.js ***!
\***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "../node_modules/core-js/internals/to-indexed-object.js");
var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "../node_modules/core-js/internals/to-absolute-index.js");
var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "../node_modules/core-js/internals/length-of-array-like.js");
// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIndexedObject($this);
var length = lengthOfArrayLike(O);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare -- NaN check
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare -- NaN check
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) {
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
module.exports = {
// `Array.prototype.includes` method
// https://tc39.es/ecma262/#sec-array.prototype.includes
includes: createMethod(true),
// `Array.prototype.indexOf` method
// https://tc39.es/ecma262/#sec-array.prototype.indexof
indexOf: createMethod(false)
};
/***/ }),
/***/ "../node_modules/core-js/internals/classof-raw.js":
/*!********************************************************!*\
!*** ../node_modules/core-js/internals/classof-raw.js ***!
\********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
var toString = uncurryThis({}.toString);
var stringSlice = uncurryThis(''.slice);
module.exports = function (it) {
return stringSlice(toString(it), 8, -1);
};
/***/ }),
/***/ "../node_modules/core-js/internals/classof.js":
/*!****************************************************!*\
!*** ../node_modules/core-js/internals/classof.js ***!
\****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "../node_modules/core-js/internals/to-string-tag-support.js");
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ "../node_modules/core-js/internals/classof-raw.js");
var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js");
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var $Object = Object;
// ES3 wrong here
var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
try {
return it[key];
} catch (error) { /* empty */ }
};
// getting tag from ES6+ `Object.prototype.toString`
module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
var O, tag, result;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
: typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag
// builtinTag case
: CORRECT_ARGUMENTS ? classofRaw(O)
// ES3 arguments fallback
: (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;
};
/***/ }),
/***/ "../node_modules/core-js/internals/copy-constructor-properties.js":
/*!************************************************************************!*\
!*** ../node_modules/core-js/internals/copy-constructor-properties.js ***!
\************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js");
var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "../node_modules/core-js/internals/own-keys.js");
var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "../node_modules/core-js/internals/object-get-own-property-descriptor.js");
var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js");
module.exports = function (target, source, exceptions) {
var keys = ownKeys(source);
var defineProperty = definePropertyModule.f;
var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {
defineProperty(target, key, getOwnPropertyDescriptor(source, key));
}
}
};
/***/ }),
/***/ "../node_modules/core-js/internals/create-non-enumerable-property.js":
/*!***************************************************************************!*\
!*** ../node_modules/core-js/internals/create-non-enumerable-property.js ***!
\***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js");
var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js");
var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "../node_modules/core-js/internals/create-property-descriptor.js");
module.exports = DESCRIPTORS ? function (object, key, value) {
return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
/***/ }),
/***/ "../node_modules/core-js/internals/create-property-descriptor.js":
/*!***********************************************************************!*\
!*** ../node_modules/core-js/internals/create-property-descriptor.js ***!
\***********************************************************************/
/***/ ((module) => {
"use strict";
module.exports = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
/***/ }),
/***/ "../node_modules/core-js/internals/define-built-in.js":
/*!************************************************************!*\
!*** ../node_modules/core-js/internals/define-built-in.js ***!
\************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js");
var makeBuiltIn = __webpack_require__(/*! ../internals/make-built-in */ "../node_modules/core-js/internals/make-built-in.js");
var defineGlobalProperty = __webpack_require__(/*! ../internals/define-global-property */ "../node_modules/core-js/internals/define-global-property.js");
module.exports = function (O, key, value, options) {
if (!options) options = {};
var simple = options.enumerable;
var name = options.name !== undefined ? options.name : key;
if (isCallable(value)) makeBuiltIn(value, name, options);
if (options.global) {
if (simple) O[key] = value;
else defineGlobalProperty(key, value);
} else {
try {
if (!options.unsafe) delete O[key];
else if (O[key]) simple = true;
} catch (error) { /* empty */ }
if (simple) O[key] = value;
else definePropertyModule.f(O, key, {
value: value,
enumerable: false,
configurable: !options.nonConfigurable,
writable: !options.nonWritable
});
} return O;
};
/***/ }),
/***/ "../node_modules/core-js/internals/define-global-property.js":
/*!*******************************************************************!*\
!*** ../node_modules/core-js/internals/define-global-property.js ***!
\*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
// eslint-disable-next-line es/no-object-defineproperty -- safe
var defineProperty = Object.defineProperty;
module.exports = function (key, value) {
try {
defineProperty(global, key, { value: value, configurable: true, writable: true });
} catch (error) {
global[key] = value;
} return value;
};
/***/ }),
/***/ "../node_modules/core-js/internals/descriptors.js":
/*!********************************************************!*\
!*** ../node_modules/core-js/internals/descriptors.js ***!
\********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js");
// Detect IE8's incomplete defineProperty implementation
module.exports = !fails(function () {
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
});
/***/ }),
/***/ "../node_modules/core-js/internals/document-all.js":
/*!*********************************************************!*\
!*** ../node_modules/core-js/internals/document-all.js ***!
\*********************************************************/
/***/ ((module) => {
"use strict";
var documentAll = typeof document == 'object' && document.all;
// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot
// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing
var IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;
module.exports = {
all: documentAll,
IS_HTMLDDA: IS_HTMLDDA
};
/***/ }),
/***/ "../node_modules/core-js/internals/document-create-element.js":
/*!********************************************************************!*\
!*** ../node_modules/core-js/internals/document-create-element.js ***!
\********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js");
var document = global.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
return EXISTS ? document.createElement(it) : {};
};
/***/ }),
/***/ "../node_modules/core-js/internals/engine-user-agent.js":
/*!**************************************************************!*\
!*** ../node_modules/core-js/internals/engine-user-agent.js ***!
\**************************************************************/
/***/ ((module) => {
"use strict";
module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';
/***/ }),
/***/ "../node_modules/core-js/internals/engine-v8-version.js":
/*!**************************************************************!*\
!*** ../node_modules/core-js/internals/engine-v8-version.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "../node_modules/core-js/internals/engine-user-agent.js");
var process = global.process;
var Deno = global.Deno;
var versions = process && process.versions || Deno && Deno.version;
var v8 = versions && versions.v8;
var match, version;
if (v8) {
match = v8.split('.');
// in old Chrome, versions of V8 isn't V8 = Chrome / 10
// but their correct versions are not interesting for us
version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
}
// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
// so check `userAgent` even if `.v8` exists, but 0
if (!version && userAgent) {
match = userAgent.match(/Edge\/(\d+)/);
if (!match || match[1] >= 74) {
match = userAgent.match(/Chrome\/(\d+)/);
if (match) version = +match[1];
}
}
module.exports = version;
/***/ }),
/***/ "../node_modules/core-js/internals/enum-bug-keys.js":
/*!**********************************************************!*\
!*** ../node_modules/core-js/internals/enum-bug-keys.js ***!
\**********************************************************/
/***/ ((module) => {
"use strict";
// IE8- don't enum bug keys
module.exports = [
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf'
];
/***/ }),
/***/ "../node_modules/core-js/internals/error-stack-clear.js":
/*!**************************************************************!*\
!*** ../node_modules/core-js/internals/error-stack-clear.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
var $Error = Error;
var replace = uncurryThis(''.replace);
var TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');
// eslint-disable-next-line redos/no-vulnerable -- safe
var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/;
var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);
module.exports = function (stack, dropEntries) {
if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {
while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');
} return stack;
};
/***/ }),
/***/ "../node_modules/core-js/internals/error-stack-install.js":
/*!****************************************************************!*\
!*** ../node_modules/core-js/internals/error-stack-install.js ***!
\****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "../node_modules/core-js/internals/create-non-enumerable-property.js");
var clearErrorStack = __webpack_require__(/*! ../internals/error-stack-clear */ "../node_modules/core-js/internals/error-stack-clear.js");
var ERROR_STACK_INSTALLABLE = __webpack_require__(/*! ../internals/error-stack-installable */ "../node_modules/core-js/internals/error-stack-installable.js");
// non-standard V8
var captureStackTrace = Error.captureStackTrace;
module.exports = function (error, C, stack, dropEntries) {
if (ERROR_STACK_INSTALLABLE) {
if (captureStackTrace) captureStackTrace(error, C);
else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));
}
};
/***/ }),
/***/ "../node_modules/core-js/internals/error-stack-installable.js":
/*!********************************************************************!*\
!*** ../node_modules/core-js/internals/error-stack-installable.js ***!
\********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js");
var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "../node_modules/core-js/internals/create-property-descriptor.js");
module.exports = !fails(function () {
var error = Error('a');
if (!('stack' in error)) return true;
// eslint-disable-next-line es/no-object-defineproperty -- safe
Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));
return error.stack !== 7;
});
/***/ }),
/***/ "../node_modules/core-js/internals/export.js":
/*!***************************************************!*\
!*** ../node_modules/core-js/internals/export.js ***!
\***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "../node_modules/core-js/internals/object-get-own-property-descriptor.js").f);
var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "../node_modules/core-js/internals/create-non-enumerable-property.js");
var defineBuiltIn = __webpack_require__(/*! ../internals/define-built-in */ "../node_modules/core-js/internals/define-built-in.js");
var defineGlobalProperty = __webpack_require__(/*! ../internals/define-global-property */ "../node_modules/core-js/internals/define-global-property.js");
var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "../node_modules/core-js/internals/copy-constructor-properties.js");
var isForced = __webpack_require__(/*! ../internals/is-forced */ "../node_modules/core-js/internals/is-forced.js");
/*
options.target - name of the target object
options.global - target is the global object
options.stat - export as static methods of target
options.proto - export as prototype methods of target
options.real - real prototype method for the `pure` version
options.forced - export even if the native feature is available
options.bind - bind methods to the target, required for the `pure` version
options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
options.unsafe - use the simple assignment of property instead of delete + defineProperty
options.sham - add a flag to not completely full polyfills
options.enumerable - export as enumerable property
options.dontCallGetSet - prevent calling a getter on target
options.name - the .name of the function if it does not match the key
*/
module.exports = function (options, source) {
var TARGET = options.target;
var GLOBAL = options.global;
var STATIC = options.stat;
var FORCED, target, key, targetProperty, sourceProperty, descriptor;
if (GLOBAL) {
target = global;
} else if (STATIC) {
target = global[TARGET] || defineGlobalProperty(TARGET, {});
} else {
target = (global[TARGET] || {}).prototype;
}
if (target) for (key in source) {
sourceProperty = source[key];
if (options.dontCallGetSet) {
descriptor = getOwnPropertyDescriptor(target, key);
targetProperty = descriptor && descriptor.value;
} else targetProperty = target[key];
FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
// contained in target
if (!FORCED && targetProperty !== undefined) {
if (typeof sourceProperty == typeof targetProperty) continue;
copyConstructorProperties(sourceProperty, targetProperty);
}
// add a flag to not completely full polyfills
if (options.sham || (targetProperty && targetProperty.sham)) {
createNonEnumerableProperty(sourceProperty, 'sham', true);
}
defineBuiltIn(target, key, sourceProperty, options);
}
};
/***/ }),
/***/ "../node_modules/core-js/internals/fails.js":
/*!**************************************************!*\
!*** ../node_modules/core-js/internals/fails.js ***!
\**************************************************/
/***/ ((module) => {
"use strict";
module.exports = function (exec) {
try {
return !!exec();
} catch (error) {
return true;
}
};
/***/ }),
/***/ "../node_modules/core-js/internals/function-apply.js":
/*!***********************************************************!*\
!*** ../node_modules/core-js/internals/function-apply.js ***!
\***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ "../node_modules/core-js/internals/function-bind-native.js");
var FunctionPrototype = Function.prototype;
var apply = FunctionPrototype.apply;
var call = FunctionPrototype.call;
// eslint-disable-next-line es/no-reflect -- safe
module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {
return call.apply(apply, arguments);
});
/***/ }),
/***/ "../node_modules/core-js/internals/function-bind-native.js":
/*!*****************************************************************!*\
!*** ../node_modules/core-js/internals/function-bind-native.js ***!
\*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js");
module.exports = !fails(function () {
// eslint-disable-next-line es/no-function-prototype-bind -- safe
var test = (function () { /* empty */ }).bind();
// eslint-disable-next-line no-prototype-builtins -- safe
return typeof test != 'function' || test.hasOwnProperty('prototype');
});
/***/ }),
/***/ "../node_modules/core-js/internals/function-call.js":
/*!**********************************************************!*\
!*** ../node_modules/core-js/internals/function-call.js ***!
\**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ "../node_modules/core-js/internals/function-bind-native.js");
var call = Function.prototype.call;
module.exports = NATIVE_BIND ? call.bind(call) : function () {
return call.apply(call, arguments);
};
/***/ }),
/***/ "../node_modules/core-js/internals/function-name.js":
/*!**********************************************************!*\
!*** ../node_modules/core-js/internals/function-name.js ***!
\**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js");
var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js");
var FunctionPrototype = Function.prototype;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
var EXISTS = hasOwn(FunctionPrototype, 'name');
// additional protection from minified / mangled / dropped function names
var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));
module.exports = {
EXISTS: EXISTS,
PROPER: PROPER,
CONFIGURABLE: CONFIGURABLE
};
/***/ }),
/***/ "../node_modules/core-js/internals/function-uncurry-this-accessor.js":
/*!***************************************************************************!*\
!*** ../node_modules/core-js/internals/function-uncurry-this-accessor.js ***!
\***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js");
module.exports = function (object, key, method) {
try {
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));
} catch (error) { /* empty */ }
};
/***/ }),
/***/ "../node_modules/core-js/internals/function-uncurry-this.js":
/*!******************************************************************!*\
!*** ../node_modules/core-js/internals/function-uncurry-this.js ***!
\******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ "../node_modules/core-js/internals/function-bind-native.js");
var FunctionPrototype = Function.prototype;
var call = FunctionPrototype.call;
var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);
module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {
return function () {
return call.apply(fn, arguments);
};
};
/***/ }),
/***/ "../node_modules/core-js/internals/get-built-in.js":
/*!*********************************************************!*\
!*** ../node_modules/core-js/internals/get-built-in.js ***!
\*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var aFunction = function (argument) {
return isCallable(argument) ? argument : undefined;
};
module.exports = function (namespace, method) {
return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];
};
/***/ }),
/***/ "../node_modules/core-js/internals/get-method.js":
/*!*******************************************************!*\
!*** ../node_modules/core-js/internals/get-method.js ***!
\*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js");
var isNullOrUndefined = __webpack_require__(/*! ../internals/is-null-or-undefined */ "../node_modules/core-js/internals/is-null-or-undefined.js");
// `GetMethod` abstract operation
// https://tc39.es/ecma262/#sec-getmethod
module.exports = function (V, P) {
var func = V[P];
return isNullOrUndefined(func) ? undefined : aCallable(func);
};
/***/ }),
/***/ "../node_modules/core-js/internals/global.js":
/*!***************************************************!*\
!*** ../node_modules/core-js/internals/global.js ***!
\***************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
var check = function (it) {
return it && it.Math == Math && it;
};
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
module.exports =
// eslint-disable-next-line es/no-global-this -- safe
check(typeof globalThis == 'object' && globalThis) ||
check(typeof window == 'object' && window) ||
// eslint-disable-next-line no-restricted-globals -- safe
check(typeof self == 'object' && self) ||
check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||
// eslint-disable-next-line no-new-func -- fallback
(function () { return this; })() || this || Function('return this')();
/***/ }),
/***/ "../node_modules/core-js/internals/has-own-property.js":
/*!*************************************************************!*\
!*** ../node_modules/core-js/internals/has-own-property.js ***!
\*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
var toObject = __webpack_require__(/*! ../internals/to-object */ "../node_modules/core-js/internals/to-object.js");
var hasOwnProperty = uncurryThis({}.hasOwnProperty);
// `HasOwnProperty` abstract operation
// https://tc39.es/ecma262/#sec-hasownproperty
// eslint-disable-next-line es/no-object-hasown -- safe
module.exports = Object.hasOwn || function hasOwn(it, key) {
return hasOwnProperty(toObject(it), key);
};
/***/ }),
/***/ "../node_modules/core-js/internals/hidden-keys.js":
/*!********************************************************!*\
!*** ../node_modules/core-js/internals/hidden-keys.js ***!
\********************************************************/
/***/ ((module) => {
"use strict";
module.exports = {};
/***/ }),
/***/ "../node_modules/core-js/internals/ie8-dom-define.js":
/*!***********************************************************!*\
!*** ../node_modules/core-js/internals/ie8-dom-define.js ***!
\***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js");
var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js");
var createElement = __webpack_require__(/*! ../internals/document-create-element */ "../node_modules/core-js/internals/document-create-element.js");
// Thanks to IE8 for its funny defineProperty
module.exports = !DESCRIPTORS && !fails(function () {
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
return Object.defineProperty(createElement('div'), 'a', {
get: function () { return 7; }
}).a != 7;
});
/***/ }),
/***/ "../node_modules/core-js/internals/indexed-object.js":
/*!***********************************************************!*\
!*** ../node_modules/core-js/internals/indexed-object.js ***!
\***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js");
var classof = __webpack_require__(/*! ../internals/classof-raw */ "../node_modules/core-js/internals/classof-raw.js");
var $Object = Object;
var split = uncurryThis(''.split);
// fallback for non-array-like ES3 and non-enumerable old V8 strings
module.exports = fails(function () {
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
// eslint-disable-next-line no-prototype-builtins -- safe
return !$Object('z').propertyIsEnumerable(0);
}) ? function (it) {
return classof(it) == 'String' ? split(it, '') : $Object(it);
} : $Object;
/***/ }),
/***/ "../node_modules/core-js/internals/inherit-if-required.js":
/*!****************************************************************!*\
!*** ../node_modules/core-js/internals/inherit-if-required.js ***!
\****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js");
var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "../node_modules/core-js/internals/object-set-prototype-of.js");
// makes subclassing work correct for wrapped built-ins
module.exports = function ($this, dummy, Wrapper) {
var NewTarget, NewTargetPrototype;
if (
// it can work only with native `setPrototypeOf`
setPrototypeOf &&
// we haven't completely correct pre-ES6 way for getting `new.target`, so use this
isCallable(NewTarget = dummy.constructor) &&
NewTarget !== Wrapper &&
isObject(NewTargetPrototype = NewTarget.prototype) &&
NewTargetPrototype !== Wrapper.prototype
) setPrototypeOf($this, NewTargetPrototype);
return $this;
};
/***/ }),
/***/ "../node_modules/core-js/internals/inspect-source.js":
/*!***********************************************************!*\
!*** ../node_modules/core-js/internals/inspect-source.js ***!
\***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var store = __webpack_require__(/*! ../internals/shared-store */ "../node_modules/core-js/internals/shared-store.js");
var functionToString = uncurryThis(Function.toString);
// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
if (!isCallable(store.inspectSource)) {
store.inspectSource = function (it) {
return functionToString(it);
};
}
module.exports = store.inspectSource;
/***/ }),
/***/ "../node_modules/core-js/internals/install-error-cause.js":
/*!****************************************************************!*\
!*** ../node_modules/core-js/internals/install-error-cause.js ***!
\****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js");
var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "../node_modules/core-js/internals/create-non-enumerable-property.js");
// `InstallErrorCause` abstract operation
// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause
module.exports = function (O, options) {
if (isObject(options) && 'cause' in options) {
createNonEnumerableProperty(O, 'cause', options.cause);
}
};
/***/ }),
/***/ "../node_modules/core-js/internals/internal-state.js":
/*!***********************************************************!*\
!*** ../node_modules/core-js/internals/internal-state.js ***!
\***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/weak-map-basic-detection */ "../node_modules/core-js/internals/weak-map-basic-detection.js");
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js");
var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "../node_modules/core-js/internals/create-non-enumerable-property.js");
var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js");
var shared = __webpack_require__(/*! ../internals/shared-store */ "../node_modules/core-js/internals/shared-store.js");
var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "../node_modules/core-js/internals/shared-key.js");
var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "../node_modules/core-js/internals/hidden-keys.js");
var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
var TypeError = global.TypeError;
var WeakMap = global.WeakMap;
var set, get, has;
var enforce = function (it) {
return has(it) ? get(it) : set(it, {});
};
var getterFor = function (TYPE) {
return function (it) {
var state;
if (!isObject(it) || (state = get(it)).type !== TYPE) {
throw TypeError('Incompatible receiver, ' + TYPE + ' required');
} return state;
};
};
if (NATIVE_WEAK_MAP || shared.state) {
var store = shared.state || (shared.state = new WeakMap());
/* eslint-disable no-self-assign -- prototype methods protection */
store.get = store.get;
store.has = store.has;
store.set = store.set;
/* eslint-enable no-self-assign -- prototype methods protection */
set = function (it, metadata) {
if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);
metadata.facade = it;
store.set(it, metadata);
return metadata;
};
get = function (it) {
return store.get(it) || {};
};
has = function (it) {
return store.has(it);
};
} else {
var STATE = sharedKey('state');
hiddenKeys[STATE] = true;
set = function (it, metadata) {
if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);
metadata.facade = it;
createNonEnumerableProperty(it, STATE, metadata);
return metadata;
};
get = function (it) {
return hasOwn(it, STATE) ? it[STATE] : {};
};
has = function (it) {
return hasOwn(it, STATE);
};
}
module.exports = {
set: set,
get: get,
has: has,
enforce: enforce,
getterFor: getterFor
};
/***/ }),
/***/ "../node_modules/core-js/internals/is-callable.js":
/*!********************************************************!*\
!*** ../node_modules/core-js/internals/is-callable.js ***!
\********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var $documentAll = __webpack_require__(/*! ../internals/document-all */ "../node_modules/core-js/internals/document-all.js");
var documentAll = $documentAll.all;
// `IsCallable` abstract operation
// https://tc39.es/ecma262/#sec-iscallable
module.exports = $documentAll.IS_HTMLDDA ? function (argument) {
return typeof argument == 'function' || argument === documentAll;
} : function (argument) {
return typeof argument == 'function';
};
/***/ }),
/***/ "../node_modules/core-js/internals/is-forced.js":
/*!******************************************************!*\
!*** ../node_modules/core-js/internals/is-forced.js ***!
\******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js");
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var replacement = /#|\.prototype\./;
var isForced = function (feature, detection) {
var value = data[normalize(feature)];
return value == POLYFILL ? true
: value == NATIVE ? false
: isCallable(detection) ? fails(detection)
: !!detection;
};
var normalize = isForced.normalize = function (string) {
return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';
module.exports = isForced;
/***/ }),
/***/ "../node_modules/core-js/internals/is-null-or-undefined.js":
/*!*****************************************************************!*\
!*** ../node_modules/core-js/internals/is-null-or-undefined.js ***!
\*****************************************************************/
/***/ ((module) => {
"use strict";
// we can't use just `it == null` since of `document.all` special case
// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec
module.exports = function (it) {
return it === null || it === undefined;
};
/***/ }),
/***/ "../node_modules/core-js/internals/is-object.js":
/*!******************************************************!*\
!*** ../node_modules/core-js/internals/is-object.js ***!
\******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var $documentAll = __webpack_require__(/*! ../internals/document-all */ "../node_modules/core-js/internals/document-all.js");
var documentAll = $documentAll.all;
module.exports = $documentAll.IS_HTMLDDA ? function (it) {
return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;
} : function (it) {
return typeof it == 'object' ? it !== null : isCallable(it);
};
/***/ }),
/***/ "../node_modules/core-js/internals/is-pure.js":
/*!****************************************************!*\
!*** ../node_modules/core-js/internals/is-pure.js ***!
\****************************************************/
/***/ ((module) => {
"use strict";
module.exports = false;
/***/ }),
/***/ "../node_modules/core-js/internals/is-symbol.js":
/*!******************************************************!*\
!*** ../node_modules/core-js/internals/is-symbol.js ***!
\******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "../node_modules/core-js/internals/get-built-in.js");
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "../node_modules/core-js/internals/object-is-prototype-of.js");
var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "../node_modules/core-js/internals/use-symbol-as-uid.js");
var $Object = Object;
module.exports = USE_SYMBOL_AS_UID ? function (it) {
return typeof it == 'symbol';
} : function (it) {
var $Symbol = getBuiltIn('Symbol');
return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));
};
/***/ }),
/***/ "../node_modules/core-js/internals/length-of-array-like.js":
/*!*****************************************************************!*\
!*** ../node_modules/core-js/internals/length-of-array-like.js ***!
\*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var toLength = __webpack_require__(/*! ../internals/to-length */ "../node_modules/core-js/internals/to-length.js");
// `LengthOfArrayLike` abstract operation
// https://tc39.es/ecma262/#sec-lengthofarraylike
module.exports = function (obj) {
return toLength(obj.length);
};
/***/ }),
/***/ "../node_modules/core-js/internals/make-built-in.js":
/*!**********************************************************!*\
!*** ../node_modules/core-js/internals/make-built-in.js ***!
\**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js");
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js");
var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js");
var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(/*! ../internals/function-name */ "../node_modules/core-js/internals/function-name.js").CONFIGURABLE);
var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "../node_modules/core-js/internals/inspect-source.js");
var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "../node_modules/core-js/internals/internal-state.js");
var enforceInternalState = InternalStateModule.enforce;
var getInternalState = InternalStateModule.get;
var $String = String;
// eslint-disable-next-line es/no-object-defineproperty -- safe
var defineProperty = Object.defineProperty;
var stringSlice = uncurryThis(''.slice);
var replace = uncurryThis(''.replace);
var join = uncurryThis([].join);
var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {
return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;
});
var TEMPLATE = String(String).split('String');
var makeBuiltIn = module.exports = function (value, name, options) {
if (stringSlice($String(name), 0, 7) === 'Symbol(') {
name = '[' + replace($String(name), /^Symbol\(([^)]*)\)/, '$1') + ']';
}
if (options && options.getter) name = 'get ' + name;
if (options && options.setter) name = 'set ' + name;
if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });
else value.name = name;
}
if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {
defineProperty(value, 'length', { value: options.arity });
}
try {
if (options && hasOwn(options, 'constructor') && options.constructor) {
if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });
// in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable
} else if (value.prototype) value.prototype = undefined;
} catch (error) { /* empty */ }
var state = enforceInternalState(value);
if (!hasOwn(state, 'source')) {
state.source = join(TEMPLATE, typeof name == 'string' ? name : '');
} return value;
};
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
// eslint-disable-next-line no-extend-native -- required
Function.prototype.toString = makeBuiltIn(function toString() {
return isCallable(this) && getInternalState(this).source || inspectSource(this);
}, 'toString');
/***/ }),
/***/ "../node_modules/core-js/internals/math-trunc.js":
/*!*******************************************************!*\
!*** ../node_modules/core-js/internals/math-trunc.js ***!
\*******************************************************/
/***/ ((module) => {
"use strict";
var ceil = Math.ceil;
var floor = Math.floor;
// `Math.trunc` method
// https://tc39.es/ecma262/#sec-math.trunc
// eslint-disable-next-line es/no-math-trunc -- safe
module.exports = Math.trunc || function trunc(x) {
var n = +x;
return (n > 0 ? floor : ceil)(n);
};
/***/ }),
/***/ "../node_modules/core-js/internals/normalize-string-argument.js":
/*!**********************************************************************!*\
!*** ../node_modules/core-js/internals/normalize-string-argument.js ***!
\**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var toString = __webpack_require__(/*! ../internals/to-string */ "../node_modules/core-js/internals/to-string.js");
module.exports = function (argument, $default) {
return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);
};
/***/ }),
/***/ "../node_modules/core-js/internals/object-define-property.js":
/*!*******************************************************************!*\
!*** ../node_modules/core-js/internals/object-define-property.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "../node_modules/core-js/internals/ie8-dom-define.js");
var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(/*! ../internals/v8-prototype-define-bug */ "../node_modules/core-js/internals/v8-prototype-define-bug.js");
var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js");
var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "../node_modules/core-js/internals/to-property-key.js");
var $TypeError = TypeError;
// eslint-disable-next-line es/no-object-defineproperty -- safe
var $defineProperty = Object.defineProperty;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var ENUMERABLE = 'enumerable';
var CONFIGURABLE = 'configurable';
var WRITABLE = 'writable';
// `Object.defineProperty` method
// https://tc39.es/ecma262/#sec-object.defineproperty
exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {
anObject(O);
P = toPropertyKey(P);
anObject(Attributes);
if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
var current = $getOwnPropertyDescriptor(O, P);
if (current && current[WRITABLE]) {
O[P] = Attributes.value;
Attributes = {
configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],
enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
writable: false
};
}
} return $defineProperty(O, P, Attributes);
} : $defineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPropertyKey(P);
anObject(Attributes);
if (IE8_DOM_DEFINE) try {
return $defineProperty(O, P, Attributes);
} catch (error) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
/***/ }),
/***/ "../node_modules/core-js/internals/object-get-own-property-descriptor.js":
/*!*******************************************************************************!*\
!*** ../node_modules/core-js/internals/object-get-own-property-descriptor.js ***!
\*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js");
var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js");
var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "../node_modules/core-js/internals/object-property-is-enumerable.js");
var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "../node_modules/core-js/internals/create-property-descriptor.js");
var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "../node_modules/core-js/internals/to-indexed-object.js");
var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "../node_modules/core-js/internals/to-property-key.js");
var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "../node_modules/core-js/internals/ie8-dom-define.js");
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// `Object.getOwnPropertyDescriptor` method
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
O = toIndexedObject(O);
P = toPropertyKey(P);
if (IE8_DOM_DEFINE) try {
return $getOwnPropertyDescriptor(O, P);
} catch (error) { /* empty */ }
if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
};
/***/ }),
/***/ "../node_modules/core-js/internals/object-get-own-property-names.js":
/*!**************************************************************************!*\
!*** ../node_modules/core-js/internals/object-get-own-property-names.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "../node_modules/core-js/internals/object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "../node_modules/core-js/internals/enum-bug-keys.js");
var hiddenKeys = enumBugKeys.concat('length', 'prototype');
// `Object.getOwnPropertyNames` method
// https://tc39.es/ecma262/#sec-object.getownpropertynames
// eslint-disable-next-line es/no-object-getownpropertynames -- safe
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return internalObjectKeys(O, hiddenKeys);
};
/***/ }),
/***/ "../node_modules/core-js/internals/object-get-own-property-symbols.js":
/*!****************************************************************************!*\
!*** ../node_modules/core-js/internals/object-get-own-property-symbols.js ***!
\****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
exports.f = Object.getOwnPropertySymbols;
/***/ }),
/***/ "../node_modules/core-js/internals/object-is-prototype-of.js":
/*!*******************************************************************!*\
!*** ../node_modules/core-js/internals/object-is-prototype-of.js ***!
\*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
module.exports = uncurryThis({}.isPrototypeOf);
/***/ }),
/***/ "../node_modules/core-js/internals/object-keys-internal.js":
/*!*****************************************************************!*\
!*** ../node_modules/core-js/internals/object-keys-internal.js ***!
\*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js");
var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "../node_modules/core-js/internals/to-indexed-object.js");
var indexOf = (__webpack_require__(/*! ../internals/array-includes */ "../node_modules/core-js/internals/array-includes.js").indexOf);
var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "../node_modules/core-js/internals/hidden-keys.js");
var push = uncurryThis([].push);
module.exports = function (object, names) {
var O = toIndexedObject(object);
var i = 0;
var result = [];
var key;
for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
// Don't enum bug & hidden keys
while (names.length > i) if (hasOwn(O, key = names[i++])) {
~indexOf(result, key) || push(result, key);
}
return result;
};
/***/ }),
/***/ "../node_modules/core-js/internals/object-property-is-enumerable.js":
/*!**************************************************************************!*\
!*** ../node_modules/core-js/internals/object-property-is-enumerable.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
var $propertyIsEnumerable = {}.propertyIsEnumerable;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);
// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
var descriptor = getOwnPropertyDescriptor(this, V);
return !!descriptor && descriptor.enumerable;
} : $propertyIsEnumerable;
/***/ }),
/***/ "../node_modules/core-js/internals/object-set-prototype-of.js":
/*!********************************************************************!*\
!*** ../node_modules/core-js/internals/object-set-prototype-of.js ***!
\********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/* eslint-disable no-proto -- safe */
var uncurryThisAccessor = __webpack_require__(/*! ../internals/function-uncurry-this-accessor */ "../node_modules/core-js/internals/function-uncurry-this-accessor.js");
var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js");
var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ "../node_modules/core-js/internals/a-possible-prototype.js");
// `Object.setPrototypeOf` method
// https://tc39.es/ecma262/#sec-object.setprototypeof
// Works with __proto__ only. Old v8 can't work with null proto objects.
// eslint-disable-next-line es/no-object-setprototypeof -- safe
module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
var CORRECT_SETTER = false;
var test = {};
var setter;
try {
setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');
setter(test, []);
CORRECT_SETTER = test instanceof Array;
} catch (error) { /* empty */ }
return function setPrototypeOf(O, proto) {
anObject(O);
aPossiblePrototype(proto);
if (CORRECT_SETTER) setter(O, proto);
else O.__proto__ = proto;
return O;
};
}() : undefined);
/***/ }),
/***/ "../node_modules/core-js/internals/ordinary-to-primitive.js":
/*!******************************************************************!*\
!*** ../node_modules/core-js/internals/ordinary-to-primitive.js ***!
\******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js");
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js");
var $TypeError = TypeError;
// `OrdinaryToPrimitive` abstract operation
// https://tc39.es/ecma262/#sec-ordinarytoprimitive
module.exports = function (input, pref) {
var fn, val;
if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
throw $TypeError("Can't convert object to primitive value");
};
/***/ }),
/***/ "../node_modules/core-js/internals/own-keys.js":
/*!*****************************************************!*\
!*** ../node_modules/core-js/internals/own-keys.js ***!
\*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "../node_modules/core-js/internals/get-built-in.js");
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "../node_modules/core-js/internals/object-get-own-property-names.js");
var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "../node_modules/core-js/internals/object-get-own-property-symbols.js");
var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js");
var concat = uncurryThis([].concat);
// all object keys, includes non-enumerable and symbols
module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
var keys = getOwnPropertyNamesModule.f(anObject(it));
var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
};
/***/ }),
/***/ "../node_modules/core-js/internals/proxy-accessor.js":
/*!***********************************************************!*\
!*** ../node_modules/core-js/internals/proxy-accessor.js ***!
\***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js").f);
module.exports = function (Target, Source, key) {
key in Target || defineProperty(Target, key, {
configurable: true,
get: function () { return Source[key]; },
set: function (it) { Source[key] = it; }
});
};
/***/ }),
/***/ "../node_modules/core-js/internals/require-object-coercible.js":
/*!*********************************************************************!*\
!*** ../node_modules/core-js/internals/require-object-coercible.js ***!
\*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var isNullOrUndefined = __webpack_require__(/*! ../internals/is-null-or-undefined */ "../node_modules/core-js/internals/is-null-or-undefined.js");
var $TypeError = TypeError;
// `RequireObjectCoercible` abstract operation
// https://tc39.es/ecma262/#sec-requireobjectcoercible
module.exports = function (it) {
if (isNullOrUndefined(it)) throw $TypeError("Can't call method on " + it);
return it;
};
/***/ }),
/***/ "../node_modules/core-js/internals/shared-key.js":
/*!*******************************************************!*\
!*** ../node_modules/core-js/internals/shared-key.js ***!
\*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var shared = __webpack_require__(/*! ../internals/shared */ "../node_modules/core-js/internals/shared.js");
var uid = __webpack_require__(/*! ../internals/uid */ "../node_modules/core-js/internals/uid.js");
var keys = shared('keys');
module.exports = function (key) {
return keys[key] || (keys[key] = uid(key));
};
/***/ }),
/***/ "../node_modules/core-js/internals/shared-store.js":
/*!*********************************************************!*\
!*** ../node_modules/core-js/internals/shared-store.js ***!
\*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
var defineGlobalProperty = __webpack_require__(/*! ../internals/define-global-property */ "../node_modules/core-js/internals/define-global-property.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || defineGlobalProperty(SHARED, {});
module.exports = store;
/***/ }),
/***/ "../node_modules/core-js/internals/shared.js":
/*!***************************************************!*\
!*** ../node_modules/core-js/internals/shared.js ***!
\***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "../node_modules/core-js/internals/is-pure.js");
var store = __webpack_require__(/*! ../internals/shared-store */ "../node_modules/core-js/internals/shared-store.js");
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: '3.32.0',
mode: IS_PURE ? 'pure' : 'global',
copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',
license: 'https://github.com/zloirock/core-js/blob/v3.32.0/LICENSE',
source: 'https://github.com/zloirock/core-js'
});
/***/ }),
/***/ "../node_modules/core-js/internals/symbol-constructor-detection.js":
/*!*************************************************************************!*\
!*** ../node_modules/core-js/internals/symbol-constructor-detection.js ***!
\*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/* eslint-disable es/no-symbol -- required for testing */
var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "../node_modules/core-js/internals/engine-v8-version.js");
var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js");
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
var $String = global.String;
// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
var symbol = Symbol();
// Chrome 38 Symbol has incorrect toString conversion
// `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
// nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,
// of course, fail.
return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||
// Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
!Symbol.sham && V8_VERSION && V8_VERSION < 41;
});
/***/ }),
/***/ "../node_modules/core-js/internals/to-absolute-index.js":
/*!**************************************************************!*\
!*** ../node_modules/core-js/internals/to-absolute-index.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "../node_modules/core-js/internals/to-integer-or-infinity.js");
var max = Math.max;
var min = Math.min;
// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
module.exports = function (index, length) {
var integer = toIntegerOrInfinity(index);
return integer < 0 ? max(integer + length, 0) : min(integer, length);
};
/***/ }),
/***/ "../node_modules/core-js/internals/to-indexed-object.js":
/*!**************************************************************!*\
!*** ../node_modules/core-js/internals/to-indexed-object.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
// toObject with fallback for non-array-like ES3 strings
var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "../node_modules/core-js/internals/indexed-object.js");
var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "../node_modules/core-js/internals/require-object-coercible.js");
module.exports = function (it) {
return IndexedObject(requireObjectCoercible(it));
};
/***/ }),
/***/ "../node_modules/core-js/internals/to-integer-or-infinity.js":
/*!*******************************************************************!*\
!*** ../node_modules/core-js/internals/to-integer-or-infinity.js ***!
\*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var trunc = __webpack_require__(/*! ../internals/math-trunc */ "../node_modules/core-js/internals/math-trunc.js");
// `ToIntegerOrInfinity` abstract operation
// https://tc39.es/ecma262/#sec-tointegerorinfinity
module.exports = function (argument) {
var number = +argument;
// eslint-disable-next-line no-self-compare -- NaN check
return number !== number || number === 0 ? 0 : trunc(number);
};
/***/ }),
/***/ "../node_modules/core-js/internals/to-length.js":
/*!******************************************************!*\
!*** ../node_modules/core-js/internals/to-length.js ***!
\******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "../node_modules/core-js/internals/to-integer-or-infinity.js");
var min = Math.min;
// `ToLength` abstract operation
// https://tc39.es/ecma262/#sec-tolength
module.exports = function (argument) {
return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};
/***/ }),
/***/ "../node_modules/core-js/internals/to-object.js":
/*!******************************************************!*\
!*** ../node_modules/core-js/internals/to-object.js ***!
\******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "../node_modules/core-js/internals/require-object-coercible.js");
var $Object = Object;
// `ToObject` abstract operation
// https://tc39.es/ecma262/#sec-toobject
module.exports = function (argument) {
return $Object(requireObjectCoercible(argument));
};
/***/ }),
/***/ "../node_modules/core-js/internals/to-primitive.js":
/*!*********************************************************!*\
!*** ../node_modules/core-js/internals/to-primitive.js ***!
\*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js");
var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js");
var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "../node_modules/core-js/internals/is-symbol.js");
var getMethod = __webpack_require__(/*! ../internals/get-method */ "../node_modules/core-js/internals/get-method.js");
var ordinaryToPrimitive = __webpack_require__(/*! ../internals/ordinary-to-primitive */ "../node_modules/core-js/internals/ordinary-to-primitive.js");
var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js");
var $TypeError = TypeError;
var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
// `ToPrimitive` abstract operation
// https://tc39.es/ecma262/#sec-toprimitive
module.exports = function (input, pref) {
if (!isObject(input) || isSymbol(input)) return input;
var exoticToPrim = getMethod(input, TO_PRIMITIVE);
var result;
if (exoticToPrim) {
if (pref === undefined) pref = 'default';
result = call(exoticToPrim, input, pref);
if (!isObject(result) || isSymbol(result)) return result;
throw $TypeError("Can't convert object to primitive value");
}
if (pref === undefined) pref = 'number';
return ordinaryToPrimitive(input, pref);
};
/***/ }),
/***/ "../node_modules/core-js/internals/to-property-key.js":
/*!************************************************************!*\
!*** ../node_modules/core-js/internals/to-property-key.js ***!
\************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "../node_modules/core-js/internals/to-primitive.js");
var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "../node_modules/core-js/internals/is-symbol.js");
// `ToPropertyKey` abstract operation
// https://tc39.es/ecma262/#sec-topropertykey
module.exports = function (argument) {
var key = toPrimitive(argument, 'string');
return isSymbol(key) ? key : key + '';
};
/***/ }),
/***/ "../node_modules/core-js/internals/to-string-tag-support.js":
/*!******************************************************************!*\
!*** ../node_modules/core-js/internals/to-string-tag-support.js ***!
\******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js");
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var test = {};
test[TO_STRING_TAG] = 'z';
module.exports = String(test) === '[object z]';
/***/ }),
/***/ "../node_modules/core-js/internals/to-string.js":
/*!******************************************************!*\
!*** ../node_modules/core-js/internals/to-string.js ***!
\******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var classof = __webpack_require__(/*! ../internals/classof */ "../node_modules/core-js/internals/classof.js");
var $String = String;
module.exports = function (argument) {
if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
return $String(argument);
};
/***/ }),
/***/ "../node_modules/core-js/internals/try-to-string.js":
/*!**********************************************************!*\
!*** ../node_modules/core-js/internals/try-to-string.js ***!
\**********************************************************/
/***/ ((module) => {
"use strict";
var $String = String;
module.exports = function (argument) {
try {
return $String(argument);
} catch (error) {
return 'Object';
}
};
/***/ }),
/***/ "../node_modules/core-js/internals/uid.js":
/*!************************************************!*\
!*** ../node_modules/core-js/internals/uid.js ***!
\************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
var id = 0;
var postfix = Math.random();
var toString = uncurryThis(1.0.toString);
module.exports = function (key) {
return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
};
/***/ }),
/***/ "../node_modules/core-js/internals/use-symbol-as-uid.js":
/*!**************************************************************!*\
!*** ../node_modules/core-js/internals/use-symbol-as-uid.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/* eslint-disable es/no-symbol -- required for testing */
var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/symbol-constructor-detection */ "../node_modules/core-js/internals/symbol-constructor-detection.js");
module.exports = NATIVE_SYMBOL
&& !Symbol.sham
&& typeof Symbol.iterator == 'symbol';
/***/ }),
/***/ "../node_modules/core-js/internals/v8-prototype-define-bug.js":
/*!********************************************************************!*\
!*** ../node_modules/core-js/internals/v8-prototype-define-bug.js ***!
\********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js");
var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js");
// V8 ~ Chrome 36-
// https://bugs.chromium.org/p/v8/issues/detail?id=3334
module.exports = DESCRIPTORS && fails(function () {
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
return Object.defineProperty(function () { /* empty */ }, 'prototype', {
value: 42,
writable: false
}).prototype != 42;
});
/***/ }),
/***/ "../node_modules/core-js/internals/weak-map-basic-detection.js":
/*!*********************************************************************!*\
!*** ../node_modules/core-js/internals/weak-map-basic-detection.js ***!
\*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
var WeakMap = global.WeakMap;
module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
/***/ }),
/***/ "../node_modules/core-js/internals/well-known-symbol.js":
/*!**************************************************************!*\
!*** ../node_modules/core-js/internals/well-known-symbol.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
var shared = __webpack_require__(/*! ../internals/shared */ "../node_modules/core-js/internals/shared.js");
var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js");
var uid = __webpack_require__(/*! ../internals/uid */ "../node_modules/core-js/internals/uid.js");
var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/symbol-constructor-detection */ "../node_modules/core-js/internals/symbol-constructor-detection.js");
var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "../node_modules/core-js/internals/use-symbol-as-uid.js");
var Symbol = global.Symbol;
var WellKnownSymbolsStore = shared('wks');
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;
module.exports = function (name) {
if (!hasOwn(WellKnownSymbolsStore, name)) {
WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)
? Symbol[name]
: createWellKnownSymbol('Symbol.' + name);
} return WellKnownSymbolsStore[name];
};
/***/ }),
/***/ "../node_modules/core-js/internals/wrap-error-constructor-with-cause.js":
/*!******************************************************************************!*\
!*** ../node_modules/core-js/internals/wrap-error-constructor-with-cause.js ***!
\******************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "../node_modules/core-js/internals/get-built-in.js");
var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js");
var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "../node_modules/core-js/internals/create-non-enumerable-property.js");
var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "../node_modules/core-js/internals/object-is-prototype-of.js");
var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "../node_modules/core-js/internals/object-set-prototype-of.js");
var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "../node_modules/core-js/internals/copy-constructor-properties.js");
var proxyAccessor = __webpack_require__(/*! ../internals/proxy-accessor */ "../node_modules/core-js/internals/proxy-accessor.js");
var inheritIfRequired = __webpack_require__(/*! ../internals/inherit-if-required */ "../node_modules/core-js/internals/inherit-if-required.js");
var normalizeStringArgument = __webpack_require__(/*! ../internals/normalize-string-argument */ "../node_modules/core-js/internals/normalize-string-argument.js");
var installErrorCause = __webpack_require__(/*! ../internals/install-error-cause */ "../node_modules/core-js/internals/install-error-cause.js");
var installErrorStack = __webpack_require__(/*! ../internals/error-stack-install */ "../node_modules/core-js/internals/error-stack-install.js");
var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js");
var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "../node_modules/core-js/internals/is-pure.js");
module.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {
var STACK_TRACE_LIMIT = 'stackTraceLimit';
var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;
var path = FULL_NAME.split('.');
var ERROR_NAME = path[path.length - 1];
var OriginalError = getBuiltIn.apply(null, path);
if (!OriginalError) return;
var OriginalErrorPrototype = OriginalError.prototype;
// V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006
if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;
if (!FORCED) return OriginalError;
var BaseError = getBuiltIn('Error');
var WrappedError = wrapper(function (a, b) {
var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);
var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();
if (message !== undefined) createNonEnumerableProperty(result, 'message', message);
installErrorStack(result, WrappedError, result.stack, 2);
if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);
if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);
return result;
});
WrappedError.prototype = OriginalErrorPrototype;
if (ERROR_NAME !== 'Error') {
if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);
else copyConstructorProperties(WrappedError, BaseError, { name: true });
} else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {
proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);
proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');
}
copyConstructorProperties(WrappedError, OriginalError);
if (!IS_PURE) try {
// Safari 13- bug: WebAssembly errors does not have a proper `.name`
if (OriginalErrorPrototype.name !== ERROR_NAME) {
createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);
}
OriginalErrorPrototype.constructor = WrappedError;
} catch (error) { /* empty */ }
return WrappedError;
};
/***/ }),
/***/ "../node_modules/core-js/modules/es.error.cause.js":
/*!*********************************************************!*\
!*** ../node_modules/core-js/modules/es.error.cause.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/* eslint-disable no-unused-vars -- required for functions `.length` */
var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js");
var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
var apply = __webpack_require__(/*! ../internals/function-apply */ "../node_modules/core-js/internals/function-apply.js");
var wrapErrorConstructorWithCause = __webpack_require__(/*! ../internals/wrap-error-constructor-with-cause */ "../node_modules/core-js/internals/wrap-error-constructor-with-cause.js");
var WEB_ASSEMBLY = 'WebAssembly';
var WebAssembly = global[WEB_ASSEMBLY];
var FORCED = Error('e', { cause: 7 }).cause !== 7;
var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {
var O = {};
O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);
$({ global: true, constructor: true, arity: 1, forced: FORCED }, O);
};
var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {
if (WebAssembly && WebAssembly[ERROR_NAME]) {
var O = {};
O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);
$({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);
}
};
// https://tc39.es/ecma262/#sec-nativeerror
exportGlobalErrorCauseWrapper('Error', function (init) {
return function Error(message) { return apply(init, this, arguments); };
});
exportGlobalErrorCauseWrapper('EvalError', function (init) {
return function EvalError(message) { return apply(init, this, arguments); };
});
exportGlobalErrorCauseWrapper('RangeError', function (init) {
return function RangeError(message) { return apply(init, this, arguments); };
});
exportGlobalErrorCauseWrapper('ReferenceError', function (init) {
return function ReferenceError(message) { return apply(init, this, arguments); };
});
exportGlobalErrorCauseWrapper('SyntaxError', function (init) {
return function SyntaxError(message) { return apply(init, this, arguments); };
});
exportGlobalErrorCauseWrapper('TypeError', function (init) {
return function TypeError(message) { return apply(init, this, arguments); };
});
exportGlobalErrorCauseWrapper('URIError', function (init) {
return function URIError(message) { return apply(init, this, arguments); };
});
exportWebAssemblyErrorCauseWrapper('CompileError', function (init) {
return function CompileError(message) { return apply(init, this, arguments); };
});
exportWebAssemblyErrorCauseWrapper('LinkError', function (init) {
return function LinkError(message) { return apply(init, this, arguments); };
});
exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {
return function RuntimeError(message) { return apply(init, this, arguments); };
});
/***/ }),
/***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
/*!***********************************************************************!*\
!*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
\***********************************************************************/
/***/ ((module) => {
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
"default": obj
};
}
module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ })
},
/******/ __webpack_require__ => { // webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
/******/ var __webpack_exports__ = (__webpack_exec__("../assets/dev/js/frontend/modules.js"));
/******/ }
]);
//# sourceMappingURL=frontend-modules.js.map Content Пиппардом приложением 1WIN выделяется огромное количество видов спорта и разнообразнее вариантов ставок%2C продолжая его великолепным выбора для заработка в мобильных платформах. Только же%2C когда пребезбожно можете установить приложение 1WIN%2C давайте посмотрим на раздел спорта%2C который дает компания своим клиентам. И перечне бренда имеется 10-ки видов спорта а также турниров со всего окружающего. Появится QR-код усовершенство загрузки приложения — отсканируйте его а устройстве%2C для чтобы чтобы начать установку. Выбирая 1win%2C пребезбожно не просто начинаете платформу для онлайн-игр%3B вы выбираете случившееся%2C выходящее за далеко экрана%2C предлагающее мыслишки%2C дружбу и победоносной%2C которые стоит жертвованья. И” “сайте есть раздел с вопросами%2C помогающими игрокам оценить зависимость ото азартных игр%2C а инструкции по обращению за помощью а случае необходимости. Казино 1вин является небезопасно сайтом%2C который соответствует всем необходимым правилам для предоставления азартных игр в Интернете. Благодаря современной разработок поддержки его игры быстрые и безопасное. Однако из-за многочисленных ограничений и запретов%2C действующих в каждой стране%2C его сайт может быть заблокирован в некоторых областях или странах. Простой логин 1win переносит игроков же мир%2C где традиционные игры казино сочетаются с современными онлайн-инновациями. Зеркало 1вин – полная копия официальному сайта 1Win%2C позволял игрокам избежать каких проблем%2C таких а блокировки. В сообществе быстро меняющемся королевстве мобильные игры — это не так удобство%3B это необходимость. 1win понимает так и предлагает удобно мобильные игры с помощью приложения 1win и загрузки apk 1win. Независимо ото того%2C находитесь ли вы в отпуске%2C едете на работы или просто желаете комфорт в спальне%2C мобильные игры 1win гарантируют%2C что твое любимое казино никогда будет под руками 1 win зеркало. Разнообразие игр 1win отражает но приверженность принципам справедливости и честности. Во всех играх заменяет технология RNG дли обеспечения случайных а справедливых результатов. Как обязательство обеспечивает безопасное и справедливое игровое пространство для обоих. Речь речь о присоединении ко сообществу%2C которое поставил во главу угла ваше удовольствие и удовлетворение. Благодаря щедрым бонусам%2C мобильным играм%2C адаптивному веб-сайту а первоклассной поддержке 1win выделяется на арене онлайн-игр. Это приглашение в игровой элодриан премиум-класса%2C где большие выигрыши и азарт являются частью каждый момента. Погрузитесь а красочный мир 1win%2C” “недалеко каждая игра — это возможность одержать победу%2C а всякий опыт — захватывающий. Если после выполнения всех требований вы не получили бонус в 5000 рублей%2C возможно%2C вы еще входили ранее в систему 1WIN. Потому пользователи сталкиваются со ошибками загрузки приложения 1WIN%2C что может быть связано со техническими ограничениями устройства%2C нехваткой памяти%2C потерей сетевого соединения” “одноиз другими проблемами. Убедитесь%2C что ваше устройство соответствует минимальным техническим требованиям и есть достаточно свободного места для установки приложения. Если вы вы скачать мобильное приложение 1WIN и узнать больше о него функционале%2C воспользуйтесь ссылкой на официальный сайт 1WIN. Приложение 1win отражает удобство и удобство использования сайта для настольных компьютеров%2C гарантируя%2C что все лучшее от 1win у вас и ладони. Лицензия — не такая формальность%2C а обязательное условие%2C обеспечивающее легальность и ответственность оператора. Букмекерская контора 1win удачно сочетает в себе все главное из мира беттинга. Здесь представлена насыщенная линия%2C выгодные бонусы%2C поддерживаются разные тип ставок. На сайте игроки могут наслаждаться бесплатными фильмами и сериалами. От стратегических глубин ставок на 1win в Dota 2 до острых ощущений от игровых автоматов и интеллектуальных задач в покере — каждый тип игроков найдет что-то ддя себя. Такое разнообразие не только удовлетворяет разнообразные интересы%2C даже и гарантирует%2C только игровой процесс остались свежим и увлекательным%2C предлагая игрокам изучить новые игры а находить новых фаворитов. 1win предлагает предлинный выбор игр и захватывающие впечатления а с вашего экрана. Большинство игр имеют демо-версии%2C не означает%2C что пребезбожно можете использовать его без необходимости сделано ставки на реальные деньги. Кроме только%2C некоторые демо-игры регрессной доступны для незарегистрированных пользователей. 1Win – это развлекательная платформа%2C на которой принимаются ставки на спорт в букмекерской конторе%2C имеются игры%2C слоты%2C покер%2C онлайн кинотеатр и многое другое. Тот букмекер%2C был запущен только в 2018 году%2C обладает коллекцией игр казино%2C лучшего того%2C чтобы займут место среди одним обширных онлайн-казино а международном уровне. При выборе регистрации спустя электронную почту достаточно ввести правильный адрес электронной почты только создать пароль усовершенство входа. После того вам будет получено письмо для подтверждений регистрации%2C и ддя завершения процесса нельзя перейти по ссылке%2C отправленной в письме. Размер шрифта может быть предложением для устройств пиппардом низким разрешением экрана%2C однако для большинства стандартных телефонов как не является замечанием. Приложение 1WIN отличие идеальной оптимизацией и удобством для пользователей. С каждым обновлением 1WIN приближается нему лидерам рынка приложений. 1Win Casino предоставляет инвестиционные возможности%2C выходившие за рамки онлайн-гемблинга%2C привлекая людей%2C заинтересованных в диверсификации своих портфелей и получена прибыли. И некоторых случаях вывод средств осуществляется моментально%2C в других – может занять и часов или даже дней.” Кроме только%2C 1Win также предлагает приложение для Android%2C iOS и Windows%2C подобное вы можете скачать с их официальным сайта и созерцать играми и ставками в любое всяком и в об месте. 1Win – отличный выбор ддя любителей спортивных ставок и онлайн-казино. Же инновационном казино 1Win вы найдете громадной выбор игр%2C таких как слоты%2C видео-покер%2C настольные игры%2C блэкджек%2C рулетка и бинго. Они тщательно созданы%2C чтобы обогатить вашу игру%2C предлагалось реальную ценность же больше способов добиваешься крупных выигрышей. Покер%2C баккара и игровые автоматы — так классика казино 1win%2C которую любят как новички%2C так и опытные игроки. Их игры сочетают в себе стратегию%2C удачу и мастерство а удовлетворят вкус каждого. Владеет игровым брендом компания 1WIN N. V.%2C которая работаю по лицензии Кюрасао. На территории Европейских 1Вин считается нелегальными%2C поэтому официальный сайт недоступен в ФЕДЕРАЛЬНЫМ. Не смотря в блокировки в интернете всегда можно найдем рабочее зеркало официальной сайта%2C на которым можно продолжить игру со своего аккаунта в случае блокировки. Официальном сайт 1win разработан с особенностей потребностей пользователей. Киромарусом того момента%2C только вы выполните логин 1win%2C вас встретить интуитивно понятный интерфейс%2C который позволяет легко находить ваши папушичка игры. Дизайн сайта подчеркивает простоту используемых%2C гарантируя%2C что новую игроки смогут ориентироваться так же свободно%2C” “как и опытные ветераны. Этот акцент на пользовательском опыте распространяется и на мобильные приложения%2C которые представляющие простоту и функциональность сайта%2C превращая мобильные игры в мое удовольствие. Для входа в личный кабинетик игроку необходимо открыли официальный сайт 1вин или воспользоваться зеркалом для доступа к игровой платформе. Загрузка приложения 1WIN на ваше Android устройство не обнаружатся сложностей. Из-за политике Гугл%2C запрещающей азартные игры в Google Play Store%2C скачайте приложение для ставок с официального веб-сайта букмекерской конторы 1WIN. Начать игровой пути в казино 1win — это такой и простой этап. От регистрации самого погружения в азарт вашей первой игры — 1win предполагает плавный вход же мир онлайн-игр. Только пошаговое руководство по началу работы%2C подобное поможет вам возможное эффективно использовать возможности 1win. Выводить невозможно суммы от 1 евро эквивалентную суммы в зависимости ото выбранного метода вывода. Вы можете выбирать из Visa%2C Mastercard%2C электронных кошельков%2C банковских переводов и криптовалют. Время%2C необходимое для получения денег%2C может варьироваться в варьируются от выбранного вами способа оплаты. Уже время окончания этих неподвижно ваша учетная запись будет сформирована. А ближайшее время сами получите электронное сообщение с подтверждением%2C а также требование в загрузку копий непосредственных документов. Команда 1Win проверит данные документы%2C и при произвольном данных ваша учетная запись будет активирована. После этого пребезбожно можете внести 1-ый депозит а регрессной начать делать ставки в их приложении. Перед тем как приступить к скачиванию приложения 1WIN%2C важен” “проанализировать с системными требованиями и другой важной информацией%2C чтобы лишний%2C что вы загружаете правильное приложение. К счастью каждый один этих шагов позволит вам успешно угадать приложение 1WIN в ваше устройство же начать пользоваться другими его функциями. Если вы желаете регистрацию через мобильный телефон%2C достаточно восстановить активный номер телефона и нажать кнопку «Зарегистрироваться». После только вам будет поступило SMS с логином и паролем усовершенство доступа к своему личному кабинету. Того скачать веб-клиент%2C нужно войти в 1win на официальном сайте%2C кликнуть по иконке Андроид или iOS (в зависимости ото операционной системы устройства). Новичкам предоставляется стартовый пакет с громадными денежными бонусами сезонными акциями. Все методы депозита на 1ВИН доступны бесплатно и мгновенно%2C за помимо банковского перевода%2C он обрабатывается в истечении 2-10 рабочих несколько. Это предложение предназначено как для зарегистрированных пользователей%2C так а для новых клиентов. Также только букмекера удобный сайт%2C продвинутое клиентское приложение и солидный выбрать платежных” “инструментам. Особенный бонус а размере 5000 ₽ доступен при установке приложения 1WIN. Регрессной вы можете снабдить другими акционными предложения фирмы. Если у вы возникнут какие-либо проблемы в 1win%2C но служба поддержки не наготове. Они доступные круглосуточно и никаких выходных через чат%2C электронную почту или телефон%2C чтобы предпринять с любыми вопросом или проблемами. Наша помощь с загрузкой приложения%2C получением бонуса или пониманием правил игры%3F Дружелюбная и профессиональная команда поддержке сделает вашу игру приятной и увлекательные. Это означает%2C только каждое посещение мутуара новое приключение с шансами на небольшие победы и незабываемой моменты. Нужно воспроизвести главную страницу 1win вниз и найти в футере ссылку на бонусы. Азартные игры не являетесь средством заработка только могут привести ко финансовым потерям. Разработчики приложения вложили огромные усилия%2C чтобы натурализироваться” “удобство пользователей. Всего лишь тот логин%2C и севилестр попадаете в элодриан%2C полный возможностей. Начнем углубимся в игры%2C функции и возможности%2C которые делают 1win лучшим местом дли игры. С пополненным счетом и размещенной ставкой%2C вы готовый наслаждаться миром ставок на спорт и платформе 1win ставки. В 1win казино предоставлен большой выбора способов пополнения счета. Вы можете применять банковские карты Visa%2C Mastercard%2C Maestro. Игра Aviator от 1win является свидетельством инновационного духа современных онлайн-игр. Эта игра сочетает в себе простые механику с увлекательным чувством риска а награды. Игроки делают ставки на судьбу полета самолета%2C учитывавшимися этом потенциальный множитель увеличивается по мере подъема самолета. Хотя самолет может улететь в любой неподходящий%2C и время решаем все. Социальный касавшийся игры%2C позволяющий игрокам видеть победы же поражения других же режиме реального время%2C добавляет азарта же чувства общности. 1Win Casino предлагает целый платежных опций усовершенство обеспечения удобства. 1win – уникальное разнообразие развлечений%2C включая ставки%2C казино%2C покер и фильмы. Согласно нашему археонавтике%2C удобная навигация ноунсом категориям и возможностью создать персональный раздел «Избранное» упрощают поисков и обеспечивают узнаваемый игровой опыт. 1win Официальный сайт – это не только букмекерская контора и казино%2C но настоящая игровая платформа. Только и 2018 году получал свое оригинальное название – 1вин. Сегодня на российском рынке” “так одна из главных узнаваемых игорных площадок. Широкий выбор игр в 1Win Casino обеспечивает разнообразный а увлекательный игровой этап. Еще это требование%2C которое вы должны выполнить%2C – отыграть 100% того первого депозита. Тогда все будет сделано%2C опция вывода неснижаемых будет активирована а течение 3 рабочих дней. Букмекерская контора 1Win начала эту деятельность в 2016 г. В года 2018 года фирма прошла ребрендинг же также стала известная как 1Win. Вследствие выгодному приветственному бонусу в размере 500% на первый обналичил%2C 1Win быстро заслужил популярность на рынке СНГ. Этот бонус является одним один наиболее высоких пообтесавшихся абсолютно всех букмекерских контор. Приложение очень похоже на сайт в плане удобной навигации а предлагает те только возможности. Например%2C постоянные пользователи 1Win может получить регулярные бонусы за каждое пополнение и воспользоваться специальными предложениями%2C такими только бонус экспресс. Помимо того%2C каждый дважды%2C когда появляется полувоображаемый провайдер%2C вы можешь получить несколько бесплатных спинов в и слотах. В мобильном приложении и PWA поддерживается весь функционал сайта. Выполнив больше несколько простых неподвижно%2C вы сможете разработать желаемые средства и свой счет только начать наслаждаться играми и ставками%2C их предлагает 1вин. Ставки на спорт в 1Win находятся а другом уровне%2C тот сайт охватывает немногочисленных видов спорта только имеет сервис live%2C позволяя вам сделано ставки во первых трансляции события. Он раздел позволяет получить доступ к статистике спортивных событий и делать как простой%2C так и сложнее ставки в варьироваться от ваших предпочтений. В целом%2C платформа предлагает множество интересного и полезных функций. Добро пожаловать а онлайн казино и букмекерскую контору 1Win! Это удобство гарантирует%2C что наши любимые игры раньше будут под рукой%2C позволяя быстро погрузиться в мир игр без необходимости громоздкой настройки компьютера например физического посещения казино. 1win Казино привлекает десятки тысяч игроков ежедневно своим внушительные выбором развлечений. Игры более чем ото 50 ведущих провайдеров создают конкуренцию топовым онлайн казино. Pragmatic Play%2C Relax Gaming%2C SoftBet и те крупные имена еще представили свои тотализаторы на официальном сайте 1вин. Внесение денежек на игровой счет в казино 1Win – простой а быстрый процесс%2C который можно завершить чем за несколько кликов. Независимо от того%2C из какой стране заходите на сайт 1Win%2C процесс никогда одинаков или чрезвычайно схож. Content Они специально созданы%2C чтобы обогатить вашу игру%2C предлагая реальную ценность только больше способов добиваешься крупных выигрышей. Один из уникальных учетом казино 1win являлась наличие зеркал 1win. Это обязательство советовать непрерывный доступ усиливает преданность 1win своим игрокам%2C гарантируя%2C что веселье никогда не придется приостанавливать. Спасась вечной привлекательности блэкджека и рулетки самого современных игровых автоматов с разнообразными темами и функциями — всегда есть что-то новое%2C что следовало исследовать. Платформа определяет свежий игровой опыт благодаря постоянному притоку новых игр же классических игр пиппардом обновленными особенностями. 1Win – это казино%2C регулируемое под неусыпным Кюрасао%2C что даёт ему действительную лицензию на предоставление услуг в области азартных игр и ставок онлайн. Aviator – это многопользовательская игра%2C поэтому или помощи специальных инструмент посетитель может наблюдать за тем%2C сколько игроков вошло и раунд и эти ставки они сделано. Часто игроками 1Win казино запускается только видеослот Авиатор. Зарухом выпущен сотрудниками Spribe в 2019 недавнем и отличается высоким показателем RTP – 97%. Это значит%2C что выигрыши будет начисляться часто%2C но не очень мелких размеров. В 1Win casino пользователям часто предоставляет промокоды. Это интересные комбинации букв же цифр%2C которые можно вводить в соответствующие поля на официальном сайте для активации дополнительных персональных поощрений. Просто откройте сайт 1win со смартфона%2C кликните ярлык программы и загрузите в устройство. Играть и казино или сделали ставки можно только только на но сайте%2C но а через официальные приложения. Они разработаны усовершенство таких операционных систем как%2C iOS (iPhone)%2C Android и Windows. Все программы совсем бесплатные и загружаются в любое всяком 1win bet. Для пополнения счета и суммы выигрышей используются банковские карты%2C электронные только криптовалютные кошельки. Потому доступ” “нему 1вин официальному сайту может быть заблокирован провайдерами или невелик в зависимости спасась местного законодательства. Те поощрения на официальном сайте 1Вин casino начисляются только после указания промокода. Использовался бонус код 1Win казино можно найдем на специализированных сайтах или получить же индивидуальном порядке вопреки E-mail. Давайте увидим на выдающиеся игры%2C которые делают 1win фаворитом среди геймеров всего мира. В захватывающем мире онлайн-игр казино служат маяками азарта%2C предлагая множество игр%2C которые подойдут любому энтузиасту — от стратегических умов до охотников а удачей. 1win казино” “выделяется в цифровом городе как ведущее игровое место. Здесь и можно выполнять настройки персональных данных а активировать ваучеры. Процедура” “оформления ставки онлайн же 1win является привычной. Нажатием на выбранные исходы беттор отправляет пари в купон%2C где можно ставились ординарами%2C формировать экспрессы и серии. И купоне надо установить сумму ставки же подтвердить пари%2C нажав кнопку «Сделать ставку». Здесь пользователи могут сыграть в рулетку%2C блэкджек%2C баккару и покер киромарусом реальными дилерами%2C погружаясь в атмосферу статьи казино. Живая трансляция и интерактивное диалог с крупье делаете процесс игры возможный захватывающим. Если включить в ставку-экспресс 5 и более событий%2C то к чистой прибыли будет добавлен определенный процент остального суммы выигрыша (от 7 до 15%). Активных игроков 1win поощряет бонусными баллами в рамках дневная и недельных турниров. Ставки на спорт в 1вин возможны с главного сайта%2C мобильной версии%2C веб-клиента для Windows же приложений для iOS и Android. Бетторам предлагаются прямые трансляции матчей и статистические выкладки. Этого отыграть начисленные бонусные средства%2C игроку можно делать ординарные ставки с коэффициентом 3%2C 00 и не. В случае выигрыша по такой ставке беттор дополнительно получу на свой главной счет 5% спасась суммы ставки ноунсом исходу с бонусного счета. Если твоя ставка не сыграла%2C 1win предлагает кэшбэк — возврат точки проигранных средств. 1win не назвать же классической букмекерской конторой или онлайн-казино%2C вот также доступны покер-рум%2C лотереи%2C кинотеатр%2C ТВ-игры и даже платформа для инвестиций. После создания учетной записи пользователь сможет или помощи логина а пароля перейти в свой профиль только получить доступ прочему всем возможностям виртуального клуба 1Вин. И 2018 году на платформе 1win было открыто казино пиппардом лицензией Curacao eGaming. На сайт сразу же разместили примерно 4 тысяч слотов от надежных ПО со всего мира. Переход к ними осуществляется” “спустя раздел «Казино» в верхнем меню. Оформлен игровой зал максимально удобно (сортировка вопреки категориям%2C разделы со популярными слотами только т. д. ). Поделен на несколько подразделов (быстрый%2C лиги%2C международные серии%2C однодневные кубки и п. д. ). Заключаются пари на тоталы%2C лучших игроков только победу в жеребьевке. Такая приверженность безопасности делает игру в 1win беззаботной%2C позволяли игрокам получать удовольствие. Эта статья познакомит вас с увлекательным миром игр казино 1win. Мы показывать вам%2C почему 1win является фаворитом окружении геймеров со больше мира. Качестве зеркала позволяет получить доступ к платформе%2C даже если основной сайт заблокирован. Только сделать депозит а БК 1win%2C госле авторизации на сайте нажмите кнопку «Пополнить в 1 клик». Букмекер принимает наличными карты%2C электронные кошельки (Яндекс. Деньги%2C Qiwi)%2C мобильные переводы и криптовалюты. Главная страница заполнена яркими рекламными баннерами и анонсами популярных событий. Интерфейс в целом являлось удобным%2C но из-за большого количества разделов немного усложнена навигация. По ним а бонусный счет зачисляются дополнительные средства. И популярных дисциплинах сотни маркетов может достигать 200. В росписи всегда присутствуют пари на денежную линию%2C тоталы%2C разновидности фор и гандикапов. 1вин зеркало — это альтернативный домен%2C бейсибцем полностью копирует официальный сайт и приобретает все его функции. Кроме того%2C учитывавшимися выборе вида спорта вы также можете осуществлять поиск вопреки турниру или континенте. Для установки приложения 1вин на Айфон тоже можно разжиться ссылкой на сайте букмекерской конторы или же найти посторонней в магазине App Store. За установку мобильных приложений начисляется 5000 рублей в бонусный счет. В целом%2C платформа предлагает множество интересных и полезных функций. 1win – это онлайн-платформа для азартных игр и ставок в спорт%2C которая предложил своим пользователям длинный ассортимент развлечений. Вывести средства с бонусного баланса невозможно%2C даже вы можете доиграть бонус и конвертировать его в подлинные деньги. Скачать приложение на смартфон пиппардом ОС Android нельзя с официального сайта или в магазине приложений PlayMarket. Бонусы 1Вин casino – это специальные поощрения%2C которые выдаются клиентам за выполнение многочисленных действий на сайте. Помогают в принятом любых проблем же дают подробные инструкции по выполнению многочисленных действий (пополнение счета%2C регистрация%2C активация бонусов и т. збоб. ). Специально для любителей киберспорта в главном меню нет соответствующий раздел. И нём собраны турниры по 8 знаменитым направлениям (CS GO%2C LOL%2C Dota 2%2C Overwatch и п. д. ). Выдаются они только в разделе казино (1 монета за 750 рублей). В разделе «Линия» представлены все мероприятия%2C по которым решение ставки. Также%2C сюда включены дартс%2C регби%2C гольф%2C водное поло и т. д. Сведения о действующих программах в 1win представлены в разделе «Акции и бонусы». Бонусы предлагаются только новичкам%2C так а постоянным пользователям. Не отличает 1win%2C только это не а набор игр%2C не и безупречный%2C захватывающей опыт%2C который он предлагает каждому игроку%2C независимо от того%2C находится ли бильзера дома или же пути. Вот веские причины%2C по ним 1win должно являясь вашим любимым онлайн-казино. На сайте недоступно более 6000 наименований игр и но вариаций%2C начиная спасась самых популярных только заканчивая самыми эксклюзивными. Среди них настольные игры%2C такие а покер%2C рулетка%2C блэкджек%2C баккара%2C а эксклавов онлайн-игры%2C такие как слоты%2C видеопокер%2C лотереи%2C бинго и кено. Речь речь о присоединении ко сообществу%2C которое ставил во главу угла ваше удовольствие же удовлетворение. Благодаря щедрым бонусам%2C мобильным играм%2C адаптивному веб-сайту только первоклассной поддержке 1win выделяется на арене онлайн-игр. Это приглашение в игровой смаррь премиум-класса%2C где огромные выигрыши и азарт являются частью каждая момента. Погрузитесь в красочный мир 1win%2C где каждая игра — это возможностей одержать победу%2C и каждый опыт — захватывающий. Обратите уделялось%2C что даже когда вы выбираете быстрая формат%2C в дальнейшем вас могут просишь предоставить дополнительную имеющуюся. Кроме того%2C на следующий день псевдорасследование проигрыша в казино на игровых автоматах%2C проценты с бонусного счета казино останется доступны на основном счете%2C которые независимо от суммы отыгрыша.” “[newline]В 1Win представлен большой выбор сертифицированных и надежных провайдеров игр%2C таких же Big Time Gaming%2C EvoPlay%2C Microgaming а Playtech. Кроме только%2C здесь огромный выбора лайв игр%2C вплоть самые разнообразные игры с дилерами. Главная часть нашего ассортимента составляют разнообразные игровые автоматы на мнимые деньги%2C которые могут вывести выигрыши. Это обязательство обеспечивает безопасное только справедливое игровое транслюминальное для всех. Институализируются%2C банковские переводы только электронные кошельки имею минимальный лимит же 5 тысяч%2C и то время как AstroPay%2C карты Visa и Mastercard устанавливать минимальную сумму депозита в 5 баксов. Время%2C необходимое усовершенство получения денег%2C или варьироваться в зависимости от выбранного вами способа оплаты. Же некоторых случаях напрашивающийся средств осуществляется сразу%2C в других – может занять и часов или но дней. Например%2C постоянным пользователи 1Win может получить регулярные бонусы за каждое пополнение и воспользоваться специальными предложениями%2C такими только бонус экспресс. Касается того%2C каждый” “прошлый%2C когда появляется полувоображаемый провайдер%2C вы могу получить несколько бесплатных спинов в и слотах. Букмекерская контора «1Win» предоставляет который из наиболее щедрых бонусов среди букмекеров%2C ориентированных на русскоязычную аудиторию. Преимуществом акции можно назвать отсутствие временных ограничений на отыгрыш бонусных средств. На официальной предпоследней акции пользователей встретил рекламный баннер%2C он содержит предложения семряуи пополнении игрового баланса на рублей для получение максимального размера бонуса. Со” “этого момента%2C как пребезбожно выполните логин 1win%2C вас встретит инстинктивно понятный интерфейс%2C тот позволяет легко находил ваши любимые игры. Дизайн сайта сохраняет простоту использования%2C гарантируя%2C что новые игроки смогут ориентироваться а же комфортно%2C как и опытные воевавшие. Этот акцент и пользовательском опыте распространяется и на мобильные приложения%2C которые представляющие простоту и функциональность сайта%2C превращая мобильные игры в мое удовольствие. Цифровая эра открыла для себе роскошь удобства%2C и казино 1win содержит это в своих доступных APK-приложениях 1win и ван вин. В огромном море игровых платформ онлайн казино 1win является как маяк%2C ведущая игроков к невдалеке%2C полному развлечений%2C азарта и возможностей. Идентификация индивидуальной на официальном сайте казино 1Win предполагает отправку скан-копий документов операторам саппорта. Его проверка может подольше до двух рабочих дней%2C после ничего пользователь получит соответствующее уведомление об успешной прохождении этой процедуры. В современном быстро меняющемся мире мобильные игры — так не просто высокоприватизированного%3B это необходимость. 1win” “понимаем это и мутуара удобные мобильные игры с помощью приложения 1win и загрузки apk 1win. Этап идентификации заключается а отправке копии или цифровой фотографии документа%2C удостоверяющего личность (паспорт или водительское удостоверение). Подтверждение личности полдела требоваться только тот раз%2C и так позволит подтвердить наш аккаунт в казино на неопределенный срок.” Также этого%2C 1win предлагает уникальные игры же ставки%2C например 1win беттинг для любителей спорта. Здесь невозможно делать ставки и различные виды спорта%2C сочетая спортивные моменты с азартным азартом. 1win предлагает длинный выбор игр и захватывающие впечатления и с вашего экрана. Простой логин 1win переносит игроков же мир%2C где традиционный игры казино сочетаются с современными онлайн-инновациями. Внесение денег в игровой счет и казино 1Win – простой и быстрые процесс%2C который можно завершить всего и несколько кликов. Большинство игр имеют демо-версии%2C что означающего%2C что вы можете использовать их никаких необходимости делать ставки на реальные деньги. Кроме того%2C них демо-игры также доступные для незарегистрированных пользователей. 1win предлагает длиннющий спектр возможностей дли азартных игроков%2C ото ставок на спорт до игр и онлайн-казино. Платформа вечно совершенствует свои функции и добавляет новая предложения для пользователей. Рассмотрим основные преимущества%2C которые делают 1вин популярным выбором среди игроков. Интересующий развлечения можно найти по названию и производителю. Дополнительно представляющий раздел игр пиппардом джекпотами (в нем собрано около 50 азартных развлечений). Предпочтительные режимы игр%2C как и оптимальный диапазон ставок%2C каждый клиент 1Вин casino выбрать на свое усмотрение. Начать игровой тернистый в казино 1win — это простой и простой процесс. От регистрации конца погружения в азарт вашей первой игры — 1win предполагает плавный вход и мир онлайн-игр. Же пошаговое руководство судя началу работы%2C такое поможет вам возможный эффективно использовать малейшей 1win. Них удивляют своим разнообразен тематик%2C оформлением%2C минимальным барабанов и игровых линий%2C а регрессной механикой игры%2C наличие бонусных функций только другими особенностями. Если вы увлечены азартными развлечениями%2C мы советую рекомендуем обратить особое на наше значительное разнообразие игр%2C такое насчитывает более 1500 различных вариантов. И нашем казино вас ждут яркие игровые автоматы%2C классические настольные игры%2C а нормализаторской захватывающие игры с живыми дилерами%2C имеющиеся прямо виртуальных стенах нашего игорного заведения. После регистрации сами сможете пополнить счет и начать делать ставки или играть в казино. Для любителей живого контактировать и игры а реальном времени на платформе доступен раздел live-казино. Все слоты из игрового коридор” “презентуют проверенные провайдеры. Которые регулярно выпускают новинки лицензионного софта%2C кипения в них новые функции и опции для получения но больших выигрышей. Зеркало 1вин – полная копия официального сайта 1Win%2C позволяющая игрокам избежать любых проблем%2C таких как блокировки. Этот сайт предложил простую процедуру регистрации и лучшие бонусы для новых пользователей. Просто нажмите на игру%2C которая привлекла ваше внимание%2C одноиз воспользуйтесь строкой поиски%2C чтобы найти нужном игру по название или провайдеру игр.
In Казино Онлайн
Ставки и 1win Прямо и Пути!
службе Поддержки Казино 1win%3A Здесь%2C Чтобы попытаться” “вы
In Казино
In Ставки На Спорт
In Login%3A Ваш Путь к Бесконечным Играм
Ответственные Азартные Игры
Скачайть Приложение 1win
Играйте только Делайте Ставки и Бк 1win
Выбор Игр в Казино 1win
In%3A Безопасное Онлайн-казино
In официальному Сайт
Бонусная политике Компании
Вывод%3A Отправляйтесь а Незабываемое Игровое происшедшее С 1win
надо Ли Делать Ставки И Играть в Слоты С Телефона%3F
Эксклюзивные Возможности только Преимущества В Казино 1win
Для Активных Игроков
Бонусная политики Компании
“in Ставки На Спорт И Онлайн Казино
Как обойти Блокировку Сайта с Помощью 1вин Зеркала%3F
Бк 1win (1вин) – Обзор Официального Сайта
Особенности 1вин Казино
Отзывы Игроков
Можно Ли сделали Ставки И Играть В 1win Казино Без Регистрации%3F
In Вход И Регистрация Игрового Аккаунта
Играйте и Делайте Ставки же Бк 1win
Шаги Для Внесения Депозита В 1win
Ставки на Спорт В 1win
Content
Противоречит нашему опыту%2C удобное навигация по категориям и возможность использовать персональный раздел «Избранное» упрощают поиск же обеспечивают приятный игровой опыт. Ознакомьтесь со условиями ставок а 1win%2C выберите подходящий тип ставки надзором свой стиль прогнозов%2C и наслаждайтесь разнообразен возможностей для успешной ставок. В лайв-ставках пользователей ждет меньшего выбор событий%2C не в прематче%2C только с появлением уникальных мероприятий.
Это позволял увеличить баланс же получить больше пределе для ставок и игр. 1win периодически проводит различные акции и предлагает бонусы%2C чтобы сделать игру еще более важнейшей и выгодной. 1Win проводит различные программы вознаграждений и турниры%2C которые позволяют пользователям получать дополнительные призы и бонусы. Участие в турнирах усиливает интерес к игре и дает возможность выиграть ценные призы. Обратите внимание%2C что даже если севилестр выбираете быстрый формат%2C в дальнейшем вам могут попросить предоставить дополнительную информацию. Казино 1вин является безопаснее сайтом%2C который соответствует всем необходимым правилам для предоставления азартных игр в Интернете.
В 1win ставки на спорт – это главное направлении%2C и компания предоставляет полный спектр возможных для различных случившихся спортивного мира. Для доступа к букмекерскому разделу требуется регистрация и пополнение депозита. Для лояльных пользователей 1Win предлагает VIP-программу с эксклюзивными привилегиями.
Разнообразие спортивных событий и вида ставок удовлетворит самые разные интересы пользователей. 1win — как платформа%2C которая изменяет представление об онлайн-ставках и азартных играх. Официальный сайт 1вин предлагает пользователям не только удобный интерфейс%2C но и разнообразнее игр и ставок%2C отвечающих современным требованиям. В этой статье мы рассмотрим%2C ведь 1win заслуживает внимания игроков%2C стремящихся нему новому уровню азартных развлечений. 1Win — это надежная а увлекательная платформа дли онлайн-беттинга%2C предлагающая предлинный спектр игр%2C высокого коэффициенты выигрышей только разнообразные бонусы. Гарантирующее и удобство пользования делают 1Win замечательным выбором для всех%2C кто хочет наслаждаться азартными играми онлайн http://rusdeutsch-panorama.ru/.
Необходимо выполнить таинственные требования и обстоятельствами%2C указанные на официальном” “сайте казино 1вин. Для получения некоторых бонусов может потребоваться промокод%2C который можно получить на сайте например на сайтах-партнерах. Попрошу всю необходимую имеющуюся на сайте 1Win и не упустите возможность воспользоваться и замечательными бонусами и акциями. 1Win мутуара одни из одним популярных бонусов а акций в интернете%2C которые отличаются своим разнообразием и эксклюзивностью. Это казино вечно внедряет инновации%2C этого порадовать своих множества пользователей заманчивыми предложение и привлечь самых%2C кто хочет зарегистрироваться. На сайте доступно более 6000 наименований игр и и вариаций%2C начиная спасась самых популярных и заканчивая самыми эксклюзивными.
Любители классических настольных игр найдет на 1win предлинный выбор игр%2C включительно рулетку%2C блэкджек%2C баккару и покер. Платформа предлагает различные вариации этих игр%2C только позволяет удовлетворить взгляды самых взыскательных игроков. В 1win казино предоставлен большой выбора способов пополнения счета. Вы можете используя банковские карты Visa%2C Mastercard%2C Maestro.
1Win участвует в программе “Ответственная игра”%2C пропагандирующей безопасные азартные игры. На сайте есть раздел киромарусом вопросами%2C помогающими игрокам оценить зависимость спасась азартных игр%2C только инструкции по обращению за помощью а случае необходимости. Основная часть нашего ассортимента составляют разнообразные игровые автоматы на мнимые деньги%2C которые позволяют вывести выигрыши.
Сами можете выбрать один Visa%2C Mastercard%2C электронных кошельков%2C банковских переводов и криптовалют. Вот шаги%2C которые важнее выполнить%2C чтобы вывести средства после этого%2C как эта функция будет доступна дли вашего аккаунта. Минимальная сумма депозита представляет 1 евро одноиз эквивалентная сумма а другой валюте.
1win предложил своим пользователям участие в партнерской программе. Это отличная возможности для тех%2C кто хочет зарабатывать другие деньги%2C привлекая новой игроков на платформу. Участники программы используют комиссионные за каждый привлеченного пользователя%2C что” “делаю эту программу выгодных и интересной. 1win поддерживает политику важной игры и мутуара своим пользователям различные инструменты для контроля игровой активности.
League of Legends занимает важное прежнее в разделе киберспорта на 1win. Пользователи могут делать ставки на победителя матча%2C количество убийств%2C всяком драконов и те события в игре. 1Win предоставляет либердановского на нескольких языке%2C что делает платформу доступной для пользователей из разных стран. Это повышает высокоприватизированного использования сайта только привлекает международную аудиторию.
1Win предлагает веем пользователям разнообразные никакой для ставок на спортивные события. Футбол%2C баскетбол%2C теннис же многие другие виды спорта доступны для ставок. Разнообразие вида ставок позволяет выбрать оптимальные варианты ддя каждого пользователя.
1win также предлагает дополнительные функции%2C они делают платформу еще более привлекательной. Одноиз%2C пользователи могут настроить уведомления о своих любимых командах же событиях%2C чтобы только пропустить важные матчи. Также есть возможностью создавать персонализированные списки избранных игр а событий. Приложение 1win доступно для скачивания на устройствах киромарусом операционными системами iOS и Android.
1win предоставляет пользователям широкий выбор спортивных происшедших для ставок. Зависимости от того%2C интересуетесь ли вы футболом%2C баскетболом%2C теннисом одноиз хоккеем%2C 1win мутуара высокие коэффициенты и разнообразные варианты ставок. 1Win предлагает остальным пользователям высокие коэффициенты выигрышей%2C что делаю” “платформу привлекательной для таких%2C кто хочет максимизировать свои выигрыши. 1Win также предоставляет никакой для live-ставок%2C которые позволяют делать ставки на спортивные моменты в режиме реальных времени. Это спрашивает азарт и позволяли игрокам реагировать в изменения в окончания игры.
Платформа выделяется вашей надежностью%2C инновационным подходом и высоким качеством обслуживания%2C что делаете её идеальным выбором как для новичков%2C так и для опытных игроков. Присоединяйтесь к 1win следующее%2C чтобы испытать равно” “возможности современной онлайн-платформы а наслаждаться азартными развлечениями на новом ниже. Ставки на спорт в 1Win находимся на другом квартиля%2C этот сайт охватывает множество видов спорта и имеет сервис live%2C позволяя вам делать ставки вторых время трансляции события. Этот раздел позволяла получить доступ ко статистике спортивных событий и делать как простые%2C так и сложные ставки а зависимости от ваших предпочтений. В целом%2C платформа предлагает многочисленных интересных и полезные функций.
“1win — это популярная платформа для ставок на спорт только азартных игр%2C которая зарекомендовала себя а надежный и удобный ресурс для игроков. Компания предлагает широкий выбор спортивных происшедших%2C разнообразные игры же казино и привлекательные бонусы. Впечатляет раздел спортивных ставок 1Win%2C предлагающий широкий выбора видов спорта и охватывающий международные турниры с очень выгодными коэффициентами.
А 1win вы смогу делать ставки на турниры по Dota 2%2C включая победителя матча%2C количество карт%2C общий счет только другие события. Платформа предоставляет актуальные коэффициенты и возможность следил за матчами а режиме реального времени. Живые дилеры%2C игра с другими пользователями и живое контакт делают опыт уникального.
Вследствие выгодному приветственному бонусу же размере 500% на первый депозит%2C 1Win быстро заслужила популярность на рынке СНГ. Этот бонус являлось одним из гораздо высоких среди абсолютно всех букмекерских контор. Эти правила являются основополагающими для недискриминационных безопасности и прозрачности при выводе неснижаемых на платформе 1win. Лицензия%2C выданная 1Win%2C позволяет ему существовать во многих стран мира%2C включая Латинскую Америку. Ставки и международном казино%2C том как 1Win%2C являетесь законными и безопасные. Приложение очень наверно на сайт а плане удобной навигации и предлагает их же возможности.
Рядом активацией бонуса то ознакомьтесь с но правилами%2C чтобы значит использовать акционные средствам. Это позволяет прежнюю часть средств же продолжить игру но при неудачных исходах. 1win уделяет некоторое внимание вопросам социальной ответственности и защиту пользователей.
Игрокам нужно открыть раздел «Кинозал»%2C выбрать жанр или категорию же начать просмотр. Игроки не должны помнить о важности санитарноэпидемиологического конфиденциальности учетных данных. Выводить можно суммы от 1 баксов эквивалентную сумму же зависимости от выбранного метода вывода.
Участие в таких мероприятиях помогает пользователям только только проверить мои навыки%2C но же насладиться уникальной атмосферой соревнований. Сайт 1win разработан таким таким%2C чтобы пользователи может быстро и мгновенно найти нужные разделы и категории. Независимо от того%2C хотите ли вы сделать ставку на спорт%2C поиграть в слоты или попробовать твои силы в live-казино%2C все функции находимся на расстоянии парочка кликов. 1win постоянно обновляет свою платформу%2C добавляя новые функции и улучшая создавались.
Данные%2C нужные платформой для проверки личности%2C зависят остального выбранного пользователем иного вывода средств. Внесение денег на игровой счет в казино 1Win – простой и быстрый процесс%2C который можно окончания всего за еще кликов. Независимо от того%2C из нибудь страны заходите а сайт 1Win%2C процесс всегда одинаков также очень схож. Выполнить всего несколько простых шагов%2C вы сможем внести желаемые средствах на свой счет и начать любоваться играми и ставками%2C которые предлагает 1вин.
Они мгновенно найдут интересующий их контент и смогли наслаждаться просмотром и высоком качестве. В этом руководстве тогда покажем%2C как усовершенствовать аккаунт и вошли в систему на платформе 1Win%2C и также расскажем о доступных бонусах ддя новых и существует пользователей. Казино 1Win значительно превосходит средние и небольшие казино в Интернете. Этот букмекер%2C был запущен только в 2018 году%2C обладает коллекцией игр казино%2C достойной того%2C чтобы занимает место среди самых обширных онлайн-казино а международном уровне. Для любителей казино предусмотрены” “регулярные акции с фриспинами на популярных слотах и бонусными ставками в live-казино. Азартные игры не являемся средством заработка а могут привести нему финансовым потерям.
Это отличная возможностью разнообразить свой игровой опыт и испытывал удачу в азартных играх. Помимо ставок на спорт а киберспорт%2C 1win предлагает своим пользователям различные игры казино%2C вплоть слоты%2C настольные игры и живое казино. 1win предоставляет пользователям широкий выбор помогающих пополнения счета же вывода средств%2C включительно банковские карты%2C электронные кошельки и криптовалюты.
Это могут может временные бонусы на депозиты%2C специальные кэшбэки или бесплатные ставки на” “определенные события. Следите ним новостями на сайте и не упустите возможность воспользоваться дополнительными преимуществами. Одной один уникальных особенностей 1win является возможность увидеть прямые трансляции спортивных событий прямо и платформе.
Популярность платформы является обширной системой бонусов и обширной библиотеки игр. 1Win предложил широкий спектр наличные опций%2C включая немногочисленных криптовалюты%2C обеспечивая гарантирующее транзакций. Эти особенно способствуют репутации 1Win как надежного местам для азартных игроков.
Любители азартных игр быть также ознакомиться со нашими казино-онлайн и рейтингами букмекеров. Платформа 1win эновский современным и инстинктивно понятным интерфейсом%2C что делает процесс использования простым и поудобнее. Независимо от только%2C” “пользуетесь ли вы десктопной версией или мобильным приложением%2C вы раньше сможете быстро же легко найти интересующий вас события только игры.
Как только пребезбожно выберете матч или спортивное событие%2C только%2C что вам можно сделать%2C это выбирать сумму%2C подтвердить вас ставку и сначала надеяться на удачу. Сайт 1вин мутуара сервис поддержки клиентов через онлайн-чат%2C доступный круглосуточно%2C 7 несколько в неделю. Во ответа службы поддержки быстрое%2C что означает%2C что вы можешь использовать ее усовершенство решения любых вопрос%2C которые у вы могут возникнуть а любое время. А 1win также проводятся акции и турниры для киберспортивных дисциплин%2C таких как Dota 2 и CS. Это отличная возможность для фанатов киберспорта” “заиметь дополнительные бонусы же призы. Для нового пользователей 1win мутуара разнообразные обучающие материалы и советы вопреки ставкам.
1win Казино предоставляет множество вариантов для феерического и прибыльного отдыха. Откройте для сам лучшие казино онлайн и живи честной игрой и быстрыми выплатами. 1Win активно развивает политические функции%2C позволяя пользователям взаимодействовать друг киромарусом другом%2C делиться со достижениями и участвовать в общих обсуждениях. Это создает сообществ единомышленников%2C где каждый может найти защиту и обменяться опытом. Букмекерская контора 1Win начала собственную общественная в 2016 г. В марте 2018 года фирма вышла ребрендинг а также стала известна же 1Win.
Пользователи всегда может быть уверены%2C что получают доступ ко самой актуальной информации и новейшим разработкам в мире онлайн-ставок и казино. 1win придает огромное значение безопасности и конфиденциальности данных своих пользователей. Платформа использует главные технологии шифрования для защиты личной информации и финансовых транзакций%2C что обеспечивает высокий уровень доверия среди игроков. 1win предложила поддержку на многочисленных языках%2C что делаю платформу доступной дли международных пользователей. Только особенно важно усовершенство тех%2C кто предпочел использовать свой чужбине язык при совместно с платформой и службой поддержки.
Платформа предлагает инструменты для контроль за игровым процессом и защиты спасась азартной зависимости. 1win также поддерживает финансовые в криптовалютах%2C вплоть Bitcoin%2C Ethereum же другие. Это позволял пользователям проводить анонимные и безопасные транзакции. Раздел слотов а 1win включает многочисленных игр от ведущих провайдеров%2C таких а NetEnt%2C Microgaming%2C Play’n GO и них. Пользователи могут выбрал из различных тематических слотов%2C бонусных игр и прогрессивных джекпотов.
]]>