{"version":3,"file":"components.js","mappings":"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","sources":["webpack://escid.espp.productdetailspage.service/./Content/boot-pdp-client.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/additionalDescription.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_buttonLink.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_empty.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_image.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_separatorLine.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_showcase.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_text.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_title.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/bannerModule/bannerModule.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/bannerModule/glovesBanner/glovesBanner.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/bannerModule/logoServiceBanner/logoServiceBanner.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/bannerModule/onlineCatalog/onlineCatalog.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/bannerModule/shoesBanner/shoesBanner.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/debugBar/debugBar.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/debugBar/debuggerDataSource.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/detailsPage/detailsPageLayout.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/fragmentPlaceholder/fragmentPlaceholder.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/DatasheetIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/Icon_3D.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/LogoServiceIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/aas_logo.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/apply.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/arrowSmallIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/arrow_down.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/arrow_down_desktop_shutters.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/arrow_down_mobile_shutters.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/basketIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/basketSuccessIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/cross.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/crossRing.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/designWithAdvice.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/diameter.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/expanderIconOpenSmall.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/functionalLayerBase.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/functionalLayerWarmth.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/functionalLayerWeather.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/gloves_properties_and_standards_icon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/icon_arrow_circle_grey_left.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/icon_arrow_circle_grey_right.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/icon_arrow_extra_small_right.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/icon_arrow_small_left.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/icon_arrow_small_right.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/icon_download.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/icon_novelty.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/icon_pause_3d.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/icon_play_3d.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/infoIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/length.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/logoservice.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/minusIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/mixMatch.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/moreIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/online_catalog_icon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/plusIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/po_icon_arrow_right.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/selfDesign.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/shareIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/shoes_banner_header.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/sizeTable.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/size_long_man.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/size_regular_man.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/size_short_man.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/statusIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/stopwatch.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/switcherIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/triangle.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/workwearstoreIcon.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/icons/zoom.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mediaOverlay/mediaOverlay.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixAndMatch/mixAndMatchFragmentWrapper.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixAndMatch/mixAndMatchShutterWrapper.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_1/mainImage.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_1/mainImageCarousel/carouselSlide/carouselSlide.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_1/mainImageCarousel/mainImageCarousel.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_1/normalImage/normalImage.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_2/gallery3dOverlay.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_2/smallMainImage.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_2/threeDView.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_3/additionalInfoImage.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/eyeCatcher/eyeCatcher.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/mixedMedia.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/modalwrapper/modalWrapper.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/articleNumber/articleNumber.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/articlePrice/articlePrice.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/basketPanel/basketPanel.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/compareShareBookmarkMobile/compareShareBookmarkMobile.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/compareShareBookmark/compareBtn.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/compareShareBookmark/compareShareBookmark.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/deliveryTime/deliveryTime.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/orderModule.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/salesFlag/salesFlag.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/salesTeaser/salesTeaser.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/storeAvailability/storeAvailability.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/vatSwitcher/vatSwitcher.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/personalizationBanner/personalizationBanner.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/personalizeOverlay/personalizeInfoOverlay.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/personalizeOverlay/personalizeOverlay.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/personalizeOverlay/toolTip.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfoArticleSets/articleSetItem/articleSetItem.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfoArticleSets/detailsModal/detailsModal.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfoArticleSets/detailsModal/detailsModalContent/detailsModalContent.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfoArticleSets/productInfoArticleSets.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/additionalLayout/productAdditionalLayout.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/bullets/bullets.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/careLabels/careLabels.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/description/productDescription.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/details/details.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/disclaimer/disclaimers.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/extras/extras.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/functionalLayers/functionalLayers.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/links/productDescriptionLinks.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/materials/materials.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/productInfo.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/shoeWeights/shoeWeights.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/glovesRecommandation/glovesRecommendation.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/layoutedContentGrid/layoutedContentGrid.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/productFeature/content.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/productFeature/productFeature.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/purchaseAdvice/contentTab.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/purchaseAdvice/contentTabAAS.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/purchaseAdvice/headerTab.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/purchaseAdvice/purchaseAdvice.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/shutterModul.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/stickyHeader/stickyHeader.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/colorPanel/colorPanel.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/customeSwiper/customeSwiper.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/modelPanel/modelPanel.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/sizeDimensions/sizeDimension/sizeDimension.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/sizeDimensions/sizeDimensions.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/sizePanel/sizePanel.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/sizeValues/sizeValue/sizeValue.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/sizeValues/sizeValues.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/specialPanel/specialPanel.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/variantButtonList/variantButtonList.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/variantButton/variantButton.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/variantPanel.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/workwearStoreAvailabilityModal/workwearStoreAvailabilityModal.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/workwearStoreAvailabilityModal/workwearStore/workwearStore.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/workwearStoreAvailabilityModal/workwearStore/workwearStoreColors/workwearStoreColors.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/workwearStoreAvailabilityModal/workwearStore/workwearStoreModels/workwearStoreModels.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/workwearStoreAvailabilityModal/workwearStore/workwearStoreSizes/workwearStoreSizes.tsx","webpack://escid.espp.productdetailspage.service/./Content/components/workwearStoreAvailabilityModal/wwsKioskInfo/wwsKioskInfo.tsx","webpack://escid.espp.productdetailspage.service/./Content/helper/aasFragmentHelper.ts","webpack://escid.espp.productdetailspage.service/./Content/helper/debugBarHelper.ts","webpack://escid.espp.productdetailspage.service/./Content/helper/detailsPageContentWidth.tsx","webpack://escid.espp.productdetailspage.service/./Content/helper/esAppHelper.ts","webpack://escid.espp.productdetailspage.service/./Content/helper/html-helper.tsx","webpack://escid.espp.productdetailspage.service/./Content/helper/richText.tsx","webpack://escid.espp.productdetailspage.service/./Content/helper/scrollLock.ts","webpack://escid.espp.productdetailspage.service/./Content/helper/tabNavigationHelper.ts","webpack://escid.espp.productdetailspage.service/./Content/helper/trackingHelper.ts","webpack://escid.espp.productdetailspage.service/./Content/helper/urlHelper.ts","webpack://escid.espp.productdetailspage.service/./Content/helper/viewPortWidth.tsx","webpack://escid.espp.productdetailspage.service/./Content/stores/DataStore.ts","webpack://escid.espp.productdetailspage.service/./Content/stores/Fetch.ts","webpack://escid.espp.productdetailspage.service/./Content/stores/MainStore.ts","webpack://escid.espp.productdetailspage.service/./Content/stores/MixedMediaStore.ts","webpack://escid.espp.productdetailspage.service/./Content/stores/OrderModuleStore.ts","webpack://escid.espp.productdetailspage.service/./Content/stores/VariantStore.ts","webpack://escid.espp.productdetailspage.service/./Content/stores/WorkWearStoreStore.ts","webpack://escid.espp.productdetailspage.service/./Content/stores/types.ts","webpack://escid.espp.productdetailspage.service/./Content/thirdPartyStyles/styles.ts","webpack://escid.espp.productdetailspage.service/./node_modules/classnames/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-responsive-carousel/lib/styles/carousel.min.css","webpack://escid.espp.productdetailspage.service/./node_modules/css-loader/dist/runtime/api.js","webpack://escid.espp.productdetailspage.service/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://escid.espp.productdetailspage.service/./node_modules/custom-event-polyfill/polyfill.js","webpack://escid.espp.productdetailspage.service/./Content/styles/customCarouselStyles.scss?c183","webpack://escid.espp.productdetailspage.service/./Content/styles/customFragmentsStyles.scss?2351","webpack://escid.espp.productdetailspage.service/./Content/styles/customSwipeable.scss?9367","webpack://escid.espp.productdetailspage.service/./Content/styles/customTabNavigationStyles.scss?bd30","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/additionalDescription.scss?8799","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_buttonLink.scss?82a6","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_empty.scss?4fb3","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_image.scss?7557","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_separatorLine.scss?ffeb","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_showcase.scss?c573","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_text.scss?da01","webpack://escid.espp.productdetailspage.service/./Content/components/additionalDescription/content/additionalDescription_title.scss?10ac","webpack://escid.espp.productdetailspage.service/./Content/components/bannerModule/bannerModule.scss?fb25","webpack://escid.espp.productdetailspage.service/./Content/components/debugBar/debugBar.scss?e67a","webpack://escid.espp.productdetailspage.service/./Content/components/detailsPage/detailsPageLayout.scss?3c1f","webpack://escid.espp.productdetailspage.service/./Content/components/fragmentPlaceholder/fragmentPlaceholder.scss?30d1","webpack://escid.espp.productdetailspage.service/./Content/components/mediaOverlay/mediaoverlay.scss?0347","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_1/mainImage.scss?fbdf","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_2/gallery3dOverlay.scss?cf4f","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_2/threeDView.scss?c9f4","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/element_3/additionalInfoImage.scss?2a9b","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/eyeCatcher/eyeCatcher.scss?31ea","webpack://escid.espp.productdetailspage.service/./Content/components/mixedMedia/mixedMedia.scss?4aef","webpack://escid.espp.productdetailspage.service/./Content/components/modalwrapper/modalWrapper.scss?45fa","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/articleNumber/articleNumber.scss?6708","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/articlePrice/articlePrice.scss?e552","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/basketPanel/basketPanel.scss?ac8f","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/compareShareBookmarkMobile/compareShareBookmarkMobile.scss?e21b","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/compareShareBookmark/compareShareBookmark.scss?1230","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/deliveryTime/deliveryTime.scss?360c","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/orderModule.scss?68b3","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/salesFlag/salesFlag.scss?b0a9","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/salesTeaser/salesTeaser.scss?5c0d","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/storeAvailability/storeAvailability.scss?3a62","webpack://escid.espp.productdetailspage.service/./Content/components/orderModule/vatSwitcher/vatSwitcher.scss?6413","webpack://escid.espp.productdetailspage.service/./Content/components/personalizationBanner/personalizationBanner.scss?b48a","webpack://escid.espp.productdetailspage.service/./Content/components/personalizeOverlay/personalizeInfoOverlay.scss?5cb9","webpack://escid.espp.productdetailspage.service/./Content/components/personalizeOverlay/personalizeOverlay.scss?faff","webpack://escid.espp.productdetailspage.service/./Content/components/personalizeOverlay/toolTip.scss?3305","webpack://escid.espp.productdetailspage.service/./Content/components/productInfoArticleSets/articleSetItem/articleSetItem.scss?6f23","webpack://escid.espp.productdetailspage.service/./Content/components/productInfoArticleSets/detailsModal/detailsModal.scss?b832","webpack://escid.espp.productdetailspage.service/./Content/components/productInfoArticleSets/detailsModal/detailsModalContent/detailsModalContent.scss?a3c6","webpack://escid.espp.productdetailspage.service/./Content/components/productInfoArticleSets/productInfoArticleSets.scss?0e5a","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/bullets/bullets.scss?781e","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/careLabels/careLabels.scss?4103","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/description/productDescription.scss?6f83","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/details/details.scss?ee34","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/disclaimer/disclaimers.scss?cb5e","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/extras/extras.scss?8738","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/functionalLayers/functionalLayers.scss?ae12","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/links/productDescriptionLinks.scss?42b2","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/materials/materials.scss?4b7b","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/productInfo.scss?9795","webpack://escid.espp.productdetailspage.service/./Content/components/productInfo/shoeWeights/shoeWeights.scss?aa65","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/glovesRecommandation/glovesRecommendation.scss?d654","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/layoutedContentGrid/layoutedContentGrid.scss?b00a","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/productFeature/content.scss?9cd3","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/productFeature/productFeature.scss?6572","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/purchaseAdvice/contentTab.scss?6a08","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/purchaseAdvice/contentTabAAS.scss?0ad4","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/purchaseAdvice/headerTab.scss?394b","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/purchaseAdvice/purchaseAdvice.scss?362e","webpack://escid.espp.productdetailspage.service/./Content/components/shutterModul/shutterModul.scss?c25a","webpack://escid.espp.productdetailspage.service/./Content/components/stickyHeader/stickyHeader.scss?fb1c","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/colorPanel/colorPanel.scss?189f","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/modelPanel/modelPanel.scss?fa87","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/sizeDimensions/sizeDimension/sizeDimension.scss?2bcc","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/sizeDimensions/sizeDimensions.scss?acd0","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/sizePanel/sizePanel.scss?008e","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/sizeValues/sizeValue/sizeValue.scss?256b","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/sizeValues/sizeValues.scss?dd65","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/specialPanel/specialPanel.scss?d47a","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/variantButtonList/variantButtonList.scss?0f87","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/variantButton/variantButton.scss?b88d","webpack://escid.espp.productdetailspage.service/./Content/components/variantPanel/variantPanel.scss?ae13","webpack://escid.espp.productdetailspage.service/./Content/components/workwearStoreAvailabilityModal/workwearStoreAvailabilityModal.scss?b806","webpack://escid.espp.productdetailspage.service/./Content/components/workwearStoreAvailabilityModal/workwearStore/workwearStore.scss?82ca","webpack://escid.espp.productdetailspage.service/./Content/components/workwearStoreAvailabilityModal/wwsKioskInfo/wwsKioskInfo.scss?790f","webpack://escid.espp.productdetailspage.service/./Content/helper/richText.scss?d10e","webpack://escid.espp.productdetailspage.service/./Content/styles/defaults.scss?21cb","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/utils/assertEnvironment.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/utils/observerBatching.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/utils/printDebugValue.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/utils/UniversalFinalizationRegistry.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/utils/observerFinalizationRegistry.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/staticRendering.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/useObserver.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/observer.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/ObserverComponent.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/useLocalObservable.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/useAsObservableSource.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react-lite/es/useLocalStore.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx-react/dist/mobxreact.esm.js","webpack://escid.espp.productdetailspage.service/./node_modules/mobx/dist/mobx.esm.js","webpack://escid.espp.productdetailspage.service/./node_modules/object-assign/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://escid.espp.productdetailspage.service/./node_modules/prop-types/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-collapse/lib/Collapse.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-collapse/lib/UnmountClosed.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-collapse/lib/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-device-detect/main.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-easy-swipe/lib/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-easy-swipe/lib/react-swipe.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-lazyload/lib/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-lazyload/lib/utils/debounce.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-lazyload/lib/utils/event.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-lazyload/lib/utils/scrollParent.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-lazyload/lib/utils/throttle.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-responsive-carousel/lib/js/CSSTranslate.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-responsive-carousel/lib/js/components/Carousel.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-responsive-carousel/lib/js/components/Thumbs.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-responsive-carousel/lib/js/cssClasses.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-responsive-carousel/lib/js/dimensions.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-responsive-carousel/lib/js/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-responsive-carousel/lib/js/shims/document.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-responsive-carousel/lib/js/shims/window.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-zoom-pan-pinch/dist/index.esm.js","webpack://escid.espp.productdetailspage.service/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://escid.espp.productdetailspage.service/./node_modules/scheduler/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/ssr-window/ssr-window.esm.js","webpack://escid.espp.productdetailspage.service/./node_modules/react-responsive-carousel/lib/styles/carousel.min.css?46d3","webpack://escid.espp.productdetailspage.service/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/utils/get-support.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/utils/get-device.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/utils/get-browser.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/modules/resize/resize.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/modules/observer/observer.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/events-emitter.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/update/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/update/updateSize.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/translate/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/slide/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/loop/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/events/onResize.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/events/onClick.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/events/onScroll.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/events/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/classes/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/defaults.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/core-class.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/modular.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/transition/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/manipulation/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/images/index.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/images/loadImage.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack://escid.espp.productdetailspage.service/./node_modules/dom7/dom7.esm.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/utils/dom.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/utils/utils.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/utils.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/params-list.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/loop.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/get-children.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/update-swiper.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/use-isomorphic-layout-effect.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/swiper.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/get-params.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/init-swiper.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/get-changed-params.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/virtual.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/react/swiper-slide.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/virtual/virtual.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/keyboard/keyboard.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/navigation/navigation.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/pagination/pagination.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/scrollbar/scrollbar.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/parallax/parallax.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/zoom/zoom.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/lazy/lazy.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/controller/controller.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/a11y/a11y.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/history/history.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/hash-navigation/hash-navigation.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/effect-cube/effect-cube.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/effect-flip/effect-flip.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","webpack://escid.espp.productdetailspage.service/./node_modules/swiper/esm/components/thumbs/thumbs.js","webpack://escid.espp.productdetailspage.service/./node_modules/ua-parser-js/dist/ua-parser.min.js","webpack://escid.espp.productdetailspage.service/./node_modules/axios/dist/browser/axios.cjs"],"sourcesContent":["import * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { configure } from 'mobx';\r\nconfigure({ enforceActions: 'observed', isolateGlobalState: true });\r\n\r\nimport { Provider } from 'mobx-react';\r\nimport { MainStore } from './stores/MainStore';\r\nimport DetailsPageLayout from './components/detailsPage/detailsPageLayout';\r\nimport './thirdPartyStyles/styles';\r\n\r\nfunction hydrateApp() {\r\n const state = JSON.parse(JSON.stringify(window.__PRELOADED_PDP_STATE__));\r\n const store: MainStore = new MainStore(state.otherData, state.localization);\r\n delete window.__PRELOADED_PDP_STATE__;\r\n ReactDOM.hydrate(\r\n <Provider\r\n store={store}\r\n orderModuleStore={store.orderModuleStore}\r\n mixedMediaStore={store.mixedMediaStore}\r\n variantStore={store.variantStore}\r\n workWearStoreStore={store.workWearStoreStore}\r\n dataStore={store.dataStore}\r\n >\r\n <DetailsPageLayout />\r\n <script suppressHydrationWarning={true} />\r\n </Provider>,\r\n document.getElementById('product-details-page-entry')\r\n );\r\n}\r\n\r\nhydrateApp();\r\n","import React from 'react';\r\nimport styles from './additionalDescription.scss';\r\nimport {\r\n IAdditionalDescription,\r\n IAdditionalDescriptionElement,\r\n IAdditionalDescriptionTitle,\r\n IAdditionalDescriptionText,\r\n IAdditionalDescriptionImage,\r\n IAdditionalDescriptionLink,\r\n IAdditionalDescriptionShowcase,\r\n} from '../../stores/types';\r\nimport classNames from 'classnames';\r\nimport AdditionalDescriptionTitle from './content/additionalDescription_title';\r\nimport AdditionalDescriptionText from './content/additionalDescription_text';\r\nimport AdditionalDescriptionImage from './content/additionalDescription_image';\r\nimport AdditionalDescriptionButtonLink from './content/additionalDescription_buttonLink';\r\nimport AdditionalDescriptionEmpty from './content/additionalDescription_empty';\r\n\r\nimport AdditionalDescriptionShowcase from './content/additionalDescription_showcase';\r\nimport AdditionalDescriptionSeparatorLine from './content/additionalDescription_separatorLine';\r\nimport DebugBarHelper from '../../helper/debugBarHelper';\r\nimport DebuggerDataSource from '../debugBar/debuggerDataSource';\r\n\r\nfunction AdditionalDescription(props: IAdditionalDescription) {\r\n const { rows, l10n, fallBackImageUrl, threeDContainerId, has3DView, debuggerIsOn, \r\n documentKey, isRelease } = props;\r\n const debugBarHelper = DebugBarHelper.instance;\r\n\r\n function detectContent(content: IAdditionalDescriptionElement) {\r\n switch (content.contentType) {\r\n case 'Title': {\r\n const titleContent = content as IAdditionalDescriptionTitle;\r\n return (\r\n <AdditionalDescriptionTitle\r\n text={titleContent.text}\r\n types={titleContent.types}\r\n contentType={titleContent.contentType}\r\n />\r\n );\r\n }\r\n case 'Text': {\r\n const textContent = content as IAdditionalDescriptionText;\r\n return (\r\n <AdditionalDescriptionText\r\n value={textContent.value}\r\n types={textContent.types}\r\n contentType={textContent.contentType}\r\n />\r\n );\r\n }\r\n case 'Image':\r\n case 'Logo': {\r\n const imageContent = content as IAdditionalDescriptionImage;\r\n return (\r\n <AdditionalDescriptionImage\r\n types={imageContent.types}\r\n contentType={imageContent.contentType}\r\n url={imageContent.url}\r\n altText={imageContent.altText}\r\n title={imageContent.title}\r\n aspectRatio={imageContent.aspectRatio}\r\n scale={imageContent.scale}\r\n height={imageContent.height}\r\n width={imageContent.width}\r\n />\r\n );\r\n }\r\n case 'Link':\r\n case 'Pdf': {\r\n const linkContent = content as IAdditionalDescriptionLink;\r\n linkContent.isDownloadable = linkContent.contentType === 'Pdf';\r\n return (\r\n <AdditionalDescriptionButtonLink\r\n types={linkContent.types}\r\n contentType={linkContent.contentType}\r\n icon={linkContent.icon}\r\n linkText={linkContent.linkText}\r\n target={linkContent.target}\r\n openInNewWindow={linkContent.openInNewWindow}\r\n isDownloadable={linkContent.isDownloadable}\r\n l10n={l10n}\r\n />\r\n );\r\n }\r\n case 'Video': {\r\n return <div>{'This is a video, need more work'}</div>;\r\n }\r\n case 'Showcase': {\r\n const showcaseContent = content as IAdditionalDescriptionShowcase;\r\n return has3DView ? (\r\n <AdditionalDescriptionShowcase\r\n types={showcaseContent.types}\r\n contentType={showcaseContent.contentType}\r\n masterArticleNo={showcaseContent.masterArticleNo}\r\n colorCode={showcaseContent.colorCode}\r\n index={showcaseContent.index}\r\n resumeInBackground={showcaseContent.resumeInBackground}\r\n prefix={showcaseContent.prefix}\r\n threeDContainerId={threeDContainerId + '_' + showcaseContent.index}\r\n fallBackImageUrl={fallBackImageUrl}\r\n />\r\n ) : (\r\n <></>\r\n );\r\n }\r\n case 'SeparatorLine': {\r\n return <AdditionalDescriptionSeparatorLine />;\r\n }\r\n case 'Empty': {\r\n return <AdditionalDescriptionEmpty />\r\n }\r\n default: {\r\n return <></>;\r\n }\r\n }\r\n }\r\n \r\n return (\r\n <div data-testid='additional-description-container' className={\r\n classNames(styles.additional_description_column,\r\n { [debugBarHelper.getDebuggerClassName(\r\n DebugBarHelper.AdditionalDescription_source)]: debuggerIsOn})}>\r\n {!isRelease && \r\n <DebuggerDataSource value={'Additional description source Key: \"' + documentKey + '\"'}/>\r\n }\r\n {(!(rows instanceof Array) || rows.length === 0) ? null :\r\n rows.map((row, rowIndex) => {\r\n return (\r\n <div\r\n key={rowIndex}\r\n data-testid='additional-description-row'\r\n className={classNames(\r\n styles.additional_description_row,\r\n { [styles.black_edition]: row.theme !== 'default' },\r\n { [styles.vertical_separator]: row.types.includes('vertical-separator') }\r\n )}\r\n >\r\n {row.cells instanceof Array &&\r\n row.cells.length > 0 &&\r\n row.cells.map((cell, cellIndex) => {\r\n return (\r\n <div\r\n key={cellIndex}\r\n data-testid='additional-description-cell'\r\n className={classNames(styles.additional_description_cell, {\r\n [styles.overlay_two_thirds]: cell.types.includes(\r\n 'additional-description-overlay-two-thirds'\r\n ),\r\n })}\r\n >\r\n {cell.contents instanceof Array &&\r\n cell.contents.map((content, contentIndex) => (\r\n <div\r\n data-testid='additional-description-content'\r\n className={styles.additional_description_content}\r\n key={contentIndex}\r\n >\r\n {detectContent(content)}\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n })\r\n }\r\n </div>\r\n );\r\n}\r\n\r\nexport default AdditionalDescription;\r\n","import React from 'react';\r\nimport styles from './additionalDescription_buttonLink.scss';\r\nimport IconArrowExtraSmallRight from '../../icons/icon_arrow_extra_small_right';\r\nimport IconDownload from '../../icons/icon_download';\r\nimport { IAdditionalDescriptionLink } from '../../../stores/types';\r\nimport * as helper from '../../../helper/html-helper';\r\n\r\nfunction AdditionalDescriptionButtonLink(props: IAdditionalDescriptionLink) {\r\n function buttonText(text?: string) {\r\n return (\r\n <div className={styles.button_text}>\r\n <div className={styles.text}>{text}</div>\r\n {props.icon === 'additional-description-arrow-right' && <IconArrowExtraSmallRight />}\r\n {props.icon === 'additional-description-arrow-down' && <IconDownload />}\r\n </div>\r\n );\r\n }\r\n return props.isDownloadable ? (\r\n <a className={styles.button_link} download href={props.target}>\r\n {buttonText(helper.decodeHTML(props.l10n.generalL10n.pdfDownload))}\r\n </a>\r\n ) : (\r\n <a className={styles.button_link}\r\n href={props.target}\r\n target={'_blank'} rel={'noreferrer'}>\r\n {buttonText(props.linkText)}\r\n </a>\r\n );\r\n}\r\n\r\nexport default AdditionalDescriptionButtonLink;\r\n","import React from 'react';\r\nimport styles from './additionalDescription_empty.scss';\r\n\r\nfunction AdditionalDescriptionEmpty() {\r\n return (<div data-testid='additional-description-empty'\r\n className={styles.empty}>\r\n </div>);\r\n}\r\n\r\nexport default AdditionalDescriptionEmpty;\r\n","import React from 'react';\r\nimport styles from './additionalDescription_image.scss';\r\nimport { IAdditionalDescriptionImage } from '../../../stores/types';\r\nimport classNames from 'classnames';\r\nimport LazyLoad from 'react-lazyload';\r\n\r\nfunction AdditionalDescriptionImage(props: IAdditionalDescriptionImage) {\r\n return (\r\n <div\r\n data-testid='additional-description-image'\r\n className={classNames(\r\n styles.image,\r\n { [styles.scaling]: props.types.includes('scaling') },\r\n { [styles.no_margin_both]: props.types.includes('no-margin-both') },\r\n { [styles.logo]: props.types.includes('additional-description-logo') }\r\n )}\r\n >\r\n <LazyLoad offset={200}>\r\n <img src={props.url} alt={props.altText} title={props.title} />\r\n </LazyLoad>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AdditionalDescriptionImage;\r\n","import React from 'react';\r\nimport styles from './additionalDescription_separatorLine.scss';\r\n\r\nfunction AdditionalDescriptionSeparatorLine() {\r\n return <hr data-testid='additional-description-separator-line' className={styles.horizontal_separator} />;\r\n}\r\n\r\nexport default AdditionalDescriptionSeparatorLine;\r\n","import React from 'react';\r\nimport FragmentPlaceholder from '../../fragmentPlaceholder/fragmentPlaceholder';\r\nimport styles from './additionalDescription_showcase.scss';\r\nimport { IAdditionalDescriptionShowcase } from '../../../stores/types';\r\n\r\nfunction AdditionalDescriptionShowCase(props: IAdditionalDescriptionShowcase) {\r\n return (<div className={styles.showcase}>\r\n <FragmentPlaceholder\r\n src={\r\n '/ESPP1-Showcase/threesixtyview?masterArticleNo=' +\r\n props.masterArticleNo + '&colorCode=' + props.colorCode +\r\n '&containerId=' + props.threeDContainerId +\r\n '&doNotUpdateAfterVariantChange=true&noBackground=true' +\r\n '&noImageActions=true' +\r\n '&fallBackImageUrl='+ props.fallBackImageUrl +\r\n '&showThreeSixtyViewAfterPageLoad=true' // because add description is open always if it is available\r\n }\r\n ignoreErrors={true}\r\n timeout={2}\r\n />\r\n </div>);\r\n}\r\n\r\nexport default AdditionalDescriptionShowCase;\r\n","import React from 'react';\r\nimport styles from './additionalDescription_text.scss';\r\nimport { IAdditionalDescriptionText } from '../../../stores/types';\r\n\r\nfunction AdditionalDescriptionText(props: IAdditionalDescriptionText) {\r\n return (<div className={styles.richtext}>\r\n <div dangerouslySetInnerHTML={{ __html: props.value }}/>\r\n </div>);\r\n}\r\n\r\nexport default AdditionalDescriptionText;\r\n","import React from 'react';\r\nimport styles from './additionalDescription_title.scss';\r\nimport { IAdditionalDescriptionTitle } from '../../../stores/types';\r\n\r\nfunction AdditionalDescriptionTitle(props: IAdditionalDescriptionTitle) {\r\n function titleContent(type: string) {\r\n switch (type) {\r\n case 'h1-tag': return <h1>{props.text}</h1>;\r\n case 'h2-tag': return <h2>{props.text}</h2>;\r\n case 'h3-tag': return <h3>{props.text}</h3>;\r\n case 'h4-tag': return <h4>{props.text}</h4>;\r\n case 'h5-tag': return <h5>{props.text}</h5>;\r\n case 'h6-tag': return <h6>{props.text}</h6>;\r\n default: return <>{props.text}</>;\r\n }\r\n }\r\n\r\n return (<div className={styles.title}>\r\n {titleContent(props.types[0])}\r\n </div>);\r\n}\r\n\r\nexport default AdditionalDescriptionTitle;\r\n","import React, { useEffect } from 'react';\r\nimport styles from './bannerModule.scss';\r\nimport { useViewportWidth } from '../../helper/viewPortWidth';\r\nimport defaultStyles from '../../styles/defaults.scss';\r\nimport OnlineCatalog from './onlineCatalog/onlineCatalog';\r\nimport GlovesBanner from './glovesBanner/glovesBanner';\r\nimport ShoesBanner from './shoesBanner/shoesBanner';\r\nimport LogoServiceBanner from './logoServiceBanner/logoServiceBanner';\r\n\r\nfunction BannerModule() {\r\n const { width } = typeof window !== 'undefined' ? useViewportWidth() : { width: 1024 };\r\n const minDeskTopWidth = parseInt(defaultStyles.breakpointMobileMinWidth);\r\n const isDesktop = width > minDeskTopWidth;\r\n\r\n useEffect(() => {\r\n const bannerWrapper = document.getElementById('banner_modul_wrapper');\r\n\r\n if (bannerWrapper) {\r\n const bannerWrapperChildren = Array.from(bannerWrapper.children as HTMLCollectionOf<HTMLElement>);\r\n\r\n if (isDesktop) {\r\n if (bannerWrapperChildren.length == 1) bannerWrapperChildren[0].style.margin = '50px auto';\r\n if (bannerWrapperChildren.length == 3) bannerWrapperChildren[2].style.margin = 'auto';\r\n }\r\n\r\n if(bannerWrapperChildren.length < 1) {\r\n const banner_modul = document.getElementById('banner_modul');\r\n\r\n if(banner_modul) {\r\n banner_modul.classList.add(styles.no_border);\r\n }\r\n }\r\n }\r\n });\r\n\r\n return (\r\n <div id='banner_modul' data-testid='banner_modul' className={styles.banner_modul}>\r\n <div id='banner_modul_wrapper' data-testid='banner_modul_wrapper' className={styles.banner_modul_wrapper}>\r\n <OnlineCatalog />\r\n <GlovesBanner />\r\n <ShoesBanner />\r\n <LogoServiceBanner />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default BannerModule;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\n\r\nimport styles from '../bannerModule.scss';\r\nimport IconArrowExtraSmallRight from '../../icons/icon_arrow_extra_small_right';\r\nimport DataStore from '../../../stores/DataStore';\r\nimport GlovesPropertiesAndStandardsIcon from '../../icons/gloves_properties_and_standards_icon';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nconst GlovesBanner = inject('dataStore')(\r\n observer((props: { dataStore?: DataStore }) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const { dataStore } = props;\r\n\r\n if (!dataStore?.bannerModule.showGloves) {\r\n return null;\r\n }\r\n\r\n function getAltTagValue(): string {\r\n if(!dataStore)\r\n return '';\r\n \r\n return dataStore.mainStore.localization.generalL10n.propertiesAndStandards;\r\n }\r\n\r\n return (\r\n <a\r\n data-testid='gloves_banner'\r\n className={styles.banner_item}\r\n href={dataStore.bannerModule.glovesRedirectUrl}\r\n target='_blank'\r\n rel='noreferrer noopener'\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n >\r\n <div className={styles.header}>\r\n <GlovesPropertiesAndStandardsIcon />\r\n <p className={styles.header_banner_type}>\r\n {dataStore.mainStore.localization.generalL10n.propertiesAndStandards}\r\n </p>\r\n </div>\r\n <div className={classNames(styles.media_content, styles.media_content_gloves)} \r\n title={getAltTagValue()} />\r\n <div data-testid='gloves_button' className={styles.footer}>\r\n <div className={styles.button}>\r\n <div className={styles.title}>{dataStore.mainStore.localization.generalL10n.discoverNow}</div>\r\n <IconArrowExtraSmallRight />\r\n </div>\r\n </div>\r\n </a>\r\n );\r\n })\r\n);\r\n\r\nexport default GlovesBanner;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\n\r\nimport styles from '../bannerModule.scss';\r\nimport IconArrowExtraSmallRight from '../../icons/icon_arrow_extra_small_right';\r\nimport DataStore from '../../../stores/DataStore';\r\nimport LogoService from '../../icons/logoservice';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nconst LogoServiceBanner = inject('dataStore')(\r\n observer((props: { dataStore?: DataStore }) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const { dataStore } = props;\r\n\r\n if (!dataStore?.bannerModule.showLogoService) {\r\n return null;\r\n }\r\n\r\n function getAltTagValue(): string {\r\n if(!dataStore)\r\n return '';\r\n\r\n return dataStore.contextData.featureToggles.enableLogoCreator &&\r\n (dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable ?? false) ? \r\n dataStore.mainStore.localization.generalL10n.personalise : \r\n dataStore.mainStore.localization.generalL10n.logoService;\r\n }\r\n\r\n return (\r\n <div\r\n data-testid='logo_service_banner'\r\n className={styles.banner_item}\r\n onClick={()=>{ \r\n dataStore.contextData.featureToggles.enableLogoCreator &&\r\n (dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable ?? false) ? \r\n dataStore?.mainStore.showPersonalizeOverlay(true)\r\n :\r\n window.open(dataStore.bannerModule.logoServiceRedirectUrl, '_self')\r\n }}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n >\r\n <div className={styles.header}>\r\n <LogoService />\r\n <p className={styles.header_banner_type}>\r\n {dataStore.contextData.featureToggles.enableLogoCreator &&\r\n (dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable ?? false) ? \r\n helper.decodeHTML(dataStore.mainStore.localization.generalL10n.personalise) : \r\n helper.decodeHTML(dataStore.mainStore.localization.generalL10n.logoService) }\r\n </p>\r\n </div>\r\n <div className={classNames(styles.media_content, styles.media_content_logo_service)} \r\n title={getAltTagValue()} />\r\n <div data-testid='logo_service_button' className={styles.footer}>\r\n <div className={styles.button}>\r\n <div className={styles.title}>{dataStore.mainStore.localization.generalL10n.discoverNow}</div>\r\n <IconArrowExtraSmallRight />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport default LogoServiceBanner;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\n\r\nimport styles from '../bannerModule.scss';\r\nimport OnlineCatalogIcon from '../../icons/online_catalog_icon';\r\nimport IconArrowExtraSmallRight from '../../icons/icon_arrow_extra_small_right';\r\nimport DataStore from '../../../stores/DataStore';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nconst OnlineCatalog = inject('dataStore')(\r\n observer((props: { dataStore?: DataStore }) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const { dataStore } = props;\r\n const withVat = dataStore?.mainStore.orderModuleStore.withVat;\r\n const onlineCatalog = withVat\r\n ? dataStore?.bannerModule.onlineCatalogIncVat\r\n : dataStore?.bannerModule.onlineCatalogExVat;\r\n\r\n if (!dataStore?.bannerModule.showOnlineCatalog || !onlineCatalog) {\r\n return null;\r\n }\r\n\r\n function openCorrectOnlineCatalogPage(): string | undefined {\r\n if (dataStore?.bannerModule.isOnRightPage) return onlineCatalog?.rightPage.redirectUrl;\r\n return onlineCatalog?.leftPage.redirectUrl;\r\n }\r\n\r\n function getAltTagValue(): string {\r\n if(!dataStore)\r\n return ''; \r\n \r\n return dataStore.mainStore.localization.generalL10n.onlineCatalog;\r\n }\r\n\r\n return (\r\n <div\r\n data-testid='online_catalog_banner'\r\n className={classNames(styles.banner_item, styles.online_catalog_banner)}\r\n >\r\n <div className={styles.header}>\r\n <OnlineCatalogIcon />\r\n <p className={styles.header_banner_type}>\r\n {dataStore.mainStore.localization.generalL10n.onlineCatalog}\r\n </p>\r\n </div>\r\n \r\n <div\r\n className={styles.media_content}>\r\n <a href={onlineCatalog.leftPage.redirectUrl} target='_blank' rel='noreferrer noopener'>\r\n <img className={styles.left_page} src={onlineCatalog.leftPage.previewImageUrl}\r\n alt={getAltTagValue() + ' ' + dataStore.mainStore.localization.generalL10n.left} />\r\n </a>\r\n <a href={onlineCatalog.rightPage.redirectUrl} target='_blank' rel='noreferrer noopener'>\r\n <img className={styles.right_page} src={onlineCatalog.rightPage.previewImageUrl}\r\n alt={getAltTagValue() + ' ' + dataStore.mainStore.localization.generalL10n.right} />\r\n </a>\r\n </div>\r\n <div data-testid='online_catalog_button' className={styles.footer}>\r\n <a\r\n className={styles.button}\r\n href={openCorrectOnlineCatalogPage()}\r\n target='_blank'\r\n rel='noreferrer noopener'\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n >\r\n <div className={styles.title}>\r\n {dataStore.mainStore.localization.generalL10n.discoverNow}</div>\r\n <IconArrowExtraSmallRight />\r\n </a>\r\n </div>\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport default OnlineCatalog;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\n\r\nimport styles from '../bannerModule.scss';\r\nimport IconArrowExtraSmallRight from '../../icons/icon_arrow_extra_small_right';\r\nimport DataStore from '../../../stores/DataStore';\r\nimport ShoesBannerHeader from '../../icons/shoes_banner_header';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nconst ShoesBanner = inject('dataStore')(\r\n observer((props: { dataStore?: DataStore }) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const { dataStore } = props;\r\n\r\n if (!dataStore?.bannerModule.showShoes) {\r\n return null;\r\n }\r\n\r\n function getAltTagValue(): string {\r\n if(!dataStore)\r\n return '';\r\n \r\n return dataStore.mainStore.localization.generalL10n.safetyClassesOverview;\r\n }\r\n\r\n return (\r\n <a\r\n data-testid='shoes_banner'\r\n className={styles.banner_item}\r\n href={dataStore.bannerModule.shoesRedirectUrl}\r\n target='_blank'\r\n rel='noreferrer noopener'\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n >\r\n <div className={styles.header}>\r\n <ShoesBannerHeader />\r\n <p className={styles.header_banner_type}>\r\n {dataStore.mainStore.localization.generalL10n.safetyClassesOverview}\r\n </p>\r\n </div>\r\n <div className={classNames(styles.media_content, styles.media_content_shoes)} \r\n title={getAltTagValue()} />\r\n <div data-testid='shoes_button' className={styles.footer}>\r\n <div className={styles.button}>\r\n <div className={styles.title}>{dataStore.mainStore.localization.generalL10n.discoverNow}</div>\r\n <IconArrowExtraSmallRight />\r\n </div>\r\n </div>\r\n </a>\r\n );\r\n })\r\n);\r\n\r\nexport default ShoesBanner;\r\n","import { inject } from 'mobx-react';\r\nimport React, { Component } from 'react';\r\nimport { IInjectedProps } from '../../types';\r\nimport styles from './debugBar.scss';\r\n\r\n@inject('store')\r\nexport default class DebugBar extends Component<IInjectedProps> {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.showDebugInfo = this.showDebugInfo.bind(this);\r\n }\r\n\r\n private showDebugInfo(): void {\r\n this.props.store?.turnOnDebugger();\r\n }\r\n\r\n render() {\r\n return (\r\n <div className={styles.debug_bar}>\r\n <button onClick={this.showDebugInfo}>{'PDP debug'}</button>\r\n </div>\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport styles from './debugBar.scss';\r\n\r\nexport default class DebuggerDataSource extends Component<{value: string}, {}> {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n <span data-testid='debugger-data-source' \r\n className={styles.dds_info}>{this.props.value}\r\n </span>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport { IInjectedProps } from '../../types';\r\nimport styles from './detailsPageLayout.scss';\r\nimport StickyHeader from '../stickyHeader/stickyHeader';\r\nimport { MediaOverlay } from '../mediaOverlay/mediaOverlay';\r\nimport { MixedMedia } from '../mixedMedia/mixedMedia';\r\nimport { OrderModule } from '../orderModule/orderModule';\r\nimport ShutterModul from '../shutterModul/shutterModul';\r\nimport { VariantPanel } from '../variantPanel/variantPanel';\r\nimport { ProductInfo } from '../productInfo/productInfo';\r\nimport AdditionalDescription from '../additionalDescription/additionalDescription';\r\nimport { useViewportWidth } from '../../helper/viewPortWidth';\r\nimport { GlovesRecommendation } from '../shutterModul/glovesRecommandation/glovesRecommendation';\r\nimport ArticleNumber from '../orderModule/articleNumber/articleNumber';\r\nimport ArticlePrice from '../orderModule/articlePrice/articlePrice';\r\nimport BasketPanel from '../orderModule/basketPanel/basketPanel';\r\nimport VariantButtonList from '../variantPanel/variantButtonList/variantButtonList';\r\nimport { PurchaseAdvice } from '../shutterModul/purchaseAdvice/purchaseAdvice';\r\nimport FragmentPlaceholder from '../fragmentPlaceholder/fragmentPlaceholder';\r\nimport BannerModule from '../bannerModule/bannerModule';\r\nimport MixAndMatchShutterWrapper from '../mixAndMatch/mixAndMatchShutterWrapper';\r\nimport * as helper from '../../helper/html-helper';\r\nimport { useMixedMediaContentWidth } from '../../helper/detailsPageContentWidth';\r\nimport classNames from 'classnames';\r\nimport ProductFeature from '../shutterModul/productFeature/productFeature';\r\nimport { PersonalizeOverlay } from '../personalizeOverlay/personalizeOverlay';\r\nimport { PersonalizeInfoOverlay } from '../personalizeOverlay/personalizeInfoOverlay';\r\nimport { IProductFeaturesGroup } from '../../stores/types';\r\nimport DebugBar from '../debugBar/debugBar';\r\nimport LayoutedContentGrid from '../shutterModul/layoutedContentGrid/layoutedContentGrid';\r\nimport { ProductInfoArticleSets } from '../productInfoArticleSets/productInfoArticleSets';\r\nimport PersonalizationBanner from '../personalizationBanner/personalizationBanner';\r\nimport TabNavigationHelper from '../../helper/tabNavigationHelper';\r\nimport '../../styles/customTabNavigationStyles.scss';\r\n\r\nconst DetailsPageLayout = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n if (!store)\r\n return null;\r\n\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const { width } = typeof window !== 'undefined' ? useViewportWidth() : { width: 1024 };\r\n const { contentWidth } = typeof document !== 'undefined' ? useMixedMediaContentWidth() : { contentWidth: 1024 };\r\n const hasAdditionalDescription = store?.fetchedData.shutterModule.additionalDescriptions &&\r\n store.fetchedData.shutterModule.additionalDescriptions.length > 0;\r\n const initialLayoutedContentGridState = store?.fetchedData.shutterModule.layoutedContentGridKeys &&\r\n store.fetchedData.shutterModule.layoutedContentGridKeys.length > 0;\r\n const { variantButtonCount } = store?.variantStore;\r\n const logoCreatorUrl = store.showKioskLayout ? `/ESPP1-LogoCreator?wwsId=${store.wwsId}` : '/ESPP1-LogoCreator';\r\n const showPersonalizationBanner =\r\n store?.dataStore.contextData.featureToggles.enablePersonalizationBannerOnDetailsPage &&\r\n store?.dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable;\r\n const [hasLayoutedContentGrid, setLayoutedContentGridState] =\r\n React.useState(initialLayoutedContentGridState);\r\n\r\n const updateLayoutedContentGridState = (isAvailable: boolean) => {\r\n setLayoutedContentGridState(isAvailable);\r\n }\r\n\r\n return (\r\n <>\r\n <div\r\n className={styles.details_page_content}\r\n style={{\r\n right: store.variantStore.isVariantPanelOpen ? store.getRightPosition(width, contentWidth) : 0,\r\n }}\r\n >\r\n <div className={styles.hidden_fragment}>\r\n <FragmentPlaceholder src={'/layoutedcontentgrid-rmu/layoutedcontentgrid-fragment/assets'}\r\n ignoreErrors={true} timeout={2} />\r\n </div>\r\n {store.isEsApp && (\r\n <div className={styles.hidden_fragment}>\r\n <FragmentPlaceholder src={'/shippingtext'} ignoreErrors={true} timeout={2} />\r\n </div>\r\n )}\r\n <div\r\n className={classNames(styles.background_container, {\r\n [styles.dark_background]:\r\n store.orderModuleStore.compareShareBookmarkMobileExpanded,\r\n })}\r\n />\r\n {\r\n !store.dataStore.contextData.isEsApp &&\r\n <div\r\n className={classNames(styles.dp_breadcrumb_fragment_container)}\r\n >\r\n {\r\n // eslint-disable-next-line max-len\r\n <FragmentPlaceholder src={`/ESPP.Breadcrumb/breadcrumb?pageType=Detail&seoSlug=${store.dataStore.breadcrumb.category.seoSlug}&containerId=dp_main_breadCrumb`}\r\n ignoreErrors={true}\r\n timeout={2}\r\n />\r\n }\r\n </div>\r\n }\r\n <div className={styles.details_page_container} ref={(el)=>tabNavigation.setGroupAtt(el)}>\r\n {!store.dataStore.contextData.isRelease && <DebugBar />}\r\n <MediaOverlay />\r\n <MixedMedia />\r\n <OrderModule />\r\n </div>\r\n <div className={styles.dp_bottom_container}>\r\n <StickyHeader\r\n onHeightChange={store.orderModuleStore.setStickHeaderHeight}\r\n isEsApp={store.isEsApp}\r\n variantButtonCount={variantButtonCount}\r\n top={store.stickyHeaderTop}\r\n >\r\n <div>\r\n <ArticleNumber isStickyHeader />\r\n {store.variantStore && <VariantButtonList isStickyHeader />}\r\n </div>\r\n <div>\r\n <ArticlePrice isStickyHeader />\r\n <BasketPanel isStickyHeader />\r\n </div>\r\n </StickyHeader>\r\n\r\n {showPersonalizationBanner &&\r\n <PersonalizationBanner mainStore={store} />\r\n }\r\n\r\n {!store.fetchedData.shutterModule.productInfo.disableProductInfoShutter && (\r\n <ShutterModul\r\n title={helper.decodeHTML(store.localization.generalL10n.productInfo)}\r\n isOpen={true}\r\n isMobileShop={store.isMobileShop}\r\n showPersonalizationBanner={showPersonalizationBanner}\r\n >\r\n {store?.dataStore.contextData.featureToggles.enableArticleSetInformationInPDP &&\r\n store.dataStore.shutterModule.productInfo.description.articleSetItemDescriptions &&\r\n store.dataStore.shutterModule.productInfo.description.articleSetItemDescriptions.length > 0\r\n ? (\r\n <ProductInfoArticleSets />\r\n\r\n ) : (\r\n <ProductInfo />\r\n )}\r\n </ShutterModul>\r\n )}\r\n <ShutterModul\r\n title={helper.decodeHTML(store.localization.generalL10n.additionalDescription)}\r\n isOpen={true}\r\n isMobileShop={store.isMobileShop}\r\n notVisible={!hasAdditionalDescription && !hasLayoutedContentGrid}\r\n >\r\n {hasAdditionalDescription &&\r\n (store.fetchedData.shutterModule.additionalDescriptions.map((value, index) => {\r\n return (\r\n <AdditionalDescription\r\n key={index}\r\n rows={value.rows}\r\n l10n={store.localization}\r\n has3DView={value.has3DView}\r\n threeDContainerId={store.additionalDescription3DContainerId + '_' + index}\r\n fallBackImageUrl={store.mixedMediaStore.fallBackImageUrl}\r\n debuggerIsOn={store.debuggerIsOn}\r\n documentKey={value.documentKey}\r\n isRelease={store.dataStore.contextData.isRelease}\r\n />\r\n );\r\n }))}\r\n <LayoutedContentGrid\r\n debuggerIsOn={store.debuggerIsOn}\r\n layoutedContentGridKeys={store?.fetchedData.shutterModule.layoutedContentGridKeys}\r\n isRelease={store.dataStore.contextData.isRelease}\r\n updateLayoutedContentGridState={updateLayoutedContentGridState}\r\n colorCode={store.dataStore.mixedMedia?.colorCode} />\r\n </ShutterModul>\r\n {store.hasGlovesRecommendation && (\r\n <ShutterModul\r\n title={helper.decodeHTML(\r\n store.localization.generalL10n.glovesRecommendationShutterTitle\r\n )}\r\n isOpen={true}\r\n isMobileShop={store.isMobileShop}\r\n >\r\n <GlovesRecommendation />\r\n </ShutterModul>\r\n )}\r\n {store.fetchedData.shutterModule.productFeaturesGroups && (\r\n store.fetchedData.shutterModule.productFeaturesGroups\r\n .map((featuresGroup: IProductFeaturesGroup, index: number) => {\r\n const tmpIndex = index + 1;\r\n return (<ShutterModul\r\n key={index}\r\n isOpen={true}\r\n title={featuresGroup.groupName && featuresGroup.groupName !== 'DEFAULT' ?\r\n featuresGroup.groupName :\r\n helper.decodeHTML(store.localization.redOnlyL10n?.productFeature)}\r\n isMobileShop={store.isMobileShop}\r\n >\r\n <ProductFeature featuresGroup={featuresGroup}\r\n masterArticleNo={store.dataStore.mixedMedia?.masterArticleNo}\r\n colorCode={store.dataStore.mixedMedia?.colorCode}\r\n groupIndex={tmpIndex}\r\n isMobileShop={store.isMobileShop} />\r\n </ShutterModul>)\r\n })\r\n )}\r\n <ShutterModul\r\n isOpen={true}\r\n title={helper.decodeHTML(store.localization.redOnlyL10n?.purchaseAdvice)}\r\n isMobileShop={store.isMobileShop}\r\n notVisible={!store.isPurchaseAdviceAvailable}\r\n >\r\n <PurchaseAdvice />\r\n </ShutterModul>\r\n <MixAndMatchShutterWrapper />\r\n <BannerModule />\r\n </div>\r\n </div>\r\n <VariantPanel />\r\n <FragmentPlaceholder src='/ESPP1-BasketModal?containerId=dp_basket_modal' ignoreErrors={true} />\r\n <FragmentPlaceholder src={'/ESPP1-Showcase/assetsView'}\r\n ignoreErrors={true}\r\n timeout={2} />\r\n\r\n {store?.dataStore.contextData.featureToggles.enableLogoCreator &&\r\n <>\r\n <FragmentPlaceholder src={logoCreatorUrl} ignoreErrors={true}\r\n timeout={2} />\r\n <PersonalizeOverlay />\r\n <PersonalizeInfoOverlay />\r\n </>\r\n }\r\n </>\r\n );\r\n })\r\n);\r\n\r\nexport default DetailsPageLayout;\r\n","import * as React from 'react';\r\nimport { IFragmentPlaceholderProps } from './fragmentPlaceholder.d';\r\nimport styles from './fragmentPlaceholder.scss';\r\n\r\nfunction FragmentPlaceholder(props: IFragmentPlaceholderProps) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function createFragmentPlaceholder(): any {\r\n const ignoreErrors: string = props.ignoreErrors ? 'true' : 'false';\r\n const fallback: string = props.fallbackSrc != null ? ` fallback-src=\"${props.fallbackSrc}\"` : '';\r\n const timeout: string = props.timeout != null && props.timeout > 0 ? ` timeout=\"${props.timeout}\"` : '';\r\n\r\n return { __html: `<!--#fragment src=\"${props.src}\" ignore-errors=\"${ignoreErrors}\"${fallback}${timeout}-->` };\r\n }\r\n return (\r\n <div\r\n className={styles.fragment_place_holder}\r\n suppressHydrationWarning={true}\r\n dangerouslySetInnerHTML={createFragmentPlaceholder()}\r\n />\r\n );\r\n}\r\n\r\nexport default FragmentPlaceholder;\r\n","import React from 'react';\r\n/* eslint-disable max-len */\r\nconst DataSheetIcon = () => (\r\n <svg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 17.80078 21.80078'>\r\n <path d='M14.90039,21.80078h-12A2.90451,2.90451,0,0,1,0,18.90039v-16A2.90451,2.90451,0,0,1,2.90039,0h12a2.90451,2.90451,0,0,1,2.90039,2.90039v16A2.90451,2.90451,0,0,1,14.90039,21.80078Zm-12-20A1.10071,1.10071,0,0,0,1.80078,2.90039v16A1.1007,1.1007,0,0,0,2.90039,20h12A1.1007,1.1007,0,0,0,16,18.90039v-16a1.1007,1.1007,0,0,0-1.09961-1.09961Z' />\r\n <path d='M12.90039,6.67871h-8a.7002.7002,0,0,1,0-1.40039h8a.7002.7002,0,1,1,0,1.40039Z' />\r\n <path d='M12.80762,10.42383H4.90039a.7002.7002,0,0,1,0-1.40039h7.90723a.7002.7002,0,0,1,0,1.40039Z' />\r\n <path d='M8.47168,14.169H4.90039a.7002.7002,0,0,1,0-1.4004H8.47168a.7002.7002,0,0,1,0,1.4004Z' />\r\n </svg>\r\n);\r\n\r\nexport default DataSheetIcon;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\nconst Icon_3D = () => (\r\n <svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%' viewBox='0 0 31.80371 31.80469'>\r\n <path d='M30.90332,31.80078h-9a.90039.90039,0,1,1,0-1.80078h8.09961V21.90039a.90039.90039,0,0,1,1.80078,0v9A.90065.90065,0,0,1,30.90332,31.80078Z' />\r\n <path d='M21,30.9043a.90316.90316,0,0,1,.90039-.90039h0a.89692.89692,0,0,1,.90039.90039h0a.90316.90316,0,0,1-.90039.90039h0A.90956.90956,0,0,1,21,30.9043Z' />\r\n <path d='M9.90332,31.80078h-9a.90065.90065,0,0,1-.90039-.90039v-9a.90039.90039,0,0,1,1.80078,0V30H9.90332a.90039.90039,0,0,1,0,1.80078Z' />\r\n <path d='M0,21.9043a.90527.90527,0,0,1,.90039-.91016h0a.90527.90527,0,0,1,.90039.91016h0a.894.894,0,0,1-.90039.88965h0A.894.894,0,0,1,0,21.9043Z' />\r\n <path d='M.90332,10.80078a.90065.90065,0,0,1-.90039-.90039v-9A.90065.90065,0,0,1,.90332,0h9a.90039.90039,0,0,1,0,1.80078H1.80371V9.90039A.90065.90065,0,0,1,.90332,10.80078Z' />\r\n <path d='M9,.89453A.90116.90116,0,0,1,9.90039.00391h0a.89486.89486,0,0,1,.90039.89062h0a.8961.8961,0,0,1-.90039.89942h0A.90232.90232,0,0,1,9,.89453Z' />\r\n <path d='M30.90332,10.80078a.90065.90065,0,0,1-.90039-.90039V1.80078H21.90332a.90039.90039,0,1,1,0-1.80078h9a.90065.90065,0,0,1,.90039.90039v9A.90065.90065,0,0,1,30.90332,10.80078Z' />\r\n <path d='M30,9.9043a.90316.90316,0,0,1,.90039-.90039h0a.89692.89692,0,0,1,.90039.90039h0a.894.894,0,0,1-.90039.88965h0A.90033.90033,0,0,1,30,9.9043Z' />\r\n <path d='M10.12988,15.1416h.93653a.87687.87687,0,0,0,.7832-.37207,1.76682,1.76682,0,0,0,.249-.99512,1.47926,1.47926,0,0,0-.25683-.92675.82224.82224,0,0,0-.68653-.33106.81.81,0,0,0-.65918.31445,1.209,1.209,0,0,0-.25683.793H8.30469a2.72259,2.72259,0,0,1,.35937-1.39746A2.51444,2.51444,0,0,1,9.668,11.25879a2.97026,2.97026,0,0,1,1.43262-.34863,2.95578,2.95578,0,0,1,2.15332.75879,2.76584,2.76584,0,0,1,.77929,2.07812,2.372,2.372,0,0,1-.35156,1.25488,2.404,2.404,0,0,1-.92676.88477,2.12685,2.12685,0,0,1,1.04981.90234,2.81586,2.81586,0,0,1,.34472,1.42188,2.78981,2.78981,0,0,1-.84472,2.126,3.09111,3.09111,0,0,1-2.21778.79981,2.72016,2.72016,0,0,1-2.87109-2.86426h1.93457a1.421,1.421,0,0,0,.28027.89551.86306.86306,0,0,0,.71094.3623.95246.95246,0,0,0,.79-.36914,1.54951,1.54951,0,0,0,.29-.98437q0-1.46924-1.1416-1.47656h-.9502Z' />\r\n <path d='M16.33984,21V11.04688h2.63184A3.625,3.625,0,0,1,21.751,12.1543a4.34331,4.34331,0,0,1,1.05566,3.03515v1.61328a4.35519,4.35519,0,0,1-1.03613,3.08008A3.70008,3.70008,0,0,1,18.917,21Zm2.00977-8.27832V19.332h.60156a1.68786,1.68786,0,0,0,1.415-.5293,3.1541,3.1541,0,0,0,.43067-1.8291V15.24414a3.53766,3.53766,0,0,0-.38965-1.94531,1.57565,1.57565,0,0,0-1.32618-.57715Z' />\r\n </svg>\r\n);\r\n\r\nexport default Icon_3D;\r\n","import React from 'react';\r\n/* eslint-disable max-len */\r\nconst LogoServiceIcon = () => (\r\n <svg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24.79929 21.03125'>\r\n <path d='M17.23715,21.03125h-9.71a2.38062,2.38062,0,0,1-2.377-2.37793V9.8457l-.02539.01465a2.37712,2.37712,0,0,1-3.24511-.87109L.31723,6.28418a2.38232,2.38232,0,0,1,.87011-3.248L5.78109.38184A2.78751,2.78751,0,0,1,7.1893,0H8.84066a.90041.90041,0,0,1,.80469.49805,3.042,3.042,0,0,0,2.73731,1.6914A3.04159,3.04159,0,0,0,15.119.49805.90042.90042,0,0,1,15.92367,0h1.64844a2.789,2.789,0,0,1,1.4707.41992l4.56739,2.6377a2.37591,2.37591,0,0,1,.86914,3.24707L22.91781,9.01074a2.379,2.379,0,0,1-3.248.86914l-.05567-.03222v8.80566A2.38061,2.38061,0,0,1,17.23715,21.03125ZM6.05063,7.3916A.90247.90247,0,0,1,6.951,8.292V18.65332a.57681.57681,0,0,0,.57617.57715h9.71a.57681.57681,0,0,0,.57617-.57715V8.292A.89977.89977,0,0,1,19.162,7.51172l1.40625.80859a.58.58,0,0,0,.791-.21L22.92074,5.4043a.57755.57755,0,0,0-.21-.78809L18.119,1.96387a1.01976,1.01976,0,0,0-.54687-.16309H16.4432a4.82821,4.82821,0,0,1-4.06054,2.18945A4.82993,4.82993,0,0,1,8.32113,1.80078H7.1893a.98558.98558,0,0,0-.502.13574L2.08773,4.59473a.57959.57959,0,0,0-.21093.79l1.56152,2.7041a.57557.57557,0,0,0,.35059.26953.5675.5675,0,0,0,.4375-.05762l1.376-.78906A.89714.89714,0,0,1,6.05063,7.3916Z' />\r\n <path d='M14.493,12.38965H10.27133a.70019.70019,0,0,1-.7002-.7002V7.46777a.70018.70018,0,0,1,.7002-.70019H14.493a.70017.70017,0,0,1,.70019.70019v4.22168A.70018.70018,0,0,1,14.493,12.38965Zm-3.52149-1.40039h2.82129V8.168H10.97152Z' />\r\n <path d='M14.493,15.65234H10.27133a.7002.7002,0,1,1,0-1.40039H14.493a.7002.7002,0,0,1,0,1.40039Z' />\r\n </svg>\r\n);\r\n\r\nexport default LogoServiceIcon;\r\n","import React from 'react';\r\n/* eslint-disable max-len */\r\nconst AASLogo = () => (\r\n <svg\r\n data-name='aas-find-alternative'\r\n xmlns='http://www.w3.org/2000/svg'\r\n width='81.92657'\r\n height='92.94922'\r\n viewBox='0 0 81.92657 92.94922'\r\n >\r\n <path d='M79.96387,34.47363,65.17993,22.06836l.4187-1.15039a5.49734,5.49734,0,0,0-3.28711-7.04883L41.01367,6.11719V5.5a5.50622,5.50622,0,0,0-5.5-5.5H5.5A5.50622,5.50622,0,0,0,0,5.5V87.44922a5.50622,5.50622,0,0,0,5.5,5.5H35.51367a5.48573,5.48573,0,0,0,4.17163-1.92554c.01294-.0144,40.95728-48.802,40.95728-48.802A5.50577,5.50577,0,0,0,79.96387,34.47363ZM61.28613,16.6875a2.50191,2.50191,0,0,1,1.49414,3.20508L41.01367,79.69629V9.30884ZM5.5,89.94922a2.50232,2.50232,0,0,1-2.5-2.5V5.5A2.50231,2.50231,0,0,1,5.5,3H35.51367a2.50231,2.50231,0,0,1,2.5,2.5V87.44922a2.50232,2.50232,0,0,1-2.5,2.5ZM78.34375,40.294,43.38049,81.96228,64.088,25.06848l13.94812,11.704a2.50015,2.50015,0,0,1,.30762,3.52149Z' />\r\n <path d='M20.50684,65.50293a7.5,7.5,0,1,0,7.5,7.5A7.5082,7.5082,0,0,0,20.50684,65.50293Zm0,12a4.5,4.5,0,1,1,4.5-4.5A4.50491,4.50491,0,0,1,20.50684,77.50293Z' />\r\n </svg>\r\n);\r\n\r\nexport default AASLogo;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst Apply = () => (\r\n <svg xmlns='http://www.w3.org/2000/svg' width='21.29395' height='14.20801' viewBox='0 0 21.29395 14.20801'>\r\n <g data-name='Ebene 2'>\r\n <g data-name='Header & Footer'>\r\n <path d='M21.03027.26367a.90061.90061,0,0,0-1.27343,0L7.9873,12.03418,1.53711,5.584A.90046.90046,0,0,0,.26367,6.85742l7.08692,7.08692a.90061.90061,0,0,0,1.27343,0L21.03027,1.53711A.9006.9006,0,0,0,21.03027.26367Z' />\r\n </g>\r\n </g>\r\n </svg>\r\n);\r\n\r\nexport default Apply;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst ArrowSmallIcon = () => (\r\n <svg xmlns='http://www.w3.org/2000/svg' width='9.79991' height='19.80091' viewBox='0 0 9.79991 19.80091'>\r\n <path d='M.89952,19.80091a.90016.90016,0,0,1-.67236-1.498L7.69591,9.90052.22716,1.49818A.9.9,0,1,1,1.57286.30286l8,9a.90014.90014,0,0,1,0,1.19532l-8,9A.89946.89946,0,0,1,.89952,19.80091Z'\r\n />\r\n </svg>\r\n);\r\n\r\nexport default ArrowSmallIcon;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst ArrowDown = () => (\r\n <svg role='img' xmlns=\"http://www.w3.org/2000/svg\" width=\"9.79991\" height=\"19.80091\" viewBox=\"0 0 9.79991 19.80091\">\r\n <path d=\"M.89952,19.80091a.90016.90016,0,0,1-.67236-1.498L7.69591,9.90052.22716,1.49818A.9.9,0,1,1,1.57286.30286l8,9a.90014.90014,0,0,1,0,1.19532l-8,9A.89946.89946,0,0,1,.89952,19.80091Z\" />\r\n </svg>\r\n);\r\n\r\nexport default ArrowDown;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst ArrowDownDesktopShutters = () => (\r\n <svg role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" width=\"72.99988\" height=\"30.99988\" viewBox=\"0 0 72.99988 30.99988\">\r\n <path d=\"M71.499,30.99988a1.49342,1.49342,0,0,1-.93653-.3291L36.5,3.42078,2.43652,30.66589a1.50012,1.50012,0,1,1-1.873-2.34375l35-27.99414a1.50064,1.50064,0,0,1,1.874.001l35,28a1.5,1.5,0,0,1-.93847,2.6709Z\" />\r\n </svg>\r\n);\r\n\r\nexport default ArrowDownDesktopShutters;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst ArrowDownMobileShutters = () => (\r\n <svg role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" width=\"39.80042\" height=\"16.80041\" viewBox=\"0 0 39.80042 16.80041\">\r\n <path d=\"M19.90021,0a.893.893,0,0,1,.55762.19434l19,15a.8997.8997,0,0,1-1.11524,1.41211L19.90021,2.04688,1.45783,16.60645A.8997.8997,0,1,1,.34259,15.19434l19-15A.893.893,0,0,1,19.90021,0Z\" />\r\n </svg>\r\n);\r\n\r\nexport default ArrowDownMobileShutters;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nfunction BasketIcon() {\r\n return (\r\n <svg role='img' xmlns=\"http://www.w3.org/2000/svg\" width=\"20.99776\" height=\"22.3999\" viewBox=\"0 0 20.99776 22.3999\">\r\n <path d=\"M20.36426,9.856a.89662.89662,0,0,0-1.126.59228l-1.09766,3.53369H7.55371L5.209,2.51953a.90014.90014,0,0,0-.88183-.71973H.90039a.89991.89991,0,1,0,0,1.79981H3.59277L5.9375,15.062a.90014.90014,0,0,0,.88184.71973H18.80371a.89963.89963,0,0,0,.85938-.63281L20.957,10.98242A.9.9,0,0,0,20.36426,9.856Z\" /><path d=\"M16.37891,17.31152A2.54419,2.54419,0,1,0,18.92383,19.856,2.54744,2.54744,0,0,0,16.37891,17.31152Zm0,3.688A1.1438,1.1438,0,1,1,17.52344,19.856,1.14446,1.14446,0,0,1,16.37891,20.99951Z\" /><path d=\"M9.51074,17.31152a2.54419,2.54419,0,1,0,2.544,2.54444A2.54743,2.54743,0,0,0,9.51074,17.31152Zm0,3.688A1.1438,1.1438,0,1,1,10.6543,19.856,1.14445,1.14445,0,0,1,9.51074,20.99951Z\" /><path d=\"M12.81129,9.23145a.68288.68288,0,0,0,.10926.06384.67469.67469,0,0,0,.09167.05359.65813.65813,0,0,0,.51062-.00006.68688.68688,0,0,0,.09058-.053.67411.67411,0,0,0,.11-.06433l3.11133-2.667a.70015.70015,0,0,0-.91211-1.0625L13.96754,7.178V.7002a.7002.7002,0,1,0-1.40039,0V7.1778L10.61305,5.502a.70015.70015,0,0,0-.91211,1.0625Z\" />\r\n </svg>\r\n );\r\n}\r\n\r\nexport default BasketIcon;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nfunction BasketSuccessIcon() {\r\n return (\r\n <svg role='img' xmlns=\"http://www.w3.org/2000/svg\" width=\"20.99776\" height=\"20.99677\" viewBox=\"0 0 20.99776 20.99677\">\r\n <path d=\"M20.36426,8.45283a.89391.89391,0,0,0-1.126.59228L18.14062,12.5788H7.55371L5.209,1.1164A.90014.90014,0,0,0,4.32715.39667H.90039a.89991.89991,0,1,0,0,1.79981H3.59277L5.9375,13.65888a.90014.90014,0,0,0,.88184.71973H18.80371a.89962.89962,0,0,0,.85938-.63282L20.957,9.57929A.9.9,0,0,0,20.36426,8.45283Z\" /><path d=\"M16.37891,15.90839a2.54419,2.54419,0,1,0,2.54492,2.54444A2.54744,2.54744,0,0,0,16.37891,15.90839Zm0,3.688a1.1438,1.1438,0,1,1,1.14453-1.14355A1.14446,1.14446,0,0,1,16.37891,19.59638Z\" /><path d=\"M9.51074,15.90839a2.54419,2.54419,0,1,0,2.544,2.54444A2.54743,2.54743,0,0,0,9.51074,15.90839Zm0,3.688a1.1438,1.1438,0,1,1,1.14356-1.14355A1.14445,1.14445,0,0,1,9.51074,19.59638Z\" /><path d=\"M13.30859,7.16132a.80063.80063,0,0,0,.56543.23389h.02442a.80021.80021,0,0,0,.57422-.26953l5.13379-5.79492A.79972.79972,0,0,0,18.40918.27021L13.83887,5.4289,11.67871,3.26874a.8.8,0,1,0-1.13086,1.13184Z\" />\r\n </svg>\r\n );\r\n}\r\n\r\nexport default BasketSuccessIcon;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst Cross = () => (\r\n <svg\r\n role='img'\r\n xmlns='http://www.w3.org/2000/svg'\r\n width='14.20654'\r\n height='14.20654'\r\n viewBox='0 0 14.20654 14.20654'\r\n >\r\n <g data-name='Ebene 2'>\r\n <g data-name='Header & Footer'>\r\n <path data-name='Entfernen Step 3'\r\n // eslint-disable-next-line max-len\r\n d='M8.37573,7.10327l5.56714-5.56714A.89977.89977,0,0,0,12.67041.26367L7.10327,5.83081,1.53613.26367A.89977.89977,0,0,0,.26367,1.53613L5.83081,7.10327.26367,12.67041a.89977.89977,0,1,0,1.27246,1.27246L7.10327,8.37573l5.56714,5.56714a.89977.89977,0,0,0,1.27246-1.27246Z'\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n);\r\n\r\nexport default Cross;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst CrossRing = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"55\" height=\"55\" viewBox=\"0 0 55 55\">\r\n <path className=\"pdp-ring\" d=\"M27.5,1A26.5,26.5,0,1,1,1,27.5,26.53,26.53,0,0,1,27.5,1m0-1A27.5,27.5,0,1,0,55,27.5,27.50005,27.50005,0,0,0,27.5,0Z\" />\r\n <path className=\"pdp-r_cross\" d=\"M28.77344,27.5004l8.36328-8.36328a.90046.90046,0,0,0-1.27344-1.27344L27.5,26.227l-8.36328-8.36328a.90046.90046,0,0,0-1.27344,1.27344l8.36328,8.36328-8.36328,8.36328a.90046.90046,0,0,0,1.27344,1.27344L27.5,28.77383l8.36328,8.36329a.90046.90046,0,0,0,1.27344-1.27344Z\" />\r\n </svg>\r\n);\r\n\r\nexport default CrossRing;\r\n","import React from 'react';\r\n/* eslint-disable max-len */\r\nconst DesignWithAdviceIcon = () => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"47.397\"\r\n height=\"40.026\"\r\n viewBox=\"0 0 47.397 40.026\"\r\n >\r\n <path\r\n d=\"M12.968 38.826a4.094 4.094 0 01-4.089-4.092v-18.2l-.89.511a4.067 4.067 0 01-2.035.547 4.117 4.117 0 01-1.065-.141 4.066 4.066 0 01-2.485-1.906l-3.057-5.293a4.1 4.1 0 011.5-5.59L9.836-.53h.008a4.892 4.892 0 012.466-.666h3.188a1.2 1.2 0 011.113.662 6.52 6.52 0 005.858 3.623 6.512 6.512 0 005.856-3.623 1.2 1.2 0 011.113-.662h3.187a4.886 4.886 0 012.562.724l8.971 5.182a4.1 4.1 0 011.5 5.586l-3.057 5.293a4.059 4.059 0 01-2.483 1.906 4.066 4.066 0 01-1.065.143 4.065 4.065 0 01-2.04-.551 1.2 1.2 0 01-.44-1.639 1.2 1.2 0 011.64-.439 1.674 1.674 0 001.282.168 1.679 1.679 0 001.027-.787l3.055-5.293a1.692 1.692 0 00-.617-2.31l-8.982-5.188-.035-.021a2.492 2.492 0 00-1.315-.375h-2.519a8.968 8.968 0 01-2.869 2.909 8.915 8.915 0 01-4.766 1.376 8.919 8.919 0 01-4.766-1.376 8.994 8.994 0 01-2.869-2.909h-2.523a2.5 2.5 0 00-1.234.325l-.04.024-8.989 5.192a1.7 1.7 0 00-.62 2.311l3.057 5.293a1.674 1.674 0 001.027.789 1.682 1.682 0 001.282-.168l2.66-1.526a1.18 1.18 0 01.4-.155l.03-.005h.025a1.2 1.2 0 011.212.591 1.2 1.2 0 01.158.658v20.21a1.693 1.693 0 001.689 1.693h17.474a1.2 1.2 0 011.2 1.2 1.2 1.2 0 01-1.2 1.2z\"\r\n transform=\"translate(1.199 1.2)\"\r\n ></path>\r\n <path d=\"M40.398 37.965a8.442 8.442 0 01-3.852-1 21.767 21.767 0 01-7.393-6.644 21.788 21.788 0 01-3.876-9.152 7.872 7.872 0 01.873-5.194 10.5 10.5 0 012.777-2.831 2.434 2.434 0 011.459-.484 2.5 2.5 0 012.228 1.406l.006.012c.331.678 1.089 2.288 1.642 3.464l.462.98a3.506 3.506 0 01.586 2.194c-.163.779-.789 1.145-1.515 1.568l-.237.138c-.2.114-.5.288-1.039.608l-.162.1a22.512 22.512 0 002.015 3.468 22.2 22.2 0 002.625 3.037l.139-.119c.568-.494.763-.659 1.115-.961l.014-.012a2.756 2.756 0 011.772-.929c.761 0 1.258.481 2.082 1.278.871.84 2.962 2.861 3.532 3.45a2.462 2.462 0 01.713 1.914 2.548 2.548 0 01-1 1.835 9.991 9.991 0 01-3.622 1.737 6.469 6.469 0 01-1.344.137zM30.387 14.859a.246.246 0 00-.149.051 8.653 8.653 0 00-2.2 2.2 5.685 5.685 0 00-.583 3.739 19.8 19.8 0 003.491 8.2 19.776 19.776 0 006.616 5.967 6.243 6.243 0 002.838.756 4.268 4.268 0 00.885-.09 7.764 7.764 0 002.745-1.333.358.358 0 00.142-.247.274.274 0 00-.1-.222c-.565-.583-2.809-2.75-3.483-3.4-.2-.2-.41-.4-.566-.536l-.334.28-.012.01c-.348.3-.54.461-1.1.948a2.5 2.5 0 01-1.6.794 2.136 2.136 0 01-1.455-.707 24.453 24.453 0 01-2.936-3.387 24.765 24.765 0 01-2.244-3.873 2.031 2.031 0 01-.138-1.794 2.766 2.766 0 011.2-1.081c.551-.324.852-.5 1.051-.615l.228-.133c.116-.068.255-.149.371-.22-.084-.2-.212-.47-.322-.7l-.463-.984c-.548-1.165-1.3-2.76-1.624-3.427a.3.3 0 00-.258-.196z\"></path>\r\n </svg>\r\n);\r\n\r\nexport default DesignWithAdviceIcon;\r\n\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst Diameter = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24.80078\" height=\"24.80078\" viewBox=\"0 0 24.80078 24.80078\">\r\n <path d=\"M12.40039,0A12.40039,12.40039,0,1,0,24.80078,12.40039,12.41532,12.41532,0,0,0,12.40039,0Zm0,23A10.59961,10.59961,0,1,1,23,12.40039,10.61151,10.61151,0,0,1,12.40039,23Z\" /><path d=\"M17.6123,6.53027,13.835,6.30859a.72153.72153,0,0,0-.74023.65821.70157.70157,0,0,0,.6582.74023l2.2207.12988-8.137,8.137-.13062-2.221a.74316.74316,0,0,0-.74023-.6582.70156.70156,0,0,0-.6582.74023l.22265,3.77734a.70159.70159,0,0,0,.65821.65821l3.77734.22265.042.001a.7003.7003,0,0,0,.04-1.39941l-2.221-.13062L16.96411,8.8269l.13062,2.22193a.70107.70107,0,0,0,.69824.65918l.042-.001a.70157.70157,0,0,0,.6582-.74023l-.22265-3.77832A.70159.70159,0,0,0,17.6123,6.53027Z\" />\r\n </svg>\r\n);\r\n\r\nexport default Diameter;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst ExpanderIconOpenSmall = () => (\r\n <svg xmlns='http://www.w3.org/2000/svg' width='12.80003' height='6.3' viewBox='0 0 12.80003 6.3'>\r\n <path d='M6.4,6.3a.89755.89755,0,0,1-.56983-.2041l-5.5-4.5A.89973.89973,0,1,1,1.46984.20332L6.4,4.23652,11.33019.20332A.89973.89973,0,1,1,12.46984,1.5959l-5.5,4.5A.89754.89754,0,0,1,6.4,6.3Z' />\r\n </svg>\r\n);\r\n\r\nexport default ExpanderIconOpenSmall;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst FunctionalLayerBase = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"> \r\n <g id=\"Basis_Icon\" data-name=\"Basis Icon\" transform=\"translate(-409.605 -286.842)\">\r\n <path fill=\"#1d1d1b\"\r\n id=\"Pfad_11\" data-name=\"Pfad 11\" d=\"M422.6,312.842a13,13,0,1,1,13-13A13.014,13.014,0,0,1,422.6,312.842Zm0-24.346a11.346,11.346,0,1,0,11.341,11.347A11.357,11.357,0,0,0,422.6,288.5Z\" />\r\n <path fill=\"#1d1d1b\"\r\n id=\"Pfad_12\" data-name=\"Pfad 12\" d=\"M421.967,307.892h-.028a8.719,8.719,0,1,1,.027-17.438h.027a8.719,8.719,0,1,1-.026,17.438Zm0-15.67a6.973,6.973,0,0,0-6.982,6.929,6.952,6.952,0,0,0,6.957,6.972h.026a6.974,6.974,0,0,0,6.98-6.929,6.966,6.966,0,0,0-6.959-6.972Z\" transform=\"translate(0.664 0.666)\" />\r\n <path fill=\"#c7d300\"\r\n id=\"Pfad_13\" data-name=\"Pfad 13\" d=\"M421.286,303h-.015a4.454,4.454,0,0,1-3.123-7.614,4.537,4.537,0,0,1,3.154-1.295,4.454,4.454,0,0,1-.015,8.909Zm0-7.249a2.8,2.8,0,0,0-.011,5.591h.012a2.8,2.8,0,0,0,.011-5.591Z\" transform=\"translate(1.344 1.295)\" />\r\n </g>\r\n </svg>\r\n);\r\n\r\nexport default FunctionalLayerBase;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst FunctionalLayerWarmth = () => (\r\n <svg id=\"Wärme_Icon\" data-name=\"Wärme Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\">\r\n <path fill=\"#1d1d1b\" \r\n id=\"Pfad_14\" data-name=\"Pfad 14\" d=\"M447.907,324.278a13,13,0,1,1,13-13A13.016,13.016,0,0,1,447.907,324.278Zm0-24.347a11.346,11.346,0,1,0,11.342,11.346A11.356,11.356,0,0,0,447.907,299.931Z\" transform=\"translate(-434.907 -298.278)\" />\r\n <path fill=\"#f49b00\"\r\n id=\"Pfad_15\" data-name=\"Pfad 15\" d=\"M447.259,319.31h-.026a8.71,8.71,0,1,1,.025-17.42h.032a8.71,8.71,0,1,1-.031,17.42Zm0-15.653a6.943,6.943,0,1,0-.022,13.887h.024a6.969,6.969,0,0,0,6.976-6.92,6.959,6.959,0,0,0-6.951-6.967Z\" transform=\"translate(-434.233 -297.603)\" />\r\n <path id=\"Pfad_16\" data-name=\"Pfad 16\" d=\"M446.6,314.455h-.015a4.464,4.464,0,0,1,.014-8.929h.018a4.464,4.464,0,0,1-.017,8.929Zm0-7.266a2.8,2.8,0,0,0-.011,5.6h0a2.817,2.817,0,0,0,1.986-.813,2.8,2.8,0,0,0-1.964-4.79Z\" transform=\"translate(-433.583 -296.991)\" />\r\n </svg>\r\n);\r\n\r\nexport default FunctionalLayerWarmth;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst FunctionalLayerWeather = () => (\r\n <svg id=\"Wetter_Icon\" data-name=\"Wetter Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\">\r\n <path fill=\"#1d1d1b\"\r\n id=\"Pfad_17\" data-name=\"Pfad 17\" d=\"M401.948,328.427a13,13,0,1,1,13-13A13.014,13.014,0,0,1,401.948,328.427Zm0-24.347a11.347,11.347,0,1,0,11.341,11.348A11.357,11.357,0,0,0,401.948,304.08Z\" transform=\"translate(-388.949 -302.427)\" />\r\n <path fill=\"#00569d\"\r\n id=\"Pfad_18\" data-name=\"Pfad 18\" d=\"M401.319,323.5h-.028a8.729,8.729,0,1,1,.027-17.458h.029a8.757,8.757,0,0,1,8.739,8.756,8.746,8.746,0,0,1-8.766,8.7Zm0-15.687a6.958,6.958,0,1,0-.024,13.916h0a6.958,6.958,0,1,0,.044-13.916Z\" transform=\"translate(-388.293 -301.77)\" />\r\n <path id=\"Pfad_19\" data-name=\"Pfad 19\" d=\"M400.621,318.565h-.015a4.439,4.439,0,0,1-4.43-4.445,4.456,4.456,0,0,1,4.446-4.445h.015a4.445,4.445,0,0,1-.016,8.89Zm0-7.235a2.794,2.794,0,0,0-1.98,4.762,2.762,2.762,0,0,0,1.965.819h0a2.79,2.79,0,0,0,.02-5.581Z\" transform=\"translate(-387.607 -301.12)\" />\r\n </svg>\r\n);\r\n\r\nexport default FunctionalLayerWeather;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nfunction GlovesPropertiesAndStandardsIcon() {\r\n return (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 19.34448 22.59503\">\r\n <g data-name=\"Ebene 2\">\r\n <g>\r\n <g data-name=\"Handschuh Eigenschaften Step 2\">\r\n <path d=\"M13.78137,4.416a2.115,2.115,0,0,0-.73145.12988V3.73828A2.13108,2.13108,0,0,0,10.15246,1.749a2.1324,2.1324,0,0,0-4.19531,0,2.133,2.133,0,0,0-2.89844,1.915L3.0509,8.16211A2.2314,2.2314,0,0,0,.02648,10.58887c.02539.14648.61817,3.59375.98731,4.68554a6.279,6.279,0,0,0,1.71093,2.69043l.22071.21875a8.167,8.167,0,0,1,1.54492,1.84082.78843.78843,0,0,0,.94434.2959.69879.69879,0,0,0,.29589-.94433,9.21845,9.21845,0,0,0-1.79882-2.18457l-.2168-.2168A4.84584,4.84584,0,0,1,2.34,14.82715c-.27734-.82129-.76758-3.50879-.93164-4.46289a.83331.83331,0,0,1,1.64746-.252c.0992.46527.7168,3.36133.7168,3.36133a.52031.52031,0,0,0,.57129.38867.49933.49933,0,0,0,.41406-.55273c-.00293-.02441-.29688-2.4834-.30957-3.36914L4.4475,9.93652,4.4591,3.665a.732.732,0,0,1,1.4602.0603c.00342,1.12744.25367,6.43927.26539,6.66626a.49987.49987,0,0,0,.999-.00976c.001-.05133.13965-8.25.13965-8.25a.73145.73145,0,1,1,1.46289,0s.19238,7.95312.20019,8.17285a.50036.50036,0,0,0,1,0c.00782-.22461.2002-6.16309.2002-6.56641a.73145.73145,0,0,1,1.46289,0s.1416,6.54376.14746,6.65625a.50288.50288,0,0,0,.48828.47461.51785.51785,0,0,0,.50879-.45215c.00977-.1084.25349-3.49648.25586-3.86816a.756.756,0,0,1,.73145-.73242.73068.73068,0,0,1,.73242.72265L14.4591,10.3584a.70259.70259,0,0,0,.69043.71.72134.72134,0,0,0,.71-.69043l.05469-3.8291A2.13555,2.13555,0,0,0,13.78137,4.416Z\" /><path d=\"M14.34448,13.795a3.8,3.8,0,1,1-3.80005,3.8,3.80432,3.80432,0,0,1,3.80005-3.8m0-1.2a5,5,0,1,0,5,5,5,5,0,0,0-5-5Z\" /><path d=\"M14.36437,16.22754a.60393.60393,0,0,1-.60449-.59961.59559.59559,0,0,1,.59473-.59961h.00976a.59961.59961,0,1,1,0,1.19922Z\" /><path d=\"M14.34484,20.16113a.59974.59974,0,0,1-.59961-.59961v-2a.59961.59961,0,0,1,1.19922,0v2A.59973.59973,0,0,1,14.34484,20.16113Z\" />\r\n </g>\r\n </g>\r\n </g>\r\n </svg>\r\n );\r\n}\r\n\r\nexport default GlovesPropertiesAndStandardsIcon;","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst IconArrowCircleGreyLeft = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 45 45\">\r\n <circle cx=\"22.5\" cy=\"22.5\" r=\"22.5\" />\r\n <path d=\"M24.99984,30.90058a.89856.89856,0,0,1-.65771-.28614l-7-7.5a.90037.90037,0,0,1,0-1.22851l7-7.5a.89994.89994,0,1,1,1.31543,1.22851L19.2308,22.50019l6.42676,6.88574a.90014.90014,0,0,1-.65772,1.51465Z\" />\r\n </svg>\r\n);\r\n\r\nexport default IconArrowCircleGreyLeft;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst IconArrowCircleGreyRight = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 45 45\">\r\n <circle cx=\"22.5\" cy=\"22.5\" r=\"22.5\"/>\r\n <path d=\"M19.99976,30.90058a.90014.90014,0,0,1-.65771-1.51465l6.42676-6.88574-6.42676-6.88575a.89994.89994,0,1,1,1.31543-1.22851l7,7.5a.90039.90039,0,0,1,0,1.22851l-7,7.5A.89779.89779,0,0,1,19.99976,30.90058Z\"/>\r\n </svg>\r\n);\r\n\r\nexport default IconArrowCircleGreyRight;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst IconArrowExtraSmallRight = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"6.30008\" height=\"11.80146\" viewBox=\"0 0 6.30008 11.80146\">\r\n <path d=\"M.89956,11.80146a.90065.90065,0,0,1-.66845-1.50292l3.958-4.39747L.23111,1.50361A.9003.9003,0,0,1,1.569.29854l4.5,5a.9011.9011,0,0,1,0,1.20507l-4.5,5A.89825.89825,0,0,1,.89956,11.80146Z\" />\r\n </svg>\r\n);\r\n\r\nexport default IconArrowExtraSmallRight;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst IconArrowSmallLeft = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9.79991 19.80091\">\r\n <path d=\"M8.90039,19.80091a.90016.90016,0,0,0,.67236-1.498L2.104,9.90052,9.57275,1.49818A.9.9,0,1,0,8.22705.30286l-8,9a.90014.90014,0,0,0,0,1.19532l8,9A.89946.89946,0,0,0,8.90039,19.80091Z\" />\r\n </svg>\r\n);\r\n\r\nexport default IconArrowSmallLeft;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst IconArrowSmallRight = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9.79991 19.80091\">\r\n <path d=\"M.89952,19.80091a.90016.90016,0,0,1-.67236-1.498L7.69591,9.90052.22716,1.49818A.9.9,0,1,1,1.57286.30286l8,9a.90014.90014,0,0,1,0,1.19532l-8,9A.89946.89946,0,0,1,.89952,19.80091Z\" />\r\n </svg>\r\n);\r\n\r\nexport default IconArrowSmallRight;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst IconDownload = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 19.30273 18.81898\"><path d=\"M9.06445,11.584a.9002.9002,0,0,0,1.17188,0l3.5-3A.90034.90034,0,1,0,12.56445,7.2168L10.55078,8.943V.90039a.90039.90039,0,0,0-1.80078,0V8.943L6.73633,7.2168A.90034.90034,0,0,0,5.56445,8.584Z\" /><path d=\"M18.40234,11.96875a.90065.90065,0,0,0-.90039.90039v3.22168a.93113.93113,0,0,1-.93554.92285H2.72949a.92783.92783,0,0,1-.92871-.917V12.86914a.90039.90039,0,0,0-1.80078,0v3.2334a2.73312,2.73312,0,0,0,2.72461,2.71191h13.8291a2.51266,2.51266,0,0,0,1.93555-.78711,2.71267,2.71267,0,0,0,.81347-1.93066V12.86914A.90065.90065,0,0,0,18.40234,11.96875Z\" /></svg>\r\n);\r\n\r\nexport default IconDownload;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst IconNovelty = () => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16.6\"\r\n height=\"15.947\"\r\n viewBox=\"0 0 16.6 15.947\"\r\n >\r\n <path d=\"M8.395 15.947a.8.8 0 01-.711-.433l-2.207-4.282-4.779-.609a.8.8 0 01-.466-1.357l3.39-3.422-.897-4.734A.8.8 0 013.87.248l4.302 2.168L12.397.1a.8.8 0 011.176.822l-.733 4.763 3.508 3.3a.8.8 0 01-.419 1.374l-4.755.774-2.056 4.357a.8.8 0 01-.71.458zM2.509 9.24l3.588.457a.799.799 0 01.61.428l1.657 3.215 1.543-3.271a.801.801 0 01.594-.449l3.57-.58-2.633-2.48a.8.8 0 01-.243-.703l.55-3.576L8.572 4.02a.807.807 0 01-.745.013l-3.23-1.628.674 3.555a.8.8 0 01-.218.712z\"></path>\r\n </svg>\r\n);\r\n\r\nexport default IconNovelty;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport defaultStyles from '../../styles/defaults.scss';\r\n\r\nconst Icon_Pause_3D = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 35 35\">\r\n <g id=\"Ebene_2\" data-name=\"Ebene 2\">\r\n <g><circle cx=\"17.5\" cy=\"17.5\" r=\"17.5\" />\r\n <g id=\"pause\">\r\n <path fill={defaultStyles.dpWhite}\r\n d=\"M14.00013,24.76385a.90065.90065,0,0,1-.90039-.90039V11.13592a.90039.90039,0,0,1,1.80078,0V23.86346A.90065.90065,0,0,1,14.00013,24.76385Z\" />\r\n <path fill={defaultStyles.dpWhite}\r\n d=\"M21.00013,24.76385a.90065.90065,0,0,1-.90039-.90039V11.13592a.90039.90039,0,1,1,1.80078,0V23.86346A.90065.90065,0,0,1,21.00013,24.76385Z\" />\r\n </g>\r\n </g>\r\n </g>\r\n </svg>\r\n);\r\n\r\nexport default Icon_Pause_3D;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport defaultStyles from '../../styles/defaults.scss';\r\n\r\nconst Icon_Play_3D = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 35 35\">\r\n <circle cx=\"17.5\" cy=\"17.5\" r=\"17.5\" />\r\n <path fill={defaultStyles.dpWhite}\r\n d=\"M14.183,24.97109a1.90282,1.90282,0,0,1-1.90137-1.90137V11.93007a1.90159,1.90159,0,0,1,2.918-1.60644L23.9945,15.893a1.90022,1.90022,0,0,1-.001,3.21289l-8.79395,5.57031A1.90642,1.90642,0,0,1,14.183,24.97109Zm.001-13.14355a.11292.11292,0,0,0-.04981.01367.09275.09275,0,0,0-.05175.08886V23.06972a.09276.09276,0,0,0,.05175.08887.08775.08775,0,0,0,.10254-.00391l8.79492-5.57031v-.16992l-8.79492-5.56934A.08979.08979,0,0,0,14.184,11.82754Z\" />\r\n </svg>\r\n);\r\n\r\nexport default Icon_Play_3D;\r\n","import React from 'react';\r\n\r\nconst InfoIcon = () => (\r\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13.0005 13.0005'>\r\n <path\r\n d='M6.5,13A6.5,6.5,0,1,1,13,6.5,\r\n 6.5076,6.5076,0,0,1,6.5,13Zm0-12A5.5,\r\n 5.5,0,1,0,12,6.5,5.5061,5.5061,0,0,0,6.5,1Z'\r\n transform='translate(0.0002 0.0002)'\r\n />\r\n <path\r\n d='M6.5073,4.105A.6293.6293,0,0,1,6.06,3.9312a.6457.6457,\r\n 0,0,1-.1856-.4932.6389.6389,0,0,1,.19-.4756.6146.6146,\r\n 0,0,1,.4424-.1865.6124.6124,0,0,1,.6177.6621.65.65,\r\n 0,0,1-.1831.49A.6025.6025,0,0,1,6.5073,4.105ZM7.125,\r\n 5.5093V9.4365a.9283.9283,0,0,1-.1782.6172.57.57,\r\n 0,0,1-.4531.209.5478.5478,0,0,1-.4473-.2139.9581.9581,\r\n 0,0,1-.1719-.6123V5.5483a.922.922,0,0,1,.1719-.6064.5561.5561,\r\n 0,0,1,.4473-.2041.5746.5746,0,0,1,.4531.2041A.8347.8347,\r\n 0,0,1,7.125,5.5093Z'\r\n transform='translate(0.0002 0.0002)'\r\n />\r\n </svg>\r\n);\r\n\r\nexport default InfoIcon;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst Length = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"26.59961\" height=\"17.86536\" viewBox=\"0 0 26.59961 17.86536\">\r\n <path d=\"M25.7998,5.93958H24.68652a2.79447,2.79447,0,0,0-2.792,2.792V9.1261H4.07812a.8037.8037,0,0,0-.42675.12305L.37305,11.31458a.80038.80038,0,0,0,0,1.35351l3.27832,2.06445a.79752.79752,0,0,0,.42675.123H21.89453v.21777a2.79448,2.79448,0,0,0,2.792,2.792H25.7998a.80021.80021,0,0,0,.79981-.79981V6.73938A.8002.8002,0,0,0,25.7998,5.93958ZM4.30859,13.256,2.30078,11.99133l2.00879-1.26562h17.585V13.256ZM25,16.26575h-.31348a1.19407,1.19407,0,0,1-1.19238-1.19239V8.73157a1.19407,1.19407,0,0,1,1.19238-1.19239H25Z\" />\r\n <path d=\"M.10181,3.17847l-.0022.01111.0022.0111a.6989.6989,0,0,0,.04992.24683.67431.67431,0,0,0,.058.09607.66192.66192,0,0,0,.06665.11084L2.48926,6.14368A.7.7,0,1,0,3.53613,5.214L2.35889,3.88977h17.124L18.30566,5.214a.70005.70005,0,1,0,1.04688.92969l2.21289-2.48926a.70034.70034,0,0,0,0-.92969L19.35254.23547a.70005.70005,0,0,0-1.04688.92969l1.17725,1.32422H2.35889L3.53613,1.16516A.7.7,0,0,0,2.48926.23547L.27637,2.72473a.65987.65987,0,0,0-.06665.1106.6823.6823,0,0,0-.058.09619A.69954.69954,0,0,0,.10181,3.17847Z\" />\r\n </svg>\r\n);\r\n\r\nexport default Length;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nfunction LogoService() {\r\n return (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 24.79929 21.03125\">\r\n <g data-name=\"Ebene 2\">\r\n <g>\r\n <g data-name=\"Logoservice Step 2\">\r\n <path d=\"M17.23715,21.03125h-9.71a2.38062,2.38062,0,0,1-2.377-2.37793V9.8457l-.02539.01465a2.37712,2.37712,0,0,1-3.24511-.87109L.31723,6.28418a2.38232,2.38232,0,0,1,.87011-3.248L5.78109.38184A2.78751,2.78751,0,0,1,7.1893,0H8.84066a.90041.90041,0,0,1,.80469.49805,3.042,3.042,0,0,0,2.73731,1.6914A3.04159,3.04159,0,0,0,15.119.49805.90042.90042,0,0,1,15.92367,0h1.64844a2.789,2.789,0,0,1,1.4707.41992l4.56739,2.6377a2.37591,2.37591,0,0,1,.86914,3.24707L22.91781,9.01074a2.379,2.379,0,0,1-3.248.86914l-.05567-.03222v8.80566A2.38061,2.38061,0,0,1,17.23715,21.03125ZM6.05063,7.3916A.90247.90247,0,0,1,6.951,8.292V18.65332a.57681.57681,0,0,0,.57617.57715h9.71a.57681.57681,0,0,0,.57617-.57715V8.292A.89977.89977,0,0,1,19.162,7.51172l1.40625.80859a.58.58,0,0,0,.791-.21L22.92074,5.4043a.57755.57755,0,0,0-.21-.78809L18.119,1.96387a1.01976,1.01976,0,0,0-.54687-.16309H16.4432a4.82821,4.82821,0,0,1-4.06054,2.18945A4.82993,4.82993,0,0,1,8.32113,1.80078H7.1893a.98558.98558,0,0,0-.502.13574L2.08773,4.59473a.57959.57959,0,0,0-.21093.79l1.56152,2.7041a.57557.57557,0,0,0,.35059.26953.5675.5675,0,0,0,.4375-.05762l1.376-.78906A.89714.89714,0,0,1,6.05063,7.3916Z\" /><path d=\"M14.493,12.38965H10.27133a.70019.70019,0,0,1-.7002-.7002V7.46777a.70018.70018,0,0,1,.7002-.70019H14.493a.70017.70017,0,0,1,.70019.70019v4.22168A.70018.70018,0,0,1,14.493,12.38965Zm-3.52149-1.40039h2.82129V8.168H10.97152Z\" /><path d=\"M14.493,15.65234H10.27133a.7002.7002,0,1,1,0-1.40039H14.493a.7002.7002,0,0,1,0,1.40039Z\" />\r\n </g>\r\n </g>\r\n </g>\r\n </svg>\r\n );\r\n}\r\n\r\nexport default LogoService;","import React from 'react';\r\n\r\nconst MinusIcon = () => (\r\n <svg\r\n data-testid='minus-icon'\r\n xmlns='http://www.w3.org/2000/svg'\r\n width='15.7998'\r\n height='1.80078'\r\n viewBox='0 0 15.7998 1.80078'\r\n >\r\n <path d='M14.8999,1.80078h-14A.90039.90039,0,0,1,.8999,0h14a.90039.90039,0,0,1,0,1.80078Z' />\r\n </svg>\r\n);\r\n\r\nexport default MinusIcon;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst mixMatch = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"23.35393\" height=\"28.59961\" viewBox=\"0 0 23.35393 28.59961\">\r\n <path d=\"M21.56149,28.59961H18.0156a1.7928,1.7928,0,0,1-1.78125-1.58887l-.80664-5.1123-.81153,5.14648a1.78312,1.78312,0,0,1-1.77637,1.55469h-3.54a1.79051,1.79051,0,0,1-1.7793-2.00977l1.09668-8.91308a.79993.79993,0,0,1,1.58789.19531L9.10837,26.78418A.19308.19308,0,0,0,9.29978,27h3.54a.1932.1932,0,0,0,.19141-.1709l1.60547-10.18945a.79988.79988,0,0,1,1.58008,0l1.60254,10.15527A.20616.20616,0,0,0,18.0156,27h3.54589a.18823.18823,0,0,0,.14356-.06445.18394.18394,0,0,0,.04687-.14942L19.83981,10.47949a.19138.19138,0,0,0-.19043-.16992h-2.8623a.79981.79981,0,0,1,0-1.59961h2.8623a1.79288,1.79288,0,0,1,1.78028,1.584l1.91211,16.30566a1.79071,1.79071,0,0,1-1.78028,2Z\" /><path d=\"M12.0195,14.77832H5.33005a1.79547,1.79547,0,0,1-1.793-1.793V7.23242A1.78717,1.78717,0,0,1,1.33493,6.46L.23923,4.56348A1.79479,1.79479,0,0,1,.8945,2.11621L4.06052.28613A2.09815,2.09815,0,0,1,5.11813,0h.7295A1.48817,1.48817,0,0,1,7.08688.65234,1.91073,1.91073,0,0,0,8.67575,1.501,1.91375,1.91375,0,0,0,10.2656.65234,1.48817,1.48817,0,0,1,11.50485,0h.72754a2.09646,2.09646,0,0,1,1.10352.31445l3.14551,1.81739a1.78741,1.78741,0,0,1,.65429,2.44433L16.04392,6.46875a1.7939,1.7939,0,0,1-2.23145.76074c.00293.3877.00293.84473.00293,1.38379v4.3711A1.79692,1.79692,0,0,1,12.0195,14.77832ZM4.33688,5.06641a.79878.79878,0,0,1,.79981.7998v7.11914a.1938.1938,0,0,0,.19336.19336H12.0195a.19526.19526,0,0,0,.19629-.19433c0-2.10547,0-6.84376-.001-7.10157a.75656.75656,0,0,1,.02735-.22265.79841.79841,0,0,1,.77246-.59375c.32715,0,.52051,0,.63476.24218l.749.43067a.1922.1922,0,0,0,.25879-.06934L15.75,3.77637a.213.213,0,0,0-.06934-.25977l-3.165-1.8291a.52625.52625,0,0,0-.28321-.08789h-.67676a3.50984,3.50984,0,0,1-2.87988,1.501,3.50543,3.50543,0,0,1-2.8789-1.501H5.11813a.49289.49289,0,0,0-.25292.06934L1.69528,3.501a.193.193,0,0,0-.07031.26269l1.0957,1.89746A.18442.18442,0,0,0,2.834,5.749a.19261.19261,0,0,0,.14355-.01855l.958-.55664A.80559.80559,0,0,1,4.33688,5.06641Zm1.51075-3.4668h0Z\" />\r\n </svg>\r\n);\r\n\r\nexport default mixMatch;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst MoreIcon = () => (\r\n <svg role='img' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'>\r\n <path d='M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z' />\r\n </svg>\r\n);\r\n\r\nexport default MoreIcon;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nfunction OnlineCatalogIcon() {\r\n return (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 16.80078 23.43829\">\r\n <g data-name=\"Ebene 2\">\r\n <g>\r\n <path d=\"M15.90039,3.658A.90065.90065,0,0,0,15,4.55841v16.0459a1.02031,1.02031,0,0,1-1.00586,1.03222H6.77722c.63111-.22278,4.08606-1.44336,4.08606-1.44336h.001a2.82208,2.82208,0,0,0,1.98047-3.15332V2.49884c0-1.20215,0-1.86426-.58008-2.27735-.56055-.39941-1.16211-.1914-1.99317.09668C8.88965.79376,3.26465,2.78692,1.98145,3.242A2.886,2.886,0,0,0,0,6.39532v14.541c0,1.20507,0,1.86816.582,2.28125a1.15794,1.15794,0,0,0,.69727.2207l12.71484-.001a2.82332,2.82332,0,0,0,2.80664-2.833V4.55841A.90065.90065,0,0,0,15.90039,3.658ZM1.80078,6.39532c0-.94238.0918-1.21191.78125-1.45605,1.28223-.45508,8.39746-2.96192,8.46-2.9834.002.168.002,15.084.002,15.084,0,.95508-.02833,1.19141-.7793,1.45606,0,0-8.40039,2.96289-8.46192,2.98437C1.80078,21.31231,1.80078,6.39532,1.80078,6.39532Z\" /><path d=\"M8.13086,12.60235l-3.88672,1.3877a.70009.70009,0,0,0,.23535,1.35937.71116.71116,0,0,0,.23535-.041l3.88672-1.3877a.69993.69993,0,1,0-.4707-1.31836Z\" /><path d=\"M4.47949,12.43438a.69848.69848,0,0,0,.23535-.041L8.60156,11.0047a.70064.70064,0,0,0,.46485-.65918V6.074a.7.7,0,0,0-.93555-.65918L4.24414,6.80255a.70062.70062,0,0,0-.46484.65918v4.27246a.7004.7004,0,0,0,.70019.70019Zm.7002-4.47949L7.666,7.0672V9.85235L5.17969,10.741Z\" />\r\n </g>\r\n </g>\r\n </svg>\r\n );\r\n}\r\n\r\nexport default OnlineCatalogIcon;","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst PlusIcon = () => (\r\n <svg\r\n data-testid='plus-icon'\r\n xmlns='http://www.w3.org/2000/svg'\r\n width='15.7998'\r\n height='15.80078'\r\n viewBox='0 0 15.7998 15.80078'\r\n >\r\n <path d='M14.8999,7H8.7998V.90039A.8999.8999,0,1,0,7,.90039V7H.8999a.90039.90039,0,0,0,0,1.80078H7v6.09961a.8999.8999,0,1,0,1.7998,0V8.80078h6.1001A.90039.90039,0,0,0,14.8999,7Z' />\r\n </svg>\r\n);\r\n\r\nexport default PlusIcon;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst IconArrowRight = () => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"9.8\"\r\n height=\"19.801\"\r\n viewBox=\"0 0 9.8 19.801\"\r\n >\r\n <path\r\n fill=\"#1d1d1b\"\r\n d=\"M.9 19.8a.9.9 0 01-.673-1.497L7.696 9.9.227 1.498A.9.9 0 111.573.303l8 9a.9.9 0 010 1.195l-8 9a.9.9 0 01-.673.303z\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default IconArrowRight;\r\n","import React from 'react';\r\n/* eslint-disable max-len */\r\nconst SelfDesignIcon = () => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"47.126\"\r\n height=\"39.8\"\r\n viewBox=\"0 0 47.126 39.8\"\r\n >\r\n <path\r\n d=\"M12.892 38.6a4.078 4.078 0 01-4.072-4.073v-18.08l-.874.5a4.038 4.038 0 01-2.026.545 4.11 4.11 0 01-1.062-.141 4.043 4.043 0 01-2.474-1.9l-3.037-5.259A4.079 4.079 0 01.838 4.625L9.772-.537l.01-.005a4.887 4.887 0 012.453-.662h3.17a1.2 1.2 0 011.112.662 6.47 6.47 0 005.815 3.6 6.466 6.466 0 005.815-3.6 1.2 1.2 0 011.112-.662h3.166a4.855 4.855 0 012.552.721l8.917 5.151a4.078 4.078 0 011.489 5.563l-3.037 5.261a4.046 4.046 0 01-2.474 1.9 4.086 4.086 0 01-1.06.141 4.051 4.051 0 01-2.031-.549l-1.692-.973a1.2 1.2 0 01-.441-1.639 1.2 1.2 0 011.638-.441l1.694.975a1.66 1.66 0 001.272.167 1.654 1.654 0 001.015-.78l3.039-5.261a1.676 1.676 0 00-.612-2.285l-8.928-5.158-.035-.021a2.465 2.465 0 00-1.3-.372h-2.5a8.925 8.925 0 01-2.85 2.891 8.879 8.879 0 01-4.743 1.367 8.868 8.868 0 01-4.741-1.367 8.92 8.92 0 01-2.852-2.891h-2.5a2.47 2.47 0 00-1.254.342h-.008L2.049 6.7a1.676 1.676 0 00-.613 2.288l3.037 5.259a1.667 1.667 0 001.016.782 1.667 1.667 0 001.27-.169l2.674-1.534a1.2 1.2 0 01.689-.155h.029a1.2 1.2 0 011.081 1.194v20.152a1.674 1.674 0 001.671 1.671h18.882a1.2 1.2 0 011.2 1.2 1.2 1.2 0 01-1.2 1.2z\"\r\n transform=\"translate(1.199 1.2)\"\r\n ></path>\r\n <path\r\n d=\"M15.695 22.437l-1.386-1.385-.036-.034L1.319 8.062a1.094 1.094 0 01-.3-.492L-1.06.303A1.1 1.1 0 01-.78-.778 1.1 1.1 0 01-.002-1.1a1.045 1.045 0 01.3.043l7.25 2.072a1.086 1.086 0 01.183.067h.01l.016.008.016.008h.006a1.1 1.1 0 01.29.223l12.894 12.895a.778.778 0 01.052.048l1.419 1.421a3.9 3.9 0 010 5.517l-1.227 1.228a3.884 3.884 0 01-2.758 1.141 3.883 3.883 0 01-2.754-1.134zm1.555-1.556a1.7 1.7 0 002.406 0l1.227-1.228a1.7 1.7 0 000-2.406l-.643-.644-3.632 3.634zM3.635 7.268l11.416 11.416 3.634-3.632L7.269 3.634zm-1.013-2.1l2.547-2.545-3.566-1.02z\"\r\n transform=\"translate(23.448 16.022)\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default SelfDesignIcon;\r\n\r\n","import React from 'react';\r\n/* eslint-disable */\r\nfunction ShareIcon() {\r\n return (\r\n <svg role='img' xmlns=\"http://www.w3.org/2000/svg\" width=\"20.34961\" height=\"21.80078\" viewBox=\"0 0 20.34961 21.80078\">\r\n <path d=\"M16.15039,13.40234a4.17436,4.17436,0,0,0-3.14746,1.44825L8.18774,12.15131a4.142,4.142,0,0,0,.21167-1.25092A4.14407,4.14407,0,0,0,8.2002,9.68964l4.82812-2.70758A4.1801,4.1801,0,1,0,11.9502,4.2002a4.14257,4.14257,0,0,0,.19921,1.21051L7.321,8.11835a4.1988,4.1988,0,1,0-.02636,5.59649l4.84277,2.71466a4.14017,4.14017,0,0,0-.18725,1.17206,4.19971,4.19971,0,1,0,4.20019-4.19922Zm0-11.60156A2.39893,2.39893,0,1,1,13.751,4.2002,2.40167,2.40167,0,0,1,16.15039,1.80078ZM4.19922,13.2998a2.39893,2.39893,0,1,1,2.39941-2.39941A2.40166,2.40166,0,0,1,4.19922,13.2998ZM16.15039,20a2.39844,2.39844,0,1,1,2.39844-2.39844A2.40166,2.40166,0,0,1,16.15039,20Z\" />\r\n </svg>\r\n );\r\n}\r\n\r\nexport default ShareIcon;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nfunction ShoesBannerHeader() {\r\n return (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 30.48407 17.78918\">\r\n <path d=\"M27.58557,9.93079A5.615,5.615,0,0,0,25.54163,9.631a6.73935,6.73935,0,0,1-2.74805-.51758,37.62939,37.62939,0,0,1-6.6875-4.03711L16.0946,5.07l-.00317-.00342a5.442,5.442,0,0,1-.76855-.75488A.89988.89988,0,1,0,13.942,5.46594a8.75317,8.75317,0,0,0,.66113.694,2.56314,2.56314,0,0,1-1.85156,1.85974,3.60438,3.60438,0,0,1-.95215.1416.90006.90006,0,0,0-.87207.92676.91332.91332,0,0,0,.92676.87207,5.37364,5.37364,0,0,0,1.43164-.22168A4.33066,4.33066,0,0,0,16.108,7.295c.45935.32227,1.04236.71827,1.677,1.12989l-.98364,1.7832a.60013.60013,0,1,0,1.05078.58008l.94995-1.72193c.48218.29444.9751.57862,1.46509.84278l-.55078,1.07055a.59845.59845,0,0,0,.25879.80762.58932.58932,0,0,0,.27344.06738.60024.60024,0,0,0,.53418-.32617l.55468-1.07788c.28516.13184.56373.252.82813.35034a8.50769,8.50769,0,0,0,3.37207.63086,3.88175,3.88175,0,0,1,1.459.2002c1.252.43359,1.69239,1.86914,1.68653,3.06738a.95529.95529,0,0,1-.71.96289,21.67133,21.67133,0,0,1-4.18848.32617c-3.22559,0-8.18848-.01367-12.27832-.02441l-4.19434-.01172a.78567.78567,0,0,1-.583-.27246,1.10423,1.10423,0,0,1-.27539-.75195c.00195-.5752.03125-1.21289.07519-1.86328a.89841.89841,0,0,0-.83594-.959.872.872,0,0,0-.959.83594c-.04785.6914-.0791,1.36914-.08106,1.98047a2.901,2.901,0,0,0,.74512,1.96972,2.57327,2.57327,0,0,0,1.90918.86133l4.19434.01074c4.09082.01172,9.05664.02539,12.2832.02539a23.62805,23.62805,0,0,0,4.5459-.36328A2.75766,2.75766,0,0,0,30.484,14.70715C30.49182,12.88684,29.735,10.6759,27.58557,9.93079Z\" /><path d=\"M10,5a5,5,0,1,0-5,5A5.00009,5.00009,0,0,0,10,5ZM1.2,5A3.80005,3.80005,0,1,1,5,8.80005,3.80437,3.80437,0,0,1,1.2,5Z\" /><path d=\"M5.01917,3.63293a.59961.59961,0,1,0,0-1.19921H5.0094a.59559.59559,0,0,0-.59473.59961A.60392.60392,0,0,0,5.01917,3.63293Z\" /><path d=\"M5.59924,6.96692v-2a.59961.59961,0,0,0-1.19922,0v2a.59961.59961,0,0,0,1.19922,0Z\" />\r\n </svg>\r\n );\r\n}\r\n\r\nexport default ShoesBannerHeader;","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst SizeTable = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\" viewBox=\"0 0 23.97266 23.9707\">\r\n <g data-name=\"Ebene 2\">\r\n <g>\r\n <path // eslint-disable-next-line max-len\r\n d=\"M23.416,5.166,18.80664.55664A1.89221,1.89221,0,0,0,17.46289,0h-.002a1.88842,1.88842,0,0,0-1.3418.55664L.55664,16.11816a1.90025,1.90025,0,0,0,0,2.6875L5.166,23.416h.001a1.90383,1.90383,0,0,0,2.68653,0L23.416,7.85352a1.90025,1.90025,0,0,0,0-2.6875ZM22.14258,6.58008,6.58008,22.14258a.104.104,0,0,1-.1416,0l-4.6084-4.61035a.099.099,0,0,1,0-.14063l5.39477-5.39429,1.491,1.491a.7002.7002,0,0,0,.99023-.99023l-1.491-1.491L9.71655,9.50562l2.90552,2.90551a.7002.7002,0,0,0,.99023-.99023L10.70679,8.51538l1.502-1.502L13.7002,8.50488a.7002.7002,0,1,0,.99023-.99023L13.1991,6.02332l1.50158-1.50159,2.90577,2.905a.7002.7002,0,1,0,.99023-.99024l-2.90576-2.9049,1.70166-1.70154h.14062l4.60938,4.60937A.099.099,0,0,1,22.14258,6.58008Z\" />\r\n <circle cx=\"6.65051\" cy=\"17.32178\" r=\"1.50001\" />\r\n </g>\r\n </g>\r\n </svg>\r\n);\r\n\r\nexport default SizeTable;\r\n","import React from 'react';\r\n/* eslint-disable max-len */\r\nconst SizeLongMan = () => (\r\n <svg xmlns='http://www.w3.org/2000/svg' width='30' height='65' viewBox='0 0 30 65'>\r\n <path d='M14.97388,13.061a5.25049,5.25049,0,1,0-5.25-5.25A5.256,5.256,0,0,0,14.97388,13.061Zm0-8.7002a3.44971,3.44971,0,1,1-3.4502,3.4502A3.45381,3.45381,0,0,1,14.97388,4.36084Z' />\r\n <path d='M23.95728,35.83643c-.0044-.40137-.01514-1.60743-.02832-3.18555-.03614-4.16016-.09571-11.124-.13233-12.37109a7.08534,7.08534,0,0,0-.73047-3.626A4.4439,4.4439,0,0,0,20.29663,14.479a5.68668,5.68668,0,0,0-2.8457.2334c-.12989.03516-.248.06641-.34912.09082a12.07585,12.07585,0,0,1-2.103.2461,14.02164,14.02164,0,0,1-2.09912-.2461c-.10254-.02441-.2207-.05566-.35059-.09082a5.67237,5.67237,0,0,0-2.84472-.2334,4.44324,4.44324,0,0,0-2.77051,2.17481,7.08534,7.08534,0,0,0-.73047,3.626c-.03662,1.24707-.09619,8.21093-.13233,12.37109-.01318,1.57812-.02392,2.78418-.02832,3.18555l-.00048.02832V35.894A2.76888,2.76888,0,0,0,9.739,38.47314L9.407,59.19385a3.244,3.244,0,0,0,5.59229,2.24023,3.24546,3.24546,0,0,0,5.59424-2.26367l-.332-20.69727a2.76833,2.76833,0,0,0,3.69629-2.60839Zm-2.76807.99609a.96942.96942,0,0,1-.96924-.96777q0-.02492-.00146-.04981l-.231-14.4082a.89993.89993,0,0,0-.89942-.88574l-.01513.001a.89985.89985,0,0,0-.88526.91407l.60547,37.75781a1.44678,1.44678,0,0,1-2.89355,0V37.73291a.89991.89991,0,1,0-1.79981,0V59.19385a1.44678,1.44678,0,0,1-2.89355.00586l.606-37.76367A.89985.89985,0,0,0,10.927,20.522l-.01513-.001a.89993.89993,0,0,0-.89942.88574l-.231,14.40137c-.001.01855-.00146.03808-.00146.05664a.969.969,0,0,1-1.938.01171c.00488-.38281.01514-1.60449.0293-3.21.03564-4.15332.09521-11.10546.13086-12.334a5.428,5.428,0,0,1,.52246-2.83691,2.64019,2.64019,0,0,1,1.6543-1.28028,4.43657,4.43657,0,0,1,1.90429.23535c.14942.04.28565.07715.40479.1045a12.77348,12.77348,0,0,0,2.52246.29492,13.97255,13.97255,0,0,0,2.50293-.29492c.11767-.02735.2539-.06446.40332-.1045a4.44006,4.44006,0,0,1,1.90527-.23535,2.6408,2.6408,0,0,1,1.65332,1.28028,5.428,5.428,0,0,1,.52246,2.83691c.03565,1.22852.09522,8.18066.13086,12.334.01416,1.60547.02442,2.82715.0293,3.21A.96975.96975,0,0,1,21.18921,36.83252Z' />\r\n </svg>\r\n);\r\n\r\nexport default SizeLongMan;\r\n","import React from 'react';\r\n/* eslint-disable max-len */\r\nconst SizeRegularMan = () => (\r\n <svg xmlns='http://www.w3.org/2000/svg' width='30' height='65' viewBox='0 0 30 65'>\r\n <path d='M15.02734,19.03076a5.25049,5.25049,0,1,0-5.25-5.251A5.25678,5.25678,0,0,0,15.02734,19.03076Zm0-8.70019a3.44971,3.44971,0,1,1-3.44922,3.44922A3.45339,3.45339,0,0,1,15.02734,10.33057Z' />\r\n <path d='M24.54,26.05713a6.90683,6.90683,0,0,0-.92188-3.68457,4.45467,4.45467,0,0,0-3.542-2.1709,9.40146,9.40146,0,0,0-2.26562.293,13.54951,13.54951,0,0,1-2.8125.373,12.77867,12.77867,0,0,1-2.82715-.37207,9.34,9.34,0,0,0-2.2461-.29395,4.45642,4.45642,0,0,0-3.543,2.17188A6.91862,6.91862,0,0,0,5.46,26.05713c-.07715,1.60742-.24707,12.00879-.25488,12.46582a2.90079,2.90079,0,0,0,3.98755,2.70184c-.10157,6.03986-.21509,12.82752-.29517,17.71515A3.5011,3.5011,0,0,0,15.002,61.27979a3.49843,3.49843,0,0,0,6.10059-2.3545c-.09082-5.60351-.18164-10.96386-.27344-16.332l-.023-1.3692a2.88753,2.88753,0,0,0,1.07666.212,2.91787,2.91787,0,0,0,2.91211-2.92774C24.78809,38.06592,24.61816,27.66455,24.54,26.05713ZM21.88281,39.63525a1.11279,1.11279,0,0,1-1.11133-1.1123c0-.02081-.01049-.03827-.01171-.05872L20.57129,27.272a.89993.89993,0,0,0-.89942-.88574l-.01464.001a.89847.89847,0,0,0-.88477.91406l.25684,15.32324c.09179,5.36719.18261,10.72656.27343,16.31543a1.69971,1.69971,0,0,1-3.39941,0V40.53564a.90039.90039,0,1,0-1.80078,0v18.4043a1.70268,1.70268,0,0,1-3.40527.01465c.17089-10.45215.49609-29.63672.52929-31.5127l.002-.13964a.89892.89892,0,0,0-.88282-.915l-.0166-.001a.90018.90018,0,0,0-.89941.88379v.001l-.001.00293c0,.01855-.001.05664-.002.1123L9.23047,38.50732l.00049.00873-.00147.0069a1.11235,1.11235,0,0,1-2.22461.01465c.002-.1084.17676-10.81446.25293-12.39258a5.24831,5.24831,0,0,1,.63867-2.79981,2.71212,2.71212,0,0,1,2.10059-1.34472,7.57486,7.57486,0,0,1,1.80078.25683,13.77137,13.77137,0,0,0,3.20606.41114,15.04744,15.04744,0,0,0,3.17578-.41211,7.40514,7.40514,0,0,1,1.82422-.25586,2.71009,2.71009,0,0,1,2.09961,1.34375,5.23659,5.23659,0,0,1,.63867,2.80078c.07715,1.57812.252,12.28418.25293,12.37793A1.11363,1.11363,0,0,1,21.88281,39.63525Z' />\r\n </svg>\r\n);\r\n\r\nexport default SizeRegularMan;\r\n","import React from 'react';\r\n/* eslint-disable max-len */\r\nconst SizeShortMan = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30\" height=\"65\" viewBox=\"0 0 30 65\">\r\n <path d=\"M15.02783,24.064a5.25049,5.25049,0,1,0-5.25-5.251A5.25657,5.25657,0,0,0,15.02783,24.064Zm0-8.70019A3.44971,3.44971,0,1,1,11.57861,18.813,3.45256,3.45256,0,0,1,15.02783,15.36377Z\"/>\r\n <path d=\"M24.54053,31.09033a6.898,6.898,0,0,0-.92188-3.68457,4.45426,4.45426,0,0,0-3.542-2.1709,9.53237,9.53237,0,0,0-2.26563.293,13.55017,13.55017,0,0,1-2.81347.373,10.73134,10.73134,0,0,1-2.82617-.37207,9.40344,9.40344,0,0,0-2.24707-.29395,4.453,4.453,0,0,0-3.542,2.17188,6.88315,6.88315,0,0,0-.92089,3.68359c-.07911,1.60645-.24805,11.16016-.25586,11.582a2.916,2.916,0,0,0,2.91211,2.91309,2.88446,2.88446,0,0,0,1.03247-.198c-.0896,4.45416-.1836,9.35462-.2522,13.55151a3.489,3.489,0,0,0,6.10474,2.32087A3.48536,3.48536,0,0,0,21.102,58.92432c-.08789-5.43067-.17676-9.4209-.26465-13.41114l-.00293-.13086a2.88788,2.88788,0,0,0,1.04883.20313,2.91788,2.91788,0,0,0,2.91113-2.92871C24.7876,42.25049,24.61865,32.69678,24.54053,31.09033ZM21.8833,43.78467a1.11134,1.11134,0,0,1-1.10815-1.09174c-.06787-3.11426-.13526-6.42456-.20337-10.58014a.89994.89994,0,0,0-.89942-.88574l-.01465.001a.89847.89847,0,0,0-.88476.91406c.06689,4.12463.134,7.41742.20117,10.51123-.00024.00671-.00391.01227-.00391.019,0,.01844.00513.03546.00538.05384.02075.95422.0415,1.89135.062,2.827.08886,3.98731.17676,7.97461.26465,13.38574a1.69922,1.69922,0,1,1-3.39844,0V45.56885a.90039.90039,0,0,0-1.80078,0V58.939a1.70268,1.70268,0,0,1-3.40528.01465c.07715-4.68554.18555-10.26367.28418-15.10449a.898.898,0,0,0,.04785-.27734L11.228,32.14307a.8985.8985,0,0,0-.88379-.915l-.01563-.001a.89974.89974,0,0,0-.89941.88477L9.397,33.5835c-.03857,1.78924-.11181,5.19946-.19433,9.22424A1.10221,1.10221,0,0,1,7.00537,42.688c.00195-.09863.17578-9.93067.25391-11.50977a5.21421,5.21421,0,0,1,.63867-2.7998,2.70475,2.70475,0,0,1,2.09863-1.34473,7.606,7.606,0,0,1,1.80176.25684,15.27891,15.27891,0,0,0,3.20508.41113,15.04679,15.04679,0,0,0,3.17578-.41211,8.01919,8.01919,0,0,1,1.82519-.25586A2.70642,2.70642,0,0,1,22.103,28.37744a5.22853,5.22853,0,0,1,.63965,2.80078c.07714,1.5791.251,11.41114.252,11.49414A1.1128,1.1128,0,0,1,21.8833,43.78467Z\"/></svg>\r\n);\r\n\r\nexport default SizeShortMan;\r\n","import React from 'react';\r\nimport defaultStyles from '../../styles/defaults.scss';\r\n\r\n/* eslint-disable */\r\nfunction StatusIcon(props: IStatusIcon) {\r\n const { statusColor } = props;\r\n return (\r\n <svg role='img' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'>\r\n <g>\r\n <g>\r\n <g>\r\n <path\r\n data-testid='icon-path'\r\n style={{ fill: statusColor }}\r\n d='M12,1.8A10.2,10.2,0,1,1,1.80005,12,10.21153,10.21153,0,0,1,12,1.8M12,0A12,12,0,1,0,24,12,12.00014,12.00014,0,0,0,12,0Z'\r\n />\r\n <path\r\n data-testid='icon-path'\r\n style={{ fill: statusColor }}\r\n d='M12.01978,8.0489A1.20021,1.20021,0,0,1,12.01,5.64851h.00977a1.2002,1.2002,0,0,1,0,2.40039Z'\r\n />\r\n <path\r\n data-testid='icon-path'\r\n style={{ fill: statusColor }}\r\n d='M12.00024,18.74861a.99974.99974,0,0,1-1-1v-.019c.002-.27051.002-6.18506,0-6.45557v-.019a.99974.99974,0,0,1,1-1c1,0,1.001.7583,1.001,2.01416l.001,2.23242-.001,2.23291C13.00122,17.99031,13.00024,18.74861,12.00024,18.74861Z'\r\n />\r\n </g>\r\n </g>\r\n </g>\r\n </svg>\r\n );\r\n}\r\n\r\nStatusIcon.defaultProps = {\r\n statusColor: defaultStyles.dpBlack,\r\n};\r\n\r\ninterface IStatusIcon {\r\n statusColor: string;\r\n}\r\n\r\nexport default StatusIcon;\r\n","import React from 'react';\r\n/* eslint-disable max-len */\r\nconst StopWatch = () => (\r\n <svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20.4093 23.01245'>\r\n <path d='M13.47864,12.1123H10.90051V7.79492a.90039.90039,0,1,0-1.80078,0V13.0127a.90065.90065,0,0,0,.90039.90039h3.47852a.9004.9004,0,0,0,0-1.80079Z' />\r\n <path d='M7.82629,1.80078H12.174A.90039.90039,0,0,0,12.174,0H7.82629a.90039.90039,0,1,0,0,1.80078Z' />\r\n <path\r\n d='M18.63928,5.70752l.23291.23291A.90046.90046,0,1,0,20.14563,4.667L18.40637,2.92773a.90046.90046,0,1,0-1.27344,1.27344l.23291.23291L16.465,5.335\r\n\t\tc-.01026.01025-.01343.02417-.023.03467a9.95865,9.95865,0,1,0,1.2583,1.26416c.01159-.01062.02685-.01416.03808-.02539ZM10,21.2124a8.2,8.2,0,1,1,8.2-8.19995\r\n\t\tA8.20921,8.20921,0,0,1,10,21.2124Z'\r\n />\r\n </svg>\r\n);\r\n\r\nexport default StopWatch;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nfunction SwitcherIcon() {\r\n return (\r\n <svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' data-testid='switcher-icon'>\r\n <path fill='white' d='M10,0A10,10,0,1,0,20,10,9.99993,9.99993,0,0,0,10,0Z' />\r\n </svg>\r\n );\r\n}\r\n\r\nexport default SwitcherIcon;\r\n","import React from 'react';\r\n\r\n/* eslint-disable*/\r\nconst Triangle = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 206 174\" version=\"1.1\" transform=\"rotate(180)\">\r\n <g>\r\n </g>\r\n <g>\r\n <path fill='currentColor' opacity=\"1.00\"\r\n // eslint-disable-next-line max-len\r\n d=\" M 5.08 8.97 C 70.51 9.13 135.94 8.78 201.37 9.15 C 173.43 56.08 144.36 102.34 116.05 149.05 C 111.86 155.80 107.91 162.70 103.40 169.25 C 70.52 115.89 38.00 62.30 5.08 8.97 Z\" />\r\n </g>\r\n </svg>\r\n);\r\n\r\nexport default Triangle;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nfunction WorkwearstoreIcon() {\r\n return (\r\n <svg\r\n role='img'\r\n xmlns='http://www.w3.org/2000/svg'\r\n width='22.77148'\r\n height='17.79968'\r\n viewBox='0 0 22.77148 17.79968'\r\n >\r\n <g>\r\n <g>\r\n <g>\r\n <path d='M17.00977,11.5116H14.89844V7.52527a.70019.70019,0,0,0-.7002-.7002h-5.625a.70018.70018,0,0,0-.70019.7002V11.5116H5.76172a.70018.70018,0,0,0-.7002.70019v4.6875a.70019.70019,0,0,0,.7002.7002h11.248a.70018.70018,0,0,0,.70019-.7002v-4.6875A.70018.70018,0,0,0,17.00977,11.5116ZM9.27344,8.22546h4.22461V11.5116H9.27344ZM6.46191,12.912h4.22364V16.1991H6.46191Zm9.84766,3.28711H12.08594V12.912h4.22363Z' />\r\n <path d='M21.68555,4.85925,12.249.20105a1.95183,1.95183,0,0,0-1.72558,0L1.085,4.86414A1.937,1.937,0,0,0,0,6.61023V16.89929a.90039.90039,0,0,0,1.80078,0V6.61023a.1503.1503,0,0,1,.082-.13281l9.43848-4.66309a.15346.15346,0,0,1,.13086,0l9.43555,4.6582a.147.147,0,0,1,.083.13379v10.293a.90039.90039,0,0,0,1.80078,0V6.60632A1.93652,1.93652,0,0,0,21.68555,4.85925Z' />\r\n </g>\r\n </g>\r\n </g>\r\n </svg>\r\n );\r\n}\r\n\r\nexport default WorkwearstoreIcon;\r\n","import React from 'react';\r\n\r\n/* eslint-disable */\r\nconst Zoom = () => (\r\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20.82422\" height=\"20.8252\" viewBox=\"0 0 20.82422 20.8252\">\r\n\t// eslint-disable-next-line max-len\r\n\t<path d=\"M19.92383,0H11.8291a.90039.90039,0,1,0,0,1.80078H17.75L1.80078,17.75V11.8291A.90039.90039,0,0,0,0,11.8291v8.0957a.89541.89541,0,0,0,.06763.335l.00024.00091a.89848.89848,0,0,0,.83252.56446H8.99512a.9004.9004,0,0,0,0-1.80079H3.07324L19.02344,3.07422V8.99609a.90039.90039,0,1,0,1.80078,0V.90039A.90065.90065,0,0,0,19.92383,0Z\"/>\r\n\t</svg>\r\n);\r\n\r\nexport default Zoom;\r\n","import React, { createRef, useEffect } from 'react';\r\nimport styles from './mediaoverlay.scss';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IMixedMediaStore } from '../../types';\r\nimport { MainImage } from '../mixedMedia/element_1/mainImage';\r\nimport CrossRing from '../icons/crossRing';\r\nimport TabNavigationHelper from '../../helper/tabNavigationHelper';\r\n\r\nexport const MediaOverlay = inject('mixedMediaStore')(\r\n observer(({ mixedMediaStore }: IMixedMediaStore) => {\r\n const closeButtonRef = createRef<HTMLDivElement>();\r\n const tabNavigation = TabNavigationHelper.instance;\r\n function closeMediaOverlay(): void {\r\n mixedMediaStore?.updateMediaOverlayVisibility(false);\r\n mixedMediaStore?.mainStore.scrollLock.unlock();\r\n mixedMediaStore?.mainStore.showEsAppButton();\r\n }\r\n useEffect(() => {\r\n tabNavigation.setFocusAtt(closeButtonRef.current);\r\n if(mixedMediaStore?.displayMediaOverlay){\r\n window.shell.tabNav.focus(closeButtonRef.current as Element);\r\n window.shell.tabNav.onActivated('.pdp-cross_icon', () => {\r\n const zoomButton = document.querySelector('[data-testid=\"pdp-zoom-button\"]');\r\n if(zoomButton)\r\n window.shell.tabNav.focus(zoomButton);\r\n })\r\n }\r\n\r\n }, [mixedMediaStore?.displayMediaOverlay]);\r\n\r\n if (mixedMediaStore?.displayMediaOverlay)\r\n return (\r\n <div className={styles.mediaoverlay} data-testid='pdp-mediaoverlay'\r\n ref={(el) => tabNavigation.setModalAtt(el)}>\r\n <div className={styles.cross_icon} onClick={closeMediaOverlay} data-testid='pdp-mo-close'\r\n ref={closeButtonRef}\r\n onKeyDown={tabNavigation.handleKeyDown}>\r\n <CrossRing />\r\n </div>\r\n <MainImage />\r\n </div>)\r\n else\r\n return null;\r\n })\r\n);\r\n","import React, { Component } from 'react';\r\nimport { inject } from 'mobx-react';\r\nimport { IInjectedProps } from '../../types';\r\nimport FragmentPlaceholder from '../fragmentPlaceholder/fragmentPlaceholder';\r\n\r\n//this component exists because the FragmentPlaceholder was re-rendered on variant change and we want to prevent that\r\n\r\n@inject('store')\r\nclass MixAndMatchFragmentWrapper extends Component<IInjectedProps> {\r\n render() {\r\n // this URL would change with variant change\r\n const mixAndMatchFragmentUrl =\r\n '/ESPP2.MixAndMatch.Service/Fragment' +\r\n '?masterArticleNo=' +\r\n this.props.store?.fetchedData.orderModule.articleInfo.masterArticleNo +\r\n '&colorCode=' +\r\n this.props.store?.mixedMediaStore.colorCode;\r\n\r\n return <FragmentPlaceholder src={mixAndMatchFragmentUrl} ignoreErrors={true} timeout={2} />;\r\n\r\n // if you wonder how we still see a changing MnM shutter at variant change:\r\n // the MnM fragment itself registers to an AppShell event from us and updates itself\r\n // (we send it in MainStore->variantChange)\r\n }\r\n\r\n //client side we can not rerender a FragmentPlaceholder - so we return false here\r\n shouldComponentUpdate(): boolean {\r\n return !this.isClientSide();\r\n }\r\n\r\n isClientSide(): boolean {\r\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\r\n }\r\n}\r\n\r\nexport default MixAndMatchFragmentWrapper;\r\n","import React, { Component } from 'react';\r\nimport { inject } from 'mobx-react';\r\nimport { IInjectedProps } from '../../types';\r\nimport ShutterModul from '../shutterModul/shutterModul';\r\nimport MixMatch from '../icons/mixMatch';\r\nimport MixAndMatchFragmentWrapper from './mixAndMatchFragmentWrapper';\r\n\r\n//this component exists because MnM fragment sends us an event indicates MnM is filled/empty\r\n//here we hide/show the shutter accordingly\r\n\r\n@inject('store')\r\nclass MixAndMatchShutterWrapper extends Component<\r\n IInjectedProps,\r\n { hideContent: boolean; }\r\n> {\r\n private mmRef = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n hideContent: true //render server side, hide initially client side\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n <div className={this.state.hideContent ? 'hidden' : ''} ref={this.mmRef}>\r\n <ShutterModul\r\n title={this.props.store?.localization.generalL10n.mixAndMatch}\r\n isOpen={true}\r\n icon={<MixMatch />}\r\n isMobileShop={this.props.store?.isMobileShop}\r\n >\r\n <MixAndMatchFragmentWrapper />\r\n </ShutterModul>\r\n </div>\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n if (window && window.shell) {\r\n window.shell.subscribeTo(\r\n 'ESPP2.MixAndMatch.OnLoaded',\r\n payload => {\r\n // when this fragment loads client-side\r\n // is emits this event that tells us if it contains articles\r\n const hideContent = !payload || !payload.available;\r\n this.setState({ hideContent });\r\n },\r\n 'ESPP1.Detailspage.MixAndMatchShutter'\r\n );\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (window && window.shell) {\r\n window.shell.unsubscribeFrom('ESPP2.MixAndMatch.OnLoaded', 'ESPP1.Detailspage.MixAndMatchShutter');\r\n }\r\n }\r\n}\r\n\r\nexport default MixAndMatchShutterWrapper;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport styles from './mainImage.scss';\r\nimport '../../../styles/customCarouselStyles.scss';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IMixedMediaStore } from '../../../types';\r\nimport { EyeCatcher } from '../eyeCatcher/eyeCatcher';\r\nimport Zoom from '../../icons/zoom';\r\nimport NormalImage from './normalImage/normalImage';\r\nimport MainImageCarousel from './mainImageCarousel/mainImageCarousel';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport const MainImage = inject('mixedMediaStore')(\r\n observer(({ mixedMediaStore }: IMixedMediaStore) => {\r\n\r\n const tabNavigation = TabNavigationHelper.instance;\r\n\r\n function openMediaOverlay(): void {\r\n mixedMediaStore?.updateMediaOverlayVisibility(true);\r\n mixedMediaStore?.mainStore.scrollLock.lock();\r\n mixedMediaStore?.mainStore.hideEsAppButton();\r\n }\r\n\r\n return (\r\n <div className={styles.main_image_container}>\r\n <div\r\n className={classNames(styles.zoom_icon, { [styles.zoom_only]: !mixedMediaStore?.has3DView })}\r\n onClick={openMediaOverlay}\r\n data-testid={'pdp-zoom-button'}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n >\r\n <Zoom />\r\n </div>\r\n <EyeCatcher />\r\n {mixedMediaStore?.shouldRenderMainImageCarousel ? <MainImageCarousel /> : <NormalImage />}\r\n </div>\r\n );\r\n })\r\n);\r\n","/* eslint-disable react/no-unknown-property */\r\nimport React from 'react';\r\nimport { ICarouselSlide } from '../../../../../types';\r\n\r\nfunction CarouselSlide(props: ICarouselSlide) {\r\n return (<img className={props.className} alt={props.alt} src={props.src} srcSet={props.srcSet} key={props.slideIndex}\r\n fetchpriority={props.slideIndex === 0 ? 'high': undefined}>\r\n </img>)\r\n}\r\n\r\nexport default CarouselSlide;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { Carousel } from 'react-responsive-carousel';\r\n\r\nimport { IMixedMediaStore } from '../../../../types';\r\nimport { ReactZoomPanPinchRef, TransformComponent, TransformWrapper } from 'react-zoom-pan-pinch';\r\nimport IconArrowCircleGreyLeft from '../../../icons/icon_arrow_circle_grey_left';\r\nimport IconArrowCircleGreyRight from '../../../icons/icon_arrow_circle_grey_right';\r\nimport CarouselSlide from './carouselSlide/carouselSlide';\r\nimport TabNavigationHelper from '../../../../helper/tabNavigationHelper';\r\n\r\nexport const MainImageCarousel = inject('mixedMediaStore')(\r\n observer(({ mixedMediaStore }: IMixedMediaStore) => {\r\n if (!mixedMediaStore) return null;\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const [mounted, setMountedState] = useState(false);\r\n const resetFunction: Function[] = [];\r\n const mobileSwipeTolerance: number = mixedMediaStore.displayMediaOverlay ? 80 : 30;\r\n\r\n // The useEffect hook is called with an empty dependency array,\r\n // which means it will only run once when the component is mounted\r\n useEffect(() => {\r\n // Do something here\r\n setMountedState(true);\r\n }, []);\r\n\r\n if (!mixedMediaStore.shouldRenderMainImageCarousel) {\r\n return null;\r\n }\r\n\r\n function handleSetMainImageCarouselSlide(newSlideIndex: number): void {\r\n if (!mixedMediaStore?.displayMediaOverlay) mixedMediaStore?.setMainImageCarouselSlide(newSlideIndex);\r\n\r\n mixedMediaStore?.updateActiveCarouselImageIndex(newSlideIndex);\r\n }\r\n\r\n function handleSetMainImageCarouselSlideMobile(newSlideIndex: number): void {\r\n if (!mixedMediaStore?.displayMediaOverlay) mixedMediaStore?.setMainImageCarouselSlide(newSlideIndex);\r\n else if (resetFunction.length)\r\n resetFunction.forEach((reset: Function) => {\r\n reset();\r\n });\r\n\r\n mixedMediaStore?.updateActiveCarouselImageMobileIndex(newSlideIndex);\r\n }\r\n\r\n function initZoomReset(item: ReactZoomPanPinchRef): void {\r\n item.instance.setup.panning.disabled = true;\r\n if (item.resetTransform) resetFunction.push(item.resetTransform);\r\n }\r\n\r\n const renderArrowPrev = (onClickHandler, hasPrev) =>\r\n hasPrev && (\r\n <div data-testid='carousel-arrow-prev' className={'control_arrow a_previous'} onClick={onClickHandler}\r\n ref={(el) => tabNavigation.setFocusAtt(el, 2)}\r\n onKeyDown={tabNavigation.handleKeyDown}>\r\n <IconArrowCircleGreyLeft />\r\n </div>\r\n );\r\n\r\n const renderArrowNext = (onClickHandler, hasPrev) =>\r\n hasPrev && (\r\n <div data-testid='carousel-arrow-next' className={'control_arrow a_next'} onClick={onClickHandler}\r\n ref={(el) => tabNavigation.setFocusAtt(el, 1)}\r\n onKeyDown={tabNavigation.handleKeyDown}>\r\n <IconArrowCircleGreyRight />\r\n </div>\r\n );\r\n\r\n return (\r\n <div data-testid='pdp-carousel' className={'pdp_carousel'}>\r\n <Carousel\r\n showIndicators={mounted}\r\n key={mixedMediaStore.altTagForImages}\r\n showArrows={true}\r\n showThumbs={false}\r\n showStatus={false}\r\n selectedItem={mixedMediaStore.currentSlideIndex - 1}\r\n infiniteLoop={true}\r\n className='desktop_carousel'\r\n renderArrowPrev={renderArrowPrev}\r\n renderArrowNext={renderArrowNext}\r\n onChange={handleSetMainImageCarouselSlide}\r\n >\r\n {mixedMediaStore.getSlidesForCarousel.map(slide => {\r\n return (\r\n <React.Fragment key={slide.slideIndex}>\r\n <CarouselSlide\r\n className={slide.className}\r\n alt={slide.alt}\r\n src={slide.src}\r\n srcSet={slide.srcSet}\r\n slideIndex={slide.slideIndex}\r\n />\r\n </React.Fragment>\r\n );\r\n })}\r\n </Carousel>\r\n <Carousel\r\n showIndicators={mounted}\r\n showArrows={true}\r\n showThumbs={false}\r\n showStatus={false}\r\n selectedItem={0}\r\n infiniteLoop={true}\r\n swipeScrollTolerance={mobileSwipeTolerance}\r\n preventMovementUntilSwipeScrollTolerance={true}\r\n className='mobile_carousel'\r\n renderArrowPrev={renderArrowPrev}\r\n renderArrowNext={renderArrowNext}\r\n onChange={handleSetMainImageCarouselSlideMobile}\r\n >\r\n {mixedMediaStore.getSlidesForMobileCarousel.map((slide, index) => {\r\n if (!mixedMediaStore.displayMediaOverlay) {\r\n if (\r\n mixedMediaStore.loadedImagesMobileArray.includes(\r\n parseInt(slide.slideIndex?.toString() ?? '')\r\n )\r\n )\r\n return (\r\n <React.Fragment key={slide.slideIndex}>\r\n <CarouselSlide\r\n className={slide.className}\r\n alt={slide.alt}\r\n src={slide.src}\r\n srcSet={slide.srcSet}\r\n slideIndex={slide.slideIndex}\r\n />\r\n </React.Fragment>\r\n );\r\n else return <React.Fragment key={slide.slideIndex} />;\r\n } else {\r\n return (\r\n <TransformWrapper centerZoomedOut={true} onInit={initZoomReset.bind(this)} key={index}>\r\n <TransformComponent>\r\n <CarouselSlide\r\n className={slide.className}\r\n alt={slide.alt}\r\n src={slide.src}\r\n srcSet={slide.srcSet}\r\n slideIndex={slide.slideIndex}\r\n />\r\n </TransformComponent>\r\n </TransformWrapper>\r\n );\r\n }\r\n })}\r\n </Carousel>\r\n <div data-testid='current_slide_status' className={'current_slide_status'}>\r\n <span data-testid='mi_current_slide' className={'current_slide'}>\r\n {String('0' + mixedMediaStore.currentSlideIndex).slice(-2)}\r\n </span>\r\n <span className={'status_divider'}>/</span>\r\n <span data-testid='mi_total_slides' className={'total_slides'}>\r\n {mixedMediaStore.getSlidesForCarousel.length.toLocaleString(\r\n mixedMediaStore.mainStore.dataStore.contextData.culture,\r\n { minimumIntegerDigits: 2, useGrouping: false }\r\n )}\r\n </span>\r\n </div>\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport default MainImageCarousel;\r\n","/* eslint-disable react/no-unknown-property */\r\nimport React from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\n\r\nimport { IMixedMediaStore } from '../../../../types';\r\nimport { TransformComponent, TransformWrapper } from 'react-zoom-pan-pinch';\r\nimport styles from '../mainImage.scss';\r\n\r\nexport const NormalImage = inject('mixedMediaStore')(\r\n observer(({ mixedMediaStore }: IMixedMediaStore) => {\r\n if (!mixedMediaStore)\r\n return null;\r\n\r\n let result, src, srcSet;\r\n\r\n if (mixedMediaStore.shouldRenderMainImageInElement2) {\r\n src = mixedMediaStore.get1ElementImage?.fullPath;\r\n srcSet = mixedMediaStore.get1ElementImage?.srcSet.urls;\r\n } else {\r\n src = mixedMediaStore.mainImage.fullPath;\r\n srcSet = mixedMediaStore.mainImage.srcSet.urls;\r\n }\r\n\r\n if (mixedMediaStore.shouldEnablePinchZoom()) {\r\n result = (\r\n <TransformWrapper centerZoomedOut={true}>\r\n <TransformComponent>\r\n <img\r\n data-testid='main_image'\r\n className={styles.main_image}\r\n alt={mixedMediaStore.getAltValue()}\r\n src={src}\r\n srcSet={srcSet}\r\n fetchpriority=\"high\"\r\n />\r\n </TransformComponent>\r\n </TransformWrapper>\r\n );\r\n } else {\r\n result = (\r\n <img\r\n data-testid='main_image'\r\n className={styles.main_image}\r\n alt={mixedMediaStore.getAltValue()}\r\n src={src}\r\n srcSet={srcSet}\r\n fetchpriority=\"high\"\r\n />\r\n );\r\n }\r\n\r\n return result;\r\n })\r\n);\r\n\r\nexport default NormalImage;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport styles from './gallery3dOverlay.scss';\r\nimport * as Gallery3dOverlayTypes from './gallery3dOverlay.d';\r\nimport FragmentPlaceholder from '../../fragmentPlaceholder/fragmentPlaceholder';\r\n\r\nexport default class Gallery3dOverlay extends React.Component<\r\n Gallery3dOverlayTypes.IGallery3dOverlayProps,\r\n Gallery3dOverlayTypes.IGallery3dOverlayState> {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n displayG3dOverlay: this.props.displayG3dOverlay\r\n };\r\n }\r\n\r\n public render() {\r\n return (\r\n <div className={classNames(styles.gallery_3d,\r\n { [styles.display_g3d_overlay]: this.props.displayG3dOverlay })}>\r\n <div className={styles.gallery_3d_container}>\r\n <FragmentPlaceholder\r\n src={\r\n '/ESPP1-Showcase/threesixtyoverlayview?masterArticleNo=' +\r\n this.props.masterArticleNo + '&colorCode=' + this.props.colorCode +\r\n '&containerId=Gallery3dOverlay_mixedMedia'\r\n }\r\n ignoreErrors={true}\r\n timeout={2}\r\n />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n","/* eslint-disable react/no-unknown-property */\r\nimport React from 'react';\r\nimport styles from '../element_1/mainImage.scss';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IMixedMediaStore } from '../../../types';\r\n\r\nexport const SmallMainImage = inject('mixedMediaStore')(\r\n observer(({ mixedMediaStore }: IMixedMediaStore) => {\r\n if (!mixedMediaStore)\r\n return null;\r\n\r\n return (\r\n <div className={styles.main_image_container}>\r\n <img data-testid='main_image' className={styles.main_image}\r\n alt={mixedMediaStore.getAltValue()}\r\n src={mixedMediaStore.mainImage.fullPath}\r\n srcSet={mixedMediaStore.mainImage.srcSet.urls}\r\n fetchpriority=\"high\"\r\n />\r\n </div>\r\n );\r\n })\r\n);\r\n","import React from 'react';\r\nimport FragmentPlaceholder from '../../fragmentPlaceholder/fragmentPlaceholder';\r\nimport styles from './threeDView.scss';\r\nimport classNames from 'classnames';\r\nimport * as ThreeDViewTypes from './threeDView.d';\r\nimport Icon_3D from '../../icons/Icon_3D';\r\nimport Icon_Play_3D from '../../icons/icon_play_3d';\r\nimport Icon_Pause_3D from '../../icons/icon_pause_3d';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport default class ThreeDView extends React.Component<ThreeDViewTypes.IThreeDViewProps,\r\n ThreeDViewTypes.IThreeDViewState> {\r\n private tabNavigation: TabNavigationHelper;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n play3d: true\r\n };\r\n\r\n this.handle3DAnimationStartStopClick = this.handle3DAnimationStartStopClick.bind(this);\r\n this.tabNavigation = TabNavigationHelper.instance;\r\n }\r\n\r\n componentDidUpdate(prevProps): void {\r\n if (prevProps.variantColorCode !== this.props.variantColorCode)\r\n this.setState({ play3d: true });\r\n }\r\n\r\n private handle3DAnimationStartStopClick(): void {\r\n this.setState({ play3d: !this.state.play3d },\r\n () => {\r\n window.shell.publishTo('SCS.PlayPauseAnimation',\r\n { containerId: 'ThreeSixtyView_mixedMedia', play3d: this.state.play3d });\r\n });\r\n }\r\n\r\n public render() {\r\n return (\r\n <div data-testid='threeD_view_main_image' className={classNames(styles.threeD_mi_container,\r\n { [styles.showThreeDOnly]: this.props.showThreeDOnly },\r\n { [styles.has3DView]: this.props.has3DView })}>\r\n <div data-testid='threed_view' className={styles.threed_view\r\n } onClick={this.props.handleShowGallery3d}>\r\n <FragmentPlaceholder\r\n src={\r\n '/ESPP1-Showcase/threesixtyview?masterArticleNo=' +\r\n this.props.masterArticleNo + '&colorCode=' + this.props.colorCode +\r\n '&containerId=' + this.props.containerId +\r\n '&fallBackImageUrl=' + this.props.fallBackImageUrl +\r\n '&showThreeSixtyViewAfterPageLoad=true' +\r\n '&showThreeSixtyViewAfterPageLoadOnMobile=false'\r\n }\r\n ignoreErrors={true}\r\n timeout={2}\r\n />\r\n </div>\r\n\r\n <div data-testid='icon_play_pause_3d' className={classNames(styles.icon_play_pause_3d,\r\n { [styles.temporary_hide_scs]: this.props.temporaryHideSCS })}\r\n onClick={this.handle3DAnimationStartStopClick}\r\n ref={(el) => this.tabNavigation.setFocusAtt(el)}>\r\n {this.state.play3d ? <Icon_Pause_3D /> : <Icon_Play_3D />}\r\n </div>\r\n <div className={classNames(styles.icon_3d,\r\n { [styles.temporary_hide_scs]: this.props.temporaryHideSCS })}\r\n onClick={this.props.handleShowGallery3d}\r\n ref={(el) => this.tabNavigation.setFocusAtt(el)}><Icon_3D />\r\n </div>\r\n <img data-testid='second_main_image' className={\r\n classNames(styles.second_mi, styles.prerender_slot)\r\n }\r\n alt={helper.decodeHTML(this.props.altTag)}\r\n src={this.props.fallBackImageUrl}\r\n srcSet={this.props.srcSet}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n","/* eslint-disable react/no-unknown-property */\r\nimport { inject, observer } from 'mobx-react';\r\nimport React from 'react';\r\nimport { IMixedMediaStore } from '../../../types';\r\nimport styles from './additionalInfoImage.scss';\r\n\r\nexport const AdditionalInfoImage = inject('mixedMediaStore')(\r\n observer(({ mixedMediaStore }: IMixedMediaStore) => {\r\n if (!mixedMediaStore)\r\n return null;\r\n\r\n return (\r\n <div data-testid='additional_info_image' className={styles.add_info_image_container}>\r\n <img data-testid='add_info_image' className={styles.add_info_image} \r\n alt={mixedMediaStore.getAltValue(2)}\r\n src={mixedMediaStore.getImageForElement3.fullPath} \r\n srcSet={mixedMediaStore.getImageForElement3.srcSet?.urls} fetchpriority=\"high\"/>\r\n </div>\r\n );\r\n })\r\n);\r\n","import { inject, observer } from 'mobx-react';\r\nimport React from 'react';\r\nimport { IMixedMediaStore } from '../../../types';\r\nimport IconNovelty from '../../icons/icon_novelty';\r\nimport styles from './eyeCatcher.scss';\r\n\r\nexport const EyeCatcher = inject('mixedMediaStore')(\r\n observer(({ mixedMediaStore }: IMixedMediaStore) => {\r\n if (!mixedMediaStore)\r\n return null;\r\n\r\n return (\r\n <div data-testid='eye_catcher' className={styles.eye_catcher}>\r\n {mixedMediaStore.isNew && <div data-testid='eye_catcher_is_new' className={styles.ec_is_new}>\r\n <span className={styles.inner_text_area}>\r\n {mixedMediaStore.mainStore.localization.generalL10n.isNew}\r\n </span>\r\n <span className={styles.star_icon}><IconNovelty /></span>\r\n </div>}\r\n </div>\r\n );\r\n })\r\n);\r\n","import React, { useEffect } from 'react';\r\nimport { MainImage } from './element_1/mainImage';\r\nimport { AdditionalInfoImage } from './element_3/additionalInfoImage';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IMixedMediaStore } from '../../types';\r\nimport styles from './mixedMedia.scss';\r\nimport ThreeDView from './element_2/threeDView';\r\nimport classNames from 'classnames';\r\nimport { SmallMainImage } from './element_2/smallMainImage';\r\nimport Gallery3dOverlay from './element_2/gallery3dOverlay';\r\nimport Icon_3D from '../icons/Icon_3D';\r\n\r\nexport const MixedMedia = inject('mixedMediaStore')(\r\n observer(({ mixedMediaStore }: IMixedMediaStore) => {\r\n if (!mixedMediaStore)\r\n return null;\r\n const threeDViewContainerId = 'ThreeSixtyView_mixedMedia';\r\n\r\n useEffect(() => {\r\n window.shell.subscribeTo(\r\n 'SCS.Close.Gallery3DView',\r\n () => {\r\n mixedMediaStore.handleShowGallery3d();\r\n },\r\n 'SCS.Close.Gallery3DView'\r\n );\r\n\r\n window.shell.subscribeTo(\r\n 'SCS.Hide.Fragment',\r\n payload => {\r\n if(payload.containerId === threeDViewContainerId)\r\n mixedMediaStore.manageSCSFragment(payload.hidden);\r\n },\r\n 'SCS.Hide.Fragment'\r\n );\r\n\r\n return () => {\r\n window.shell.unsubscribeFrom('SCS.Close.Gallery3DView', 'SCS.Close.Gallery3DView');\r\n window.shell.unsubscribeFrom('SCS.Hide.Fragment', 'SCS.Hide.Fragment');\r\n };\r\n }, []);\r\n\r\n function handleShowGallery3d(): void {\r\n mixedMediaStore?.handleShowGallery3d();\r\n window.shell.publishTo('SCS.Open.Gallery3DView', mixedMediaStore?.displayG3dOverlay);\r\n }\r\n\r\n return (\r\n <div\r\n data-testid='mixed_media'\r\n className={classNames(styles.mixed_media_container, mixedMediaStore.getLayoutClass)}\r\n >\r\n {mixedMediaStore.mainImage && <MainImage />}\r\n <div className={styles.add_images}>\r\n <ThreeDView\r\n altTag={mixedMediaStore.getAltValue()}\r\n variantColorCode={mixedMediaStore.colorCode}\r\n fallBackImageUrl={mixedMediaStore.fallBackImageUrl}\r\n srcSet={mixedMediaStore.mainImage.srcSet.urls}\r\n masterArticleNo={mixedMediaStore.masterArticleNoDefault}\r\n colorCode={mixedMediaStore.colorCodeDefault}\r\n showThreeDOnly={!mixedMediaStore.shouldRenderAdditionalInfoImage}\r\n handleShowGallery3d={handleShowGallery3d}\r\n has3DView={mixedMediaStore.has3DView}\r\n temporaryHideSCS={mixedMediaStore.temporaryHideSCS}\r\n containerId={threeDViewContainerId}\r\n />\r\n {mixedMediaStore.shouldRenderMainImageInElement2 && <SmallMainImage />}\r\n {mixedMediaStore.shouldRenderAdditionalInfoImage && <AdditionalInfoImage />}\r\n </div>\r\n <Gallery3dOverlay\r\n masterArticleNo={mixedMediaStore.masterArticleNoDefault}\r\n colorCode={mixedMediaStore.colorCodeDefault}\r\n displayG3dOverlay={mixedMediaStore.displayG3dOverlay}\r\n />\r\n {mixedMediaStore.has3DView && (\r\n <div\r\n className={classNames(styles.mobile_icon_3d, {\r\n [styles.temporary_hide_scs]: mixedMediaStore.temporaryHideSCS,\r\n })}\r\n onClick={handleShowGallery3d}\r\n >\r\n <Icon_3D />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n })\r\n);\r\n","import * as React from 'react';\r\nimport Cross from '../icons/cross';\r\nimport styles from './modalWrapper.scss'\r\nimport TabNavigationHelper from '../../helper/tabNavigationHelper';\r\n\r\nfunction ModalWrapper(props: IModalWrapper) {\r\n\r\n const closeButtonRef = React.createRef<HTMLDivElement>();\r\n const tabNavigation: TabNavigationHelper = TabNavigationHelper.instance;\r\n\r\n React.useEffect(()=>{\r\n if(props.isOpen){\r\n tabNavigation.setFocusAtt(closeButtonRef.current);\r\n window.shell.tabNav.focus(closeButtonRef.current as Element);\r\n }\r\n })\r\n if (!props.isOpen) {\r\n return null;\r\n }\r\n return (\r\n <>\r\n <div className={styles.modal}>\r\n <div className={styles.modal_container} ref={(el) => tabNavigation.setModalAtt(el)}>\r\n <div className={styles.modal_content}>\r\n <div className={styles.modal_header}>\r\n <div className={styles.modal_title}>\r\n <div className={styles.title} dangerouslySetInnerHTML={{ __html: props.title }} />\r\n {\r\n props.subtitle &&\r\n <div\r\n className={styles.subtitle}\r\n dangerouslySetInnerHTML={{ __html: props.subtitle }}\r\n />\r\n }\r\n </div>\r\n\r\n <div className={styles.close_button} data-testid=\"close_button_header\"\r\n onClick={props.onClose}\r\n onKeyDown={tabNavigation.handleKeyDown}\r\n ref={closeButtonRef}\r\n >\r\n <Cross />\r\n </div>\r\n </div>\r\n <div className={styles.modal_body}>\r\n {props.content}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n )\r\n}\r\n\r\nexport default ModalWrapper;\r\n\r\ninterface IModalWrapper {\r\n isOpen: boolean;\r\n title: string;\r\n subtitle?: string;\r\n content: React.ReactNode;\r\n onClose();\r\n}\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport styles from './articleNumber.scss';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../../types';\r\n\r\nfunction ArticleInfo({ info }: { info: string }) {\r\n if (!info) {\r\n return null;\r\n }\r\n\r\n return <span className={styles.article_info}>{info}</span>;\r\n}\r\n\r\nconst ArticleNumber = inject('store')(\r\n observer(({ store, isStickyHeader }: IInjectedProps) => {\r\n const titleAddon = store?.orderModuleStore.titleAddon ?? '';\r\n const variantButtonCount = store?.variantStore.variantButtonCount ?? 0;\r\n const title = store?.dataStore.orderModule.articleInfo.title;\r\n\r\n const containerClasses = classNames({\r\n [styles.article_number_container_sticky]: isStickyHeader,\r\n [styles.article_number_container]: !isStickyHeader,\r\n [styles.no_variant_buttons]: variantButtonCount === 0,\r\n [styles.no_variant_margin]: variantButtonCount === 0 && titleAddon, \r\n [styles.has_variant_buttons]: variantButtonCount > 0,\r\n });\r\n\r\n return (\r\n <div className={containerClasses}>\r\n {\r\n !isStickyHeader &&\r\n <div className={styles.article_number}>\r\n #{store?.dataStore.orderModule.articleInfo.salesArticleNo}\r\n </div>\r\n }\r\n <div role='heading' className={styles.article_title}>\r\n {!isStickyHeader && <h1 className={styles.article_designation}>{title}</h1> } \r\n {isStickyHeader && <span className={styles.article_designation}>{title}</span> }\r\n <ArticleInfo info={titleAddon} />\r\n </div>\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport default ArticleNumber;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport styles from './articlePrice.scss';\r\nimport VatSwitcher from '../vatSwitcher/vatSwitcher';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../../types';\r\nimport FragmentPlaceholder from '../../fragmentPlaceholder/fragmentPlaceholder';\r\n\r\nfunction Price({ priceString, isGlobal }: IPrice) {\r\n return (\r\n <div role='heading' data-testid='price-string' className={classNames(styles.articlePrice_priceString,\r\n 'notranslate')}\r\n > {\r\n isGlobal ?\r\n <div className={styles.articlePrice_value} data-ge-price>{priceString}</div> :\r\n <div className={styles.articlePrice_value}>{priceString}</div>\r\n }\r\n </div>\r\n );\r\n}\r\n\r\ninterface IPrice {\r\n priceString: string;\r\n isGlobal?: boolean;\r\n}\r\n\r\nconst ArticlePrice = inject('store')(\r\n observer(({ store, isStickyHeader }: IInjectedProps) => {\r\n const articlePrice = store?.dataStore.orderModule.articlePrice;\r\n const variantButtonCount = store?.variantStore.variantButtonCount;\r\n const basePriceLocale = store?.localization.generalL10n.basePriceLocale;\r\n const isSale = store?.orderModuleStore.isSale;\r\n const isGlobal = store?.orderModuleStore.mainStore.isGlobal;\r\n const showShippingInfo =\r\n !store?.dataStore.contextData.customerData || store.dataStore.contextData.customerData.postageFree !== 'Yes';\r\n\r\n const priceClassNames = classNames(styles.articlePrice_price, { [styles.articlePrice_price_global]: isGlobal });\r\n\r\n const basicPriceClassNames =\r\n isSale && !articlePrice?.flagAdvertisedAsCostFreeInSet\r\n ? [styles.articlePrice_main_price, styles.articlePrice_main_price_sale].join(' ')\r\n : styles.articlePrice_main_price;\r\n\r\n const containerClasses = classNames({\r\n [styles.articlePrice_container_sticky]: isStickyHeader,\r\n [styles.articlePrice_container]: !isStickyHeader,\r\n [styles.no_variant_buttons]: variantButtonCount === 0,\r\n [styles.one_variant_button]: variantButtonCount === 1,\r\n [styles.two_variant_buttons]: variantButtonCount === 2,\r\n });\r\n\r\n return (\r\n <div className={containerClasses}>\r\n <div className={styles.articlePrice_price_container}>\r\n <div className={priceClassNames}>\r\n {isSale && !articlePrice?.flagAdvertisedAsCostFreeInSet && (\r\n <div data-testid='minimal-original-price'>\r\n <s>\r\n <Price\r\n priceString={\r\n store?.orderModuleStore.getPriceString(articlePrice?.minimalOriginalPrice)\r\n ?? ''}\r\n isGlobal={isGlobal}\r\n />\r\n </s>\r\n </div>\r\n )}\r\n <span className={basicPriceClassNames}>\r\n <Price\r\n priceString={\r\n store?.orderModuleStore.getPriceString(articlePrice?.basicPrice) ?? ''}\r\n isGlobal={isGlobal}\r\n />\r\n </span>\r\n {!isGlobal && showShippingInfo && !isStickyHeader && (\r\n <div role='shipping-info' className={styles.articlePrice_shipping_info_container}>\r\n <div className={styles.articlePrice_shipping_info} data-testid='articlePrice_shipping_info'>\r\n <FragmentPlaceholder\r\n src={'/shippingtext/details-page'}\r\n ignoreErrors={true}\r\n timeout={2}\r\n />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n {!isGlobal ?\r\n <div className={styles.articlePrice_vat_container}>\r\n <VatSwitcher isStickyHeader={isStickyHeader} showShippingInfo={showShippingInfo} />\r\n </div> :\r\n <div data-manipulate={store?.fetchedData\r\n .orderModule.countryDependentContents.countryDependentContentsAttributeValue}\r\n className={styles.articlePrice_total}\r\n data-testid='pdp-countryDependentContents'\r\n >\r\n {store?.fetchedData.orderModule.countryDependentContents.defaultCountryDependentContentsText \r\n && store?.fetchedData.orderModule.\r\n countryDependentContents.defaultCountryDependentContentsText.length > 0 \r\n ? store?.fetchedData.orderModule.countryDependentContents.defaultCountryDependentContentsText\r\n : store?.localization.generalL10n.totalProductPrice }\r\n </div>\r\n }\r\n </div>\r\n {!isStickyHeader && (\r\n <>\r\n {store?.orderModuleStore.shouldRenderBasePrice && (\r\n <div data-testid='base-price' className={styles.articlePrice_base_price}>\r\n <div>{`${basePriceLocale}: `}</div>\r\n {\r\n isGlobal ?\r\n <div className={classNames(styles.articlePrice_base_price_price, 'notranslate')}\r\n data-ge-price>{store?.orderModuleStore.basePriceString[0]}</div> :\r\n <div className={classNames(styles.articlePrice_base_price_price, 'notranslate')}>\r\n {store?.orderModuleStore.basePriceString[0]}</div>\r\n }\r\n <div>{`/${store?.orderModuleStore.basePriceString[1]}`}</div>\r\n </div>\r\n )}\r\n {store?.orderModuleStore.shouldRenderInfoTexts && (\r\n <>\r\n {store?.orderModuleStore.infoTexts.map((info, index) => (\r\n <div className={styles.articlePrice_info_text} key={info[1] + index}>\r\n <div>{info[0]}</div>\r\n {\r\n isGlobal ?\r\n <div\r\n className={\r\n classNames(styles.articlePrice_info_text_price, 'notranslate')\r\n }\r\n data-ge-price\r\n >\r\n {info[1]}</div> :\r\n <div\r\n className={\r\n classNames(styles.articlePrice_info_text_price, 'notranslate')\r\n }\r\n >\r\n {info[1]}\r\n </div>\r\n }\r\n {\r\n info[2].length > 0 &&\r\n <>\r\n <div>{info[2]}</div>\r\n {\r\n isGlobal ?\r\n <div\r\n className={classNames(styles.articlePrice_info_text_base_price,\r\n 'notranslate')}\r\n data-ge-price\r\n >\r\n {info[3]}\r\n </div> :\r\n <div\r\n className={classNames(styles.articlePrice_info_text_base_price,\r\n 'notranslate')}\r\n >\r\n {info[3]}</div>\r\n }\r\n <div>{info[4]}</div>\r\n </>\r\n }\r\n </div>\r\n ))}\r\n </>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n );\r\n }),\r\n);\r\n\r\nexport default ArticlePrice;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { throttle } from '../../../helper/html-helper';\r\nimport styles from './basketPanel.scss';\r\nimport { IInjectedProps } from '../../../types';\r\nimport BasketIcon from '../../icons/basketIcon';\r\nimport BasketSuccessIcon from '../../icons/basketSuccessIcon';\r\nimport MinusIcon from '../../icons/minusIcon';\r\nimport PlusIcon from '../../icons/plusIcon';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nconst BasketPanel = inject('store')(\r\n observer(({ store, isStickyHeader }: IInjectedProps) => {\r\n const tabNavigation: TabNavigationHelper = TabNavigationHelper.instance;\r\n const articleCountMin = store?.orderModuleStore.articleCountMin ?? 1;\r\n const articleCountMax = store?.orderModuleStore.articleCountMax ?? 9999;\r\n const articleCount = store?.orderModuleStore.articleCount || articleCountMin;\r\n const [basketSuccess, setBasketSuccess] = React.useState(false);\r\n\r\n\r\n React.useEffect(() => {\r\n if (basketSuccess) {\r\n setTimeout(() => setBasketSuccess(false), 3000);\r\n }\r\n }, [basketSuccess]);\r\n\r\n if (store && !store.dataStore.contextData.featureToggles.enableFullBasketLayout) {\r\n React.useEffect(store.orderModuleStore.updateBasketItemCount,\r\n [store?.fetchedData.orderModule.articleInfo.salesArticleVariantKey]);\r\n }\r\n\r\n function handleArticleCountChange(evt) {\r\n if (evt.target.value) {\r\n const newValue = Number(evt.target.value);\r\n if (newValue % 1 === 0 && newValue >= articleCountMin && newValue <= articleCountMax) {\r\n store?.orderModuleStore.setArticleCount(newValue);\r\n }\r\n } else {\r\n store?.orderModuleStore.setArticleCount('');\r\n }\r\n }\r\n\r\n function handleArticleCountBlur() {\r\n if (!articleCount && articleCount !== 0) {\r\n store?.orderModuleStore.setArticleCount(articleCountMin);\r\n }\r\n }\r\n\r\n function handleArticleCountMinus() {\r\n const count = Number(articleCount);\r\n if (count > articleCountMin) {\r\n store?.orderModuleStore.setArticleCount(count - 1);\r\n }\r\n }\r\n\r\n function handleArticleCountPlus() {\r\n const count = Number(articleCount);\r\n if (count < articleCountMax) {\r\n store?.orderModuleStore.setArticleCount(count + 1);\r\n }\r\n }\r\n\r\n function handleBasketOpenClick() {\r\n window.shell.publishTo('ESPP.BasketModal.Open', store?.orderModuleStore.basketModalData);\r\n setBasketSuccess(true);\r\n }\r\n\r\n const minusClasses = [styles.count_buttons, styles.minus_button].join(' ');\r\n const plusClasses = [styles.count_buttons, styles.plus_button].join(' ');\r\n const basketButtonClasses = classNames(styles.basket_button, {\r\n [styles.basket_button_success]: basketSuccess},\r\n {[styles.sold_out_layout]: store?.isMobileShop && store?.articleSoldOut});\r\n\r\n const baseBasketPanelClasses = isStickyHeader ? styles.basket_panel_sticky : styles.basket_panel;\r\n const basketPanelClasses = classNames(baseBasketPanelClasses, {[styles.article_sold_out]: store?.articleSoldOut });\r\n\r\n const throttledHandleBasketOpenClick = React.useMemo(\r\n () => throttle(handleBasketOpenClick)\r\n , []);\r\n\r\n return (\r\n <div>\r\n <div className={basketPanelClasses} data-testid='basket_panel'>\r\n <input type='hidden' name='CategoryNavKey'\r\n value={store?.dataStore.breadcrumb.category.navigationKey}\r\n autoComplete='off' autoCorrect='off' autoCapitalize='off' spellCheck='false' />\r\n <input type='hidden' name='MasterArticleNo'\r\n value={store?.fetchedData.orderModule.articleInfo.masterArticleNo}\r\n autoComplete='off' autoCorrect='off' autoCapitalize='off' spellCheck='false' />\r\n <input type='hidden' name='SalesArticleVariantKey'\r\n value={store?.fetchedData.orderModule.articleInfo.salesArticleVariantKey}\r\n autoComplete='off' autoCorrect='off' autoCapitalize='off' spellCheck='false' />\r\n\r\n {!(store?.articleSoldOut && store?.isMobileShop) &&\r\n <span className={styles.basket_counter} data-testid={'basket_counter'}>\r\n <button className={minusClasses} onClick={handleArticleCountMinus}\r\n title={store?.localization.generalL10n.less}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}>\r\n <MinusIcon />\r\n </button>\r\n <span className={styles.basket_counter_input_container}>\r\n <span className={styles.basket_counter_input}>\r\n <div>\r\n <label htmlFor={'pdp_articleUnit_input'}\r\n data-testid='label_for_articleUnit'\r\n style={{ display: 'none' }}>\r\n {store?.orderModuleStore.articleUnit}\r\n </label>\r\n <input\r\n title={store?.orderModuleStore.articleUnit}\r\n data-testid={'pdp_articleUnit_input'}\r\n value={articleCount}\r\n type='number'\r\n size={5}\r\n min={articleCountMin}\r\n max={articleCountMax}\r\n onChange={handleArticleCountChange}\r\n onBlur={handleArticleCountBlur}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n />\r\n </div>\r\n <span data-testid='articleUnit'>{store?.orderModuleStore.articleUnit}</span>\r\n </span>\r\n </span>\r\n <button className={plusClasses} onClick={handleArticleCountPlus}\r\n title={store?.localization.generalL10n.more}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}>\r\n <PlusIcon />\r\n </button>\r\n </span>}\r\n <button className={basketButtonClasses} data-testid='basket_button'\r\n onClick={throttledHandleBasketOpenClick}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}>\r\n <>\r\n {!basketSuccess && <BasketIcon />}\r\n {basketSuccess && <BasketSuccessIcon />}\r\n {isStickyHeader && (\r\n <p className={styles.basket_button_articleCount_text}>{articleCount}</p>\r\n )}\r\n <span className={styles.basket_button_text}>\r\n {store?.articleSoldOut ? store?.localization.generalL10n.articleSoldOut\r\n : store?.localization.generalL10n.basketButtonLocale}\r\n </span>\r\n </>\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n }),\r\n);\r\n\r\nexport default BasketPanel;\r\n","import React from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../../types';\r\nimport defaultStyles from '../../../styles/defaults.scss';\r\nimport styles from './compareShareBookmarkMobile.scss';\r\nimport Cross from '../../icons/cross';\r\nimport MoreIcon from '../../icons/moreIcon';\r\nimport ShareIcon from '../../icons/shareIcon';\r\nimport FragmentPlaceholder from '../../fragmentPlaceholder/fragmentPlaceholder';\r\nimport CompareBtn from '../compareShareBookmark/compareBtn';\r\nimport classNames from 'classnames';\r\nimport LogoService from '../../icons/logoservice';\r\n\r\nconst breakpointMobileExtraSmall = parseInt(defaultStyles.breakpointMobileExtraSmall);\r\nconst parsedButtonHeight = parseInt(styles.buttonHeight);\r\nconst buttonHeight = !isNaN(parsedButtonHeight) ? parsedButtonHeight : 0;\r\n\r\nconst CompareShareBookmarkMobile = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n const refPersonaliseButton = React.useRef<HTMLButtonElement>(null);\r\n const seoSlug = store?.dataStore.breadcrumb.category.seoSlug ?? '';\r\n const savKey = store?.dataStore.orderModule.articleInfo.salesArticleVariantKey ?? '';\r\n const mpcItemOrigin = store?.orderModuleStore.mpcItemOrigin ?? '';\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const generalL10n = store!.localization.generalL10n;\r\n const expanded = store?.orderModuleStore.compareShareBookmarkMobileExpanded;\r\n const [buttonCount, setButtonCount] = React.useState(4);\r\n\r\n const isExtraSmall = typeof window !== 'undefined' ? window.innerWidth <= breakpointMobileExtraSmall : false;\r\n\r\n React.useEffect(() => {\r\n const container = document.getElementById('compareShareBookmark-mobile-container');\r\n if (container) {\r\n const buttons = container.getElementsByTagName('BUTTON');\r\n let visibleButtonCount = buttons.length;\r\n\r\n if (refPersonaliseButton && refPersonaliseButton.current && isExtraSmall) {\r\n visibleButtonCount--;\r\n }\r\n\r\n setButtonCount(visibleButtonCount > 0 ? visibleButtonCount : 0);\r\n }\r\n }, [isExtraSmall]);\r\n\r\n const handleExpandClick = React.useCallback(() => {\r\n store?.orderModuleStore.toggleCompareShareBookmarkMobileExpanded();\r\n }, [expanded]);\r\n\r\n const handleShareClick = React.useCallback(() => {\r\n if (navigator.share) {\r\n navigator.share({\r\n title: generalL10n.shareLinkText.replace(\r\n '{0}',\r\n store?.dataStore.orderModule.articleInfo.title ?? ''\r\n ),\r\n text: generalL10n.shareLinkBody\r\n .replace('{0}', store?.dataStore.orderModule.articleInfo.title ?? '')\r\n .replace('{1}', generalL10n.companyNameSimple),\r\n url: window.location.href,\r\n });\r\n } else {\r\n window.location.href =\r\n 'mailto:?subject=' +\r\n encodeURIComponent(\r\n generalL10n.shareLinkText.replace('{0}', store?.dataStore.orderModule.articleInfo.title ?? '')\r\n ) +\r\n '&body=' +\r\n encodeURIComponent(\r\n generalL10n.shareLinkBody\r\n .replace('{0}', store?.dataStore.orderModule.articleInfo.title ?? '')\r\n .replace('{1}', generalL10n.companyNameSimple)\r\n ) +\r\n ' ' +\r\n window.location.href.split('?')[0];\r\n }\r\n }, []);\r\n\r\n const expandButtonClassNames = expanded\r\n ? [styles.compareShareBookmark_mobile_expand_button, styles.expanded].join(' ')\r\n : styles.compareShareBookmark_mobile_expand_button;\r\n const buttonContainerClassNames = expanded\r\n ? [styles.compareShareBookmark_mobile_button_container, styles.expanded].join(' ')\r\n : styles.compareShareBookmark_mobile_button_container;\r\n\r\n const actionButtonsTop = -(buttonHeight * buttonCount);\r\n\r\n return (\r\n <div\r\n id='compareShareBookmark-mobile-container'\r\n data-testid='compareShareBookmark-mobile-container'\r\n className={classNames(styles.compareShareBookmark_mobile_container, {\r\n [styles.compareShareBookmark_mobile_expand]:\r\n store?.orderModuleStore.compareShareBookmarkMobileExpanded,\r\n })}\r\n >\r\n <button data-testid='expand-button' className={expandButtonClassNames} onClick={handleExpandClick}>\r\n {expanded ? <Cross /> : <MoreIcon />}\r\n </button>\r\n <div\r\n className={styles.compareShareBookmark_mobile_action_buttons}\r\n style={{ top: actionButtonsTop, pointerEvents: expanded ? 'initial' : 'none' }}\r\n >\r\n {/* smake variant is maintained and ft is on */}\r\n {store?.dataStore.contextData.featureToggles.enableLogoCreator &&\r\n (store?.dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable ?? false) && (\r\n <div className={classNames(buttonContainerClassNames, styles.personalizeButton)}>\r\n <button\r\n data-testid='logo-creator-button'\r\n ref={refPersonaliseButton}\r\n onClick={() => { store.showPersonalizeOverlay(true) }}\r\n className={styles.compareShareBookmark_mobile_action_button}\r\n >\r\n <LogoService />\r\n {generalL10n.personalise}\r\n </button>\r\n </div>\r\n )}\r\n {/* smake variant is not maintained but ft is on */}\r\n {store?.dataStore.contextData.featureToggles.enableLogoCreator\r\n && store.dataStore.bannerModule.logoServiceRedirectUrl\r\n && !(store?.dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable ?? false) && (\r\n <div className={classNames(buttonContainerClassNames, styles.personalizeButton)}>\r\n <button\r\n data-testid='no-logo-creator-button'\r\n ref={refPersonaliseButton}\r\n onClick={() => {\r\n store?.fetchedData.shutterModule.productInfo.description.links.logoServiceInfoUrl\r\n && window.open(\r\n store?.fetchedData.shutterModule.productInfo.description.links.logoServiceInfoUrl,\r\n '_self'); }}\r\n className={styles.compareShareBookmark_mobile_action_button}\r\n >\r\n <LogoService />\r\n {generalL10n.personalise}\r\n </button>\r\n </div>\r\n )}\r\n {!store?.showKioskLayout && (\r\n <div className={buttonContainerClassNames}>\r\n <button\r\n data-testid='share-button'\r\n onClick={handleShareClick}\r\n className={styles.compareShareBookmark_mobile_action_button}\r\n >\r\n <ShareIcon />\r\n {generalL10n.shareButtonLocale}\r\n </button>\r\n </div>\r\n )}\r\n <div className={buttonContainerClassNames}>\r\n <CompareBtn\r\n savKey={savKey}\r\n seoSlug={seoSlug}\r\n itemOrigin={mpcItemOrigin}\r\n />\r\n </div>\r\n {store?.dataStore?.contextData?.portalMandantToken != 'GLB' && (\r\n <div className={buttonContainerClassNames}>\r\n <FragmentPlaceholder\r\n src={`/ESPP1-Bookmark/bookmark-add-button?containerId=${store?.getBookmarkContainerID}`}\r\n ignoreErrors={true}\r\n timeout={2}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport default CompareShareBookmarkMobile;\r\n","import React from 'react';\r\nimport FragmentPlaceholder from '../../fragmentPlaceholder/fragmentPlaceholder';\r\nimport styles from './compareShareBookmark.scss';\r\n\r\nexport default class CompareBtn extends React.Component<\r\n { savKey: string; seoSlug: string; itemOrigin: string },\r\n { savKey: string; seoSlug: string; itemOrigin: string }\r\n> {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n savKey: this.props.savKey,\r\n seoSlug: this.props.seoSlug,\r\n itemOrigin: this.props.itemOrigin,\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.savKey !== this.props.savKey) this.updateMpc_SavKey();\r\n }\r\n\r\n updateMpc_SavKey(): void {\r\n const pdpContainer: HTMLElement | null = document.querySelector('.pdp-details_page_container');\r\n if (!pdpContainer) {\r\n return;\r\n }\r\n\r\n const newBtn: HTMLElement | null = pdpContainer.querySelector('.mpc-compare-btn');\r\n if (!newBtn) {\r\n return;\r\n }\r\n\r\n newBtn.setAttribute('data-savkey', this.props.savKey);\r\n }\r\n\r\n public render() {\r\n return (\r\n <div data-testid='compare-button' className={styles.compareShareBookmark_button_container}>\r\n <FragmentPlaceholder\r\n // eslint-disable-next-line max-len\r\n src={`/ESPP1-ManualProductComparison/TouchPoint/ForDetailsPageNew?seoSlug=${this.state.seoSlug}&itemOrigin=${this.state.itemOrigin}&savKey=${this.state.savKey}`}\r\n ignoreErrors={true}\r\n timeout={2}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../../types';\r\nimport styles from './compareShareBookmark.scss';\r\nimport FragmentPlaceholder from '../../fragmentPlaceholder/fragmentPlaceholder';\r\nimport CompareBtn from './compareBtn';\r\nimport ShareIcon from '../../icons/shareIcon';\r\nimport LogoService from '../../icons/logoservice';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nfunction CompareShareBookmarkButton(props: ICompareShareBookmarkButton) {\r\n const tabNavigation: TabNavigationHelper = TabNavigationHelper.instance;\r\n const { icon, label, onClick } = props;\r\n return (\r\n <button onClick={onClick}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}>\r\n {icon}\r\n <span>{label}</span>\r\n </button>\r\n );\r\n}\r\n\r\ninterface ICompareShareBookmarkButton {\r\n icon: React.ReactElement;\r\n label: string;\r\n onClick(): void;\r\n}\r\n\r\nexport function CompareShareBookmarkButtonContainer(props: { children: JSX.Element;['data-testid']?: string }) {\r\n const [childHasButton, setChildHasButton] = React.useState(false);\r\n const containerRef = React.useRef<HTMLElement>();\r\n\r\n React.useEffect(() => {\r\n // search for fragment button and set flag\r\n if (containerRef.current) {\r\n let ref = containerRef.current;\r\n let searchingForButton = true;\r\n while (searchingForButton) {\r\n if (ref.firstElementChild) {\r\n if (ref.firstElementChild?.tagName === 'BUTTON') {\r\n searchingForButton = false;\r\n setChildHasButton(true);\r\n } else {\r\n ref = ref.firstElementChild as HTMLElement;\r\n }\r\n } else {\r\n searchingForButton = false;\r\n setChildHasButton(false);\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n return (\r\n <div\r\n data-testid={props['data-testid']}\r\n style={{ display: childHasButton ? 'flex' : 'none' }}\r\n ref={containerRef as React.LegacyRef<HTMLDivElement>}\r\n className={styles.compareShareBookmark_button_container}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}\r\n\r\nconst CompareShareBookmark = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n const seoSlug = store?.dataStore.breadcrumb.category.seoSlug ?? '';\r\n const savKey = store?.dataStore.orderModule.articleInfo.salesArticleVariantKey ?? '';\r\n const mpcItemOrigin = store?.orderModuleStore.mpcItemOrigin ?? '';\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const generalL10n = store!.localization.generalL10n;\r\n function handleShareClick() {\r\n if (navigator.share) {\r\n navigator.share({\r\n title: generalL10n.shareLinkText.replace('{0}', store?.dataStore.orderModule.articleInfo.title ?? ''),\r\n text: generalL10n.shareLinkBody\r\n .replace('{0}', store?.dataStore.orderModule.articleInfo.title ?? '')\r\n .replace('{1}', generalL10n.companyNameSimple),\r\n url: window.location.href.split('?')[0],\r\n });\r\n } else {\r\n window.location.href =\r\n 'mailto:?subject=' +\r\n encodeURIComponent(generalL10n.shareLinkText.replace(\r\n '{0}', store?.dataStore.orderModule.articleInfo.title ?? '')) +\r\n '&body=' +\r\n encodeURIComponent(\r\n generalL10n.shareLinkBody\r\n .replace('{0}', store?.dataStore.orderModule.articleInfo.title ?? '')\r\n .replace('{1}', generalL10n.companyNameSimple)\r\n ) +\r\n ' ' +\r\n window.location.href.split('?')[0];\r\n }\r\n }\r\n\r\n return (\r\n <div data-testid='compareShareBookmark-desktop-container' className={styles.compareShareBookmark_container}>\r\n {store?.dataStore?.contextData?.portalMandantToken != 'GLB' && (\r\n <CompareShareBookmarkButtonContainer data-testid='bookmark-button'>\r\n <FragmentPlaceholder\r\n src={`/ESPP1-Bookmark/bookmark-add-button?containerId=${store?.getBookmarkContainerID}`}\r\n ignoreErrors={true}\r\n timeout={2}\r\n />\r\n </CompareShareBookmarkButtonContainer>\r\n )}\r\n {!store?.showKioskLayout && (\r\n <CompareShareBookmarkButtonContainer data-testid='share-button'>\r\n <CompareShareBookmarkButton\r\n icon={<ShareIcon />}\r\n label={generalL10n.shareButtonLocale}\r\n onClick={handleShareClick}\r\n \r\n />\r\n </CompareShareBookmarkButtonContainer>\r\n )}\r\n <CompareShareBookmarkButtonContainer data-testid='compare-button'>\r\n <CompareBtn\r\n savKey={savKey}\r\n seoSlug={seoSlug}\r\n itemOrigin={mpcItemOrigin}\r\n data-testid='mpc-button'\r\n />\r\n </CompareShareBookmarkButtonContainer>\r\n\r\n {/* smake variant is maintained and ft is on */}\r\n {store?.dataStore.contextData.featureToggles.enableLogoCreator\r\n && store?.dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable\r\n && !store.showKioskLayout && (\r\n <CompareShareBookmarkButtonContainer data-testid='logo-creator-button'>\r\n <CompareShareBookmarkButton\r\n icon={<LogoService />}\r\n label={generalL10n.personalise}\r\n onClick={() => { store.showPersonalizeOverlay(true); }}\r\n />\r\n </CompareShareBookmarkButtonContainer>\r\n )}\r\n {/* smake variant is not maintained but ft is on */}\r\n {store?.dataStore.contextData.featureToggles.enableLogoCreator\r\n && store.dataStore.bannerModule.logoServiceRedirectUrl\r\n && !store?.dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable &&\r\n !store.showKioskLayout && (\r\n <CompareShareBookmarkButtonContainer data-testid='no-logo-creator-button'>\r\n <CompareShareBookmarkButton\r\n icon={<LogoService />}\r\n label={generalL10n.personalise}\r\n onClick={() => {\r\n store?.fetchedData.shutterModule.productInfo.description.links.logoServiceInfoUrl\r\n && window.open(\r\n store?.fetchedData.shutterModule.productInfo.description.links.logoServiceInfoUrl,\r\n '_self');\r\n }}\r\n />\r\n </CompareShareBookmarkButtonContainer>\r\n )}\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport default CompareShareBookmark;\r\n","import React, { createRef, useEffect } from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport StatusIcon from '../../icons/statusIcon';\r\nimport styles from './deliveryTime.scss';\r\nimport ModalWrapper from '../../modalwrapper/modalWrapper';\r\nimport { IInjectedProps } from '../../../types';\r\nimport classNames from 'classnames';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport enum AvailabilityState {\r\n InStock,\r\n SoonInStock,\r\n}\r\nconst buttonRef = createRef<HTMLElement>();\r\nconst DeliveryTime = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const localization = store!.localization;\r\n const [modalOpen, setModalOpen] = React.useState(false);\r\n const showHalfWidth = store?.dataStore.contextData.portal.includes('DE') && !store.showKioskLayout;\r\n\r\n useEffect(() => {\r\n tabNavigation.setFocusAtt(buttonRef.current);\r\n }, [buttonRef])\r\n\r\n\r\n\r\n const handleDeliveryTimeClick = React.useCallback((open) => {\r\n setModalOpen(open);\r\n open ? store?.scrollLock.lock() : store?.scrollLock.unlock();\r\n open ? store?.hideEsAppButton() : store?.showEsAppButton();\r\n if (!open) {\r\n if (buttonRef.current)\r\n window.shell.tabNav.focus(buttonRef.current);\r\n }\r\n }, []);\r\n return (\r\n <div\r\n className={classNames(\r\n styles.delivery_time_container,\r\n showHalfWidth ? styles.half_width : styles.full_width\r\n )}\r\n >\r\n <StatusIcon statusColor={\r\n store?.articleSoldOut ? store?.orderModuleStore.soldOutArticleStatusColor\r\n : store?.orderModuleStore.deliveryTimeStatusColor} />\r\n <span\r\n data-testid='delivery_time'\r\n className={classNames(styles.delivery_time_text, { [styles.isGlobal]: store?.isGlobal })}\r\n onClick={!store?.isGlobal ? () => handleDeliveryTimeClick(true) : undefined}\r\n ref={buttonRef}>\r\n {store?.articleSoldOut ? store?.localization.generalL10n.articleNotAvailable\r\n : store?.orderModuleStore.deliveryTimeString}\r\n </span>\r\n <ModalWrapper\r\n isOpen={modalOpen}\r\n title={localization.generalL10n.deliveryTime}\r\n onClose={() => handleDeliveryTimeClick(false)}\r\n content={\r\n <div\r\n className={styles.delivery_time_modal_content}\r\n dangerouslySetInnerHTML={{ __html: localization.generalL10n.deliveryTimeText }}\r\n />\r\n }\r\n />\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport default DeliveryTime;\r\n","import React from 'react';\r\nimport styles from './orderModule.scss';\r\nimport ArticleNumber from './articleNumber/articleNumber';\r\nimport ArticlePrice from './articlePrice/articlePrice';\r\nimport DeliveryTime from './deliveryTime/deliveryTime';\r\nimport StoreAvailability from './storeAvailability/storeAvailability';\r\nimport { SalesTeaser } from './salesTeaser/salesTeaser';\r\nimport BasketPanel from './basketPanel/basketPanel';\r\nimport CompareShareBookmark from './compareShareBookmark/compareShareBookmark';\r\nimport { IInjectedProps } from '../../types';\r\nimport VariantButtonList from '../variantPanel/variantButtonList/variantButtonList';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { SalesFlag } from './salesFlag/salesFlag';\r\nimport FragmentPlaceholder from '../fragmentPlaceholder/fragmentPlaceholder';\r\nimport CompareShareBookmarkMobile from './compareShareBookmarkMobile/compareShareBookmarkMobile';\r\nimport classNames from 'classnames';\r\nimport TabNavigationHelper from '../../helper/tabNavigationHelper';\r\n\r\nexport const OrderModule = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n if (!store) return null;\r\n const tabNavigation: TabNavigationHelper = TabNavigationHelper.instance;\r\n const variantSelection = store.dataStore.variantSelection;\r\n const shouldShowStoreAvailability =\r\n (store.dataStore.contextData.portal.includes('DE') && !store.showKioskLayout) ||\r\n (store.showKioskLayout && store.variantStore.showAvailableStatusInKiosk);\r\n\r\n return (\r\n <div className={styles.order_module_container} ref={(el) => tabNavigation.setGroupAtt(el)}>\r\n {store.isMobileShop && <CompareShareBookmarkMobile />}\r\n {\r\n !store.dataStore.contextData.isEsApp &&\r\n <div\r\n className={classNames(styles.om_breadcrumb_fragment_container)}\r\n >\r\n {\r\n // eslint-disable-next-line max-len\r\n <FragmentPlaceholder src={`/ESPP.Breadcrumb/breadcrumb?pageType=Detail&seoSlug=${store.dataStore.breadcrumb.category.seoSlug}&containerId=dp_orderModule_breadCrumb`} ignoreErrors={true} timeout={2} />\r\n }\r\n </div>\r\n }\r\n <div className={styles.first_item}>\r\n <ArticleNumber />\r\n </div>\r\n <SalesFlag />\r\n <ArticlePrice />\r\n <div className={styles.order_module_availability_container}>\r\n <DeliveryTime />\r\n {shouldShowStoreAvailability && <StoreAvailability />}\r\n </div>\r\n {variantSelection && <VariantButtonList />}\r\n <BasketPanel />\r\n <SalesTeaser />\r\n {!store.isMobileShop && <CompareShareBookmark />}\r\n </div>\r\n );\r\n })\r\n);\r\n","import React from 'react';\r\nimport styles from './salesFlag.scss';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../../types';\r\nimport { decodeHTML } from '../../../helper/html-helper';\r\n\r\nexport const SalesFlag = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const localization = store!.localization;\r\n const price = store?.dataStore.orderModule.articlePrice;\r\n const isSetPrice = store?.mixedMediaStore.salesArticleType === 2;\r\n const { rrp, sale, setPrice } = localization.generalL10n;\r\n\r\n if (price?.hasRecommendedRetailPrice && price.priceDeduction) {\r\n return (\r\n <div data-testid='rrp-flag' className={styles.info_flag}>\r\n <span className={styles.label}>{decodeHTML(rrp)}</span>\r\n <span className={styles.percentage}>{price.priceDeduction.toFixed(0)}%</span>\r\n </div>\r\n );\r\n } else if (\r\n !price?.hasRecommendedRetailPrice &&\r\n !price?.flagAdvertisedAsCostFreeInSet &&\r\n price?.priceDeduction\r\n ) {\r\n return (\r\n <div data-testid='sales-flag' className={styles.info_flag}>\r\n {!store?.dataStore.contextData.featureToggles.enableRedesignCategoryPageAndSearchPage ? (\r\n <span className={styles.label}>{decodeHTML(sale)}</span>\r\n ) : (\r\n <span className={styles.label}>\r\n {decodeHTML(!isSetPrice ? sale : setPrice)}\r\n </span>\r\n )}\r\n <span className={styles.percentage}>{price.priceDeduction.toFixed(0)}%</span>\r\n </div>\r\n );\r\n } else if (price?.flagAdvertisedAsCostFreeInSet) {\r\n return (\r\n <div data-testid='sales-flag' className={styles.info_flag}>\r\n <span className={styles.label}>{decodeHTML(sale)}</span>\r\n </div>\r\n );\r\n } else {\r\n return null;\r\n }\r\n })\r\n);\r\n","import React from 'react';\r\nimport DataStore from '../../../stores/DataStore';\r\nimport styles from './salesTeaser.scss';\r\nimport { inject, observer } from 'mobx-react';\r\nimport classNames from 'classnames';\r\nimport StopWatch from '../../icons/stopwatch';\r\n\r\nexport const SalesTeaser = inject('dataStore')(\r\n observer(({ dataStore }: IInjectedProps) => {\r\n const isRemainingStock = dataStore?.orderModule.articleInfo.isRemainingStock;\r\n const hasRecommendedRetailPrice = dataStore?.orderModule.articlePrice.hasRecommendedRetailPrice;\r\n const hasPriceDeduction = !!dataStore?.orderModule.articlePrice.priceDeduction;\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const localization = dataStore!.mainStore.localization;\r\n\r\n if (hasPriceDeduction && isRemainingStock) {\r\n return (\r\n <div>\r\n <div data-testid='sales-teaser' className={classNames(styles.teaser, styles.sales_teaser)}>\r\n <StopWatch />\r\n {localization.generalL10n.whileStocksLast}\r\n </div>\r\n </div>\r\n );\r\n } else if (hasPriceDeduction && hasRecommendedRetailPrice) {\r\n return (\r\n <div>\r\n <div data-testid='rrp-teaser' className={classNames(styles.teaser, styles.rrp_teaser)}>\r\n <div className={styles.teaser_text}>\r\n <span>{localization.generalL10n.rrp}: </span>\r\n {localization.generalL10n.priceAdvantage}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n } else {\r\n return null;\r\n }\r\n })\r\n);\r\n\r\nexport interface IInjectedProps {\r\n dataStore?: DataStore;\r\n}\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport styles from './storeAvailability.scss';\r\nimport WorkwearstoreIcon from '../../icons/workwearstoreIcon';\r\nimport { IWorkWearStoreStore } from '../../../types';\r\nimport WorkwearStoreAvailabilityModal from '../../workwearStoreAvailabilityModal/workwearStoreAvailabilityModal';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport classNames from 'classnames';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nconst StoreAvailability = inject('workWearStoreStore')(\r\n observer(({ workWearStoreStore }: IWorkWearStoreStore) => {\r\n\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const wwsAvailabilityButton = useRef<HTMLDivElement>(null);\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const localization = workWearStoreStore!.mainStore.localization;\r\n const retailStore = workWearStoreStore?.wwsData?.variantsStoreInformation.find(\r\n store => store.retailStoreNo.toString() === workWearStoreStore.mainStore.wwsId\r\n );\r\n\r\n\r\n function handleWorkwearStoreAvailabilityClick(value) {\r\n value ? workWearStoreStore?.mainStore.scrollLock.lock() : workWearStoreStore?.mainStore.scrollLock.unlock();\r\n workWearStoreStore?.changeModalOpen(value);\r\n workWearStoreStore?.changeWWSVariantSelectionCopy(\r\n workWearStoreStore.mainStore.variantStore.variantSelectionCopyForWWS\r\n );\r\n if (!value) {\r\n if (wwsAvailabilityButton.current)\r\n window.shell.tabNav.focus(wwsAvailabilityButton.current);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n tabNavigation.setFocusAtt(wwsAvailabilityButton.current);\r\n })\r\n\r\n const renderStoreAvailabilityText = () => {\r\n let result, className;\r\n className = styles.not_available_in_wws_text;\r\n\r\n if (workWearStoreStore?.retailStoreServiceUpAndRunning) {\r\n let onClick, text;\r\n\r\n if (workWearStoreStore?.mainStore.showKioskLayout && retailStore) {\r\n const availableText = helper.decodeHTML(localization.wwsOnlyL10n?.wwsLocallyAvailable.replace(\r\n '{0}',\r\n retailStore.retailStoreName\r\n )\r\n );\r\n const notAvailableText = helper.decodeHTML(localization.wwsOnlyL10n?.wwsLocallyNotAvailable.replace(\r\n '{0}',\r\n retailStore.retailStoreName\r\n )\r\n );\r\n text = workWearStoreStore.availableStatusInKiosk ? availableText : notAvailableText;\r\n onClick = null;\r\n } else {\r\n if (workWearStoreStore.availableInWws) {\r\n className = styles.available_in_wws_text;\r\n onClick = () => handleWorkwearStoreAvailabilityClick(true);\r\n text = localization.wwsOnlyL10n?.storeAvailabilityLocale;\r\n } else {\r\n onClick = null;\r\n text = helper.decodeHTML(localization.wwsOnlyL10n?.notAvailableInWorkwearStore);\r\n }\r\n }\r\n result = (\r\n <span data-testid='store-availability-text' className={className} onClick={onClick}\r\n ref={wwsAvailabilityButton}>\r\n {text}\r\n </span>\r\n );\r\n } else {\r\n result = (\r\n <span className={className}>\r\n {helper.decodeHTML(\r\n workWearStoreStore?.retailStoreServiceNotAvailable\r\n ? localization.wwsOnlyL10n?.workwearStoreAvailabilityFallback\r\n : localization.wwsOnlyL10n?.workwearStoreAvailabilityCheck\r\n )}\r\n </span>\r\n );\r\n }\r\n\r\n return result;\r\n };\r\n\r\n return (\r\n <div\r\n className={classNames(\r\n styles.storeAvailability_container,\r\n {\r\n [styles.kiosk_not_avaliable]:\r\n workWearStoreStore?.availableStatusInKiosk !== null &&\r\n !workWearStoreStore?.availableStatusInKiosk,\r\n },\r\n { [styles.kiosk_avaliable]: workWearStoreStore?.availableStatusInKiosk }\r\n )}\r\n >\r\n <WorkwearstoreIcon />\r\n {renderStoreAvailabilityText()}\r\n {!workWearStoreStore?.mainStore.showKioskLayout && (\r\n <WorkwearStoreAvailabilityModal\r\n localization={localization}\r\n isOpen={!!workWearStoreStore?.modalOpen}\r\n onClose={() => handleWorkwearStoreAvailabilityClick(false)}\r\n workWearStoreStore={workWearStoreStore}\r\n />\r\n )}\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport default StoreAvailability;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\nimport styles from './vatSwitcher.scss';\r\nimport SwitcherIcon from '../../icons/switcherIcon';\r\n\r\nimport { MainStore } from '../../../stores/MainStore';\r\nimport FragmentPlaceholder from '../../fragmentPlaceholder/fragmentPlaceholder';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nconst VatSwitcher = inject('store')(\r\n observer(({ store, isStickyHeader, showShippingInfo }: IVatSwitcherProps) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const withVat = store?.orderModuleStore.withVat;\r\n\r\n if (store?.dataStore.contextData.customerData && store.dataStore.contextData.customerData.flagVatFree) {\r\n return null;\r\n }\r\n\r\n const buttonTestId = withVat ? 'inc-vat-button' : 'ex-vat-button';\r\n const buttonLabel = withVat ?\r\n store?.localization.generalL10n.withVatLocale : store?.localization.generalL10n.withoutVatLocale;\r\n\r\n function handleButtonClick() {\r\n const newWithVatValue = !withVat;\r\n store?.orderModuleStore.toggleWithVat();\r\n store?.orderModuleStore.setPriceModeCookie(newWithVatValue ? 'Gross' : 'Net');\r\n }\r\n\r\n const labelClassNames = classNames(styles.switcher_text, {\r\n [styles.sticky]: isStickyHeader,\r\n [styles.withVat]: !isStickyHeader && withVat,\r\n });\r\n const label = <span className={labelClassNames}>{buttonLabel}</span>;\r\n\r\n if (isStickyHeader) {\r\n return (\r\n <div className={styles.sticky_label}>\r\n {label}\r\n {showShippingInfo && (\r\n <span\r\n role='shipping-info-sticky'\r\n className={classNames(labelClassNames, { [styles.shipping_info]: showShippingInfo })}\r\n >\r\n <FragmentPlaceholder src={'/shippingtext/details-page'} ignoreErrors={true} timeout={2} />\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n const buttonClassNames = withVat ? [styles.switcher_button, styles.withVat].join(' ') : styles.switcher_button;\r\n const iconClassNames = withVat ? [styles.switcher_icon, styles.withVat].join(' ') : styles.switcher_icon;\r\n\r\n return (\r\n <div data-testid='vat-switcher' className={styles.switcher}>\r\n <button data-testid={buttonTestId} className={buttonClassNames}\r\n title={buttonLabel} onClick={handleButtonClick}\r\n ref={(el)=> tabNavigation.setFocusAtt(el)}>\r\n <span className={iconClassNames}>\r\n <SwitcherIcon />\r\n </span>\r\n </button>\r\n {label}\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport interface IVatSwitcherProps {\r\n store?: MainStore;\r\n isStickyHeader?: boolean;\r\n showShippingInfo?: boolean;\r\n}\r\n\r\nexport default VatSwitcher;\r\n","import React from 'react';\r\nimport styles from './personalizationBanner.scss';\r\nimport classNames from 'classnames';\r\nimport SelfDesignIcon from '../icons/selfDesign';\r\nimport { MainStore } from '../../stores/MainStore';\r\nimport * as helper from '../../helper/html-helper';\r\n\r\nfunction PersonalizationBanner(props: IPersonalizationBanner) {\r\n \r\n function handleDesignYourselfNowClick() {\r\n props.mainStore?.onPersonalizeIntent(false);\r\n }\r\n \r\n return (\r\n <div data-testid='personalization_banner_modul' className={styles.personalization_banner_modul}>\r\n <div id='personalization_banner_modul_wrapper'\r\n data-testid='personalization_banner_modul_wrapper' className={styles.personalization_banner_modul_wrapper}>\r\n <div role='heading' className={classNames(styles.personalization_banner_header)}>\r\n <div data-testid='personalization_banner_gif' className={styles.personalization_banner_gif} />\r\n <div data-testid='personalization_banner_text' className={styles.personalization_banner_text}>\r\n <div data-testid='personalization_banner_hardcoded'\r\n className={styles.personalization_banner_hardcoded}>\r\n <div className={styles.small_hardcoded_text}>\r\n {helper.decodeHTML(props.mainStore.localization.generalL10n.personalizationBannerDescriptionText)}\r\n </div>\r\n <div className={styles.large_hardcoded_text}>\r\n {helper.decodeHTML(props.mainStore.localization.generalL10n.personalizationBannerHeadline)}\r\n </div>\r\n </div>\r\n <button data-testid='designYourselfNowBtn' className={styles.design_yourself_now_button}\r\n onClick={handleDesignYourselfNowClick}>\r\n <SelfDesignIcon />\r\n <span className={styles.design_yourself_now_text}>\r\n {helper.decodeHTML(props.mainStore.localization.generalL10n.personalizationBannerButtonLabel)}\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ninterface IPersonalizationBanner {\r\n mainStore: MainStore;\r\n}\r\n\r\nexport default PersonalizationBanner;\r\n","import React from 'react';\r\nimport styles from './personalizeInfoOverlay.scss';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../types';\r\nimport CrossRing from '../icons/crossRing';\r\nimport classNames from 'classnames';\r\n\r\nexport const PersonalizeInfoOverlay = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n const localization = store?.localization;\r\n\r\n function closeOverlay(): void {\r\n store?.showPersonlizeRegistrationConfirmHint(false); \r\n }\r\n\r\n return <div className={classNames(styles.po_info_container,\r\n { [styles.show_po]: store?.confirmRegistrationHintIsVisible })}>\r\n <div className={styles.personalize_overlay}>\r\n <div className={styles.po_header}>\r\n <div className={styles.h_title}>{localization?.generalL10n.note}</div>\r\n <div className={styles.h_cross_icon} onClick={closeOverlay} data-testid='pdp-mo-close'>\r\n <CrossRing />\r\n </div>\r\n </div>\r\n <div className={styles.po_body}>\r\n {localization?.generalL10n.personalizationRegistrationConfirmHint}\r\n </div>\r\n </div>\r\n </div>\r\n })\r\n);\r\n","import React, { useEffect } from 'react';\r\nimport styles from './personalizeOverlay.scss';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../types';\r\nimport CrossRing from '../icons/crossRing';\r\nimport classNames from 'classnames';\r\nimport IconArrowRight from '../icons/po_icon_arrow_right';\r\nimport * as helper from '../../helper/html-helper';\r\nimport DesignWithAdviceIcon from '../icons/designWithAdvice';\r\nimport SelfDesignIcon from '../icons/selfDesign';\r\nimport TabNavigationHelper from '../../helper/tabNavigationHelper';\r\n\r\nexport const PersonalizeOverlay = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n const localization = store?.localization;\r\n const closeButtonRef = React.useRef<HTMLButtonElement>(null);\r\n const tabNavigation = TabNavigationHelper.instance;\r\n\r\n useEffect(() => {\r\n if (window) {\r\n const searchParams = new URL(window.location.href).searchParams;\r\n\r\n if (searchParams.has(store?.afterLoginParam ?? '')) {\r\n //drop param;\r\n searchParams.delete(store?.afterLoginParam ?? '');\r\n const paramsStr = searchParams.toString();\r\n const newUrl = window.location.protocol +\r\n '//' +\r\n window.location.host +\r\n window.location.pathname +\r\n (paramsStr ? '?'+ paramsStr : '') +\r\n window.location.hash;\r\n window.history.replaceState({}, 'unused', newUrl);\r\n\r\n //open LogoCreator \r\n store?.openLogoCreatorDesigner();\r\n // maybe LogoCreator is not loaded yet, make sure its opened when its ready\r\n window.shell.once('ESPP.LogoCreator.InitializationFinished',\r\n () => { store?.openLogoCreatorDesigner(); });\r\n }\r\n }\r\n \r\n }, []);\r\n\r\n useEffect(() => {\r\n if (store?.poIsVisible) {\r\n tabNavigation.setFocusAtt(closeButtonRef.current);\r\n window.shell.tabNav.focus(closeButtonRef.current as Element);\r\n }\r\n }, [store?.poIsVisible]);\r\n\r\n function closeOverlay(): void {\r\n store?.showPersonalizeOverlay(false);\r\n }\r\n\r\n function LinkButtonContainer(props: {icon: React.ReactElement, label, description, \r\n onClick(): void, dataTestId }): JSX.Element {\r\n return (\r\n <div className={styles.link_button} onClick={props.onClick} data-testid={props.dataTestId} \r\n ref={(el)=> tabNavigation.setFocusAtt(el)}>\r\n <div className={styles.lbtn_title}>\r\n <div className={styles.icon}>{props.icon}</div>\r\n <div className={styles.label}>{props.label}</div>\r\n </div>\r\n <div className={styles.description} dangerouslySetInnerHTML={{ __html: props.description }}/>\r\n <div className={styles.link_arrow}><IconArrowRight/></div>\r\n </div>\r\n );\r\n }\r\n\r\n function handleDesignYourselfClick() {\r\n store?.onPersonalizeIntent();\r\n }\r\n\r\n return <div className={classNames(styles.po_container,\r\n { [styles.show_po]: store?.poIsVisible })}>\r\n <div className={styles.personalize_overlay} ref={(el) => tabNavigation.setModalAtt(el)}>\r\n <div className={styles.po_header}>\r\n <div className={styles.h_title}>{localization?.generalL10n.personalise}</div>\r\n <div className={styles.h_cross_icon} onClick={closeOverlay} data-testid='pdp-mo-close'\r\n ref={(el)=> tabNavigation.setFocusAtt(el)}>\r\n <CrossRing />\r\n </div>\r\n </div>\r\n <div className={styles.po_body}>\r\n <div className={styles.banner_short_info}>\r\n <div className={styles.small_banner}/>\r\n <p className={styles.short_info}>\r\n {localization?.generalL10n.personaliseInfo}\r\n </p>\r\n </div>\r\n <LinkButtonContainer \r\n icon={<SelfDesignIcon />}\r\n label={helper.decodeHTML(localization?.generalL10n.designYourself)}\r\n description={helper.decodeHTML(localization?.generalL10n.designYourselfInfo)}\r\n onClick={handleDesignYourselfClick}\r\n dataTestId='pdp-design_yourself'\r\n />\r\n <LinkButtonContainer \r\n icon={<DesignWithAdviceIcon />}\r\n label={helper.decodeHTML(localization?.generalL10n.withConsulting)}\r\n description={helper.decodeHTML(localization?.generalL10n.withConsultingInfo)}\r\n onClick={()=>{ store?.fetchedData.shutterModule.productInfo.description.links.logoServiceInfoUrl \r\n && window.open(\r\n store?.fetchedData.shutterModule.productInfo.description.links.logoServiceInfoUrl, \r\n '_self'); }}\r\n dataTestId='pdp-design_with_consulting_info'\r\n />\r\n </div>\r\n <div className={styles.po_footer}>\r\n <button className={styles.close_button} onClick={closeOverlay} ref={closeButtonRef}>\r\n {helper.decodeHTML(localization?.generalL10n.buttonCancel)}</button>\r\n </div>\r\n </div>\r\n </div>\r\n })\r\n);\r\n","import React from 'react';\r\nimport CrossRing from '../icons/crossRing';\r\nimport styles from './toolTip.scss';\r\n\r\nexport default class ToolTip extends React.Component<{text?: string, \r\n isMobileShop: boolean, closeToolTip}, {}> {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n public render() {\r\n return (\r\n <div className={styles.tt_overlay_background}>\r\n <div className={styles.tt_container}>\r\n {this.props.isMobileShop && <div className={styles.close_tt_btn}\r\n onClick={() => { this.props.closeToolTip();\r\n }}\r\n > <CrossRing /> </div>}\r\n <div className={styles.tt_inner_triangle}></div>\r\n <div className={styles.tt_outer_triangle}></div>\r\n <div className={styles.tt_content}>\r\n <div className={styles.close_btn}></div>\r\n <div className={styles.tt_text} \r\n dangerouslySetInnerHTML={{ __html: this.props.text ? this.props.text : '' }}/>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport styles from './articleSetItem.scss';\r\nimport { IArticleSetItem } from '../../../stores/types';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport { ILocalization } from '../../../types';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nfunction ArticleSetItem(props: IInjectedProps) {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const detailButtonTestId = `article_sets_details_button_${props.key}`;\r\n return (\r\n <div data-testid='article_set_item' key={props.key} className={styles.article_set_item}>\r\n <div>\r\n {\r\n props.articleSetItem.flagAdvertisedAsCostFreeInSet &&\r\n <div data-testid='gratis_article_set_item' className={styles.gratis}>\r\n + {helper.decodeHTML(props.localization?.generalL10n.gratis)}\r\n </div>\r\n }\r\n <div data-testid='article_set_item_quanity_and_salesDesignation'>\r\n {props.articleSetItem.quantity}x {props.articleSetItem.salesDesignation}\r\n </div>\r\n {\r\n !props.articleSetItem.flagAdvertisedAsCostFreeInSet &&\r\n <div data-testid='article_set_item_color_size_info'\r\n className={styles.color_size_info}>\r\n {props.variantLabel}\r\n </div>\r\n }\r\n </div>\r\n {\r\n props.showDetailsButton && props.articleSetItem.isSellableSeparately &&\r\n <button\r\n className={styles.details_button}\r\n data-testid={detailButtonTestId}\r\n onClick={props.handleDetailsButtonClick}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n >\r\n {helper.decodeHTML(props.localization?.generalL10n.details)}\r\n </button>\r\n }\r\n </div>\r\n );\r\n}\r\n\r\nexport default ArticleSetItem;\r\n\r\nexport interface IInjectedProps {\r\n key: number;\r\n articleSetItem: IArticleSetItem;\r\n localization?: ILocalization;\r\n showDetailsButton: boolean;\r\n variantLabel: string;\r\n handleDetailsButtonClick?();\r\n}\r\n","import React from 'react';\r\nimport { ILocalization } from '../../../types';\r\nimport { IResponseData } from '../../../stores/types';\r\nimport Cross from '../../icons/cross';\r\nimport styles from './detailsModal.scss';\r\nimport classNames from 'classnames';\r\nimport { DetailsModalContent } from './detailsModalContent/detailsModalContent';\r\nimport ArrowSmallIcon from '../../icons/arrowSmallIcon';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nfunction DetailsModal({ articleSetItemDetail, localization, isOpen, onClose, variantLabel, detailPageUrl }: IDetailsModal) {\r\n const detailsModalRef = React.useRef<HTMLDivElement>(null);\r\n const closeButtonRef = React.useRef<HTMLDivElement>(null);\r\n const tabNavigation = TabNavigationHelper.instance;\r\n\r\n React.useEffect(() => {\r\n if (isOpen) {\r\n tabNavigation.setFocusAtt(closeButtonRef.current);\r\n window.shell.tabNav.focus(closeButtonRef.current as Element);\r\n }\r\n }, [isOpen]);\r\n\r\n if (!isOpen) {\r\n return <></>;\r\n }\r\n\r\n function redirectToDetailPage() {\r\n const dpURL = new URL(detailPageUrl);\r\n dpURL.searchParams.set('itemorigin', 'ArticleSet');\r\n window.open(dpURL.href, '_blank');\r\n }\r\n\r\n return (\r\n <div className={styles.details_modal} data-testid='details_modal_root'>\r\n <div ref={detailsModalRef} className={styles.details_modal_container} data-testid='details_modal_container'>\r\n <div\r\n className={styles.details_modal_content}\r\n data-testid='details_modal_content'\r\n ref={(el) => tabNavigation.setModalAtt(el)}\r\n >\r\n <div className={styles.details_modal_header} data-testid='details_modal_header'>\r\n <div className={styles.details_modal_text_area}>\r\n <span className={styles.details_modal_title} data-testid='details_modal_title'>\r\n {articleSetItemDetail?.orderModule.articleInfo.title}\r\n </span>\r\n <div className={styles.color_size_info} data-testid='details_modal_color_size_info'>\r\n {variantLabel}\r\n </div>\r\n </div>\r\n <div\r\n className={styles.close_button}\r\n id='article_sets_details_modal_close_button'\r\n onClick={onClose}\r\n ref={closeButtonRef}\r\n >\r\n <Cross />\r\n </div>\r\n </div>\r\n <div className={styles.details_modal_middle} data-testid='details_modal_middle'>\r\n <DetailsModalContent data={articleSetItemDetail} />\r\n </div>\r\n <div className={styles.transition_on_scroll_down} />\r\n <div className={styles.details_modal_footer} data-testid='details_modal_footer'>\r\n <div\r\n className={classNames(styles.footer_button, styles.white)}\r\n id='to_details_page_button'\r\n // eslint-disable-next-line max-len\r\n onClick={() => redirectToDetailPage()}\r\n ref={(el)=> tabNavigation.setFocusAtt(el)}\r\n >\r\n <div className={styles.to_details_page}>\r\n {localization?.generalL10n.toTheDetailsPage}\r\n </div>\r\n <ArrowSmallIcon />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ninterface IDetailsModal {\r\n localization: ILocalization;\r\n isOpen: boolean;\r\n articleSetItemDetail: IResponseData;\r\n variantLabel: string;\r\n detailPageUrl: string;\r\n onClose?();\r\n}\r\n\r\nexport default DetailsModal;\r\n","import React, { useEffect } from 'react';\r\nimport ProductDescription from '../../../productInfo/description/productDescription';\r\nimport styles from './detailsModalContent.scss';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\nimport Extras from '../../../productInfo/extras/extras';\r\nimport * as helper from '../../../../helper/html-helper';\r\nimport Bullets from '../../../productInfo/bullets/bullets';\r\nimport Materials from '../../../productInfo/materials/materials';\r\nimport CareLabels from '../../../productInfo/careLabels/careLabels';\r\nimport ShoeWeights from '../../../productInfo/shoeWeights/shoeWeights';\r\nimport { IInjectedProps } from '../../../../types';\r\nimport { IResponseData } from '../../../../stores/types';\r\nimport ArticleSetItem from '../../articleSetItem/articleSetItem';\r\nimport { getVariantLabel } from '../../productInfoArticleSets';\r\n\r\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\nexport const DetailsModalContent = inject('store')(\r\n observer(({ data, store }: IDetailsModalProps) => {\r\n const productDescriptionRef = React.useRef<ProductDescription>(null);\r\n const bulletsRef = React.useRef<Bullets>(null);\r\n const productContentRef = React.useRef<HTMLDivElement>(null);\r\n const productImageRef = React.useRef<HTMLImageElement>(null);\r\n const extrasRef = React.useRef<Extras>(null);\r\n const shoeWeightsRef = React.useRef<ShoeWeights>(null);\r\n const materialsRef = React.useRef<Materials>(null);\r\n const careLabelsRef = React.useRef<CareLabels>(null);\r\n\r\n const structuredText = data.shutterModule.productInfo.description.bullets;\r\n const injectedRichText = data.allRichTexts;\r\n const orderedDisclaimers = data.shutterModule.productInfo.description.orderedDisclaimers;\r\n const commonRtfText = data.shutterModule.productInfo.description.commonRtfTextFromWsd;\r\n const materials = data.shutterModule.productInfo.description.materials;\r\n const careLabels = data.shutterModule.productInfo.description.careInstructions;\r\n const shoeWeights = data.shutterModule.productInfo.description.shoeWeights;\r\n const functionalLayers = data.shutterModule.productInfo.description.functionLayers;\r\n const articleSetItem = data.shutterModule.productInfo.description.articleSetItemDescriptions;\r\n\r\n const productInfo: IDetailsModalContent = {\r\n tabs: [\r\n {\r\n title: helper.decodeHTML(store?.localization.generalL10n.briefDescription),\r\n content: (\r\n <>\r\n {(articleSetItem && articleSetItem.length > 0) ?\r\n <div>\r\n <div className={styles.title_set_consists_of} data-testid='dm_title_set_consists_of'>\r\n {helper.decodeHTML(store?.localization.generalL10n.articelSetConsistsOf)}\r\n </div>\r\n <div data-testid='dm_article_sets_wrapper'>\r\n {\r\n articleSetItem?.map((articleSetItem, index) => {\r\n\r\n return (\r\n <ArticleSetItem key={index} articleSetItem={articleSetItem}\r\n localization={store?.localization} showDetailsButton={false}\r\n variantLabel={getVariantLabel(articleSetItem, store)} />\r\n );\r\n })\r\n }\r\n </div>\r\n </div>\r\n :\r\n <div>\r\n {\r\n (structuredText && structuredText.id) ?\r\n <Bullets\r\n ref={bulletsRef}\r\n structuredTextId={structuredText.id}\r\n injectedRichTexts={injectedRichText} />\r\n :\r\n <ProductDescription\r\n ref={productDescriptionRef}\r\n functionalLayersExists={functionalLayers && functionalLayers.length > 0}\r\n description={commonRtfText}\r\n disclaimersExists={orderedDisclaimers && orderedDisclaimers.length > 0}\r\n />\r\n }\r\n <Materials\r\n ref={materialsRef}\r\n label={store?.localization.generalL10n.materialLabel}\r\n materials={materials}\r\n grammageLabel={store?.localization.generalL10n.grammage}\r\n portalMandantToken={store?.dataStore.contextData.portalMandantToken}\r\n />\r\n <CareLabels\r\n ref={careLabelsRef}\r\n label={store?.localization.generalL10n.careLabel}\r\n careLabels={careLabels}\r\n isMobileShop={store?.isMobileShop}\r\n />\r\n <ShoeWeights\r\n ref={shoeWeightsRef}\r\n shoeWeights={shoeWeights}\r\n gramsInSizeLbl={store?.localization.generalL10n.gramsInSize}\r\n approxWeightLbl={store?.localization.generalL10n.approxWeight}\r\n />\r\n </div>\r\n }\r\n </>\r\n\r\n ),\r\n },\r\n {\r\n title: helper.decodeHTML(store?.localization.generalL10n.extras),\r\n content: (\r\n <Extras\r\n ref={extrasRef}\r\n extras={data.shutterModule.productInfo.extras}\r\n debuggerIsOn={store!.debuggerIsOn}\r\n updateProductInfoContentHeight={updateAdditionalLayout}\r\n injectedRichText={injectedRichText}\r\n />\r\n ),\r\n },\r\n ],\r\n };\r\n\r\n /* eslint-disable*/\r\n function updateAdditionalLayout() {\r\n }\r\n\r\n const [activeTab, setActiveTab] = React.useState(productInfo.tabs[0]);\r\n\r\n useEffect(() => {\r\n if (productDescriptionRef && productDescriptionRef.current && productImageRef) {\r\n productDescriptionRef.current.update(\r\n commonRtfText, functionalLayers && functionalLayers.length > 0,\r\n orderedDisclaimers && orderedDisclaimers.length > 0\r\n );\r\n }\r\n\r\n if (shoeWeightsRef && shoeWeightsRef.current) {\r\n shoeWeightsRef.current.update(shoeWeights);\r\n }\r\n\r\n if (extrasRef && extrasRef.current) {\r\n if (data.shutterModule.productInfo.extras.length === 0 &&\r\n activeTab.title === helper.decodeHTML(store?.localization.generalL10n.extras)) {\r\n setActiveTab(productInfo.tabs[0])\r\n return;\r\n }\r\n\r\n extrasRef.current.updateExtras(data.shutterModule.productInfo.extras);\r\n extrasRef.current.turnOnDebugger(store!.debuggerIsOn);\r\n }\r\n\r\n if (bulletsRef && bulletsRef.current && structuredText && structuredText.id)\r\n bulletsRef.current.updateBullets(structuredText.id);\r\n\r\n if (careLabelsRef && careLabelsRef.current) {\r\n careLabelsRef.current.update(careLabels);\r\n }\r\n\r\n if (materialsRef && materialsRef.current) {\r\n materialsRef.current.update(materials);\r\n }\r\n });\r\n\r\n return (\r\n <>\r\n <div className={styles.product_info_details_container} >\r\n <div className={styles.product_image} data-testid='dm_article_set_product_image'>\r\n <img alt={helper.decodeHTML(data.mixedMedia.altTagForImages) ?? ''}\r\n ref={productImageRef} src={data.mixedMedia.image.fullPath} />\r\n </div>\r\n <div className={styles.product_info_tabs} data-testid='dm_article_set_product_info_tabs'>\r\n <div\r\n className={classNames(\r\n styles.product_info_tabs_header,\r\n { [styles.no_extras]: data.shutterModule.productInfo.extras.length === 0 }\r\n )}\r\n >\r\n {productInfo.tabs.map(tab => {\r\n if (articleSetItem && articleSetItem.length > 0\r\n && tab.title === helper.decodeHTML(store?.localization.generalL10n.extras))\r\n return null;\r\n return (\r\n <div\r\n key={tab.title}\r\n id='details_modal_info_tab'\r\n className={classNames(styles.product_info_tab, {\r\n [styles.active]: tab.title === activeTab.title,\r\n })}\r\n onClick={() => {\r\n if (tab.title !== activeTab.title)\r\n setActiveTab(tab)\r\n }\r\n }\r\n >\r\n {tab.title}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n\r\n <div className={styles.dm_product_info_content}\r\n data-testid='dm_article_set_product_info_content'\r\n role='content'\r\n ref={productContentRef}\r\n >\r\n {activeTab.content}\r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n })\r\n);\r\n\r\ninterface IDetailsModalContent {\r\n tabs: IDetailsModalContentTab[];\r\n}\r\n\r\ninterface IDetailsModalProps extends IInjectedProps {\r\n data: IResponseData;\r\n}\r\n\r\ninterface IDetailsModalContentTab {\r\n title?: string;\r\n content: React.ReactNode;\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport styles from './productInfoArticleSets.scss';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../types';\r\nimport * as helper from '../../helper/html-helper';\r\nimport ProductAdditionalLayout from '../productInfo/additionalLayout/productAdditionalLayout';\r\nimport { RichText } from '../../helper/richText';\r\nimport DetailsModal from './detailsModal/detailsModal';\r\nimport { IArticleSetItem } from '../../stores/types';\r\nimport { IResponseData } from '../../stores/types';\r\nimport Bullets from '../productInfo/bullets/bullets';\r\nimport Disclaimers from '../productInfo/disclaimer/disclaimers';\r\nimport ArticleSetItem from './articleSetItem/articleSetItem';\r\nimport { MainStore } from '../../stores/MainStore';\r\n\r\nexport function getVariantLabel(articleSetItem: IArticleSetItem | null, store?: MainStore): string {\r\n if (articleSetItem) {\r\n const colorText = articleSetItem.colorText?.trim();\r\n const sizeText = articleSetItem.sizeText?.trim();\r\n const modelText = articleSetItem.modelText?.trim();\r\n\r\n const returnValue: Array<string> = [];\r\n if (colorText && colorText.length > 0) {\r\n const colorLabel = store?.localization.generalL10n.textColor + ': ' + colorText;\r\n returnValue.push(colorLabel);\r\n }\r\n if (sizeText && sizeText.length > 0) {\r\n const sizeLabel = store?.localization.generalL10n.textSize + ': ' + sizeText;\r\n returnValue.push(sizeLabel);\r\n }\r\n if (modelText && modelText.length > 0) {\r\n const modelLabel = store?.localization.generalL10n.textModel + ': ' + modelText;\r\n returnValue.push(modelLabel);\r\n }\r\n if (returnValue.length > 0) {\r\n return returnValue.join(', ');\r\n } else {\r\n return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n\r\n}\r\n/* eslint-disable max-len */\r\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\nexport const ProductInfoArticleSets = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n const [renderAdditionalLayout, setRenderAdditionalLayout] = useState(false);\r\n const [detailsModalOpen, setDetailsModalOpen] = useState(false);\r\n const [openedArticleSetItem, setOpenedArticleSetItem] = useState<IArticleSetItem | null>(null);\r\n const [articleSetItemDetail, setArticleSetItemDetail] = useState<IResponseData | null>(null);\r\n const [productInfoContentHeight, setProductInfoContentHeight] = useState(0);\r\n\r\n const productContentRef = React.useRef<HTMLDivElement>(null);\r\n const productImageRef = React.useRef<HTMLImageElement>(null);\r\n const bulletsRef = React.useRef<Bullets>(null);\r\n const disclaimersRef = React.useRef<Disclaimers>(null);\r\n const [showContent, setShowContent] = useState(false);\r\n\r\n const structuredText = store!.fetchedData.shutterModule.productInfo.description.bullets;\r\n const orderedDisclaimers = store!.fetchedData.shutterModule.productInfo.description.orderedDisclaimers;\r\n\r\n function handleDetailsButtonClick(value: boolean, newArticleSetItem?: IArticleSetItem) {\r\n if (value) {\r\n if (newArticleSetItem) {\r\n const savKeyVariants = newArticleSetItem.salesArticleVariantKey.split('-');\r\n const masterArticleNo = newArticleSetItem.masterArticleNo;\r\n\r\n store?.fetch.fetch(savKeyVariants[0], savKeyVariants[1], masterArticleNo, savKeyVariants[2]).then(result => {\r\n if (result) {\r\n store?.scrollLock.lock()\r\n setOpenedArticleSetItem(newArticleSetItem);\r\n setArticleSetItemDetail(result);\r\n setDetailsModalOpen(value);\r\n } else {\r\n setArticleSetItemDetail(null);\r\n setOpenedArticleSetItem(null);\r\n }\r\n });\r\n }\r\n store?.hideEsAppButton();\r\n } else {\r\n store?.scrollLock.unlock();\r\n setDetailsModalOpen(value);\r\n store?.showEsAppButton();\r\n }\r\n }\r\n\r\n const productInfo: IProductInfo = {\r\n title: helper.decodeHTML(store?.localization.generalL10n.briefDescription),\r\n content: (\r\n <div>\r\n {\r\n structuredText && structuredText.id &&\r\n <Bullets\r\n ref={bulletsRef}\r\n structuredTextId={structuredText.id} />\r\n\r\n }\r\n <div data-testid='title_article_set_consists_of' className={styles.title_set_consists_of}>\r\n {helper.decodeHTML(store?.localization.generalL10n.articelSetConsistsOf)}\r\n </div>\r\n <div data-testid='article_sets_wrapper'>\r\n {\r\n store?.dataStore.shutterModule.productInfo.description.articleSetItemDescriptions?.map((articleSetItem, index) => {\r\n\r\n return (\r\n <ArticleSetItem key={index} articleSetItem={articleSetItem}\r\n localization={store?.localization} showDetailsButton={true}\r\n variantLabel={getVariantLabel(articleSetItem, store)}\r\n handleDetailsButtonClick={() => handleDetailsButtonClick(true, articleSetItem)} />\r\n );\r\n })\r\n }\r\n </div>\r\n {\r\n orderedDisclaimers && orderedDisclaimers.length > 0 &&\r\n <Disclaimers\r\n ref={disclaimersRef}\r\n disclaimers={orderedDisclaimers}\r\n debuggerIsOn={store!.debuggerIsOn}\r\n structuredTextExists={structuredText != null\r\n && structuredText.id.length > 0}\r\n isFromArticleSet={true}\r\n />\r\n }\r\n </div>\r\n ),\r\n }\r\n\r\n useEffect(() => {\r\n if (disclaimersRef && disclaimersRef.current) {\r\n disclaimersRef.current.update(orderedDisclaimers);\r\n\r\n disclaimersRef.current.turnOnDebugger(store!.debuggerIsOn);\r\n }\r\n\r\n if (bulletsRef && bulletsRef.current && structuredText && structuredText.id)\r\n bulletsRef.current.updateBullets(structuredText.id);\r\n });\r\n\r\n useEffect(() => {\r\n updateAdditionalLayout(true);\r\n }, [store?.fetchedData]);\r\n\r\n function updateAdditionalLayout(recalculateClientHeight = false) {\r\n if (productContentRef.current) {\r\n const content = productContentRef.current.firstChild as HTMLElement;\r\n if (content) {\r\n // reset old styles:\r\n productContentRef.current.classList.remove('pdp-removed_overflow');\r\n\r\n if (recalculateClientHeight)\r\n content.removeAttribute('style');\r\n\r\n const isBigContent: boolean = content.clientHeight >= 552;\r\n if (isBigContent) {\r\n content.style.maxHeight = '511px';\r\n } else {\r\n productContentRef.current.classList.add('pdp-removed_overflow');\r\n }\r\n setRenderAdditionalLayout(isBigContent);\r\n setProductInfoContentHeight(content.clientHeight);\r\n setShowContent(false);\r\n }\r\n }\r\n }\r\n\r\n const claimRichTextId = store!.fetchedData.shutterModule.productInfo.claim?.text?.id;\r\n const emotionalTextRichtextId = store!.fetchedData.shutterModule.productInfo.emotionalText?.text?.id;\r\n return (\r\n <>\r\n <div data-testid='article_sets_product_info_container' className={styles.product_info_container}>\r\n <div data-testid='article_sets_product_image' className={styles.product_image}>\r\n <img alt={helper.decodeHTML(store!.mixedMediaStore.altTagForImages) ?? ''} \r\n ref={productImageRef} src={store!.mixedMediaStore.mainImage.fullPath} />\r\n </div>\r\n <div data-testid='article_sets_product_info_tabs' className={styles.product_info_tabs}>\r\n {\r\n store!.fetchedData.shutterModule.productInfo.claim &&\r\n <div\r\n className={classNames(styles.claim)}\r\n data-testid='product_info_claim'\r\n >\r\n <RichText richTextId={claimRichTextId} />\r\n </div>\r\n }\r\n {\r\n store!.fetchedData.shutterModule.productInfo.emotionalText &&\r\n <div\r\n className={classNames(styles.emotionalText)}\r\n data-testid='product_info_emotionaltext'\r\n >\r\n <RichText richTextId={emotionalTextRichtextId} />\r\n </div>\r\n }\r\n <div data-testid='article_sets_product_info_tabs_header'\r\n className={classNames(\r\n styles.product_info_tabs_header,\r\n { [styles.no_extras]: store!.fetchedData.shutterModule.productInfo.extras.length === 0 },\r\n { [styles.no_specs]: store!.fetchedData.shutterModule.productInfo.details.length === 0 }\r\n )}\r\n >\r\n <div\r\n key={productInfo.title}\r\n data-testid='info_tab'\r\n className={classNames(styles.product_info_tab, {\r\n [styles.active]: productInfo.title\r\n })}\r\n >\r\n {productInfo.title}\r\n </div>\r\n </div>\r\n <div\r\n id='product_info_content'\r\n className={styles.product_info_content}\r\n role='content'\r\n ref={productContentRef}\r\n >\r\n {productInfo.content}\r\n </div>\r\n </div>\r\n </div>\r\n {\r\n store && articleSetItemDetail && openedArticleSetItem &&\r\n <DetailsModal\r\n isOpen={detailsModalOpen}\r\n onClose={() => handleDetailsButtonClick(false)}\r\n localization={store.localization}\r\n articleSetItemDetail={articleSetItemDetail}\r\n variantLabel={getVariantLabel(openedArticleSetItem, store)}\r\n detailPageUrl={openedArticleSetItem?.linkToDetailsPage}\r\n />\r\n }\r\n <ProductAdditionalLayout\r\n renderAdditionalLayout={renderAdditionalLayout}\r\n productInfoContentHeight={productInfoContentHeight}\r\n productContentRef={productContentRef}\r\n showContent={showContent}\r\n setShowContent={setShowContent}\r\n isArticleSet={true}\r\n />\r\n </>\r\n );\r\n })\r\n);\r\n\r\ninterface IProductInfo {\r\n title?: string;\r\n content: React.ReactNode;\r\n}\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport styles from '../productInfo.scss';\r\nimport IconArrowExtraSmallRight from '../../icons/icon_arrow_extra_small_right';\r\nimport { MainStore } from '../../../stores/MainStore';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nconst ProductAdditionalLayout = inject('store')(\r\n observer((props: IProductAdditionalLayout) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const {\r\n store,\r\n renderAdditionalLayout,\r\n productInfoContentHeight,\r\n productContentRef,\r\n showContent,\r\n setShowContent,\r\n isArticleSet,\r\n } = props;\r\n\r\n function handleExpandClick() {\r\n const currentState = !showContent;\r\n if (productContentRef.current) {\r\n const content = productContentRef.current.firstChild as HTMLElement;\r\n if (content) {\r\n\r\n const expandedHeight = isArticleSet ? content.scrollHeight : (productInfoContentHeight + 300);\r\n content.style.maxHeight = currentState ? expandedHeight + 'px' : '511px';\r\n\r\n currentState\r\n ? productContentRef.current.classList.add('pdp-expand_content')\r\n : setTimeout(() => {\r\n productContentRef.current?.classList.remove('pdp-expand_content');\r\n }, 600);\r\n\r\n currentState\r\n ? setTimeout(() => {\r\n productContentRef.current?.classList.add('pdp-removed_overflow')}, \r\n 700)\r\n : productContentRef.current.classList.remove('pdp-removed_overflow');\r\n \r\n currentState\r\n ? content.style.marginBottom = '24px'\r\n : setTimeout(() => {content.style.marginBottom = '0'}, 200);\r\n }\r\n }\r\n\r\n setShowContent(!showContent);\r\n }\r\n\r\n if (!renderAdditionalLayout) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div\r\n data-testid={'product-additional-layout'}\r\n className={classNames(styles.wrapper_product_info_separator, { [styles.open]: showContent })}\r\n >\r\n <div\r\n role='button'\r\n className={classNames(styles.button_more_product_info, { [styles.open]: showContent })}\r\n onClick={handleExpandClick}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n onKeyDown={tabNavigation.handleKeyDown}\r\n >\r\n {showContent\r\n ? helper.decodeHTML(store?.localization.generalL10n.less)\r\n : helper.decodeHTML(store?.localization.generalL10n.more)}\r\n <IconArrowExtraSmallRight />\r\n </div>\r\n </div>\r\n );\r\n })\r\n);\r\n\r\ninterface IProductAdditionalLayout {\r\n store?: MainStore;\r\n renderAdditionalLayout: boolean;\r\n productInfoContentHeight: number;\r\n productContentRef: React.MutableRefObject<HTMLDivElement | null>;\r\n showContent: boolean;\r\n setShowContent(newValue: boolean);\r\n isArticleSet?: boolean;\r\n}\r\n\r\nexport default ProductAdditionalLayout;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport styles from './bullets.scss';\r\nimport { RichText } from '../../../helper/richText';\r\nimport { IRichTextItemsInternal } from '../../../stores/types';\r\n\r\nexport default class Bullets extends React.Component<\r\n { structuredTextId: string; injectedRichTexts?: IRichTextItemsInternal[] },\r\n { structuredTextId: string; }> {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n structuredTextId: this.props.structuredTextId\r\n };\r\n }\r\n\r\n public updateBullets(structuredTextId: string): void {\r\n this.setState({ structuredTextId: structuredTextId });\r\n }\r\n\r\n public render() {\r\n return (\r\n <div data-testid='bullet_text'\r\n className={classNames(styles.bullet_text, styles.text)}>\r\n <RichText richTextId={this.state.structuredTextId}\r\n injectedRichTexts={this.props.injectedRichTexts} />\r\n </div>\r\n )\r\n }\r\n}\r\n","import React from 'react';\r\nimport { ScrollLock } from '../../../helper/scrollLock';\r\nimport { ICareLabel } from '../../../stores/types';\r\nimport CrossRing from '../../icons/crossRing';\r\nimport styles from './careLabels.scss';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport default class CareLabels extends React.Component<\r\n { careLabels: ICareLabel[], label?: string, isMobileShop?: boolean },\r\n { careLabels: ICareLabel[], clIconSrc: string, clDescription: string }> {\r\n\r\n private tabNavigation: TabNavigationHelper\r\n private readonly scrollLock: ScrollLock;\r\n private clOverlayRef = React.createRef<HTMLDivElement>();\r\n private clOverlayBackgroundRef = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props) {\r\n super(props);\r\n this.scrollLock = ScrollLock.instance;\r\n\r\n this.state = {\r\n careLabels: this.props.careLabels,\r\n clIconSrc: '',\r\n clDescription: ''\r\n };\r\n this.tabNavigation = TabNavigationHelper.instance;\r\n this.openLabelOverlay = this.openLabelOverlay.bind(this);\r\n this.closeLabelOverlay = this.closeLabelOverlay.bind(this);\r\n }\r\n\r\n public update(careLabels: ICareLabel[]): void {\r\n this.setState({ careLabels: careLabels });\r\n }\r\n\r\n private openLabelOverlay(careLabel: ICareLabel): void {\r\n if (this.clOverlayRef.current) {\r\n this.setState({\r\n clIconSrc: careLabel.icon,\r\n clDescription: careLabel.description\r\n }, () => {\r\n this.scrollLock.lock();\r\n this.clOverlayBackgroundRef.current?.classList.add(styles.show);\r\n this.clOverlayRef.current?.classList.add(styles.display_it);\r\n });\r\n }\r\n }\r\n\r\n private closeLabelOverlay(): void {\r\n this.setState({\r\n clIconSrc: '',\r\n clDescription: ''\r\n }, () => {\r\n this.scrollLock.unlock();\r\n this.clOverlayRef.current?.classList.remove(styles.display_it);\r\n this.clOverlayBackgroundRef.current?.classList.remove(styles.show);\r\n });\r\n }\r\n\r\n public render() {\r\n return (\r\n (this.state.careLabels && this.state.careLabels.length > 0) &&\r\n <div className={styles.careLabels} data-testid='careLabels'>\r\n {this.props.isMobileShop &&\r\n <div className={styles.cl_overlay_background}\r\n ref={this.clOverlayBackgroundRef}></div>\r\n }\r\n {this.props.isMobileShop &&\r\n <div className={styles.cl_overlay} ref={this.clOverlayRef}>\r\n <div className={styles.o_crossIcon} onClick={this.closeLabelOverlay}>\r\n <CrossRing />\r\n </div>\r\n <img className={styles.cl_icon} alt={this.state.clDescription} data-testid='cl_icon'\r\n src={this.state.clIconSrc} />\r\n <span className={styles.cl_description}>\r\n {this.state.clDescription}\r\n </span>\r\n </div>\r\n }\r\n <div className={styles.cl_title} data-testid='cl_title'>{this.props.label}</div>\r\n {\r\n this.state.careLabels.map((careLabel: ICareLabel, index: number) => {\r\n return (\r\n <div className={styles.careLabel} key={index} data-testid='careLabel'>\r\n <div className={styles.cl_icon_placeholder}\r\n onClick={() => { this.openLabelOverlay(careLabel) }}>\r\n <img className={styles.cl_icon} data-testid='cl_icon'\r\n alt={careLabel.description} src={careLabel.icon} />\r\n </div>\r\n <span className={styles.cl_description}>{careLabel.description}</span>\r\n </div>\r\n );\r\n })\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport styles from './productDescription.scss';\r\nimport classNames from 'classnames';\r\n\r\nexport default class ProductDescription extends React.Component<IDescriptionProps, IDescriptionState> {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n description: this.props.description,\r\n functionalLayersExists: this.props.functionalLayersExists,\r\n disclaimersExists: this.props.disclaimersExists\r\n };\r\n\r\n this.update = this.update.bind(this);\r\n }\r\n \r\n public update(description: string, \r\n functionalLayersExists: boolean,\r\n disclaimersExists: boolean): void {\r\n this.setState({ \r\n description: description,\r\n functionalLayersExists: functionalLayersExists,\r\n disclaimersExists: disclaimersExists\r\n });\r\n }\r\n\r\n public render() {\r\n return (\r\n <div>\r\n <div\r\n className={classNames(styles.description, {\r\n [styles.dividing_line]: this.state.functionalLayersExists \r\n || this.state.disclaimersExists,\r\n })}\r\n data-testid='product_info_description'\r\n dangerouslySetInnerHTML={{ __html: this.state.description }}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface IDescriptionProps {\r\n description: string;\r\n functionalLayersExists: boolean;\r\n disclaimersExists: boolean;\r\n}\r\n\r\ninterface IDescriptionState {\r\n description: string;\r\n functionalLayersExists: boolean;\r\n disclaimersExists: boolean;\r\n}\r\n","import React from 'react';\r\nimport { ISpecificationEntry } from '../../../stores/types';\r\nimport styles from './details.scss';\r\n\r\nexport default class Details extends React.Component<IDetails, {details: ISpecificationEntry[]}> {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n details: this.props.details\r\n }\r\n }\r\n \r\n public updateSpecs(newDetails: ISpecificationEntry[]): void {\r\n this.setState({ details: newDetails });\r\n }\r\n\r\n public render() {\r\n return (\r\n <div>\r\n <table className={styles.spec_table}>\r\n <tbody>\r\n {this.state.details.map(spec => {\r\n return (\r\n <tr key={spec.name}>\r\n <td className={styles.spec_name}>{spec.name}</td>\r\n <td className={styles.spec_value}>\r\n {spec.orderedValues.map(value => {\r\n return <div key={value}>{value}</div>;\r\n })}\r\n </td>\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface IDetails {\r\n details: ISpecificationEntry[];\r\n}\r\n","import React from 'react';\r\nimport { RichText } from '../../../helper/richText';\r\nimport { IDisclaimer } from '../../../stores/types';\r\nimport styles from './disclaimers.scss';\r\nimport classNames from 'classnames';\r\nimport DebugBarHelper from '../../../helper/debugBarHelper';\r\n\r\nexport default class Disclaimers extends React.Component<{ disclaimers: IDisclaimer[], \r\n debuggerIsOn: boolean, structuredTextExists: boolean, isFromArticleSet?: boolean},\r\n { disclaimers: IDisclaimer[], debuggerIsOn: boolean , \r\n structuredTextExists: boolean, isFromArticleSet?: boolean}> {\r\n\r\n private debugBarHelper: DebugBarHelper;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n disclaimers: this.props.disclaimers,\r\n debuggerIsOn: this.props.debuggerIsOn,\r\n structuredTextExists: this.props.structuredTextExists,\r\n isFromArticleSet: this.props.isFromArticleSet\r\n };\r\n\r\n this.debugBarHelper = DebugBarHelper.instance;\r\n\r\n this.turnOnDebugger = this.turnOnDebugger.bind(this);\r\n }\r\n\r\n public turnOnDebugger(value: boolean): void {\r\n this.setState({ debuggerIsOn: value });\r\n }\r\n\r\n public update(disclaimers: IDisclaimer[]): void {\r\n this.setState({ disclaimers: disclaimers });\r\n }\r\n\r\n public render() {\r\n return (\r\n this.state.disclaimers &&\r\n <div className={styles.disclaimers}>\r\n {this.state.structuredTextExists && \r\n !this.state.isFromArticleSet && <hr data-testid='disclaimers_dividing_line' />}\r\n {\r\n this.state.disclaimers.map((disclaimer: IDisclaimer, index) => {\r\n if (disclaimer.rtfText && disclaimer.rtfText.length > 0) {\r\n return (<div key={index} className={classNames(styles.disclaimer,\r\n {\r\n [this.debugBarHelper.getDebuggerClassName(\r\n disclaimer.dataMode)]: this.state.debuggerIsOn\r\n })}\r\n dangerouslySetInnerHTML={{ __html: disclaimer.rtfText }} />\r\n );\r\n }\r\n else {\r\n return (<div key={index} className={classNames(styles.disclaimer,\r\n {\r\n [this.debugBarHelper.getDebuggerClassName(\r\n disclaimer.dataMode)]: this.state.debuggerIsOn\r\n })}>\r\n <RichText richTextId={disclaimer.structuredText.id} />\r\n </div>)\r\n }\r\n })\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport DebugBarHelper from '../../../helper/debugBarHelper';\r\nimport { RichText } from '../../../helper/richText';\r\nimport { IProductFeatureInExtras, IRichTextItemsInternal } from '../../../stores/types';\r\nimport styles from './extras.scss';\r\nimport classNames from 'classnames';\r\n\r\nexport default class Extras extends React.Component<IExtras,\r\n { debuggerIsOn: boolean; extras: IProductFeatureInExtras[];\r\n injectedRichText?: IRichTextItemsInternal[]; }> {\r\n private debugBarHelper: DebugBarHelper;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n debuggerIsOn: this.props.debuggerIsOn,\r\n extras: this.props.extras,\r\n injectedRichText: this.props.injectedRichText,\r\n };\r\n\r\n this.debugBarHelper = DebugBarHelper.instance;\r\n\r\n this.turnOnDebugger = this.turnOnDebugger.bind(this);\r\n }\r\n\r\n public turnOnDebugger(value: boolean): void {\r\n this.setState({debuggerIsOn: value});\r\n }\r\n\r\n public updateExtras(extras: IProductFeatureInExtras[]): void {\r\n this.setState({ extras: extras });\r\n }\r\n\r\n public render() {\r\n return (\r\n <div>\r\n {this.state.extras.map(module => {\r\n return (\r\n <div key={module.title} className={styles.text_module}>\r\n <div className={styles.title} dangerouslySetInnerHTML={{ __html: module.title }} />\r\n <div className={styles.tm_container}>\r\n {(module.rtfText && module.rtfText.length > 0) &&\r\n <div className={classNames(styles.text,\r\n {[this.debugBarHelper.getDebuggerClassName(module.dataMode)]:\r\n this.state.debuggerIsOn})}\r\n dangerouslySetInnerHTML={{ __html: module.rtfText }} />\r\n }\r\n {(module.structuredText && module.structuredText.id) &&\r\n <div className={classNames(styles.text,\r\n {[this.debugBarHelper.getDebuggerClassName(module.dataMode)]:\r\n this.state.debuggerIsOn})}>\r\n <RichText richTextId={module.structuredText.id}\r\n injectedRichTexts={this.props.injectedRichText}/>\r\n </div>\r\n }\r\n {module.image && (\r\n <img\r\n onLoad={() => {this.props.updateProductInfoContentHeight(true)}}\r\n src={module.image.imageUrl}\r\n className={styles.tm_image}\r\n alt={module.image.altText}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface IExtras {\r\n extras: IProductFeatureInExtras[];\r\n debuggerIsOn: boolean;\r\n updateProductInfoContentHeight(recalculateClientHeight: boolean);\r\n injectedRichText?: IRichTextItemsInternal[];\r\n}\r\n","import React from 'react';\r\nimport styles from './functionalLayers.scss';\r\nimport { IFunctionalLayer } from '../../../stores/types';\r\nimport FunctionalLayerBase from '../../icons/functionalLayerBase';\r\nimport FunctionalLayerWarmth from '../../icons/functionalLayerWarmth';\r\nimport FunctionalLayerWeather from '../../icons/functionalLayerWeather';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport default class FunctionalLayers extends React.Component<\r\n { functionalLayers: IFunctionalLayer[] }, { functionalLayers: IFunctionalLayer[] }> {\r\n private tabNavigation: TabNavigationHelper;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n functionalLayers: this.props.functionalLayers\r\n };\r\n this.tabNavigation = TabNavigationHelper.instance;\r\n this.update = this.update.bind(this);\r\n }\r\n\r\n public update(functionalLayers: IFunctionalLayer[]): void {\r\n this.setState({ functionalLayers: functionalLayers });\r\n }\r\n\r\n private openPopup(url): void {\r\n if (url)\r\n window.open(url, '_blank');\r\n }\r\n\r\n private getButtonIcon(key: string): JSX.Element {\r\n switch (key) {\r\n case 'Basis-Schicht':\r\n return <FunctionalLayerBase />\r\n case 'Wärme-Schicht':\r\n return <FunctionalLayerWarmth />\r\n case 'Wetterschutz-Schicht':\r\n return <FunctionalLayerWeather />\r\n default:\r\n return <></>\r\n }\r\n }\r\n\r\n public render() {\r\n return (\r\n this.state.functionalLayers &&\r\n <div className={styles.functional_layers}>\r\n {this.state.functionalLayers.map(fLayer => {\r\n return (\r\n <div key={fLayer.key} data-testid={fLayer.key}\r\n className={fLayer.redirectUrl ? styles.fl_btn_active : styles.fl_btn}\r\n onClick={() => this.openPopup(fLayer.redirectUrl)}\r\n ref={(el)=> this.tabNavigation.setFocusAtt(el)}>\r\n {this.getButtonIcon(fLayer.key)}\r\n <span dangerouslySetInnerHTML={{ __html: fLayer.buttonText }} />\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IDocumentLink } from '../../../stores/types';\r\nimport styles from './productDescriptionLinks.scss';\r\nimport LogoServiceIcon from '../../icons/LogoServiceIcon';\r\nimport DatasheetIcon from '../../icons/DatasheetIcon';\r\nimport classNames from 'classnames';\r\nimport { IInjectedProps } from '../../../types';\r\nimport ModalWrapper from '../../modalwrapper/modalWrapper';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport ToolTip from '../../personalizeOverlay/toolTip';\r\nimport InfoIcon from '../../icons/infoIcon';\r\nimport SelfDesignIcon from '../../icons/selfDesign';\r\nimport DesignWithAdviceIcon from '../../icons/designWithAdvice';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\n\r\ninterface IDataSheetButtonProps {\r\n datasheet: IDocumentLink;\r\n datasheetLabel: string;\r\n}\r\nconst tabNavigation = TabNavigationHelper.instance;\r\nconst ProductDescriptionLinks = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n\r\n const [toolMobileTipContent, setMobileToolTipContent] = React.useState('');\r\n const [activeToolTip, setActiveToolTip] = React.useState(0);\r\n const logoServiceInfoUrl = store?.fetchedData.shutterModule.productInfo.description.links.logoServiceInfoUrl;\r\n\r\n const onIconTooltipClick = (event, newToolTipContent) => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n store?.scrollLock.lock();\r\n setMobileToolTipContent(newToolTipContent);\r\n setActiveToolTip(3);\r\n };\r\n\r\n const closeToolTip = () => {\r\n setActiveToolTip(0);\r\n setMobileToolTipContent('');\r\n store?.scrollLock.unlock();\r\n }\r\n\r\n const showToolTipOnHover = (toolTipKey: number) => {\r\n if (!store?.isMobileShop)\r\n setActiveToolTip(toolTipKey);\r\n }\r\n\r\n const [datasheetsModalOpen, setDatasheetsModalOpen] = React.useState(false);\r\n const onModalOpenStateChange = newState => {\r\n if (newState) store?.scrollLock.lock();\r\n else store?.scrollLock.unlock();\r\n setDatasheetsModalOpen(newState);\r\n };\r\n function handleDesignYourselfClick() {\r\n store?.onPersonalizeIntent(false);\r\n }\r\n const datasheets = store?.fetchedData.shutterModule.productInfo.description.links.dataSheets;\r\n const localization = store?.localization;\r\n\r\n return (\r\n <>\r\n {datasheets && datasheets.length > 0 && (\r\n <div className={styles.datasheet_hint}>{\r\n store?.localization.generalL10n.datasheetHint}\r\n </div>\r\n )}\r\n <div className={styles.description_link_list}>\r\n {(logoServiceInfoUrl && !store?.dataStore.contextData.featureToggles.enableLogoCreator) && (\r\n <a\r\n className={classNames(styles.link_button, styles.logo_service_info_button)}\r\n href={logoServiceInfoUrl}\r\n data-testid='logo_service_info_button'\r\n rel='noreferrer'\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n >\r\n <div className={styles.link_title}>\r\n <span className={styles.link_icon}>\r\n <LogoServiceIcon />\r\n </span>\r\n <span className={styles.link_label}>\r\n {helper.decodeHTML(localization?.generalL10n.logoService)}\r\n </span>\r\n </div>\r\n </a>\r\n )}\r\n {datasheets && datasheets.length == 1 && (\r\n <DataSheetButton\r\n datasheet={datasheets[0]}\r\n datasheetLabel={localization!.generalL10n.datasheet}\r\n />\r\n )}\r\n {datasheets && datasheets.length > 1 && (\r\n <>\r\n <div\r\n data-testid={'datasheet_link'}\r\n onClick={() => onModalOpenStateChange(true)}\r\n className={classNames(styles.link_button, styles.multiple_datasheets_modal_button)}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n >\r\n <div className={styles.link_title}>\r\n <span className={styles.link_icon}>\r\n <DatasheetIcon />\r\n </span>\r\n <span className={styles.link_label}>{localization?.generalL10n.datasheets}</span>\r\n </div>\r\n </div>\r\n <ModalWrapper\r\n isOpen={datasheetsModalOpen}\r\n onClose={() => onModalOpenStateChange(false)}\r\n title={localization!.generalL10n.datasheets}\r\n subtitle={store?.fetchedData.orderModule.articleInfo.title}\r\n content={\r\n <div>\r\n {datasheets.map((dataSheet, i) => {\r\n return (\r\n <DataSheetButton\r\n datasheet={dataSheet}\r\n datasheetLabel={dataSheet.title}\r\n key={i}\r\n />\r\n );\r\n })}\r\n </div>\r\n }\r\n />\r\n </>\r\n )}\r\n </div>\r\n {store?.dataStore.contextData.featureToggles.enableLogoCreator &&\r\n <div className={styles.logo_creator_service}>\r\n {(activeToolTip === 3) &&\r\n <ToolTip key={3} text={toolMobileTipContent}\r\n isMobileShop={store.isMobileShop}\r\n closeToolTip={closeToolTip}\r\n />\r\n }\r\n {(store?.dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable ||\r\n store.dataStore.bannerModule.logoServiceRedirectUrl) &&\r\n <div className={styles.lcs_title}>{localization?.generalL10n.personalization}</div>\r\n }\r\n {store?.dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable &&\r\n <div onClick={handleDesignYourselfClick} data-testid='logoCreatorBtn'\r\n onMouseEnter={() => {\r\n showToolTipOnHover(1);\r\n }}\r\n onMouseLeave={() => {\r\n showToolTipOnHover(0);\r\n }}\r\n className={classNames(styles.link_button, styles.multiple_datasheets_modal_button)}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n >\r\n {store.isMobileShop &&\r\n <div className={styles.icon_tooltip}\r\n data-testid='design_yourself_info'\r\n onClick={(event: React.MouseEvent) => {\r\n onIconTooltipClick(event, helper.decodeHTML(\r\n localization?.generalL10n.designYourselfInfo));\r\n }}>\r\n <InfoIcon />\r\n </div>}\r\n <div className={styles.link_title}>\r\n <span className={styles.link_icon}>\r\n <SelfDesignIcon />\r\n </span>\r\n <span className={styles.link_label}>{helper.decodeHTML(\r\n localization?.generalL10n.designYourself\r\n )}</span>\r\n </div>\r\n {(!store.isMobileShop && activeToolTip === 1) && <ToolTip key={1} text={\r\n helper.decodeHTML(\r\n localization?.generalL10n.designYourselfInfo\r\n )}\r\n isMobileShop={store.isMobileShop}\r\n closeToolTip={closeToolTip}\r\n />}\r\n </div>\r\n }\r\n {store.dataStore.bannerModule.logoServiceRedirectUrl &&\r\n <a href={logoServiceInfoUrl}\r\n onMouseEnter={() => {\r\n showToolTipOnHover(2);\r\n }}\r\n onMouseLeave={() => {\r\n showToolTipOnHover(0);\r\n }}\r\n data-testid='logo_service_redirect_url'\r\n className={classNames(styles.link_button, styles.multiple_datasheets_modal_button)}\r\n rel='noreferrer'\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n >\r\n {store.isMobileShop &&\r\n <div className={styles.icon_tooltip}\r\n data-testid='with_consulting_info'\r\n onClick={(event: React.MouseEvent) => {\r\n onIconTooltipClick(event, helper.decodeHTML(\r\n localization?.generalL10n.withConsultingInfo));\r\n }}>\r\n <InfoIcon />\r\n </div>}\r\n <div className={styles.link_title}>\r\n <span className={styles.link_icon}>\r\n <DesignWithAdviceIcon />\r\n </span>\r\n <span className={styles.link_label}>{helper.decodeHTML(\r\n localization?.generalL10n.withConsulting\r\n )}</span>\r\n </div>\r\n\r\n {(!store.isMobileShop && activeToolTip === 2) && <ToolTip key={2} text={\r\n helper.decodeHTML(\r\n localization?.generalL10n.withConsultingInfo\r\n )}\r\n isMobileShop={store.isMobileShop}\r\n closeToolTip={closeToolTip}\r\n />}\r\n </a>\r\n }\r\n </div>\r\n }\r\n </>\r\n );\r\n })\r\n);\r\n\r\nfunction DataSheetButton(props: IDataSheetButtonProps) {\r\n return (\r\n <a\r\n className={classNames(styles.link_button, styles.datsheet_button)}\r\n href={props.datasheet.url}\r\n data-testid='datasheet_button'\r\n target='_blank'\r\n rel='noreferrer'\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n >\r\n <div className={styles.link_title}>\r\n <span className={styles.link_icon}>\r\n <DatasheetIcon />\r\n </span>\r\n <span className={styles.link_label}>{props.datasheetLabel}</span>\r\n </div>\r\n </a>\r\n );\r\n}\r\n\r\nexport default ProductDescriptionLinks;\r\n","import React from 'react';\r\nimport { IMaterial, IMaterialFiber, IMaterialLayer } from '../../../stores/types';\r\nimport styles from './materials.scss';\r\n\r\nexport default class Materials extends React.Component<\r\n { materials: IMaterial[], label?: string, grammageLabel?: string,\r\n portalMandantToken?: string },\r\n { materials: IMaterial[]}> {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n materials: this.props.materials\r\n };\r\n }\r\n\r\n public update(materials: IMaterial[]): void {\r\n this.setState({ materials: materials });\r\n }\r\n\r\n private formatPercentageValue(value: number): string {\r\n const stringValue = value.toString();\r\n\r\n if(!this.props.portalMandantToken)\r\n return stringValue;\r\n\r\n if(this.props.portalMandantToken.toLowerCase() !== 'uk') {\r\n return stringValue.replace('.', ',')\r\n }\r\n\r\n return stringValue;\r\n }\r\n\r\n public render() {\r\n return (\r\n this.state.materials && this.state.materials.length > 0 \r\n && this.state.materials[0].layers &&\r\n <div className={styles.materials} data-testid='materials'>\r\n <div className={styles.m_title}>{this.props.label}</div>\r\n {\r\n this.state.materials[0].layers.map(\r\n (material: IMaterialLayer, index: number) => {\r\n return (\r\n <div className={styles.material} key={index} data-testid='material'>\r\n <div className={styles.m_name}>{material.name}</div>\r\n {\r\n material.fibers.map((fiber: IMaterialFiber, index: number) => {\r\n return (\r\n <div className={styles.m_fiber} key={index}>\r\n <span className={styles.f_percentage}>{\r\n this.formatPercentageValue(fiber.percentage)\r\n } %</span>\r\n <span className={styles.f_name}>{fiber.name}</span>\r\n {material.fibers.length > (index + 1) && \r\n <span className={styles.f_divider}>{'/'}</span>}\r\n </div>\r\n );\r\n })\r\n }\r\n {material.grammage && material.grammage > 0 ?\r\n <div className={styles.m_grammage}>{\r\n this.props.grammageLabel?.replace('{0}', material.grammage.toString())\r\n }</div> : null\r\n }\r\n </div>\r\n );\r\n })\r\n }\r\n {this.state.materials[0].additionalInformation \r\n && this.state.materials[0].additionalInformation.length > 0 ? \r\n <div className={styles.additionalInformation}>\r\n {\r\n this.state.materials[0].additionalInformation.map((add: string, index: number)=>{\r\n return (\r\n <span className={styles.add_text} key={index}>{add}</span>\r\n );\r\n })\r\n }\r\n </div> : null\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport ProductDescription from './description/productDescription';\r\nimport ProductDescriptionLinks from './links/productDescriptionLinks';\r\nimport styles from './productInfo.scss';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../types';\r\nimport Details from './details/details';\r\nimport Extras from './extras/extras';\r\nimport * as helper from '../../helper/html-helper';\r\nimport ProductAdditionalLayout from './additionalLayout/productAdditionalLayout';\r\nimport {RichText} from '../../helper/richText';\r\nimport Bullets from './bullets/bullets';\r\nimport Disclaimers from './disclaimer/disclaimers';\r\nimport ShoeWeights from './shoeWeights/shoeWeights';\r\nimport Materials from './materials/materials';\r\nimport CareLabels from './careLabels/careLabels';\r\nimport FunctionalLayers from './functionalLayers/functionalLayers';\r\nimport TabNavigationHelper from '../../helper/tabNavigationHelper';\r\n\r\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\nexport const ProductInfo = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const [renderAdditionalLayout, setRenderAdditionalLayout] = useState(false);\r\n const [productInfoContentHeight, setProductInfoContentHeight] = useState(0);\r\n const productDescriptionRef = React.useRef<ProductDescription>(null);\r\n const functionalLayersRef = React.useRef<FunctionalLayers>(null);\r\n const bulletsRef = React.useRef<Bullets>(null);\r\n const productContentRef = React.useRef<HTMLDivElement>(null);\r\n const productImageRef = React.useRef<HTMLImageElement>(null);\r\n const extrasRef = React.useRef<Extras>(null);\r\n const detailsRef = React.useRef<Details>(null);\r\n const shoeWeightsRef = React.useRef<ShoeWeights>(null);\r\n const disclaimersRef = React.useRef<Disclaimers>(null);\r\n const materialsRef = React.useRef<Materials>(null);\r\n const careLabelsRef = React.useRef<CareLabels>(null);\r\n const [showContent, setShowContent] = useState(false);\r\n\r\n const structuredText = store!.fetchedData.shutterModule.productInfo.description.bullets;\r\n const orderedDisclaimers = store!.fetchedData.shutterModule.productInfo.description.orderedDisclaimers;\r\n const commonRtfText = store!.fetchedData.shutterModule.productInfo.description.commonRtfTextFromWsd;\r\n const shoeWeights = store!.fetchedData.shutterModule.productInfo.description.shoeWeights;\r\n const materials = store!.fetchedData.shutterModule.productInfo.description.materials;\r\n const careLabels = store!.fetchedData.shutterModule.productInfo.description.careInstructions;\r\n const functionalLayers = store!.fetchedData.shutterModule.productInfo.description.functionLayers;\r\n\r\n const productInfo: IProductInfo = {\r\n tabs: [\r\n {\r\n title: helper.decodeHTML(store?.localization.generalL10n.briefDescription),\r\n content: (\r\n <div>\r\n {\r\n (structuredText && structuredText.id) ? \r\n <Bullets \r\n ref={bulletsRef}\r\n structuredTextId={structuredText.id} />\r\n :\r\n <ProductDescription\r\n ref={productDescriptionRef}\r\n functionalLayersExists={functionalLayers && functionalLayers.length > 0}\r\n description={commonRtfText}\r\n disclaimersExists={orderedDisclaimers && orderedDisclaimers.length > 0}\r\n />\r\n }\r\n <ShoeWeights\r\n ref={shoeWeightsRef}\r\n shoeWeights={shoeWeights}\r\n gramsInSizeLbl={store?.localization.generalL10n.gramsInSize}\r\n approxWeightLbl={store?.localization.generalL10n.approxWeight}\r\n />\r\n <Materials\r\n ref={materialsRef}\r\n label={store?.localization.generalL10n.materialLabel}\r\n materials={materials}\r\n grammageLabel={store?.localization.generalL10n.grammage}\r\n portalMandantToken={store?.dataStore.contextData.portalMandantToken}\r\n />\r\n <CareLabels\r\n ref={careLabelsRef}\r\n label={store?.localization.generalL10n.careLabel}\r\n careLabels={careLabels}\r\n isMobileShop={store?.isMobileShop}\r\n />\r\n <Disclaimers\r\n ref={disclaimersRef}\r\n disclaimers={orderedDisclaimers}\r\n debuggerIsOn={store!.debuggerIsOn}\r\n structuredTextExists={structuredText != null \r\n && structuredText.id.length > 0}\r\n />\r\n <FunctionalLayers\r\n ref={functionalLayersRef}\r\n functionalLayers={functionalLayers}\r\n /> \r\n <ProductDescriptionLinks />\r\n </div>\r\n ),\r\n },\r\n {\r\n title: helper.decodeHTML(store?.localization.generalL10n.specs),\r\n content: <Details ref={detailsRef} \r\n details={store!.fetchedData.shutterModule.productInfo.details} />,\r\n },\r\n {\r\n title: helper.decodeHTML(store?.localization.generalL10n.extras),\r\n content: (\r\n <Extras\r\n ref={extrasRef}\r\n extras={store!.fetchedData.shutterModule.productInfo.extras}\r\n debuggerIsOn={store!.debuggerIsOn}\r\n updateProductInfoContentHeight={updateAdditionalLayout}\r\n />\r\n ),\r\n },\r\n ],\r\n };\r\n\r\n const [activeTab, setActiveTab] = React.useState(productInfo.tabs[0]);\r\n\r\n useEffect(() => {\r\n if (productDescriptionRef && productDescriptionRef.current && productImageRef) {\r\n productDescriptionRef.current.update(\r\n commonRtfText, functionalLayers && functionalLayers.length > 0, \r\n orderedDisclaimers && orderedDisclaimers.length > 0\r\n );\r\n }\r\n\r\n if (functionalLayersRef && functionalLayersRef.current) {\r\n functionalLayersRef.current.update(functionalLayers);\r\n }\r\n\r\n if (shoeWeightsRef && shoeWeightsRef.current) {\r\n shoeWeightsRef.current.update(shoeWeights);\r\n }\r\n\r\n if (disclaimersRef && disclaimersRef.current) {\r\n disclaimersRef.current.update(orderedDisclaimers);\r\n\r\n disclaimersRef.current.turnOnDebugger(store!.debuggerIsOn);\r\n }\r\n\r\n if (materialsRef && materialsRef.current) {\r\n materialsRef.current.update(materials);\r\n }\r\n\r\n if (careLabelsRef && careLabelsRef.current) {\r\n careLabelsRef.current.update(careLabels);\r\n }\r\n\r\n if (extrasRef && extrasRef.current) {\r\n if(store!.fetchedData.shutterModule.productInfo.extras.length === 0 &&\r\n activeTab.title === helper.decodeHTML(store?.localization.generalL10n.extras)) {\r\n setActiveTab(productInfo.tabs[0])\r\n return;\r\n }\r\n\r\n extrasRef.current.updateExtras(store!.fetchedData.shutterModule.productInfo.extras);\r\n extrasRef.current.turnOnDebugger(store!.debuggerIsOn);\r\n }\r\n\r\n if (detailsRef && detailsRef.current) {\r\n if(store!.fetchedData.shutterModule.productInfo.details.length === 0 &&\r\n activeTab.title === helper.decodeHTML(store?.localization.generalL10n.specs)) {\r\n setActiveTab(productInfo.tabs[0])\r\n return;\r\n }\r\n\r\n detailsRef.current.updateSpecs(store!.fetchedData.shutterModule.productInfo.details);\r\n }\r\n\r\n if (bulletsRef && bulletsRef.current && structuredText && structuredText.id)\r\n bulletsRef.current.updateBullets(structuredText.id);\r\n });\r\n\r\n useEffect(() => {\r\n updateAdditionalLayout();\r\n }, [activeTab]);\r\n\r\n function updateAdditionalLayout(recalculateClientHeight = false) {\r\n if (productContentRef.current) {\r\n const content = productContentRef.current.firstChild as HTMLElement;\r\n if (content) {\r\n // reset old styles:\r\n productContentRef.current.classList.remove('pdp-removed_overflow');\r\n\r\n if(recalculateClientHeight)\r\n content.removeAttribute('style');\r\n\r\n const isBigContent: boolean = content.clientHeight >= 552;\r\n setRenderAdditionalLayout(isBigContent);\r\n setProductInfoContentHeight(content.clientHeight);\r\n setShowContent(false);\r\n if (isBigContent === true) \r\n content.style.maxHeight = '511px';\r\n else \r\n productContentRef.current.classList.add('pdp-removed_overflow');\r\n }\r\n }\r\n }\r\n\r\n const emotionalTextRichtextId = store!.fetchedData.shutterModule.productInfo.emotionalText?.text?.id;\r\n const claimRichTextId = store!.fetchedData.shutterModule.productInfo.claim?.text?.id;\r\n\r\n return (\r\n <>\r\n <div className={styles.product_info_container}>\r\n <div className={styles.product_image}>\r\n <img alt={helper.decodeHTML(store!.mixedMediaStore.altTagForImages) ?? ''}\r\n ref={productImageRef} src={store!.mixedMediaStore.mainImage.fullPath} />\r\n </div>\r\n <div className={styles.product_info_tabs}>\r\n {\r\n store!.fetchedData.shutterModule.productInfo.claim &&\r\n <div\r\n className={classNames(styles.claim)}\r\n data-testid='product_info_claim'\r\n >\r\n <RichText richTextId={claimRichTextId} />\r\n </div>\r\n }\r\n {\r\n store!.fetchedData.shutterModule.productInfo.emotionalText &&\r\n <div\r\n className={classNames(styles.emotionalText)}\r\n data-testid='product_info_emotionaltext'\r\n >\r\n <RichText richTextId={emotionalTextRichtextId} />\r\n </div>\r\n }\r\n <div\r\n className={classNames(\r\n styles.product_info_tabs_header,\r\n {[styles.no_extras]: store!.fetchedData.shutterModule.productInfo.extras.length === 0},\r\n {[styles.no_specs]: store!.fetchedData.shutterModule.productInfo.details.length === 0}\r\n )}\r\n >\r\n {productInfo.tabs.map(tab => {\r\n return (\r\n <div\r\n key={tab.title}\r\n data-testid='info_tab'\r\n className={classNames(styles.product_info_tab, {\r\n [styles.active]: tab.title === activeTab.title,\r\n })}\r\n onClick={() => {\r\n if(tab.title !== activeTab.title)\r\n setActiveTab(tab)\r\n }\r\n }\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n onKeyDown={tabNavigation.handleKeyDown}\r\n >\r\n {tab.title}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n <div\r\n id='product_info_content'\r\n className={styles.product_info_content}\r\n role='content'\r\n ref={productContentRef}\r\n >\r\n {activeTab.content}\r\n </div>\r\n </div>\r\n </div>\r\n <ProductAdditionalLayout\r\n renderAdditionalLayout={renderAdditionalLayout}\r\n productInfoContentHeight={productInfoContentHeight}\r\n productContentRef={productContentRef}\r\n showContent={showContent}\r\n setShowContent={setShowContent}\r\n />\r\n </>\r\n );\r\n })\r\n);\r\n\r\ninterface IProductInfo {\r\n tabs: IProductInfoTab[];\r\n}\r\n\r\ninterface IProductInfoTab {\r\n title?: string;\r\n content: React.ReactNode;\r\n}\r\n","import React from 'react';\r\nimport { IShoeWeight } from '../../../stores/types';\r\nimport styles from './shoeWeights.scss';\r\n\r\nexport default class ShoeWeights extends React.Component<\r\n { shoeWeights: IShoeWeight[], approxWeightLbl?: string, gramsInSizeLbl?: string },\r\n { shoeWeights: IShoeWeight[], }> {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n shoeWeights: this.props.shoeWeights,\r\n };\r\n }\r\n\r\n public update(shoeWeights: IShoeWeight[]): void {\r\n this.setState({ shoeWeights: shoeWeights });\r\n }\r\n\r\n public render() {\r\n return (\r\n this.state.shoeWeights &&\r\n <div className={styles.shoeWeights} data-testid='shoeWeights'>\r\n {\r\n this.state.shoeWeights.map((shoeWeight: IShoeWeight, index: number) => {\r\n return (\r\n <div className={styles.shoeWeight} key={index} data-testid='shoeWeight'>\r\n <span className={styles.sw_property}>{this.props.approxWeightLbl}</span>\r\n <span className={styles.sw_property}>{shoeWeight.weight}</span>\r\n <span className={styles.sw_property}>{this.props.gramsInSizeLbl}</span>\r\n <span className={styles.sw_property}>{shoeWeight.sizeLabelCode}</span>\r\n </div>\r\n );\r\n })\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../../types';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport styles from './glovesRecommendation.scss';\r\n\r\nexport const GlovesRecommendation = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n if (!store)\r\n return null;\r\n\r\n return (\r\n <>\r\n <div data-testid='glove_recommendation_shutter' className={styles.glove_recommendation_shutter}>\r\n <div data-testid='gr_description' className={styles.gr_description}>\r\n <div className={styles.short_description}\r\n dangerouslySetInnerHTML=\r\n {{ __html: store.localization.generalL10n.glovesRecommendationDescription }} />\r\n </div>\r\n <div data-testid='recommendation_container' className={styles.recommendation_container}>\r\n {\r\n store.glovesRecommendation.map((gloveRate, index) => {\r\n return (<div data-testid='rate_container' \r\n className={styles.rate_container} key={index}>\r\n <div className={styles.r_info}>\r\n <div className={styles.r_title}>{\r\n helper.decodeHTML(gloveRate.title)\r\n }</div>\r\n <div className={styles.rate}>{gloveRate.rate}</div>\r\n </div>\r\n <div className={styles.r_bar}>\r\n <div className={styles.r_value} \r\n style={{'width': ''+ gloveRate.rate * 10 +'' + '%'}}></div>\r\n </div>\r\n </div>);\r\n })\r\n }\r\n </div>\r\n </div>\r\n </>\r\n );\r\n }));\r\n","import { Component } from 'react';\r\nimport styles from './layoutedContentGrid.scss';\r\nimport classNames from 'classnames';\r\nimport React from 'react';\r\nimport DebugBarHelper from '../../../helper/debugBarHelper';\r\nimport DebuggerDataSource from '../../debugBar/debuggerDataSource';\r\n\r\nexport default class LayoutedContentGrid extends Component<{\r\n layoutedContentGridKeys: string[], \r\n debuggerIsOn: boolean, isRelease: boolean,\r\n updateLayoutedContentGridState,\r\n colorCode: number}, {}> {\r\n private debugBarHelper: DebugBarHelper;\r\n private addLcgGridTimer;\r\n private lcgContentAvailabilityTimer;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.debugBarHelper = DebugBarHelper.instance;\r\n }\r\n\r\n componentDidMount(): void {\r\n this.addLcgGridTimer = setTimeout(() => {\r\n this.addLcgGrid();\r\n\r\n }, 1000); // 1000 s needed for LCG assets to be ready\r\n }\r\n\r\n componentDidUpdate(prevProps): void {\r\n if (prevProps.colorCode !== this.props.colorCode) {\r\n this.addLcgGrid();\r\n }\r\n else {\r\n if(this.props.layoutedContentGridKeys && this.props.layoutedContentGridKeys.length <= 0)\r\n this.props.updateLayoutedContentGridState(false);\r\n }\r\n }\r\n\r\n private addLcgGrid(): void {\r\n if(!this.props.layoutedContentGridKeys\r\n || this.props.layoutedContentGridKeys.length <= 0)\r\n return; // no lcg, leave everything as it is\r\n\r\n this.props.layoutedContentGridKeys.forEach(value => {\r\n const containerId = 'pdp-lcg-' + value;\r\n\r\n window.shell.publishTo('ESMKT.LayoutedContentGrid.AddLcgGrid',\r\n {\r\n gridId: value, containerId: containerId,\r\n callback: {\r\n resolve: () => this.props.updateLayoutedContentGridState(true),\r\n reject: () => this.props.updateLayoutedContentGridState(false)\r\n }\r\n });\r\n });\r\n }\r\n\r\n componentWillUnmount(): void {\r\n clearTimeout(this.addLcgGridTimer);\r\n clearTimeout(this.lcgContentAvailabilityTimer);\r\n }\r\n\r\n render() {\r\n return (\r\n <div data-testid='layouted-content-grid'\r\n className={classNames(styles.layoutedContentGrid,\r\n {\r\n [this.debugBarHelper.getDebuggerClassName(\r\n DebugBarHelper.LayoutedContentGrid_source)]: this.props.debuggerIsOn\r\n })}>\r\n {this.props.layoutedContentGridKeys && \r\n (this.props.layoutedContentGridKeys.map((value, index) => {\r\n const containerId = 'pdp-lcg-' + value;\r\n return (<div key={index} className={styles.gridContent} data-testid='grid-content'>\r\n {!this.props.isRelease &&\r\n <DebuggerDataSource value={'Layouted Content Grid source Key: \"' + value + '\"'}/>\r\n }\r\n <div id={containerId} data-grid-id={value}></div>\r\n </div>)\r\n }))}\r\n </div>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport FragmentPlaceholder from '../../fragmentPlaceholder/fragmentPlaceholder';\r\nimport styles from './content.scss';\r\nimport { ILogo } from '../../../stores/types';\r\nimport {RichText} from '../../../helper/richText';\r\n\r\n// Product feature content element\r\nexport default class Content extends React.Component<{\r\n contentKey: number, activeContentKey: number\r\n showCase: string, \r\n pfRichTextId: string,\r\n title: string, masterArticleNo: number, colorCode: number,\r\n logo: ILogo, containerId: string, isMobileShop: boolean\r\n singleProductFeature: boolean\r\n}, {}>\r\n{\r\n public constructor(props) {\r\n super(props);\r\n }\r\n\r\n private getStyles(): string {\r\n let result = styles.pf_content;\r\n\r\n this.props.contentKey != this.props.activeContentKey ? result += ' ' + styles.hidden : '';\r\n\r\n this.props.singleProductFeature === true ? result += ' ' + styles.single_product_feature : ''\r\n\r\n return result;\r\n }\r\n\r\n public render() {\r\n return (\r\n <div className={this.getStyles()} data-testid='pf_content'>\r\n <div className={styles.pf_animation}>\r\n <FragmentPlaceholder\r\n src={\r\n '/ESPP1-Showcase/productfeatureanimation?masterArticleNo=' +\r\n this.props.masterArticleNo + '&colorCode=' + this.props.colorCode +\r\n '&containerId=' + this.props.containerId + \r\n '&showCase=$$$LocalizationShowCase.' + this.props.showCase + '$$$'\r\n }\r\n ignoreErrors={true}\r\n timeout={2}\r\n />\r\n </div>\r\n <div className={styles.text_container}>\r\n <div className={styles.emt_title} \r\n dangerouslySetInnerHTML={{ __html: this.props.title}} />\r\n <div className={styles.emt_text}>\r\n <RichText richTextId={this.props.pfRichTextId} />\r\n </div>\r\n {this.props.logo && \r\n <img className={styles.emt_logo}\r\n src={this.props.logo.imageUrl} \r\n alt={this.props.logo.altText} />\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n","import React, { Component, ReactNode } from 'react';\r\nimport styles from './productFeature.scss';\r\nimport Content from './content';\r\nimport IconArrowCircleGreyLeft from '../../icons/icon_arrow_circle_grey_left';\r\nimport IconArrowCircleGreyRight from '../../icons/icon_arrow_circle_grey_right';\r\nimport { IProductFeaturesGroup } from '../../../stores/types';\r\nimport classNames from 'classnames';\r\n\r\nexport default class ProductFeature extends Component<\r\n { featuresGroup: IProductFeaturesGroup, masterArticleNo: number, colorCode: number,\r\n groupIndex: number, isMobileShop: boolean },\r\n { activeContentKey: number; pfViewPortReached: boolean }\r\n> {\r\n private animationContainerId = '';\r\n private activeTabs: number[] = [];\r\n private pfRef = React.createRef<HTMLDivElement>();\r\n private pFArrayLength: number;\r\n private staticMasterArticleNo: number;\r\n private staticColorCode: number;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n activeContentKey: 1,\r\n pfViewPortReached: false,\r\n };\r\n\r\n this.animationContainerId = 'G_' + this.props.groupIndex + '_ProductFeature_animations_';\r\n this.staticMasterArticleNo = this.props.masterArticleNo;\r\n this.staticColorCode = this.props.colorCode;\r\n\r\n this.pFArrayLength = this.props.featuresGroup.features.length;\r\n this.handleLeftRightArrowClick = this.handleLeftRightArrowClick.bind(this);\r\n this.handleControlDotClick = this.handleControlDotClick.bind(this);\r\n }\r\n\r\n private handleControlDotClick(event): void {\r\n const tmpValue = parseInt(event.currentTarget.dataset.value);\r\n this.setState({\r\n activeContentKey: tmpValue,\r\n });\r\n\r\n this.publishSCSShowThreeSixtyView(tmpValue);\r\n }\r\n\r\n private handleLeftRightArrowClick(value: number): void {\r\n let tmpValue = this.state.activeContentKey + value;\r\n // endless navigation between product features:\r\n if (tmpValue > this.pFArrayLength) tmpValue = 1;\r\n\r\n if (tmpValue < 1) tmpValue = this.pFArrayLength;\r\n // ---\r\n\r\n this.setState({\r\n activeContentKey: tmpValue,\r\n });\r\n\r\n this.publishSCSShowThreeSixtyView(tmpValue);\r\n }\r\n\r\n private publishSCSShowThreeSixtyView(contentKey: number): void {\r\n if (!this.activeTabs.includes(contentKey)) {\r\n this.activeTabs.push(contentKey);\r\n window.shell.publishTo('SCS.Show.ThreeSixtyView', {\r\n containerId: this.animationContainerId + contentKey,\r\n showThreeDView: true,\r\n });\r\n }\r\n }\r\n\r\n private renderControlDots(): ReactNode {\r\n let index = 0;\r\n return this.props.featuresGroup.features.map(() => {\r\n index++;\r\n const cdClassName = this.state.activeContentKey === index ? styles.active : '';\r\n\r\n return (\r\n <li key={index}\r\n data-testid={'pf-control-dot'}\r\n className={classNames(styles.c_dot, cdClassName)}\r\n data-value={index}\r\n onClick={this.handleControlDotClick}\r\n />\r\n );\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <div className={styles.product_feature_shutter} ref={this.pfRef}>\r\n {this.pFArrayLength > 1 && (\r\n <div\r\n className={styles.arrow_left}\r\n data-testid='pf-arrow-left'\r\n onClick={() => {\r\n this.handleLeftRightArrowClick(-1);\r\n }}\r\n >\r\n <IconArrowCircleGreyLeft />\r\n </div>\r\n )}\r\n\r\n {this.props.featuresGroup.features.map((feature, index) => {\r\n const tmpIndex = index + 1;\r\n return (\r\n <Content\r\n showCase={feature.showCase}\r\n masterArticleNo={this.staticMasterArticleNo}\r\n colorCode={this.staticColorCode}\r\n pfRichTextId={feature.emotionalDescriptionText.id} \r\n title={feature.emotionalDescriptionTitle}\r\n logo={feature.logo}\r\n key={tmpIndex}\r\n contentKey={tmpIndex}\r\n activeContentKey={this.state.activeContentKey}\r\n containerId={this.animationContainerId + tmpIndex}\r\n isMobileShop={this.props.isMobileShop}\r\n singleProductFeature={this.pFArrayLength === 1}\r\n />\r\n );\r\n })}\r\n {this.pFArrayLength > 1 && (\r\n <div\r\n className={styles.arrow_right}\r\n data-testid='pf-arrow-right'\r\n onClick={() => {\r\n this.handleLeftRightArrowClick(1);\r\n }}\r\n >\r\n <IconArrowCircleGreyRight />\r\n </div>\r\n )}\r\n {this.pFArrayLength > 1 && (\r\n <>\r\n <div className={styles.quick_select_and_status_info}>\r\n <div className={styles.content_status_info}>\r\n <span className={styles.current_article_features}>{this.state.activeContentKey}</span>\r\n <span className={styles.status_divider}>/</span>\r\n <span className={styles.total_article_features}>\r\n {this.pFArrayLength}\r\n </span>\r\n </div>\r\n <ul className={styles.control_dots}>{this.renderControlDots()}</ul>\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport styles from './contentTab.scss';\r\nimport IconArrowExtraSmallRight from '../../icons/icon_arrow_extra_small_right';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport default class ContentTab extends React.Component<{\r\n logoSrc?: string, title?: string, pfName: string | undefined,\r\n description?: string, cdnAssetsUrl: string,\r\n redirectUrl: string, redirectBtnTitle?: string, altTextTitle?: string\r\n}, { logoSrc?: string, description?: string, title?: string }> {\r\n\r\n private tabNavigation: TabNavigationHelper;\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.tabNavigation = TabNavigationHelper.instance;\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.logoSrc)\r\n this.setState(\r\n { logoSrc: helper.formCdnUrl(this.props.logoSrc, this.props.cdnAssetsUrl) }\r\n );\r\n\r\n this.setState({description: helper.decodeHTML(this.props.description),\r\n title: helper.decodeRtfText(this.props.title)})\r\n }\r\n\r\n public render() {\r\n return (\r\n <div className={classNames(styles.sc_container, \r\n `pdp-${this.props.pfName}_background`)}\r\n data-testid={`${this.props.pfName}_shutter`}>\r\n <div className={styles.logoContainer}>\r\n <img className={styles.logo}\r\n src={this.state.logoSrc}\r\n alt={helper.decodeHTML(this.props.altTextTitle)}\r\n />\r\n </div>\r\n <span className={styles.description}>\r\n <div \r\n className={styles.tf_headline} \r\n dangerouslySetInnerHTML={{__html: this.state.title ?? ''}} /> \r\n <p>\r\n {this.state.description}\r\n </p>\r\n </span>\r\n <a href={this.props.redirectUrl}>\r\n <div className={styles.redirect_button} ref={(el)=>this.tabNavigation.setFocusAtt(el)}>\r\n <span className={styles.rb_title}>{this.props.redirectBtnTitle}</span>\r\n <span className={styles.rb_arrow_icon}>\r\n <IconArrowExtraSmallRight/>\r\n </span>\r\n </div>\r\n </a>\r\n </div>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport classNames from 'classnames';\r\nimport styles from './contentTabAAS.scss';\r\nimport '../../../styles/customFragmentsStyles.scss';\r\nimport ArrowIcon from '../../icons/arrow_down';\r\nimport FragmentPlaceholder from '../../fragmentPlaceholder/fragmentPlaceholder';\r\nimport { AASFragmentHelper } from '../../../helper/aasFragmentHelper';\r\nimport { ILocalization } from '../../../types';\r\n\r\nexport default class ContentTabAAS extends React.Component<\r\n {\r\n savKey: string;\r\n activateAASShutter;\r\n handleContentClose;\r\n tabKey: string;\r\n closeOverlayBtnTitle?: string;\r\n aasFragmentHelper: AASFragmentHelper;\r\n isMobile: boolean;\r\n localization: ILocalization;\r\n navKeyPath: string;\r\n },\r\n { savKey: string; aasInitialized: boolean }\r\n> {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n savKey: this.props.savKey,\r\n aasInitialized: false,\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n window.shell.once('AAS.updateFinished', payload => {\r\n payload && this.props.isMobile && this.injectCloseButton();\r\n });\r\n\r\n if (prevProps.savKey !== this.props.savKey) {\r\n if(this.aasIsAvailable()) {\r\n this.props.aasFragmentHelper.updateAAS(prevProps.savKey, this.props.savKey, this.props.isMobile);\r\n \r\n this.props.activateAASShutter(true);\r\n }\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n window.shell.once('AAS.updateFinished', payload => {\r\n if (payload)\r\n // ping parent state:\r\n this.props.activateAASShutter(this.aasIsAvailable());\r\n });\r\n\r\n if (this.aasIsAvailable()) {\r\n window.addEventListener('DOMContentLoaded', () => {\r\n // load full aas fragment:\r\n this.props.aasFragmentHelper.updateAAS(this.props.savKey, this.props.savKey, this.props.isMobile);\r\n });\r\n\r\n this.props.activateAASShutter(true);\r\n } else {\r\n // disable AAS if it does not have alternative for current article\r\n this.props.activateAASShutter(false);\r\n }\r\n\r\n if (typeof window !== 'undefined' && window.shell) {\r\n window.shell.subscribeTo('AAS.updateError', () => {\r\n this.props.activateAASShutter(false);\r\n }, 'AAS.updateError');\r\n }\r\n }\r\n\r\n private aasIsAvailable(): boolean {\r\n // check AAS availability:\r\n const aasScope = document.querySelector('.scope-aas');\r\n return aasScope ? true : false;\r\n }\r\n\r\n private injectCloseButton() {\r\n const assContent = document.querySelector('.aas-content');\r\n if (assContent) {\r\n const closeButtonContainer = document.createElement('div');\r\n closeButtonContainer.className = styles.alternative_articles_modal_footer;\r\n assContent.appendChild(closeButtonContainer);\r\n ReactDOM.render(\r\n <div\r\n className={classNames(\r\n styles.aas_modal_close_button, //our styling (position)\r\n 'aas-modal-close-button' //default aas styling\r\n )}\r\n onClick={this.props.handleContentClose}\r\n data-tabkey={this.props.tabKey}\r\n >\r\n {this.props.localization.generalL10n.buttonClose}\r\n </div>,\r\n closeButtonContainer\r\n );\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.log('could not inject AAS close button');\r\n }\r\n }\r\n\r\n public render() {\r\n return (\r\n <>\r\n {this.props.isMobile && (\r\n <div\r\n className={styles.aas_modal_header}\r\n onClick={this.props.handleContentClose}\r\n data-tabkey={this.props.tabKey}\r\n data-testid='pa_content_aas_tab'\r\n >\r\n <button className={styles.aas_back_button}>\r\n <ArrowIcon />\r\n </button>\r\n <span className={styles.aas_modal_title}>{this.props.closeOverlayBtnTitle}</span>\r\n </div>\r\n )}\r\n <div className={styles.aas_content}>\r\n <FragmentPlaceholder src='ESPP2.AlternativeArticles.Service/Assets' ignoreErrors={true} />\r\n <FragmentPlaceholder\r\n // eslint-disable-next-line max-len\r\n src={`ESPP2.AlternativeArticles.Service/AlternativeArticles/articles/${this.state.savKey}/available-alternatives?content=full&detailsCanBeHidden=true&showHeader=false&itemorigin=${this.props.navKeyPath}`}\r\n ignoreErrors={true}\r\n />\r\n </div>\r\n </>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport AASLogo from '../../icons/aas_logo';\r\nimport styles from './headerTab.scss';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport default class HeaderTab extends React.Component<{\r\n logoSrc?: string, title?: string,\r\n description?: string, tabKey: string,\r\n onTabChange, activeTab: string, cdnAssetsUrl?: string\r\n },\r\n { logoSrc?: string }> {\r\n\r\n private tabNavigation: TabNavigationHelper;\r\n constructor(props) {\r\n super(props);\r\n this.state = { logoSrc: undefined };\r\n this.tabNavigation = TabNavigationHelper.instance;\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.logoSrc && this.props.cdnAssetsUrl)\r\n this.setState(\r\n { logoSrc: helper.formCdnUrl(this.props.logoSrc, this.props.cdnAssetsUrl) }\r\n );\r\n }\r\n\r\n public render() {\r\n return (\r\n <div className={classNames(styles.tab_container,\r\n { [styles.isActive]: this.props.tabKey === this.props.activeTab})}\r\n onClick={this.props.onTabChange}\r\n data-tabkey={this.props.tabKey}\r\n data-testid='pa_header_tab' \r\n ref={(el)=>this.tabNavigation.setFocusAtt(el)}\r\n onKeyDown={this.tabNavigation.handleKeyDown}\r\n >\r\n <div className={styles.t_logo}>\r\n {\r\n this.state.logoSrc ?\r\n <img className={classNames(styles.logo_img, styles.tf_logo)} src={this.state.logoSrc}\r\n alt={helper.decodeHTML(this.props.title + '-' + this.props.description)} />\r\n :\r\n <div className={classNames(styles.logo_img, styles.aas_logo)}\r\n title={helper.decodeHTML(this.props.title)}>\r\n <AASLogo />\r\n </div>\r\n }\r\n </div>\r\n <div className={styles.t_text_area}>\r\n <div className={styles.t_title}>{\r\n helper.decodeHTML(this.props.title)\r\n }</div>\r\n <div className={styles.t_description}>{\r\n helper.decodeHTML(this.props.description)\r\n }</div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n","import React, { useState } from 'react';\r\nimport classNames from 'classnames';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IInjectedProps } from '../../../types';\r\nimport styles from './purchaseAdvice.scss';\r\nimport HeaderTab from './headerTab';\r\nimport ContentTab from './contentTab';\r\nimport ContentTabAAS from './contentTabAAS';\r\nimport * as helper from '../../../helper/html-helper';\r\n\r\nexport const PurchaseAdvice = inject('store')(\r\n observer(({ store }: IInjectedProps) => {\r\n if (!store)\r\n return null;\r\n const productFinderTabKey = 'PF';\r\n const aasTabKey = 'AAS';\r\n const aasTabKey_closed = 'AAS_closed';\r\n\r\n const [activeTab, setActiveTab] = useState(productFinderTabKey);\r\n const isMobile = store.isMobileShop;\r\n\r\n function handleContentChange(prop) {\r\n if (isMobile) {\r\n // for product finder, redirect to category and open finder:\r\n if (prop.currentTarget.dataset.tabkey === productFinderTabKey && store)\r\n window.location.href = store.getProductFinderRedirectUrl;\r\n\r\n if (prop.currentTarget.dataset.tabkey === aasTabKey) {\r\n store?.scrollLock.lock();\r\n store?.aasFragmentHelper.showAASModal();\r\n store?.hideEsAppButton();\r\n }\r\n\r\n if (prop.currentTarget.dataset.tabkey === aasTabKey_closed) {\r\n store?.scrollLock.unlock();\r\n store?.showEsAppButton();\r\n }\r\n }\r\n\r\n setActiveTab(prop.currentTarget.dataset.tabkey as string);\r\n }\r\n\r\n function activateAASShutter(showAssShutter: boolean) {\r\n store?.setHasAASShutter(showAssShutter);\r\n\r\n\r\n if (!store?.isMobileShop) {\r\n // on error in AAS side case:\r\n if(store?.hasProductFinderShutter && !showAssShutter) {\r\n setActiveTab(productFinderTabKey);\r\n }\r\n else {\r\n setActiveTab(store?.hasAASShutter ? aasTabKey : productFinderTabKey);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n <div\r\n data-testid='purchase_advice_shutter'\r\n className={classNames(styles.purchase_advice_shutter, 'tf-dp_customs')}\r\n >\r\n <div className={styles.pa_header}>\r\n {store.hasAASShutter && (\r\n <HeaderTab\r\n title={store.localization.redOnlyL10n?.aasTitle}\r\n description={store.localization.redOnlyL10n?.aasSubTitle}\r\n tabKey={aasTabKey}\r\n onTabChange={handleContentChange}\r\n activeTab={activeTab}\r\n />\r\n )}\r\n {store.hasProductFinderShutter && (\r\n <HeaderTab\r\n logoSrc={store.getProductFinderLogo}\r\n title={store.getProductFinderTitle}\r\n description={store.getProductFinderSubTitle}\r\n tabKey={productFinderTabKey}\r\n onTabChange={handleContentChange}\r\n activeTab={activeTab}\r\n cdnAssetsUrl={store.cdnAssetsUrl}\r\n />\r\n )}\r\n </div>\r\n <div className={styles.pa_content_container} data-testid='pa_content_container'>\r\n <div\r\n className={classNames(\r\n styles.pa_content,\r\n { [styles.isActive]: activeTab === aasTabKey },\r\n { [styles.pa_aas_overlay_modal]: isMobile }\r\n )}\r\n >\r\n <ContentTabAAS\r\n savKey={store.dataStore.orderModule.articleInfo.salesArticleVariantKey}\r\n activateAASShutter={activateAASShutter}\r\n handleContentClose={handleContentChange}\r\n tabKey={aasTabKey_closed}\r\n closeOverlayBtnTitle={helper.decodeHTML(\r\n store.localization.redOnlyL10n?.aasBackToProduct\r\n )}\r\n aasFragmentHelper={store.aasFragmentHelper}\r\n isMobile={store.isMobileShop}\r\n localization={store.localization}\r\n navKeyPath={store.dataStore.breadcrumb.category.navigationKeyPath}\r\n />\r\n </div>\r\n {store.hasProductFinderShutter && !isMobile && (\r\n <div\r\n className={classNames(styles.pa_content, styles.pa_tf_content, {\r\n [styles.isActive]: activeTab === productFinderTabKey,\r\n })}\r\n data-testid='pa_content'\r\n >\r\n <ContentTab\r\n title={store.getProductFinderContentTitle}\r\n altTextTitle={store.getProductFinderTitle}\r\n description={store.getProductFinderContentDescription}\r\n logoSrc={store.getProductFinderLogo}\r\n cdnAssetsUrl={store.cdnAssetsUrl}\r\n pfName={store.getProductFinderName}\r\n redirectUrl={store.getProductFinderRedirectUrl}\r\n redirectBtnTitle={store.getProductFinderRedirectBtnText}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </>\r\n );\r\n })\r\n);\r\n","import React, { useEffect, useState } from 'react';\r\nimport styles from './shutterModul.scss';\r\nimport classNames from 'classnames';\r\nimport { Collapse } from 'react-collapse';\r\nimport ArrowDownDesktopShutters from '../icons/arrow_down_desktop_shutters';\r\nimport ArrowDownMobileShutters from '../icons/arrow_down_mobile_shutters';\r\nimport TabNavigationHelper from '../../helper/tabNavigationHelper';\r\n\r\nfunction ShutterModul(props: IShutterModulProp) {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const [showContent, setShowContent] = useState(props.isOpen);\r\n const idString = 'shutter-' + props.title;\r\n const contentRef = React.useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n if (showContent && props.onIsOpenChange) {\r\n props.onIsOpenChange(!showContent);\r\n }\r\n\r\n // disable content if it is not visible, tabNav will skip it then:\r\n if(contentRef && contentRef.current) {\r\n tabNavigation.toggleDisabledAtt(contentRef.current, !showContent);\r\n }\r\n });\r\n\r\n return (\r\n <div className={classNames(styles.shutter_modul_wrapper,\r\n {[styles.not_visible]: props.notVisible})}>\r\n {!props.showPersonalizationBanner &&\r\n <hr />\r\n }\r\n <div className={styles.shutter_modul} data-testid={idString}>\r\n <div role='heading' className={classNames(styles.shutter_header, { [styles.open]: showContent })}\r\n onClick={() => {\r\n setShowContent(!showContent);\r\n if (props.onIsOpenChange)\r\n props.onIsOpenChange(!showContent)\r\n }}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n onKeyDown={tabNavigation.handleKeyDown}\r\n >\r\n <div className={styles.shutter_title}>{props.title}</div>\r\n {\r\n props.icon &&\r\n <div className={styles.shutter_icon} data-testid={'shutter-icon'}>\r\n {props.icon}\r\n </div>\r\n }\r\n {\r\n props.isMobileShop ? (<ArrowDownMobileShutters />) : (<ArrowDownDesktopShutters />)\r\n }\r\n </div>\r\n <Collapse theme={{ collapse: styles.collapse }} isOpened={showContent}>\r\n <div role='content' className={styles.shutter_content} ref={contentRef}>\r\n {props.children}\r\n </div>\r\n </Collapse>\r\n </div>\r\n </div >\r\n );\r\n}\r\n\r\ninterface IShutterModulProp {\r\n title?: string;\r\n isOpen: boolean;\r\n /* eslint-disable @typescript-eslint/no-explicit-any */\r\n children?: any;\r\n icon?: React.ReactNode;\r\n onIsOpenChange?(open: boolean);\r\n isMobileShop?: boolean;\r\n notVisible?: boolean;\r\n showPersonalizationBanner?;\r\n}\r\n\r\nexport default ShutterModul;\r\n","import React from 'react';\r\nimport { isMobileOnly } from 'react-device-detect';\r\nimport classNames from 'classnames';\r\nimport styles from './stickyHeader.scss';\r\n\r\nconst placeholderRef = {\r\n current: {\r\n clientHeight: 0,\r\n getBoundingClientRect() {\r\n return { top: 0 };\r\n },\r\n },\r\n};\r\n\r\nfunction StickyHeader({ top = 0, ...props }: {\r\n children: JSX.Element | JSX.Element[]; onHeightChange: (param: number) => void; isEsApp?: boolean;\r\n variantButtonCount?: number; top?: number;\r\n}) {\r\n const { children, onHeightChange, variantButtonCount } = props;\r\n const [contentHeight, setContentHeight] = React.useState(0);\r\n const anchorRef = React.useRef<HTMLDivElement>();\r\n const contentRef = React.useRef<HTMLDivElement>();\r\n\r\n function closeStickyHeader() {\r\n window.removeEventListener('scroll', handleScrollOrResize);\r\n window.removeEventListener('resize', handleScrollOrResize);\r\n setContentHeight(0);\r\n }\r\n\r\n function restoreStickyHeader() {\r\n calcContentHeight();\r\n window.addEventListener('scroll', handleScrollOrResize);\r\n window.addEventListener('resize', handleScrollOrResize);\r\n }\r\n\r\n function calcContentHeight() {\r\n const outerRef = anchorRef?.current ? anchorRef : placeholderRef;\r\n const outerRefTop = outerRef.current?.getBoundingClientRect().top ?\r\n outerRef.current.getBoundingClientRect().top : 0;\r\n const visibility = outerRefTop <= 130;\r\n\r\n const innerRef = contentRef?.current ? contentRef : placeholderRef;\r\n const innerRefHeight = innerRef.current?.clientHeight ? innerRef.current?.clientHeight : 0;\r\n const newHeight = visibility ? innerRefHeight : 0;\r\n\r\n setContentHeight(newHeight);\r\n onHeightChange(newHeight);\r\n }\r\n\r\n function handleScrollOrResize() {\r\n calcContentHeight();\r\n }\r\n\r\n React.useEffect(() => {\r\n window.addEventListener('scroll', handleScrollOrResize);\r\n window.addEventListener('resize', handleScrollOrResize);\r\n\r\n if (isMobileOnly) {\r\n window.shell.subscribeTo('ESMKT.HeadR.FlyoutClosed',\r\n () => {\r\n restoreStickyHeader();\r\n }, 'ESMKT.HeadR.FlyoutClosed');\r\n\r\n window.shell.subscribeTo('ESMKT.HeadR.FlyoutOpening',\r\n () => {\r\n closeStickyHeader();\r\n }, 'ESMKT.HeadR.FlyoutOpening');\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('scroll', handleScrollOrResize);\r\n window.removeEventListener('resize', handleScrollOrResize);\r\n window.shell.unsubscribeFrom('ESMKT.HeadR.FlyoutClosed',\r\n 'ESMKT.HeadR.FlyoutClosed');\r\n window.shell.unsubscribeFrom('ESMKT.HeadR.FlyoutOpening',\r\n 'ESMKT.HeadR.FlyoutOpening');\r\n };\r\n }, []);\r\n\r\n return (\r\n <>\r\n <div ref={anchorRef as React.LegacyRef<HTMLDivElement>} />\r\n <div\r\n data-testid='sticky_header_container'\r\n className={classNames(styles.sticky_header_container, { [styles.no_headr]: props.isEsApp })}\r\n style={{ height: `${contentHeight}px`, position: 'fixed', top: `${top}px` }}\r\n suppressHydrationWarning\r\n >\r\n <div\r\n data-testid='sticky_header_content'\r\n ref={contentRef as React.LegacyRef<HTMLDivElement>}\r\n className={classNames(styles.sticky_header_content, {\r\n [styles.no_variant_buttons_all_in_one_line]: variantButtonCount === 0,\r\n })}>\r\n {children}\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default StickyHeader;\r\n","import React, { useEffect } from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport styles from './colorPanel.scss';\r\nimport classNames from 'classnames';\r\nimport { IVariantStore } from '../../../types/index';\r\nimport { CustomSwiper } from '../customeSwiper/customeSwiper';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport const ColorPanel = inject('variantStore')(\r\n observer(({ variantStore }: IVariantStore) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const isMobile = variantStore?.mainStore.isMobileShop;\r\n let selectedColor = variantStore?.selectedColor;\r\n const availableColors = variantStore?.variantSelectionCopy.availableColors;\r\n const tmpSelectedColorIndex = availableColors?.findIndex(color => {\r\n return color.code === selectedColor?.code;\r\n });\r\n const selectedColorIndex = tmpSelectedColorIndex ? tmpSelectedColorIndex : 0;\r\n const shouldShowImage =\r\n isMobile && !!variantStore && variantStore.variantSelectionCopy.selectedColor &&\r\n variantStore.variantSelectionCopy.selectedColor.code > 0;\r\n\r\n useEffect(()=>{\r\n const elem = document.getElementsByClassName('pdp-selected')[0];\r\n window.shell.tabNav.focus(elem)\r\n })\r\n function handleColorClick(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n const target = event.currentTarget as HTMLElement;\r\n const colorCode = target.dataset.colorcode;\r\n if (colorCode) {\r\n const selectedColorInternal = availableColors?.find(\r\n availableColor => availableColor.code == parseInt(colorCode)\r\n );\r\n\r\n if (selectedColorInternal) {\r\n selectedColor = { code: selectedColorInternal.code, name: selectedColorInternal.name };\r\n variantStore?.changeSelectedColor(selectedColor);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n <div role='color_content_wrapper' className={styles.color_content_wrapper}>\r\n {isMobile ? (\r\n <label className={styles.choosen_color_label}>\r\n {variantStore?.mainStore.localization.generalL10n.selection}:{' ' + selectedColor?.name}\r\n </label>\r\n ) : null}\r\n <div role='color_content' className={styles.color_content}>\r\n <div role='color_icons' className={styles.color_icons} ref={(el)=>tabNavigation.setGroupAtt(el)}>\r\n <CustomSwiper\r\n type='color'\r\n selectedElementIndex={selectedColorIndex}\r\n slidesPerColumn={2}\r\n columnsPerView={5}\r\n enabled={!!isMobile}\r\n >\r\n {availableColors?.map((availableColor, index) =>\r\n (\r\n <a\r\n key={index}\r\n className={classNames(styles.color_border, {\r\n 'pdp-selected': selectedColorIndex === index,\r\n })}\r\n data-colorcode={availableColor.code}\r\n onClick={handleColorClick}\r\n href={variantStore?.getUrlByAvailableColor(availableColor)}\r\n onKeyDown={(e)=> {\r\n if(e.key === ' '){\r\n handleColorClick(e)\r\n }\r\n }}\r\n title={\r\n variantStore?.mainStore.dataStore.orderModule.articleInfo.title + ' ' +\r\n availableColor.name}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n >\r\n <img\r\n className={styles.color_icon}\r\n src={availableColor.iconPath}\r\n title={availableColor.name}\r\n alt={variantStore?.mainStore.localization.generalL10n.colorIcon + ' ' +\r\n availableColor.name}\r\n ></img>\r\n </a>\r\n ))}\r\n </CustomSwiper>\r\n {!isMobile ? (\r\n <label className={styles.choosen_color_label}>\r\n {variantStore?.mainStore.localization.generalL10n.selection}:{' ' + selectedColor?.name}\r\n </label>\r\n ) : null}\r\n </div>\r\n {shouldShowImage && (\r\n <>\r\n <hr />\r\n <div className={styles.image_content}>\r\n <img\r\n data-testid='side_image'\r\n className={styles.side_image}\r\n src={variantStore?.sideImagePath}\r\n />\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n </>\r\n );\r\n })\r\n);\r\n","import React, { useEffect, useState, FunctionComponent, Children } from 'react';\r\nimport styles from '../../../styles/customSwipeable.scss';\r\nimport IconArrowSmallLeft from '../../icons/icon_arrow_small_left';\r\nimport IconArrowSmallRight from '../../icons/icon_arrow_small_right';\r\nimport { VariantStore } from '../../../stores/VariantStore';\r\nimport classNames from 'classnames';\r\n\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport SwiperCore, { Mousewheel, Navigation } from 'swiper/core';\r\n\r\nexport interface ICustomSwiper {\r\n variantStore?: VariantStore;\r\n type: string;\r\n selectedElementIndex: number;\r\n // If sliderPreColumn are more than 1(default), columnPreView have to have some value but not 'auto'(default)\r\n direction?: 'horizontal' | 'vertical';\r\n columnsPerView?: number;\r\n slidesPerColumn?: number;\r\n spaceBetween?: number;\r\n mousewheel?: boolean;\r\n enabled: boolean;\r\n isWWS?: boolean;\r\n}\r\n\r\nSwiperCore.use([Mousewheel, Navigation]);\r\nexport const CustomSwiper: FunctionComponent<ICustomSwiper> = (props: React.PropsWithChildren<ICustomSwiper>) => {\r\n const useSwiperRef = (): [HTMLDivElement | null, React.LegacyRef<HTMLDivElement> | undefined] => {\r\n const [wrapper, setWrapper] = useState<HTMLDivElement | null>(null);\r\n const ref = React.createRef<HTMLDivElement>();\r\n\r\n useEffect(() => {\r\n if (ref.current)\r\n setWrapper(ref.current);\r\n }, []);\r\n\r\n return [wrapper, ref];\r\n };\r\n const [prevEl, leftArrowRef] = useSwiperRef();\r\n const [nextEl, rightArrowRef] = useSwiperRef();\r\n const direction = props.direction ?? 'horizontal';\r\n const slidersPerView = props.columnsPerView ?? 'auto';\r\n const slidersPerColumn = props.slidesPerColumn ?? 1;\r\n const spaceBetween = props.spaceBetween ?? 0;\r\n const childrenArray = Children.toArray(props.children);\r\n return (\r\n <>\r\n <div\r\n className={classNames(styles.left_arrow, {\r\n [styles.hidden]: !props.enabled,\r\n [styles.vertical]: direction === 'vertical',\r\n [styles.wws]: props.isWWS,\r\n })}\r\n ref={leftArrowRef}\r\n >\r\n <IconArrowSmallLeft />\r\n </div>\r\n {props.enabled ? (\r\n <Swiper\r\n className={classNames(styles.swiper, {\r\n [styles.one_row]: slidersPerColumn === 1,\r\n [styles.wws]: props.isWWS,\r\n })}\r\n direction={direction}\r\n slidesPerView={slidersPerView}\r\n slidesPerColumn={slidersPerColumn}\r\n spaceBetween={spaceBetween}\r\n mousewheel={props.mousewheel}\r\n navigation={{\r\n prevEl,\r\n nextEl,\r\n }}\r\n initialSlide={props.selectedElementIndex}\r\n >\r\n {childrenArray.map((child, index) => {\r\n return <SwiperSlide key={index}>{child}</SwiperSlide>;\r\n })}\r\n </Swiper>\r\n ) : (\r\n <>{props.children}</>\r\n )}\r\n\r\n <div\r\n className={classNames(styles.right_arrow, {\r\n [styles.hidden]: !props.enabled,\r\n [styles.vertical]: direction === 'vertical',\r\n [styles.wws]: props.isWWS,\r\n })}\r\n ref={rightArrowRef}\r\n >\r\n <IconArrowSmallRight />\r\n </div>\r\n </>\r\n );\r\n};\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport styles from './modelPanel.scss';\r\nimport { IVariantStore } from '../../../types/index';\r\nimport { CustomSwiper } from '../customeSwiper/customeSwiper';\r\nimport WWSKioskInfo from '../../workwearStoreAvailabilityModal/wwsKioskInfo/wwsKioskInfo';\r\nimport { IAvailableModel, VariantType, AvailabilityStatusEnum } from '../../../stores/types';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport const ModelPanel = inject('variantStore')(\r\n observer(({ variantStore }: IVariantStore) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const isMobile = variantStore?.mainStore.isMobileShop;\r\n\r\n const selectedModelName = variantStore?.selectedModel?.label;\r\n let selectedModel = variantStore?.selectedModel;\r\n const availableModels = variantStore?.variantSelectionCopy.availableModels;\r\n const tmpSelectedModelIndex = availableModels?.findIndex(model => {\r\n return selectedModelName === model.label;\r\n });\r\n const selectedModelIndex = tmpSelectedModelIndex ?? 0;\r\n const shouldShowImage =\r\n !!isMobile && !!variantStore && variantStore.variantSelectionCopy.selectedModel &&\r\n variantStore.variantSelectionCopy.selectedModel.code > 0;\r\n const [column, setColumn] = useState(1);\r\n const [maxWidth, setMaxWidth] = useState(0);\r\n const wrapperRef = useRef<HTMLDivElement>(null);\r\n const [finishedRender, setFinishedRender] = useState(false);\r\n useEffect(() => {\r\n calculateWidth();\r\n setFinishedRender(true);\r\n }, []);\r\n\r\n function handleModelClick(event) {\r\n const modelCode = event.currentTarget.dataset.modelcode;\r\n const selectedModelInternal = availableModels?.find(\r\n availableModel => availableModel.code == parseInt(modelCode)\r\n );\r\n\r\n if (selectedModelInternal) {\r\n selectedModel = { code: selectedModelInternal.code, label: selectedModelInternal.label };\r\n variantStore?.changeSelectedModel(selectedModel);\r\n }\r\n }\r\n\r\n function calculateWidth() {\r\n if (wrapperRef.current) {\r\n const wrapperChildren = Array.from(wrapperRef.current.children as HTMLCollectionOf<HTMLElement>);\r\n let maxChildWidth = 0;\r\n wrapperChildren.forEach(element => {\r\n if (element.clientWidth > maxChildWidth) maxChildWidth = element.clientWidth;\r\n });\r\n let tempColumn = 1;\r\n if (maxChildWidth < 42) {\r\n maxChildWidth = 42;\r\n }\r\n // extra small devices (iphone 5/SE):\r\n if (wrapperRef.current.clientWidth < 370) {\r\n tempColumn = Math.floor((wrapperRef.current.clientWidth - 80) / maxChildWidth);\r\n } else {\r\n if (maxChildWidth > 110 && maxChildWidth <= 170) tempColumn = 2;\r\n else if (maxChildWidth <= 110 && maxChildWidth > 80) tempColumn = 3;\r\n else if (maxChildWidth <= 80 && maxChildWidth > 37) tempColumn = 4;\r\n else if (maxChildWidth <= 42) {\r\n tempColumn = 5;\r\n }\r\n }\r\n\r\n setMaxWidth(maxChildWidth);\r\n if (!shouldShowImage)\r\n wrapperRef.current.setAttribute('style', `grid-template-columns: repeat(${tempColumn}, 1fr);`);\r\n else setColumn(tempColumn);\r\n }\r\n }\r\n\r\n function modelClassNames(index, model: IAvailableModel): string {\r\n const classNames: string[] = [styles.model_icon];\r\n if (selectedModelIndex === index) classNames.push('pdp-selected');\r\n if (!model.salesArticleVariantKey\r\n && !variantStore?.mainStore.showKioskLayout) classNames.push(styles.sold_out_model);\r\n\r\n if (variantStore?.mainStore.showKioskLayout) {\r\n if (!variantStore)\r\n classNames.push(styles.variant_status_red);\r\n else {\r\n const wwsStore = variantStore.mainStore.workWearStoreStore;\r\n const status = wwsStore.\r\n variantAvailabilityState(model.code, VariantType.Model,\r\n model.salesArticleVariantKey, wwsStore.variantInfoInKiosk);\r\n if (status === AvailabilityStatusEnum.InStock)\r\n classNames.push(styles.variant_status_green);\r\n else\r\n classNames.push(styles.variant_status_red);\r\n }\r\n }\r\n \r\n return classNames.join(' ');\r\n }\r\n\r\n return (\r\n <div role='model_content_wrapper' className={styles.model_content_wrapper}>\r\n {isMobile ? (\r\n <label className={styles.choosen_model_label}>\r\n {variantStore?.mainStore.localization.generalL10n.selection}:{' ' + selectedModelName}\r\n </label>\r\n ) : null}\r\n <div role='model_content' className={styles.model_content}>\r\n <div role='model_icons' ref={wrapperRef} className={styles.model_icons}>\r\n <CustomSwiper\r\n type='model'\r\n selectedElementIndex={selectedModelIndex}\r\n enabled={finishedRender && !!shouldShowImage}\r\n slidesPerColumn={2}\r\n columnsPerView={column}\r\n >\r\n {availableModels?.map((availableModel, index) => (\r\n <div key={index} className={modelClassNames(index, availableModel)}\r\n title={availableModel.label}\r\n data-modelcode={availableModel.code}\r\n onClick={handleModelClick}\r\n style={maxWidth > 0 ? { width: `${maxWidth}px` } : {}}\r\n ref={(el)=> tabNavigation.setFocusAtt(el)}\r\n >\r\n {availableModel.label}\r\n </div>\r\n ))}\r\n </CustomSwiper>\r\n </div>\r\n {shouldShowImage && (\r\n <>\r\n <hr />\r\n <div className={styles.image_content}>\r\n <img\r\n data-testid='side_image'\r\n className={styles.side_image}\r\n src={variantStore?.sideImagePath}\r\n />\r\n </div>\r\n </>\r\n )}\r\n {!isMobile ? (\r\n <label className={styles.choosen_model_label}>\r\n {variantStore?.mainStore.localization.generalL10n.selection}:{' ' + selectedModelName}\r\n </label>\r\n ) : null}\r\n <WWSKioskInfo />\r\n </div>\r\n </div>\r\n );\r\n })\r\n);\r\n","import React from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport { IVariantStore } from '../../../../types/index';\r\nimport classNames from 'classnames';\r\nimport styles from './sizeDimension.scss';\r\nimport SizeRegularMan from '../../../icons/size_regular_man';\r\nimport SizeLongMan from '../../../icons/size_long_man';\r\nimport SizeShortMan from '../../../icons/size_short_man';\r\nimport { ISizeType } from '../../../../stores/types';\r\nimport TabNavigationHelper from '../../../../helper/tabNavigationHelper';\r\n\r\nexport const SizeDimension = inject('variantStore')(\r\n observer(({ variantStore, sizeType }: IVariantStore & ISizeDimensionProps) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const handleSizeDimensionClick = (event: React.MouseEvent<HTMLDivElement>) => {\r\n if (event.currentTarget.dataset.dimension) {\r\n // We need this in order to have kiosk selected size dimension update in variant panel\r\n if (variantStore?.mainStore.showKioskLayout)\r\n variantStore?.mainStore.workWearStoreStore.changeSelectedSizeType(event.currentTarget.dataset.dimension);\r\n variantStore?.changeSelectedSizeType(event.currentTarget.dataset.dimension);\r\n }\r\n };\r\n\r\n const isSizeDimensionInactive = sizeType.sizes.every(size => {\r\n return size.salesArticleVariantKey == '';\r\n });\r\n\r\n return (\r\n <div role='size_dimension' className={classNames(styles.size_dimension, {\r\n [styles.active]:\r\n variantStore?.selectedSizeType?.sizeTypeName === sizeType.sizeTypeName && !isSizeDimensionInactive,\r\n [styles.size_dimension_inactive]: isSizeDimensionInactive,\r\n })}\r\n data-dimension={sizeType.sizeTypeName}\r\n onClick={handleSizeDimensionClick}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}>\r\n {\r\n sizeType.sizeTypeCode == 1 || sizeType.sizeTypeCode == 130 ? (\r\n <SizeRegularMan />\r\n ) : null\r\n }\r\n {\r\n sizeType.sizeTypeCode == 2 || sizeType.sizeTypeCode == 129 ? (\r\n <SizeLongMan />\r\n ) : null\r\n }\r\n {\r\n sizeType.sizeTypeCode == 3 || sizeType.sizeTypeCode == 128 ? (\r\n <SizeShortMan />\r\n ) : null\r\n }\r\n <div className={styles.selected_size_dimension_label}>{sizeType.sizeTypeName}</div>\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport interface ISizeDimensionProps {\r\n sizeType: ISizeType;\r\n}\r\n","import React from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport { IVariantStore } from '../../../types';\r\nimport { SizeDimension } from './sizeDimension/sizeDimension';\r\nimport styles from './sizeDimensions.scss';\r\n\r\nexport const SizeDimensions = inject('variantStore')(\r\n observer(({ variantStore }: IVariantStore) => {\r\n const availableSizeTypes = variantStore?.variantSelectionCopy.availableSizeTypes;\r\n const kioskAvaliableSizeTypes = variantStore?.mainStore.workWearStoreStore.availableSizeTypes;\r\n\r\n const mapSizeTypes = sizeType => <SizeDimension sizeType={sizeType} key={sizeType.sizeTypeName} />;\r\n\r\n function renderVariantStoreSizeDimensions(): JSX.Element {\r\n return (\r\n <>\r\n {availableSizeTypes && availableSizeTypes.length > 1 ? (\r\n <div data-testid='size_dimensions' className={styles.size_dimensions}>\r\n {availableSizeTypes.map(mapSizeTypes)}\r\n </div>\r\n ) : null}\r\n </>\r\n );\r\n }\r\n\r\n function renderKioskSizeDimensions(): JSX.Element {\r\n return (\r\n <>\r\n {kioskAvaliableSizeTypes && kioskAvaliableSizeTypes.length > 1 && (\r\n <div data-testid='size_dimensions' className={styles.size_dimensions}>\r\n {variantStore?.mainStore.workWearStoreStore.availableSizeTypes.map(mapSizeTypes)}\r\n </div>\r\n )}\r\n </>\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {variantStore?.mainStore.showKioskLayout\r\n ? renderKioskSizeDimensions()\r\n : renderVariantStoreSizeDimensions()}\r\n </>\r\n );\r\n })\r\n);\r\n","import React, { useEffect } from 'react';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport { observer, inject } from 'mobx-react';\r\nimport { SizeDimensions } from '../sizeDimensions/sizeDimensions';\r\nimport { IVariantStore } from '../../../types';\r\nimport styles from './sizePanel.scss';\r\nimport { SizeValues } from '../sizeValues/sizeValues';\r\nimport SizeTable from '../../icons/sizeTable';\r\nimport classNames from 'classnames';\r\nimport Triangle from '../../icons/triangle';\r\nimport WWSKioskInfo from '../../workwearStoreAvailabilityModal/wwsKioskInfo/wwsKioskInfo';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport const SizePanel = inject('variantStore')(\r\n observer(({ variantStore }: IVariantStore) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const isMobile = variantStore?.mainStore.isMobileShop;\r\n\r\n function redirectToSizeTable() {\r\n if (variantStore?.variantSelectionCopy.sizeTableType == 'clothing')\r\n window.location.href = `${variantStore.mainStore.localization.generalL10n.clothingSizeTableUrl}`;\r\n if (variantStore?.variantSelectionCopy.sizeTableType == 'gloves')\r\n window.location.href = `${variantStore.mainStore.localization.generalL10n.glovesSizeTableUrl}`;\r\n }\r\n\r\n useEffect(() => {\r\n if (variantStore?.showSizeAccuracy) {\r\n // Setting marker position on fit_accuracy_scale\r\n const marker = document.getElementById('marker');\r\n const fit_accuracy_scales = document.getElementById('fit_accuracy_scales');\r\n\r\n if (marker && fit_accuracy_scales && (variantStore?.selectedSize?.size.fittingAccuracy !== undefined)) {\r\n const halfScaleWidth = fit_accuracy_scales.offsetWidth / 2;\r\n const markerPosition = (halfScaleWidth * variantStore.selectedSize.size.fittingAccuracy) / 0.5;\r\n marker.style.marginLeft = halfScaleWidth + markerPosition + 'px';\r\n }\r\n }\r\n });\r\n\r\n return (\r\n <div data-testid='size_panel_wrapper' className={styles.size_panel_wrapper}>\r\n <div className={styles.size_content}>\r\n {variantStore?.variantSelectionCopy.availableSizeTypes && (\r\n <div className={styles.size_panel_content} ref={(el)=>tabNavigation.setGroupAtt(el)}>\r\n {isMobile ? (\r\n <label className={classNames(styles.choosen_size_label, 'notranslate')}>\r\n {variantStore.mainStore.localization.generalL10n.selection}:\r\n {' ' + variantStore?.selectedSize?.size.label}\r\n </label>\r\n ) : null}\r\n <SizeDimensions />\r\n <SizeValues />\r\n <WWSKioskInfo />\r\n {!isMobile ? (\r\n <label className={classNames(styles.choosen_size_label, 'notranslate')}>\r\n {variantStore.mainStore.localization.generalL10n.selection}:\r\n {' ' + variantStore?.selectedSize?.size.label}\r\n </label>\r\n ) : null}\r\n {variantStore.variantSelectionCopy.sizeTableType && (\r\n <button\r\n data-testid='button_size_table'\r\n className={styles.size_table_button}\r\n onClick={redirectToSizeTable}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n >\r\n <SizeTable />\r\n <span className={styles.size_table_text}>\r\n {helper.decodeHTML(variantStore.mainStore.localization.generalL10n.sizeTable)}\r\n </span>\r\n </button>\r\n )}\r\n {variantStore.showSizeAccuracy && (\r\n <div data-testid='fit_accuracy_wrapper' className={styles.fit_accuracy_wrapper}>\r\n <label>\r\n {helper.decodeHTML(\r\n variantStore.mainStore.localization.generalL10n.fittingAccuracy\r\n )}\r\n </label>\r\n <div className={styles.fit_accuracy_container}>\r\n <div className={classNames(styles.fit_accuracy_border, styles.border_left)} />\r\n <div id='fit_accuracy_scales' className={styles.fit_accuracy_scales}>\r\n <div className={styles.fit_accuracy_scale} />\r\n <div className={styles.fit_accuracy_scale} />\r\n <div className={styles.fit_accuracy_scale} />\r\n </div>\r\n <div id='marker' className={styles.marker}>\r\n <Triangle />\r\n </div>\r\n <div className={classNames(styles.fit_accuracy_border, styles.border_right)} />\r\n </div>\r\n <table className={styles.section_headlines}>\r\n <tbody>\r\n <tr>\r\n <td>\r\n {helper.decodeHTML(\r\n variantStore.mainStore.localization.generalL10n.smallerSize\r\n )}\r\n </td>\r\n <td>\r\n {helper.decodeHTML(\r\n variantStore.mainStore.localization.generalL10n.matchingSize\r\n )}\r\n </td>\r\n <td>\r\n {helper.decodeHTML(\r\n variantStore.mainStore.localization.generalL10n.largerSize\r\n )}\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n })\r\n);\r\n","import React from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport styles from './sizeValue.scss';\r\nimport { IVariantStore } from '../../../../types';\r\nimport { AvailabilityStatusEnum, ISize, VariantType } from '../../../../stores/types';\r\nimport TabNavigationHelper from '../../../../helper/tabNavigationHelper';\r\n\r\nexport const SizeValue = inject('variantStore')(\r\n observer(({ variantStore, size, variantKey }: IVariantStore & ISizeValueProps) => {\r\n if (!variantStore)\r\n return null;\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const enabledKiosk = variantStore.mainStore.showKioskLayout;\r\n\r\n function handleSelectedSizeChangeClick() {\r\n // We need this in order to have kiosk selected size update in variant panel\r\n if (enabledKiosk)\r\n variantStore?.mainStore.workWearStoreStore.changeSelectedSize(size);\r\n variantStore?.changeSelectedSize(size);\r\n }\r\n\r\n function variantAvailabilityState(sizeCode: number): string {\r\n if (!variantStore)\r\n return styles.variant_status_red;\r\n \r\n const wwsStore = variantStore.mainStore.workWearStoreStore;\r\n const status = wwsStore.\r\n variantAvailabilityState(sizeCode, VariantType.Size, variantKey, wwsStore.variantInfoInKiosk);\r\n\r\n let result = '';\r\n if (!variantKey)\r\n result = styles.inactive + ' ';\r\n if (status === AvailabilityStatusEnum.InStock)\r\n result += styles.variant_status_green;\r\n else\r\n result += styles.variant_status_red;\r\n\r\n return result;\r\n }\r\n\r\n function sizeValueClassNames(): string {\r\n const classNames:string[] = [styles.size_value, 'notranslate'];\r\n if (enabledKiosk) {\r\n classNames.push(styles.kiosk);\r\n const stateClass = variantAvailabilityState(size.code);\r\n classNames.push(stateClass);\r\n if (variantStore?.mainStore.workWearStoreStore.selectedSize?.size.code == size.code)\r\n classNames.push(styles.active);\r\n }\r\n else {\r\n if (variantStore?.selectedSize?.size.code == size.code)\r\n classNames.push(styles.active);\r\n if (!variantKey)\r\n classNames.push(styles.sold_out_size);\r\n }\r\n return classNames.join(' ');\r\n }\r\n\r\n return (\r\n <div data-testid='size_value' data-savkey={variantKey}\r\n className={sizeValueClassNames()}\r\n onClick={handleSelectedSizeChangeClick}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}>\r\n {size.name}\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport interface ISizeValueProps {\r\n size: ISize;\r\n variantKey: string;\r\n}\r\n","import React, { useRef, useEffect } from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport { IVariantStore } from '../../../types';\r\nimport { SizeValue } from './sizeValue/sizeValue';\r\nimport { useViewportWidth } from '../../../helper/viewPortWidth';\r\nimport styles from './sizeValues.scss';\r\nimport { ISalesArticleVariantSize } from '../../../stores/types';\r\n\r\nexport const SizeValues = inject('variantStore')(\r\n observer(({ variantStore }: IVariantStore) => {\r\n const wrapperRef = useRef<HTMLDivElement>(null);\r\n const { width } = typeof window !== 'undefined' ? useViewportWidth() : { width: 1024 };\r\n\r\n useEffect(() => {\r\n if (wrapperRef.current) {\r\n const wrapperChildren = Array.from(wrapperRef.current.children as HTMLCollectionOf<HTMLElement>);\r\n\r\n // reset width just incase\r\n wrapperChildren.forEach(element => {\r\n element.style.width = 'auto';\r\n });\r\n\r\n let maxChildWidth = 0;\r\n wrapperChildren.forEach(element => {\r\n if (element.clientWidth > maxChildWidth) maxChildWidth = element.offsetWidth;\r\n });\r\n\r\n if (maxChildWidth <= 50) maxChildWidth = 42;\r\n\r\n let column = 1;\r\n if (maxChildWidth > 100 && maxChildWidth <= 160) column = 2;\r\n else if (maxChildWidth <= 100 && maxChildWidth > 80) column = 3;\r\n else if (maxChildWidth <= 80 && maxChildWidth > 42) column = 4;\r\n else if (maxChildWidth <= 42) {\r\n column = 5;\r\n maxChildWidth = 42;\r\n // ESPP-4849, for small view, based on view width to adjust column number\r\n if (width >= 620 && width < 769) column = 7;\r\n else if (width >= 470 && width < 620) column = 6;\r\n }\r\n\r\n while (column * maxChildWidth >= wrapperRef.current.clientWidth - 5) {\r\n if (column > 1) column -= 1;\r\n else break;\r\n }\r\n\r\n wrapperChildren.forEach(element => {\r\n element.style.width = maxChildWidth + 'px';\r\n });\r\n wrapperRef.current.setAttribute('style', `grid-template-columns: repeat(${column}, 1fr);`);\r\n }\r\n }, [variantStore?.selectedSizeType]);\r\n\r\n function renderArticleVariantSize(articleVariantSize: ISalesArticleVariantSize) {\r\n return (\r\n <SizeValue\r\n size={articleVariantSize.size}\r\n variantKey={articleVariantSize.salesArticleVariantKey}\r\n key={articleVariantSize.size.name}\r\n />\r\n );\r\n }\r\n\r\n function renderKioskSizes(): JSX.Element {\r\n return (\r\n <>{variantStore?.mainStore.workWearStoreStore.selectedSizeType?.sizes.map(renderArticleVariantSize)}</>\r\n );\r\n }\r\n\r\n function renderVariantStoreSizes(): JSX.Element {\r\n return <>{variantStore?.selectedSizeType?.sizes.map(renderArticleVariantSize)}</>;\r\n }\r\n\r\n return (\r\n <div ref={wrapperRef} data-testid='size_values' className={styles.size_values}>\r\n {variantStore?.mainStore.showKioskLayout ? renderKioskSizes() : renderVariantStoreSizes()}\r\n </div>\r\n );\r\n })\r\n);\r\n","import React from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport classNames from 'classnames';\r\nimport styles from './specialPanel.scss';\r\nimport { ISizeType, ISalesArticleVariantSize } from '../../../stores/types';\r\nimport { IVariantStore } from '../../../types/index';\r\nimport Length from '../../icons/length';\r\nimport Diameter from '../../icons/diameter';\r\nimport WWSKioskInfo from '../../workwearStoreAvailabilityModal/wwsKioskInfo/wwsKioskInfo';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport const SpecialPanel = inject('variantStore')(\r\n observer(({ variantStore }: IVariantStore) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n\r\n const sizeTypeClick = (event: React.MouseEvent<HTMLDivElement>) => {\r\n const clickedSizeType = event.currentTarget.dataset.sizetype;\r\n if (clickedSizeType) variantStore?.changeSelectedSizeType(clickedSizeType);\r\n };\r\n\r\n const sizeClick = (event: React.MouseEvent<HTMLDivElement>) => {\r\n if (event.currentTarget.dataset.index) {\r\n const index = parseInt(event.currentTarget.dataset.index);\r\n const clickedSize = variantStore?.selectedSizeType?.sizes[index].size;\r\n if (clickedSize) variantStore?.changeSelectedSize(clickedSize);\r\n }\r\n };\r\n\r\n return (\r\n <div className={styles.special_panel}>\r\n {variantStore?.mainStore.isMobileShop && (\r\n <div data-testid='subheader' className={classNames(styles.subheader, styles.subheader_mobile)}>\r\n <label>{variantStore.mainStore.localization.generalL10n.textDiameter}</label>\r\n <Diameter />\r\n </div>\r\n )}\r\n <div data-testid='special-size-type' className={styles.special_content}>\r\n {variantStore?.mainStore.dataStore.variantSelection.availableSizeTypes.map(\r\n (sizeType: ISizeType, index) => (\r\n <div\r\n key={index}\r\n className={classNames(styles.special_value, {\r\n ['pdp-selected']:\r\n variantStore?.selectedSizeType?.sizeTypeName === sizeType.sizeTypeName,\r\n [styles.sold_out]: !variantStore.anySizeExistForSizeType(sizeType),\r\n [styles.special_value_kiosk_sold_out]: variantStore.mainStore.showKioskLayout,\r\n })}\r\n data-sizetype={sizeType.sizeTypeName}\r\n data-testid={sizeType.sizeTypeName}\r\n onClick={sizeTypeClick}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n >\r\n {sizeType.sizeTypeName}\r\n </div>\r\n )\r\n )}\r\n </div>\r\n <label className={styles.chosen_special_size_type}>\r\n {variantStore?.mainStore.localization.generalL10n.selection}:\r\n {' ' + variantStore?.selectedSizeType?.sizeTypeName}\r\n </label>\r\n <div data-testid='subheader' className={styles.subheader}>\r\n <label>{variantStore?.mainStore.localization.generalL10n.textLength}</label>\r\n <Length />\r\n </div>\r\n <div data-testid='special-size' className={styles.special_content}>\r\n {variantStore?.selectedSizeType?.sizes.map((savSize: ISalesArticleVariantSize, index) => (\r\n <div\r\n key={index}\r\n data-index={index}\r\n data-testid={savSize.size.name}\r\n className={classNames(styles.special_value, {\r\n ['pdp-selected']: variantStore?.selectedSize?.size.name === savSize.size.name,\r\n [styles.sold_out]: !savSize.salesArticleVariantKey,\r\n [styles.special_value_kiosk_sold_out]: variantStore.mainStore.showKioskLayout,\r\n })}\r\n onClick={sizeClick}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n >\r\n {savSize.size.name}\r\n </div>\r\n ))}\r\n </div>\r\n <label className={styles.chosen_special_size}>\r\n {variantStore?.mainStore.localization.generalL10n.selection}:\r\n {' ' + variantStore?.selectedSize?.size.name}\r\n </label>\r\n <WWSKioskInfo />\r\n </div>\r\n );\r\n })\r\n);\r\n","import React from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport styles from './variantButtonList.scss';\r\nimport { VariantButton } from '../variantButton/variantButton';\r\nimport { VariantType } from '../../../stores/types';\r\nimport { IInjectedProps } from '../../../types';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nexport const VariantButtonList = inject('store')(\r\n observer(({ store, isStickyHeader, isMobileHeader }: IInjectedProps) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const variantStore = store?.variantStore;\r\n const variantSelection = store?.dataStore.variantSelection;\r\n\r\n const variantContainerClassNames = (isStickyHeader\r\n ? [styles.variants_container, styles.isStickyHeader]\r\n : [styles.variants_container]\r\n ).join(' ');\r\n\r\n const variantListClassNames = (isStickyHeader\r\n ? [styles.variants_list, styles.isStickyHeader]\r\n : [styles.variants_list]\r\n ).join(' ');\r\n\r\n const colorButton = () => {\r\n if (!variantSelection?.showColorSwitcher && variantSelection?.availableColors[0]?.code === 0) {\r\n return <></>;\r\n }\r\n\r\n return (\r\n <div className={styles.variants_container_item}>\r\n <VariantButton\r\n variantType={VariantType.Color}\r\n isMobileHeader={isMobileHeader}\r\n isStickyHeader={isStickyHeader}\r\n isDeactive={!variantSelection?.showColorSwitcher}\r\n />\r\n <span className={variantListClassNames}>{variantStore?.selectedColor.name}</span>\r\n </div>\r\n );\r\n };\r\n\r\n const modelButton = () => {\r\n if (!variantSelection?.showModelSwitcher && variantSelection?.availableModels[0]?.code === 0) {\r\n return <></>;\r\n }\r\n\r\n return (\r\n <div className={styles.variants_container_item}>\r\n <VariantButton\r\n variantType={VariantType.Model}\r\n isMobileHeader={isMobileHeader}\r\n isStickyHeader={isStickyHeader}\r\n isDeactive={!variantSelection?.showModelSwitcher}\r\n />\r\n <span className={variantListClassNames} />\r\n </div>\r\n );\r\n };\r\n\r\n return (\r\n <div data-testid='variant_button_list_container' className={variantContainerClassNames}\r\n ref={(el) => tabNavigation.setGroupAtt(el)}>\r\n {colorButton()}\r\n {variantSelection?.showSizeSwitcher && !variantSelection.isScrew && (\r\n <div className={styles.variants_container_item}>\r\n <VariantButton\r\n variantType={VariantType.Size}\r\n isMobileHeader={isMobileHeader}\r\n isStickyHeader={isStickyHeader}\r\n />\r\n </div>\r\n )}\r\n {variantSelection?.showSizeSwitcher && variantSelection.isScrew && (\r\n <div className={styles.variants_container_item}>\r\n <VariantButton\r\n variantType={VariantType.Special}\r\n isMobileHeader={isMobileHeader}\r\n isStickyHeader={isStickyHeader}\r\n />\r\n <span className={variantListClassNames} />\r\n </div>\r\n )}\r\n {modelButton()}\r\n </div>\r\n );\r\n })\r\n);\r\n\r\nexport default VariantButtonList;\r\n","import React from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport styles from './variantButton.scss';\r\nimport classNames from 'classnames';\r\nimport { VariantStore } from '../../../stores/VariantStore';\r\nimport Cross from '../../icons/cross';\r\nimport Diameter from '../../icons/diameter';\r\nimport Length from '../../icons/length';\r\nimport ArrowSmallIcon from '../../icons/arrowSmallIcon';\r\nimport { useViewportWidth } from '../../../helper/viewPortWidth';\r\nimport { VariantType } from '../../../stores/types';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\nexport interface IVariantButton {\r\n variantStore?: VariantStore;\r\n variantType: VariantType;\r\n isMobileHeader?: boolean;\r\n isStickyHeader?: boolean;\r\n isDeactive?: boolean;\r\n}\r\n\r\nexport const VariantButton = inject('variantStore')(\r\n observer(({ variantStore, variantType, isMobileHeader, isStickyHeader, isDeactive }: IVariantButton) => {\r\n const { width } = typeof window !== 'undefined' ? useViewportWidth() : { width: 1024 };\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const colorButton = () => {\r\n const imgSrc =\r\n variantStore?.mainStore.cdnAssetsUrl +\r\n 'colors64px/ColorIcon40/' +\r\n variantStore?.selectedColor.code.toString() +\r\n '.png';\r\n return (\r\n <>\r\n <img\r\n role='color-icn'\r\n className={styles.colorIcon}\r\n src={imgSrc}\r\n alt={variantStore?.mainStore.localization.generalL10n.colorIcon + ' ' +\r\n variantStore?.selectedColor.name}\r\n title={variantStore?.selectedColor.name}\r\n />\r\n {!isMobileHeader && (\r\n <div role='btn-title' className={styles.button_label}>\r\n {variantStore?.selectedColor.name}\r\n </div>\r\n )}\r\n </>\r\n );\r\n };\r\n\r\n const sizeButton = () => {\r\n return (\r\n <>\r\n <div role='value' className={classNames(styles.selected_value, 'notranslate')}> \r\n {variantStore?.selectedSize?.size.name}\r\n </div>\r\n </>\r\n );\r\n };\r\n\r\n const specialButton = () => {\r\n const sizeTypeContent = () => {\r\n return (\r\n <div className={styles.special}>\r\n <Diameter />\r\n <div className={styles.text}>\r\n <div className={styles.value}>{variantStore?.variantSelectionCopy.selectedSizeType}</div>\r\n </div>\r\n </div>\r\n );\r\n };\r\n const valueContent = () => {\r\n return (\r\n <div className={styles.special}>\r\n <Length />\r\n <div className={styles.text}>\r\n <div className={styles.value}>{variantStore?.variantSelectionCopy.selectedSize?.name}</div>\r\n </div>\r\n </div>\r\n );\r\n };\r\n\r\n const valueClassNames = [styles.selected_value, styles.special_value].join(' ');\r\n return (\r\n <>\r\n <div role='value' className={valueClassNames}>\r\n {sizeTypeContent()}\r\n {valueContent()}\r\n </div>\r\n </>\r\n );\r\n };\r\n\r\n const modelButton = () => {\r\n const valueClassNames = [styles.selected_value, styles.model_value].join(' ');\r\n return (\r\n <div role='value' className={valueClassNames}>\r\n {variantStore?.selectedModel?.label}\r\n </div>\r\n );\r\n };\r\n\r\n const label = (labelText: string, insideButton = false) => {\r\n if (isStickyHeader) {\r\n return null;\r\n }\r\n const labelClassNames = classNames([styles.variant_title], {\r\n [styles.variantLabelInsideButton]: insideButton,\r\n });\r\n\r\n return (\r\n <div role='var-title' className={labelClassNames}>\r\n {labelText}\r\n </div>\r\n );\r\n };\r\n\r\n const onClick = () => {\r\n if (variantStore?.isVariantPanelOpen && variantStore.variantType === variantType\r\n && !(variantStore?.mainStore.isMobileShop && isMobileHeader))\r\n variantStore.changeVariantPanelDisplay(false);\r\n else variantStore?.changeVariantPanelDisplay(true, variantType, width);\r\n };\r\n\r\n const content = () => {\r\n switch (variantType) {\r\n case VariantType.Color: {\r\n const testId = 'variant-color-button';\r\n const labelText = `${variantStore?.mainStore.localization.generalL10n.textColor}`;\r\n return (\r\n <>\r\n {label(labelText)}\r\n {button(testId)}\r\n </>\r\n );\r\n }\r\n case VariantType.Size: {\r\n const testId = 'variant-size-button';\r\n const labelText = `${variantStore?.mainStore.localization.generalL10n.textSize}`;\r\n return (\r\n <>\r\n {label(labelText)}\r\n {button(testId)}\r\n </>\r\n );\r\n }\r\n case VariantType.Special: {\r\n const specialVariantTitle = `${variantStore?.mainStore.localization.generalL10n.textSize}`;\r\n const testId = 'variant-special-button';\r\n return (\r\n <>\r\n {label(specialVariantTitle)}\r\n {button(testId)}\r\n </>\r\n );\r\n }\r\n case VariantType.Model: {\r\n const testId = 'variant-model-button';\r\n const labelText = `${variantStore?.mainStore.localization.generalL10n.textModel}`;\r\n return (\r\n <>\r\n {label(labelText)}\r\n {button(testId)}\r\n </>\r\n );\r\n }\r\n default:\r\n }\r\n };\r\n\r\n const button = (testId: string) => {\r\n return (\r\n <div\r\n role='button'\r\n data-testid={testId}\r\n className={classNames(styles.button, {\r\n [styles.variant_special_button]: variantType === VariantType.Special,\r\n })}\r\n onClick={onClick}\r\n ref={(el)=> tabNavigation.setFocusAtt(el)}\r\n >\r\n {buttonContent()}\r\n {buttonIcon()}\r\n </div>\r\n );\r\n };\r\n\r\n const buttonContent = () => {\r\n switch (variantType) {\r\n case VariantType.Color: {\r\n return <>{colorButton()}</>;\r\n }\r\n case VariantType.Size: {\r\n return <>{sizeButton()}</>;\r\n }\r\n case VariantType.Special: {\r\n return <>{specialButton()}</>;\r\n }\r\n case VariantType.Model: {\r\n return <>{modelButton()}</>;\r\n }\r\n default:\r\n }\r\n };\r\n\r\n const buttonIcon = () => {\r\n const showCross = variantStore?.variantType === variantType && variantStore.isVariantPanelOpen;\r\n if (!showCross && isDeactive) {\r\n return <></>;\r\n }\r\n\r\n if (showCross) {\r\n return <Cross />;\r\n } else {\r\n return <ArrowSmallIcon />;\r\n }\r\n };\r\n\r\n const containerClassNames = (isStickyHeader\r\n ? [styles.variant_button, styles.isStickyHeader]\r\n : [styles.variant_button]\r\n ).join(' ');\r\n\r\n const isOnlyVariantButton = {\r\n [styles.only_variant_button]: isStickyHeader && variantStore?.variantButtonCount === 1,\r\n };\r\n\r\n const isColorVariantButton = { [styles.color_variant_button]: variantType === VariantType.Color };\r\n\r\n return (\r\n <div\r\n data-testid='variant-button'\r\n className={classNames(containerClassNames, isOnlyVariantButton, isColorVariantButton, {\r\n [styles.deactive]: isDeactive,\r\n })}\r\n >\r\n {content()}\r\n </div>\r\n );\r\n })\r\n);\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { observer, inject } from 'mobx-react';\r\nimport styles from './variantPanel.scss';\r\nimport classNames from 'classnames';\r\nimport Cross from '../icons/cross';\r\nimport Apply from '../icons/apply';\r\nimport { IVariantStore } from '../../types';\r\nimport { VariantType } from '../../stores/types';\r\nimport { ColorPanel } from './colorPanel/colorPanel';\r\nimport { SizePanel } from './sizePanel/sizePanel';\r\nimport { SpecialPanel } from './specialPanel/specialPanel';\r\nimport { VariantButton } from './variantButton/variantButton';\r\nimport { ModelPanel } from './modelPanel/modelPanel';\r\nimport { useViewportWidth } from '../../helper/viewPortWidth';\r\nimport Diameter from '../icons/diameter';\r\nimport TabNavigationHelper from '../../helper/tabNavigationHelper';\r\n\r\nexport const VariantPanel = inject('variantStore')(\r\n observer(({ variantStore }: IVariantStore) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n const variantPanelRef = useRef<HTMLDivElement>(null);\r\n const { width } = typeof window !== 'undefined' ? useViewportWidth() : { width: 1024 };\r\n const variantSelection = variantStore?.mainStore.dataStore.variantSelection;\r\n const closeClick = () => {\r\n if (variantStore?.isVariantPanelOpen) {\r\n variantStore.changeVariantPanelDisplay(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n window.addEventListener('resize', handleWindowResize, false);\r\n variantStore?.mainStore.setStickyHeaderTop();\r\n\r\n if (variantStore?.mainStore.showKioskLayout) {\r\n variantStore.changeVariantPanelDisplay(true, VariantType.Kiosk, width);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n window.removeEventListener('resize', handleWindowResize);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n window.shell.tabNav.onActivated('.variant_panel_close_button', () => handleClose())\r\n window.shell.tabNav.onActivated('.variant_panel_apply_button', () => handleClose())\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (variantStore?.isVariantPanelOpen) {\r\n if (variantPanelRef.current) {\r\n const firstFocusable = variantPanelRef.current.querySelectorAll('[focusable]')[0];\r\n window.shell.tabNav.focus(firstFocusable);\r\n }\r\n }\r\n }, [variantStore?.isVariantPanelOpen])\r\n\r\n function handleWindowResize(): void {\r\n if (variantStore?.isVariantPanelOpen) variantStore.setPanelPosition(window.innerWidth);\r\n }\r\n\r\n function handleClickOutside(event) {\r\n if (variantStore?.isVariantPanelOpen && variantStore.allowedInteraction) {\r\n const variantPanel = document.getElementById('variant_panel');\r\n const variantButtonList = Array.from(document.getElementsByClassName('pdp-variant_button'));\r\n const variantButtonClicked = variantButtonList.find(element => {\r\n return element.contains(event.target);\r\n });\r\n\r\n if (variantPanel && !variantStore.mainStore.isMobileShop && !variantButtonClicked) {\r\n if (!variantPanel.contains(event.target)) {\r\n closeClick();\r\n event.stopPropagation();\r\n }\r\n }\r\n }\r\n }\r\n\r\n const applyChange = () => {\r\n // variant change already applied on desktop when this event is called\r\n variantStore?.mainStore.isMobileShop && variantStore?.updateAll();\r\n if (variantStore?.isVariantPanelOpen) variantStore.changeVariantPanelDisplay(false);\r\n };\r\n\r\n const revertSelectionAndClosePanel = () => {\r\n variantStore?.resetVariantState();\r\n if (variantStore?.isVariantPanelOpen) variantStore.changeVariantPanelDisplay(false);\r\n };\r\n\r\n const handleClose = () => {\r\n const el = document.querySelector('.pdp-variants_container [focusable]')\r\n if (el)\r\n window.shell.tabNav.focus(el, 'keyboard')\r\n }\r\n\r\n const desktopHeader = (labelText: string) => {\r\n return (\r\n <>\r\n <label>{labelText}</label>\r\n <div role='close_button' className={classNames(styles.close_button, 'variant_panel_close_button')}\r\n onClick={closeClick}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n onKeyDown={tabNavigation.handleKeyDown}>\r\n <Cross />\r\n </div>\r\n </>\r\n );\r\n };\r\n\r\n const colorButton = () => {\r\n if (variantSelection?.showColorSwitcher)\r\n return <VariantButton variantType={VariantType.Color} isMobileHeader={true} />;\r\n else {\r\n if (variantSelection?.availableColors[0]?.code !== 0)\r\n return <VariantButton variantType={VariantType.Color} isMobileHeader={true} isDeactive={true} />;\r\n else return <></>;\r\n }\r\n };\r\n\r\n const modelButton = () => {\r\n if (variantSelection?.showModelSwitcher)\r\n return <VariantButton variantType={VariantType.Model} isMobileHeader={true} />;\r\n else if (variantSelection?.availableModels[0]?.code !== 0)\r\n return <VariantButton variantType={VariantType.Model} isMobileHeader={true} isDeactive={true} />;\r\n else return <></>;\r\n };\r\n\r\n return (\r\n <div\r\n role='panel'\r\n id='variant_panel'\r\n style={{ ...variantStore?.panelPosition }}\r\n className={classNames(\r\n styles.variant_panel,\r\n {\r\n [styles.mobile_variant_panel]: variantStore?.mainStore.isMobileShop,\r\n },\r\n {\r\n // For test reason to use pure string\r\n ['pdp-show']: variantStore?.isVariantPanelOpen,\r\n },\r\n {\r\n [styles.block]: !variantStore?.allowedInteraction,\r\n }\r\n )}\r\n ref={(el) => tabNavigation.setVariantPanelAttributes(el, variantStore?.isVariantPanelOpen)}\r\n >\r\n <div role='mobile_header' className={classNames(styles.header, styles.mobile_h)}>\r\n {colorButton()}\r\n {variantSelection?.showSizeSwitcher && !variantSelection.isScrew && (\r\n <VariantButton variantType={VariantType.Size} isMobileHeader={true} />\r\n )}\r\n {variantSelection?.showSizeSwitcher && variantSelection.isScrew && (\r\n <VariantButton variantType={VariantType.Special} isMobileHeader={true} />\r\n )}\r\n {modelButton()}\r\n </div>\r\n <div role='header' className={classNames(styles.header, styles.desktop_h)}>\r\n {variantStore?.variantType === VariantType.Color &&\r\n desktopHeader(variantStore.mainStore.localization.generalL10n.textColor)}\r\n {variantStore?.variantType === VariantType.Size &&\r\n desktopHeader(variantStore.mainStore.localization.generalL10n.textSize)}\r\n {variantStore?.variantType === VariantType.Special && (\r\n <>\r\n <div className={styles.special_header}>\r\n <label>{variantStore.mainStore.localization.generalL10n.textDiameter}</label>\r\n <Diameter />\r\n </div>\r\n <div role='button'\r\n className={styles.close_button}\r\n onClick={closeClick}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n >\r\n <Cross />\r\n </div>\r\n </>\r\n )}\r\n {variantStore?.variantType === VariantType.Model &&\r\n desktopHeader(variantStore.mainStore.localization.generalL10n.textModel)}\r\n </div>\r\n\r\n <div role='content' className={styles.content} ref={variantPanelRef}>\r\n {variantStore?.variantType === VariantType.Color && <ColorPanel />}\r\n {variantStore?.variantType === VariantType.Size && <SizePanel />}\r\n {variantStore?.variantType === VariantType.Special && <SpecialPanel />}\r\n {variantStore?.variantType === VariantType.Model && <ModelPanel />}\r\n </div>\r\n <div role='footer' className={classNames(styles.footer, styles.mobile_f)}>\r\n <div\r\n className={classNames(styles.button, styles.cancel, 'variant_panel_close_button')}\r\n data-testid='footer-cancel-button'\r\n onClick={revertSelectionAndClosePanel}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n onKeyDown={tabNavigation.handleKeyDown}\r\n >\r\n <Cross />\r\n <div className={styles.button_title}>\r\n {variantStore?.mainStore.localization.generalL10n.buttonClose}\r\n </div>\r\n </div>\r\n <div\r\n className={classNames(styles.button, styles.apply, 'variant_panel_apply_button')}\r\n onClick={applyChange}\r\n data-testid='footer-apply-button'\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n >\r\n <Apply />\r\n <div className={styles.button_title}>\r\n {variantStore?.mainStore.localization.generalL10n.buttonApply}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })\r\n);\r\n","import React, { useEffect } from 'react';\r\nimport { ILocalization } from '../../types';\r\nimport Cross from '../icons/cross';\r\nimport WorkwearstoreIcon from '../icons/workwearstoreIcon';\r\nimport styles from './workwearStoreAvailabilityModal.scss';\r\nimport WorkWearStoreStore from '../../stores/WorkWearStoreStore';\r\nimport { IVariantsStoreInformation } from '../../stores/types';\r\nimport WorkwearStore from './workwearStore/workwearStore';\r\nimport { inject, observer } from 'mobx-react';\r\nimport TabNavigationHelper from '../../helper/tabNavigationHelper';\r\n\r\nconst WorkwearStoreAvailabilityModal = inject('workWearStoreStore')(\r\n observer(({ localization, isOpen, workWearStoreStore, onClose }: IWorkwearStoreAvailabilityModal) => {\r\n const tabNavigation = TabNavigationHelper.instance;\r\n\r\n const closeButtonRef = React.useRef<HTMLDivElement>(null);\r\n const wwsaModalRef = React.useRef<HTMLDivElement>(null);\r\n const selectedColor = workWearStoreStore?.selectedColor?.name;\r\n const selectedModel = workWearStoreStore?.selectedModel?.label;\r\n const selectedSizeType = workWearStoreStore?.selectedSizeType?.sizeTypeName;\r\n const fullSizeName: string =\r\n (selectedSizeType ? selectedSizeType + ': ' : '') +\r\n workWearStoreStore?.wwsVariantSelectionCopy.selectedSize?.label;\r\n useEffect(() => {\r\n if (isOpen) {\r\n tabNavigation.setFocusAtt(closeButtonRef.current);\r\n window.shell.tabNav.focus(closeButtonRef.current as Element);\r\n }\r\n }, [isOpen])\r\n if (!isOpen) {\r\n return <></>;\r\n }\r\n\r\n\r\n function expandCollapse(storeName: string) {\r\n if (workWearStoreStore?.noVariants) return;\r\n\r\n if (workWearStoreStore?.openedStore == storeName) workWearStoreStore.changeOpenedStore('');\r\n else workWearStoreStore?.changeOpenedStore(storeName);\r\n }\r\n\r\n function checkStoreStatus(variantStoreInformation: IVariantsStoreInformation): number {\r\n const variant = variantStoreInformation.variants.find(element => {\r\n return (\r\n element.colorCode === workWearStoreStore?.selectedColor?.code &&\r\n element.sizeCode === workWearStoreStore.selectedSize?.size.code &&\r\n element.modelCode === workWearStoreStore.selectedModel?.code\r\n );\r\n });\r\n if (variant) return variant.availabilityStatus;\r\n return 3;\r\n }\r\n\r\n function labelAndText(): string {\r\n const result: Array<string> = [];\r\n if (selectedColor) {\r\n result.push(localization.generalL10n.textColor + ': ' + selectedColor);\r\n }\r\n if (fullSizeName) {\r\n result.push(localization.generalL10n.textSize + ': ' + fullSizeName);\r\n }\r\n if (selectedModel) {\r\n result.push(localization.generalL10n.textModel + ': ' + selectedModel);\r\n }\r\n return result.join(' - ');\r\n }\r\n\r\n function goToWorkwearStore(event: React.MouseEvent) {\r\n event.preventDefault();\r\n window.open(localization.wwsOnlyL10n?.workWearStoresLink, '_blank');\r\n }\r\n\r\n return (\r\n <div className={styles.wwsa_modal} data-testid='wwsa_modal_root'>\r\n <div ref={wwsaModalRef} className={styles.wwsa_modal_container} data-testid='modal-container'>\r\n <div className={styles.wwsa_modal_content} ref={(el) => tabNavigation.setModalAtt(el)}>\r\n <h2 className={styles.wwsa_modal_header}>\r\n <span className={styles.wwsa_modal_title}>\r\n {localization.wwsOnlyL10n?.checkWorkwearstoreAvailability}\r\n </span>\r\n <div className={styles.close_button} data-testid='close_button_header' onClick={onClose}\r\n ref={closeButtonRef}\r\n onKeyDown={tabNavigation.handleKeyDown}>\r\n <Cross />\r\n </div>\r\n </h2>\r\n <div className={styles.wwsa_modal_middle}>\r\n <p className={styles.wws_selected_values}>\r\n <strong>{workWearStoreStore?.mainStore.dataStore.orderModule.articleInfo.title}</strong>\r\n {labelAndText()}\r\n </p>\r\n <div className={styles.wws_wrapper}>\r\n {workWearStoreStore?.wwsData?.variantsStoreInformation.map(\r\n (variantStoreInformation: IVariantsStoreInformation, index) => (\r\n <WorkwearStore\r\n key={index}\r\n localization={localization}\r\n variantStoreInformation={variantStoreInformation}\r\n status={checkStoreStatus(variantStoreInformation)}\r\n isCollapsed={\r\n workWearStoreStore.openedStore !=\r\n variantStoreInformation.retailStoreName\r\n }\r\n expandCollapse={() =>\r\n expandCollapse(variantStoreInformation.retailStoreName)\r\n }\r\n workWearStoreStore={workWearStoreStore}\r\n />\r\n )\r\n )}\r\n </div>\r\n </div>\r\n <div className={styles.wwsa_modal_footer}>\r\n <div className={styles.opening_hours_container}>\r\n <button\r\n data-testid='opening_hours'\r\n className={styles.opening_hours}\r\n onClick={e => goToWorkwearStore(e)}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n >\r\n <WorkwearstoreIcon />\r\n <p className={styles.opening_hours_text}>\r\n {localization.wwsOnlyL10n?.openingHoursAndAdditionalInfo}\r\n </p>\r\n </button>\r\n </div>\r\n <p className={styles.wwsa_modal_bottom}>* {localization.wwsOnlyL10n?.infoSoldOut}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })\r\n);\r\n\r\ninterface IWorkwearStoreAvailabilityModal {\r\n localization: ILocalization;\r\n isOpen: boolean;\r\n workWearStoreStore?: WorkWearStoreStore;\r\n onClose?();\r\n}\r\n\r\nexport default WorkwearStoreAvailabilityModal;\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { ILocalization } from '../../../types';\r\nimport styles from './workwearStore.scss';\r\nimport defaultStyles from '../../../styles/defaults.scss';\r\nimport classNames from 'classnames';\r\nimport { IVariantsStoreInformation, VariantType, AvailabilityStatusEnum } from '../../../stores/types';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport ExpanderIconOpenSmall from '../../icons/expanderIconOpenSmall';\r\n\r\nimport { useViewportWidth } from '../../../helper/viewPortWidth';\r\nimport WorkWearStoreStore from '../../../stores/WorkWearStoreStore';\r\nimport WorkwearStoreColors from './workwearStoreColors/workwearStoreColors';\r\nimport WorkwearStoreSizes from './workwearStoreSizes/workwearStoreSizes';\r\nimport WorkwearStoreModels from './workwearStoreModels/workwearStoreModels';\r\nimport TabNavigationHelper from '../../../helper/tabNavigationHelper';\r\n\r\nconst breakpointMobileMinWidth = parseInt(defaultStyles.breakpointMobileMinWidth) - 1;\r\n\r\nfunction WorkwearStore(props: IWorkwearStore) {\r\n const { localization, variantStoreInformation, status, isCollapsed, expandCollapse, workWearStoreStore } = props;\r\n const collapseWrapperRef = useRef<HTMLDivElement>(null);\r\n const [collapseWrapperHeight, setCollapseWrapperHeight] = React.useState(0);\r\n\r\n const { width } = typeof window !== 'undefined' ? useViewportWidth() : { width: 1024 };\r\n\r\n const swiperDirection = width < breakpointMobileMinWidth ? 'horizontal' : 'vertical';\r\n const showColors = workWearStoreStore.availableColors.length > 0;\r\n const haveColor = variantStoreInformation ?\r\n variantStoreInformation.variants.filter(item => item.sizeCode !== 0).length > 0 : false;\r\n const haveSize = workWearStoreStore.selectedSizeType?.sizes ?\r\n workWearStoreStore.selectedSizeType.sizes.length > 1 : false;\r\n const showSizes = haveColor || haveSize;\r\n const showModels = workWearStoreStore.availableModels.length > 1;\r\n const isAnotherStoreOpen =\r\n workWearStoreStore.openedStore && workWearStoreStore.openedStore !== variantStoreInformation?.retailStoreName;\r\n\r\n const tabNavigation = TabNavigationHelper.instance;\r\n function variantAvailabilityStateClass(variantCode: number, variantType: VariantType, savKey: string): string[] {\r\n if (variantStoreInformation) {\r\n const status =\r\n workWearStoreStore.variantAvailabilityState(variantCode, variantType, savKey, variantStoreInformation);\r\n if (status === AvailabilityStatusEnum.InStock) return [styles.variant_status_green];\r\n if (status === AvailabilityStatusEnum.CurrentlyOutOfStock) return [styles.variant_status_orange];\r\n }\r\n return [styles.variant_status_red];\r\n }\r\n\r\n useEffect(() => {\r\n if (collapseWrapperRef.current) {\r\n setCollapseWrapperHeight(collapseWrapperRef.current.getBoundingClientRect().height);\r\n }\r\n });\r\n\r\n let availabilityLabel: string | undefined = undefined;\r\n if (status === 0) {\r\n availabilityLabel = localization.wwsOnlyL10n?.currentlyAvailable;\r\n } else if (status === 1) {\r\n availabilityLabel = localization.wwsOnlyL10n?.currentlyNotAvailable;\r\n } else if (status > 1) {\r\n availabilityLabel = localization.wwsOnlyL10n?.notAvailable;\r\n }\r\n\r\n return (\r\n <div\r\n data-testid='workwear_store'\r\n className={classNames(styles.workwear_store, {\r\n [styles.collapsed]: isCollapsed,\r\n [styles.another_store_open]: isAnotherStoreOpen,\r\n })}\r\n >\r\n <div data-testid='wws-header' className={styles.wws_header} onClick={expandCollapse}>\r\n <div className={styles.wws_title}>\r\n <span\r\n className={classNames(\r\n styles.availability_circle_red,\r\n {\r\n [styles.green]: status === 0,\r\n },\r\n {\r\n [styles.yellow]: status === 1,\r\n }\r\n )}\r\n />\r\n <p className={styles.wws_name}>\r\n <strong>\r\n {variantStoreInformation?.retailStoreName.substr(\r\n variantStoreInformation.retailStoreName.indexOf(' ') + 1\r\n )}\r\n </strong>\r\n <label className={styles.wws_name_label}>{helper.decodeHTML(availabilityLabel)} *</label>\r\n </p>\r\n </div>\r\n\r\n {!workWearStoreStore.noVariants && (\r\n <div\r\n data-testid='arrow_button'\r\n className={classNames(styles.arrow_button, {\r\n [styles.collapsed]: isCollapsed,\r\n })}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n >\r\n <div role='btn-arrow_button_label' className={styles.arrow_button_label}>\r\n {localization.wwsOnlyL10n?.checkAllVariants}\r\n </div>\r\n <ExpanderIconOpenSmall />\r\n </div>\r\n )}\r\n </div>\r\n <div className={styles.content_wrapper} style={{ height: isCollapsed ? 0 : collapseWrapperHeight }}\r\n ref={(el)=>tabNavigation.toggleDisabledAtt(el, isCollapsed)}>\r\n <div ref={collapseWrapperRef} className={styles.collapse_wrapper}>\r\n <div className={styles.color_size_content_wrapper}>\r\n <WorkwearStoreColors\r\n workWearStoreStore={workWearStoreStore}\r\n showSizes={showSizes}\r\n showColors={showColors}\r\n swiperDirection={swiperDirection}\r\n width={width}\r\n />\r\n <WorkwearStoreSizes\r\n workWearStoreStore={workWearStoreStore}\r\n variantAvailabilityState={variantAvailabilityStateClass}\r\n showSizes={showSizes}\r\n width={width}\r\n />\r\n </div>\r\n <WorkwearStoreModels\r\n workWearStoreStore={workWearStoreStore}\r\n variantAvailabilityState={variantAvailabilityStateClass}\r\n showModels={showModels}\r\n swiperDirection={swiperDirection}\r\n width={width}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ninterface IWorkwearStore {\r\n localization: ILocalization;\r\n variantStoreInformation?: IVariantsStoreInformation;\r\n status: number;\r\n isCollapsed: boolean;\r\n\r\n expandCollapse?();\r\n\r\n workWearStoreStore: WorkWearStoreStore;\r\n}\r\n\r\nexport default WorkwearStore;\r\n","import React, { useRef } from 'react';\r\nimport classNames from 'classnames';\r\nimport WorkWearStoreStore from '../../../../stores/WorkWearStoreStore';\r\nimport styles from '../workwearStore.scss';\r\nimport { CustomSwiper } from '../../../variantPanel/customeSwiper/customeSwiper';\r\nimport defaultStyles from '../../../../styles/defaults.scss';\r\nimport TabNavigationHelper from '../../../../helper/tabNavigationHelper';\r\n\r\nconst breakpointMobileMinWidth = parseInt(defaultStyles.breakpointMobileMinWidth) - 1;\r\n\r\nfunction WorkwearStoreColors(props: IWorkwearStoreColors) {\r\n const { workWearStoreStore, showColors, showSizes, swiperDirection, width } = props;\r\n const tabNavigation = TabNavigationHelper.instance;\r\n if (!showColors) {\r\n return null;\r\n }\r\n\r\n const selectedColorElementRef = useRef<HTMLInputElement>(null);\r\n\r\n const isSizesShown = {\r\n [styles.sizes_shown]: showSizes,\r\n [styles.sizes_not_shown]: !showSizes,\r\n };\r\n\r\n function handleColorClick(event) {\r\n const colorCode = event.currentTarget.dataset.colorcode;\r\n const selectedColorInternal = workWearStoreStore.availableColors.find(\r\n availableColor => availableColor.code == parseInt(colorCode)\r\n );\r\n if (selectedColorInternal)\r\n workWearStoreStore.changeSelectedColor(selectedColorInternal);\r\n }\r\n\r\n let colorsInRow = showSizes ? 4 : 8;\r\n colorsInRow = width >= 769 ? colorsInRow : 1;\r\n let colorSwipeable = true;\r\n let selectedColorIndex;\r\n\r\n if (workWearStoreStore.availableColors instanceof Array) {\r\n selectedColorIndex = workWearStoreStore.availableColors.findIndex(color => {\r\n return color.code === workWearStoreStore.selectedColor?.code;\r\n });\r\n selectedColorIndex = Math.floor(selectedColorIndex / colorsInRow);\r\n\r\n colorSwipeable =\r\n (width < breakpointMobileMinWidth && workWearStoreStore.availableColors.length >= 4) ||\r\n (width >= breakpointMobileMinWidth && workWearStoreStore.availableColors.length >= colorsInRow * 3);\r\n }\r\n\r\n return (\r\n <div role='color_content' className={classNames(styles.color_content, isSizesShown)}>\r\n <div\r\n role='color_icons'\r\n className={classNames(styles.color_icons, {\r\n [styles.vertical]: swiperDirection === 'vertical',\r\n [styles.disabled]: !colorSwipeable,\r\n [styles.size_types_shown]: workWearStoreStore.availableSizeTypes.length > 1,\r\n })}\r\n >\r\n <CustomSwiper\r\n type='wws-color'\r\n slidesPerColumn={colorsInRow}\r\n selectedElementIndex={selectedColorIndex}\r\n direction={swiperDirection}\r\n mousewheel={swiperDirection === 'vertical'}\r\n enabled={colorSwipeable}\r\n isWWS={true}\r\n >\r\n {workWearStoreStore.availableColors.map((availableColor, index) => (\r\n <React.Fragment key={index}>\r\n {workWearStoreStore.selectedColor?.code === availableColor.code ? (\r\n <div\r\n ref={selectedColorElementRef}\r\n className={classNames(styles.color_border, 'pdp-selected')}\r\n >\r\n <img\r\n className={styles.color_icon}\r\n src={availableColor.iconPath}\r\n data-colorcode={availableColor.code}\r\n title={availableColor.name}\r\n onClick={handleColorClick}\r\n alt={workWearStoreStore.mainStore.localization.generalL10n.colorIcon + ' ' +\r\n availableColor.name}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n />\r\n </div>\r\n ) : (\r\n <div className={styles.color_border}>\r\n <img\r\n className={styles.color_icon}\r\n src={availableColor.iconPath}\r\n data-colorcode={availableColor.code}\r\n title={availableColor.name}\r\n onClick={handleColorClick}\r\n alt={workWearStoreStore.mainStore.localization.generalL10n.colorIcon + ' ' +\r\n availableColor.name}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n />\r\n </div>\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </CustomSwiper>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ninterface IWorkwearStoreColors {\r\n workWearStoreStore: WorkWearStoreStore;\r\n showSizes: boolean;\r\n showColors: boolean;\r\n swiperDirection: 'horizontal' | 'vertical';\r\n width: number;\r\n}\r\n\r\nexport default WorkwearStoreColors;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport classNames from 'classnames';\r\n\r\nimport WorkWearStoreStore from '../../../../stores/WorkWearStoreStore';\r\nimport { IModel, VariantType } from '../../../../stores/types';\r\nimport styles from '../workwearStore.scss';\r\nimport { CustomSwiper } from '../../../variantPanel/customeSwiper/customeSwiper';\r\nimport defaultStyles from '../../../../styles/defaults.scss';\r\nimport TabNavigationHelper from '../../../../helper/tabNavigationHelper';\r\n\r\nconst breakpointMobileMinWidth = parseInt(defaultStyles.breakpointMobileMinWidth) - 1;\r\nconst tabNavigation = TabNavigationHelper.instance\r\nfunction WorkwearStoreModels(props: IWorkwearStoreModels) {\r\n const { workWearStoreStore, variantAvailabilityState, showModels, swiperDirection, width } = props;\r\n\r\n if (!showModels) {\r\n return null;\r\n }\r\n\r\n const modelWrapperRef = useRef<HTMLInputElement>(null);\r\n const [modelIconsWidth, setModelIconsWidth] = React.useState(0);\r\n const [modelsFinishedRendering, setModelsFinishedRendering] = useState(false);\r\n\r\n function handleSelectedModelChangeClick(model: IModel) {\r\n workWearStoreStore.changeSelectedModel(model);\r\n }\r\n\r\n function calculateModelIconWidth() {\r\n if (modelWrapperRef.current) {\r\n const wrapperChildren = Array.from(modelWrapperRef.current.children as HTMLCollectionOf<HTMLElement>);\r\n let maxChildWidth = 0;\r\n wrapperChildren.forEach(element => {\r\n if (element.clientWidth > maxChildWidth) maxChildWidth = element.clientWidth;\r\n });\r\n\r\n if (maxChildWidth <= 37) {\r\n maxChildWidth = 37;\r\n }\r\n\r\n setModelIconsWidth(maxChildWidth);\r\n setModelsFinishedRendering(true);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n calculateModelIconWidth();\r\n }, []);\r\n\r\n let modelSwipeable;\r\n const modelsInRow = width >= 769 ? 5 : 1;\r\n let selectedModelIndex;\r\n\r\n if (workWearStoreStore.availableModels instanceof Array) {\r\n selectedModelIndex = workWearStoreStore.availableModels.findIndex(model => {\r\n return model.code === workWearStoreStore.selectedModel?.code;\r\n });\r\n\r\n modelSwipeable =\r\n (width < breakpointMobileMinWidth && workWearStoreStore.availableModels.length >= 4) ||\r\n (width >= breakpointMobileMinWidth && workWearStoreStore.availableModels.length >= modelsInRow * 4);\r\n }\r\n\r\n return (\r\n <div className={styles.model_content_wrapper}>\r\n <div role='model_content' className={styles.model_content}>\r\n <div\r\n role='model_icons'\r\n ref={modelWrapperRef}\r\n className={classNames(styles.model_icons, {\r\n [styles.vertical]: swiperDirection === 'vertical',\r\n [styles.disabled]: !modelSwipeable,\r\n })}\r\n >\r\n <CustomSwiper\r\n type='wws-model'\r\n slidesPerColumn={modelsInRow}\r\n selectedElementIndex={selectedModelIndex}\r\n direction={swiperDirection}\r\n mousewheel={swiperDirection === 'vertical'}\r\n enabled={modelsFinishedRendering && modelSwipeable}\r\n isWWS={true}\r\n >\r\n {workWearStoreStore.availableModels.map((availableModel, index) => (\r\n <div\r\n key={index + availableModel.label}\r\n ref={(el)=>tabNavigation.setFocusAtt(el)}\r\n data-testid='model_icon'\r\n style={modelIconsWidth > 0 ? { width: `${modelIconsWidth}px` } : {}}\r\n className={classNames(\r\n variantAvailabilityState(availableModel.code,\r\n VariantType.Model, availableModel.salesArticleVariantKey),\r\n styles.model_icon,\r\n styles.wws,\r\n {\r\n [styles.selected]: workWearStoreStore.selectedModel?.code == availableModel.code,\r\n }\r\n )}\r\n onClick={() => handleSelectedModelChangeClick(availableModel)}\r\n >\r\n {availableModel.label}\r\n </div>\r\n ))}\r\n </CustomSwiper>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ninterface IWorkwearStoreModels {\r\n workWearStoreStore: WorkWearStoreStore;\r\n variantAvailabilityState(variantNumber: number, variantType: VariantType, savKey: string): string[];\r\n showModels: boolean;\r\n swiperDirection: 'horizontal' | 'vertical';\r\n width: number;\r\n}\r\n\r\nexport default WorkwearStoreModels;\r\n","import React, { useEffect, useRef } from 'react';\r\nimport classNames from 'classnames';\r\n\r\nimport WorkWearStoreStore from '../../../../stores/WorkWearStoreStore';\r\nimport { ISize, VariantType } from '../../../../stores/types';\r\nimport styles from '../workwearStore.scss';\r\nimport { CustomSwiper } from '../../../variantPanel/customeSwiper/customeSwiper';\r\nimport TabNavigationHelper from '../../../../helper/tabNavigationHelper';\r\n\r\nfunction WorkwearStoreSizes(props: IWorkwearStoreSizes) {\r\n const { workWearStoreStore, showSizes, width, variantAvailabilityState } = props;\r\n const tabNavigation = TabNavigationHelper.instance;\r\n if (!showSizes) {\r\n return null;\r\n }\r\n const sizeWrapperRef = useRef<HTMLDivElement>(null);\r\n\r\n const handleSizeDimensionClick = (event: React.MouseEvent<HTMLDivElement>) => {\r\n if (event.currentTarget.dataset.dimension) {\r\n workWearStoreStore.changeSelectedSizeType(event.currentTarget.dataset.dimension);\r\n }\r\n };\r\n\r\n function handleSelectedSizeChangeClick(size: ISize) {\r\n workWearStoreStore.changeSelectedSize(size);\r\n }\r\n\r\n function calcColumnsAndMaxChildWidth(maxChildWidth: number): { maxChildWidth: number; column: number } {\r\n const result = { maxChildWidth, column: 1 };\r\n if (result.maxChildWidth <= 50) result.maxChildWidth = 42;\r\n\r\n if (result.maxChildWidth > 100 && result.maxChildWidth <= 160) result.column = 2;\r\n else if (result.maxChildWidth <= 100 && result.maxChildWidth > 80) result.column = 3;\r\n else if (result.maxChildWidth <= 80 && result.maxChildWidth > 42) result.column = 4;\r\n else if (result.maxChildWidth <= 42) {\r\n result.column = 4;\r\n result.maxChildWidth = 42;\r\n // ESPP-4849, for small view, based on view width to adjust column number\r\n if (width >= 620 && width < 769) result.column = 5;\r\n else if (width >= 470 && width < 620) result.column = 6;\r\n else if (width >= 375 && width < 470) result.column = 5;\r\n }\r\n\r\n const sizeWrapperClientWidth = sizeWrapperRef.current ? sizeWrapperRef.current.clientWidth : 0;\r\n while (result.column * result.maxChildWidth >= sizeWrapperClientWidth - 5) {\r\n if (result.column > 1) result.column -= 1;\r\n else break;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n useEffect(() => {\r\n if (sizeWrapperRef.current) {\r\n const wrapperChildren = Array.from(sizeWrapperRef.current.children as HTMLCollectionOf<HTMLElement>);\r\n\r\n // reset width just incase\r\n wrapperChildren.forEach(element => {\r\n element.style.width = 'auto';\r\n });\r\n\r\n let initialMaxChildWidth = 0;\r\n wrapperChildren.forEach(element => {\r\n if (element.clientWidth > initialMaxChildWidth) initialMaxChildWidth = element.offsetWidth;\r\n });\r\n\r\n const { maxChildWidth, column } = calcColumnsAndMaxChildWidth(initialMaxChildWidth);\r\n\r\n wrapperChildren.forEach(element => {\r\n element.style.width = maxChildWidth + 'px';\r\n });\r\n sizeWrapperRef.current.setAttribute('style', `grid-template-columns: repeat(${column}, 1fr);`);\r\n }\r\n });\r\n\r\n let selectedSizeIndex;\r\n if (workWearStoreStore.selectedSizeType?.sizes instanceof Array) {\r\n selectedSizeIndex = workWearStoreStore.selectedSizeType.sizes.findIndex(size => {\r\n return size.size.code === workWearStoreStore.selectedSize?.size.code;\r\n });\r\n }\r\n\r\n return (\r\n <div className={styles.wws_size_dimensions_wrapper}>\r\n {workWearStoreStore.availableSizeTypes.length > 1 && (\r\n <div data-testid='size_dimensions' className={styles.size_dimensions}>\r\n {workWearStoreStore.availableSizeTypes.map(sizeType => (\r\n <div\r\n role='size_dimension'\r\n key={sizeType.sizeTypeName}\r\n className={classNames(styles.size_dimension, {\r\n [styles.active]:\r\n sizeType.sizeTypeName == workWearStoreStore.selectedSizeType?.sizeTypeName,\r\n })}\r\n data-dimension={sizeType.sizeTypeName}\r\n onClick={handleSizeDimensionClick}\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n >\r\n <div className={styles.selected_size_dimension_label}>{sizeType.sizeTypeName}</div>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n <div className={styles.size_icons}>\r\n <CustomSwiper type='wws-size' selectedElementIndex={selectedSizeIndex} enabled={false} isWWS={true}>\r\n {\r\n <div ref={sizeWrapperRef} data-testid='size_values' className={styles.size_values}>\r\n {workWearStoreStore.selectedSizeType?.sizes.map(size => (\r\n <div\r\n ref={(el) => tabNavigation.setFocusAtt(el)}\r\n data-testid='size_value'\r\n key={size.size.name}\r\n className={classNames(\r\n variantAvailabilityState(size.size.code,\r\n VariantType.Size, size.salesArticleVariantKey),\r\n styles.size_value,\r\n { [styles.active]: workWearStoreStore.selectedSize?.size.code == size.size.code, }\r\n )}\r\n onClick={() => handleSelectedSizeChangeClick(size.size)}\r\n >\r\n {size.size.name}\r\n </div>\r\n ))}\r\n </div>\r\n }\r\n </CustomSwiper>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ninterface IWorkwearStoreSizes {\r\n workWearStoreStore: WorkWearStoreStore;\r\n variantAvailabilityState(variantNumber: number, variantType: VariantType, savKey: string): string[];\r\n showSizes: boolean;\r\n width: number;\r\n}\r\n\r\nexport default WorkwearStoreSizes;\r\n","import React from 'react';\r\nimport { IWorkWearStoreStore } from '../../../types/index';\r\nimport * as helper from '../../../helper/html-helper';\r\nimport styles from './wwsKioskInfo.scss';\r\nimport { IVariantsStoreInformation } from '../../../stores/types';\r\nimport { inject, observer } from 'mobx-react';\r\nimport classNames from 'classnames';\r\n\r\nconst WWSKioskInfo = inject('workWearStoreStore')(\r\n observer(({ workWearStoreStore }: IWorkWearStoreStore) => {\r\n if (!workWearStoreStore)\r\n return null;\r\n\r\n const retailStore: IVariantsStoreInformation | undefined = workWearStoreStore.wwsData?.variantsStoreInformation.find(\r\n store => store.retailStoreNo.toString() === workWearStoreStore.mainStore.wwsId\r\n );\r\n const showSizes = retailStore?.variants ? retailStore.variants.length > 0 : false;\r\n /* eslint-disable max-len */\r\n return (\r\n <>\r\n {\r\n workWearStoreStore.mainStore.showKioskLayout && (\r\n <div className={styles.wws_info_container}>\r\n <div className={styles.wws_info}>\r\n <span className={styles.wws_circle_red} />\r\n <strong>\r\n {helper.decodeHTML(workWearStoreStore.mainStore.localization.wwsOnlyL10n?.notAvailable)}\r\n </strong>\r\n </div>\r\n {retailStore && showSizes && (\r\n <div className={styles.wws_info}>\r\n <span className={classNames(styles.wws_circle_red, styles.green)} />\r\n <strong>\r\n {helper.decodeHTML(\r\n workWearStoreStore.mainStore.localization.wwsOnlyL10n?.wwsLocallyAvailable.replace(\r\n '{0}',\r\n retailStore.retailStoreName\r\n )\r\n )}\r\n </strong>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n }\r\n </>\r\n );\r\n })\r\n);\r\n\r\nexport default WWSKioskInfo;\r\n","export class AASFragmentHelper {\r\n public updateAAS(savKeyToReplace: string, savKeyToLoad: string, isMobile: boolean): void {\r\n\r\n window.shell.publishTo('AAS.update', \r\n {\r\n detail:\r\n {\r\n savKeyToReplace: savKeyToReplace,\r\n savKeyToLoad: savKeyToLoad,\r\n content: 'full',\r\n target: isMobile ? 'modal' : null\r\n }\r\n });\r\n }\r\n\r\n public showAASModal(): void {\r\n window.shell.publishTo('AAS.view.shown', {detail: {useStickyHeader: true}});\r\n window.shell.publishTo('AAS.view.changed', {detail: {cssModification: {\r\n salesdesignationHeaderViewSticky: 'transition: all 0.3s ease-in-out; top:47px;'}\r\n }});\r\n }\r\n}\r\n","export default class DebugBarHelper {\r\n private static _instance: DebugBarHelper;\r\n\r\n // data sources:\r\n public static Wsd_source = 0;\r\n public static Pim_source = 1;\r\n public static Pim_Wsd_source = 2;\r\n public static LayoutedContentGrid_source = 3;\r\n public static AdditionalDescription_source = 4;\r\n public static Hardcode_source = 5;\r\n\r\n static get instance() {\r\n return this._instance || (this._instance = new this());\r\n }\r\n\r\n public getDebuggerClassName(dataSource: number): string {\r\n let result: string;\r\n\r\n switch(dataSource) {\r\n case DebugBarHelper.Wsd_source:\r\n result = 'pdp-debug_wsd';\r\n break;\r\n case DebugBarHelper.Pim_source:\r\n result = 'pdp-debug_pim';\r\n break;\r\n case DebugBarHelper.Pim_Wsd_source:\r\n result = 'pdp-debug_pim_wsd';\r\n break;\r\n case DebugBarHelper.LayoutedContentGrid_source:\r\n result = 'pdp-layoutedContentGrid_source';\r\n break;\r\n case DebugBarHelper.AdditionalDescription_source:\r\n result = 'pdp-additionalDescription_source';\r\n break;\r\n case DebugBarHelper.Hardcode_source:\r\n result = 'pdp-hardcode_source';\r\n break;\r\n default:\r\n result = '';\r\n break;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import React from 'react';\r\n\r\nexport const useMixedMediaContentWidth = () => {\r\n const mixedMediaElement = document.querySelector('.pdp-mixed_media_container') || { clientWidth: 0 };\r\n const [contentWidth, setWidth] = React.useState(mixedMediaElement.clientWidth);\r\n\r\n React.useEffect(() => {\r\n const handleWindowResize = () => {\r\n setWidth(mixedMediaElement.clientWidth);\r\n };\r\n\r\n window.addEventListener('resize', handleWindowResize);\r\n return () => window.removeEventListener('resize', handleWindowResize);\r\n }, []);\r\n\r\n // Return the width so we can use it in our components\r\n return { contentWidth };\r\n};\r\n","import 'custom-event-polyfill';\r\n\r\n\r\n\r\nexport class EsAppHelper {\r\n public navigationWheel: NavigationWheel;\r\n constructor() {\r\n this.navigationWheel = new NavigationWheel();\r\n }\r\n}\r\n\r\nclass NavigationWheel {\r\n private visible: boolean;\r\n constructor() {\r\n this.visible = true;\r\n }\r\n\r\n public isVisible() {\r\n return this.visible;\r\n }\r\n\r\n public show() {\r\n if (window) {\r\n const showNavWheelEvent = new CustomEvent('esapp.navigationwheel', {\r\n detail: {\r\n visible: true,\r\n },\r\n });\r\n this.visible = true;\r\n document.dispatchEvent(showNavWheelEvent);\r\n }\r\n\r\n }\r\n public hide() {\r\n if (window) {\r\n const hideNavWheelEvent = new CustomEvent('esapp.navigationwheel', {\r\n detail: {\r\n visible: false,\r\n },\r\n });\r\n this.visible = false;\r\n document.dispatchEvent(hideNavWheelEvent);\r\n }\r\n }\r\n}\r\n","export function decodeHTML(value?: string): string | undefined {\r\n if (value)\r\n return value.replace(/&#(\\d+);/g, (match, dec) => {\r\n return String.fromCharCode(dec);\r\n });\r\n else\r\n return value;\r\n}\r\n\r\nexport function isIOS(): boolean {\r\n if (typeof document !== 'undefined') return document.getElementsByTagName('html')[0].classList.contains('isIOS');\r\n else return false;\r\n}\r\n\r\nexport function formCdnUrl(assetsUrl: string, cdnAssetsUrl: string): string {\r\n const startIndex = assetsUrl.indexOf('/documents/');\r\n let assetLocation = 'wf/images_preview/TwoColsRightFullscreen';\r\n\r\n if (cdnAssetsUrl.indexOf('preview') < 0) {\r\n assetLocation = 'wf/images/TwoColsRightFullscreen';\r\n }\r\n\r\n const tmpCdnAssetsUrl = cdnAssetsUrl.replace('/pdp', '');\r\n\r\n return `${tmpCdnAssetsUrl}${assetLocation}${assetsUrl.substring(startIndex)}`;\r\n}\r\n\r\nexport function decodeRtfText(text?: string) {\r\n if (text) {\r\n const txt = document.createElement('textarea');\r\n txt.innerHTML = text;\r\n return txt.value;\r\n } else\r\n return text;\r\n}\r\n\r\nexport function getTranslateUrl(): string | null {\r\n const translatePageUrls = document.getElementById('translated-page-urls');\r\n if (translatePageUrls && translatePageUrls.textContent)\r\n return translatePageUrls.textContent.trim();\r\n else\r\n return null;\r\n}\r\n\r\nexport function setTranslateUrl(translatedPageUrls: string) {\r\n const translatePageUrls = document.getElementById('translated-page-urls');\r\n if (translatePageUrls)\r\n translatePageUrls.textContent = translatedPageUrls;\r\n}\r\n\r\n/* eslint-disable */\r\nexport const throttle = (fn: Function, wait = 500, extraArgs?: Array<any>) => {\r\n let inThrottle: boolean,\r\n lastFn: ReturnType<typeof setTimeout>,\r\n lastTime: number;\r\n\r\n return function (this: any) {\r\n const context = this;\r\n const args = Array.from(arguments);\r\n args.push(extraArgs);\r\n\r\n if (!inThrottle) {\r\n fn.apply(context, args);\r\n lastTime = Date.now();\r\n inThrottle = true;\r\n } else {\r\n clearTimeout(lastFn);\r\n lastFn = setTimeout(() => {\r\n if (Date.now() - lastTime >= wait) {\r\n fn.apply(context, args);\r\n lastTime = Date.now();\r\n }\r\n }, Math.max(wait - (Date.now() - lastTime), 0));\r\n }\r\n };\r\n};\r\n","import React from 'react';\r\nimport { ReactNode } from 'react';\r\nimport { inject, observer } from 'mobx-react';\r\nimport { IRichTextItemInternal, IRichTextItemsInternal,NodeType } from '../stores/types';\r\nimport classNames from 'classnames';\r\nimport { MainStore } from '../stores/MainStore';\r\nimport styles from './richText.scss';\r\n\r\ninterface IRichTextProps {\r\n store?: MainStore;\r\n richTextId: string;\r\n injectedRichTexts?: IRichTextItemsInternal[];\r\n}\r\nexport const RichText = inject('store')(\r\n observer((props: IRichTextProps) => {\r\n const {\r\n store,\r\n richTextId,\r\n injectedRichTexts,\r\n } = props;\r\n const injectedRichTextExist = injectedRichTexts && injectedRichTexts.length;\r\n const allRichTexts = injectedRichTextExist ? props.injectedRichTexts : store?.fetchedData.allRichTexts;\r\n \r\n if(!allRichTexts) return <></>;\r\n \r\n const richTextItemsSelected: IRichTextItemInternal[] | undefined \r\n = allRichTexts.find(rit=>rit.id === richTextId)?.items;\r\n\r\n if(!richTextItemsSelected || !richTextItemsSelected.length) return <></>;\r\n\r\n function MapLines(richTextItems: IRichTextItemInternal[]): ReactNode {\r\n return richTextItems.map((x, index)=> MapLine(x, index));\r\n }\r\n\r\n function MapLine(richTextItem: IRichTextItemInternal, index: number): ReactNode {\r\n if (richTextItem.nodeType == NodeType.LineBreak) return <br key={index} data-testid='br_type_elm' />;\r\n\r\n if (richTextItem.nodeType == NodeType.BlankLine)\r\n return <div key={index} className={classNames(getClasses(richTextItem.markups, true, false))}\r\n data-testid='bl_type_elm'></div>;\r\n\r\n if (richTextItem.nodeType == NodeType.Paragraph) {\r\n return (\r\n <div key={index} className={classNames(getClasses(richTextItem?.markups, false, false))}\r\n data-testid='paragraph_type_elm'>\r\n {MapLines(richTextItem.children)}\r\n </div>);\r\n }\r\n if (richTextItem.nodeType == NodeType.List) {\r\n return (\r\n <ul key={index} className={'pdp-richtext_list'} data-testid='ul_type_elm'>\r\n {MapLines(richTextItem.children)}\r\n </ul>\r\n )\r\n }\r\n if (richTextItem.nodeType == NodeType.Text) {\r\n if (richTextItem.link && richTextItem.link.href) {\r\n if (richTextItem.link.openInNewTab)\r\n return (\r\n <a key={index}\r\n className={classNames(getClasses(richTextItem?.markups, true, true))}\r\n data-testid='a_type_elm' href={richTextItem.link.href} target='_blank' rel='noreferrer'>\r\n {richTextItem.textValue}\r\n </a>);\r\n else\r\n return (\r\n <a key={index}\r\n className={classNames(getClasses(richTextItem?.markups, true, true))}\r\n data-testid='a_type_elm' href={richTextItem.link.href}>\r\n {richTextItem.textValue}\r\n </a>);\r\n }\r\n else\r\n return (\r\n <span key={index} className={classNames(getClasses(richTextItem.markups, true, false))}\r\n data-testid='span_type_elm'>\r\n {richTextItem.textValue}\r\n </span>);\r\n }\r\n if (richTextItem.nodeType == NodeType.ListItem) {\r\n const children = richTextItem.children && richTextItem.children.length\r\n ? MapLines(richTextItem.children)\r\n : null;\r\n\r\n if (richTextItem.link && richTextItem.link.href) {\r\n if (richTextItem.link.openInNewTab)\r\n return (\r\n <li key={index} className={classNames(getClasses(richTextItem.markups, true, false))}\r\n data-testid='li_type_elm'>\r\n <a key={index} className={styles.richtext_line_a}\r\n data-testid='a_type_elm' href={richTextItem.link.href} target='_blank' rel='noreferrer'>\r\n {richTextItem.textValue}\r\n {children}\r\n </a>\r\n </li>);\r\n else\r\n return (\r\n <li key={index} className={classNames(getClasses(richTextItem.markups, true, false))}\r\n data-testid='li_type_elm'>\r\n <a key={index} className={styles.richtext_line_a}\r\n data-testid='a_type_elm' href={richTextItem.link.href}>\r\n {richTextItem.textValue}\r\n {children}\r\n </a>\r\n </li>);\r\n }\r\n else\r\n return (\r\n <li key={index} className={classNames(getClasses(richTextItem.markups, true, false))}\r\n data-testid='li_type_elm'>\r\n {richTextItem.textValue}\r\n {children}\r\n </li>);\r\n }\r\n }\r\n\r\n function getClasses(\r\n markups: string[],\r\n extendWithBulletStyle: boolean,\r\n extendWithAnchorStyle: boolean): string[] {\r\n\r\n let classes: string[] = [];\r\n if (extendWithBulletStyle)\r\n classes = classes.concat('pdp-richtext_bullet');\r\n\r\n if (markups && markups.length) {\r\n classes = classes.concat(markups.map(x=>'pdp-richtext_'+x))\r\n }\r\n\r\n if (extendWithAnchorStyle)\r\n classes = classes.concat(styles.richtext_line_a);\r\n\r\n return classes;\r\n }\r\n \r\n return <div className = {styles.richtext_root} data-testid='richtext_root'>\r\n {MapLines(richTextItemsSelected)}\r\n </div>\r\n}));\r\n","export class ScrollLock {\r\n private _isLocked = false;\r\n\r\n // tslint:disable-next-line: variable-name\r\n private static _instance: ScrollLock;\r\n private bodyScrollPosition = 0;\r\n\r\n static get instance() {\r\n return this._instance || (this._instance = new this());\r\n }\r\n\r\n get isLocked(): boolean {\r\n return this._isLocked;\r\n }\r\n\r\n public lock(): void {\r\n const webContainer = document.querySelector('.container');\r\n const mobileContainer = document.querySelector('.page-container');\r\n this.bodyScrollPosition = window.pageYOffset;\r\n\r\n if (webContainer || mobileContainer) {\r\n document.body.setAttribute(\r\n 'style',\r\n 'overflow: hidden !important; position: fixed !important; top: -' +\r\n this.bodyScrollPosition +\r\n 'px;',\r\n );\r\n this._isLocked = true;\r\n }\r\n }\r\n\r\n public unlock(): void {\r\n const webContainer = document.querySelector('.container');\r\n const mobileContainer = document.querySelector('.page-container');\r\n\r\n if (webContainer || mobileContainer) {\r\n document.body.removeAttribute('style');\r\n window.scrollTo(0, this.bodyScrollPosition);\r\n this._isLocked = false;\r\n }\r\n }\r\n}\r\n","export default class TabNavigationHelper {\r\n private static _instance: TabNavigationHelper;\r\n static get instance() {\r\n return this._instance || (this._instance = new this());\r\n }\r\n public setGroupAtt(el: HTMLElement | null): void {\r\n if (el) {\r\n if (!el.hasAttribute('group')) {\r\n el.toggleAttribute('group');\r\n }\r\n }\r\n }\r\n public setFocusAtt(el: HTMLElement | null, order?: number): void {\r\n if (el) {\r\n if (!el.closest('.pdp-sticky_header_container'))\r\n el.setAttribute('focusable', '');\r\n\r\n if (typeof order === 'number') {\r\n el.setAttribute('order', order.toString());\r\n }\r\n }\r\n\r\n }\r\n public setModalAtt(el: HTMLElement | null): void {\r\n if (el) {\r\n el.setAttribute('group', '');\r\n el.setAttribute('modal', '');\r\n }\r\n }\r\n public handleKeyDown(event): void {\r\n // prevent page jump down on Space btn., click\r\n if (event.key === ' ') //'Space'\r\n event.preventDefault();\r\n }\r\n\r\n public setAttributesForElement(element: HTMLElement | null, attributes: string[], remove = false) {\r\n if (element) {\r\n attributes.map(attribute => {\r\n if (remove) {\r\n if (element.hasAttribute(attribute)) {\r\n element.toggleAttribute(attribute);\r\n }\r\n }\r\n else {\r\n if (!element.hasAttribute(attribute)) {\r\n element.toggleAttribute(attribute);\r\n }\r\n }\r\n\r\n })\r\n }\r\n }\r\n\r\n public toggleDisabledAtt(root: HTMLElement | null, isDisabled: boolean) {\r\n if (root) {\r\n if (isDisabled)\r\n root.setAttribute('disabled', '');\r\n else root.removeAttribute('disabled')\r\n }\r\n }\r\n\r\n public setFirstFocus(root: HTMLElement | null) {\r\n if (root) {\r\n const firstFocus = root.querySelectorAll('[focusable]')[0]\r\n globalThis.shell.tabNav.focus(firstFocus);\r\n }\r\n }\r\n\r\n public setVariantPanelAttributes(root: HTMLElement | null, isOpen: boolean | undefined) {\r\n if (root) {\r\n if (!root.hasAttribute('group'))\r\n root.setAttribute('group', '');\r\n if (!root.hasAttribute('modal'))\r\n root.setAttribute('modal', '');\r\n\r\n if (isOpen) {\r\n root.removeAttribute('disabled');\r\n }\r\n else {\r\n root.setAttribute('disabled', '');\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n IResponseData,\r\n IPrice,\r\n PiwikEvent,\r\n MetaEvent,\r\n IScalePrice\r\n} from '../stores/types';\r\n\r\n// eslint-disable-next-line no-var, @typescript-eslint/no-explicit-any\r\ndeclare var _paq: any;\r\n// eslint-disable-next-line no-var, @typescript-eslint/no-explicit-any\r\ndeclare var _fbq: any;\r\n\r\nclass TrackingHelper {\r\n private piwikProEnableEcommerceTracking: boolean;\r\n private enableMetaPixel: boolean;\r\n private esBrand: string;\r\n\r\n constructor(piwikProEnableEcommerceTracking: boolean, enableMetaPixel, esBrand: string) {\r\n this.piwikProEnableEcommerceTracking = piwikProEnableEcommerceTracking;\r\n this.enableMetaPixel = enableMetaPixel;\r\n this.esBrand = esBrand;\r\n }\r\n\r\n private getPriceValue(price: IPrice) {\r\n return price.grossValue;\r\n }\r\n\r\n private getScalePriceValue(scalePrices: IScalePrice[], quantity: number) {\r\n let result = 0;\r\n\r\n if (scalePrices && scalePrices.length > 0) {\r\n const scalePricesCopy = scalePrices.slice();\r\n scalePricesCopy.sort((a, b) => {\r\n let sortDirection = 0;\r\n if (a.quantity < b.quantity) {\r\n sortDirection = -1;\r\n } else if (a.quantity > b.quantity) {\r\n sortDirection = 1;\r\n }\r\n return sortDirection;\r\n });\r\n\r\n for (let i = 0; i < scalePricesCopy.length; i++) {\r\n if (quantity >= scalePricesCopy[i].quantity) {\r\n result = this.getPriceValue(scalePricesCopy[i].price);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public piwikTrackVisitedArticle(data: IResponseData, itemOrigin: string) {\r\n if (!this.piwikProEnableEcommerceTracking)\r\n return;\r\n\r\n const trackedData = [\r\n {\r\n sku: data.orderModule.articleInfo.salesArticleNo,\r\n name: data.orderModule.articleInfo.title,\r\n category: data.breadcrumb.category.navigationKeyPath.split('/'),\r\n price: data.orderModule.articlePrice.basicPrice.netValue,\r\n brand: (data.orderModule.articleInfo?.brand ?? '').toLocaleLowerCase() === this.esBrand ?\r\n 'Strauss' : 'other Brand',\r\n variant: data.orderModule.articleInfo.salesArticleVariantKey,\r\n customDimensions: {\r\n '1': data.orderModule.articleInfo.masterArticleNo.toString(),\r\n '2': data.variantSelection.selectedColor?.code ?\r\n data.variantSelection.selectedColor.code.toString(): '',\r\n '3': data.variantSelection.selectedSize?.name,\r\n '4': data.variantSelection.selectedModel?.code ?\r\n data.variantSelection.selectedModel.code.toString() : '',\r\n '5': itemOrigin,\r\n }\r\n }\r\n ];\r\n\r\n if (typeof _paq !== 'undefined')\r\n _paq.push([PiwikEvent.EcommerceProductDetailView, trackedData]);\r\n }\r\n\r\n public metaTrackVisitedArticle(data: IResponseData) {\r\n if (!this.enableMetaPixel)\r\n return;\r\n\r\n const trackedData = {\r\n content_name: data.orderModule.articleInfo.title,\r\n content_category: data.breadcrumb.category.navigationKeyPath.split('/'),\r\n content_ids: [data.orderModule.articleInfo.salesArticleVariantKey],\r\n content_type: 'product',\r\n value: this.getPriceValue(data.orderModule.articlePrice.basicPrice),\r\n currency: data.orderModule.articlePrice.currency.isoCode,\r\n };\r\n\r\n if (typeof _fbq !== 'undefined')\r\n _fbq.push(['track', MetaEvent.ViewContent, trackedData]);\r\n }\r\n}\r\n\r\nexport default TrackingHelper;\r\n","import { IImage, ImageTypesEnum, LayoutTypesEnum } from '../stores/types';\r\n\r\nexport class UrlHelper {\r\n private sizes = '768px, 1200px, 1800px';\r\n\r\n public getSrcSet(imgUrl, layout: LayoutTypesEnum, imageType: ImageTypesEnum): IImage {\r\n return {\r\n fullPath: this.getImageUrl(imgUrl, layout, imageType),\r\n path: this.getImageUrl(imgUrl, layout, imageType),\r\n srcSet: {\r\n sizes: this.sizes,\r\n urls: this.getUrls(imgUrl, layout, imageType)\r\n },\r\n }\r\n }\r\n\r\n private getImageUrl(imgUrl: string, layout: LayoutTypesEnum, imageType: ImageTypesEnum): string {\r\n return this.replaceScaleName(imgUrl, 'Original', this.formScaleName(layout, imageType, 'Desktop'));\r\n }\r\n\r\n private getUrls(originalUrl: string, layout: LayoutTypesEnum, imageType: ImageTypesEnum) {\r\n return `${this.replaceScaleName(originalUrl, 'Original', this.formScaleName(layout, imageType, 'Mobile'))} 768w,\r\n ${this.replaceScaleName(originalUrl, 'Original', this.formScaleName(layout, imageType, 'Tablet'))} 1200w, \r\n ${this.replaceScaleName(originalUrl, 'Original', this.formScaleName(layout, imageType, 'Desktop'))} 1800w`;\r\n }\r\n\r\n private replaceScaleName(src: string, target: string, value: string) {\r\n return src.replace(target, value);\r\n }\r\n\r\n private formScaleName(layout: LayoutTypesEnum, imageType: ImageTypesEnum, screen: string): string {\r\n let layoutName = '';\r\n let imageTypeName = '';\r\n if (screen === 'Mobile') {\r\n return 'MainImage_Mobile'\r\n }\r\n switch (layout) {\r\n case LayoutTypesEnum.Single_Element:\r\n {\r\n switch (imageType) {\r\n case ImageTypesEnum.MainImage:\r\n case ImageTypesEnum.ShoeSoleImage:\r\n case ImageTypesEnum.SecondaryImage:\r\n imageTypeName = 'MainImage';\r\n break;\r\n case ImageTypesEnum.MainActionImage:\r\n case ImageTypesEnum.DetailedImage:\r\n case ImageTypesEnum.AdditionalImages:\r\n imageTypeName = 'MainImage_Crop';\r\n break;\r\n }\r\n layoutName = 'One';\r\n break;\r\n }\r\n\r\n case LayoutTypesEnum.Two_Elements:\r\n {\r\n switch (imageType) {\r\n case ImageTypesEnum.MainImage:\r\n case ImageTypesEnum.ShoeSoleImage:\r\n case ImageTypesEnum.SecondaryImage:\r\n imageTypeName = 'MainImage';\r\n break;\r\n case ImageTypesEnum.MainActionImage:\r\n case ImageTypesEnum.DetailedImage:\r\n case ImageTypesEnum.AdditionalImages:\r\n imageTypeName = 'MainImage_Crop';\r\n break;\r\n }\r\n layoutName = 'Two';\r\n break;\r\n }\r\n\r\n case LayoutTypesEnum.Three_Elements:\r\n {\r\n switch (imageType) {\r\n case ImageTypesEnum.MainImage:\r\n case ImageTypesEnum.SecondaryImage:\r\n case ImageTypesEnum.ShoeSoleImage:\r\n imageTypeName = 'MainImage';\r\n break;\r\n case ImageTypesEnum.MainActionImage:\r\n case ImageTypesEnum.AdditionalImages:\r\n case ImageTypesEnum.DetailedImage:\r\n imageTypeName = 'MainImage_Crop';\r\n break;\r\n }\r\n layoutName = 'Three';\r\n break;\r\n }\r\n\r\n default:\r\n break;\r\n }\r\n return `${layoutName}_${imageTypeName}_${screen}`\r\n }\r\n}\r\n","import React from 'react';\r\n\r\nexport const useViewportWidth = () => {\r\n const [width, setWidth] = React.useState(window.innerWidth);\r\n\r\n React.useEffect(() => {\r\n const handleWindowResize = () => setWidth(window.innerWidth);\r\n window.addEventListener('resize', handleWindowResize);\r\n return () => window.removeEventListener('resize', handleWindowResize);\r\n }, []);\r\n\r\n // Return the width so we can use it in our components\r\n return { width };\r\n}\r\n","import { action, makeObservable, observable } from 'mobx';\r\nimport { MainStore } from './MainStore';\r\nimport {\r\n IBookmarkArticleData,\r\n IBreadcrumbData,\r\n IGlovesRecommendation,\r\n IMixedMediaData,\r\n IOrderModuleData,\r\n IPurchaseAdvice,\r\n IResponseData,\r\n IShutterModule,\r\n IBannerModule,\r\n IVariantSelection,\r\n IContextData,\r\n} from './types';\r\n\r\nclass DataStore {\r\n mainStore: MainStore;\r\n contextData: IContextData;\r\n breadcrumb: IBreadcrumbData;\r\n mixedMedia: IMixedMediaData;\r\n orderModule: IOrderModuleData;\r\n variantSelection: IVariantSelection;\r\n bookmark: IBookmarkArticleData;\r\n glovesRecommendation: IGlovesRecommendation[];\r\n shutterModule: IShutterModule;\r\n bannerModule: IBannerModule;\r\n purchaseAdvice: IPurchaseAdvice;\r\n\r\n constructor(initialData: IResponseData, store: MainStore) {\r\n this.mainStore = store;\r\n this.updateData(initialData);\r\n\r\n makeObservable(this, {\r\n contextData: observable,\r\n breadcrumb: observable,\r\n mixedMedia: observable,\r\n orderModule: observable,\r\n variantSelection: observable,\r\n bookmark: observable,\r\n glovesRecommendation: observable,\r\n shutterModule: observable,\r\n bannerModule: observable,\r\n purchaseAdvice: observable,\r\n updateData: action.bound,\r\n });\r\n }\r\n\r\n updateData(data: IResponseData) {\r\n this.contextData = data.contextData;\r\n this.breadcrumb = data.breadcrumb;\r\n this.mixedMedia = data.mixedMedia;\r\n this.orderModule = data.orderModule;\r\n this.orderModule.articlePrice.scalePrices = data.orderModule.articlePrice.scalePrices?.slice().sort(\r\n (a, b) => a.quantity - b.quantity);\r\n this.variantSelection = data.variantSelection;\r\n this.bookmark = data.bookmark;\r\n this.glovesRecommendation = data.glovesRecommendation;\r\n this.shutterModule = data.shutterModule;\r\n this.bannerModule = data.bannerModule;\r\n this.purchaseAdvice = data.purchaseAdvice;\r\n }\r\n}\r\n\r\nexport default DataStore;\r\n","import axios, { AxiosError, AxiosResponse } from 'axios';\r\nimport { IResponseData } from './types';\r\nexport class Fetch {\r\n private apiMagicLink: string;\r\n\r\n private detailComponentEndpoint = 'productdetailspage/componentsdata';\r\n constructor(apiMagicLink) {\r\n this.apiMagicLink = apiMagicLink;\r\n this.handleError.bind(this);\r\n }\r\n\r\n public fetch(\r\n salesArticleNo: string,\r\n colorCode: string,\r\n masterArticleNo: number,\r\n sizeCode: string,\r\n navigationKey?: string,\r\n wwsStatus?: string\r\n ): Promise<IResponseData> {\r\n const urlToHost = this.apiMagicLink;\r\n const apiUrl = urlToHost + this.detailComponentEndpoint;\r\n\r\n const requestUrl = new URL(apiUrl);\r\n requestUrl.searchParams.set('salesArticleNo', salesArticleNo);\r\n requestUrl.searchParams.set('colorCode', colorCode);\r\n requestUrl.searchParams.set('masterArticleNo', masterArticleNo.toString());\r\n\r\n if (navigationKey) requestUrl.searchParams.set('navigationKey', navigationKey);\r\n if (sizeCode) requestUrl.searchParams.set('sizeCode', sizeCode);\r\n if (wwsStatus) requestUrl.searchParams.set('availabilityStatus', wwsStatus);\r\n\r\n return axios\r\n .get(requestUrl.toString(), { timeout: 3500 })\r\n .then((response: AxiosResponse) => (response.status === 200 ? response.data : undefined))\r\n .catch(error => this.handleError(error));\r\n }\r\n\r\n public getBasketItemCount(apiUrl: string, savKey: string): Promise<number> {\r\n const requestUrl = new URL(apiUrl);\r\n requestUrl.searchParams.set('savKeyList', savKey);\r\n\r\n return axios\r\n .get(requestUrl.toString())\r\n .then((response: AxiosResponse) => {\r\n if (response.status !== 200 || !response.data) return 1;\r\n //service can handle multiple but we only care about one\r\n const savKeyToCount: { [savKey: string]: number } = response.data;\r\n if (!(savKey in savKeyToCount)) return 1;\r\n return savKeyToCount[savKey];\r\n })\r\n .catch(error => this.handleError(error));\r\n }\r\n\r\n \r\n public getPriceListForSizes(apiMagicLink: string, savKeys: string[]):\r\n Promise<object> {\r\n const apiUrl = apiMagicLink + 'productdetailspage/sizesprice';\r\n const requestUrl = new URL(apiUrl);\r\n savKeys.forEach(savKey => {\r\n requestUrl.searchParams.append('sizeSavKeys', savKey);\r\n });\r\n\r\n return axios\r\n .get(requestUrl.toString())\r\n .then((response: AxiosResponse) => {\r\n if (response.status !== 200 || !response.data) return 1;\r\n return response.data;\r\n })\r\n .catch(error => this.handleError(error));\r\n }\r\n\r\n private handleError(error: Error | AxiosError) {\r\n const errorMsg = this.isAxiosError(error) ? error.message : `${error.name}: ${error.message}`;\r\n const errorStack = this.isAxiosError(error) ? JSON.stringify(error.toJSON()) : error.stack;\r\n // eslint-disable-next-line no-console\r\n console.warn(`ajax fetch failed with \"${errorMsg}\". Full error:\\n${errorStack}`);\r\n return 0;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private isAxiosError(error: any): error is AxiosError {\r\n return typeof error.toJSON !== 'undefined';\r\n }\r\n}\r\n","import { observable, makeObservable, action, computed } from 'mobx';\r\nimport { ILocalization } from '../types';\r\nimport DataStore from './DataStore';\r\nimport OrderModuleStore from './OrderModuleStore';\r\nimport { MixedMediaStore } from './MixedMediaStore';\r\nimport { VariantStore } from './VariantStore';\r\nimport WorkWearStoreStore from './WorkWearStoreStore';\r\nimport {\r\n IGlovesRecommendation,\r\n IResponseData,\r\n IVariantSelection,\r\n IVariantChangedEventData,\r\n IBookmarkArticleDataResponse,\r\n ArticleDataInjectionRequest,\r\n LogoCreatorSuccessResponse,\r\n LogoCreatorOpenFromBasketModalPayload,\r\n LogoCreatorSuccessArticle,\r\n IBasketModalForLogoCreator,\r\n IBasketModalForLogoCreatorSizeVariant,\r\n IDisclaimer,\r\n IPiwikReporting,\r\n} from './types';\r\nimport { Fetch } from './Fetch';\r\nimport { ScrollLock } from '../helper/scrollLock';\r\nimport TrackingHelper from '../helper/trackingHelper';\r\nimport { AASFragmentHelper } from '../helper/aasFragmentHelper';\r\nimport defaultStyles from '../styles/defaults.scss';\r\nimport { EsAppHelper } from '../helper/esAppHelper';\r\n\r\n// eslint-disable-next-line no-var, @typescript-eslint/no-explicit-any\r\ndeclare var _paq: any;\r\n\r\nconst minDeskTopWidth = parseInt(defaultStyles.breakpointMobileMinWidth);\r\nconst bookmarkIntegrationSignature = 'ESCID.ESPP.ProductDetailsPage.Bookmark';\r\nconst bookmarkRequestEventName = 'ESCID.ESPP.Bookmark.RequestArticleDataInjection';\r\nconst bookmarkResponseEventName = 'ESCID.ESPP.Bookmark.ArticleDataInjection';\r\nconst logoCreatorIntegrationSignature = 'ESCID.ESPP.LogoCreator';\r\nconst logoCreatorDidAddToBasketEventName = 'ESPP.LogoCreator.DidAddToBasket';\r\nconst basketModalContinueDesignEventName = 'ESPP.BasketModal.OpenLogoCreator';\r\n\r\nexport class MainStore {\r\n public dataStore: DataStore;\r\n public orderModuleStore: OrderModuleStore;\r\n public mixedMediaStore: MixedMediaStore;\r\n public variantStore: VariantStore;\r\n public workWearStoreStore: WorkWearStoreStore;\r\n public readonly scrollLock = new ScrollLock();\r\n public readonly aasFragmentHelper = new AASFragmentHelper();\r\n public localization: ILocalization;\r\n public fetch: Fetch;\r\n public readonly additionalDescription3DContainerId = 'ThreeSixtyView_Additional_Description';\r\n public readonly esAppHelper = new EsAppHelper();\r\n public readonly redesignOrderModal: boolean;\r\n public readonly piwikProEnableEcommerceTracking: boolean;\r\n public readonly enableMetaPixel: boolean;\r\n public readonly afterLoginParam: string = 'openLogoCreator';\r\n public readonly afterLoginParamWithValue: string = this.afterLoginParam + '=true';\r\n public readonly esBrand = 'engelbert strauss';\r\n\r\n // @observable:\r\n public fetchedData: IResponseData;\r\n public cdnAssetsUrl: string;\r\n public glovesRecommendation: IGlovesRecommendation[];\r\n public hasGlovesRecommendation: boolean;\r\n public hasProductFinderShutter: boolean;\r\n public hasAASShutter: boolean;\r\n public isMobileShop: boolean;\r\n public isEsApp: boolean;\r\n public isGlobal: boolean;\r\n public showKioskLayout: boolean;\r\n public wwsId;\r\n public poIsVisible: boolean;\r\n public confirmRegistrationHintIsVisible: boolean;\r\n public debuggerIsOn: boolean;\r\n public stickyHeaderTop: number;\r\n public articleSoldOut: boolean;\r\n public trackingHelper: TrackingHelper;\r\n\r\n public checkSelectedSizeType(variantSelection: IVariantSelection) {\r\n const isFirstSelectedTypeSoldOut =\r\n variantSelection.availableSizeTypes.find(sizeType => {\r\n if (sizeType.sizeTypeName == variantSelection.selectedSizeType)\r\n return sizeType.sizes.every(size => {\r\n return size.salesArticleVariantKey == '';\r\n });\r\n }) != null;\r\n\r\n if (isFirstSelectedTypeSoldOut) {\r\n const nonSoldOutSizeType = variantSelection.availableSizeTypes.find(sizeType => {\r\n return !sizeType.sizes.every(size => {\r\n return size.salesArticleVariantKey == '';\r\n });\r\n });\r\n if (nonSoldOutSizeType) {\r\n variantSelection.selectedSizeType = nonSoldOutSizeType.sizeTypeName;\r\n variantSelection.selectedSize = nonSoldOutSizeType.sizes.find(size => {\r\n return size.salesArticleVariantKey;\r\n })?.size;\r\n }\r\n }\r\n }\r\n\r\n constructor(initialData: IResponseData, localization: ILocalization) {\r\n // if value not actual, then article has sold out state:\r\n this.articleSoldOut = initialData.state && initialData.state.name.toLowerCase() !== 'actual';\r\n this.isGlobal = initialData.contextData.portal.includes('.GLOBAL.');\r\n this.localization = localization;\r\n\r\n //hardcode price disclaimer for GLB. In future will be removed. Just tmp solution\r\n this.insertDisclaimerForGLB(initialData);\r\n\r\n this.dataStore = new DataStore(initialData, this);\r\n this.isMobileShop = initialData.contextData.isMobile;\r\n this.isEsApp = initialData.contextData.isEsApp;\r\n\r\n this.fetchedData = initialData;\r\n this.mixedMediaStore = new MixedMediaStore(this);\r\n\r\n // If all sizes in selected size type are sold out\r\n // change first selected size type and first selected size\r\n this.checkSelectedSizeType(initialData.variantSelection);\r\n this.checkSelectedSizeType(this.dataStore.variantSelection);\r\n\r\n this.variantStore = new VariantStore(this);\r\n this.fetch = new Fetch(this.fetchedData.contextData.apiMagicLink);\r\n this.orderModuleStore = new OrderModuleStore(this, initialData.contextData.priceMode);\r\n this.workWearStoreStore = new WorkWearStoreStore(this);\r\n\r\n this.glovesRecommendation = initialData.shutterModule.glovesRecommendation;\r\n this.hasGlovesRecommendation = initialData.shutterModule.hasGlovesRecommendation;\r\n\r\n // TODO: remove this and its usage after QuickOrderModal has been proper integrated into legacy\r\n this.redesignOrderModal = initialData.contextData.featureToggles.redesignOrderModal;\r\n\r\n this.cdnAssetsUrl = initialData.contextData.baseUrlForAssets;\r\n this.wwsId = initialData.contextData.wwsId;\r\n this.showKioskLayout = this.wwsId != null;\r\n this.poIsVisible = false;\r\n this.confirmRegistrationHintIsVisible = false;\r\n this.hasProductFinderShutter =\r\n initialData.purchaseAdvice.showJacketFinder || initialData.purchaseAdvice.showTrouserFinder ||\r\n initialData.purchaseAdvice.showShoeFinder;\r\n this.hasAASShutter = false;\r\n this.debuggerIsOn = false;\r\n\r\n this.piwikProEnableEcommerceTracking = initialData.contextData.featureToggles.piwikProEnableEcommerceTracking;\r\n this.enableMetaPixel = initialData.contextData.featureToggles.enableMetaPixel;\r\n\r\n this.stickyHeaderTop = 0;\r\n this.trackingHelper = new TrackingHelper(this.piwikProEnableEcommerceTracking,\r\n this.enableMetaPixel, this.esBrand);\r\n\r\n makeObservable(this, {\r\n fetchedData: observable,\r\n cdnAssetsUrl: observable,\r\n showKioskLayout: observable,\r\n glovesRecommendation: observable,\r\n hasGlovesRecommendation: observable,\r\n hasProductFinderShutter: observable,\r\n hasAASShutter: observable,\r\n debuggerIsOn: observable,\r\n wwsId: observable,\r\n poIsVisible: observable,\r\n confirmRegistrationHintIsVisible: observable,\r\n stickyHeaderTop: observable,\r\n setStickyHeaderTop: action,\r\n showPersonalizeOverlay: action,\r\n showPersonlizeRegistrationConfirmHint: action,\r\n getRightPosition: action,\r\n variantChanged: action,\r\n setFetchedData: action,\r\n setHasAASShutter: action,\r\n turnOnDebugger: action,\r\n isPurchaseAdviceAvailable: computed,\r\n getProductFinderLogo: computed,\r\n getProductFinderTitle: computed,\r\n getProductFinderSubTitle: computed,\r\n getProductFinderContentTitle: computed,\r\n getProductFinderContentDescription: computed,\r\n getProductFinderRedirectUrl: computed,\r\n getProductFinderRedirectBtnText: computed,\r\n getBookmarkContainerID: computed,\r\n getProductFinderName: computed\r\n });\r\n\r\n this.initializeTrackerEventsOnPageLoad(initialData);\r\n\r\n if (typeof window !== 'undefined' && window.shell) {\r\n window.shell.subscribeTo(\r\n bookmarkRequestEventName,\r\n (request: ArticleDataInjectionRequest) => {\r\n if (request.requester === this.getBookmarkContainerID) {\r\n const response: IBookmarkArticleDataResponse = {\r\n ...this.fetchedData.bookmark,\r\n requester: request.requester,\r\n };\r\n response.categoryName = this.dataStore.breadcrumb.category.name;\r\n window.shell.publishTo(bookmarkResponseEventName, response);\r\n }\r\n },\r\n bookmarkIntegrationSignature\r\n );\r\n if (this.dataStore.contextData.featureToggles.enableLogoCreator &&\r\n (this.dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable ?? false)) {\r\n window.shell.subscribeTo(\r\n logoCreatorDidAddToBasketEventName,\r\n (payload: LogoCreatorSuccessResponse) => {\r\n const exampleSavKey = payload.articles[0]?.savKey;\r\n\r\n if (payload.masterArticleNumber === this.dataStore.orderModule.articleInfo.masterArticleNo) {\r\n // still same articles with same master article number\r\n if (this.dataStore.orderModule.articleInfo.salesArticleVariantKey\r\n !== exampleSavKey) {\r\n // trigger variant change, for different sav key\r\n const exampleSavKeyStrings = exampleSavKey.split('-');\r\n this.variantStore.variantChange(true, exampleSavKeyStrings[0],\r\n exampleSavKeyStrings[1], exampleSavKeyStrings[2]);\r\n window.shell.once('ESPP.DetailPage.PageUpdate', () => {\r\n this.basketModalDataForLogoCreator(payload.reporting, payload.itemOrigin,\r\n payload.articles, payload.smakeId, this.fetchedData).then(newReturnValue => {\r\n window.shell.publishTo('ESPP.BasketModal.Open.LogoCreator', newReturnValue);\r\n });\r\n });\r\n } else {\r\n this.basketModalDataForLogoCreator(\r\n payload.reporting,\r\n payload.itemOrigin, payload.articles, payload.smakeId, this.fetchedData)\r\n .then(returnValue => {\r\n window.shell.publishTo('ESPP.BasketModal.Open.LogoCreator', returnValue);\r\n });\r\n }\r\n } else {\r\n // different articles, master article number changed.\r\n\r\n if (exampleSavKey) {\r\n const salesArticleVariantKey = exampleSavKey.split('-');\r\n this.fetch.fetch(\r\n salesArticleVariantKey[0],\r\n salesArticleVariantKey[1],\r\n payload.masterArticleNumber,\r\n salesArticleVariantKey[2]).then((response: IResponseData) => {\r\n if (response) {\r\n const returnValue = this.basketModalDataForLogoCreator(payload.reporting,\r\n payload.itemOrigin,\r\n payload.articles, payload.smakeId, response);\r\n window.shell.publishTo('ESPP.BasketModal.Open.LogoCreator', returnValue);\r\n }\r\n });\r\n }\r\n\r\n }\r\n },\r\n logoCreatorIntegrationSignature\r\n );\r\n\r\n window.shell.subscribeTo(\r\n basketModalContinueDesignEventName,\r\n (payload: LogoCreatorOpenFromBasketModalPayload) => { this.openLogoCreatorDesigner(payload.smakeId); }\r\n )\r\n }\r\n }\r\n\r\n this.showPersonalizeOverlay = this.showPersonalizeOverlay.bind(this);\r\n this.showPersonlizeRegistrationConfirmHint = this.showPersonlizeRegistrationConfirmHint.bind(this);\r\n this.openLogoCreatorDesigner = this.openLogoCreatorDesigner.bind(this);\r\n }\r\n\r\n private initializeTrackerEventsOnPageLoad(initialData: IResponseData) {\r\n if (typeof document !== 'undefined')\r\n // rare use case\r\n if (document.readyState !== 'loading')\r\n window.setTimeout(() => this.trackVisitedArticle(initialData));\r\n else {\r\n let trackingExecuted = false;\r\n let fallbackTimer;\r\n document.addEventListener('DOMContentLoaded',\r\n () => {\r\n // default use case for most modern browsers\r\n if (typeof _paq !== 'undefined') {\r\n trackingExecuted = true;\r\n this.trackVisitedArticle(initialData);\r\n } else\r\n // fallback with high chance to track browsers where default approach doesn't work\r\n fallbackTimer = window.setTimeout(() => {\r\n if (typeof _paq !== 'undefined' && !trackingExecuted) {\r\n trackingExecuted = true;\r\n this.trackVisitedArticle(initialData);\r\n }\r\n },\r\n 1250);\r\n });\r\n\r\n // safe fallback for tracking but can be skipped by user through cancel page load on slow connections\r\n window.addEventListener('load', () => {\r\n if (!trackingExecuted) {\r\n trackingExecuted = true;\r\n clearTimeout(fallbackTimer);\r\n this.trackVisitedArticle(initialData);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public trackVisitedArticle(data: IResponseData) {\r\n const caseInsensitiveParameters = new URLSearchParams();\r\n\r\n if (typeof window !== 'undefined' && typeof window.location !== 'undefined') {\r\n const originParameters = new URL(window.location.href).searchParams;\r\n originParameters.forEach((value: string, key: string) => {\r\n caseInsensitiveParameters.append(key.toLowerCase(), value);\r\n });\r\n }\r\n\r\n const itemOrigin = caseInsensitiveParameters.get('itemorigin') ||\r\n 'NAVIGATION/' + this.dataStore.breadcrumb.category.name || '';\r\n\r\n this.trackingHelper.piwikTrackVisitedArticle(data, itemOrigin);\r\n this.trackingHelper.metaTrackVisitedArticle(data);\r\n }\r\n\r\n public insertDisclaimerForGLB(response: IResponseData) {\r\n if (this.isGlobal && response.shutterModule.productInfo.description.isKidArticle) {\r\n const disclaimerName = 'hardcode GLB disclaimer';\r\n const alreadyHasDisclaimer =\r\n response.shutterModule.productInfo.description.orderedDisclaimers.find((disclaimer) => {\r\n return disclaimer.name === disclaimerName;\r\n })\r\n if (!alreadyHasDisclaimer) {\r\n const rawRtfText =\r\n `<div style=\"display: none;\" data-manipulate='{ \"IE\": { \"css\": { \"display\": \"block\"}} }'>\r\n ${this.localization.redOnlyL10n?.disclaimerGLB} </div>`;\r\n const newDisclaimer: IDisclaimer = {\r\n name: disclaimerName,\r\n structuredText: { id: '' },\r\n rtfText: rawRtfText,\r\n dataMode: 5,\r\n globalRank: 1 // no clue the meaning of this, no usage\r\n };\r\n response.shutterModule.productInfo.description.orderedDisclaimers.push(newDisclaimer);\r\n }\r\n }\r\n }\r\n\r\n // action\r\n public variantChanged(fetchedData: IResponseData) {\r\n //hardcode price disclaimer for GLB. In future will be removed. Just tmp solution\r\n this.insertDisclaimerForGLB(fetchedData);\r\n\r\n // if value not actual, then article has sold out state:\r\n this.articleSoldOut = fetchedData.state && fetchedData.state.name.toLowerCase() !== 'actual';\r\n\r\n this.setFetchedData(fetchedData);\r\n this.dataStore.updateData(fetchedData);\r\n this.mixedMediaStore.dataUpdate(fetchedData.mixedMedia);\r\n this.trackVisitedArticle(fetchedData);\r\n this.updateDocumentTitle(\r\n this.dataStore.orderModule.articleInfo.title,\r\n this.dataStore.variantSelection.selectedColor?.name ?? ''\r\n );\r\n\r\n if (this.showKioskLayout && this.workWearStoreStore.wwsData) {\r\n this.workWearStoreStore.changeWWSData(this.workWearStoreStore.wwsData);\r\n }\r\n\r\n window.shell.publishTo('ESPP.DetailPage.PageUpdate', fetchedData);\r\n window.shell.publishTo('ESPP1.Detailpage.VariantChange.Public', {\r\n masterArticleNo: fetchedData.mixedMedia.masterArticleNo,\r\n colorCode: fetchedData.mixedMedia.colorCode,\r\n } as IVariantChangedEventData);\r\n }\r\n\r\n updateDocumentTitle(articleTitle: string, colorName: string): boolean {\r\n let result = false;\r\n if (typeof document !== 'undefined' && articleTitle) {\r\n document.title = [\r\n articleTitle,\r\n colorName ? colorName : '',\r\n '| Strauss',\r\n ].join(' ');\r\n result = true;\r\n }\r\n return result;\r\n }\r\n\r\n setFetchedData(newFetchedData: IResponseData) {\r\n this.fetchedData = newFetchedData;\r\n }\r\n\r\n setHasAASShutter(value: boolean) {\r\n this.hasAASShutter = value;\r\n }\r\n\r\n turnOnDebugger() {\r\n this.debuggerIsOn = !this.debuggerIsOn;\r\n }\r\n\r\n setStickyHeaderTop(): void {\r\n const header = typeof document !== 'undefined' && document.querySelector('.mkt-headr');\r\n this.stickyHeaderTop = header ? header.getBoundingClientRect().height : 50;\r\n }\r\n\r\n get isPurchaseAdviceAvailable(): boolean {\r\n return this.hasAASShutter || this.hasProductFinderShutter;\r\n }\r\n\r\n public getRightPosition(width: number, contentWidth: number): number {\r\n let result = 0;\r\n\r\n // 430 px is variant panel width\r\n // 480 order module\r\n // dividing by 2, space from left right\r\n\r\n // total spaces needed:\r\n const mixedMediaAndOrderModuleWidth = contentWidth + 480 + 430;\r\n\r\n if (width <= 1820) {\r\n // ESPP-4849, small view should not trigger content right shift\r\n if (width >= minDeskTopWidth) result = 430;\r\n } else {\r\n const tmpRemainingSpace = width - mixedMediaAndOrderModuleWidth;\r\n result = tmpRemainingSpace >= 430 ? 90 : (430 - tmpRemainingSpace) / 2;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public updateUrl(urlString) {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\r\n history.replaceState(null, '', urlString);\r\n }\r\n\r\n public hideEsAppButton() {\r\n this.esAppHelper.navigationWheel.hide();\r\n }\r\n\r\n public showEsAppButton() {\r\n this.esAppHelper.navigationWheel.show();\r\n }\r\n\r\n public openLogoCreatorDesigner(smakeId?: number): void {\r\n if (!this.dataStore.contextData.customerData?.customerNumbers) {\r\n this.showPersonlizeRegistrationConfirmHint(true);\r\n } else {\r\n if (typeof window !== 'undefined' && window.shell)\r\n window.shell.publishTo('ESPP.LogoCreator.OpenDesignerWindow',\r\n {\r\n externalIdentifier: `${this.dataStore.orderModule.articleInfo.salesArticleVariantKey}`,\r\n masterArticleNumber: `${this.dataStore.orderModule.articleInfo.masterArticleNo}`,\r\n navKey: `${this.dataStore.breadcrumb.category.navigationKey}`,\r\n navKeyPath: `${this.dataStore.breadcrumb.category.navigationKeyPath}`,\r\n userId: this.dataStore.contextData.customerData.customerNumbers[0],\r\n quantity: this.orderModuleStore.articleCount,\r\n withVat: this.orderModuleStore.withVat,\r\n smakeId: smakeId,\r\n preselectedArticles: [{\r\n variant: {\r\n id: smakeId,\r\n external_identifier: `${this.dataStore.orderModule.articleInfo.salesArticleVariantKey}`,\r\n },\r\n quantity: this.orderModuleStore.articleCount\r\n }]\r\n });\r\n }\r\n }\r\n\r\n public onPersonalizeIntent(personalizeOverlay = true): void {\r\n\r\n if (!(this.dataStore.contextData.featureToggles.enableLogoCreator &&\r\n (this.dataStore.shutterModule.productInfo?.description?.isSmakeDesignerAvailable ?? false)))\r\n window.open(this.dataStore.bannerModule.logoServiceRedirectUrl, '_self');\r\n\r\n if (this.fetchedData.contextData.customerData?.ssoId) {\r\n //if user is logged in\r\n\r\n if (personalizeOverlay) {\r\n //close this PO modal\r\n this.showPersonalizeOverlay(false);\r\n }\r\n\r\n this.openLogoCreatorDesigner();\r\n } else {\r\n // user not logged in yet\r\n //2. after AMS is done switching, open it \r\n window.shell.once('ESCRM.AccountMenu.AccountMenuSwitchedToLoginRequestedMode', () => {\r\n //this opens the flyout\r\n window.shell.publishTo('ESMKT.HeadR.ToggleFlyout', 'LoginFlyout');\r\n if (personalizeOverlay) {\r\n //close this PO modal\r\n this.showPersonalizeOverlay(false);\r\n }\r\n });\r\n\r\n // 1. request AMS to switch its text to a message defined by us\r\n const currentPage: string = window.location.pathname + window.location.search;\r\n const redirectUrl = currentPage + (currentPage.indexOf('?') >= 0 ? '&' : '?') + this.afterLoginParamWithValue;\r\n\r\n if (this.isEsApp) {\r\n const urlWithParamEncoded = encodeURIComponent(redirectUrl);\r\n const param = '?loginRequired=true&redirectUrl=' + urlWithParamEncoded;\r\n\r\n const loginForEsAppWithRedirect = this.localization.generalL10n.esAppLoginPageUrl + param;\r\n\r\n window.location.href = loginForEsAppWithRedirect;\r\n return;\r\n }\r\n\r\n window.shell.publishTo('ESCRM.AccountMenu.ServiceRequestsLogin',\r\n {\r\n redirectUrl: redirectUrl,\r\n message: this.localization.generalL10n.personalizationLoginHint,\r\n });\r\n }\r\n }\r\n\r\n public showPersonalizeOverlay(show: boolean) {\r\n // only do the change if needed\r\n if (show !== this.poIsVisible) {\r\n if (show && !this.poIsVisible) {\r\n // open\r\n this.scrollLock.lock();\r\n this.hideEsAppButton();\r\n } else {\r\n // close\r\n this.scrollLock.unlock();\r\n this.showEsAppButton();\r\n }\r\n this.poIsVisible = !this.poIsVisible;\r\n }\r\n }\r\n\r\n public showPersonlizeRegistrationConfirmHint(show: boolean) {\r\n // only do the change if needed\r\n if (show !== this.confirmRegistrationHintIsVisible) {\r\n if (show && !this.confirmRegistrationHintIsVisible) {\r\n // open\r\n this.scrollLock.lock();\r\n this.hideEsAppButton();\r\n } else {\r\n // close\r\n this.scrollLock.unlock();\r\n this.showEsAppButton();\r\n }\r\n this.confirmRegistrationHintIsVisible = !this.confirmRegistrationHintIsVisible;\r\n }\r\n }\r\n\r\n get getProductFinderLogo(): string | undefined {\r\n if (this.dataStore.purchaseAdvice.showJacketFinder) return this.localization.redOnlyL10n?.jacketFinderLogo;\r\n if (this.dataStore.purchaseAdvice.showTrouserFinder) return this.localization.redOnlyL10n?.trouserFinderLogo;\r\n if (this.dataStore.purchaseAdvice.showShoeFinder) return this.localization.redOnlyL10n?.shoeFinderLogo;\r\n }\r\n\r\n get getProductFinderTitle(): string | undefined {\r\n if (this.dataStore.purchaseAdvice.showJacketFinder) return this.localization.redOnlyL10n?.jacketFinderTitle;\r\n if (this.dataStore.purchaseAdvice.showTrouserFinder) return this.localization.redOnlyL10n?.trouserFinderTitle;\r\n if (this.dataStore.purchaseAdvice.showShoeFinder) return this.localization.redOnlyL10n?.shoeFinderTitle;\r\n }\r\n\r\n get getProductFinderSubTitle(): string | undefined {\r\n if (this.dataStore.purchaseAdvice.showJacketFinder) return this.localization.redOnlyL10n?.jacketFinderSubTitle;\r\n if (this.dataStore.purchaseAdvice.showTrouserFinder) return this.localization.redOnlyL10n?.trouserFinderSubTitle;\r\n if (this.dataStore.purchaseAdvice.showShoeFinder) return this.localization.redOnlyL10n?.shoeFinderSubTitle;\r\n }\r\n\r\n get getProductFinderContentTitle(): string | undefined {\r\n if (this.dataStore.purchaseAdvice.showJacketFinder)\r\n return this.localization.redOnlyL10n?.findYourPerfectJacketIn3SimpleSteps;\r\n if (this.dataStore.purchaseAdvice.showTrouserFinder)\r\n return this.localization.redOnlyL10n?.findYourPerfectTrousersIn3SimpleSteps;\r\n if (this.dataStore.purchaseAdvice.showShoeFinder)\r\n return this.localization.redOnlyL10n?.justaFewStepsToThePerfectFootwear;\r\n }\r\n\r\n get getProductFinderContentDescription(): string | undefined {\r\n if (this.dataStore.purchaseAdvice.showJacketFinder)\r\n return this.localization.redOnlyL10n?.areYouLookingForThePerfectJacket;\r\n if (this.dataStore.purchaseAdvice.showTrouserFinder)\r\n return this.localization.redOnlyL10n?.areYouLookingForThePerfectWorkTrousers;\r\n if (this.dataStore.purchaseAdvice.showShoeFinder)\r\n return this.localization.redOnlyL10n?.areYouLookingForThePerfectShoe;\r\n\r\n }\r\n\r\n get getProductFinderRedirectUrl(): string {\r\n if (this.dataStore.purchaseAdvice.showJacketFinder)\r\n return this.dataStore.purchaseAdvice.jacketFinderRedirectUrl;\r\n if (this.dataStore.purchaseAdvice.showTrouserFinder)\r\n return this.dataStore.purchaseAdvice.trouserFinderRedirectUrl;\r\n else (this.dataStore.purchaseAdvice.showShoeFinder)\r\n return this.dataStore.purchaseAdvice.shoeFinderRedirectUrl;\r\n }\r\n\r\n get getProductFinderRedirectBtnText(): string | undefined {\r\n if (this.dataStore.purchaseAdvice.showJacketFinder)\r\n return this.localization.redOnlyL10n?.goToJacketFinder;\r\n if (this.dataStore.purchaseAdvice.showTrouserFinder)\r\n return this.localization.redOnlyL10n?.goToTrouserFinder;\r\n if (this.dataStore.purchaseAdvice.showShoeFinder)\r\n return this.localization.redOnlyL10n?.goToShoeFinder;\r\n }\r\n\r\n get getBookmarkContainerID(): string {\r\n return this.isMobileShop ? 'dp-bookmark-add-button-mobile' : 'dp-bookmark-add-button-desktop';\r\n }\r\n\r\n get getProductFinderName(): string | undefined {\r\n if (this.dataStore.purchaseAdvice.showJacketFinder)\r\n return 'jf';\r\n if (this.dataStore.purchaseAdvice.showTrouserFinder)\r\n return 'tf';\r\n if (this.dataStore.purchaseAdvice.showShoeFinder)\r\n return 'sf';\r\n }\r\n\r\n // helper:\r\n async basketModalDataForLogoCreator(\r\n reporting: IPiwikReporting,\r\n itemOrigin: string,\r\n sizes: Array<LogoCreatorSuccessArticle>,\r\n smakeId: number,\r\n fetchedData: IResponseData): Promise<IBasketModalForLogoCreator> {\r\n const sizeVariants: Array<IBasketModalForLogoCreatorSizeVariant> = [];\r\n if (sizes.length === 1) {\r\n const sizeVariant: IBasketModalForLogoCreatorSizeVariant = {\r\n savKey: sizes[0].savKey,\r\n quantity: sizes[0].quantity,\r\n netPrice: fetchedData.orderModule.articlePrice.basicPrice.netValue,\r\n grossPrice: fetchedData.orderModule.articlePrice.basicPrice.grossValue,\r\n label: this.filterSizeLabelWithSavKey(fetchedData, sizes[0].savKey),\r\n }\r\n sizeVariants.push(sizeVariant);\r\n } else {\r\n const sizeSavKeys = sizes.map(size => size.savKey);\r\n const sizePrice = await this.fetch.getPriceListForSizes(fetchedData.contextData.apiMagicLink,\r\n sizeSavKeys);\r\n sizes.forEach(size => {\r\n const sizeVariant: IBasketModalForLogoCreatorSizeVariant = {\r\n savKey: size.savKey,\r\n quantity: size.quantity,\r\n netPrice: sizePrice[size.savKey].netValue,\r\n grossPrice: sizePrice[size.savKey].grossValue,\r\n label: this.filterSizeLabelWithSavKey(fetchedData, size.savKey),\r\n }\r\n sizeVariants.push(sizeVariant);\r\n });\r\n }\r\n\r\n return {\r\n title: fetchedData.orderModule.articleInfo.title,\r\n color: fetchedData.variantSelection.selectedColor?.code.toString(),\r\n colorName: fetchedData.variantSelection.selectedColor?.name,\r\n sizesWithPrice: sizeVariants,\r\n imageUrl: fetchedData.mixedMedia.image?.fullPath,\r\n exampleSalesVariantKey: sizes[0].savKey,\r\n model: fetchedData.variantSelection.selectedModel?.code.toString(),\r\n modelLabel: fetchedData.variantSelection.selectedModel?.label,\r\n smakeId: smakeId,\r\n masterArticleNumber: fetchedData.orderModule.articleInfo.masterArticleNo,\r\n isStraussBrand: fetchedData.orderModule.articleInfo.brand ?\r\n fetchedData.orderModule.articleInfo.brand.toLowerCase() === this.esBrand : false,\r\n nativeNavKeyPath: fetchedData.breadcrumb.category.navigationKeyPath,\r\n reporting: reporting,\r\n itemOrigin: itemOrigin,\r\n categoryName: fetchedData.breadcrumb.category.name\r\n };\r\n }\r\n\r\n private filterSizeLabelWithSavKey(fetchedData: IResponseData, savKey: string): string {\r\n const sizeTypes = fetchedData.variantSelection.availableSizeTypes;\r\n let label = '';\r\n sizeTypes.forEach(sizeType => {\r\n const match = sizeType.sizes.find((value) => value.salesArticleVariantKey === savKey);\r\n if (match) {\r\n label = match.size.name;\r\n return;\r\n }\r\n });\r\n\r\n return label;\r\n }\r\n}\r\n","import { observable, makeObservable, computed, action } from 'mobx';\r\nimport { UrlHelper } from '../helper/urlHelper';\r\nimport { MainStore } from './MainStore';\r\nimport { IImage, ImageTypesEnum, IMixedMediaData, LayoutTypesEnum, SalesArticleType } from './types';\r\nimport { decodeHTML } from '../helper/html-helper';\r\nimport { ICarouselSlide } from '../types';\r\n\r\nexport class MixedMediaStore {\r\n public mainStore: MainStore;\r\n private urlHelper = new UrlHelper();\r\n // general data:\r\n public masterArticleNo: number;\r\n public colorCode: number;\r\n public masterArticleNoDefault: number;\r\n public colorCodeDefault: number;\r\n public altTagForImages: string;\r\n public salesArticleType: SalesArticleType;\r\n public showMainImageInFirstPlaceByEsClass: boolean;\r\n //---\r\n\r\n // main image element (Element 1):\r\n public isNew: boolean;\r\n public mainImage: IImage;\r\n public mainActionImage?: IImage;\r\n public secondaryImage?: IImage;\r\n public loadedImagesArray: number[];\r\n public loadedImagesMobileArray: number[];\r\n //--\r\n\r\n // 3d view element (Element 2):\r\n public has3DView: boolean;\r\n public displayG3dOverlay: boolean;\r\n public temporaryHideSCS: boolean;\r\n public fallBackImageUrl: string;\r\n //--\r\n\r\n // additionalInfoImage element (Element 3):\r\n public additionalInfoImages?: IImage[];\r\n //--\r\n\r\n // mediaOverlay element\r\n public displayMediaOverlay: boolean;\r\n //--\r\n\r\n public detailedImage?: IImage;\r\n public shoeSoleImage?: IImage;\r\n\r\n public currentSlideIndex: number;\r\n\r\n constructor(mainStore: MainStore) {\r\n this.mainStore = mainStore;\r\n this.currentSlideIndex = 1;\r\n this.isNew = mainStore.dataStore.mixedMedia?.isNew;\r\n this.mainImage = mainStore.dataStore.mixedMedia?.image;\r\n this.mainActionImage = mainStore.dataStore.mixedMedia?.mainActionImage;\r\n this.secondaryImage = mainStore.dataStore.mixedMedia?.secondaryImage;\r\n this.altTagForImages = mainStore.dataStore.mixedMedia?.altTagForImages;\r\n this.salesArticleType = mainStore.dataStore.mixedMedia?.salesArticleType;\r\n this.showMainImageInFirstPlaceByEsClass = mainStore.dataStore.mixedMedia.showMainImageInFirstPlaceByEsClass;\r\n\r\n this.masterArticleNoDefault = this.masterArticleNo = mainStore.dataStore.mixedMedia?.masterArticleNo;\r\n this.colorCodeDefault = this.colorCode = mainStore.dataStore.mixedMedia?.colorCode;\r\n this.has3DView = mainStore.dataStore.mixedMedia?.has3DView;\r\n this.fallBackImageUrl = this.mainImage.fullPath;\r\n this.displayG3dOverlay = false;\r\n this.displayMediaOverlay = false;\r\n this.temporaryHideSCS = false;\r\n\r\n this.additionalInfoImages = mainStore.dataStore.mixedMedia?.additionalInfoImages;\r\n this.detailedImage = mainStore.dataStore.mixedMedia?.detailedImage;\r\n this.shoeSoleImage = mainStore.dataStore.mixedMedia?.shoeSoleImage;\r\n this.secondaryImage = mainStore.dataStore.mixedMedia.secondaryImage;\r\n\r\n this.generateSourceSets();\r\n this.loadedImagesArray = [0];\r\n this.loadedImagesMobileArray = [0];\r\n\r\n makeObservable(this, {\r\n masterArticleNo: observable,\r\n colorCode: observable,\r\n altTagForImages: observable,\r\n isNew: observable,\r\n mainImage: observable,\r\n mainActionImage: observable,\r\n has3DView: observable,\r\n displayG3dOverlay: observable,\r\n displayMediaOverlay: observable,\r\n temporaryHideSCS: observable,\r\n additionalInfoImages: observable,\r\n currentSlideIndex: observable,\r\n shoeSoleImage: observable,\r\n detailedImage: observable,\r\n loadedImagesArray: observable,\r\n loadedImagesMobileArray: observable,\r\n shouldRenderAdditionalInfoImage: computed,\r\n shouldRenderMainImageCarousel: computed,\r\n getSingleAdditionalInfoImage: computed,\r\n shouldRenderMainImageInElement2: computed,\r\n getImageForElement3: computed,\r\n get1ElementImage: computed,\r\n getSlidesForCarousel: computed,\r\n getSlidesForMobileCarousel: computed,\r\n setMainImageCarouselSlide: action,\r\n dataUpdate: action,\r\n handleShowGallery3d: action,\r\n updateActiveCarouselImageIndex: action,\r\n updateActiveCarouselImageMobileIndex: action,\r\n updateMediaOverlayVisibility: action,\r\n manageSCSFragment: action,\r\n });\r\n }\r\n\r\n get shouldRenderAdditionalInfoImage(): boolean {\r\n return !!this.shoeSoleImage || !!this.detailedImage;\r\n }\r\n\r\n get getImageForElement3(): IImage {\r\n if (this.detailedImage) {\r\n return this.detailedImage;\r\n }\r\n if (this.shoeSoleImage) {\r\n return this.shoeSoleImage;\r\n }\r\n return this.mainImage;\r\n }\r\n\r\n get shouldRenderMainImageCarousel(): boolean {\r\n if (this.mainStore.isMobileShop) {\r\n if (\r\n !!this.mainActionImage ||\r\n (this.additionalInfoImages && this.additionalInfoImages.length > 0) ||\r\n !!this.secondaryImage ||\r\n !!this.detailedImage ||\r\n !!this.shoeSoleImage\r\n )\r\n return true;\r\n }\r\n if (this.displayMediaOverlay) {\r\n if (\r\n !!this.mainActionImage ||\r\n !!this.secondaryImage ||\r\n !!this.detailedImage ||\r\n !!this.shoeSoleImage ||\r\n (this.additionalInfoImages && this.additionalInfoImages.length > 0)\r\n )\r\n return true;\r\n }\r\n if (this.shouldRenderMainImageInElement2) {\r\n let count = this.additionalInfoImages ? this.additionalInfoImages.length : 0;\r\n if (this.secondaryImage) {\r\n count = count + 1;\r\n }\r\n if (this.mainActionImage) {\r\n count = count + 1;\r\n }\r\n if (this.detailedImage && this.shoeSoleImage) {\r\n count = count + 1;\r\n }\r\n return count > 1;\r\n } else {\r\n return (this.additionalInfoImages && this.additionalInfoImages.length > 0) || !!this.secondaryImage;\r\n }\r\n }\r\n\r\n get shouldRenderMainImageInElement2(): boolean {\r\n if (this.has3DView) {\r\n return false;\r\n }\r\n if (this.mainActionImage) {\r\n return true;\r\n }\r\n if (this.additionalInfoImages && this.additionalInfoImages.length > 0) {\r\n return true;\r\n }\r\n if (this.secondaryImage) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get get1ElementImage() {\r\n if (this.mainActionImage) {\r\n return this.mainActionImage;\r\n }\r\n if (this.additionalInfoImages && this.additionalInfoImages.length === 1) {\r\n return this.additionalInfoImages[0];\r\n }\r\n if (this.secondaryImage) {\r\n return this.secondaryImage;\r\n } else return this.mainImage;\r\n }\r\n\r\n get shouldRenderMainImageInFirstCarouselPosition() {\r\n return (\r\n this.mainStore.isMobileShop &&\r\n (this.showMainImageInFirstPlaceByEsClass || this.salesArticleType === SalesArticleType.ArticleSet)\r\n );\r\n }\r\n\r\n setMainImageCarouselSlide(newSlideIndex: number): void {\r\n const tmpIndex = newSlideIndex + 1;\r\n\r\n if (this.currentSlideIndex !== tmpIndex) {\r\n this.currentSlideIndex = tmpIndex;\r\n }\r\n }\r\n\r\n dataUpdate(mixedMediaData: IMixedMediaData): void {\r\n this.isNew = mixedMediaData?.isNew;\r\n this.mainImage = mixedMediaData?.image;\r\n this.mainActionImage = mixedMediaData?.mainActionImage;\r\n this.altTagForImages = mixedMediaData?.altTagForImages;\r\n\r\n this.masterArticleNo = mixedMediaData?.masterArticleNo;\r\n this.colorCode = mixedMediaData?.colorCode;\r\n this.has3DView = mixedMediaData?.has3DView;\r\n\r\n this.additionalInfoImages = mixedMediaData?.additionalInfoImages;\r\n this.shoeSoleImage = mixedMediaData?.shoeSoleImage;\r\n this.detailedImage = mixedMediaData?.detailedImage;\r\n this.secondaryImage = mixedMediaData?.secondaryImage;\r\n this.currentSlideIndex = 1;\r\n this.generateSourceSets();\r\n }\r\n\r\n get getSingleAdditionalInfoImage(): IImage | null {\r\n return this.additionalInfoImages ? this.additionalInfoImages[0] : null;\r\n }\r\n\r\n getAltValue(index = 0): string {\r\n if (index > 0) return decodeHTML(this.altTagForImages) + ' ' + index;\r\n\r\n return decodeHTML(this.altTagForImages) ?? '';\r\n }\r\n\r\n get getSlidesForCarousel() {\r\n const carouselSlides: ICarouselSlide[] = [];\r\n let index = carouselSlides.length;\r\n if (this.shouldRenderMainImageInFirstCarouselPosition) {\r\n const newIndex = index++;\r\n carouselSlides.push(this.getSlideObject('contain', this.mainImage, newIndex));\r\n }\r\n if (this.mainActionImage) {\r\n const newIndex = index++;\r\n carouselSlides.push(this.getSlideObject('cover', this.mainActionImage, newIndex));\r\n }\r\n if (this.additionalInfoImages && this.additionalInfoImages.length > 0) {\r\n this.additionalInfoImages.forEach(addImage => {\r\n const newIndex = index++;\r\n carouselSlides.push(this.getSlideObject('cover', addImage, newIndex));\r\n });\r\n }\r\n if (!this.shouldRenderMainImageInFirstCarouselPosition) {\r\n if (!this.shouldRenderMainImageInElement2 || this.displayMediaOverlay || this.mainStore.isMobileShop) {\r\n const newIndex = index++;\r\n carouselSlides.push(this.getSlideObject('contain', this.mainImage, newIndex));\r\n }\r\n }\r\n if (this.secondaryImage) {\r\n const newIndex = index++;\r\n carouselSlides.push(this.getSlideObject('contain', this.secondaryImage, newIndex));\r\n }\r\n if (!this.displayMediaOverlay && !!this.detailedImage && !!this.shoeSoleImage) {\r\n const newIndex = index++;\r\n carouselSlides.push(this.getSlideObject('cover', this.shoeSoleImage, newIndex));\r\n }\r\n if (this.displayMediaOverlay && !this.mainStore.isMobileShop) {\r\n if (this.shoeSoleImage) {\r\n const newIndex = index++;\r\n carouselSlides.push(this.getSlideObject('cover', this.shoeSoleImage, newIndex));\r\n }\r\n if (this.detailedImage) {\r\n const newIndex = index++;\r\n carouselSlides.push(this.getSlideObject('cover', this.detailedImage, newIndex));\r\n }\r\n }\r\n return carouselSlides;\r\n }\r\n\r\n get getSlidesForMobileCarousel(): ICarouselSlide[] {\r\n const mobileCarouselSlides = [...this.getSlidesForCarousel];\r\n let index = mobileCarouselSlides.length;\r\n if (this.shoeSoleImage && !this.detailedImage) {\r\n const newIndex = index++;\r\n mobileCarouselSlides.push(this.getSlideObject('cover', this.shoeSoleImage, newIndex));\r\n }\r\n if (this.detailedImage) {\r\n const newIndex = index++;\r\n mobileCarouselSlides.push(this.getSlideObject('cover', this.detailedImage, newIndex));\r\n }\r\n return mobileCarouselSlides;\r\n }\r\n\r\n private getSlideObject(className: string, img: IImage, key: number): ICarouselSlide {\r\n const slide: ICarouselSlide = {\r\n className: `slide_image ${className}`,\r\n alt: this.getAltValue(key),\r\n src: img.fullPath,\r\n srcSet: img.srcSet.urls,\r\n slideIndex: key,\r\n }\r\n return slide;\r\n }\r\n\r\n get getLayoutClass(): string {\r\n let result;\r\n if (this.isSingleSlotLayout()) result = 'pdp-single_slot_view';\r\n else if (this.isThreeSlotsLayout()) result = 'pdp-three_slots_view';\r\n else result = 'pdp-two_slots_view';\r\n return result;\r\n }\r\n\r\n shouldEnablePinchZoom() {\r\n return this.mainStore.isMobileShop && this.displayMediaOverlay;\r\n }\r\n\r\n isSingleSlotLayout() {\r\n if (!this.has3DView && !this.shoeSoleImage && !this.detailedImage && !this.shouldRenderMainImageInElement2)\r\n return true;\r\n return false;\r\n }\r\n\r\n isThreeSlotsLayout() {\r\n if ((this.has3DView || this.shouldRenderMainImageInElement2) && (!!this.shoeSoleImage || !!this.detailedImage))\r\n return true;\r\n return false;\r\n }\r\n\r\n handleShowGallery3d(): void {\r\n this.displayG3dOverlay = !this.displayG3dOverlay;\r\n }\r\n\r\n updateActiveCarouselImageIndex(newSlideIndex: number): void {\r\n if (!this.loadedImagesArray.includes(newSlideIndex)) this.loadedImagesArray.push(newSlideIndex);\r\n }\r\n\r\n updateActiveCarouselImageMobileIndex(newSlideIndex: number): void {\r\n if (!this.loadedImagesMobileArray.includes(newSlideIndex)) this.loadedImagesMobileArray.push(newSlideIndex);\r\n }\r\n\r\n updateMediaOverlayVisibility(isVisible: boolean): void {\r\n this.displayMediaOverlay = isVisible;\r\n }\r\n\r\n manageSCSFragment(hidden: boolean): void {\r\n this.temporaryHideSCS = hidden;\r\n }\r\n\r\n generateSourceSets() {\r\n if (this.mainImage)\r\n this.mainImage = this.generateSourceSetForImage(ImageTypesEnum.MainImage, this.mainImage.fullPath);\r\n if (this.mainActionImage)\r\n this.mainActionImage = this.generateSourceSetForImage(\r\n ImageTypesEnum.MainActionImage,\r\n this.mainActionImage.fullPath\r\n );\r\n if (this.secondaryImage)\r\n this.secondaryImage = this.generateSourceSetForImage(\r\n ImageTypesEnum.SecondaryImage,\r\n this.secondaryImage.fullPath\r\n );\r\n if (this.additionalInfoImages && this.additionalInfoImages.length > 0) {\r\n const addImages: IImage[] = [];\r\n this.additionalInfoImages.forEach(image => {\r\n addImages.push(this.generateSourceSetForImage(ImageTypesEnum.AdditionalImages, image.fullPath));\r\n });\r\n this.additionalInfoImages = addImages;\r\n }\r\n if (this.shoeSoleImage)\r\n this.shoeSoleImage = this.generateSourceSetForImage(\r\n ImageTypesEnum.ShoeSoleImage,\r\n this.shoeSoleImage?.fullPath\r\n );\r\n if (this.detailedImage)\r\n this.detailedImage = this.generateSourceSetForImage(\r\n ImageTypesEnum.DetailedImage,\r\n this.detailedImage?.fullPath\r\n );\r\n }\r\n\r\n generateSourceSetForImage(imageType: ImageTypesEnum, imageUrl?: string): IImage {\r\n let layout: LayoutTypesEnum;\r\n if (this.isSingleSlotLayout()) layout = LayoutTypesEnum.Single_Element;\r\n else if (this.isThreeSlotsLayout()) layout = LayoutTypesEnum.Three_Elements;\r\n else layout = LayoutTypesEnum.Two_Elements;\r\n\r\n return this.urlHelper.getSrcSet(imageUrl, layout, imageType);\r\n }\r\n}\r\n","import axios, { AxiosError, AxiosResponse } from 'axios';\r\nimport { observable, makeObservable, action, computed } from 'mobx';\r\nimport { IPrice } from './types';\r\n\r\nimport { MainStore } from './MainStore';\r\nimport defaultStyles from '../styles/defaults.scss';\r\nimport { AvailabilityState } from '../components/orderModule/deliveryTime/deliveryTime';\r\nimport { decodeHTML } from '../helper/html-helper';\r\n\r\nfunction getWithVatValue(priceModeCookie?: 'Gross' | 'Net') {\r\n let result;\r\n\r\n switch (priceModeCookie) {\r\n case 'Gross':\r\n result = true;\r\n break;\r\n case 'Net':\r\n result = false;\r\n break;\r\n default:\r\n result =\r\n typeof document !== 'undefined'\r\n ? (document.getElementsByClassName('current-pricemode-gross') || [{}]).length > 0\r\n : true;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nclass OrderModuleStore {\r\n mainStore: MainStore;\r\n itemOrigin: string;\r\n mpcItemOrigin = 'DetailsPage';\r\n withVat: boolean;\r\n compareShareBookmarkMobileExpanded: boolean;\r\n articleCount: number | '';\r\n stickHeaderHeight = 0;\r\n readonly articleCountMin: number = 1;\r\n readonly articleCountMax: number = 9999;\r\n\r\n constructor(store: MainStore, initialPriceMode?: 'Gross' | 'Net') {\r\n this.mainStore = store;\r\n this.withVat = getWithVatValue(initialPriceMode);\r\n this.articleCount = 1;\r\n this.compareShareBookmarkMobileExpanded = false;\r\n\r\n makeObservable(this, {\r\n withVat: observable,\r\n articleCount: observable,\r\n stickHeaderHeight: observable,\r\n compareShareBookmarkMobileExpanded: observable,\r\n toggleWithVat: action.bound,\r\n setPriceModeCookie: action,\r\n setArticleCount: action.bound,\r\n setStickHeaderHeight: action.bound,\r\n toggleCompareShareBookmarkMobileExpanded: action.bound,\r\n basePriceString: computed,\r\n infoTexts: computed,\r\n articleUnit: computed,\r\n titleAddon: computed,\r\n deliveryTimeString: computed,\r\n deliveryTimeStatusColor: computed,\r\n isSale: computed,\r\n shouldRenderBasePrice: computed,\r\n shouldRenderInfoTexts: computed,\r\n soldOutArticleStatusColor: computed\r\n });\r\n\r\n // normal methods that don't change state\r\n this.getPriceString = this.getPriceString.bind(this);\r\n this.updateBasketItemCount = this.updateBasketItemCount.bind(this);\r\n this.onPriceModeChangedEvent = this.onPriceModeChangedEvent.bind(this);\r\n\r\n if (typeof window !== 'undefined') {\r\n window.shell.subscribeTo('PriceModeChanged', newPriceMode => {\r\n this.onPriceModeChangedEvent(newPriceMode);\r\n });\r\n }\r\n\r\n if (typeof window !== 'undefined') {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n urlParams.forEach((value, key) => {\r\n if (key.localeCompare('itemOrigin', undefined, { sensitivity: 'accent' }) === 0)\r\n this.itemOrigin = value;\r\n });\r\n if (this.itemOrigin) this.mpcItemOrigin = this.itemOrigin;\r\n }\r\n }\r\n\r\n getPriceString(price?: IPrice): string {\r\n if (price) {\r\n let localizedPriceString: string;\r\n let priceString: string;\r\n if (this.mainStore.isGlobal) {\r\n priceString = price.netValue.toFixed(2);\r\n } else {\r\n priceString = (this.withVat ? price.grossValue : price.netValue).toFixed(2);\r\n }\r\n\r\n const priceStringSplit = priceString.split('.');\r\n\r\n let intString = priceStringSplit[0];\r\n let seperatedIntString = '';\r\n const numberGroupSeparator = this.mainStore.dataStore.contextData.numberFormat.numberGroupSeparator;\r\n\r\n while (intString.length > 0) {\r\n if (intString.length > 3) {\r\n const last3Digits = intString.slice(-3);\r\n seperatedIntString = numberGroupSeparator + last3Digits + seperatedIntString;\r\n } else {\r\n seperatedIntString = intString + seperatedIntString;\r\n }\r\n intString = intString.slice(0, -3);\r\n }\r\n\r\n const numberDecimalSeparator = this.mainStore.dataStore.contextData.numberFormat.numberDecimalSeparator;\r\n const fractionString = priceStringSplit[1];\r\n\r\n localizedPriceString = `${seperatedIntString}${numberDecimalSeparator}${fractionString}`;\r\n\r\n const currency = this.mainStore.dataStore.orderModule.articlePrice.currency.symbolShortForm;\r\n const prependCurrencySymbol =\r\n this.mainStore.dataStore.orderModule.articlePrice.currency.prependCurrencySymbol;\r\n\r\n if (prependCurrencySymbol)\r\n localizedPriceString = `${currency} ${localizedPriceString}`;\r\n else\r\n localizedPriceString = `${localizedPriceString} ${currency}`\r\n return localizedPriceString;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n updateBasketItemCount() {\r\n if (typeof window === 'undefined') return; //only client side\r\n\r\n const basketApiUrl =\r\n this.mainStore.fetchedData.contextData.apiMagicLink +\r\n 'basket/Basket/BasketItemQuantities';\r\n\r\n const savKey = this.mainStore.fetchedData.orderModule.articleInfo.salesArticleVariantKey;\r\n this.mainStore.fetch\r\n .getBasketItemCount(basketApiUrl, savKey)\r\n .then(response => {\r\n this.setArticleCount(response);\r\n })\r\n .catch(() => {\r\n this.setArticleCount(1);\r\n });\r\n }\r\n\r\n onPriceModeChangedEvent(newPriceMode: 'Gross' | 'Net') {\r\n // update withVat if it is out of sync with app shell event value\r\n if ((newPriceMode === 'Gross' && !this.withVat) || (newPriceMode === 'Net' && this.withVat)) {\r\n this.toggleWithVat();\r\n }\r\n }\r\n\r\n toggleWithVat = () => {\r\n this.withVat = !this.withVat;\r\n };\r\n\r\n setPriceModeCookie(newPriceMode: 'Net' | 'Gross'): void {\r\n const urlToHost = this.mainStore.dataStore.contextData.apiMagicLink.replace('api/', '');\r\n const apiUrl = urlToHost + 'ajax/update/Content/Empty2';\r\n const requestURL = new URL(apiUrl);\r\n\r\n requestURL.searchParams.set('PriceMode', newPriceMode);\r\n axios\r\n .get(requestURL.toString())\r\n .then((res: AxiosResponse) => {\r\n if (res.status === 200 && typeof window !== 'undefined') {\r\n window.shell.publishTo('PriceModeChanged', newPriceMode);\r\n }\r\n })\r\n .catch((error: Error | AxiosError) => {\r\n const errorMsg = `${error.name}: ${error.message}`;\r\n const errorStack = error.stack;\r\n\r\n // eslint-disable-next-line no-console\r\n console.warn(`fetch() failed with \"${errorMsg}\". Full error:\\n${errorStack}`);\r\n });\r\n }\r\n\r\n setArticleCount(param: number | ''): void {\r\n if (typeof param === 'number' && param > 0)\r\n this.articleCount = param;\r\n else\r\n this.articleCount = this.articleCountMin;\r\n }\r\n\r\n setStickHeaderHeight(param: number): void {\r\n this.stickHeaderHeight = param;\r\n }\r\n\r\n toggleCompareShareBookmarkMobileExpanded(): void {\r\n this.compareShareBookmarkMobileExpanded = !this.compareShareBookmarkMobileExpanded;\r\n }\r\n\r\n get basePriceString() {\r\n let result = '';\r\n const basicPrice = this.mainStore.dataStore.orderModule.articlePrice.basicPrice;\r\n if (basicPrice.basePrice) {\r\n const priceString = this.getPriceString({\r\n grossValue: basicPrice.basePrice.grossValue,\r\n netValue: basicPrice.basePrice.netValue,\r\n });\r\n result = priceString;\r\n }\r\n return [result, basicPrice?.basePrice?.unit];\r\n }\r\n\r\n get infoTexts() {\r\n let infoTextResult: string[][] = [];\r\n const { priceFromLocale } = this.mainStore.localization.generalL10n;\r\n const { articlePrice, articleInfo } = this.mainStore.dataStore.orderModule;\r\n if (Array.isArray(articlePrice.scalePrices)) {\r\n infoTextResult = articlePrice.scalePrices.map((item) => {\r\n const unit =\r\n item.quantity > 1\r\n ? articleInfo.packagingInformation.quantityUnit.plural\r\n : articleInfo.packagingInformation.quantityUnit.singular;\r\n const preString = `${priceFromLocale} ${item.quantity} ${unit}: `;\r\n let basePricePreString = '';\r\n let basePriceString = '';\r\n let basePriceUnit = '';\r\n\r\n if (item.price.basePrice) {\r\n basePriceUnit = item.price.basePrice.unit ? `/${item.price.basePrice.unit}` : '';\r\n basePriceString = this.getPriceString(item.price.basePrice);\r\n basePricePreString = ` | ${this.mainStore.localization.generalL10n.basePriceLocale}: `;\r\n }\r\n\r\n return [preString, this.getPriceString(item.price),\r\n basePricePreString, basePriceString, basePriceUnit];\r\n });\r\n }\r\n return infoTextResult;\r\n }\r\n\r\n get titleAddon(): string {\r\n let result = '';\r\n\r\n const packagingInformation = this.mainStore.dataStore.orderModule.articleInfo.packagingInformation;\r\n if (packagingInformation.packageSize > 1) {\r\n let quantity = packagingInformation.quantityUnit.plural;\r\n let subQuantityUnit = '';\r\n if (packagingInformation.subQuantityUnit) {\r\n subQuantityUnit = `${packagingInformation.subQuantityUnit.plural} / `;\r\n quantity = packagingInformation.quantityUnit.singular;\r\n }\r\n result = `${packagingInformation.packageSize} ${subQuantityUnit}${quantity}`;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n get deliveryTimeString(): string {\r\n const {\r\n periodType,\r\n minValue,\r\n maxValue,\r\n calendarWeek,\r\n } = this.mainStore.dataStore.orderModule.deliveryInformation;\r\n\r\n let deliveryTimeLocale;\r\n let result;\r\n if (!this.mainStore.isGlobal) {\r\n switch (periodType) {\r\n case 1:\r\n deliveryTimeLocale = this.mainStore.localization.generalL10n.deliveryTimeUnknownDateLocale;\r\n break;\r\n case 2:\r\n deliveryTimeLocale = this.mainStore.localization.generalL10n.deliveryTimeFromCalWeekLocale;\r\n break;\r\n default:\r\n deliveryTimeLocale = this.mainStore.localization.generalL10n.deliveryTimeKnownDateLocale;\r\n }\r\n\r\n if (typeof window != 'undefined') {\r\n result =\r\n periodType === 2\r\n ? decodeHTML(deliveryTimeLocale) + ' ' + String(calendarWeek)\r\n : decodeHTML(deliveryTimeLocale)?.replace('{0}', String(minValue))\r\n .replace('{1}', String(maxValue));\r\n } else {\r\n result =\r\n periodType === 2\r\n ? deliveryTimeLocale + String(calendarWeek)\r\n : `~~~${deliveryTimeLocale}~${String(minValue)}~${String(maxValue)}~~~`;\r\n }\r\n } else {\r\n switch (this.mainStore.dataStore.orderModule.availabilityState) {\r\n case AvailabilityState.InStock:\r\n deliveryTimeLocale = this.mainStore.localization.glbOnlyL10n?.deliveryDateShortGLBLocale;\r\n break;\r\n case AvailabilityState.SoonInStock:\r\n deliveryTimeLocale = this.mainStore.localization.glbOnlyL10n?.deliveryDateLongGLBLocale;\r\n break;\r\n default:\r\n deliveryTimeLocale = this.mainStore.localization.glbOnlyL10n?.deliveryDateLongGLBLocale;\r\n }\r\n result = typeof window != 'undefined' ? decodeHTML(deliveryTimeLocale) : deliveryTimeLocale;\r\n }\r\n return result;\r\n }\r\n\r\n get deliveryTimeStatusColor(): string {\r\n let statusColor;\r\n\r\n switch (this.mainStore.dataStore.orderModule.availabilityState) {\r\n case AvailabilityState.InStock:\r\n statusColor = defaultStyles.dpGreen;\r\n break;\r\n case AvailabilityState.SoonInStock:\r\n statusColor = defaultStyles.dpOrange;\r\n break;\r\n default:\r\n statusColor = defaultStyles.dpRed;\r\n }\r\n\r\n return statusColor;\r\n }\r\n\r\n get soldOutArticleStatusColor(): string {\r\n return defaultStyles.dpRed;\r\n }\r\n\r\n get isSale(): boolean {\r\n return !!this.mainStore.dataStore.orderModule.articlePrice.minimalOriginalPrice;\r\n }\r\n\r\n get shouldRenderBasePrice(): boolean {\r\n return !!this.mainStore.dataStore.orderModule.articlePrice.basicPrice.basePrice;\r\n }\r\n\r\n get shouldRenderInfoTexts() {\r\n return (\r\n !this.mainStore.dataStore.orderModule.articlePrice.hideScalePrices &&\r\n !(!this.infoTexts || this.infoTexts.length === 0)\r\n );\r\n }\r\n\r\n get articleUnit() {\r\n const packagingInformation = this.mainStore.dataStore.orderModule.articleInfo.packagingInformation;\r\n\r\n return this.articleCount > 1\r\n ? packagingInformation.quantityUnit.plural\r\n : packagingInformation.quantityUnit.singular;\r\n }\r\n\r\n get basketModalData(): IBasketModal {\r\n const articleCount =\r\n typeof this.mainStore.orderModuleStore.articleCount === 'number' &&\r\n this.mainStore.orderModuleStore.articleCount > 0\r\n ? this.mainStore.orderModuleStore.articleCount\r\n : this.articleCountMin;\r\n const basketModalItemOrigin = this.itemOrigin\r\n ? this.itemOrigin\r\n : 'NAVIGATION/' + this.mainStore.dataStore.breadcrumb.category.name;\r\n const returnValue: IBasketModal = {\r\n color: this.mainStore.variantStore.selectedColor.code.toString(),\r\n colorName: this.mainStore.variantStore.selectedColor.name,\r\n imageUrl: this.mainStore.mixedMediaStore.mainImage?.fullPath,\r\n quantity: articleCount,\r\n salesVariantKey: this.mainStore?.variantStore.selectedSize?.salesArticleVariantKey,\r\n masterArticleNo: this.mainStore?.dataStore.orderModule.articleInfo.masterArticleNo.toString(),\r\n size: this.mainStore?.variantStore.selectedSize?.size.name,\r\n title: this.mainStore.dataStore.orderModule.articleInfo.title,\r\n maxQuantityPerOrder: this.mainStore.dataStore.orderModule.maxQuantityPerOrder,\r\n quantityUnit:\r\n this.mainStore.dataStore.orderModule.maxQuantityPerOrder > 1\r\n ? this.mainStore.dataStore.orderModule.articleInfo.packagingInformation.quantityUnit.plural\r\n : this.mainStore.dataStore.orderModule.articleInfo.packagingInformation.quantityUnit.singular,\r\n model: this.mainStore.variantStore.selectedModel?.code.toString(),\r\n modelLabel: this.mainStore.variantStore.selectedModel?.label,\r\n itemOrigin: basketModalItemOrigin,\r\n nativeNavKeyPath: this.mainStore.dataStore.breadcrumb.category.navigationKeyPath,\r\n salesArticleNo: this.mainStore.dataStore.orderModule.articleInfo.salesArticleNo,\r\n grossPrice: this.mainStore.dataStore.orderModule.articlePrice.basicPrice.grossValue.toString(),\r\n netPrice: this.mainStore.dataStore.orderModule.articlePrice.basicPrice.netValue.toString(),\r\n isStraussBrand: this.mainStore.dataStore.orderModule.articleInfo.brand ?\r\n this.mainStore.dataStore.orderModule.articleInfo.brand.toLowerCase() === this.mainStore.esBrand : false,\r\n categoryName: this.mainStore.dataStore.breadcrumb.category.name,\r\n currencyISO: this.mainStore.dataStore.orderModule.articlePrice.currency.isoCode,\r\n };\r\n\r\n const scaledPrices = this.mainStore.dataStore.orderModule.articlePrice.scalePrices;\r\n if (articleCount > 1 && scaledPrices) {\r\n let returnPrice;\r\n for (let i = 0; i < scaledPrices.length; i++) {\r\n const price = scaledPrices[i];\r\n if (articleCount >= price.quantity)\r\n returnPrice = price.price;\r\n }\r\n returnValue.scalePrice = returnPrice;\r\n }\r\n return returnValue;\r\n }\r\n}\r\n\r\ninterface IBasketModal {\r\n title: string;\r\n color?: string;\r\n colorName?: string;\r\n size?: string;\r\n model?: string;\r\n modelLabel?: string;\r\n imageUrl: string;\r\n salesVariantKey?: string;\r\n masterArticleNo: string;\r\n quantity: number;\r\n maxQuantityPerOrder?: number;\r\n quantityUnit?: string;\r\n itemOrigin?: string;\r\n nativeNavKeyPath?: string;\r\n salesArticleNo?: string;\r\n grossPrice?: string;\r\n netPrice?: string;\r\n scalePrice?: IPrice;\r\n isStraussBrand?: boolean;\r\n categoryName?: string;\r\n currencyISO?: string;\r\n}\r\n\r\nexport default OrderModuleStore;\r\n","import { observable, makeObservable, action, computed } from 'mobx';\r\n// eslint-disable-next-line max-len\r\nimport {\r\n IColor,\r\n ISizeType,\r\n ISalesArticleVariantSize,\r\n ISize,\r\n IModel,\r\n IAvailableColor,\r\n IAvailableModel,\r\n IVariantSelection,\r\n ITranslationFragment,\r\n VariantType,\r\n AvailabilityStatusEnum,\r\n} from './types';\r\n\r\nimport defaultStyles from '../styles/defaults.scss';\r\nimport { ScrollLock } from '../helper/scrollLock';\r\nimport { MainStore } from './MainStore';\r\nimport * as helper from '../helper/html-helper';\r\n\r\nexport class VariantStore {\r\n public mainStore: MainStore;\r\n public readonly scrollLock = new ScrollLock();\r\n public variantSelectionCopy: IVariantSelection;\r\n public variantSelectionCopyForWWS: IVariantSelection;\r\n private mobileMinWidth = parseInt(defaultStyles.breakpointMobileMinWidth);\r\n\r\n // @observable:\r\n // UI\r\n public isVariantPanelOpen: boolean;\r\n public variantType: VariantType;\r\n public allowedInteraction: boolean;\r\n public panelPosition: { top: number; height: string } | null;\r\n\r\n constructor(mainStore: MainStore) {\r\n this.mainStore = mainStore;\r\n // If we have more than one avaliable color MAINTAINED, showColorSwitcher will be True.\r\n // showColorSwitcher false can have two cases:\r\n // 1. No maintained color, then availableColors will have 1 element but with code 0.\r\n // 2. Has maintained one color, the availableColors also will have 1 element but have code > 0.\r\n // showColorSwitcher true case can still lead to availableColors to only have 1 element.\r\n // That means all other colors are sold out.\r\n this.variantType = mainStore.dataStore.variantSelection.showColorSwitcher\r\n ? VariantType.Color\r\n : VariantType.None;\r\n this.isVariantPanelOpen = false;\r\n this.panelPosition = null;\r\n this.variantSelectionCopy = JSON.parse(JSON.stringify(mainStore.dataStore.variantSelection));\r\n this.variantSelectionCopyForWWS = this.variantSelectionCopy;\r\n this.allowedInteraction = true;\r\n\r\n makeObservable(this, {\r\n isVariantPanelOpen: observable,\r\n panelPosition: observable,\r\n variantType: observable,\r\n variantSelectionCopy: observable,\r\n allowedInteraction: observable,\r\n changeVariantPanelDisplay: action,\r\n setPanelPosition: action,\r\n selectedColor: computed,\r\n changeSelectedColor: action,\r\n changeSelectedSizeType: action,\r\n changeSelectedSize: action,\r\n changeSelectedModel: action,\r\n selectedSizeType: computed,\r\n selectedSize: computed,\r\n sideImagePath: computed,\r\n variantButtonCount: computed,\r\n selectedModel: computed,\r\n resetVariantState: action,\r\n variantChange: action,\r\n updateAll: action,\r\n changeInteraction: action,\r\n updateVariantSelectionCopy: action,\r\n showSizeAccuracy: computed,\r\n });\r\n }\r\n\r\n // Normal method:\r\n public getUrlByAvailableColor(color: IAvailableColor): string {\r\n const salesArticleVariantKey = color.salesArticleVariantKey.split('-');\r\n return this.getUrl(salesArticleVariantKey[0], salesArticleVariantKey[1]);\r\n }\r\n\r\n public anySizeExistForSizeType(sizeType: ISizeType): boolean {\r\n const existSize = sizeType.sizes.find((size: ISalesArticleVariantSize) => {\r\n return !!size.salesArticleVariantKey;\r\n });\r\n return !!existSize;\r\n }\r\n\r\n private updateTranslatedUrl(translateFragmentJSON: string) {\r\n let translateFragment: ITranslationFragment | null = null;\r\n try {\r\n translateFragment = JSON.parse(translateFragmentJSON.trim());\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.error('An error on casting object has occurred', e);\r\n }\r\n\r\n if (translateFragment) {\r\n translateFragment.translations.forEach((translationObject) => {\r\n this.variantSelectionCopy.translationUrls.forEach((translationUrl) => {\r\n const cultureCode = translationUrl.culture.split('-', 1);\r\n if (cultureCode.length > 0 && cultureCode[0] === translationObject.code)\r\n translationObject.url = translationUrl.url;\r\n });\r\n });\r\n helper.setTranslateUrl(JSON.stringify(translateFragment));\r\n }\r\n }\r\n\r\n private getUrl(salesArticleNo: string, colorCode: string): string {\r\n // this.mainStore.dataStore.contextData.originalUrl needed only for startup, \r\n // when server side rendering is in progress and window object is not yet defined.\r\n // During that moment it is the only source of truth and it is correct \r\n const rawUrl = typeof window !== 'undefined' ? window.location.href\r\n : this.mainStore.dataStore.contextData.originalUrl;\r\n const originalUrl = new URL(rawUrl);\r\n const lastItem = originalUrl.pathname.substring(originalUrl.pathname.lastIndexOf('/') + 1);\r\n const subStrings = lastItem.split('-');\r\n const colorCodeIndex = subStrings.length - 1;\r\n const salesArticleNoIndex = subStrings.length - 2;\r\n subStrings[colorCodeIndex] = colorCode;\r\n subStrings[salesArticleNoIndex] = salesArticleNo;\r\n const newLastPath = subStrings.join('-') + '.html';\r\n const url = new URL(newLastPath, originalUrl);\r\n const query = new URLSearchParams(originalUrl.search);\r\n query.forEach((value, key) => {\r\n url.searchParams.set(key, value);\r\n });\r\n return url.href;\r\n }\r\n\r\n private changeVariantType(variantType?: VariantType) {\r\n if (typeof variantType !== 'undefined') {\r\n if (variantType !== VariantType.Kiosk) {\r\n this.variantType = variantType;\r\n } else {\r\n if (this.variantSelectionCopy.showSizeSwitcher) {\r\n if (this.variantSelectionCopy.isScrew) {\r\n this.variantType = VariantType.Special;\r\n } else {\r\n this.variantType = VariantType.Size;\r\n }\r\n } else if (this.variantSelectionCopy.showModelSwitcher) {\r\n this.variantType = VariantType.Model;\r\n } else if (this.variantSelectionCopy.showColorSwitcher) {\r\n this.variantType = VariantType.Color;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // @action:\r\n changeVariantPanelDisplay(open: boolean, variantType?: VariantType, width?: number): void {\r\n this.changeVariantType(variantType);\r\n\r\n // don't open panel when don't have proper type setup\r\n if (this.variantType === VariantType.None || this.variantType === VariantType.Kiosk) open = false;\r\n\r\n if (!this.isVariantPanelOpen || !open)\r\n if (open) {\r\n this.scrollLock.lock();\r\n this.mainStore.hideEsAppButton();\r\n\r\n // set panel position:\r\n if (width)\r\n this.panelPosition = this.getPanelPosition(width);\r\n } else {\r\n this.scrollLock.unlock();\r\n this.mainStore.showEsAppButton();\r\n }\r\n\r\n this.isVariantPanelOpen = open;\r\n }\r\n\r\n // @action:\r\n setPanelPosition(width: number): void {\r\n this.panelPosition = this.getPanelPosition(width);\r\n }\r\n\r\n private getPanelPosition(width: number): { top: number; height: string } | null {\r\n const minDeskTopWidth = this.mobileMinWidth;\r\n\r\n const showVariantPanelBelowStickyHeader = width > minDeskTopWidth - 1;\r\n const adjustStickHeaderHeight = this.mainStore.orderModuleStore.stickHeaderHeight + this.mainStore.stickyHeaderTop;\r\n return adjustStickHeaderHeight > 0 && showVariantPanelBelowStickyHeader\r\n ? { top: adjustStickHeaderHeight, height: `calc(100% - ${adjustStickHeaderHeight}px)` }\r\n : null;\r\n }\r\n\r\n changeSelectedColor(updatedSelectedColor: IColor): void {\r\n if (this.variantSelectionCopy.selectedColor?.code !== updatedSelectedColor.code) {\r\n const selectedAvailableColor = this.variantSelectionCopy.availableColors.find(color => {\r\n return color.code === updatedSelectedColor.code;\r\n });\r\n\r\n if (selectedAvailableColor) {\r\n this.variantSelectionCopy.selectedColor = updatedSelectedColor;\r\n const salesArticleVariantKey = selectedAvailableColor.salesArticleVariantKey.split('-');\r\n let availabilityState: string | undefined;\r\n if (this.mainStore.showKioskLayout) {\r\n const tmp = this.mainStore.workWearStoreStore.variantAvailabilityState(updatedSelectedColor.code,\r\n VariantType.Color,\r\n selectedAvailableColor.salesArticleVariantKey,\r\n this.mainStore.workWearStoreStore.variantInfoInKiosk);\r\n availabilityState = AvailabilityStatusEnum[tmp];\r\n }\r\n this.variantChange(\r\n this.isDeskTopView(),\r\n salesArticleVariantKey[0],\r\n salesArticleVariantKey[1],\r\n salesArticleVariantKey[2],\r\n availabilityState,\r\n );\r\n if (this.mainStore.showKioskLayout)\r\n this.mainStore.workWearStoreStore.changeSelectedColor(updatedSelectedColor);\r\n }\r\n }\r\n }\r\n\r\n changeSelectedModel(updatedSelectedModel: IModel): void {\r\n if (this.variantSelectionCopy.selectedModel?.code !== updatedSelectedModel.code) {\r\n this.variantSelectionCopy.selectedModel = updatedSelectedModel;\r\n this.updateModel(this.isDeskTopView());\r\n }\r\n }\r\n\r\n changeSelectedSizeType(updatedSelectedSizeType: string): void {\r\n const sizeType = this.variantSelectionCopy.availableSizeTypes.find(aSizeType => {\r\n return aSizeType.sizeTypeName === updatedSelectedSizeType;\r\n });\r\n if (sizeType) {\r\n this.variantSelectionCopy.selectedSizeType = updatedSelectedSizeType;\r\n const defaultSize = sizeType.sizes.find(size => {\r\n return size.salesArticleVariantKey;\r\n });\r\n if (defaultSize)\r\n this.changeSelectedSize(defaultSize.size);\r\n }\r\n }\r\n\r\n changeSelectedSize(updatedSelectedSize: ISize): void {\r\n if (this.variantSelectionCopy.selectedSize?.code !== updatedSelectedSize.code) {\r\n this.variantSelectionCopy.selectedSize = updatedSelectedSize;\r\n this.updateVariantSizeSelected(this.isDeskTopView());\r\n }\r\n }\r\n\r\n resetVariantState() {\r\n this.variantSelectionCopy = JSON.parse(JSON.stringify(this.mainStore.dataStore.variantSelection));\r\n }\r\n\r\n private updateVariantSizeSelected(shouldUpdateWholePage: boolean) {\r\n const salesArticleVariantKey = this.selectedSize?.salesArticleVariantKey.split('-');\r\n if (salesArticleVariantKey) {\r\n let availabilityState: string | undefined;\r\n if (this.mainStore.showKioskLayout) {\r\n if (this.selectedSize?.size.code) {\r\n const tmp = this.mainStore.workWearStoreStore.variantAvailabilityState(\r\n this.selectedSize?.size.code,\r\n VariantType.Model,\r\n this.selectedSize?.salesArticleVariantKey,\r\n this.mainStore.workWearStoreStore.variantInfoInKiosk);\r\n availabilityState = AvailabilityStatusEnum[tmp];\r\n }\r\n }\r\n this.variantChange(\r\n shouldUpdateWholePage,\r\n salesArticleVariantKey[0],\r\n salesArticleVariantKey[1],\r\n salesArticleVariantKey[2],\r\n availabilityState,\r\n );\r\n }\r\n }\r\n\r\n private updateModel(shouldUpdateWholePage: boolean) {\r\n const selectedAvailableModel = this.variantSelectionCopy.availableModels.find(model => {\r\n return model.code === this.selectedModel?.code;\r\n });\r\n if (selectedAvailableModel) {\r\n const splitVariantKey = selectedAvailableModel.salesArticleVariantKey.split('-');\r\n const salesArticleNo = splitVariantKey[0];\r\n const colorCode = splitVariantKey[1];\r\n const sizeCode = splitVariantKey[2];\r\n let availabilityState: string | undefined;\r\n if (this.mainStore.showKioskLayout) {\r\n const tmp = this.mainStore.workWearStoreStore.variantAvailabilityState(selectedAvailableModel.code,\r\n VariantType.Model,\r\n selectedAvailableModel.salesArticleVariantKey,\r\n this.mainStore.workWearStoreStore.variantInfoInKiosk);\r\n availabilityState = AvailabilityStatusEnum[tmp];\r\n }\r\n this.variantChange(shouldUpdateWholePage, salesArticleNo, colorCode, sizeCode, availabilityState);\r\n }\r\n }\r\n\r\n private isDeskTopView(): boolean {\r\n return window.innerWidth >= this.mobileMinWidth;\r\n }\r\n\r\n public updateAll() {\r\n if (this.variantSelectionCopy.selectedModel &&\r\n this.variantSelectionCopy.selectedModel.code != 0) this.updateModel(true);\r\n else this.updateVariantSizeSelected(true);\r\n }\r\n\r\n public changeInteraction(allowedInteraction: boolean) {\r\n this.allowedInteraction = allowedInteraction;\r\n }\r\n\r\n public updateVariantSelectionCopy(data: IVariantSelection) {\r\n this.variantSelectionCopy = data;\r\n const translateFragmentText = helper.getTranslateUrl();\r\n if (translateFragmentText)\r\n this.updateTranslatedUrl(translateFragmentText);\r\n }\r\n\r\n public variantChange(shouldUpdateWholePage: boolean,\r\n salesArticleNo: string, colorCode: string, sizeCode: string, wwsStatus?: string) {\r\n const fetchedData = this.mainStore.fetchedData;\r\n\r\n if (fetchedData.orderModule.articleInfo.salesArticleNo === salesArticleNo &&\r\n fetchedData.variantSelection.selectedColor?.code.toString() === colorCode &&\r\n fetchedData.variantSelection.selectedSize?.code.toString() === sizeCode) {\r\n return;\r\n }\r\n\r\n const navKey = fetchedData.breadcrumb.category.navigationKey;\r\n const masterarticleNo = fetchedData.orderModule.articleInfo.masterArticleNo;\r\n this.changeInteraction(false);\r\n this.mainStore.fetch.fetch(\r\n salesArticleNo, colorCode, masterarticleNo, sizeCode, navKey, wwsStatus)\r\n .then(response => {\r\n if (response) {\r\n this.mainStore.checkSelectedSizeType(response.variantSelection);\r\n this.updateVariantSelectionCopy(response.variantSelection);\r\n this.variantSelectionCopyForWWS = response.variantSelection;\r\n if (shouldUpdateWholePage) {\r\n this.mainStore.variantChanged(response);\r\n this.mainStore.updateUrl(this.getUrl(salesArticleNo, colorCode));\r\n }\r\n } else this.resetVariantState();\r\n this.changeInteraction(true);\r\n });\r\n }\r\n\r\n // @computed:\r\n get selectedColor(): IColor {\r\n return {\r\n code: this.variantSelectionCopy.selectedColor?.code ?? 0,\r\n name: this.variantSelectionCopy.selectedColor?.name.split('/').join(' / ') ?? '',\r\n };\r\n }\r\n\r\n get selectedModel(): IModel | undefined {\r\n return this.variantSelectionCopy.selectedModel;\r\n }\r\n\r\n get selectedSizeType(): ISizeType | undefined {\r\n const updatedSelectedSizeType = this.variantSelectionCopy.selectedSizeType;\r\n return this.variantSelectionCopy.availableSizeTypes.find(sizeType => {\r\n return sizeType.sizeTypeName === updatedSelectedSizeType;\r\n });\r\n }\r\n\r\n get selectedSize(): ISalesArticleVariantSize | undefined {\r\n let result: ISalesArticleVariantSize | undefined;\r\n const preselectedSizeType = this.selectedSizeType?.sizes.find(size => {\r\n return size.size.code === this.variantSelectionCopy.selectedSize?.code;\r\n });\r\n\r\n if (preselectedSizeType) result = preselectedSizeType;\r\n else result = this.selectedSizeType?.sizes[0];\r\n\r\n if (result?.size.fittingAccuracy)\r\n if (result.size.fittingAccuracy < -0.5) result.size.fittingAccuracy = -0.5;\r\n else if (result.size.fittingAccuracy > 0.5) result.size.fittingAccuracy = 0.5;\r\n\r\n return result;\r\n }\r\n\r\n get sideImagePath(): string {\r\n if (this.selectedModel && this.selectedModel.code != 0) {\r\n const selectedModel: IAvailableModel | undefined = this.variantSelectionCopy.availableModels.find(model => {\r\n return model.code === this.selectedModel?.code;\r\n });\r\n return selectedModel ? selectedModel.defaultArticleImagePath : '';\r\n } else if (this.selectedColor.code != 0) {\r\n const selectedColor: IAvailableColor | undefined = this.variantSelectionCopy.availableColors.find(color => {\r\n return color.code === this.selectedColor.code;\r\n });\r\n return selectedColor ? selectedColor.defaultArticleImagePath : '';\r\n }\r\n return '';\r\n }\r\n\r\n get variantButtonCount(): number {\r\n let variantButtonCount = 0;\r\n\r\n if (this.variantSelectionCopy.showColorSwitcher) {\r\n variantButtonCount++;\r\n }\r\n if (this.variantSelectionCopy.showSizeSwitcher) {\r\n variantButtonCount++;\r\n }\r\n if (this.variantSelectionCopy.showModelSwitcher) {\r\n variantButtonCount++;\r\n }\r\n return variantButtonCount;\r\n }\r\n\r\n get showAvailableStatusInKiosk(): boolean {\r\n return !this.variantSelectionCopy.showModelSwitcher && !this.variantSelectionCopy.showSizeSwitcher;\r\n }\r\n\r\n get showSizeAccuracy(): boolean {\r\n // Fitting Accuracy can be 0 and its a valid data to present\r\n return (this.selectedSize?.size.fittingAccuracy !== null) &&\r\n (this.selectedSize?.size.fittingAccuracy !== undefined);\r\n }\r\n}\r\n","import { observable, makeObservable, action, computed } from 'mobx';\r\nimport { MainStore } from './MainStore';\r\nimport {\r\n AvailabilityStatusEnum,\r\n IAvailableColor,\r\n IAvailableModel,\r\n IColor,\r\n IModel,\r\n ISalesArticleVariantSize,\r\n ISize,\r\n ISizeType,\r\n IVariantSelection,\r\n IVariantsStoreInformation,\r\n IWorkWearStoreAvailabilityData,\r\n VariantType,\r\n IArticleVariant,\r\n} from './types';\r\nimport axios from 'axios';\r\n\r\nclass WorkWearStoreStore {\r\n mainStore: MainStore;\r\n availableColors: IAvailableColor[];\r\n availableModels: IAvailableModel[];\r\n availableSizeTypes: ISizeType[];\r\n apiEndpoint = 'productdetailspage/RetailStoreAvailabilityInformation';\r\n\r\n // @observables:\r\n wwsVariantSelectionCopy: IVariantSelection;\r\n modalOpen: boolean;\r\n openedStore: string;\r\n wwsData: IWorkWearStoreAvailabilityData | null;\r\n retailStoreServiceUpAndRunning: boolean;\r\n retailStoreServiceNotAvailable: boolean;\r\n availableInWws: boolean;\r\n availableStatusInKiosk: boolean | null;\r\n variantInfoInKiosk: IVariantsStoreInformation | undefined;\r\n\r\n constructor(mainStore: MainStore) {\r\n this.mainStore = mainStore;\r\n this.wwsVariantSelectionCopy = mainStore.dataStore.variantSelection;\r\n this.modalOpen = false;\r\n this.openedStore = '';\r\n this.wwsData = null;\r\n const wwsDataFromMainStore = mainStore.fetchedData.workWearStoreAvailability;\r\n if (wwsDataFromMainStore) {\r\n this.availableColors = wwsDataFromMainStore.availableColors.filter(color => color.code !== 0);\r\n this.availableSizeTypes = wwsDataFromMainStore.availableSizeTypes;\r\n this.availableModels = wwsDataFromMainStore.availableModels.filter(model => model.code !== 0);\r\n }\r\n\r\n this.retailStoreServiceUpAndRunning = false;\r\n this.retailStoreServiceNotAvailable = false;\r\n this.availableInWws = false;\r\n this.availableStatusInKiosk = null;\r\n this.variantInfoInKiosk = undefined;\r\n\r\n makeObservable(this, {\r\n changeModalOpen: action,\r\n selectedColor: computed,\r\n noVariants: computed,\r\n changeSelectedColor: action,\r\n selectedSizeType: computed,\r\n changeSelectedSizeType: action,\r\n selectedSize: computed,\r\n changeSelectedSize: action,\r\n changeSelectedModel: action,\r\n changeOpenedStore: action,\r\n changeWWSVariantSelectionCopy: action,\r\n changeWWSData: action,\r\n wwsData: observable,\r\n modalOpen: observable,\r\n openedStore: observable,\r\n wwsVariantSelectionCopy: observable,\r\n retailStoreServiceUpAndRunning: observable,\r\n retailStoreServiceNotAvailable: observable,\r\n availableInWws: observable,\r\n updateRetailStoreServiceAvailabilityStatus: action,\r\n updateAvailableInWws: action,\r\n updateAvailableInKioskStore: action,\r\n availableStatusInKiosk: observable,\r\n variantInfoInKiosk: observable,\r\n availableColors: observable,\r\n availableModels: observable,\r\n availableSizeTypes: observable,\r\n changeWWSVariant: action\r\n });\r\n\r\n // jest do not understands this line:\r\n if (\r\n typeof window !== 'undefined' &&\r\n process.env.NODE_ENV !== 'test' &&\r\n this.mainStore.dataStore.contextData.portal.includes('DE')\r\n )\r\n this.isRetailStoreServiceUpAndRunning();\r\n }\r\n\r\n // @actions:\r\n updateAvailableInKioskStore(wwsData: IWorkWearStoreAvailabilityData): void {\r\n const kioskStoreInfo = wwsData.variantsStoreInformation.find(value => {\r\n return value.retailStoreNo.toString() === this.mainStore.wwsId;\r\n });\r\n\r\n if (typeof kioskStoreInfo !== 'undefined') {\r\n const exist = kioskStoreInfo.variants.find((value) => value.colorCode ===\r\n this.mainStore.variantStore.selectedColor.code && value.salesArticleNo ===\r\n this.mainStore.variantStore.selectedSize?.salesArticleVariantKey.split('-')[0]);\r\n this.availableStatusInKiosk = exist ? exist.availabilityStatus === AvailabilityStatusEnum.InStock : false;\r\n } else {\r\n this.availableStatusInKiosk = false;\r\n }\r\n }\r\n\r\n updateAvailableInWws(value: boolean): void {\r\n this.availableInWws = value ?? false;\r\n }\r\n\r\n updateRetailStoreServiceAvailabilityStatus(\r\n retailStoreServiceUpAndRunning: boolean,\r\n retailStoreServiceNotAvailable: boolean\r\n ): void {\r\n this.retailStoreServiceUpAndRunning = retailStoreServiceUpAndRunning;\r\n this.retailStoreServiceNotAvailable = retailStoreServiceNotAvailable;\r\n }\r\n\r\n changeWWSData(updatedWWSData: IWorkWearStoreAvailabilityData) {\r\n this.wwsData = updatedWWSData;\r\n if (this.mainStore.showKioskLayout) {\r\n this.updateAvailableInKioskStore(updatedWWSData);\r\n this.variantInfoInKiosk = updatedWWSData.variantsStoreInformation.find(\r\n store => store.retailStoreNo.toString() === this.mainStore.wwsId\r\n );\r\n }\r\n }\r\n\r\n changeSelectedColor(updatedSelectedColor: IColor): void {\r\n if (this.wwsVariantSelectionCopy.selectedColor?.code !== updatedSelectedColor.code) {\r\n const callBack = () => {\r\n this.wwsVariantSelectionCopy.selectedColor = updatedSelectedColor;\r\n }\r\n const selectedColor = this.availableColors.find(color => color.code === updatedSelectedColor.code);\r\n if (selectedColor) {\r\n this.changeWWSVariant(selectedColor.salesArticleVariantKey, callBack.bind(this));\r\n }\r\n }\r\n }\r\n\r\n changeWWSVariantSelectionCopy(updatedVariantSelectionCopy: IVariantSelection): void {\r\n this.wwsVariantSelectionCopy = updatedVariantSelectionCopy;\r\n }\r\n\r\n changeSelectedSizeType(updatedSelectedSizeType: string): void {\r\n const sizeType = this.wwsVariantSelectionCopy.availableSizeTypes.find(aSizeType => {\r\n return aSizeType.sizeTypeName === updatedSelectedSizeType;\r\n });\r\n if (sizeType) {\r\n this.wwsVariantSelectionCopy.selectedSizeType = updatedSelectedSizeType;\r\n const defaultSize = sizeType?.sizes.find(size => {\r\n return size.salesArticleVariantKey;\r\n });\r\n if (defaultSize)\r\n this.changeSelectedSize(defaultSize.size);\r\n }\r\n }\r\n\r\n changeSelectedSize(updatedSelectedSize: ISize): void {\r\n if (this.wwsVariantSelectionCopy.selectedSize?.code !== updatedSelectedSize.code) {\r\n this.wwsVariantSelectionCopy.selectedSize = updatedSelectedSize;\r\n }\r\n }\r\n\r\n changeSelectedModel(updatedSelectedModel: IModel): void {\r\n if (this.wwsVariantSelectionCopy.selectedModel?.code !== updatedSelectedModel.code) {\r\n const callBack = () => {\r\n this.wwsVariantSelectionCopy.selectedModel = updatedSelectedModel\r\n };\r\n const selectedModel = this.availableModels.find(model => model.code === updatedSelectedModel.code);\r\n if (selectedModel) {\r\n this.changeWWSVariant(selectedModel.salesArticleVariantKey, callBack.bind(this));\r\n }\r\n }\r\n }\r\n\r\n changeModalOpen(modalOpen: boolean): void {\r\n this.modalOpen = modalOpen;\r\n modalOpen ? this.mainStore.hideEsAppButton() : this.mainStore.showEsAppButton();\r\n }\r\n\r\n changeOpenedStore(openedStore: string): void {\r\n this.openedStore = openedStore;\r\n }\r\n\r\n // @computed:\r\n get selectedColor(): IColor | undefined {\r\n return this.wwsVariantSelectionCopy.selectedColor;\r\n }\r\n\r\n get selectedSizeType(): ISizeType | undefined {\r\n const updatedSelectedSizeType = this.wwsVariantSelectionCopy.selectedSizeType;\r\n return this.wwsVariantSelectionCopy.availableSizeTypes.find(sizeType => {\r\n return sizeType.sizeTypeName === updatedSelectedSizeType;\r\n });\r\n }\r\n\r\n get selectedModel(): IModel | undefined {\r\n return this.wwsVariantSelectionCopy.selectedModel;\r\n }\r\n\r\n get selectedSize(): ISalesArticleVariantSize | undefined {\r\n let result: ISalesArticleVariantSize | undefined;\r\n const preselectedSizeType = this.selectedSizeType?.sizes.find(size => {\r\n return size.size.code === this.wwsVariantSelectionCopy.selectedSize?.code;\r\n });\r\n\r\n if (preselectedSizeType) result = preselectedSizeType;\r\n else result = this.selectedSizeType?.sizes[0];\r\n return result;\r\n }\r\n\r\n get noVariants(): boolean {\r\n return (\r\n (!(this.availableColors instanceof Array) || this.availableColors.length <= 1) &&\r\n (!(this.selectedSizeType?.sizes instanceof Array) || this.selectedSizeType.sizes.length <= 1) &&\r\n (!(this.availableModels instanceof Array) || this.availableModels.length <= 1)\r\n );\r\n }\r\n\r\n variantAvailabilityState(\r\n variantCode: number,\r\n variantType: VariantType,\r\n savKey: string,\r\n variantStoreInformation?: IVariantsStoreInformation\r\n ): AvailabilityStatusEnum {\r\n if (!variantStoreInformation)\r\n return AvailabilityStatusEnum.NotInStock;\r\n\r\n let articleVariant: IArticleVariant | undefined;\r\n const saNo = savKey.split('-')[0];\r\n switch (variantType) {\r\n case VariantType.Color: {\r\n articleVariant = variantStoreInformation?.variants.find(aVariant => {\r\n return aVariant.salesArticleNo === saNo && aVariant.colorCode === variantCode;\r\n });\r\n break;\r\n }\r\n case VariantType.Model: {\r\n articleVariant = variantStoreInformation?.variants.find(aVariant => {\r\n return aVariant.salesArticleNo === saNo && aVariant.modelCode === variantCode;\r\n });\r\n break;\r\n }\r\n case VariantType.Size: {\r\n articleVariant = variantStoreInformation?.variants.find(aVariant => {\r\n return aVariant.sizeCode === variantCode &&\r\n aVariant.colorCode === this.selectedColor?.code &&\r\n aVariant.modelCode === this.selectedModel?.code;\r\n });\r\n break;\r\n }\r\n }\r\n return articleVariant ? articleVariant.availabilityStatus : AvailabilityStatusEnum.NotInStock;\r\n }\r\n\r\n isRetailStoreServiceUpAndRunning(): void {\r\n if (!this.retailStoreServiceUpAndRunning || this.retailStoreServiceNotAvailable) {\r\n const masterArticleNoString = this.mainStore.fetchedData.orderModule.articleInfo.masterArticleNo.toString();\r\n const apiUrl = new URL(this.mainStore.fetchedData.contextData.apiMagicLink + this.apiEndpoint);\r\n apiUrl.searchParams.set('masterArticleNo', masterArticleNoString);\r\n axios\r\n .get<IWorkWearStoreAvailabilityData>(apiUrl.toString())\r\n .then(result => {\r\n // Retails store service answered and now depends everything from response data:\r\n this.updateRetailStoreServiceAvailabilityStatus(true, false);\r\n\r\n // Collect response data: true/false:\r\n this.updateAvailableInWws(result?.data?.availableInAnyStore);\r\n\r\n // Update wwsData:\r\n this.changeWWSData(result?.data);\r\n })\r\n .catch(error => {\r\n this.updateRetailStoreServiceAvailabilityStatus(false, true);\r\n // eslint-disable-next-line no-console\r\n console.log(error);\r\n });\r\n }\r\n }\r\n\r\n changeWWSVariant(savKey: string, callBack?: () => void): void {\r\n const fetchedData = this.mainStore.fetchedData;\r\n const navKey = fetchedData.breadcrumb.category.navigationKey;\r\n const masterarticleNo = fetchedData.orderModule.articleInfo.masterArticleNo;\r\n const salesArticleVariantKey = savKey.split('-');\r\n this.mainStore.fetch.fetch(\r\n salesArticleVariantKey[0],\r\n salesArticleVariantKey[1],\r\n masterarticleNo,\r\n salesArticleVariantKey[2],\r\n navKey).then(response => {\r\n if (response) {\r\n const wwsDataFromMainStore = response.workWearStoreAvailability;\r\n if (wwsDataFromMainStore) {\r\n this.availableColors = wwsDataFromMainStore.availableColors.filter(color => color.code !== 0);\r\n this.availableSizeTypes = wwsDataFromMainStore.availableSizeTypes;\r\n this.availableModels = wwsDataFromMainStore.availableModels.filter(model => model.code !== 0);\r\n this.wwsVariantSelectionCopy = response.variantSelection;\r\n }\r\n if (callBack) callBack();\r\n } // else this.resetVariantState();\r\n });\r\n }\r\n}\r\n\r\nexport default WorkWearStoreStore;\r\n","import { ILocalization } from '../types/index';\r\n\r\nexport interface IResponseData {\r\n contextData: IContextData;\r\n breadcrumb: IBreadcrumbData;\r\n mixedMedia: IMixedMediaData;\r\n orderModule: IOrderModuleData;\r\n variantSelection: IVariantSelection;\r\n bookmark: IBookmarkArticleData;\r\n workWearStoreAvailability: IWorkWearStoreAvailability;\r\n glovesRecommendation: IGlovesRecommendation[];\r\n shutterModule: IShutterModule;\r\n bannerModule: IBannerModule;\r\n purchaseAdvice: IPurchaseAdvice;\r\n allRichTexts: IRichTextItemsInternal[];\r\n state: IDetailsPageReadModelState;\r\n}\r\n\r\nexport interface IDetailsPageReadModelState {\r\n name: string;\r\n}\r\n\r\nexport interface IRichTextItemsInternal {\r\n id: string;\r\n items: IRichTextItemInternal[];\r\n}\r\n\r\nexport interface IRichTextItemInternal {\r\n nodeType: NodeType;\r\n children: IRichTextItemInternal[];\r\n markups: string[];\r\n textValue: string;\r\n indent: number;\r\n link: ILinkInfo;\r\n}\r\n\r\nexport interface ILinkInfo {\r\n href: string;\r\n openInNewTab: boolean;\r\n}\r\n\r\nexport enum NodeType\r\n{\r\n Paragraph,\r\n Text,\r\n LineBreak,\r\n List,\r\n ListItem,\r\n BlankLine\r\n}\r\n\r\nexport interface IVariantChangedEventData {\r\n masterArticleNo: number;\r\n colorCode: number;\r\n}\r\n\r\nexport interface IBreadcrumbData {\r\n category: ICategory;\r\n}\r\n\r\nexport interface ICategory {\r\n folderId: string;\r\n headerImageKey: string;\r\n name: string;\r\n navigationKey: string;\r\n navigationKeyPath: string;\r\n path: string;\r\n rgbColorCode: string;\r\n seoSlug: string;\r\n webStyle: string;\r\n}\r\n\r\nexport interface IDeliveryInformation {\r\n maxValue: number;\r\n minValue: number;\r\n periodType: number;\r\n calendarWeek: number;\r\n}\r\n\r\nexport interface IMixedMediaData {\r\n masterArticleNo: number;\r\n colorCode: number;\r\n isNew: boolean;\r\n altTagForImages: string;\r\n image: IImage;\r\n mainActionImage: IImage;\r\n additionalInfoImages: IImage[];\r\n has3DView: boolean;\r\n secondaryImage: IImage;\r\n detailedImage: IImage;\r\n shoeSoleImage: IImage;\r\n salesArticleType: SalesArticleType;\r\n showMainImageInFirstPlaceByEsClass: boolean;\r\n}\r\n\r\nexport interface IImage {\r\n fullPath: string;\r\n path: string;\r\n srcSet: ISrcSet;\r\n}\r\n\r\nexport interface ISrcSet {\r\n urls: string;\r\n sizes: string;\r\n}\r\n\r\nexport interface IOrderModuleData {\r\n articleInfo: IArticleInfo;\r\n articlePrice: IArticlePrice;\r\n availabilityState?: number;\r\n deliveryInformation: IDeliveryInformation;\r\n maxQuantityPerOrder: number;\r\n shareButtonUrl: string;\r\n countryDependentContents: ICountryDependentContentsModel;\r\n}\r\n\r\nexport interface ICountryDependentContentsModel {\r\n defaultCountryDependentContentsText: string;\r\n countryDependentContentsAttributeValue: string;\r\n}\r\n\r\nexport interface IArticleInfo {\r\n masterArticleNo: number;\r\n packagingInformation: IPackagingInformation;\r\n salesArticleNo: string;\r\n salesArticleVariantKey: string;\r\n title: string;\r\n isRemainingStock: boolean;\r\n brand: string;\r\n}\r\n\r\nexport interface IPackagingInformation {\r\n packageSize: number;\r\n quantityUnit: IQuantityUnit;\r\n subQuantityUnit?: IQuantityUnit;\r\n}\r\n\r\nexport interface IQuantityUnit {\r\n isoCode: string;\r\n plural: string;\r\n quantityUnitCode: number;\r\n singular: string;\r\n}\r\n\r\nexport interface IArticlePrice {\r\n basicPrice: IPrice;\r\n priceDeduction?: number;\r\n hasRecommendedRetailPrice: boolean;\r\n minimalOriginalPrice: IPrice;\r\n currency: ICurrency;\r\n priceBuildGroup: number;\r\n scalePrices?: IScalePrice[];\r\n hideScalePrices: boolean;\r\n flagAdvertisedAsCostFreeInSet: boolean;\r\n}\r\n\r\nexport interface IPrice {\r\n grossValue: number;\r\n netValue: number;\r\n basePrice?: IBasePrice;\r\n}\r\n\r\nexport interface IBasePrice extends IPrice {\r\n quantity: number;\r\n unit: string;\r\n}\r\n\r\nexport interface ICurrency {\r\n isoCode: string;\r\n symbol: string;\r\n symbolShortForm: string;\r\n prependCurrencySymbol: boolean;\r\n}\r\n\r\nexport interface IScalePrice {\r\n unit: string;\r\n price: IPrice;\r\n quantity: number;\r\n}\r\n\r\nexport interface IVariantSelection {\r\n availableColors: IAvailableColor[];\r\n availableModels: IAvailableModel[];\r\n availableSizeTypes: ISizeType[];\r\n translationUrls: ITranslationUrls[];\r\n isDefaultSize: boolean;\r\n selectedColor?: IColor;\r\n selectedModel?: IModel;\r\n selectedSize?: ISize;\r\n selectedSizeType?: string;\r\n showSizeSwitcher: boolean;\r\n showColorSwitcher: boolean;\r\n showModelSwitcher: boolean;\r\n isScrew: boolean;\r\n showSizeTypesAsTabs: boolean;\r\n sizeTableType: string;\r\n}\r\n\r\nexport interface IColor {\r\n code: number;\r\n name: string;\r\n}\r\n\r\nexport interface IAvailableColor extends IColor {\r\n iconPath: string;\r\n defaultArticleImagePath: string;\r\n salesArticleVariantKey: string;\r\n}\r\n\r\nexport interface IModel {\r\n code: number;\r\n label: string;\r\n}\r\n\r\nexport interface ITranslationUrls {\r\n culture: string;\r\n url: string;\r\n}\r\n\r\nexport interface IAvailableModel extends IModel {\r\n salesArticleVariantKey: string;\r\n defaultArticleImagePath: string;\r\n}\r\n\r\nexport interface ISizeType {\r\n sizeTypeCode: number;\r\n sizeTypeName: string;\r\n sizes: ISalesArticleVariantSize[];\r\n}\r\n\r\nexport interface ISalesArticleVariantSize {\r\n salesArticleVariantKey: string;\r\n size: ISize;\r\n}\r\n\r\nexport interface ISize {\r\n code: number;\r\n fittingAccuracy?: number;\r\n label: string;\r\n name: string;\r\n}\r\n\r\nexport interface IBookmarkArticleData {\r\n productName: string;\r\n colorName: string;\r\n sizeName: string;\r\n modelName: string;\r\n imageUrl: string;\r\n savKey: string;\r\n categoryName: string;\r\n}\r\n\r\nexport interface IWorkWearStoreAvailability {\r\n availableColors: IAvailableColor[];\r\n availableSizeTypes: ISizeType[];\r\n availableModels: IAvailableModel[];\r\n}\r\n\r\nexport interface IWorkWearStoreAvailabilityData {\r\n masterArticleNo: number;\r\n availableInAnyStore: boolean;\r\n variantsStoreInformation: IVariantsStoreInformation[];\r\n}\r\n\r\nexport interface IVariantsStoreInformation {\r\n retailStoreName: string;\r\n retailStoreNo: number;\r\n retailStoreId: string;\r\n displayOrder: number;\r\n variants: IArticleVariant[];\r\n}\r\n\r\nexport interface IWorkWearStoreColor {\r\n salesArticleVariantKey: string;\r\n}\r\n\r\nexport interface IWorkWearStoreSizeType {\r\n sizeTypeCode: number;\r\n sizeTypeName: string;\r\n sizes: IWorkWearStoreSize[];\r\n}\r\n\r\nexport interface IWorkWearStoreSize {\r\n code: number;\r\n label: string;\r\n name: string;\r\n}\r\n\r\nexport interface ArticleDataInjectionRequest {\r\n requester: string;\r\n}\r\n\r\nexport interface LogoCreatorSuccessResponse {\r\n smakeId: number;\r\n articles: Array<LogoCreatorSuccessArticle>;\r\n masterArticleNumber: number;\r\n reporting: IPiwikReporting;\r\n itemOrigin: string;\r\n}\r\n\r\nexport interface LogoCreatorSuccessArticle {\r\n quantity: number;\r\n savKey: string;\r\n}\r\n\r\nexport interface LogoCreatorOpenFromBasketModalPayload {\r\n smakeId: number;\r\n}\r\n\r\nexport interface IBookmarkArticleDataResponse extends IBookmarkArticleData, ArticleDataInjectionRequest { }\r\n\r\nexport interface IShutterModule {\r\n glovesRecommendation: IGlovesRecommendation[];\r\n hasGlovesRecommendation: boolean;\r\n productInfo: IProductInfo;\r\n additionalDescriptions: IAdditionalDescription[];\r\n layoutedContentGridKeys: string[];\r\n productFeaturesGroups: IProductFeaturesGroup[];\r\n}\r\n\r\nexport interface IAdditionalDescription {\r\n rows: IAdditionalDescriptionRow[];\r\n l10n: ILocalization;\r\n has3DView: boolean;\r\n threeDContainerId: string;\r\n fallBackImageUrl: string;\r\n debuggerIsOn: boolean;\r\n documentKey: string;\r\n isRelease: boolean;\r\n}\r\n\r\nexport interface IAdditionalDescriptionRow {\r\n cells: IAdditionalDescriptionCell[];\r\n addRowSeparator: boolean;\r\n types: string[];\r\n theme: string;\r\n}\r\n\r\nexport interface IAdditionalDescriptionCell {\r\n contents: IAdditionalDescriptionElement[];\r\n flexCellGrowth: number;\r\n types: string[];\r\n}\r\n\r\nexport interface IAdditionalDescriptionElement {\r\n types: string[];\r\n contentType: string;\r\n}\r\n\r\nexport enum AspectRatio {\r\n Portrait,\r\n Landscape,\r\n}\r\n\r\nexport enum AdditionalDescriptionImageScale {\r\n FullWidth,\r\n Half,\r\n TwoThirds,\r\n Third,\r\n}\r\n\r\nexport interface IAdditionalDescriptionLink extends IAdditionalDescriptionElement {\r\n icon: string;\r\n linkText: string;\r\n target: string;\r\n openInNewWindow: boolean;\r\n isDownloadable?: boolean;\r\n l10n: ILocalization;\r\n}\r\n\r\nexport interface IAdditionalDescriptionShowcase extends IAdditionalDescriptionElement {\r\n masterArticleNo: number;\r\n colorCode: number;\r\n index: number;\r\n prefix?: string;\r\n resumeInBackground: boolean;\r\n threeDContainerId: string;\r\n fallBackImageUrl: string;\r\n}\r\n\r\nexport interface IAdditionalDescriptionText extends IAdditionalDescriptionElement {\r\n value: string;\r\n}\r\nexport interface IAdditionalDescriptionTitle extends IAdditionalDescriptionElement {\r\n text: string;\r\n}\r\nexport interface IAdditionalDescriptionUnprocessedTitle extends IAdditionalDescriptionTitle {\r\n inASeparateRow: boolean;\r\n}\r\n\r\nexport interface IAdditionalDescriptionVideo extends IAdditionalDescriptionElement {\r\n mp4: string;\r\n ogv: string;\r\n webM: string;\r\n previewImage: IAdditionalDescriptionImage;\r\n}\r\n\r\nexport interface IAdditionalDescriptionPdf extends IAdditionalDescriptionElement {\r\n masterArticleNo: number;\r\n colorCode: number;\r\n index: number;\r\n prefix: string;\r\n resumeInBackground: boolean;\r\n aspectRatioHorizontal?: number;\r\n aspectRatioVertical?: number;\r\n}\r\n\r\nexport interface IAdditionalDescriptionImage extends IAdditionalDescriptionElement {\r\n url: string;\r\n altText: string;\r\n title: string;\r\n scale: string;\r\n aspectRatio: AspectRatio;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport interface IArticleVariant {\r\n salesArticleNo: string;\r\n colorCode: number;\r\n modelCode: number;\r\n sizeCode: number;\r\n availabilityStatus: AvailabilityStatusEnum;\r\n}\r\n\r\nexport enum AvailabilityStatusEnum {\r\n InStock,\r\n CurrentlyOutOfStock,\r\n NotInStock,\r\n}\r\n\r\nexport interface IBannerModule {\r\n showOnlineCatalog: boolean;\r\n showLogoService: boolean;\r\n showGloves: boolean;\r\n showShoes: boolean;\r\n isOnRightPage: boolean;\r\n logoServiceRedirectUrl: string;\r\n glovesRedirectUrl: string;\r\n shoesRedirectUrl: string;\r\n onlineCatalogIncVat: IOnlineCatalogFlap;\r\n onlineCatalogExVat: IOnlineCatalogFlap;\r\n}\r\n\r\nexport interface IOnlineCatalogPage {\r\n previewImageUrl: string;\r\n redirectUrl: string;\r\n}\r\n\r\nexport interface IOnlineCatalogFlap {\r\n leftPage: IOnlineCatalogPage;\r\n rightPage: IOnlineCatalogPage;\r\n}\r\n\r\nexport interface IProductInfo {\r\n image: IImage;\r\n claim: IClaim;\r\n emotionalText: IEmotionalText;\r\n description: IProductDescription; // Description tab\r\n details: ISpecificationEntry[]; // Details tab\r\n extras: IProductFeatureInExtras[]; // Extras tab\r\n disableProductInfoShutter: boolean;\r\n preferAdditionalDescriptionShutter: boolean;\r\n IsArticleSet: boolean; // different description tab\r\n}\r\n\r\nexport interface IDisclaimer {\r\n name: string;\r\n structuredText: IRichTextReference;\r\n rtfText: string | null;\r\n dataMode: number;\r\n globalRank: number;\r\n}\r\n\r\nexport interface IProductFeaturesGroup {\r\n groupName: string;\r\n features: IFeature[];\r\n}\r\n\r\nexport interface IFeature {\r\n showCase: string;\r\n logo: ILogo;\r\n emotionalDescriptionTitle: string;\r\n emotionalDescriptionText: IRichTextReference;\r\n}\r\n\r\nexport interface IRichTextItems {\r\n id: string;\r\n items: ITextItem[];\r\n}\r\nexport interface IRichTextReference {\r\n id: string;\r\n}\r\n\r\nexport interface ILogo {\r\n imageUrl: string;\r\n altText: string;\r\n}\r\n\r\nexport interface ITextItem {\r\n type: string;\r\n children: ITextItemChild[];\r\n}\r\n\r\nexport interface ITextItemChild {\r\n text: string;\r\n markups: string[];\r\n children: IFormattedText[];\r\n}\r\n\r\nexport interface IFormattedText {\r\n text: string;\r\n markups: string[];\r\n}\r\n\r\nexport interface IEmotionalText {\r\n title: string;\r\n text: IRichTextReference;\r\n}\r\n\r\nexport interface IClaim {\r\n title: string;\r\n text: IRichTextReference;\r\n}\r\n\r\nexport interface IGlovesRecommendation {\r\n rate: number;\r\n title: string;\r\n}\r\n\r\nexport interface IProductDescription {\r\n orderedDisclaimers: IDisclaimer[];\r\n functionLayers: IFunctionalLayer[];\r\n links: IProductDescriptionLinks;\r\n bullets: IRichTextReference | null;\r\n commonRtfTextFromWsd: string;\r\n dataMode: number;\r\n careInstructions: ICareLabel[];\r\n materials: IMaterial[];\r\n shoeWeights: IShoeWeight[];\r\n isSmakeDesignerAvailable: boolean;\r\n isKidArticle: boolean;\r\n articleSetItemDescriptions: IArticleSetItem[];\r\n}\r\n\r\nexport interface IArticleSetItem { \r\n colorText: string;\r\n modelText: string;\r\n sizeText: string;\r\n isSellableSeparately: boolean;\r\n linkToDetailsPage: string;\r\n quantity: number;\r\n flagAdvertisedAsCostFreeInSet: boolean;\r\n masterArticleNo: number;\r\n salesArticleVariantKey: string;\r\n salesDesignation: string;\r\n}\r\n\r\nexport interface ICareLabel {\r\n description: string;\r\n icon: string;\r\n}\r\n\r\nexport interface IShoeWeight {\r\n sizeLabelCode: number;\r\n weight: number;\r\n}\r\n\r\nexport interface IMaterial {\r\n layers: IMaterialLayer[];\r\n additionalInformation: string[];\r\n}\r\n\r\nexport interface IMaterialLayer {\r\n name: string;\r\n grammage: number;\r\n fibers: IMaterialFiber[];\r\n}\r\n\r\nexport interface IMaterialFiber {\r\n name: string;\r\n percentage: number;\r\n}\r\n\r\nexport interface ISpecificationEntry {\r\n name: string;\r\n orderedValues: string[];\r\n}\r\n\r\nexport interface IProductFeatureInExtras {\r\n name: string;\r\n title: string;\r\n structuredText: IRichTextReference | null;\r\n rtfText: string | null;\r\n image: ILogo;\r\n dataMode: number;\r\n}\r\n\r\nexport interface IFunctionalLayer {\r\n key: string;\r\n redirectUrl: string;\r\n imageName: string;\r\n buttonText: string;\r\n}\r\n\r\nexport interface IProductDescriptionLinks {\r\n dataSheets: IDocumentLink[];\r\n logoServiceInfoUrl: string | undefined;\r\n}\r\n\r\nexport interface IDocumentLink {\r\n title: string;\r\n url: string;\r\n}\r\n\r\nexport interface IPurchaseAdvice {\r\n showJacketFinder: boolean;\r\n showTrouserFinder: boolean;\r\n showShoeFinder: boolean;\r\n jacketFinderRedirectUrl: string;\r\n trouserFinderRedirectUrl: string;\r\n shoeFinderRedirectUrl: string;\r\n}\r\n\r\nexport interface IContextData {\r\n culture: string;\r\n portal: string;\r\n portalMandantToken: string;\r\n apiMagicLink: string;\r\n originalUrl: string;\r\n baseUrlForAssets: string;\r\n actualRequestCookies: { key: string; value: string }[];\r\n customerData: ICustomerData;\r\n isMobile: boolean;\r\n isEsApp: boolean;\r\n priceMode?: 'Gross' | 'Net';\r\n wwsId: string;\r\n isRelease: boolean;\r\n featureToggles: IFeatureToggles;\r\n numberFormat: INumberFormat;\r\n originalRootPath: string;\r\n}\r\n\r\nexport interface IFeatureToggles {\r\n redesignOrderModal: boolean;\r\n enableLogoCreator: boolean;\r\n enableRedesignCategoryPageAndSearchPage: boolean;\r\n enableFullBasketLayout: boolean;\r\n piwikProEnableEcommerceTracking: boolean;\r\n enableArticleSetInformationInPDP: boolean;\r\n enablePersonalizationBannerOnDetailsPage: boolean;\r\n enableMetaPixel: boolean;\r\n}\r\n\r\nexport interface INumberFormat {\r\n numberDecimalSeparator: string;\r\n numberGroupSeparator: string;\r\n}\r\n\r\nexport enum PiwikEvent {\r\n EcommerceProductDetailView = 'ecommerceProductDetailView',\r\n}\r\n\r\nexport enum MetaEvent {\r\n ViewContent = 'ViewContent',\r\n AddToCart = 'AddToCart',\r\n}\r\n\r\n\r\nexport interface ICustomerData {\r\n ssoId: string;\r\n customerNumbers: [number];\r\n hasCustomerPrices?: boolean;\r\n priceLevels: [];\r\n flagVatFree?: boolean;\r\n postageFree?: string;\r\n}\r\n\r\nexport enum ImageTypesEnum {\r\n MainImage,\r\n MainActionImage,\r\n AdditionalImages,\r\n SecondaryImage,\r\n DetailedImage,\r\n ShoeSoleImage,\r\n}\r\n\r\nexport enum LayoutTypesEnum {\r\n Single_Element,\r\n Two_Elements,\r\n Three_Elements,\r\n}\r\n\r\nexport enum SalesArticleType {\r\n NormalArticle,\r\n VoucherArticle,\r\n ArticleSet,\r\n}\r\n\r\nexport interface ITranslationFragment {\r\n translations: ITranslationFragmentObject[];\r\n}\r\n\r\nexport interface ITranslationFragmentObject {\r\n code: string,\r\n obfuscation: string,\r\n url: string,\r\n}\r\n\r\n\r\nexport enum VariantType {\r\n Color,\r\n Size,\r\n Special,\r\n Model,\r\n None,\r\n Kiosk, // special type for kiosk only. If we have color, show color panel. Otherwise, show size panel\r\n}\r\n\r\nexport interface IBasketModalForLogoCreatorSizeVariant {\r\n savKey: string;\r\n quantity: number;\r\n netPrice: number;\r\n grossPrice: number;\r\n label: string;\r\n}\r\n\r\nexport interface IBasketModalForLogoCreator {\r\n smakeId: number;\r\n title: string;\r\n color?: string;\r\n colorName?: string;\r\n sizesWithPrice?: Array<IBasketModalForLogoCreatorSizeVariant>;\r\n imageUrl: string;\r\n exampleSalesVariantKey: string;\r\n model?: string;\r\n modelLabel?: string;\r\n masterArticleNumber: number;\r\n isStraussBrand: boolean;\r\n nativeNavKeyPath?: string;\r\n reporting: IPiwikReporting;\r\n itemOrigin: string;\r\n categoryName?: string;\r\n}\r\n\r\nexport interface IPiwikReporting {\r\n customizations: string;\r\n price: {\r\n value: number;\r\n currency: string;\r\n }\r\n}\r\n","import 'react-responsive-carousel/lib/styles/carousel.min.css';\r\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.carousel .control-arrow,.carousel.carousel-slider .control-arrow{-webkit-transition:all .25s ease-in;-moz-transition:all .25s ease-in;-ms-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in;opacity:.4;filter:alpha(opacity=40);position:absolute;z-index:2;top:20px;background:none;border:0;font-size:32px;cursor:pointer}.carousel .control-arrow:focus,.carousel .control-arrow:hover{opacity:1;filter:alpha(opacity=100)}.carousel .control-arrow:before,.carousel.carousel-slider .control-arrow:before{margin:0 5px;display:inline-block;border-top:8px solid transparent;border-bottom:8px solid transparent;content:''}.carousel .control-disabled.control-arrow{opacity:0;filter:alpha(opacity=0);cursor:inherit;display:none}.carousel .control-prev.control-arrow{left:0}.carousel .control-prev.control-arrow:before{border-right:8px solid #fff}.carousel .control-next.control-arrow{right:0}.carousel .control-next.control-arrow:before{border-left:8px solid #fff}.carousel-root{outline:none}.carousel{position:relative;width:100%}.carousel *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.carousel img{width:100%;display:inline-block;pointer-events:none}.carousel .carousel{position:relative}.carousel .control-arrow{outline:0;border:0;background:none;top:50%;margin-top:-13px;font-size:18px}.carousel .thumbs-wrapper{margin:20px;overflow:hidden}.carousel .thumbs{-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-ms-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);position:relative;list-style:none;white-space:nowrap}.carousel .thumb{-webkit-transition:border .15s ease-in;-moz-transition:border .15s ease-in;-ms-transition:border .15s ease-in;-o-transition:border .15s ease-in;transition:border .15s ease-in;display:inline-block;margin-right:6px;white-space:nowrap;overflow:hidden;border:3px solid #fff;padding:2px}.carousel .thumb:focus{border:3px solid #ccc;outline:none}.carousel .thumb.selected,.carousel .thumb:hover{border:3px solid #333}.carousel .thumb img{vertical-align:top}.carousel.carousel-slider{position:relative;margin:0;overflow:hidden}.carousel.carousel-slider .control-arrow{top:0;color:#fff;font-size:26px;bottom:0;margin-top:0;padding:5px}.carousel.carousel-slider .control-arrow:hover{background:rgba(0,0,0,0.2)}.carousel .slider-wrapper{overflow:hidden;margin:auto;width:100%;-webkit-transition:height .15s ease-in;-moz-transition:height .15s ease-in;-ms-transition:height .15s ease-in;-o-transition:height .15s ease-in;transition:height .15s ease-in}.carousel .slider-wrapper.axis-horizontal .slider{-ms-box-orient:horizontal;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:-webkit-flex;display:flex}.carousel .slider-wrapper.axis-horizontal .slider .slide{flex-direction:column;flex-flow:column}.carousel .slider-wrapper.axis-vertical{-ms-box-orient:horizontal;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:-webkit-flex;display:flex}.carousel .slider-wrapper.axis-vertical .slider{-webkit-flex-direction:column;flex-direction:column}.carousel .slider{margin:0;padding:0;position:relative;list-style:none;width:100%}.carousel .slider.animated{-webkit-transition:all .35s ease-in-out;-moz-transition:all .35s ease-in-out;-ms-transition:all .35s ease-in-out;-o-transition:all .35s ease-in-out;transition:all .35s ease-in-out}.carousel .slide{min-width:100%;margin:0;position:relative;text-align:center}.carousel .slide img{width:100%;vertical-align:top;border:0}.carousel .slide iframe{display:inline-block;width:calc(100% - 80px);margin:0 40px 40px;border:0}.carousel .slide .legend{-webkit-transition:all .5s ease-in-out;-moz-transition:all .5s ease-in-out;-ms-transition:all .5s ease-in-out;-o-transition:all .5s ease-in-out;transition:all .5s ease-in-out;position:absolute;bottom:40px;left:50%;margin-left:-45%;width:90%;border-radius:10px;background:#000;color:#fff;padding:10px;font-size:12px;text-align:center;opacity:0.25;-webkit-transition:opacity .35s ease-in-out;-moz-transition:opacity .35s ease-in-out;-ms-transition:opacity .35s ease-in-out;-o-transition:opacity .35s ease-in-out;transition:opacity .35s ease-in-out}.carousel .control-dots{position:absolute;bottom:0;margin:10px 0;padding:0;text-align:center;width:100%;z-index:1}@media (min-width: 960px){.carousel .control-dots{bottom:0}}.carousel .control-dots .dot{-webkit-transition:opacity .25s ease-in;-moz-transition:opacity .25s ease-in;-ms-transition:opacity .25s ease-in;-o-transition:opacity .25s ease-in;transition:opacity .25s ease-in;opacity:.3;filter:alpha(opacity=30);box-shadow:1px 1px 2px rgba(0,0,0,0.9);background:#fff;border-radius:50%;width:8px;height:8px;cursor:pointer;display:inline-block;margin:0 8px}.carousel .control-dots .dot.selected,.carousel .control-dots .dot:hover{opacity:1;filter:alpha(opacity=100)}.carousel .carousel-status{position:absolute;top:0;right:0;padding:5px;font-size:10px;text-shadow:1px 1px 1px rgba(0,0,0,0.9);color:#fff}.carousel:hover .slide .legend{opacity:1}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/react-responsive-carousel/lib/styles/carousel.min.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".carousel .control-arrow,.carousel.carousel-slider .control-arrow{-webkit-transition:all .25s ease-in;-moz-transition:all .25s ease-in;-ms-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in;opacity:.4;filter:alpha(opacity=40);position:absolute;z-index:2;top:20px;background:none;border:0;font-size:32px;cursor:pointer}.carousel .control-arrow:focus,.carousel .control-arrow:hover{opacity:1;filter:alpha(opacity=100)}.carousel .control-arrow:before,.carousel.carousel-slider .control-arrow:before{margin:0 5px;display:inline-block;border-top:8px solid transparent;border-bottom:8px solid transparent;content:''}.carousel .control-disabled.control-arrow{opacity:0;filter:alpha(opacity=0);cursor:inherit;display:none}.carousel .control-prev.control-arrow{left:0}.carousel .control-prev.control-arrow:before{border-right:8px solid #fff}.carousel .control-next.control-arrow{right:0}.carousel .control-next.control-arrow:before{border-left:8px solid #fff}.carousel-root{outline:none}.carousel{position:relative;width:100%}.carousel *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.carousel img{width:100%;display:inline-block;pointer-events:none}.carousel .carousel{position:relative}.carousel .control-arrow{outline:0;border:0;background:none;top:50%;margin-top:-13px;font-size:18px}.carousel .thumbs-wrapper{margin:20px;overflow:hidden}.carousel .thumbs{-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-ms-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);position:relative;list-style:none;white-space:nowrap}.carousel .thumb{-webkit-transition:border .15s ease-in;-moz-transition:border .15s ease-in;-ms-transition:border .15s ease-in;-o-transition:border .15s ease-in;transition:border .15s ease-in;display:inline-block;margin-right:6px;white-space:nowrap;overflow:hidden;border:3px solid #fff;padding:2px}.carousel .thumb:focus{border:3px solid #ccc;outline:none}.carousel .thumb.selected,.carousel .thumb:hover{border:3px solid #333}.carousel .thumb img{vertical-align:top}.carousel.carousel-slider{position:relative;margin:0;overflow:hidden}.carousel.carousel-slider .control-arrow{top:0;color:#fff;font-size:26px;bottom:0;margin-top:0;padding:5px}.carousel.carousel-slider .control-arrow:hover{background:rgba(0,0,0,0.2)}.carousel .slider-wrapper{overflow:hidden;margin:auto;width:100%;-webkit-transition:height .15s ease-in;-moz-transition:height .15s ease-in;-ms-transition:height .15s ease-in;-o-transition:height .15s ease-in;transition:height .15s ease-in}.carousel .slider-wrapper.axis-horizontal .slider{-ms-box-orient:horizontal;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:-webkit-flex;display:flex}.carousel .slider-wrapper.axis-horizontal .slider .slide{flex-direction:column;flex-flow:column}.carousel .slider-wrapper.axis-vertical{-ms-box-orient:horizontal;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:-webkit-flex;display:flex}.carousel .slider-wrapper.axis-vertical .slider{-webkit-flex-direction:column;flex-direction:column}.carousel .slider{margin:0;padding:0;position:relative;list-style:none;width:100%}.carousel .slider.animated{-webkit-transition:all .35s ease-in-out;-moz-transition:all .35s ease-in-out;-ms-transition:all .35s ease-in-out;-o-transition:all .35s ease-in-out;transition:all .35s ease-in-out}.carousel .slide{min-width:100%;margin:0;position:relative;text-align:center}.carousel .slide img{width:100%;vertical-align:top;border:0}.carousel .slide iframe{display:inline-block;width:calc(100% - 80px);margin:0 40px 40px;border:0}.carousel .slide .legend{-webkit-transition:all .5s ease-in-out;-moz-transition:all .5s ease-in-out;-ms-transition:all .5s ease-in-out;-o-transition:all .5s ease-in-out;transition:all .5s ease-in-out;position:absolute;bottom:40px;left:50%;margin-left:-45%;width:90%;border-radius:10px;background:#000;color:#fff;padding:10px;font-size:12px;text-align:center;opacity:0.25;-webkit-transition:opacity .35s ease-in-out;-moz-transition:opacity .35s ease-in-out;-ms-transition:opacity .35s ease-in-out;-o-transition:opacity .35s ease-in-out;transition:opacity .35s ease-in-out}.carousel .control-dots{position:absolute;bottom:0;margin:10px 0;padding:0;text-align:center;width:100%;z-index:1}@media (min-width: 960px){.carousel .control-dots{bottom:0}}.carousel .control-dots .dot{-webkit-transition:opacity .25s ease-in;-moz-transition:opacity .25s ease-in;-ms-transition:opacity .25s ease-in;-o-transition:opacity .25s ease-in;transition:opacity .25s ease-in;opacity:.3;filter:alpha(opacity=30);box-shadow:1px 1px 2px rgba(0,0,0,0.9);background:#fff;border-radius:50%;width:8px;height:8px;cursor:pointer;display:inline-block;margin:0 8px}.carousel .control-dots .dot.selected,.carousel .control-dots .dot:hover{opacity:1;filter:alpha(opacity=100)}.carousel .carousel-status{position:absolute;top:0;right:0;padding:5px;font-size:10px;text-shadow:1px 1px 1px rgba(0,0,0,0.9);color:#fff}.carousel:hover .slide .legend{opacity:1}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\n(function() {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n var ce = new window.CustomEvent('test', { cancelable: true });\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n } catch (e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {};\n params.bubbles = !!params.bubbles;\n params.cancelable = !!params.cancelable;\n\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n origPrevent = evt.preventDefault;\n evt.preventDefault = function() {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n } catch (e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n }\n})();\n","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"pdp_carousel\":\"pdp_carousel\",\"carousel-root\":\"carousel-root\",\"carousel-slider\":\"carousel-slider\",\"slider-wrapper\":\"slider-wrapper\",\"slider\":\"slider\",\"carousel\":\"carousel\",\"control_arrow\":\"control_arrow\",\"a_previous\":\"a_previous\",\"a_next\":\"a_next\",\"slide\":\"slide\",\"control-dots\":\"control-dots\",\"dot\":\"dot\",\"selected\":\"selected\",\"current_slide_status\":\"current_slide_status\",\"current_slide\":\"current_slide\",\"status_divider\":\"status_divider\",\"total_slides\":\"total_slides\",\"desktop_carousel\":\"desktop_carousel\",\"mobile_carousel\":\"mobile_carousel\",\"slide_image\":\"slide_image\",\"cover\":\"cover\",\"contain\":\"contain\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"pdp-aas_content\":\"pdp-aas_content\",\"pdp-fragment_place_holder\":\"pdp-fragment_place_holder\",\"aas-full\":\"aas-full\",\"aas-content\":\"aas-content\",\"aas-grid\":\"aas-grid\",\"sav-buttons\":\"sav-buttons\",\"aas-button\":\"aas-button\",\"basket\":\"basket\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"swiper-container\":\"swiper-container\",\"swiper\":\"swiper\",\"swiper-wrapper\":\"swiper-wrapper\",\"swiper-slide\":\"swiper-slide\",\"one_row\":\"one_row\",\"swiper-container-vertical\":\"swiper-container-vertical\",\"wws\":\"wws\",\"right_arrow\":\"right_arrow\",\"left_arrow\":\"left_arrow\",\"hidden\":\"hidden\",\"vertical\":\"vertical\",\"swiper-button-disabled\":\"swiper-button-disabled\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"has-focus-keyboard\":\"has-focus-keyboard\",\"pdp-basket_button\":\"pdp-basket_button\",\"has-focus\":\"has-focus\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"additional_description_column\":\"pdp-additional_description_column\",\"additional_description_row\":\"pdp-additional_description_row\",\"additional_description_cell\":\"pdp-additional_description_cell\",\"overlay_two_thirds\":\"pdp-overlay_two_thirds\",\"additional_description_content\":\"pdp-additional_description_content\",\"vertical_separator\":\"pdp-vertical_separator\",\"black_edition\":\"pdp-black_edition\",\"richtext\":\"pdp-richtext\",\"title\":\"pdp-title\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"button_link\":\"pdp-button_link\",\"button_text\":\"pdp-button_text\",\"text\":\"pdp-text\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"empty\":\"pdp-empty\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"image\":\"pdp-image\",\"scaling\":\"pdp-scaling\",\"no_margin_both\":\"pdp-no_margin_both\",\"logo\":\"pdp-logo\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"horizontal_separator\":\"pdp-horizontal_separator\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"showcase\":\"pdp-showcase\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"richtext\":\"pdp-richtext\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"title\":\"pdp-title\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"banner_modul\":\"pdp-banner_modul\",\"no_border\":\"pdp-no_border\",\"banner_modul_wrapper\":\"pdp-banner_modul_wrapper\",\"banner_item\":\"pdp-banner_item\",\"header\":\"pdp-header\",\"header_banner_type\":\"pdp-header_banner_type\",\"media_content\":\"pdp-media_content\",\"left_page\":\"pdp-left_page\",\"right_page\":\"pdp-right_page\",\"media_content_gloves\":\"pdp-media_content_gloves\",\"media_content_shoes\":\"pdp-media_content_shoes\",\"media_content_logo_service\":\"pdp-media_content_logo_service\",\"footer\":\"pdp-footer\",\"button\":\"pdp-button\",\"title\":\"pdp-title\",\"single_item\":\"pdp-single_item\",\"online_catalog_banner\":\"pdp-online_catalog_banner\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"debug_bar\":\"pdp-debug_bar\",\"dds_info\":\"pdp-dds_info\",\"details_page_content\":\"pdp-details_page_content\",\"debug_wsd\":\"pdp-debug_wsd\",\"debug_pim\":\"pdp-debug_pim\",\"debug_pim_wsd\":\"pdp-debug_pim_wsd\",\"layoutedContentGrid_source\":\"pdp-layoutedContentGrid_source\",\"additionalDescription_source\":\"pdp-additionalDescription_source\",\"additional_description_row\":\"pdp-additional_description_row\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"details_page_content\":\"pdp-details_page_content\",\"hidden_fragment\":\"pdp-hidden_fragment\",\"details_page_container\":\"pdp-details_page_container\",\"variant_side_panel\":\"pdp-variant_side_panel\",\"show_variant_info\":\"pdp-show_variant_info\",\"dp_bottom_container\":\"pdp-dp_bottom_container\",\"dp_breadcrumb_fragment_container\":\"pdp-dp_breadcrumb_fragment_container\",\"hidden\":\"pdp-hidden\",\"background_container\":\"pdp-background_container\",\"dark_background\":\"pdp-dark_background\"};","// extracted by mini-css-extract-plugin\nexport default {\"fragment_place_holder\":\"pdp-fragment_place_holder\",\"invisible_container\":\"pdp-invisible_container\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"mediaoverlay\":\"pdp-mediaoverlay\",\"main_image_container\":\"pdp-main_image_container\",\"zoom_icon\":\"pdp-zoom_icon\",\"cross_icon\":\"pdp-cross_icon\",\"ring\":\"pdp-ring\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"main_image_container\":\"pdp-main_image_container\",\"main_image\":\"pdp-main_image\",\"zoom_icon\":\"pdp-zoom_icon\",\"zoom_only\":\"pdp-zoom_only\",\"hide_mic\":\"pdp-hide_mic\",\"pdp_addition_info_image_carousel\":\"pdp-pdp_addition_info_image_carousel\",\"single_slot_view\":\"pdp-single_slot_view\",\"three_slots_view\":\"pdp-three_slots_view\",\"two_slots_view\":\"pdp-two_slots_view\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"gallery_3d\":\"pdp-gallery_3d\",\"display_g3d_overlay\":\"pdp-display_g3d_overlay\",\"gallery_3d_container\":\"pdp-gallery_3d_container\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"threeD_mi_container\":\"pdp-threeD_mi_container\",\"second_mi\":\"pdp-second_mi\",\"has3DView\":\"pdp-has3DView\",\"threed_view\":\"pdp-threed_view\",\"prerender_slot\":\"pdp-prerender_slot\",\"icon_play_pause_3d\":\"pdp-icon_play_pause_3d\",\"icon_3d\":\"pdp-icon_3d\",\"temporary_hide_scs\":\"pdp-temporary_hide_scs\",\"three_slots_view\":\"pdp-three_slots_view\",\"two_slots_view\":\"pdp-two_slots_view\",\"showThreeDOnly\":\"pdp-showThreeDOnly\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"add_info_image_container\":\"pdp-add_info_image_container\",\"add_info_image\":\"pdp-add_info_image\",\"three_slots_view\":\"pdp-three_slots_view\",\"add_images\":\"pdp-add_images\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"eye_catcher\":\"pdp-eye_catcher\",\"ec_is_new\":\"pdp-ec_is_new\",\"inner_text_area\":\"pdp-inner_text_area\",\"star_icon\":\"pdp-star_icon\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"mixed_media_container\":\"pdp-mixed_media_container\",\"add_images\":\"pdp-add_images\",\"single_slot_view\":\"pdp-single_slot_view\",\"mobile_icon_3d\":\"pdp-mobile_icon_3d\",\"temporary_hide_scs\":\"pdp-temporary_hide_scs\",\"two_slots_view\":\"pdp-two_slots_view\",\"main_image_container\":\"pdp-main_image_container\",\"three_slots_view\":\"pdp-three_slots_view\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"modal\":\"pdp-modal\",\"modal_container\":\"pdp-modal_container\",\"modal_content\":\"pdp-modal_content\",\"modal_header\":\"pdp-modal_header\",\"modal_title\":\"pdp-modal_title\",\"title\":\"pdp-title\",\"subtitle\":\"pdp-subtitle\",\"close_button\":\"pdp-close_button\",\"modal_body\":\"pdp-modal_body\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"article_number_container\":\"pdp-article_number_container\",\"article_number\":\"pdp-article_number\",\"article_title\":\"pdp-article_title\",\"article_designation\":\"pdp-article_designation\",\"article_info\":\"pdp-article_info\",\"article_number_container_sticky\":\"pdp-article_number_container_sticky\",\"no_variant_margin\":\"pdp-no_variant_margin\",\"has_variant_buttons\":\"pdp-has_variant_buttons\",\"no_variant_buttons\":\"pdp-no_variant_buttons\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"articlePrice_priceString\":\"pdp-articlePrice_priceString\",\"articlePrice_currency\":\"pdp-articlePrice_currency\",\"articlePrice_value\":\"pdp-articlePrice_value\",\"articlePrice_container\":\"pdp-articlePrice_container\",\"articlePrice_price_container\":\"pdp-articlePrice_price_container\",\"articlePrice_price\":\"pdp-articlePrice_price\",\"articlePrice_main_price\":\"pdp-articlePrice_main_price\",\"articlePrice_main_price_sale\":\"pdp-articlePrice_main_price_sale\",\"articlePrice_price_global\":\"pdp-articlePrice_price_global\",\"articlePrice_vat_container\":\"pdp-articlePrice_vat_container\",\"articlePrice_total\":\"pdp-articlePrice_total\",\"articlePrice_base_price\":\"pdp-articlePrice_base_price\",\"articlePrice_base_price_price\":\"pdp-articlePrice_base_price_price\",\"articlePrice_info_text\":\"pdp-articlePrice_info_text\",\"articlePrice_info_text_price\":\"pdp-articlePrice_info_text_price\",\"articlePrice_info_text_base_price\":\"pdp-articlePrice_info_text_base_price\",\"articlePrice_shipping_info_container\":\"pdp-articlePrice_shipping_info_container\",\"articlePrice_shipping_info\":\"pdp-articlePrice_shipping_info\",\"articlePrice_container_sticky\":\"pdp-articlePrice_container_sticky\",\"sticky_label\":\"pdp-sticky_label\",\"switcher_text\":\"pdp-switcher_text\",\"no_variant_buttons\":\"pdp-no_variant_buttons\",\"one_variant_button\":\"pdp-one_variant_button\",\"two_variant_buttons\":\"pdp-two_variant_buttons\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"basket_panel\":\"pdp-basket_panel\",\"basket_counter\":\"pdp-basket_counter\",\"basket_counter_input_container\":\"pdp-basket_counter_input_container\",\"basket_counter_input\":\"pdp-basket_counter_input\",\"count_buttons\":\"pdp-count_buttons\",\"minus_button\":\"pdp-minus_button\",\"plus_button\":\"pdp-plus_button\",\"basket_button\":\"pdp-basket_button\",\"basket_button_success\":\"pdp-basket_button_success\",\"article_sold_out\":\"pdp-article_sold_out\",\"basket_button_text\":\"pdp-basket_button_text\",\"sold_out_layout\":\"pdp-sold_out_layout\",\"basket_panel_sticky\":\"pdp-basket_panel_sticky\",\"basket_button_articleCount_text\":\"pdp-basket_button_articleCount_text\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"buttonHeight\":\"50px\",\"compareShareBookmark_mobile_container\":\"pdp-compareShareBookmark_mobile_container\",\"compareShareBookmark_mobile_expand\":\"pdp-compareShareBookmark_mobile_expand\",\"compareShareBookmark_mobile_action_buttons\":\"pdp-compareShareBookmark_mobile_action_buttons\",\"compareShareBookmark_mobile_button_container\":\"pdp-compareShareBookmark_mobile_button_container\",\"compareShareBookmark_mobile_action_button\":\"pdp-compareShareBookmark_mobile_action_button\",\"expanded\":\"pdp-expanded\",\"compareShareBookmark_mobile_expand_button\":\"pdp-compareShareBookmark_mobile_expand_button\",\"personalizeButton\":\"pdp-personalizeButton\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"compareShareBookmark_container\":\"pdp-compareShareBookmark_container\",\"compareShareBookmark_button_container\":\"pdp-compareShareBookmark_button_container\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"delivery_time_container\":\"pdp-delivery_time_container\",\"delivery_time_text\":\"pdp-delivery_time_text\",\"isGlobal\":\"pdp-isGlobal\",\"delivery_time_modal_content\":\"pdp-delivery_time_modal_content\",\"half_width\":\"pdp-half_width\",\"full_width\":\"pdp-full_width\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"order_module_container\":\"pdp-order_module_container\",\"om_breadcrumb_fragment_container\":\"pdp-om_breadcrumb_fragment_container\",\"hidden\":\"pdp-hidden\",\"order_module_availability_container\":\"pdp-order_module_availability_container\",\"info_flag\":\"pdp-info_flag\",\"first_item\":\"pdp-first_item\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"order_module_container\":\"pdp-order_module_container\",\"info_flag\":\"pdp-info_flag\",\"label\":\"pdp-label\",\"percentage\":\"pdp-percentage\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"teaser\":\"pdp-teaser\",\"sales_teaser\":\"pdp-sales_teaser\",\"rrp_teaser\":\"pdp-rrp_teaser\",\"teaser_text\":\"pdp-teaser_text\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"storeAvailability_container\":\"pdp-storeAvailability_container\",\"available_in_wws_text\":\"pdp-available_in_wws_text\",\"not_available_in_wws_text\":\"pdp-not_available_in_wws_text\",\"kiosk_not_avaliable\":\"pdp-kiosk_not_avaliable\",\"kiosk_avaliable\":\"pdp-kiosk_avaliable\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"switcher\":\"pdp-switcher\",\"switcher_button\":\"pdp-switcher_button\",\"sticky\":\"pdp-sticky\",\"withVat\":\"pdp-withVat\",\"switcher_icon\":\"pdp-switcher_icon\",\"switcher_text\":\"pdp-switcher_text\",\"sticky_label\":\"pdp-sticky_label\",\"shipping_info\":\"pdp-shipping_info\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"personalization_banner_modul\":\"pdp-personalization_banner_modul\",\"no_border\":\"pdp-no_border\",\"personalization_banner_modul_wrapper\":\"pdp-personalization_banner_modul_wrapper\",\"personalization_banner_header\":\"pdp-personalization_banner_header\",\"personalization_banner_gif\":\"pdp-personalization_banner_gif\",\"personalization_banner_text\":\"pdp-personalization_banner_text\",\"personalization_banner_hardcoded\":\"pdp-personalization_banner_hardcoded\",\"small_hardcoded_text\":\"pdp-small_hardcoded_text\",\"large_hardcoded_text\":\"pdp-large_hardcoded_text\",\"design_yourself_now_button\":\"pdp-design_yourself_now_button\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"po_info_container\":\"pdp-po_info_container\",\"show_po\":\"pdp-show_po\",\"personalize_overlay\":\"pdp-personalize_overlay\",\"po_header\":\"pdp-po_header\",\"h_title\":\"pdp-h_title\",\"h_cross_icon\":\"pdp-h_cross_icon\",\"es\":\"pdp-es\",\"ring\":\"pdp-ring\",\"po_body\":\"pdp-po_body\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"po_container\":\"pdp-po_container\",\"show_po\":\"pdp-show_po\",\"personalize_overlay\":\"pdp-personalize_overlay\",\"po_header\":\"pdp-po_header\",\"h_title\":\"pdp-h_title\",\"h_cross_icon\":\"pdp-h_cross_icon\",\"ring\":\"pdp-ring\",\"po_body\":\"pdp-po_body\",\"banner_short_info\":\"pdp-banner_short_info\",\"small_banner\":\"pdp-small_banner\",\"short_info\":\"pdp-short_info\",\"link_button\":\"pdp-link_button\",\"lbtn_title\":\"pdp-lbtn_title\",\"icon\":\"pdp-icon\",\"description\":\"pdp-description\",\"link_arrow\":\"pdp-link_arrow\",\"po_footer\":\"pdp-po_footer\",\"close_button\":\"pdp-close_button\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"tt_container\":\"pdp-tt_container\",\"tt_inner_triangle\":\"pdp-tt_inner_triangle\",\"tt_outer_triangle\":\"pdp-tt_outer_triangle\",\"tt_overlay_background\":\"pdp-tt_overlay_background\",\"close_tt_btn\":\"pdp-close_tt_btn\",\"ring\":\"pdp-ring\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"article_set_item\":\"pdp-article_set_item\",\"gratis\":\"pdp-gratis\",\"color_size_info\":\"pdp-color_size_info\",\"details_button\":\"pdp-details_button\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"details_modal\":\"pdp-details_modal\",\"details_modal_container\":\"pdp-details_modal_container\",\"details_modal_content\":\"pdp-details_modal_content\",\"details_modal_header\":\"pdp-details_modal_header\",\"details_modal_text_area\":\"pdp-details_modal_text_area\",\"details_modal_title\":\"pdp-details_modal_title\",\"color_size_info\":\"pdp-color_size_info\",\"close_button\":\"pdp-close_button\",\"details_modal_middle\":\"pdp-details_modal_middle\",\"wws_wrapper\":\"pdp-wws_wrapper\",\"transition_on_scroll_down\":\"pdp-transition_on_scroll_down\",\"details_modal_footer\":\"pdp-details_modal_footer\",\"footer_button\":\"pdp-footer_button\",\"white\":\"pdp-white\",\"to_details_page\":\"pdp-to_details_page\",\"product_info_details_container\":\"pdp-product_info_details_container\",\"dm_product_info_content\":\"pdp-dm_product_info_content\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"product_info_details_container\":\"pdp-product_info_details_container\",\"product_image\":\"pdp-product_image\",\"product_info_tabs\":\"pdp-product_info_tabs\",\"product_info_tabs_header\":\"pdp-product_info_tabs_header\",\"no_extras\":\"pdp-no_extras\",\"product_info_tab\":\"pdp-product_info_tab\",\"active\":\"pdp-active\",\"dm_product_info_content\":\"pdp-dm_product_info_content\",\"dividing_line\":\"pdp-dividing_line\",\"text_module\":\"pdp-text_module\",\"title\":\"pdp-title\",\"title_set_consists_of\":\"pdp-title_set_consists_of\",\"article_set_item\":\"pdp-article_set_item\",\"color_size_info\":\"pdp-color_size_info\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"product_info_container\":\"pdp-product_info_container\",\"product_image\":\"pdp-product_image\",\"product_info_tabs\":\"pdp-product_info_tabs\",\"emotionalText\":\"pdp-emotionalText\",\"product_info_tabs_header\":\"pdp-product_info_tabs_header\",\"no_extras\":\"pdp-no_extras\",\"no_specs\":\"pdp-no_specs\",\"product_info_tab\":\"pdp-product_info_tab\",\"active\":\"pdp-active\",\"product_info_content\":\"pdp-product_info_content\",\"title_set_consists_of\":\"pdp-title_set_consists_of\",\"removed_overflow\":\"pdp-removed_overflow\"};","// extracted by mini-css-extract-plugin\nexport default {\"bullet_text\":\"pdp-bullet_text\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"careLabels\":\"pdp-careLabels\",\"cl_title\":\"pdp-cl_title\",\"careLabel\":\"pdp-careLabel\",\"cl_icon_placeholder\":\"pdp-cl_icon_placeholder\",\"cl_icon\":\"pdp-cl_icon\",\"cl_description\":\"pdp-cl_description\",\"cl_overlay_background\":\"pdp-cl_overlay_background\",\"cl_overlay\":\"pdp-cl_overlay\",\"show\":\"pdp-show\",\"display_it\":\"pdp-display_it\",\"o_crossIcon\":\"pdp-o_crossIcon\",\"ring\":\"pdp-ring\",\"r_cross\":\"pdp-r_cross\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"description\":\"pdp-description\",\"dividing_line\":\"pdp-dividing_line\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"spec_table\":\"pdp-spec_table\",\"spec_name\":\"pdp-spec_name\",\"spec_value\":\"pdp-spec_value\"};","// extracted by mini-css-extract-plugin\nexport default {\"disclaimers\":\"pdp-disclaimers\"};","// extracted by mini-css-extract-plugin\nexport default {\"text_module\":\"pdp-text_module\",\"title\":\"pdp-title\",\"tm_container\":\"pdp-tm_container\",\"tm_image\":\"pdp-tm_image\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"functional_layers\":\"pdp-functional_layers\",\"fl_btn\":\"pdp-fl_btn\",\"fl_btn_active\":\"pdp-fl_btn_active\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"logo_creator_service\":\"pdp-logo_creator_service\",\"description_link_list\":\"pdp-description_link_list\",\"link_button\":\"pdp-link_button\",\"link_title\":\"pdp-link_title\",\"link_icon\":\"pdp-link_icon\",\"link_label\":\"pdp-link_label\",\"modal\":\"pdp-modal\",\"modal_container\":\"pdp-modal_container\",\"modal_content\":\"pdp-modal_content\",\"modal_title\":\"pdp-modal_title\",\"modal_body\":\"pdp-modal_body\",\"lcs_title\":\"pdp-lcs_title\",\"datasheet_hint\":\"pdp-datasheet_hint\",\"icon_tooltip\":\"pdp-icon_tooltip\"};","// extracted by mini-css-extract-plugin\nexport default {\"materials\":\"pdp-materials\",\"m_title\":\"pdp-m_title\",\"material\":\"pdp-material\",\"m_name\":\"pdp-m_name\",\"m_fiber\":\"pdp-m_fiber\",\"f_percentage\":\"pdp-f_percentage\",\"f_name\":\"pdp-f_name\",\"f_divider\":\"pdp-f_divider\",\"m_grammage\":\"pdp-m_grammage\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"product_info_container\":\"pdp-product_info_container\",\"product_image\":\"pdp-product_image\",\"product_info_tabs\":\"pdp-product_info_tabs\",\"emotionalText\":\"pdp-emotionalText\",\"product_info_tabs_header\":\"pdp-product_info_tabs_header\",\"no_extras\":\"pdp-no_extras\",\"no_specs\":\"pdp-no_specs\",\"product_info_tab\":\"pdp-product_info_tab\",\"active\":\"pdp-active\",\"product_info_content\":\"pdp-product_info_content\",\"text_module\":\"pdp-text_module\",\"title\":\"pdp-title\",\"expand_content\":\"pdp-expand_content\",\"removed_overflow\":\"pdp-removed_overflow\",\"wrapper_product_info_separator\":\"pdp-wrapper_product_info_separator\",\"button_more_product_info\":\"pdp-button_more_product_info\",\"open\":\"pdp-open\"};","// extracted by mini-css-extract-plugin\nexport default {\"shoeWeights\":\"pdp-shoeWeights\",\"shoeWeight\":\"pdp-shoeWeight\",\"sw_property\":\"pdp-sw_property\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"glove_recommendation_shutter\":\"pdp-glove_recommendation_shutter\",\"gr_description\":\"pdp-gr_description\",\"short_description\":\"pdp-short_description\",\"recommendation_container\":\"pdp-recommendation_container\",\"rate_container\":\"pdp-rate_container\",\"r_info\":\"pdp-r_info\",\"r_title\":\"pdp-r_title\",\"rate\":\"pdp-rate\",\"r_bar\":\"pdp-r_bar\",\"r_value\":\"pdp-r_value\"};","// extracted by mini-css-extract-plugin\nexport default {\"layoutedContentGrid\":\"pdp-layoutedContentGrid\",\"gridContent\":\"pdp-gridContent\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"pf_content\":\"pdp-pf_content\",\"hidden\":\"pdp-hidden\",\"pf_animation\":\"pdp-pf_animation\",\"text_container\":\"pdp-text_container\",\"emt_title\":\"pdp-emt_title\",\"emt_text\":\"pdp-emt_text\",\"richtext_root\":\"pdp-richtext_root\",\"richtext_paragraph\":\"pdp-richtext_paragraph\",\"emt_logo\":\"pdp-emt_logo\",\"tmp_hidden\":\"pdp-tmp_hidden\",\"single_product_feature\":\"pdp-single_product_feature\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"product_feature_shutter\":\"pdp-product_feature_shutter\",\"arrow_left\":\"pdp-arrow_left\",\"arrow_right\":\"pdp-arrow_right\",\"quick_select_and_status_info\":\"pdp-quick_select_and_status_info\",\"content_status_info\":\"pdp-content_status_info\",\"current_article_features\":\"pdp-current_article_features\",\"status_divider\":\"pdp-status_divider\",\"total_article_features\":\"pdp-total_article_features\",\"control_dots\":\"pdp-control_dots\",\"c_dot\":\"pdp-c_dot\",\"active\":\"pdp-active\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"sc_container\":\"pdp-sc_container\",\"tf_background\":\"pdp-tf_background\",\"jf_background\":\"pdp-jf_background\",\"sf_background\":\"pdp-sf_background\",\"logoContainer\":\"pdp-logoContainer\",\"logo\":\"pdp-logo\",\"description\":\"pdp-description\",\"tf_headline\":\"pdp-tf_headline\",\"redirect_button\":\"pdp-redirect_button\",\"rb_title\":\"pdp-rb_title\",\"rb_arrow_icon\":\"pdp-rb_arrow_icon\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"aas_modal_header\":\"pdp-aas_modal_header\",\"aas_back_button\":\"pdp-aas_back_button\",\"aas_modal_title\":\"pdp-aas_modal_title\",\"aas_content\":\"pdp-aas_content\",\"alternative_articles_modal_footer\":\"pdp-alternative_articles_modal_footer\",\"aas_modal_close_button\":\"pdp-aas_modal_close_button\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"tab_container\":\"pdp-tab_container\",\"t_logo\":\"pdp-t_logo\",\"logo_img\":\"pdp-logo_img\",\"tf_logo\":\"pdp-tf_logo\",\"aas_logo\":\"pdp-aas_logo\",\"t_text_area\":\"pdp-t_text_area\",\"t_title\":\"pdp-t_title\",\"t_description\":\"pdp-t_description\",\"isActive\":\"pdp-isActive\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"purchase_advice_shutter\":\"pdp-purchase_advice_shutter\",\"pa_header\":\"pdp-pa_header\",\"tab_container\":\"pdp-tab_container\",\"pa_content_container\":\"pdp-pa_content_container\",\"pa_content\":\"pdp-pa_content\",\"isActive\":\"pdp-isActive\",\"pa_aas_overlay_modal\":\"pdp-pa_aas_overlay_modal\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"shutter_modul_wrapper\":\"pdp-shutter_modul_wrapper\",\"not_visible\":\"pdp-not_visible\",\"shutter_modul\":\"pdp-shutter_modul\",\"shutter_header\":\"pdp-shutter_header\",\"shutter_title\":\"pdp-shutter_title\",\"open\":\"pdp-open\",\"shutter_icon\":\"pdp-shutter_icon\",\"collapse\":\"pdp-collapse\",\"shutter_content\":\"pdp-shutter_content\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"sticky_header_container\":\"pdp-sticky_header_container\",\"no_headr\":\"pdp-no_headr\",\"sticky_header_content\":\"pdp-sticky_header_content\",\"no_variant_buttons_all_in_one_line\":\"pdp-no_variant_buttons_all_in_one_line\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"color_content_wrapper\":\"pdp-color_content_wrapper\",\"color_content\":\"pdp-color_content\",\"color_icons\":\"pdp-color_icons\",\"color_border\":\"pdp-color_border\",\"color_icon\":\"pdp-color_icon\",\"selected\":\"pdp-selected\",\"choosen_color_label\":\"pdp-choosen_color_label\",\"image_content\":\"pdp-image_content\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"model_content_wrapper\":\"pdp-model_content_wrapper\",\"choosen_model_label\":\"pdp-choosen_model_label\",\"model_content\":\"pdp-model_content\",\"model_icons\":\"pdp-model_icons\",\"model_icon\":\"pdp-model_icon\",\"selected\":\"pdp-selected\",\"sold_out_model\":\"pdp-sold_out_model\",\"variant_status_green\":\"pdp-variant_status_green\",\"variant_status_orange\":\"pdp-variant_status_orange\",\"variant_status_red\":\"pdp-variant_status_red\",\"wws\":\"pdp-wws\",\"image_content\":\"pdp-image_content\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"size_dimension\":\"pdp-size_dimension\",\"selected_size_dimension_label\":\"pdp-selected_size_dimension_label\",\"active\":\"pdp-active\",\"size_dimension_inactive\":\"pdp-size_dimension_inactive\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"size_dimensions\":\"pdp-size_dimensions\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"size_panel_wrapper\":\"pdp-size_panel_wrapper\",\"size_content\":\"pdp-size_content\",\"image_content\":\"pdp-image_content\",\"size_panel_content\":\"pdp-size_panel_content\",\"choosen_size_label\":\"pdp-choosen_size_label\",\"size_table_button\":\"pdp-size_table_button\",\"size_table_text\":\"pdp-size_table_text\",\"fit_accuracy_wrapper\":\"pdp-fit_accuracy_wrapper\",\"fit_accuracy_container\":\"pdp-fit_accuracy_container\",\"fit_accuracy_border\":\"pdp-fit_accuracy_border\",\"border_left\":\"pdp-border_left\",\"border_right\":\"pdp-border_right\",\"fit_accuracy_scales\":\"pdp-fit_accuracy_scales\",\"fit_accuracy_scale\":\"pdp-fit_accuracy_scale\",\"marker\":\"pdp-marker\",\"section_headlines\":\"pdp-section_headlines\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"size_value\":\"pdp-size_value\",\"variant_status_green\":\"pdp-variant_status_green\",\"variant_status_red\":\"pdp-variant_status_red\",\"inactive\":\"pdp-inactive\",\"wws_size_dimensions_wrapper\":\"pdp-wws_size_dimensions_wrapper\",\"variant_status_orange\":\"pdp-variant_status_orange\",\"active\":\"pdp-active\",\"kiosk\":\"pdp-kiosk\",\"sold_out_size\":\"pdp-sold_out_size\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"size_value\":\"pdp-size_value\",\"variant_status_green\":\"pdp-variant_status_green\",\"variant_status_red\":\"pdp-variant_status_red\",\"inactive\":\"pdp-inactive\",\"wws_size_dimensions_wrapper\":\"pdp-wws_size_dimensions_wrapper\",\"variant_status_orange\":\"pdp-variant_status_orange\",\"active\":\"pdp-active\",\"kiosk\":\"pdp-kiosk\",\"sold_out_size\":\"pdp-sold_out_size\",\"size_values\":\"pdp-size_values\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"special_panel\":\"pdp-special_panel\",\"special_content\":\"pdp-special_content\",\"special_value\":\"pdp-special_value\",\"selected\":\"pdp-selected\",\"special_value_kiosk_sold_out\":\"pdp-special_value_kiosk_sold_out\",\"sold_out\":\"pdp-sold_out\",\"subheader\":\"pdp-subheader\",\"subheader_mobile\":\"pdp-subheader_mobile\",\"chosen_special_size_type\":\"pdp-chosen_special_size_type\",\"chosen_special_size\":\"pdp-chosen_special_size\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"variants_container\":\"pdp-variants_container\",\"variants_container_item\":\"pdp-variants_container_item\",\"variant_button\":\"pdp-variant_button\",\"isMobileHeader\":\"pdp-isMobileHeader\",\"variants_list\":\"pdp-variants_list\",\"isStickyHeader\":\"pdp-isStickyHeader\",\"color_variant_button\":\"pdp-color_variant_button\",\"only_variant_button\":\"pdp-only_variant_button\",\"selected_value\":\"pdp-selected_value\",\"button\":\"pdp-button\",\"sticky_header_content\":\"pdp-sticky_header_content\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"variant_button\":\"pdp-variant_button\",\"variant_title\":\"pdp-variant_title\",\"selected_value\":\"pdp-selected_value\",\"button_label\":\"pdp-button_label\",\"button\":\"pdp-button\",\"colorIcon\":\"pdp-colorIcon\",\"special\":\"pdp-special\",\"text\":\"pdp-text\",\"value\":\"pdp-value\",\"deactive\":\"pdp-deactive\",\"isStickyHeader\":\"pdp-isStickyHeader\",\"only_variant_button\":\"pdp-only_variant_button\",\"isMobileHeader\":\"pdp-isMobileHeader\",\"variant_special_button\":\"pdp-variant_special_button\",\"color_variant_button\":\"pdp-color_variant_button\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"variant_panel\":\"pdp-variant_panel\",\"show\":\"pdp-show\",\"block\":\"pdp-block\",\"header\":\"pdp-header\",\"close_button\":\"pdp-close_button\",\"special_header\":\"pdp-special_header\",\"content\":\"pdp-content\",\"footer\":\"pdp-footer\",\"button\":\"pdp-button\",\"button_title\":\"pdp-button_title\",\"apply\":\"pdp-apply\",\"cancel\":\"pdp-cancel\",\"mobile_variant_panel\":\"pdp-mobile_variant_panel\",\"mobile_h\":\"pdp-mobile_h\",\"variant_button\":\"pdp-variant_button\",\"variant_title\":\"pdp-variant_title\",\"desktop_h\":\"pdp-desktop_h\",\"image_content\":\"pdp-image_content\",\"size_table_button\":\"pdp-size_table_button\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"wwsa_modal\":\"pdp-wwsa_modal\",\"wwsa_modal_container\":\"pdp-wwsa_modal_container\",\"wwsa_modal_content\":\"pdp-wwsa_modal_content\",\"wwsa_modal_header\":\"pdp-wwsa_modal_header\",\"wwsa_modal_title\":\"pdp-wwsa_modal_title\",\"close_button\":\"pdp-close_button\",\"wwsa_modal_middle\":\"pdp-wwsa_modal_middle\",\"wws_selected_values\":\"pdp-wws_selected_values\",\"wws_wrapper\":\"pdp-wws_wrapper\",\"wwsa_modal_footer\":\"pdp-wwsa_modal_footer\",\"opening_hours_container\":\"pdp-opening_hours_container\",\"opening_hours\":\"pdp-opening_hours\",\"opening_hours_text\":\"pdp-opening_hours_text\",\"wwsa_modal_bottom\":\"pdp-wwsa_modal_bottom\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"size_dimension\":\"pdp-size_dimension\",\"selected_size_dimension_label\":\"pdp-selected_size_dimension_label\",\"active\":\"pdp-active\",\"size_dimension_inactive\":\"pdp-size_dimension_inactive\",\"size_dimensions\":\"pdp-size_dimensions\",\"size_value\":\"pdp-size_value\",\"variant_status_green\":\"pdp-variant_status_green\",\"variant_status_red\":\"pdp-variant_status_red\",\"inactive\":\"pdp-inactive\",\"wws_size_dimensions_wrapper\":\"pdp-wws_size_dimensions_wrapper\",\"variant_status_orange\":\"pdp-variant_status_orange\",\"kiosk\":\"pdp-kiosk\",\"sold_out_size\":\"pdp-sold_out_size\",\"size_values\":\"pdp-size_values\",\"model_content_wrapper\":\"pdp-model_content_wrapper\",\"choosen_model_label\":\"pdp-choosen_model_label\",\"model_content\":\"pdp-model_content\",\"model_icons\":\"pdp-model_icons\",\"model_icon\":\"pdp-model_icon\",\"selected\":\"pdp-selected\",\"sold_out_model\":\"pdp-sold_out_model\",\"wws\":\"pdp-wws\",\"image_content\":\"pdp-image_content\",\"workwear_store\":\"pdp-workwear_store\",\"collapsed\":\"pdp-collapsed\",\"wws_header\":\"pdp-wws_header\",\"another_store_open\":\"pdp-another_store_open\",\"wws_title\":\"pdp-wws_title\",\"availability_circle_red\":\"pdp-availability_circle_red\",\"green\":\"pdp-green\",\"yellow\":\"pdp-yellow\",\"wws_name\":\"pdp-wws_name\",\"wws_name_label\":\"pdp-wws_name_label\",\"arrow_button\":\"pdp-arrow_button\",\"arrow_button_label\":\"pdp-arrow_button_label\",\"content_wrapper\":\"pdp-content_wrapper\",\"collapse_wrapper\":\"pdp-collapse_wrapper\",\"color_size_content_wrapper\":\"pdp-color_size_content_wrapper\",\"color_content\":\"pdp-color_content\",\"color_icons\":\"pdp-color_icons\",\"color_border\":\"pdp-color_border\",\"color_icon\":\"pdp-color_icon\",\"vertical\":\"pdp-vertical\",\"disabled\":\"pdp-disabled\",\"size_icons\":\"pdp-size_icons\",\"availability_circle_green\":\"pdp-availability_circle_green\",\"swipe_wrapper\":\"pdp-swipe_wrapper\",\"sizes_shown\":\"pdp-sizes_shown\",\"sizes_not_shown\":\"pdp-sizes_not_shown\",\"swipe_content\":\"pdp-swipe_content\",\"size_types_shown\":\"pdp-size_types_shown\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"wws_info_container\":\"pdp-wws_info_container\",\"wws_info\":\"pdp-wws_info\",\"wws_circle_red\":\"pdp-wws_circle_red\",\"green\":\"pdp-green\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\",\"richtext_root\":\"pdp-richtext_root\",\"richtext_paragraph\":\"pdp-richtext_paragraph\",\"richtext_line\":\"pdp-richtext_line\",\"richtext_line_bold\":\"pdp-richtext_line_bold\",\"richtext_line_italic\":\"pdp-richtext_line_italic\",\"richtext_line_underline\":\"pdp-richtext_line_underline\",\"richtext_line_superscript\":\"pdp-richtext_line_superscript\",\"richtext_line_subscript\":\"pdp-richtext_line_subscript\",\"richtext_line_a\":\"pdp-richtext_line_a\",\"richtext_indent_0\":\"pdp-richtext_indent_0\",\"richtext_indent_1\":\"pdp-richtext_indent_1\",\"richtext_indent_2\":\"pdp-richtext_indent_2\",\"richtext_indent_3\":\"pdp-richtext_indent_3\",\"richtext_indent_4\":\"pdp-richtext_indent_4\",\"richtext_indent_5\":\"pdp-richtext_indent_5\",\"richtext_blankline\":\"pdp-richtext_blankline\"};","// extracted by mini-css-extract-plugin\nexport default {\"breakpointMobileExtraSmall\":\"320px\",\"breakpointMobileMinWidth\":\"769px\",\"dpRed\":\"#e30613\",\"dpGreen\":\"#70a848\",\"dpOrange\":\"orange\",\"dpBlack\":\"#000\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"dpBoxshadow\":\"#d6d6f5\",\"dpDropwodnBoxshadow\":\"rgba(0,0,0,.2)\",\"dpLightGrey\":\"#d3d4d4\",\"dpGrey\":\"#d6d6d6\",\"dpDarkGrey\":\"#999\",\"dpGreyInactive\":\"#bbb\",\"defaultSpacing\":\"8px\",\"defaultLabelFontSize\":\"13px\",\"headingFontSize\":\"17px\"};","import { makeObservable } from \"mobx\";\nimport { useState } from \"react\";\nif (!useState) {\n throw new Error(\"mobx-react-lite requires React with Hooks support\");\n}\nif (!makeObservable) {\n throw new Error(\"mobx-react-lite@3 requires mobx at least version 6 to be available\");\n}\n//# sourceMappingURL=assertEnvironment.js.map","import { configure } from \"mobx\";\nexport function defaultNoopBatch(callback) {\n callback();\n}\nexport function observerBatching(reactionScheduler) {\n if (!reactionScheduler) {\n reactionScheduler = defaultNoopBatch;\n if (\"production\" !== process.env.NODE_ENV) {\n console.warn(\"[MobX] Failed to get unstable_batched updates from react-dom / react-native\");\n }\n }\n configure({ reactionScheduler: reactionScheduler });\n}\nexport var isObserverBatched = function () {\n if (\"production\" !== process.env.NODE_ENV) {\n console.warn(\"[MobX] Deprecated\");\n }\n return true;\n};\n//# sourceMappingURL=observerBatching.js.map","import { getDependencyTree } from \"mobx\";\nexport function printDebugValue(v) {\n return getDependencyTree(v);\n}\n//# sourceMappingURL=printDebugValue.js.map","export var REGISTRY_FINALIZE_AFTER = 10000;\nexport var REGISTRY_SWEEP_INTERVAL = 10000;\nvar TimerBasedFinalizationRegistry = /** @class */ (function () {\n function TimerBasedFinalizationRegistry(finalize) {\n var _this = this;\n Object.defineProperty(this, \"finalize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: finalize\n });\n Object.defineProperty(this, \"registrations\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"sweepTimeout\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n // Bound so it can be used directly as setTimeout callback.\n Object.defineProperty(this, \"sweep\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: function (maxAge) {\n if (maxAge === void 0) { maxAge = REGISTRY_FINALIZE_AFTER; }\n // cancel timeout so we can force sweep anytime\n clearTimeout(_this.sweepTimeout);\n _this.sweepTimeout = undefined;\n var now = Date.now();\n _this.registrations.forEach(function (registration, token) {\n if (now - registration.registeredAt >= maxAge) {\n _this.finalize(registration.value);\n _this.registrations.delete(token);\n }\n });\n if (_this.registrations.size > 0) {\n _this.scheduleSweep();\n }\n }\n });\n // Bound so it can be exported directly as clearTimers test utility.\n Object.defineProperty(this, \"finalizeAllImmediately\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: function () {\n _this.sweep(0);\n }\n });\n }\n // Token is actually required with this impl\n Object.defineProperty(TimerBasedFinalizationRegistry.prototype, \"register\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function (target, value, token) {\n this.registrations.set(token, {\n value: value,\n registeredAt: Date.now()\n });\n this.scheduleSweep();\n }\n });\n Object.defineProperty(TimerBasedFinalizationRegistry.prototype, \"unregister\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function (token) {\n this.registrations.delete(token);\n }\n });\n Object.defineProperty(TimerBasedFinalizationRegistry.prototype, \"scheduleSweep\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function () {\n if (this.sweepTimeout === undefined) {\n this.sweepTimeout = setTimeout(this.sweep, REGISTRY_SWEEP_INTERVAL);\n }\n }\n });\n return TimerBasedFinalizationRegistry;\n}());\nexport { TimerBasedFinalizationRegistry };\nexport var UniversalFinalizationRegistry = typeof FinalizationRegistry !== \"undefined\"\n ? FinalizationRegistry\n : TimerBasedFinalizationRegistry;\n//# sourceMappingURL=UniversalFinalizationRegistry.js.map","import { UniversalFinalizationRegistry } from \"./UniversalFinalizationRegistry\";\nexport var observerFinalizationRegistry = new UniversalFinalizationRegistry(function (adm) {\n var _a;\n (_a = adm.reaction) === null || _a === void 0 ? void 0 : _a.dispose();\n adm.reaction = null;\n});\n//# sourceMappingURL=observerFinalizationRegistry.js.map","var globalIsUsingStaticRendering = false;\nexport function enableStaticRendering(enable) {\n globalIsUsingStaticRendering = enable;\n}\nexport function isUsingStaticRendering() {\n return globalIsUsingStaticRendering;\n}\n//# sourceMappingURL=staticRendering.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { Reaction } from \"mobx\";\nimport React from \"react\";\nimport { printDebugValue } from \"./utils/printDebugValue\";\nimport { observerFinalizationRegistry } from \"./utils/observerFinalizationRegistry\";\nimport { isUsingStaticRendering } from \"./staticRendering\";\nfunction observerComponentNameFor(baseComponentName) {\n return \"observer\".concat(baseComponentName);\n}\n/**\n * We use class to make it easier to detect in heap snapshots by name\n */\nvar ObjectToBeRetainedByReact = /** @class */ (function () {\n function ObjectToBeRetainedByReact() {\n }\n return ObjectToBeRetainedByReact;\n}());\nfunction objectToBeRetainedByReactFactory() {\n return new ObjectToBeRetainedByReact();\n}\nexport function useObserver(fn, baseComponentName) {\n if (baseComponentName === void 0) { baseComponentName = \"observed\"; }\n if (isUsingStaticRendering()) {\n return fn();\n }\n var _a = __read(React.useState(objectToBeRetainedByReactFactory), 1), objectRetainedByReact = _a[0];\n // Force update, see #2982\n var _b = __read(React.useState(), 2), setState = _b[1];\n var forceUpdate = function () { return setState([]); };\n // StrictMode/ConcurrentMode/Suspense may mean that our component is\n // rendered and abandoned multiple times, so we need to track leaked\n // Reactions.\n var admRef = React.useRef(null);\n if (!admRef.current) {\n // First render\n admRef.current = {\n reaction: null,\n mounted: false,\n changedBeforeMount: false\n };\n }\n var adm = admRef.current;\n if (!adm.reaction) {\n // First render or component was not committed and reaction was disposed by registry\n adm.reaction = new Reaction(observerComponentNameFor(baseComponentName), function () {\n // Observable has changed, meaning we want to re-render\n // BUT if we're a component that hasn't yet got to the useEffect()\n // stage, we might be a component that _started_ to render, but\n // got dropped, and we don't want to make state changes then.\n // (It triggers warnings in StrictMode, for a start.)\n if (adm.mounted) {\n // We have reached useEffect(), so we're mounted, and can trigger an update\n forceUpdate();\n }\n else {\n // We haven't yet reached useEffect(), so we'll need to trigger a re-render\n // when (and if) useEffect() arrives.\n adm.changedBeforeMount = true;\n }\n });\n observerFinalizationRegistry.register(objectRetainedByReact, adm, adm);\n }\n React.useDebugValue(adm.reaction, printDebugValue);\n React.useEffect(function () {\n observerFinalizationRegistry.unregister(adm);\n adm.mounted = true;\n if (adm.reaction) {\n if (adm.changedBeforeMount) {\n // Got a change before mount, force an update\n adm.changedBeforeMount = false;\n forceUpdate();\n }\n }\n else {\n // The reaction we set up in our render has been disposed.\n // This can be due to bad timings of renderings, e.g. our\n // component was paused for a _very_ long time, and our\n // reaction got cleaned up\n // Re-create the reaction\n adm.reaction = new Reaction(observerComponentNameFor(baseComponentName), function () {\n // We've definitely already been mounted at this point\n forceUpdate();\n });\n forceUpdate();\n }\n return function () {\n adm.reaction.dispose();\n adm.reaction = null;\n adm.mounted = false;\n adm.changedBeforeMount = false;\n };\n }, []);\n // render the original component, but have the\n // reaction track the observables, so that rendering\n // can be invalidated (see above) once a dependency changes\n var rendering;\n var exception;\n adm.reaction.track(function () {\n try {\n rendering = fn();\n }\n catch (e) {\n exception = e;\n }\n });\n if (exception) {\n throw exception; // re-throw any exceptions caught during rendering\n }\n return rendering;\n}\n//# sourceMappingURL=useObserver.js.map","import { forwardRef, memo } from \"react\";\nimport { isUsingStaticRendering } from \"./staticRendering\";\nimport { useObserver } from \"./useObserver\";\nvar warnObserverOptionsDeprecated = true;\nvar hasSymbol = typeof Symbol === \"function\" && Symbol.for;\n// Using react-is had some issues (and operates on elements, not on types), see #608 / #609\nvar ReactForwardRefSymbol = hasSymbol\n ? Symbol.for(\"react.forward_ref\")\n : typeof forwardRef === \"function\" && forwardRef(function (props) { return null; })[\"$$typeof\"];\nvar ReactMemoSymbol = hasSymbol\n ? Symbol.for(\"react.memo\")\n : typeof memo === \"function\" && memo(function (props) { return null; })[\"$$typeof\"];\n// n.b. base case is not used for actual typings or exported in the typing files\nexport function observer(baseComponent, \n// TODO remove in next major\noptions) {\n var _a;\n if (process.env.NODE_ENV !== \"production\" && warnObserverOptionsDeprecated && options) {\n warnObserverOptionsDeprecated = false;\n console.warn(\"[mobx-react-lite] `observer(fn, { forwardRef: true })` is deprecated, use `observer(React.forwardRef(fn))`\");\n }\n if (ReactMemoSymbol && baseComponent[\"$$typeof\"] === ReactMemoSymbol) {\n throw new Error(\"[mobx-react-lite] You are trying to use `observer` on a function component wrapped in either another `observer` or `React.memo`. The observer already applies 'React.memo' for you.\");\n }\n // The working of observer is explained step by step in this talk: https://www.youtube.com/watch?v=cPF4iBedoF0&feature=youtu.be&t=1307\n if (isUsingStaticRendering()) {\n return baseComponent;\n }\n var useForwardRef = (_a = options === null || options === void 0 ? void 0 : options.forwardRef) !== null && _a !== void 0 ? _a : false;\n var render = baseComponent;\n var baseComponentName = baseComponent.displayName || baseComponent.name;\n // If already wrapped with forwardRef, unwrap,\n // so we can patch render and apply memo\n if (ReactForwardRefSymbol && baseComponent[\"$$typeof\"] === ReactForwardRefSymbol) {\n useForwardRef = true;\n render = baseComponent[\"render\"];\n if (typeof render !== \"function\") {\n throw new Error(\"[mobx-react-lite] `render` property of ForwardRef was not a function\");\n }\n }\n var observerComponent = function (props, ref) {\n return useObserver(function () { return render(props, ref); }, baseComponentName);\n };\n // Don't set `displayName` for anonymous components,\n // so the `displayName` can be customized by user, see #3192.\n if (baseComponentName !== \"\") {\n ;\n observerComponent.displayName = baseComponentName;\n }\n // Support legacy context: `contextTypes` must be applied before `memo`\n if (baseComponent.contextTypes) {\n ;\n observerComponent.contextTypes = baseComponent.contextTypes;\n }\n if (useForwardRef) {\n // `forwardRef` must be applied prior `memo`\n // `forwardRef(observer(cmp))` throws:\n // \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))\"\n observerComponent = forwardRef(observerComponent);\n }\n // memo; we are not interested in deep updates\n // in props; we assume that if deep objects are changed,\n // this is in observables, which would have been tracked anyway\n observerComponent = memo(observerComponent);\n copyStaticProperties(baseComponent, observerComponent);\n if (\"production\" !== process.env.NODE_ENV) {\n Object.defineProperty(observerComponent, \"contextTypes\", {\n set: function () {\n var _a;\n throw new Error(\"[mobx-react-lite] `\".concat(this.displayName || ((_a = this.type) === null || _a === void 0 ? void 0 : _a.displayName) || \"Component\", \".contextTypes` must be set before applying `observer`.\"));\n }\n });\n }\n return observerComponent;\n}\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nvar hoistBlackList = {\n $$typeof: true,\n render: true,\n compare: true,\n type: true,\n // Don't redefine `displayName`,\n // it's defined as getter-setter pair on `memo` (see #3192).\n displayName: true\n};\nfunction copyStaticProperties(base, target) {\n Object.keys(base).forEach(function (key) {\n if (!hoistBlackList[key]) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\n }\n });\n}\n//# sourceMappingURL=observer.js.map","import { useObserver } from \"./useObserver\";\nfunction ObserverComponent(_a) {\n var children = _a.children, render = _a.render;\n var component = children || render;\n if (typeof component !== \"function\") {\n return null;\n }\n return useObserver(component);\n}\nif (\"production\" !== process.env.NODE_ENV) {\n ObserverComponent.propTypes = {\n children: ObserverPropsCheck,\n render: ObserverPropsCheck\n };\n}\nObserverComponent.displayName = \"Observer\";\nexport { ObserverComponent as Observer };\nfunction ObserverPropsCheck(props, key, componentName, location, propFullName) {\n var extraKey = key === \"children\" ? \"render\" : \"children\";\n var hasProp = typeof props[key] === \"function\";\n var hasExtraProp = typeof props[extraKey] === \"function\";\n if (hasProp && hasExtraProp) {\n return new Error(\"MobX Observer: Do not use children and render in the same time in`\" + componentName);\n }\n if (hasProp || hasExtraProp) {\n return null;\n }\n return new Error(\"Invalid prop `\" +\n propFullName +\n \"` of type `\" +\n typeof props[key] +\n \"` supplied to\" +\n \" `\" +\n componentName +\n \"`, expected `function`.\");\n}\n//# sourceMappingURL=ObserverComponent.js.map","import { observable } from \"mobx\";\nimport { useState } from \"react\";\nexport function useLocalObservable(initializer, annotations) {\n return useState(function () { return observable(initializer(), annotations, { autoBind: true }); })[0];\n}\n//# sourceMappingURL=useLocalObservable.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { useDeprecated } from \"./utils/utils\";\nimport { observable, runInAction } from \"mobx\";\nimport { useState } from \"react\";\nexport function useAsObservableSource(current) {\n if (\"production\" !== process.env.NODE_ENV)\n useDeprecated(\"[mobx-react-lite] 'useAsObservableSource' is deprecated, please store the values directly in an observable, for example by using 'useLocalObservable', and sync future updates using 'useEffect' when needed. See the README for examples.\");\n var _a = __read(useState(function () { return observable(current, {}, { deep: false }); }), 1), res = _a[0];\n runInAction(function () {\n Object.assign(res, current);\n });\n return res;\n}\n//# sourceMappingURL=useAsObservableSource.js.map","var _a;\nimport \"./utils/assertEnvironment\";\nimport { unstable_batchedUpdates as batch } from \"./utils/reactBatchedUpdates\";\nimport { observerBatching } from \"./utils/observerBatching\";\nimport { useDeprecated } from \"./utils/utils\";\nimport { useObserver as useObserverOriginal } from \"./useObserver\";\nimport { enableStaticRendering } from \"./staticRendering\";\nimport { observerFinalizationRegistry } from \"./utils/observerFinalizationRegistry\";\nobserverBatching(batch);\nexport { isUsingStaticRendering, enableStaticRendering } from \"./staticRendering\";\nexport { observer } from \"./observer\";\nexport { Observer } from \"./ObserverComponent\";\nexport { useLocalObservable } from \"./useLocalObservable\";\nexport { useLocalStore } from \"./useLocalStore\";\nexport { useAsObservableSource } from \"./useAsObservableSource\";\nexport var clearTimers = (_a = observerFinalizationRegistry[\"finalizeAllImmediately\"]) !== null && _a !== void 0 ? _a : (function () { });\nexport function useObserver(fn, baseComponentName) {\n if (baseComponentName === void 0) { baseComponentName = \"observed\"; }\n if (\"production\" !== process.env.NODE_ENV) {\n useDeprecated(\"[mobx-react-lite] 'useObserver(fn)' is deprecated. Use `<Observer>{fn}</Observer>` instead, or wrap the entire component in `observer`.\");\n }\n return useObserverOriginal(fn, baseComponentName);\n}\nexport { isObserverBatched, observerBatching } from \"./utils/observerBatching\";\nexport function useStaticRendering(enable) {\n if (\"production\" !== process.env.NODE_ENV) {\n console.warn(\"[mobx-react-lite] 'useStaticRendering' is deprecated, use 'enableStaticRendering' instead\");\n }\n enableStaticRendering(enable);\n}\n//# sourceMappingURL=index.js.map","import { observable } from \"mobx\";\nimport { useState } from \"react\";\nimport { useDeprecated } from \"./utils/utils\";\nimport { useAsObservableSource } from \"./useAsObservableSource\";\nexport function useLocalStore(initializer, current) {\n if (\"production\" !== process.env.NODE_ENV)\n useDeprecated(\"[mobx-react-lite] 'useLocalStore' is deprecated, use 'useLocalObservable' instead.\");\n var source = current && useAsObservableSource(current);\n return useState(function () { return observable(initializer(source), undefined, { autoBind: true }); })[0];\n}\n//# sourceMappingURL=useLocalStore.js.map","import { _allowStateReadsStart, _allowStateReadsEnd, $mobx, _allowStateChanges, createAtom, Reaction, untracked, isObservableMap, isObservableObject, isObservableArray, observable } from 'mobx';\nimport React__default, { PureComponent, Component } from 'react';\nimport { isUsingStaticRendering, observer as observer$1 } from 'mobx-react-lite';\nexport { Observer, enableStaticRendering, isUsingStaticRendering, observerBatching, useAsObservableSource, useLocalObservable, useLocalStore, useObserver, useStaticRendering } from 'mobx-react-lite';\n\nvar symbolId = 0;\n\nfunction createSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol(name);\n }\n\n var symbol = \"__$mobx-react \" + name + \" (\" + symbolId + \")\";\n symbolId++;\n return symbol;\n}\n\nvar createdSymbols = {};\nfunction newSymbol(name) {\n if (!createdSymbols[name]) {\n createdSymbols[name] = createSymbol(name);\n }\n\n return createdSymbols[name];\n}\nfunction shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n} // based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\n\n\nvar hoistBlackList = {\n $$typeof: 1,\n render: 1,\n compare: 1,\n type: 1,\n childContextTypes: 1,\n contextType: 1,\n contextTypes: 1,\n defaultProps: 1,\n getDefaultProps: 1,\n getDerivedStateFromError: 1,\n getDerivedStateFromProps: 1,\n mixins: 1,\n displayName: 1,\n propTypes: 1\n};\nfunction copyStaticProperties(base, target) {\n var protoProps = Object.getOwnPropertyNames(Object.getPrototypeOf(base));\n Object.getOwnPropertyNames(base).forEach(function (key) {\n if (!hoistBlackList[key] && protoProps.indexOf(key) === -1) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\n }\n });\n}\n/**\r\n * Helper to set `prop` to `this` as non-enumerable (hidden prop)\r\n * @param target\r\n * @param prop\r\n * @param value\r\n */\n\nfunction setHiddenProp(target, prop, value) {\n if (!Object.hasOwnProperty.call(target, prop)) {\n Object.defineProperty(target, prop, {\n enumerable: false,\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n target[prop] = value;\n }\n}\n/**\r\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\r\n * and the handler provided by mobx-react\r\n */\n\nvar mobxMixins = /*#__PURE__*/newSymbol(\"patchMixins\");\nvar mobxPatchedDefinition = /*#__PURE__*/newSymbol(\"patchedDefinition\");\n\nfunction getMixins(target, methodName) {\n var mixins = target[mobxMixins] = target[mobxMixins] || {};\n var methodMixins = mixins[methodName] = mixins[methodName] || {};\n methodMixins.locks = methodMixins.locks || 0;\n methodMixins.methods = methodMixins.methods || [];\n return methodMixins;\n}\n\nfunction wrapper(realMethod, mixins) {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++;\n\n try {\n var retVal;\n\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args);\n }\n\n return retVal;\n } finally {\n mixins.locks--;\n\n if (mixins.locks === 0) {\n mixins.methods.forEach(function (mx) {\n mx.apply(_this, args);\n });\n }\n }\n}\n\nfunction wrapFunction(realMethod, mixins) {\n var fn = function fn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n wrapper.call.apply(wrapper, [this, realMethod, mixins].concat(args));\n };\n\n return fn;\n}\n\nfunction patch(target, methodName, mixinMethod) {\n var mixins = getMixins(target, methodName);\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod);\n }\n\n var oldDefinition = Object.getOwnPropertyDescriptor(target, methodName);\n\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return;\n }\n\n var originalMethod = target[methodName];\n var newDefinition = createDefinition(target, methodName, oldDefinition ? oldDefinition.enumerable : undefined, mixins, originalMethod);\n Object.defineProperty(target, methodName, newDefinition);\n}\n\nfunction createDefinition(target, methodName, enumerable, mixins, originalMethod) {\n var _ref;\n\n var wrappedFunc = wrapFunction(originalMethod, mixins);\n return _ref = {}, _ref[mobxPatchedDefinition] = true, _ref.get = function get() {\n return wrappedFunc;\n }, _ref.set = function set(value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins);\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n var newDefinition = createDefinition(this, methodName, enumerable, mixins, value);\n Object.defineProperty(this, methodName, newDefinition);\n }\n }, _ref.configurable = true, _ref.enumerable = enumerable, _ref;\n}\n\nvar mobxAdminProperty = $mobx || \"$mobx\"; // BC\n\nvar mobxObserverProperty = /*#__PURE__*/newSymbol(\"isMobXReactObserver\");\nvar mobxIsUnmounted = /*#__PURE__*/newSymbol(\"isUnmounted\");\nvar skipRenderKey = /*#__PURE__*/newSymbol(\"skipRender\");\nvar isForcingUpdateKey = /*#__PURE__*/newSymbol(\"isForcingUpdate\");\nfunction makeClassComponentObserver(componentClass) {\n var target = componentClass.prototype;\n\n if (componentClass[mobxObserverProperty]) {\n var displayName = getDisplayName(target);\n console.warn(\"The provided component class (\" + displayName + \")\\n has already been declared as an observer component.\");\n } else {\n componentClass[mobxObserverProperty] = true;\n }\n\n if (target.componentWillReact) {\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\");\n }\n\n if (componentClass[\"__proto__\"] !== PureComponent) {\n if (!target.shouldComponentUpdate) {\n target.shouldComponentUpdate = observerSCU;\n } else if (target.shouldComponentUpdate !== observerSCU) {\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\"It is not allowed to use shouldComponentUpdate in observer based components.\");\n }\n } // this.props and this.state are made observable, just to make sure @computed fields that\n // are defined inside the component, and which rely on state or props, re-compute if state or props change\n // (otherwise the computed wouldn't update and become stale on props change, since props are not observable)\n // However, this solution is not without it's own problems: https://github.com/mobxjs/mobx-react/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aobservable-props-or-not+\n\n\n makeObservableProp(target, \"props\");\n makeObservableProp(target, \"state\");\n\n if (componentClass.contextType) {\n makeObservableProp(target, \"context\");\n }\n\n var originalRender = target.render;\n\n if (typeof originalRender !== \"function\") {\n var _displayName = getDisplayName(target);\n\n throw new Error(\"[mobx-react] class component (\" + _displayName + \") is missing `render` method.\" + \"\\n`observer` requires `render` being a function defined on prototype.\" + \"\\n`render = () => {}` or `render = function() {}` is not supported.\");\n }\n\n target.render = function () {\n this.render = isUsingStaticRendering() ? originalRender : createReactiveRender.call(this, originalRender);\n return this.render();\n };\n\n patch(target, \"componentDidMount\", function () {\n this[mobxIsUnmounted] = false;\n\n if (!this.render[mobxAdminProperty]) {\n // Reaction is re-created automatically during render, but a component can re-mount and skip render #3395.\n // To re-create the reaction and re-subscribe to relevant observables we have to force an update.\n Component.prototype.forceUpdate.call(this);\n }\n });\n patch(target, \"componentWillUnmount\", function () {\n if (isUsingStaticRendering()) {\n return;\n }\n\n var reaction = this.render[mobxAdminProperty];\n\n if (reaction) {\n reaction.dispose(); // Forces reaction to be re-created on next render\n\n this.render[mobxAdminProperty] = null;\n } else {\n // Render may have been hot-swapped and/or overridden by a subclass.\n var _displayName2 = getDisplayName(this);\n\n console.warn(\"The reactive render of an observer class component (\" + _displayName2 + \")\\n was overridden after MobX attached. This may result in a memory leak if the\\n overridden reactive render was not properly disposed.\");\n }\n\n this[mobxIsUnmounted] = true;\n });\n return componentClass;\n} // Generates a friendly name for debugging\n\nfunction getDisplayName(comp) {\n return comp.displayName || comp.name || comp.constructor && (comp.constructor.displayName || comp.constructor.name) || \"<component>\";\n}\n\nfunction createReactiveRender(originalRender) {\n var _this = this;\n\n /**\r\n * If props are shallowly modified, react will render anyway,\r\n * so atom.reportChanged() should not result in yet another re-render\r\n */\n setHiddenProp(this, skipRenderKey, false);\n /**\r\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\r\n * so detect these changes\r\n */\n\n setHiddenProp(this, isForcingUpdateKey, false);\n var initialName = getDisplayName(this);\n var boundOriginalRender = originalRender.bind(this);\n var isRenderingPending = false;\n\n var createReaction = function createReaction() {\n var reaction = new Reaction(initialName + \".render()\", function () {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.test.tsx)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true;\n\n if (_this[mobxIsUnmounted] !== true) {\n var hasError = true;\n\n try {\n setHiddenProp(_this, isForcingUpdateKey, true);\n\n if (!_this[skipRenderKey]) {\n Component.prototype.forceUpdate.call(_this);\n }\n\n hasError = false;\n } finally {\n setHiddenProp(_this, isForcingUpdateKey, false);\n\n if (hasError) {\n reaction.dispose(); // Forces reaction to be re-created on next render\n\n _this.render[mobxAdminProperty] = null;\n }\n }\n }\n }\n });\n reaction[\"reactComponent\"] = _this;\n return reaction;\n };\n\n function reactiveRender() {\n var _reactiveRender$mobxA;\n\n isRenderingPending = false; // Create reaction lazily to support re-mounting #3395\n\n var reaction = (_reactiveRender$mobxA = reactiveRender[mobxAdminProperty]) != null ? _reactiveRender$mobxA : reactiveRender[mobxAdminProperty] = createReaction();\n var exception = undefined;\n var rendering = undefined;\n reaction.track(function () {\n try {\n // TODO@major\n // Optimization: replace with _allowStateChangesStart/End (not available in mobx@6.0.0)\n rendering = _allowStateChanges(false, boundOriginalRender);\n } catch (e) {\n exception = e;\n }\n });\n\n if (exception) {\n throw exception;\n }\n\n return rendering;\n }\n\n return reactiveRender;\n}\n\nfunction observerSCU(nextProps, nextState) {\n if (isUsingStaticRendering()) {\n console.warn(\"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\");\n } // update on any state changes (as is the default)\n\n\n if (this.state !== nextState) {\n return true;\n } // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n\n\n return !shallowEqual(this.props, nextProps);\n}\n\nfunction makeObservableProp(target, propName) {\n var valueHolderKey = newSymbol(\"reactProp_\" + propName + \"_valueHolder\");\n var atomHolderKey = newSymbol(\"reactProp_\" + propName + \"_atomHolder\");\n\n function getAtom() {\n if (!this[atomHolderKey]) {\n setHiddenProp(this, atomHolderKey, createAtom(\"reactive \" + propName));\n }\n\n return this[atomHolderKey];\n }\n\n Object.defineProperty(target, propName, {\n configurable: true,\n enumerable: true,\n get: function get() {\n var prevReadState = false; // Why this check? BC?\n // @ts-expect-error\n\n if (_allowStateReadsStart && _allowStateReadsEnd) {\n prevReadState = _allowStateReadsStart(true);\n }\n\n getAtom.call(this).reportObserved(); // Why this check? BC?\n // @ts-expect-error\n\n if (_allowStateReadsStart && _allowStateReadsEnd) {\n _allowStateReadsEnd(prevReadState);\n }\n\n return this[valueHolderKey];\n },\n set: function set(v) {\n if (!this[isForcingUpdateKey] && !shallowEqual(this[valueHolderKey], v)) {\n setHiddenProp(this, valueHolderKey, v);\n setHiddenProp(this, skipRenderKey, true);\n getAtom.call(this).reportChanged();\n setHiddenProp(this, skipRenderKey, false);\n } else {\n setHiddenProp(this, valueHolderKey, v);\n }\n }\n });\n}\n\n/**\r\n * Observer function / decorator\r\n */\n\nfunction observer(component) {\n if (component[\"isMobxInjector\"] === true) {\n console.warn(\"Mobx observer: You are trying to use `observer` on a component that already has `inject`. Please apply `observer` before applying `inject`\");\n }\n\n if (Object.prototype.isPrototypeOf.call(Component, component) || Object.prototype.isPrototypeOf.call(PureComponent, component)) {\n // Class component\n return makeClassComponentObserver(component);\n } else {\n // Function component\n return observer$1(component);\n }\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"children\"];\nvar MobXProviderContext = /*#__PURE__*/React__default.createContext({});\nfunction Provider(props) {\n var children = props.children,\n stores = _objectWithoutPropertiesLoose(props, _excluded);\n\n var parentValue = React__default.useContext(MobXProviderContext);\n var mutableProviderRef = React__default.useRef(_extends({}, parentValue, stores));\n var value = mutableProviderRef.current;\n\n if (process.env.NODE_ENV !== \"production\") {\n var newValue = _extends({}, value, stores); // spread in previous state for the context based stores\n\n\n if (!shallowEqual(value, newValue)) {\n throw new Error(\"MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error.\");\n }\n }\n\n return React__default.createElement(MobXProviderContext.Provider, {\n value: value\n }, children);\n}\nProvider.displayName = \"MobXProvider\";\n\n/**\r\n * Store Injection\r\n */\n\nfunction createStoreInjector(grabStoresFn, component, injectNames, makeReactive) {\n // Support forward refs\n var Injector = React__default.forwardRef(function (props, ref) {\n var newProps = _extends({}, props);\n\n var context = React__default.useContext(MobXProviderContext);\n Object.assign(newProps, grabStoresFn(context || {}, newProps) || {});\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return React__default.createElement(component, newProps);\n });\n if (makeReactive) Injector = observer(Injector);\n Injector[\"isMobxInjector\"] = true; // assigned late to suppress observer warning\n // Static fields from component should be visible on the generated Injector\n\n copyStaticProperties(component, Injector);\n Injector[\"wrappedComponent\"] = component;\n Injector.displayName = getInjectName(component, injectNames);\n return Injector;\n}\n\nfunction getInjectName(component, injectNames) {\n var displayName;\n var componentName = component.displayName || component.name || component.constructor && component.constructor.name || \"Component\";\n if (injectNames) displayName = \"inject-with-\" + injectNames + \"(\" + componentName + \")\";else displayName = \"inject(\" + componentName + \")\";\n return displayName;\n}\n\nfunction grabStoresByName(storeNames) {\n return function (baseStores, nextProps) {\n storeNames.forEach(function (storeName) {\n if (storeName in nextProps // prefer props over stores\n ) return;\n if (!(storeName in baseStores)) throw new Error(\"MobX injector: Store '\" + storeName + \"' is not available! Make sure it is provided by some Provider\");\n nextProps[storeName] = baseStores[storeName];\n });\n return nextProps;\n };\n}\n/**\r\n * higher order component that injects stores to a child.\r\n * takes either a varargs list of strings, which are stores read from the context,\r\n * or a function that manually maps the available stores from the context to props:\r\n * storesToProps(mobxStores, props, context) => newProps\r\n */\n\n\nfunction inject() {\n for (var _len = arguments.length, storeNames = new Array(_len), _key = 0; _key < _len; _key++) {\n storeNames[_key] = arguments[_key];\n }\n\n if (typeof arguments[0] === \"function\") {\n var grabStoresFn = arguments[0];\n return function (componentClass) {\n return createStoreInjector(grabStoresFn, componentClass, grabStoresFn.name, true);\n };\n } else {\n return function (componentClass) {\n return createStoreInjector(grabStoresByName(storeNames), componentClass, storeNames.join(\"-\"), false);\n };\n }\n}\n\nvar protoStoreKey = /*#__PURE__*/newSymbol(\"disposeOnUnmountProto\");\nvar instStoreKey = /*#__PURE__*/newSymbol(\"disposeOnUnmountInst\");\n\nfunction runDisposersOnWillUnmount() {\n var _this = this;\n [].concat(this[protoStoreKey] || [], this[instStoreKey] || []).forEach(function (propKeyOrFunction) {\n var prop = typeof propKeyOrFunction === \"string\" ? _this[propKeyOrFunction] : propKeyOrFunction;\n\n if (prop !== undefined && prop !== null) {\n if (Array.isArray(prop)) prop.map(function (f) {\n return f();\n });else prop();\n }\n });\n}\n\nfunction disposeOnUnmount(target, propertyKeyOrFunction) {\n if (Array.isArray(propertyKeyOrFunction)) {\n return propertyKeyOrFunction.map(function (fn) {\n return disposeOnUnmount(target, fn);\n });\n }\n\n var c = Object.getPrototypeOf(target).constructor;\n var c2 = Object.getPrototypeOf(target.constructor); // Special case for react-hot-loader\n\n var c3 = Object.getPrototypeOf(Object.getPrototypeOf(target));\n\n if (!(c === React__default.Component || c === React__default.PureComponent || c2 === React__default.Component || c2 === React__default.PureComponent || c3 === React__default.Component || c3 === React__default.PureComponent)) {\n throw new Error(\"[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.\");\n }\n\n if (typeof propertyKeyOrFunction !== \"string\" && typeof propertyKeyOrFunction !== \"function\" && !Array.isArray(propertyKeyOrFunction)) {\n throw new Error(\"[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.\");\n } // decorator's target is the prototype, so it doesn't have any instance properties like props\n\n\n var isDecorator = typeof propertyKeyOrFunction === \"string\"; // add property key / function we want run (disposed) to the store\n\n var componentWasAlreadyModified = !!target[protoStoreKey] || !!target[instStoreKey];\n var store = isDecorator ? // decorators are added to the prototype store\n target[protoStoreKey] || (target[protoStoreKey] = []) : // functions are added to the instance store\n target[instStoreKey] || (target[instStoreKey] = []);\n store.push(propertyKeyOrFunction); // tweak the component class componentWillUnmount if not done already\n\n if (!componentWasAlreadyModified) {\n patch(target, \"componentWillUnmount\", runDisposersOnWillUnmount);\n } // return the disposer as is if invoked as a non decorator\n\n\n if (typeof propertyKeyOrFunction !== \"string\") {\n return propertyKeyOrFunction;\n }\n}\n\nfunction createChainableTypeChecker(validator) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n for (var _len = arguments.length, rest = new Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n rest[_key - 6] = arguments[_key];\n }\n\n return untracked(function () {\n componentName = componentName || \"<<anonymous>>\";\n propFullName = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n var actual = props[propName] === null ? \"null\" : \"undefined\";\n return new Error(\"The \" + location + \" `\" + propFullName + \"` is marked as required \" + \"in `\" + componentName + \"`, but its value is `\" + actual + \"`.\");\n }\n\n return null;\n } else {\n // @ts-ignore rest arg is necessary for some React internals - fails tests otherwise\n return validator.apply(void 0, [props, propName, componentName, location, propFullName].concat(rest));\n }\n });\n }\n\n var chainedCheckType = checkType.bind(null, false); // Add isRequired to satisfy Requirable\n\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n} // Copied from React.PropTypes\n\n\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true;\n } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\n\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true;\n } // Fallback for non-spec compliant Symbols which are polyfilled.\n\n\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n} // Copied from React.PropTypes\n\n\nfunction getPropType(propValue) {\n var propType = typeof propValue;\n\n if (Array.isArray(propValue)) {\n return \"array\";\n }\n\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return \"object\";\n }\n\n if (isSymbol(propType, propValue)) {\n return \"symbol\";\n }\n\n return propType;\n} // This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\n\n\nfunction getPreciseType(propValue) {\n var propType = getPropType(propValue);\n\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\";\n } else if (propValue instanceof RegExp) {\n return \"regexp\";\n }\n }\n\n return propType;\n}\n\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n return untracked(function () {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) return null;\n }\n\n var mobxChecker;\n\n switch (mobxType) {\n case \"Array\":\n mobxChecker = isObservableArray;\n break;\n\n case \"Object\":\n mobxChecker = isObservableObject;\n break;\n\n case \"Map\":\n mobxChecker = isObservableMap;\n break;\n\n default:\n throw new Error(\"Unexpected mobxType: \" + mobxType);\n }\n\n var propValue = props[propName];\n\n if (!mobxChecker(propValue)) {\n var preciseType = getPreciseType(propValue);\n var nativeTypeExpectationMessage = allowNativeType ? \" or javascript `\" + mobxType.toLowerCase() + \"`\" : \"\";\n return new Error(\"Invalid prop `\" + propFullName + \"` of type `\" + preciseType + \"` supplied to\" + \" `\" + componentName + \"`, expected `mobx.Observable\" + mobxType + \"`\" + nativeTypeExpectationMessage + \".\");\n }\n\n return null;\n });\n });\n}\n\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 5 ? _len2 - 5 : 0), _key2 = 5; _key2 < _len2; _key2++) {\n rest[_key2 - 5] = arguments[_key2];\n }\n\n return untracked(function () {\n if (typeof typeChecker !== \"function\") {\n return new Error(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has \" + \"invalid PropType notation.\");\n } else {\n var error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(props, propName, componentName, location, propFullName);\n if (error instanceof Error) return error;\n var propValue = props[propName];\n\n for (var i = 0; i < propValue.length; i++) {\n error = typeChecker.apply(void 0, [propValue, i, componentName, location, propFullName + \"[\" + i + \"]\"].concat(rest));\n if (error instanceof Error) return error;\n }\n\n return null;\n }\n });\n });\n}\n\nvar observableArray = /*#__PURE__*/createObservableTypeCheckerCreator(false, \"Array\");\nvar observableArrayOf = /*#__PURE__*/createObservableArrayOfTypeChecker.bind(null, false);\nvar observableMap = /*#__PURE__*/createObservableTypeCheckerCreator(false, \"Map\");\nvar observableObject = /*#__PURE__*/createObservableTypeCheckerCreator(false, \"Object\");\nvar arrayOrObservableArray = /*#__PURE__*/createObservableTypeCheckerCreator(true, \"Array\");\nvar arrayOrObservableArrayOf = /*#__PURE__*/createObservableArrayOfTypeChecker.bind(null, true);\nvar objectOrObservableObject = /*#__PURE__*/createObservableTypeCheckerCreator(true, \"Object\");\nvar PropTypes = {\n observableArray: observableArray,\n observableArrayOf: observableArrayOf,\n observableMap: observableMap,\n observableObject: observableObject,\n arrayOrObservableArray: arrayOrObservableArray,\n arrayOrObservableArrayOf: arrayOrObservableArrayOf,\n objectOrObservableObject: objectOrObservableObject\n};\n\nif (!Component) throw new Error(\"mobx-react requires React to be available\");\nif (!observable) throw new Error(\"mobx-react requires mobx to be available\");\n\nexport { MobXProviderContext, PropTypes, Provider, disposeOnUnmount, inject, observer };\n//# sourceMappingURL=mobxreact.esm.js.map\n","var niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = process.env.NODE_ENV !== \"production\" ? niceErrors : {};\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (process.env.NODE_ENV !== \"production\") {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die(process.env.NODE_ENV !== \"production\" ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : \"Proxy not available\");\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if (process.env.NODE_ENV !== \"production\" && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if (process.env.NODE_ENV !== \"production\" && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if (process.env.NODE_ENV !== \"production\" && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if (process.env.NODE_ENV !== \"production\" && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"Atom@\" + getNextId() : \"Atom\";\n }\n this.name_ = void 0;\n this.isPendingUnobservation = false;\n this.isBeingObserved = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (process.env.NODE_ENV !== \"production\") {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if (process.env.NODE_ENV !== \"production\" && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if (process.env.NODE_ENV !== \"production\" && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if (process.env.NODE_ENV !== \"production\" && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (process.env.NODE_ENV !== \"production\") {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n // Backwards/Legacy behavior, expects makeObservable(this)\n if (kind == \"field\") {\n addInitializer(function () {\n storeAnnotation(this, name, ann);\n });\n return;\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if (process.env.NODE_ENV !== \"production\" && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (process.env.NODE_ENV !== \"production\") {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if (process.env.NODE_ENV !== \"production\" && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (process.env.NODE_ENV !== \"production\") {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = process.env.NODE_ENV !== \"production\" ? adm.name_ + \".\" + key.toString() : \"ObservableObject.\" + key.toString());\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if (process.env.NODE_ENV !== \"production\" && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (process.env.NODE_ENV !== \"production\") {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, process.env.NODE_ENV !== \"production\" ? adm.name_ + \".\" + name.toString() : \"ObservableObject.\" + name.toString(), false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if (process.env.NODE_ENV !== \"production\" && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = process.env.NODE_ENV !== \"production\" && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if (process.env.NODE_ENV !== \"production\" && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if (process.env.NODE_ENV !== \"production\" && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableValue@\" + getNextId() : \"ObservableValue\";\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if (process.env.NODE_ENV !== \"production\" && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\nfunction getFlag(flags, mask) {\n return !!(flags & mask);\n}\nfunction setFlag(flags, mask, newValue) {\n if (newValue) {\n flags |= mask;\n } else {\n flags &= ~mask;\n }\n return flags;\n}\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // N.B: unminified as it is used by MST\n\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.flags_ = 0;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || (process.env.NODE_ENV !== \"production\" ? \"ComputedValue@\" + getNextId() : \"ComputedValue\");\n if (options.set) {\n this.setter_ = createAction(process.env.NODE_ENV !== \"production\" ? this.name_ + \"-setter\" : \"ComputedValue-setter\", options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n // to check for cycles\n ;\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */\n _proto.get = function get() {\n if (this.isComputing) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter) {\n die(33, this.name_);\n }\n this.isRunningSetter = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if (process.env.NODE_ENV !== \"production\" && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if (process.env.NODE_ENV !== \"production\" && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n _createClass(ComputedValue, [{\n key: \"isComputing\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isComputingMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isComputingMask_, newValue);\n }\n }, {\n key: \"isRunningSetter\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isRunningSetterMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isRunningSetterMask_, newValue);\n }\n }, {\n key: \"isBeingObserved\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isBeingObservedMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isBeingObservedMask_, newValue);\n }\n }, {\n key: \"isPendingUnobservation\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isPendingUnobservationMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isPendingUnobservationMask_, newValue);\n }\n }]);\n return ComputedValue;\n}();\nComputedValue.isComputingMask_ = 1;\nComputedValue.isRunningSetterMask_ = 2;\nComputedValue.isBeingObservedMask_ = 4;\nComputedValue.isPendingUnobservationMask_ = 8;\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if (process.env.NODE_ENV !== \"production\" && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved && globalState.trackingContext) {\n observable.isBeingObserved = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if (process.env.NODE_ENV !== \"production\" && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if (process.env.NODE_ENV !== \"production\" && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"Reaction@\" + getNextId() : \"Reaction\";\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if (process.env.NODE_ENV !== \"production\" && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if (process.env.NODE_ENV !== \"production\" && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if (process.env.NODE_ENV !== \"production\" && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = process.env.NODE_ENV !== \"production\" ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : \"[mobx] uncaught error in '\" + this + \"'\";\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if (process.env.NODE_ENV !== \"production\" && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error(process.env.NODE_ENV !== \"production\" ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : \"[mobx] cycle in reaction: \" + allReactions[0]);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return process.env.NODE_ENV !== \"production\" && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n } // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\"[mobx.spy] Is a no-op in production builds\");\n return function () {};\n } else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"<unnamed action>\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (process.env.NODE_ENV !== \"production\") {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : process.env.NODE_ENV !== \"production\" ? view.name || \"Autorun@\" + getNextId() : \"Autorun\";\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : process.env.NODE_ENV !== \"production\" ? \"Reaction@\" + getNextId() : \"Reaction\";\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if (process.env.NODE_ENV !== \"production\" && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if (process.env.NODE_ENV !== \"production\" && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"<unnamed flow>\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (process.env.NODE_ENV !== \"production\") {\n return die(\"Expected observable map, object or array as first array\");\n }\n if (process.env.NODE_ENV !== \"production\" && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if (process.env.NODE_ENV !== \"production\" && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if (process.env.NODE_ENV !== \"production\" && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if (process.env.NODE_ENV !== \"production\" && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if (process.env.NODE_ENV !== \"production\" && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = process.env.NODE_ENV !== \"production\" ? opts.name || \"When@\" + getNextId() : \"When\";\n var effectAction = createAction(process.env.NODE_ENV !== \"production\" ? opts.name + \"-effect\" : \"When-effect\", effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if (process.env.NODE_ENV !== \"production\" && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if (process.env.NODE_ENV !== \"production\" && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if (process.env.NODE_ENV !== \"production\" && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (process.env.NODE_ENV !== \"production\") {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (process.env.NODE_ENV !== \"production\") {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if (process.env.NODE_ENV !== \"production\" && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if (process.env.NODE_ENV !== \"production\" && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set<PropertyKey>()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, process.env.NODE_ENV !== \"production\" ? name + \"[..]\" : \"ObservableArray[..]\");\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || process.env.NODE_ENV !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn(process.env.NODE_ENV !== \"production\" ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : \"[mobx] Out of bounds read: \" + index);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableMap@\" + getNextId() : \"ObservableMap\";\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom(process.env.NODE_ENV !== \"production\" ? _this.name_ + \".keys()\" : \"ObservableMap.keys()\");\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableMap.key?\", false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, process.env.NODE_ENV !== \"production\" ? _this4.name_ + \".\" + stringifyKey(key) : \"ObservableMap.key\", false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableSet@\" + getNextId() : \"ObservableSet\";\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom(process.env.NODE_ENV !== \"production\" ? this.name_ + \".keys\" : \"ObservableObject.keys\");\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if (process.env.NODE_ENV !== \"production\" && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (process.env.NODE_ENV !== \"production\") {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableObject.key?\", false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\", false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\");\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (process.env.NODE_ENV !== \"production\") {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if (process.env.NODE_ENV !== \"production\" && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if (process.env.NODE_ENV !== \"production\" && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if (process.env.NODE_ENV !== \"production\" && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : process.env.NODE_ENV !== \"production\" ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : \"ObservableObject\";\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (process.env.NODE_ENV !== \"production\") {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if (process.env.NODE_ENV !== \"production\" && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if (process.env.NODE_ENV !== \"production\" && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\nexport { $mobx, FlowCancellationError, ObservableMap, ObservableSet, Reaction, allowStateChanges as _allowStateChanges, runInAction as _allowStateChangesInsideComputed, allowStateReadsEnd as _allowStateReadsEnd, allowStateReadsStart as _allowStateReadsStart, autoAction as _autoAction, _endAction, getAdministration as _getAdministration, getGlobalState as _getGlobalState, interceptReads as _interceptReads, isComputingDerivation as _isComputingDerivation, resetGlobalState as _resetGlobalState, _startAction, action, autorun, comparer, computed, configure, createAtom, apiDefineProperty as defineProperty, entries, extendObservable, flow, flowResult, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isObservableValue as isBoxedObservable, isComputed, isComputedProp, isFlow, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, makeAutoObservable, makeObservable, observable, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, override, apiOwnKeys as ownKeys, reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when };\n//# sourceMappingURL=mobx.esm.js.map\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Collapse = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Collapse = /*#__PURE__*/function (_React$Component) {\n _inherits(Collapse, _React$Component);\n\n var _super = _createSuper(Collapse);\n\n function Collapse(props) {\n var _this;\n\n _classCallCheck(this, Collapse);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"timeout\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"container\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"content\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function () {\n clearTimeout(_this.timeout);\n\n if (!_this.container || !_this.content) {\n return;\n }\n\n var _this$props = _this.props,\n isOpened = _this$props.isOpened,\n checkTimeout = _this$props.checkTimeout;\n var containerHeight = Math.floor(_this.container.clientHeight);\n var contentHeight = Math.floor(_this.content.clientHeight);\n var isFullyOpened = isOpened && Math.abs(contentHeight - containerHeight) <= 1;\n var isFullyClosed = !isOpened && Math.abs(containerHeight) <= 1;\n\n if (isFullyOpened || isFullyClosed) {\n _this.onRest({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n } else {\n _this.onWork({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n\n _this.timeout = setTimeout(function () {\n return _this.onResize();\n }, checkTimeout);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRest\", function (_ref) {\n var isFullyOpened = _ref.isFullyOpened,\n isFullyClosed = _ref.isFullyClosed,\n isOpened = _ref.isOpened,\n containerHeight = _ref.containerHeight,\n contentHeight = _ref.contentHeight;\n\n if (!_this.container || !_this.content) {\n return;\n }\n\n var hasOpened = isOpened && _this.container.style.height === \"\".concat(contentHeight, \"px\");\n var hasClosed = !isOpened && _this.container.style.height === '0px';\n\n if (hasOpened || hasClosed) {\n _this.container.style.overflow = isOpened ? 'initial' : 'hidden';\n _this.container.style.height = isOpened ? 'auto' : '0px';\n var onRest = _this.props.onRest;\n\n if (onRest) {\n onRest({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWork\", function (_ref2) {\n var isFullyOpened = _ref2.isFullyOpened,\n isFullyClosed = _ref2.isFullyClosed,\n isOpened = _ref2.isOpened,\n containerHeight = _ref2.containerHeight,\n contentHeight = _ref2.contentHeight;\n\n if (!_this.container || !_this.content) {\n return;\n }\n\n var isOpenining = isOpened && _this.container.style.height === \"\".concat(contentHeight, \"px\");\n var isClosing = !isOpened && _this.container.style.height === '0px';\n\n if (isOpenining || isClosing) {\n // No need to do any work\n return;\n }\n\n _this.container.style.overflow = 'hidden';\n _this.container.style.height = isOpened ? \"\".concat(contentHeight, \"px\") : '0px';\n var onWork = _this.props.onWork;\n\n if (onWork) {\n onWork({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRefContainer\", function (container) {\n _this.container = container;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRefContent\", function (content) {\n _this.content = content;\n });\n\n if (props.initialStyle) {\n _this.initialStyle = props.initialStyle;\n } else {\n _this.initialStyle = props.isOpened ? {\n height: 'auto',\n overflow: 'initial'\n } : {\n height: '0px',\n overflow: 'hidden'\n };\n }\n\n return _this;\n }\n\n _createClass(Collapse, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.onResize();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this$props2 = this.props,\n theme = _this$props2.theme,\n isOpened = _this$props2.isOpened,\n children = _this$props2.children;\n return children !== nextProps.children || isOpened !== nextProps.isOpened || Object.keys(theme).some(function (c) {\n return theme[c] !== nextProps.theme[c];\n });\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate() {\n if (!this.container || !this.content) {\n return null;\n }\n\n if (this.container.style.height === 'auto') {\n var contentHeight = this.content.clientHeight;\n this.container.style.height = \"\".concat(contentHeight, \"px\");\n }\n\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onResize();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.timeout);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n theme = _this$props3.theme,\n children = _this$props3.children,\n isOpened = _this$props3.isOpened;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: this.onRefContainer,\n className: theme.collapse,\n style: this.initialStyle,\n \"aria-hidden\": !isOpened\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: this.onRefContent,\n className: theme.content\n }, children));\n }\n }]);\n\n return Collapse;\n}(_react[\"default\"].Component);\n\nexports.Collapse = Collapse;\n\n_defineProperty(Collapse, \"defaultProps\", {\n theme: {\n collapse: 'ReactCollapse--collapse',\n content: 'ReactCollapse--content'\n },\n initialStyle: undefined,\n onRest: undefined,\n onWork: undefined,\n checkTimeout: 50\n});","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UnmountClosed = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Collapse = require(\"./Collapse\");\n\nvar _excluded = [\"isOpened\"],\n _excluded2 = [\"isOpened\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar UnmountClosed = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(UnmountClosed, _React$PureComponent);\n\n var _super = _createSuper(UnmountClosed);\n\n function UnmountClosed(props) {\n var _this;\n\n _classCallCheck(this, UnmountClosed);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onWork\", function (_ref) {\n var isOpened = _ref.isOpened,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n _this.setState({\n isResting: false,\n isOpened: isOpened\n });\n\n var onWork = _this.props.onWork;\n\n if (onWork) {\n onWork(_objectSpread({\n isOpened: isOpened\n }, rest));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRest\", function (_ref2) {\n var isOpened = _ref2.isOpened,\n rest = _objectWithoutProperties(_ref2, _excluded2);\n\n _this.setState({\n isResting: true,\n isOpened: isOpened,\n isInitialRender: false\n });\n\n var onRest = _this.props.onRest;\n\n if (onRest) {\n onRest(_objectSpread({\n isOpened: isOpened\n }, rest));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInitialStyle\", function () {\n var _this$state = _this.state,\n isOpened = _this$state.isOpened,\n isInitialRender = _this$state.isInitialRender;\n\n if (isInitialRender) {\n return isOpened ? {\n height: 'auto',\n overflow: 'initial'\n } : {\n height: '0px',\n overflow: 'hidden'\n };\n }\n\n return {\n height: '0px',\n overflow: 'hidden'\n };\n });\n\n _this.state = {\n isResting: true,\n isOpened: props.isOpened,\n isInitialRender: true\n };\n return _this;\n }\n\n _createClass(UnmountClosed, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var isOpened = this.props.isOpened;\n\n if (prevProps.isOpened !== isOpened) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isResting: false,\n isOpened: isOpened,\n isInitialRender: false\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$state2 = this.state,\n isResting = _this$state2.isResting,\n isOpened = _this$state2.isOpened;\n return isResting && !isOpened ? null : /*#__PURE__*/_react[\"default\"].createElement(_Collapse.Collapse, _extends({}, this.props, {\n initialStyle: this.getInitialStyle(),\n onWork: this.onWork,\n onRest: this.onRest\n }));\n }\n }]);\n\n return UnmountClosed;\n}(_react[\"default\"].PureComponent);\n\nexports.UnmountClosed = UnmountClosed;\n\n_defineProperty(UnmountClosed, \"defaultProps\", {\n onWork: undefined,\n onRest: undefined\n});","\"use strict\";\n\nvar _require = require('./Collapse'),\n Collapse = _require.Collapse;\n\nvar _require2 = require('./UnmountClosed'),\n UnmountClosed = _require2.UnmountClosed; // Default export\n\n\nmodule.exports = UnmountClosed; // Extra \"named exports\"\n\nUnmountClosed.Collapse = Collapse;\nUnmountClosed.UnmountClosed = UnmountClosed;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar UA = new UAParser();\nvar browser = UA.getBrowser();\nvar cpu = UA.getCPU();\nvar device = UA.getDevice();\nvar engine = UA.getEngine();\nvar os = UA.getOS();\nvar ua = UA.getUA();\n\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: \"Firefox\",\n Opera: \"Opera\",\n Yandex: \"Yandex\",\n Safari: \"Safari\",\n InternetExplorer: \"Internet Explorer\",\n Edge: \"Edge\",\n Chromium: \"Chromium\",\n Ie: 'IE',\n MobileSafari: \"Mobile Safari\",\n EdgeChromium: \"Edge Chromium\",\n MIUI: \"MIUI Browser\",\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: \"Android\",\n WindowsPhone: \"Windows Phone\",\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar initialData = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\nvar checkType = function checkType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n default:\n return initialData;\n }\n};\nvar broPayload = function broPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar stvPayload = function stvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearPayload = function wearPayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nvar type = checkType(device.type);\n\nfunction deviceDetect() {\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable;\n\n if (isBrowser) {\n return broPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return stvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearPayload(isWearable, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType() {\n return device.type === DeviceTypes.Mobile;\n};\n\nvar isTabletType = function isTabletType() {\n return device.type === DeviceTypes.Tablet;\n};\n\nvar isMobileAndTabletType = function isMobileAndTabletType() {\n switch (device.type) {\n case DeviceTypes.Mobile:\n case DeviceTypes.Tablet:\n return true;\n\n default:\n return false;\n }\n};\n\nvar isEdgeChromiumType = function isEdgeChromiumType() {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\n\nvar isSmartTVType = function isSmartTVType() {\n return device.type === DeviceTypes.SmartTv;\n};\n\nvar isBrowserType = function isBrowserType() {\n return device.type === DeviceTypes.Browser;\n};\n\nvar isWearableType = function isWearableType() {\n return device.type === DeviceTypes.Wearable;\n};\n\nvar isConsoleType = function isConsoleType() {\n return device.type === DeviceTypes.Console;\n};\n\nvar isAndroidType = function isAndroidType() {\n return os.name === OsTypes.Android;\n};\n\nvar isWindowsType = function isWindowsType() {\n return os.name === OsTypes.Windows;\n};\n\nvar isMacOsType = function isMacOsType() {\n return os.name === OsTypes.MAC_OS;\n};\n\nvar isWinPhoneType = function isWinPhoneType() {\n return os.name === OsTypes.WindowsPhone;\n};\n\nvar isIOSType = function isIOSType() {\n return os.name === OsTypes.IOS;\n};\n\nvar isChromeType = function isChromeType() {\n return browser.name === BrowserTypes.Chrome;\n};\n\nvar isFirefoxType = function isFirefoxType() {\n return browser.name === BrowserTypes.Firefox;\n};\n\nvar isChromiumType = function isChromiumType() {\n return browser.name === BrowserTypes.Chromium;\n};\n\nvar isEdgeType = function isEdgeType() {\n return browser.name === BrowserTypes.Edge;\n};\n\nvar isYandexType = function isYandexType() {\n return browser.name === BrowserTypes.Yandex;\n};\n\nvar isSafariType = function isSafariType() {\n return browser.name === BrowserTypes.Safari || browser.name === BrowserTypes.MobileSafari;\n};\n\nvar isMobileSafariType = function isMobileSafariType() {\n return browser.name === BrowserTypes.MobileSafari;\n};\n\nvar isOperaType = function isOperaType() {\n return browser.name === BrowserTypes.Opera;\n};\n\nvar isIEType = function isIEType() {\n return browser.name === BrowserTypes.InternetExplorer || browser.name === BrowserTypes.Ie;\n};\n\nvar isMIUIType = function isMIUIType() {\n return browser.name === BrowserTypes.MIUI;\n};\n\nvar isSamsungBrowserType = function isSamsungBrowserType() {\n return browser.name === BrowserTypes.SamsungBrowser;\n};\n\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\n\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\n\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\n\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\n\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\n\nvar getBrowserFullVersion = function getBrowserFullVersion() {\n return setDefaults(browser.version);\n};\n\nvar getBrowserVersion = function getBrowserVersion() {\n return setDefaults(browser.major);\n};\n\nvar getOsVersion = function getOsVersion() {\n return setDefaults(os.version);\n};\n\nvar getOsName = function getOsName() {\n return setDefaults(os.name);\n};\n\nvar getBrowserName = function getBrowserName() {\n return setDefaults(browser.name);\n};\n\nvar getMobileVendor = function getMobileVendor() {\n return setDefaults(device.vendor);\n};\n\nvar getMobileModel = function getMobileModel() {\n return setDefaults(device.model);\n};\n\nvar getEngineName = function getEngineName() {\n return setDefaults(engine.name);\n};\n\nvar getEngineVersion = function getEngineVersion() {\n return setDefaults(engine.version);\n};\n\nvar getUseragent = function getUseragent() {\n return setDefaults(ua);\n};\n\nvar getDeviceType = function getDeviceType() {\n return setDefaults(device.type, 'browser');\n};\n\nvar isSmartTV = isSmartTVType();\nvar isConsole = isConsoleType();\nvar isWearable = isWearableType();\nvar isMobileSafari = isMobileSafariType() || getIPad13();\nvar isChromium = isChromiumType();\nvar isMobile = isMobileAndTabletType() || getIPad13();\nvar isMobileOnly = isMobileType();\nvar isTablet = isTabletType() || getIPad13();\nvar isBrowser = isBrowserType();\nvar isDesktop = isBrowserType();\nvar isAndroid = isAndroidType();\nvar isWinPhone = isWinPhoneType();\nvar isIOS = isIOSType() || getIPad13();\nvar isChrome = isChromeType();\nvar isFirefox = isFirefoxType();\nvar isSafari = isSafariType();\nvar isOpera = isOperaType();\nvar isIE = isIEType();\nvar osVersion = getOsVersion();\nvar osName = getOsName();\nvar fullBrowserVersion = getBrowserFullVersion();\nvar browserVersion = getBrowserVersion();\nvar browserName = getBrowserName();\nvar mobileVendor = getMobileVendor();\nvar mobileModel = getMobileModel();\nvar engineName = getEngineName();\nvar engineVersion = getEngineVersion();\nvar getUA = getUseragent();\nvar isEdge = isEdgeType() || isEdgeChromiumType();\nvar isYandex = isYandexType();\nvar deviceType = getDeviceType();\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType();\nvar isLegacyEdge = isEdgeType() && !isEdgeChromiumType();\nvar isWindows = isWindowsType();\nvar isMacOs = isMacOsType();\nvar isMIUI = isMIUIType();\nvar isSamsungBrowser = isSamsungBrowserType();\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n viewClassName = _ref.viewClassName,\n style = _ref.style,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n viewClassName = _ref2.viewClassName,\n style = _ref2.style,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n viewClassName = _ref3.viewClassName,\n style = _ref3.style,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n viewClassName = _ref4.viewClassName,\n style = _ref4.style,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n viewClassName = _ref5.viewClassName,\n style = _ref5.style,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n viewClassName = _ref6.viewClassName,\n style = _ref6.style,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n viewClassName = _ref7.viewClassName,\n style = _ref7.style,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n viewClassName = _ref9.viewClassName,\n style = _ref9.style,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n viewClassName = _ref10.viewClassName,\n style = _ref10.style,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n viewClassName = _ref11.viewClassName,\n style = _ref11.style,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return (\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component)\n );\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.withOrientationChange = withOrientationChange;\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports', './react-swipe'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('./react-swipe'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.reactSwipe);\n global.index = mod.exports;\n }\n})(this, function (exports, _reactSwipe) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _reactSwipe2 = _interopRequireDefault(_reactSwipe);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n exports.default = _reactSwipe2.default;\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports', 'react', 'prop-types'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('react'), require('prop-types'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.reactSwipe = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.setHasSupportToCaptureOption = setHasSupportToCaptureOption;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n function _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var supportsCaptureOption = false;\n function setHasSupportToCaptureOption(hasSupport) {\n supportsCaptureOption = hasSupport;\n }\n\n try {\n addEventListener('test', null, Object.defineProperty({}, 'capture', { get: function get() {\n setHasSupportToCaptureOption(true);\n } }));\n } catch (e) {} // eslint-disable-line no-empty\n\n function getSafeEventHandlerOpts() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { capture: true };\n\n return supportsCaptureOption ? options : options.capture;\n }\n\n /**\n * [getPosition returns a position element that works for mouse or touch events]\n * @param {[Event]} event [the received event]\n * @return {[Object]} [x and y coords]\n */\n function getPosition(event) {\n if ('touches' in event) {\n var _event$touches$ = event.touches[0],\n pageX = _event$touches$.pageX,\n pageY = _event$touches$.pageY;\n\n return { x: pageX, y: pageY };\n }\n\n var screenX = event.screenX,\n screenY = event.screenY;\n\n return { x: screenX, y: screenY };\n }\n\n var ReactSwipe = function (_Component) {\n _inherits(ReactSwipe, _Component);\n\n function ReactSwipe() {\n var _ref;\n\n _classCallCheck(this, ReactSwipe);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = ReactSwipe.__proto__ || Object.getPrototypeOf(ReactSwipe)).call.apply(_ref, [this].concat(args)));\n\n _this._handleSwipeStart = _this._handleSwipeStart.bind(_this);\n _this._handleSwipeMove = _this._handleSwipeMove.bind(_this);\n _this._handleSwipeEnd = _this._handleSwipeEnd.bind(_this);\n\n _this._onMouseDown = _this._onMouseDown.bind(_this);\n _this._onMouseMove = _this._onMouseMove.bind(_this);\n _this._onMouseUp = _this._onMouseUp.bind(_this);\n\n _this._setSwiperRef = _this._setSwiperRef.bind(_this);\n return _this;\n }\n\n _createClass(ReactSwipe, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.swiper) {\n this.swiper.addEventListener('touchmove', this._handleSwipeMove, getSafeEventHandlerOpts({\n capture: true,\n passive: false\n }));\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.swiper) {\n this.swiper.removeEventListener('touchmove', this._handleSwipeMove, getSafeEventHandlerOpts({\n capture: true,\n passive: false\n }));\n }\n }\n }, {\n key: '_onMouseDown',\n value: function _onMouseDown(event) {\n if (!this.props.allowMouseEvents) {\n return;\n }\n\n this.mouseDown = true;\n\n document.addEventListener('mouseup', this._onMouseUp);\n document.addEventListener('mousemove', this._onMouseMove);\n\n this._handleSwipeStart(event);\n }\n }, {\n key: '_onMouseMove',\n value: function _onMouseMove(event) {\n if (!this.mouseDown) {\n return;\n }\n\n this._handleSwipeMove(event);\n }\n }, {\n key: '_onMouseUp',\n value: function _onMouseUp(event) {\n this.mouseDown = false;\n\n document.removeEventListener('mouseup', this._onMouseUp);\n document.removeEventListener('mousemove', this._onMouseMove);\n\n this._handleSwipeEnd(event);\n }\n }, {\n key: '_handleSwipeStart',\n value: function _handleSwipeStart(event) {\n var _getPosition = getPosition(event),\n x = _getPosition.x,\n y = _getPosition.y;\n\n this.moveStart = { x: x, y: y };\n this.props.onSwipeStart(event);\n }\n }, {\n key: '_handleSwipeMove',\n value: function _handleSwipeMove(event) {\n if (!this.moveStart) {\n return;\n }\n\n var _getPosition2 = getPosition(event),\n x = _getPosition2.x,\n y = _getPosition2.y;\n\n var deltaX = x - this.moveStart.x;\n var deltaY = y - this.moveStart.y;\n this.moving = true;\n\n // handling the responsability of cancelling the scroll to\n // the component handling the event\n var shouldPreventDefault = this.props.onSwipeMove({\n x: deltaX,\n y: deltaY\n }, event);\n\n if (shouldPreventDefault && event.cancelable) {\n event.preventDefault();\n }\n\n this.movePosition = { deltaX: deltaX, deltaY: deltaY };\n }\n }, {\n key: '_handleSwipeEnd',\n value: function _handleSwipeEnd(event) {\n this.props.onSwipeEnd(event);\n\n var tolerance = this.props.tolerance;\n\n\n if (this.moving && this.movePosition) {\n if (this.movePosition.deltaX < -tolerance) {\n this.props.onSwipeLeft(1, event);\n } else if (this.movePosition.deltaX > tolerance) {\n this.props.onSwipeRight(1, event);\n }\n if (this.movePosition.deltaY < -tolerance) {\n this.props.onSwipeUp(1, event);\n } else if (this.movePosition.deltaY > tolerance) {\n this.props.onSwipeDown(1, event);\n }\n }\n\n this.moveStart = null;\n this.moving = false;\n this.movePosition = null;\n }\n }, {\n key: '_setSwiperRef',\n value: function _setSwiperRef(node) {\n this.swiper = node;\n this.props.innerRef(node);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n tagName = _props.tagName,\n className = _props.className,\n style = _props.style,\n children = _props.children,\n allowMouseEvents = _props.allowMouseEvents,\n onSwipeUp = _props.onSwipeUp,\n onSwipeDown = _props.onSwipeDown,\n onSwipeLeft = _props.onSwipeLeft,\n onSwipeRight = _props.onSwipeRight,\n onSwipeStart = _props.onSwipeStart,\n onSwipeMove = _props.onSwipeMove,\n onSwipeEnd = _props.onSwipeEnd,\n innerRef = _props.innerRef,\n tolerance = _props.tolerance,\n props = _objectWithoutProperties(_props, ['tagName', 'className', 'style', 'children', 'allowMouseEvents', 'onSwipeUp', 'onSwipeDown', 'onSwipeLeft', 'onSwipeRight', 'onSwipeStart', 'onSwipeMove', 'onSwipeEnd', 'innerRef', 'tolerance']);\n\n return _react2.default.createElement(\n this.props.tagName,\n _extends({\n ref: this._setSwiperRef,\n onMouseDown: this._onMouseDown,\n onTouchStart: this._handleSwipeStart,\n onTouchEnd: this._handleSwipeEnd,\n className: className,\n style: style\n }, props),\n children\n );\n }\n }]);\n\n return ReactSwipe;\n }(_react.Component);\n\n ReactSwipe.displayName = 'ReactSwipe';\n ReactSwipe.propTypes = {\n tagName: _propTypes2.default.string,\n className: _propTypes2.default.string,\n style: _propTypes2.default.object,\n children: _propTypes2.default.node,\n allowMouseEvents: _propTypes2.default.bool,\n onSwipeUp: _propTypes2.default.func,\n onSwipeDown: _propTypes2.default.func,\n onSwipeLeft: _propTypes2.default.func,\n onSwipeRight: _propTypes2.default.func,\n onSwipeStart: _propTypes2.default.func,\n onSwipeMove: _propTypes2.default.func,\n onSwipeEnd: _propTypes2.default.func,\n innerRef: _propTypes2.default.func,\n tolerance: _propTypes2.default.number.isRequired\n };\n ReactSwipe.defaultProps = {\n tagName: 'div',\n allowMouseEvents: false,\n onSwipeUp: function onSwipeUp() {},\n onSwipeDown: function onSwipeDown() {},\n onSwipeLeft: function onSwipeLeft() {},\n onSwipeRight: function onSwipeRight() {},\n onSwipeStart: function onSwipeStart() {},\n onSwipeMove: function onSwipeMove() {},\n onSwipeEnd: function onSwipeEnd() {},\n innerRef: function innerRef() {},\n\n tolerance: 0\n };\n exports.default = ReactSwipe;\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.forceVisible = exports.forceCheck = exports.lazyload = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _event = require('./utils/event');\n\nvar _scrollParent = require('./utils/scrollParent');\n\nvar _scrollParent2 = _interopRequireDefault(_scrollParent);\n\nvar _debounce = require('./utils/debounce');\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _throttle = require('./utils/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\n * react-lazyload\n */\n\n\nvar defaultBoundingClientRect = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n width: 0,\n height: 0\n};\nvar LISTEN_FLAG = 'data-lazyload-listened';\nvar listeners = [];\nvar pending = [];\n\n// try to handle passive events\nvar passiveEventSupported = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n passiveEventSupported = true;\n }\n });\n window.addEventListener('test', null, opts);\n} catch (e) {}\n// if they are supported, setup the optional params\n// IMPORTANT: FALSE doubles as the default CAPTURE value!\nvar passiveEvent = passiveEventSupported ? { capture: false, passive: true } : false;\n\n/**\n * Check if `component` is visible in overflow container `parent`\n * @param {node} component React component\n * @param {node} parent component's scroll parent\n * @return {bool}\n */\nvar checkOverflowVisible = function checkOverflowVisible(component, parent) {\n var node = component.ref;\n\n var parentTop = void 0;\n var parentLeft = void 0;\n var parentHeight = void 0;\n var parentWidth = void 0;\n\n try {\n var _parent$getBoundingCl = parent.getBoundingClientRect();\n\n parentTop = _parent$getBoundingCl.top;\n parentLeft = _parent$getBoundingCl.left;\n parentHeight = _parent$getBoundingCl.height;\n parentWidth = _parent$getBoundingCl.width;\n } catch (e) {\n parentTop = defaultBoundingClientRect.top;\n parentLeft = defaultBoundingClientRect.left;\n parentHeight = defaultBoundingClientRect.height;\n parentWidth = defaultBoundingClientRect.width;\n }\n\n var windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n var windowInnerWidth = window.innerWidth || document.documentElement.clientWidth;\n\n // calculate top and height of the intersection of the element's scrollParent and viewport\n var intersectionTop = Math.max(parentTop, 0); // intersection's top relative to viewport\n var intersectionLeft = Math.max(parentLeft, 0); // intersection's left relative to viewport\n var intersectionHeight = Math.min(windowInnerHeight, parentTop + parentHeight) - intersectionTop; // height\n var intersectionWidth = Math.min(windowInnerWidth, parentLeft + parentWidth) - intersectionLeft; // width\n\n // check whether the element is visible in the intersection\n var top = void 0;\n var left = void 0;\n var height = void 0;\n var width = void 0;\n\n try {\n var _node$getBoundingClie = node.getBoundingClientRect();\n\n top = _node$getBoundingClie.top;\n left = _node$getBoundingClie.left;\n height = _node$getBoundingClie.height;\n width = _node$getBoundingClie.width;\n } catch (e) {\n top = defaultBoundingClientRect.top;\n left = defaultBoundingClientRect.left;\n height = defaultBoundingClientRect.height;\n width = defaultBoundingClientRect.width;\n }\n\n var offsetTop = top - intersectionTop; // element's top relative to intersection\n var offsetLeft = left - intersectionLeft; // element's left relative to intersection\n\n var offsets = Array.isArray(component.props.offset) ? component.props.offset : [component.props.offset, component.props.offset]; // Be compatible with previous API\n\n return offsetTop - offsets[0] <= intersectionHeight && offsetTop + height + offsets[1] >= 0 && offsetLeft - offsets[0] <= intersectionWidth && offsetLeft + width + offsets[1] >= 0;\n};\n\n/**\n * Check if `component` is visible in document\n * @param {node} component React component\n * @return {bool}\n */\nvar checkNormalVisible = function checkNormalVisible(component) {\n var node = component.ref;\n\n // If this element is hidden by css rules somehow, it's definitely invisible\n if (!(node.offsetWidth || node.offsetHeight || node.getClientRects().length)) return false;\n\n var top = void 0;\n var elementHeight = void 0;\n\n try {\n var _node$getBoundingClie2 = node.getBoundingClientRect();\n\n top = _node$getBoundingClie2.top;\n elementHeight = _node$getBoundingClie2.height;\n } catch (e) {\n top = defaultBoundingClientRect.top;\n elementHeight = defaultBoundingClientRect.height;\n }\n\n var windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n\n var offsets = Array.isArray(component.props.offset) ? component.props.offset : [component.props.offset, component.props.offset]; // Be compatible with previous API\n\n return top - offsets[0] <= windowInnerHeight && top + elementHeight + offsets[1] >= 0;\n};\n\n/**\n * Detect if element is visible in viewport, if so, set `visible` state to true.\n * If `once` prop is provided true, remove component as listener after checkVisible\n *\n * @param {React} component React component that respond to scroll and resize\n */\nvar checkVisible = function checkVisible(component) {\n var node = component.ref;\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n var parent = (0, _scrollParent2.default)(node);\n var isOverflow = component.props.overflow && parent !== node.ownerDocument && parent !== document && parent !== document.documentElement;\n var visible = isOverflow ? checkOverflowVisible(component, parent) : checkNormalVisible(component);\n if (visible) {\n // Avoid extra render if previously is visible\n if (!component.visible) {\n if (component.props.once) {\n pending.push(component);\n }\n\n component.visible = true;\n component.forceUpdate();\n }\n } else if (!(component.props.once && component.visible)) {\n component.visible = false;\n if (component.props.unmountIfInvisible) {\n component.forceUpdate();\n }\n }\n};\n\nvar purgePending = function purgePending() {\n pending.forEach(function (component) {\n var index = listeners.indexOf(component);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n });\n\n pending = [];\n};\n\nvar lazyLoadHandler = function lazyLoadHandler() {\n for (var i = 0; i < listeners.length; ++i) {\n var listener = listeners[i];\n checkVisible(listener);\n }\n // Remove `once` component in listeners\n purgePending();\n};\n\n/**\n * Forces the component to display regardless of whether the element is visible in the viewport.\n */\nvar forceVisible = function forceVisible() {\n for (var i = 0; i < listeners.length; ++i) {\n var listener = listeners[i];\n listener.visible = true;\n listener.forceUpdate();\n }\n // Remove `once` component in listeners\n purgePending();\n};\n\n// Depending on component's props\nvar delayType = void 0;\nvar finalLazyLoadHandler = null;\n\nvar isString = function isString(string) {\n return typeof string === 'string';\n};\n\nvar LazyLoad = function (_Component) {\n _inherits(LazyLoad, _Component);\n\n function LazyLoad(props) {\n _classCallCheck(this, LazyLoad);\n\n var _this = _possibleConstructorReturn(this, (LazyLoad.__proto__ || Object.getPrototypeOf(LazyLoad)).call(this, props));\n\n _this.visible = false;\n _this.setRef = _this.setRef.bind(_this);\n return _this;\n }\n\n _createClass(LazyLoad, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // It's unlikely to change delay type on the fly, this is mainly\n // designed for tests\n var scrollport = window;\n var scrollContainer = this.props.scrollContainer;\n\n if (scrollContainer) {\n if (isString(scrollContainer)) {\n scrollport = scrollport.document.querySelector(scrollContainer);\n }\n }\n var needResetFinalLazyLoadHandler = this.props.debounce !== undefined && delayType === 'throttle' || delayType === 'debounce' && this.props.debounce === undefined;\n\n if (needResetFinalLazyLoadHandler) {\n (0, _event.off)(scrollport, 'scroll', finalLazyLoadHandler, passiveEvent);\n (0, _event.off)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n finalLazyLoadHandler = null;\n }\n\n if (!finalLazyLoadHandler) {\n if (this.props.debounce !== undefined) {\n finalLazyLoadHandler = (0, _debounce2.default)(lazyLoadHandler, typeof this.props.debounce === 'number' ? this.props.debounce : 300);\n delayType = 'debounce';\n } else if (this.props.throttle !== undefined) {\n finalLazyLoadHandler = (0, _throttle2.default)(lazyLoadHandler, typeof this.props.throttle === 'number' ? this.props.throttle : 300);\n delayType = 'throttle';\n } else {\n finalLazyLoadHandler = lazyLoadHandler;\n }\n }\n\n if (this.props.overflow) {\n var parent = (0, _scrollParent2.default)(this.ref);\n if (parent && typeof parent.getAttribute === 'function') {\n var listenerCount = 1 + +parent.getAttribute(LISTEN_FLAG);\n if (listenerCount === 1) {\n parent.addEventListener('scroll', finalLazyLoadHandler, passiveEvent);\n }\n parent.setAttribute(LISTEN_FLAG, listenerCount);\n }\n } else if (listeners.length === 0 || needResetFinalLazyLoadHandler) {\n var _props = this.props,\n scroll = _props.scroll,\n resize = _props.resize;\n\n\n if (scroll) {\n (0, _event.on)(scrollport, 'scroll', finalLazyLoadHandler, passiveEvent);\n }\n\n if (resize) {\n (0, _event.on)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n }\n }\n\n listeners.push(this);\n checkVisible(this);\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n return this.visible;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.overflow) {\n var parent = (0, _scrollParent2.default)(this.ref);\n if (parent && typeof parent.getAttribute === 'function') {\n var listenerCount = +parent.getAttribute(LISTEN_FLAG) - 1;\n if (listenerCount === 0) {\n parent.removeEventListener('scroll', finalLazyLoadHandler, passiveEvent);\n parent.removeAttribute(LISTEN_FLAG);\n } else {\n parent.setAttribute(LISTEN_FLAG, listenerCount);\n }\n }\n }\n\n var index = listeners.indexOf(this);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length === 0 && typeof window !== 'undefined') {\n (0, _event.off)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n (0, _event.off)(window, 'scroll', finalLazyLoadHandler, passiveEvent);\n }\n }\n }, {\n key: 'setRef',\n value: function setRef(element) {\n if (element) {\n this.ref = element;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n height = _props2.height,\n children = _props2.children,\n placeholder = _props2.placeholder,\n className = _props2.className,\n classNamePrefix = _props2.classNamePrefix,\n style = _props2.style;\n\n\n return _react2.default.createElement(\n 'div',\n { className: classNamePrefix + '-wrapper ' + className, ref: this.setRef, style: style },\n this.visible ? children : placeholder ? placeholder : _react2.default.createElement('div', {\n style: { height: height },\n className: classNamePrefix + '-placeholder'\n })\n );\n }\n }]);\n\n return LazyLoad;\n}(_react.Component);\n\nLazyLoad.propTypes = {\n className: _propTypes2.default.string,\n classNamePrefix: _propTypes2.default.string,\n once: _propTypes2.default.bool,\n height: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n offset: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),\n overflow: _propTypes2.default.bool,\n resize: _propTypes2.default.bool,\n scroll: _propTypes2.default.bool,\n children: _propTypes2.default.node,\n throttle: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool]),\n debounce: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool]),\n placeholder: _propTypes2.default.node,\n scrollContainer: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n unmountIfInvisible: _propTypes2.default.bool,\n style: _propTypes2.default.object\n};\n\nLazyLoad.defaultProps = {\n className: '',\n classNamePrefix: 'lazyload',\n once: false,\n offset: 0,\n overflow: false,\n resize: false,\n scroll: true,\n unmountIfInvisible: false\n};\n\nvar getDisplayName = function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nvar decorator = function decorator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function lazyload(WrappedComponent) {\n return function (_Component2) {\n _inherits(LazyLoadDecorated, _Component2);\n\n function LazyLoadDecorated() {\n _classCallCheck(this, LazyLoadDecorated);\n\n var _this2 = _possibleConstructorReturn(this, (LazyLoadDecorated.__proto__ || Object.getPrototypeOf(LazyLoadDecorated)).call(this));\n\n _this2.displayName = 'LazyLoad' + getDisplayName(WrappedComponent);\n return _this2;\n }\n\n _createClass(LazyLoadDecorated, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n LazyLoad,\n options,\n _react2.default.createElement(WrappedComponent, this.props)\n );\n }\n }]);\n\n return LazyLoadDecorated;\n }(_react.Component);\n };\n};\n\nexports.lazyload = decorator;\nexports.default = LazyLoad;\nexports.forceCheck = lazyLoadHandler;\nexports.forceVisible = forceVisible;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = debounce;\nfunction debounce(func, wait, immediate) {\n var timeout = void 0;\n var args = void 0;\n var context = void 0;\n var timestamp = void 0;\n var result = void 0;\n\n var later = function later() {\n var last = +new Date() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) {\n context = null;\n args = null;\n }\n }\n }\n };\n\n return function debounced() {\n context = this;\n args = arguments;\n timestamp = +new Date();\n\n var callNow = immediate && !timeout;\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n\n if (callNow) {\n result = func.apply(context, args);\n context = null;\n args = null;\n }\n\n return result;\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.on = on;\nexports.off = off;\nfunction on(el, eventName, callback, opts) {\n opts = opts || false;\n if (el.addEventListener) {\n el.addEventListener(eventName, callback, opts);\n } else if (el.attachEvent) {\n el.attachEvent(\"on\" + eventName, function (e) {\n callback.call(el, e || window.event);\n });\n }\n}\n\nfunction off(el, eventName, callback, opts) {\n opts = opts || false;\n if (el.removeEventListener) {\n el.removeEventListener(eventName, callback, opts);\n } else if (el.detachEvent) {\n el.detachEvent(\"on\" + eventName, callback);\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * @fileOverview Find scroll parent\n */\n\nexports.default = function (node) {\n if (!(node instanceof HTMLElement)) {\n return document.documentElement;\n }\n\n var excludeStaticParent = node.style.position === 'absolute';\n var overflowRegex = /(scroll|auto)/;\n var parent = node;\n\n while (parent) {\n if (!parent.parentNode) {\n return node.ownerDocument || document.documentElement;\n }\n\n var style = window.getComputedStyle(parent);\n var position = style.position;\n var overflow = style.overflow;\n var overflowX = style['overflow-x'];\n var overflowY = style['overflow-y'];\n\n if (position === 'static' && excludeStaticParent) {\n parent = parent.parentNode;\n continue;\n }\n\n if (overflowRegex.test(overflow) && overflowRegex.test(overflowX) && overflowRegex.test(overflowY)) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n\n return node.ownerDocument || node.documentElement || document.documentElement;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = throttle;\n/*eslint-disable */\nfunction throttle(fn, threshhold, scope) {\n threshhold || (threshhold = 250);\n var last, deferTimer;\n return function () {\n var context = scope || this;\n\n var now = +new Date(),\n args = arguments;\n if (last && now < last + threshhold) {\n // hold on to it\n clearTimeout(deferTimer);\n deferTimer = setTimeout(function () {\n last = now;\n fn.apply(context, args);\n }, threshhold);\n } else {\n last = now;\n fn.apply(context, args);\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default(position, metric, axis) {\n var positionPercent = position === 0 ? position : position + metric;\n var positionCss = axis === 'horizontal' ? [positionPercent, 0, 0] : [0, positionPercent, 0];\n var transitionProp = 'translate3d';\n var translatedPosition = '(' + positionCss.join(',') + ')';\n return transitionProp + translatedPosition;\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactEasySwipe = _interopRequireDefault(require(\"react-easy-swipe\"));\n\nvar _cssClasses = _interopRequireDefault(require(\"../cssClasses\"));\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../CSSTranslate\"));\n\nvar _Thumbs = _interopRequireDefault(require(\"./Thumbs\"));\n\nvar _document = _interopRequireDefault(require(\"../shims/document\"));\n\nvar _window = _interopRequireDefault(require(\"../shims/window\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar noop = function noop() {};\n\nvar defaultStatusFormatter = function defaultStatusFormatter(current, total) {\n return \"\".concat(current, \" of \").concat(total);\n};\n\nvar isKeyboardEvent = function isKeyboardEvent(e) {\n return e ? e.hasOwnProperty('key') : false;\n};\n\nvar Carousel = /*#__PURE__*/function (_React$Component) {\n _inherits(Carousel, _React$Component);\n\n var _super = _createSuper(Carousel);\n\n function Carousel(props) {\n var _this;\n\n _classCallCheck(this, Carousel);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"thumbsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"carouselWrapperRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"listRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"timer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setThumbsRef\", function (node) {\n _this.thumbsRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setCarouselWrapperRef\", function (node) {\n _this.carouselWrapperRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setListRef\", function (node) {\n _this.listRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsRef\", function (node, index) {\n if (!_this.itemsRef) {\n _this.itemsRef = [];\n }\n\n _this.itemsRef[index] = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function () {\n if (_react.Children.count(_this.props.children) <= 1) {\n return;\n }\n\n _this.clearAutoPlay();\n\n _this.timer = setTimeout(function () {\n _this.increment();\n }, _this.props.interval);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clearAutoPlay\", function () {\n if (_this.timer) clearTimeout(_this.timer);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resetAutoPlay\", function () {\n _this.clearAutoPlay();\n\n _this.autoPlay();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"stopOnHover\", function () {\n _this.setState({\n isMouseEntered: true\n }, _this.clearAutoPlay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"startOnLeave\", function () {\n _this.setState({\n isMouseEntered: false\n }, _this.autoPlay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isFocusWithinTheCarousel\", function () {\n if (!_this.carouselWrapperRef) {\n return false;\n }\n\n if ((0, _document.default)().activeElement === _this.carouselWrapperRef || _this.carouselWrapperRef.contains((0, _document.default)().activeElement)) {\n return true;\n }\n\n return false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"navigateWithKeyboard\", function (e) {\n if (!_this.isFocusWithinTheCarousel()) {\n return;\n }\n\n var axis = _this.props.axis;\n var isHorizontal = axis === 'horizontal';\n var keyNames = {\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n ArrowLeft: 37\n };\n var nextKey = isHorizontal ? keyNames.ArrowRight : keyNames.ArrowDown;\n var prevKey = isHorizontal ? keyNames.ArrowLeft : keyNames.ArrowUp;\n\n if (nextKey === e.keyCode) {\n _this.increment();\n } else if (prevKey === e.keyCode) {\n _this.decrement();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSizes\", function () {\n if (!_this.state.initialized || !_this.itemsRef || _this.itemsRef.length === 0) {\n return;\n }\n\n var isHorizontal = _this.props.axis === 'horizontal';\n var firstItem = _this.itemsRef[0];\n\n if (!firstItem) {\n return;\n }\n\n var itemSize = isHorizontal ? firstItem.clientWidth : firstItem.clientHeight;\n\n _this.setState({\n itemSize: itemSize\n });\n\n if (_this.thumbsRef) {\n _this.thumbsRef.updateSizes();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setMountState\", function () {\n _this.setState({\n hasMount: true\n });\n\n _this.updateSizes();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickItem\", function (index, item) {\n if (_react.Children.count(_this.props.children) === 0) {\n return;\n }\n\n if (_this.state.cancelClick) {\n _this.setState({\n cancelClick: false\n });\n\n return;\n }\n\n _this.props.onClickItem(index, item);\n\n if (index !== _this.state.selectedItem) {\n _this.setState({\n selectedItem: index\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleOnChange\", function (index, item) {\n if (_react.Children.count(_this.props.children) <= 1) {\n return;\n }\n\n _this.props.onChange(index, item);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickThumb\", function (index, item) {\n _this.props.onClickThumb(index, item);\n\n _this.moveTo(index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeStart\", function (event) {\n _this.setState({\n swiping: true\n });\n\n _this.props.onSwipeStart(event);\n\n _this.clearAutoPlay();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeEnd\", function (event) {\n _this.setState({\n swiping: false,\n cancelClick: false,\n swipeMovementStarted: false\n });\n\n _this.props.onSwipeEnd(event);\n\n _this.autoPlay();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeMove\", function (delta, event) {\n _this.props.onSwipeMove(event);\n\n var isHorizontal = _this.props.axis === 'horizontal';\n\n var childrenLength = _react.Children.count(_this.props.children);\n\n var initialBoundry = 0;\n\n var currentPosition = _this.getPosition(_this.state.selectedItem);\n\n var finalBoundry = _this.props.infiniteLoop ? _this.getPosition(childrenLength - 1) - 100 : _this.getPosition(childrenLength - 1);\n var axisDelta = isHorizontal ? delta.x : delta.y;\n var handledDelta = axisDelta; // prevent user from swiping left out of boundaries\n\n if (currentPosition === initialBoundry && axisDelta > 0) {\n handledDelta = 0;\n } // prevent user from swiping right out of boundaries\n\n\n if (currentPosition === finalBoundry && axisDelta < 0) {\n handledDelta = 0;\n }\n\n var position = currentPosition + 100 / (_this.state.itemSize / handledDelta);\n\n var hasMoved = Math.abs(axisDelta) > _this.props.swipeScrollTolerance;\n\n if (_this.props.infiniteLoop && hasMoved) {\n // When allowing infinite loop, if we slide left from position 0 we reveal the cloned last slide that appears before it\n // if we slide even further we need to jump to other side so it can continue - and vice versa for the last slide\n if (_this.state.selectedItem === 0 && position > -100) {\n position -= childrenLength * 100;\n } else if (_this.state.selectedItem === childrenLength - 1 && position < -childrenLength * 100) {\n position += childrenLength * 100;\n }\n }\n\n if (!_this.props.preventMovementUntilSwipeScrollTolerance || hasMoved || _this.state.swipeMovementStarted) {\n if (!_this.state.swipeMovementStarted) {\n _this.setState({\n swipeMovementStarted: true\n });\n }\n\n _this.setPosition(position);\n } // allows scroll if the swipe was within the tolerance\n\n\n if (hasMoved && !_this.state.cancelClick) {\n _this.setState({\n cancelClick: true\n });\n }\n\n return hasMoved;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setPosition\", function (position, forceReflow) {\n var list = _reactDom.default.findDOMNode(_this.listRef);\n\n if (list instanceof HTMLElement) {\n ['WebkitTransform', 'MozTransform', 'MsTransform', 'OTransform', 'transform', 'msTransform'].forEach(function (prop) {\n list.style[prop] = (0, _CSSTranslate.default)(position, '%', _this.props.axis);\n });\n\n if (forceReflow) {\n list.offsetLeft;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resetPosition\", function () {\n var currentPosition = _this.getPosition(_this.state.selectedItem);\n\n _this.setPosition(currentPosition);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"decrement\", function () {\n var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var fromSwipe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n _this.moveTo(_this.state.selectedItem - (typeof positions === 'number' ? positions : 1), fromSwipe);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"increment\", function () {\n var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var fromSwipe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n _this.moveTo(_this.state.selectedItem + (typeof positions === 'number' ? positions : 1), fromSwipe);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"moveTo\", function (position, fromSwipe) {\n if (typeof position !== 'number') {\n return;\n }\n\n var lastPosition = _react.Children.count(_this.props.children) - 1;\n var needClonedSlide = _this.props.infiniteLoop && !fromSwipe && (position < 0 || position > lastPosition);\n var oldPosition = position;\n\n if (position < 0) {\n position = _this.props.infiniteLoop ? lastPosition : 0;\n }\n\n if (position > lastPosition) {\n position = _this.props.infiniteLoop ? 0 : lastPosition;\n }\n\n if (needClonedSlide) {\n // set swiping true would disable transition time, then we set slider to cloned position and force a reflow\n // this is only needed for non-swiping situation\n _this.setState({\n swiping: true\n }, function () {\n if (oldPosition < 0) {\n if (_this.props.centerMode && _this.props.centerSlidePercentage && _this.props.axis === 'horizontal') {\n _this.setPosition(-(lastPosition + 2) * _this.props.centerSlidePercentage - (100 - _this.props.centerSlidePercentage) / 2, true);\n } else {\n _this.setPosition(-(lastPosition + 2) * 100, true);\n }\n } else if (oldPosition > lastPosition) {\n _this.setPosition(0, true);\n }\n\n _this.selectItem({\n selectedItem: position,\n swiping: false\n });\n });\n } else {\n _this.selectItem({\n // if it's not a slider, we don't need to set position here\n selectedItem: position\n });\n } // don't reset auto play when stop on hover is enabled, doing so will trigger a call to auto play more than once\n // and will result in the interval function not being cleared correctly.\n\n\n if (_this.state.autoPlay && _this.state.isMouseEntered === false) {\n _this.resetAutoPlay();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClickNext\", function () {\n _this.increment(1, false);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClickPrev\", function () {\n _this.decrement(1, false);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeForward\", function () {\n _this.increment(1, true);\n\n if (_this.props.emulateTouch) {\n _this.setState({\n cancelClick: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeBackwards\", function () {\n _this.decrement(1, true);\n\n if (_this.props.emulateTouch) {\n _this.setState({\n cancelClick: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeItem\", function (newIndex) {\n return function (e) {\n if (!isKeyboardEvent(e) || e.key === 'Enter') {\n _this.moveTo(newIndex);\n }\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectItem\", function (state, cb) {\n _this.setState(state, cb);\n\n _this.handleOnChange(state.selectedItem, _react.Children.toArray(_this.props.children)[state.selectedItem]);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInitialImage\", function () {\n var selectedItem = _this.props.selectedItem;\n var item = _this.itemsRef && _this.itemsRef[selectedItem];\n var images = item && item.getElementsByTagName('img') || [];\n return images[0];\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getVariableItemHeight\", function (position) {\n var item = _this.itemsRef && _this.itemsRef[position];\n\n if (_this.state.hasMount && item && item.children.length) {\n var slideImages = item.children[0].getElementsByTagName('img') || [];\n\n if (slideImages.length > 0) {\n var image = slideImages[0];\n\n if (!image.complete) {\n // if the image is still loading, the size won't be available so we trigger a new render after it's done\n var onImageLoad = function onImageLoad() {\n _this.forceUpdate();\n\n image.removeEventListener('load', onImageLoad);\n };\n\n image.addEventListener('load', onImageLoad);\n }\n } // try to get img first, if img not there find first display tag\n\n\n var displayItem = slideImages[0] || item.children[0];\n var height = displayItem.clientHeight;\n return height > 0 ? height : null;\n }\n\n return null;\n });\n\n _this.state = {\n initialized: false,\n selectedItem: props.selectedItem,\n hasMount: false,\n isMouseEntered: false,\n autoPlay: props.autoPlay,\n swiping: false,\n swipeMovementStarted: false,\n cancelClick: false,\n itemSize: 1\n };\n return _this;\n }\n\n _createClass(Carousel, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.children) {\n return;\n }\n\n this.setupCarousel();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (!prevProps.children && this.props.children && !this.state.initialized) {\n this.setupCarousel();\n }\n\n if (!prevProps.autoFocus && this.props.autoFocus) {\n this.forceFocus();\n }\n\n if (prevState.swiping && !this.state.swiping) {\n // We stopped swiping, ensure we are heading to the new/current slide and not stuck\n this.resetPosition();\n }\n\n if (prevProps.selectedItem !== this.props.selectedItem || prevProps.centerMode !== this.props.centerMode) {\n this.updateSizes();\n this.moveTo(this.props.selectedItem);\n }\n\n if (prevProps.autoPlay !== this.props.autoPlay) {\n if (this.props.autoPlay) {\n this.setupAutoPlay();\n } else {\n this.destroyAutoPlay();\n }\n\n this.setState({\n autoPlay: this.props.autoPlay\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyCarousel();\n }\n }, {\n key: \"setupCarousel\",\n value: function setupCarousel() {\n var _this2 = this;\n\n this.bindEvents();\n\n if (this.state.autoPlay && _react.Children.count(this.props.children) > 1) {\n this.setupAutoPlay();\n }\n\n if (this.props.autoFocus) {\n this.forceFocus();\n }\n\n this.setState({\n initialized: true\n }, function () {\n var initialImage = _this2.getInitialImage();\n\n if (initialImage && !initialImage.complete) {\n // if it's a carousel of images, we set the mount state after the first image is loaded\n initialImage.addEventListener('load', _this2.setMountState);\n } else {\n _this2.setMountState();\n }\n });\n }\n }, {\n key: \"destroyCarousel\",\n value: function destroyCarousel() {\n if (this.state.initialized) {\n this.unbindEvents();\n this.destroyAutoPlay();\n }\n }\n }, {\n key: \"setupAutoPlay\",\n value: function setupAutoPlay() {\n this.autoPlay();\n var carouselWrapper = this.carouselWrapperRef;\n\n if (this.props.stopOnHover && carouselWrapper) {\n carouselWrapper.addEventListener('mouseenter', this.stopOnHover);\n carouselWrapper.addEventListener('mouseleave', this.startOnLeave);\n }\n }\n }, {\n key: \"destroyAutoPlay\",\n value: function destroyAutoPlay() {\n this.clearAutoPlay();\n var carouselWrapper = this.carouselWrapperRef;\n\n if (this.props.stopOnHover && carouselWrapper) {\n carouselWrapper.removeEventListener('mouseenter', this.stopOnHover);\n carouselWrapper.removeEventListener('mouseleave', this.startOnLeave);\n }\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n // as the widths are calculated, we need to resize\n // the carousel when the window is resized\n (0, _window.default)().addEventListener('resize', this.updateSizes); // issue #2 - image loading smaller\n\n (0, _window.default)().addEventListener('DOMContentLoaded', this.updateSizes);\n\n if (this.props.useKeyboardArrows) {\n (0, _document.default)().addEventListener('keydown', this.navigateWithKeyboard);\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n // removing listeners\n (0, _window.default)().removeEventListener('resize', this.updateSizes);\n (0, _window.default)().removeEventListener('DOMContentLoaded', this.updateSizes);\n var initialImage = this.getInitialImage();\n\n if (initialImage) {\n initialImage.removeEventListener('load', this.setMountState);\n }\n\n if (this.props.useKeyboardArrows) {\n (0, _document.default)().removeEventListener('keydown', this.navigateWithKeyboard);\n }\n }\n }, {\n key: \"forceFocus\",\n value: function forceFocus() {\n var _this$carouselWrapper;\n\n (_this$carouselWrapper = this.carouselWrapperRef) === null || _this$carouselWrapper === void 0 ? void 0 : _this$carouselWrapper.focus();\n }\n }, {\n key: \"getPosition\",\n value: function getPosition(index) {\n if (this.props.infiniteLoop) {\n // index has to be added by 1 because of the first cloned slide\n ++index;\n }\n\n if (index === 0) {\n return 0;\n }\n\n var childrenLength = _react.Children.count(this.props.children);\n\n if (this.props.centerMode && this.props.axis === 'horizontal') {\n var currentPosition = -index * this.props.centerSlidePercentage;\n var lastPosition = childrenLength - 1;\n\n if (index && (index !== lastPosition || this.props.infiniteLoop)) {\n currentPosition += (100 - this.props.centerSlidePercentage) / 2;\n } else if (index === lastPosition) {\n currentPosition += 100 - this.props.centerSlidePercentage;\n }\n\n return currentPosition;\n }\n\n return -index * 100;\n }\n }, {\n key: \"renderItems\",\n value: function renderItems(isClone) {\n var _this3 = this;\n\n if (!this.props.children) {\n return [];\n }\n\n return _react.Children.map(this.props.children, function (item, index) {\n var slideProps = {\n ref: function ref(e) {\n return _this3.setItemsRef(e, index);\n },\n key: 'itemKey' + index + (isClone ? 'clone' : ''),\n className: _cssClasses.default.ITEM(true, index === _this3.state.selectedItem),\n onClick: _this3.handleClickItem.bind(_this3, index, item)\n };\n var extraProps = {};\n\n if (_this3.props.centerMode && _this3.props.axis === 'horizontal') {\n extraProps.style = {\n minWidth: _this3.props.centerSlidePercentage + '%'\n };\n }\n\n return /*#__PURE__*/_react.default.createElement(\"li\", _extends({}, slideProps, extraProps), _this3.props.renderItem(item, {\n isSelected: index === _this3.state.selectedItem\n }));\n });\n }\n }, {\n key: \"renderControls\",\n value: function renderControls() {\n var _this4 = this;\n\n var _this$props = this.props,\n showIndicators = _this$props.showIndicators,\n labels = _this$props.labels,\n renderIndicator = _this$props.renderIndicator,\n children = _this$props.children;\n\n if (!showIndicators) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: \"control-dots\"\n }, _react.Children.map(children, function (_, index) {\n return renderIndicator && renderIndicator(_this4.changeItem(index), index === _this4.state.selectedItem, index, labels.item);\n }));\n }\n }, {\n key: \"renderStatus\",\n value: function renderStatus() {\n if (!this.props.showStatus) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"p\", {\n className: \"carousel-status\"\n }, this.props.statusFormatter(this.state.selectedItem + 1, _react.Children.count(this.props.children)));\n }\n }, {\n key: \"renderThumbs\",\n value: function renderThumbs() {\n if (!this.props.showThumbs || !this.props.children || _react.Children.count(this.props.children) === 0) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(_Thumbs.default, {\n ref: this.setThumbsRef,\n onSelectItem: this.handleClickThumb,\n selectedItem: this.state.selectedItem,\n transitionTime: this.props.transitionTime,\n thumbWidth: this.props.thumbWidth,\n labels: this.props.labels\n }, this.props.renderThumbs(this.props.children));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n if (!this.props.children || _react.Children.count(this.props.children) === 0) {\n return null;\n }\n\n var isSwipeable = this.props.swipeable && _react.Children.count(this.props.children) > 1;\n var isHorizontal = this.props.axis === 'horizontal';\n var canShowArrows = this.props.showArrows && _react.Children.count(this.props.children) > 1; // show left arrow?\n\n var hasPrev = canShowArrows && (this.state.selectedItem > 0 || this.props.infiniteLoop) || false; // show right arrow\n\n var hasNext = canShowArrows && (this.state.selectedItem < _react.Children.count(this.props.children) - 1 || this.props.infiniteLoop) || false; // obj to hold the transformations and styles\n\n var itemListStyles = {};\n var currentPosition = this.getPosition(this.state.selectedItem); // if 3d is available, let's take advantage of the performance of transform\n\n var transformProp = (0, _CSSTranslate.default)(currentPosition, '%', this.props.axis);\n var transitionTime = this.props.transitionTime + 'ms';\n itemListStyles = {\n WebkitTransform: transformProp,\n MozTransform: transformProp,\n MsTransform: transformProp,\n OTransform: transformProp,\n transform: transformProp,\n msTransform: transformProp\n };\n\n if (!this.state.swiping) {\n itemListStyles = _objectSpread(_objectSpread({}, itemListStyles), {}, {\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n MsTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n });\n }\n\n var itemsClone = this.renderItems(true);\n var firstClone = itemsClone.shift();\n var lastClone = itemsClone.pop();\n var swiperProps = {\n className: _cssClasses.default.SLIDER(true, this.state.swiping),\n onSwipeMove: this.onSwipeMove,\n onSwipeStart: this.onSwipeStart,\n onSwipeEnd: this.onSwipeEnd,\n style: itemListStyles,\n tolerance: this.props.swipeScrollTolerance\n };\n var containerStyles = {};\n\n if (isHorizontal) {\n swiperProps.onSwipeLeft = this.onSwipeForward;\n swiperProps.onSwipeRight = this.onSwipeBackwards;\n\n if (this.props.dynamicHeight) {\n var itemHeight = this.getVariableItemHeight(this.state.selectedItem);\n swiperProps.style.height = itemHeight || 'auto';\n containerStyles.height = itemHeight || 'auto';\n }\n } else {\n swiperProps.onSwipeUp = this.props.verticalSwipe === 'natural' ? this.onSwipeBackwards : this.onSwipeForward;\n swiperProps.onSwipeDown = this.props.verticalSwipe === 'natural' ? this.onSwipeForward : this.onSwipeBackwards;\n swiperProps.style.height = this.state.itemSize;\n containerStyles.height = this.state.itemSize;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.ROOT(this.props.className),\n ref: this.setCarouselWrapperRef,\n tabIndex: 0\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.CAROUSEL(true),\n style: {\n width: this.props.width\n }\n }, this.renderControls(), this.props.renderArrowPrev(this.onClickPrev, hasPrev, this.props.labels.leftArrow), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.WRAPPER(true, this.props.axis),\n style: containerStyles\n }, isSwipeable ? /*#__PURE__*/_react.default.createElement(_reactEasySwipe.default, _extends({\n tagName: \"ul\",\n innerRef: this.setListRef\n }, swiperProps, {\n allowMouseEvents: this.props.emulateTouch\n }), this.props.infiniteLoop && lastClone, this.renderItems(), this.props.infiniteLoop && firstClone) : /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: _cssClasses.default.SLIDER(true, this.state.swiping),\n ref: function ref(node) {\n return _this5.setListRef(node);\n },\n style: itemListStyles\n }, this.props.infiniteLoop && lastClone, this.renderItems(), this.props.infiniteLoop && firstClone)), this.props.renderArrowNext(this.onClickNext, hasNext, this.props.labels.rightArrow), this.renderStatus()), this.renderThumbs());\n }\n }]);\n\n return Carousel;\n}(_react.default.Component);\n\nexports.default = Carousel;\n\n_defineProperty(Carousel, \"displayName\", 'Carousel');\n\n_defineProperty(Carousel, \"defaultProps\", {\n axis: 'horizontal',\n centerSlidePercentage: 80,\n interval: 3000,\n labels: {\n leftArrow: 'previous slide / item',\n rightArrow: 'next slide / item',\n item: 'slide item'\n },\n onClickItem: noop,\n onClickThumb: noop,\n onChange: noop,\n onSwipeStart: function onSwipeStart() {},\n onSwipeEnd: function onSwipeEnd() {},\n onSwipeMove: function onSwipeMove() {\n return false;\n },\n preventMovementUntilSwipeScrollTolerance: false,\n renderArrowPrev: function renderArrowPrev(onClickHandler, hasPrev, label) {\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: _cssClasses.default.ARROW_PREV(!hasPrev),\n onClick: onClickHandler\n });\n },\n renderArrowNext: function renderArrowNext(onClickHandler, hasNext, label) {\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: _cssClasses.default.ARROW_NEXT(!hasNext),\n onClick: onClickHandler\n });\n },\n renderIndicator: function renderIndicator(onClickHandler, isSelected, index, label) {\n return /*#__PURE__*/_react.default.createElement(\"li\", {\n className: _cssClasses.default.DOT(isSelected),\n onClick: onClickHandler,\n onKeyDown: onClickHandler,\n value: index,\n key: index,\n role: \"button\",\n tabIndex: 0,\n \"aria-label\": \"\".concat(label, \" \").concat(index + 1)\n });\n },\n renderItem: function renderItem(item) {\n return item;\n },\n renderThumbs: function renderThumbs(children) {\n var images = _react.Children.map(children, function (item) {\n var img = item; // if the item is not an image, try to find the first image in the item's children.\n\n if (item.type !== 'img') {\n img = _react.Children.toArray(item.props.children).find(function (children) {\n return children.type === 'img';\n });\n }\n\n if (!img) {\n return undefined;\n }\n\n return img;\n });\n\n if (images.filter(function (image) {\n return image;\n }).length === 0) {\n console.warn(\"No images found! Can't build the thumb list without images. If you don't need thumbs, set showThumbs={false} in the Carousel. Note that it's not possible to get images rendered inside custom components. More info at https://github.com/leandrowd/react-responsive-carousel/blob/master/TROUBLESHOOTING.md\");\n return [];\n }\n\n return images;\n },\n statusFormatter: defaultStatusFormatter,\n selectedItem: 0,\n showArrows: true,\n showIndicators: true,\n showStatus: true,\n showThumbs: true,\n stopOnHover: true,\n swipeScrollTolerance: 5,\n swipeable: true,\n transitionTime: 350,\n verticalSwipe: 'standard',\n width: '100%'\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _cssClasses = _interopRequireDefault(require(\"../cssClasses\"));\n\nvar _dimensions = require(\"../dimensions\");\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../CSSTranslate\"));\n\nvar _reactEasySwipe = _interopRequireDefault(require(\"react-easy-swipe\"));\n\nvar _window = _interopRequireDefault(require(\"../shims/window\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar isKeyboardEvent = function isKeyboardEvent(e) {\n return e.hasOwnProperty('key');\n};\n\nvar Thumbs = /*#__PURE__*/function (_Component) {\n _inherits(Thumbs, _Component);\n\n var _super = _createSuper(Thumbs);\n\n function Thumbs(_props) {\n var _this;\n\n _classCallCheck(this, Thumbs);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsWrapperRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsListRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"thumbsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsWrapperRef\", function (node) {\n _this.itemsWrapperRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsListRef\", function (node) {\n _this.itemsListRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setThumbsRef\", function (node, index) {\n if (!_this.thumbsRef) {\n _this.thumbsRef = [];\n }\n\n _this.thumbsRef[index] = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSizes\", function () {\n if (!_this.props.children || !_this.itemsWrapperRef || !_this.thumbsRef) {\n return;\n }\n\n var total = _react.Children.count(_this.props.children);\n\n var wrapperSize = _this.itemsWrapperRef.clientWidth;\n var itemSize = _this.props.thumbWidth ? _this.props.thumbWidth : (0, _dimensions.outerWidth)(_this.thumbsRef[0]);\n var visibleItems = Math.floor(wrapperSize / itemSize);\n var showArrows = visibleItems < total;\n var lastPosition = showArrows ? total - visibleItems : 0;\n\n _this.setState(function (_state, props) {\n return {\n itemSize: itemSize,\n visibleItems: visibleItems,\n firstItem: showArrows ? _this.getFirstItem(props.selectedItem) : 0,\n lastPosition: lastPosition,\n showArrows: showArrows\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickItem\", function (index, item, e) {\n if (!isKeyboardEvent(e) || e.key === 'Enter') {\n var handler = _this.props.onSelectItem;\n\n if (typeof handler === 'function') {\n handler(index, item);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeStart\", function () {\n _this.setState({\n swiping: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeEnd\", function () {\n _this.setState({\n swiping: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeMove\", function (delta) {\n var deltaX = delta.x;\n\n if (!_this.state.itemSize || !_this.itemsWrapperRef || !_this.state.visibleItems) {\n return false;\n }\n\n var leftBoundary = 0;\n\n var childrenLength = _react.Children.count(_this.props.children);\n\n var currentPosition = -(_this.state.firstItem * 100) / _this.state.visibleItems;\n var lastLeftItem = Math.max(childrenLength - _this.state.visibleItems, 0);\n var lastLeftBoundary = -lastLeftItem * 100 / _this.state.visibleItems; // prevent user from swiping left out of boundaries\n\n if (currentPosition === leftBoundary && deltaX > 0) {\n deltaX = 0;\n } // prevent user from swiping right out of boundaries\n\n\n if (currentPosition === lastLeftBoundary && deltaX < 0) {\n deltaX = 0;\n }\n\n var wrapperSize = _this.itemsWrapperRef.clientWidth;\n var position = currentPosition + 100 / (wrapperSize / deltaX); // if 3d isn't available we will use left to move\n\n if (_this.itemsListRef) {\n ['WebkitTransform', 'MozTransform', 'MsTransform', 'OTransform', 'transform', 'msTransform'].forEach(function (prop) {\n _this.itemsListRef.style[prop] = (0, _CSSTranslate.default)(position, '%', _this.props.axis);\n });\n }\n\n return true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideRight\", function (positions) {\n _this.moveTo(_this.state.firstItem - (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideLeft\", function (positions) {\n _this.moveTo(_this.state.firstItem + (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"moveTo\", function (position) {\n // position can't be lower than 0\n position = position < 0 ? 0 : position; // position can't be higher than last postion\n\n position = position >= _this.state.lastPosition ? _this.state.lastPosition : position;\n\n _this.setState({\n firstItem: position\n });\n });\n\n _this.state = {\n selectedItem: _props.selectedItem,\n swiping: false,\n showArrows: false,\n firstItem: 0,\n visibleItems: 0,\n lastPosition: 0\n };\n return _this;\n }\n\n _createClass(Thumbs, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setupThumbs();\n }\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(props) {\n if (props.selectedItem !== this.state.selectedItem) {\n this.setState({\n selectedItem: props.selectedItem,\n firstItem: this.getFirstItem(props.selectedItem)\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.children === prevProps.children) {\n return;\n } // This will capture any size changes for arrow adjustments etc.\n // usually in the same render cycle so we don't see any flickers\n\n\n this.updateSizes();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyThumbs();\n }\n }, {\n key: \"setupThumbs\",\n value: function setupThumbs() {\n // as the widths are calculated, we need to resize\n // the carousel when the window is resized\n (0, _window.default)().addEventListener('resize', this.updateSizes); // issue #2 - image loading smaller\n\n (0, _window.default)().addEventListener('DOMContentLoaded', this.updateSizes); // when the component is rendered we need to calculate\n // the container size to adjust the responsive behaviour\n\n this.updateSizes();\n }\n }, {\n key: \"destroyThumbs\",\n value: function destroyThumbs() {\n // removing listeners\n (0, _window.default)().removeEventListener('resize', this.updateSizes);\n (0, _window.default)().removeEventListener('DOMContentLoaded', this.updateSizes);\n }\n }, {\n key: \"getFirstItem\",\n value: function getFirstItem(selectedItem) {\n var firstItem = selectedItem;\n\n if (selectedItem >= this.state.lastPosition) {\n firstItem = this.state.lastPosition;\n }\n\n if (selectedItem < this.state.firstItem + this.state.visibleItems) {\n firstItem = this.state.firstItem;\n }\n\n if (selectedItem < this.state.firstItem) {\n firstItem = selectedItem;\n }\n\n return firstItem;\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this2 = this;\n\n return this.props.children.map(function (img, index) {\n var itemClass = _cssClasses.default.ITEM(false, index === _this2.state.selectedItem);\n\n var thumbProps = {\n key: index,\n ref: function ref(e) {\n return _this2.setThumbsRef(e, index);\n },\n className: itemClass,\n onClick: _this2.handleClickItem.bind(_this2, index, _this2.props.children[index]),\n onKeyDown: _this2.handleClickItem.bind(_this2, index, _this2.props.children[index]),\n 'aria-label': \"\".concat(_this2.props.labels.item, \" \").concat(index + 1),\n style: {\n width: _this2.props.thumbWidth\n }\n };\n return /*#__PURE__*/_react.default.createElement(\"li\", _extends({}, thumbProps, {\n role: \"button\",\n tabIndex: 0\n }), img);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n if (!this.props.children) {\n return null;\n }\n\n var isSwipeable = _react.Children.count(this.props.children) > 1; // show left arrow?\n\n var hasPrev = this.state.showArrows && this.state.firstItem > 0; // show right arrow\n\n var hasNext = this.state.showArrows && this.state.firstItem < this.state.lastPosition; // obj to hold the transformations and styles\n\n var itemListStyles = {};\n var currentPosition = -this.state.firstItem * (this.state.itemSize || 0);\n var transformProp = (0, _CSSTranslate.default)(currentPosition, 'px', this.props.axis);\n var transitionTime = this.props.transitionTime + 'ms';\n itemListStyles = {\n WebkitTransform: transformProp,\n MozTransform: transformProp,\n MsTransform: transformProp,\n OTransform: transformProp,\n transform: transformProp,\n msTransform: transformProp,\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n MsTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n };\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.CAROUSEL(false)\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.WRAPPER(false),\n ref: this.setItemsWrapperRef\n }, /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: _cssClasses.default.ARROW_PREV(!hasPrev),\n onClick: function onClick() {\n return _this3.slideRight();\n },\n \"aria-label\": this.props.labels.leftArrow\n }), isSwipeable ? /*#__PURE__*/_react.default.createElement(_reactEasySwipe.default, {\n tagName: \"ul\",\n className: _cssClasses.default.SLIDER(false, this.state.swiping),\n onSwipeLeft: this.slideLeft,\n onSwipeRight: this.slideRight,\n onSwipeMove: this.onSwipeMove,\n onSwipeStart: this.onSwipeStart,\n onSwipeEnd: this.onSwipeEnd,\n style: itemListStyles,\n innerRef: this.setItemsListRef,\n allowMouseEvents: this.props.emulateTouch\n }, this.renderItems()) : /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: _cssClasses.default.SLIDER(false, this.state.swiping),\n ref: function ref(node) {\n return _this3.setItemsListRef(node);\n },\n style: itemListStyles\n }, this.renderItems()), /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: _cssClasses.default.ARROW_NEXT(!hasNext),\n onClick: function onClick() {\n return _this3.slideLeft();\n },\n \"aria-label\": this.props.labels.rightArrow\n })));\n }\n }]);\n\n return Thumbs;\n}(_react.Component);\n\nexports.default = Thumbs;\n\n_defineProperty(Thumbs, \"displayName\", 'Thumbs');\n\n_defineProperty(Thumbs, \"defaultProps\", {\n axis: 'horizontal',\n labels: {\n leftArrow: 'previous slide / item',\n rightArrow: 'next slide / item',\n item: 'slide item'\n },\n selectedItem: 0,\n thumbWidth: 80,\n transitionTime: 350\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = {\n ROOT: function ROOT(customClassName) {\n return (0, _classnames.default)(_defineProperty({\n 'carousel-root': true\n }, customClassName || '', !!customClassName));\n },\n CAROUSEL: function CAROUSEL(isSlider) {\n return (0, _classnames.default)({\n carousel: true,\n 'carousel-slider': isSlider\n });\n },\n WRAPPER: function WRAPPER(isSlider, axis) {\n return (0, _classnames.default)({\n 'thumbs-wrapper': !isSlider,\n 'slider-wrapper': isSlider,\n 'axis-horizontal': axis === 'horizontal',\n 'axis-vertical': axis !== 'horizontal'\n });\n },\n SLIDER: function SLIDER(isSlider, isSwiping) {\n return (0, _classnames.default)({\n thumbs: !isSlider,\n slider: isSlider,\n animated: !isSwiping\n });\n },\n ITEM: function ITEM(isSlider, selected, previous) {\n return (0, _classnames.default)({\n thumb: !isSlider,\n slide: isSlider,\n selected: selected,\n previous: previous\n });\n },\n ARROW_PREV: function ARROW_PREV(disabled) {\n return (0, _classnames.default)({\n 'control-arrow control-prev': true,\n 'control-disabled': disabled\n });\n },\n ARROW_NEXT: function ARROW_NEXT(disabled) {\n return (0, _classnames.default)({\n 'control-arrow control-next': true,\n 'control-disabled': disabled\n });\n },\n DOT: function DOT(selected) {\n return (0, _classnames.default)({\n dot: true,\n selected: selected\n });\n }\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.outerWidth = void 0;\n\nvar outerWidth = function outerWidth(el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width += parseInt(style.marginLeft) + parseInt(style.marginRight);\n return width;\n};\n\nexports.outerWidth = outerWidth;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Carousel\", {\n enumerable: true,\n get: function get() {\n return _Carousel.default;\n }\n});\nObject.defineProperty(exports, \"CarouselProps\", {\n enumerable: true,\n get: function get() {\n return _types.CarouselProps;\n }\n});\nObject.defineProperty(exports, \"Thumbs\", {\n enumerable: true,\n get: function get() {\n return _Thumbs.default;\n }\n});\n\nvar _Carousel = _interopRequireDefault(require(\"./components/Carousel\"));\n\nvar _types = require(\"./components/Carousel/types\");\n\nvar _Thumbs = _interopRequireDefault(require(\"./components/Thumbs\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default() {\n return document;\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default() {\n return window;\n};\n\nexports.default = _default;","import React, { useState, useRef, useCallback, useImperativeHandle, useEffect, useContext } from 'react';\n\n/**\n * Rounds number to given decimal\n * eg. roundNumber(2.34343, 1) => 2.3\n */\nvar roundNumber = function (num, decimal) {\n return Number(num.toFixed(decimal));\n};\n/**\n * Checks if value is number, if not it returns default value\n * 1# eg. checkIsNumber(2, 30) => 2\n * 2# eg. checkIsNumber(null, 30) => 30\n */\nvar checkIsNumber = function (num, defaultValue) {\n return typeof num === \"number\" ? num : defaultValue;\n};\n\nvar handleCallback = function (context, event, callback) {\n if (callback && typeof callback === \"function\") {\n callback(context, event);\n }\n};\n\n/* eslint-disable no-plusplus */\n/* eslint-disable no-param-reassign */\n/**\n * Functions should return denominator of the target value, which is the next animation step.\n * t is a value from 0 to 1, reflecting the percentage of animation status.\n */\nvar easeOut = function (t) {\n return -Math.cos(t * Math.PI) / 2 + 0.5;\n};\n// linear\nvar linear = function (t) {\n return t;\n};\n// accelerating from zero velocity\nvar easeInQuad = function (t) {\n return t * t;\n};\n// decelerating to zero velocity\nvar easeOutQuad = function (t) {\n return t * (2 - t);\n};\n// acceleration until halfway, then deceleration\nvar easeInOutQuad = function (t) {\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n};\n// accelerating from zero velocity\nvar easeInCubic = function (t) {\n return t * t * t;\n};\n// decelerating to zero velocity\nvar easeOutCubic = function (t) {\n return --t * t * t + 1;\n};\n// acceleration until halfway, then deceleration\nvar easeInOutCubic = function (t) {\n return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\n};\n// accelerating from zero velocity\nvar easeInQuart = function (t) {\n return t * t * t * t;\n};\n// decelerating to zero velocity\nvar easeOutQuart = function (t) {\n return 1 - --t * t * t * t;\n};\n// acceleration until halfway, then deceleration\nvar easeInOutQuart = function (t) {\n return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t;\n};\n// accelerating from zero velocity\nvar easeInQuint = function (t) {\n return t * t * t * t * t;\n};\n// decelerating to zero velocity\nvar easeOutQuint = function (t) {\n return 1 + --t * t * t * t * t;\n};\n// acceleration until halfway, then deceleration\nvar easeInOutQuint = function (t) {\n return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t;\n};\nvar animations = {\n easeOut: easeOut,\n linear: linear,\n easeInQuad: easeInQuad,\n easeOutQuad: easeOutQuad,\n easeInOutQuad: easeInOutQuad,\n easeInCubic: easeInCubic,\n easeOutCubic: easeOutCubic,\n easeInOutCubic: easeInOutCubic,\n easeInQuart: easeInQuart,\n easeOutQuart: easeOutQuart,\n easeInOutQuart: easeInOutQuart,\n easeInQuint: easeInQuint,\n easeOutQuint: easeOutQuint,\n easeInOutQuint: easeInOutQuint,\n};\n\n/* eslint-disable no-param-reassign */\nvar handleCancelAnimationFrame = function (animation) {\n if (typeof animation === \"number\") {\n cancelAnimationFrame(animation);\n }\n};\nvar handleCancelAnimation = function (contextInstance) {\n if (!contextInstance.mounted)\n return;\n handleCancelAnimationFrame(contextInstance.animation);\n // Clear animation state\n contextInstance.animate = false;\n contextInstance.animation = null;\n contextInstance.velocity = null;\n};\nfunction handleSetupAnimation(contextInstance, animationName, animationTime, callback) {\n if (!contextInstance.mounted)\n return;\n var startTime = new Date().getTime();\n var lastStep = 1;\n // if another animation is active\n handleCancelAnimation(contextInstance);\n // new animation\n contextInstance.animation = function () {\n if (!contextInstance.mounted) {\n return handleCancelAnimationFrame(contextInstance.animation);\n }\n var frameTime = new Date().getTime() - startTime;\n var animationProgress = frameTime / animationTime;\n var animationType = animations[animationName];\n var step = animationType(animationProgress);\n if (frameTime >= animationTime) {\n callback(lastStep);\n contextInstance.animation = null;\n }\n else if (contextInstance.animation) {\n callback(step);\n requestAnimationFrame(contextInstance.animation);\n }\n };\n requestAnimationFrame(contextInstance.animation);\n}\nfunction isValidTargetState(targetState) {\n var scale = targetState.scale, positionX = targetState.positionX, positionY = targetState.positionY;\n if (Number.isNaN(scale) ||\n Number.isNaN(positionX) ||\n Number.isNaN(positionY)) {\n return false;\n }\n return true;\n}\nfunction animate(contextInstance, targetState, animationTime, animationName) {\n var isValid = isValidTargetState(targetState);\n if (!contextInstance.mounted || !isValid)\n return;\n var setTransformState = contextInstance.setTransformState;\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n var scaleDiff = targetState.scale - scale;\n var positionXDiff = targetState.positionX - positionX;\n var positionYDiff = targetState.positionY - positionY;\n if (animationTime === 0) {\n setTransformState(targetState.scale, targetState.positionX, targetState.positionY);\n }\n else {\n // animation start timestamp\n handleSetupAnimation(contextInstance, animationName, animationTime, function (step) {\n var newScale = scale + scaleDiff * step;\n var newPositionX = positionX + positionXDiff * step;\n var newPositionY = positionY + positionYDiff * step;\n setTransformState(newScale, newPositionX, newPositionY);\n });\n }\n}\n\n/* eslint-disable no-param-reassign */\nfunction getComponentsSizes(wrapperComponent, contentComponent, newScale) {\n var wrapperWidth = wrapperComponent.offsetWidth;\n var wrapperHeight = wrapperComponent.offsetHeight;\n var contentWidth = contentComponent.offsetWidth;\n var contentHeight = contentComponent.offsetHeight;\n var newContentWidth = contentWidth * newScale;\n var newContentHeight = contentHeight * newScale;\n var newDiffWidth = wrapperWidth - newContentWidth;\n var newDiffHeight = wrapperHeight - newContentHeight;\n return {\n wrapperWidth: wrapperWidth,\n wrapperHeight: wrapperHeight,\n newContentWidth: newContentWidth,\n newDiffWidth: newDiffWidth,\n newContentHeight: newContentHeight,\n newDiffHeight: newDiffHeight,\n };\n}\nvar getBounds = function (wrapperWidth, newContentWidth, diffWidth, wrapperHeight, newContentHeight, diffHeight, centerZoomedOut) {\n var scaleWidthFactor = wrapperWidth > newContentWidth\n ? diffWidth * (centerZoomedOut ? 1 : 0.5)\n : 0;\n var scaleHeightFactor = wrapperHeight > newContentHeight\n ? diffHeight * (centerZoomedOut ? 1 : 0.5)\n : 0;\n var minPositionX = wrapperWidth - newContentWidth - scaleWidthFactor;\n var maxPositionX = scaleWidthFactor;\n var minPositionY = wrapperHeight - newContentHeight - scaleHeightFactor;\n var maxPositionY = scaleHeightFactor;\n return { minPositionX: minPositionX, maxPositionX: maxPositionX, minPositionY: minPositionY, maxPositionY: maxPositionY };\n};\nvar calculateBounds = function (contextInstance, newScale) {\n var wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n var centerZoomedOut = contextInstance.setup.centerZoomedOut;\n if (!wrapperComponent || !contentComponent) {\n throw new Error(\"Components are not mounted\");\n }\n var _a = getComponentsSizes(wrapperComponent, contentComponent, newScale), wrapperWidth = _a.wrapperWidth, wrapperHeight = _a.wrapperHeight, newContentWidth = _a.newContentWidth, newDiffWidth = _a.newDiffWidth, newContentHeight = _a.newContentHeight, newDiffHeight = _a.newDiffHeight;\n var bounds = getBounds(wrapperWidth, newContentWidth, newDiffWidth, wrapperHeight, newContentHeight, newDiffHeight, Boolean(centerZoomedOut));\n return bounds;\n};\n/**\n * Keeps value between given bounds, used for limiting view to given boundaries\n * 1# eg. boundLimiter(2, 0, 3, true) => 2\n * 2# eg. boundLimiter(4, 0, 3, true) => 3\n * 3# eg. boundLimiter(-2, 0, 3, true) => 0\n * 4# eg. boundLimiter(10, 0, 3, false) => 10\n */\nvar boundLimiter = function (value, minBound, maxBound, isActive) {\n if (!isActive)\n return roundNumber(value, 2);\n if (value < minBound)\n return roundNumber(minBound, 2);\n if (value > maxBound)\n return roundNumber(maxBound, 2);\n return roundNumber(value, 2);\n};\nvar handleCalculateBounds = function (contextInstance, newScale) {\n var bounds = calculateBounds(contextInstance, newScale);\n // Save bounds\n contextInstance.bounds = bounds;\n return bounds;\n};\nfunction getMouseBoundedPosition(positionX, positionY, bounds, limitToBounds, paddingValueX, paddingValueY, wrapperComponent) {\n var minPositionX = bounds.minPositionX, minPositionY = bounds.minPositionY, maxPositionX = bounds.maxPositionX, maxPositionY = bounds.maxPositionY;\n var paddingX = 0;\n var paddingY = 0;\n if (wrapperComponent) {\n paddingX = paddingValueX;\n paddingY = paddingValueY;\n }\n var x = boundLimiter(positionX, minPositionX - paddingX, maxPositionX + paddingX, limitToBounds);\n var y = boundLimiter(positionY, minPositionY - paddingY, maxPositionY + paddingY, limitToBounds);\n return { x: x, y: y };\n}\n\nfunction handleCalculateZoomPositions(contextInstance, mouseX, mouseY, newScale, bounds, limitToBounds) {\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n var scaleDifference = newScale - scale;\n if (typeof mouseX !== \"number\" || typeof mouseY !== \"number\") {\n console.error(\"Mouse X and Y position were not provided!\");\n return { x: positionX, y: positionY };\n }\n var calculatedPositionX = positionX - mouseX * scaleDifference;\n var calculatedPositionY = positionY - mouseY * scaleDifference;\n // do not limit to bounds when there is padding animation,\n // it causes animation strange behaviour\n var newPositions = getMouseBoundedPosition(calculatedPositionX, calculatedPositionY, bounds, limitToBounds, 0, 0, null);\n return newPositions;\n}\nfunction checkZoomBounds(zoom, minScale, maxScale, zoomPadding, enablePadding) {\n var scalePadding = enablePadding ? zoomPadding : 0;\n var minScaleWithPadding = minScale - scalePadding;\n if (!Number.isNaN(maxScale) && zoom >= maxScale)\n return maxScale;\n if (!Number.isNaN(minScale) && zoom <= minScaleWithPadding)\n return minScaleWithPadding;\n return zoom;\n}\n\nvar isPanningStartAllowed = function (contextInstance, event) {\n var excluded = contextInstance.setup.panning.excluded;\n var isInitialized = contextInstance.isInitialized, wrapperComponent = contextInstance.wrapperComponent;\n var target = event.target;\n var isWrapperChild = wrapperComponent === null || wrapperComponent === void 0 ? void 0 : wrapperComponent.contains(target);\n var isAllowed = isInitialized && target && isWrapperChild;\n if (!isAllowed)\n return false;\n var isExcluded = isExcludedNode(target, excluded);\n if (isExcluded)\n return false;\n return true;\n};\nvar isPanningAllowed = function (contextInstance) {\n var isInitialized = contextInstance.isInitialized, isPanning = contextInstance.isPanning, setup = contextInstance.setup;\n var disabled = setup.panning.disabled;\n var isAllowed = isInitialized && isPanning && !disabled;\n if (!isAllowed)\n return false;\n return true;\n};\nvar handlePanningSetup = function (contextInstance, event) {\n var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY;\n contextInstance.isPanning = true;\n // Panning with mouse\n var x = event.clientX;\n var y = event.clientY;\n contextInstance.startCoords = { x: x - positionX, y: y - positionY };\n};\nvar handleTouchPanningSetup = function (contextInstance, event) {\n var touches = event.touches;\n var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY;\n contextInstance.isPanning = true;\n // Panning with touch\n var oneFingerTouch = touches.length === 1;\n if (oneFingerTouch) {\n var x = touches[0].clientX;\n var y = touches[0].clientY;\n contextInstance.startCoords = { x: x - positionX, y: y - positionY };\n }\n};\nfunction handlePanToBounds(contextInstance) {\n var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY, scale = _a.scale;\n var _b = contextInstance.setup, disabled = _b.disabled, limitToBounds = _b.limitToBounds, centerZoomedOut = _b.centerZoomedOut;\n var wrapperComponent = contextInstance.wrapperComponent;\n if (disabled || !wrapperComponent || !contextInstance.bounds)\n return;\n var _c = contextInstance.bounds, maxPositionX = _c.maxPositionX, minPositionX = _c.minPositionX, maxPositionY = _c.maxPositionY, minPositionY = _c.minPositionY;\n var xChanged = positionX > maxPositionX || positionX < minPositionX;\n var yChanged = positionY > maxPositionY || positionY < minPositionY;\n var mousePosX = positionX > maxPositionX\n ? wrapperComponent.offsetWidth\n : contextInstance.setup.minPositionX || 0;\n var mousePosY = positionY > maxPositionY\n ? wrapperComponent.offsetHeight\n : contextInstance.setup.minPositionY || 0;\n var _d = handleCalculateZoomPositions(contextInstance, mousePosX, mousePosY, scale, contextInstance.bounds, limitToBounds || centerZoomedOut), x = _d.x, y = _d.y;\n return {\n scale: scale,\n positionX: xChanged ? x : positionX,\n positionY: yChanged ? y : positionY,\n };\n}\nfunction handleNewPosition(contextInstance, newPositionX, newPositionY, paddingValueX, paddingValueY) {\n var limitToBounds = contextInstance.setup.limitToBounds;\n var wrapperComponent = contextInstance.wrapperComponent, bounds = contextInstance.bounds;\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n if (wrapperComponent === null ||\n bounds === null ||\n (newPositionX === positionX && newPositionY === positionY)) {\n return;\n }\n var _b = getMouseBoundedPosition(newPositionX, newPositionY, bounds, limitToBounds, paddingValueX, paddingValueY, wrapperComponent), x = _b.x, y = _b.y;\n contextInstance.setTransformState(scale, x, y);\n}\nvar getPanningClientPosition = function (contextInstance, clientX, clientY) {\n var startCoords = contextInstance.startCoords, transformState = contextInstance.transformState;\n var panning = contextInstance.setup.panning;\n var lockAxisX = panning.lockAxisX, lockAxisY = panning.lockAxisY;\n var positionX = transformState.positionX, positionY = transformState.positionY;\n if (!startCoords) {\n return { x: positionX, y: positionY };\n }\n var mouseX = clientX - startCoords.x;\n var mouseY = clientY - startCoords.y;\n var newPositionX = lockAxisX ? positionX : mouseX;\n var newPositionY = lockAxisY ? positionY : mouseY;\n return { x: newPositionX, y: newPositionY };\n};\nvar getPaddingValue = function (contextInstance, size) {\n var setup = contextInstance.setup, transformState = contextInstance.transformState;\n var scale = transformState.scale;\n var minScale = setup.minScale, disablePadding = setup.disablePadding;\n if (size > 0 && scale >= minScale && !disablePadding) {\n return size;\n }\n return 0;\n};\n\nvar isVelocityCalculationAllowed = function (contextInstance) {\n var mounted = contextInstance.mounted;\n var _a = contextInstance.setup, disabled = _a.disabled, velocityAnimation = _a.velocityAnimation;\n var scale = contextInstance.transformState.scale;\n var disabledVelocity = velocityAnimation.disabled;\n var isAllowed = !disabledVelocity || scale > 1 || !disabled || mounted;\n if (!isAllowed)\n return false;\n return true;\n};\nvar isVelocityAllowed = function (contextInstance) {\n var mounted = contextInstance.mounted, velocity = contextInstance.velocity, bounds = contextInstance.bounds;\n var _a = contextInstance.setup, disabled = _a.disabled, velocityAnimation = _a.velocityAnimation;\n var scale = contextInstance.transformState.scale;\n var disabledVelocity = velocityAnimation.disabled;\n var isAllowed = !disabledVelocity || scale > 1 || !disabled || mounted;\n if (!isAllowed)\n return false;\n if (!velocity || !bounds)\n return false;\n return true;\n};\nfunction getVelocityMoveTime(contextInstance, velocity) {\n var velocityAnimation = contextInstance.setup.velocityAnimation;\n var equalToMove = velocityAnimation.equalToMove, animationTime = velocityAnimation.animationTime, sensitivity = velocityAnimation.sensitivity;\n if (equalToMove) {\n return animationTime * velocity * sensitivity;\n }\n return animationTime;\n}\nfunction getVelocityPosition(newPosition, startPosition, currentPosition, isLocked, limitToBounds, minPosition, maxPosition, minTarget, maxTarget, step) {\n if (limitToBounds) {\n if (startPosition > maxPosition && currentPosition > maxPosition) {\n var calculatedPosition = maxPosition + (newPosition - maxPosition) * step;\n if (calculatedPosition > maxTarget)\n return maxTarget;\n if (calculatedPosition < maxPosition)\n return maxPosition;\n return calculatedPosition;\n }\n if (startPosition < minPosition && currentPosition < minPosition) {\n var calculatedPosition = minPosition + (newPosition - minPosition) * step;\n if (calculatedPosition < minTarget)\n return minTarget;\n if (calculatedPosition > minPosition)\n return minPosition;\n return calculatedPosition;\n }\n }\n if (isLocked)\n return startPosition;\n return boundLimiter(newPosition, minPosition, maxPosition, limitToBounds);\n}\n\nfunction getSizeMultiplier(wrapperComponent, equalToMove) {\n var defaultMultiplier = 1;\n if (equalToMove) {\n return Math.min(defaultMultiplier, wrapperComponent.offsetWidth / window.innerWidth);\n }\n return defaultMultiplier;\n}\nfunction handleCalculateVelocity(contextInstance, position) {\n var isAllowed = isVelocityCalculationAllowed(contextInstance);\n if (!isAllowed) {\n return;\n }\n var lastMousePosition = contextInstance.lastMousePosition, velocityTime = contextInstance.velocityTime, setup = contextInstance.setup;\n var wrapperComponent = contextInstance.wrapperComponent;\n var equalToMove = setup.velocityAnimation.equalToMove;\n var now = Date.now();\n if (lastMousePosition && velocityTime && wrapperComponent) {\n var sizeMultiplier = getSizeMultiplier(wrapperComponent, equalToMove);\n var distanceX = position.x - lastMousePosition.x;\n var distanceY = position.y - lastMousePosition.y;\n var velocityX = distanceX / sizeMultiplier;\n var velocityY = distanceY / sizeMultiplier;\n var interval = now - velocityTime;\n var speed = distanceX * distanceX + distanceY * distanceY;\n var velocity = Math.sqrt(speed) / interval;\n contextInstance.velocity = { velocityX: velocityX, velocityY: velocityY, total: velocity };\n }\n contextInstance.lastMousePosition = position;\n contextInstance.velocityTime = now;\n}\nfunction handleVelocityPanning(contextInstance) {\n var velocity = contextInstance.velocity, bounds = contextInstance.bounds, setup = contextInstance.setup, wrapperComponent = contextInstance.wrapperComponent;\n var isAllowed = isVelocityAllowed(contextInstance);\n if (!isAllowed || !velocity || !bounds || !wrapperComponent) {\n return;\n }\n var velocityX = velocity.velocityX, velocityY = velocity.velocityY, total = velocity.total;\n var maxPositionX = bounds.maxPositionX, minPositionX = bounds.minPositionX, maxPositionY = bounds.maxPositionY, minPositionY = bounds.minPositionY;\n var limitToBounds = setup.limitToBounds, alignmentAnimation = setup.alignmentAnimation;\n var zoomAnimation = setup.zoomAnimation, panning = setup.panning;\n var lockAxisY = panning.lockAxisY, lockAxisX = panning.lockAxisX;\n var animationType = zoomAnimation.animationType;\n var sizeX = alignmentAnimation.sizeX, sizeY = alignmentAnimation.sizeY, velocityAlignmentTime = alignmentAnimation.velocityAlignmentTime;\n var alignAnimationTime = velocityAlignmentTime;\n var moveAnimationTime = getVelocityMoveTime(contextInstance, total);\n var finalAnimationTime = Math.max(moveAnimationTime, alignAnimationTime);\n var paddingValueX = getPaddingValue(contextInstance, sizeX);\n var paddingValueY = getPaddingValue(contextInstance, sizeY);\n var paddingX = (paddingValueX * wrapperComponent.offsetWidth) / 100;\n var paddingY = (paddingValueY * wrapperComponent.offsetHeight) / 100;\n var maxTargetX = maxPositionX + paddingX;\n var minTargetX = minPositionX - paddingX;\n var maxTargetY = maxPositionY + paddingY;\n var minTargetY = minPositionY - paddingY;\n var startState = contextInstance.transformState;\n var startTime = new Date().getTime();\n handleSetupAnimation(contextInstance, animationType, finalAnimationTime, function (step) {\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n var frameTime = new Date().getTime() - startTime;\n var animationProgress = frameTime / alignAnimationTime;\n var alignAnimation = animations[alignmentAnimation.animationType];\n var alignStep = 1 - alignAnimation(Math.min(1, animationProgress));\n var customStep = 1 - step;\n var newPositionX = positionX + velocityX * customStep;\n var newPositionY = positionY + velocityY * customStep;\n var currentPositionX = getVelocityPosition(newPositionX, startState.positionX, positionX, lockAxisX, limitToBounds, minPositionX, maxPositionX, minTargetX, maxTargetX, alignStep);\n var currentPositionY = getVelocityPosition(newPositionY, startState.positionY, positionY, lockAxisY, limitToBounds, minPositionY, maxPositionY, minTargetY, maxTargetY, alignStep);\n if (positionX !== newPositionX || positionY !== newPositionY) {\n contextInstance.setTransformState(scale, currentPositionX, currentPositionY);\n }\n });\n}\n\nfunction handlePanningStart(contextInstance, event) {\n var scale = contextInstance.transformState.scale;\n handleCancelAnimation(contextInstance);\n handleCalculateBounds(contextInstance, scale);\n if (window.TouchEvent !== undefined && event instanceof TouchEvent) {\n handleTouchPanningSetup(contextInstance, event);\n }\n else {\n handlePanningSetup(contextInstance, event);\n }\n}\nfunction handleAlignToBounds(contextInstance) {\n var scale = contextInstance.transformState.scale;\n var _a = contextInstance.setup, minScale = _a.minScale, alignmentAnimation = _a.alignmentAnimation;\n var disabled = alignmentAnimation.disabled, sizeX = alignmentAnimation.sizeX, sizeY = alignmentAnimation.sizeY, animationTime = alignmentAnimation.animationTime, animationType = alignmentAnimation.animationType;\n var isDisabled = disabled || scale < minScale || (!sizeX && !sizeY);\n if (isDisabled)\n return;\n var targetState = handlePanToBounds(contextInstance);\n if (targetState) {\n animate(contextInstance, targetState, animationTime, animationType);\n }\n}\nfunction handlePanning(contextInstance, clientX, clientY) {\n var startCoords = contextInstance.startCoords, setup = contextInstance.setup;\n var _a = setup.alignmentAnimation, sizeX = _a.sizeX, sizeY = _a.sizeY;\n if (!startCoords)\n return;\n var _b = getPanningClientPosition(contextInstance, clientX, clientY), x = _b.x, y = _b.y;\n var paddingValueX = getPaddingValue(contextInstance, sizeX);\n var paddingValueY = getPaddingValue(contextInstance, sizeY);\n handleCalculateVelocity(contextInstance, { x: x, y: y });\n handleNewPosition(contextInstance, x, y, paddingValueX, paddingValueY);\n}\nfunction handlePanningEnd(contextInstance) {\n if (contextInstance.isPanning) {\n var velocityDisabled = contextInstance.setup.panning.velocityDisabled;\n var velocity = contextInstance.velocity, wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n contextInstance.isPanning = false;\n contextInstance.animate = false;\n contextInstance.animation = null;\n var wrapperRect = wrapperComponent === null || wrapperComponent === void 0 ? void 0 : wrapperComponent.getBoundingClientRect();\n var contentRect = contentComponent === null || contentComponent === void 0 ? void 0 : contentComponent.getBoundingClientRect();\n var wrapperWidth = (wrapperRect === null || wrapperRect === void 0 ? void 0 : wrapperRect.width) || 0;\n var wrapperHeight = (wrapperRect === null || wrapperRect === void 0 ? void 0 : wrapperRect.height) || 0;\n var contentWidth = (contentRect === null || contentRect === void 0 ? void 0 : contentRect.width) || 0;\n var contentHeight = (contentRect === null || contentRect === void 0 ? void 0 : contentRect.height) || 0;\n var isZoomed = wrapperWidth < contentWidth || wrapperHeight < contentHeight;\n var shouldAnimate = !velocityDisabled && velocity && (velocity === null || velocity === void 0 ? void 0 : velocity.total) > 0.1 && isZoomed;\n if (shouldAnimate) {\n handleVelocityPanning(contextInstance);\n }\n else {\n handleAlignToBounds(contextInstance);\n }\n }\n}\n\nfunction handleZoomToPoint(contextInstance, scale, mouseX, mouseY) {\n var _a = contextInstance.setup, minScale = _a.minScale, maxScale = _a.maxScale, limitToBounds = _a.limitToBounds;\n var newScale = checkZoomBounds(roundNumber(scale, 2), minScale, maxScale, 0, false);\n var bounds = handleCalculateBounds(contextInstance, newScale);\n var _b = handleCalculateZoomPositions(contextInstance, mouseX, mouseY, newScale, bounds, limitToBounds), x = _b.x, y = _b.y;\n return { scale: newScale, positionX: x, positionY: y };\n}\nfunction handleAlignToScaleBounds(contextInstance, mousePositionX, mousePositionY) {\n var scale = contextInstance.transformState.scale;\n var wrapperComponent = contextInstance.wrapperComponent;\n var _a = contextInstance.setup, minScale = _a.minScale, limitToBounds = _a.limitToBounds, zoomAnimation = _a.zoomAnimation;\n var disabled = zoomAnimation.disabled, animationTime = zoomAnimation.animationTime, animationType = zoomAnimation.animationType;\n var isDisabled = disabled || scale >= minScale;\n if (scale >= 1 || limitToBounds) {\n // fire fit to bounds animation\n handleAlignToBounds(contextInstance);\n }\n if (isDisabled || !wrapperComponent || !contextInstance.mounted)\n return;\n var mouseX = mousePositionX || wrapperComponent.offsetWidth / 2;\n var mouseY = mousePositionY || wrapperComponent.offsetHeight / 2;\n var targetState = handleZoomToPoint(contextInstance, minScale, mouseX, mouseY);\n if (targetState) {\n animate(contextInstance, targetState, animationTime, animationType);\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\n\nvar initialState = {\n previousScale: 1,\n scale: 1,\n positionX: 0,\n positionY: 0,\n};\nvar initialSetup = {\n disabled: false,\n minPositionX: null,\n maxPositionX: null,\n minPositionY: null,\n maxPositionY: null,\n minScale: 1,\n maxScale: 8,\n limitToBounds: true,\n centerZoomedOut: false,\n centerOnInit: false,\n disablePadding: false,\n wheel: {\n step: 0.2,\n disabled: false,\n wheelDisabled: false,\n touchPadDisabled: false,\n activationKeys: [],\n excluded: [],\n },\n panning: {\n disabled: false,\n velocityDisabled: false,\n lockAxisX: false,\n lockAxisY: false,\n activationKeys: [],\n excluded: [],\n },\n pinch: {\n step: 5,\n disabled: false,\n excluded: [],\n },\n doubleClick: {\n disabled: false,\n step: 0.7,\n mode: \"zoomIn\",\n animationType: \"easeOut\",\n animationTime: 200,\n excluded: [],\n },\n zoomAnimation: {\n disabled: false,\n size: 0.4,\n animationTime: 200,\n animationType: \"easeOut\",\n },\n alignmentAnimation: {\n disabled: false,\n sizeX: 100,\n sizeY: 100,\n animationTime: 200,\n velocityAlignmentTime: 400,\n animationType: \"easeOut\",\n },\n velocityAnimation: {\n disabled: false,\n sensitivity: 1,\n animationTime: 400,\n animationType: \"easeOut\",\n equalToMove: true,\n },\n};\n\nvar createState = function (props) {\n var _a, _b, _c, _d;\n return {\n previousScale: (_a = props.initialScale) !== null && _a !== void 0 ? _a : initialState.scale,\n scale: (_b = props.initialScale) !== null && _b !== void 0 ? _b : initialState.scale,\n positionX: (_c = props.initialPositionX) !== null && _c !== void 0 ? _c : initialState.positionX,\n positionY: (_d = props.initialPositionY) !== null && _d !== void 0 ? _d : initialState.positionY,\n };\n};\nvar createSetup = function (props) {\n var newSetup = __assign({}, initialSetup);\n Object.keys(props).forEach(function (key) {\n var validValue = typeof props[key] !== \"undefined\";\n var validParameter = typeof initialSetup[key] !== \"undefined\";\n if (validParameter && validValue) {\n var dataType = Object.prototype.toString.call(initialSetup[key]);\n var isObject = dataType === \"[object Object]\";\n var isArray = dataType === \"[object Array]\";\n if (isObject) {\n newSetup[key] = __assign(__assign({}, initialSetup[key]), props[key]);\n }\n else if (isArray) {\n newSetup[key] = __spreadArray(__spreadArray([], initialSetup[key], true), props[key], true);\n }\n else {\n newSetup[key] = props[key];\n }\n }\n });\n return newSetup;\n};\n\nvar handleCalculateButtonZoom = function (contextInstance, delta, step) {\n var scale = contextInstance.transformState.scale;\n var wrapperComponent = contextInstance.wrapperComponent, setup = contextInstance.setup;\n var maxScale = setup.maxScale, minScale = setup.minScale, zoomAnimation = setup.zoomAnimation;\n var size = zoomAnimation.size;\n if (!wrapperComponent) {\n throw new Error(\"Wrapper is not mounted\");\n }\n var targetScale = scale * Math.exp(delta * step);\n var newScale = checkZoomBounds(roundNumber(targetScale, 3), minScale, maxScale, size, false);\n return newScale;\n};\nfunction handleZoomToViewCenter(contextInstance, delta, step, animationTime, animationType) {\n var wrapperComponent = contextInstance.wrapperComponent;\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n if (!wrapperComponent)\n return console.error(\"No WrapperComponent found\");\n var wrapperWidth = wrapperComponent.offsetWidth;\n var wrapperHeight = wrapperComponent.offsetHeight;\n var mouseX = (wrapperWidth / 2 - positionX) / scale;\n var mouseY = (wrapperHeight / 2 - positionY) / scale;\n var newScale = handleCalculateButtonZoom(contextInstance, delta, step);\n var targetState = handleZoomToPoint(contextInstance, newScale, mouseX, mouseY);\n if (!targetState) {\n return console.error(\"Error during zoom event. New transformation state was not calculated.\");\n }\n animate(contextInstance, targetState, animationTime, animationType);\n}\nfunction resetTransformations(contextInstance, animationTime, animationType, onResetTransformation) {\n var setup = contextInstance.setup, wrapperComponent = contextInstance.wrapperComponent;\n var limitToBounds = setup.limitToBounds;\n var initialTransformation = createState(contextInstance.props);\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n if (!wrapperComponent)\n return;\n var newBounds = calculateBounds(contextInstance, initialTransformation.scale);\n var boundedPositions = getMouseBoundedPosition(initialTransformation.positionX, initialTransformation.positionY, newBounds, limitToBounds, 0, 0, wrapperComponent);\n var newState = {\n scale: initialTransformation.scale,\n positionX: boundedPositions.x,\n positionY: boundedPositions.y,\n };\n if (scale === initialTransformation.scale &&\n positionX === initialTransformation.positionX &&\n positionY === initialTransformation.positionY) {\n return;\n }\n onResetTransformation === null || onResetTransformation === void 0 ? void 0 : onResetTransformation();\n animate(contextInstance, newState, animationTime, animationType);\n}\nfunction getOffset(element, wrapper, content, state) {\n var offset = element.getBoundingClientRect();\n var wrapperOffset = wrapper.getBoundingClientRect();\n var contentOffset = content.getBoundingClientRect();\n var xOff = wrapperOffset.x * state.scale;\n var yOff = wrapperOffset.y * state.scale;\n return {\n x: (offset.x - contentOffset.x + xOff) / state.scale,\n y: (offset.y - contentOffset.y + yOff) / state.scale,\n };\n}\nfunction calculateZoomToNode(contextInstance, node, customZoom) {\n var wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent, transformState = contextInstance.transformState;\n var _a = contextInstance.setup, limitToBounds = _a.limitToBounds, minScale = _a.minScale, maxScale = _a.maxScale;\n if (!wrapperComponent || !contentComponent)\n return transformState;\n var wrapperRect = wrapperComponent.getBoundingClientRect();\n var nodeRect = node.getBoundingClientRect();\n var nodeOffset = getOffset(node, wrapperComponent, contentComponent, transformState);\n var nodeLeft = nodeOffset.x;\n var nodeTop = nodeOffset.y;\n var nodeWidth = nodeRect.width / transformState.scale;\n var nodeHeight = nodeRect.height / transformState.scale;\n var scaleX = wrapperComponent.offsetWidth / nodeWidth;\n var scaleY = wrapperComponent.offsetHeight / nodeHeight;\n var newScale = checkZoomBounds(customZoom || Math.min(scaleX, scaleY), minScale, maxScale, 0, false);\n var offsetX = (wrapperRect.width - nodeWidth * newScale) / 2;\n var offsetY = (wrapperRect.height - nodeHeight * newScale) / 2;\n var newPositionX = (wrapperRect.left - nodeLeft) * newScale + offsetX;\n var newPositionY = (wrapperRect.top - nodeTop) * newScale + offsetY;\n var bounds = calculateBounds(contextInstance, newScale);\n var _b = getMouseBoundedPosition(newPositionX, newPositionY, bounds, limitToBounds, 0, 0, wrapperComponent), x = _b.x, y = _b.y;\n return { positionX: x, positionY: y, scale: newScale };\n}\n\nvar zoomIn = function (contextInstance) {\n return function (step, animationTime, animationType) {\n if (step === void 0) { step = 0.5; }\n if (animationTime === void 0) { animationTime = 300; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n handleZoomToViewCenter(contextInstance, 1, step, animationTime, animationType);\n };\n};\nvar zoomOut = function (contextInstance) {\n return function (step, animationTime, animationType) {\n if (step === void 0) { step = 0.5; }\n if (animationTime === void 0) { animationTime = 300; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n handleZoomToViewCenter(contextInstance, -1, step, animationTime, animationType);\n };\n};\nvar setTransform = function (contextInstance) {\n return function (newPositionX, newPositionY, newScale, animationTime, animationType) {\n if (animationTime === void 0) { animationTime = 300; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY, scale = _a.scale;\n var wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n var disabled = contextInstance.setup.disabled;\n if (disabled || !wrapperComponent || !contentComponent)\n return;\n var targetState = {\n positionX: Number.isNaN(newPositionX) ? positionX : newPositionX,\n positionY: Number.isNaN(newPositionY) ? positionY : newPositionY,\n scale: Number.isNaN(newScale) ? scale : newScale,\n };\n animate(contextInstance, targetState, animationTime, animationType);\n };\n};\nvar resetTransform = function (contextInstance) {\n return function (animationTime, animationType) {\n if (animationTime === void 0) { animationTime = 200; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n resetTransformations(contextInstance, animationTime, animationType);\n };\n};\nvar centerView = function (contextInstance) {\n return function (scale, animationTime, animationType) {\n if (animationTime === void 0) { animationTime = 200; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n var transformState = contextInstance.transformState, wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n if (wrapperComponent && contentComponent) {\n var targetState = getCenterPosition(scale || transformState.scale, wrapperComponent, contentComponent);\n animate(contextInstance, targetState, animationTime, animationType);\n }\n };\n};\nvar zoomToElement = function (contextInstance) {\n return function (node, scale, animationTime, animationType) {\n if (animationTime === void 0) { animationTime = 600; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n handleCancelAnimation(contextInstance);\n var wrapperComponent = contextInstance.wrapperComponent;\n var target = typeof node === \"string\" ? document.getElementById(node) : node;\n if (wrapperComponent && target && wrapperComponent.contains(target)) {\n var targetState = calculateZoomToNode(contextInstance, target, scale);\n animate(contextInstance, targetState, animationTime, animationType);\n }\n };\n};\n\nvar getContext = function (contextInstance) {\n return {\n instance: contextInstance,\n state: contextInstance.transformState,\n zoomIn: zoomIn(contextInstance),\n zoomOut: zoomOut(contextInstance),\n setTransform: setTransform(contextInstance),\n resetTransform: resetTransform(contextInstance),\n centerView: centerView(contextInstance),\n zoomToElement: zoomToElement(contextInstance),\n };\n};\n\n// We want to make event listeners non-passive, and to do so have to check\n// that browsers support EventListenerOptions in the first place.\n// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\nvar passiveSupported = false;\nfunction makePassiveEventOption() {\n try {\n var options = {\n get passive() {\n // This function will be called when the browser\n // attempts to access the passive property.\n passiveSupported = true;\n return false;\n },\n };\n return options;\n }\n catch (err) {\n passiveSupported = false;\n return passiveSupported;\n }\n}\n\nvar isExcludedNode = function (node, excluded) {\n var targetTagName = node.tagName.toUpperCase();\n var isExcludedTag = excluded.find(function (tag) { return tag.toUpperCase() === targetTagName; });\n if (isExcludedTag)\n return true;\n var isExcludedClassName = excluded.find(function (className) {\n return node.classList.contains(className);\n });\n if (isExcludedClassName)\n return true;\n return false;\n};\nvar cancelTimeout = function (timeout) {\n if (timeout) {\n clearTimeout(timeout);\n }\n};\n\nvar getTransformStyles = function (x, y, scale) {\n // Standard translate prevents blurry svg on the safari\n return \"translate(\".concat(x, \"px, \").concat(y, \"px) scale(\").concat(scale, \")\");\n};\nvar getMatrixTransformStyles = function (x, y, scale) {\n // The shorthand for matrix does not work for Safari hence the need to explicitly use matrix3d\n // Refer to https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix\n var a = scale;\n var b = 0;\n var c = 0;\n var d = scale;\n var tx = x;\n var ty = y;\n return \"matrix3d(\".concat(a, \", \").concat(b, \", 0, 0, \").concat(c, \", \").concat(d, \", 0, 0, 0, 0, 1, 0, \").concat(tx, \", \").concat(ty, \", 0, 1)\");\n};\nvar getCenterPosition = function (scale, wrapperComponent, contentComponent) {\n var contentWidth = contentComponent.offsetWidth * scale;\n var contentHeight = contentComponent.offsetHeight * scale;\n var centerPositionX = (wrapperComponent.offsetWidth - contentWidth) / 2;\n var centerPositionY = (wrapperComponent.offsetHeight - contentHeight) / 2;\n return {\n scale: scale,\n positionX: centerPositionX,\n positionY: centerPositionY,\n };\n};\n\nfunction mergeRefs(refs) {\n return function (value) {\n refs.forEach(function (ref) {\n if (typeof ref === \"function\") {\n ref(value);\n }\n else if (ref != null) {\n ref.current = value;\n }\n });\n };\n}\n\nvar isWheelAllowed = function (contextInstance, event) {\n var _a = contextInstance.setup.wheel, disabled = _a.disabled, wheelDisabled = _a.wheelDisabled, touchPadDisabled = _a.touchPadDisabled, excluded = _a.excluded;\n var isInitialized = contextInstance.isInitialized, isPanning = contextInstance.isPanning;\n var target = event.target;\n var isAllowed = isInitialized && !isPanning && !disabled && target;\n if (!isAllowed)\n return false;\n // Event ctrlKey detects if touchpad action is executing wheel or pinch gesture\n if (wheelDisabled && !event.ctrlKey)\n return false;\n if (touchPadDisabled && event.ctrlKey)\n return false;\n var isExcluded = isExcludedNode(target, excluded);\n if (isExcluded)\n return false;\n return true;\n};\nvar getDeltaY = function (event) {\n if (event) {\n return event.deltaY < 0 ? 1 : -1;\n }\n return 0;\n};\nfunction getDelta(event, customDelta) {\n var deltaY = getDeltaY(event);\n var delta = checkIsNumber(customDelta, deltaY);\n return delta;\n}\nfunction getMousePosition(event, contentComponent, scale) {\n var contentRect = contentComponent.getBoundingClientRect();\n var mouseX = 0;\n var mouseY = 0;\n if (\"clientX\" in event) {\n // mouse position x, y over wrapper component\n mouseX = (event.clientX - contentRect.left) / scale;\n mouseY = (event.clientY - contentRect.top) / scale;\n }\n else {\n var touch = event.touches[0];\n mouseX = (touch.clientX - contentRect.left) / scale;\n mouseY = (touch.clientY - contentRect.top) / scale;\n }\n if (Number.isNaN(mouseX) || Number.isNaN(mouseY))\n console.error(\"No mouse or touch offset found\");\n return {\n x: mouseX,\n y: mouseY,\n };\n}\nvar handleCalculateWheelZoom = function (contextInstance, delta, step, disable, getTarget) {\n var scale = contextInstance.transformState.scale;\n var wrapperComponent = contextInstance.wrapperComponent, setup = contextInstance.setup;\n var maxScale = setup.maxScale, minScale = setup.minScale, zoomAnimation = setup.zoomAnimation, disablePadding = setup.disablePadding;\n var size = zoomAnimation.size, disabled = zoomAnimation.disabled;\n if (!wrapperComponent) {\n throw new Error(\"Wrapper is not mounted\");\n }\n var targetScale = scale + delta * (scale - scale * step) * step;\n if (getTarget)\n return targetScale;\n var paddingEnabled = disable ? false : !disabled;\n var newScale = checkZoomBounds(roundNumber(targetScale, 3), minScale, maxScale, size, paddingEnabled && !disablePadding);\n return newScale;\n};\nvar handleWheelZoomStop = function (contextInstance, event) {\n var previousWheelEvent = contextInstance.previousWheelEvent;\n var scale = contextInstance.transformState.scale;\n var _a = contextInstance.setup, maxScale = _a.maxScale, minScale = _a.minScale;\n if (!previousWheelEvent)\n return false;\n if (scale < maxScale || scale > minScale)\n return true;\n if (Math.sign(previousWheelEvent.deltaY) !== Math.sign(event.deltaY))\n return true;\n if (previousWheelEvent.deltaY > 0 && previousWheelEvent.deltaY < event.deltaY)\n return true;\n if (previousWheelEvent.deltaY < 0 && previousWheelEvent.deltaY > event.deltaY)\n return true;\n if (Math.sign(previousWheelEvent.deltaY) !== Math.sign(event.deltaY))\n return true;\n return false;\n};\n\nvar isPinchStartAllowed = function (contextInstance, event) {\n var _a = contextInstance.setup.pinch, disabled = _a.disabled, excluded = _a.excluded;\n var isInitialized = contextInstance.isInitialized;\n var target = event.target;\n var isAllowed = isInitialized && !disabled && target;\n if (!isAllowed)\n return false;\n var isExcluded = isExcludedNode(target, excluded);\n if (isExcluded)\n return false;\n return true;\n};\nvar isPinchAllowed = function (contextInstance) {\n var disabled = contextInstance.setup.pinch.disabled;\n var isInitialized = contextInstance.isInitialized, pinchStartDistance = contextInstance.pinchStartDistance;\n var isAllowed = isInitialized && !disabled && pinchStartDistance;\n if (!isAllowed)\n return false;\n return true;\n};\nvar calculateTouchMidPoint = function (event, scale, contentComponent) {\n var contentRect = contentComponent.getBoundingClientRect();\n var touches = event.touches;\n var firstPointX = roundNumber(touches[0].clientX - contentRect.left, 5);\n var firstPointY = roundNumber(touches[0].clientY - contentRect.top, 5);\n var secondPointX = roundNumber(touches[1].clientX - contentRect.left, 5);\n var secondPointY = roundNumber(touches[1].clientY - contentRect.top, 5);\n return {\n x: (firstPointX + secondPointX) / 2 / scale,\n y: (firstPointY + secondPointY) / 2 / scale,\n };\n};\nvar getTouchDistance = function (event) {\n return Math.sqrt(Math.pow((event.touches[0].pageX - event.touches[1].pageX), 2) +\n Math.pow((event.touches[0].pageY - event.touches[1].pageY), 2));\n};\nvar calculatePinchZoom = function (contextInstance, currentDistance) {\n var pinchStartScale = contextInstance.pinchStartScale, pinchStartDistance = contextInstance.pinchStartDistance, setup = contextInstance.setup;\n var maxScale = setup.maxScale, minScale = setup.minScale, zoomAnimation = setup.zoomAnimation, disablePadding = setup.disablePadding;\n var size = zoomAnimation.size, disabled = zoomAnimation.disabled;\n if (!pinchStartScale || pinchStartDistance === null || !currentDistance) {\n throw new Error(\"Pinch touches distance was not provided\");\n }\n if (currentDistance < 0) {\n return contextInstance.transformState.scale;\n }\n var touchProportion = currentDistance / pinchStartDistance;\n var scaleDifference = touchProportion * pinchStartScale;\n return checkZoomBounds(roundNumber(scaleDifference, 2), minScale, maxScale, size, !disabled && !disablePadding);\n};\n\nvar wheelStopEventTime = 160;\nvar wheelAnimationTime = 100;\nvar handleWheelStart = function (contextInstance, event) {\n var _a = contextInstance.props, onWheelStart = _a.onWheelStart, onZoomStart = _a.onZoomStart;\n if (!contextInstance.wheelStopEventTimer) {\n handleCancelAnimation(contextInstance);\n handleCallback(getContext(contextInstance), event, onWheelStart);\n handleCallback(getContext(contextInstance), event, onZoomStart);\n }\n};\nvar handleWheelZoom = function (contextInstance, event) {\n var _a = contextInstance.props, onWheel = _a.onWheel, onZoom = _a.onZoom;\n var contentComponent = contextInstance.contentComponent, setup = contextInstance.setup, transformState = contextInstance.transformState;\n var scale = transformState.scale;\n var limitToBounds = setup.limitToBounds, centerZoomedOut = setup.centerZoomedOut, zoomAnimation = setup.zoomAnimation, wheel = setup.wheel, disablePadding = setup.disablePadding;\n var size = zoomAnimation.size, disabled = zoomAnimation.disabled;\n var step = wheel.step;\n if (!contentComponent) {\n throw new Error(\"Component not mounted\");\n }\n event.preventDefault();\n event.stopPropagation();\n var delta = getDelta(event, null);\n var newScale = handleCalculateWheelZoom(contextInstance, delta, step, !event.ctrlKey);\n // if scale not change\n if (scale === newScale)\n return;\n var bounds = handleCalculateBounds(contextInstance, newScale);\n var mousePosition = getMousePosition(event, contentComponent, scale);\n var isPaddingDisabled = disabled || size === 0 || centerZoomedOut || disablePadding;\n var isLimitedToBounds = limitToBounds && isPaddingDisabled;\n var _b = handleCalculateZoomPositions(contextInstance, mousePosition.x, mousePosition.y, newScale, bounds, isLimitedToBounds), x = _b.x, y = _b.y;\n contextInstance.previousWheelEvent = event;\n contextInstance.setTransformState(newScale, x, y);\n handleCallback(getContext(contextInstance), event, onWheel);\n handleCallback(getContext(contextInstance), event, onZoom);\n};\nvar handleWheelStop = function (contextInstance, event) {\n var _a = contextInstance.props, onWheelStop = _a.onWheelStop, onZoomStop = _a.onZoomStop;\n // fire animation\n cancelTimeout(contextInstance.wheelAnimationTimer);\n contextInstance.wheelAnimationTimer = setTimeout(function () {\n if (!contextInstance.mounted)\n return;\n handleAlignToScaleBounds(contextInstance, event.x, event.y);\n contextInstance.wheelAnimationTimer = null;\n }, wheelAnimationTime);\n // Wheel stop event\n var hasStoppedZooming = handleWheelZoomStop(contextInstance, event);\n if (hasStoppedZooming) {\n cancelTimeout(contextInstance.wheelStopEventTimer);\n contextInstance.wheelStopEventTimer = setTimeout(function () {\n if (!contextInstance.mounted)\n return;\n contextInstance.wheelStopEventTimer = null;\n handleCallback(getContext(contextInstance), event, onWheelStop);\n handleCallback(getContext(contextInstance), event, onZoomStop);\n }, wheelStopEventTime);\n }\n};\n\nvar handlePinchStart = function (contextInstance, event) {\n var distance = getTouchDistance(event);\n contextInstance.pinchStartDistance = distance;\n contextInstance.lastDistance = distance;\n contextInstance.pinchStartScale = contextInstance.transformState.scale;\n contextInstance.isPanning = false;\n handleCancelAnimation(contextInstance);\n};\nvar handlePinchZoom = function (contextInstance, event) {\n var contentComponent = contextInstance.contentComponent, pinchStartDistance = contextInstance.pinchStartDistance;\n var scale = contextInstance.transformState.scale;\n var _a = contextInstance.setup, limitToBounds = _a.limitToBounds, centerZoomedOut = _a.centerZoomedOut, zoomAnimation = _a.zoomAnimation;\n var disabled = zoomAnimation.disabled, size = zoomAnimation.size;\n // if one finger starts from outside of wrapper\n if (pinchStartDistance === null || !contentComponent)\n return;\n var midPoint = calculateTouchMidPoint(event, scale, contentComponent);\n // if touches goes off of the wrapper element\n if (!Number.isFinite(midPoint.x) || !Number.isFinite(midPoint.y))\n return;\n var currentDistance = getTouchDistance(event);\n var newScale = calculatePinchZoom(contextInstance, currentDistance);\n if (newScale === scale)\n return;\n var bounds = handleCalculateBounds(contextInstance, newScale);\n var isPaddingDisabled = disabled || size === 0 || centerZoomedOut;\n var isLimitedToBounds = limitToBounds && isPaddingDisabled;\n var _b = handleCalculateZoomPositions(contextInstance, midPoint.x, midPoint.y, newScale, bounds, isLimitedToBounds), x = _b.x, y = _b.y;\n contextInstance.pinchMidpoint = midPoint;\n contextInstance.lastDistance = currentDistance;\n contextInstance.setTransformState(newScale, x, y);\n};\nvar handlePinchStop = function (contextInstance) {\n var pinchMidpoint = contextInstance.pinchMidpoint;\n contextInstance.velocity = null;\n contextInstance.lastDistance = null;\n contextInstance.pinchMidpoint = null;\n contextInstance.pinchStartScale = null;\n contextInstance.pinchStartDistance = null;\n handleAlignToScaleBounds(contextInstance, pinchMidpoint === null || pinchMidpoint === void 0 ? void 0 : pinchMidpoint.x, pinchMidpoint === null || pinchMidpoint === void 0 ? void 0 : pinchMidpoint.y);\n};\n\nvar handleDoubleClickStop = function (contextInstance, event) {\n var onZoomStop = contextInstance.props.onZoomStop;\n var animationTime = contextInstance.setup.doubleClick.animationTime;\n cancelTimeout(contextInstance.doubleClickStopEventTimer);\n contextInstance.doubleClickStopEventTimer = setTimeout(function () {\n contextInstance.doubleClickStopEventTimer = null;\n handleCallback(getContext(contextInstance), event, onZoomStop);\n }, animationTime);\n};\nvar handleDoubleClickResetMode = function (contextInstance, event) {\n var _a = contextInstance.props, onZoomStart = _a.onZoomStart, onZoom = _a.onZoom;\n var _b = contextInstance.setup.doubleClick, animationTime = _b.animationTime, animationType = _b.animationType;\n handleCallback(getContext(contextInstance), event, onZoomStart);\n resetTransformations(contextInstance, animationTime, animationType, function () {\n return handleCallback(getContext(contextInstance), event, onZoom);\n });\n handleDoubleClickStop(contextInstance, event);\n};\nfunction handleDoubleClick(contextInstance, event) {\n var setup = contextInstance.setup, doubleClickStopEventTimer = contextInstance.doubleClickStopEventTimer, transformState = contextInstance.transformState, contentComponent = contextInstance.contentComponent;\n var scale = transformState.scale;\n var _a = contextInstance.props, onZoomStart = _a.onZoomStart, onZoom = _a.onZoom;\n var _b = setup.doubleClick, disabled = _b.disabled, mode = _b.mode, step = _b.step, animationTime = _b.animationTime, animationType = _b.animationType;\n if (disabled)\n return;\n if (doubleClickStopEventTimer)\n return;\n if (mode === \"reset\") {\n return handleDoubleClickResetMode(contextInstance, event);\n }\n if (!contentComponent)\n return console.error(\"No ContentComponent found\");\n var delta = mode === \"zoomOut\" ? -1 : 1;\n var newScale = handleCalculateButtonZoom(contextInstance, delta, step);\n // stop execution when scale didn't change\n if (scale === newScale)\n return;\n handleCallback(getContext(contextInstance), event, onZoomStart);\n var mousePosition = getMousePosition(event, contentComponent, scale);\n var targetState = handleZoomToPoint(contextInstance, newScale, mousePosition.x, mousePosition.y);\n if (!targetState) {\n return console.error(\"Error during zoom event. New transformation state was not calculated.\");\n }\n handleCallback(getContext(contextInstance), event, onZoom);\n animate(contextInstance, targetState, animationTime, animationType);\n handleDoubleClickStop(contextInstance, event);\n}\nvar isDoubleClickAllowed = function (contextInstance, event) {\n var isInitialized = contextInstance.isInitialized, setup = contextInstance.setup, wrapperComponent = contextInstance.wrapperComponent;\n var _a = setup.doubleClick, disabled = _a.disabled, excluded = _a.excluded;\n var target = event.target;\n var isWrapperChild = wrapperComponent === null || wrapperComponent === void 0 ? void 0 : wrapperComponent.contains(target);\n var isAllowed = isInitialized && target && isWrapperChild && !disabled;\n if (!isAllowed)\n return false;\n var isExcluded = isExcludedNode(target, excluded);\n if (isExcluded)\n return false;\n return true;\n};\n\nvar ZoomPanPinch = /** @class */ (function () {\n function ZoomPanPinch(props) {\n var _this = this;\n this.mounted = true;\n this.onChangeCallbacks = new Set();\n // Components\n this.wrapperComponent = null;\n this.contentComponent = null;\n // Initialization\n this.isInitialized = false;\n this.bounds = null;\n // wheel helpers\n this.previousWheelEvent = null;\n this.wheelStopEventTimer = null;\n this.wheelAnimationTimer = null;\n // panning helpers\n this.isPanning = false;\n this.startCoords = null;\n this.lastTouch = null;\n // pinch helpers\n this.distance = null;\n this.lastDistance = null;\n this.pinchStartDistance = null;\n this.pinchStartScale = null;\n this.pinchMidpoint = null;\n // double click helpers\n this.doubleClickStopEventTimer = null;\n // velocity helpers\n this.velocity = null;\n this.velocityTime = null;\n this.lastMousePosition = null;\n // animations helpers\n this.animate = false;\n this.animation = null;\n this.maxBounds = null;\n // key press\n this.pressedKeys = {};\n this.mount = function () {\n _this.initializeWindowEvents();\n };\n this.unmount = function () {\n _this.cleanupWindowEvents();\n };\n this.update = function (newProps) {\n handleCalculateBounds(_this, _this.transformState.scale);\n _this.setup = createSetup(newProps);\n };\n this.initializeWindowEvents = function () {\n var _a;\n var passive = makePassiveEventOption();\n var currentDocument = (_a = _this.wrapperComponent) === null || _a === void 0 ? void 0 : _a.ownerDocument;\n var currentWindow = currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.defaultView;\n // Panning on window to allow panning when mouse is out of component wrapper\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.addEventListener(\"mousedown\", _this.onPanningStart, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.addEventListener(\"mousemove\", _this.onPanning, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.addEventListener(\"mouseup\", _this.onPanningStop, passive);\n currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.addEventListener(\"mouseleave\", _this.clearPanning, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.addEventListener(\"keyup\", _this.setKeyUnPressed, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.addEventListener(\"keydown\", _this.setKeyPressed, passive);\n };\n this.cleanupWindowEvents = function () {\n var _a, _b;\n var passive = makePassiveEventOption();\n var currentDocument = (_a = _this.wrapperComponent) === null || _a === void 0 ? void 0 : _a.ownerDocument;\n var currentWindow = currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.defaultView;\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.removeEventListener(\"mousedown\", _this.onPanningStart, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.removeEventListener(\"mousemove\", _this.onPanning, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.removeEventListener(\"mouseup\", _this.onPanningStop, passive);\n currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.removeEventListener(\"mouseleave\", _this.clearPanning, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.removeEventListener(\"keyup\", _this.setKeyUnPressed, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.removeEventListener(\"keydown\", _this.setKeyPressed, passive);\n document.removeEventListener(\"mouseleave\", _this.clearPanning, passive);\n handleCancelAnimation(_this);\n (_b = _this.observer) === null || _b === void 0 ? void 0 : _b.disconnect();\n };\n this.handleInitializeWrapperEvents = function (wrapper) {\n // Zooming events on wrapper\n var passive = makePassiveEventOption();\n wrapper.addEventListener(\"wheel\", _this.onWheelZoom, passive);\n wrapper.addEventListener(\"dblclick\", _this.onDoubleClick, passive);\n wrapper.addEventListener(\"touchstart\", _this.onTouchPanningStart, passive);\n wrapper.addEventListener(\"touchmove\", _this.onTouchPanning, passive);\n wrapper.addEventListener(\"touchend\", _this.onTouchPanningStop, passive);\n };\n this.handleInitialize = function (contentComponent) {\n var centerOnInit = _this.setup.centerOnInit;\n _this.applyTransformation();\n if (centerOnInit) {\n _this.setCenter();\n _this.observer = new ResizeObserver(function () {\n var _a;\n _this.setCenter();\n (_a = _this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();\n });\n // Start observing the target node for configured mutations\n _this.observer.observe(contentComponent);\n }\n };\n /// ///////\n // Zoom\n /// ///////\n this.onWheelZoom = function (event) {\n var disabled = _this.setup.disabled;\n if (disabled)\n return;\n var isAllowed = isWheelAllowed(_this, event);\n if (!isAllowed)\n return;\n var keysPressed = _this.isPressingKeys(_this.setup.wheel.activationKeys);\n if (!keysPressed)\n return;\n handleWheelStart(_this, event);\n handleWheelZoom(_this, event);\n handleWheelStop(_this, event);\n };\n /// ///////\n // Pan\n /// ///////\n this.onPanningStart = function (event) {\n var disabled = _this.setup.disabled;\n var onPanningStart = _this.props.onPanningStart;\n if (disabled)\n return;\n var isAllowed = isPanningStartAllowed(_this, event);\n if (!isAllowed)\n return;\n var keysPressed = _this.isPressingKeys(_this.setup.panning.activationKeys);\n if (!keysPressed)\n return;\n event.preventDefault();\n event.stopPropagation();\n handleCancelAnimation(_this);\n handlePanningStart(_this, event);\n handleCallback(getContext(_this), event, onPanningStart);\n };\n this.onPanning = function (event) {\n var disabled = _this.setup.disabled;\n var onPanning = _this.props.onPanning;\n if (disabled)\n return;\n var isAllowed = isPanningAllowed(_this);\n if (!isAllowed)\n return;\n var keysPressed = _this.isPressingKeys(_this.setup.panning.activationKeys);\n if (!keysPressed)\n return;\n event.preventDefault();\n event.stopPropagation();\n handlePanning(_this, event.clientX, event.clientY);\n handleCallback(getContext(_this), event, onPanning);\n };\n this.onPanningStop = function (event) {\n var onPanningStop = _this.props.onPanningStop;\n if (_this.isPanning) {\n handlePanningEnd(_this);\n handleCallback(getContext(_this), event, onPanningStop);\n }\n };\n /// ///////\n // Pinch\n /// ///////\n this.onPinchStart = function (event) {\n var disabled = _this.setup.disabled;\n var _a = _this.props, onPinchingStart = _a.onPinchingStart, onZoomStart = _a.onZoomStart;\n if (disabled)\n return;\n var isAllowed = isPinchStartAllowed(_this, event);\n if (!isAllowed)\n return;\n handlePinchStart(_this, event);\n handleCancelAnimation(_this);\n handleCallback(getContext(_this), event, onPinchingStart);\n handleCallback(getContext(_this), event, onZoomStart);\n };\n this.onPinch = function (event) {\n var disabled = _this.setup.disabled;\n var _a = _this.props, onPinching = _a.onPinching, onZoom = _a.onZoom;\n if (disabled)\n return;\n var isAllowed = isPinchAllowed(_this);\n if (!isAllowed)\n return;\n event.preventDefault();\n event.stopPropagation();\n handlePinchZoom(_this, event);\n handleCallback(getContext(_this), event, onPinching);\n handleCallback(getContext(_this), event, onZoom);\n };\n this.onPinchStop = function (event) {\n var _a = _this.props, onPinchingStop = _a.onPinchingStop, onZoomStop = _a.onZoomStop;\n if (_this.pinchStartScale) {\n handlePinchStop(_this);\n handleCallback(getContext(_this), event, onPinchingStop);\n handleCallback(getContext(_this), event, onZoomStop);\n }\n };\n /// ///////\n // Touch\n /// ///////\n this.onTouchPanningStart = function (event) {\n var disabled = _this.setup.disabled;\n var onPanningStart = _this.props.onPanningStart;\n if (disabled)\n return;\n var isAllowed = isPanningStartAllowed(_this, event);\n if (!isAllowed)\n return;\n var isDoubleTap = _this.lastTouch && +new Date() - _this.lastTouch < 200;\n if (isDoubleTap && event.touches.length === 1) {\n _this.onDoubleClick(event);\n }\n else {\n _this.lastTouch = +new Date();\n handleCancelAnimation(_this);\n var touches = event.touches;\n var isPanningAction = touches.length === 1;\n var isPinchAction = touches.length === 2;\n if (isPanningAction) {\n handleCancelAnimation(_this);\n handlePanningStart(_this, event);\n handleCallback(getContext(_this), event, onPanningStart);\n }\n if (isPinchAction) {\n _this.onPinchStart(event);\n }\n }\n };\n this.onTouchPanning = function (event) {\n var disabled = _this.setup.disabled;\n var onPanning = _this.props.onPanning;\n if (_this.isPanning && event.touches.length === 1) {\n if (disabled)\n return;\n var isAllowed = isPanningAllowed(_this);\n if (!isAllowed)\n return;\n event.preventDefault();\n event.stopPropagation();\n var touch = event.touches[0];\n handlePanning(_this, touch.clientX, touch.clientY);\n handleCallback(getContext(_this), event, onPanning);\n }\n else if (event.touches.length > 1) {\n _this.onPinch(event);\n }\n };\n this.onTouchPanningStop = function (event) {\n _this.onPanningStop(event);\n _this.onPinchStop(event);\n };\n /// ///////\n // Double Click\n /// ///////\n this.onDoubleClick = function (event) {\n var disabled = _this.setup.disabled;\n if (disabled)\n return;\n var isAllowed = isDoubleClickAllowed(_this, event);\n if (!isAllowed)\n return;\n handleDoubleClick(_this, event);\n };\n /// ///////\n // Helpers\n /// ///////\n this.clearPanning = function (event) {\n if (_this.isPanning) {\n _this.onPanningStop(event);\n }\n };\n this.setKeyPressed = function (e) {\n _this.pressedKeys[e.key] = true;\n };\n this.setKeyUnPressed = function (e) {\n _this.pressedKeys[e.key] = false;\n };\n this.isPressingKeys = function (keys) {\n if (!keys.length) {\n return true;\n }\n return Boolean(keys.find(function (key) { return _this.pressedKeys[key]; }));\n };\n this.setTransformState = function (scale, positionX, positionY) {\n var onTransformed = _this.props.onTransformed;\n if (!Number.isNaN(scale) &&\n !Number.isNaN(positionX) &&\n !Number.isNaN(positionY)) {\n if (scale !== _this.transformState.scale) {\n _this.transformState.previousScale = _this.transformState.scale;\n _this.transformState.scale = scale;\n }\n _this.transformState.positionX = positionX;\n _this.transformState.positionY = positionY;\n var ctx_1 = getContext(_this);\n _this.onChangeCallbacks.forEach(function (callback) { return callback(ctx_1); });\n handleCallback(ctx_1, { scale: scale, positionX: positionX, positionY: positionY }, onTransformed);\n _this.applyTransformation();\n }\n else {\n console.error(\"Detected NaN set state values\");\n }\n };\n this.setCenter = function () {\n if (_this.wrapperComponent && _this.contentComponent) {\n var targetState = getCenterPosition(_this.transformState.scale, _this.wrapperComponent, _this.contentComponent);\n _this.setTransformState(targetState.scale, targetState.positionX, targetState.positionY);\n }\n };\n this.handleTransformStyles = function (x, y, scale) {\n if (_this.props.customTransform) {\n return _this.props.customTransform(x, y, scale);\n }\n return getTransformStyles(x, y, scale);\n };\n this.applyTransformation = function () {\n if (!_this.mounted || !_this.contentComponent)\n return;\n var _a = _this.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n var transform = _this.handleTransformStyles(positionX, positionY, scale);\n _this.contentComponent.style.transform = transform;\n };\n this.getContext = function () {\n return getContext(_this);\n };\n this.onChange = function (callback) {\n if (!_this.onChangeCallbacks.has(callback)) {\n _this.onChangeCallbacks.add(callback);\n }\n return function () {\n _this.onChangeCallbacks.delete(callback);\n };\n };\n /**\n * Initialization\n */\n this.init = function (wrapperComponent, contentComponent) {\n _this.cleanupWindowEvents();\n _this.wrapperComponent = wrapperComponent;\n _this.contentComponent = contentComponent;\n handleCalculateBounds(_this, _this.transformState.scale);\n _this.handleInitializeWrapperEvents(wrapperComponent);\n _this.handleInitialize(contentComponent);\n _this.initializeWindowEvents();\n _this.isInitialized = true;\n handleCallback(getContext(_this), undefined, _this.props.onInit);\n };\n this.props = props;\n this.setup = createSetup(this.props);\n this.transformState = createState(this.props);\n }\n return ZoomPanPinch;\n}());\n\nvar Context = React.createContext(null);\nvar getContent = function (children, ctx) {\n if (typeof children === \"function\") {\n return children(ctx);\n }\n return children;\n};\nvar TransformWrapper = React.forwardRef(function (props, ref) {\n var _a = useState(0), forceUpdate = _a[1];\n var children = props.children;\n var instance = useRef(new ZoomPanPinch(props)).current;\n var content = getContent(props.children, getContext(instance));\n var handleOnChange = useCallback(function () {\n if (typeof children === \"function\") {\n forceUpdate(function (prev) { return prev + 1; });\n }\n }, [children]);\n useImperativeHandle(ref, function () { return getContext(instance); }, [instance]);\n useEffect(function () {\n instance.update(props);\n }, [instance, props]);\n useEffect(function () {\n return instance.onChange(handleOnChange);\n }, [instance, props, handleOnChange]);\n return React.createElement(Context.Provider, { value: instance }, content);\n});\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".transform-component-module_wrapper__7HFJe {\\n position: relative;\\n width: -moz-fit-content;\\n width: fit-content;\\n height: -moz-fit-content;\\n height: fit-content;\\n overflow: hidden;\\n -webkit-touch-callout: none; /* iOS Safari */\\n -webkit-user-select: none; /* Safari */\\n -khtml-user-select: none; /* Konqueror HTML */\\n -moz-user-select: none; /* Firefox */\\n -ms-user-select: none; /* Internet Explorer/Edge */\\n user-select: none;\\n margin: 0;\\n padding: 0;\\n}\\n.transform-component-module_content__uCDPE {\\n display: flex;\\n flex-wrap: wrap;\\n width: -moz-fit-content;\\n width: fit-content;\\n height: -moz-fit-content;\\n height: fit-content;\\n margin: 0;\\n padding: 0;\\n transform-origin: 0% 0%;\\n}\\n.transform-component-module_content__uCDPE img {\\n pointer-events: none;\\n}\\n\";\nvar styles = {\"wrapper\":\"transform-component-module_wrapper__7HFJe\",\"content\":\"transform-component-module_content__uCDPE\"};\nstyleInject(css_248z);\n\nvar TransformComponent = function (_a) {\n var children = _a.children, _b = _a.wrapperClass, wrapperClass = _b === void 0 ? \"\" : _b, _c = _a.contentClass, contentClass = _c === void 0 ? \"\" : _c, wrapperStyle = _a.wrapperStyle, contentStyle = _a.contentStyle, _d = _a.wrapperProps, wrapperProps = _d === void 0 ? {} : _d, _e = _a.contentProps, contentProps = _e === void 0 ? {} : _e;\n var init = useContext(Context).init;\n var wrapperRef = useRef(null);\n var contentRef = useRef(null);\n useEffect(function () {\n var wrapper = wrapperRef.current;\n var content = contentRef.current;\n if (wrapper !== null && content !== null && init) {\n init(wrapper, content);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (React.createElement(\"div\", __assign({}, wrapperProps, { ref: wrapperRef, className: \"react-transform-wrapper \".concat(styles.wrapper, \" \").concat(wrapperClass), style: wrapperStyle }),\n React.createElement(\"div\", __assign({}, contentProps, { ref: contentRef, className: \"react-transform-component \".concat(styles.content, \" \").concat(contentClass), style: contentStyle }), children)));\n};\n\nvar useTransformContext = function () {\n var libraryContext = useContext(Context);\n var _a = useState(getContext(libraryContext || {})), values = _a[0], setValues = _a[1];\n if (!libraryContext) {\n throw new Error(\"Transform context mus be placed inside TransformWrapper\");\n }\n useEffect(function () {\n libraryContext.onChange(function (ref) {\n setValues(ref);\n });\n }, [libraryContext]);\n return values;\n};\n\nvar KeepScale = React.forwardRef(function (props, ref) {\n var localRef = useRef(null);\n var instance = useContext(Context);\n useEffect(function () {\n return instance.onChange(function (ctx) {\n if (localRef.current) {\n var positionX = 0;\n var positionY = 0;\n localRef.current.style.transform = instance.handleTransformStyles(positionX, positionY, 1 / ctx.state.scale);\n }\n });\n }, [instance]);\n return React.createElement(\"div\", __assign({}, props, { ref: mergeRefs([localRef, ref]) }));\n});\n\nexport { KeepScale, TransformComponent, TransformWrapper, getCenterPosition, getMatrixTransformStyles, getTransformStyles, useTransformContext };\n//# sourceMappingURL=index.esm.js.map\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!./carousel.min.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass;\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n };\n\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n };\n\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (base === 'window') {\n if (window.matchMedia(\"(min-width: \" + value + \"px)\").matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n var tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (var i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n arr = qsa(selector.trim(), context || document);\n } // arr = qsa(selector, document);\n\n } else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n } else if (Array.isArray(selector)) {\n if (selector instanceof Dom7) return selector;\n arr = selector;\n }\n\n return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\nfunction addClass() {\n for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {\n classes[_key] = arguments[_key];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n this.forEach(function (el) {\n var _el$classList;\n\n (_el$classList = el.classList).add.apply(_el$classList, classNames);\n });\n return this;\n}\n\nfunction removeClass() {\n for (var _len2 = arguments.length, classes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n classes[_key2] = arguments[_key2];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n this.forEach(function (el) {\n var _el$classList2;\n\n (_el$classList2 = el.classList).remove.apply(_el$classList2, classNames);\n });\n return this;\n}\n\nfunction toggleClass() {\n for (var _len3 = arguments.length, classes = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n classes[_key3] = arguments[_key3];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n this.forEach(function (el) {\n classNames.forEach(function (className) {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass() {\n for (var _len4 = arguments.length, classes = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n classes[_key4] = arguments[_key4];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n return arrayFilter(this, function (el) {\n return classNames.filter(function (className) {\n return el.classList.contains(className);\n }).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n }).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react'; // eslint-disable-next-line\n\nimport Swiper from '../../core';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n var slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n var breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n var breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\n\nexport { calcLoopedSlides, renderLoop };","import React from 'react';\n\nfunction processChildren(c) {\n var slides = [];\n React.Children.toArray(c).forEach(function (child) {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(function (slide) {\n return slides.push(slide);\n });\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(function (child) {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n var foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(function (slide) {\n return slides.push(slide);\n });\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides: slides,\n slots: slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils';\n\nfunction updateSwiper(_ref) {\n var swiper = _ref.swiper,\n slides = _ref.slides,\n passedParams = _ref.passedParams,\n changedParams = _ref.changedParams,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n scrollbarEl = _ref.scrollbarEl,\n paginationEl = _ref.paginationEl;\n var updateParams = changedParams.filter(function (key) {\n return key !== 'children' && key !== 'direction';\n });\n var currentParams = swiper.params,\n pagination = swiper.pagination,\n navigation = swiper.navigation,\n scrollbar = swiper.scrollbar,\n virtual = swiper.virtual,\n thumbs = swiper.thumbs;\n var needThumbsInit;\n var needControllerInit;\n var needPaginationInit;\n var needScrollbarInit;\n var needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n var destroyModule = function destroyModule(mod) {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(function (key) {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n var newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n var initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","var _excluded = [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params';\nimport { initSwiper, mountSwiper } from './init-swiper';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils';\nimport { renderLoop, calcLoopedSlides } from './loop';\nimport { getChangedParams } from './get-changed-params';\nimport { getChildren } from './get-children';\nimport { updateSwiper } from './update-swiper';\nimport { renderVirtual, updateOnVirtualData } from './virtual';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n className = _ref.className,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$wrapperTag = _ref.wrapperTag,\n WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n children = _ref.children,\n onSwiper = _ref.onSwiper,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var eventsAssigned = false;\n\n var _useState = useState('swiper-container'),\n containerClasses = _useState[0],\n setContainerClasses = _useState[1];\n\n var _useState2 = useState(null),\n virtualData = _useState2[0],\n setVirtualData = _useState2[1];\n\n var _useState3 = useState(false),\n breakpointChanged = _useState3[0],\n setBreakpointChanged = _useState3[1];\n\n var initializedRef = useRef(false);\n var swiperElRef = useRef(null);\n var swiperRef = useRef(null);\n var oldPassedParamsRef = useRef(null);\n var oldSlides = useRef(null);\n var nextElRef = useRef(null);\n var prevElRef = useRef(null);\n var paginationElRef = useRef(null);\n var scrollbarElRef = useRef(null);\n\n var _getParams = getParams(rest),\n swiperParams = _getParams.params,\n passedParams = _getParams.passedParams,\n restProps = _getParams.rest,\n events = _getParams.events;\n\n var _getChildren = getChildren(children),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n\n var onBeforeBreakpoint = function onBeforeBreakpoint() {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses: function _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n\n if (!swiperElRef.current) {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = initSwiper(swiperParams);\n\n swiperRef.current.loopCreate = function () {};\n\n swiperRef.current.loopDestroy = function () {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n var extendWith = {\n cache: false,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n var attachEvents = function attachEvents() {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n var detachEvents = function detachEvents() {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(function () {\n return function () {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(function () {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(function () {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return function () {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(function () {\n attachEvents();\n var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides: slides,\n passedParams: passedParams,\n changedParams: changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return function () {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(function () {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(function (child) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\" + containerClasses + (className ? \" \" + className : ''))\n }, restProps), slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { isObject, extend } from './utils';\nimport { paramsList } from './params-list';\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n var params = {\n on: {}\n };\n var events = {};\n var passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n });\n Object.keys(obj).forEach(function (key) {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n events[\"\" + key[2].toLowerCase() + key.substr(3)] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(function (key) {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest,\n events: events\n };\n}\n\nexport { getParams };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils';\n\nfunction initSwiper(swiperParams) {\n return new Swiper(swiperParams);\n}\n\nfunction mountSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl,\n swiper = _ref.swiper;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { initSwiper, mountSwiper };","import { paramsList } from './params-list';\nimport { isObject } from './utils';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n var keys = [];\n if (!oldParams) return keys;\n\n var addKey = function addKey(key) {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n var oldChildrenKeys = oldChildren.map(function (child) {\n return child.key;\n });\n var childrenKeys = children.map(function (child) {\n return child.key;\n });\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n var watchParams = paramsList.filter(function (key) {\n return key[0] === '_';\n }).map(function (key) {\n return key.replace(/_/, '');\n });\n watchParams.forEach(function (key) {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n var newKeys = Object.keys(swiperParams[key]);\n var oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(function (newKey) {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(function (oldKey) {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n var _ref;\n\n if (!virtualData) return null;\n var style = swiper.isHorizontal() ? (_ref = {}, _ref[swiper.rtlTranslate ? 'right' : 'left'] = virtualData.offset + \"px\", _ref) : {\n top: virtualData.offset + \"px\"\n };\n return slides.filter(function (child, index) {\n return index >= virtualData.from && index <= virtualData.to;\n }).map(function (child) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n style: style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","var _excluded = [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\", \"virtualIndex\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n swiper = _ref.swiper,\n zoom = _ref.zoom,\n virtualIndex = _ref.virtualIndex,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var slideElRef = useRef(null);\n\n var _useState = useState('swiper-slide'),\n slideClasses = _useState[0],\n setSlideClasses = _useState[1];\n\n function updateClasses(swiper, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(function () {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return function () {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(function () {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n var slideData;\n\n if (typeof children === 'function') {\n slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n }\n\n var renderChildren = function renderChildren() {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(\"\" + slideClasses + (className ? \" \" + className : '')),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren());\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Virtual = {\n update: function update(force) {\n var swiper = this;\n var _swiper$params = swiper.params,\n slidesPerView = _swiper$params.slidesPerView,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n centeredSlides = _swiper$params.centeredSlides;\n var _swiper$params$virtua = swiper.params.virtual,\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n var _swiper$virtual = swiper.virtual,\n previousFrom = _swiper$virtual.from,\n previousTo = _swiper$virtual.to,\n slides = _swiper$virtual.slides,\n previousSlidesGrid = _swiper$virtual.slidesGrid,\n renderSlide = _swiper$virtual.renderSlide,\n previousOffset = _swiper$virtual.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n var offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n var slidesAfter;\n var slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, offset + \"px\");\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: function getSlides() {\n var slidesToRender = [];\n\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n\n return;\n }\n\n var prependIndexes = [];\n var appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\").remove();\n }\n }\n }\n\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (_i >= from && _i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(_i);\n } else {\n if (_i > previousTo) appendIndexes.push(_i);\n if (_i < previousFrom) prependIndexes.push(_i);\n }\n }\n }\n\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) {\n return b - a;\n }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, offset + \"px\");\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"<div class=\\\"\" + swiper.params.slideClass + \"\\\" data-swiper-slide-index=\\\"\" + index + \"\\\">\" + slide + \"</div>\");\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide: function appendSlide(slides) {\n var swiper = this;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n var $cachedEl = cache[cachedIndex];\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n var activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n }\n};\nexport default {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n virtual: _extends({}, Virtual, {\n slides: swiper.params.virtual.slides,\n cache: {}\n })\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"virtual\");\n var overwriteParams = {\n watchSlidesProgress: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n if (!swiper.enabled) return;\n var window = getWindow();\n var document = getDocument();\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + swiper.params.slideActiveClass).length === 0) {\n return undefined;\n }\n\n var $el = swiper.$el;\n var swiperWidth = $el[0].clientWidth;\n var swiperHeight = $el[0].clientHeight;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n var document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n var document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n keyboard: _extends({\n enabled: false\n }, Keyboard)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\n if (!swiper.enabled) return;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = _recentWheelEvents[0];\n\n _recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\"></\" + params.bulletElement + \">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"<span class=\\\"\" + params.currentClass + \"\\\"></span>\" + ' / ' + (\"<span class=\\\"\" + params.totalClass + \"\\\"></span>\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"<span class=\\\"\" + params.progressbarFillClass + \"\\\"></span>\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n $dragEl[0].style.height = newSize + \"px\";\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize\n });\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n swiper.emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n\n if (!support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n\n if (!support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n swiper.params.scrollbar = createElementIfNotDefined($swiperEl, swiper.params.scrollbar, swiper.params.createElements, {\n el: 'swiper-scrollbar'\n });\n var params = swiper.params.scrollbar;\n if (!params.el) return;\n var $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\n\n if ($dragEl.length === 0) {\n $dragEl = $(\"<div class=\\\"\" + swiper.params.scrollbar.dragClass + \"\\\"></div>\");\n $el.append($dragEl);\n }\n\n extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nexport default {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: _extends({\n isTouched: false,\n timeout: null,\n dragTimeout: null\n }, Scrollbar)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize: function resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.scrollbar.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy(swiper) {\n swiper.scrollbar.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = parseInt(x, 10) * progress * rtlFactor + \"%\";\n } else {\n x = x * progress * rtlFactor + \"px\";\n }\n\n if (y.indexOf('%') >= 0) {\n y = parseInt(y, 10) * progress + \"%\";\n } else {\n y = y * progress + \"px\";\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px)\");\n } else {\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\");\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides,\n progress = swiper.progress,\n snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideEl, slideIndex) {\n var slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if (duration === void 0) {\n duration = this.params.speed;\n }\n\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n }\n};\nexport default {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n parallax: _extends({}, Parallax)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, getTranslate } from '../../utils/utils';\nvar Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n return distance;\n },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') zoom.onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\n }\n\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var device = swiper.device;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var device = swiper.device;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n } // Define if we need image drag\n\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function _in(e) {\n var swiper = this;\n var window = getWindow();\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\n }\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n gesture.$slideEl.addClass(\"\" + params.zoomedSlideClass);\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\");\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n out: function out() {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(\"\" + params.zoomedSlideClass);\n gesture.$slideEl = undefined;\n },\n toggleGestures: function toggleGestures(method) {\n var swiper = this;\n var zoom = swiper.zoom;\n var selector = zoom.slideSelector,\n passive = zoom.passiveListener;\n swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive);\n swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive);\n swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive);\n },\n enableGestures: function enableGestures() {\n if (this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = true;\n this.zoom.toggleGestures('on');\n },\n disableGestures: function disableGestures() {\n if (!this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = false;\n this.zoom.toggleGestures('off');\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var support = swiper.support;\n var zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass;\n swiper.zoom.passiveListener = passiveListener;\n swiper.zoom.slideSelector = slideSelector; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) return;\n var support = swiper.support;\n swiper.zoom.enabled = false;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n }\n};\nexport default {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n zoom: _extends({\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n }\n }, Zoom)\n });\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy(swiper) {\n swiper.zoom.disable();\n },\n touchStart: function touchStart(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(swiper, e) {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\") : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\" + params.elementClass + \":not(.\" + params.loadedClass + \"):not(.\" + params.loadingClass + \")\");\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(function (imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', \"url(\\\"\" + background + \"\\\")\");\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceEl) {\n var $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(\".\" + params.preloaderClass).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + swiper.params.slideDuplicateClass + \")\");\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\" + swiper.params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\");\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n var slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(\".\" + swiperParams.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\").length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(\".\" + swiperParams.slideVisibleClass).each(function (slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (var _i = activeIndex + slidesPerView; _i < maxIndex; _i += 1) {\n if (slideExist(_i)) swiper.lazy.loadInSlide(_i);\n } // Prev Slides\n\n\n for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) {\n if (slideExist(_i2)) swiper.lazy.loadInSlide(_i2);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\" + swiperParams.slideNextClass);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\" + swiperParams.slidePrevClass);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n checkInViewOnLoad: function checkInViewOnLoad() {\n var window = getWindow();\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n var isWindow = $scrollElement[0] === window;\n var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n var swiperOffset = swiper.$el.offset();\n var rtl = swiper.rtlTranslate;\n var inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n swiper.lazy.load();\n $scrollElement.off('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n } else if (!swiper.lazy.scrollHandlerAttached) {\n swiper.lazy.scrollHandlerAttached = true;\n $scrollElement.on('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n }\n }\n};\nexport default {\n name: 'lazy',\n params: {\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n lazy: _extends({\n initialImageLoaded: false\n }, Lazy)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n if (swiper.params.lazy.checkInView) {\n swiper.lazy.checkInViewOnLoad();\n } else {\n swiper.lazy.load();\n }\n }\n },\n scroll: function scroll(swiper) {\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n 'scrollbarDragMove resize _freeModeNoMomentumRelease': function lazyLoad(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart(swiper) {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange: function slideChange(swiper) {\n var _swiper$params = swiper.params,\n lazy = _swiper$params.lazy,\n cssMode = _swiper$params.cssMode,\n watchSlidesVisibility = _swiper$params.watchSlidesVisibility,\n watchSlidesProgress = _swiper$params.watchSlidesProgress,\n touchReleaseOnEdges = _swiper$params.touchReleaseOnEdges,\n resistanceRatio = _swiper$params.resistanceRatio;\n\n if (lazy.enabled && (cssMode || (watchSlidesVisibility || watchSlidesProgress) && (touchReleaseOnEdges || resistanceRatio === 0))) {\n swiper.lazy.load();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(_setTranslate, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n var Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var Swiper = swiper.constructor;\n var controlled = swiper.controller.control;\n var i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(function () {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n controller: _extends({\n control: swiper.params.controller.control\n }, Controller)\n });\n },\n on: {\n update: function update(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, classesToSelector } from '../../utils/utils';\nvar A11y = {\n getRandomNumber: function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n },\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription: function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n return $el;\n },\n addElControls: function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId: function addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive: function addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterOrSpaceKey: function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n var swiper = this;\n var params = swiper.params.a11y;\n var $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.a11y;\n swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n swiper.a11y.addElId($wrapperEl, wrapperId);\n swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n swiper.a11y.addElRole($(swiper.slides), params.slideRole);\n var slidesLength = swiper.params.loop ? swiper.slides.filter(function (el) {\n return !el.classList.contains(swiper.params.slideDuplicateClass);\n }).length : swiper.slides.length;\n swiper.slides.each(function (slideEl, index) {\n var $slideEl = $(slideEl);\n var slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n swiper.a11y.addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n swiper.a11y.makeElFocusable($nextEl);\n\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n }\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends({}, A11y, {\n liveRegion: $(\"<span class=\\\"\" + swiper.params.a11y.notificationClass + \"\\\" aria-live=\\\"assertive\\\" aria-atomic=\\\"true\\\"></span>\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar History = {\n init: function init() {\n var swiper = this;\n var window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues(swiper.params.url);\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues(swiper.params.url);\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues(urlOverride) {\n var window = getWindow();\n var location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n var pathArray = location.pathname.slice(1).split('/').filter(function (part) {\n return part !== '';\n });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return {\n key: key,\n value: value\n };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n var window = getWindow();\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n var location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n var root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = root + \"/\" + key + \"/\" + value;\n } else if (!location.pathname.includes(key)) {\n value = key + \"/\" + value;\n }\n\n var currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value: value\n }, null, value);\n } else {\n window.history.pushState({\n value: value\n }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n }\n};\nexport default {\n name: 'history',\n params: {\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n history: _extends({}, History)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar HashNavigation = {\n onHashChange: function onHashChange() {\n var swiper = this;\n var document = getDocument();\n swiper.emit('hashChange');\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-hash=\\\"\" + newHash + \"\\\"]\").index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n var window = getWindow();\n var document = getDocument();\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\" + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || '');\n swiper.emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init: function init() {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n swiper.hashNavigation.initialized = true;\n var hash = document.location.hash.replace('#', '');\n\n if (hash) {\n var speed = 0;\n\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashChange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashChange);\n }\n }\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n hashNavigation: _extends({\n initialized: false\n }, HashNavigation)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: _extends({}, Fade)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"fade\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides,\n swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n rtl = swiper.rtlTranslate,\n swiperSize = swiper.size,\n browser = swiper.browser;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: swiperWidth + \"px\"\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'left' : 'top') + \"\\\"></div>\");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'right' : 'bottom') + \"\\\"></div>\");\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-moz-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-ms-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n 'transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\"\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\"translate3d(0px, \" + (swiperWidth / 2 + params.shadowOffset) + \"px, \" + -swiperWidth / 2 + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + params.shadowScale + \")\");\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform(\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + (swiperHeight / 2 + offset) + \"px, \" + -swiperHeight / 2 / scale2 + \"px) rotateX(-90deg)\");\n }\n }\n\n var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\");\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n }\n};\nexport default {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n cubeEffect: _extends({}, Cube)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"cube\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"<div class=\\\"swiper-slide-shadow-\" + (swiper.isHorizontal() ? 'left' : 'top') + \"\\\"></div>\");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"<div class=\\\"swiper-slide-shadow-\" + (swiper.isHorizontal() ? 'right' : 'bottom') + \"\\\"></div>\");\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n $slideEl.transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false; // eslint-disable-next-line\n\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return; // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n flipEffect: _extends({}, Flip)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"flip\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'left' : 'top') + \"\\\"></div>\");\n $slideEl.append($shadowBeforeEl);\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'right' : 'bottom') + \"\\\"></div>\");\n $slideEl.append($shadowAfterEl);\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n};\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n coverflowEffect: _extends({}, Coverflow)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"coverflow\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\nvar Thumbs = {\n init: function init() {\n var swiper = this;\n var thumbsParams = swiper.params.thumbs;\n if (swiper.thumbs.initialized) return false;\n swiper.thumbs.initialized = true;\n var SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false\n }));\n swiper.thumbs.swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n return true;\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n var slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\").addClass(thumbActiveClass);\n }\n } else {\n for (var _i = 0; _i < thumbsToActivate; _i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\n }\n }\n }\n};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n thumbs: _extends({\n swiper: null,\n initialized: false\n }, Thumbs)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update: function update(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize: function resize(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition: function setTransition(swiper, duration) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy(swiper) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n }\n }\n};","/* UAParser.js v0.7.38\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"0.7.38\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=500;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i]}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!==-1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\\d\\.]/g,EMPTY).split(\".\")[0]:undefined},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\\s\\s*/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){if(!regex[j]){break}matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined:i}}return str};var oldSafariMap={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},windowsVersionMap={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"};var regexes={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[NAME,VERSION],[/opios[\\/ ]+([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Mini\"]],[/\\bop(?:rg)?x\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" GX\"]],[/\\bopr\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA]],[/\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i],[VERSION,[NAME,\"Baidu\"]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(heytap|ovi)browser\\/([\\d\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[NAME,VERSION],[/\\bddg\\/([\\w\\.]+)/i],[VERSION,[NAME,\"DuckDuckGo\"]],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[VERSION,[NAME,\"UC\"+BROWSER]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i,/micromessenger\\/([\\w\\.]+)/i],[VERSION,[NAME,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[VERSION,[NAME,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Yandex\"]],[/slbrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Smart Lenovo \"+BROWSER]],[/(avast|avg)\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 Secure \"+BROWSER],VERSION],[/\\bfocus\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"MIUI \"+BROWSER]],[/fxios\\/([-\\w\\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[NAME,\"360 \"+BROWSER]],[/(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 \"+BROWSER],VERSION],[/samsungbrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,SAMSUNG+\" Internet\"]],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[NAME,/_/g,\" \"],VERSION],[/metasr[\\/ ]?([\\d\\.]+)/i],[VERSION,[NAME,\"Sogou Explorer\"]],[/(sogou)mo\\w+\\/([\\d\\.]+)/i],[[NAME,\"Sogou Mobile\"],VERSION],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[NAME,VERSION],[/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[NAME],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/(Klarna)\\/([\\w\\.]+)/i,/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(alipay)client\\/([\\w\\.]+)/i,/(twitter)(?:and| f.+e\\/([\\w\\.]+))/i,/(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i],[NAME,VERSION],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[VERSION,[NAME,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[VERSION,[NAME,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[VERSION,[NAME,CHROME+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[NAME,CHROME+\" WebView\"],VERSION],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,\"Android \"+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[NAME,VERSION],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[VERSION,[NAME,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[NAME,VERSION],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[NAME,\"Netscape\"],VERSION],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[VERSION,[NAME,FIREFOX+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i,/panasonic;(viera)/i],[NAME,VERSION],[/(cobalt)\\/([\\w\\.]+)/i],[NAME,[VERSION,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[ARCHITECTURE,\"amd64\"]],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[ARCHITECTURE,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[ARCHITECTURE,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[ARCHITECTURE,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\\w)[;\\)]/i],[[ARCHITECTURE,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/(macintosh);/i],[MODEL,[VENDOR,APPLE]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i,/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[MODEL,[VENDOR,\"OPPO\"],[TYPE,MOBILE]],[/\\b(opd2\\d{3}a?) bui/i],[MODEL,[VENDOR,\"OPPO\"],[TYPE,TABLET]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,\"Vivo\"],[TYPE,MOBILE]],[/\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i],[MODEL,[VENDOR,\"Realme\"],[TYPE,MOBILE]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[MODEL,[VENDOR,\"Lenovo\"],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[MODEL,/_/g,\" \"],[VENDOR,\"Nokia\"],[TYPE,MOBILE]],[/(pixel c)\\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[MODEL,\"Xperia Tablet\"],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[MODEL,[VENDOR,\"OnePlus\"],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[MODEL,/(.+)/g,\"Fire Phone $1\"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\\w\\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,\"HTC\"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[VENDOR,[MODEL,/_/g,\" \"],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[MODEL,[VENDOR,\"Acer\"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[MODEL,[VENDOR,\"Meizu\"],[TYPE,MOBILE]],[/; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i],[MODEL,[VENDOR,\"Ulefone\"],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kobo)\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[MODEL,[VENDOR,\"Fairphone\"],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,\"AT&T\"],[TYPE,MOBILE]],[/\\bsie-(\\w*)/i],[MODEL,[VENDOR,\"Siemens\"],[TYPE,MOBILE]],[/\\b(rct\\w+) b/i],[MODEL,[VENDOR,\"RCA\"],[TYPE,TABLET]],[/\\b(venue[\\d ]{2,7}) b/i],[MODEL,[VENDOR,\"Dell\"],[TYPE,TABLET]],[/\\b(q(?:mv|ta)\\w+) b/i],[MODEL,[VENDOR,\"Verizon\"],[TYPE,TABLET]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[MODEL,[VENDOR,\"Barnes & Noble\"],[TYPE,TABLET]],[/\\b(tm\\d{3}\\w+) b/i],[MODEL,[VENDOR,\"NuVision\"],[TYPE,TABLET]],[/\\b(k88) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,TABLET]],[/\\b(nx\\d{3}j) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,MOBILE]],[/\\b(gen\\d{3}) b.+49h/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,MOBILE]],[/\\b(zur\\d{3}) b/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,TABLET]],[/\\b((zeki)?tb.*\\b) b/i],[MODEL,[VENDOR,\"Zeki\"],[TYPE,TABLET]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[VENDOR,\"Dragon Touch\"],MODEL,[TYPE,TABLET]],[/\\b(ns-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"Insignia\"],[TYPE,TABLET]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"NextBook\"],[TYPE,TABLET]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,\"Voice\"],MODEL,[TYPE,MOBILE]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[VENDOR,\"LvTel\"],MODEL,[TYPE,MOBILE]],[/\\b(ph-1) /i],[MODEL,[VENDOR,\"Essential\"],[TYPE,MOBILE]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[MODEL,[VENDOR,\"Envizen\"],[TYPE,TABLET]],[/\\b(trio[-\\w\\. ]+) b/i],[MODEL,[VENDOR,\"MachSpeed\"],[TYPE,TABLET]],[/\\btu_(1491) b/i],[MODEL,[VENDOR,\"Rotor\"],[TYPE,TABLET]],[/(shield[\\w ]+) b/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,TABLET]],[/(sprint) (\\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\\.[onetw]{3})/i],[[MODEL,/\\./g,\" \"],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\\d+)/i],[[MODEL,/^/,\"SmartTV\"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+\" TV\"],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+\"cast\"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\\w+)( bui|\\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\\w ]+)( bui|\\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mitv-\\w{5}) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/Hbbtv.*(technisat) (.*);/i],[VENDOR,MODEL,[TYPE,SMARTTV]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[TYPE,SMARTTV]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[MODEL,[VENDOR,APPLE],[TYPE,WEARABLE]],[/droid.+; (glass) \\d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( \\d| pro)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/(aeobc)\\b/i],[MODEL,[VENDOR,AMAZON],[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\\w\\. ]{0,9});.+buil/i],[MODEL,[VENDOR,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[VERSION,[NAME,EDGE+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[VERSION,[NAME,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,/\\b(libweb)/i],[NAME,VERSION],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/windows nt 6\\.2; (arm)/i,/windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[VERSION,strMapper,windowsVersionMap],[NAME,\"Windows\"]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[VERSION,/_/g,\".\"],[NAME,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[NAME,MAC_OS],[VERSION,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[NAME,VERSION],[/\\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[VERSION,[NAME,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[VERSION,[NAME,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[VERSION,[NAME,CHROME+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[NAME,CHROMIUM_OS],VERSION],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\/(\\d+\\.[\\w\\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[NAME,VERSION],[/(sunos) ?([\\w\\.\\d]*)/i],[[NAME,\"Solaris\"],VERSION],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[NAME,VERSION]]};var UAParser=function(ua,extensions){if(typeof ua===OBJ_TYPE){extensions=ua;ua=undefined}if(!(this instanceof UAParser)){return new UAParser(ua,extensions).getResult()}var _navigator=typeof window!==UNDEF_TYPE&&window.navigator?window.navigator:undefined;var _ua=ua||(_navigator&&_navigator.userAgent?_navigator.userAgent:EMPTY);var _uach=_navigator&&_navigator.userAgentData?_navigator.userAgentData:undefined;var _rgxmap=extensions?extend(regexes,extensions):regexes;var _isSelfNav=_navigator&&_navigator.userAgent==_ua;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined;_browser[VERSION]=undefined;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser[MAJOR]=majorize(_browser[VERSION]);if(_isSelfNav&&_navigator&&_navigator.brave&&typeof _navigator.brave.isBrave==FUNC_TYPE){_browser[NAME]=\"Brave\"}return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined;_device[MODEL]=undefined;_device[TYPE]=undefined;rgxMapper.call(_device,_ua,_rgxmap.device);if(_isSelfNav&&!_device[TYPE]&&_uach&&_uach.mobile){_device[TYPE]=MOBILE}if(_isSelfNav&&_device[MODEL]==\"Macintosh\"&&_navigator&&typeof _navigator.standalone!==UNDEF_TYPE&&_navigator.maxTouchPoints&&_navigator.maxTouchPoints>2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","/*! Axios v1.8.2 Copyright (c) 2025 Matt Zabriskie and contributors */\n'use strict';\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nvar utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils$1.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv,\n navigator: _navigator,\n origin: origin\n});\n\nvar platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data) ||\n utils$1.isReadableStream(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils$1.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n};\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n};\n\nconst asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));\n\nvar isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n\nvar cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && isRelativeUrl || allowAbsoluteUrls == false) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nvar resolveConfig = (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders$1.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils$1.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n };\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils$1.asap(unsubscribe);\n\n return signal;\n }\n};\n\nvar composeSignals$1 = composeSignals;\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n};\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n};\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils$1.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n });\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils$1.isBlob(body)) {\n return body.size;\n }\n\n if(utils$1.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils$1.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils$1.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n};\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils$1.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n};\n\nvar fetchAdapter = isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils$1.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders$1.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n });\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst VERSION = \"1.8.2\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators$1.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n"],"names":["React","__importStar","require","ReactDOM","configure","enforceActions","isolateGlobalState","state","store","mobx_react_1","MainStore_1","detailsPageLayout_1","__importDefault","JSON","parse","stringify","window","__PRELOADED_PDP_STATE__","MainStore","otherData","localization","hydrate","createElement","Provider","orderModuleStore","mixedMediaStore","variantStore","workWearStoreStore","dataStore","default","suppressHydrationWarning","document","getElementById","react_1","additionalDescription_scss_1","classnames_1","additionalDescription_title_1","additionalDescription_text_1","additionalDescription_image_1","additionalDescription_buttonLink_1","additionalDescription_empty_1","additionalDescription_showcase_1","additionalDescription_separatorLine_1","debugBarHelper_1","debuggerDataSource_1","exports","props","rows","l10n","fallBackImageUrl","threeDContainerId","has3DView","debuggerIsOn","documentKey","isRelease","debugBarHelper","instance","className","additional_description_column","_defineProperty","getDebuggerClassName","AdditionalDescription_source","value","Array","length","map","row","rowIndex","key","additional_description_row","black_edition","theme","vertical_separator","types","includes","cells","cell","cellIndex","additional_description_cell","overlay_two_thirds","contents","content","contentIndex","additional_description_content","contentType","titleContent","text","textContent","imageContent","url","altText","title","aspectRatio","scale","height","width","linkContent","isDownloadable","icon","linkText","target","openInNewWindow","showcaseContent","masterArticleNo","colorCode","index","resumeInBackground","prefix","Fragment","detectContent","additionalDescription_buttonLink_scss_1","icon_arrow_extra_small_right_1","icon_download_1","helper","buttonText","button_text","button_link","download","href","decodeHTML","generalL10n","pdfDownload","rel","additionalDescription_empty_scss_1","empty","additionalDescription_image_scss_1","react_lazyload_1","image","scaling","no_margin_both","logo","offset","src","alt","additionalDescription_separatorLine_scss_1","horizontal_separator","fragmentPlaceholder_1","additionalDescription_showcase_scss_1","showcase","ignoreErrors","timeout","additionalDescription_text_scss_1","richtext","dangerouslySetInnerHTML","__html","additionalDescription_title_scss_1","type","bannerModule_scss_1","viewPortWidth_1","defaults_scss_1","onlineCatalog_1","glovesBanner_1","shoesBanner_1","logoServiceBanner_1","isDesktop","useViewportWidth","parseInt","breakpointMobileMinWidth","useEffect","bannerWrapper","bannerWrapperChildren","from","children","style","margin","banner_modul","classList","add","no_border","id","banner_modul_wrapper","gloves_properties_and_standards_icon_1","tabNavigationHelper_1","GlovesBanner","inject","observer","tabNavigation","bannerModule","showGloves","banner_item","glovesRedirectUrl","ref","el","setFocusAtt","header","header_banner_type","mainStore","propertiesAndStandards","media_content","media_content_gloves","footer","button","discoverNow","logoservice_1","LogoServiceBanner","showLogoService","onClick","contextData","featureToggles","enableLogoCreator","_c","_b","_a","shutterModule","productInfo","description","isSmakeDesignerAvailable","showPersonalizeOverlay","open","logoServiceRedirectUrl","personalise","logoService","media_content_logo_service","getAltTagValue","online_catalog_icon_1","OnlineCatalog","onlineCatalog","withVat","onlineCatalogIncVat","onlineCatalogExVat","showOnlineCatalog","online_catalog_banner","leftPage","redirectUrl","left_page","previewImageUrl","left","rightPage","right_page","right","isOnRightPage","shoes_banner_header_1","ShoesBanner","showShoes","shoesRedirectUrl","safetyClassesOverview","media_content_shoes","debugBar_scss_1","DebugBar","_react_1$Component","_this","_classCallCheck","_callSuper","showDebugInfo","bind","_inherits","this","turnOnDebugger","debug_bar","Component","__decorate","DebuggerDataSource","dds_info","detailsPageLayout_scss_1","stickyHeader_1","mediaOverlay_1","mixedMedia_1","orderModule_1","shutterModul_1","variantPanel_1","productInfo_1","additionalDescription_1","glovesRecommendation_1","articleNumber_1","articlePrice_1","basketPanel_1","variantButtonList_1","purchaseAdvice_1","bannerModule_1","mixAndMatchShutterWrapper_1","detailsPageContentWidth_1","productFeature_1","personalizeOverlay_1","personalizeInfoOverlay_1","debugBar_1","layoutedContentGrid_1","productInfoArticleSets_1","personalizationBanner_1","DetailsPageLayout","_ref","contentWidth","useMixedMediaContentWidth","hasAdditionalDescription","fetchedData","additionalDescriptions","initialLayoutedContentGridState","layoutedContentGridKeys","variantButtonCount","logoCreatorUrl","showKioskLayout","concat","wwsId","showPersonalizationBanner","enablePersonalizationBannerOnDetailsPage","_react_1$default$useS2","_slicedToArray","useState","hasLayoutedContentGrid","setLayoutedContentGridState","details_page_content","isVariantPanelOpen","getRightPosition","hidden_fragment","isEsApp","background_container","dark_background","compareShareBookmarkMobileExpanded","dp_breadcrumb_fragment_container","breadcrumb","category","seoSlug","details_page_container","setGroupAtt","MediaOverlay","MixedMedia","OrderModule","dp_bottom_container","onHeightChange","setStickHeaderHeight","top","stickyHeaderTop","isStickyHeader","disableProductInfoShutter","isOpen","isMobileShop","enableArticleSetInformationInPDP","articleSetItemDescriptions","ProductInfoArticleSets","ProductInfo","additionalDescription","notVisible","additionalDescription3DContainerId","updateLayoutedContentGridState","isAvailable","mixedMedia","hasGlovesRecommendation","glovesRecommendationShutterTitle","GlovesRecommendation","productFeaturesGroups","featuresGroup","tmpIndex","groupName","redOnlyL10n","productFeature","groupIndex","_d","purchaseAdvice","isPurchaseAdviceAvailable","PurchaseAdvice","VariantPanel","PersonalizeOverlay","PersonalizeInfoOverlay","fragmentPlaceholder_scss_1","fragment_place_holder","fallback","fallbackSrc","xmlns","viewBox","d","role","transform","fill","cx","cy","r","dpWhite","StatusIcon","statusColor","defaultProps","dpBlack","version","opacity","mediaoverlay_scss_1","mainImage_1","crossRing_1","closeButtonRef","createRef","current","displayMediaOverlay","shell","tabNav","focus","onActivated","zoomButton","querySelector","mediaoverlay","setModalAtt","cross_icon","updateMediaOverlayVisibility","scrollLock","unlock","showEsAppButton","onKeyDown","handleKeyDown","MainImage","MixAndMatchFragmentWrapper","arguments","mixAndMatchFragmentUrl","orderModule","articleInfo","isClientSide","mixMatch_1","mixAndMatchFragmentWrapper_1","MixAndMatchShutterWrapper","mmRef","hideContent","mixAndMatch","_this2","subscribeTo","payload","available","setState","unsubscribeFrom","mainImage_scss_1","eyeCatcher_1","zoom_1","normalImage_1","mainImageCarousel_1","main_image_container","zoom_icon","zoom_only","lock","hideEsAppButton","EyeCatcher","shouldRenderMainImageCarousel","srcSet","slideIndex","fetchpriority","undefined","react_responsive_carousel_1","react_zoom_pan_pinch_1","icon_arrow_circle_grey_left_1","icon_arrow_circle_grey_right_1","carouselSlide_1","_ref3","mounted","setMountedState","resetFunction","mobileSwipeTolerance","initZoomReset","item","setup","panning","disabled","resetTransform","push","renderArrowPrev","onClickHandler","hasPrev","renderArrowNext","Carousel","showIndicators","altTagForImages","showArrows","showThumbs","showStatus","selectedItem","currentSlideIndex","infiniteLoop","onChange","newSlideIndex","setMainImageCarouselSlide","updateActiveCarouselImageIndex","getSlidesForCarousel","slide","swipeScrollTolerance","preventMovementUntilSwipeScrollTolerance","forEach","reset","updateActiveCarouselImageMobileIndex","getSlidesForMobileCarousel","TransformWrapper","centerZoomedOut","onInit","TransformComponent","loadedImagesMobileArray","toString","String","slice","toLocaleString","culture","minimumIntegerDigits","useGrouping","MainImageCarousel","shouldRenderMainImageInElement2","get1ElementImage","fullPath","urls","mainImage","shouldEnablePinchZoom","main_image","getAltValue","NormalImage","gallery3dOverlay_scss_1","Gallery3dOverlay","_react_1$default$Comp","displayG3dOverlay","gallery_3d","display_g3d_overlay","gallery_3d_container","threeDView_scss_1","Icon_3D_1","icon_play_3d_1","icon_pause_3d_1","ThreeDView","play3d","handle3DAnimationStartStopClick","prevProps","variantColorCode","publishTo","containerId","_this3","threeD_mi_container","showThreeDOnly","threed_view","handleShowGallery3d","icon_play_pause_3d","temporary_hide_scs","temporaryHideSCS","icon_3d","second_mi","prerender_slot","altTag","additionalInfoImage_scss_1","add_info_image_container","add_info_image","getImageForElement3","icon_novelty_1","eyeCatcher_scss_1","eye_catcher","isNew","ec_is_new","inner_text_area","star_icon","additionalInfoImage_1","mixedMedia_scss_1","threeDView_1","smallMainImage_1","gallery3dOverlay_1","threeDViewContainerId","manageSCSFragment","hidden","mixed_media_container","getLayoutClass","add_images","masterArticleNoDefault","colorCodeDefault","shouldRenderAdditionalInfoImage","SmallMainImage","AdditionalInfoImage","mobile_icon_3d","cross_1","modalWrapper_scss_1","modal","modal_container","modal_content","modal_header","modal_title","subtitle","close_button","onClose","modal_body","articleNumber_scss_1","ArticleInfo","info","article_info","ArticleNumber","_ref2","titleAddon","containerClasses","article_number_container_sticky","article_number_container","no_variant_buttons","no_variant_margin","has_variant_buttons","article_number","salesArticleNo","article_title","article_designation","articlePrice_scss_1","vatSwitcher_1","Price","priceString","isGlobal","articlePrice_priceString","articlePrice_value","ArticlePrice","articlePrice","basePriceLocale","isSale","showShippingInfo","customerData","postageFree","priceClassNames","articlePrice_price","articlePrice_price_global","basicPriceClassNames","flagAdvertisedAsCostFreeInSet","articlePrice_main_price","articlePrice_main_price_sale","join","articlePrice_container_sticky","articlePrice_container","one_variant_button","two_variant_buttons","articlePrice_price_container","getPriceString","minimalOriginalPrice","basicPrice","articlePrice_shipping_info_container","articlePrice_shipping_info","countryDependentContents","countryDependentContentsAttributeValue","articlePrice_total","defaultCountryDependentContentsText","totalProductPrice","articlePrice_vat_container","shouldRenderBasePrice","articlePrice_base_price","articlePrice_base_price_price","basePriceString","shouldRenderInfoTexts","infoTexts","articlePrice_info_text","articlePrice_info_text_price","articlePrice_info_text_base_price","html_helper_1","basketPanel_scss_1","basketIcon_1","basketSuccessIcon_1","minusIcon_1","plusIcon_1","BasketPanel","articleCountMin","articleCountMax","articleCount","basketSuccess","setBasketSuccess","handleBasketOpenClick","basketModalData","setTimeout","enableFullBasketLayout","updateBasketItemCount","salesArticleVariantKey","minusClasses","count_buttons","minus_button","plusClasses","plus_button","basketButtonClasses","basket_button","basket_button_success","sold_out_layout","articleSoldOut","baseBasketPanelClasses","basket_panel_sticky","basket_panel","basketPanelClasses","article_sold_out","throttledHandleBasketOpenClick","useMemo","throttle","name","navigationKey","autoComplete","autoCorrect","autoCapitalize","spellCheck","basket_counter","count","Number","setArticleCount","less","basket_counter_input_container","basket_counter_input","htmlFor","display","articleUnit","size","min","max","evt","newValue","onBlur","more","basket_button_articleCount_text","basket_button_text","basketButtonLocale","compareShareBookmarkMobile_scss_1","moreIcon_1","shareIcon_1","compareBtn_1","breakpointMobileExtraSmall","parsedButtonHeight","buttonHeight","isNaN","CompareShareBookmarkMobile","refPersonaliseButton","useRef","savKey","mpcItemOrigin","expanded","buttonCount","setButtonCount","isExtraSmall","innerWidth","container","visibleButtonCount","getElementsByTagName","handleExpandClick","useCallback","toggleCompareShareBookmarkMobileExpanded","handleShareClick","navigator","share","shareLinkText","replace","shareLinkBody","companyNameSimple","location","encodeURIComponent","split","expandButtonClassNames","compareShareBookmark_mobile_expand_button","buttonContainerClassNames","compareShareBookmark_mobile_button_container","actionButtonsTop","compareShareBookmark_mobile_container","compareShareBookmark_mobile_expand","compareShareBookmark_mobile_action_buttons","pointerEvents","_f","_e","personalizeButton","compareShareBookmark_mobile_action_button","_j","_h","_g","links","logoServiceInfoUrl","shareButtonLocale","itemOrigin","_l","_k","portalMandantToken","getBookmarkContainerID","compareShareBookmark_scss_1","CompareBtn","updateMpc_SavKey","pdpContainer","newBtn","setAttribute","compareShareBookmark_button_container","CompareShareBookmarkButton","label","CompareShareBookmarkButtonContainer","childHasButton","setChildHasButton","containerRef","searchingForButton","firstElementChild","tagName","CompareShareBookmark","compareShareBookmark_container","statusIcon_1","deliveryTime_scss_1","modalWrapper_1","AvailabilityState","buttonRef","DeliveryTime","modalOpen","setModalOpen","showHalfWidth","portal","handleDeliveryTimeClick","delivery_time_container","half_width","full_width","soldOutArticleStatusColor","deliveryTimeStatusColor","delivery_time_text","articleNotAvailable","deliveryTimeString","deliveryTime","delivery_time_modal_content","deliveryTimeText","orderModule_scss_1","deliveryTime_1","storeAvailability_1","salesTeaser_1","compareShareBookmark_1","salesFlag_1","compareShareBookmarkMobile_1","variantSelection","shouldShowStoreAvailability","showAvailableStatusInKiosk","order_module_container","om_breadcrumb_fragment_container","first_item","SalesFlag","order_module_availability_container","SalesTeaser","salesFlag_scss_1","price","isSetPrice","salesArticleType","_localization$general","rrp","sale","setPrice","hasRecommendedRetailPrice","priceDeduction","info_flag","percentage","toFixed","enableRedesignCategoryPageAndSearchPage","salesTeaser_scss_1","stopwatch_1","isRemainingStock","hasPriceDeduction","teaser","sales_teaser","whileStocksLast","rrp_teaser","teaser_text","priceAdvantage","storeAvailability_scss_1","workwearstoreIcon_1","workwearStoreAvailabilityModal_1","StoreAvailability","wwsAvailabilityButton","retailStore","wwsData","variantsStoreInformation","find","retailStoreNo","handleWorkwearStoreAvailabilityClick","changeModalOpen","changeWWSVariantSelectionCopy","variantSelectionCopyForWWS","storeAvailability_container","kiosk_not_avaliable","availableStatusInKiosk","kiosk_avaliable","result","not_available_in_wws_text","retailStoreServiceUpAndRunning","availableText","wwsOnlyL10n","wwsLocallyAvailable","retailStoreName","notAvailableText","wwsLocallyNotAvailable","availableInWws","available_in_wws_text","storeAvailabilityLocale","notAvailableInWorkwearStore","retailStoreServiceNotAvailable","workwearStoreAvailabilityFallback","workwearStoreAvailabilityCheck","renderStoreAvailabilityText","vatSwitcher_scss_1","switcherIcon_1","VatSwitcher","flagVatFree","buttonTestId","buttonLabel","withVatLocale","withoutVatLocale","labelClassNames","switcher_text","sticky","sticky_label","shipping_info","buttonClassNames","switcher_button","iconClassNames","switcher_icon","switcher","newWithVatValue","toggleWithVat","setPriceModeCookie","personalizationBanner_scss_1","selfDesign_1","personalization_banner_modul","personalization_banner_modul_wrapper","personalization_banner_header","personalization_banner_gif","personalization_banner_text","personalization_banner_hardcoded","small_hardcoded_text","personalizationBannerDescriptionText","large_hardcoded_text","personalizationBannerHeadline","design_yourself_now_button","onPersonalizeIntent","design_yourself_now_text","personalizationBannerButtonLabel","personalizeInfoOverlay_scss_1","po_info_container","show_po","confirmRegistrationHintIsVisible","personalize_overlay","po_header","h_title","note","h_cross_icon","showPersonlizeRegistrationConfirmHint","po_body","personalizationRegistrationConfirmHint","personalizeOverlay_scss_1","po_icon_arrow_right_1","designWithAdvice_1","closeOverlay","LinkButtonContainer","link_button","dataTestId","lbtn_title","link_arrow","searchParams","URL","has","afterLoginParam","delete","paramsStr","newUrl","protocol","host","pathname","hash","history","replaceState","openLogoCreatorDesigner","once","poIsVisible","po_container","banner_short_info","small_banner","short_info","personaliseInfo","designYourself","designYourselfInfo","withConsulting","withConsultingInfo","po_footer","buttonCancel","toolTip_scss_1","ToolTip","tt_overlay_background","tt_container","close_tt_btn","closeToolTip","tt_inner_triangle","tt_outer_triangle","tt_content","close_btn","tt_text","articleSetItem_scss_1","detailButtonTestId","article_set_item","articleSetItem","gratis","quantity","salesDesignation","color_size_info","variantLabel","showDetailsButton","isSellableSeparately","details_button","handleDetailsButtonClick","details","detailsModal_scss_1","detailsModalContent_1","arrowSmallIcon_1","articleSetItemDetail","detailPageUrl","detailsModalRef","details_modal","details_modal_container","details_modal_content","details_modal_header","details_modal_text_area","details_modal_title","details_modal_middle","DetailsModalContent","data","transition_on_scroll_down","details_modal_footer","footer_button","white","dpURL","set","to_details_page","toTheDetailsPage","productDescription_1","detailsModalContent_scss_1","extras_1","bullets_1","materials_1","careLabels_1","shoeWeights_1","articleSetItem_1","productDescriptionRef","bulletsRef","productContentRef","productImageRef","extrasRef","shoeWeightsRef","materialsRef","careLabelsRef","structuredText","bullets","injectedRichText","allRichTexts","orderedDisclaimers","commonRtfText","commonRtfTextFromWsd","materials","careLabels","careInstructions","shoeWeights","functionalLayers","functionLayers","tabs","briefDescription","title_set_consists_of","articelSetConsistsOf","getVariantLabel","structuredTextId","injectedRichTexts","functionalLayersExists","disclaimersExists","materialLabel","grammageLabel","grammage","careLabel","gramsInSizeLbl","gramsInSize","approxWeightLbl","approxWeight","extras","updateProductInfoContentHeight","activeTab","setActiveTab","update","updateExtras","updateBullets","product_info_details_container","product_image","product_info_tabs","product_info_tabs_header","no_extras","tab","product_info_tab","active","dm_product_info_content","productInfoArticleSets_scss_1","productAdditionalLayout_1","richText_1","detailsModal_1","disclaimers_1","colorText","trim","sizeText","modelText","returnValue","colorLabel","textColor","sizeLabel","textSize","modelLabel","textModel","renderAdditionalLayout","setRenderAdditionalLayout","_ref5","detailsModalOpen","setDetailsModalOpen","_ref7","openedArticleSetItem","setOpenedArticleSetItem","_ref9","setArticleSetItemDetail","_ref11","productInfoContentHeight","setProductInfoContentHeight","disclaimersRef","_ref13","showContent","setShowContent","newArticleSetItem","savKeyVariants","fetch","then","disclaimers","structuredTextExists","isFromArticleSet","recalculateClientHeight","firstChild","remove","removeAttribute","isBigContent","clientHeight","maxHeight","updateAdditionalLayout","claimRichTextId","claim","emotionalTextRichtextId","emotionalText","product_info_container","RichText","richTextId","no_specs","product_info_content","linkToDetailsPage","isArticleSet","productInfo_scss_1","ProductAdditionalLayout","wrapper_product_info_separator","button_more_product_info","currentState","expandedHeight","scrollHeight","marginBottom","bullets_scss_1","Bullets","bullet_text","scrollLock_1","careLabels_scss_1","CareLabels","clOverlayRef","clOverlayBackgroundRef","ScrollLock","clIconSrc","clDescription","openLabelOverlay","closeLabelOverlay","show","display_it","_this4","cl_overlay_background","cl_overlay","o_crossIcon","cl_icon","cl_description","cl_title","cl_icon_placeholder","productDescription_scss_1","ProductDescription","dividing_line","details_scss_1","Details","newDetails","spec_table","spec","spec_name","spec_value","orderedValues","disclaimers_scss_1","Disclaimers","disclaimer","rtfText","dataMode","extras_scss_1","Extras","module","text_module","tm_container","onLoad","imageUrl","tm_image","functionalLayers_scss_1","functionalLayerBase_1","functionalLayerWarmth_1","functionalLayerWeather_1","FunctionalLayers","functional_layers","fLayer","fl_btn_active","fl_btn","openPopup","getButtonIcon","productDescriptionLinks_scss_1","LogoServiceIcon_1","DatasheetIcon_1","toolTip_1","infoIcon_1","ProductDescriptionLinks","toolMobileTipContent","setMobileToolTipContent","_react_1$default$useS4","activeToolTip","setActiveToolTip","onIconTooltipClick","event","newToolTipContent","stopPropagation","preventDefault","showToolTipOnHover","toolTipKey","_react_1$default$useS6","datasheetsModalOpen","setDatasheetsModalOpen","onModalOpenStateChange","newState","datasheets","dataSheets","datasheet_hint","datasheetHint","description_link_list","logo_service_info_button","link_title","link_icon","link_label","DataSheetButton","datasheet","datasheetLabel","multiple_datasheets_modal_button","dataSheet","i","logo_creator_service","lcs_title","personalization","onMouseEnter","onMouseLeave","icon_tooltip","datsheet_button","materials_scss_1","Materials","stringValue","toLowerCase","layers","m_title","material","m_name","fibers","fiber","m_fiber","f_percentage","formatPercentageValue","f_name","f_divider","m_grammage","additionalInformation","add_text","productDescriptionLinks_1","details_1","functionalLayers_1","functionalLayersRef","detailsRef","specs","updateSpecs","shoeWeights_scss_1","ShoeWeights","shoeWeight","sw_property","weight","sizeLabelCode","glovesRecommendation_scss_1","glove_recommendation_shutter","gr_description","short_description","glovesRecommendationDescription","recommendation_container","glovesRecommendation","gloveRate","rate_container","r_info","r_title","rate","r_bar","r_value","layoutedContentGrid_scss_1","react_2","LayoutedContentGrid","addLcgGridTimer","addLcgGrid","gridId","callback","resolve","reject","clearTimeout","lcgContentAvailabilityTimer","layoutedContentGrid","LayoutedContentGrid_source","gridContent","content_scss_1","Content","pf_content","contentKey","activeContentKey","singleProductFeature","single_product_feature","getStyles","pf_animation","showCase","text_container","emt_title","emt_text","pfRichTextId","emt_logo","productFeature_scss_1","content_1","ProductFeature","animationContainerId","activeTabs","pfRef","pfViewPortReached","staticMasterArticleNo","staticColorCode","pFArrayLength","features","handleLeftRightArrowClick","handleControlDotClick","tmpValue","currentTarget","dataset","publishSCSShowThreeSixtyView","showThreeDView","cdClassName","c_dot","product_feature_shutter","arrow_left","feature","emotionalDescriptionText","emotionalDescriptionTitle","arrow_right","quick_select_and_status_info","content_status_info","current_article_features","status_divider","total_article_features","control_dots","renderControlDots","contentTab_scss_1","ContentTab","logoSrc","formCdnUrl","cdnAssetsUrl","decodeRtfText","sc_container","pfName","logoContainer","altTextTitle","tf_headline","redirect_button","rb_title","redirectBtnTitle","rb_arrow_icon","contentTabAAS_scss_1","arrow_down_1","ContentTabAAS","aasInitialized","isMobile","injectCloseButton","aasIsAvailable","aasFragmentHelper","updateAAS","activateAASShutter","addEventListener","assContent","closeButtonContainer","alternative_articles_modal_footer","appendChild","render","aas_modal_close_button","handleContentClose","tabKey","buttonClose","console","log","aas_modal_header","aas_back_button","aas_modal_title","closeOverlayBtnTitle","aas_content","navKeyPath","aas_logo_1","headerTab_scss_1","HeaderTab","tab_container","isActive","onTabChange","t_logo","logo_img","tf_logo","aas_logo","t_text_area","t_title","t_description","purchaseAdvice_scss_1","headerTab_1","contentTab_1","contentTabAAS_1","productFinderTabKey","aasTabKey","aasTabKey_closed","handleContentChange","prop","tabkey","getProductFinderRedirectUrl","showAASModal","purchase_advice_shutter","pa_header","hasAASShutter","aasTitle","aasSubTitle","hasProductFinderShutter","getProductFinderLogo","getProductFinderTitle","getProductFinderSubTitle","pa_content_container","pa_content","pa_aas_overlay_modal","showAssShutter","setHasAASShutter","aasBackToProduct","navigationKeyPath","pa_tf_content","getProductFinderContentTitle","getProductFinderContentDescription","getProductFinderName","getProductFinderRedirectBtnText","shutterModul_scss_1","react_collapse_1","arrow_down_desktop_shutters_1","arrow_down_mobile_shutters_1","idString","contentRef","onIsOpenChange","toggleDisabledAtt","shutter_modul_wrapper","not_visible","shutter_modul","shutter_header","shutter_title","shutter_icon","Collapse","collapse","isOpened","shutter_content","react_device_detect_1","stickyHeader_scss_1","placeholderRef","getBoundingClientRect","_a$top","__rest","contentHeight","setContentHeight","anchorRef","calcContentHeight","outerRef","visibility","innerRef","innerRefHeight","newHeight","handleScrollOrResize","isMobileOnly","removeEventListener","sticky_header_container","no_headr","position","sticky_header_content","no_variant_buttons_all_in_one_line","colorPanel_scss_1","customeSwiper_1","selectedColor","availableColors","variantSelectionCopy","tmpSelectedColorIndex","findIndex","color","code","selectedColorIndex","shouldShowImage","handleColorClick","colorcode","selectedColorInternal","availableColor","changeSelectedColor","elem","getElementsByClassName","color_content_wrapper","choosen_color_label","selection","color_content","color_icons","CustomSwiper","selectedElementIndex","slidesPerColumn","columnsPerView","enabled","color_border","getUrlByAvailableColor","e","color_icon","iconPath","colorIcon","image_content","side_image","sideImagePath","customSwipeable_scss_1","icon_arrow_small_left_1","icon_arrow_small_right_1","core_1","use","Mousewheel","Navigation","useSwiperRef","wrapper","setWrapper","_useSwiperRef2","prevEl","leftArrowRef","_useSwiperRef4","nextEl","rightArrowRef","direction","slidersPerView","slidersPerColumn","spaceBetween","childrenArray","Children","toArray","left_arrow","vertical","wws","isWWS","Swiper","swiper","one_row","slidesPerView","mousewheel","navigation","initialSlide","child","SwiperSlide","right_arrow","modelPanel_scss_1","wwsKioskInfo_1","types_1","selectedModelName","selectedModel","availableModels","tmpSelectedModelIndex","model","selectedModelIndex","column","setColumn","maxWidth","setMaxWidth","wrapperRef","finishedRender","setFinishedRender","handleModelClick","modelCode","modelcode","selectedModelInternal","availableModel","changeSelectedModel","modelClassNames","classNames","model_icon","sold_out_model","wwsStore","variantAvailabilityState","VariantType","Model","variantInfoInKiosk","AvailabilityStatusEnum","InStock","variant_status_green","variant_status_red","wrapperChildren","maxChildWidth","element","clientWidth","tempColumn","Math","floor","calculateWidth","model_content_wrapper","choosen_model_label","model_content","model_icons","sizeDimension_scss_1","size_regular_man_1","size_long_man_1","size_short_man_1","sizeType","isSizeDimensionInactive","sizes","every","size_dimension","selectedSizeType","sizeTypeName","size_dimension_inactive","dimension","changeSelectedSizeType","sizeTypeCode","selected_size_dimension_label","sizeDimension_1","sizeDimensions_scss_1","availableSizeTypes","kioskAvaliableSizeTypes","mapSizeTypes","SizeDimension","size_dimensions","sizeDimensions_1","sizePanel_scss_1","sizeValues_1","sizeTable_1","triangle_1","showSizeAccuracy","marker","fit_accuracy_scales","selectedSize","fittingAccuracy","halfScaleWidth","offsetWidth","markerPosition","marginLeft","size_panel_wrapper","size_content","size_panel_content","choosen_size_label","SizeDimensions","SizeValues","sizeTableType","size_table_button","clothingSizeTableUrl","glovesSizeTableUrl","size_table_text","sizeTable","fit_accuracy_wrapper","fit_accuracy_container","fit_accuracy_border","border_left","fit_accuracy_scale","border_right","section_headlines","smallerSize","matchingSize","largerSize","sizeValue_scss_1","variantKey","enabledKiosk","size_value","kiosk","stateClass","sizeCode","status","Size","inactive","sold_out_size","sizeValueClassNames","changeSelectedSize","sizeValue_1","sizeValues_scss_1","renderArticleVariantSize","articleVariantSize","SizeValue","size_values","renderVariantStoreSizes","specialPanel_scss_1","length_1","diameter_1","sizeTypeClick","clickedSizeType","sizetype","sizeClick","clickedSize","special_panel","subheader","subheader_mobile","textDiameter","special_content","special_value","sold_out","anySizeExistForSizeType","special_value_kiosk_sold_out","chosen_special_size_type","textLength","savSize","chosen_special_size","variantButtonList_scss_1","variantButton_1","isMobileHeader","variantContainerClassNames","variants_container","variantListClassNames","variants_list","showColorSwitcher","variants_container_item","VariantButton","variantType","Color","isDeactive","showSizeSwitcher","isScrew","Special","showModelSwitcher","modelButton","VariantButtonList","variantButton_scss_1","labelText","insideButton","variant_title","variantLabelInsideButton","changeVariantPanelDisplay","testId","variant_special_button","buttonContent","buttonIcon","imgSrc","button_label","selected_value","valueClassNames","special","specialButton","model_value","showCross","containerClassNames","variant_button","isOnlyVariantButton","only_variant_button","isColorVariantButton","color_variant_button","deactive","specialVariantTitle","variantPanel_scss_1","apply_1","colorPanel_1","sizePanel_1","specialPanel_1","modelPanel_1","variantPanelRef","closeClick","handleWindowResize","setPanelPosition","handleClickOutside","allowedInteraction","variantPanel","variantButtonClicked","contains","setStickyHeaderTop","Kiosk","handleClose","firstFocusable","querySelectorAll","desktopHeader","Object","assign","panelPosition","variant_panel","mobile_variant_panel","block","setVariantPanelAttributes","mobile_h","desktop_h","special_header","ColorPanel","SizePanel","SpecialPanel","ModelPanel","mobile_f","cancel","resetVariantState","button_title","apply","updateAll","buttonApply","workwearStoreAvailabilityModal_scss_1","workwearStore_1","WorkwearStoreAvailabilityModal","wwsaModalRef","fullSizeName","wwsVariantSelectionCopy","checkStoreStatus","variantStoreInformation","variant","variants","availabilityStatus","wwsa_modal","wwsa_modal_container","wwsa_modal_content","wwsa_modal_header","wwsa_modal_title","checkWorkwearstoreAvailability","wwsa_modal_middle","wws_selected_values","wws_wrapper","isCollapsed","openedStore","expandCollapse","storeName","noVariants","changeOpenedStore","wwsa_modal_footer","opening_hours_container","opening_hours","workWearStoresLink","goToWorkwearStore","opening_hours_text","openingHoursAndAdditionalInfo","wwsa_modal_bottom","infoSoldOut","workwearStore_scss_1","expanderIconOpenSmall_1","workwearStoreColors_1","workwearStoreSizes_1","workwearStoreModels_1","collapseWrapperRef","collapseWrapperHeight","setCollapseWrapperHeight","swiperDirection","showColors","haveColor","filter","haveSize","showSizes","showModels","isAnotherStoreOpen","variantAvailabilityStateClass","variantCode","CurrentlyOutOfStock","variant_status_orange","availabilityLabel","currentlyAvailable","currentlyNotAvailable","notAvailable","workwear_store","collapsed","another_store_open","wws_header","wws_title","availability_circle_red","green","yellow","wws_name","substr","indexOf","wws_name_label","arrow_button","arrow_button_label","checkAllVariants","content_wrapper","collapse_wrapper","color_size_content_wrapper","selectedColorElementRef","isSizesShown","sizes_shown","sizes_not_shown","colorsInRow","colorSwipeable","size_types_shown","modelSwipeable","modelWrapperRef","modelIconsWidth","setModelIconsWidth","modelsFinishedRendering","setModelsFinishedRendering","calculateModelIconWidth","modelsInRow","selected","selectedSizeIndex","sizeWrapperRef","handleSizeDimensionClick","initialMaxChildWidth","_calcColumnsAndMaxChi","sizeWrapperClientWidth","calcColumnsAndMaxChildWidth","wws_size_dimensions_wrapper","size_icons","handleSelectedSizeChangeClick","wwsKioskInfo_scss_1","WWSKioskInfo","wws_info_container","wws_info","wws_circle_red","AASFragmentHelper","savKeyToReplace","savKeyToLoad","detail","useStickyHeader","cssModification","salesdesignationHeaderViewSticky","DebugBarHelper","get","_instance","dataSource","Wsd_source","Pim_source","Pim_Wsd_source","Hardcode_source","mixedMediaElement","setWidth","EsAppHelper","_createClass","navigationWheel","NavigationWheel","visible","showNavWheelEvent","CustomEvent","dispatchEvent","hideNavWheelEvent","match","dec","fromCharCode","assetsUrl","startIndex","assetLocation","tmpCdnAssetsUrl","substring","txt","innerHTML","translatePageUrls","translatedPageUrls","fn","inThrottle","lastFn","lastTime","wait","extraArgs","context","args","Date","now","richText_scss_1","richTextItemsSelected","rit","items","MapLines","richTextItems","x","richTextItem","nodeType","NodeType","LineBreak","BlankLine","getClasses","markups","Paragraph","List","Text","link","openInNewTab","textValue","ListItem","richtext_line_a","MapLine","extendWithBulletStyle","extendWithAnchorStyle","classes","richtext_root","_isLocked","bodyScrollPosition","webContainer","mobileContainer","pageYOffset","body","scrollTo","TabNavigationHelper","hasAttribute","toggleAttribute","order","closest","attributes","attribute","root","isDisabled","firstFocus","globalThis","TrackingHelper","piwikProEnableEcommerceTracking","enableMetaPixel","esBrand","grossValue","scalePrices","scalePricesCopy","sort","a","b","sortDirection","getPriceValue","trackedData","sku","netValue","brand","toLocaleLowerCase","customDimensions","_paq","PiwikEvent","EcommerceProductDetailView","content_name","content_category","content_ids","content_type","currency","isoCode","_fbq","MetaEvent","ViewContent","UrlHelper","imgUrl","layout","imageType","getImageUrl","path","getUrls","replaceScaleName","formScaleName","originalUrl","screen","layoutName","imageTypeName","LayoutTypesEnum","Single_Element","ImageTypesEnum","ShoeSoleImage","SecondaryImage","MainActionImage","DetailedImage","AdditionalImages","Two_Elements","Three_Elements","mobx_1","DataStore","initialData","updateData","makeObservable","observable","bookmark","action","bound","axios_1","Fetch","apiMagicLink","detailComponentEndpoint","handleError","wwsStatus","apiUrl","requestUrl","response","catch","error","savKeyToCount","savKeys","append","errorMsg","isAxiosError","message","errorStack","toJSON","stack","warn","DataStore_1","OrderModuleStore_1","MixedMediaStore_1","VariantStore_1","WorkWearStoreStore_1","Fetch_1","trackingHelper_1","aasFragmentHelper_1","esAppHelper_1","minDeskTopWidth","esAppHelper","afterLoginParamWithValue","insertDisclaimerForGLB","MixedMediaStore","checkSelectedSizeType","VariantStore","priceMode","redesignOrderModal","baseUrlForAssets","showJacketFinder","showTrouserFinder","showShoeFinder","trackingHelper","variantChanged","setFetchedData","computed","initializeTrackerEventsOnPageLoad","request","requester","categoryName","exampleSavKey","articles","masterArticleNumber","exampleSavKeyStrings","variantChange","basketModalDataForLogoCreator","reporting","smakeId","newReturnValue","nonSoldOutSizeType","readyState","trackVisitedArticle","fallbackTimer","trackingExecuted","caseInsensitiveParameters","URLSearchParams","piwikTrackVisitedArticle","metaTrackVisitedArticle","isKidArticle","disclaimerName","rawRtfText","disclaimerGLB","newDisclaimer","globalRank","dataUpdate","updateDocumentTitle","changeWWSData","articleTitle","colorName","newFetchedData","tmpRemainingSpace","urlString","hide","customerNumbers","externalIdentifier","navKey","userId","preselectedArticles","external_identifier","personalizeOverlay","ssoId","currentPage","search","param","loginForEsAppWithRedirect","esAppLoginPageUrl","personalizationLoginHint","jacketFinderLogo","trouserFinderLogo","shoeFinderLogo","jacketFinderTitle","trouserFinderTitle","shoeFinderTitle","jacketFinderSubTitle","trouserFinderSubTitle","shoeFinderSubTitle","findYourPerfectJacketIn3SimpleSteps","findYourPerfectTrousersIn3SimpleSteps","justaFewStepsToThePerfectFootwear","areYouLookingForThePerfectJacket","areYouLookingForThePerfectWorkTrousers","areYouLookingForThePerfectShoe","jacketFinderRedirectUrl","trouserFinderRedirectUrl","shoeFinderRedirectUrl","goToJacketFinder","goToTrouserFinder","goToShoeFinder","_regeneratorRuntime","mark","_callee","sizeVariants","sizeVariant","sizeSavKeys","sizePrice","wrap","_context","prev","next","netPrice","grossPrice","filterSizeLabelWithSavKey","getPriceListForSizes","sent","abrupt","sizesWithPrice","exampleSalesVariantKey","isStraussBrand","nativeNavKeyPath","stop","_basketModalDataForLogoCreator","_x","_x2","_x3","_x4","_x5","sizeTypes","urlHelper_1","urlHelper","mainActionImage","secondaryImage","showMainImageInFirstPlaceByEsClass","additionalInfoImages","detailedImage","shoeSoleImage","_m","generateSourceSets","loadedImagesArray","getSingleAdditionalInfoImage","SalesArticleType","ArticleSet","mixedMediaData","carouselSlides","shouldRenderMainImageInFirstCarouselPosition","newIndex","getSlideObject","addImage","mobileCarouselSlides","_toConsumableArray","img","isSingleSlotLayout","isThreeSlotsLayout","isVisible","generateSourceSetForImage","addImages","getSrcSet","OrderModuleStore","initialPriceMode","stickHeaderHeight","priceModeCookie","getWithVatValue","onPriceModeChangedEvent","newPriceMode","localeCompare","sensitivity","localizedPriceString","priceStringSplit","intString","seperatedIntString","numberGroupSeparator","numberFormat","numberDecimalSeparator","fractionString","symbolShortForm","prependCurrencySymbol","basketApiUrl","getBasketItemCount","urlToHost","requestURL","res","basePrice","unit","infoTextResult","priceFromLocale","_this$mainStore$dataS","isArray","packagingInformation","quantityUnit","plural","singular","preString","basePricePreString","basePriceUnit","packageSize","subQuantityUnit","deliveryTimeLocale","_this$mainStore$dataS2","deliveryInformation","periodType","minValue","maxValue","calendarWeek","availabilityState","glbOnlyL10n","deliveryDateShortGLBLocale","SoonInStock","deliveryDateLongGLBLocale","deliveryTimeUnknownDateLocale","deliveryTimeFromCalWeekLocale","deliveryTimeKnownDateLocale","dpGreen","dpOrange","dpRed","hideScalePrices","basketModalItemOrigin","salesVariantKey","maxQuantityPerOrder","currencyISO","scaledPrices","returnPrice","scalePrice","mobileMinWidth","None","changeInteraction","updateVariantSelectionCopy","getUrl","translateFragmentJSON","translateFragment","translations","translationObject","translationUrls","translationUrl","cultureCode","setTranslateUrl","rawUrl","subStrings","lastIndexOf","colorCodeIndex","salesArticleNoIndex","newLastPath","changeVariantType","getPanelPosition","showVariantPanelBelowStickyHeader","adjustStickHeaderHeight","updatedSelectedColor","selectedAvailableColor","tmp","isDeskTopView","updatedSelectedModel","updateModel","updatedSelectedSizeType","aSizeType","defaultSize","updatedSelectedSize","updateVariantSizeSelected","shouldUpdateWholePage","selectedAvailableModel","splitVariantKey","translateFragmentText","getTranslateUrl","updateTranslatedUrl","masterarticleNo","updateUrl","preselectedSizeType","_this5","defaultArticleImagePath","WorkWearStoreStore","apiEndpoint","wwsDataFromMainStore","workWearStoreAvailability","updateRetailStoreServiceAvailabilityStatus","updateAvailableInWws","updateAvailableInKioskStore","changeWWSVariant","isRetailStoreServiceUpAndRunning","kioskStoreInfo","exist","updatedWWSData","updatedVariantSelectionCopy","articleVariant","_this6","NotInStock","saNo","aVariant","_this7","masterArticleNoString","availableInAnyStore","callBack","_this8","AspectRatio","AdditionalDescriptionImageScale","hasOwn","hasOwnProperty","arg","argType","inner","call","___CSS_LOADER_EXPORT___","cssWithMappingToString","list","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","k","cssMapping","btoa","base64","unescape","sourceMapping","ce","cancelable","defaultPrevented","Error","params","origPrevent","bubbles","createEvent","initCustomEvent","defineProperty","prototype","Event","defaultNoopBatch","observerBatching","reactionScheduler","printDebugValue","v","getDependencyTree","TimerBasedFinalizationRegistry","finalize","enumerable","configurable","writable","Map","maxAge","sweepTimeout","registrations","registration","token","registeredAt","scheduleSweep","sweep","observerFinalizationRegistry","FinalizationRegistry","adm","reaction","dispose","globalIsUsingStaticRendering","enableStaticRendering","enable","isUsingStaticRendering","__read","o","n","m","Symbol","iterator","ar","done","observerComponentNameFor","baseComponentName","ObjectToBeRetainedByReact","objectToBeRetainedByReactFactory","useObserver","objectRetainedByReact","forceUpdate","admRef","changedBeforeMount","rendering","exception","Reaction","register","unregister","track","hasSymbol","for","ReactForwardRefSymbol","forwardRef","ReactMemoSymbol","memo","baseComponent","options","useForwardRef","displayName","base","observerComponent","contextTypes","keys","hoistBlackList","getOwnPropertyDescriptor","$$typeof","compare","ObserverComponent","component","useLocalObservable","initializer","annotations","autoBind","useAsObservableSource","deep","runInAction","useLocalStore","source","useStaticRendering","symbolId","createdSymbols","newSymbol","symbol","createSymbol","shallowEqual","objA","objB","is","keysA","keysB","y","childContextTypes","contextType","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","setHiddenProp","mobxMixins","mobxPatchedDefinition","realMethod","_len","_key","locks","retVal","methods","mx","wrapFunction","_len2","_key2","patch","methodName","mixinMethod","methodMixins","getMixins","oldDefinition","originalMethod","newDefinition","createDefinition","wrappedFunc","mobxAdminProperty","$mobx","mobxObserverProperty","mobxIsUnmounted","skipRenderKey","isForcingUpdateKey","makeClassComponentObserver","componentClass","getDisplayName","componentWillReact","PureComponent","shouldComponentUpdate","observerSCU","makeObservableProp","originalRender","_displayName","createReactiveRender","_displayName2","comp","constructor","initialName","boundOriginalRender","isRenderingPending","reactiveRender","_reactiveRender$mobxA","hasError","createReaction","_allowStateChanges","nextProps","nextState","propName","valueHolderKey","atomHolderKey","getAtom","createAtom","prevReadState","_allowStateReadsStart","_allowStateReadsEnd","reportObserved","reportChanged","isPrototypeOf","_extends","_excluded","MobXProviderContext","stores","excluded","sourceKeys","_objectWithoutPropertiesLoose","parentValue","createStoreInjector","grabStoresFn","injectNames","makeReactive","protoProps","Injector","newProps","getOwnPropertyNames","getPrototypeOf","componentName","getInjectName","storeNames","baseStores","grabStoresByName","protoStoreKey","instStoreKey","runDisposersOnWillUnmount","propKeyOrFunction","f","disposeOnUnmount","propertyKeyOrFunction","c","c2","c3","isDecorator","componentWasAlreadyModified","createChainableTypeChecker","validator","checkType","isRequired","propFullName","rest","untracked","actual","chainedCheckType","getPropType","propValue","propType","RegExp","isSymbol","createObservableTypeCheckerCreator","allowNativeType","mobxType","mobxChecker","isObservableArray","isObservableObject","isObservableMap","preciseType","getPreciseType","nativeTypeExpectationMessage","createObservableArrayOfTypeChecker","typeChecker","PropTypes","observableArray","observableArrayOf","observableMap","observableObject","arrayOrObservableArray","arrayOrObservableArrayOf","objectOrObservableObject","die","mockGlobal","getGlobal","g","self","getDescriptor","objectPrototype","EMPTY_ARRAY","freeze","EMPTY_OBJECT","hasProxy","Proxy","plainObjectString","assertProxies","func","invoked","noop","isFunction","isStringish","isObject","isPlainObject","proto","protoConstructor","isGenerator","obj","addHiddenProp","object","addHiddenFinalProp","createInstanceofPredicate","theClass","isES6Map","thing","isES6Set","Set","hasGetOwnPropertySymbols","getOwnPropertySymbols","ownKeys","Reflect","toPrimitive","hasProp","getOwnPropertyDescriptors","_defineProperties","descriptor","input","hint","prim","TypeError","_toPrimitive","Constructor","staticProps","_inheritsLoose","subClass","superClass","create","_setPrototypeOf","p","setPrototypeOf","__proto__","_assertThisInitialized","ReferenceError","_arrayLikeToArray","arr","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it","minLen","test","_unsupportedIterableToArray","storedAnnotationsSymbol","createDecoratorAnnotation","annotation","property","is20223Decorator","decorate_20223_","storeAnnotation","annotationType_","OVERRIDE","isOverride","Atom","name_","isPendingUnobservation","isBeingObserved","observers_","diffValue_","lastAccessedBy_","lowestObserverState_","IDerivationState_","NOT_TRACKING_","onBOL","onBUOL","_proto","onBO","listener","onBUO","startBatch","propagateChanged","endBatch","isAtom","onBecomeObservedHandler","onBecomeUnobservedHandler","atom","onBecomeObserved","onBecomeUnobserved","comparer","identity","structural","deepEqual","shallow","deepEnhancer","_","isObservable","array","isAction","isFlow","flow","autoAction","referenceEnhancer","override","make_","extend_","proxyTrap","desc","createActionAnnotation","options_","make_$1","extend_$1","decorate_20223_$1","_this$options_","target_","actionDescriptor","createActionDescriptor","defineProperty_","mthd","kind","addInitializer","ann","_this$options_2","_ann$options_$name","_ann$options_","_ann$options_$autoAct","_ann$options_2","createAction","isMobxAction","safeDescriptors","_annotation$options_","_annotation$options_$","_annotation$options_2","_annotation$options_$2","_annotation$options_3","_annotation$options_4","_adm$proxy_2","globalState","_adm$proxy_","proxy_","isPlainObject_","createFlowAnnotation","make_$2","extend_$2","decorate_20223_$2","flowDescriptor","createFlowDescriptor","_this$options_3","isMobXFlow","createComputedAnnotation","make_$3","extend_$3","decorate_20223_$3","assertComputedDescriptor","defineComputedProperty_","asObservableObject","values_","ComputedValue","getObservablePropValue_","createObservableAnnotation","make_$4","extend_$4","decorate_20223_$4","_this$options_$enhanc","assertObservableDescriptor","defineObservableProperty_","enhancer","initializedObjects","WeakSet","initializeObservable","_ann$options_$enhance","ObservableValue","setObservablePropValue_","init","AUTO","autoAnnotation","createAutoAnnotation","make_$5","extend_$5","decorate_20223_$5","_this$options_4","observableAnnotation","_this$options_5","_this$options_6","defaultCreateObservableOptions","defaultDecorator","proxy","asCreateObservableOptions","observableRefAnnotation","observableShallowAnnotation","isObservableSet","observableStructAnnotation","oldValue","observableDecoratorAnnotation","getEnhancerFromOptions","createObservable","arg2","arg3","box","_getDescriptor$config","_getDescriptor","equals","initialValues","useProxies","createLegacyArray","createObservableArray","ObservableMap","ObservableSet","decorators","initObservable","extendObservable","_target$$mobx","_target$$mobx$proxy_","objectProxyTraps","asDynamicObservableObject","struct","COMPUTED","computedAnnotation","computedStructAnnotation","arg1","opts","_Symbol$toPrimitive","currentActionId","nextActionId","isFunctionNameConfigurable","tmpNameDescriptor","actionName","executeAction","canRunAsDerivation","scope","runInfo","_startAction","err","error_","_endAction","prevDerivation_","trackingDerivation","runAsAction","prevAllowStateChanges_","allowStateChanges","untrackedStart","allowStateChangesStart","runAsAction_","prevAllowStateReads_","allowStateReadsStart","notifySpy_","startTime_","actionId_","parentActionId_","suppressReactionErrors","allowStateChangesEnd","allowStateReadsEnd","untrackedEnd","_Symbol$toPrimitive$1","_Atom","notifySpy","hasUnreportedChange_","interceptors_","changeListeners_","value_","dehancer","dehanceValue","prepareNewValue_","UNCHANGED","setNewValue_","checkIfStateModificationsAreAllowed","hasInterceptors","change","interceptChange","UPDATE","hasListeners","notifyListeners","intercept_","handler","registerInterceptor","observe_","fireImmediately","observableKind","debugObjectName","registerListener","raw","valueOf","isObservableValue","getFlag","flags","mask","setFlag","dependenciesState_","observing_","newObserving_","runId_","UP_TO_DATE_","unboundDepsCount_","CaughtException","triggeredBy_","flags_","derivation","setter_","isTracing_","TraceMode","NONE","scope_","equals_","requiresReaction_","keepAlive_","compareStructural","requiresReaction","keepAlive","onBecomeStale_","POSSIBLY_STALE_","propagateMaybeChanged","isComputing","inBatch","shouldCompute","prevTrackingContext","trackingContext","trackAndCompute","STALE_","propagateChangeConfirmed","warnAboutUntrackedRead_","computeValue_","isCaughtException","cause","isRunningSetter","wasSuspended","changed","trackDerivedFunction","disableErrorBoundaries","suspend_","clearObserving","firstTime","prevValue","autorun","prevU","isComputingMask_","isRunningSetterMask_","isBeingObservedMask_","isPendingUnobservationMask_","isComputedValue","prevAllowStateReads","prevUntracked","obs","l","changeDependenciesStateTo0","isComputingDerivation","runId","prevTracking","prevObserving","observing","lowestNewObservingDerivationState","i0","dep","_dep","removeObserver","_dep2","addObserver","bindDependencies","allowStateReads","persistentKeys","MobXGlobals","mobxGuid","pendingUnobservations","pendingReactions","isRunningReactions","spyListeners","globalReactionErrorHandlers","computedRequiresReaction","reactionRequiresObservable","observableRequiresReaction","verifyProxies","canMergeGlobalState","isolateCalled","global","__mobxInstanceCount","__mobxGlobals","getGlobalState","resetGlobalState","defaultGlobals","node","queueForUnobservation","runReactions","onInvalidate_","errorHandler_","requiresObservable_","isDisposed_","isScheduled_","isTrackPending_","isRunning_","schedule_","isScheduled","runReaction_","reportExceptionInDerivation_","prevReaction","getDisposer_","abortSignal","trace","enterBreakPoint","onReactionError","idx","splice","MAX_REACTION_ITERATIONS","runReactionsHelper","allReactions","iterations","remainingReactions","isReaction","spy","ACTION","AUTOACTION","DEFAULT_ACTION_NAME","actionAnnotation","actionBoundAnnotation","autoActionAnnotation","autoActionBoundAnnotation","createActionFactory","view","_opts$name","_opts","_opts2","_opts2$signal","_opts3","scheduler","delay","reactionRunner","onError","requiresObservable","createSchedulerFromOptions","signal","aborted","run","expression","effect","_opts$name2","_opts4","_opts4$signal","_opts5","errorHandler","baseFn","effectAction","runSync","nextValue","ON_BECOME_OBSERVED","ON_BECOME_UNOBSERVED","interceptHook","hook","cb","listenersKey","hookListeners","NEVER","ALWAYS","OBSERVED","baseScheduler","ea","properties","descriptors","nodeToDependencyTree","dependencies","getObserverTree","nodeToObserverTree","hasObservers","observers","getObservers","generatorId","FlowCancellationError","isFlowCancellationError","flowAnnotation","flowBoundAnnotation","generator","rejector","gen","pendingPromise","promise","Promise","stepId","onFulfilled","ret","onRejected","cancelPromise","_res","yieldedPromise","flowResult","interceptReads","propOrHandler","getAdministration","intercept","interceptProperty","interceptInterceptable","_isComputed","isComputed","isComputedProp","_isObservable","isObservableProp","keys_","values","entries","set_","_values","delete_","has_","get_","apiDefineProperty","apiOwnKeys","ownKeys_","observe","propOrCb","cbOrFire","observeObservableProperty","observeObservable","cache","toJSHelper","__alreadySeen","_res2","_res3","propertyIsEnumerable","toJS","transaction","thisArg","when","predicate","_opts$signal","abort","_opts$signal2","disposer","_when","_opts$signal3","whenPromise","timeoutHandle","getAdm","_getAdm$set_","deleteProperty","_getAdm$delete_","_getAdm$definePropert","preventExtensions","interceptable","interceptors","listenable","listeners","collectStoredAnnotations","keysSymbol","makeAutoObservable","overrides","SPLICE","arrayTraps","getArrayLength_","arrayExtensions","setArrayLength_","ObservableArrayAdministration","owned_","legacyMode_","atom_","enhancer_","lastKnownLength_","newV","oldV","dehanceValue_","dehanceValues_","added","addedCount","removed","removedCount","newLength","currentLength","newItems","spliceWithArray_","updateArrayLength_","oldLength","delta","reserveArrayBuffer","deleteCount","lengthDelta","spliceItemsIntoValues_","notifyArraySplice_","_this$values_","oldItems","_i","notifyArrayChildUpdate_","notify","owned","clear","spliceWithArray","pop","shift","unshift","_len3","_key3","reverse","copy","addArrayExtension","funcName","funcFactory","simpleFunc","dehancedValues","mapLikeFunc","reduceLikeFunc","accumulator","currentValue","_Symbol$iterator","_Symbol$toStringTag","isObservableArrayAdministration","ObservableMapMarker","ADD","DELETE","toStringTag","_Symbol$iterator$1","_Symbol$toStringTag$1","data_","hasMap_","keysAtom_","merge","entry","newEntry","hasKey","updateValue_","addValue_","_change","_this3$hasMap_$get","_this4$hasMap_$get","makeIterable","_keys$next","_keys$next2","_step","_iterator","_step$value","other","symbols","s","getPlainObjectKeys","_step2","_iterator2","_step3","replacementMap","dataStructure","convertToMap","orderedData","keysReportChangedCalled","_iterator3","_step4","_iterator4","_step4$value","_value","keyExisted","_value2","iter1","iter2","next1","next2","ObservableSetMarker","callbackFn","_change2","nextIndex","observableValues","descriptorCache","REMOVE","ObservableObjectAdministration","defaultAnnotation_","appliedAnnotations_","pendingKeys_","assertAnnotable","_this$target_$storedA","outcome","recordAnnotationApplied","deleteOutcome","notifyPropertyAddition_","cachedDescriptor","getCachedObservablePropDescriptor","_this$pendingKeys_","_this$pendingKeys_$ge","_this$pendingKeys_2","_this$pendingKeys_2$g","_options$name","_options$defaultDecor","getAnnotationFromOptions","isObservableObjectAdministration","_adm$target_$storedAn","ctor","ENTRY_0","createArrayEntryDescriptor","safariPrototypeSetterInheritanceBug","OBSERVABLE_ARRAY_BUFFER_SIZE","StubArray","LegacyObservableArray","_StubArray","arrays","createArrayBufferItem","getDebugName","_observable","named","depth","eq","aStack","bStack","unwrap","areArrays","aCtor","bCtor","getSelf","__MOBX_DEVTOOLS_GLOBAL_HOOK__","injectMobx","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","to","val","toObject","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","secret","getShim","ReactPropTypes","bigint","bool","number","string","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","_typeof","_react","__esModule","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","_React$Component","_super","_this$props","checkTimeout","containerHeight","isFullyOpened","abs","isFullyClosed","onRest","onWork","onResize","hasOpened","hasClosed","overflow","isOpenining","isClosing","initialStyle","_this$props2","some","_this$props3","onRefContainer","onRefContent","UnmountClosed","_Collapse","_excluded2","enumerableOnly","sym","_objectSpread","defineProperties","_objectWithoutProperties","sourceSymbolKeys","_React$PureComponent","isResting","isInitialRender","_this$state","_this$state2","getInitialStyle","ex","React__default","UA","browser","getBrowser","device","getCPU","getDevice","engine","getEngine","os","getOS","ua","getUA","setDefaults","getNavigatorInstance","isIOS13Check","nav","platform","maxTouchPoints","MSStream","DeviceTypes","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","Ie","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","isTablet","isBrowser","isSmartTV","isConsole","isWearable","mobilePayload","_objectSpread2","vendor","osVersion","isEdgeChromiumType","isBrowserType","isEdgeType","getIPad13","isMobileSafari","isChromium","isMobileAndTabletType","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isSafari","isOpera","isIE","osName","fullBrowserVersion","browserVersion","major","browserName","mobileVendor","mobileModel","engineName","engineVersion","isEdge","isYandex","deviceType","isIOS13","isIPad13","isIPhone13","isIPod13","isElectron","userAgent","isElectronType","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","AndroidView","renderWithFragment","viewClassName","BrowserView","ConsoleView","_ref10","CustomView","_ref12","condition","IEView","IOSView","_ref4","MobileOnlyView","_ref8","MobileView","SmartTVView","TabletView","_ref6","WearableView","WinPhoneView","deviceDetect","browserMajorVersion","browserFullVersion","broPayload","stvPayload","consolePayload","wearPayload","withOrientationChange","WrappedComponent","_class","isEventListenerAdded","handleOrientationChange","onOrientationChange","onPageLoad","isLandscape","isPortrait","orientation","innerHeight","_reactSwipe","_reactSwipe2","_interopRequireDefault","_propTypes","setHasSupportToCaptureOption","_react2","_propTypes2","supportsCaptureOption","hasSupport","getSafeEventHandlerOpts","capture","getPosition","_event$touches$","touches","pageX","pageY","screenX","screenY","ReactSwipe","_Component","_handleSwipeStart","_handleSwipeMove","_handleSwipeEnd","_onMouseDown","_onMouseMove","_onMouseUp","_setSwiperRef","passive","allowMouseEvents","mouseDown","_getPosition","moveStart","onSwipeStart","_getPosition2","deltaX","deltaY","moving","onSwipeMove","movePosition","onSwipeEnd","tolerance","onSwipeLeft","onSwipeRight","onSwipeUp","onSwipeDown","_props","onMouseDown","onTouchStart","onTouchEnd","forceVisible","forceCheck","lazyload","_event","_scrollParent2","_debounce2","_throttle2","defaultBoundingClientRect","LISTEN_FLAG","pending","passiveEventSupported","passiveEvent","checkVisible","HTMLElement","parent","ownerDocument","documentElement","parentTop","parentLeft","parentHeight","parentWidth","_parent$getBoundingCl","windowInnerHeight","windowInnerWidth","intersectionTop","intersectionLeft","intersectionHeight","intersectionWidth","_node$getBoundingClie","offsetTop","offsetLeft","offsets","checkOverflowVisible","offsetHeight","getClientRects","elementHeight","_node$getBoundingClie2","checkNormalVisible","unmountIfInvisible","purgePending","lazyLoadHandler","delayType","finalLazyLoadHandler","LazyLoad","setRef","scrollport","scrollContainer","needResetFinalLazyLoadHandler","debounce","off","getAttribute","listenerCount","scroll","resize","on","_props2","placeholder","classNamePrefix","_Component2","LazyLoadDecorated","immediate","timestamp","later","last","callNow","eventName","attachEvent","detachEvent","excludeStaticParent","overflowRegex","parentNode","getComputedStyle","overflowX","overflowY","threshhold","deferTimer","metric","axis","positionPercent","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_interopRequireWildcard","_reactDom","_reactEasySwipe","_cssClasses","_CSSTranslate","_Thumbs","_document","_window","WeakMap","thumbsRef","carouselWrapperRef","listRef","itemsRef","clearAutoPlay","timer","increment","interval","autoPlay","isMouseEntered","activeElement","isFocusWithinTheCarousel","isHorizontal","prevKey","keyCode","decrement","initialized","firstItem","itemSize","updateSizes","hasMount","cancelClick","onClickItem","onClickThumb","moveTo","swiping","swipeMovementStarted","childrenLength","currentPosition","finalBoundry","axisDelta","handledDelta","hasMoved","setPosition","forceReflow","findDOMNode","positions","fromSwipe","lastPosition","needClonedSlide","oldPosition","centerMode","centerSlidePercentage","selectItem","resetAutoPlay","emulateTouch","isKeyboardEvent","handleOnChange","slideImages","complete","onImageLoad","setupCarousel","prevState","autoFocus","forceFocus","resetPosition","setupAutoPlay","destroyAutoPlay","destroyCarousel","bindEvents","initialImage","getInitialImage","setMountState","unbindEvents","carouselWrapper","stopOnHover","startOnLeave","useKeyboardArrows","navigateWithKeyboard","_this$carouselWrapper","isClone","slideProps","setItemsRef","ITEM","handleClickItem","extraProps","minWidth","renderItem","isSelected","labels","renderIndicator","changeItem","statusFormatter","setThumbsRef","onSelectItem","handleClickThumb","transitionTime","thumbWidth","renderThumbs","isSwipeable","swipeable","canShowArrows","hasNext","itemListStyles","transformProp","WebkitTransform","MozTransform","MsTransform","OTransform","msTransform","WebkitTransitionDuration","MozTransitionDuration","MsTransitionDuration","OTransitionDuration","transitionDuration","msTransitionDuration","itemsClone","renderItems","firstClone","lastClone","swiperProps","SLIDER","containerStyles","onSwipeForward","onSwipeBackwards","dynamicHeight","itemHeight","getVariableItemHeight","verticalSwipe","ROOT","setCarouselWrapperRef","tabIndex","CAROUSEL","renderControls","onClickPrev","leftArrow","WRAPPER","setListRef","onClickNext","rightArrow","renderStatus","ARROW_PREV","ARROW_NEXT","DOT","images","total","_dimensions","Thumbs","itemsWrapperRef","itemsListRef","wrapperSize","outerWidth","visibleItems","_state","getFirstItem","setupThumbs","destroyThumbs","itemClass","thumbProps","setItemsWrapperRef","slideRight","slideLeft","setItemsListRef","_classnames","_default","customClassName","isSlider","carousel","isSwiping","thumbs","slider","animated","previous","thumb","dot","marginRight","_Carousel","_types","CarouselProps","roundNumber","num","decimal","handleCallback","animations","easeOut","t","cos","PI","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","handleCancelAnimationFrame","animation","cancelAnimationFrame","handleCancelAnimation","contextInstance","animate","velocity","handleSetupAnimation","animationName","animationTime","startTime","getTime","frameTime","step","animationType","requestAnimationFrame","targetState","isValid","positionX","positionY","isValidTargetState","setTransformState","transformState","scaleDiff","positionXDiff","positionYDiff","calculateBounds","newScale","wrapperComponent","contentComponent","wrapperWidth","wrapperHeight","newContentWidth","newContentHeight","newDiffWidth","newDiffHeight","getComponentsSizes","bounds","diffWidth","diffHeight","scaleWidthFactor","scaleHeightFactor","minPositionX","maxPositionX","minPositionY","maxPositionY","getBounds","boundLimiter","minBound","maxBound","handleCalculateBounds","getMouseBoundedPosition","limitToBounds","paddingValueX","paddingValueY","paddingX","paddingY","handleCalculateZoomPositions","mouseX","mouseY","scaleDifference","checkZoomBounds","zoom","minScale","maxScale","zoomPadding","enablePadding","minScaleWithPadding","isPanningStartAllowed","isInitialized","isWrapperChild","isExcludedNode","isPanningAllowed","isPanning","getPaddingValue","disablePadding","getVelocityPosition","newPosition","startPosition","isLocked","minPosition","maxPosition","minTarget","maxTarget","calculatedPosition","handleCalculateVelocity","isAllowed","velocityAnimation","isVelocityCalculationAllowed","lastMousePosition","velocityTime","equalToMove","sizeMultiplier","getSizeMultiplier","distanceX","distanceY","velocityX","velocityY","speed","sqrt","handlePanningStart","TouchEvent","clientX","clientY","startCoords","handleTouchPanningSetup","handlePanningSetup","handleAlignToBounds","alignmentAnimation","sizeX","sizeY","xChanged","yChanged","handlePanToBounds","handlePanning","lockAxisX","lockAxisY","getPanningClientPosition","newPositionX","newPositionY","handleNewPosition","handlePanningEnd","velocityDisabled","wrapperRect","contentRect","isZoomed","isVelocityAllowed","zoomAnimation","alignAnimationTime","velocityAlignmentTime","moveAnimationTime","getVelocityMoveTime","finalAnimationTime","maxTargetX","minTargetX","maxTargetY","minTargetY","startState","animationProgress","alignStep","alignAnimation","customStep","currentPositionX","currentPositionY","handleVelocityPanning","handleZoomToPoint","handleAlignToScaleBounds","mousePositionX","mousePositionY","__assign","__spreadArray","pack","initialState","initialSetup","centerOnInit","wheel","wheelDisabled","touchPadDisabled","activationKeys","pinch","doubleClick","mode","createState","previousScale","initialScale","initialPositionX","initialPositionY","createSetup","newSetup","validValue","dataType","handleCalculateButtonZoom","targetScale","exp","handleZoomToViewCenter","resetTransformations","onResetTransformation","initialTransformation","newBounds","boundedPositions","zoomIn","zoomOut","setTransform","centerView","getCenterPosition","zoomToElement","customZoom","wrapperOffset","contentOffset","xOff","yOff","nodeRect","nodeOffset","nodeLeft","nodeTop","nodeWidth","nodeHeight","scaleX","scaleY","offsetX","offsetY","calculateZoomToNode","getContext","makePassiveEventOption","targetTagName","toUpperCase","tag","cancelTimeout","getTransformStyles","getMatrixTransformStyles","tx","ty","getMousePosition","touch","getTouchDistance","pow","handleWheelZoom","onWheel","onZoom","customDelta","defaultValue","getDeltaY","getDelta","disable","getTarget","paddingEnabled","handleCalculateWheelZoom","ctrlKey","mousePosition","isLimitedToBounds","previousWheelEvent","handleWheelStop","onWheelStop","onZoomStop","wheelAnimationTimer","hasStoppedZooming","sign","handleWheelZoomStop","wheelStopEventTimer","handlePinchZoom","pinchStartDistance","midPoint","firstPointX","firstPointY","calculateTouchMidPoint","isFinite","currentDistance","pinchStartScale","calculatePinchZoom","pinchMidpoint","lastDistance","handleDoubleClickStop","doubleClickStopEventTimer","handleDoubleClick","onZoomStart","handleDoubleClickResetMode","ZoomPanPinch","onChangeCallbacks","lastTouch","distance","maxBounds","pressedKeys","mount","initializeWindowEvents","unmount","cleanupWindowEvents","currentDocument","currentWindow","defaultView","onPanningStart","onPanning","onPanningStop","clearPanning","setKeyUnPressed","setKeyPressed","disconnect","handleInitializeWrapperEvents","onWheelZoom","onDoubleClick","onTouchPanningStart","onTouchPanning","onTouchPanningStop","handleInitialize","applyTransformation","setCenter","ResizeObserver","isWheelAllowed","isPressingKeys","onWheelStart","handleWheelStart","onPinchStart","onPinchingStart","isPinchStartAllowed","handlePinchStart","onPinch","onPinching","isPinchAllowed","onPinchStop","onPinchingStop","isPanningAction","isPinchAction","isDoubleClickAllowed","onTransformed","ctx_1","handleTransformStyles","customTransform","Context","ctx","getContent","useImperativeHandle","styles","css","insertAt","head","insertBefore","styleSheet","cssText","createTextNode","styleInject","wrapperClass","contentClass","wrapperStyle","contentStyle","wrapperProps","contentProps","useContext","useTransformContext","libraryContext","setValues","KeepScale","refs","localRef","h","performance","unstable_now","q","MessageChannel","u","w","unstable_shouldYield","unstable_forceFrameRate","z","A","B","C","D","E","F","G","port2","port1","onmessage","postMessage","H","I","J","K","sortIndex","L","M","N","O","P","Q","R","S","T","expirationTime","U","V","priorityLevel","W","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","unstable_wrapCallback","extend","ssrDocument","blur","nodeName","initEvent","childNodes","createElementNS","importNode","hostname","origin","getDocument","doc","ssrWindow","pushState","go","back","getPropertyValue","Image","matchMedia","getWindow","win","locals","isOldIE","all","atob","styleTarget","HTMLIFrameElement","contentDocument","stylesInDom","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","sourceMap","references","updater","addStyle","insertStyleElement","nonce","insert","textStore","replaceText","replacement","applyToSingletonTag","cssNode","removeChild","applyToTag","singleton","singletonCounter","styleIndex","removeStyleElement","lastIdentifiers","newList","newLastIdentifiers","_index","support","getSupport","DocumentTouch","PointerEvent","passiveListener","supportsPassive","gestures","calcSupport","_temp","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","calcDevice","isWebView","calcBrowser","createObserver","destroyed","newWidth","contentBoxSize","inlineSize","blockSize","resizeHandler","unobserve","emit","orientationChangeHandler","resizeObserver","destroy","Observer","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","containerParents","$el","parents","observeSlideChildren","$wrapperEl","events","priority","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","updateSize","isVertical","updateSlides","getDirectionLabel","getDirectionPropertyValue","parseFloat","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginTop","ceil","slidesPerColumnFill","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","newSlideOrderIndex","slidesPerGroup","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","roundLengths","outerHeight","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","centeredSlides","slidesPerGroupSkip","setWrapperSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","cssMode","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","visibleSlides","each","activeIndex","swiperSlideOffset","updateSlidesProgress","translate","offsetCenter","removeClass","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","addClass","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","hasClass","slideDuplicateClass","nextSlide","nextAll","prevSlide","prevAll","attr","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getTranslate","virtualTranslate","currentTranslate","setTranslate","byController","wrapperEl","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","_wrapperEl$scrollTo","isH","behavior","onTranslateToWrapperTransitionEnd","slideTo","initial","indexAsNumber","normalizedTranslate","normalizedGird","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","loopedSlides","slideNext","loopPreventsSlide","loopFix","_clientLeft","clientLeft","slidePrev","normalize","prevIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","prepend","diff","loopDestroy","removeAttr","touchEventsData","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","isTouched","isMoved","noSwipingClass","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","selector","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","touchAngle","atan2","touchMoveStopPropagation","nested","startTranslate","trigger","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","time","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","velocityEvent","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","j","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","breakpoints","setBreakpoint","autoplay","running","paused","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","start","move","end","passiveListeners","simulateTouch","updateOnWindowResize","detachEvents","addClasses","resultClasses","suffixes","containerModifierClass","emitContainerClasses","removeClasses","createElements","breakpointsBase","uniqueNavElements","preloadImages","updateOnImagesReady","_emitClasses","prototypes","modular","useParams","instanceParams","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","transition","duration","dir","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","points","point","minRatio","_points$i","matches","wasLocked","lastSlidePosition","loadImage","imageEl","srcset","checkForComplete","onReady","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","swipers","newParams","__swiper__","moduleParamName","auto","desktop","swiperParams","defaults","passedParams","$","touchEventsTouch","touchEventsDesktop","clickTimeout","setProgress","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","getWrapperSelector","getWrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","prototypeGroup","protoMethod","_construct","Parent","Class","Function","_wrapNativeSuper","_cache","Wrapper","Dom7","_Array","arrayFlat","arrayFilter","html","toCreate","tempParent","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","Methods","_el$classList","_el$classList2","_len4","_key4","toggleClass","toggle","attrs","attrName","_len5","_key5","eventType","targetSelector","handleLiveEvent","eventData","dom7EventData","_parents","handleEvent","dom7LiveListeners","proxyListener","dom7Listeners","_len6","_key6","handlers","dom7proxy","_len9","_key9","dataIndex","dom","fireCallBack","includeMargins","_styles","_styles2","clientTop","scrollY","scrollX","_prop","compareWith","webkitMatchesSelector","msMatchesSelector","previousSibling","returnIndex","newChild","tempDiv","nextElementSibling","nextEls","_next","previousElementSibling","prevEls","_prev","_parent","foundElements","found","deleteProps","nextTick","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","m41","m42","noExtend","nextSource","keysArray","nextKey","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","checkProps","needsNavigation","needsPagination","pagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","slidesPerViewParams","processChildren","getChildren","slots","slot","foundSlides","updateSwiper","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","controller","control","mod","lazy","load","useIsomorphicLayoutEffect","deps","useLayoutEffect","externalElRef","_ref$tag","Tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","eventsAssigned","_useState","setContainerClasses","_useState2","virtualData","setVirtualData","_useState3","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","allowedParams","getParams","restProps","_getChildren","onBeforeBreakpoint","_containerClasses","initSwiper","extendWith","renderExternal","renderExternalUpdate","mountSwiper","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","parallax","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","externalRef","slideData","_ref$className","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","isDuplicate","isPrev","isNext","renderChildren","Virtual","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","slidesToRender","prependIndexes","appendIndexes","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","beforeInit","overwriteParams","Keyboard","handle","kc","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","metaKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","isSupported","implementation","hasFeature","isEventSupported","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","eventsTarget","releaseOnEdges","rtlFactor","forceToAxis","invert","_newEvent","ignoreWheelEvents","_recentWheelEvents","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","newEvent","prevEvent","animateSlider","releaseScroll","thresholdDelta","thresholdTime","toggleEl","disabledClass","_swiper$navigation","$nextEl","$prevEl","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","_swiper$navigation3","click","_swiper$navigation4","targetEl","clickable","isHidden","Pagination","paginationType","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickableClass","modifierClass","progressbarOppositeClass","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","divider","moveDivider","getPointerPosition","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Parallax","currentOpacity","currentScale","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","momentumDistanceY","onTransitionEnd","out","in","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","touchStart","touchEnd","doubleTap","slideChange","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","background","$pictureEl","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","scrollingElement","isWindow","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","checkInView","loadOnTransitionStart","Controller","LinearSpline","guess","i1","i3","binarySearch","interpolate","getInterpolateFunction","spline","_setTranslate","controlledTranslate","controlled","setControlledTranslate","by","inverse","setControlledTransition","A11y","getRandomNumber","repeat","round","random","makeElFocusable","makeElNotFocusable","addElRole","addElRoleDescription","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","a11y","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","slideRole","ariaLabelMessage","slideLabelMessage","notificationClass","afterInit","paginationUpdate","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","pathArray","part","setHistory","slugify","HashNavigation","onHashChange","newHash","setHash","watchState","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","disableOnInteraction","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","beforeTransitionStart","sliderFirstMove","Fade","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","cubeEffect","wrapperRotate","shadow","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","scale1","scale2","zFactor","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","rotate","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","thumbsParams","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","beforeDestroy","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","enumerize","enums","str1","str2","lowerize","str","rgxMapper","regex","exec","strMapper","windowsVersionMap","ME","XP","Vista","RT","regexes","cpu","EDGE","UAParser","extensions","getResult","_navigator","_ua","_uach","userAgentData","_rgxmap","mergedRegexes","_isSelfNav","_browser","brave","isBrave","_cpu","_device","mobile","standalone","_engine","_os","setUA","CPU","DEVICE","ENGINE","OS","jQuery","Zepto","parser","kindOf","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isNumber","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","Uint8Array","isHTMLForm","isRegExp","reduceDescriptors","reducer","reducedDescriptors","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","callbacks","asap","queueMicrotask","process","utils$1","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","caseless","assignValue","targetKey","stripBOM","charCodeAt","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","forEachEntry","pair","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toCamelCase","p1","p2","toFiniteNumber","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","AxiosError","config","captureStackTrace","fileName","lineNumber","columnNumber","prototype$1","customProps","axiosError","isVisitable","removeBrackets","renderKey","dots","predicates","toFormData","formData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","isFlatArray","exposedHelpers","build","encode$1","charMap","AxiosURLSearchParams","_pairs","encode","buildURL","_encode","serialize","serializeFn","serializedParams","hashmarkIndex","encoder","InterceptorManager$1","fulfilled","rejected","synchronous","runWhen","eject","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","platform$1","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","adapter","transformRequest","headers","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","defaults$1","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","parseHeaders","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","format","normalized","char","formatHeader","targets","asStrings","first","accessor","accessors","defineAccessor","accessorName","buildAccessors","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","progressEventReducer","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","bytes","timestamps","firstSampleTS","tail","chunkLength","startedAt","bytesCount","passed","speedometer","lastArgs","invoke","loaded","lengthComputable","progressBytes","estimated","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","isMSIE","port","cookies","write","expires","domain","secure","cookie","toGMTString","read","decodeURIComponent","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","username","password","xsrfValue","xhrAdapter","XMLHttpRequest","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","subscribe","parseProtocol","send","composeSignals$1","signals","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","pos","readStream","async","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","isFetchSupported","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","knownAdapters","http","xhr","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","flush","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators$1","deprecatedWarnings","formatMessage","opt","ERR_DEPRECATED","spelling","correctSpelling","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","validators","Axios","instanceConfig","configOrUrl","dummy","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","getUri","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","CancelToken$1","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","HttpStatusCode$1","axios","createInstance","defaultConfig","Cancel","promises","spread","formToJSON","getAdapter"],"sourceRoot":""}