@anker-in/headless-ui 1.1.87 → 1.1.88
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/biz-components/AccordionCards/index.d.ts +1 -1
- package/dist/cjs/biz-components/ActiveShelf/index.d.ts +1 -1
- package/dist/cjs/biz-components/ActivitySchedule/index.d.ts +1 -1
- package/dist/cjs/biz-components/AiuiProvider/index.d.ts +6 -0
- package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
- package/dist/cjs/biz-components/AiuiProvider/index.js.map +3 -3
- package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +1 -1
- package/dist/cjs/biz-components/AplusDesc/index.d.ts +1 -1
- package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.d.ts +1 -1
- package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +1 -1
- package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
- package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +3 -3
- package/dist/cjs/biz-components/BrandEquity/types.d.ts +8 -0
- package/dist/cjs/biz-components/BrandEquity/types.js +1 -1
- package/dist/cjs/biz-components/BrandEquity/types.js.map +1 -1
- package/dist/cjs/biz-components/Category/index.d.ts +1 -1
- package/dist/cjs/biz-components/CreativeModule/index.d.ts +1 -1
- package/dist/cjs/biz-components/DownLoad/index.d.ts +1 -1
- package/dist/cjs/biz-components/Evaluate/index.d.ts +1 -1
- package/dist/cjs/biz-components/EventSchedule/index.d.ts +1 -1
- package/dist/cjs/biz-components/Faq/Faq.d.ts +1 -1
- package/dist/cjs/biz-components/Faq/Faq.js +1 -1
- package/dist/cjs/biz-components/Faq/Faq.js.map +2 -2
- package/dist/cjs/biz-components/Faq/types.d.ts +1 -0
- package/dist/cjs/biz-components/Faq/types.js +1 -1
- package/dist/cjs/biz-components/Faq/types.js.map +1 -1
- package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +1 -1
- package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +1 -1
- package/dist/cjs/biz-components/FeaturedBlogPosts/index.d.ts +1 -1
- package/dist/cjs/biz-components/Features/index.d.ts +1 -1
- package/dist/cjs/biz-components/FootCharger/index.d.ts +1 -1
- package/dist/cjs/biz-components/FooterNavigation/index.d.ts +1 -1
- package/dist/cjs/biz-components/GiftBox/index.d.ts +1 -1
- package/dist/cjs/biz-components/GiftShelf/index.d.ts +1 -1
- package/dist/cjs/biz-components/GiftTierShelf/index.d.ts +1 -1
- package/dist/cjs/biz-components/Graphic/index.d.ts +1 -1
- package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +1 -1
- package/dist/cjs/biz-components/GraphicMore/index.d.ts +1 -1
- package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +1 -1
- package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +21 -1
- package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
- package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
- package/dist/cjs/biz-components/HeroBanner/HeroBannerCarousel.d.ts +23 -0
- package/dist/cjs/biz-components/HeroBanner/HeroBannerCarousel.js +2 -0
- package/dist/cjs/biz-components/HeroBanner/HeroBannerCarousel.js.map +7 -0
- package/dist/cjs/biz-components/HeroBanner/index.d.ts +1 -0
- package/dist/cjs/biz-components/HeroBanner/index.js +1 -1
- package/dist/cjs/biz-components/HeroBanner/index.js.map +1 -1
- package/dist/cjs/biz-components/HeroBanner/types.d.ts +73 -0
- package/dist/cjs/biz-components/HeroBanner/types.js +1 -1
- package/dist/cjs/biz-components/HeroBanner/types.js.map +1 -1
- package/dist/cjs/biz-components/ImageOverlayShelf/index.d.ts +2 -2
- package/dist/cjs/biz-components/ImageOverlayShelf/index.js +1 -1
- package/dist/cjs/biz-components/ImageOverlayShelf/index.js.map +3 -3
- package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +1 -1
- package/dist/cjs/biz-components/ImageTextOverlay/index.d.ts +9 -0
- package/dist/cjs/biz-components/ImageTextOverlay/index.js +18 -0
- package/dist/cjs/biz-components/ImageTextOverlay/index.js.map +7 -0
- package/dist/cjs/biz-components/ImageTextOverlay/types.d.ts +58 -0
- package/dist/cjs/biz-components/ImageTextOverlay/types.js +2 -0
- package/dist/cjs/biz-components/ImageTextOverlay/types.js.map +7 -0
- package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +1 -1
- package/dist/cjs/biz-components/ImageWithText/ImageWithText.js +1 -1
- package/dist/cjs/biz-components/ImageWithText/ImageWithText.js.map +2 -2
- package/dist/cjs/biz-components/Ksp/index.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductPaidShipping/index.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +1 -1
- package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +1 -1
- package/dist/cjs/biz-components/LotteryShared/BaseModal.js +1 -1
- package/dist/cjs/biz-components/LotteryShared/BaseModal.js.map +2 -2
- package/dist/cjs/biz-components/LotteryShared/ChanceMethods.js +1 -1
- package/dist/cjs/biz-components/LotteryShared/ChanceMethods.js.map +3 -3
- package/dist/cjs/biz-components/LotteryShared/ErrorModal.js +1 -1
- package/dist/cjs/biz-components/LotteryShared/ErrorModal.js.map +2 -2
- package/dist/cjs/biz-components/LotteryShared/MyRewardsModal.d.ts +33 -0
- package/dist/cjs/biz-components/LotteryShared/MyRewardsModal.js +1 -1
- package/dist/cjs/biz-components/LotteryShared/MyRewardsModal.js.map +3 -3
- package/dist/cjs/biz-components/LotteryShared/PrizePool.js +1 -1
- package/dist/cjs/biz-components/LotteryShared/PrizePool.js.map +3 -3
- package/dist/cjs/biz-components/LotteryShared/WinnerModal.d.ts +1 -1
- package/dist/cjs/biz-components/LotteryShared/WinnerModal.js +1 -1
- package/dist/cjs/biz-components/LotteryShared/WinnerModal.js.map +3 -3
- package/dist/cjs/biz-components/LotteryShared/types.d.ts +101 -0
- package/dist/cjs/biz-components/LotteryShared/types.js +1 -1
- package/dist/cjs/biz-components/LotteryShared/types.js.map +2 -2
- package/dist/cjs/biz-components/Marquee/Marquee.d.ts +2 -1
- package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
- package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
- package/dist/cjs/biz-components/MarqueeReview/index.d.ts +1 -1
- package/dist/cjs/biz-components/Media/index.d.ts +15 -3
- package/dist/cjs/biz-components/Media/index.js +1 -1
- package/dist/cjs/biz-components/Media/index.js.map +3 -3
- package/dist/cjs/biz-components/MediaEndorsement/index.d.ts +1 -1
- package/dist/cjs/biz-components/MediaEndorsement/index.js +2 -2
- package/dist/cjs/biz-components/MediaEndorsement/index.js.map +3 -3
- package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +1 -1
- package/dist/cjs/biz-components/MediaPlayerBase/index.js +1 -1
- package/dist/cjs/biz-components/MediaPlayerBase/index.js.map +3 -3
- package/dist/cjs/biz-components/MediaPlayerBase/types.d.ts +26 -0
- package/dist/cjs/biz-components/MediaPlayerBase/types.js +1 -1
- package/dist/cjs/biz-components/MediaPlayerBase/types.js.map +1 -1
- package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +1 -1
- package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +1 -1
- package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +1 -1
- package/dist/cjs/biz-components/MediaSceneSwitcherV2/index.d.ts +1 -1
- package/dist/cjs/biz-components/MediaShelf/index.d.ts +1 -1
- package/dist/cjs/biz-components/MemberEquity/index.d.ts +1 -1
- package/dist/cjs/biz-components/MiniCart/index.js +1 -1
- package/dist/cjs/biz-components/MiniCart/index.js.map +2 -2
- package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +1 -1
- package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
- package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +2 -2
- package/dist/cjs/biz-components/NavigationSearch/index.d.ts +1 -1
- package/dist/cjs/biz-components/ProductCompare/index.d.ts +1 -1
- package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +1 -1
- package/dist/cjs/biz-components/ProductLottery/MediaDrawArea.js +1 -1
- package/dist/cjs/biz-components/ProductLottery/MediaDrawArea.js.map +3 -3
- package/dist/cjs/biz-components/ProductLottery/index.d.ts +3 -2
- package/dist/cjs/biz-components/ProductLottery/index.js +1 -1
- package/dist/cjs/biz-components/ProductLottery/index.js.map +3 -3
- package/dist/cjs/biz-components/ProductLottery/types.d.ts +75 -89
- package/dist/cjs/biz-components/ProductLottery/types.js +1 -1
- package/dist/cjs/biz-components/ProductLottery/types.js.map +2 -2
- package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +1 -1
- package/dist/cjs/biz-components/PromotionalBar/index.d.ts +3 -2
- package/dist/cjs/biz-components/PromotionalBar/index.js +1 -1
- package/dist/cjs/biz-components/PromotionalBar/index.js.map +3 -3
- package/dist/cjs/biz-components/SceneShelfV2/index.d.ts +113 -0
- package/dist/cjs/biz-components/SceneShelfV2/index.js +2 -0
- package/dist/cjs/biz-components/SceneShelfV2/index.js.map +7 -0
- package/dist/cjs/biz-components/SceneShelfV3/ProductCard.d.ts +89 -0
- package/dist/cjs/biz-components/SceneShelfV3/ProductCard.js +2 -0
- package/dist/cjs/biz-components/SceneShelfV3/ProductCard.js.map +7 -0
- package/dist/cjs/biz-components/SceneShelfV3/index.d.ts +79 -0
- package/dist/cjs/biz-components/SceneShelfV3/index.js +2 -0
- package/dist/cjs/biz-components/SceneShelfV3/index.js.map +7 -0
- package/dist/cjs/biz-components/SceneShelfV3/types.d.ts +19 -0
- package/dist/cjs/biz-components/SceneShelfV3/types.js +2 -0
- package/dist/cjs/biz-components/SceneShelfV3/types.js.map +7 -0
- package/dist/cjs/biz-components/SecondaryBanner/SecondaryBannerCarousel.d.ts +21 -0
- package/dist/cjs/biz-components/SecondaryBanner/SecondaryBannerCarousel.js +2 -0
- package/dist/cjs/biz-components/SecondaryBanner/SecondaryBannerCarousel.js.map +7 -0
- package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +65 -1
- package/dist/cjs/biz-components/SecondaryBanner/index.js +1 -1
- package/dist/cjs/biz-components/SecondaryBanner/index.js.map +3 -3
- package/dist/cjs/biz-components/SelectStore/index.d.ts +1 -1
- package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +1 -1
- package/dist/cjs/biz-components/Slogan/index.d.ts +1 -1
- package/dist/cjs/biz-components/Spacer/index.d.ts +1 -1
- package/dist/cjs/biz-components/Specs/index.d.ts +1 -1
- package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +1 -1
- package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +1 -1
- package/dist/cjs/biz-components/Tabs/Tabs.d.ts +1 -1
- package/dist/cjs/biz-components/TabsGroup/index.d.ts +1 -1
- package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +1 -1
- package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +1 -1
- package/dist/cjs/biz-components/Title/index.d.ts +1 -1
- package/dist/cjs/biz-components/Title/index.js +1 -1
- package/dist/cjs/biz-components/Title/index.js.map +3 -3
- package/dist/cjs/biz-components/Title/types.d.ts +53 -1
- package/dist/cjs/biz-components/Title/types.js +1 -1
- package/dist/cjs/biz-components/Title/types.js.map +1 -1
- package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +1 -1
- package/dist/cjs/biz-components/WheelLottery/BaseModal.js +1 -1
- package/dist/cjs/biz-components/WheelLottery/BaseModal.js.map +2 -2
- package/dist/cjs/biz-components/WheelLottery/ErrorModal.js +1 -1
- package/dist/cjs/biz-components/WheelLottery/ErrorModal.js.map +2 -2
- package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js +1 -1
- package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js.map +2 -2
- package/dist/cjs/biz-components/WheelLottery/WinnerModal.js +1 -1
- package/dist/cjs/biz-components/WheelLottery/WinnerModal.js.map +2 -2
- package/dist/cjs/biz-components/WheelLottery/index.d.ts +2 -1
- package/dist/cjs/biz-components/WheelLottery/index.js +1 -1
- package/dist/cjs/biz-components/WheelLottery/index.js.map +3 -3
- package/dist/cjs/biz-components/WheelLottery/types.d.ts +6 -0
- package/dist/cjs/biz-components/WheelLottery/types.js.map +2 -2
- package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +1 -1
- package/dist/cjs/biz-components/index.d.ts +7 -0
- package/dist/cjs/biz-components/index.js +1 -1
- package/dist/cjs/biz-components/index.js.map +3 -3
- package/dist/cjs/hooks/useExposure.d.ts +4 -3
- package/dist/cjs/hooks/useExposure.js +1 -1
- package/dist/cjs/hooks/useExposure.js.map +3 -3
- package/dist/cjs/hooks/useGridRowCount.d.ts +16 -0
- package/dist/cjs/hooks/useGridRowCount.js +2 -0
- package/dist/cjs/hooks/useGridRowCount.js.map +7 -0
- package/dist/cjs/hooks/useViewItemList.d.ts +21 -0
- package/dist/cjs/hooks/useViewItemList.js +2 -0
- package/dist/cjs/hooks/useViewItemList.js.map +7 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/shared/Styles.js +1 -1
- package/dist/cjs/shared/Styles.js.map +3 -3
- package/dist/cjs/shared/trackUrlRef.d.ts +9 -0
- package/dist/cjs/shared/trackUrlRef.js +1 -1
- package/dist/cjs/shared/trackUrlRef.js.map +3 -3
- package/dist/cjs/types/props.d.ts +18 -1
- package/dist/cjs/types/props.js +1 -1
- package/dist/cjs/types/props.js.map +1 -1
- package/dist/esm/biz-components/AccordionCards/index.d.ts +1 -1
- package/dist/esm/biz-components/ActiveShelf/index.d.ts +1 -1
- package/dist/esm/biz-components/ActivitySchedule/index.d.ts +1 -1
- package/dist/esm/biz-components/AiuiProvider/index.d.ts +6 -0
- package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
- package/dist/esm/biz-components/AiuiProvider/index.js.map +3 -3
- package/dist/esm/biz-components/AnchorNavigation/index.d.ts +1 -1
- package/dist/esm/biz-components/AplusDesc/index.d.ts +1 -1
- package/dist/esm/biz-components/BrandCardLink/BrandCardLink.d.ts +1 -1
- package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +1 -1
- package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
- package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
- package/dist/esm/biz-components/BrandEquity/types.d.ts +8 -0
- package/dist/esm/biz-components/Category/index.d.ts +1 -1
- package/dist/esm/biz-components/CreativeModule/index.d.ts +1 -1
- package/dist/esm/biz-components/DownLoad/index.d.ts +1 -1
- package/dist/esm/biz-components/Evaluate/index.d.ts +1 -1
- package/dist/esm/biz-components/EventSchedule/index.d.ts +1 -1
- package/dist/esm/biz-components/Faq/Faq.d.ts +1 -1
- package/dist/esm/biz-components/Faq/Faq.js +1 -1
- package/dist/esm/biz-components/Faq/Faq.js.map +2 -2
- package/dist/esm/biz-components/Faq/types.d.ts +1 -0
- package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +1 -1
- package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +1 -1
- package/dist/esm/biz-components/FeaturedBlogPosts/index.d.ts +1 -1
- package/dist/esm/biz-components/Features/index.d.ts +1 -1
- package/dist/esm/biz-components/FootCharger/index.d.ts +1 -1
- package/dist/esm/biz-components/FooterNavigation/index.d.ts +1 -1
- package/dist/esm/biz-components/GiftBox/index.d.ts +1 -1
- package/dist/esm/biz-components/GiftShelf/index.d.ts +1 -1
- package/dist/esm/biz-components/GiftTierShelf/index.d.ts +1 -1
- package/dist/esm/biz-components/Graphic/index.d.ts +1 -1
- package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +1 -1
- package/dist/esm/biz-components/GraphicMore/index.d.ts +1 -1
- package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +1 -1
- package/dist/esm/biz-components/HeaderNavigation/index.d.ts +1 -1
- package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +21 -1
- package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
- package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
- package/dist/esm/biz-components/HeroBanner/HeroBannerCarousel.d.ts +23 -0
- package/dist/esm/biz-components/HeroBanner/HeroBannerCarousel.js +2 -0
- package/dist/esm/biz-components/HeroBanner/HeroBannerCarousel.js.map +7 -0
- package/dist/esm/biz-components/HeroBanner/index.d.ts +1 -0
- package/dist/esm/biz-components/HeroBanner/index.js +1 -1
- package/dist/esm/biz-components/HeroBanner/index.js.map +1 -1
- package/dist/esm/biz-components/HeroBanner/types.d.ts +73 -0
- package/dist/esm/biz-components/ImageOverlayShelf/index.d.ts +2 -2
- package/dist/esm/biz-components/ImageOverlayShelf/index.js +1 -1
- package/dist/esm/biz-components/ImageOverlayShelf/index.js.map +3 -3
- package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +1 -1
- package/dist/esm/biz-components/ImageTextOverlay/index.d.ts +9 -0
- package/dist/esm/biz-components/ImageTextOverlay/index.js +18 -0
- package/dist/esm/biz-components/ImageTextOverlay/index.js.map +7 -0
- package/dist/esm/biz-components/ImageTextOverlay/types.d.ts +58 -0
- package/dist/esm/biz-components/ImageTextOverlay/types.js +1 -0
- package/dist/esm/biz-components/ImageTextOverlay/types.js.map +7 -0
- package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +1 -1
- package/dist/esm/biz-components/ImageWithText/ImageWithText.js +1 -1
- package/dist/esm/biz-components/ImageWithText/ImageWithText.js.map +2 -2
- package/dist/esm/biz-components/Ksp/index.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductPaidShipping/index.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +1 -1
- package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +1 -1
- package/dist/esm/biz-components/LotteryShared/BaseModal.js +1 -1
- package/dist/esm/biz-components/LotteryShared/BaseModal.js.map +2 -2
- package/dist/esm/biz-components/LotteryShared/ChanceMethods.js +1 -1
- package/dist/esm/biz-components/LotteryShared/ChanceMethods.js.map +3 -3
- package/dist/esm/biz-components/LotteryShared/ErrorModal.js +1 -1
- package/dist/esm/biz-components/LotteryShared/ErrorModal.js.map +2 -2
- package/dist/esm/biz-components/LotteryShared/MyRewardsModal.d.ts +33 -0
- package/dist/esm/biz-components/LotteryShared/MyRewardsModal.js +1 -1
- package/dist/esm/biz-components/LotteryShared/MyRewardsModal.js.map +3 -3
- package/dist/esm/biz-components/LotteryShared/PrizePool.js +1 -1
- package/dist/esm/biz-components/LotteryShared/PrizePool.js.map +3 -3
- package/dist/esm/biz-components/LotteryShared/WinnerModal.d.ts +1 -1
- package/dist/esm/biz-components/LotteryShared/WinnerModal.js +1 -1
- package/dist/esm/biz-components/LotteryShared/WinnerModal.js.map +3 -3
- package/dist/esm/biz-components/LotteryShared/types.d.ts +101 -0
- package/dist/esm/biz-components/LotteryShared/types.js +1 -1
- package/dist/esm/biz-components/LotteryShared/types.js.map +2 -2
- package/dist/esm/biz-components/Marquee/Marquee.d.ts +2 -1
- package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
- package/dist/esm/biz-components/Marquee/Marquee.js.map +2 -2
- package/dist/esm/biz-components/MarqueeReview/index.d.ts +1 -1
- package/dist/esm/biz-components/Media/index.d.ts +15 -3
- package/dist/esm/biz-components/Media/index.js +1 -1
- package/dist/esm/biz-components/Media/index.js.map +3 -3
- package/dist/esm/biz-components/MediaEndorsement/index.d.ts +1 -1
- package/dist/esm/biz-components/MediaEndorsement/index.js +2 -2
- package/dist/esm/biz-components/MediaEndorsement/index.js.map +3 -3
- package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +1 -1
- package/dist/esm/biz-components/MediaPlayerBase/index.js +1 -1
- package/dist/esm/biz-components/MediaPlayerBase/index.js.map +3 -3
- package/dist/esm/biz-components/MediaPlayerBase/types.d.ts +26 -0
- package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +1 -1
- package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +1 -1
- package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +1 -1
- package/dist/esm/biz-components/MediaSceneSwitcherV2/index.d.ts +1 -1
- package/dist/esm/biz-components/MediaShelf/index.d.ts +1 -1
- package/dist/esm/biz-components/MemberEquity/index.d.ts +1 -1
- package/dist/esm/biz-components/MiniCart/index.js +1 -1
- package/dist/esm/biz-components/MiniCart/index.js.map +2 -2
- package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +1 -1
- package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
- package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +2 -2
- package/dist/esm/biz-components/NavigationSearch/index.d.ts +1 -1
- package/dist/esm/biz-components/ProductCompare/index.d.ts +1 -1
- package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +1 -1
- package/dist/esm/biz-components/ProductLottery/MediaDrawArea.js +1 -1
- package/dist/esm/biz-components/ProductLottery/MediaDrawArea.js.map +3 -3
- package/dist/esm/biz-components/ProductLottery/index.d.ts +3 -2
- package/dist/esm/biz-components/ProductLottery/index.js +1 -1
- package/dist/esm/biz-components/ProductLottery/index.js.map +3 -3
- package/dist/esm/biz-components/ProductLottery/types.d.ts +75 -89
- package/dist/esm/biz-components/ProductLottery/types.js.map +2 -2
- package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +1 -1
- package/dist/esm/biz-components/PromotionalBar/index.d.ts +3 -2
- package/dist/esm/biz-components/PromotionalBar/index.js +1 -1
- package/dist/esm/biz-components/PromotionalBar/index.js.map +3 -3
- package/dist/esm/biz-components/SceneShelfV2/index.d.ts +113 -0
- package/dist/esm/biz-components/SceneShelfV2/index.js +2 -0
- package/dist/esm/biz-components/SceneShelfV2/index.js.map +7 -0
- package/dist/esm/biz-components/SceneShelfV3/ProductCard.d.ts +89 -0
- package/dist/esm/biz-components/SceneShelfV3/ProductCard.js +2 -0
- package/dist/esm/biz-components/SceneShelfV3/ProductCard.js.map +7 -0
- package/dist/esm/biz-components/SceneShelfV3/index.d.ts +79 -0
- package/dist/esm/biz-components/SceneShelfV3/index.js +2 -0
- package/dist/esm/biz-components/SceneShelfV3/index.js.map +7 -0
- package/dist/esm/biz-components/SceneShelfV3/types.d.ts +19 -0
- package/dist/esm/biz-components/SceneShelfV3/types.js +1 -0
- package/dist/esm/biz-components/SceneShelfV3/types.js.map +7 -0
- package/dist/esm/biz-components/SecondaryBanner/SecondaryBannerCarousel.d.ts +21 -0
- package/dist/esm/biz-components/SecondaryBanner/SecondaryBannerCarousel.js +2 -0
- package/dist/esm/biz-components/SecondaryBanner/SecondaryBannerCarousel.js.map +7 -0
- package/dist/esm/biz-components/SecondaryBanner/index.d.ts +65 -1
- package/dist/esm/biz-components/SecondaryBanner/index.js +1 -1
- package/dist/esm/biz-components/SecondaryBanner/index.js.map +3 -3
- package/dist/esm/biz-components/SelectStore/index.d.ts +1 -1
- package/dist/esm/biz-components/ShelfDisplay/index.d.ts +1 -1
- package/dist/esm/biz-components/Slogan/index.d.ts +1 -1
- package/dist/esm/biz-components/Spacer/index.d.ts +1 -1
- package/dist/esm/biz-components/Specs/index.d.ts +1 -1
- package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +1 -1
- package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +1 -1
- package/dist/esm/biz-components/Tabs/Tabs.d.ts +1 -1
- package/dist/esm/biz-components/TabsGroup/index.d.ts +1 -1
- package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +1 -1
- package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +1 -1
- package/dist/esm/biz-components/Title/index.d.ts +1 -1
- package/dist/esm/biz-components/Title/index.js +1 -1
- package/dist/esm/biz-components/Title/index.js.map +3 -3
- package/dist/esm/biz-components/Title/types.d.ts +53 -1
- package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +1 -1
- package/dist/esm/biz-components/WheelLottery/BaseModal.js +1 -1
- package/dist/esm/biz-components/WheelLottery/BaseModal.js.map +2 -2
- package/dist/esm/biz-components/WheelLottery/ErrorModal.js +1 -1
- package/dist/esm/biz-components/WheelLottery/ErrorModal.js.map +2 -2
- package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js +1 -1
- package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js.map +2 -2
- package/dist/esm/biz-components/WheelLottery/WinnerModal.js +1 -1
- package/dist/esm/biz-components/WheelLottery/WinnerModal.js.map +2 -2
- package/dist/esm/biz-components/WheelLottery/index.d.ts +2 -1
- package/dist/esm/biz-components/WheelLottery/index.js +1 -1
- package/dist/esm/biz-components/WheelLottery/index.js.map +3 -3
- package/dist/esm/biz-components/WheelLottery/types.d.ts +6 -0
- package/dist/esm/biz-components/WheelLottery/types.js.map +2 -2
- package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +1 -1
- package/dist/esm/biz-components/index.d.ts +7 -0
- package/dist/esm/biz-components/index.js +1 -1
- package/dist/esm/biz-components/index.js.map +3 -3
- package/dist/esm/hooks/useExposure.d.ts +4 -3
- package/dist/esm/hooks/useExposure.js +1 -1
- package/dist/esm/hooks/useExposure.js.map +3 -3
- package/dist/esm/hooks/useGridRowCount.d.ts +16 -0
- package/dist/esm/hooks/useGridRowCount.js +2 -0
- package/dist/esm/hooks/useGridRowCount.js.map +7 -0
- package/dist/esm/hooks/useViewItemList.d.ts +21 -0
- package/dist/esm/hooks/useViewItemList.js +2 -0
- package/dist/esm/hooks/useViewItemList.js.map +7 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +3 -3
- package/dist/esm/shared/Styles.js +1 -1
- package/dist/esm/shared/Styles.js.map +3 -3
- package/dist/esm/shared/trackUrlRef.d.ts +9 -0
- package/dist/esm/shared/trackUrlRef.js +1 -1
- package/dist/esm/shared/trackUrlRef.js.map +3 -3
- package/dist/esm/types/props.d.ts +18 -1
- package/dist/tokens/anker.css +2 -2
- package/dist/tokens/eufy.css +2 -2
- package/dist/tokens/eufyMake.css +2 -2
- package/dist/tokens/soundcore.css +2 -2
- package/package.json +1 -1
- package/style.css +215 -26
- package/tailwind.config.js +14 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";"use client";var
|
|
1
|
+
"use strict";"use client";var c=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var x=(e,o)=>{for(var a in o)c(e,a,{get:o[a],enumerable:!0})},w=(e,o,a,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of h(o))!k.call(e,r)&&r!==a&&c(e,r,{get:()=>o[r],enumerable:!(l=v(o,r))||l.enumerable});return e};var N=e=>w(c({},"__esModule",{value:!0}),e);var T={};x(T,{MediaDrawArea:()=>d,default:()=>M});module.exports=N(T);var t=require("react/jsx-runtime"),P=require("react"),i=require("../../helpers/index.js"),S=require("./types.js");const n={tablet:"(min-width: 768px)",laptop:"(min-width: 1025px)",desktop:"(min-width: 1440px)",lgDesktop:"(min-width: 1920px)"},C=({media:e,className:o})=>{const a=e.image?.alt||"Product Lottery";return(0,t.jsxs)("picture",{children:[e.imageLgDesktop&&(0,t.jsx)("source",{media:n.lgDesktop,srcSet:e.imageLgDesktop.url}),e.imageDesktop&&(0,t.jsx)("source",{media:n.desktop,srcSet:e.imageDesktop.url}),e.imageLaptop&&(0,t.jsx)("source",{media:n.laptop,srcSet:e.imageLaptop.url}),e.imageTablet&&(0,t.jsx)("source",{media:n.tablet,srcSet:e.imageTablet.url}),(0,t.jsx)("img",{src:e.image?.url||"",alt:a,className:(0,i.cn)("size-full object-cover",o),loading:"lazy"})]})},D=({media:e,autoPlay:o=!0,muted:a=!0,loop:l=!0,className:r})=>{const s=e.video;return s?(0,t.jsx)("video",{src:s.url,poster:s.thumbnailURL||void 0,autoPlay:o,muted:a,loop:l,playsInline:!0,className:(0,i.cn)("size-full object-cover",r),"aria-label":s.alt||"Product Lottery Video"}):null},L={primary:(0,i.cn)("bg-btn-primary text-btn-primary-foreground","shadow-lg"),secondary:(0,i.cn)("bg-[#1D1D1F] text-white","shadow-lg hover:bg-[#1D1D1F]/90"),outline:(0,i.cn)("border-2 border-white bg-transparent text-white","hover:bg-white/10")},d=({media:e,ctaButton:o,videoAutoPlay:a,videoMuted:l,videoLoop:r,isDrawing:s=!1,isDisabled:u=!1,onClick:m,className:b,ctaTrackTypeName:g,ctaTrackTitleDescButton:y})=>{const p=o?.text??"",f=o?.style||"primary";return(0,t.jsxs)("div",{className:(0,i.cn)("media-draw-area","size-full overflow-hidden",b),children:[(0,t.jsx)("div",{className:"absolute inset-0",children:e.type==="video"?(0,t.jsx)(D,{media:e,autoPlay:a,muted:l,loop:r}):(0,t.jsx)(C,{media:e})}),(0,t.jsx)("button",{type:"button",onClick:m,disabled:u||s,className:(0,i.cn)("absolute inset-0 z-10 flex cursor-pointer items-end justify-center","tablet:pb-5 laptop:pb-6 desktop:pb-8 lg-desktop:pb-10 pb-4","disabled:cursor-not-allowed","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/60 focus-visible:ring-offset-2"),"aria-label":s?"Drawing in progress...":p,"aria-busy":s,"data-headless-type-name":g,"data-headless-title-desc-button":y,children:p&&(0,t.jsxs)("span",{className:(0,i.cn)("inline-flex items-center justify-center gap-2","rounded-btn px-6 py-2.5","text-sm font-semibold","laptop:px-8 laptop:py-3 laptop:text-base","desktop:px-10 desktop:py-3.5","transition-all duration-200","hover:scale-105 active:scale-95",L[f],s&&"pointer-events-none opacity-80",u&&"pointer-events-none opacity-50"),children:[s&&(0,t.jsxs)("svg",{className:"size-4 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",className:"opacity-25"}),(0,t.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",className:"opacity-75"})]}),p]})})]})};d.displayName="MediaDrawArea";var M=d;
|
|
2
2
|
//# sourceMappingURL=MediaDrawArea.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/ProductLottery/MediaDrawArea.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\n\nimport React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport type { MediaDrawAreaProps, MediaConfig
|
|
5
|
-
"mappings": "sbAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,
|
|
6
|
-
"names": ["MediaDrawArea_exports", "__export", "MediaDrawArea", "MediaDrawArea_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_helpers", "import_types", "BREAKPOINTS", "
|
|
4
|
+
"sourcesContent": ["'use client'\n\nimport React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport type { MediaDrawAreaProps, MediaConfig } from './types.js'\nimport { DEFAULT_CTA_BUTTON } from './types.js'\n\nconst BREAKPOINTS = {\n tablet: '(min-width: 768px)',\n laptop: '(min-width: 1025px)',\n desktop: '(min-width: 1440px)',\n lgDesktop: '(min-width: 1920px)',\n} as const\n\nconst ResponsiveImage: React.FC<{\n media: MediaConfig\n className?: string\n}> = ({ media, className }) => {\n const alt = media.image?.alt || 'Product Lottery'\n return (\n <picture>\n {media.imageLgDesktop && <source media={BREAKPOINTS.lgDesktop} srcSet={media.imageLgDesktop.url} />}\n {media.imageDesktop && <source media={BREAKPOINTS.desktop} srcSet={media.imageDesktop.url} />}\n {media.imageLaptop && <source media={BREAKPOINTS.laptop} srcSet={media.imageLaptop.url} />}\n {media.imageTablet && <source media={BREAKPOINTS.tablet} srcSet={media.imageTablet.url} />}\n <img src={media.image?.url || ''} alt={alt} className={cn('size-full object-cover', className)} loading=\"lazy\" />\n </picture>\n )\n}\n\nconst VideoMedia: React.FC<{\n media: MediaConfig\n autoPlay?: boolean\n muted?: boolean\n loop?: boolean\n className?: string\n}> = ({ media, autoPlay = true, muted = true, loop = true, className }) => {\n const vid = media.video\n if (!vid) return null\n return (\n <video\n src={vid.url}\n poster={vid.thumbnailURL || undefined}\n autoPlay={autoPlay}\n muted={muted}\n loop={loop}\n playsInline\n className={cn('size-full object-cover', className)}\n aria-label={vid.alt || 'Product Lottery Video'}\n />\n )\n}\n\nconst CTA_STYLE_MAP = {\n primary: cn('bg-btn-primary text-btn-primary-foreground', 'shadow-lg'),\n secondary: cn('bg-[#1D1D1F] text-white', 'shadow-lg hover:bg-[#1D1D1F]/90'),\n outline: cn('border-2 border-white bg-transparent text-white', 'hover:bg-white/10'),\n} as const\n\nexport const MediaDrawArea: React.FC<MediaDrawAreaProps> = ({\n media,\n ctaButton,\n videoAutoPlay,\n videoMuted,\n videoLoop,\n isDrawing = false,\n isDisabled = false,\n onClick,\n className,\n ctaTrackTypeName,\n ctaTrackTitleDescButton,\n}) => {\n const buttonText = ctaButton?.text ?? ''\n const buttonStyle = ctaButton?.style || 'primary'\n\n return (\n <div className={cn('media-draw-area', 'size-full overflow-hidden', className)}>\n {/* Media Layer */}\n <div className=\"absolute inset-0\">\n {media.type === 'video' ? (\n <VideoMedia media={media} autoPlay={videoAutoPlay} muted={videoMuted} loop={videoLoop} />\n ) : (\n <ResponsiveImage media={media} />\n )}\n </div>\n\n {/* Clickable overlay \u2014 entire area triggers draw */}\n <button\n type=\"button\"\n onClick={onClick}\n disabled={isDisabled || isDrawing}\n className={cn(\n 'absolute inset-0 z-10 flex cursor-pointer items-end justify-center',\n 'tablet:pb-5 laptop:pb-6 desktop:pb-8 lg-desktop:pb-10 pb-4',\n 'disabled:cursor-not-allowed',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/60 focus-visible:ring-offset-2'\n )}\n aria-label={isDrawing ? 'Drawing in progress...' : buttonText}\n aria-busy={isDrawing}\n data-headless-type-name={ctaTrackTypeName}\n data-headless-title-desc-button={ctaTrackTitleDescButton}\n >\n {/* CTA Button visual \u2014 hidden when no text configured */}\n {buttonText && (\n <span\n className={cn(\n 'inline-flex items-center justify-center gap-2',\n 'rounded-btn px-6 py-2.5',\n 'text-sm font-semibold',\n 'laptop:px-8 laptop:py-3 laptop:text-base',\n 'desktop:px-10 desktop:py-3.5',\n 'transition-all duration-200',\n 'hover:scale-105 active:scale-95',\n CTA_STYLE_MAP[buttonStyle],\n isDrawing && 'pointer-events-none opacity-80',\n isDisabled && 'pointer-events-none opacity-50'\n )}\n >\n {isDrawing && (\n <svg className=\"size-4 animate-spin\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n className=\"opacity-25\"\n />\n <path\n d=\"M4 12a8 8 0 018-8\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n className=\"opacity-75\"\n />\n </svg>\n )}\n {buttonText}\n </span>\n )}\n </button>\n </div>\n )\n}\n\nMediaDrawArea.displayName = 'MediaDrawArea'\n\nexport default MediaDrawArea\n"],
|
|
5
|
+
"mappings": "sbAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAoBI,IAAAK,EAAA,6BAlBJC,EAAkB,iBAClBC,EAAmB,kCAEnBC,EAAmC,sBAEnC,MAAMC,EAAc,CAClB,OAAQ,qBACR,OAAQ,sBACR,QAAS,sBACT,UAAW,qBACb,EAEMC,EAGD,CAAC,CAAE,MAAAC,EAAO,UAAAC,CAAU,IAAM,CAC7B,MAAMC,EAAMF,EAAM,OAAO,KAAO,kBAChC,SACE,QAAC,WACE,UAAAA,EAAM,mBAAkB,OAAC,UAAO,MAAOF,EAAY,UAAW,OAAQE,EAAM,eAAe,IAAK,EAChGA,EAAM,iBAAgB,OAAC,UAAO,MAAOF,EAAY,QAAS,OAAQE,EAAM,aAAa,IAAK,EAC1FA,EAAM,gBAAe,OAAC,UAAO,MAAOF,EAAY,OAAQ,OAAQE,EAAM,YAAY,IAAK,EACvFA,EAAM,gBAAe,OAAC,UAAO,MAAOF,EAAY,OAAQ,OAAQE,EAAM,YAAY,IAAK,KACxF,OAAC,OAAI,IAAKA,EAAM,OAAO,KAAO,GAAI,IAAKE,EAAK,aAAW,MAAG,yBAA0BD,CAAS,EAAG,QAAQ,OAAO,GACjH,CAEJ,EAEME,EAMD,CAAC,CAAE,MAAAH,EAAO,SAAAI,EAAW,GAAM,MAAAC,EAAQ,GAAM,KAAAC,EAAO,GAAM,UAAAL,CAAU,IAAM,CACzE,MAAMM,EAAMP,EAAM,MAClB,OAAKO,KAEH,OAAC,SACC,IAAKA,EAAI,IACT,OAAQA,EAAI,cAAgB,OAC5B,SAAUH,EACV,MAAOC,EACP,KAAMC,EACN,YAAW,GACX,aAAW,MAAG,yBAA0BL,CAAS,EACjD,aAAYM,EAAI,KAAO,wBACzB,EAXe,IAanB,EAEMC,EAAgB,CACpB,WAAS,MAAG,6CAA8C,WAAW,EACrE,aAAW,MAAG,0BAA2B,iCAAiC,EAC1E,WAAS,MAAG,kDAAmD,mBAAmB,CACpF,EAEajB,EAA8C,CAAC,CAC1D,MAAAS,EACA,UAAAS,EACA,cAAAC,EACA,WAAAC,EACA,UAAAC,EACA,UAAAC,EAAY,GACZ,WAAAC,EAAa,GACb,QAAAC,EACA,UAAAd,EACA,iBAAAe,EACA,wBAAAC,CACF,IAAM,CACJ,MAAMC,EAAaT,GAAW,MAAQ,GAChCU,EAAcV,GAAW,OAAS,UAExC,SACE,QAAC,OAAI,aAAW,MAAG,kBAAmB,4BAA6BR,CAAS,EAE1E,oBAAC,OAAI,UAAU,mBACZ,SAAAD,EAAM,OAAS,WACd,OAACG,EAAA,CAAW,MAAOH,EAAO,SAAUU,EAAe,MAAOC,EAAY,KAAMC,EAAW,KAEvF,OAACb,EAAA,CAAgB,MAAOC,EAAO,EAEnC,KAGA,OAAC,UACC,KAAK,SACL,QAASe,EACT,SAAUD,GAAcD,EACxB,aAAW,MACT,qEACA,6DACA,8BACA,yGACF,EACA,aAAYA,EAAY,yBAA2BK,EACnD,YAAWL,EACX,0BAAyBG,EACzB,kCAAiCC,EAGhC,SAAAC,MACC,QAAC,QACC,aAAW,MACT,gDACA,0BACA,wBACA,2CACA,+BACA,8BACA,kCACAV,EAAcW,CAAW,EACzBN,GAAa,iCACbC,GAAc,gCAChB,EAEC,UAAAD,MACC,QAAC,OAAI,UAAU,sBAAsB,QAAQ,YAAY,KAAK,OAAO,cAAY,OAC/E,oBAAC,UACC,GAAG,KACH,GAAG,KACH,EAAE,KACF,OAAO,eACP,YAAY,IACZ,cAAc,QACd,UAAU,aACZ,KACA,OAAC,QACC,EAAE,oBACF,OAAO,eACP,YAAY,IACZ,cAAc,QACd,UAAU,aACZ,GACF,EAEDK,GACH,EAEJ,GACF,CAEJ,EAEA3B,EAAc,YAAc,gBAE5B,IAAOC,EAAQD",
|
|
6
|
+
"names": ["MediaDrawArea_exports", "__export", "MediaDrawArea", "MediaDrawArea_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_helpers", "import_types", "BREAKPOINTS", "ResponsiveImage", "media", "className", "alt", "VideoMedia", "autoPlay", "muted", "loop", "vid", "CTA_STYLE_MAP", "ctaButton", "videoAutoPlay", "videoMuted", "videoLoop", "isDrawing", "isDisabled", "onClick", "ctaTrackTypeName", "ctaTrackTitleDescButton", "buttonText", "buttonStyle"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ProductLotteryProps, ProductLotteryHandle } from './types.js';
|
|
2
2
|
export declare const ProductLottery: import("react").ForwardRefExoticComponent<ProductLotteryProps & import("react").RefAttributes<ProductLotteryHandle>>;
|
|
3
|
-
declare const _default: import("react").ForwardRefExoticComponent<Omit<ProductLotteryProps & import("react").RefAttributes<ProductLotteryHandle>, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("
|
|
3
|
+
declare const _default: import("react").ForwardRefExoticComponent<Omit<ProductLotteryProps & import("react").RefAttributes<ProductLotteryHandle>, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("./index.js").ContainerProps & import("react").RefAttributes<unknown>> & {
|
|
4
4
|
readonly $$typeof: symbol;
|
|
5
5
|
};
|
|
6
6
|
export default _default;
|
|
@@ -10,10 +10,11 @@ export { MyRewardsModal } from '../LotteryShared/MyRewardsModal.js';
|
|
|
10
10
|
export { ErrorModal } from '../LotteryShared/ErrorModal.js';
|
|
11
11
|
export { ShareModal } from '../LotteryShared/ShareModal.js';
|
|
12
12
|
export { BaseModal } from '../LotteryShared/BaseModal.js';
|
|
13
|
-
export type { ProductLotteryProps, ProductLotteryHandle, MediaConfig, CtaButtonConfig,
|
|
13
|
+
export type { ProductLotteryProps, ProductLotteryHandle, MediaConfig, CtaButtonConfig, MediaDrawAreaProps, } from './types.js';
|
|
14
14
|
export type { Prize, ChanceMethod, ChanceMethodStatus, WinningInfo, PrizePoolProps, ChanceMethodsProps, WinnerModalProps, WinnerModalConfig, UserData, ShareModalConfig, SocialPlatform, SharePlatformConfig, } from '../LotteryShared/types.js';
|
|
15
15
|
export type { RulesModalProps, RuleItem } from '../LotteryShared/RulesModal.js';
|
|
16
16
|
export type { MyRewardsModalProps, Reward, RewardStatus } from '../LotteryShared/MyRewardsModal.js';
|
|
17
17
|
export type { ErrorModalProps } from '../LotteryShared/ErrorModal.js';
|
|
18
18
|
export type { ShareModalProps } from '../LotteryShared/ShareModal.js';
|
|
19
19
|
export type { BaseModalProps } from '../LotteryShared/BaseModal.js';
|
|
20
|
+
export type { ContainerProps } from '../../shared/Styles.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";"use client";var I=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Qe=Object.getOwnPropertyNames;var Ve=Object.prototype.hasOwnProperty;var Xe=(s,a)=>{for(var o in a)I(s,o,{get:a[o],enumerable:!0})},Ze=(s,a,o,v)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of Qe(a))!Ve.call(s,n)&&n!==o&&I(s,n,{get:()=>a[n],enumerable:!(v=Je(a,n))||v.enumerable});return s};var qe=s=>Ze(I({},"__esModule",{value:!0}),s);var tt={};Xe(tt,{BaseModal:()=>ne.BaseModal,ErrorModal:()=>le.ErrorModal,MyRewardsModal:()=>ae.MyRewardsModal,ProductLottery:()=>A,RulesModal:()=>se.RulesModal,ShareModal:()=>ie.ShareModal,WinnerModal:()=>re.WinnerModal,default:()=>et});module.exports=qe(tt);var e=require("react/jsx-runtime"),t=require("react"),p=require("../../helpers/index.js"),$=require("./types.js"),J=require("../LotteryShared/types.js"),P=require("../../components/grid.js"),Q=require("./MediaDrawArea.js"),V=require("../LotteryShared/PrizePool.js"),X=require("../LotteryShared/ChanceMethods.js"),Z=require("../LotteryShared/WinnerModal.js"),q=require("../LotteryShared/RulesModal.js"),ee=require("../LotteryShared/MyRewardsModal.js"),L=require("../LotteryShared/ErrorModal.js"),te=require("../LotteryShared/ShareModal.js"),oe=require("../../shared/Styles.js"),re=require("../LotteryShared/WinnerModal.js"),se=require("../LotteryShared/RulesModal.js"),ae=require("../LotteryShared/MyRewardsModal.js"),le=require("../LotteryShared/ErrorModal.js"),ie=require("../LotteryShared/ShareModal.js"),ne=require("../LotteryShared/BaseModal.js");const A=(0,t.forwardRef)(({prizes:s,media:a,theme:o,ctaButton:v,chanceMethods:n=J.DEFAULT_CHANCE_METHODS,chanceTitle:pe=$.DEFAULT_CHANCE_TITLE,chanceSubtitle:de,chanceFooterNote:ce,chanceMethodsText:C,mechanismType:D,inputConfig:me,winningInfos:fe=[],prizesTitle:ue,onDrawStart:N,onDrawEnd:S,onDrawError:O,winnerModalConfig:l,rulesModalConfig:xe={},myRewardsModalConfig:he={},errorModalConfig:c={},shareModalConfig:u={},userData:m,loginPromptText:ot="Please log in to participate",loginButtonText:rt="Log In",noChancesText:ye="You have no chances left",onLoginRequired:f,onCopyCode:we,opportunitiesText:j=["Number of draws remaining today:"],className:be},ge)=>{const{rulesData:E,rulesText:B="Rules"}=xe,{rewardsData:z,myRewardsText:U="My Rewards",codeText:Te="CODE:",copyText:Me="COPY",copiedText:Pe="COPIED",prizeText:ve="Prize time:"}=he,Ce=C?.completedText,Ne=C?.usedText,x=m?.isLoggedIn??!1,H=m?.availableChances||0,G=n.length>0||D==="input",F=x&&H<=0,[h,W]=(0,t.useState)(!1),[k,_]=(0,t.useState)(null),[Se,y]=(0,t.useState)(!1),[Ee,w]=(0,t.useState)(!1),[ze,b]=(0,t.useState)(!1),[We,g]=(0,t.useState)(!1),[ke,T]=(0,t.useState)(!1),[Re,M]=(0,t.useState)(!1),[Ie,K]=(0,t.useState)(""),[Le,Ae]=(0,t.useState)(),[De,Oe]=(0,t.useState)(),[je,Be]=(0,t.useState)(),[Ue,He]=(0,t.useState)(),[Ge,Fe]=(0,t.useState)(),[i,_e]=(0,t.useState)();(0,t.useImperativeHandle)(ge,()=>({showError:({message:r,title:d,confirmText:R})=>{K(r),Ae(d),Oe(R),g(!0)},hideError:()=>{g(!1)},showNoWin:r=>{Be(r?.title),He(r?.message),Fe(r?.confirmText),T(!0)},hideNoWin:()=>{T(!1)},showWinner:(r,d)=>{_(r),_e(d),y(!0)},hideWinner:()=>{y(!1)},showRules:()=>{w(!0)},hideRules:()=>{w(!1)},showRewards:()=>{b(!0)},hideRewards:()=>{b(!1)},showShare:()=>{M(!0)},hideShare:()=>{M(!1)},hideAllModals:()=>{y(!1),w(!1),b(!1),g(!1),T(!1),M(!1)}}),[]);const Y=(0,t.useCallback)(async()=>{if(!h){if(!m?.isLoggedIn){f?.();return}if(!(m.availableChances<=0)){W(!0);try{let r;N&&(r=await N());const d=s.find(R=>R.prizeKey===r)||s[0];_(d),W(!1),S?S(d):setTimeout(()=>{d.prizeKey==="try-again"?T(!0):y(!0)},300)}catch(r){W(!1),K(r.message||"An error occurred"),g(!0),O?.(r)}}}},[h,s,N,S,O,m,f]),Ke=(0,t.useCallback)(()=>{if(!x){f?.();return}Y()},[Y,x,f]),Ye=(0,t.useCallback)(()=>{y(!1)},[]),$e=(0,t.useCallback)(()=>{T(!1)},[]);return(0,e.jsxs)("div",{className:(0,p.cn)("product-lottery-container","w-full",o==="dark"?"aiui-dark":"",be),children:[(0,e.jsxs)("div",{role:"status","aria-live":"polite","aria-atomic":"true",className:"sr-only",children:[h&&"Drawing in progress...",k&&!h&&`Prize won: ${k.name}`]}),(0,e.jsxs)(P.Grid,{className:(0,p.cn)("product-lottery-main","tablet:mb-4 mb-3"),children:[(0,e.jsx)(P.GridItem,{span:G?7:12,className:(0,p.cn)("media-section","relative flex w-full flex-1 items-center justify-center overflow-hidden","rounded-box","laptop:min-h-[288px] min-h-[240px]","lg-desktop:aspect-w-[964] lg-desktop:aspect-h-[480]","desktop:aspect-w-[759] desktop:aspect-h-[384]","laptop:aspect-w-[516] laptop:aspect-h-[288]","l-tablet:col-span-12","l-tablet:mb-3",o==="dark"?"bg-[#1E2024]":"bg-[#EAEAEC]"),children:(0,e.jsxs)("div",{className:(0,p.cn)("size-full px-[16px] pt-[16px]","lg-desktop:pb-[32px] lg-desktop:px-[32px]","desktop:pt-[24px] desktop:px-[24px]","laptop:pt-[16px] laptop:px-[16px]","tablet:px-[24px]","l-tablet:absolute l-tablet:top-0 l-tablet:inset-x-0 l-tablet:z-10"),children:[(0,e.jsxs)("div",{className:"relative z-10 mb-2 flex max-h-[24px] w-full flex-wrap items-center justify-between gap-3",children:[(0,e.jsx)("div",{children:(0,e.jsxs)("p",{className:"text-info-primary font-[700]",children:[j?.[0],(0,e.jsx)("span",{className:"ml-1 text-[#FF6B35]",children:H}),j?.[1]||""]})}),(0,e.jsxs)("div",{className:"flex items-center gap-4",children:[E&&(0,e.jsx)("button",{onClick:()=>{if(!x){f?.();return}w(!0)},className:"cursor-pointer touch-manipulation",type:"button",children:(0,e.jsx)("span",{className:"text-info-primary font-[700] underline",children:B})}),z&&(0,e.jsx)("button",{onClick:()=>{if(!x){f?.();return}b(!0)},className:"cursor-pointer touch-manipulation whitespace-nowrap",type:"button",children:(0,e.jsx)("span",{className:"text-info-primary font-[700] underline",children:U})})]})]}),(0,e.jsx)(Q.MediaDrawArea,{theme:o,media:a,ctaButton:v,isDrawing:h,isDisabled:F,onClick:Ke}),F&&(0,e.jsx)("div",{className:(0,p.cn)("rounded-box absolute inset-0 z-20 flex items-center justify-center bg-black/60 backdrop-blur-sm","px-6 text-center"),children:(0,e.jsx)("div",{className:"flex flex-col items-center gap-4",children:(0,e.jsx)("p",{className:"lg-desktop:text-[24px] text-[18px] font-semibold text-white",children:ye})})})]})}),G&&(0,e.jsx)(P.GridItem,{span:5,className:(0,p.cn)("info-section","rounded-box","relative flex flex-col overflow-hidden","lg-desktop:aspect-w-[684] lg-desktop:aspect-h-[480]","desktop:aspect-w-[536] desktop:aspect-h-[384]","laptop:aspect-w-[364] laptop:aspect-h-[288]","l-tablet:min-h-[280px] laptop:max-h-[320px]","w-full","l-tablet:col-span-12",o==="dark"?"bg-[#1E2024]":"bg-[#EAEAEC]"),children:(0,e.jsx)(X.ChanceMethods,{theme:o,userData:m,methods:n,title:pe,subtitle:de,footerNote:ce,onOpenShareModal:()=>M(!0),chanceBadgeText:C?.chanceBadgeText,completedText:Ce,usedText:Ne,loadingText:C?.loadingText,mechanismType:D,inputConfig:me})})]}),(0,e.jsx)("div",{className:(0,p.cn)("product-lottery-footer","rounded-box","flex flex-col overflow-hidden",o==="dark"?"bg-[#1E2024]":"bg-[#EAEAEC]"),children:(0,e.jsx)(V.PrizePool,{theme:o,prizes:s,title:ue,winningInfos:fe})}),(0,e.jsx)(Z.WinnerModal,{isOpen:Se,prize:k,title:i?.title||l?.title,prizeTitle:i?.prizeTitle||l?.prizeTitle,prizeImage:i?.prizeImage||l?.prizeImage,prizeDescription:i?.prizeDescription||l?.prizeDescription,learnMoreUrl:i?.learnMoreUrl||l?.learnMoreUrl,learnMoreText:i?.learnMoreText||l?.learnMoreText,couponCode:i?.couponCode||l?.couponCode,expiresAt:i?.expiresAt||l?.expiresAt,couponDiscount:i?.couponDiscount||l?.couponDiscount,couponUnit:i?.couponUnit||l?.couponUnit,confirmText:i?.confirmText||l?.confirmText,onClose:Ye,theme:o}),E&&(0,e.jsx)(q.RulesModal,{title:B,isOpen:Ee,onClose:()=>w(!1),rules:E,theme:o}),z&&(0,e.jsx)(ee.MyRewardsModal,{isOpen:ze,onClose:()=>b(!1),rewards:z,onCopyCode:we,codeText:Te,copyText:Me,copiedText:Pe,prizeText:ve,theme:o,title:U}),(0,e.jsx)(L.ErrorModal,{isOpen:We,onClose:()=>g(!1),title:Le||c?.title,message:Ie||c?.message,confirmText:De||c?.confirmText,theme:o}),(0,e.jsx)(L.ErrorModal,{isOpen:ke,onClose:$e,title:je||c?.title,message:Ue||c?.message,confirmText:Ge||c?.confirmText,theme:o}),(0,e.jsx)(te.ShareModal,{isOpen:Re,onClose:()=>M(!1),title:u?.title,subtitle:u?.subtitle,note:u?.note,platforms:u?.platforms,onShareSuccess:u?.onShareSuccess,theme:o})]})});A.displayName="ProductLottery";var et=(0,oe.withLayout)(A);
|
|
1
|
+
"use strict";"use client";var ee=Object.defineProperty;var yt=Object.getOwnPropertyDescriptor;var wt=Object.getOwnPropertyNames;var _t=Object.prototype.hasOwnProperty;var Et=(s,p)=>{for(var r in p)ee(s,r,{get:p[r],enumerable:!0})},vt=(s,p,r,P)=>{if(p&&typeof p=="object"||typeof p=="function")for(let c of wt(p))!_t.call(s,c)&&c!==r&&ee(s,c,{get:()=>p[c],enumerable:!(P=yt(p,c))||P.enumerable});return s};var Pt=s=>vt(ee({},"__esModule",{value:!0}),s);var bt={};Et(bt,{BaseModal:()=>We.BaseModal,ErrorModal:()=>Le.ErrorModal,MyRewardsModal:()=>ke.MyRewardsModal,ProductLottery:()=>oe,RulesModal:()=>Se.RulesModal,ShareModal:()=>Re.ShareModal,WinnerModal:()=>Ce.WinnerModal,default:()=>Nt});module.exports=Pt(bt);var t=require("react/jsx-runtime"),e=require("react"),x=require("../../helpers/index.js"),Te=require("./types.js"),he=require("../LotteryShared/types.js"),O=require("../../components/grid.js"),ge=require("./MediaDrawArea.js"),ye=require("../LotteryShared/PrizePool.js"),we=require("../LotteryShared/ChanceMethods.js"),_e=require("../LotteryShared/WinnerModal.js"),Ee=require("../LotteryShared/RulesModal.js"),ve=require("../LotteryShared/MyRewardsModal.js"),te=require("../LotteryShared/ErrorModal.js"),Pe=require("../LotteryShared/ShareModal.js"),Me=require("../../shared/Styles.js"),T=require("../../shared/track.js"),Ne=require("../AiuiProvider/index.js"),be=require("../../hooks/useExposure.js"),v=require("../../shared/trackUrlRef.js"),Ce=require("../LotteryShared/WinnerModal.js"),Se=require("../LotteryShared/RulesModal.js"),ke=require("../LotteryShared/MyRewardsModal.js"),Le=require("../LotteryShared/ErrorModal.js"),Re=require("../LotteryShared/ShareModal.js"),We=require("../LotteryShared/BaseModal.js");const Mt="image",m="lottery_banner",w="\u4EA7\u54C1\u62BD\u5956",f="copy",_="lottery_pop",E="image",oe=(0,e.forwardRef)(({prizes:s,media:p,theme:r,ctaButton:P,videoAutoPlay:c,videoMuted:Ae,videoLoop:Oe,chanceMethods:re=he.DEFAULT_CHANCE_METHODS,chanceTitle:ze=Te.DEFAULT_CHANCE_TITLE,chanceSubtitle:De,chanceFooterNote:Ie,chanceMethodsText:z,mechanismType:$,inputConfig:M,winningInfos:$e=[],winnerNameTemplate:He,prizesTitle:Ue,onDrawStart:H,onDrawEnd:U,onDrawError:ae,winnerModalConfig:a,rulesModalConfig:je={},actionButtonConfig:d,myRewardsModalConfig:Ge={},errorModalConfig:h={},shareModalConfig:N={},userData:g,loginPromptText:Ct="Please log in to participate",loginButtonText:St="Log In",noChancesText:kt="You have no chances left",onLoginRequired:b,onCopyCode:Ye,opportunitiesText:ne=["Number of draws remaining today:"],className:Be},Fe)=>{const{rulesData:C,rulesText:j="Rules"}=je,Ke=!!(d?.text&&d?.url),{rewardsData:G,myRewardsText:Y="My Rewards",codeText:Je="CODE:",copyText:se="COPY",copiedText:le="COPIED",prizeText:Qe="Prize time:",emptyText:Ve,copyError:Xe,availableText:Ze,usedStatusText:qe,expiredText:et,notFoundText:tt}=Ge,ot=z?.completedText,rt=z?.usedText,D=g?.isLoggedIn??!1,pe=g?.availableChances||0,ie=re.length>0||$==="input",me=$==="input"&&!!M?.agreementNotice,[S,B]=(0,e.useState)(!1),[i,ce]=(0,e.useState)(null),[F,k]=(0,e.useState)(!1),[K,L]=(0,e.useState)(!1),[J,R]=(0,e.useState)(!1),[Q,y]=(0,e.useState)(!1),[V,W]=(0,e.useState)(!1),[X,A]=(0,e.useState)(!1),[de,I]=(0,e.useState)(""),[at,nt]=(0,e.useState)(),[st,lt]=(0,e.useState)(),[pt,it]=(0,e.useState)(),[mt,ct]=(0,e.useState)(),[dt,ut]=(0,e.useState)(),[n,ft]=(0,e.useState)(),[Z,xt]=(0,e.useState)(!1),ue=(0,e.useRef)(null);(0,be.useExposure)(ue,{componentType:Mt,componentName:m,componentTitle:w});const{trackingData:l,pageHandle:fe}=(0,Ne.useAiuiContext)();(0,e.useEffect)(()=>{F&&(0,T.gaTrack)({event:"ga4Event",event_name:"component_impression",event_parameters:{page_group:l?.pageGroup||"Home Page",component_type:E,component_name:_,component_title:"Winner"}})},[F,l]),(0,e.useEffect)(()=>{V&&(0,T.gaTrack)({event:"ga4Event",event_name:"component_impression",event_parameters:{page_group:l?.pageGroup||"Home Page",component_type:E,component_name:_,component_title:"Better Luck Next Time"}})},[V,l]),(0,e.useEffect)(()=>{K&&(0,T.gaTrack)({event:"ga4Event",event_name:"component_impression",event_parameters:{page_group:l?.pageGroup||"Home Page",component_type:E,component_name:_,component_title:"Rules"}})},[K,l]),(0,e.useEffect)(()=>{J&&(0,T.gaTrack)({event:"ga4Event",event_name:"component_impression",event_parameters:{page_group:l?.pageGroup||"Home Page",component_type:E,component_name:_,component_title:"My Rewards"}})},[J,l]),(0,e.useEffect)(()=>{X&&(0,T.gaTrack)({event:"ga4Event",event_name:"component_impression",event_parameters:{page_group:l?.pageGroup||"Home Page",component_type:E,component_name:_,component_title:"Share"}})},[X,l]),(0,e.useEffect)(()=>{Q&&(0,T.gaTrack)({event:"ga4Event",event_name:"component_impression",event_parameters:{page_group:l?.pageGroup||"Home Page",component_type:E,component_name:_,component_title:"Error"}})},[Q,l]),(0,e.useImperativeHandle)(Fe,()=>({showError:({message:o,title:u,confirmText:q})=>{I(o),nt(u),lt(q),y(!0)},hideError:()=>{y(!1)},showNoWin:o=>{it(o?.title),ct(o?.message),ut(o?.confirmText),W(!0)},hideNoWin:()=>{W(!1)},showWinner:(o,u)=>{ce(o),ft(u),k(!0)},hideWinner:()=>{k(!1)},showRules:()=>{L(!0)},hideRules:()=>{L(!1)},showRewards:()=>{R(!0)},hideRewards:()=>{R(!1)},showShare:()=>{A(!0)},hideShare:()=>{A(!1)},hideAllModals:()=>{k(!1),L(!1),R(!1),y(!1),W(!1),A(!1)}}),[]);const xe=(0,e.useCallback)(async()=>{if(!S){if(me&&!Z){I(M?.agreementWarningText||"Please agree to the terms before continuing"),y(!1);return}if(!g?.isLoggedIn){b?.();return}if(!(g.availableChances<=0)){B(!0);try{let o;H&&(o=await H());const u=s.find(q=>q.prizeKey===o)||s[0];ce(u),B(!1),U?U(u):setTimeout(()=>{u.prizeKey==="try-again"?W(!0):k(!0)},300)}catch(o){B(!1),I(o.message||"An error occurred"),y(!0),ae?.(o)}}}},[me,M?.agreementWarningText,Z,S,s,H,U,ae,g,b]),Tt=(0,e.useCallback)(()=>{if(!D){b?.();return}xe()},[xe,D,b]),ht=(0,e.useCallback)(()=>{k(!1)},[]),gt=(0,e.useCallback)(()=>{W(!1)},[]);return(0,t.jsxs)("div",{ref:ue,className:(0,x.cn)("product-lottery-container","w-full",r==="dark"?"aiui-dark":"",Be),children:[(0,t.jsxs)("div",{role:"status","aria-live":"polite","aria-atomic":"true",className:"sr-only",children:[S&&"Drawing in progress...",i&&!S&&`Prize won: ${i.name}`]}),(0,t.jsxs)(O.Grid,{className:(0,x.cn)("product-lottery-main","tablet:mb-4 mb-3"),children:[(0,t.jsx)(O.GridItem,{span:ie?7:12,className:(0,x.cn)("media-section","relative flex w-full flex-1 items-center justify-center overflow-hidden","rounded-box","laptop:min-h-[288px] min-h-[240px]","lg-desktop:aspect-w-[964] lg-desktop:aspect-h-[480]","desktop:aspect-w-[759] desktop:aspect-h-[384]","laptop:aspect-w-[516] laptop:aspect-h-[288]","l-tablet:col-span-12","l-tablet:mb-3",r==="dark"?"bg-[#1E2024]":"bg-[#EAEAEC]"),children:(0,t.jsxs)("div",{className:(0,x.cn)("size-full px-[16px] pt-[16px]","lg-desktop:pb-[32px] lg-desktop:px-[32px]","desktop:pt-[24px] desktop:px-[24px]","laptop:pt-[16px] laptop:px-[16px]","tablet:px-[24px]","l-tablet:absolute l-tablet:top-0 l-tablet:inset-x-0 l-tablet:z-10","flex flex-col"),children:[(0,t.jsxs)("div",{className:"relative z-30 mb-2 flex max-h-[24px] w-full flex-wrap items-center justify-between gap-3",children:[(0,t.jsx)("div",{children:(0,t.jsxs)("p",{className:"text-info-primary font-[700]",children:[ne?.[0],(0,t.jsx)("span",{className:"ml-1 text-[#FF6B35]",children:pe}),ne?.[1]||""]})}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[C&&C.length>0&&(0,t.jsx)("button",{onClick:o=>{o.preventDefault(),o.stopPropagation(),L(!0)},className:"cursor-pointer touch-manipulation",type:"button","data-headless-type-name":`${f}#${m}`,"data-headless-title-desc-button":`${w}##${j}`,children:(0,t.jsx)("span",{className:"text-info-primary font-[700] underline",children:j})}),G&&(0,t.jsx)("button",{onClick:o=>{if(o.preventDefault(),o.stopPropagation(),!D){b?.();return}R(!0)},className:"cursor-pointer touch-manipulation whitespace-nowrap",type:"button","data-headless-type-name":`${f}#${m}`,"data-headless-title-desc-button":`${w}##${Y}`,children:(0,t.jsx)("span",{className:"text-info-primary font-[700] underline",children:Y})}),Ke&&(0,t.jsx)("a",{href:(0,v.trackUrlRef)(d?.url??"",(0,v.buildTrackingRef)(fe??"",f,m)),className:"cursor-pointer touch-manipulation whitespace-nowrap",onClick:o=>{o.preventDefault(),o.stopPropagation(),d?.url&&(window.location.href=(0,v.trackUrlRef)(d.url,(0,v.buildTrackingRef)(fe??"",f,m)))},"data-headless-type-name":`${f}#${m}`,"data-headless-title-desc-button":`${w}##${d?.text}`,children:(0,t.jsx)("span",{className:"text-info-primary font-[700] underline",children:d?.text})})]})]}),(0,t.jsx)(ge.MediaDrawArea,{className:"min-h-0 w-full flex-1",theme:r,media:p,ctaButton:P,videoAutoPlay:c,videoMuted:Ae,videoLoop:Oe,isDrawing:S,isDisabled:D&&pe<=0,onClick:Tt,ctaTrackTypeName:`${f}#${m}`,ctaTrackTitleDescButton:`${w}##${P?.text??""}`})]})}),ie&&(0,t.jsx)(O.GridItem,{span:5,className:(0,x.cn)("info-section","rounded-box","relative flex flex-col overflow-hidden","lg-desktop:aspect-w-[684] lg-desktop:aspect-h-[480]","desktop:aspect-w-[536] desktop:aspect-h-[384]","laptop:aspect-w-[364] laptop:aspect-h-[288]","l-tablet:min-h-[280px] laptop:max-h-[320px]","w-full","l-tablet:col-span-12",r==="dark"?"bg-[#1E2024]":"bg-[#EAEAEC]"),children:(0,t.jsx)(we.ChanceMethods,{theme:r,userData:g,methods:re,title:ze,subtitle:De,footerNote:Ie,onOpenShareModal:()=>A(!0),chanceBadgeText:z?.chanceBadgeText,completedText:ot,usedText:rt,loadingText:z?.loadingText,mechanismType:$,inputConfig:{...M,submitTrackTypeName:`${f}#${m}`,submitTrackTitleDescButton:`${w}##${M?.submitText??"Spin and Win"}`},isAgreementChecked:Z,onAgreementCheckedChange:o=>{xt(o),o&&I("")},agreementErrorText:de})})]}),(0,t.jsx)("div",{className:(0,x.cn)("product-lottery-footer","rounded-box","flex flex-col overflow-hidden",r==="dark"?"bg-[#1E2024]":"bg-[#EAEAEC]"),children:(0,t.jsx)(ye.PrizePool,{theme:r,prizes:s,title:Ue,winningInfos:$e,winnerNameTemplate:He})}),(0,t.jsx)(_e.WinnerModal,{isOpen:F,prize:i,title:n?.title||a?.title,prizeTitle:n?.prizeTitle||a?.prizeTitle,prizeImage:n?.prizeImage||a?.prizeImage,prizeDescription:n?.prizeDescription||a?.prizeDescription,winnerNote:n?.winnerNote??i?.winnerModalConfig?.winnerNote??a?.winnerNote,learnMoreUrl:n?.learnMoreUrl||i?.winnerModalConfig?.learnMoreUrl||a?.learnMoreUrl,learnMoreText:n?.learnMoreText||i?.winnerModalConfig?.learnMoreText||a?.learnMoreText,couponCode:n?.couponCode||a?.couponCode,expiresAt:n?.expiresAt||a?.expiresAt,couponDiscount:n?.couponDiscount||a?.couponDiscount,couponUnit:n?.couponUnit||a?.couponUnit,confirmText:n?.confirmText||i?.winnerModalConfig?.confirmText||a?.confirmText,confirmUrl:n?.confirmUrl||i?.winnerModalConfig?.confirmUrl||a?.confirmUrl,copyText:n?.copyText||a?.copyText||se,copiedText:n?.copiedText||a?.copiedText||le,onClose:ht,theme:r}),C&&C.length>0&&(0,t.jsx)(Ee.RulesModal,{title:j,isOpen:K,onClose:()=>L(!1),rules:C,theme:r}),G&&(0,t.jsx)(ve.MyRewardsModal,{isOpen:J,onClose:()=>R(!1),rewards:G,onCopyCode:Ye,codeText:Je,copyText:se,copiedText:le,prizeText:Qe,emptyText:Ve,copyError:Xe,availableText:Ze,usedStatusText:qe,expiredText:et,notFoundText:tt,theme:r,title:Y}),(0,t.jsx)(te.ErrorModal,{isOpen:Q,onClose:()=>y(!1),title:at||h?.title,message:de||h?.message,confirmText:st||h?.confirmText,theme:r}),(0,t.jsx)(te.ErrorModal,{isOpen:V,onClose:gt,title:pt||h?.title,message:mt||h?.message,confirmText:dt||h?.confirmText,theme:r}),(0,t.jsx)(Pe.ShareModal,{isOpen:X,onClose:()=>A(!1),title:N?.title,subtitle:N?.subtitle,note:N?.note,platforms:N?.platforms,onShareSuccess:N?.onShareSuccess,theme:r})]})});oe.displayName="ProductLottery";var Nt=(0,Me.withLayout)(oe);
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/ProductLottery/index.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\n\nimport { useState, useCallback, useImperativeHandle, forwardRef } from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { DEFAULT_CHANCE_TITLE } from './types.js'\nimport { DEFAULT_CHANCE_METHODS } from '../LotteryShared/types.js'\nimport { Grid, GridItem } from '../../components/grid.js'\nimport { MediaDrawArea } from './MediaDrawArea.js'\nimport { PrizePool } from '../LotteryShared/PrizePool.js'\nimport { ChanceMethods } from '../LotteryShared/ChanceMethods.js'\nimport { WinnerModal } from '../LotteryShared/WinnerModal.js'\nimport { RulesModal } from '../LotteryShared/RulesModal.js'\nimport { MyRewardsModal } from '../LotteryShared/MyRewardsModal.js'\nimport { ErrorModal } from '../LotteryShared/ErrorModal.js'\nimport { ShareModal } from '../LotteryShared/ShareModal.js'\nimport { withLayout } from '../../shared/Styles.js'\n\nimport type { ProductLotteryProps, ProductLotteryHandle } from './types.js'\nimport type { Prize, WinnerModalConfig } from '../LotteryShared/types.js'\n\nexport const ProductLottery = forwardRef<ProductLotteryHandle, ProductLotteryProps>(\n (\n {\n prizes,\n media,\n theme,\n ctaButton,\n chanceMethods = DEFAULT_CHANCE_METHODS,\n chanceTitle = DEFAULT_CHANCE_TITLE,\n chanceSubtitle,\n chanceFooterNote,\n chanceMethodsText,\n mechanismType,\n inputConfig,\n winningInfos = [],\n prizesTitle,\n onDrawStart,\n onDrawEnd,\n onDrawError,\n winnerModalConfig,\n rulesModalConfig = {},\n myRewardsModalConfig = {},\n errorModalConfig = {},\n shareModalConfig = {},\n userData,\n loginPromptText = 'Please log in to participate',\n loginButtonText = 'Log In',\n noChancesText = 'You have no chances left',\n onLoginRequired,\n onCopyCode,\n opportunitiesText = ['Number of draws remaining today:'],\n className,\n },\n ref\n ) => {\n const { rulesData, rulesText = 'Rules' } = rulesModalConfig\n const {\n rewardsData,\n myRewardsText = 'My Rewards',\n codeText = 'CODE:',\n copyText = 'COPY',\n copiedText = 'COPIED',\n prizeText = 'Prize time:',\n } = myRewardsModalConfig\n const completedText = chanceMethodsText?.completedText\n const usedText = chanceMethodsText?.usedText\n const isLoggedIn = userData?.isLoggedIn ?? false\n const availableChances = userData?.availableChances || 0\n const hasRightPanel = chanceMethods.length > 0 || mechanismType === 'input'\n const showNoChancesOverlay = isLoggedIn && availableChances <= 0\n\n // State\n const [isDrawing, setIsDrawing] = useState(false)\n const [winningPrize, setWinningPrize] = useState<Prize | null>(null)\n const [showWinnerModal, setShowWinnerModal] = useState(false)\n const [showRulesModal, setShowRulesModal] = useState(false)\n const [showRewardsModal, setShowRewardsModal] = useState(false)\n const [showErrorModal, setShowErrorModal] = useState(false)\n const [showNoWinModal, setShowNoWinModal] = useState(false)\n const [showShareModal, setShowShareModal] = useState(false)\n const [errorMessage, setErrorMessage] = useState('')\n const [errorTitle, setErrorTitle] = useState<string | undefined>()\n const [errorConfirmText, setErrorConfirmText] = useState<string | undefined>()\n const [noWinTitle, setNoWinTitle] = useState<string | undefined>()\n const [noWinMessage, setNoWinMessage] = useState<string | undefined>()\n const [noWinConfirmText, setNoWinConfirmText] = useState<string | undefined>()\n const [externalWinnerConfig, setExternalWinnerConfig] = useState<Partial<WinnerModalConfig> | undefined>()\n\n useImperativeHandle(\n ref,\n () => ({\n showError: ({ message, title, confirmText }) => {\n setErrorMessage(message)\n setErrorTitle(title)\n setErrorConfirmText(confirmText)\n setShowErrorModal(true)\n },\n hideError: () => {\n setShowErrorModal(false)\n },\n showNoWin: config => {\n setNoWinTitle(config?.title)\n setNoWinMessage(config?.message)\n setNoWinConfirmText(config?.confirmText)\n setShowNoWinModal(true)\n },\n hideNoWin: () => {\n setShowNoWinModal(false)\n },\n showWinner: (prize, config) => {\n setWinningPrize(prize)\n setExternalWinnerConfig(config)\n setShowWinnerModal(true)\n },\n hideWinner: () => {\n setShowWinnerModal(false)\n },\n showRules: () => {\n setShowRulesModal(true)\n },\n hideRules: () => {\n setShowRulesModal(false)\n },\n showRewards: () => {\n setShowRewardsModal(true)\n },\n hideRewards: () => {\n setShowRewardsModal(false)\n },\n showShare: () => {\n setShowShareModal(true)\n },\n hideShare: () => {\n setShowShareModal(false)\n },\n hideAllModals: () => {\n setShowWinnerModal(false)\n setShowRulesModal(false)\n setShowRewardsModal(false)\n setShowErrorModal(false)\n setShowNoWinModal(false)\n setShowShareModal(false)\n },\n }),\n []\n )\n\n const handleDrawStart = useCallback(async () => {\n if (isDrawing) return\n\n if (!userData?.isLoggedIn) {\n onLoginRequired?.()\n return\n }\n\n if (userData.availableChances <= 0) {\n return\n }\n\n setIsDrawing(true)\n\n try {\n let prizeId: string | undefined\n\n if (onDrawStart) {\n prizeId = await onDrawStart()\n }\n\n const prize = prizes.find(p => p.prizeKey === prizeId) || prizes[0]\n setWinningPrize(prize)\n setIsDrawing(false)\n\n if (onDrawEnd) {\n onDrawEnd(prize)\n } else {\n setTimeout(() => {\n if (prize.prizeKey === 'try-again') {\n setShowNoWinModal(true)\n } else {\n setShowWinnerModal(true)\n }\n }, 300)\n }\n } catch (error) {\n setIsDrawing(false)\n setErrorMessage((error as Error).message || 'An error occurred')\n setShowErrorModal(true)\n onDrawError?.(error as Error)\n }\n }, [isDrawing, prizes, onDrawStart, onDrawEnd, onDrawError, userData, onLoginRequired])\n\n const handleDrawClick = useCallback(() => {\n if (!isLoggedIn) {\n onLoginRequired?.()\n return\n }\n void handleDrawStart()\n }, [handleDrawStart, isLoggedIn, onLoginRequired])\n\n const handleCloseWinnerModal = useCallback(() => {\n setShowWinnerModal(false)\n }, [])\n\n const handleCloseNoWinModal = useCallback(() => {\n setShowNoWinModal(false)\n }, [])\n\n return (\n <div className={cn('product-lottery-container', 'w-full', theme === 'dark' ? 'aiui-dark' : '', className)}>\n {/* ARIA Live Region */}\n <div role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" className=\"sr-only\">\n {isDrawing && 'Drawing in progress...'}\n {winningPrize && !isDrawing && `Prize won: ${winningPrize.name}`}\n </div>\n\n {/* Main Content \u2014 Responsive Grid */}\n <Grid className={cn('product-lottery-main', 'tablet:mb-4 mb-3')}>\n {/* Left: Media Draw Area */}\n <GridItem\n span={hasRightPanel ? 7 : 12}\n className={cn(\n 'media-section',\n 'relative flex w-full flex-1 items-center justify-center overflow-hidden',\n 'rounded-box',\n 'laptop:min-h-[288px] min-h-[240px]',\n 'lg-desktop:aspect-w-[964] lg-desktop:aspect-h-[480]',\n 'desktop:aspect-w-[759] desktop:aspect-h-[384]',\n 'laptop:aspect-w-[516] laptop:aspect-h-[288]',\n 'l-tablet:col-span-12',\n 'l-tablet:mb-3',\n theme === 'dark' ? 'bg-[#1E2024]' : 'bg-[#EAEAEC]'\n )}\n >\n <div\n className={cn(\n 'size-full px-[16px] pt-[16px]',\n 'lg-desktop:pb-[32px] lg-desktop:px-[32px]',\n 'desktop:pt-[24px] desktop:px-[24px]',\n 'laptop:pt-[16px] laptop:px-[16px]',\n 'tablet:px-[24px]',\n 'l-tablet:absolute l-tablet:top-0 l-tablet:inset-x-0 l-tablet:z-10'\n )}\n >\n {/* Top bar: chances + rules/rewards links */}\n <div className=\"relative z-10 mb-2 flex max-h-[24px] w-full flex-wrap items-center justify-between gap-3\">\n <div>\n <p className=\"text-info-primary font-[700]\">\n {opportunitiesText?.[0]}\n <span className=\"ml-1 text-[#FF6B35]\">{availableChances}</span>\n {opportunitiesText?.[1] || ''}\n </p>\n </div>\n <div className=\"flex items-center gap-4\">\n {rulesData && (\n <button\n onClick={() => {\n if (!isLoggedIn) {\n onLoginRequired?.()\n return\n }\n setShowRulesModal(true)\n }}\n className=\"cursor-pointer touch-manipulation\"\n type=\"button\"\n >\n <span className=\"text-info-primary font-[700] underline\">{rulesText}</span>\n </button>\n )}\n {rewardsData && (\n <button\n onClick={() => {\n if (!isLoggedIn) {\n onLoginRequired?.()\n return\n }\n setShowRewardsModal(true)\n }}\n className=\"cursor-pointer touch-manipulation whitespace-nowrap\"\n type=\"button\"\n >\n <span className=\"text-info-primary font-[700] underline\">{myRewardsText}</span>\n </button>\n )}\n </div>\n </div>\n\n {/* Media Draw Area */}\n <MediaDrawArea\n theme={theme}\n media={media}\n ctaButton={ctaButton}\n isDrawing={isDrawing}\n isDisabled={showNoChancesOverlay}\n onClick={handleDrawClick}\n />\n\n {showNoChancesOverlay && (\n <div\n className={cn(\n 'rounded-box absolute inset-0 z-20 flex items-center justify-center bg-black/60 backdrop-blur-sm',\n 'px-6 text-center'\n )}\n >\n <div className=\"flex flex-col items-center gap-4\">\n <p className=\"lg-desktop:text-[24px] text-[18px] font-semibold text-white\">{noChancesText}</p>\n </div>\n </div>\n )}\n </div>\n </GridItem>\n\n {/* Right: Chance Methods */}\n {hasRightPanel && (\n <GridItem\n span={5}\n className={cn(\n 'info-section',\n 'rounded-box',\n 'relative flex flex-col overflow-hidden',\n 'lg-desktop:aspect-w-[684] lg-desktop:aspect-h-[480]',\n 'desktop:aspect-w-[536] desktop:aspect-h-[384]',\n 'laptop:aspect-w-[364] laptop:aspect-h-[288]',\n 'l-tablet:min-h-[280px] laptop:max-h-[320px]',\n 'w-full',\n 'l-tablet:col-span-12',\n theme === 'dark' ? 'bg-[#1E2024]' : 'bg-[#EAEAEC]'\n )}\n >\n <ChanceMethods\n theme={theme}\n userData={userData}\n methods={chanceMethods}\n title={chanceTitle}\n subtitle={chanceSubtitle}\n footerNote={chanceFooterNote}\n onOpenShareModal={() => setShowShareModal(true)}\n chanceBadgeText={chanceMethodsText?.chanceBadgeText}\n completedText={completedText}\n usedText={usedText}\n loadingText={chanceMethodsText?.loadingText}\n mechanismType={mechanismType}\n inputConfig={inputConfig}\n />\n </GridItem>\n )}\n </Grid>\n\n {/* Footer: Prize Pool */}\n <div\n className={cn(\n 'product-lottery-footer',\n 'rounded-box',\n 'flex flex-col overflow-hidden',\n theme === 'dark' ? 'bg-[#1E2024]' : 'bg-[#EAEAEC]'\n )}\n >\n <PrizePool theme={theme} prizes={prizes} title={prizesTitle} winningInfos={winningInfos} />\n </div>\n\n {/* Winner Modal */}\n <WinnerModal\n isOpen={showWinnerModal}\n prize={winningPrize}\n title={externalWinnerConfig?.title || winnerModalConfig?.title}\n prizeTitle={externalWinnerConfig?.prizeTitle || winnerModalConfig?.prizeTitle}\n prizeImage={externalWinnerConfig?.prizeImage || winnerModalConfig?.prizeImage}\n prizeDescription={externalWinnerConfig?.prizeDescription || winnerModalConfig?.prizeDescription}\n learnMoreUrl={externalWinnerConfig?.learnMoreUrl || winnerModalConfig?.learnMoreUrl}\n learnMoreText={externalWinnerConfig?.learnMoreText || winnerModalConfig?.learnMoreText}\n couponCode={externalWinnerConfig?.couponCode || winnerModalConfig?.couponCode}\n expiresAt={externalWinnerConfig?.expiresAt || winnerModalConfig?.expiresAt}\n couponDiscount={externalWinnerConfig?.couponDiscount || winnerModalConfig?.couponDiscount}\n couponUnit={externalWinnerConfig?.couponUnit || winnerModalConfig?.couponUnit}\n confirmText={externalWinnerConfig?.confirmText || winnerModalConfig?.confirmText}\n onClose={handleCloseWinnerModal}\n theme={theme}\n />\n\n {/* Rules Modal */}\n {rulesData && (\n <RulesModal\n title={rulesText}\n isOpen={showRulesModal}\n onClose={() => setShowRulesModal(false)}\n rules={rulesData}\n theme={theme}\n />\n )}\n\n {/* My Rewards Modal */}\n {rewardsData && (\n <MyRewardsModal\n isOpen={showRewardsModal}\n onClose={() => setShowRewardsModal(false)}\n rewards={rewardsData}\n onCopyCode={onCopyCode}\n codeText={codeText}\n copyText={copyText}\n copiedText={copiedText}\n prizeText={prizeText}\n theme={theme}\n title={myRewardsText}\n />\n )}\n\n {/* Error Modal */}\n <ErrorModal\n isOpen={showErrorModal}\n onClose={() => setShowErrorModal(false)}\n title={errorTitle || errorModalConfig?.title}\n message={errorMessage || errorModalConfig?.message}\n confirmText={errorConfirmText || errorModalConfig?.confirmText}\n theme={theme}\n />\n\n {/* No-Win Modal */}\n <ErrorModal\n isOpen={showNoWinModal}\n onClose={handleCloseNoWinModal}\n title={noWinTitle || errorModalConfig?.title}\n message={noWinMessage || errorModalConfig?.message}\n confirmText={noWinConfirmText || errorModalConfig?.confirmText}\n theme={theme}\n />\n\n {/* Share Modal */}\n <ShareModal\n isOpen={showShareModal}\n onClose={() => setShowShareModal(false)}\n title={shareModalConfig?.title}\n subtitle={shareModalConfig?.subtitle}\n note={shareModalConfig?.note}\n platforms={shareModalConfig?.platforms}\n onShareSuccess={shareModalConfig?.onShareSuccess}\n theme={theme}\n />\n </div>\n )\n }\n)\n\nProductLottery.displayName = 'ProductLottery'\n\nexport default withLayout(ProductLottery)\nexport { WinnerModal } from '../LotteryShared/WinnerModal.js'\nexport { RulesModal } from '../LotteryShared/RulesModal.js'\nexport { MyRewardsModal } from '../LotteryShared/MyRewardsModal.js'\nexport { ErrorModal } from '../LotteryShared/ErrorModal.js'\nexport { ShareModal } from '../LotteryShared/ShareModal.js'\nexport { BaseModal } from '../LotteryShared/BaseModal.js'\nexport type {\n ProductLotteryProps,\n ProductLotteryHandle,\n MediaConfig,\n CtaButtonConfig,\n ResponsiveMedia,\n MediaDrawAreaProps,\n} from './types.js'\nexport type {\n Prize,\n ChanceMethod,\n ChanceMethodStatus,\n WinningInfo,\n PrizePoolProps,\n ChanceMethodsProps,\n WinnerModalProps,\n WinnerModalConfig,\n UserData,\n ShareModalConfig,\n SocialPlatform,\n SharePlatformConfig,\n} from '../LotteryShared/types.js'\nexport type { RulesModalProps, RuleItem } from '../LotteryShared/RulesModal.js'\nexport type { MyRewardsModalProps, Reward, RewardStatus } from '../LotteryShared/MyRewardsModal.js'\nexport type { ErrorModalProps } from '../LotteryShared/ErrorModal.js'\nexport type { ShareModalProps } from '../LotteryShared/ShareModal.js'\nexport type { BaseModalProps } from '../LotteryShared/BaseModal.js'\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["ProductLottery_exports", "__export", "ProductLottery", "ProductLottery_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_helpers", "import_types", "import_grid", "import_MediaDrawArea", "import_PrizePool", "import_ChanceMethods", "import_WinnerModal", "import_RulesModal", "import_MyRewardsModal", "import_ErrorModal", "import_ShareModal", "import_Styles", "import_BaseModal", "prizes", "media", "theme", "ctaButton", "chanceMethods", "chanceTitle", "chanceSubtitle", "chanceFooterNote", "chanceMethodsText", "mechanismType", "inputConfig", "winningInfos", "prizesTitle", "onDrawStart", "onDrawEnd", "onDrawError", "winnerModalConfig", "rulesModalConfig", "myRewardsModalConfig", "errorModalConfig", "shareModalConfig", "userData", "loginPromptText", "loginButtonText", "noChancesText", "onLoginRequired", "onCopyCode", "opportunitiesText", "className", "ref", "rulesData", "rulesText", "rewardsData", "myRewardsText", "codeText", "copyText", "copiedText", "prizeText", "completedText", "usedText", "isLoggedIn", "availableChances", "hasRightPanel", "
|
|
4
|
+
"sourcesContent": ["'use client'\n\nimport { useState, useCallback, useImperativeHandle, forwardRef, useEffect, useRef } from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { DEFAULT_CHANCE_TITLE } from './types.js'\nimport { DEFAULT_CHANCE_METHODS } from '../LotteryShared/types.js'\nimport { Grid, GridItem } from '../../components/grid.js'\nimport { MediaDrawArea } from './MediaDrawArea.js'\nimport { PrizePool } from '../LotteryShared/PrizePool.js'\nimport { ChanceMethods } from '../LotteryShared/ChanceMethods.js'\nimport { WinnerModal } from '../LotteryShared/WinnerModal.js'\nimport { RulesModal } from '../LotteryShared/RulesModal.js'\nimport { MyRewardsModal } from '../LotteryShared/MyRewardsModal.js'\nimport { ErrorModal } from '../LotteryShared/ErrorModal.js'\nimport { ShareModal } from '../LotteryShared/ShareModal.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport { trackUrlRef, buildTrackingRef } from '../../shared/trackUrlRef.js'\n\nimport type { ProductLotteryProps, ProductLotteryHandle } from './types.js'\nimport type { Prize, WinnerModalConfig } from '../LotteryShared/types.js'\n\nconst LOTTERY_COMPONENT_TYPE = 'image'\nconst LOTTERY_COMPONENT_NAME = 'lottery_banner'\nconst LOTTERY_COMPONENT_TITLE = '\u4EA7\u54C1\u62BD\u5956'\nconst LOTTERY_CLICK_TYPE = 'copy'\nconst LOTTERY_MODAL_COMPONENT_NAME = 'lottery_pop'\nconst LOTTERY_MODAL_COMPONENT_TYPE = 'image'\n\nexport const ProductLottery = forwardRef<ProductLotteryHandle, ProductLotteryProps>(\n (\n {\n prizes,\n media,\n theme,\n ctaButton,\n videoAutoPlay,\n videoMuted,\n videoLoop,\n chanceMethods = DEFAULT_CHANCE_METHODS,\n chanceTitle = DEFAULT_CHANCE_TITLE,\n chanceSubtitle,\n chanceFooterNote,\n chanceMethodsText,\n mechanismType,\n inputConfig,\n winningInfos = [],\n winnerNameTemplate,\n prizesTitle,\n onDrawStart,\n onDrawEnd,\n onDrawError,\n winnerModalConfig,\n rulesModalConfig = {},\n actionButtonConfig,\n myRewardsModalConfig = {},\n errorModalConfig = {},\n shareModalConfig = {},\n userData,\n loginPromptText = 'Please log in to participate',\n loginButtonText = 'Log In',\n noChancesText = 'You have no chances left',\n onLoginRequired,\n onCopyCode,\n opportunitiesText = ['Number of draws remaining today:'],\n className,\n },\n ref\n ) => {\n const { rulesData, rulesText = 'Rules' } = rulesModalConfig\n const shouldShowActionButton = Boolean(actionButtonConfig?.text && actionButtonConfig?.url)\n const {\n rewardsData,\n myRewardsText = 'My Rewards',\n codeText = 'CODE:',\n copyText = 'COPY',\n copiedText = 'COPIED',\n prizeText = 'Prize time:',\n emptyText,\n copyError,\n availableText,\n usedStatusText,\n expiredText,\n notFoundText,\n } = myRewardsModalConfig\n const completedText = chanceMethodsText?.completedText\n const usedText = chanceMethodsText?.usedText\n const isLoggedIn = userData?.isLoggedIn ?? false\n const availableChances = userData?.availableChances || 0\n const hasRightPanel = chanceMethods.length > 0 || mechanismType === 'input'\n const hasAgreementNotice = mechanismType === 'input' && Boolean(inputConfig?.agreementNotice)\n\n // State\n const [isDrawing, setIsDrawing] = useState(false)\n const [winningPrize, setWinningPrize] = useState<Prize | null>(null)\n const [showWinnerModal, setShowWinnerModal] = useState(false)\n const [showRulesModal, setShowRulesModal] = useState(false)\n const [showRewardsModal, setShowRewardsModal] = useState(false)\n const [showErrorModal, setShowErrorModal] = useState(false)\n const [showNoWinModal, setShowNoWinModal] = useState(false)\n const [showShareModal, setShowShareModal] = useState(false)\n const [errorMessage, setErrorMessage] = useState('')\n const [errorTitle, setErrorTitle] = useState<string | undefined>()\n const [errorConfirmText, setErrorConfirmText] = useState<string | undefined>()\n const [noWinTitle, setNoWinTitle] = useState<string | undefined>()\n const [noWinMessage, setNoWinMessage] = useState<string | undefined>()\n const [noWinConfirmText, setNoWinConfirmText] = useState<string | undefined>()\n const [externalWinnerConfig, setExternalWinnerConfig] = useState<Partial<WinnerModalConfig> | undefined>()\n const [isAgreementChecked, setIsAgreementChecked] = useState(false)\n\n // Exposure tracking\n const containerRef = useRef<HTMLDivElement>(null)\n useExposure(containerRef, {\n componentType: LOTTERY_COMPONENT_TYPE,\n componentName: LOTTERY_COMPONENT_NAME,\n componentTitle: LOTTERY_COMPONENT_TITLE,\n })\n\n // Tracking\n const { trackingData, pageHandle } = useAiuiContext()\n\n // Modal impression tracking \u2014 fires once per open\n useEffect(() => {\n if (!showWinnerModal) return\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_impression',\n event_parameters: {\n page_group: trackingData?.pageGroup || 'Home Page',\n component_type: LOTTERY_MODAL_COMPONENT_TYPE,\n component_name: LOTTERY_MODAL_COMPONENT_NAME,\n component_title: 'Winner',\n },\n })\n }, [showWinnerModal, trackingData])\n\n useEffect(() => {\n if (!showNoWinModal) return\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_impression',\n event_parameters: {\n page_group: trackingData?.pageGroup || 'Home Page',\n component_type: LOTTERY_MODAL_COMPONENT_TYPE,\n component_name: LOTTERY_MODAL_COMPONENT_NAME,\n component_title: 'Better Luck Next Time',\n },\n })\n }, [showNoWinModal, trackingData])\n\n useEffect(() => {\n if (!showRulesModal) return\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_impression',\n event_parameters: {\n page_group: trackingData?.pageGroup || 'Home Page',\n component_type: LOTTERY_MODAL_COMPONENT_TYPE,\n component_name: LOTTERY_MODAL_COMPONENT_NAME,\n component_title: 'Rules',\n },\n })\n }, [showRulesModal, trackingData])\n\n useEffect(() => {\n if (!showRewardsModal) return\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_impression',\n event_parameters: {\n page_group: trackingData?.pageGroup || 'Home Page',\n component_type: LOTTERY_MODAL_COMPONENT_TYPE,\n component_name: LOTTERY_MODAL_COMPONENT_NAME,\n component_title: 'My Rewards',\n },\n })\n }, [showRewardsModal, trackingData])\n\n useEffect(() => {\n if (!showShareModal) return\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_impression',\n event_parameters: {\n page_group: trackingData?.pageGroup || 'Home Page',\n component_type: LOTTERY_MODAL_COMPONENT_TYPE,\n component_name: LOTTERY_MODAL_COMPONENT_NAME,\n component_title: 'Share',\n },\n })\n }, [showShareModal, trackingData])\n\n useEffect(() => {\n if (!showErrorModal) return\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_impression',\n event_parameters: {\n page_group: trackingData?.pageGroup || 'Home Page',\n component_type: LOTTERY_MODAL_COMPONENT_TYPE,\n component_name: LOTTERY_MODAL_COMPONENT_NAME,\n component_title: 'Error',\n },\n })\n }, [showErrorModal, trackingData])\n\n useImperativeHandle(\n ref,\n () => ({\n showError: ({ message, title, confirmText }) => {\n setErrorMessage(message)\n setErrorTitle(title)\n setErrorConfirmText(confirmText)\n setShowErrorModal(true)\n },\n hideError: () => {\n setShowErrorModal(false)\n },\n showNoWin: config => {\n setNoWinTitle(config?.title)\n setNoWinMessage(config?.message)\n setNoWinConfirmText(config?.confirmText)\n setShowNoWinModal(true)\n },\n hideNoWin: () => {\n setShowNoWinModal(false)\n },\n showWinner: (prize, config) => {\n setWinningPrize(prize)\n setExternalWinnerConfig(config)\n setShowWinnerModal(true)\n },\n hideWinner: () => {\n setShowWinnerModal(false)\n },\n showRules: () => {\n setShowRulesModal(true)\n },\n hideRules: () => {\n setShowRulesModal(false)\n },\n showRewards: () => {\n setShowRewardsModal(true)\n },\n hideRewards: () => {\n setShowRewardsModal(false)\n },\n showShare: () => {\n setShowShareModal(true)\n },\n hideShare: () => {\n setShowShareModal(false)\n },\n hideAllModals: () => {\n setShowWinnerModal(false)\n setShowRulesModal(false)\n setShowRewardsModal(false)\n setShowErrorModal(false)\n setShowNoWinModal(false)\n setShowShareModal(false)\n },\n }),\n []\n )\n\n const handleDrawStart = useCallback(async () => {\n if (isDrawing) return\n\n if (hasAgreementNotice && !isAgreementChecked) {\n setErrorMessage(inputConfig?.agreementWarningText || 'Please agree to the terms before continuing')\n setShowErrorModal(false)\n return\n }\n\n if (!userData?.isLoggedIn) {\n onLoginRequired?.()\n return\n }\n\n if (userData.availableChances <= 0) {\n return\n }\n\n setIsDrawing(true)\n\n try {\n let prizeId: string | undefined\n\n if (onDrawStart) {\n prizeId = await onDrawStart()\n }\n\n const prize = prizes.find(p => p.prizeKey === prizeId) || prizes[0]\n setWinningPrize(prize)\n setIsDrawing(false)\n\n if (onDrawEnd) {\n onDrawEnd(prize)\n } else {\n setTimeout(() => {\n if (prize.prizeKey === 'try-again') {\n setShowNoWinModal(true)\n } else {\n setShowWinnerModal(true)\n }\n }, 300)\n }\n } catch (error) {\n setIsDrawing(false)\n setErrorMessage((error as Error).message || 'An error occurred')\n setShowErrorModal(true)\n onDrawError?.(error as Error)\n }\n }, [\n hasAgreementNotice,\n inputConfig?.agreementWarningText,\n isAgreementChecked,\n isDrawing,\n prizes,\n onDrawStart,\n onDrawEnd,\n onDrawError,\n userData,\n onLoginRequired,\n ])\n\n const handleDrawClick = useCallback(() => {\n if (!isLoggedIn) {\n onLoginRequired?.()\n return\n }\n void handleDrawStart()\n }, [handleDrawStart, isLoggedIn, onLoginRequired])\n\n const handleCloseWinnerModal = useCallback(() => {\n setShowWinnerModal(false)\n }, [])\n\n const handleCloseNoWinModal = useCallback(() => {\n setShowNoWinModal(false)\n }, [])\n\n return (\n <div\n ref={containerRef}\n className={cn('product-lottery-container', 'w-full', theme === 'dark' ? 'aiui-dark' : '', className)}\n >\n {/* ARIA Live Region */}\n <div role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" className=\"sr-only\">\n {isDrawing && 'Drawing in progress...'}\n {winningPrize && !isDrawing && `Prize won: ${winningPrize.name}`}\n </div>\n\n {/* Main Content \u2014 Responsive Grid */}\n <Grid className={cn('product-lottery-main', 'tablet:mb-4 mb-3')}>\n {/* Left: Media Draw Area */}\n <GridItem\n span={hasRightPanel ? 7 : 12}\n className={cn(\n 'media-section',\n 'relative flex w-full flex-1 items-center justify-center overflow-hidden',\n 'rounded-box',\n 'laptop:min-h-[288px] min-h-[240px]',\n 'lg-desktop:aspect-w-[964] lg-desktop:aspect-h-[480]',\n 'desktop:aspect-w-[759] desktop:aspect-h-[384]',\n 'laptop:aspect-w-[516] laptop:aspect-h-[288]',\n 'l-tablet:col-span-12',\n 'l-tablet:mb-3',\n theme === 'dark' ? 'bg-[#1E2024]' : 'bg-[#EAEAEC]'\n )}\n >\n <div\n className={cn(\n 'size-full px-[16px] pt-[16px]',\n 'lg-desktop:pb-[32px] lg-desktop:px-[32px]',\n 'desktop:pt-[24px] desktop:px-[24px]',\n 'laptop:pt-[16px] laptop:px-[16px]',\n 'tablet:px-[24px]',\n 'l-tablet:absolute l-tablet:top-0 l-tablet:inset-x-0 l-tablet:z-10',\n 'flex flex-col'\n )}\n >\n {/* Top bar: chances + rules/rewards links */}\n <div className=\"relative z-30 mb-2 flex max-h-[24px] w-full flex-wrap items-center justify-between gap-3\">\n <div>\n <p className=\"text-info-primary font-[700]\">\n {opportunitiesText?.[0]}\n <span className=\"ml-1 text-[#FF6B35]\">{availableChances}</span>\n {opportunitiesText?.[1] || ''}\n </p>\n </div>\n <div className=\"flex items-center gap-4\">\n {rulesData && rulesData.length > 0 && (\n <button\n onClick={e => {\n e.preventDefault()\n e.stopPropagation()\n setShowRulesModal(true)\n }}\n className=\"cursor-pointer touch-manipulation\"\n type=\"button\"\n data-headless-type-name={`${LOTTERY_CLICK_TYPE}#${LOTTERY_COMPONENT_NAME}`}\n data-headless-title-desc-button={`${LOTTERY_COMPONENT_TITLE}##${rulesText}`}\n >\n <span className=\"text-info-primary font-[700] underline\">{rulesText}</span>\n </button>\n )}\n {rewardsData && (\n <button\n onClick={e => {\n e.preventDefault()\n e.stopPropagation()\n if (!isLoggedIn) {\n onLoginRequired?.()\n return\n }\n setShowRewardsModal(true)\n }}\n className=\"cursor-pointer touch-manipulation whitespace-nowrap\"\n type=\"button\"\n data-headless-type-name={`${LOTTERY_CLICK_TYPE}#${LOTTERY_COMPONENT_NAME}`}\n data-headless-title-desc-button={`${LOTTERY_COMPONENT_TITLE}##${myRewardsText}`}\n >\n <span className=\"text-info-primary font-[700] underline\">{myRewardsText}</span>\n </button>\n )}\n {shouldShowActionButton && (\n <a\n href={trackUrlRef(\n actionButtonConfig?.url ?? '',\n buildTrackingRef(pageHandle ?? '', LOTTERY_CLICK_TYPE, LOTTERY_COMPONENT_NAME)\n )}\n className=\"cursor-pointer touch-manipulation whitespace-nowrap\"\n onClick={e => {\n e.preventDefault()\n e.stopPropagation()\n if (actionButtonConfig?.url) {\n window.location.href = trackUrlRef(\n actionButtonConfig.url,\n buildTrackingRef(pageHandle ?? '', LOTTERY_CLICK_TYPE, LOTTERY_COMPONENT_NAME)\n )\n }\n }}\n data-headless-type-name={`${LOTTERY_CLICK_TYPE}#${LOTTERY_COMPONENT_NAME}`}\n data-headless-title-desc-button={`${LOTTERY_COMPONENT_TITLE}##${actionButtonConfig?.text}`}\n >\n <span className=\"text-info-primary font-[700] underline\">{actionButtonConfig?.text}</span>\n </a>\n )}\n </div>\n </div>\n\n {/* Media Draw Area */}\n <MediaDrawArea\n className=\"min-h-0 w-full flex-1\"\n theme={theme}\n media={media}\n ctaButton={ctaButton}\n videoAutoPlay={videoAutoPlay}\n videoMuted={videoMuted}\n videoLoop={videoLoop}\n isDrawing={isDrawing}\n isDisabled={isLoggedIn && availableChances <= 0}\n onClick={handleDrawClick}\n ctaTrackTypeName={`${LOTTERY_CLICK_TYPE}#${LOTTERY_COMPONENT_NAME}`}\n ctaTrackTitleDescButton={`${LOTTERY_COMPONENT_TITLE}##${ctaButton?.text ?? ''}`}\n />\n </div>\n </GridItem>\n\n {/* Right: Chance Methods */}\n {hasRightPanel && (\n <GridItem\n span={5}\n className={cn(\n 'info-section',\n 'rounded-box',\n 'relative flex flex-col overflow-hidden',\n 'lg-desktop:aspect-w-[684] lg-desktop:aspect-h-[480]',\n 'desktop:aspect-w-[536] desktop:aspect-h-[384]',\n 'laptop:aspect-w-[364] laptop:aspect-h-[288]',\n 'l-tablet:min-h-[280px] laptop:max-h-[320px]',\n 'w-full',\n 'l-tablet:col-span-12',\n theme === 'dark' ? 'bg-[#1E2024]' : 'bg-[#EAEAEC]'\n )}\n >\n <ChanceMethods\n theme={theme}\n userData={userData}\n methods={chanceMethods}\n title={chanceTitle}\n subtitle={chanceSubtitle}\n footerNote={chanceFooterNote}\n onOpenShareModal={() => setShowShareModal(true)}\n chanceBadgeText={chanceMethodsText?.chanceBadgeText}\n completedText={completedText}\n usedText={usedText}\n loadingText={chanceMethodsText?.loadingText}\n mechanismType={mechanismType}\n inputConfig={{\n ...inputConfig,\n submitTrackTypeName: `${LOTTERY_CLICK_TYPE}#${LOTTERY_COMPONENT_NAME}`,\n submitTrackTitleDescButton: `${LOTTERY_COMPONENT_TITLE}##${inputConfig?.submitText ?? 'Spin and Win'}`,\n }}\n isAgreementChecked={isAgreementChecked}\n onAgreementCheckedChange={checked => {\n setIsAgreementChecked(checked)\n if (checked) {\n setErrorMessage('')\n }\n }}\n agreementErrorText={errorMessage}\n />\n </GridItem>\n )}\n </Grid>\n\n {/* Footer: Prize Pool */}\n <div\n className={cn(\n 'product-lottery-footer',\n 'rounded-box',\n 'flex flex-col overflow-hidden',\n theme === 'dark' ? 'bg-[#1E2024]' : 'bg-[#EAEAEC]'\n )}\n >\n <PrizePool\n theme={theme}\n prizes={prizes}\n title={prizesTitle}\n winningInfos={winningInfos}\n winnerNameTemplate={winnerNameTemplate}\n />\n </div>\n\n {/* Winner Modal */}\n <WinnerModal\n isOpen={showWinnerModal}\n prize={winningPrize}\n title={externalWinnerConfig?.title || winnerModalConfig?.title}\n prizeTitle={externalWinnerConfig?.prizeTitle || winnerModalConfig?.prizeTitle}\n prizeImage={externalWinnerConfig?.prizeImage || winnerModalConfig?.prizeImage}\n prizeDescription={externalWinnerConfig?.prizeDescription || winnerModalConfig?.prizeDescription}\n winnerNote={\n externalWinnerConfig?.winnerNote ??\n winningPrize?.winnerModalConfig?.winnerNote ??\n winnerModalConfig?.winnerNote\n }\n learnMoreUrl={\n externalWinnerConfig?.learnMoreUrl ||\n winningPrize?.winnerModalConfig?.learnMoreUrl ||\n winnerModalConfig?.learnMoreUrl\n }\n learnMoreText={\n externalWinnerConfig?.learnMoreText ||\n winningPrize?.winnerModalConfig?.learnMoreText ||\n winnerModalConfig?.learnMoreText\n }\n couponCode={externalWinnerConfig?.couponCode || winnerModalConfig?.couponCode}\n expiresAt={externalWinnerConfig?.expiresAt || winnerModalConfig?.expiresAt}\n couponDiscount={externalWinnerConfig?.couponDiscount || winnerModalConfig?.couponDiscount}\n couponUnit={externalWinnerConfig?.couponUnit || winnerModalConfig?.couponUnit}\n confirmText={\n externalWinnerConfig?.confirmText ||\n winningPrize?.winnerModalConfig?.confirmText ||\n winnerModalConfig?.confirmText\n }\n confirmUrl={\n externalWinnerConfig?.confirmUrl ||\n winningPrize?.winnerModalConfig?.confirmUrl ||\n winnerModalConfig?.confirmUrl\n }\n copyText={externalWinnerConfig?.copyText || winnerModalConfig?.copyText || copyText}\n copiedText={externalWinnerConfig?.copiedText || winnerModalConfig?.copiedText || copiedText}\n onClose={handleCloseWinnerModal}\n theme={theme}\n />\n\n {/* Rules Modal */}\n {rulesData && rulesData.length > 0 && (\n <RulesModal\n title={rulesText}\n isOpen={showRulesModal}\n onClose={() => setShowRulesModal(false)}\n rules={rulesData}\n theme={theme}\n />\n )}\n\n {/* My Rewards Modal */}\n {rewardsData && (\n <MyRewardsModal\n isOpen={showRewardsModal}\n onClose={() => setShowRewardsModal(false)}\n rewards={rewardsData}\n onCopyCode={onCopyCode}\n codeText={codeText}\n copyText={copyText}\n copiedText={copiedText}\n prizeText={prizeText}\n emptyText={emptyText}\n copyError={copyError}\n availableText={availableText}\n usedStatusText={usedStatusText}\n expiredText={expiredText}\n notFoundText={notFoundText}\n theme={theme}\n title={myRewardsText}\n />\n )}\n\n {/* Error Modal */}\n <ErrorModal\n isOpen={showErrorModal}\n onClose={() => setShowErrorModal(false)}\n title={errorTitle || errorModalConfig?.title}\n message={errorMessage || errorModalConfig?.message}\n confirmText={errorConfirmText || errorModalConfig?.confirmText}\n theme={theme}\n />\n\n {/* No-Win Modal */}\n <ErrorModal\n isOpen={showNoWinModal}\n onClose={handleCloseNoWinModal}\n title={noWinTitle || errorModalConfig?.title}\n message={noWinMessage || errorModalConfig?.message}\n confirmText={noWinConfirmText || errorModalConfig?.confirmText}\n theme={theme}\n />\n\n {/* Share Modal */}\n <ShareModal\n isOpen={showShareModal}\n onClose={() => setShowShareModal(false)}\n title={shareModalConfig?.title}\n subtitle={shareModalConfig?.subtitle}\n note={shareModalConfig?.note}\n platforms={shareModalConfig?.platforms}\n onShareSuccess={shareModalConfig?.onShareSuccess}\n theme={theme}\n />\n </div>\n )\n }\n)\n\nProductLottery.displayName = 'ProductLottery'\n\nexport default withLayout(ProductLottery)\nexport { WinnerModal } from '../LotteryShared/WinnerModal.js'\nexport { RulesModal } from '../LotteryShared/RulesModal.js'\nexport { MyRewardsModal } from '../LotteryShared/MyRewardsModal.js'\nexport { ErrorModal } from '../LotteryShared/ErrorModal.js'\nexport { ShareModal } from '../LotteryShared/ShareModal.js'\nexport { BaseModal } from '../LotteryShared/BaseModal.js'\nexport type {\n ProductLotteryProps,\n ProductLotteryHandle,\n MediaConfig,\n CtaButtonConfig,\n MediaDrawAreaProps,\n} from './types.js'\nexport type {\n Prize,\n ChanceMethod,\n ChanceMethodStatus,\n WinningInfo,\n PrizePoolProps,\n ChanceMethodsProps,\n WinnerModalProps,\n WinnerModalConfig,\n UserData,\n ShareModalConfig,\n SocialPlatform,\n SharePlatformConfig,\n} from '../LotteryShared/types.js'\nexport type { RulesModalProps, RuleItem } from '../LotteryShared/RulesModal.js'\nexport type { MyRewardsModalProps, Reward, RewardStatus } from '../LotteryShared/MyRewardsModal.js'\nexport type { ErrorModalProps } from '../LotteryShared/ErrorModal.js'\nexport type { ShareModalProps } from '../LotteryShared/ShareModal.js'\nexport type { BaseModalProps } from '../LotteryShared/BaseModal.js'\nexport type { ContainerProps } from '../../shared/Styles.js'\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ProductLottery_exports", "__export", "ProductLottery", "ProductLottery_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_helpers", "import_types", "import_grid", "import_MediaDrawArea", "import_PrizePool", "import_ChanceMethods", "import_WinnerModal", "import_RulesModal", "import_MyRewardsModal", "import_ErrorModal", "import_ShareModal", "import_Styles", "import_track", "import_AiuiProvider", "import_useExposure", "import_trackUrlRef", "import_BaseModal", "LOTTERY_COMPONENT_TYPE", "LOTTERY_COMPONENT_NAME", "LOTTERY_COMPONENT_TITLE", "LOTTERY_CLICK_TYPE", "LOTTERY_MODAL_COMPONENT_NAME", "LOTTERY_MODAL_COMPONENT_TYPE", "prizes", "media", "theme", "ctaButton", "videoAutoPlay", "videoMuted", "videoLoop", "chanceMethods", "chanceTitle", "chanceSubtitle", "chanceFooterNote", "chanceMethodsText", "mechanismType", "inputConfig", "winningInfos", "winnerNameTemplate", "prizesTitle", "onDrawStart", "onDrawEnd", "onDrawError", "winnerModalConfig", "rulesModalConfig", "actionButtonConfig", "myRewardsModalConfig", "errorModalConfig", "shareModalConfig", "userData", "loginPromptText", "loginButtonText", "noChancesText", "onLoginRequired", "onCopyCode", "opportunitiesText", "className", "ref", "rulesData", "rulesText", "shouldShowActionButton", "rewardsData", "myRewardsText", "codeText", "copyText", "copiedText", "prizeText", "emptyText", "copyError", "availableText", "usedStatusText", "expiredText", "notFoundText", "completedText", "usedText", "isLoggedIn", "availableChances", "hasRightPanel", "hasAgreementNotice", "isDrawing", "setIsDrawing", "winningPrize", "setWinningPrize", "showWinnerModal", "setShowWinnerModal", "showRulesModal", "setShowRulesModal", "showRewardsModal", "setShowRewardsModal", "showErrorModal", "setShowErrorModal", "showNoWinModal", "setShowNoWinModal", "showShareModal", "setShowShareModal", "errorMessage", "setErrorMessage", "errorTitle", "setErrorTitle", "errorConfirmText", "setErrorConfirmText", "noWinTitle", "setNoWinTitle", "noWinMessage", "setNoWinMessage", "noWinConfirmText", "setNoWinConfirmText", "externalWinnerConfig", "setExternalWinnerConfig", "isAgreementChecked", "setIsAgreementChecked", "containerRef", "trackingData", "pageHandle", "message", "title", "confirmText", "config", "prize", "handleDrawStart", "prizeId", "p", "error", "handleDrawClick", "handleCloseWinnerModal", "handleCloseNoWinModal", "e", "checked"]
|
|
7
7
|
}
|
|
@@ -7,112 +7,53 @@
|
|
|
7
7
|
* @module ProductLotteryTypes
|
|
8
8
|
* @date 2026-04-07
|
|
9
9
|
*/
|
|
10
|
-
import type { Prize, WinnerModalConfig, ShareModalConfig, ChanceMethod, WinningInfo, RulesModalConfig, MyRewardsModalConfig, ErrorModalConfig, UserData, ChanceMechanismType, ChanceInputConfig } from '../LotteryShared/types.js';
|
|
11
|
-
import type { Theme } from '../../types/props.js';
|
|
12
|
-
export type { Theme };
|
|
13
|
-
/**
|
|
14
|
-
* 响应式媒体资源
|
|
15
|
-
*
|
|
16
|
-
* 支持按断点配置不同的媒体资源 URL,实现响应式加载。
|
|
17
|
-
* 断点: tablet(768), laptop(1025), desktop(1440), lg-desktop(1920) — min-width
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```tsx
|
|
21
|
-
* const media: ResponsiveMedia = {
|
|
22
|
-
* default: '/images/banner-mobile.jpg',
|
|
23
|
-
* tablet: '/images/banner-tablet.jpg',
|
|
24
|
-
* laptop: '/images/banner-laptop.jpg',
|
|
25
|
-
* desktop: '/images/banner-desktop.jpg',
|
|
26
|
-
* lgDesktop: '/images/banner-lg.jpg',
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export interface ResponsiveMedia {
|
|
31
|
-
/** 默认资源(移动端 <768px) */
|
|
32
|
-
default: string;
|
|
33
|
-
/** 平板资源 ≥768px */
|
|
34
|
-
tablet?: string;
|
|
35
|
-
/** 小桌面资源 ≥1025px */
|
|
36
|
-
laptop?: string;
|
|
37
|
-
/** 大桌面资源 ≥1440px */
|
|
38
|
-
desktop?: string;
|
|
39
|
-
/** 超大屏资源 ≥1920px */
|
|
40
|
-
lgDesktop?: string;
|
|
41
|
-
}
|
|
10
|
+
import type { Prize, WinnerModalConfig, ShareModalConfig, ChanceMethod, WinningInfo, RulesModalConfig, ActionButtonConfig, MyRewardsModalConfig, ErrorModalConfig, UserData, ChanceMechanismType, ChanceInputConfig } from '../LotteryShared/types.js';
|
|
11
|
+
import type { Theme, Media } from '../../types/props.js';
|
|
12
|
+
export type { Theme, Media };
|
|
42
13
|
/**
|
|
43
14
|
* 媒体配置(MediaConfig)
|
|
44
15
|
*
|
|
45
|
-
*
|
|
46
|
-
* 图片支持响应式断点加载不同尺寸。
|
|
16
|
+
* 精确对齐 CMS block 字段结构,直接映射无需额外转换。
|
|
47
17
|
*
|
|
48
18
|
* @example
|
|
49
19
|
* ```tsx
|
|
50
|
-
* // 图片模式(简单)
|
|
51
|
-
* const imageMedia: MediaConfig = {
|
|
52
|
-
* type: 'image',
|
|
53
|
-
* src: 'https://cdn.example.com/banner.jpg',
|
|
54
|
-
* alt: 'Product Lottery Banner',
|
|
55
|
-
* }
|
|
56
|
-
*
|
|
57
20
|
* // 图片模式(响应式)
|
|
58
|
-
* const
|
|
21
|
+
* const imageMedia: MediaConfig = {
|
|
59
22
|
* type: 'image',
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* },
|
|
65
|
-
* alt: 'Product Lottery Banner',
|
|
23
|
+
* image: { url: '/img/banner-sm.jpg', alt: 'Banner', thumbnailURL: '' },
|
|
24
|
+
* imageTablet: { url: '/img/banner-md.jpg', alt: 'Banner', thumbnailURL: '' },
|
|
25
|
+
* imageLaptop: { url: '/img/banner-lg.jpg', alt: 'Banner', thumbnailURL: '' },
|
|
26
|
+
* imageDesktop: { url: '/img/banner-xl.jpg', alt: 'Banner', thumbnailURL: '' },
|
|
27
|
+
* imageLgDesktop: { url: '/img/banner-xxl.jpg', alt: 'Banner', thumbnailURL: '' },
|
|
66
28
|
* }
|
|
67
29
|
*
|
|
68
30
|
* // 视频模式
|
|
69
31
|
* const videoMedia: MediaConfig = {
|
|
70
32
|
* type: 'video',
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
33
|
+
* video: {
|
|
34
|
+
* url: 'https://cdn.example.com/promo.mp4',
|
|
35
|
+
* alt: 'Product Lottery Video',
|
|
36
|
+
* thumbnailURL: 'https://cdn.example.com/poster.jpg',
|
|
37
|
+
* mimeType: 'video/mp4',
|
|
38
|
+
* },
|
|
76
39
|
* }
|
|
77
40
|
* ```
|
|
78
41
|
*/
|
|
79
42
|
export interface MediaConfig {
|
|
80
43
|
/** 媒体类型 */
|
|
81
44
|
type: 'image' | 'video';
|
|
82
|
-
/**
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
* 是否自动播放(仅 type='video' 时有效)
|
|
95
|
-
* @default true
|
|
96
|
-
* @optional
|
|
97
|
-
*/
|
|
98
|
-
autoPlay?: boolean;
|
|
99
|
-
/**
|
|
100
|
-
* 是否静音(仅 type='video' 时有效)
|
|
101
|
-
* @default true
|
|
102
|
-
* @optional
|
|
103
|
-
*/
|
|
104
|
-
muted?: boolean;
|
|
105
|
-
/**
|
|
106
|
-
* 是否循环播放(仅 type='video' 时有效)
|
|
107
|
-
* @default true
|
|
108
|
-
* @optional
|
|
109
|
-
*/
|
|
110
|
-
loop?: boolean;
|
|
111
|
-
/**
|
|
112
|
-
* 图片替代文本(无障碍)
|
|
113
|
-
* @optional
|
|
114
|
-
*/
|
|
115
|
-
alt?: string;
|
|
45
|
+
/** 默认/移动端图片(<768px) */
|
|
46
|
+
image?: Media;
|
|
47
|
+
/** 平板端图片(≥768px) */
|
|
48
|
+
imageTablet?: Media;
|
|
49
|
+
/** 小桌面图片(≥1025px) */
|
|
50
|
+
imageLaptop?: Media;
|
|
51
|
+
/** 大桌面图片(≥1440px) */
|
|
52
|
+
imageDesktop?: Media;
|
|
53
|
+
/** 超大屏图片(≥1920px) */
|
|
54
|
+
imageLgDesktop?: Media;
|
|
55
|
+
/** 视频媒体(mimeType: 'video/mp4',thumbnailURL 作封面图) */
|
|
56
|
+
video?: Media;
|
|
116
57
|
}
|
|
117
58
|
/**
|
|
118
59
|
* CTA 按钮配置(CtaButtonConfig)
|
|
@@ -213,8 +154,23 @@ export interface MediaDrawAreaProps {
|
|
|
213
154
|
theme?: Theme;
|
|
214
155
|
/** 媒体配置(必需) */
|
|
215
156
|
media: MediaConfig;
|
|
216
|
-
/** CTA
|
|
157
|
+
/** CTA 按钒配置 */
|
|
217
158
|
ctaButton?: CtaButtonConfig;
|
|
159
|
+
/**
|
|
160
|
+
* 视频自动播放(仅 mimeType='video/mp4' 时有效)
|
|
161
|
+
* @default true
|
|
162
|
+
*/
|
|
163
|
+
videoAutoPlay?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* 视频静音(仅 mimeType='video/mp4' 时有效)
|
|
166
|
+
* @default true
|
|
167
|
+
*/
|
|
168
|
+
videoMuted?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* 视频循环(仅 mimeType='video/mp4' 时有效)
|
|
171
|
+
* @default true
|
|
172
|
+
*/
|
|
173
|
+
videoLoop?: boolean;
|
|
218
174
|
/** 是否正在抽奖中 */
|
|
219
175
|
isDrawing?: boolean;
|
|
220
176
|
/** 是否禁用(未登录或无次数) */
|
|
@@ -223,6 +179,10 @@ export interface MediaDrawAreaProps {
|
|
|
223
179
|
onClick: () => void;
|
|
224
180
|
/** 自定义类名 */
|
|
225
181
|
className?: string;
|
|
182
|
+
/** 点击追踪:data-headless-type-name 属性值,格式 `{clickType}#{componentName}` */
|
|
183
|
+
ctaTrackTypeName?: string;
|
|
184
|
+
/** 点击追踪:data-headless-title-desc-button 属性值,格式 `{title}#{desc}#{buttonName}` */
|
|
185
|
+
ctaTrackTitleDescButton?: string;
|
|
226
186
|
}
|
|
227
187
|
/**
|
|
228
188
|
* ProductLottery 组件 Props
|
|
@@ -254,9 +214,27 @@ export interface ProductLotteryProps {
|
|
|
254
214
|
prizes: Prize[];
|
|
255
215
|
/**
|
|
256
216
|
* 媒体配置(必需)
|
|
257
|
-
*
|
|
217
|
+
* 配置左侧抽奖区域展示的图片或视频,无需 type/src 包装层
|
|
258
218
|
*/
|
|
259
219
|
media: MediaConfig;
|
|
220
|
+
/**
|
|
221
|
+
* 视频自动播放(当 media.mimeType === 'video/mp4' 时生效)
|
|
222
|
+
* @default true
|
|
223
|
+
* @optional
|
|
224
|
+
*/
|
|
225
|
+
videoAutoPlay?: boolean;
|
|
226
|
+
/**
|
|
227
|
+
* 视频静音(当 media.mimeType === 'video/mp4' 时生效)
|
|
228
|
+
* @default true
|
|
229
|
+
* @optional
|
|
230
|
+
*/
|
|
231
|
+
videoMuted?: boolean;
|
|
232
|
+
/**
|
|
233
|
+
* 视频循环(当 media.mimeType === 'video/mp4' 时生效)
|
|
234
|
+
* @default true
|
|
235
|
+
* @optional
|
|
236
|
+
*/
|
|
237
|
+
videoLoop?: boolean;
|
|
260
238
|
/** 主题模式 */
|
|
261
239
|
theme?: Theme;
|
|
262
240
|
/** CTA 按钮配置 */
|
|
@@ -299,6 +277,12 @@ export interface ProductLotteryProps {
|
|
|
299
277
|
* @default []
|
|
300
278
|
*/
|
|
301
279
|
winningInfos?: WinningInfo[];
|
|
280
|
+
/**
|
|
281
|
+
* 中奖滚动 Ticker 文案模板,支持 {{name}} 和 {{prize}} 变量
|
|
282
|
+
* @default "{{name}} just won {{prize}}!"
|
|
283
|
+
* @optional
|
|
284
|
+
*/
|
|
285
|
+
winnerNameTemplate?: string;
|
|
302
286
|
/** 奖品池展示区域标题 */
|
|
303
287
|
prizesTitle?: string;
|
|
304
288
|
/**
|
|
@@ -320,6 +304,8 @@ export interface ProductLotteryProps {
|
|
|
320
304
|
winnerModalConfig?: WinnerModalConfig;
|
|
321
305
|
/** 规则弹窗配置 */
|
|
322
306
|
rulesModalConfig?: RulesModalConfig;
|
|
307
|
+
/** 顶栏右侧跳转按钮配置;未配置 text 或 url 时不展示 */
|
|
308
|
+
actionButtonConfig?: ActionButtonConfig;
|
|
323
309
|
/** 我的奖励弹窗配置 */
|
|
324
310
|
myRewardsModalConfig?: MyRewardsModalConfig;
|
|
325
311
|
/** 错误弹窗配置 */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var t=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
"use strict";var t=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var g=(o,e)=>{for(var n in e)t(o,n,{get:e[n],enumerable:!0})},l=(o,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of d(e))!s.call(o,i)&&i!==n&&t(o,i,{get:()=>e[i],enumerable:!(r=a(e,i))||r.enumerable});return o};var c=o=>l(t({},"__esModule",{value:!0}),o);var f={};g(f,{DEFAULT_CHANCE_TITLE:()=>C,DEFAULT_CTA_BUTTON:()=>h});module.exports=c(f);const h={text:"",style:"primary"},C="Want more chances to win?";
|
|
2
2
|
//# sourceMappingURL=types.js.map
|