@anker-in/headless-ui 1.1.2 → 1.1.5

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.
Files changed (519) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.js.map +2 -2
  2. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +4 -0
  3. package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
  4. package/dist/cjs/biz-components/AiuiProvider/index.js.map +2 -2
  5. package/dist/cjs/biz-components/AplusDesc/index.d.ts +22 -0
  6. package/dist/cjs/biz-components/AplusDesc/index.js +2 -0
  7. package/dist/cjs/biz-components/AplusDesc/index.js.map +7 -0
  8. package/dist/cjs/biz-components/Category/SwiperCategory.js.map +2 -2
  9. package/dist/cjs/biz-components/Category/index.js +1 -1
  10. package/dist/cjs/biz-components/Category/index.js.map +2 -2
  11. package/dist/cjs/biz-components/CreativeModule/index.js +1 -1
  12. package/dist/cjs/biz-components/CreativeModule/index.js.map +2 -2
  13. package/dist/cjs/biz-components/DownLoad/index.d.ts +20 -0
  14. package/dist/cjs/biz-components/DownLoad/index.js +2 -0
  15. package/dist/cjs/biz-components/DownLoad/index.js.map +7 -0
  16. package/dist/cjs/biz-components/Evaluate/index.js +1 -1
  17. package/dist/cjs/biz-components/Evaluate/index.js.map +1 -1
  18. package/dist/cjs/biz-components/Faq/Faq.js +1 -1
  19. package/dist/cjs/biz-components/Faq/Faq.js.map +2 -2
  20. package/dist/cjs/biz-components/Features/index.js +1 -1
  21. package/dist/cjs/biz-components/Features/index.js.map +2 -2
  22. package/dist/cjs/biz-components/FootCharger/index.js +1 -1
  23. package/dist/cjs/biz-components/FootCharger/index.js.map +2 -2
  24. package/dist/cjs/biz-components/FooterNavigation/index.js +1 -1
  25. package/dist/cjs/biz-components/FooterNavigation/index.js.map +2 -2
  26. package/dist/cjs/biz-components/GiftBox/index.d.ts +17 -0
  27. package/dist/cjs/biz-components/GiftBox/index.js +2 -0
  28. package/dist/cjs/biz-components/GiftBox/index.js.map +7 -0
  29. package/dist/cjs/biz-components/Graphic/index.js +1 -1
  30. package/dist/cjs/biz-components/Graphic/index.js.map +2 -2
  31. package/dist/cjs/biz-components/GraphicMore/index.js +1 -1
  32. package/dist/cjs/biz-components/GraphicMore/index.js.map +2 -2
  33. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.js.map +1 -1
  34. package/dist/cjs/biz-components/HeaderNavigation/NavProvider.js.map +2 -2
  35. package/dist/cjs/biz-components/HeaderNavigation/icons/Polygon.js.map +1 -1
  36. package/dist/cjs/biz-components/HeaderNavigation/index.js +1 -1
  37. package/dist/cjs/biz-components/HeaderNavigation/index.js.map +2 -2
  38. package/dist/cjs/biz-components/HeaderNavigation/withCategory.d.ts +1 -1
  39. package/dist/cjs/biz-components/HeaderNavigation/withCategory.js.map +2 -2
  40. package/dist/cjs/biz-components/HeroBanner/Countdown.js +1 -1
  41. package/dist/cjs/biz-components/HeroBanner/Countdown.js.map +1 -1
  42. package/dist/cjs/biz-components/Listing/BizProductProvider.d.ts +126 -0
  43. package/dist/cjs/biz-components/Listing/BizProductProvider.js +2 -0
  44. package/dist/cjs/biz-components/Listing/BizProductProvider.js.map +7 -0
  45. package/dist/cjs/biz-components/Listing/components/PaidShipping/LearnMore.d.ts +2 -0
  46. package/dist/cjs/biz-components/Listing/components/PaidShipping/LearnMore.js +2 -0
  47. package/dist/cjs/biz-components/Listing/components/PaidShipping/LearnMore.js.map +7 -0
  48. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingMethod.d.ts +10 -0
  49. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingMethod.js +2 -0
  50. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingMethod.js.map +7 -0
  51. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.d.ts +25 -0
  52. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js +2 -0
  53. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js.map +7 -0
  54. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +15 -0
  55. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.js +2 -0
  56. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.js.map +7 -0
  57. package/dist/cjs/biz-components/Listing/components/PaidShipping/type.d.ts +30 -0
  58. package/dist/cjs/biz-components/Listing/components/PaidShipping/type.js +2 -0
  59. package/dist/cjs/biz-components/Listing/components/PaidShipping/type.js.map +7 -0
  60. package/dist/cjs/biz-components/Listing/components/PaidShipping/utils.d.ts +2 -0
  61. package/dist/cjs/biz-components/Listing/components/PaidShipping/utils.js +2 -0
  62. package/dist/cjs/biz-components/Listing/components/PaidShipping/utils.js.map +7 -0
  63. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +39 -0
  64. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +39 -0
  65. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +7 -0
  66. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.d.ts +10 -0
  67. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.js +2 -0
  68. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.js.map +7 -0
  69. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.d.ts +30 -0
  70. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +2 -0
  71. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +7 -0
  72. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +5 -0
  73. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +2 -0
  74. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +7 -0
  75. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +5 -0
  76. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +2 -0
  77. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +7 -0
  78. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +5 -0
  79. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +2 -0
  80. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +7 -0
  81. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +5 -0
  82. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +2 -0
  83. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +7 -0
  84. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +5 -0
  85. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js +2 -0
  86. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js.map +7 -0
  87. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +2 -0
  88. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  89. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  90. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.d.ts +43 -0
  91. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.js +2 -0
  92. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.js.map +7 -0
  93. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.d.ts +2 -0
  94. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js +2 -0
  95. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js.map +7 -0
  96. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.d.ts +21 -0
  97. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js +2 -0
  98. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js.map +7 -0
  99. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.d.ts +5 -0
  100. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js +2 -0
  101. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js.map +7 -0
  102. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.d.ts +1 -0
  103. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js +2 -0
  104. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js.map +7 -0
  105. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +8 -0
  106. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js +2 -0
  107. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +7 -0
  108. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.d.ts +73 -0
  109. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.js +2 -0
  110. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.js.map +7 -0
  111. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.d.ts +6 -0
  112. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.js +2 -0
  113. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.js.map +7 -0
  114. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +5 -0
  115. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js +2 -0
  116. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +7 -0
  117. package/dist/cjs/biz-components/Listing/components/ProductCard/index.d.ts +2 -0
  118. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js +2 -0
  119. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  120. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.d.ts +2 -0
  121. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +2 -0
  122. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +7 -0
  123. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.d.ts +3 -0
  124. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +2 -0
  125. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +7 -0
  126. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.d.ts +12 -0
  127. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js +2 -0
  128. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js.map +7 -0
  129. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +6 -0
  130. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.js +2 -0
  131. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.js.map +7 -0
  132. package/dist/cjs/biz-components/Listing/components/PurchaseBar/types.d.ts +12 -0
  133. package/dist/cjs/biz-components/Listing/components/PurchaseBar/types.js +2 -0
  134. package/dist/cjs/biz-components/Listing/components/PurchaseBar/types.js.map +7 -0
  135. package/dist/cjs/biz-components/Listing/components/index.d.ts +3 -0
  136. package/dist/cjs/biz-components/Listing/components/index.js +2 -0
  137. package/dist/cjs/biz-components/Listing/components/index.js.map +7 -0
  138. package/dist/cjs/biz-components/Listing/const.d.ts +29 -0
  139. package/dist/cjs/biz-components/Listing/const.js +2 -0
  140. package/dist/cjs/biz-components/Listing/const.js.map +7 -0
  141. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.d.ts +14 -0
  142. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.js +2 -0
  143. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.js.map +7 -0
  144. package/dist/cjs/biz-components/Listing/hooks/use-variant.d.ts +5 -0
  145. package/dist/cjs/biz-components/Listing/hooks/use-variant.js +2 -0
  146. package/dist/cjs/biz-components/Listing/hooks/use-variant.js.map +7 -0
  147. package/dist/cjs/biz-components/Listing/hooks/useBenefits.d.ts +50 -0
  148. package/dist/cjs/biz-components/Listing/hooks/useBenefits.js +2 -0
  149. package/dist/cjs/biz-components/Listing/hooks/useBenefits.js.map +7 -0
  150. package/dist/cjs/biz-components/Listing/hooks/useCopy.d.ts +5 -0
  151. package/dist/cjs/biz-components/Listing/hooks/useCopy.js +2 -0
  152. package/dist/cjs/biz-components/Listing/hooks/useCopy.js.map +7 -0
  153. package/dist/cjs/biz-components/Listing/hooks/useDiscountEnable.d.ts +14 -0
  154. package/dist/cjs/biz-components/Listing/hooks/useDiscountEnable.js +2 -0
  155. package/dist/cjs/biz-components/Listing/hooks/useDiscountEnable.js.map +7 -0
  156. package/dist/cjs/biz-components/Listing/index.d.ts +3 -0
  157. package/dist/cjs/biz-components/Listing/index.js +2 -0
  158. package/dist/cjs/biz-components/Listing/index.js.map +7 -0
  159. package/dist/cjs/biz-components/Listing/types/graphql.d.ts +7473 -0
  160. package/dist/cjs/biz-components/Listing/types/graphql.js +2 -0
  161. package/dist/cjs/biz-components/Listing/types/graphql.js.map +7 -0
  162. package/dist/cjs/biz-components/Listing/types/product.d.ts +141 -0
  163. package/dist/cjs/biz-components/Listing/types/product.js +2 -0
  164. package/dist/cjs/biz-components/Listing/types/product.js.map +7 -0
  165. package/dist/cjs/biz-components/Listing/types/productMetafields.d.js +2 -0
  166. package/dist/cjs/biz-components/Listing/types/productMetafields.d.js.map +7 -0
  167. package/dist/cjs/biz-components/Listing/types/type-helper.d.ts +5 -0
  168. package/dist/cjs/biz-components/Listing/types/type-helper.js +2 -0
  169. package/dist/cjs/biz-components/Listing/types/type-helper.js.map +7 -0
  170. package/dist/cjs/biz-components/Listing/types.d.ts +29 -0
  171. package/dist/cjs/biz-components/Listing/types.js +2 -0
  172. package/dist/cjs/biz-components/Listing/types.js.map +7 -0
  173. package/dist/cjs/biz-components/Listing/utils/helper.d.ts +36 -0
  174. package/dist/cjs/biz-components/Listing/utils/helper.js +2 -0
  175. package/dist/cjs/biz-components/Listing/utils/helper.js.map +7 -0
  176. package/dist/cjs/biz-components/Listing/utils/index.d.ts +37 -0
  177. package/dist/cjs/biz-components/Listing/utils/index.js +2 -0
  178. package/dist/cjs/biz-components/Listing/utils/index.js.map +7 -0
  179. package/dist/cjs/biz-components/Listing/utils/textFormat.d.ts +73 -0
  180. package/dist/cjs/biz-components/Listing/utils/textFormat.js +2 -0
  181. package/dist/cjs/biz-components/Listing/utils/textFormat.js.map +7 -0
  182. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  183. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  184. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.d.ts +2 -0
  185. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.js +1 -1
  186. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.js.map +1 -1
  187. package/dist/cjs/biz-components/NavigationSearch/index.js +2 -2
  188. package/dist/cjs/biz-components/NavigationSearch/index.js.map +2 -2
  189. package/dist/cjs/biz-components/NavigationSearch/types.js.map +1 -1
  190. package/dist/cjs/biz-components/SearchPage/index.js +1 -1
  191. package/dist/cjs/biz-components/SearchPage/index.js.map +2 -2
  192. package/dist/cjs/biz-components/SearchPage/types.js.map +2 -2
  193. package/dist/cjs/biz-components/SelectStore/index.d.ts +20 -0
  194. package/dist/cjs/biz-components/SelectStore/index.js +2 -0
  195. package/dist/cjs/biz-components/SelectStore/index.js.map +7 -0
  196. package/dist/cjs/biz-components/ShelfDisplay/index.js +1 -1
  197. package/dist/cjs/biz-components/ShelfDisplay/index.js.map +1 -1
  198. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js.map +1 -1
  199. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  200. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +1 -1
  201. package/dist/cjs/biz-components/Slogan/index.js.map +2 -2
  202. package/dist/cjs/biz-components/Specs/dropdown.js +2 -2
  203. package/dist/cjs/biz-components/Specs/dropdown.js.map +2 -2
  204. package/dist/cjs/biz-components/Specs/index.js +1 -1
  205. package/dist/cjs/biz-components/Specs/index.js.map +3 -3
  206. package/dist/cjs/biz-components/Subscribe/index.js +1 -1
  207. package/dist/cjs/biz-components/Subscribe/index.js.map +2 -2
  208. package/dist/cjs/biz-components/SwiperBox/index.js.map +2 -2
  209. package/dist/cjs/biz-components/Tabs/types.js.map +1 -1
  210. package/dist/cjs/biz-components/TextModal/index.js +1 -1
  211. package/dist/cjs/biz-components/TextModal/index.js.map +1 -1
  212. package/dist/cjs/biz-components/Title/index.js +1 -1
  213. package/dist/cjs/biz-components/Title/index.js.map +2 -2
  214. package/dist/cjs/biz-components/VideoModal/index.js +1 -1
  215. package/dist/cjs/biz-components/VideoModal/index.js.map +2 -2
  216. package/dist/cjs/biz-components/index.d.ts +57 -1
  217. package/dist/cjs/biz-components/index.js +1 -1
  218. package/dist/cjs/biz-components/index.js.map +3 -3
  219. package/dist/cjs/components/ExposureDetector.d.ts +45 -0
  220. package/dist/cjs/components/ExposureDetector.js +2 -0
  221. package/dist/cjs/components/ExposureDetector.js.map +7 -0
  222. package/dist/cjs/components/board.js +1 -1
  223. package/dist/cjs/components/board.js.map +3 -3
  224. package/dist/cjs/components/button.js.map +2 -2
  225. package/dist/cjs/components/checkbox.d.ts +1 -0
  226. package/dist/cjs/components/checkbox.js +1 -1
  227. package/dist/cjs/components/checkbox.js.map +3 -3
  228. package/dist/cjs/components/dialog.d.ts +1 -1
  229. package/dist/cjs/components/dialog.js +1 -1
  230. package/dist/cjs/components/dialog.js.map +2 -2
  231. package/dist/cjs/components/index.d.ts +1 -0
  232. package/dist/cjs/components/index.js +1 -1
  233. package/dist/cjs/components/index.js.map +3 -3
  234. package/dist/cjs/components/loadingDots.js +1 -1
  235. package/dist/cjs/components/loadingDots.js.map +2 -2
  236. package/dist/cjs/components/picture.js +1 -1
  237. package/dist/cjs/components/picture.js.map +2 -2
  238. package/dist/cjs/cpn-components/CpnNavigation/index.js +1 -1
  239. package/dist/cjs/cpn-components/CpnNavigation/index.js.map +3 -3
  240. package/dist/cjs/cpn-components/CpnNavigation/types.d.ts +1 -0
  241. package/dist/cjs/cpn-components/CpnNavigation/types.js +1 -1
  242. package/dist/cjs/cpn-components/CpnNavigation/types.js.map +3 -3
  243. package/dist/cjs/cpn-components/CpnProductCard/types.d.ts +1 -1
  244. package/dist/cjs/cpn-components/CpnProductCard/types.js.map +1 -1
  245. package/dist/cjs/helpers/utils.js.map +1 -1
  246. package/dist/cjs/hooks/useExposure.js.map +2 -2
  247. package/dist/cjs/hooks/useExposureDetection.d.ts +69 -0
  248. package/dist/cjs/hooks/useExposureDetection.js +2 -0
  249. package/dist/cjs/hooks/useExposureDetection.js.map +7 -0
  250. package/dist/cjs/hooks/useIntersectionObserver.js.map +2 -2
  251. package/dist/cjs/hooks/useRollout.js.map +2 -2
  252. package/dist/cjs/stories/board.stories.d.ts +1 -1
  253. package/dist/cjs/stories/board.stories.js +1 -1
  254. package/dist/cjs/stories/board.stories.js.map +2 -2
  255. package/dist/cjs/stories/carousel.stories.d.ts +3 -57
  256. package/dist/cjs/stories/carousel.stories.js.map +2 -2
  257. package/dist/cjs/stories/specs.stories.js.map +2 -2
  258. package/dist/esm/biz-components/AccordionCards/index.js.map +2 -2
  259. package/dist/esm/biz-components/AiuiProvider/index.d.ts +4 -0
  260. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  261. package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
  262. package/dist/esm/biz-components/AplusDesc/index.d.ts +22 -0
  263. package/dist/esm/biz-components/AplusDesc/index.js +2 -0
  264. package/dist/esm/biz-components/AplusDesc/index.js.map +7 -0
  265. package/dist/esm/biz-components/Category/SwiperCategory.js.map +2 -2
  266. package/dist/esm/biz-components/Category/index.js +1 -1
  267. package/dist/esm/biz-components/Category/index.js.map +2 -2
  268. package/dist/esm/biz-components/CreativeModule/index.js +1 -1
  269. package/dist/esm/biz-components/CreativeModule/index.js.map +2 -2
  270. package/dist/esm/biz-components/DownLoad/index.d.ts +20 -0
  271. package/dist/esm/biz-components/DownLoad/index.js +2 -0
  272. package/dist/esm/biz-components/DownLoad/index.js.map +7 -0
  273. package/dist/esm/biz-components/Evaluate/index.js +1 -1
  274. package/dist/esm/biz-components/Evaluate/index.js.map +1 -1
  275. package/dist/esm/biz-components/Faq/Faq.js +1 -1
  276. package/dist/esm/biz-components/Faq/Faq.js.map +3 -3
  277. package/dist/esm/biz-components/Features/index.js +1 -1
  278. package/dist/esm/biz-components/Features/index.js.map +2 -2
  279. package/dist/esm/biz-components/FootCharger/index.js +1 -1
  280. package/dist/esm/biz-components/FootCharger/index.js.map +2 -2
  281. package/dist/esm/biz-components/FooterNavigation/index.js +1 -1
  282. package/dist/esm/biz-components/FooterNavigation/index.js.map +2 -2
  283. package/dist/esm/biz-components/GiftBox/index.d.ts +17 -0
  284. package/dist/esm/biz-components/GiftBox/index.js +2 -0
  285. package/dist/esm/biz-components/GiftBox/index.js.map +7 -0
  286. package/dist/esm/biz-components/Graphic/index.js +1 -1
  287. package/dist/esm/biz-components/Graphic/index.js.map +2 -2
  288. package/dist/esm/biz-components/GraphicMore/index.js +1 -1
  289. package/dist/esm/biz-components/GraphicMore/index.js.map +2 -2
  290. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.js.map +1 -1
  291. package/dist/esm/biz-components/HeaderNavigation/NavProvider.js.map +2 -2
  292. package/dist/esm/biz-components/HeaderNavigation/icons/Polygon.js.map +1 -1
  293. package/dist/esm/biz-components/HeaderNavigation/index.js +1 -1
  294. package/dist/esm/biz-components/HeaderNavigation/index.js.map +2 -2
  295. package/dist/esm/biz-components/HeaderNavigation/withCategory.d.ts +1 -1
  296. package/dist/esm/biz-components/HeaderNavigation/withCategory.js.map +2 -2
  297. package/dist/esm/biz-components/HeroBanner/Countdown.js +1 -1
  298. package/dist/esm/biz-components/HeroBanner/Countdown.js.map +1 -1
  299. package/dist/esm/biz-components/Listing/BizProductProvider.d.ts +126 -0
  300. package/dist/esm/biz-components/Listing/BizProductProvider.js +2 -0
  301. package/dist/esm/biz-components/Listing/BizProductProvider.js.map +7 -0
  302. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.d.ts +2 -0
  303. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.js +2 -0
  304. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.js.map +7 -0
  305. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.d.ts +10 -0
  306. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.js +2 -0
  307. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.js.map +7 -0
  308. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.d.ts +25 -0
  309. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js +2 -0
  310. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js.map +7 -0
  311. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +15 -0
  312. package/dist/esm/biz-components/Listing/components/PaidShipping/index.js +2 -0
  313. package/dist/esm/biz-components/Listing/components/PaidShipping/index.js.map +7 -0
  314. package/dist/esm/biz-components/Listing/components/PaidShipping/type.d.ts +30 -0
  315. package/dist/esm/biz-components/Listing/components/PaidShipping/type.js +2 -0
  316. package/dist/esm/biz-components/Listing/components/PaidShipping/type.js.map +7 -0
  317. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.d.ts +2 -0
  318. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.js +2 -0
  319. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.js.map +7 -0
  320. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +39 -0
  321. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +39 -0
  322. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +7 -0
  323. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.d.ts +10 -0
  324. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.js +2 -0
  325. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.js.map +7 -0
  326. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.d.ts +30 -0
  327. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +2 -0
  328. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +7 -0
  329. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +5 -0
  330. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +2 -0
  331. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +7 -0
  332. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +5 -0
  333. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +2 -0
  334. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +7 -0
  335. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +5 -0
  336. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +2 -0
  337. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +7 -0
  338. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +5 -0
  339. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +2 -0
  340. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +7 -0
  341. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +5 -0
  342. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js +2 -0
  343. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js.map +7 -0
  344. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +2 -0
  345. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  346. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  347. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.d.ts +43 -0
  348. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.js +2 -0
  349. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.js.map +7 -0
  350. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.d.ts +2 -0
  351. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js +2 -0
  352. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js.map +7 -0
  353. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.d.ts +21 -0
  354. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js +2 -0
  355. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js.map +7 -0
  356. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.d.ts +5 -0
  357. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js +2 -0
  358. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js.map +7 -0
  359. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.d.ts +1 -0
  360. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js +2 -0
  361. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js.map +7 -0
  362. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +8 -0
  363. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js +2 -0
  364. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +7 -0
  365. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.d.ts +73 -0
  366. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.js +2 -0
  367. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.js.map +7 -0
  368. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.d.ts +6 -0
  369. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.js +2 -0
  370. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.js.map +7 -0
  371. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +5 -0
  372. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js +2 -0
  373. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +7 -0
  374. package/dist/esm/biz-components/Listing/components/ProductCard/index.d.ts +2 -0
  375. package/dist/esm/biz-components/Listing/components/ProductCard/index.js +2 -0
  376. package/dist/esm/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  377. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.d.ts +2 -0
  378. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +2 -0
  379. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +7 -0
  380. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.d.ts +3 -0
  381. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +2 -0
  382. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +7 -0
  383. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.d.ts +12 -0
  384. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js +1 -0
  385. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js.map +7 -0
  386. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +6 -0
  387. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.js +2 -0
  388. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.js.map +7 -0
  389. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.d.ts +12 -0
  390. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.js +1 -0
  391. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.js.map +7 -0
  392. package/dist/esm/biz-components/Listing/components/index.d.ts +3 -0
  393. package/dist/esm/biz-components/Listing/components/index.js +2 -0
  394. package/dist/esm/biz-components/Listing/components/index.js.map +7 -0
  395. package/dist/esm/biz-components/Listing/const.d.ts +29 -0
  396. package/dist/esm/biz-components/Listing/const.js +2 -0
  397. package/dist/esm/biz-components/Listing/const.js.map +7 -0
  398. package/dist/esm/biz-components/Listing/hooks/use-variant-media.d.ts +14 -0
  399. package/dist/esm/biz-components/Listing/hooks/use-variant-media.js +2 -0
  400. package/dist/esm/biz-components/Listing/hooks/use-variant-media.js.map +7 -0
  401. package/dist/esm/biz-components/Listing/hooks/use-variant.d.ts +5 -0
  402. package/dist/esm/biz-components/Listing/hooks/use-variant.js +2 -0
  403. package/dist/esm/biz-components/Listing/hooks/use-variant.js.map +7 -0
  404. package/dist/esm/biz-components/Listing/hooks/useBenefits.d.ts +50 -0
  405. package/dist/esm/biz-components/Listing/hooks/useBenefits.js +2 -0
  406. package/dist/esm/biz-components/Listing/hooks/useBenefits.js.map +7 -0
  407. package/dist/esm/biz-components/Listing/hooks/useCopy.d.ts +5 -0
  408. package/dist/esm/biz-components/Listing/hooks/useCopy.js +2 -0
  409. package/dist/esm/biz-components/Listing/hooks/useCopy.js.map +7 -0
  410. package/dist/esm/biz-components/Listing/hooks/useDiscountEnable.d.ts +14 -0
  411. package/dist/esm/biz-components/Listing/hooks/useDiscountEnable.js +2 -0
  412. package/dist/esm/biz-components/Listing/hooks/useDiscountEnable.js.map +7 -0
  413. package/dist/esm/biz-components/Listing/index.d.ts +3 -0
  414. package/dist/esm/biz-components/Listing/index.js +2 -0
  415. package/dist/esm/biz-components/Listing/index.js.map +7 -0
  416. package/dist/esm/biz-components/Listing/types/graphql.d.ts +7473 -0
  417. package/dist/esm/biz-components/Listing/types/graphql.js +2 -0
  418. package/dist/esm/biz-components/Listing/types/graphql.js.map +7 -0
  419. package/dist/esm/biz-components/Listing/types/product.d.ts +141 -0
  420. package/dist/esm/biz-components/Listing/types/product.js +2 -0
  421. package/dist/esm/biz-components/Listing/types/product.js.map +7 -0
  422. package/dist/esm/biz-components/Listing/types/productMetafields.d.js +2 -0
  423. package/dist/esm/biz-components/Listing/types/productMetafields.d.js.map +7 -0
  424. package/dist/esm/biz-components/Listing/types/type-helper.d.ts +5 -0
  425. package/dist/esm/biz-components/Listing/types/type-helper.js +1 -0
  426. package/dist/esm/biz-components/Listing/types/type-helper.js.map +7 -0
  427. package/dist/esm/biz-components/Listing/types.d.ts +29 -0
  428. package/dist/esm/biz-components/Listing/types.js +1 -0
  429. package/dist/esm/biz-components/Listing/types.js.map +7 -0
  430. package/dist/esm/biz-components/Listing/utils/helper.d.ts +36 -0
  431. package/dist/esm/biz-components/Listing/utils/helper.js +2 -0
  432. package/dist/esm/biz-components/Listing/utils/helper.js.map +7 -0
  433. package/dist/esm/biz-components/Listing/utils/index.d.ts +37 -0
  434. package/dist/esm/biz-components/Listing/utils/index.js +2 -0
  435. package/dist/esm/biz-components/Listing/utils/index.js.map +7 -0
  436. package/dist/esm/biz-components/Listing/utils/textFormat.d.ts +73 -0
  437. package/dist/esm/biz-components/Listing/utils/textFormat.js +2 -0
  438. package/dist/esm/biz-components/Listing/utils/textFormat.js.map +7 -0
  439. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  440. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  441. package/dist/esm/biz-components/MultiLayoutGraphicBlock/types.d.ts +2 -0
  442. package/dist/esm/biz-components/NavigationSearch/index.js +2 -2
  443. package/dist/esm/biz-components/NavigationSearch/index.js.map +2 -2
  444. package/dist/esm/biz-components/NavigationSearch/types.js.map +1 -1
  445. package/dist/esm/biz-components/SearchPage/index.js +1 -1
  446. package/dist/esm/biz-components/SearchPage/index.js.map +2 -2
  447. package/dist/esm/biz-components/SearchPage/types.js.map +2 -2
  448. package/dist/esm/biz-components/SelectStore/index.d.ts +20 -0
  449. package/dist/esm/biz-components/SelectStore/index.js +2 -0
  450. package/dist/esm/biz-components/SelectStore/index.js.map +7 -0
  451. package/dist/esm/biz-components/ShelfDisplay/index.js +1 -1
  452. package/dist/esm/biz-components/ShelfDisplay/index.js.map +1 -1
  453. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js.map +1 -1
  454. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  455. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +1 -1
  456. package/dist/esm/biz-components/Slogan/index.js.map +2 -2
  457. package/dist/esm/biz-components/Specs/dropdown.js +2 -2
  458. package/dist/esm/biz-components/Specs/dropdown.js.map +2 -2
  459. package/dist/esm/biz-components/Specs/index.js +1 -1
  460. package/dist/esm/biz-components/Specs/index.js.map +3 -3
  461. package/dist/esm/biz-components/Subscribe/index.js +1 -1
  462. package/dist/esm/biz-components/Subscribe/index.js.map +2 -2
  463. package/dist/esm/biz-components/SwiperBox/index.js.map +2 -2
  464. package/dist/esm/biz-components/TextModal/index.js +1 -1
  465. package/dist/esm/biz-components/TextModal/index.js.map +1 -1
  466. package/dist/esm/biz-components/Title/index.js +1 -1
  467. package/dist/esm/biz-components/Title/index.js.map +2 -2
  468. package/dist/esm/biz-components/VideoModal/index.js +1 -1
  469. package/dist/esm/biz-components/VideoModal/index.js.map +2 -2
  470. package/dist/esm/biz-components/index.d.ts +57 -1
  471. package/dist/esm/biz-components/index.js +1 -1
  472. package/dist/esm/biz-components/index.js.map +3 -3
  473. package/dist/esm/components/ExposureDetector.d.ts +45 -0
  474. package/dist/esm/components/ExposureDetector.js +2 -0
  475. package/dist/esm/components/ExposureDetector.js.map +7 -0
  476. package/dist/esm/components/board.js +1 -1
  477. package/dist/esm/components/board.js.map +2 -2
  478. package/dist/esm/components/button.js.map +2 -2
  479. package/dist/esm/components/checkbox.d.ts +1 -0
  480. package/dist/esm/components/checkbox.js +1 -1
  481. package/dist/esm/components/checkbox.js.map +3 -3
  482. package/dist/esm/components/dialog.d.ts +1 -1
  483. package/dist/esm/components/dialog.js +1 -1
  484. package/dist/esm/components/dialog.js.map +2 -2
  485. package/dist/esm/components/index.d.ts +1 -0
  486. package/dist/esm/components/index.js +1 -1
  487. package/dist/esm/components/index.js.map +3 -3
  488. package/dist/esm/components/loadingDots.js +1 -1
  489. package/dist/esm/components/loadingDots.js.map +2 -2
  490. package/dist/esm/components/picture.js +1 -1
  491. package/dist/esm/components/picture.js.map +2 -2
  492. package/dist/esm/cpn-components/CpnNavigation/index.js +1 -1
  493. package/dist/esm/cpn-components/CpnNavigation/index.js.map +2 -2
  494. package/dist/esm/cpn-components/CpnNavigation/types.d.ts +1 -0
  495. package/dist/esm/cpn-components/CpnNavigation/types.js +1 -0
  496. package/dist/esm/cpn-components/CpnNavigation/types.js.map +3 -3
  497. package/dist/esm/cpn-components/CpnProductCard/types.d.ts +1 -1
  498. package/dist/esm/helpers/utils.js.map +1 -1
  499. package/dist/esm/hooks/useExposure.js.map +2 -2
  500. package/dist/esm/hooks/useExposureDetection.d.ts +69 -0
  501. package/dist/esm/hooks/useExposureDetection.js +2 -0
  502. package/dist/esm/hooks/useExposureDetection.js.map +7 -0
  503. package/dist/esm/hooks/useIntersectionObserver.js.map +2 -2
  504. package/dist/esm/hooks/useRollout.js.map +2 -2
  505. package/dist/esm/stories/board.stories.d.ts +1 -1
  506. package/dist/esm/stories/board.stories.js +1 -1
  507. package/dist/esm/stories/board.stories.js.map +2 -2
  508. package/dist/esm/stories/carousel.stories.d.ts +3 -57
  509. package/dist/esm/stories/carousel.stories.js.map +2 -2
  510. package/dist/esm/stories/specs.stories.js.map +2 -2
  511. package/dist/tokens/anker.css +1 -0
  512. package/dist/tokens/base.css +1 -1
  513. package/dist/tokens/eufy.css +1 -0
  514. package/dist/tokens/eufyMake.css +1 -0
  515. package/dist/tokens/solix.css +1 -0
  516. package/dist/tokens/soundcore.css +1 -0
  517. package/package.json +9 -2
  518. package/style.css +0 -8
  519. package/tailwind.config.js +20 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/HeroBanner/Countdown.tsx"],
