vviinn-widgets 2.18.21 → 2.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Campaign-13258569.js +2 -0
- package/dist/cjs/Campaign-13258569.js.map +1 -0
- package/dist/cjs/{Handler-176539c8.js → Handler-de64afa5.js} +31 -43
- package/dist/cjs/Handler-de64afa5.js.map +1 -0
- package/dist/cjs/cropper-handler.cjs.entry.js +7 -4
- package/dist/cjs/cropper-handler.cjs.entry.js.map +1 -0
- package/dist/cjs/{customized-slots-6e56c354.js → customized-slots-aee3f39d.js} +3 -1
- package/dist/cjs/customized-slots-aee3f39d.js.map +1 -0
- package/dist/cjs/highlight-box_22.cjs.entry.js +68 -39
- package/dist/cjs/highlight-box_22.cjs.entry.js.map +1 -0
- package/dist/cjs/{imageSearch.store-98824653.js → imageSearch.store-fbe0600a.js} +3570 -2250
- package/dist/cjs/imageSearch.store-fbe0600a.js.map +1 -0
- package/dist/cjs/{index-cb410762.js → index-610c6c1f.js} +3 -1
- package/dist/cjs/index-610c6c1f.js.map +1 -0
- package/dist/cjs/{index-7f1325a7.js → index-a4becaff.js} +685 -303
- package/dist/cjs/index-a4becaff.js.map +1 -0
- package/dist/cjs/{index-a99edb90.js → index-c4851793.js} +3 -1
- package/dist/cjs/index-c4851793.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +6 -3
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/vviinn-button.cjs.entry.js +5 -3
- package/dist/cjs/vviinn-button.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-carousel_3.cjs.entry.js +124 -39
- package/dist/cjs/vviinn-carousel_3.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-error.cjs.entry.js +4 -2
- package/dist/cjs/vviinn-error.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-preloader.cjs.entry.js +7 -5
- package/dist/cjs/vviinn-preloader.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +15 -6
- package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-vpr-button.cjs.entry.js +13 -12
- package/dist/cjs/vviinn-vpr-button.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-vps-button.cjs.entry.js +28 -25
- package/dist/cjs/vviinn-vps-button.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-vps-widget.cjs.entry.js +46 -31
- package/dist/cjs/vviinn-vps-widget.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-widgets.cjs.js +12 -3
- package/dist/cjs/vviinn-widgets.cjs.js.map +1 -0
- package/dist/collection/Image/error.js +1 -0
- package/dist/collection/Image/error.js.map +1 -0
- package/dist/collection/Image/form.js +1 -0
- package/dist/collection/Image/form.js.map +1 -0
- package/dist/collection/Image/fromFile.js +1 -0
- package/dist/collection/Image/fromFile.js.map +1 -0
- package/dist/collection/Image/imageToB64.js +1 -0
- package/dist/collection/Image/imageToB64.js.map +1 -0
- package/dist/collection/Image/index.js +1 -0
- package/dist/collection/Image/index.js.map +1 -0
- package/dist/collection/Image/renderPromise.js +1 -0
- package/dist/collection/Image/renderPromise.js.map +1 -0
- package/dist/collection/Image/resizeImage.js +1 -0
- package/dist/collection/Image/resizeImage.js.map +1 -0
- package/dist/collection/Image/sizing.js +1 -0
- package/dist/collection/Image/sizing.js.map +1 -0
- package/dist/collection/Image/sizing.spec.js +67 -0
- package/dist/collection/Image/sizing.spec.js.map +1 -0
- package/dist/collection/Image/toFile.js +1 -0
- package/dist/collection/Image/toFile.js.map +1 -0
- package/dist/collection/analytics/GAnalytics.js +1 -0
- package/dist/collection/analytics/GAnalytics.js.map +1 -0
- package/dist/collection/analytics/GeneralAnalytics.js +1 -0
- package/dist/collection/analytics/GeneralAnalytics.js.map +1 -0
- package/dist/collection/analytics/GtagAnalytics.js +1 -0
- package/dist/collection/analytics/GtagAnalytics.js.map +1 -0
- package/dist/collection/analytics/ProductAnalytics.js +1 -0
- package/dist/collection/analytics/ProductAnalytics.js.map +1 -0
- package/dist/collection/campaign/Campaign.js +1 -0
- package/dist/collection/campaign/Campaign.js.map +1 -0
- package/dist/collection/campaign/CampaignService.js +1 -0
- package/dist/collection/campaign/CampaignService.js.map +1 -0
- package/dist/collection/campaign/VCSCampaign.js +1 -0
- package/dist/collection/campaign/VCSCampaign.js.map +1 -0
- package/dist/collection/campaign/VCSCampaignResponse.js +1 -0
- package/dist/collection/campaign/VCSCampaignResponse.js.map +1 -0
- package/dist/collection/campaign/VCSCampaignService.js +1 -0
- package/dist/collection/campaign/VCSCampaignService.js.map +1 -0
- package/dist/collection/campaign/VPRCampaignResponse.js +1 -0
- package/dist/collection/campaign/VPRCampaignResponse.js.map +1 -0
- package/dist/collection/campaign/VPRCampaignService.js +1 -0
- package/dist/collection/campaign/VPRCampaignService.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/customized-slots.js +1 -0
- package/dist/collection/components/customized-slots.js.map +1 -0
- package/dist/collection/components/image-search/image-view/highlight-box/highlight-box.css +2 -16
- package/dist/collection/components/image-search/image-view/highlight-box/highlight-box.js +12 -7
- package/dist/collection/components/image-search/image-view/highlight-box/highlight-box.js.map +1 -0
- package/dist/collection/components/image-search/image-view/image-cropper/cropper-handler/cropper-handler.css +0 -1
- package/dist/collection/components/image-search/image-view/image-cropper/cropper-handler/cropper-handler.js +41 -37
- package/dist/collection/components/image-search/image-view/image-cropper/cropper-handler/cropper-handler.js.map +1 -0
- package/dist/collection/components/image-search/image-view/image-cropper/image-cropper.js +74 -67
- package/dist/collection/components/image-search/image-view/image-cropper/image-cropper.js.map +1 -0
- package/dist/collection/components/image-search/search-filters/search-filters.css +4 -23
- package/dist/collection/components/image-search/search-filters/search-filters.js +98 -91
- package/dist/collection/components/image-search/search-filters/search-filters.js.map +1 -0
- package/dist/collection/components/vviinn-button/vviinn-button.js +35 -31
- package/dist/collection/components/vviinn-button/vviinn-button.js.map +1 -0
- package/dist/collection/components/vviinn-carousel/vviinn-carousel.css +1 -2
- package/dist/collection/components/vviinn-carousel/vviinn-carousel.js +162 -156
- package/dist/collection/components/vviinn-carousel/vviinn-carousel.js.map +1 -0
- package/dist/collection/components/vviinn-error/vviinn-empty-results/vviinn-empty-results.js +13 -14
- package/dist/collection/components/vviinn-error/vviinn-empty-results/vviinn-empty-results.js.map +1 -0
- package/dist/collection/components/vviinn-error/vviinn-error.js +13 -12
- package/dist/collection/components/vviinn-error/vviinn-error.js.map +1 -0
- package/dist/collection/components/vviinn-error/vviinn-server-error/vviinn-server-error.js +36 -30
- package/dist/collection/components/vviinn-error/vviinn-server-error/vviinn-server-error.js.map +1 -0
- package/dist/collection/components/vviinn-error/vviinn-wrong-format/vviinn-wrong-format.js +36 -30
- package/dist/collection/components/vviinn-error/vviinn-wrong-format/vviinn-wrong-format.js.map +1 -0
- package/dist/collection/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.js +130 -121
- package/dist/collection/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.js.map +1 -0
- package/dist/collection/components/vviinn-example-images/vviinn-example-images.js +76 -75
- package/dist/collection/components/vviinn-example-images/vviinn-example-images.js.map +1 -0
- package/dist/collection/components/vviinn-icons/index.js +11 -27
- package/dist/collection/components/vviinn-icons/index.js.map +1 -0
- package/dist/collection/components/vviinn-image-selector/vviinn-image-selector.js +121 -67
- package/dist/collection/components/vviinn-image-selector/vviinn-image-selector.js.map +1 -0
- package/dist/collection/components/vviinn-image-view/vviinn-detected-object/vviinn-detected-object.js +82 -69
- package/dist/collection/components/vviinn-image-view/vviinn-detected-object/vviinn-detected-object.js.map +1 -0
- package/dist/collection/components/vviinn-image-view/vviinn-image-view.css +0 -1
- package/dist/collection/components/vviinn-image-view/vviinn-image-view.js +28 -28
- package/dist/collection/components/vviinn-image-view/vviinn-image-view.js.map +1 -0
- package/dist/collection/components/vviinn-modal/vviinn-modal.css +7 -36
- package/dist/collection/components/vviinn-modal/vviinn-modal.js +116 -93
- package/dist/collection/components/vviinn-modal/vviinn-modal.js.map +1 -0
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-1/vviinn-onboarding-card-1.js +13 -14
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-1/vviinn-onboarding-card-1.js.map +1 -0
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-2/vviinn-onboarding-card-2.js +13 -14
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-2/vviinn-onboarding-card-2.js.map +1 -0
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-3/vviinn-onboarding-card-3.js +13 -14
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-3/vviinn-onboarding-card-3.js.map +1 -0
- package/dist/collection/components/vviinn-onboarding/vviinn-onboarding.js +13 -17
- package/dist/collection/components/vviinn-onboarding/vviinn-onboarding.js.map +1 -0
- package/dist/collection/components/vviinn-overlay/vviinn-overlay.css +1 -12
- package/dist/collection/components/vviinn-overlay/vviinn-overlay.js +13 -9
- package/dist/collection/components/vviinn-overlay/vviinn-overlay.js.map +1 -0
- package/dist/collection/components/vviinn-overlayed-modal/vviinn-overlayed-modal.js +108 -78
- package/dist/collection/components/vviinn-overlayed-modal/vviinn-overlayed-modal.js.map +1 -0
- package/dist/collection/components/vviinn-preloader/vviinn-preloader.css +1 -11
- package/dist/collection/components/vviinn-preloader/vviinn-preloader.js +12 -7
- package/dist/collection/components/vviinn-preloader/vviinn-preloader.js.map +1 -0
- package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.css +0 -1
- package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.js +13 -16
- package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.js.map +1 -0
- package/dist/collection/components/vviinn-product-card/render-helpers.js +7 -14
- package/dist/collection/components/vviinn-product-card/render-helpers.js.map +1 -0
- package/dist/collection/components/vviinn-product-card/stories/args.js +1 -0
- package/dist/collection/components/vviinn-product-card/stories/args.js.map +1 -0
- package/dist/collection/components/vviinn-product-card/stories/decorators.js +1 -0
- package/dist/collection/components/vviinn-product-card/stories/decorators.js.map +1 -0
- package/dist/collection/components/vviinn-product-card/stories/vviinn-product-card.stories.js +1 -0
- package/dist/collection/components/vviinn-product-card/stories/vviinn-product-card.stories.js.map +1 -0
- package/dist/collection/components/vviinn-product-card/vviinn-product-card.js +426 -415
- package/dist/collection/components/vviinn-product-card/vviinn-product-card.js.map +1 -0
- package/dist/collection/components/vviinn-slider/arrow.js +2 -2
- package/dist/collection/components/vviinn-slider/arrow.js.map +1 -0
- package/dist/collection/components/vviinn-slider/vviinn-slide/vviinn-slide.js +13 -9
- package/dist/collection/components/vviinn-slider/vviinn-slide/vviinn-slide.js.map +1 -0
- package/dist/collection/components/vviinn-slider/vviinn-slider.css +0 -1
- package/dist/collection/components/vviinn-slider/vviinn-slider.js +88 -82
- package/dist/collection/components/vviinn-slider/vviinn-slider.js.map +1 -0
- package/dist/collection/components/vviinn-teaser/vviinn-teaser.js +13 -18
- package/dist/collection/components/vviinn-teaser/vviinn-teaser.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.css +12 -64
- package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js +372 -360
- package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-button/stories/args.js +1 -0
- package/dist/collection/components/vviinn-vpr-button/stories/args.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.js +1 -0
- package/dist/collection/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js +449 -444
- package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/args.js +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/args.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/decorators.js +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/decorators.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.js +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-widget/token-helpers.js +1 -0
- package/dist/collection/components/vviinn-vpr-widget/token-helpers.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js +546 -542
- package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js.map +1 -0
- package/dist/collection/components/vviinn-vps-button/stories/vviinn-vps-button.stories.js +3 -0
- package/dist/collection/components/vviinn-vps-button/stories/vviinn-vps-button.stories.js.map +1 -0
- package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +369 -332
- package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js.map +1 -0
- package/dist/collection/components/vviinn-vps-widget/stories/vviinn-vps-widget.stories.js +1 -0
- package/dist/collection/components/vviinn-vps-widget/stories/vviinn-vps-widget.stories.js.map +1 -0
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.css +0 -5
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.e2e.js +27 -0
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.e2e.js.map +1 -0
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +503 -425
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js.map +1 -0
- package/dist/collection/cropper/Cropper.js +1 -0
- package/dist/collection/cropper/Cropper.js.map +1 -0
- package/dist/collection/cropper/Handler.js +1 -0
- package/dist/collection/cropper/Handler.js.map +1 -0
- package/dist/collection/dom/index.js +1 -0
- package/dist/collection/dom/index.js.map +1 -0
- package/dist/collection/error.js +1 -0
- package/dist/collection/error.js.map +1 -0
- package/dist/collection/file/index.js +1 -0
- package/dist/collection/file/index.js.map +1 -0
- package/dist/collection/geometry/Clip.js +1 -0
- package/dist/collection/geometry/Clip.js.map +1 -0
- package/dist/collection/geometry/Clip.spec.js +17 -0
- package/dist/collection/geometry/Clip.spec.js.map +1 -0
- package/dist/collection/geometry/Point.js +1 -0
- package/dist/collection/geometry/Point.js.map +1 -0
- package/dist/collection/geometry/Rectangle.js +1 -0
- package/dist/collection/geometry/Rectangle.js.map +1 -0
- package/dist/collection/geometry/Rectangle.spec.js +67 -0
- package/dist/collection/geometry/Rectangle.spec.js.map +1 -0
- package/dist/collection/geometry/RectangleAlt.js +1 -0
- package/dist/collection/geometry/RectangleAlt.js.map +1 -0
- package/dist/collection/geometry/Sized.js +1 -0
- package/dist/collection/geometry/Sized.js.map +1 -0
- package/dist/collection/geometry/Sized.spec.js +17 -0
- package/dist/collection/geometry/Sized.spec.js.map +1 -0
- package/dist/collection/global.js +1 -0
- package/dist/collection/global.js.map +1 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/interfaces/generated.js +1 -4
- package/dist/collection/interfaces/generated.js.map +1 -0
- package/dist/collection/interfaces/recommendation.js +1 -0
- package/dist/collection/interfaces/recommendation.js.map +1 -0
- package/dist/collection/network/apiClient.js +1 -0
- package/dist/collection/network/apiClient.js.map +1 -0
- package/dist/collection/network/ion/File.js +1 -0
- package/dist/collection/network/ion/File.js.map +1 -0
- package/dist/collection/network/ion/Form.js +1 -0
- package/dist/collection/network/ion/Form.js.map +1 -0
- package/dist/collection/network/ion/Form.spec.js +44 -0
- package/dist/collection/network/ion/Form.spec.js.map +1 -0
- package/dist/collection/network/ion/Link.js +1 -0
- package/dist/collection/network/ion/Link.js.map +1 -0
- package/dist/collection/network/ion/ValueObject.js +1 -0
- package/dist/collection/network/ion/ValueObject.js.map +1 -0
- package/dist/collection/network/request.js +1 -0
- package/dist/collection/network/request.js.map +1 -0
- package/dist/collection/network/utils.js +1 -0
- package/dist/collection/network/utils.js.map +1 -0
- package/dist/collection/openApi/index.js +1 -0
- package/dist/collection/openApi/index.js.map +1 -0
- package/dist/collection/recommendation/events.js +1 -0
- package/dist/collection/recommendation/events.js.map +1 -0
- package/dist/collection/recommendation/recommendation.js +1 -0
- package/dist/collection/recommendation/recommendation.js.map +1 -0
- package/dist/collection/searchSession/searchSession.js +1 -0
- package/dist/collection/searchSession/searchSession.js.map +1 -0
- package/dist/collection/sentry.js +1 -0
- package/dist/collection/sentry.js.map +1 -0
- package/dist/collection/slider/GridMode.js +1 -0
- package/dist/collection/slider/GridMode.js.map +1 -0
- package/dist/collection/store/file-processing.js +1 -0
- package/dist/collection/store/file-processing.js.map +1 -0
- package/dist/collection/store/imageSearch.store.js +1 -0
- package/dist/collection/store/imageSearch.store.js.map +1 -0
- package/dist/collection/store/store.js +1 -0
- package/dist/collection/store/store.js.map +1 -0
- package/dist/collection/store/tracking.store.js +1 -0
- package/dist/collection/store/tracking.store.js.map +1 -0
- package/dist/collection/stories/image-selector.stories.js +1 -0
- package/dist/collection/stories/image-selector.stories.js.map +1 -0
- package/dist/collection/stories/image-view.stories.js +1 -0
- package/dist/collection/stories/image-view.stories.js.map +1 -0
- package/dist/collection/stories/modal.stories.js +1 -0
- package/dist/collection/stories/modal.stories.js.map +1 -0
- package/dist/collection/stories/onboarding.stories.js +1 -0
- package/dist/collection/stories/onboarding.stories.js.map +1 -0
- package/dist/collection/stories/overlay.stories.js +1 -0
- package/dist/collection/stories/overlay.stories.js.map +1 -0
- package/dist/collection/stories/overlayedModal.stories.js +1 -0
- package/dist/collection/stories/overlayedModal.stories.js.map +1 -0
- package/dist/collection/stories/privacy-badge.stories.js +1 -0
- package/dist/collection/stories/privacy-badge.stories.js.map +1 -0
- package/dist/collection/stories/slider.stories.js +1 -0
- package/dist/collection/stories/slider.stories.js.map +1 -0
- package/dist/collection/stories/teaser.stories.js +1 -0
- package/dist/collection/stories/teaser.stories.js.map +1 -0
- package/dist/collection/stories/vps-widget.stories.js +1 -0
- package/dist/collection/stories/vps-widget.stories.js.map +1 -0
- package/dist/collection/stories/vviinn-product.stories.js +1 -0
- package/dist/collection/stories/vviinn-product.stories.js.map +1 -0
- package/dist/collection/tracking/event.js +1 -0
- package/dist/collection/tracking/event.js.map +1 -0
- package/dist/collection/tracking/filter.js +1 -0
- package/dist/collection/tracking/filter.js.map +1 -0
- package/dist/collection/tracking/index.js +1 -0
- package/dist/collection/tracking/index.js.map +1 -0
- package/dist/collection/tracking/models.js +1 -0
- package/dist/collection/tracking/models.js.map +1 -0
- package/dist/collection/tracking/product.js +1 -0
- package/dist/collection/tracking/product.js.map +1 -0
- package/dist/collection/tracking/search.js +1 -0
- package/dist/collection/tracking/search.js.map +1 -0
- package/dist/collection/tracking/widget.js +1 -0
- package/dist/collection/tracking/widget.js.map +1 -0
- package/dist/collection/utils/collections/collectionsUtils.js +1 -0
- package/dist/collection/utils/collections/collectionsUtils.js.map +1 -0
- package/dist/collection/utils/either.js +1 -0
- package/dist/collection/utils/either.js.map +1 -0
- package/dist/collection/utils/enum/enumUtils.js +1 -0
- package/dist/collection/utils/enum/enumUtils.js.map +1 -0
- package/dist/collection/utils/event/Events.js +1 -0
- package/dist/collection/utils/event/Events.js.map +1 -0
- package/dist/collection/utils/number/index.js +1 -0
- package/dist/collection/utils/number/index.js.map +1 -0
- package/dist/collection/utils/option/option.js +1 -0
- package/dist/collection/utils/option/option.js.map +1 -0
- package/dist/collection/utils/semigroup/semigroupDiff.js +1 -0
- package/dist/collection/utils/semigroup/semigroupDiff.js.map +1 -0
- package/dist/collection/utils/token/tokenUtils.js +1 -0
- package/dist/collection/utils/token/tokenUtils.js.map +1 -0
- package/dist/esm/Campaign-90ba7e06.js +2 -0
- package/dist/esm/Campaign-90ba7e06.js.map +1 -0
- package/dist/esm/{Handler-f9b8735c.js → Handler-7bfee84f.js} +30 -43
- package/dist/esm/Handler-7bfee84f.js.map +1 -0
- package/dist/esm/cropper-handler.entry.js +7 -4
- package/dist/esm/cropper-handler.entry.js.map +1 -0
- package/dist/esm/{customized-slots-00afe247.js → customized-slots-b372eaed.js} +3 -1
- package/dist/esm/customized-slots-b372eaed.js.map +1 -0
- package/dist/esm/highlight-box_22.entry.js +68 -39
- package/dist/esm/highlight-box_22.entry.js.map +1 -0
- package/dist/esm/{imageSearch.store-9dde5360.js → imageSearch.store-cccd9b24.js} +3572 -2251
- package/dist/esm/imageSearch.store-cccd9b24.js.map +1 -0
- package/dist/esm/{index-590cb67e.js → index-48ef9564.js} +685 -304
- package/dist/esm/index-48ef9564.js.map +1 -0
- package/dist/esm/{index-b31d86ce.js → index-714e572a.js} +3 -1
- package/dist/esm/index-714e572a.js.map +1 -0
- package/dist/esm/{index-4d5b52ba.js → index-fdc32fbc.js} +3 -1
- package/dist/esm/index-fdc32fbc.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +6 -3
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/vviinn-button.entry.js +5 -3
- package/dist/esm/vviinn-button.entry.js.map +1 -0
- package/dist/esm/vviinn-carousel_3.entry.js +123 -38
- package/dist/esm/vviinn-carousel_3.entry.js.map +1 -0
- package/dist/esm/vviinn-error.entry.js +4 -2
- package/dist/esm/vviinn-error.entry.js.map +1 -0
- package/dist/esm/vviinn-preloader.entry.js +7 -5
- package/dist/esm/vviinn-preloader.entry.js.map +1 -0
- package/dist/esm/vviinn-recommendations-sidebar.entry.js +15 -6
- package/dist/esm/vviinn-recommendations-sidebar.entry.js.map +1 -0
- package/dist/esm/vviinn-vpr-button.entry.js +13 -12
- package/dist/esm/vviinn-vpr-button.entry.js.map +1 -0
- package/dist/esm/vviinn-vps-button.entry.js +28 -25
- package/dist/esm/vviinn-vps-button.entry.js.map +1 -0
- package/dist/esm/vviinn-vps-widget.entry.js +46 -31
- package/dist/esm/vviinn-vps-widget.entry.js.map +1 -0
- package/dist/esm/vviinn-widgets.js +9 -3
- package/dist/esm/vviinn-widgets.js.map +1 -0
- package/dist/loader/index.d.ts +9 -0
- package/dist/loader/package.json +1 -0
- package/dist/types/Image/sizing.d.ts +4 -4
- package/dist/types/campaign/Campaign.d.ts +5 -5
- package/dist/types/campaign/VCSCampaignResponse.d.ts +1 -1
- package/dist/types/components/vviinn-carousel/vviinn-carousel.d.ts +2 -2
- package/dist/types/components/vviinn-image-selector/vviinn-image-selector.d.ts +4 -0
- package/dist/types/components/vviinn-modal/vviinn-modal.d.ts +2 -0
- package/dist/types/components/vviinn-overlayed-modal/vviinn-overlayed-modal.d.ts +2 -0
- package/dist/types/components/vviinn-product-card/render-helpers.d.ts +3 -3
- package/dist/types/components/vviinn-slider/arrow.d.ts +2 -2
- package/dist/types/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.d.ts +2 -2
- package/dist/types/components/vviinn-vps-button/vviinn-vps-button.d.ts +9 -4
- package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +8 -0
- package/dist/types/components.d.ts +154 -54
- package/dist/types/error.d.ts +1 -1
- package/dist/types/geometry/Point.d.ts +1 -1
- package/dist/types/geometry/Rectangle.d.ts +1 -1
- package/dist/types/geometry/Sized.d.ts +1 -1
- package/dist/types/interfaces/generated.d.ts +192 -371
- package/dist/types/network/ion/File.d.ts +2 -2
- package/dist/types/network/ion/Form.d.ts +5 -5
- package/dist/types/network/ion/Link.d.ts +1 -1
- package/dist/types/network/ion/ValueObject.d.ts +4 -4
- package/dist/types/network/utils.d.ts +3 -3
- package/dist/types/recommendation/events.d.ts +5 -5
- package/dist/types/recommendation/recommendation.d.ts +1 -1
- package/dist/types/searchSession/searchSession.d.ts +7 -7
- package/dist/types/slider/GridMode.d.ts +1 -1
- package/dist/types/stencil-public-runtime.d.ts +98 -23
- package/dist/types/store/imageSearch.store.d.ts +1 -1
- package/dist/types/tracking/models.d.ts +2 -2
- package/dist/types/utils/event/Events.d.ts +1 -1
- package/dist/vviinn-widgets/index.esm.js +2 -0
- package/dist/vviinn-widgets/index.esm.js.map +1 -0
- package/dist/vviinn-widgets/p-0b0d59d7.entry.js +2 -0
- package/dist/vviinn-widgets/p-0b0d59d7.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-14373da7.entry.js +2 -0
- package/dist/vviinn-widgets/p-14373da7.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-18fd769b.js +2 -1
- package/dist/vviinn-widgets/p-18fd769b.js.map +1 -0
- package/dist/vviinn-widgets/p-2f7bf983.js +2 -0
- package/dist/vviinn-widgets/p-2f7bf983.js.map +1 -0
- package/dist/vviinn-widgets/p-3abc679c.js +2 -0
- package/dist/vviinn-widgets/p-3abc679c.js.map +1 -0
- package/dist/vviinn-widgets/p-3b99c62d.js +2 -0
- package/dist/vviinn-widgets/p-3b99c62d.js.map +1 -0
- package/dist/vviinn-widgets/p-4325566b.entry.js +2 -0
- package/dist/vviinn-widgets/p-4325566b.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-53eacbe3.js +2 -0
- package/dist/vviinn-widgets/p-53eacbe3.js.map +1 -0
- package/dist/vviinn-widgets/p-645baf22.entry.js +2 -0
- package/dist/vviinn-widgets/p-645baf22.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-a10b9151.entry.js +2 -0
- package/dist/vviinn-widgets/p-a10b9151.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-c012ef97.entry.js +2 -0
- package/dist/vviinn-widgets/p-c012ef97.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-c24caccd.js +2 -0
- package/dist/vviinn-widgets/p-c24caccd.js.map +1 -0
- package/dist/vviinn-widgets/p-d20a9a96.entry.js +2 -0
- package/dist/vviinn-widgets/p-d20a9a96.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-d95d7c38.entry.js +2 -0
- package/dist/vviinn-widgets/p-d95d7c38.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-e5e67a5f.entry.js +2 -0
- package/dist/vviinn-widgets/p-e5e67a5f.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-e6d67de3.entry.js +2 -0
- package/dist/vviinn-widgets/p-e6d67de3.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-fa17e81f.js +3 -0
- package/dist/vviinn-widgets/p-fa17e81f.js.map +1 -0
- package/dist/vviinn-widgets/vviinn-widgets.esm.js +2 -1
- package/dist/vviinn-widgets/vviinn-widgets.esm.js.map +1 -0
- package/package.json +12 -12
- package/www/build/index.esm.js +2 -0
- package/www/build/index.esm.js.map +1 -0
- package/www/build/p-0b0d59d7.entry.js +2 -0
- package/www/build/p-0b0d59d7.entry.js.map +1 -0
- package/www/build/p-14373da7.entry.js +2 -0
- package/www/build/p-14373da7.entry.js.map +1 -0
- package/www/build/p-18fd769b.js +2 -1
- package/www/build/p-18fd769b.js.map +1 -0
- package/www/build/p-2f7bf983.js +2 -0
- package/www/build/p-2f7bf983.js.map +1 -0
- package/www/build/p-3abc679c.js +2 -0
- package/www/build/p-3abc679c.js.map +1 -0
- package/www/build/p-3b99c62d.js +2 -0
- package/www/build/p-3b99c62d.js.map +1 -0
- package/www/build/p-4325566b.entry.js +2 -0
- package/www/build/p-4325566b.entry.js.map +1 -0
- package/www/build/p-53eacbe3.js +2 -0
- package/www/build/p-53eacbe3.js.map +1 -0
- package/www/build/p-645baf22.entry.js +2 -0
- package/www/build/p-645baf22.entry.js.map +1 -0
- package/www/build/p-a10b9151.entry.js +2 -0
- package/www/build/p-a10b9151.entry.js.map +1 -0
- package/www/build/p-a67898be.css +1 -0
- package/www/build/p-ae6e6410.js +2 -0
- package/www/build/p-c012ef97.entry.js +2 -0
- package/www/build/p-c012ef97.entry.js.map +1 -0
- package/www/build/p-c24caccd.js +2 -0
- package/www/build/p-c24caccd.js.map +1 -0
- package/www/build/p-d20a9a96.entry.js +2 -0
- package/www/build/p-d20a9a96.entry.js.map +1 -0
- package/www/build/p-d95d7c38.entry.js +2 -0
- package/www/build/p-d95d7c38.entry.js.map +1 -0
- package/www/build/p-e5e67a5f.entry.js +2 -0
- package/www/build/p-e5e67a5f.entry.js.map +1 -0
- package/www/build/p-e6d67de3.entry.js +2 -0
- package/www/build/p-e6d67de3.entry.js.map +1 -0
- package/www/build/p-fa17e81f.js +3 -0
- package/www/build/p-fa17e81f.js.map +1 -0
- package/www/build/vviinn-widgets.esm.js +2 -1
- package/www/build/vviinn-widgets.esm.js.map +1 -0
- package/www/index.html +1 -1
- package/dist/vviinn-widgets/p-11f61564.js +0 -1
- package/dist/vviinn-widgets/p-12851e97.entry.js +0 -1
- package/dist/vviinn-widgets/p-2f9ee951.js +0 -1
- package/dist/vviinn-widgets/p-339c6838.js +0 -1
- package/dist/vviinn-widgets/p-3b2c91c0.entry.js +0 -1
- package/dist/vviinn-widgets/p-45df9f28.entry.js +0 -1
- package/dist/vviinn-widgets/p-57ed5303.entry.js +0 -1
- package/dist/vviinn-widgets/p-69850e5b.js +0 -1
- package/dist/vviinn-widgets/p-7c2f762a.entry.js +0 -1
- package/dist/vviinn-widgets/p-7c3b7388.entry.js +0 -1
- package/dist/vviinn-widgets/p-85006f41.entry.js +0 -1
- package/dist/vviinn-widgets/p-8a3dd76d.entry.js +0 -1
- package/dist/vviinn-widgets/p-99e58be7.entry.js +0 -1
- package/dist/vviinn-widgets/p-a2b450b6.entry.js +0 -1
- package/dist/vviinn-widgets/p-bcc1ccf0.js +0 -1
- package/dist/vviinn-widgets/p-e6fee8d2.js +0 -1
- package/www/build/p-11f61564.js +0 -1
- package/www/build/p-12851e97.entry.js +0 -1
- package/www/build/p-2f9ee951.js +0 -1
- package/www/build/p-339c6838.js +0 -1
- package/www/build/p-3b2c91c0.entry.js +0 -1
- package/www/build/p-45df9f28.entry.js +0 -1
- package/www/build/p-57ed5303.entry.js +0 -1
- package/www/build/p-69850e5b.js +0 -1
- package/www/build/p-7c2f762a.entry.js +0 -1
- package/www/build/p-7c3b7388.entry.js +0 -1
- package/www/build/p-85006f41.entry.js +0 -1
- package/www/build/p-8a3dd76d.entry.js +0 -1
- package/www/build/p-99e58be7.entry.js +0 -1
- package/www/build/p-9e2c131a.js +0 -125
- package/www/build/p-a2b450b6.entry.js +0 -1
- package/www/build/p-bcc1ccf0.js +0 -1
- package/www/build/p-e0153ae2.css +0 -6
- package/www/build/p-e6fee8d2.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"vviinn-carousel.vviinn-product-card.vviinn-vpr-widget.entry.cjs.js","mappings":"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","names":["h","chunksOf","index","Host","ChevronIcon","pipe","fromNullable","map","getMonoid","first","_.has","tuple","E.fromNullable","E.map","E.getOrElse","campaignTypeNames","O.map","O.match","imageSearchState","state","flow","E.Apply","getApiPath","createInitGetRequest","TE.fromEither","TE.chainW","makeRequest","C.fromString","C.fold","Symbol_observable","createProductViewVprEvent","createProductClickVprEvent","uuidv4","createTrackingApi","createWidgetVprEvent","TE.of","TE.ap","checkEmpryString","TE.flatten","E.fold","Fragment"],"sources":["./src/components/vviinn-carousel/vviinn-carousel.css?tag=vviinn-carousel","./src/components/vviinn-carousel/vviinn-carousel.tsx","./src/analytics/GtagAnalytics.ts","./src/analytics/GAnalytics.ts","./src/analytics/GeneralAnalytics.ts","./node_modules/fp-ts/es6/Apply.js","./src/components/vviinn-product-card/render-helpers.tsx","./src/components/vviinn-product-card/vviinn-product-card.css?tag=vviinn-product-card&encapsulation=shadow","./src/components/vviinn-product-card/vviinn-product-card.tsx","./src/components/vviinn-vpr-widget/token-helpers.ts","./src/network/apiClient.ts","./src/campaign/VPRCampaignService.ts","./src/campaign/VCSCampaignService.ts","./src/campaign/CampaignService.ts","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./src/components/vviinn-vpr-widget/vviinn-vpr-widget.css?tag=vviinn-vpr-widget&encapsulation=shadow","./src/components/vviinn-vpr-widget/vviinn-vpr-vidget.tsx"],"sourcesContent":[":host {\n --vviinn-progressbar-width: 0;\n --vviinn-carousel-item-width: 150px;\n --vviinn-carousel-columns-internal: var(--vviinn-carousel-columns, 4);\n --vviinn-carousel-image-width-system: 140px;\n}\n\n.body {\n display: flex;\n position: relative;\n width: var(--vviinn-carousel-content-width);\n flex-direction: column;\n}\n\n.content-wrapper * {\n box-sizing: border-box;\n}\n\n.content-wrapper {\n overflow-y: hidden;\n overflow-x: auto;\n flex-grow: 1;\n}\n\n.bullets {\n margin-top: 16px;\n display: flex;\n flex-direction: row;\n grid-gap: 24px;\n justify-content: center;\n}\n\n.bullet {\n width: 10px;\n height: 10px;\n background: #e0e0e0;\n border-radius: 50%;\n cursor: pointer;\n}\n\n.bullet.active {\n background: #161616;\n}\n\n.content:not(.show-scrollbar),\n.content.grid {\n scrollbar-color: #fff0 #fff0;\n}\n\n.content:not(.show-scrollbar)::-webkit-scrollbar,\n.content.grid::-webkit-scrollbar {\n opacity: 0;\n}\n\n.content {\n display: flex;\n flex-direction: row;\n grid-gap: 8px;\n scroll-snap-type: x mandatory;\n overflow-y: hidden;\n overflow-x: auto;\n flex-grow: 1;\n padding-bottom: 16px;\n}\n\n.content.left > * {\n scroll-snap-align: start;\n}\n\n.content.right > * {\n scroll-snap-align: end;\n}\n\n:host(.continuity) button {\n border-radius: 2px;\n}\n\n:host(.grid) button {\n border-radius: 50%;\n}\n\nbutton {\n align-items: center;\n background-color: white;\n border: none;\n box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.15);\n cursor: pointer;\n display: grid;\n height: 40px;\n justify-items: center;\n position: absolute;\n top: calc(50% - 20px);\n width: 40px;\n z-index: 1;\n padding: 0;\n margin: 0;\n}\n\nbutton {\n fill: #525252;\n}\n\nbutton:disabled {\n display: none;\n}\n\nbutton.prev svg {\n transform: rotate(180deg);\n margin-left: -5px;\n}\n\n.prev {\n left: 0;\n}\n\n.next {\n right: 0;\n}\n\n.items-group {\n display: grid;\n grid-gap: 16px;\n grid-template-columns: repeat(var(--vviinn-carousel-columns-internal), 1fr);\n min-width: 100%;\n}\n\nvviinn-product-card::part(price-container) {\n text-align: center;\n}\n\n:host(.classic) vviinn-product-card::part(title),\n:host(.classic) vviinn-product-card::part(brand),\n:host(.classic) vviinn-product-card::part(type) {\n text-align: center;\n}\n\n@media (max-width: 480px) {\n :host(.modern) button {\n display: none;\n }\n\n .items-group {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n","import { Component, Host, h, Element, State, Prop } from \"@stencil/core\";\nimport { chunksOf } from \"fp-ts/lib/Array\";\nimport { Recommendation } from \"../../recommendation/recommendation\";\nimport { ChevronIcon } from \"../vviinn-icons\";\nimport { CampaignTypeId } from \"../../campaign/Campaign\";\n\nconst COLUMNS_NUMBER_CSS_VAR = \"--vviinn-carousel-columns-internal\";\nconst CAROUSEL_WIDTH_CSS_VAR = \"--vviinn-carousel-content-width\";\nconst CAROUSEL_IMAGE_WIDTH_CSS_VAR = \"--vviinn-carousel-image-width\";\nconst CONTENT_GROUP_CSS_CLASS = \"items-group\";\n\ntype MoveDirection = \"left\" | \"right\";\nexport type CarouselMode = \"grid\" | \"continuity\";\n\n/**\n * @part carousel-button\n **/\n@Component({\n tag: \"vviinn-carousel\",\n styleUrl: \"vviinn-carousel.css\",\n shadow: false,\n})\nexport class VviinnCarousel {\n @Element() el: HTMLElement;\n\n @State() moveDirection: MoveDirection = \"right\";\n @State() contentGroups: HTMLElement[] = [];\n @State() activeContentGroup: number = 0;\n @State() isRTL: boolean = false;\n\n @Prop() mode: CarouselMode = \"continuity\";\n @Prop() imageWidth: number = 140;\n @Prop() showScroll: boolean = true;\n @Prop() campaignTypeId: CampaignTypeId;\n @Prop() widgetElementId?: string;\n @Prop() gridArrowsDynamic: boolean;\n\n @Prop() recommendations: Recommendation[] = [];\n\n private columns: number = 0;\n private resizeObserver: ResizeObserver = new ResizeObserver(() =>\n this.handleResize()\n );\n\n private mutationObserver = new MutationObserver(() =>\n this.cloneSlottedContent()\n );\n\n private isLastGroup = () =>\n this.activeContentGroup === this.getContentGroups().length - 1 &&\n this.mode === \"grid\";\n\n private isFirstGroup = () =>\n this.activeContentGroup === 0 && this.mode === \"grid\";\n\n componentWillLoad() {\n this.isRTL = document.dir === \"rtl\";\n }\n\n connectedCallback() {\n this.setItemWidth();\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n }\n\n componentDidLoad() {\n this.setWidth();\n this.processScrollbarWidth();\n this.columns = this.getColumnsNumber();\n const slot = this.el.querySelector(\".content\");\n\n this.mutationObserver.observe(slot, { subtree: true, childList: true });\n this.resizeObserver.observe(this.getHostParent());\n }\n\n private getItemWidthFromDocument(): number {\n return parseInt(\n getComputedStyle(document.body).getPropertyValue(\n CAROUSEL_IMAGE_WIDTH_CSS_VAR\n )\n );\n }\n\n private setItemWidth() {\n const widthInDocument = this.getItemWidthFromDocument();\n const itemWidth = isNaN(widthInDocument)\n ? this.imageWidth\n : widthInDocument;\n\n this.el.style.setProperty(CAROUSEL_IMAGE_WIDTH_CSS_VAR, `${itemWidth}px`);\n }\n\n private getContentClassMap() {\n return {\n content: true,\n [this.moveDirection]: true,\n [this.mode]: true,\n \"show-scrollbar\": this.showScroll,\n };\n }\n\n private handleResize() {\n this.setWidth();\n this.processScrollbarWidth();\n this.setItemWidth();\n\n const newColumns = this.getColumnsNumber();\n\n if (newColumns !== this.columns) {\n this.columns = newColumns;\n }\n }\n\n private calculateMoveStep() {\n const contentWidths = this.getContent().map(\n (el) => el.getBoundingClientRect().width\n );\n const sum = contentWidths.reduce((acc, val) => acc + val, 0);\n\n return sum / contentWidths.length;\n }\n\n private getHostParent(): Element {\n const parent = this.el.parentNode as any;\n return parent.host.parentElement;\n }\n\n private setWidth() {\n const parent = this.getHostParent();\n\n if (!parent) return;\n\n const parentStyles = getComputedStyle(parent);\n const parentWidth = parent.getBoundingClientRect().width;\n const width =\n parentWidth -\n (parseInt(parentStyles[\"padding-right\"]) +\n parseInt(parentStyles[\"padding-left\"]));\n\n this.el.style.setProperty(CAROUSEL_WIDTH_CSS_VAR, `${width}px`);\n }\n\n getParent(): HTMLElement {\n const parentNode: any = this.el.parentNode;\n const host = parentNode.host;\n return host.parentElement as HTMLElement;\n }\n\n private cloneSlottedContent() {\n this.setWidth();\n }\n\n private getActiveGroupIndex(): number {\n const contentNodeLeft =\n this.getContentNode()?.getBoundingClientRect()?.left;\n\n if (!contentNodeLeft) return 0;\n\n const groups = this.getContentGroups();\n const groupsPositions = groups.map((g) => g.getBoundingClientRect().left);\n\n const indexedPositions = groupsPositions\n .map((value: number, index: number) => [value, index])\n .filter((x) => x[0] >= 0);\n\n return indexedPositions.length > 0\n ? this.isRTL\n ? indexedPositions[indexedPositions.length - 1][1]\n : indexedPositions[0][1]\n : 0;\n }\n\n private getContentNode(): HTMLElement {\n return this.el.querySelector(\".content\");\n }\n\n private getContent(): HTMLElement[] {\n const children = this.getContentNode().children;\n return Array.from(children).map((c) => c as HTMLElement);\n }\n\n private getColumnsNumber(): number {\n const styleSheet = getComputedStyle(this.el);\n const columnsInCss = styleSheet.getPropertyValue(COLUMNS_NUMBER_CSS_VAR);\n const columnsNumber = parseInt(columnsInCss);\n return columnsNumber && !isNaN(columnsNumber) ? columnsNumber : 4;\n }\n\n private getContentGroups(): HTMLElement[] {\n return Array.from(this.el.querySelectorAll(`.${CONTENT_GROUP_CSS_CLASS}`));\n }\n\n private showNext() {\n this.moveDirection = \"right\";\n const contentContainer = this.getContentNode();\n\n requestAnimationFrame(() => {\n contentContainer.scrollTo({\n top: 0,\n left: contentContainer.scrollLeft + this.calculateMoveStep(),\n behavior: \"smooth\",\n });\n });\n }\n\n private showPrev() {\n this.moveDirection = \"left\";\n const contentContainer = this.getContentNode();\n\n requestAnimationFrame(() => {\n contentContainer.scrollTo({\n top: 0,\n left: contentContainer.scrollLeft - this.calculateMoveStep(),\n behavior: \"smooth\",\n });\n });\n }\n\n private scroll(index: number) {\n const contentContainer = this.getContentNode();\n\n requestAnimationFrame(() => {\n contentContainer.scrollTo({\n top: 0,\n left: this.calculateMoveStep() * index,\n behavior: \"smooth\",\n });\n });\n }\n\n private processScrollbarWidth() {\n const target = this.getContentNode();\n if (!target) return;\n const scrollRatio =\n (target.scrollLeft + target.clientWidth) / target.scrollWidth;\n const scrolledWidth = target.clientWidth * scrollRatio;\n\n this.el.style.setProperty(\n \"--vviinn-progressbar-width\",\n `${scrolledWidth}px`\n );\n\n this.activeContentGroup = this.getActiveGroupIndex();\n }\n\n private showBullets(): boolean {\n return this.mode === \"grid\" && this.showScroll;\n }\n\n private showScrollbar(): boolean {\n return this.mode === \"continuity\" && this.showScroll;\n }\n\n private getClassMap() {\n return {\n [this.mode]: true,\n \"show-scrollbar\": this.showScrollbar(),\n };\n }\n\n private renderRecommendation(\n recommendation: Recommendation,\n rank: number\n ): HTMLVviinnProductCardElement {\n return (\n <vviinn-product-card\n part=\"product-part\"\n productId={recommendation.productId}\n productTitle={recommendation.title}\n deeplink={recommendation.deeplink}\n image={recommendation.image.thumbnail}\n brand={recommendation.brand}\n imageWidth={this.imageWidth}\n imageRatio={1}\n price={recommendation.price.actual}\n salePrice={recommendation.price.sale}\n responsive={this.mode === \"grid\"}\n dimmedBackground={this.mode === \"continuity\"}\n campaignTypeId={this.campaignTypeId}\n index={rank}\n widgetElementId={this.widgetElementId}\n />\n );\n }\n\n private renderRecommendationGroup(elements: HTMLVviinnProductCardElement[]) {\n return (\n <div class={CONTENT_GROUP_CSS_CLASS} part=\"items-group\">\n {...elements}\n </div>\n );\n }\n\n private renderRecommendationGroups(\n elements: HTMLVviinnProductCardElement[][]\n ) {\n return elements.map((el) => this.renderRecommendationGroup(el));\n }\n\n private renderRecommendations() {\n return this.mode === \"grid\"\n ? this.renderGrid()\n : this.renderRecommendationsElements();\n }\n\n private renderRecommendationsElements(): HTMLVviinnProductCardElement[] {\n return this.recommendations.map((r, i) => this.renderRecommendation(r, i));\n }\n\n private renderGrid() {\n const recommendations = this.renderRecommendationsElements();\n const grouppedContent = chunksOf(this.getColumnsNumber())(recommendations);\n\n return this.renderRecommendationGroups(grouppedContent);\n }\n\n private renderBullets() {\n const numberOfBullets = Math.ceil(\n this.recommendations.length / this.getColumnsNumber()\n );\n\n const bulletsArray = Array.from(Array(numberOfBullets).keys());\n\n return bulletsArray.map((index) => (\n <div\n class={{\n bullet: true,\n active: this.activeContentGroup === index,\n }}\n onClick={() => this.scroll(index)}\n />\n ));\n }\n\n render() {\n return (\n <Host class={this.getClassMap()}>\n <div class={{ body: true, ...this.getClassMap() }}>\n <button\n class=\"prev\"\n onClick={() => this.showPrev()}\n part=\"carousel-button\"\n disabled={this.gridArrowsDynamic && this.isFirstGroup()}\n >\n <ChevronIcon />\n </button>\n\n <div\n class={this.getContentClassMap()}\n onScroll={() => this.processScrollbarWidth()}\n >\n {this.renderRecommendations()}\n </div>\n\n <button\n class=\"next\"\n onClick={() => this.showNext()}\n part=\"carousel-button\"\n disabled={this.gridArrowsDynamic && this.isLastGroup()}\n >\n <ChevronIcon />\n </button>\n </div>\n {this.showBullets() && (\n <div class=\"bullets\">{this.renderBullets()}</div>\n )}\n </Host>\n );\n }\n}\n","import { ProductAnalytics } from \"./ProductAnalytics\";\nimport { Interfaces } from \"../interfaces/recommendation\";\n\nexport class GtagAnalytics implements ProductAnalytics {\n sendImpression(product: Interfaces['VisualProductSearch']) {\n gtag('event', 'view_item_list', {\n items: [\n {\n id: product.productId,\n name: product.title,\n brand: product.brand ?? '',\n category: product.productType ?? '',\n list_name: 'VI VPR View',\n price: Math.min(...[product.price.actual, product.price.sale ?? Infinity])\n }\n ]\n });\n\n return undefined;\n }\n\n sendClick(product: Interfaces['VisualProductSearch']) {\n gtag('event', 'select_content', {\n content_type: 'product',\n items: [\n {\n id: product.productId,\n name: product.title,\n brand: product.brand ?? '',\n category: product.productType ?? '',\n list_name: 'VI VPR View',\n price: Math.min(...[product.price.actual, product.price.sale ?? Infinity])\n }\n ]\n });\n\n return undefined;\n }\n}\n","import { ProductAnalytics } from \"./ProductAnalytics\";\nimport { Interfaces } from \"../interfaces/recommendation\";\n\nexport class GAnalytics implements ProductAnalytics {\n constructor() {\n ga('require', 'ec');\n }\n\n convertProduct(product: Interfaces['VisualProductSearch']) {\n return {\n id: product.productId,\n name: product.title,\n brand: product.brand ?? '',\n category: product.productType ?? '',\n list: 'VI VPR View',\n price: Math.min(...[product.price.actual, product.price.sale ?? Infinity])\n } \n }\n\n sendImpression(product: Interfaces['VisualProductSearch']) {\n ga('ec:addImpression', this.convertProduct(product));\n\n return undefined;\n }\n\n sendClick(product: Interfaces['VisualProductSearch']) {\n ga('ec:addProduct', {\n id: product.productId,\n name: product.title,\n brand: product.brand ?? '',\n category: product.productType ?? '',\n price: Math.min(...[product.price.actual, product.price.sale ?? Infinity])\n });\n\n ga('ec:setAction', 'click', {list: 'VI VPR View'});\n\n return undefined;\n }\n}\n","import { pipe } from \"fp-ts/lib/function\";\nimport { fromNullable, map, getMonoid, Option } from \"fp-ts/lib/Option\";\nimport { GtagAnalytics } from \"./GtagAnalytics\";\nimport { GAnalytics } from \"./GAnalytics\";\nimport { ProductAnalytics } from \"./ProductAnalytics\";\nimport { first } from \"fp-ts/lib/Semigroup\";\nimport { Monoid } from \"fp-ts/lib/Monoid\";\n\nconst getGtagAnalytics = () =>\n pipe(\n fromNullable(window.gtag),\n map(() => new GtagAnalytics())\n );\n\nconst getCommonAnalytics = () =>\n pipe(\n fromNullable(window.ga),\n map(() => new GAnalytics())\n );\n\nconst analyticsMonoid: Monoid<Option<ProductAnalytics>> = getMonoid(first());\n\nexport const getAnalyticsModule: Option<ProductAnalytics> = analyticsMonoid.concat(\n getGtagAnalytics(),\n getCommonAnalytics()\n);\n","/**\n * The `Apply` class provides the `ap` which is used to apply a function to an argument under a type constructor.\n *\n * `Apply` can be used to lift functions of two or more arguments to work on values wrapped with the type constructor\n * `f`.\n *\n * Instances must satisfy the following law in addition to the `Functor` laws:\n *\n * 1. Associative composition: `F.ap(F.ap(F.map(fbc, bc => ab => a => bc(ab(a))), fab), fa) <-> F.ap(fbc, F.ap(fab, fa))`\n *\n * Formally, `Apply` represents a strong lax semi-monoidal endofunctor.\n *\n * @example\n * import * as O from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (a: string) => (b: number) => (c: boolean) => a + String(b) + String(c)\n * const fa: O.Option<string> = O.some('s')\n * const fb: O.Option<number> = O.some(1)\n * const fc: O.Option<boolean> = O.some(true)\n *\n * assert.deepStrictEqual(\n * pipe(\n * // lift a function\n * O.some(f),\n * // apply the first argument\n * O.ap(fa),\n * // apply the second argument\n * O.ap(fb),\n * // apply the third argument\n * O.ap(fc)\n * ),\n * O.some('s1true')\n * )\n *\n * @since 2.0.0\n */\nimport { tuple } from './function';\nimport * as _ from './internal';\nexport function ap(F, G) {\n return function (fa) {\n return function (fab) {\n return F.ap(F.map(fab, function (gab) { return function (ga) { return G.ap(gab, ga); }; }), fa);\n };\n };\n}\nexport function apFirst(A) {\n return function (second) { return function (first) {\n return A.ap(A.map(first, function (a) { return function () { return a; }; }), second);\n }; };\n}\nexport function apSecond(A) {\n return function (second) {\n return function (first) {\n return A.ap(A.map(first, function () { return function (b) { return b; }; }), second);\n };\n };\n}\nexport function apS(F) {\n return function (name, fb) {\n return function (fa) {\n return F.ap(F.map(fa, function (a) { return function (b) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n }; }), fb);\n };\n };\n}\nexport function getApplySemigroup(F) {\n return function (S) { return ({\n concat: function (first, second) {\n return F.ap(F.map(first, function (x) { return function (y) { return S.concat(x, y); }; }), second);\n }\n }); };\n}\nfunction curried(f, n, acc) {\n return function (x) {\n var combined = Array(acc.length + 1);\n for (var i = 0; i < acc.length; i++) {\n combined[i] = acc[i];\n }\n combined[acc.length] = x;\n return n === 0 ? f.apply(null, combined) : curried(f, n - 1, combined);\n };\n}\nvar tupleConstructors = {\n 1: function (a) { return [a]; },\n 2: function (a) { return function (b) { return [a, b]; }; },\n 3: function (a) { return function (b) { return function (c) { return [a, b, c]; }; }; },\n 4: function (a) { return function (b) { return function (c) { return function (d) { return [a, b, c, d]; }; }; }; },\n 5: function (a) { return function (b) { return function (c) { return function (d) { return function (e) { return [a, b, c, d, e]; }; }; }; }; }\n};\nfunction getTupleConstructor(len) {\n if (!_.has.call(tupleConstructors, len)) {\n tupleConstructors[len] = curried(tuple, len - 1, []);\n }\n return tupleConstructors[len];\n}\nexport function sequenceT(F) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var len = args.length;\n var f = getTupleConstructor(len);\n var fas = F.map(args[0], f);\n for (var i = 1; i < len; i++) {\n fas = F.ap(fas, args[i]);\n }\n return fas;\n };\n}\nfunction getRecordConstructor(keys) {\n var len = keys.length;\n switch (len) {\n case 1:\n return function (a) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a);\n };\n case 2:\n return function (a) { return function (b) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a);\n }; };\n case 3:\n return function (a) { return function (b) { return function (c) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a);\n }; }; };\n case 4:\n return function (a) { return function (b) { return function (c) { return function (d) {\n var _a;\n return (_a = {},\n _a[keys[0]] = a,\n _a[keys[1]] = b,\n _a[keys[2]] = c,\n _a[keys[3]] = d,\n _a);\n }; }; }; };\n case 5:\n return function (a) { return function (b) { return function (c) { return function (d) { return function (e) {\n var _a;\n return (_a = {},\n _a[keys[0]] = a,\n _a[keys[1]] = b,\n _a[keys[2]] = c,\n _a[keys[3]] = d,\n _a[keys[4]] = e,\n _a);\n }; }; }; }; };\n default:\n return curried(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var r = {};\n for (var i = 0; i < len; i++) {\n r[keys[i]] = args[i];\n }\n return r;\n }, len - 1, []);\n }\n}\nexport function sequenceS(F) {\n return function (r) {\n var keys = Object.keys(r);\n var len = keys.length;\n var f = getRecordConstructor(keys);\n var fr = F.map(r[keys[0]], f);\n for (var i = 1; i < len; i++) {\n fr = F.ap(fr, r[keys[i]]);\n }\n return fr;\n };\n}\n","import { pipe } from \"fp-ts/lib/function\";\nimport * as E from \"fp-ts/lib/Either\";\nimport { FunctionalComponent, h } from \"@stencil/core\";\n\nconst FIT_EXPR = /fit\\/\\d+\\//;\n\nexport const containsFit = (url: string): E.Either<string, string> => {\n return pipe(\n url.match(FIT_EXPR),\n E.fromNullable(url),\n E.map(() => url)\n );\n};\n\nexport const processWidth = (url: string, size: number): string => {\n return pipe(\n containsFit(url),\n E.map((url) => url.replace(FIT_EXPR, `fit/${size}/`)),\n E.getOrElse(() => url)\n );\n};\n\nexport const Linked = (props, child) =>\n props.deeplink ? (\n <a class={props.part} part={props.part} href={props.deeplink}>\n {child}\n </a>\n ) : (\n child\n );\n\ntype PriceElementProps = {\n readonly locale: string;\n readonly price: number;\n readonly prefix: string;\n readonly currency: string;\n readonly priceType?: \"sale\" | \"outdated\" | \"regular\";\n};\n\nconst FormattedPrice: FunctionalComponent<PriceElementProps> = (props) => {\n const locale = props.locale;\n const priceType = props.priceType;\n\n const formattedPrice = new Intl.NumberFormat(locale, {\n minimumFractionDigits: 2,\n }).format(props.price);\n\n const prefixElement = props.prefix ? (\n <span part=\"price-prefix\">{props.prefix + \" \"}</span>\n ) : null;\n\n const currencyElement = props.currency ? (\n <span part=\"currency\">{\" \" + props.currency}</span>\n ) : null;\n\n return (\n <span\n class=\"price-amount\"\n part={`price-amount${priceType ? \"-\" + priceType : \"\"}`}\n >\n {prefixElement}\n {formattedPrice}\n {currencyElement}\n </span>\n );\n};\n\ntype PriceProps = PriceElementProps & {\n salePrice: number;\n};\n\nexport const Price: FunctionalComponent<PriceProps> = (props) => {\n return (\n <span class=\"price-container\" part=\"price-container\">\n {props.salePrice ? (\n [\n <span class=\"price-sale\" part=\"price-sale\">\n <FormattedPrice\n prefix={props.prefix}\n currency={props.currency}\n price={props.salePrice}\n locale={props.locale}\n priceType=\"sale\"\n />\n </span>,\n <span class=\"price-outdated\" part=\"price-outdated\">\n <FormattedPrice\n prefix={props.prefix}\n currency={props.currency}\n price={props.price}\n locale={props.locale}\n priceType=\"outdated\"\n />\n </span>,\n ]\n ) : (\n <span class=\"price-regular\" part=\"price-regular\">\n <FormattedPrice\n prefix={props.prefix}\n currency={props.currency}\n price={props.price}\n locale={props.locale}\n priceType=\"regular\"\n />\n </span>\n )}\n </span>\n );\n};\n\nexport type ImageProps = {\n width: number;\n height: number;\n title: string;\n src: string;\n lazy: boolean;\n};\n\nexport const Image = (props: ImageProps, onLoadEnd = () => undefined) => (\n <picture>\n <img\n loading={props.lazy ? \"lazy\" : \"eager\"}\n part=\"image\"\n class=\"image\"\n width={props.width}\n height={props.height}\n src={processWidth(props.src, props.width)}\n alt={props.title}\n onLoad={onLoadEnd}\n />\n </picture>\n);\n\nexport const ResponsiveImage = (\n props: ImageProps,\n onLoadEnd = () => undefined\n) => (\n <picture>\n <img\n loading={props.lazy ? \"lazy\" : \"eager\"}\n part=\"image\"\n class=\"image responsive\"\n src={processWidth(props.src, props.width)}\n alt={props.title}\n onLoad={onLoadEnd}\n />\n </picture>\n);\n",":host {\n align-items: center;\n display: flex;\n flex-direction: column;\n gap: 8px;\n height: 100%;\n}\n\n.price-container {\n display: flex;\n flex-direction: column;\n}\n\n.price-sale,\n.price-regular {\n font-style: normal;\n font-weight: normal;\n font-size: 16px;\n line-height: 24px;\n color: #161616;\n}\n\n.price-outdated {\n font-style: normal;\n font-weight: normal;\n font-size: 16px;\n line-height: 24px;\n color: #757575;\n text-decoration: line-through;\n}\n\n.product-type {\n word-wrap: anywhere;\n}\n\n.image {\n display: grid;\n align-content: center;\n object-position: 50% 50%;\n object-fit: contain;\n text-align: center;\n box-sizing: border-box;\n}\n\nimg.responsive {\n width: 100%;\n height: auto;\n aspect-ratio: 1;\n}\n\n.brand,\n.type {\n display: none;\n}\n\n.title {\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n color: #161616;\n display: -webkit-box;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 8px;\n overflow: hidden;\n}\n\n.deeplink {\n text-decoration: none;\n}\n\n.image-link {\n display: contents;\n}\n\npicture {\n position: relative;\n width: 100%;\n}\n\n:host(.dimmed) picture::before {\n content: \"\";\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n background: #f7f7f7;\n display: block;\n top: 0;\n left: 0;\n position: absolute;\n mix-blend-mode: multiply;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n} from \"@stencil/core\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport { getAnalyticsModule } from \"../../analytics/GeneralAnalytics\";\nimport { state } from \"../../store/store\";\nimport * as O from \"fp-ts/lib/Option\";\nimport { imageSearchState } from \"../../store/imageSearch.store\";\nimport { Recommendation } from \"../../recommendation/recommendation\";\nimport {\n ImageProps,\n Linked,\n Price,\n ResponsiveImage,\n Image,\n} from \"./render-helpers\";\nimport { ProductCardEventData } from \"../../recommendation/events\";\n\nimport styles from \"./vviinn-product-card.css\";\nimport {\n CampaignTypeId,\n WidgetType,\n campaignTypeNames,\n} from \"../../campaign/Campaign\";\n\n/**\n * @part brand - product brand.\n * @part currency - currency sign. Renders after price-amount.\n * @part deeplink - anchor element for title. Rendered only if \"deeplink\" property filled.\n * @part image - product image.\n * @part image-link - anchor element for image. Rendered only if \"deeplink\" property filled.\n * @part price-amount-sale - numeric part of price.\n * @part price-amount-outdated - numeric part of price.\n * @part price-amount-regular - numeric part of price.\n * @part price-container - block contains all prices.\n * @part price-outdated - renders inside price-container when \"sale-price\" property filled. Contains regular price.\n * @part price-regular - renders inside price-container when \"sale-price\" property is empty.\n * @part price-sale - renders inside price-container when \"sale-price\" property filled. Contains sale price.\n * @part price-prefix - renders before price-amount. Can be set with \"price-prefix\" property or inherited from parent component.\n * @part title - product title\n */\n@Component({\n tag: \"vviinn-product-card\",\n shadow: true,\n styles,\n})\nexport class VviinnProductCard {\n @Element() el: HTMLElement;\n @Prop() brand: string | undefined;\n @Prop() currency: string | undefined = undefined;\n @Prop() deeplink: string | undefined;\n @Prop() image: string | undefined;\n @Prop() imageRatio: number = 1;\n @Prop() imageWidth: number = 200;\n @Prop() locale: string | undefined = undefined;\n @Prop() price: number | undefined;\n @Prop() pricePrefix: string | undefined = undefined;\n @Prop() productId: string;\n @Prop() productTitle: string;\n @Prop() productType: string | undefined;\n @Prop() salePrice: number | undefined;\n @Prop() responsive: boolean = false;\n @Prop() campaignTypeId: CampaignTypeId;\n @Prop() dimmedBackground: boolean = false;\n /** @internal */\n @Prop() widgetElementId?: string;\n /** @internal */\n @Prop() buttonElementId?: string;\n\n /** @internal */\n @Prop() index: number = 0;\n\n @State() imageLoaded: boolean = false;\n\n /** Event fires ones when recommendation rendered on page */\n @Event({ bubbles: true })\n vviinnProductLoad: EventEmitter<ProductCardEventData>;\n /** Event fires ones when recommendation appears on the viewport */\n @Event({ bubbles: true })\n vviinnProductView: EventEmitter<ProductCardEventData>;\n /** Event fires ones when user click on deeplink */\n @Event({ bubbles: true })\n vviinnProductClick: EventEmitter<ProductCardEventData>;\n\n private productData: ProductCardEventData | null = null;\n\n private intersectionObserver = new IntersectionObserver(\n this.intersectionCallback.bind(this),\n { threshold: 1.0 }\n );\n\n connectedCallback() {\n this.productData = this.getProductData();\n }\n\n private getWidgetType() {\n return this.campaignTypeId === \"VPR\" || this.campaignTypeId === \"VCS\"\n ? (\"VPR\" as WidgetType)\n : (\"VPS\" as WidgetType);\n }\n\n private getProductData() {\n return {\n productId: this.productId,\n productRank: this.index,\n productName: this.productTitle,\n widgetType: this.getWidgetType(),\n campaignTypeId: this.campaignTypeId,\n campaignTypeName: campaignTypeNames[this.campaignTypeId],\n widgetId: this.buttonElementId ?? this.widgetElementId,\n };\n }\n\n private intersectionCallback(data: IntersectionObserverEntry[]) {\n if (data.some((entry) => entry.isIntersecting)) {\n pipe(\n getAnalyticsModule,\n O.map((analytics) => analytics.sendImpression(this.getProduct()))\n );\n\n this.vviinnProductView.emit(this.productData);\n this.intersectionObserver.disconnect();\n }\n }\n\n componentDidLoad() {\n this.vviinnProductLoad.emit(this.productData);\n this.intersectionObserver.observe(this.el);\n\n const links = this.el.shadowRoot.querySelectorAll(\"a\");\n\n links.forEach((link) =>\n link.addEventListener(\"click\", (event) => {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.vviinnProductClick.emit(this.productData);\n\n pipe(\n getAnalyticsModule,\n O.match(\n () => null,\n (analytics) => analytics.sendClick(this.getProduct())\n )\n );\n })\n );\n }\n\n private getProduct(): Recommendation {\n return imageSearchState.results.find((r) => r.productId === this.productId);\n }\n\n private renderImage() {\n const props: ImageProps = {\n width: this.imageWidth,\n height: this.imageWidth * this.imageRatio,\n src: this.image,\n title: this.productTitle,\n lazy: false,\n };\n\n return this.responsive ? ResponsiveImage(props) : Image(props);\n }\n\n render() {\n return (\n <Host\n part=\"product-card\"\n class={{ dimmed: this.dimmedBackground }}\n exportparts=\"brand, currency, deeplink, image, image-link, price-amount-sale, price-amount-outdated, price-amount-regular, price-container, price-outdated, price-regular, price-sale, price-prefix, title\"\n >\n <Linked deeplink={this.deeplink} part=\"image-link\">\n {this.renderImage()}\n </Linked>\n <Linked deeplink={this.deeplink} part=\"deeplink\">\n <span class=\"title\" part=\"title\">\n {this.productTitle}\n </span>\n </Linked>\n <span class=\"brand\" part=\"brand\">\n {this.brand}\n </span>\n <span class=\"type\" part=\"type\">\n {this.productType}\n </span>\n <Price\n prefix={this.pricePrefix ?? state.pricePrefix}\n currency={this.currency ?? state.currencySign}\n price={this.price}\n salePrice={this.salePrice}\n locale={this.locale ?? state.locale}\n />\n </Host>\n );\n }\n}\n","import { flow } from \"fp-ts/lib/function\";\n\nconst createBearerString = (x: string): string => `Bearer ${x}`;\n\nconst createAuthedHeader = (x: string): Headers =>\n new Headers({\n Authorization: x,\n });\n\nconst createFetchAuthOptions = (x: Headers): RequestInit => {\n return {\n headers: x,\n };\n};\n\nexport const createBearAuthedHeader = flow(\n createBearerString,\n createAuthedHeader,\n createFetchAuthOptions\n);\n","import * as E from \"fp-ts/Either\";\nimport * as TE from \"fp-ts/TaskEither\";\nimport { pipe } from \"fp-ts/function\";\nimport { sequenceT } from \"fp-ts/Apply\";\nimport {\n createInitGetRequest,\n createInitPostRequest,\n getApiPath,\n} from \"./utils\";\nimport { BasicError } from \"../error\";\nimport { makeRequest } from \"./request\";\n\nconst sequenceToEither = sequenceT(E.Apply);\n\nexport const apiGet = <T>(\n path: string,\n data: RequestInit = {}\n): TE.TaskEither<BasicError<Response | string>, T> =>\n pipe(\n sequenceToEither(getApiPath(), createInitGetRequest),\n TE.fromEither,\n TE.chainW(makeRequest<T>(path, data))\n );\n\nexport const apiPost = <T>(\n path: string,\n data: RequestInit = {}\n): TE.TaskEither<BasicError<Response | string>, T> =>\n pipe(\n sequenceToEither(getApiPath(), createInitPostRequest),\n TE.fromEither,\n TE.chainW(makeRequest<T>(path, data))\n );\n","import { apiGet } from \"../network/apiClient\";\nimport { VPRCampaignResponse } from \"./VPRCampaignResponse\";\nimport * as O from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/lib/function\";\n\nexport const getVPRRecommendations =\n (productId: string) =>\n (color: string) =>\n (campaigns: O.Option<string>) =>\n (options: RequestInit) => {\n const url = pipe(\n campaigns,\n O.map(encodeURIComponent),\n O.match(\n () =>\n `product/${productId}/similar-products${\n color ? `?color=${color}` : \"\"\n }`,\n (encodedCampaignsIds) =>\n `product/${productId}/similar-products?campaigns=${encodedCampaignsIds}${\n color ? `&color=${color}` : \"\"\n }`\n )\n );\n\n return apiGet<VPRCampaignResponse>(url, options);\n };\n","import { apiGet } from \"../network/apiClient\";\nimport { VCSCampaignResponse } from \"./VCSCampaignResponse\";\nimport * as O from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/lib/function\";\n\nexport const getVCSRecommendations =\n (productId: string) =>\n (color: string) =>\n (campaigns: O.Option<string>) =>\n (options: RequestInit) => {\n const url = pipe(\n campaigns,\n O.map(encodeURIComponent),\n O.match(\n () =>\n `product/${productId}/cross-selling-products${\n color ? `?color=${color}` : \"\"\n }`,\n (encodedCampaignsIds) =>\n `product/${productId}/cross-selling-products?campaigns=${encodedCampaignsIds}${\n color ? `&color=${color}` : \"\"\n }`\n )\n );\n return apiGet<VCSCampaignResponse>(url, options);\n };\n","import * as C from \"./Campaign\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport { getVPRRecommendations } from \"./VPRCampaignService\";\nimport { getVCSRecommendations } from \"./VCSCampaignService\";\n\nexport const getRecommendationsService = (campaignType: C.CampaignName) =>\n pipe(\n C.fromString(campaignType),\n C.fold(\n () => getVPRRecommendations,\n () => getVCSRecommendations\n )\n );\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","export const timeoutProvider = {\n setTimeout(handler, timeout, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nconst _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nclass ConsumerObserver {\n constructor(partialObserver) {\n this.partialObserver = partialObserver;\n }\n next(value) {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n error(err) {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n }\n complete() {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.currentObservers = null;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n//# sourceMappingURL=Subject.js.map",":host {\n /**\n * @prop --vviinn-carousel-columns: control number of items in grid mode\n */\n\n display: grid;\n grid-gap: 1rem;\n width: 100%;\n}\n\n:host(:not(.loaded)) {\n position: absolute;\n visibility: hidden;\n}\n\n:host(.grid) vviinn-product-card::part(image) {\n border: 1px solid #dddddd;\n width: 100%;\n}\n\nh2 {\n margin: 0;\n}\n\nvviinn-product-card::part(price-container) {\n align-self: flex-start;\n text-align: left;\n display: flex;\n}\n\n.results {\n display: grid;\n grid-gap: 1rem;\n}\n\n.no-result-text {\n font-size: 20px;\n}\n\n.visually-hidden {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n height: 0;\n width: 0;\n}\n\nh2 {\n margin: 0;\n}\n\n:host(.grid) h2 {\n justify-content: center;\n}\n\n:host(.grid) vviinn-product-card::part(image) {\n min-width: 100%;\n}\n\n:host(.grid) vviinn-product-card::part(image-link) {\n width: 100%;\n}\n\n:host(.grid) vviinn-product-card::part(title),\n:host(.grid) vviinn-product-card::part(brand),\n:host(.grid) vviinn-product-card::part(type) {\n text-align: center;\n}\n\n:host(.grid) vviinn-product-card::part(price-container) {\n align-self: center;\n}\n\n:host(.continuity) vviinn-product-card::part(title),\n:host(.continuity) vviinn-product-card::part(brand),\n:host(.continuity) vviinn-product-card::part(type),\n:host(.continuity) vviinn-product-card::part(deeplink) {\n text-align: left;\n max-width: unset;\n align-self: start;\n}\n","import {\n Component,\n ComponentInterface,\n Host,\n h,\n Prop,\n State,\n Element,\n Watch,\n Event,\n EventEmitter,\n Listen,\n Fragment,\n} from \"@stencil/core\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport * as TE from \"fp-ts/lib/TaskEither\";\nimport * as E from \"fp-ts/lib/Either\";\nimport { createBearAuthedHeader } from \"./token-helpers\";\nimport { state } from \"../../store/store\";\nimport { CampaignName, campaignTypeNames } from \"../../campaign/Campaign\";\nimport { getRecommendationsService } from \"../../campaign/CampaignService\";\nimport { imageSearchState } from \"../../store/imageSearch.store\";\nimport { CarouselMode } from \"../vviinn-carousel/vviinn-carousel\";\nimport { Recommendation } from \"../../recommendation/recommendation\";\nimport { Subject } from \"rxjs\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport {\n DefaultApi,\n EventConfirmation,\n ProductClickEvent,\n ProductViewEvent,\n WidgetEvent,\n} from \"vviinn-tracking-client-ts\";\nimport { createTrackingApi } from \"../../openApi\";\nimport { ProductCardEvent, BasicEventData } from \"../../recommendation/events\";\nimport {\n createProductClickVprEvent,\n createProductViewVprEvent,\n createWidgetVprEvent,\n} from \"../../tracking\";\nimport { checkEmpryString } from \"../../utils/option/option\";\n\n/**\n * @part product-card - product card itself\n * @part title - title inside product card\n * @part brand - brand inside product card\n * @part currency - brand inside product card\n * @part image - product card image\n * @part image-link - anchor element around product image\n * @part deeplink - anchor element around product title\n * @part price-amount-sale - numeric part of price.\n * @part price-amount-outdated - numeric part of price.\n * @part price-amount-regular - numeric part of price.\n * @part price-container - block of prices\n * @part price-outdated - block for outdated price. rendered when product contains sale price\n * @part price-regular - block for price if no sale price presented\n * @part price-sale - block for sale price. rendered only if sale price presented\n * @part price-prefix - block rendered before each price element (for ex. \"from\")\n * @part carousel-button\n */\n@Component({\n tag: \"vviinn-vpr-widget\",\n styleUrl: \"vviinn-vpr-widget.css\",\n shadow: true,\n})\nexport class VviinnVprWidget implements ComponentInterface {\n @Element() el: HTMLElement;\n /** Title for recommendations widget */\n @Prop() blockTitle: string = \"Recommended products\";\n /** Ratio of each recommended product image */\n @Prop() imageRatio: number = 1;\n /** Width of each recommended product image */\n @Prop() imageWidth: number = 300;\n /** Id of product you need recommendations for */\n @Prop() productId: string;\n /** vviinn customer token */\n @Prop() token: string;\n /** Currency sign will shown after price */\n @Prop() currencySign: string = \"€\";\n /** prefix will shown before price */\n @Prop() pricePrefix: string;\n /** Use slider or grid view */\n @Prop() mode: CarouselMode = \"continuity\";\n /** Campaign type */\n @Prop() campaignType: CampaignName = \"VPR\";\n /** Locale for currency formatting */\n @Prop() locale: string = \"de-DE\";\n /** comma-separated list of campaign-ids */\n @Prop() campaigns: string = \"\";\n /** Color accepts any hexcode string */\n @Prop() color: string;\n /** Hiding disabled arrows in the carousel if true */\n @Prop() gridArrowsDynamic: boolean = false;\n /** This message is displayed when no results */\n @Prop() noResultText?: string;\n /** Showing message (when true) or hiding the whole widget, when no results */\n @Prop() noResultShow?: boolean = true;\n /** @internal */\n @Prop() apiPath: string | undefined = \"https://api.vviinn.com\";\n /** @internal */\n @Prop() useCarousel: boolean = true;\n\n @Prop() showScroll = true;\n @Prop() cssUrl: string | null = null;\n\n /** @internal */\n @Prop() buttonElementId?: string;\n\n @State() recommendations: Recommendation[] = [];\n @State() trackingDeactivated: boolean = false;\n @State() hasErrorOnLoad: boolean = false;\n\n @Event({ bubbles: true })\n vviinnWidgetLoad: EventEmitter<BasicEventData>;\n\n // List to show in the Storybook:\n @Event() vviinnProductClick: EventEmitter;\n @Event() vviinnProductView: EventEmitter;\n @Event() vviinnProductLoad: EventEmitter;\n @Event() vviinnNoResult: EventEmitter;\n\n /** @internal */\n @Event() vviinnRecommendationsLoaded: EventEmitter;\n\n private productIds: string[];\n private productImageLoadedSubject = new Subject();\n private id?: string;\n\n private getEventData(): BasicEventData {\n return {\n widgetType: \"VPR\",\n campaignTypeId: this.campaignType,\n campaignTypeName: campaignTypeNames[this.campaignType],\n widgetId: this.id,\n };\n }\n\n trackingApi: DefaultApi;\n uiSessionId: string;\n\n setTrackingDeactivated = (result: EventConfirmation) => {\n if (result.status === \"rejected\") {\n this.trackingDeactivated = true;\n }\n };\n\n @Watch(\"productId\")\n handleProductIdChange() {\n this.getRecommendations();\n }\n\n @Watch(\"campaignType\")\n handleCampaignTypeChange() {\n this.getRecommendations();\n }\n\n @Watch(\"campaigns\")\n handleCampaignsChange() {\n this.getRecommendations();\n }\n\n @Watch(\"apiPath\")\n handleApiPathChange(newPath: string) {\n state.apiPath = newPath;\n this.getRecommendations();\n }\n\n @Listen(\"vviinnProductLoad\")\n handleProductLoading({ detail }: ProductCardEvent) {\n this.productImageLoadedSubject.next(detail.productId);\n }\n\n @Listen(\"vviinnProductView\")\n trackProductView({ detail }: ProductCardEvent) {\n if (this.trackingDeactivated) return;\n const {\n productRank,\n productId,\n productName,\n widgetType,\n widgetId,\n campaignTypeId,\n campaignTypeName,\n ...rest\n } = detail;\n\n const productViewEvent: ProductViewEvent = createProductViewVprEvent({\n session_id: this.uiSessionId,\n rank: productRank,\n product: productId,\n ...rest,\n });\n this.trackingApi\n .trackEvent(productViewEvent)\n .then(this.setTrackingDeactivated);\n }\n\n @Listen(\"vviinnProductClick\")\n async trackProductClick({ detail }: ProductCardEvent) {\n const {\n productRank,\n productId,\n productName,\n widgetType,\n widgetId,\n campaignTypeId,\n campaignTypeName,\n ...rest\n } = detail;\n\n const productClickEvent: ProductClickEvent = createProductClickVprEvent({\n session_id: this.uiSessionId,\n rank: productRank,\n product: productId,\n ...rest,\n });\n if (!this.trackingDeactivated) {\n await this.trackingApi\n .trackEvent(productClickEvent)\n .then(this.setTrackingDeactivated);\n }\n\n const product = this.recommendations.find(\n (r) => r.productId === detail.productId\n );\n if (!product || !product.deeplink) return;\n window.location.href = product.deeplink;\n }\n\n connectedCallback() {\n state.apiPath = this.apiPath;\n state.currencySign = this.currencySign;\n state.locale = this.locale;\n this.id = this.buttonElementId ?? this.el.id;\n this.uiSessionId = uuidv4();\n this.trackingApi = createTrackingApi(this.apiPath, this.token);\n\n if (this.trackingDeactivated) return;\n\n const widgetOpenEvent: WidgetEvent = createWidgetVprEvent({\n action: \"open\",\n session_id: this.uiSessionId,\n });\n this.trackingApi\n .trackEvent(widgetOpenEvent)\n .then(this.setTrackingDeactivated);\n }\n\n disconnectedCallback() {\n if (this.trackingDeactivated) return;\n\n const widgetCloseEvent: WidgetEvent = createWidgetVprEvent({\n action: \"close\",\n session_id: this.uiSessionId,\n });\n this.trackingApi\n .trackEvent(widgetCloseEvent)\n .then(this.setTrackingDeactivated);\n }\n\n async componentWillLoad() {\n state.pricePrefix = this.pricePrefix;\n state.currencySign = this.currencySign;\n\n this.vviinnWidgetLoad.emit(this.getEventData());\n this.getRecommendations();\n }\n\n private async getRecommendations() {\n if (this.productId === undefined || this.token === undefined) return;\n const campaignType =\n this.campaignType.length > 0 ? this.campaignType : \"VPR\";\n const headers = createBearAuthedHeader(this.token);\n const request = pipe(\n TE.of(getRecommendationsService(campaignType)),\n TE.ap(TE.of(this.productId)),\n TE.ap(TE.of(this.color)),\n TE.ap(TE.of(checkEmpryString(this.campaigns))),\n TE.ap(TE.of(headers)),\n TE.flatten\n );\n\n const runRequest = await request();\n\n pipe(\n runRequest,\n E.fold(\n (error) => {\n this.handleError(error);\n this.vviinnNoResult.emit(this.getEventData());\n this.vviinnRecommendationsLoaded.emit();\n },\n (data) => this.handleRecommendationsSuccess(data)\n )\n );\n }\n\n private handleError(_: unknown): any {\n this.hasErrorOnLoad = true;\n }\n\n private handleRecommendationsSuccess(data: any) {\n this.recommendations = data?.extended ?? data;\n imageSearchState.results = this.recommendations;\n\n this.productIds = this.recommendations.map((r) => r.productId);\n this.productImageLoadedSubject.subscribe((id) => {\n this.productIds = this.productIds.filter((x) => x !== id);\n\n if (this.productIds.length === 0) {\n this.vviinnRecommendationsLoaded.emit();\n }\n });\n }\n\n private isExternalCSS(): boolean {\n return this.cssUrl && this.cssUrl.length > 0;\n }\n\n private renderExternalCSS() {\n return this.isExternalCSS() ? (\n <link href={this.cssUrl} rel=\"stylesheet\" />\n ) : (\n \"\"\n );\n }\n\n render() {\n if (this.recommendations.length === 0 && this.noResultShow === false)\n return null;\n\n return (\n <Host\n class={{\n loaded: true,\n empty: this.recommendations.length == 0,\n [this.mode]: true,\n }}\n aria-hidden=\"false\"\n >\n <Fragment>\n {this.renderExternalCSS()}\n <style>{state.fallbackStyles}</style>\n <h2 part=\"recommendations-title\">{this.blockTitle}</h2>\n {this.recommendations.length > 0 &&\n (this.useCarousel ? this.renderCarousel() : this.renderResults())}\n\n {this.recommendations.length === 0 && this.hasErrorOnLoad && (\n <p class=\"no-result-text\">{`${\n this?.noResultText ?? \"No results! Please, try again later.\"\n }`}</p>\n )}\n </Fragment>\n </Host>\n );\n }\n\n private renderRecommendation(\n recommendation: Recommendation,\n index: number\n ): HTMLVviinnProductCardElement {\n return (\n <vviinn-product-card\n part=\"product-part\"\n productId={recommendation.productId}\n productTitle={recommendation.title}\n deeplink={recommendation.deeplink}\n image={recommendation.image.thumbnail}\n brand={recommendation.brand}\n imageWidth={this.imageWidth}\n imageRatio={1}\n price={recommendation.price.actual}\n salePrice={recommendation.price.sale}\n responsive={this.mode === \"grid\"}\n dimmedBackground={this.useDimmedBackgroundInCard()}\n campaignTypeId={this.campaignType}\n index={index}\n widgetElementId={this.id}\n />\n );\n }\n\n private useDimmedBackgroundInCard(): boolean {\n return this.mode === \"continuity\" || !this.useCarousel;\n }\n\n private renderResults() {\n return (\n <div class=\"recommendations-grid\" part=\"recommendations-grid\">\n {this.recommendations.map((r, i) => this.renderRecommendation(r, i))}\n </div>\n );\n }\n\n private renderCarousel(): HTMLVviinnCarouselElement {\n return (\n <vviinn-carousel\n mode={this.mode}\n campaignTypeId={this.campaignType}\n imageWidth={this.imageWidth}\n showScroll={this.showScroll}\n recommendations={this.recommendations}\n widgetElementId={this.id}\n gridArrowsDynamic={this.gridArrowsDynamic}\n ></vviinn-carousel>\n );\n }\n}\n"],"version":3}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-a4becaff.js');
|
|
6
6
|
|
|
7
7
|
const vviinnErrorCss = ":host{background:#F4F4F4;border-radius:8px;display:grid;grid-gap:20px;padding:24px;text-align:center}::slotted(svg){display:grid;align-self:center}::slotted(h4){margin:unset;font-weight:600;font-size:18px;line-height:24px}::slotted(span){font-size:14px;line-height:20px}::slotted(button){-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--color-primary, var(--color-primary-system));font-weight:600;font-size:16px;line-height:20px;cursor:pointer}";
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
const VviinnError = class {
|
|
10
10
|
constructor(hostRef) {
|
|
11
11
|
index.registerInstance(this, hostRef);
|
|
12
12
|
}
|
|
@@ -17,3 +17,5 @@ let VviinnError = class {
|
|
|
17
17
|
VviinnError.style = vviinnErrorCss;
|
|
18
18
|
|
|
19
19
|
exports.vviinn_error = VviinnError;
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=vviinn-error.cjs.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"vviinn-error.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,cAAc,GAAG,yfAAyf;;MCOngB,WAAW;;;;EACtB,MAAM;IACJ,QACEA,QAACC,UAAI,QACHD,kBAAM,IAAI,EAAC,MAAM,GAAQ,EACzBA,kBAAM,IAAI,EAAC,OAAO,GAAQ,EAC1BA,kBAAM,IAAI,EAAC,MAAM,GAAQ,EACzBA,kBAAM,IAAI,EAAC,QAAQ,GAAQ,CACtB,EACP;GACH;;;;;;","names":["h","Host"],"sources":["./src/components/vviinn-error/vviinn-error.css?tag=vviinn-error&encapsulation=shadow","./src/components/vviinn-error/vviinn-error.tsx"],"sourcesContent":[":host {\n background: #F4F4F4;\n border-radius: 8px;\n display: grid;\n grid-gap: 20px;\n padding: 24px;\n text-align: center;\n}\n\n::slotted(svg) {\n display: grid;\n align-self: center;\n}\n\n::slotted(h4) {\n margin: unset;\n font-weight: 600;\n font-size: 18px;\n line-height: 24px;\n}\n\n::slotted(span) {\n font-size: 14px;\n line-height: 20px;\n}\n\n::slotted(button) {\n appearance: none;\n border: none;\n background: transparent;\n color: var(--color-primary, var(--color-primary-system));\n font-weight: 600;\n font-size: 16px;\n line-height: 20px;\n cursor: pointer;\n}\n","import { Component, Host, h } from \"@stencil/core\";\n\n@Component({\n tag: \"vviinn-error\",\n styleUrl: \"vviinn-error.css\",\n shadow: true,\n})\nexport class VviinnError {\n render() {\n return (\n <Host>\n <slot name=\"icon\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"text\"></slot>\n <slot name=\"action\"></slot>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
6
|
-
const imageSearch_store = require('./imageSearch.store-
|
|
7
|
-
require('./Handler-
|
|
5
|
+
const index = require('./index-a4becaff.js');
|
|
6
|
+
const imageSearch_store = require('./imageSearch.store-fbe0600a.js');
|
|
7
|
+
require('./Handler-de64afa5.js');
|
|
8
8
|
|
|
9
|
-
const vviinnPreloaderCss = ":host{--preloader-size:24px;--preloader-width:calc(var(--preloader-size) / 6);transform-origin:center
|
|
9
|
+
const vviinnPreloaderCss = ":host{--preloader-size:24px;--preloader-width:calc(var(--preloader-size) / 6);transform-origin:center;animation:rotate 3s linear infinite;border:var(--preloader-width) solid white;border-radius:50%;border-top-color:transparent;display:none;outline:0;width:var(--preloader-size);height:var(--preloader-size);box-sizing:border-box}:host(.active){display:flex}@keyframes rotate{from{transform:rotate(-360deg)}to{transform:rotate(360deg)}}";
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
const VviinnPreloader = class {
|
|
12
12
|
constructor(hostRef) {
|
|
13
13
|
index.registerInstance(this, hostRef);
|
|
14
14
|
}
|
|
@@ -24,3 +24,5 @@ let VviinnPreloader = class {
|
|
|
24
24
|
VviinnPreloader.style = vviinnPreloaderCss;
|
|
25
25
|
|
|
26
26
|
exports.vviinn_preloader = VviinnPreloader;
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=vviinn-preloader.cjs.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"vviinn-preloader.entry.cjs.js","mappings":";;;;;;;;AAAA,MAAM,kBAAkB,GAAG,qbAAqb;;MCQnc,eAAe;;;;EAClB,QAAQ;IACd,QACEA,kCAAgB,CAAC,OAAO,IAAIA,kCAAgB,CAAC,yBAAyB,EACtE;GACH;EAED,MAAM;IACJ,QACEC,QAACC,UAAI,IACH,KAAK,EAAE;QACL,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE;OACxB,GACK,EACR;GACH;;;;;;","names":["imageSearchState","h","Host"],"sources":["./src/components/vviinn-preloader/vviinn-preloader.css?tag=vviinn-preloader&encapsulation=shadow","./src/components/vviinn-preloader/vviinn-preloader.tsx"],"sourcesContent":[":host {\n --preloader-size: 24px;\n --preloader-width: calc(var(--preloader-size) / 6);\n transform-origin: center;\n animation: rotate 3s linear infinite;\n border: var(--preloader-width) solid white;\n border-radius: 50%;\n border-top-color: transparent;\n display: none;\n outline: 0;\n width: var(--preloader-size);\n height: var(--preloader-size);\n box-sizing: border-box;\n}\n\n:host(.active) {\n display: flex;\n}\n\n@keyframes rotate {\n from {\n transform: rotate(-360deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n","import { Component, Host, h } from \"@stencil/core\";\nimport { imageSearchState } from \"../../store/imageSearch.store\";\n\n@Component({\n tag: \"vviinn-preloader\",\n styleUrl: \"vviinn-preloader.css\",\n shadow: true,\n})\nexport class VviinnPreloader {\n private isActive(): boolean {\n return (\n imageSearchState.loading || imageSearchState.objectDetectionInProgress\n );\n }\n\n render() {\n return (\n <Host\n class={{\n active: this.isActive(),\n }}\n ></Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -2,26 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
6
|
-
const index$1 = require('./index-
|
|
5
|
+
const index = require('./index-a4becaff.js');
|
|
6
|
+
const index$1 = require('./index-610c6c1f.js');
|
|
7
7
|
const Campaign = require('./Campaign-13258569.js');
|
|
8
8
|
|
|
9
|
-
const recommendationsSidebarCss = ":host{--vviinn-carousel-columns:4;box-sizing:border-box;display:block;display:flex;height:100vh;left:0;position:fixed;top:0;transition:background 0.1s ease-in-out;width:100vw}:host(.open){background:rgba(0, 0, 0, 0.2)}:host(.bottom){flex-direction:column;justify-content:end}:host(.right){flex-direction:row;justify-content:flex-end}header{position:relative;text-align:center;padding:32px}header.contains-source-img{display:grid;justify-items:center;grid-gap:12px}img.source-image{width:64px;height:64px;border-radius:50%;box-shadow:0px 2px 4px rgba(0, 0, 0, 0.15);padding:8px}:host(.right) header{box-shadow:0px 2px 6px rgba(0, 0, 0, 0.1)}main{padding:0 24px;min-height:100px}:host(.right) main{overflow:auto}.sidebar{background:white;box-sizing:border-box;display:flex;flex-direction:column;max-height:100vh;overflow-y:auto}:host(.bottom.idle) .sidebar,:host(.bottom.closed) .sidebar{transform:translateY(100%)}:host(.bottom.closed) .sidebar{
|
|
9
|
+
const recommendationsSidebarCss = ":host{--vviinn-carousel-columns:4;box-sizing:border-box;display:block;display:flex;height:100vh;left:0;position:fixed;top:0;transition:background 0.1s ease-in-out;width:100vw}:host(.open){background:rgba(0, 0, 0, 0.2)}:host(.bottom){flex-direction:column;justify-content:end}:host(.right){flex-direction:row;justify-content:flex-end}header{position:relative;text-align:center;padding:32px}header.contains-source-img{display:grid;justify-items:center;grid-gap:12px}img.source-image{width:64px;height:64px;border-radius:50%;box-shadow:0px 2px 4px rgba(0, 0, 0, 0.15);padding:8px}:host(.right) header{box-shadow:0px 2px 6px rgba(0, 0, 0, 0.1)}main{padding:0 24px;min-height:100px}:host(.right) main{overflow:auto}.sidebar{background:white;box-sizing:border-box;display:flex;flex-direction:column;max-height:100vh;overflow-y:auto}:host(.bottom.idle) .sidebar,:host(.bottom.closed) .sidebar{transform:translateY(100%)}:host(.bottom.closed) .sidebar{animation-name:slideOutFromBottom;animation-duration:0.5s;animation-fill-mode:forwards}:host(.bottom.open) .sidebar{animation-name:slideInFromBottom;animation-duration:0.5s;animation-fill-mode:forwards}:host(.right.idle) .sidebar{transform:translateX(100%)}:host(.right.closed) .sidebar{animation-name:slideOutFromRight;animation-duration:0.5s;animation-fill-mode:forwards}:host(.right.open) .sidebar{animation-name:slideInFromRight;animation-duration:0.5s;animation-fill-mode:forwards}:host(.right) .sidebar{max-width:480px}:host(.right) vviinn-vpr-widget::part(recommendations-grid){display:grid;grid-template-columns:repeat(2, 1fr);grid-gap:24px}:host(.right) vviinn-vpr-widget{overflow:auto}:host(.right) vviinn-vpr-widget::part(image){border:none}.title{font-style:normal;font-weight:500;font-size:28px;line-height:40px;text-align:center;color:#000000}vviinn-vpr-widget::part(title),vviinn-vpr-widget::part(brand),vviinn-vpr-widget::part(type){text-align:left}vviinn-vpr-widget::part(price-container){align-self:start}.close-sidebar{background:transparent;border:none;cursor:pointer;margin:0;padding:0;position:absolute;right:24px;top:24px}@keyframes slideInFromBottom{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideOutFromBottom{from{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes slideInFromRight{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slideOutFromRight{from{transform:translateX(0)}to{transform:translateX(100%)}}@media (max-width: 768px){:host{--vviinn-carousel-columns:2}}";
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
const RecommendationsSidebar = class {
|
|
12
12
|
constructor(hostRef) {
|
|
13
13
|
index.registerInstance(this, hostRef);
|
|
14
14
|
this.vviinnWidgetClose = index.createEvent(this, "vviinnWidgetClose", 7);
|
|
15
|
+
this.sidebarTitle = undefined;
|
|
16
|
+
this.token = undefined;
|
|
17
|
+
this.productId = undefined;
|
|
15
18
|
this.position = "bottom";
|
|
16
19
|
this.sourceImage = null;
|
|
17
20
|
this.widgetScrollbar = false;
|
|
18
21
|
this.mode = "continuity";
|
|
19
|
-
/** comma-separated list of campaign-ids */
|
|
20
22
|
this.campaigns = "";
|
|
23
|
+
this.campaignType = undefined;
|
|
24
|
+
this.color = undefined;
|
|
21
25
|
this.imageWidth = 300;
|
|
22
26
|
this.currencySign = "€";
|
|
23
|
-
|
|
27
|
+
this.noResultText = undefined;
|
|
28
|
+
this.noResultShow = undefined;
|
|
29
|
+
this.gridArrowsDynamic = undefined;
|
|
24
30
|
this.apiPath = "https://api.vviinn.com";
|
|
31
|
+
this.buttonElementId = undefined;
|
|
25
32
|
this.state = "idle";
|
|
26
33
|
}
|
|
27
34
|
bodyClickListener(event) {
|
|
@@ -74,3 +81,5 @@ let RecommendationsSidebar = class {
|
|
|
74
81
|
RecommendationsSidebar.style = recommendationsSidebarCss;
|
|
75
82
|
|
|
76
83
|
exports.vviinn_recommendations_sidebar = RecommendationsSidebar;
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=vviinn-recommendations-sidebar.cjs.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"vviinn-recommendations-sidebar.entry.cjs.js","mappings":"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","names":["h","Host","CrossIcon","campaignTypeNames"],"sources":["./src/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.css?tag=vviinn-recommendations-sidebar&encapsulation=shadow","./src/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.tsx"],"sourcesContent":[":host {\n --vviinn-carousel-columns: 4;\n box-sizing: border-box;\n display: block;\n display: flex;\n height: 100vh;\n left: 0;\n position: fixed;\n top: 0;\n transition: background 0.1s ease-in-out;\n width: 100vw;\n}\n\n:host(.open) {\n background: rgba(0, 0, 0, 0.2);\n}\n\n:host(.bottom) {\n flex-direction: column;\n justify-content: end;\n}\n\n:host(.right) {\n flex-direction: row;\n justify-content: flex-end;\n}\n\nheader {\n position: relative;\n text-align: center;\n padding: 32px;\n}\n\nheader.contains-source-img {\n display: grid;\n justify-items: center;\n grid-gap: 12px;\n}\n\nimg.source-image {\n width: 64px;\n height: 64px;\n border-radius: 50%;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding: 8px;\n}\n\n:host(.right) header {\n box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.1);\n}\n\nmain {\n padding: 0 24px;\n min-height: 100px;\n}\n\n:host(.right) main {\n overflow: auto;\n}\n\n.sidebar {\n background: white;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n max-height: 100vh;\n overflow-y: auto;\n}\n\n:host(.bottom.idle) .sidebar,\n:host(.bottom.closed) .sidebar {\n transform: translateY(100%);\n}\n\n:host(.bottom.closed) .sidebar {\n animation-name: slideOutFromBottom;\n animation-duration: 0.5s;\n animation-fill-mode: forwards;\n}\n\n:host(.bottom.open) .sidebar {\n animation-name: slideInFromBottom;\n animation-duration: 0.5s;\n animation-fill-mode: forwards;\n}\n\n:host(.right.idle) .sidebar {\n transform: translateX(100%);\n}\n\n:host(.right.closed) .sidebar {\n animation-name: slideOutFromRight;\n animation-duration: 0.5s;\n animation-fill-mode: forwards;\n}\n\n:host(.right.open) .sidebar {\n animation-name: slideInFromRight;\n animation-duration: 0.5s;\n animation-fill-mode: forwards;\n}\n\n:host(.right) .sidebar {\n max-width: 480px;\n}\n\n:host(.right) vviinn-vpr-widget::part(recommendations-grid) {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n grid-gap: 24px;\n}\n\n:host(.right) vviinn-vpr-widget {\n overflow: auto;\n}\n\n:host(.right) vviinn-vpr-widget::part(image) {\n border: none;\n}\n\n.title {\n font-style: normal;\n font-weight: 500;\n font-size: 28px;\n line-height: 40px;\n text-align: center;\n color: #000000;\n}\n\nvviinn-vpr-widget::part(title),\nvviinn-vpr-widget::part(brand),\nvviinn-vpr-widget::part(type) {\n text-align: left;\n}\n\nvviinn-vpr-widget::part(price-container) {\n align-self: start;\n}\n\n.close-sidebar {\n background: transparent;\n border: none;\n cursor: pointer;\n margin: 0;\n padding: 0;\n position: absolute;\n right: 24px;\n top: 24px;\n}\n\n@keyframes slideInFromBottom {\n from {\n transform: translateY(100%);\n }\n\n to {\n transform: translateY(0);\n }\n}\n\n@keyframes slideOutFromBottom {\n from {\n transform: translateY(0);\n }\n\n to {\n transform: translateY(100%);\n }\n}\n\n@keyframes slideInFromRight {\n from {\n transform: translateX(100%);\n }\n\n to {\n transform: translateX(0);\n }\n}\n\n@keyframes slideOutFromRight {\n from {\n transform: translateX(0);\n }\n\n to {\n transform: translateX(100%);\n }\n}\n\n@media (max-width: 768px) {\n :host {\n --vviinn-carousel-columns: 2;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Listen,\n Element,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport { CrossIcon } from \"../../vviinn-icons\";\nimport { CarouselMode } from \"../../vviinn-carousel/vviinn-carousel\";\nimport { BasicEventData } from \"../../../recommendation/events\";\nimport { CampaignTypeId, campaignTypeNames } from \"../../../campaign/Campaign\";\n\ntype SidebarState = \"idle\" | \"open\" | \"closed\";\ntype ClickEvent = Event & { clientX: number; clientY: number };\n\n@Component({\n tag: \"vviinn-recommendations-sidebar\",\n styleUrl: \"recommendations-sidebar.css\",\n shadow: true,\n})\nexport class RecommendationsSidebar {\n @Element() el: HTMLElement;\n\n @Prop() sidebarTitle: string;\n @Prop() token: string;\n @Prop() productId: string;\n @Prop() position: \"bottom\" | \"right\" = \"bottom\";\n @Prop() sourceImage: string | null = null;\n @Prop() widgetScrollbar: boolean = false;\n @Prop() mode: CarouselMode = \"continuity\";\n /** comma-separated list of campaign-ids */\n @Prop() campaigns: string = \"\";\n @Prop() campaignType: CampaignTypeId;\n @Prop() color: string;\n @Prop() imageWidth: number = 300;\n @Prop() currencySign: string = \"€\";\n @Prop() noResultText?: string;\n @Prop() noResultShow?: boolean;\n /** Hiding disabled arrows in the carousel if true */\n @Prop() gridArrowsDynamic: boolean;\n\n /** @internal */\n @Prop() apiPath: string | undefined = \"https://api.vviinn.com\";\n /** @internal */\n @Prop() buttonElementId?: string;\n\n @State() state: SidebarState = \"idle\";\n\n @Event() vviinnWidgetClose: EventEmitter<BasicEventData>;\n\n @Listen(\"click\", { target: \"body\" })\n bodyClickListener(event: ClickEvent) {\n const { clientX, clientY } = event;\n const sidebarRect = this.getSidebarRectangle();\n\n if (!sidebarRect) return;\n\n const inLeftBound = clientX >= sidebarRect.left;\n const inRightBound = clientX <= sidebarRect.right;\n const inTopBound = clientY >= sidebarRect.top;\n const inBottomBound = clientY <= sidebarRect.bottom;\n const inBound = inLeftBound && inRightBound && inTopBound && inBottomBound;\n\n if (!inBound) {\n this.state = \"closed\";\n }\n }\n\n private getClassMap() {\n return {\n [this.position]: true,\n [this.state]: true,\n };\n }\n\n private getSidebarRectangle(): DOMRect {\n return this.el.shadowRoot.querySelector(\"aside\")?.getBoundingClientRect();\n }\n\n render(): any {\n return (\n <Host class={this.getClassMap()}>\n <aside\n class=\"sidebar\"\n part=\"body\"\n onAnimationEnd={(e) => this.handleAnimationEnd(e)}\n >\n <header\n class={{ \"contains-source-img\": this.isSourceImageValid() }}\n part=\"sidebar-header\"\n >\n {this.isSourceImageValid() ? this.renderSourceImage() : null}\n <span class=\"title\" part=\"title\">\n {this.sidebarTitle}\n </span>\n <button\n class=\"close-sidebar\"\n onClick={() => (this.state = \"closed\")}\n >\n <CrossIcon />\n </button>\n </header>\n <main part=\"sidebar-content\">\n <vviinn-vpr-widget\n exportparts=\"brand, currency, deeplink, image, image-link, price-amount, price-container, price-prefix, price-outdated, price-regular, price-sale, title: product-title, carousel-button, product-card, items-group\"\n token={this.token}\n productId={this.productId}\n imageWidth={this.imageWidth}\n blockTitle=\"\"\n mode={this.mode}\n useCarousel={this.position === \"bottom\"}\n onVviinnRecommendationsLoaded={() => (this.state = \"open\")}\n showScroll={this.widgetScrollbar}\n campaigns={this.campaigns}\n color={this.color}\n currencySign={this.currencySign}\n apiPath={this.apiPath}\n buttonElementId={this.buttonElementId}\n noResultText={this.noResultText}\n noResultShow={this.noResultShow}\n gridArrowsDynamic={this.gridArrowsDynamic}\n />\n </main>\n </aside>\n </Host>\n );\n }\n\n private renderSourceImage(): HTMLImageElement {\n return (\n <img class=\"source-image\" part=\"source-image\" src={this.sourceImage} />\n );\n }\n\n private isSourceImageValid(): boolean {\n return this.sourceImage?.length > 0;\n }\n\n private handleAnimationEnd({ animationName }: AnimationEvent): void {\n const isClosingAnimation = animationName.includes(\"slideOut\");\n if (!isClosingAnimation) return;\n\n this.vviinnWidgetClose.emit({\n widgetType: \"VPR\",\n campaignTypeId: this.campaignType,\n campaignTypeName: campaignTypeNames[this.campaignType],\n widgetId: this.buttonElementId,\n });\n }\n}\n"],"version":3}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
6
|
-
const index$1 = require('./index-
|
|
5
|
+
const index = require('./index-a4becaff.js');
|
|
6
|
+
const index$1 = require('./index-610c6c1f.js');
|
|
7
7
|
const Campaign = require('./Campaign-13258569.js');
|
|
8
8
|
|
|
9
9
|
const vviinnVprButtonCss = ":host{display:block}";
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
const VviinnVprButton = class {
|
|
12
12
|
constructor(hostRef) {
|
|
13
13
|
index.registerInstance(this, hostRef);
|
|
14
14
|
this.vviinnWidgetOpen = index.createEvent(this, "vviinnWidgetOpen", 7);
|
|
@@ -18,28 +18,27 @@ let VviinnVprButton = class {
|
|
|
18
18
|
this.vviinnProductView = index.createEvent(this, "vviinnProductView", 7);
|
|
19
19
|
this.vviinnProductLoad = index.createEvent(this, "vviinnProductLoad", 7);
|
|
20
20
|
this.vviinnNoResult = index.createEvent(this, "vviinnNoResult", 7);
|
|
21
|
+
this.sidebar = null;
|
|
22
|
+
this.sidebarCloseListener = () => {
|
|
23
|
+
document.body.removeChild(this.sidebar);
|
|
24
|
+
};
|
|
25
|
+
this.token = undefined;
|
|
26
|
+
this.productId = undefined;
|
|
21
27
|
this.position = "bottom";
|
|
22
28
|
this.sourceImage = null;
|
|
23
29
|
this.sidebarTitle = "Visually similar products";
|
|
24
30
|
this.modalScrollbar = false;
|
|
25
|
-
/** comma-separated list of campaign-ids */
|
|
26
31
|
this.campaigns = "";
|
|
27
|
-
/** Campaign type */
|
|
28
32
|
this.campaignType = "VPR";
|
|
33
|
+
this.color = undefined;
|
|
29
34
|
this.addStyle = true;
|
|
30
35
|
this.mode = "continuity";
|
|
31
36
|
this.imageWidth = 300;
|
|
32
37
|
this.currencySign = "€";
|
|
33
|
-
|
|
38
|
+
this.noResultText = undefined;
|
|
34
39
|
this.noResultShow = true;
|
|
35
|
-
/** Hiding disabled arrows in the carousel if true */
|
|
36
40
|
this.gridArrowsDynamic = false;
|
|
37
|
-
/** @internal */
|
|
38
41
|
this.apiPath = "https://api.vviinn.com";
|
|
39
|
-
this.sidebar = null;
|
|
40
|
-
this.sidebarCloseListener = () => {
|
|
41
|
-
document.body.removeChild(this.sidebar);
|
|
42
|
-
};
|
|
43
42
|
}
|
|
44
43
|
render() {
|
|
45
44
|
return (index.h(index.Host, { onClick: () => {
|
|
@@ -86,3 +85,5 @@ let VviinnVprButton = class {
|
|
|
86
85
|
VviinnVprButton.style = vviinnVprButtonCss;
|
|
87
86
|
|
|
88
87
|
exports.vviinn_vpr_button = VviinnVprButton;
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=vviinn-vpr-button.cjs.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"vviinn-vpr-button.entry.cjs.js","mappings":"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","names":["h","Host","campaignTypeNames","VisualSearchIcon"],"sources":["./src/components/vviinn-vpr-button/vviinn-vpr-button.css?tag=vviinn-vpr-button&encapsulation=shadow","./src/components/vviinn-vpr-button/vviinn-vpr-button.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n} from \"@stencil/core\";\nimport { VisualSearchIcon } from \"../vviinn-icons\";\nimport { CarouselMode } from \"../vviinn-carousel/vviinn-carousel\";\nimport { BasicEventData } from \"../../recommendation/events\";\nimport { CampaignName, campaignTypeNames } from \"../../campaign/Campaign\";\n\n/**\n *\n * @part button - clickable button element\n */\n@Component({\n tag: \"vviinn-vpr-button\",\n styleUrl: \"vviinn-vpr-button.css\",\n shadow: true,\n})\nexport class VviinnVprButton {\n @Element() el: HTMLElement;\n @Prop() token: string;\n @Prop() productId: string;\n @Prop() position: \"bottom\" | \"right\" = \"bottom\";\n @Prop() sourceImage: string | null = null;\n @Prop() sidebarTitle: string = \"Visually similar products\";\n @Prop() modalScrollbar: boolean = false;\n /** comma-separated list of campaign-ids */\n @Prop() campaigns: string = \"\";\n /** Campaign type */\n @Prop() campaignType: CampaignName = \"VPR\";\n @Prop() color: string;\n @Prop() addStyle: boolean = true;\n @Prop() mode: CarouselMode = \"continuity\";\n @Prop() imageWidth: number = 300;\n @Prop() currencySign: string = \"€\";\n /** This message is displayed when no results */\n @Prop() noResultText?: string;\n /** Showing message (when true) or hiding the whole widget, when no results */\n @Prop() noResultShow?: boolean = true;\n /** Hiding disabled arrows in the carousel if true */\n @Prop() gridArrowsDynamic: boolean = false;\n\n /** @internal */\n @Prop() apiPath: string | undefined = \"https://api.vviinn.com\";\n\n /** Event emitted when vpr-button clicked */\n @Event() vviinnWidgetOpen: EventEmitter<BasicEventData>;\n\n // List to show in the Storybook:\n @Event() vviinnWidgetLoad: EventEmitter;\n @Event() vviinnWidgetClose: EventEmitter;\n @Event() vviinnProductClick: EventEmitter;\n @Event() vviinnProductView: EventEmitter;\n @Event() vviinnProductLoad: EventEmitter;\n @Event() vviinnNoResult: EventEmitter;\n\n private sidebar: HTMLVviinnRecommendationsSidebarElement | null = null;\n private sidebarCloseListener: () => void = () => {\n document.body.removeChild(this.sidebar);\n };\n\n render() {\n return (\n <Host\n onClick={(): void => {\n this.handleClick();\n this.vviinnWidgetOpen.emit({\n widgetType: \"VPR\",\n campaignTypeId: this.campaignType,\n campaignTypeName: campaignTypeNames[this.campaignType],\n widgetId: this.el.id,\n });\n }}\n role=\"button\"\n tabindex=\"0\"\n >\n <vviinn-button addStyle={this.addStyle} part=\"vviinn-button\">\n <slot>\n <VisualSearchIcon />\n </slot>\n </vviinn-button>\n </Host>\n );\n }\n\n handleClick(): void {\n const sidebar = document.createElement(\"vviinn-recommendations-sidebar\");\n sidebar.sidebarTitle = this.sidebarTitle;\n sidebar.productId = this.productId;\n sidebar.token = this.token;\n sidebar.position = this.position;\n sidebar.sourceImage = this.sourceImage;\n sidebar.widgetScrollbar = this.modalScrollbar;\n sidebar.campaigns = this.campaigns;\n sidebar.campaignType = this.campaignType;\n sidebar.color = this.color;\n sidebar.mode = this.position === \"right\" ? \"grid\" : this.mode;\n sidebar.imageWidth = this.imageWidth;\n sidebar.currencySign = this.currencySign;\n sidebar.apiPath = this.apiPath;\n sidebar.buttonElementId = this.el.id;\n sidebar.noResultText = this.noResultText;\n sidebar.noResultShow = this.noResultShow;\n sidebar.gridArrowsDynamic = this.gridArrowsDynamic;\n\n this.sidebar = sidebar;\n\n sidebar.addEventListener(\"vviinnWidgetClose\", this.sidebarCloseListener);\n document.body.append(this.sidebar);\n }\n\n disconnectedCallback() {\n if (!this.sidebar) return;\n this.sidebar.removeEventListener(\n \"vviinnWidgetClose\",\n this.sidebarCloseListener\n );\n document.body.removeChild(this.sidebar);\n }\n}\n"],"version":3}
|