4
- "sourcesContent": ["'use client'\nimport { cn } from '../../helpers/index.js'\nimport React, { useEffect, useRef, useState, useMemo } from 'react'\n\ntype Props = {\n endDate: string // ISO UTC \u5B57\u7B26\u4E32\uFF0C\u4F8B\u5982 \"2025-11-02T07:42:00.000Z\"\n endDate_tz?: string // \u65F6\u533A\uFF0C\u4F8B\u5982 \"Asia/Dhaka\"\uFF08\u53EF\u9009\uFF09\n locale?: string // \u683C\u5F0F\u5316\u7528\u7684 locale\uFF0C\u9ED8\u8BA4 navigator.language\n dateFormat?: any\n onExpire?: () => void // \u5230\u671F\u56DE\u8C03\uFF08\u53EF\u9009\uFF09\n}\n\nconst pad = (n: number, len = 2) => String(Math.abs(n)).padStart(len, '0')\n\nconst baseClass =\n 'h-full flex-1 max-w-12 text-center bg-info-white text-xs text-info-primary overflow-hidden lg-desktop:p-1 p-0.5 font-semibold border-box'\n\nconst textClass = 'w-full lg-desktop:text-2xl lg-desktop:h-7 text-xl text-center h-6 lg-desktop:w-10 w-9 font-bold'\n\nexport const CountdownByEndDate: React.FC<Props> = ({ endDate, endDate_tz, locale, dateFormat, onExpire }) => {\n const getDefaultDateLabels = () => ({\n day: 'Day',\n hour: 'Hours',\n minute: 'Mins',\n second: 'Secs',\n })\n\n function safeStringToObject(str: string) {\n try {\n let jsonStr = str?.trim?.()\n if (!jsonStr?.startsWith?.('{') || !jsonStr?.endsWith?.('}')) {\n return {}\n }\n jsonStr = jsonStr?.replace?.(/(\\w+)\\s*:/g, '\"$1\":')\n return JSON.parse(jsonStr)\n } catch (err) {\n return getDefaultDateLabels()\n }\n }\n\n const bannerDate = useMemo(() => {\n if (!dateFormat) return getDefaultDateLabels()\n return safeStringToObject(dateFormat)\n }, [dateFormat])\n\n // \u89E3\u6790\u76EE\u6807\u65F6\u95F4\uFF08\u4F7F\u7528 provided ISO\uFF0C\u82E5\u975E\u6CD5\u5219\u4E3A NaN\uFF09\n const targetMsRef = useRef<number>(Date.parse(endDate))\n const [remainingMs, setRemainingMs] = useState<number>(() => {\n const t = targetMsRef.current\n return isNaN(t) ? 0 : Math.max(0, t - Date.now())\n })\n // \u4EC5\u5728\u521D\u59CB\u65F6\u5224\u65AD\u662F\u5426\u5DF2\u8FC7\u671F\uFF1A\u82E5\u5DF2\u8FC7\u671F\u5219\u9690\u85CF\u7EC4\u4EF6\u5E76\u4E0D\u7EE7\u7EED\u8BA1\u65F6\n const [hidden, setHidden] = useState<boolean>(() => {\n const t = targetMsRef.current\n return !isNaN(t) && t <= Date.now()\n })\n\n // \u82E5 props.endDate \u6539\u53D8\uFF0C\u66F4\u65B0 ref \u4E0E remaining\n useEffect(() => {\n targetMsRef.current = Date.parse(endDate)\n setRemainingMs(isNaN(targetMsRef.current) ? 0 : Math.max(0, targetMsRef.current - Date.now()))\n // \u5F53 endDate \u66F4\u65B0\u65F6\uFF0C\u4EC5\u8FDB\u884C\u4E00\u6B21\u662F\u5426\u8FC7\u671F\u7684\u5224\u65AD\uFF0C\u7528\u4E8E\u51B3\u5B9A\u662F\u5426\u9690\u85CF\n const t = targetMsRef.current\n setHidden(!isNaN(t) && t <= Date.now())\n }, [endDate])\n\n // Tick \u6BCF\u79D2\u66F4\u65B0\u5269\u4F59\u65F6\u95F4\n useEffect(() => {\n if (hidden) return // \u521D\u59CB\u5DF2\u8FC7\u671F\u5219\u4E0D\u542F\u52A8\u8BA1\u65F6\u5668\n if (isNaN(targetMsRef.current)) return // \u65E0\u6548\u65E5\u671F\u4E0D\u542F\u52A8\u8BA1\u65F6\u5668\n let expiredCalled = false\n const tick = () => {\n const now = Date.now()\n const rem = Math.max(0, targetMsRef.current - now)\n setRemainingMs(rem)\n if (rem <= 0 && !expiredCalled) {\n expiredCalled = true\n setHidden(true) // \u5230\u70B9\u540E\u9690\u85CF\u7EC4\u4EF6\n onExpire?.()\n }\n }\n tick() // \u7ACB\u5373\u540C\u6B65\u4E00\u6B21\n const id = window.setInterval(tick, 1000)\n return () => clearInterval(id)\n }, [onExpire, hidden])\n\n // \u8BA1\u7B97\u5929/\u65F6/\u5206/\u79D2\n const totalSeconds = Math.floor(remainingMs / 1000)\n const seconds = totalSeconds % 60\n const totalMinutes = Math.floor(totalSeconds / 60)\n const minutes = totalMinutes % 60\n const totalHours = Math.floor(totalMinutes / 60)\n const hours = totalHours % 24\n const days = Math.floor(totalHours / 24)\n\n // \u683C\u5F0F\u5316\u76EE\u6807\u65F6\u95F4\u5E76\u663E\u793A\u5176\u65F6\u533A\uFF08\u4F7F\u7528 endDate_tz \u6216\u8005\u6D4F\u89C8\u5668\u65F6\u533A\uFF09\n const displayTz = endDate_tz || Intl.DateTimeFormat().resolvedOptions().timeZone\n let formattedTarget = '\u2014'\n const tms = targetMsRef.current\n if (!isNaN(tms)) {\n try {\n const dt = new Date(tms)\n const fmt = new Intl.DateTimeFormat(locale || navigator.language, {\n timeZone: displayTz,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n })\n formattedTarget = fmt.format(dt)\n } catch (e) {\n // \u82E5\u4F20\u5165\u4E86\u975E\u6CD5\u65F6\u533A\uFF0CIntl \u53EF\u80FD\u629B\u9519\uFF1B\u56DE\u9000\u663E\u793A UTC \u65F6\u95F4\n formattedTarget = new Date(tms).toISOString()\n }\n }\n\n if (hidden) return null\n\n return (\n <div className=\"w-full flex gap-1 items-center countdown-box\" aria-live=\"polite\">\n {/* \u5929 */}\n <div className={cn(baseClass, 'time-days-box')}>\n <p className={textClass}>{pad(days, 2)}</p>\n <div className=\"truncate\">{bannerDate?.day || 'Day'}</div>\n </div>\n <div className=\"text-2xl font-bold text-info-white\">:</div>\n {/* \u65F6 */}\n <div className={cn(baseClass, 'time-hours-box')}>\n <p className={textClass}>{pad(hours, 2)}</p>\n <div className=\"truncate\">{bannerDate?.hour || 'Hours'}</div>\n </div>\n <div className=\"text-2xl font-bold text-info-white\">:</div>\n {/* \u5206 */}\n <div className={cn(baseClass, 'time-minutes-box')}>\n <p className={textClass}>{pad(minutes, 2)}</p>\n <div className=\"truncate\">{bannerDate?.minute || 'Mins'}</div>\n </div>\n <div className=\"text-2xl font-bold text-info-white\">:</div>\n {/* \u79D2 */}\n <div className={cn(baseClass, 'time-seconds-box')}>\n <p className={textClass}>{pad(seconds, 2)}</p>\n <div className=\"truncate\">{bannerDate?.second || 'Secs'}</div>\n </div>\n </div>\n )\n}\n\nexport default CountdownByEndDate\n"],
4
+ "sourcesContent": ["'use client'\nimport { cn } from '../../helpers/index.js'\nimport React, { useEffect, useRef, useState, useMemo } from 'react'\n\ntype Props = {\n endDate: string // ISO UTC \u5B57\u7B26\u4E32\uFF0C\u4F8B\u5982 \"2025-11-02T07:42:00.000Z\"\n endDate_tz?: string // \u65F6\u533A\uFF0C\u4F8B\u5982 \"Asia/Dhaka\"\uFF08\u53EF\u9009\uFF09\n locale?: string // \u683C\u5F0F\u5316\u7528\u7684 locale\uFF0C\u9ED8\u8BA4 navigator.language\n dateFormat?: any\n onExpire?: () => void // \u5230\u671F\u56DE\u8C03\uFF08\u53EF\u9009\uFF09\n}\n\nconst pad = (n: number, len = 2) => String(Math.abs(n)).padStart(len, '0')\n\nconst baseClass =\n 'h-full flex-1 max-w-12 text-center bg-info-white text-xs text-info-primary overflow-hidden lg-desktop:p-1 p-0.5 font-semibold border-box'\n\nconst textClass = 'w-full lg-desktop:text-2xl lg-desktop:h-7 text-xl text-center h-6 lg-desktop:w-10 w-9 font-bold'\n\nexport const CountdownByEndDate: React.FC<Props> = ({ endDate, endDate_tz, locale, dateFormat, onExpire }) => {\n const getDefaultDateLabels = () => ({\n day: 'Day',\n hour: 'Hours',\n minute: 'Mins',\n second: 'Secs',\n })\n\n function safeStringToObject(str: string) {\n try {\n let jsonStr = str?.trim?.()\n if (!jsonStr?.startsWith?.('{') || !jsonStr?.endsWith?.('}')) {\n return {}\n }\n jsonStr = jsonStr?.replace?.(/(\\w+)\\s*:/g, '\"$1\":')\n return JSON.parse(jsonStr)\n } catch (err) {\n return getDefaultDateLabels()\n }\n }\n\n const bannerDate = useMemo(() => {\n if (!dateFormat) return getDefaultDateLabels()\n return safeStringToObject(dateFormat)\n }, [dateFormat])\n\n // \u89E3\u6790\u76EE\u6807\u65F6\u95F4\uFF08\u4F7F\u7528 provided ISO\uFF0C\u82E5\u975E\u6CD5\u5219\u4E3A NaN\uFF09\n const targetMsRef = useRef<number>(Date.parse(endDate))\n const [remainingMs, setRemainingMs] = useState<number>(() => {\n const t = targetMsRef.current\n return isNaN(t) ? 0 : Math.max(0, t - Date.now())\n })\n // \u4EC5\u5728\u521D\u59CB\u65F6\u5224\u65AD\u662F\u5426\u5DF2\u8FC7\u671F\uFF1A\u82E5\u5DF2\u8FC7\u671F\u5219\u9690\u85CF\u7EC4\u4EF6\u5E76\u4E0D\u7EE7\u7EED\u8BA1\u65F6\n const [hidden, setHidden] = useState<boolean>(() => {\n const t = targetMsRef.current\n return !isNaN(t) && t <= Date.now()\n })\n\n // \u82E5 props.endDate \u6539\u53D8\uFF0C\u66F4\u65B0 ref \u4E0E remaining\n useEffect(() => {\n targetMsRef.current = Date.parse(endDate)\n setRemainingMs(isNaN(targetMsRef.current) ? 0 : Math.max(0, targetMsRef.current - Date.now()))\n // \u5F53 endDate \u66F4\u65B0\u65F6\uFF0C\u4EC5\u8FDB\u884C\u4E00\u6B21\u662F\u5426\u8FC7\u671F\u7684\u5224\u65AD\uFF0C\u7528\u4E8E\u51B3\u5B9A\u662F\u5426\u9690\u85CF\n const t = targetMsRef.current\n setHidden(!isNaN(t) && t <= Date.now())\n }, [endDate])\n\n // Tick \u6BCF\u79D2\u66F4\u65B0\u5269\u4F59\u65F6\u95F4\n useEffect(() => {\n if (hidden) return // \u521D\u59CB\u5DF2\u8FC7\u671F\u5219\u4E0D\u542F\u52A8\u8BA1\u65F6\u5668\n if (isNaN(targetMsRef.current)) return // \u65E0\u6548\u65E5\u671F\u4E0D\u542F\u52A8\u8BA1\u65F6\u5668\n let expiredCalled = false\n const tick = () => {\n const now = Date.now()\n const rem = Math.max(0, targetMsRef.current - now)\n setRemainingMs(rem)\n if (rem <= 0 && !expiredCalled) {\n expiredCalled = true\n setHidden(true) // \u5230\u70B9\u540E\u9690\u85CF\u7EC4\u4EF6\n onExpire?.()\n }\n }\n tick() // \u7ACB\u5373\u540C\u6B65\u4E00\u6B21\n const id = window.setInterval(tick, 1000)\n return () => clearInterval(id)\n }, [onExpire, hidden])\n\n // \u8BA1\u7B97\u5929/\u65F6/\u5206/\u79D2\n const totalSeconds = Math.floor(remainingMs / 1000)\n const seconds = totalSeconds % 60\n const totalMinutes = Math.floor(totalSeconds / 60)\n const minutes = totalMinutes % 60\n const totalHours = Math.floor(totalMinutes / 60)\n const hours = totalHours % 24\n const days = Math.floor(totalHours / 24)\n\n // \u683C\u5F0F\u5316\u76EE\u6807\u65F6\u95F4\u5E76\u663E\u793A\u5176\u65F6\u533A\uFF08\u4F7F\u7528 endDate_tz \u6216\u8005\u6D4F\u89C8\u5668\u65F6\u533A\uFF09\n const displayTz = endDate_tz || Intl.DateTimeFormat().resolvedOptions().timeZone\n let formattedTarget = '\u2014'\n const tms = targetMsRef.current\n if (!isNaN(tms)) {\n try {\n const dt = new Date(tms)\n const fmt = new Intl.DateTimeFormat(locale || navigator.language, {\n timeZone: displayTz,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n })\n formattedTarget = fmt.format(dt)\n } catch (e) {\n // \u82E5\u4F20\u5165\u4E86\u975E\u6CD5\u65F6\u533A\uFF0CIntl \u53EF\u80FD\u629B\u9519\uFF1B\u56DE\u9000\u663E\u793A UTC \u65F6\u95F4\n formattedTarget = new Date(tms).toISOString()\n }\n }\n\n if (hidden) return null\n\n return (\n <div className=\"countdown-box flex w-full items-center gap-1\" aria-live=\"polite\">\n {/* \u5929 */}\n <div className={cn(baseClass, 'time-days-box')}>\n <p className={textClass}>{pad(days, 2)}</p>\n <div className=\"truncate\">{bannerDate?.day || 'Day'}</div>\n </div>\n <div className=\"text-info-white text-2xl font-bold\">:</div>\n {/* \u65F6 */}\n <div className={cn(baseClass, 'time-hours-box')}>\n <p className={textClass}>{pad(hours, 2)}</p>\n <div className=\"truncate\">{bannerDate?.hour || 'Hours'}</div>\n </div>\n <div className=\"text-info-white text-2xl font-bold\">:</div>\n {/* \u5206 */}\n <div className={cn(baseClass, 'time-minutes-box')}>\n <p className={textClass}>{pad(minutes, 2)}</p>\n <div className=\"truncate\">{bannerDate?.minute || 'Mins'}</div>\n </div>\n <div className=\"text-info-white text-2xl font-bold\">:</div>\n {/* \u79D2 */}\n <div className={cn(baseClass, 'time-seconds-box')}>\n <p className={textClass}>{pad(seconds, 2)}</p>\n <div className=\"truncate\">{bannerDate?.second || 'Secs'}</div>\n </div>\n </div>\n )\n}\n\nexport default CountdownByEndDate\n"],
5
5
  "mappings": "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",
6
6
  "names": ["jsx", "jsxs", "cn", "useEffect", "useRef", "useState", "useMemo", "pad", "n", "len", "baseClass", "textClass", "CountdownByEndDate", "endDate", "endDate_tz", "locale", "dateFormat", "onExpire", "getDefaultDateLabels", "safeStringToObject", "str", "jsonStr", "bannerDate", "targetMsRef", "remainingMs", "setRemainingMs", "hidden", "setHidden", "expiredCalled", "tick", "now", "rem", "id", "totalSeconds", "seconds", "totalMinutes", "minutes", "totalHours", "hours", "days", "displayTz", "formattedTarget", "tms", "dt", "Countdown_default"]
7
7
  }
@@ -0,0 +1,126 @@
1
+ import React, { type Dispatch, type SetStateAction, type PropsWithChildren } from 'react';
2
+ import type { Product, ProductPrice, ProductVariant, VariantCoupon, Options, FreeGift, BundleListItem, Bundle } from './types/product';
3
+ import type { CompareData, DiscountData } from './types.js';
4
+ type Country = {
5
+ id?: number;
6
+ name?: string;
7
+ code?: string;
8
+ };
9
+ export type UserProfile = {
10
+ user_id: string;
11
+ email: string;
12
+ nick_name?: string;
13
+ full_name?: string;
14
+ first_name?: string;
15
+ last_name?: string;
16
+ dob?: string;
17
+ gender?: string;
18
+ phone_number?: string;
19
+ phone_account?: string;
20
+ country?: Country;
21
+ is_subscribe?: boolean;
22
+ avatar?: string;
23
+ can_change_password?: boolean;
24
+ invitation_code?: string;
25
+ phone_carrier?: string;
26
+ dob_programmed?: boolean;
27
+ activated?: boolean;
28
+ registed_at?: number;
29
+ activated_at?: number;
30
+ token?: string;
31
+ };
32
+ export type SavingDetail = {
33
+ coupon: number;
34
+ bundle: number;
35
+ member: number;
36
+ freeGift: number;
37
+ compare: number;
38
+ exchangePurchase: number;
39
+ };
40
+ type variantWithFinalPrice = ProductVariant & {
41
+ finalPrice?: ProductPrice;
42
+ };
43
+ export type FunctionMemberPriceResult = {
44
+ hasMemberPrice: boolean;
45
+ originalPrice: number;
46
+ withCouponMemberTotalSave: number;
47
+ withoutCouponMaxMemberTotalSave?: number;
48
+ labels: {
49
+ key: string;
50
+ value: string;
51
+ desc: string;
52
+ }[];
53
+ };
54
+ export type ModalData = {
55
+ needClickAway?: boolean;
56
+ className?: string;
57
+ title?: string;
58
+ content?: string;
59
+ domContent?: React.ReactNode;
60
+ };
61
+ export type JoinedRecommendBuyProducts = {
62
+ bundle?: {
63
+ value?: BundleListItem;
64
+ canOperate?: boolean;
65
+ };
66
+ gift?: {
67
+ value?: ProductVariant;
68
+ canOperate?: boolean;
69
+ };
70
+ exchange?: {
71
+ value?: ProductVariant;
72
+ canOperate?: boolean;
73
+ };
74
+ };
75
+ export interface ProductContextType {
76
+ isLogin?: boolean;
77
+ isMobile?: boolean;
78
+ isDesktop?: boolean;
79
+ product: Product;
80
+ profile?: UserProfile;
81
+ variant: ProductVariant;
82
+ selectedVariants: Array<variantWithFinalPrice>;
83
+ renderRating?: React.ReactNode;
84
+ coupon?: VariantCoupon;
85
+ savingDetail: SavingDetail;
86
+ setSavingDetail: Dispatch<SetStateAction<SavingDetail>>;
87
+ finalPrice: number;
88
+ comparePrice: number;
89
+ totalSavings: number;
90
+ selectedOptions: Options;
91
+ setSelectedOptions: Dispatch<SetStateAction<Options>>;
92
+ freeGift?: FreeGift;
93
+ checkedGift?: ProductVariant;
94
+ setCheckedGift?: Dispatch<SetStateAction<ProductVariant | undefined>>;
95
+ exchangePurchase?: FreeGift;
96
+ checkedExchangePurchase?: ProductVariant;
97
+ setCheckedExchangePurchase?: Dispatch<SetStateAction<ProductVariant | undefined>>;
98
+ checkedBundle?: BundleListItem;
99
+ setCheckedBundle: Dispatch<SetStateAction<BundleListItem | undefined>>;
100
+ joinedRecommendBuyProducts: JoinedRecommendBuyProducts;
101
+ setJoinedRecommendBuyProducts?: Dispatch<SetStateAction<JoinedRecommendBuyProducts>>;
102
+ checkedCareBundle?: ProductVariant;
103
+ setCheckedCareBundle?: Dispatch<SetStateAction<ProductVariant | undefined>>;
104
+ bundle?: Bundle;
105
+ compareData?: CompareData['data'];
106
+ onAddToCart?: () => void;
107
+ onBuyNow?: () => void;
108
+ creditsRedemptionAmount?: number;
109
+ memberFunctionResult?: FunctionMemberPriceResult;
110
+ openModal: ({ title, content, domContent }: ModalData) => void;
111
+ openSignInPopup?: () => void;
112
+ openAuthCodePopup?: () => void;
113
+ openSignUpPopup?: () => void;
114
+ renderInstallments?: React.ReactNode;
115
+ onUseCouponChange?: (couponSaving: number) => void;
116
+ onUseMemberDiscountChange?: (memberSaving: number) => void;
117
+ discount?: DiscountData;
118
+ buyNowLoading?: boolean;
119
+ addToCartLoading?: boolean;
120
+ addOrder?: Array<'bundle' | 'gift' | 'exchange'>;
121
+ setAddOrder?: Dispatch<SetStateAction<Array<'bundle' | 'gift' | 'exchange'>>>;
122
+ }
123
+ export declare const BizProductContext: React.Context<ProductContextType>;
124
+ export declare const useBizProductContext: () => ProductContextType;
125
+ declare const ProductProvider: ({ product, isLogin, profile, isMobile, isDesktop, children, renderRating, freeGift, exchangePurchase, bundle, checkedBundle, checkedGift, setCheckedBundle, setCheckedGift, checkedExchangePurchase, setCheckedExchangePurchase, variant, selectedOptions, setSelectedOptions, compareData, coupon, finalPrice, comparePrice, totalSavings, savingDetail, setSavingDetail, selectedVariants, onAddToCart, onBuyNow, creditsRedemptionAmount, memberFunctionResult, openModal, openSignInPopup, openAuthCodePopup, openSignUpPopup, renderInstallments, onUseCouponChange, onUseMemberDiscountChange, discount, buyNowLoading, addToCartLoading, }: PropsWithChildren<Omit<ProductContextType, "joinedRecommendBuyProducts" | "setJoinedRecommendBuyProducts" | "addOrder" | "setAddOrder">>) => import("react/jsx-runtime").JSX.Element;
126
+ export default ProductProvider;
@@ -0,0 +1,2 @@
1
+ import{jsx as Y}from"react/jsx-runtime";import{createContext as K,useContext as a,useState as i,useEffect as Q}from"react";const t=K({}),te=()=>{if(!a(t))throw new Error("useProductContext must be used in <ProductProvider>");return a(t)},X=({product:n,isLogin:d,profile:c,isMobile:u,isDesktop:s,children:p,renderRating:l,freeGift:m,exchangePurchase:P,bundle:b,checkedBundle:g,checkedGift:h,setCheckedBundle:y,setCheckedGift:f,checkedExchangePurchase:C,setCheckedExchangePurchase:v,variant:e,selectedOptions:S,setSelectedOptions:x,compareData:D,coupon:B,finalPrice:R,comparePrice:A,totalSavings:O,savingDetail:_,setSavingDetail:k,selectedVariants:V,onAddToCart:M,onBuyNow:w,creditsRedemptionAmount:F,memberFunctionResult:T,openModal:G,openSignInPopup:J,openAuthCodePopup:L,openSignUpPopup:I,renderInstallments:N,onUseCouponChange:U,onUseMemberDiscountChange:E,discount:W,buyNowLoading:j,addToCartLoading:z})=>{const[q,o]=i({}),[H,r]=i([]);return Q(()=>{e?.id&&(o({bundle:{value:void 0,canOperate:!0},gift:{value:void 0,canOperate:!0},exchange:{value:void 0,canOperate:!0}}),r([]))},[e?.id]),Y(t.Provider,{value:{product:n,variant:e,isMobile:u,isDesktop:s,isLogin:d,profile:c,coupon:B,renderRating:l,finalPrice:R,comparePrice:A,savingDetail:_,setSavingDetail:k,totalSavings:O,selectedOptions:S,setSelectedOptions:x,freeGift:m,exchangePurchase:P,checkedGift:h,setCheckedGift:f,checkedBundle:g,setCheckedBundle:y,bundle:b,compareData:D,selectedVariants:V,onAddToCart:M,onBuyNow:w,joinedRecommendBuyProducts:q,setJoinedRecommendBuyProducts:o,checkedExchangePurchase:C,setCheckedExchangePurchase:v,creditsRedemptionAmount:F,memberFunctionResult:T,openModal:G,openSignInPopup:J,openAuthCodePopup:L,openSignUpPopup:I,renderInstallments:N,onUseCouponChange:U,onUseMemberDiscountChange:E,discount:W,buyNowLoading:j,addToCartLoading:z,addOrder:H,setAddOrder:r},children:p})};var ne=X;export{t as BizProductContext,ne as default,te as useBizProductContext};
2
+ //# sourceMappingURL=BizProductProvider.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/Listing/BizProductProvider.tsx"],
4
+ "sourcesContent": ["import React, {\n createContext,\n useCallback,\n useContext,\n type Dispatch,\n type SetStateAction,\n type PropsWithChildren,\n useState,\n useEffect,\n} from 'react'\nimport type {\n Product,\n ProductPrice,\n ProductVariant,\n VariantCoupon,\n Options,\n FreeGift,\n BundleListItem,\n Bundle,\n} from './types/product'\nimport type { CompareData, DiscountData } from './types.js'\n\ntype Country = {\n id?: number\n name?: string\n code?: string\n}\n\nexport type UserProfile = {\n user_id: string\n email: string\n nick_name?: string\n full_name?: string\n first_name?: string\n last_name?: string\n dob?: string\n gender?: string\n phone_number?: string\n phone_account?: string\n country?: Country\n is_subscribe?: boolean\n avatar?: string\n can_change_password?: boolean\n invitation_code?: string\n phone_carrier?: string\n dob_programmed?: boolean\n activated?: boolean\n registed_at?: number\n activated_at?: number\n token?: string\n}\n\nexport type SavingDetail = {\n coupon: number\n bundle: number\n member: number\n freeGift: number\n compare: number\n exchangePurchase: number\n}\n\ntype variantWithFinalPrice = ProductVariant & { finalPrice?: ProductPrice }\n\nexport type FunctionMemberPriceResult = {\n hasMemberPrice: boolean\n originalPrice: number\n withCouponMemberTotalSave: number\n withoutCouponMaxMemberTotalSave?: number\n labels: {\n key: string\n value: string\n desc: string\n }[]\n}\n\nexport type ModalData = {\n needClickAway?: boolean\n className?: string\n title?: string\n content?: string\n domContent?: React.ReactNode\n}\n\nexport type JoinedRecommendBuyProducts = {\n bundle?: {\n value?: BundleListItem\n canOperate?: boolean\n }\n gift?: {\n value?: ProductVariant\n canOperate?: boolean\n }\n exchange?: {\n value?: ProductVariant\n canOperate?: boolean\n }\n}\nexport interface ProductContextType {\n isLogin?: boolean\n isMobile?: boolean\n isDesktop?: boolean\n product: Product\n profile?: UserProfile\n variant: ProductVariant\n selectedVariants: Array<variantWithFinalPrice>\n renderRating?: React.ReactNode\n coupon?: VariantCoupon\n savingDetail: SavingDetail\n setSavingDetail: Dispatch<SetStateAction<SavingDetail>>\n finalPrice: number\n comparePrice: number\n totalSavings: number\n selectedOptions: Options\n setSelectedOptions: Dispatch<SetStateAction<Options>>\n freeGift?: FreeGift\n checkedGift?: ProductVariant\n setCheckedGift?: Dispatch<SetStateAction<ProductVariant | undefined>>\n exchangePurchase?: FreeGift\n checkedExchangePurchase?: ProductVariant\n setCheckedExchangePurchase?: Dispatch<SetStateAction<ProductVariant | undefined>>\n checkedBundle?: BundleListItem\n setCheckedBundle: Dispatch<SetStateAction<BundleListItem | undefined>>\n joinedRecommendBuyProducts: JoinedRecommendBuyProducts\n setJoinedRecommendBuyProducts?: Dispatch<SetStateAction<JoinedRecommendBuyProducts>>\n checkedCareBundle?: ProductVariant\n setCheckedCareBundle?: Dispatch<SetStateAction<ProductVariant | undefined>>\n bundle?: Bundle\n compareData?: CompareData['data']\n onAddToCart?: () => void\n onBuyNow?: () => void\n creditsRedemptionAmount?: number\n memberFunctionResult?: FunctionMemberPriceResult\n openModal: ({ title, content, domContent }: ModalData) => void\n openSignInPopup?: () => void\n openAuthCodePopup?: () => void\n openSignUpPopup?: () => void\n renderInstallments?: React.ReactNode\n onUseCouponChange?: (couponSaving: number) => void\n onUseMemberDiscountChange?: (memberSaving: number) => void\n discount?: DiscountData\n buyNowLoading?: boolean\n addToCartLoading?: boolean\n addOrder?: Array<'bundle' | 'gift' | 'exchange'>\n setAddOrder?: Dispatch<SetStateAction<Array<'bundle' | 'gift' | 'exchange'>>>\n}\n\n// const initialState: ProductContextType = {\n// isLogin: false,\n// isMobile: false,\n// product: {} as Product,\n// variant: {} as ProductVariant,\n// savingDetail: { coupon: 0, bundle: 0, member: 0, freeGift: 0, compare: 0 },\n// finalPrice: 0,\n// comparePrice: 0,\n// totalSavings: 0,\n// renderRating: null,\n// selectedOptions: {} as Options,\n// setSelectedOptions: () => {},\n// checkedBundle: undefined,\n// checkedGift: undefined,\n// setCheckedBundle: () => {},\n// setCheckedGift: () => {},\n// checkedCareBundle: undefined,\n// setCheckedCareBundle: () => {},\n// }\n\nexport const BizProductContext = createContext<ProductContextType>({} as ProductContextType)\n\nexport const useBizProductContext = () => {\n const context = useContext(BizProductContext)\n if (!context) {\n throw new Error('useProductContext must be used in <ProductProvider>')\n }\n return useContext(BizProductContext)\n}\n\nconst ProductProvider = ({\n product,\n isLogin,\n profile,\n isMobile,\n isDesktop,\n children,\n renderRating,\n freeGift,\n exchangePurchase,\n bundle,\n checkedBundle,\n checkedGift,\n setCheckedBundle,\n setCheckedGift,\n checkedExchangePurchase,\n setCheckedExchangePurchase,\n variant,\n selectedOptions,\n setSelectedOptions,\n compareData,\n coupon,\n finalPrice,\n comparePrice,\n totalSavings,\n savingDetail,\n setSavingDetail,\n selectedVariants,\n onAddToCart,\n onBuyNow,\n creditsRedemptionAmount,\n memberFunctionResult,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n renderInstallments,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n buyNowLoading,\n addToCartLoading,\n}: PropsWithChildren<\n Omit<ProductContextType, 'joinedRecommendBuyProducts' | 'setJoinedRecommendBuyProducts' | 'addOrder' | 'setAddOrder'>\n>) => {\n const [joinedRecommendBuyProducts, setJoinedRecommendBuyProducts] = useState<JoinedRecommendBuyProducts>({})\n const [addOrder, setAddOrder] = useState<Array<'bundle' | 'gift' | 'exchange'>>([])\n\n useEffect(() => {\n if (variant?.id) {\n setJoinedRecommendBuyProducts({\n bundle: {\n value: undefined,\n canOperate: true,\n },\n gift: {\n value: undefined,\n canOperate: true,\n },\n exchange: {\n value: undefined,\n canOperate: true,\n },\n })\n setAddOrder([])\n }\n }, [variant?.id])\n\n return (\n <BizProductContext.Provider\n value={{\n product,\n variant,\n isMobile,\n isDesktop,\n isLogin,\n profile,\n coupon,\n renderRating,\n finalPrice,\n comparePrice,\n savingDetail,\n setSavingDetail,\n totalSavings,\n selectedOptions,\n setSelectedOptions,\n freeGift,\n exchangePurchase,\n checkedGift,\n setCheckedGift,\n checkedBundle,\n setCheckedBundle,\n bundle,\n compareData,\n selectedVariants,\n onAddToCart,\n onBuyNow,\n joinedRecommendBuyProducts,\n setJoinedRecommendBuyProducts,\n checkedExchangePurchase,\n setCheckedExchangePurchase,\n creditsRedemptionAmount,\n memberFunctionResult,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n renderInstallments,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n buyNowLoading,\n addToCartLoading,\n addOrder,\n setAddOrder,\n }}\n >\n {children}\n </BizProductContext.Provider>\n )\n}\n\nexport default ProductProvider\n"],
5
+ "mappings": "AAqPI,cAAAA,MAAA,oBArPJ,OACE,iBAAAC,EAEA,cAAAC,EAIA,YAAAC,EACA,aAAAC,MACK,QA6JA,MAAMC,EAAoBJ,EAAkC,CAAC,CAAuB,EAE9EK,GAAuB,IAAM,CAExC,GAAI,CADYJ,EAAWG,CAAiB,EAE1C,MAAM,IAAI,MAAM,qDAAqD,EAEvE,OAAOH,EAAWG,CAAiB,CACrC,EAEME,EAAkB,CAAC,CACvB,QAAAC,EACA,QAAAC,EACA,QAAAC,EACA,SAAAC,EACA,UAAAC,EACA,SAAAC,EACA,aAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,OAAAC,EACA,cAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,wBAAAC,EACA,2BAAAC,EACA,QAAAC,EACA,gBAAAC,EACA,mBAAAC,EACA,YAAAC,EACA,OAAAC,EACA,WAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,SAAAC,EACA,wBAAAC,EACA,qBAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,mBAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,SAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,IAEM,CACJ,KAAM,CAACC,EAA4BC,CAA6B,EAAI/C,EAAqC,CAAC,CAAC,EACrG,CAACgD,EAAUC,CAAW,EAAIjD,EAAgD,CAAC,CAAC,EAElF,OAAAC,EAAU,IAAM,CACVoB,GAAS,KACX0B,EAA8B,CAC5B,OAAQ,CACN,MAAO,OACP,WAAY,EACd,EACA,KAAM,CACJ,MAAO,OACP,WAAY,EACd,EACA,SAAU,CACR,MAAO,OACP,WAAY,EACd,CACF,CAAC,EACDE,EAAY,CAAC,CAAC,EAElB,EAAG,CAAC5B,GAAS,EAAE,CAAC,EAGdxB,EAACK,EAAkB,SAAlB,CACC,MAAO,CACL,QAAAG,EACA,QAAAgB,EACA,SAAAb,EACA,UAAAC,EACA,QAAAH,EACA,QAAAC,EACA,OAAAkB,EACA,aAAAd,EACA,WAAAe,EACA,aAAAC,EACA,aAAAE,EACA,gBAAAC,EACA,aAAAF,EACA,gBAAAN,EACA,mBAAAC,EACA,SAAAX,EACA,iBAAAC,EACA,YAAAG,EACA,eAAAE,EACA,cAAAH,EACA,iBAAAE,EACA,OAAAH,EACA,YAAAU,EACA,iBAAAO,EACA,YAAAC,EACA,SAAAC,EACA,2BAAAa,EACA,8BAAAC,EACA,wBAAA5B,EACA,2BAAAC,EACA,wBAAAc,EACA,qBAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,mBAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,SAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,SAAAG,EACA,YAAAC,CACF,EAEC,SAAAvC,EACH,CAEJ,EAEA,IAAOwC,GAAQ9C",
6
+ "names": ["jsx", "createContext", "useContext", "useState", "useEffect", "BizProductContext", "useBizProductContext", "ProductProvider", "product", "isLogin", "profile", "isMobile", "isDesktop", "children", "renderRating", "freeGift", "exchangePurchase", "bundle", "checkedBundle", "checkedGift", "setCheckedBundle", "setCheckedGift", "checkedExchangePurchase", "setCheckedExchangePurchase", "variant", "selectedOptions", "setSelectedOptions", "compareData", "coupon", "finalPrice", "comparePrice", "totalSavings", "savingDetail", "setSavingDetail", "selectedVariants", "onAddToCart", "onBuyNow", "creditsRedemptionAmount", "memberFunctionResult", "openModal", "openSignInPopup", "openAuthCodePopup", "openSignUpPopup", "renderInstallments", "onUseCouponChange", "onUseMemberDiscountChange", "discount", "buyNowLoading", "addToCartLoading", "joinedRecommendBuyProducts", "setJoinedRecommendBuyProducts", "addOrder", "setAddOrder", "BizProductProvider_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ declare const LearnMore: (props: any) => import("react/jsx-runtime").JSX.Element;
2
+ export default LearnMore;
@@ -0,0 +1,2 @@
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{Button as i,Picture as x,Text as p}from"../../../../components/index.js";import{useAiuiContext as c}from"../../../AiuiProvider/index.js";import{cn as m}from"../../../../helpers/index.js";const d=n=>{const{className:s,setOpenShippingPolicyModal:a,metafields:t}=n,{trackingData:r}=c(),l=r?.common?.copywriting;return o("div",{tabIndex:-1,className:m("from-4.29% to-101.05% laptop:rounded-2xl laptop:py-5 relative items-start gap-[16px] overflow-hidden rounded-xl bg-gradient-to-r from-[rgba(215,245,254,0.24)] to-[rgba(215,245,254,0.80)] p-4 text-[#1F2021] md:py-[16px]","flex flex-col",s),children:[e(x,{source:t?.shippingPolicyIcon,className:"absolute -bottom-10 -right-10 z-[1] size-[150px]"}),o("div",{className:"relative z-10 flex w-full items-start justify-between",children:[o("div",{className:"laptop:gap-2 lg-desktop:gap-4 flex flex-col gap-3",children:[e(p,{size:2,className:"laptop:text-[16px] lg-desktop:text-[18px] text-[14px]",children:t?.shippingPolicyTitle}),e(p,{size:1,as:"p",className:"laptop:text-[14px] text-[12px] text-[#6D6D6F]",children:t?.loginBeforeCheckoutNote})]}),e(i,{variant:"link",className:"laptop:inline-flex hidden whitespace-nowrap !p-0",onClick:()=>{a(!0)},children:l?.learnMore})]}),e(i,{variant:"link",className:"laptop:hidden inline-flex p-0",onClick:()=>{a(!0)},children:l?.learnMore})]})};var v=d;export{v as default};
2
+ //# sourceMappingURL=LearnMore.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/Listing/components/PaidShipping/LearnMore.tsx"],
4
+ "sourcesContent": ["import { Button, Picture, Text } from '../../../../components/index.js'\nimport { useAiuiContext } from '../../../AiuiProvider/index.js'\nimport { cn } from '../../../../helpers/index.js'\n\nconst LearnMore = (props: any) => {\n const { className, setOpenShippingPolicyModal, metafields } = props\n const { trackingData } = useAiuiContext()\n const shopCommon = trackingData?.common?.copywriting\n\n return (\n <div\n tabIndex={-1}\n className={cn(\n 'from-4.29% to-101.05% laptop:rounded-2xl laptop:py-5 relative items-start gap-[16px] overflow-hidden rounded-xl bg-gradient-to-r from-[rgba(215,245,254,0.24)] to-[rgba(215,245,254,0.80)] p-4 text-[#1F2021] md:py-[16px]',\n 'flex flex-col',\n className\n )}\n >\n <Picture source={metafields?.shippingPolicyIcon} className=\"absolute -bottom-10 -right-10 z-[1] size-[150px]\" />\n <div className=\"relative z-10 flex w-full items-start justify-between\">\n <div className=\"laptop:gap-2 lg-desktop:gap-4 flex flex-col gap-3\">\n <Text size={2} className=\"laptop:text-[16px] lg-desktop:text-[18px] text-[14px]\">\n {metafields?.shippingPolicyTitle}\n </Text>\n <Text size={1} as=\"p\" className=\"laptop:text-[14px] text-[12px] text-[#6D6D6F]\">\n {metafields?.loginBeforeCheckoutNote}\n </Text>\n </div>\n <Button\n variant=\"link\"\n className=\"laptop:inline-flex hidden whitespace-nowrap !p-0\"\n onClick={() => {\n setOpenShippingPolicyModal(true)\n }}\n >\n {shopCommon?.learnMore}\n </Button>\n </div>\n\n <Button\n variant=\"link\"\n className=\"laptop:hidden inline-flex p-0\"\n onClick={() => {\n setOpenShippingPolicyModal(true)\n }}\n >\n {shopCommon?.learnMore}\n </Button>\n </div>\n )\n}\n\nexport default LearnMore\n"],
5
+ "mappings": "AAkBM,cAAAA,EAEE,QAAAC,MAFF,oBAlBN,OAAS,UAAAC,EAAQ,WAAAC,EAAS,QAAAC,MAAY,kCACtC,OAAS,kBAAAC,MAAsB,iCAC/B,OAAS,MAAAC,MAAU,+BAEnB,MAAMC,EAAaC,GAAe,CAChC,KAAM,CAAE,UAAAC,EAAW,2BAAAC,EAA4B,WAAAC,CAAW,EAAIH,EACxD,CAAE,aAAAI,CAAa,EAAIP,EAAe,EAClCQ,EAAaD,GAAc,QAAQ,YAEzC,OACEX,EAAC,OACC,SAAU,GACV,UAAWK,EACT,6NACA,gBACAG,CACF,EAEA,UAAAT,EAACG,EAAA,CAAQ,OAAQQ,GAAY,mBAAoB,UAAU,mDAAmD,EAC9GV,EAAC,OAAI,UAAU,wDACb,UAAAA,EAAC,OAAI,UAAU,oDACb,UAAAD,EAACI,EAAA,CAAK,KAAM,EAAG,UAAU,wDACtB,SAAAO,GAAY,oBACf,EACAX,EAACI,EAAA,CAAK,KAAM,EAAG,GAAG,IAAI,UAAU,gDAC7B,SAAAO,GAAY,wBACf,GACF,EACAX,EAACE,EAAA,CACC,QAAQ,OACR,UAAU,mDACV,QAAS,IAAM,CACbQ,EAA2B,EAAI,CACjC,EAEC,SAAAG,GAAY,UACf,GACF,EAEAb,EAACE,EAAA,CACC,QAAQ,OACR,UAAU,gCACV,QAAS,IAAM,CACbQ,EAA2B,EAAI,CACjC,EAEC,SAAAG,GAAY,UACf,GACF,CAEJ,EAEA,IAAOC,EAAQP",
6
+ "names": ["jsx", "jsxs", "Button", "Picture", "Text", "useAiuiContext", "cn", "LearnMore", "props", "className", "setOpenShippingPolicyModal", "metafields", "trackingData", "shopCommon", "LearnMore_default"]
7
+ }
@@ -0,0 +1,10 @@
1
+ declare const ShippingMethod: ({ item, index, active, toggleShipping, currencyCode, metafields, className, }: {
2
+ item: any;
3
+ index: number;
4
+ active: boolean;
5
+ toggleShipping: (item: any, index: number) => void;
6
+ currencyCode: string;
7
+ metafields: any;
8
+ className?: string;
9
+ }) => import("react/jsx-runtime").JSX.Element;
10
+ export default ShippingMethod;
@@ -0,0 +1,2 @@
1
+ import{jsx as o,jsxs as n}from"react/jsx-runtime";import{formatPrice as u}from"../../utils/index.js";import{useAiuiContext as f}from"../../../AiuiProvider/index.js";import{Text as r}from"../../../../components/index.js";import{cn as t}from"../../../../helpers/index.js";import{ShippingMethodMode as g}from"./type.js";const v=({item:e,index:a,active:d,toggleShipping:p,currencyCode:i,metafields:x,className:s=""})=>{const{trackingData:m,locale:c="us"}=f(),b=m?.common?.copywriting;return n("div",{role:"button",tabIndex:0,onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&p(e,a)},className:t("laptop:rounded-2xl laptop:py-5 relative flex cursor-pointer gap-[16px] overflow-hidden rounded-xl border-2 border-[#E8E8E8] p-4 text-[#1F2021]",{"cursor-not-allowed opacity-60":e.disabled,"border-brand":d},s),onClick:()=>p(e,a),children:[n("div",{className:"relative",children:[o(r,{className:t("laptop:text-[16px] lg-desktop:text-[18px] text-[14px] font-bold leading-[1.4]",{}),as:"p",html:e.title}),o(r,{className:t("laptop:text-[14px] mt-[8px] text-[12px] font-bold leading-[1.4] text-[#6D6D6F]",{}),as:"p",html:e.subtitle})]}),o(r,{className:t("relative my-auto h-fit text-xl font-bold",{}),as:"p",html:e.price?u({amount:e.price,currencyCode:i,locale:c,removeTrailingZeros:!0}):b?.free}),e.mode!==g.FREE&&o("div",{className:t("bg-brand absolute -right-px -top-px rounded-bl-[8px] rounded-tr-[8px] px-[8px] py-[3px] text-[12px] font-bold leading-[1.4] text-white"),children:x?.memberOnly})]})};var w=v;export{w as default};
2
+ //# sourceMappingURL=ShippingMethod.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/Listing/components/PaidShipping/ShippingMethod.tsx"],
4
+ "sourcesContent": ["import { formatPrice } from '../../utils/index.js'\nimport { useAiuiContext } from '../../../AiuiProvider/index.js'\nimport { Text } from '../../../../components/index.js'\nimport { cn } from '../../../../helpers/index.js'\nimport { ShippingMethodMode } from './type.js'\n\nconst ShippingMethod = ({\n item,\n index,\n active,\n toggleShipping,\n currencyCode,\n metafields,\n className = '',\n}: {\n item: any\n index: number\n active: boolean\n toggleShipping: (item: any, index: number) => void\n currencyCode: string\n metafields: any\n className?: string\n}) => {\n const { trackingData, locale = 'us' } = useAiuiContext()\n const shopCommon = trackingData?.common?.copywriting\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n toggleShipping(item, index)\n }\n }}\n className={cn(\n 'laptop:rounded-2xl laptop:py-5 relative flex cursor-pointer gap-[16px] overflow-hidden rounded-xl border-2 border-[#E8E8E8] p-4 text-[#1F2021]',\n {\n 'cursor-not-allowed opacity-60': item.disabled,\n 'border-brand': active,\n },\n className\n )}\n onClick={() => toggleShipping(item, index)}\n >\n <div className=\"relative\">\n <Text\n className={cn('laptop:text-[16px] lg-desktop:text-[18px] text-[14px] font-bold leading-[1.4]', {})}\n as=\"p\"\n html={item.title}\n />\n <Text\n className={cn('laptop:text-[14px] mt-[8px] text-[12px] font-bold leading-[1.4] text-[#6D6D6F]', {})}\n as=\"p\"\n html={item.subtitle}\n />\n </div>\n\n <Text\n className={cn('relative my-auto h-fit text-xl font-bold', {})}\n as=\"p\"\n html={\n item.price\n ? formatPrice({\n amount: item.price,\n currencyCode,\n locale,\n removeTrailingZeros: true,\n })\n : shopCommon?.free\n }\n />\n {item.mode !== ShippingMethodMode.FREE && (\n <div\n className={cn(\n 'bg-brand absolute -right-px -top-px rounded-bl-[8px] rounded-tr-[8px] px-[8px] py-[3px] text-[12px] font-bold leading-[1.4] text-white'\n )}\n >\n {metafields?.memberOnly}\n </div>\n )}\n </div>\n )\n}\n\nexport default ShippingMethod\n"],
5
+ "mappings": "AA6CM,OACE,OAAAA,EADF,QAAAC,MAAA,oBA7CN,OAAS,eAAAC,MAAmB,uBAC5B,OAAS,kBAAAC,MAAsB,iCAC/B,OAAS,QAAAC,MAAY,kCACrB,OAAS,MAAAC,MAAU,+BACnB,OAAS,sBAAAC,MAA0B,YAEnC,MAAMC,EAAiB,CAAC,CACtB,KAAAC,EACA,MAAAC,EACA,OAAAC,EACA,eAAAC,EACA,aAAAC,EACA,WAAAC,EACA,UAAAC,EAAY,EACd,IAQM,CACJ,KAAM,CAAE,aAAAC,EAAc,OAAAC,EAAS,IAAK,EAAIb,EAAe,EACjDc,EAAaF,GAAc,QAAQ,YAEzC,OACEd,EAAC,OACC,KAAK,SACL,SAAU,EACV,UAAWiB,GAAK,EACVA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,MACjCP,EAAeH,EAAMC,CAAK,CAE9B,EACA,UAAWJ,EACT,iJACA,CACE,gCAAiCG,EAAK,SACtC,eAAgBE,CAClB,EACAI,CACF,EACA,QAAS,IAAMH,EAAeH,EAAMC,CAAK,EAEzC,UAAAR,EAAC,OAAI,UAAU,WACb,UAAAD,EAACI,EAAA,CACC,UAAWC,EAAG,gFAAiF,CAAC,CAAC,EACjG,GAAG,IACH,KAAMG,EAAK,MACb,EACAR,EAACI,EAAA,CACC,UAAWC,EAAG,iFAAkF,CAAC,CAAC,EAClG,GAAG,IACH,KAAMG,EAAK,SACb,GACF,EAEAR,EAACI,EAAA,CACC,UAAWC,EAAG,2CAA4C,CAAC,CAAC,EAC5D,GAAG,IACH,KACEG,EAAK,MACDN,EAAY,CACV,OAAQM,EAAK,MACb,aAAAI,EACA,OAAAI,EACA,oBAAqB,EACvB,CAAC,EACDC,GAAY,KAEpB,EACCT,EAAK,OAASF,EAAmB,MAChCN,EAAC,OACC,UAAWK,EACT,wIACF,EAEC,SAAAQ,GAAY,WACf,GAEJ,CAEJ,EAEA,IAAOM,EAAQZ",
6
+ "names": ["jsx", "jsxs", "formatPrice", "useAiuiContext", "Text", "cn", "ShippingMethodMode", "ShippingMethod", "item", "index", "active", "toggleShipping", "currencyCode", "metafields", "className", "trackingData", "locale", "shopCommon", "e", "ShippingMethod_default"]
7
+ }
@@ -0,0 +1,25 @@
1
+ interface Terms {
2
+ text: string;
3
+ url: string;
4
+ }
5
+ interface List {
6
+ title: string;
7
+ list: string[];
8
+ }
9
+ interface ShippingService {
10
+ title: string;
11
+ list: List[];
12
+ }
13
+ interface Data {
14
+ title: string;
15
+ shippingCoupon: List;
16
+ shippingService: ShippingService;
17
+ terms: Terms;
18
+ }
19
+ interface Props {
20
+ data: Data;
21
+ onClose: () => void;
22
+ open: boolean;
23
+ }
24
+ export declare const ShippingPolicyModal: ({ data, onClose, open }: Props) => import("react/jsx-runtime").JSX.Element;
25
+ export {};
@@ -0,0 +1,2 @@
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{Text as l,Link as r}from"../../../../components/index.js";import{Dialog as g,DialogContent as x}from"../../../../components/index.js";import"react";const b=({data:i,onClose:o,open:a})=>e(g,{open:a,onOpenChange:o,children:t(x,{className:"tablet:max-w-[729px] mx-auto w-full max-w-[326px] overflow-hidden border-none",children:[e(l,{className:"text-[32px] font-bold leading-[1.2] md:text-[20px]",html:i?.title}),t("div",{className:"mt-[16px]",children:[e(l,{className:"text-[20px] font-bold leading-[1.2] md:text-[16px]",html:i?.shippingCoupon?.title}),e("ul",{className:"mt-3 grid grid-flow-row gap-[4px] font-semibold leading-[1.4]",children:i?.shippingCoupon?.list.map((p,s)=>t("li",{className:"text-[16px]",children:[t("span",{children:[s+1,"."]}),e("span",{className:"ml-[4px]",children:p})]},s))}),t("div",{className:"mt-[24px] md:mt-[16px]",children:[e(l,{className:"text-[20px] font-bold leading-[1.2] md:text-[16px]",html:i?.shippingService?.title}),e("div",{className:"mt-[12px] grid w-full grid-cols-2 gap-[12px] md:grid-cols-1",children:i?.shippingService?.list.map((p,s)=>t("div",{className:"rounded-[12px] bg-[#F5F5F7] p-[16px] md:p-[12px]",children:[e(l,{as:"p",className:"text-[20px] font-bold leading-[1.2] md:text-[16px]",html:p.title}),e("div",{className:"mt-[12px] grid grid-flow-row gap-[4px]",children:p.list.map((n,m)=>e(l,{as:"p",className:"text-[16px] font-semibold leading-[1.2]",children:n},m))})]},s))})]}),e(r,{className:"mt-[16px] block text-[16px] font-semibold leading-[1.2] underline",href:`${i?.terms?.url}`,children:i?.terms?.text})]})]})});export{b as ShippingPolicyModal};
2
+ //# sourceMappingURL=ShippingPolicyModal.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.tsx"],
4
+ "sourcesContent": ["import { Text, Link } from '../../../../components/index.js'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '../../../../components/index.js'\nimport { useMemo } from 'react'\n\ninterface Terms {\n text: string\n url: string\n}\n\ninterface List {\n title: string\n list: string[]\n}\n\ninterface ShippingService {\n title: string\n list: List[]\n}\n\ninterface Data {\n title: string\n shippingCoupon: List\n shippingService: ShippingService\n terms: Terms\n}\n\ninterface Props {\n data: Data\n onClose: () => void\n open: boolean\n}\n\nexport const ShippingPolicyModal = ({ data, onClose, open }: Props) => {\n return (\n <Dialog open={open} onOpenChange={onClose}>\n <DialogContent className=\"tablet:max-w-[729px] mx-auto w-full max-w-[326px] overflow-hidden border-none\">\n <Text className=\"text-[32px] font-bold leading-[1.2] md:text-[20px]\" html={data?.title} />\n <div className=\"mt-[16px]\">\n <Text className=\"text-[20px] font-bold leading-[1.2] md:text-[16px]\" html={data?.shippingCoupon?.title} />\n <ul className=\"mt-3 grid grid-flow-row gap-[4px] font-semibold leading-[1.4]\">\n {data?.shippingCoupon?.list.map((item, index) => (\n <li className=\"text-[16px]\" key={index}>\n <span>{index + 1}.</span>\n <span className=\"ml-[4px]\">{item}</span>\n </li>\n ))}\n </ul>\n <div className=\"mt-[24px] md:mt-[16px]\">\n <Text className=\"text-[20px] font-bold leading-[1.2] md:text-[16px]\" html={data?.shippingService?.title} />\n <div className=\"mt-[12px] grid w-full grid-cols-2 gap-[12px] md:grid-cols-1\">\n {data?.shippingService?.list.map((item, index) => (\n <div className=\"rounded-[12px] bg-[#F5F5F7] p-[16px] md:p-[12px]\" key={index}>\n <Text as=\"p\" className=\"text-[20px] font-bold leading-[1.2] md:text-[16px]\" html={item.title} />\n <div className=\"mt-[12px] grid grid-flow-row gap-[4px]\">\n {item.list.map((subItem, subIndex) => (\n <Text as=\"p\" className=\"text-[16px] font-semibold leading-[1.2]\" key={subIndex}>\n {subItem}\n </Text>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n\n <Link\n className=\"mt-[16px] block text-[16px] font-semibold leading-[1.2] underline\"\n href={`${data?.terms?.url}`}\n >\n {data?.terms?.text}\n </Link>\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n"],
5
+ "mappings": "AAoCQ,cAAAA,EAMQ,QAAAC,MANR,oBApCR,OAAS,QAAAC,EAAM,QAAAC,MAAY,kCAC3B,OAAS,UAAAC,EAAQ,iBAAAC,MAA+D,kCAChF,MAAwB,QA8BjB,MAAMC,EAAsB,CAAC,CAAE,KAAAC,EAAM,QAAAC,EAAS,KAAAC,CAAK,IAEtDT,EAACI,EAAA,CAAO,KAAMK,EAAM,aAAcD,EAChC,SAAAP,EAACI,EAAA,CAAc,UAAU,gFACvB,UAAAL,EAACE,EAAA,CAAK,UAAU,qDAAqD,KAAMK,GAAM,MAAO,EACxFN,EAAC,OAAI,UAAU,YACb,UAAAD,EAACE,EAAA,CAAK,UAAU,qDAAqD,KAAMK,GAAM,gBAAgB,MAAO,EACxGP,EAAC,MAAG,UAAU,gEACX,SAAAO,GAAM,gBAAgB,KAAK,IAAI,CAACG,EAAMC,IACrCV,EAAC,MAAG,UAAU,cACZ,UAAAA,EAAC,QAAM,UAAAU,EAAQ,EAAE,KAAC,EAClBX,EAAC,QAAK,UAAU,WAAY,SAAAU,EAAK,IAFFC,CAGjC,CACD,EACH,EACAV,EAAC,OAAI,UAAU,yBACb,UAAAD,EAACE,EAAA,CAAK,UAAU,qDAAqD,KAAMK,GAAM,iBAAiB,MAAO,EACzGP,EAAC,OAAI,UAAU,8DACZ,SAAAO,GAAM,iBAAiB,KAAK,IAAI,CAACG,EAAMC,IACtCV,EAAC,OAAI,UAAU,mDACb,UAAAD,EAACE,EAAA,CAAK,GAAG,IAAI,UAAU,qDAAqD,KAAMQ,EAAK,MAAO,EAC9FV,EAAC,OAAI,UAAU,yCACZ,SAAAU,EAAK,KAAK,IAAI,CAACE,EAASC,IACvBb,EAACE,EAAA,CAAK,GAAG,IAAI,UAAU,0CACpB,SAAAU,GADmEC,CAEtE,CACD,EACH,IARqEF,CASvE,CACD,EACH,GACF,EAEAX,EAACG,EAAA,CACC,UAAU,oEACV,KAAM,GAAGI,GAAM,OAAO,GAAG,GAExB,SAAAA,GAAM,OAAO,KAChB,GACF,GACF,EACF",
6
+ "names": ["jsx", "jsxs", "Text", "Link", "Dialog", "DialogContent", "ShippingPolicyModal", "data", "onClose", "open", "item", "index", "subItem", "subIndex"]
7
+ }
@@ -0,0 +1,15 @@
1
+ import type { Product, ProductVariant } from '../../types/product';
2
+ import type { DeliveryCustom } from './type';
3
+ declare const _default: import("react").ForwardRefExoticComponent<Omit<{
4
+ metafields: any;
5
+ productList: Array<Product & {
6
+ variant: ProductVariant;
7
+ }>;
8
+ variant: ProductVariant;
9
+ onShippingInfoChange: (deliveryCustom: DeliveryCustom) => void;
10
+ className?: string;
11
+ }, keyof import("../../../../shared/Styles.js").StylesProps> & Partial<import("../../../../shared/Styles.js").StylesProps & import("../../../../shared/Styles.js").ContainerProps> & {
12
+ className?: string;
13
+ data?: Record<string, any>;
14
+ } & import("react").RefAttributes<any>>;
15
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import{jsx as o,jsxs as T}from"react/jsx-runtime";import{Text as c}from"../../../../components/index.js";import{useCallback as h,useEffect as D,useMemo as b,useState as g}from"react";import{cn as L}from"../../../../helpers/index.js";import O from"./ShippingMethod.js";import{ShippingPolicyModal as z}from"./ShippingPolicyModal.js";import{isWeightAvailable as v}from"./utils.js";import E from"./LearnMore.js";import{useBizProductContext as I}from"../../BizProductProvider.js";import{withLayout as V}from"../../../../shared/Styles.js";const W=({metafields:i,productList:u,onShippingInfoChange:m,variant:y,className:P})=>{const{isLogin:w,openSignInPopup:_}=I(),[k,M]=g(!1),[x,C]=g(!1),[N,f]=g(null),S=b(()=>u.reduce((e,p)=>e+(p?.variant?.weight||0),0),[u]),r=h((e,p,n)=>({id:`${e.__code}__${e.price}`,code:e.__code,mode:e.__mode,title:e.title,disabled:!v(p,e),price:e.price,subtitle:e.subtitle,tag:n!==0?i?.memberOnly:"",error:v(p,e)?"":i.overWeightError}),[i?.memberOnly,i.overWeightError]),l=b(()=>{const e=i?.list?.map((p,n)=>r(p,S,n));return e?.reduce((p,n)=>{const d=e.filter(t=>t.code==n.code);let s;return d.every(t=>t.disabled)?s=d[d.length-1]:s=d.find(t=>!t.disabled),p.find(t=>s.id===t.id)?p:[...p,s]},[])},[r,i?.list,S]),a=h(e=>{m({selected_delivery_code:e.code,selected_delivery_mode:e.mode})},[m]);D(()=>{if(i?.list?.length>0&&!x){const e=r(i?.list[0],0,0);f(e),a(e),C(!0)}},[r,i?.list,a,x]);const A=h(e=>{e.disabled||(f(e),a(e))},[w,l,y.sku,a,_]);return T("div",{id:"ipc-product-paid-shipping",className:L(" desktop:mt-[96px] lg-desktop:mt-[128px] tablet:px-8 laptop:px-16 desktop:px-0 mt-16 px-4",P),children:[o("div",{className:"flex flex-wrap justify-between space-x-2 md:space-x-1",children:o(c,{className:"text-[16px] font-bold leading-[1.2] text-[#1F2021]",html:i?.title})}),T("div",{className:"lg-desktop:mt-[16px] desktop:flex-nowrap mt-[12px] flex flex-wrap gap-[12px] overflow-hidden",children:[l.map((e,p)=>o(O,{index:p,item:e,active:N?.code===e.code,toggleShipping:()=>A(e),currencyCode:y.price.currencyCode,metafields:i,className:"laptop:w-[calc(50%-6px)] desktop:flex-1 w-full"},p)),o(E,{setOpenShippingPolicyModal:M,metafields:i,className:"laptop:w-[calc(50%-6px)] desktop:w-[calc(33.33%-16px)] lg-desktop:w-[calc(33.33%-24px)] w-full"})]}),l.find(e=>e?.error)&&o(c,{className:"desktop:mt-[16px] mt-[12px] font-bold leading-[1.4] text-[#D41435]",html:l.find(e=>e.error)?.error,as:"p"}),i?.seeAvailableArea&&o(c,{as:"div",className:"mt-[16px] font-bold leading-[1.4] text-[#1D1D1F] [&_a]:underline",html:i?.seeAvailableArea}),i?.shippingPolicy&&o(z,{data:i?.shippingPolicy,onClose:()=>M(!1),open:k})]})};var U=V(W);export{U as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/Listing/components/PaidShipping/index.tsx"],
4
+ "sourcesContent": ["import { Container, Text } from '../../../../components/index.js'\nimport type { Product, ProductVariant } from '../../types/product'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { cn } from '../../../../helpers/index.js'\n\nimport ShippingMethod from './ShippingMethod.js'\nimport { ShippingPolicyModal } from './ShippingPolicyModal.js'\nimport type { DeliveryCustom, shippingMetafields, ShippingMethodType } from './type'\nimport { isWeightAvailable } from './utils.js'\nimport LearnMore from './LearnMore.js'\nimport { useBizProductContext } from '../../BizProductProvider.js'\nimport { withLayout } from '../../../../shared/Styles.js'\n\nconst PaidShipping = ({\n metafields,\n productList,\n onShippingInfoChange,\n variant,\n className,\n}: {\n metafields: any\n productList: Array<Product & { variant: ProductVariant }>\n variant: ProductVariant\n onShippingInfoChange: (deliveryCustom: DeliveryCustom) => void\n className?: string\n}) => {\n const { isLogin, openSignInPopup } = useBizProductContext()\n const [openShippingPolicyModal, setOpenShippingPolicyModal] = useState(false)\n const [init, setInit] = useState(false)\n\n const [selectedMethod, setSelectedMethod] = useState<ShippingMethodType | null>(null)\n\n const weight = useMemo(() => {\n return productList.reduce((acc, product) => acc + (product?.variant?.weight || 0), 0)\n }, [productList])\n\n const normalizedMethod = useCallback(\n (method: shippingMetafields, weight: number, index: number) => {\n return {\n id: `${method.__code}__${method.price}`,\n code: method.__code,\n mode: method.__mode,\n title: method.title,\n disabled: !isWeightAvailable(weight, method),\n price: method.price,\n subtitle: method.subtitle,\n tag: index !== 0 ? metafields?.memberOnly : '',\n error: !isWeightAvailable(weight, method) ? metafields.overWeightError : '',\n }\n },\n [metafields?.memberOnly, metafields.overWeightError]\n )\n\n const list = useMemo(() => {\n const normalizedList: ShippingMethodType[] = metafields?.list?.map((method: shippingMetafields, index: number) =>\n normalizedMethod(method, weight, index)\n )\n\n return normalizedList?.reduce((prev: ShippingMethodType[], method: ShippingMethodType) => {\n // \u5982\u679C\u8D85\u91CD\uFF0C\u540C\u4E00\u4E2A\u7269\u6D41\u9009\u9879\u7C7B\u578B\u4E0B\uFF0C\u5C55\u793A\u5176\u4E2D\u4E00\u4E2A\u4E14\u4E0D\u53EF\u9009\n const sameTypeMethod = normalizedList.filter((m: ShippingMethodType) => m.code == method.code)\n let availableMethod: ShippingMethodType\n // \u6240\u6709\u7269\u6D41\u9009\u9879\u90FD\u4E0D\u53EF\u9009\n if (sameTypeMethod.every((m: ShippingMethodType) => m.disabled)) {\n availableMethod = sameTypeMethod[sameTypeMethod.length - 1]\n } else {\n // \u53EF\u9009\u7269\u6D41\u9009\u9879\n availableMethod = sameTypeMethod.find((m: ShippingMethodType) => !m.disabled)!\n }\n // \u5F53\u524D\u7269\u6D41\u9009\u9879\u5DF2\u5B58\u5728\n const hasSameMethod = prev.find((m: ShippingMethodType) => availableMethod.id === m.id)\n if (!hasSameMethod) {\n return [...prev, availableMethod]\n } else {\n return prev\n }\n }, [] as ShippingMethodType[])\n }, [normalizedMethod, metafields?.list, weight])\n\n const handleChangeShippingInfo = useCallback(\n (selectedMethod: ShippingMethodType) => {\n onShippingInfoChange({\n selected_delivery_code: selectedMethod.code,\n selected_delivery_mode: selectedMethod.mode,\n })\n },\n [onShippingInfoChange]\n )\n\n useEffect(() => {\n // \u9ED8\u8BA4\u9009\u4E2D\u7B2C\u4E00\u4E2A\u7269\u6D41\u9009\u9879\n if (metafields?.list?.length > 0 && !init) {\n const standardShippingMethod = normalizedMethod(metafields?.list[0], 0, 0)\n setSelectedMethod(standardShippingMethod)\n handleChangeShippingInfo(standardShippingMethod)\n setInit(true)\n }\n }, [normalizedMethod, metafields?.list, handleChangeShippingInfo, init])\n\n const toggleShipping = useCallback(\n (method: ShippingMethodType) => {\n if (method.disabled) {\n return\n }\n setSelectedMethod(method)\n handleChangeShippingInfo(method)\n // gaTrack({\n // event: 'ga4Event',\n // event_name: 'lp_button',\n // member_active_status: isLogin ? 'active' : 'not active', //\u7528\u4E8E\u8F93\u5165code\u6FC0\u6D3B\u4F1A\u5458\u5F39'\u7A97\u7684\u6309\u94AE\uFF0C\u533A\u5206\u4F1A\u5458\u6FC0\u6D3B\u72B6\u6001\uFF0C\u4F20active\u6216not active\n // event_parameters: {\n // page_group: 'Product Detail Page' + variant.sku, //\u5982\u679C\u662F\u9996\u9875\uFF0C\u5219\u4F20\"Home Page\";\u5982\u679C\u662Flisting\u7684\u9996\u5C4F\u6309\u94AE\uFF0C\u4F20Product Detail Page+$SKU\n // position: 'masterbanner1', //\u4F4D\u7F6E\u6807\u8BB0\u3002\u9996\u9875\u9996\u5C4F\u8F6E\u64AD\u4F4D\u7F6E\u4F20masterbanner1\u3001masterbanner2\u3001masterbanner3\uFF0C\u7B2C\u4E8C\u5C4F\u4F202nd_banner\uFF0C\u7B2C\u4E09\u5C4F\u4F203rd_banner\uFF0C\u6216\u8005\u53D6\u8BE5\u6A21\u5757\u5C0F\u6807\u9898\uFF0C\u6216\u80FD\u8BC6\u522B\u51FA\u662F\u54EA\u4E2A\u6A21\u5757\u4F4D\u7F6E\u7684\u6587\u6848\uFF0C\u5F39\u7A97\u4F20pop;\u5982\u679C\u662F\u8D2D\u7269\u8F66\u4FA7\u8FB9\u680F\uFF0C\u5219\u4F20\"Cart Pop Up\"\n // button_name: method.title, //\u53D6\u6309\u94AE\u6587\u6848\uFF0C\u6216\u80FD\u8BC6\u522B\u51FA\u662F\u54EA\u4E2A\u6309\u94AE\u7684\u6587\u6848,\u6BD4\u5982\u53F3\u4E0A\u89D2\u5173\u95ED\u4F20close,\u793E\u5A92\u5206\u4EAB\u56FE\u6807\u4F20\u5BF9\u5E94\u5E73\u53F0\u540D\u5B57\u5982Facebook,\u56FE\u7247\u5207\u6362\u5219\u4F20\u5BF9\u5E94\u5C55\u793A\u56FE\u7247\u7684\u540D\u5B57\n // info: '', //\u9ED8\u8BA4\u7A7A\u503C\uFF0C\u4E00\u822C\u4F20\u590D\u9009\u6846\u7684\u6587\u6848\u5185\u5BB9\uFF0C\u7279\u6B8A\u60C5\u51B5\u53EF\u6307\u5B9Ainfo\u503C\n // },\n // })\n },\n\n [isLogin, list, variant.sku, handleChangeShippingInfo, openSignInPopup]\n )\n\n return (\n <div\n id=\"ipc-product-paid-shipping\"\n className={cn(\n ' desktop:mt-[96px] lg-desktop:mt-[128px] tablet:px-8 laptop:px-16 desktop:px-0 mt-16 px-4',\n className\n )}\n >\n <div className=\"flex flex-wrap justify-between space-x-2 md:space-x-1\">\n <Text className=\"text-[16px] font-bold leading-[1.2] text-[#1F2021]\" html={metafields?.title}></Text>\n {/* <button\n onClick={() => {\n setOpenShippingPolicyModal(true)\n }}\n className='text-brand-color text-[16px] font-semibold text-[#595959] underline md:text-[14px]'\n >\n {metafields?.policy}\n </button> */}\n </div>\n <div className=\"lg-desktop:mt-[16px] desktop:flex-nowrap mt-[12px] flex flex-wrap gap-[12px] overflow-hidden\">\n {list.map((method: ShippingMethodType, index: number) => (\n <ShippingMethod\n key={index}\n index={index}\n item={method}\n active={selectedMethod?.code === method.code}\n toggleShipping={() => toggleShipping(method)}\n currencyCode={variant.price.currencyCode}\n metafields={metafields}\n className=\"laptop:w-[calc(50%-6px)] desktop:flex-1 w-full\"\n />\n ))}\n {/* learn more \u5361\u7247 */}\n <LearnMore\n setOpenShippingPolicyModal={setOpenShippingPolicyModal}\n metafields={metafields}\n className=\"laptop:w-[calc(50%-6px)] desktop:w-[calc(33.33%-16px)] lg-desktop:w-[calc(33.33%-24px)] w-full\"\n />\n </div>\n {list.find((method: ShippingMethodType) => method?.error) && (\n <Text\n className=\"desktop:mt-[16px] mt-[12px] font-bold leading-[1.4] text-[#D41435]\"\n html={list.find((method: ShippingMethodType) => method.error)?.error as string}\n as=\"p\"\n />\n )}\n\n {metafields?.seeAvailableArea && (\n <Text\n as=\"div\"\n className=\"mt-[16px] font-bold leading-[1.4] text-[#1D1D1F] [&_a]:underline\"\n html={metafields?.seeAvailableArea}\n />\n )}\n {metafields?.shippingPolicy && (\n <ShippingPolicyModal\n data={metafields?.shippingPolicy}\n onClose={() => setOpenShippingPolicyModal(false)}\n open={openShippingPolicyModal}\n />\n )}\n </div>\n )\n}\n\nexport default withLayout(PaidShipping)\n"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "jsxs", "Text", "useCallback", "useEffect", "useMemo", "useState", "cn", "ShippingMethod", "ShippingPolicyModal", "isWeightAvailable", "LearnMore", "useBizProductContext", "withLayout", "PaidShipping", "metafields", "productList", "onShippingInfoChange", "variant", "className", "isLogin", "openSignInPopup", "openShippingPolicyModal", "setOpenShippingPolicyModal", "init", "setInit", "selectedMethod", "setSelectedMethod", "weight", "acc", "product", "normalizedMethod", "method", "index", "list", "normalizedList", "prev", "sameTypeMethod", "m", "availableMethod", "handleChangeShippingInfo", "standardShippingMethod", "toggleShipping", "PaidShipping_default"]
7
+ }
@@ -0,0 +1,30 @@
1
+ export declare enum ShippingMethodMode {
2
+ FREE = "free",
3
+ TDD = "tdd",
4
+ NDD = "ndd"
5
+ }
6
+ export type shippingMetafields = {
7
+ __mode: ShippingMethodMode;
8
+ __code: string;
9
+ title: string;
10
+ subtitle: string;
11
+ price: number;
12
+ weight_low?: number | null;
13
+ weight_high?: number | null;
14
+ __plus?: boolean;
15
+ };
16
+ export type ShippingMethodType = {
17
+ error: unknown;
18
+ code: string;
19
+ mode: ShippingMethodMode;
20
+ title: string;
21
+ disabled: boolean;
22
+ tag: string;
23
+ price: number;
24
+ subtitle: string;
25
+ id: string;
26
+ };
27
+ export type DeliveryCustom = {
28
+ selected_delivery_code?: string;
29
+ selected_delivery_mode?: ShippingMethodMode;
30
+ };
@@ -0,0 +1,2 @@
1
+ var t=(e=>(e.FREE="free",e.TDD="tdd",e.NDD="ndd",e))(t||{});export{t as ShippingMethodMode};
2
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/Listing/components/PaidShipping/type.ts"],
4
+ "sourcesContent": ["export enum ShippingMethodMode {\n FREE = 'free',\n TDD = 'tdd',\n NDD = 'ndd',\n}\n\nexport type shippingMetafields = {\n __mode: ShippingMethodMode\n __code: string\n title: string\n subtitle: string\n price: number\n weight_low?: number | null\n weight_high?: number | null\n __plus?: boolean\n}\n\nexport type ShippingMethodType = {\n error: unknown\n code: string\n mode: ShippingMethodMode\n title: string\n disabled: boolean\n tag: string\n price: number\n subtitle: string\n id: string\n}\n\nexport type DeliveryCustom = {\n selected_delivery_code?: string\n selected_delivery_mode?: ShippingMethodMode\n}\n"],
5
+ "mappings": "AAAO,IAAKA,OACVA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,IAAM,MAHIA,OAAA",
6
+ "names": ["ShippingMethodMode"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import type { shippingMetafields } from './type.js';
2
+ export declare const isWeightAvailable: (weight: number, method: shippingMetafields) => boolean;
@@ -0,0 +1,2 @@
1
+ const g=(e,i)=>i.weight_high&&i.weight_low?e>=i.weight_low&&e<=i.weight_high:i.weight_high&&!i.weight_low?e<=i.weight_high:i.weight_low&&!i.weight_high?e>=i.weight_low:!0;export{g as isWeightAvailable};
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/Listing/components/PaidShipping/utils.ts"],
4
+ "sourcesContent": ["import type { shippingMetafields } from './type.js'\n\nexport const isWeightAvailable = (weight: number, method: shippingMetafields) => {\n if (method.weight_high && method.weight_low) {\n return weight >= method.weight_low && weight <= method.weight_high\n } else if (method.weight_high && !method.weight_low) {\n return weight <= method.weight_high\n } else if (method.weight_low && !method.weight_high) {\n return weight >= method.weight_low\n } else {\n return true\n }\n}\n"],
5
+ "mappings": "AAEO,MAAMA,EAAoB,CAACC,EAAgBC,IAC5CA,EAAO,aAAeA,EAAO,WACxBD,GAAUC,EAAO,YAAcD,GAAUC,EAAO,YAC9CA,EAAO,aAAe,CAACA,EAAO,WAChCD,GAAUC,EAAO,YACfA,EAAO,YAAc,CAACA,EAAO,YAC/BD,GAAUC,EAAO,WAEjB",
6
+ "names": ["isWeightAvailable", "weight", "method"]
7
+ }
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+ interface BenefitsTabTextConfig {
3
+ couponCode?: string;
4
+ copyCode?: string;
5
+ copied?: string;
6
+ expired?: string;
7
+ offCoupon?: string;
8
+ offMemberOnly?: string;
9
+ loginNow?: string;
10
+ selectFreeGift?: string;
11
+ bundleSaveUpTo?: string;
12
+ bundleOffer?: string;
13
+ creditsTitle?: string;
14
+ creditsDesc?: string;
15
+ off?: string;
16
+ memberBenefitsNotLogin?: string;
17
+ memberBenefitsNotLoginText?: string;
18
+ forNewMember?: string;
19
+ expressShipping?: string;
20
+ creditsAfterActivation?: string;
21
+ active?: string;
22
+ flexibleInstallment?: string;
23
+ }
24
+ export type ProductBenefitsTabsValueType = 'coupon' | 'membership' | 'pay' | 'installment';
25
+ export type ModalData = {
26
+ needClickAway?: boolean;
27
+ className?: string;
28
+ title?: string;
29
+ content?: string;
30
+ domContent?: React.ReactNode;
31
+ };
32
+ interface BenefitsTabProps {
33
+ textConfig?: BenefitsTabTextConfig;
34
+ }
35
+ declare const _default: React.ForwardRefExoticComponent<Omit<BenefitsTabProps, keyof import("../../../../../shared/Styles.js").StylesProps> & Partial<import("../../../../../shared/Styles.js").StylesProps & import("../../../../../shared/Styles.js").ContainerProps> & {
36
+ className?: string;
37
+ data?: Record<string, any>;
38
+ } & React.RefAttributes<any>>;
39
+ export default _default;
@@ -0,0 +1,39 @@
1
+ import{Fragment as L,jsx as e,jsxs as a}from"react/jsx-runtime";import{Button as ae,Checkbox as ie,Text as d,Picture as v,Heading as $,Link as se}from"../../../../../components/index.js";import u from"./ProductBenefitsTabs/index.js";import{useBizProductContext as W}from"../../../BizProductProvider.js";import{useBenefits as le}from"../../../hooks/useBenefits.js";import{formatPrice as x}from"../../../utils/index.js";import{replaceTemplate as Z}from"../../../utils/textFormat.js";import{useEffect as re,useMemo as _,useRef as ce,useState as E}from"react";import{useAiuiContext as q}from"../../../../AiuiProvider/index.js";import pe from"../../../../../hooks/useCountDown.js";import de from"../../../hooks/useCopy.js";import{cn as G}from"../../../../../helpers/index.js";import ue from"./ProductBenefitsTabs/ModalContainer.js";import{withLayout as fe}from"../../../../../shared/Styles.js";const me={couponCode:"Code",copyCode:"Copy Code",copied:"Copied",expired:"Expired",offCoupon:"{discount} off coupon",offMemberOnly:"{amount} off Member Only",loginNow:"Login now",selectFreeGift:"You can select the free gift below.",bundleSaveUpTo:"Bundle purchases save extra up to",bundleOffer:"We offer {count} bundle for you",creditsTitle:"Soundcore credits for cash",creditsDesc:"100 Soundcore credits=$1",off:" off",memberBenefitsNotLogin:"You will enjoy a {amount} member discount after logging in.",memberBenefitsNotLoginText:"Sign Up to Get Benefits Below",forNewMember:"{amount} off for New Member",expressShipping:"Express Shipping Method",creditsAfterActivation:"You will get soundcoreCredits after activation. ",active:"Active",flexibleInstallment:"Flexible installment payment "},be=({item:n,textConfig:S,benefitPayloadData:i})=>{const{trackingData:l}=q(),{copied:C,copy:h}=de(),[y,P]=E(!1),c=l?.common?.coupon,{days:B,hours:N,minutes:I,seconds:F}=pe({endTime:n?.ends_at||""}),{openModal:k}=W();return a(L,{children:[e("style",{jsx:!0,children:`
2
+ .coupon-card {
3
+ /* \u4F7F\u7528mask\u521B\u5EFA\u5185\u5207\u5706\u89D2 */
4
+ mask:
5
+ radial-gradient(circle at 0 0, transparent 12px, white 12px),
6
+ radial-gradient(circle at 100% 0, transparent 12px, white 12px),
7
+ radial-gradient(circle at 100% 100%, transparent 12px, white 12px),
8
+ radial-gradient(circle at 0 100%, transparent 12px, white 12px);
9
+ mask-size: 50% 50%;
10
+ mask-position:
11
+ top left,
12
+ top right,
13
+ bottom right,
14
+ bottom left;
15
+ mask-repeat: no-repeat;
16
+ }
17
+ `}),a("div",{style:{background:n.couponBgColor||"white"},className:G("laptop:h-[112px] lg-desktop:h-[130px] relative h-[100px] overflow-hidden p-3",n.borderStyle==="inset"?"coupon-card ":"rounded-[8px]"),...n.useAble&&{role:"button",tabIndex:0,onClick:()=>{n?.onUseChange?.(y)!==!1&&P(!y)}},children:[n?.bgImage?.url&&e(v,{source:n.bgImage.url,alt:n.bgImage.alt,className:"absolute bottom-0 right-0 w-auto",imgClassName:"object-contain"}),a("div",{className:"z-1 relative ",children:[a("div",{className:"flex items-center justify-start",children:[n.useAble&&e(ie,{size:"lg",className:"data-[state=checked]:border-primary mr-2 rounded-full border-[1.6px] border-[#D1D1D1]",checked:n?.isAutoUse}),e(d,{html:n.title,className:"laptop:text-[20px] lg-desktop:text-[24px] text-[16px] font-bold leading-[1.2]"})]}),n.description&&e(d,{...typeof n.description=="string"?{html:n.description}:{},as:"p",className:"lg-desktop:text-[16px] mt-2 pr-8 text-[14px] font-bold text-[#3D3D3F]",children:n.description}),n.code&&a("div",{className:"desktop:mt-2 flex items-center gap-2",children:[e(d,{html:`${i?.couponBenefitData?.commonCoupon?.couponCode}: ${n.code}`,className:"lg-desktop:text-[16px] text-[14px] font-bold text-[#3D3D3F]"}),e(se,{className:"lg-desktop:text-[16px] text-[14px] font-bold underline",role:"button",tabIndex:0,onClick:r=>{r.preventDefault(),r.stopPropagation(),h(n.code||"")},children:C?c?.copied||i?.couponBenefitData?.commonCoupon?.copied:c?.copy||i?.couponBenefitData?.commonCoupon?.copyCode})]}),n.ends_at&&e("button",{onClick:()=>{c?.modal&&k(c?.modal)},className:"lg-desktop:mt-[24px] text-brand-0 desktop:mt-4 lg-desktop:text-[16px] md-l:hidden mt-[14px] text-left text-[14px] font-bold text-[#1F2021]",children:Number(B)<Number(c?.hurry?.daysLeft)?a(L,{children:[e("span",{children:c?.ends}),e("span",{className:"font-bold",children:` ${B} ${N.toString().padStart(2,"0")}:${I.toString().padStart(2,"0")}:${F.toString().padStart(2,"0")}`})]}):c?.hurry?.label||i?.couponBenefitData?.commonCoupon?.expired})]})]})]})},ge=({coupons:n,className:S,textConfig:i,benefitPayloadData:l})=>e("div",{className:G("laptop:grid laptop:grid-cols-2 desktop:grid-cols-1 flex flex-col gap-3",S),children:n?.map((C,h)=>e(be,{item:C,textConfig:i,benefitPayloadData:l},h))}),xe=({textConfig:n})=>{const{isLogin:S,profile:i,variant:l,renderInstallments:C,onUseCouponChange:h,onUseMemberDiscountChange:y,discount:P,savingDetail:c,openModal:B,openSignInPopup:N,openAuthCodePopup:I,openSignUpPopup:F,product:k}=W(),r=_(()=>k?.payload?.components?.find(t=>t.componentKey==="ProductBenefits")?.data||{},[k?.payload]),[Y,j]=E(!1),K=le({variant:l}),{locale:m="us",copyWriting:J}=q(),A=ce(null),Q={...me,...n},{activated:X=!1}=i||{},{memberDiscount:b,commonCoupon:f,creditsRedemption:w,freeGift:z,bundle:H,paidShipping:ee,fullGift:V,levelDiscount:R}=K,o=_(()=>{const t=r?.benefitTabs?.find(p=>p?.value==="coupon")??{},s=r?.benefitTabs?.find(p=>p?.value==="membership")??{},D=r?.benefitTabs?.find(p=>p?.value==="installment")??{},T=r?.benefitTabs?.find(p=>p?.value==="pay")??{};return{couponBenefitData:t,membershipBenefitData:s,installmentBenefitData:D,payBenefitData:T}},[r]),g=[f?.enable?{...f.config,isAutoUse:c?.coupon>0,useAble:!0,borderStyle:"rounded",code:f?.config?.title??"",description:f?.config?.desc??"",onUseChange:t=>{const s=t?P?.codeSavings??0:0;h?.(s)},title:Z(o?.couponBenefitData?.commonCoupon?.offCoupon,{discount:f?.config?.value_type=="percentage"?Math.abs(Number(f?.config?.value||0))+"%":x({amount:Math.abs(Number(f?.config?.fixed_value||0)),currencyCode:l.price.currencyCode,locale:m})})}:null,b.enable?{useAble:!0,isAutoUse:!!i?.email&&!!c?.member,title:Z(o?.couponBenefitData?.member?.offMemberOnly,{amount:x({amount:b?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m})}),description:a(L,{children:[i?.email?o?.couponBenefitData?.member?.memberDiscounts:o?.membershipBenefitData?.memberBenefitsNotLogin?.replace("{amount}",x({amount:b?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m}))??""," ",i?.email?"":e("span",{role:"button",tabIndex:0,onClick:()=>N?.(),className:"underline",children:o?.couponBenefitData?.member?.loginNow})]}),borderStyle:"rounded",onUseChange:t=>{if(i?.email){const s=t?b?.config?.amount??0:0;return y?.(s),!0}else return N?.(),!1}}:null,R.enable?{title:R?.config?.title??"",description:R?.config?.tag??"",borderStyle:"inset",bgImage:{url:o?.couponBenefitData?.levelDiscount?.bgImage}}:null,z.enable?{title:z?.config?.title??"",description:o?.couponBenefitData?.freeGift?.selectFreeGift,borderStyle:"inset",bgImage:{url:o?.couponBenefitData?.freeGift?.bgImage},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null,H.enable?{title:`${o?.couponBenefitData?.bundle?.bundleSaveUpTo} ${x({amount:Math.max(...H?.config?.bundleList?.map(t=>t.savings??0)??[]),currencyCode:l.price.currencyCode,locale:m})}`,borderStyle:"inset",description:o?.couponBenefitData?.bundle?.bundleOffer.replace("{count}",H?.config?.bundleList?.length?.toString()??""),bgImage:{url:o?.couponBenefitData?.bundle?.bgImage},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null,V.enable?{title:V?.config?.title??"",description:V?.config?.desc??"",borderStyle:"inset",bgImage:{url:o?.couponBenefitData?.fullGift?.bgImage},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null,w.enable?{title:o?.couponBenefitData?.creditsRedemption?.creditsTitle,description:o?.couponBenefitData?.creditsRedemption?.creditsDesc,borderStyle:"inset",bgImage:{url:o?.couponBenefitData?.creditsRedemption?.bgImage},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null].filter(Boolean);re(()=>{U(g?.length?"coupon":"membership")},[g?.length]);const[O,U]=E("coupon"),te=()=>{I?.()};if(!u)return null;const oe=(t,s)=>{if(U(s),A.current){const D=A.current,T=t.currentTarget,p=T.offsetLeft-D.offsetWidth/2+T.offsetWidth/2;D.scrollTo({left:p,behavior:"smooth"})}},ne=_(()=>r?.benefitTabs?.map(t=>t?.value==="coupon"&&!g?.length?null:t).filter(Boolean),[r,g]);return a(u,{className:"relative",onValueChange:t=>U(t),value:O,children:[e("div",{className:"absolute right-0 top-0 z-[1] h-[40px] w-[25px] rounded-xl bg-gradient-to-r from-transparent to-[#EAEAEC]"}),e(u.List,{ref:A,children:ne?.map(t=>e(u.Trigger,{className:G(O===t.value&&"text-[#1D1D1F]"),value:t.value,onClick:s=>oe(s,t?.value),children:t.label},t?.value))}),e("style",{global:!0,jsx:!0,children:`
18
+ .benefits-tabs-content::-webkit-scrollbar {
19
+ width: 4px; /* \u6EDA\u52A8\u6761\u5BBD\u5EA6 */
20
+ height: 64px; /* \u6A2A\u5411\u6EDA\u52A8\u6761\u9AD8\u5EA6 */
21
+ }
22
+
23
+ .benefits-tabs-content::-webkit-scrollbar-track {
24
+ background: transparent; /* \u6EDA\u52A8\u6761\u8F68\u9053\u80CC\u666F */
25
+ }
26
+
27
+ .benefits-tabs-content::-webkit-scrollbar-thumb {
28
+ background-color: #d1d1d1; /* \u6EDA\u52A8\u6761\u989C\u8272 */
29
+ border-radius: 9999px; /* \u5706\u89D2 */
30
+ }
31
+
32
+ .benefits-tabs-content::-webkit-scrollbar-thumb:hover {
33
+ background-color: rgba(100, 100, 100, 0.6);
34
+ }
35
+ `}),g?.length?e(u.Content,{value:"coupon",className:"benefits-tabs-content lg-desktop:h-[240px] desktop:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto",children:e("div",{className:"lg-desktop:p-4 p-3",children:e(ge,{coupons:g,textConfig:Q,benefitPayloadData:o})})}):null,e(u.Content,{value:"membership",className:"benefits-tabs-content lg-desktop:h-[240px] desktop:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto",children:a("div",{className:"lg-desktop:p-4 p-3",children:[!i?.email&&e("h3",{className:"mb-2 text-left text-lg font-bold",children:o?.membershipBenefitData?.memberBenefitsNotLoginText}),e("div",{className:"rounded-lg",children:a("ul",{className:`list-none [&_li:first-child]:rounded-t-lg
36
+ [&_li:last-child]:rounded-b-lg [&_li:last-child]:last:border-b-0 [&_li]:flex [&_li]:items-center [&_li]:gap-2
37
+ [&_li]:border-b [&_li]:border-b-[#E4E5E6] [&_li]:bg-white [&_li]:p-4
38
+ [&_li]:text-left`,children:[b.enable&&a("li",{className:"justify-between",children:[a("div",{className:"flex gap-2",children:[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:e("path",{d:"M20 3.5C21.6569 3.5 23 4.84315 23 6.5V9.65625C23 10.0791 22.7342 10.4566 22.3359 10.5986C21.6665 10.8372 21.1816 11.4844 21.1816 12.25C21.1816 13.0156 21.6665 13.6628 22.3359 13.9014C22.7342 14.0434 23 14.4209 23 14.8438V18C23 19.6569 21.6569 21 20 21H4C2.34315 21 1 19.6569 1 18V14.8438L1.01172 14.6875C1.06803 14.3301 1.31557 14.0256 1.66406 13.9014C2.33345 13.6628 2.81836 13.0156 2.81836 12.25C2.81836 11.4844 2.33345 10.8372 1.66406 10.5986C1.26583 10.4566 1 10.0791 1 9.65625V6.5C1 4.84315 2.34315 3.5 4 3.5H20ZM4 5.5C3.44772 5.5 3 5.94772 3 6.5V9.03125C4.08987 9.68678 4.81836 10.8833 4.81836 12.25C4.81836 13.6165 4.08963 14.8122 3 15.4678V18C3 18.5523 3.44772 19 4 19H20C20.5523 19 21 18.5523 21 18V15.4678C19.9104 14.8122 19.1816 13.6165 19.1816 12.25C19.1816 10.8833 19.9101 9.68677 21 9.03125V6.5C21 5.94772 20.5523 5.5 20 5.5H4ZM15.793 6.79297C16.1835 6.40244 16.8165 6.40244 17.207 6.79297C17.5976 7.18349 17.5976 7.81651 17.207 8.20703L8.20703 17.207C7.81651 17.5976 7.18349 17.5976 6.79297 17.207C6.40244 16.8165 6.40244 16.1835 6.79297 15.793L15.793 6.79297ZM15.25 13.25C16.3546 13.25 17.25 14.1454 17.25 15.25C17.25 16.3546 16.3546 17.25 15.25 17.25C14.1454 17.25 13.25 16.3546 13.25 15.25C13.25 14.1454 14.1454 13.25 15.25 13.25ZM15.25 14.75C14.9739 14.75 14.75 14.9739 14.75 15.25C14.75 15.5261 14.9739 15.75 15.25 15.75C15.5261 15.75 15.75 15.5261 15.75 15.25C15.75 14.9739 15.5261 14.75 15.25 14.75ZM8.75 6.75C9.85457 6.75 10.75 7.64543 10.75 8.75C10.75 9.85457 9.85457 10.75 8.75 10.75C7.64543 10.75 6.75 9.85457 6.75 8.75C6.75 7.64543 7.64543 6.75 8.75 6.75ZM8.75 8.25C8.47386 8.25 8.25 8.47386 8.25 8.75C8.25 9.02614 8.47386 9.25 8.75 9.25C9.02614 9.25 9.25 9.02614 9.25 8.75C9.25 8.47386 9.02614 8.25 8.75 8.25Z",fill:"#1D1D1F"})}),e(d,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",children:Z(o?.membershipBenefitData?.forNewMember,{amount:x({amount:b?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m})})})]}),!!i?.email&&e(M,{})]}),o?.membershipBenefitData?.equities?.map((t,s)=>t.modalText?a("li",{className:"justify-between gap-2",children:[a("button",{onClick:()=>B?.({title:t.label,content:t.modalText}),className:"flex justify-between",children:[e(v,{source:t.icon,alt:t.text,className:"size-6 shrink-0"}),e(d,{className:"x:text-[14px] text-wrap text-left text-[16px] font-bold",children:t.text})]},s),!!i?.email&&e(M,{})]},s):a("li",{className:"justify-between",children:[a("div",{className:"flex items-center gap-2",children:[e(v,{source:t.icon,alt:t.text,className:" size-6 shrink-0"}),e(d,{as:"p",className:"x:text-[14px] text-wrap text-left text-[16px] font-bold",children:t.label})]}),!!i?.email&&e(M,{})]},s)),ee.enable?a("li",{className:"justify-between",children:[a("div",{className:"flex gap-2",children:[e("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e("path",{d:"M19 3C19.5523 3 20 3.44772 20 4C20 4.55228 19.5523 5 19 5H10V16H21C21.5523 16 22 16.4477 22 17C22 17.5523 21.5523 18 21 18H19.9961C19.9961 19.6559 18.6547 21 16.998 21C15.3414 21 14 19.6559 14 18H10C10 19.6568 8.65684 21 7 21C5.34317 21 4 19.6568 4 18H2C1.44772 18 1 17.5523 1 17V10.6738L1.00488 10.5771C1.02632 10.3554 1.12145 10.146 1.27637 9.9834L4.77637 6.31055L4.84961 6.24023C5.02993 6.08586 5.26042 6 5.5 6H8V5C8 3.89544 8.89541 3 10 3H19ZM6.00488 18.1025C6.05622 18.6067 6.48234 19 7 19C7.51766 19 7.94378 18.6067 7.99512 18.1025L8 18H6L6.00488 18.1025ZM16.0049 18.1025C16.0561 18.6074 16.4823 19 16.998 19C17.5138 19 17.94 18.6074 17.9912 18.1025L17.9961 18H16L16.0049 18.1025ZM3 11.0723V16H8V8H5.92773L3 11.0723ZM21.6621 6.8252C22.0348 6.41765 22.6676 6.38902 23.0752 6.76172C23.4827 7.13443 23.5104 7.76725 23.1377 8.1748L18.0518 13.7363C17.6625 14.162 17.003 14.1954 16.5732 13.8105L13.333 10.9092C12.9216 10.5408 12.8865 9.90853 13.2549 9.49707C13.6232 9.08565 14.2555 9.05066 14.667 9.41895L17.208 11.6943L21.6621 6.8252Z",fill:"#1D1D1F"})}),e(d,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",children:o?.membershipBenefitData?.expressShipping})]}),!!i?.email&&e(M,{})]}):null,w.enable?a("li",{children:[e("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e("path",{d:"M12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12C1 5.92487 5.92487 1 12 1ZM12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3ZM17 13C17.5523 13 18 13.4477 18 14C18 14.5523 17.5523 15 17 15H9.41406L9.70703 15.293C10.0976 15.6835 10.0976 16.3165 9.70703 16.707C9.31651 17.0976 8.68349 17.0976 8.29297 16.707L6.29297 14.707C6.00697 14.421 5.92139 13.9909 6.07617 13.6172C6.23098 13.2436 6.59558 13 7 13H17ZM14.293 7.29297C14.6835 6.90244 15.3165 6.90244 15.707 7.29297L17.707 9.29297C17.993 9.57897 18.0786 10.0091 17.9238 10.3828C17.769 10.7564 17.4044 11 17 11H7C6.44772 11 6 10.5523 6 10C6 9.44771 6.44772 9 7 9H14.5859L14.293 8.70703C13.9024 8.31651 13.9024 7.68349 14.293 7.29297Z",fill:"#1D1D1F"})}),e(d,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",children:!X&&i?.email?a(L,{children:[o?.membershipBenefitData?.creditsAfterActivation,e("span",{role:"button",tabIndex:0,onClick:()=>te(),className:"underline",children:o?.membershipBenefitData?.active})]}):w?.config?.label?.replace("{{amount}}",x({amount:w?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m}))})]}):null]})}),!i?.email&&e("div",{className:"pt-4",children:e(ae,{variant:"primary",className:"w-full",onClick:()=>F?.(),children:J?.signUp})})]})}),a(u.Content,{value:"pay",className:"benefits-tabs-content lg-desktop:h-[240px] desktop:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto ",children:[a("div",{className:"lg-desktop:p-4 p-3",children:[e($,{size:2,className:"mb-2 text-left text-lg font-bold",children:o?.payBenefitData?.payMethod}),a("div",{className:"lg-desktop:p-4 flex items-center justify-between gap-2 rounded-lg bg-white p-3",children:[a("div",{className:"flex items-center gap-2",children:[e(v,{source:o?.payBenefitData?.icon,className:"desktop:size-[70px] desktop:h-[34px] size-[40px] h-[20px] shrink-0"}),e(d,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",html:o?.payBenefitData?.withCheckout})]}),e("button",{className:"hover:text-brand-0 desktop:text-[16px] whitespace-nowrap text-sm font-bold underline",onClick:()=>j(!0),children:o?.payBenefitData?.learnMore})]})]}),e(ue,{showModal:Y,closeModal:()=>j(!1),children:e(v,{source:o?.payBenefitData?.payImage})})]}),e(u.Content,{value:"installment",className:"benefits-tabs-content lg-desktop:h-[240px] desktop:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto ",children:a("div",{className:"lg-desktop:p-4 p-3",children:[e($,{size:2,className:"mb-2 text-left text-lg font-bold",children:o?.installmentBenefitData?.flexibleInstallment}),e("div",{className:"lg-desktop:p-4 overflow-hidden rounded-lg bg-white p-3",children:C})]})})]})},M=n=>e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",...n,children:e("path",{d:"M4 9.19472L8.51935 13.667L16.2668 6.00024",stroke:"#2BBC4F",strokeWidth:"1.67",strokeLinecap:"round",strokeLinejoin:"round"})});var Ie=fe(xe);export{Ie as default};
39
+ //# sourceMappingURL=BenefitsTab.js.map