@anker-in/headless-ui 1.3.43-alpha.1784864903316 → 1.3.44

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 (373) hide show
  1. package/dist/cjs/biz-components/Listing/BizProductProvider.d.ts +9 -11
  2. package/dist/cjs/biz-components/Listing/BizProductProvider.js +1 -1
  3. package/dist/cjs/biz-components/Listing/BizProductProvider.js.map +3 -3
  4. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +4 -4
  5. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +3 -3
  6. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefits/index.js +1 -1
  7. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefits/index.js.map +3 -3
  8. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +0 -1
  9. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +1 -1
  10. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +3 -3
  11. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.d.ts +1 -1
  12. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.js +1 -1
  13. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.js.map +3 -3
  14. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +2 -0
  15. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +1 -1
  16. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +4 -4
  17. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +2 -0
  18. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  19. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  20. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js +1 -1
  21. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +3 -3
  22. package/dist/cjs/biz-components/Listing/components/ProductCard/index.d.ts +2 -0
  23. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js +2 -0
  24. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  25. package/dist/cjs/biz-components/Listing/components/index.d.ts +1 -0
  26. package/dist/cjs/biz-components/Listing/components/index.js +1 -1
  27. package/dist/cjs/biz-components/Listing/components/index.js.map +3 -3
  28. package/dist/cjs/biz-components/Listing/hooks/useBenefits.d.ts +2 -8
  29. package/dist/cjs/biz-components/Listing/hooks/useBenefits.js +1 -1
  30. package/dist/cjs/biz-components/Listing/hooks/useBenefits.js.map +3 -3
  31. package/dist/cjs/biz-components/Listing/types/product.d.ts +21 -0
  32. package/dist/cjs/biz-components/Listing/types/product.js +1 -1
  33. package/dist/cjs/biz-components/Listing/types/product.js.map +1 -1
  34. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  35. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +2 -2
  36. package/dist/cjs/biz-components/index.d.ts +3 -9
  37. package/dist/cjs/biz-components/index.js +1 -1
  38. package/dist/cjs/biz-components/index.js.map +3 -3
  39. package/dist/cjs/components/index.d.ts +0 -2
  40. package/dist/cjs/components/index.js +1 -1
  41. package/dist/cjs/components/index.js.map +3 -3
  42. package/dist/cjs/components/input-number.d.ts +0 -22
  43. package/dist/cjs/components/input-number.js +1 -1
  44. package/dist/cjs/components/input-number.js.map +3 -3
  45. package/dist/cjs/components/input.d.ts +0 -5
  46. package/dist/cjs/components/input.js +1 -1
  47. package/dist/cjs/components/input.js.map +3 -3
  48. package/dist/cjs/hooks/useDraggableScroll.js +1 -1
  49. package/dist/cjs/hooks/useDraggableScroll.js.map +2 -2
  50. package/dist/cjs/hooks/useExposure.d.ts +1 -1
  51. package/dist/cjs/hooks/useExposure.js +1 -1
  52. package/dist/cjs/hooks/useExposure.js.map +2 -2
  53. package/dist/cjs/hooks/useViewItemList.d.ts +1 -1
  54. package/dist/cjs/hooks/useViewItemList.js.map +2 -2
  55. package/dist/esm/biz-components/Listing/BizProductProvider.d.ts +9 -11
  56. package/dist/esm/biz-components/Listing/BizProductProvider.js +1 -1
  57. package/dist/esm/biz-components/Listing/BizProductProvider.js.map +3 -3
  58. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +4 -4
  59. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +3 -3
  60. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefits/index.js +1 -1
  61. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefits/index.js.map +3 -3
  62. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +0 -1
  63. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +1 -1
  64. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +3 -3
  65. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.d.ts +1 -1
  66. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.js +1 -1
  67. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.js.map +3 -3
  68. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +2 -0
  69. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +1 -1
  70. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +3 -3
  71. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +2 -0
  72. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  73. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  74. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js +1 -1
  75. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +3 -3
  76. package/dist/esm/biz-components/Listing/components/ProductCard/index.d.ts +2 -0
  77. package/dist/esm/biz-components/Listing/components/ProductCard/index.js +2 -0
  78. package/dist/esm/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  79. package/dist/esm/biz-components/Listing/components/index.d.ts +1 -0
  80. package/dist/esm/biz-components/Listing/components/index.js +1 -1
  81. package/dist/esm/biz-components/Listing/components/index.js.map +2 -2
  82. package/dist/esm/biz-components/Listing/hooks/useBenefits.d.ts +2 -8
  83. package/dist/esm/biz-components/Listing/hooks/useBenefits.js +1 -1
  84. package/dist/esm/biz-components/Listing/hooks/useBenefits.js.map +3 -3
  85. package/dist/esm/biz-components/Listing/types/product.d.ts +21 -0
  86. package/dist/esm/biz-components/Listing/types/product.js.map +1 -1
  87. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  88. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +2 -2
  89. package/dist/esm/biz-components/index.d.ts +3 -9
  90. package/dist/esm/biz-components/index.js +1 -1
  91. package/dist/esm/biz-components/index.js.map +3 -3
  92. package/dist/esm/components/index.d.ts +0 -2
  93. package/dist/esm/components/index.js +1 -1
  94. package/dist/esm/components/index.js.map +3 -3
  95. package/dist/esm/components/input-number.d.ts +0 -22
  96. package/dist/esm/components/input-number.js +1 -1
  97. package/dist/esm/components/input-number.js.map +3 -3
  98. package/dist/esm/components/input.d.ts +0 -5
  99. package/dist/esm/components/input.js +1 -1
  100. package/dist/esm/components/input.js.map +3 -3
  101. package/dist/esm/hooks/useDraggableScroll.js +1 -1
  102. package/dist/esm/hooks/useDraggableScroll.js.map +2 -2
  103. package/dist/esm/hooks/useExposure.d.ts +1 -1
  104. package/dist/esm/hooks/useExposure.js +1 -1
  105. package/dist/esm/hooks/useExposure.js.map +2 -2
  106. package/dist/esm/hooks/useViewItemList.d.ts +1 -1
  107. package/dist/esm/hooks/useViewItemList.js.map +2 -2
  108. package/package.json +1 -1
  109. package/style.css +0 -259
  110. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.d.ts +0 -11
  111. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js +0 -2
  112. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js.map +0 -7
  113. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.d.ts +0 -23
  114. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js +0 -2
  115. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js.map +0 -7
  116. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.d.ts +0 -40
  117. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js +0 -2
  118. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js.map +0 -7
  119. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.d.ts +0 -107
  120. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js +0 -2
  121. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js.map +0 -7
  122. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.d.ts +0 -22
  123. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.js +0 -2
  124. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.js.map +0 -7
  125. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.d.ts +0 -10
  126. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.js +0 -2
  127. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.js.map +0 -7
  128. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.d.ts +0 -9
  129. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.js +0 -2
  130. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.js.map +0 -7
  131. package/dist/cjs/biz-components/AccessoriesShelf/index.d.ts +0 -7
  132. package/dist/cjs/biz-components/AccessoriesShelf/index.js +0 -2
  133. package/dist/cjs/biz-components/AccessoriesShelf/index.js.map +0 -7
  134. package/dist/cjs/biz-components/AccessoriesShelf/types.d.ts +0 -16
  135. package/dist/cjs/biz-components/AccessoriesShelf/types.js +0 -2
  136. package/dist/cjs/biz-components/AccessoriesShelf/types.js.map +0 -7
  137. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.d.ts +0 -14
  138. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.js +0 -2
  139. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.js.map +0 -7
  140. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.d.ts +0 -11
  141. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js +0 -2
  142. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js.map +0 -7
  143. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.d.ts +0 -2
  144. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js +0 -2
  145. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js.map +0 -7
  146. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.d.ts +0 -13
  147. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js +0 -2
  148. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js.map +0 -7
  149. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.d.ts +0 -2
  150. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js +0 -2
  151. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js.map +0 -7
  152. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.d.ts +0 -2
  153. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.js +0 -2
  154. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.js.map +0 -7
  155. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.d.ts +0 -54
  156. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.js +0 -2
  157. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.js.map +0 -7
  158. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.d.ts +0 -4
  159. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js +0 -2
  160. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js.map +0 -7
  161. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.d.ts +0 -2
  162. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js +0 -2
  163. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js.map +0 -7
  164. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.d.ts +0 -9
  165. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js +0 -2
  166. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js.map +0 -7
  167. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.d.ts +0 -11
  168. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js +0 -2
  169. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js.map +0 -7
  170. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.d.ts +0 -2
  171. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js +0 -2
  172. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js.map +0 -7
  173. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.d.ts +0 -12
  174. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js +0 -2
  175. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js.map +0 -7
  176. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.d.ts +0 -2
  177. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js +0 -2
  178. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js.map +0 -7
  179. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.d.ts +0 -4
  180. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js +0 -2
  181. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js.map +0 -7
  182. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.d.ts +0 -2
  183. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js +0 -2
  184. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js.map +0 -7
  185. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.d.ts +0 -11
  186. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js +0 -2
  187. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js.map +0 -7
  188. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.d.ts +0 -8
  189. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js +0 -2
  190. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js.map +0 -7
  191. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.d.ts +0 -2
  192. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js +0 -2
  193. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js.map +0 -7
  194. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.d.ts +0 -2
  195. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.js +0 -2
  196. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.js.map +0 -7
  197. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.d.ts +0 -34
  198. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.js +0 -2
  199. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.js.map +0 -7
  200. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.d.ts +0 -2
  201. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.js +0 -2
  202. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.js.map +0 -7
  203. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.d.ts +0 -49
  204. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js +0 -2
  205. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js.map +0 -7
  206. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.d.ts +0 -2
  207. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.js +0 -2
  208. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.js.map +0 -7
  209. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.d.ts +0 -26
  210. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js +0 -2
  211. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js.map +0 -7
  212. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.d.ts +0 -2
  213. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.js +0 -2
  214. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.js.map +0 -7
  215. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.d.ts +0 -10
  216. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.js +0 -2
  217. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.js.map +0 -7
  218. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.d.ts +0 -2
  219. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.js +0 -2
  220. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.js.map +0 -7
  221. package/dist/cjs/biz-components/CartDetail/index.d.ts +0 -16
  222. package/dist/cjs/biz-components/CartDetail/index.js +0 -2
  223. package/dist/cjs/biz-components/CartDetail/index.js.map +0 -7
  224. package/dist/cjs/biz-components/CartDetail/types.d.ts +0 -132
  225. package/dist/cjs/biz-components/CartDetail/types.js +0 -2
  226. package/dist/cjs/biz-components/CartDetail/types.js.map +0 -7
  227. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.d.ts +0 -48
  228. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.js +0 -2
  229. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.js.map +0 -7
  230. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.d.ts +0 -3
  231. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.js +0 -2
  232. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.js.map +0 -7
  233. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.d.ts +0 -115
  234. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.js +0 -2
  235. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.js.map +0 -7
  236. package/dist/cjs/components/breadcrumb.d.ts +0 -12
  237. package/dist/cjs/components/breadcrumb.js +0 -2
  238. package/dist/cjs/components/breadcrumb.js.map +0 -7
  239. package/dist/cjs/components/toast.d.ts +0 -25
  240. package/dist/cjs/components/toast.js +0 -2
  241. package/dist/cjs/components/toast.js.map +0 -7
  242. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.d.ts +0 -11
  243. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js +0 -2
  244. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js.map +0 -7
  245. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.d.ts +0 -23
  246. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js +0 -2
  247. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js.map +0 -7
  248. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.d.ts +0 -40
  249. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js +0 -2
  250. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js.map +0 -7
  251. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.d.ts +0 -107
  252. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js +0 -1
  253. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js.map +0 -7
  254. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.d.ts +0 -22
  255. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.js +0 -2
  256. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.js.map +0 -7
  257. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.d.ts +0 -10
  258. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.js +0 -2
  259. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.js.map +0 -7
  260. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.d.ts +0 -9
  261. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.js +0 -2
  262. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.js.map +0 -7
  263. package/dist/esm/biz-components/AccessoriesShelf/index.d.ts +0 -7
  264. package/dist/esm/biz-components/AccessoriesShelf/index.js +0 -2
  265. package/dist/esm/biz-components/AccessoriesShelf/index.js.map +0 -7
  266. package/dist/esm/biz-components/AccessoriesShelf/types.d.ts +0 -16
  267. package/dist/esm/biz-components/AccessoriesShelf/types.js +0 -1
  268. package/dist/esm/biz-components/AccessoriesShelf/types.js.map +0 -7
  269. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.d.ts +0 -14
  270. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.js +0 -2
  271. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.js.map +0 -7
  272. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.d.ts +0 -11
  273. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js +0 -2
  274. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js.map +0 -7
  275. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.d.ts +0 -2
  276. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js +0 -2
  277. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js.map +0 -7
  278. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.d.ts +0 -13
  279. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js +0 -2
  280. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js.map +0 -7
  281. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.d.ts +0 -2
  282. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js +0 -2
  283. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js.map +0 -7
  284. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.d.ts +0 -2
  285. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.js +0 -2
  286. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.js.map +0 -7
  287. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.d.ts +0 -54
  288. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.js +0 -2
  289. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.js.map +0 -7
  290. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.d.ts +0 -4
  291. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js +0 -2
  292. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js.map +0 -7
  293. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.d.ts +0 -2
  294. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js +0 -2
  295. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js.map +0 -7
  296. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.d.ts +0 -9
  297. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js +0 -1
  298. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js.map +0 -7
  299. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.d.ts +0 -11
  300. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js +0 -2
  301. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js.map +0 -7
  302. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.d.ts +0 -2
  303. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js +0 -2
  304. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js.map +0 -7
  305. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.d.ts +0 -12
  306. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js +0 -2
  307. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js.map +0 -7
  308. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.d.ts +0 -2
  309. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js +0 -2
  310. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js.map +0 -7
  311. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.d.ts +0 -4
  312. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js +0 -2
  313. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js.map +0 -7
  314. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.d.ts +0 -2
  315. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js +0 -2
  316. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js.map +0 -7
  317. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.d.ts +0 -11
  318. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js +0 -1
  319. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js.map +0 -7
  320. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.d.ts +0 -8
  321. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js +0 -2
  322. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js.map +0 -7
  323. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.d.ts +0 -2
  324. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js +0 -2
  325. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js.map +0 -7
  326. package/dist/esm/biz-components/CartDetail/CartItemRow/index.d.ts +0 -2
  327. package/dist/esm/biz-components/CartDetail/CartItemRow/index.js +0 -2
  328. package/dist/esm/biz-components/CartDetail/CartItemRow/index.js.map +0 -7
  329. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.d.ts +0 -34
  330. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.js +0 -2
  331. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.js.map +0 -7
  332. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.d.ts +0 -2
  333. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.js +0 -2
  334. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.js.map +0 -7
  335. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.d.ts +0 -49
  336. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js +0 -2
  337. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js.map +0 -7
  338. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.d.ts +0 -2
  339. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.js +0 -2
  340. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.js.map +0 -7
  341. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.d.ts +0 -26
  342. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js +0 -2
  343. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js.map +0 -7
  344. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.d.ts +0 -2
  345. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.js +0 -2
  346. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.js.map +0 -7
  347. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.d.ts +0 -10
  348. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.js +0 -2
  349. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.js.map +0 -7
  350. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.d.ts +0 -2
  351. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.js +0 -2
  352. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.js.map +0 -7
  353. package/dist/esm/biz-components/CartDetail/index.d.ts +0 -16
  354. package/dist/esm/biz-components/CartDetail/index.js +0 -2
  355. package/dist/esm/biz-components/CartDetail/index.js.map +0 -7
  356. package/dist/esm/biz-components/CartDetail/types.d.ts +0 -132
  357. package/dist/esm/biz-components/CartDetail/types.js +0 -1
  358. package/dist/esm/biz-components/CartDetail/types.js.map +0 -7
  359. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.d.ts +0 -48
  360. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.js +0 -1
  361. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.js.map +0 -7
  362. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.d.ts +0 -3
  363. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.js +0 -2
  364. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.js.map +0 -7
  365. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.d.ts +0 -115
  366. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.js +0 -1
  367. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.js.map +0 -7
  368. package/dist/esm/components/breadcrumb.d.ts +0 -12
  369. package/dist/esm/components/breadcrumb.js +0 -2
  370. package/dist/esm/components/breadcrumb.js.map +0 -7
  371. package/dist/esm/components/toast.d.ts +0 -25
  372. package/dist/esm/components/toast.js +0 -2
  373. package/dist/esm/components/toast.js.map +0 -7
@@ -1,7 +1,5 @@
1
1
  import React, { type Dispatch, type SetStateAction, type PropsWithChildren } from 'react';
2
- import type { Product, ProductPrice, ProductVariant, VariantCoupon, Options, FreeGift } from './types/product';
3
- import type { BundleOption, ProductBundleProps } from './components/ProductCard/ProductDetail/ProductBundle/types.js';
4
- import type { ProductFunctionFreeGiftProps } from './components/ProductCard/ProductDetail/ProductFunctionFreeGift';
2
+ import type { Product, ProductPrice, ProductVariant, VariantCoupon, Options, FreeGift, BundleListItem, Bundle } from './types/product';
5
3
  import type { CompareData, DiscountData } from './types.js';
6
4
  type Country = {
7
5
  id?: number;
@@ -62,7 +60,7 @@ export type ModalData = {
62
60
  };
63
61
  export type JoinedRecommendBuyProducts = {
64
62
  bundle?: {
65
- value?: ProductBundleProps;
63
+ value?: BundleListItem;
66
64
  canOperate?: boolean;
67
65
  };
68
66
  gift?: {
@@ -107,16 +105,16 @@ export interface ProductContextType {
107
105
  freeGift?: FreeGift;
108
106
  checkedGift?: ProductVariant;
109
107
  setCheckedGift?: Dispatch<SetStateAction<ProductVariant | undefined>>;
110
- functionFreeGift?: ProductFunctionFreeGiftProps;
111
- checkedFunctionGifts?: Set<string>;
112
- setCheckedFunctionGifts?: Dispatch<SetStateAction<Set<string>>>;
113
- checkedBundle?: BundleOption;
114
- setCheckedBundle?: Dispatch<SetStateAction<BundleOption | undefined>>;
108
+ exchangePurchase?: FreeGift;
109
+ checkedExchangePurchase?: ProductVariant;
110
+ setCheckedExchangePurchase?: Dispatch<SetStateAction<ProductVariant | undefined>>;
111
+ checkedBundle?: BundleListItem;
112
+ setCheckedBundle: Dispatch<SetStateAction<BundleListItem | undefined>>;
115
113
  joinedRecommendBuyProducts: JoinedRecommendBuyProducts;
116
114
  setJoinedRecommendBuyProducts?: Dispatch<SetStateAction<JoinedRecommendBuyProducts>>;
117
115
  checkedCareBundle?: ProductVariant;
118
116
  setCheckedCareBundle?: Dispatch<SetStateAction<ProductVariant | undefined>>;
119
- bundle?: ProductBundleProps;
117
+ bundle?: Bundle;
120
118
  compareData?: CompareData['data'];
121
119
  onAddToCart?: () => void;
122
120
  onBuyNow?: () => void;
@@ -139,5 +137,5 @@ export interface ProductContextType {
139
137
  }
140
138
  export declare const BizProductContext: React.Context<ProductContextType>;
141
139
  export declare const useBizProductContext: () => ProductContextType;
142
- declare const ProductProvider: ({ product, isLogin, profile, isMobile, isDesktop, children, renderRating, freeGift, bundle, checkedBundle, checkedGift, setCheckedBundle, setCheckedGift, functionFreeGift, checkedFunctionGifts, setCheckedFunctionGifts, variant, selectedOptions, setSelectedOptions, compareData, coupon, finalPrice, comparePrice, totalSavings, savingDetail, setSavingDetail, selectedVariants, onAddToCart, onBuyNow, creditsRedemption, memberFunctionResult, openModal, openSignInPopup, openAuthCodePopup, openSignUpPopup, renderInstallments, onUseCouponChange, onUseMemberDiscountChange, discount, buyNowLoading, addToCartLoading, notifyMeMode, onNotifyMeClick, }: PropsWithChildren<Omit<ProductContextType, "joinedRecommendBuyProducts" | "setJoinedRecommendBuyProducts" | "addOrder" | "setAddOrder" | "resolvedPayload">>) => import("react/jsx-runtime").JSX.Element;
140
+ 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, creditsRedemption, memberFunctionResult, openModal, openSignInPopup, openAuthCodePopup, openSignUpPopup, renderInstallments, onUseCouponChange, onUseMemberDiscountChange, discount, buyNowLoading, addToCartLoading, notifyMeMode, onNotifyMeClick, }: PropsWithChildren<Omit<ProductContextType, "joinedRecommendBuyProducts" | "setJoinedRecommendBuyProducts" | "addOrder" | "setAddOrder" | "resolvedPayload">>) => import("react/jsx-runtime").JSX.Element;
143
141
  export default ProductProvider;
@@ -1,2 +1,2 @@
1
- "use strict";var u=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var ae=(e,o)=>{for(var r in o)u(e,r,{get:o[r],enumerable:!0})},de=(e,o,r,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of re(o))!ie.call(e,n)&&n!==r&&u(e,n,{get:()=>o[n],enumerable:!(a=ne(o,n))||a.enumerable});return e};var ce=e=>de(u({},"__esModule",{value:!0}),e);var le={};ae(le,{BizProductContext:()=>d,default:()=>pe,useBizProductContext:()=>ue});module.exports=ce(le);var P=require("react/jsx-runtime"),t=require("react"),m=require("./const.js");const d=(0,t.createContext)({}),ue=()=>{if(!(0,t.useContext)(d))throw new Error("useProductContext must be used in <ProductProvider>");return(0,t.useContext)(d)},se=({product:e,isLogin:o,profile:r,isMobile:a,isDesktop:n,children:b,renderRating:g,freeGift:y,bundle:f,checkedBundle:C,checkedGift:h,setCheckedBundle:v,setCheckedGift:S,functionFreeGift:x,checkedFunctionGifts:D,setCheckedFunctionGifts:B,variant:i,selectedOptions:R,setSelectedOptions:A,compareData:O,coupon:k,finalPrice:_,comparePrice:F,totalSavings:M,savingDetail:V,setSavingDetail:G,selectedVariants:T,onAddToCart:N,onBuyNow:w,creditsRedemption:E,memberFunctionResult:J,openModal:U,openSignInPopup:L,openAuthCodePopup:j,openSignUpPopup:W,renderInstallments:z,onUseCouponChange:I,onUseMemberDiscountChange:K,discount:Y,buyNowLoading:X,addToCartLoading:q,notifyMeMode:H,onNotifyMeClick:Q})=>{const[Z,s]=(0,t.useState)({}),[$,p]=(0,t.useState)([]),ee=(0,t.useMemo)(()=>{const te=i?.payload?.components??[],oe=m.VARIANT_PAYLOAD_EXCLUDED_KEYS;return te.filter(c=>{const l=c.componentKey??c.blockType??c.blockName;return l&&!oe.includes(l)}).length>0?i?.payload:e?.payload},[i?.payload,e?.payload]);return(0,t.useEffect)(()=>{i?.id&&(s({bundle:{value:void 0,canOperate:!0},gift:{value:void 0,canOperate:!0},exchange:{value:void 0,canOperate:!0}}),p([]))},[i?.id]),(0,P.jsx)(d.Provider,{value:{product:e,variant:i,isMobile:a,isDesktop:n,isLogin:o,profile:r,coupon:k,renderRating:g,finalPrice:_,comparePrice:F,savingDetail:V,setSavingDetail:G,totalSavings:M,selectedOptions:R,setSelectedOptions:A,freeGift:y,functionFreeGift:x,checkedFunctionGifts:D,setCheckedFunctionGifts:B,checkedGift:h,setCheckedGift:S,checkedBundle:C,setCheckedBundle:v,bundle:f,compareData:O,selectedVariants:T,onAddToCart:N,onBuyNow:w,joinedRecommendBuyProducts:Z,setJoinedRecommendBuyProducts:s,creditsRedemption:E,memberFunctionResult:J,openModal:U,openSignInPopup:L,openAuthCodePopup:j,openSignUpPopup:W,renderInstallments:z,onUseCouponChange:I,onUseMemberDiscountChange:K,discount:Y,buyNowLoading:X,addToCartLoading:q,notifyMeMode:H,onNotifyMeClick:Q,addOrder:$,setAddOrder:p,resolvedPayload:ee},children:b})};var pe=se;
1
+ "use strict";var u=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var ae=Object.prototype.hasOwnProperty;var ie=(e,n)=>{for(var r in n)u(e,r,{get:n[r],enumerable:!0})},de=(e,n,r,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of re(n))!ae.call(e,o)&&o!==r&&u(e,o,{get:()=>n[o],enumerable:!(i=oe(n,o))||i.enumerable});return e};var ce=e=>de(u({},"__esModule",{value:!0}),e);var pe={};ie(pe,{BizProductContext:()=>d,default:()=>le,useBizProductContext:()=>ue});module.exports=ce(pe);var P=require("react/jsx-runtime"),t=require("react"),m=require("./const.js");const d=(0,t.createContext)({}),ue=()=>{if(!(0,t.useContext)(d))throw new Error("useProductContext must be used in <ProductProvider>");return(0,t.useContext)(d)},se=({product:e,isLogin:n,profile:r,isMobile:i,isDesktop:o,children:b,renderRating:g,freeGift:y,exchangePurchase:h,bundle:f,checkedBundle:C,checkedGift:v,setCheckedBundle:x,setCheckedGift:S,checkedExchangePurchase:D,setCheckedExchangePurchase:R,variant:a,selectedOptions:B,setSelectedOptions:A,compareData:k,coupon:_,finalPrice:O,comparePrice:M,totalSavings:V,savingDetail:T,setSavingDetail:E,selectedVariants:L,onAddToCart:N,onBuyNow:w,creditsRedemption:F,memberFunctionResult:G,openModal:I,openSignInPopup:J,openAuthCodePopup:U,openSignUpPopup:W,renderInstallments:j,onUseCouponChange:z,onUseMemberDiscountChange:K,discount:Y,buyNowLoading:X,addToCartLoading:q,notifyMeMode:H,onNotifyMeClick:Q})=>{const[Z,s]=(0,t.useState)({}),[$,l]=(0,t.useState)([]),ee=(0,t.useMemo)(()=>{const te=a?.payload?.components??[],ne=m.VARIANT_PAYLOAD_EXCLUDED_KEYS;return te.filter(c=>{const p=c.componentKey??c.blockType??c.blockName;return p&&!ne.includes(p)}).length>0?a?.payload:e?.payload},[a?.payload,e?.payload]);return(0,t.useEffect)(()=>{a?.id&&(s({bundle:{value:void 0,canOperate:!0},gift:{value:void 0,canOperate:!0},exchange:{value:void 0,canOperate:!0}}),l([]))},[a?.id]),(0,P.jsx)(d.Provider,{value:{product:e,variant:a,isMobile:i,isDesktop:o,isLogin:n,profile:r,coupon:_,renderRating:g,finalPrice:O,comparePrice:M,savingDetail:T,setSavingDetail:E,totalSavings:V,selectedOptions:B,setSelectedOptions:A,freeGift:y,exchangePurchase:h,checkedGift:v,setCheckedGift:S,checkedBundle:C,setCheckedBundle:x,bundle:f,compareData:k,selectedVariants:L,onAddToCart:N,onBuyNow:w,joinedRecommendBuyProducts:Z,setJoinedRecommendBuyProducts:s,checkedExchangePurchase:D,setCheckedExchangePurchase:R,creditsRedemption:F,memberFunctionResult:G,openModal:I,openSignInPopup:J,openAuthCodePopup:U,openSignUpPopup:W,renderInstallments:j,onUseCouponChange:z,onUseMemberDiscountChange:K,discount:Y,buyNowLoading:X,addToCartLoading:q,notifyMeMode:H,onNotifyMeClick:Q,addOrder:$,setAddOrder:l,resolvedPayload:ee},children:b})};var le=se;
2
2
  //# sourceMappingURL=BizProductProvider.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 useMemo,\n} from 'react'\nimport type { Product, ProductPrice, ProductVariant, VariantCoupon, Options, FreeGift } from './types/product'\nimport type { BundleOption, ProductBundleProps } from './components/ProductCard/ProductDetail/ProductBundle/types.js'\nimport type { ProductFunctionFreeGiftProps } from './components/ProductCard/ProductDetail/ProductFunctionFreeGift'\nimport type { CompareData, DiscountData } from './types.js'\nimport { VARIANT_PAYLOAD_EXCLUDED_KEYS } from './const.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?: ProductBundleProps\n canOperate?: boolean\n }\n gift?: {\n value?: ProductVariant\n canOperate?: boolean\n }\n exchange?: {\n value?: ProductVariant\n canOperate?: boolean\n }\n}\n\nexport type CreditsRedemption = {\n amount: number\n availablePoints: number\n usedPoints: number\n skuDetails?: {\n sku: string\n is_eligible: boolean\n }[]\n}\n\nexport interface ProductContextType {\n isLogin?: boolean\n isMobile?: boolean\n isDesktop?: boolean\n product: Product\n profile?: UserProfile\n variant: ProductVariant\n resolvedPayload?: {\n components: any[]\n [key: string]: any\n }\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 functionFreeGift?: ProductFunctionFreeGiftProps\n checkedFunctionGifts?: Set<string>\n setCheckedFunctionGifts?: Dispatch<SetStateAction<Set<string>>>\n // exchangePurchase?: ProductFreeGiftProps\n // checkedExchangePurchase?: ProductVariant\n // setCheckedExchangePurchase?: Dispatch<SetStateAction<ProductVariant | undefined>>\n // checkedBundle?: BundleListItem\n // setCheckedBundle: Dispatch<SetStateAction<BundleListItem | undefined>>\n checkedBundle?: BundleOption\n setCheckedBundle?: Dispatch<SetStateAction<BundleOption | undefined>>\n joinedRecommendBuyProducts: JoinedRecommendBuyProducts\n setJoinedRecommendBuyProducts?: Dispatch<SetStateAction<JoinedRecommendBuyProducts>>\n checkedCareBundle?: ProductVariant\n setCheckedCareBundle?: Dispatch<SetStateAction<ProductVariant | undefined>>\n bundle?: ProductBundleProps\n compareData?: CompareData['data']\n onAddToCart?: () => void\n onBuyNow?: () => void\n creditsRedemption?: CreditsRedemption\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 notifyMeMode?: 'normal' | 'notify_me'\n onNotifyMeClick?: (open: boolean) => void\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 functionFreeGift,\n checkedFunctionGifts,\n setCheckedFunctionGifts,\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 creditsRedemption,\n memberFunctionResult,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n renderInstallments,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n buyNowLoading,\n addToCartLoading,\n notifyMeMode,\n onNotifyMeClick,\n}: PropsWithChildren<\n Omit<\n ProductContextType,\n 'joinedRecommendBuyProducts' | 'setJoinedRecommendBuyProducts' | 'addOrder' | 'setAddOrder' | 'resolvedPayload'\n >\n>) => {\n const [joinedRecommendBuyProducts, setJoinedRecommendBuyProducts] = useState<JoinedRecommendBuyProducts>({})\n const [addOrder, setAddOrder] = useState<Array<'bundle' | 'gift' | 'exchange'>>([])\n\n const resolvedPayload = useMemo(() => {\n const variantComponents: any[] = variant?.payload?.components ?? []\n const excluded = VARIANT_PAYLOAD_EXCLUDED_KEYS as readonly string[]\n const nonExcluded = variantComponents.filter(item => {\n const identifier = item.componentKey ?? item.blockType ?? item.blockName\n return identifier && !excluded.includes(identifier)\n })\n return nonExcluded.length > 0 ? variant?.payload : product?.payload\n }, [variant?.payload, product?.payload])\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 functionFreeGift,\n checkedFunctionGifts,\n setCheckedFunctionGifts,\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 creditsRedemption,\n memberFunctionResult,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n renderInstallments,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n buyNowLoading,\n addToCartLoading,\n notifyMeMode,\n onNotifyMeClick,\n addOrder,\n setAddOrder,\n resolvedPayload,\n }}\n >\n {children}\n </BizProductContext.Provider>\n )\n}\n\nexport default ProductProvider\n"],
5
- "mappings": "mbAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,uBAAAE,EAAA,YAAAC,GAAA,yBAAAC,KAAA,eAAAC,GAAAL,IAwRI,IAAAM,EAAA,6BAxRJC,EAUO,iBAKPC,EAA8C,sBAwKvC,MAAMN,KAAoB,iBAAkC,CAAC,CAAuB,EAE9EE,GAAuB,IAAM,CAExC,GAAI,IADY,cAAWF,CAAiB,EAE1C,MAAM,IAAI,MAAM,qDAAqD,EAEvE,SAAO,cAAWA,CAAiB,CACrC,EAEMO,GAAkB,CAAC,CACvB,QAAAC,EACA,QAAAC,EACA,QAAAC,EACA,SAAAC,EACA,UAAAC,EACA,SAAAC,EACA,aAAAC,EACA,SAAAC,EAEA,OAAAC,EACA,cAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,qBAAAC,EACA,wBAAAC,EAGA,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,kBAAAC,EACA,qBAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,mBAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,SAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,gBAAAC,CACF,IAKM,CACJ,KAAM,CAACC,EAA4BC,CAA6B,KAAI,YAAqC,CAAC,CAAC,EACrG,CAACC,EAAUC,CAAW,KAAI,YAAgD,CAAC,CAAC,EAE5EC,MAAkB,WAAQ,IAAM,CACpC,MAAMC,GAA2BhC,GAAS,SAAS,YAAc,CAAC,EAC5DiC,GAAW,gCAKjB,OAJoBD,GAAkB,OAAOE,GAAQ,CACnD,MAAMC,EAAaD,EAAK,cAAgBA,EAAK,WAAaA,EAAK,UAC/D,OAAOC,GAAc,CAACF,GAAS,SAASE,CAAU,CACpD,CAAC,EACkB,OAAS,EAAInC,GAAS,QAAUhB,GAAS,OAC9D,EAAG,CAACgB,GAAS,QAAShB,GAAS,OAAO,CAAC,EAEvC,sBAAU,IAAM,CACVgB,GAAS,KACX4B,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,CAAC9B,GAAS,EAAE,CAAC,KAGd,OAACxB,EAAkB,SAAlB,CACC,MAAO,CACL,QAAAQ,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,iBAAAM,EACA,qBAAAC,EACA,wBAAAC,EAEA,YAAAL,EACA,eAAAE,EACA,cAAAH,EACA,iBAAAE,EACA,OAAAH,EACA,YAAAW,EACA,iBAAAO,EACA,YAAAC,EACA,SAAAC,EACA,2BAAAe,EACA,8BAAAC,EAGA,kBAAAf,EACA,qBAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,mBAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,SAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,SAAAG,EACA,YAAAC,EACA,gBAAAC,EACF,EAEC,SAAA1C,EACH,CAEJ,EAEA,IAAOZ,GAAQM",
6
- "names": ["BizProductProvider_exports", "__export", "BizProductContext", "BizProductProvider_default", "useBizProductContext", "__toCommonJS", "import_jsx_runtime", "import_react", "import_const", "ProductProvider", "product", "isLogin", "profile", "isMobile", "isDesktop", "children", "renderRating", "freeGift", "bundle", "checkedBundle", "checkedGift", "setCheckedBundle", "setCheckedGift", "functionFreeGift", "checkedFunctionGifts", "setCheckedFunctionGifts", "variant", "selectedOptions", "setSelectedOptions", "compareData", "coupon", "finalPrice", "comparePrice", "totalSavings", "savingDetail", "setSavingDetail", "selectedVariants", "onAddToCart", "onBuyNow", "creditsRedemption", "memberFunctionResult", "openModal", "openSignInPopup", "openAuthCodePopup", "openSignUpPopup", "renderInstallments", "onUseCouponChange", "onUseMemberDiscountChange", "discount", "buyNowLoading", "addToCartLoading", "notifyMeMode", "onNotifyMeClick", "joinedRecommendBuyProducts", "setJoinedRecommendBuyProducts", "addOrder", "setAddOrder", "resolvedPayload", "variantComponents", "excluded", "item", "identifier"]
4
+ "sourcesContent": ["import React, {\n createContext,\n useCallback,\n useContext,\n type Dispatch,\n type SetStateAction,\n type PropsWithChildren,\n useState,\n useEffect,\n useMemo,\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'\nimport { VARIANT_PAYLOAD_EXCLUDED_KEYS } from './const.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}\n\nexport type CreditsRedemption = {\n amount: number\n availablePoints: number\n usedPoints: number\n skuDetails?: {\n sku: string\n is_eligible: boolean\n }[]\n}\n\nexport interface ProductContextType {\n isLogin?: boolean\n isMobile?: boolean\n isDesktop?: boolean\n product: Product\n profile?: UserProfile\n variant: ProductVariant\n resolvedPayload?: {\n components: any[]\n [key: string]: any\n }\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 creditsRedemption?: CreditsRedemption\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 notifyMeMode?: 'normal' | 'notify_me'\n onNotifyMeClick?: (open: boolean) => void\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 creditsRedemption,\n memberFunctionResult,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n renderInstallments,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n buyNowLoading,\n addToCartLoading,\n notifyMeMode,\n onNotifyMeClick,\n}: PropsWithChildren<\n Omit<\n ProductContextType,\n 'joinedRecommendBuyProducts' | 'setJoinedRecommendBuyProducts' | 'addOrder' | 'setAddOrder' | 'resolvedPayload'\n >\n>) => {\n const [joinedRecommendBuyProducts, setJoinedRecommendBuyProducts] = useState<JoinedRecommendBuyProducts>({})\n const [addOrder, setAddOrder] = useState<Array<'bundle' | 'gift' | 'exchange'>>([])\n\n const resolvedPayload = useMemo(() => {\n const variantComponents: any[] = variant?.payload?.components ?? []\n const excluded = VARIANT_PAYLOAD_EXCLUDED_KEYS as readonly string[]\n const nonExcluded = variantComponents.filter(item => {\n const identifier = item.componentKey ?? item.blockType ?? item.blockName\n return identifier && !excluded.includes(identifier)\n })\n return nonExcluded.length > 0 ? variant?.payload : product?.payload\n }, [variant?.payload, product?.payload])\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 creditsRedemption,\n memberFunctionResult,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n renderInstallments,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n buyNowLoading,\n addToCartLoading,\n notifyMeMode,\n onNotifyMeClick,\n addOrder,\n setAddOrder,\n resolvedPayload,\n }}\n >\n {children}\n </BizProductContext.Provider>\n )\n}\n\nexport default ProductProvider\n"],
5
+ "mappings": "mbAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,uBAAAE,EAAA,YAAAC,GAAA,yBAAAC,KAAA,eAAAC,GAAAL,IAuRI,IAAAM,EAAA,6BAvRJC,EAUO,iBAYPC,EAA8C,sBAmKvC,MAAMN,KAAoB,iBAAkC,CAAC,CAAuB,EAE9EE,GAAuB,IAAM,CAExC,GAAI,IADY,cAAWF,CAAiB,EAE1C,MAAM,IAAI,MAAM,qDAAqD,EAEvE,SAAO,cAAWA,CAAiB,CACrC,EAEMO,GAAkB,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,kBAAAC,EACA,qBAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,mBAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,SAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,gBAAAC,CACF,IAKM,CACJ,KAAM,CAACC,EAA4BC,CAA6B,KAAI,YAAqC,CAAC,CAAC,EACrG,CAACC,EAAUC,CAAW,KAAI,YAAgD,CAAC,CAAC,EAE5EC,MAAkB,WAAQ,IAAM,CACpC,MAAMC,GAA2BhC,GAAS,SAAS,YAAc,CAAC,EAC5DiC,GAAW,gCAKjB,OAJoBD,GAAkB,OAAOE,GAAQ,CACnD,MAAMC,EAAaD,EAAK,cAAgBA,EAAK,WAAaA,EAAK,UAC/D,OAAOC,GAAc,CAACF,GAAS,SAASE,CAAU,CACpD,CAAC,EACkB,OAAS,EAAInC,GAAS,QAAUhB,GAAS,OAC9D,EAAG,CAACgB,GAAS,QAAShB,GAAS,OAAO,CAAC,EAEvC,sBAAU,IAAM,CACVgB,GAAS,KACX4B,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,CAAC9B,GAAS,EAAE,CAAC,KAGd,OAACxB,EAAkB,SAAlB,CACC,MAAO,CACL,QAAAQ,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,2BAAAe,EACA,8BAAAC,EACA,wBAAA9B,EACA,2BAAAC,EACA,kBAAAc,EACA,qBAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,mBAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,SAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,SAAAG,EACA,YAAAC,EACA,gBAAAC,EACF,EAEC,SAAA1C,EACH,CAEJ,EAEA,IAAOZ,GAAQM",
6
+ "names": ["BizProductProvider_exports", "__export", "BizProductContext", "BizProductProvider_default", "useBizProductContext", "__toCommonJS", "import_jsx_runtime", "import_react", "import_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", "creditsRedemption", "memberFunctionResult", "openModal", "openSignInPopup", "openAuthCodePopup", "openSignUpPopup", "renderInstallments", "onUseCouponChange", "onUseMemberDiscountChange", "discount", "buyNowLoading", "addToCartLoading", "notifyMeMode", "onNotifyMeClick", "joinedRecommendBuyProducts", "setJoinedRecommendBuyProducts", "addOrder", "setAddOrder", "resolvedPayload", "variantComponents", "excluded", "item", "identifier"]
7
7
  }
@@ -1,4 +1,4 @@
1
- "use strict";var ce=Object.create;var S=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var ue=Object.getOwnPropertyNames;var fe=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var be=(t,o)=>{for(var i in o)S(t,i,{get:o[i],enumerable:!0})},$=(t,o,i,d)=>{if(o&&typeof o=="object"||typeof o=="function")for(let p of ue(o))!me.call(t,p)&&p!==i&&S(t,p,{get:()=>o[p],enumerable:!(d=de(o,p))||d.enumerable});return t};var D=(t,o,i)=>(i=t!=null?ce(fe(t)):{},$(o||!t||!t.__esModule?S(i,"default",{value:t,enumerable:!0}):i,t)),ge=t=>$(S({},"__esModule",{value:!0}),t);var Ne={};be(Ne,{default:()=>Be});module.exports=ge(Ne);var e=require("react/jsx-runtime"),s=require("../../../../../components/index.js"),f=D(require("./ProductBenefitsTabs/index.js")),G=require("../../../BizProductProvider.js"),W=require("../../../hooks/useComponentData.js"),q=require("../../../hooks/useBenefits.js"),w=require("../../../utils/index.js"),I=require("../../../utils/textFormat.js"),l=D(require("react")),U=require("../../../../AiuiProvider/index.js"),Y=D(require("../../../../../hooks/useCountDown.js")),J=D(require("../../../hooks/useCopy.js")),C=require("../../../../../helpers/index.js"),K=D(require("./ProductBenefitsTabs/ModalContainer.js")),Q=require("../../../../../shared/Styles.js");const xe={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 "},Ce=l.default.memo(function({endsAt:o,daysLeft:i,endsText:d,daysText:p,hurryLabel:m,expiredText:h,onOpenModal:v}){const{days:r,hours:y,minutes:b,seconds:F}=(0,Y.default)({endTime:o});return(0,e.jsx)("button",{onClick:v,className:"lg-desktop:mt-[24px] text-brand-0 laptop-md:mt-4 lg-desktop:text-[16px] md-l:hidden mt-[14px] text-left text-[14px] font-bold text-[#1F2021]",children:Number(r)<Number(i)?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("span",{children:[d," ",r==="00"?"0":r," ",p]}),(0,e.jsx)("span",{className:"font-bold",children:` ${y.toString()}:${b.toString()}:${F.toString()}`})]}):m||h})}),he=({item:t,textConfig:o,benefitPayloadData:i})=>{const{trackingData:d}=(0,U.useAiuiContext)(),{copied:p,copy:m}=(0,J.default)(),[h,v]=(0,l.useState)(!1),r=d?.common?.coupon,{openModal:y}=(0,G.useBizProductContext)();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("style",{jsx:!0,children:`
1
+ "use strict";var de=Object.create;var L=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var fe=Object.getOwnPropertyNames;var me=Object.getPrototypeOf,be=Object.prototype.hasOwnProperty;var ge=(t,n)=>{for(var s in n)L(t,s,{get:n[s],enumerable:!0})},q=(t,n,s,f)=>{if(n&&typeof n=="object"||typeof n=="function")for(let p of fe(n))!be.call(t,p)&&p!==s&&L(t,p,{get:()=>n[p],enumerable:!(f=ue(n,p))||f.enumerable});return t};var P=(t,n,s)=>(s=t!=null?de(me(t)):{},q(n||!t||!t.__esModule?L(s,"default",{value:t,enumerable:!0}):s,t)),xe=t=>q(L({},"__esModule",{value:!0}),t);var Ne={};ge(Ne,{default:()=>Be});module.exports=xe(Ne);var e=require("react/jsx-runtime"),i=require("../../../../../components/index.js"),u=P(require("./ProductBenefitsTabs/index.js")),E=require("../../../BizProductProvider.js"),Y=require("../../../hooks/useComponentData.js"),J=require("../../../hooks/useBenefits.js"),g=require("../../../utils/index.js"),I=require("../../../utils/textFormat.js"),r=require("react"),G=require("../../../../AiuiProvider/index.js"),K=P(require("../../../../../hooks/useCountDown.js")),Q=P(require("../../../hooks/useCopy.js")),x=require("../../../../../helpers/index.js"),X=P(require("./ProductBenefitsTabs/ModalContainer.js")),ee=require("../../../../../shared/Styles.js");const Ce={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 "},he=({item:t,textConfig:n,benefitPayloadData:s})=>{const{trackingData:f}=(0,G.useAiuiContext)(),{copied:p,copy:B}=(0,Q.default)(),[N,w]=(0,r.useState)(!1),c=f?.common?.coupon,{days:C,hours:F,minutes:A,seconds:H}=(0,K.default)({endTime:t?.ends_at||""}),{openModal:j}=(0,E.useBizProductContext)();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("style",{jsx:!0,children:`
2
2
  .coupon-card {
3
3
  /* \u4F7F\u7528mask\u521B\u5EFA\u5185\u5207\u5706\u89D2 */
4
4
  mask:
@@ -14,7 +14,7 @@
14
14
  bottom left;
15
15
  mask-repeat: no-repeat;
16
16
  }
17
- `}),(0,e.jsxs)("div",{style:{background:t.couponBgColor||"white"},className:(0,C.cn)("laptop:h-[112px] lg-desktop:h-[130px] relative h-[100px] overflow-hidden p-3",t.borderStyle==="inset"?"coupon-card ":"rounded-[8px]"),...t.useAble&&{role:"button",tabIndex:0,onClick:()=>{t?.onUseChange?.(h)!==!1&&v(!h)}},children:[t?.bgImage?.url&&(0,e.jsx)(s.Picture,{source:t.bgImage.url,alt:t.bgImage.alt,className:"absolute bottom-0 right-0 w-auto",imgClassName:"object-contain"}),(0,e.jsxs)("div",{className:"z-1 relative ",children:[(0,e.jsxs)("div",{className:"flex items-center justify-start",children:[t.useAble&&(0,e.jsx)(s.Checkbox,{size:"lg",className:"data-[state=checked]:border-primary mr-2 rounded-full border-[1.6px] border-[#D1D1D1]",checked:t?.isAutoUse}),(0,e.jsx)(s.Text,{html:t.title,className:"laptop:text-[20px] lg-desktop:text-[24px] text-[16px] font-bold leading-[1.2]"})]}),t.description&&(0,e.jsx)(s.Text,{...typeof t.description=="string"?{html:t.description}:{},as:"p",className:"lg-desktop:text-[16px] mt-2 pr-8 text-[14px] font-bold text-[#3D3D3F]",children:t.description}),t.code&&(0,e.jsxs)("div",{className:"laptop-md:mt-2 flex items-center gap-2",children:[(0,e.jsx)(s.Text,{html:`${i?.couponBenefitData?.commonCoupon?.couponCode}: ${t.code}`,className:"lg-desktop:text-[16px] text-[14px] font-bold text-[#3D3D3F]"}),(0,e.jsx)(s.Link,{className:"lg-desktop:text-[16px] text-[14px] font-bold underline",role:"button",tabIndex:0,onClick:b=>{b.preventDefault(),b.stopPropagation(),m(t.code||"")},children:p?r?.copied||i?.couponBenefitData?.commonCoupon?.copied:r?.copy||i?.couponBenefitData?.commonCoupon?.copyCode})]}),t.ends_at&&(0,e.jsx)(Ce,{endsAt:t.ends_at,daysLeft:r?.hurry?.daysLeft??0,endsText:r?.ends??"",daysText:r?.days??"",hurryLabel:r?.hurry?.label??"",expiredText:i?.couponBenefitData?.commonCoupon?.expired??"",onOpenModal:()=>{r?.modal&&y(r?.modal)}})]})]})]})},ve=({coupons:t,className:o,textConfig:i,benefitPayloadData:d})=>(0,e.jsx)("div",{className:(0,C.cn)("laptop:grid laptop:grid-cols-2 laptop-md:grid-cols-1 flex flex-col gap-3",o),children:t?.map((p,m)=>(0,e.jsx)(he,{item:p,textConfig:i,benefitPayloadData:d},m))}),ye=({textConfig:t})=>{const{profile:o,variant:i,renderInstallments:d,onUseCouponChange:p,onUseMemberDiscountChange:m,discount:h,savingDetail:v,openModal:r,openSignInPopup:y,openAuthCodePopup:b,openSignUpPopup:F,creditsRedemption:X}=(0,G.useBizProductContext)(),{usedPoints:we=0,availablePoints:Te=0}=X??{},[ee,A]=(0,l.useState)(!1),g=(0,W.useComponentData)("ProductBenefits")??{},[te,Z]=(0,l.useState)(!1),oe=(0,q.useBenefits)({variant:i}),{locale:T="us",copyWriting:ne}=(0,U.useAiuiContext)(),H=(0,l.useRef)(null),ae={...xe,...t},{activated:ie=!1}=o||{},{memberDiscount:B,commonCoupon:x,creditsRedemption:k,freeGift:E,functionFreeGift:O,bundle:V,paidShipping:se,fullGift:z,levelDiscount:R}=oe,n=(0,l.useMemo)(()=>{const a=g?.benefitTabs?.find(u=>u?.value==="coupon")??{},c=g?.benefitTabs?.find(u=>u?.value==="membership")??{},M=g?.benefitTabs?.find(u=>u?.value==="installment")??{},L=g?.benefitTabs?.find(u=>u?.value==="pay")??{};return{couponBenefitData:a,membershipBenefitData:c,installmentBenefitData:M,payBenefitData:L}},[g]),N=[x?.enable?{...x.config,isAutoUse:v?.coupon>0,useAble:!0,borderStyle:"rounded",code:x?.config?.title??"",description:x?.config?.desc??"",onUseChange:a=>{const c=a?h?.codeSavings??0:0;p?.(c)},title:(0,I.replaceTemplate)(n?.couponBenefitData?.commonCoupon?.offCoupon,{discount:x?.config?.value_type=="percentage"?Math.abs(Number(x?.config?.value||0))+"%":(0,w.formatPrice)({amount:Math.abs(Number(x?.config?.fixed_value||0)),currencyCode:i.price.currencyCode,locale:T})})}:null,B.enable?{useAble:!0,isAutoUse:!!o?.email&&!!v?.member,title:(0,I.replaceTemplate)(n?.couponBenefitData?.member?.offMemberOnly,{amount:(0,w.formatPrice)({amount:B?.config?.amount??0,currencyCode:i.price.currencyCode,locale:T})}),description:(0,e.jsxs)(e.Fragment,{children:[o?.email?n?.couponBenefitData?.member?.memberDiscounts:n?.membershipBenefitData?.memberBenefitsNotLogin?.replace("{amount}",(0,w.formatPrice)({amount:B?.config?.amount??0,currencyCode:i.price.currencyCode,locale:T}))??""," ",o?.email?"":(0,e.jsx)("span",{role:"button",tabIndex:0,onClick:()=>y?.(),className:"underline",children:n?.couponBenefitData?.member?.loginNow})]}),borderStyle:"rounded",onUseChange:a=>{if(o?.email){const c=a?B?.config?.amount??0:0;return m?.(c),!0}else return y?.(),!1}}:null,R.enable?{title:R?.config?.title??"",description:R?.config?.tag??"",borderStyle:"inset",bgImage:{url:n?.couponBenefitData?.levelDiscount?.bgImage}}:null,O.enable?{title:O?.config?.title??"",description:n?.couponBenefitData?.freeGift?.selectFreeGift,borderStyle:"inset",bgImage:{url:n?.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,E.enable?{title:E?.config?.title??"",description:n?.couponBenefitData?.freeGift?.selectFreeGift,borderStyle:"inset",bgImage:{url:n?.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,V.enable?{title:`${n?.couponBenefitData?.bundle?.bundleSaveUpTo} ${V.config?.maxSavings}`,borderStyle:"inset",description:n?.couponBenefitData?.bundle?.bundleOffer.replace("{count}",V?.config?.bundleOptions?.length?.toString()??""),bgImage:{url:n?.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,z.enable?{title:z?.config?.title??"",description:z?.config?.desc??"",borderStyle:"inset",bgImage:{url:n?.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,k.enable?{title:n?.couponBenefitData?.creditsRedemption?.creditsTitle,description:n?.couponBenefitData?.creditsRedemption?.creditsDesc,borderStyle:"inset",bgImage:{url:n?.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);(0,l.useEffect)(()=>{_(N?.length?"coupon":"membership")},[N?.length]),(0,l.useEffect)(()=>{A(!1)},[i?.id]);const[j,_]=(0,l.useState)("coupon"),le=()=>{b?.()},re=(a,c)=>{if(_(c),H.current){const M=H.current,L=a.currentTarget,u=L.offsetLeft-M.offsetWidth/2+L.offsetWidth/2;M.scrollTo({left:u,behavior:"smooth"})}},pe=(0,l.useMemo)(()=>g?.benefitTabs?.map(a=>a?.value==="coupon"&&!N?.length?null:a).filter(Boolean),[g,N]);return f.default?(0,e.jsxs)(f.default,{className:"relative",onValueChange:a=>{_(a),A(a==="installment")},value:j,children:[(0,e.jsx)("div",{className:"absolute right-0 top-0 z-[1] h-[40px] w-[25px] rounded-xl bg-gradient-to-r from-transparent to-[#EAEAEC]"}),(0,e.jsx)(f.default.List,{ref:H,children:pe?.map(a=>(0,e.jsx)(f.default.Trigger,{className:(0,C.cn)(j===a.value&&"text-[#080A0F]"),value:a.value,onClick:c=>re(c,a?.value),children:a.label},a?.value))}),(0,e.jsx)("style",{global:!0,jsx:!0,children:`
17
+ `}),(0,e.jsxs)("div",{style:{background:t.couponBgColor||"white"},className:(0,x.cn)("laptop:h-[112px] lg-desktop:h-[130px] relative h-[100px] overflow-hidden p-3",t.borderStyle==="inset"?"coupon-card ":"rounded-[8px]"),...t.useAble&&{role:"button",tabIndex:0,onClick:()=>{t?.onUseChange?.(N)!==!1&&w(!N)}},children:[t?.bgImage?.url&&(0,e.jsx)(i.Picture,{source:t.bgImage.url,alt:t.bgImage.alt,className:"absolute bottom-0 right-0 w-auto",imgClassName:"object-contain"}),(0,e.jsxs)("div",{className:"z-1 relative ",children:[(0,e.jsxs)("div",{className:"flex items-center justify-start",children:[t.useAble&&(0,e.jsx)(i.Checkbox,{size:"lg",className:"data-[state=checked]:border-primary mr-2 rounded-full border-[1.6px] border-[#D1D1D1]",checked:t?.isAutoUse}),(0,e.jsx)(i.Text,{html:t.title,className:"laptop:text-[20px] lg-desktop:text-[24px] text-[16px] font-bold leading-[1.2]"})]}),t.description&&(0,e.jsx)(i.Text,{...typeof t.description=="string"?{html:t.description}:{},as:"p",className:"lg-desktop:text-[16px] mt-2 pr-8 text-[14px] font-bold text-[#3D3D3F]",children:t.description}),t.code&&(0,e.jsxs)("div",{className:"laptop-md:mt-2 flex items-center gap-2",children:[(0,e.jsx)(i.Text,{html:`${s?.couponBenefitData?.commonCoupon?.couponCode}: ${t.code}`,className:"lg-desktop:text-[16px] text-[14px] font-bold text-[#3D3D3F]"}),(0,e.jsx)(i.Link,{className:"lg-desktop:text-[16px] text-[14px] font-bold underline",role:"button",tabIndex:0,onClick:D=>{D.preventDefault(),D.stopPropagation(),B(t.code||"")},children:p?c?.copied||s?.couponBenefitData?.commonCoupon?.copied:c?.copy||s?.couponBenefitData?.commonCoupon?.copyCode})]}),t.ends_at&&(0,e.jsx)("button",{onClick:()=>{c?.modal&&j(c?.modal)},className:"lg-desktop:mt-[24px] text-brand-0 laptop-md:mt-4 lg-desktop:text-[16px] md-l:hidden mt-[14px] text-left text-[14px] font-bold text-[#1F2021]",children:Number(C)<Number(c?.hurry?.daysLeft)?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("span",{children:[c?.ends," ",C==="00"?"0":C," ",c?.days||""]}),(0,e.jsx)("span",{className:"font-bold",children:` ${F.toString()}:${A.toString()}:${H.toString()}`})]}):c?.hurry?.label||s?.couponBenefitData?.commonCoupon?.expired})]})]})]})},ve=({coupons:t,className:n,textConfig:s,benefitPayloadData:f})=>(0,e.jsx)("div",{className:(0,x.cn)("laptop:grid laptop:grid-cols-2 laptop-md:grid-cols-1 flex flex-col gap-3",n),children:t?.map((p,B)=>(0,e.jsx)(he,{item:p,textConfig:s,benefitPayloadData:f},B))}),ye=({textConfig:t})=>{const{profile:n,variant:s,renderInstallments:f,onUseCouponChange:p,onUseMemberDiscountChange:B,discount:N,savingDetail:w,openModal:c,openSignInPopup:C,openAuthCodePopup:F,openSignUpPopup:A,creditsRedemption:H}=(0,E.useBizProductContext)(),{usedPoints:j=0,availablePoints:D=0}=H??{},[te,V]=(0,r.useState)(!1),m=(0,Y.useComponentData)("ProductBenefits")??{},[oe,O]=(0,r.useState)(!1),ne=(0,J.useBenefits)({variant:s}),{locale:h="us",copyWriting:ae}=(0,G.useAiuiContext)(),z=(0,r.useRef)(null),ie={...Ce,...t},{activated:se=!1}=n||{},{memberDiscount:v,commonCoupon:b,creditsRedemption:k,freeGift:$,bundle:R,paidShipping:le,fullGift:_,levelDiscount:U}=ne,a=(0,r.useMemo)(()=>{const o=m?.benefitTabs?.find(d=>d?.value==="coupon")??{},l=m?.benefitTabs?.find(d=>d?.value==="membership")??{},T=m?.benefitTabs?.find(d=>d?.value==="installment")??{},M=m?.benefitTabs?.find(d=>d?.value==="pay")??{};return{couponBenefitData:o,membershipBenefitData:l,installmentBenefitData:T,payBenefitData:M}},[m]),y=[b?.enable?{...b.config,isAutoUse:w?.coupon>0,useAble:!0,borderStyle:"rounded",code:b?.config?.title??"",description:b?.config?.desc??"",onUseChange:o=>{const l=o?N?.codeSavings??0:0;p?.(l)},title:(0,I.replaceTemplate)(a?.couponBenefitData?.commonCoupon?.offCoupon,{discount:b?.config?.value_type=="percentage"?Math.abs(Number(b?.config?.value||0))+"%":(0,g.formatPrice)({amount:Math.abs(Number(b?.config?.fixed_value||0)),currencyCode:s.price.currencyCode,locale:h})})}:null,v.enable?{useAble:!0,isAutoUse:!!n?.email&&!!w?.member,title:(0,I.replaceTemplate)(a?.couponBenefitData?.member?.offMemberOnly,{amount:(0,g.formatPrice)({amount:v?.config?.amount??0,currencyCode:s.price.currencyCode,locale:h})}),description:(0,e.jsxs)(e.Fragment,{children:[n?.email?a?.couponBenefitData?.member?.memberDiscounts:a?.membershipBenefitData?.memberBenefitsNotLogin?.replace("{amount}",(0,g.formatPrice)({amount:v?.config?.amount??0,currencyCode:s.price.currencyCode,locale:h}))??""," ",n?.email?"":(0,e.jsx)("span",{role:"button",tabIndex:0,onClick:()=>C?.(),className:"underline",children:a?.couponBenefitData?.member?.loginNow})]}),borderStyle:"rounded",onUseChange:o=>{if(n?.email){const l=o?v?.config?.amount??0:0;return B?.(l),!0}else return C?.(),!1}}:null,U.enable?{title:U?.config?.title??"",description:U?.config?.tag??"",borderStyle:"inset",bgImage:{url:a?.couponBenefitData?.levelDiscount?.bgImage}}:null,$.enable?{title:$?.config?.title??"",description:a?.couponBenefitData?.freeGift?.selectFreeGift,borderStyle:"inset",bgImage:{url:a?.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,R.enable?{title:`${a?.couponBenefitData?.bundle?.bundleSaveUpTo} ${(0,g.formatPrice)({amount:Math.max(...R?.config?.bundleList?.map(o=>o.savings??0)??[]),currencyCode:s.price.currencyCode,locale:h})}`,borderStyle:"inset",description:a?.couponBenefitData?.bundle?.bundleOffer.replace("{count}",R?.config?.bundleList?.length?.toString()??""),bgImage:{url:a?.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,_.enable?{title:_?.config?.title??"",description:_?.config?.desc??"",borderStyle:"inset",bgImage:{url:a?.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,k.enable?{title:a?.couponBenefitData?.creditsRedemption?.creditsTitle,description:a?.couponBenefitData?.creditsRedemption?.creditsDesc,borderStyle:"inset",bgImage:{url:a?.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);(0,r.useEffect)(()=>{Z(y?.length?"coupon":"membership")},[y?.length]),(0,r.useEffect)(()=>{V(!1)},[s?.id]);const[W,Z]=(0,r.useState)("coupon"),re=()=>{F?.()},pe=(o,l)=>{if(Z(l),z.current){const T=z.current,M=o.currentTarget,d=M.offsetLeft-T.offsetWidth/2+M.offsetWidth/2;T.scrollTo({left:d,behavior:"smooth"})}},ce=(0,r.useMemo)(()=>m?.benefitTabs?.map(o=>o?.value==="coupon"&&!y?.length?null:o).filter(Boolean),[m,y]);return u.default?(0,e.jsxs)(u.default,{className:"relative",onValueChange:o=>{Z(o),V(o==="installment")},value:W,children:[(0,e.jsx)("div",{className:"absolute right-0 top-0 z-[1] h-[40px] w-[25px] rounded-xl bg-gradient-to-r from-transparent to-[#EAEAEC]"}),(0,e.jsx)(u.default.List,{ref:z,children:ce?.map(o=>(0,e.jsx)(u.default.Trigger,{className:(0,x.cn)(W===o.value&&"text-[#080A0F]"),value:o.value,onClick:l=>pe(l,o?.value),children:o.label},o?.value))}),(0,e.jsx)("style",{global:!0,jsx:!0,children:`
18
18
  .benefits-tabs-content::-webkit-scrollbar {
19
19
  width: 4px; /* \u6EDA\u52A8\u6761\u5BBD\u5EA6 */
20
20
  height: 64px; /* \u6A2A\u5411\u6EDA\u52A8\u6761\u9AD8\u5EA6 */
@@ -32,8 +32,8 @@
32
32
  .benefits-tabs-content::-webkit-scrollbar-thumb:hover {
33
33
  background-color: rgba(100, 100, 100, 0.6);
34
34
  }
35
- `}),N?.length?(0,e.jsx)(f.default.Content,{value:"coupon",className:"benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto",children:(0,e.jsx)("div",{className:"lg-desktop:p-4 p-3",children:(0,e.jsx)(ve,{coupons:N,textConfig:ae,benefitPayloadData:n})})}):null,(0,e.jsx)(f.default.Content,{value:"membership",className:(0,C.cn)("benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px]",{"overflow-y-auto":o?.email}),children:(0,e.jsxs)("div",{className:"lg-desktop:p-4 p-3",children:[(0,e.jsxs)("div",{className:(0,C.cn)("rounded-lg",{"benefits-tabs-content lg-desktop:h-[calc(240px-100px)] laptop-md:h-[calc(196px-80px)] laptop:h-[calc(220px-72px)] h-[calc(180px-73px)] overflow-y-auto":!o?.email}),children:[!o?.email&&(0,e.jsx)("h3",{className:"laptop-md:mb-2 mb-1 text-left text-lg font-bold !leading-[1.3]",children:n?.membershipBenefitData?.memberBenefitsNotLoginText}),(0,e.jsxs)("ul",{className:`laptop-md:[&_li]:py-4 list-none
35
+ `}),y?.length?(0,e.jsx)(u.default.Content,{value:"coupon",className:"benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto",children:(0,e.jsx)("div",{className:"lg-desktop:p-4 p-3",children:(0,e.jsx)(ve,{coupons:y,textConfig:ie,benefitPayloadData:a})})}):null,(0,e.jsx)(u.default.Content,{value:"membership",className:(0,x.cn)("benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px]",{"overflow-y-auto":n?.email}),children:(0,e.jsxs)("div",{className:"lg-desktop:p-4 p-3",children:[(0,e.jsxs)("div",{className:(0,x.cn)("rounded-lg",{"benefits-tabs-content lg-desktop:h-[calc(240px-100px)] laptop-md:h-[calc(196px-80px)] laptop:h-[calc(220px-72px)] h-[calc(180px-73px)] overflow-y-auto":!n?.email}),children:[!n?.email&&(0,e.jsx)("h3",{className:"laptop-md:mb-2 mb-1 text-left text-lg font-bold !leading-[1.3]",children:a?.membershipBenefitData?.memberBenefitsNotLoginText}),(0,e.jsxs)("ul",{className:`laptop-md:[&_li]:py-4 list-none
36
36
  [&_li:first-child]:rounded-t-lg [&_li:last-child]:rounded-b-lg [&_li:last-child]:last:border-b-0 [&_li]:flex
37
37
  [&_li]:items-center [&_li]:gap-2 [&_li]:border-b [&_li]:border-b-[#E4E5E6] [&_li]:bg-white [&_li]:px-4 [&_li]:py-[10px]
38
- [&_li]:text-left`,children:[k.enable?(0,e.jsxs)("li",{children:[(0,e.jsx)("svg",{className:"laptop-md:size-6 size-4",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,e.jsx)("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"})}),(0,e.jsx)(s.Text,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",children:!ie&&o?.email?(0,e.jsxs)(e.Fragment,{children:[n?.membershipBenefitData?.creditsAfterActivation,(0,e.jsx)("span",{role:"button",tabIndex:0,onClick:()=>le(),className:"underline",children:n?.membershipBenefitData?.active})]}):k?.config?.label?.replace("{{amount}}",(0,w.formatPrice)({amount:k?.config?.amount??0,currencyCode:i.price.currencyCode,locale:T}))})]}):null,B.enable&&(0,e.jsxs)("li",{className:"justify-between",children:[(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"laptop-md:size-6 size-4",viewBox:"0 0 24 24",fill:"none",children:(0,e.jsx)("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"})}),(0,e.jsx)(s.Text,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",children:(0,I.replaceTemplate)(n?.membershipBenefitData?.forNewMember,{amount:(0,w.formatPrice)({amount:B?.config?.amount??0,currencyCode:i.price.currencyCode,locale:T})})})]}),!!o?.email&&(0,e.jsx)(P,{})]}),n?.membershipBenefitData?.equities?.map((a,c)=>a.modalText?(0,e.jsxs)("li",{className:"justify-between gap-2",children:[(0,e.jsxs)("button",{onClick:()=>r?.({title:a.label,content:a.modalText}),className:"flex justify-between",children:[(0,e.jsx)(s.Picture,{source:a.icon,alt:a.text,className:"laptop-md:size-6 size-4 shrink-0"}),(0,e.jsx)(s.Text,{className:"x:text-[14px] text-wrap text-left text-[16px] font-bold",children:a.text})]},c),!!o?.email&&(0,e.jsx)(P,{})]},c):(0,e.jsxs)("li",{className:"justify-between",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(s.Picture,{source:a.icon,alt:a.text,className:"laptop-md:size-6 size-4 shrink-0"}),(0,e.jsx)(s.Text,{as:"p",className:"x:text-[14px] text-wrap text-left text-[16px] font-bold",children:a.label})]}),!!o?.email&&(0,e.jsx)(P,{})]},c)),se.enable?(0,e.jsxs)("li",{className:"justify-between",children:[(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("svg",{className:"laptop-md:size-6 size-4",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,e.jsx)("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"})}),(0,e.jsx)(s.Text,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",children:n?.membershipBenefitData?.expressShipping})]}),!!o?.email&&(0,e.jsx)(P,{})]}):null]})]}),!o?.email&&(0,e.jsx)("div",{className:"laptop-md:pt-4 pt-2",children:(0,e.jsx)(s.Button,{variant:"primary",className:"w-full",onClick:()=>F?.(),children:ne?.signUp})})]})}),(0,e.jsxs)(f.default.Content,{value:"pay",className:"benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto ",children:[(0,e.jsxs)("div",{className:"lg-desktop:p-4 p-3",children:[(0,e.jsx)(s.Heading,{size:2,className:"mb-2 text-left text-lg font-bold",children:n?.payBenefitData?.payMethod}),(0,e.jsxs)("div",{className:"lg-desktop:p-4 flex items-center justify-between gap-2 rounded-lg bg-white p-3",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(s.Picture,{source:n?.payBenefitData?.icon,className:"laptop-md:size-[70px] laptop-md:h-[34px] size-[40px] h-[20px] shrink-0"}),(0,e.jsx)(s.Text,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",html:n?.payBenefitData?.withCheckout})]}),(0,e.jsx)("button",{className:"hover:text-brand-0 laptop-md:text-[16px] whitespace-nowrap text-sm font-bold underline",onClick:()=>Z(!0),children:n?.payBenefitData?.learnMore})]})]}),(0,e.jsx)(K.default,{showModal:te,closeModal:()=>Z(!1),children:(0,e.jsx)(s.Picture,{source:n?.payBenefitData?.payImage})})]}),(0,e.jsx)(f.default.Content,{value:"installment",forceMount:!0,className:(0,C.cn)("benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto ",ee?"block":"hidden"),children:(0,e.jsxs)("div",{className:"lg-desktop:p-4 p-3",children:[(0,e.jsx)(s.Heading,{size:2,className:"mb-2 text-left text-lg font-bold",children:n?.installmentBenefitData?.flexibleInstallment}),(0,e.jsx)("div",{className:"lg-desktop:p-4 overflow-hidden rounded-lg bg-white p-3",children:d})]})})]}):null},P=t=>(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",...t,children:(0,e.jsx)("path",{d:"M4 9.19472L8.51935 13.667L16.2668 6.00024",stroke:"#2BBC4F",strokeWidth:"1.67",strokeLinecap:"round",strokeLinejoin:"round"})});var Be=(0,Q.withLayout)(ye);
38
+ [&_li]:text-left`,children:[k.enable?(0,e.jsxs)("li",{children:[(0,e.jsx)("svg",{className:"laptop-md:size-6 size-4",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,e.jsx)("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"})}),(0,e.jsx)(i.Text,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",children:!se&&n?.email?(0,e.jsxs)(e.Fragment,{children:[a?.membershipBenefitData?.creditsAfterActivation,(0,e.jsx)("span",{role:"button",tabIndex:0,onClick:()=>re(),className:"underline",children:a?.membershipBenefitData?.active})]}):k?.config?.label?.replace("{{amount}}",(0,g.formatPrice)({amount:k?.config?.amount??0,currencyCode:s.price.currencyCode,locale:h}))})]}):null,v.enable&&(0,e.jsxs)("li",{className:"justify-between",children:[(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"laptop-md:size-6 size-4",viewBox:"0 0 24 24",fill:"none",children:(0,e.jsx)("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"})}),(0,e.jsx)(i.Text,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",children:(0,I.replaceTemplate)(a?.membershipBenefitData?.forNewMember,{amount:(0,g.formatPrice)({amount:v?.config?.amount??0,currencyCode:s.price.currencyCode,locale:h})})})]}),!!n?.email&&(0,e.jsx)(S,{})]}),a?.membershipBenefitData?.equities?.map((o,l)=>o.modalText?(0,e.jsxs)("li",{className:"justify-between gap-2",children:[(0,e.jsxs)("button",{onClick:()=>c?.({title:o.label,content:o.modalText}),className:"flex justify-between",children:[(0,e.jsx)(i.Picture,{source:o.icon,alt:o.text,className:"laptop-md:size-6 size-4 shrink-0"}),(0,e.jsx)(i.Text,{className:"x:text-[14px] text-wrap text-left text-[16px] font-bold",children:o.text})]},l),!!n?.email&&(0,e.jsx)(S,{})]},l):(0,e.jsxs)("li",{className:"justify-between",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(i.Picture,{source:o.icon,alt:o.text,className:"laptop-md:size-6 size-4 shrink-0"}),(0,e.jsx)(i.Text,{as:"p",className:"x:text-[14px] text-wrap text-left text-[16px] font-bold",children:o.label})]}),!!n?.email&&(0,e.jsx)(S,{})]},l)),le.enable?(0,e.jsxs)("li",{className:"justify-between",children:[(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("svg",{className:"laptop-md:size-6 size-4",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,e.jsx)("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"})}),(0,e.jsx)(i.Text,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",children:a?.membershipBenefitData?.expressShipping})]}),!!n?.email&&(0,e.jsx)(S,{})]}):null]})]}),!n?.email&&(0,e.jsx)("div",{className:"laptop-md:pt-4 pt-2",children:(0,e.jsx)(i.Button,{variant:"primary",className:"w-full",onClick:()=>A?.(),children:ae?.signUp})})]})}),(0,e.jsxs)(u.default.Content,{value:"pay",className:"benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto ",children:[(0,e.jsxs)("div",{className:"lg-desktop:p-4 p-3",children:[(0,e.jsx)(i.Heading,{size:2,className:"mb-2 text-left text-lg font-bold",children:a?.payBenefitData?.payMethod}),(0,e.jsxs)("div",{className:"lg-desktop:p-4 flex items-center justify-between gap-2 rounded-lg bg-white p-3",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(i.Picture,{source:a?.payBenefitData?.icon,className:"laptop-md:size-[70px] laptop-md:h-[34px] size-[40px] h-[20px] shrink-0"}),(0,e.jsx)(i.Text,{as:"p",className:"x:text-[14px] text-left text-[16px] font-bold",html:a?.payBenefitData?.withCheckout})]}),(0,e.jsx)("button",{className:"hover:text-brand-0 laptop-md:text-[16px] whitespace-nowrap text-sm font-bold underline",onClick:()=>O(!0),children:a?.payBenefitData?.learnMore})]})]}),(0,e.jsx)(X.default,{showModal:oe,closeModal:()=>O(!1),children:(0,e.jsx)(i.Picture,{source:a?.payBenefitData?.payImage})})]}),(0,e.jsx)(u.default.Content,{value:"installment",forceMount:!0,className:(0,x.cn)("benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto ",te?"block":"hidden"),children:(0,e.jsxs)("div",{className:"lg-desktop:p-4 p-3",children:[(0,e.jsx)(i.Heading,{size:2,className:"mb-2 text-left text-lg font-bold",children:a?.installmentBenefitData?.flexibleInstallment}),(0,e.jsx)("div",{className:"lg-desktop:p-4 overflow-hidden rounded-lg bg-white p-3",children:f})]})})]}):null},S=t=>(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",...t,children:(0,e.jsx)("path",{d:"M4 9.19472L8.51935 13.667L16.2668 6.00024",stroke:"#2BBC4F",strokeWidth:"1.67",strokeLinecap:"round",strokeLinejoin:"round"})});var Be=(0,ee.withLayout)(ye);
39
39
  //# sourceMappingURL=BenefitsTab.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.tsx"],
4
- "sourcesContent": ["/* eslint-disable react/no-unknown-property */\nimport { Button, Checkbox, Text, Picture, Heading, Link } from '../../../../../components/index.js'\nimport ProductBenefitsTabs from './ProductBenefitsTabs/index.js'\nimport { useBizProductContext } from '../../../BizProductProvider.js'\nimport { useComponentData } from '../../../hooks/useComponentData.js'\nimport { useBenefits } from '../../../hooks/useBenefits.js'\nimport { formatPrice } from '../../../utils/index.js'\nimport { replaceTemplate } from '../../../utils/textFormat.js'\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\nimport { useAiuiContext } from '../../../../AiuiProvider/index.js'\nimport useCountDown from '../../../../../hooks/useCountDown.js'\nimport useCopy from '../../../hooks/useCopy.js'\nimport { cn } from '../../../../../helpers/index.js'\nimport ModalContainer from './ProductBenefitsTabs/ModalContainer.js'\nimport { withLayout } from '../../../../../shared/Styles.js'\n// \u6587\u6848\u914D\u7F6E\u63A5\u53E3\ninterface BenefitsTabTextConfig {\n // Coupon \u76F8\u5173\n couponCode?: string // \"Code\"\n copyCode?: string // \"Copy Code\"\n copied?: string // \"Copied\"\n expired?: string // \"Expired\"\n offCoupon?: string // \"off coupon\"\n offMemberOnly?: string // \"{amount} off Member Only\"\n loginNow?: string // \"login now\"\n selectFreeGift?: string // \"You can select the free gift below.\"\n bundleSaveUpTo?: string // \"Bundle purchases save extra up to\"\n bundleOffer?: string // \"We offer {count} bundle for you\"\n creditsTitle?: string // \"Soundcore credits for cash\"\n creditsDesc?: string // \"100 Soundcore credits=$1\"\n\n // Tab \u6807\u7B7E\n off?: string // \"off\"\n memberBenefitsNotLogin?: string // \"Member Benefits\"\n memberBenefitsNotLoginText?: string //\n\n // Member Benefits \u90E8\u5206\n forNewMember?: string // \"for New Member\"\n expressShipping?: string // \"Express Shipping Method\"\n creditsAfterActivation?: string // \"You will get soundcoreCredits after activation.\"\n active?: string // \"Active\"\n\n // Installment \u90E8\u5206\n flexibleInstallment?: string // \"Flexible installment payment\"\n}\n\nexport type ProductBenefitsTabsValueType = 'coupon' | 'membership' | 'pay' | 'installment'\n\nexport type ModalData = {\n needClickAway?: boolean\n className?: string\n title?: string\n content?: string\n domContent?: React.ReactNode\n}\n\ninterface BenefitsTabProps {\n textConfig?: BenefitsTabTextConfig\n}\n\n// \u9ED8\u8BA4\u6587\u6848\u914D\u7F6E\nconst defaultTextConfig: Required<BenefitsTabTextConfig> = {\n couponCode: 'Code',\n copyCode: 'Copy Code',\n copied: 'Copied',\n expired: 'Expired',\n offCoupon: '{discount} off coupon',\n offMemberOnly: '{amount} off Member Only',\n loginNow: 'Login now',\n selectFreeGift: 'You can select the free gift below.',\n bundleSaveUpTo: 'Bundle purchases save extra up to',\n bundleOffer: 'We offer {count} bundle for you',\n creditsTitle: 'Soundcore credits for cash',\n creditsDesc: '100 Soundcore credits=$1',\n off: ' off',\n memberBenefitsNotLogin: 'You will enjoy a {amount} member discount after logging in.',\n memberBenefitsNotLoginText: 'Sign Up to Get Benefits Below',\n forNewMember: '{amount} off for New Member',\n expressShipping: 'Express Shipping Method',\n creditsAfterActivation: 'You will get soundcoreCredits after activation. ',\n active: 'Active',\n flexibleInstallment: 'Flexible installment payment ',\n}\n\n// \u5012\u8BA1\u65F6\u6309\u94AE\uFF08memo \u9694\u79BB\uFF0C\u907F\u514D\u5916\u5C42 CouponItem \u6BCF\u79D2\u91CD\u6E32\u67D3\uFF09\nconst CouponCountdown = React.memo(function CouponCountdown({\n endsAt,\n daysLeft,\n endsText,\n daysText,\n hurryLabel,\n expiredText,\n onOpenModal,\n}: {\n endsAt: string\n daysLeft: number\n endsText: string\n daysText: string\n hurryLabel: string\n expiredText: string\n onOpenModal: () => void\n}) {\n const { days, hours, minutes, seconds } = useCountDown({ endTime: endsAt })\n\n return (\n <button\n onClick={onOpenModal}\n className=\"lg-desktop:mt-[24px] text-brand-0 laptop-md:mt-4 lg-desktop:text-[16px] md-l:hidden mt-[14px] text-left text-[14px] font-bold text-[#1F2021]\"\n >\n {Number(days) < Number(daysLeft) ? (\n <>\n <span>\n {endsText} {days === '00' ? '0' : days} {daysText}\n </span>\n <span className=\"font-bold\">\n {` ${hours.toString()}:${minutes.toString()}:${seconds.toString()}`}\n </span>\n </>\n ) : (\n hurryLabel || expiredText\n )}\n </button>\n )\n})\n\n// Coupon content component (commonly used)\ninterface CouponContentProps {\n coupons?: Array<{\n borderStyle: 'inset' | 'rounded' // \u8FD9\u4E24\u79CD\u6837\u5F0F\u4E0D\u4E00\u6837\uFF0C inset \u56DB\u89D2\u662F\u5185\u5207\u5706\u89D2\uFF0C rounded \u56DB\u89D2\u662F\u666E\u901A\u5706\u89D2\n useAble?: boolean\n isAutoUse?: boolean\n onUseChange?: (useAble: boolean) => boolean | undefined\n code?: string\n title: string\n description: string | React.ReactNode\n discount?: number\n couponBgColor?: string\n bgImage?: { url: string; alt?: string }\n ends_at?: string\n }>\n className?: string\n}\n\nconst CouponItem = ({\n item,\n textConfig,\n benefitPayloadData,\n}: {\n item: NonNullable<CouponContentProps['coupons']>[number]\n textConfig: Required<BenefitsTabTextConfig>\n benefitPayloadData: any\n}) => {\n const { trackingData } = useAiuiContext()\n const { copied: isCopied, copy: copyToClipboard } = useCopy()\n const [checked, setChecked] = useState(false)\n const couponCopy = trackingData?.common?.coupon\n const { openModal } = useBizProductContext()\n return (\n <>\n <style jsx>{`\n .coupon-card {\n /* \u4F7F\u7528mask\u521B\u5EFA\u5185\u5207\u5706\u89D2 */\n mask:\n radial-gradient(circle at 0 0, transparent 12px, white 12px),\n radial-gradient(circle at 100% 0, transparent 12px, white 12px),\n radial-gradient(circle at 100% 100%, transparent 12px, white 12px),\n radial-gradient(circle at 0 100%, transparent 12px, white 12px);\n mask-size: 50% 50%;\n mask-position:\n top left,\n top right,\n bottom right,\n bottom left;\n mask-repeat: no-repeat;\n }\n `}</style>\n <div\n style={{\n background: item.couponBgColor || 'white',\n }}\n className={cn(\n 'laptop:h-[112px] lg-desktop:h-[130px] relative h-[100px] overflow-hidden p-3',\n item.borderStyle === 'inset' ? 'coupon-card ' : 'rounded-[8px]'\n )}\n {...(item.useAble && {\n role: 'button',\n tabIndex: 0,\n onClick: () => {\n const shouldChange = item?.onUseChange?.(checked)\n if (shouldChange !== false) {\n setChecked(!checked)\n }\n },\n })}\n >\n {item?.bgImage?.url && (\n <Picture\n source={item.bgImage.url}\n alt={item.bgImage.alt}\n className=\"absolute bottom-0 right-0 w-auto\"\n imgClassName=\"object-contain\"\n />\n )}\n <div className=\"z-1 relative \">\n <div className=\"flex items-center justify-start\">\n {item.useAble && (\n <Checkbox\n size=\"lg\"\n className=\"data-[state=checked]:border-primary mr-2 rounded-full border-[1.6px] border-[#D1D1D1]\"\n checked={item?.isAutoUse}\n />\n )}\n <Text\n html={item.title}\n className=\"laptop:text-[20px] lg-desktop:text-[24px] text-[16px] font-bold leading-[1.2]\"\n />\n </div>\n {item.description && (\n <Text\n {...(typeof item.description === 'string' ? { html: item.description } : {})}\n as=\"p\"\n className=\"lg-desktop:text-[16px] mt-2 pr-8 text-[14px] font-bold text-[#3D3D3F]\"\n >\n {item.description}\n </Text>\n )}\n {item.code && (\n <div className=\"laptop-md:mt-2 flex items-center gap-2\">\n <Text\n html={`${benefitPayloadData?.couponBenefitData?.commonCoupon?.couponCode}: ${item.code}`}\n className=\"lg-desktop:text-[16px] text-[14px] font-bold text-[#3D3D3F]\"\n />\n <Link\n className=\"lg-desktop:text-[16px] text-[14px] font-bold underline\"\n role=\"button\"\n tabIndex={0}\n onClick={event => {\n event.preventDefault()\n event.stopPropagation()\n copyToClipboard(item.code || '')\n }}\n >\n {isCopied\n ? couponCopy?.copied || benefitPayloadData?.couponBenefitData?.commonCoupon?.copied\n : couponCopy?.copy || benefitPayloadData?.couponBenefitData?.commonCoupon?.copyCode}\n </Link>\n </div>\n )}\n {item.ends_at && (\n <CouponCountdown\n endsAt={item.ends_at}\n daysLeft={couponCopy?.hurry?.daysLeft ?? 0}\n endsText={couponCopy?.ends ?? ''}\n daysText={couponCopy?.days ?? ''}\n hurryLabel={couponCopy?.hurry?.label ?? ''}\n expiredText={benefitPayloadData?.couponBenefitData?.commonCoupon?.expired ?? ''}\n onOpenModal={() => {\n if (couponCopy?.modal) {\n openModal(couponCopy?.modal!)\n }\n }}\n />\n )}\n </div>\n </div>\n </>\n )\n}\n\nconst CouponContent = ({\n coupons,\n className,\n textConfig,\n benefitPayloadData,\n}: CouponContentProps & { textConfig: Required<BenefitsTabTextConfig>; benefitPayloadData: any }) => {\n return (\n <div className={cn('laptop:grid laptop:grid-cols-2 laptop-md:grid-cols-1 flex flex-col gap-3', className)}>\n {coupons?.map((item, index) => (\n <CouponItem key={index} item={item} textConfig={textConfig} benefitPayloadData={benefitPayloadData} />\n ))}\n </div>\n )\n}\n\nconst BenefitsTab = ({ textConfig }: BenefitsTabProps) => {\n const {\n profile,\n variant,\n renderInstallments,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n savingDetail,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n creditsRedemption: creditsRedemptionData,\n } = useBizProductContext()\n\n const { usedPoints = 0, availablePoints = 0 } = creditsRedemptionData ?? {}\n const [isInstallmentMounted, setIsInstallmentMounted] = useState(false)\n\n const productBenefitsData = useComponentData('ProductBenefits') ?? {}\n\n const [isFlexModalOpen, setIsFlexModalOpen] = useState(false)\n\n const benefits = useBenefits({ variant })\n const { locale = 'us', copyWriting } = useAiuiContext()\n const scrollContainerRef = useRef<HTMLDivElement>(null)\n\n // \u5408\u5E76\u9ED8\u8BA4\u914D\u7F6E\u548C\u4F20\u5165\u7684\u914D\u7F6E\n const mergedTextConfig = { ...defaultTextConfig, ...textConfig }\n\n const { activated = false } = profile || {} // \u7528\u6237\u662F\u5426\u6FC0\u6D3B\n const { memberDiscount, commonCoupon, creditsRedemption, freeGift, functionFreeGift, bundle, paidShipping, fullGift, levelDiscount } =\n benefits\n\n const benefitPayloadData = useMemo(() => {\n const couponBenefitData = productBenefitsData?.benefitTabs?.find((item: any) => item?.value === 'coupon') ?? {}\n const membershipBenefitData =\n productBenefitsData?.benefitTabs?.find((item: any) => item?.value === 'membership') ?? {}\n const installmentBenefitData =\n productBenefitsData?.benefitTabs?.find((item: any) => item?.value === 'installment') ?? {}\n const payBenefitData = productBenefitsData?.benefitTabs?.find((item: any) => item?.value === 'pay') ?? {}\n return { couponBenefitData, membershipBenefitData, installmentBenefitData, payBenefitData }\n }, [productBenefitsData])\n\n const coupons = [\n commonCoupon?.enable\n ? {\n ...commonCoupon.config,\n isAutoUse: savingDetail?.coupon > 0,\n useAble: true,\n borderStyle: 'rounded',\n code: commonCoupon?.config?.title ?? '',\n description: commonCoupon?.config?.desc ?? '',\n onUseChange: (value: boolean) => {\n const couponSaving = value ? (discount?.codeSavings ?? 0) : 0\n onUseCouponChange?.(couponSaving)\n },\n title: replaceTemplate(benefitPayloadData?.couponBenefitData?.commonCoupon?.offCoupon, {\n discount:\n commonCoupon?.config?.value_type == 'percentage'\n ? Math.abs(Number(commonCoupon?.config?.value || 0)) + '%'\n : formatPrice({\n amount: Math.abs(Number(commonCoupon?.config?.fixed_value || 0)),\n currencyCode: variant.price.currencyCode,\n locale,\n }),\n }),\n }\n : null,\n memberDiscount.enable\n ? {\n useAble: true,\n isAutoUse: Boolean(profile?.email) && !!savingDetail?.member,\n title: replaceTemplate(benefitPayloadData?.couponBenefitData?.member?.offMemberOnly, {\n amount: formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n }),\n }),\n description: (\n <>\n {profile?.email\n ? benefitPayloadData?.couponBenefitData?.member?.memberDiscounts\n : (benefitPayloadData?.membershipBenefitData?.memberBenefitsNotLogin?.replace(\n '{amount}',\n formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n })\n ) ?? '')}{' '}\n {profile?.email ? (\n ''\n ) : (\n <span role=\"button\" tabIndex={0} onClick={() => openSignInPopup?.()} className=\"underline\">\n {benefitPayloadData?.couponBenefitData?.member?.loginNow}\n </span>\n )}\n </>\n ),\n borderStyle: 'rounded',\n onUseChange: (value: boolean) => {\n if (profile?.email) {\n const memberSaving = value ? (memberDiscount?.config?.amount ?? 0) : 0\n onUseMemberDiscountChange?.(memberSaving)\n // setSavingDetail(prev => ({\n // ...prev,\n // member: value ? (memberDiscount?.config?.amount ?? 0) : 0,\n // }))\n return true\n } else {\n openSignInPopup?.()\n return false\n }\n },\n }\n : null,\n levelDiscount.enable\n ? {\n title: levelDiscount?.config?.title ?? '',\n description: levelDiscount?.config?.tag ?? '',\n borderStyle: 'inset',\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.levelDiscount?.bgImage,\n },\n }\n : null,\n functionFreeGift.enable\n ? {\n title: functionFreeGift?.config?.title ?? '',\n description: benefitPayloadData?.couponBenefitData?.freeGift?.selectFreeGift,\n borderStyle: 'inset',\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.freeGift?.bgImage,\n },\n couponBgColor:\n 'linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF',\n }\n : null,\n freeGift.enable\n ? {\n title: freeGift?.config?.title ?? '',\n description: benefitPayloadData?.couponBenefitData?.freeGift?.selectFreeGift,\n borderStyle: 'inset',\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.freeGift?.bgImage,\n },\n couponBgColor:\n 'linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF',\n }\n : null,\n bundle.enable\n ? {\n title: `${benefitPayloadData?.couponBenefitData?.bundle?.bundleSaveUpTo} ${bundle.config?.maxSavings}`,\n borderStyle: 'inset',\n description: benefitPayloadData?.couponBenefitData?.bundle?.bundleOffer.replace(\n '{count}',\n bundle?.config?.bundleOptions?.length?.toString() ?? ''\n ),\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.bundle?.bgImage,\n },\n couponBgColor:\n 'linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF',\n }\n : null,\n fullGift.enable\n ? {\n title: fullGift?.config?.title ?? '',\n description: fullGift?.config?.desc ?? '',\n borderStyle: 'inset',\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.fullGift?.bgImage,\n },\n couponBgColor:\n 'linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF',\n }\n : null,\n creditsRedemption.enable\n ? {\n title: benefitPayloadData?.couponBenefitData?.creditsRedemption?.creditsTitle,\n description: benefitPayloadData?.couponBenefitData?.creditsRedemption?.creditsDesc,\n borderStyle: 'inset',\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.creditsRedemption?.bgImage,\n },\n couponBgColor:\n 'linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF',\n }\n : null,\n ].filter(Boolean)\n\n useEffect(() => {\n setProductBenefitsTabsValue(coupons?.length ? 'coupon' : 'membership')\n }, [coupons?.length])\n\n useEffect(() => {\n setIsInstallmentMounted(false)\n }, [variant?.id])\n\n const [productBenefitsTabsValue, setProductBenefitsTabsValue] = useState<ProductBenefitsTabsValueType>('coupon')\n\n const handleActivate = () => {\n openAuthCodePopup?.()\n }\n\n const handleProductBenefitsTabListClick = (\n el: React.MouseEvent<HTMLButtonElement>,\n value: ProductBenefitsTabsValueType\n ) => {\n setProductBenefitsTabsValue(value)\n if (scrollContainerRef.current) {\n const container = scrollContainerRef.current\n const button = el.currentTarget\n const scrollLeft = button.offsetLeft - container.offsetWidth / 2 + button.offsetWidth / 2\n container.scrollTo({\n left: scrollLeft,\n behavior: 'smooth',\n })\n }\n }\n\n const benefitTabs = useMemo(() => {\n return productBenefitsData?.benefitTabs\n ?.map((item: any) => {\n if (item?.value === 'coupon' && !coupons?.length) {\n return null\n }\n return item\n })\n .filter(Boolean)\n }, [productBenefitsData, coupons])\n\n if (!ProductBenefitsTabs) return null\n\n return (\n <ProductBenefitsTabs\n className=\"relative\"\n onValueChange={value => {\n setProductBenefitsTabsValue(value as 'coupon' | 'membership' | 'pay' | 'installment')\n if (value === 'installment') {\n setIsInstallmentMounted(true)\n } else {\n setIsInstallmentMounted(false)\n }\n }}\n value={productBenefitsTabsValue}\n >\n <div className=\"absolute right-0 top-0 z-[1] h-[40px] w-[25px] rounded-xl bg-gradient-to-r from-transparent to-[#EAEAEC]\"></div>\n <ProductBenefitsTabs.List ref={scrollContainerRef}>\n {benefitTabs?.map((item: any) => (\n <ProductBenefitsTabs.Trigger\n key={item?.value}\n className={cn(productBenefitsTabsValue === item.value && 'text-[#080A0F]')}\n value={item.value}\n onClick={e => handleProductBenefitsTabListClick(e, item?.value)}\n >\n {item.label}\n </ProductBenefitsTabs.Trigger>\n ))}\n </ProductBenefitsTabs.List>\n {/* TODO: @seasail \u7528tailwind \u539F\u5B50\u7C7B\u6216\u8005\u884C\u5185\u6837\u5F0F(Inline Style)\u4EE3\u66FF jsx global */}\n <style global jsx>\n {`\n .benefits-tabs-content::-webkit-scrollbar {\n width: 4px; /* \u6EDA\u52A8\u6761\u5BBD\u5EA6 */\n height: 64px; /* \u6A2A\u5411\u6EDA\u52A8\u6761\u9AD8\u5EA6 */\n }\n\n .benefits-tabs-content::-webkit-scrollbar-track {\n background: transparent; /* \u6EDA\u52A8\u6761\u8F68\u9053\u80CC\u666F */\n }\n\n .benefits-tabs-content::-webkit-scrollbar-thumb {\n background-color: #d1d1d1; /* \u6EDA\u52A8\u6761\u989C\u8272 */\n border-radius: 9999px; /* \u5706\u89D2 */\n }\n\n .benefits-tabs-content::-webkit-scrollbar-thumb:hover {\n background-color: rgba(100, 100, 100, 0.6);\n }\n `}\n </style>\n {/* \u4F7F\u7528\u5185\u7F6E\u7684 CouponContent \u5B50\u7EC4\u4EF6 */}\n {coupons?.length ? (\n <ProductBenefitsTabs.Content\n value=\"coupon\"\n className=\"benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto\"\n >\n <div className=\"lg-desktop:p-4 p-3\">\n <CouponContent\n coupons={coupons as NonNullable<CouponContentProps['coupons']>}\n textConfig={mergedTextConfig}\n benefitPayloadData={benefitPayloadData}\n />\n </div>\n </ProductBenefitsTabs.Content>\n ) : null}\n <ProductBenefitsTabs.Content\n value=\"membership\"\n className={cn('benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px]', {\n 'overflow-y-auto': profile?.email,\n })}\n >\n <div className=\"lg-desktop:p-4 p-3\">\n <div\n className={cn('rounded-lg', {\n 'benefits-tabs-content lg-desktop:h-[calc(240px-100px)] laptop-md:h-[calc(196px-80px)] laptop:h-[calc(220px-72px)] h-[calc(180px-73px)] overflow-y-auto':\n !profile?.email,\n })}\n >\n {!profile?.email && (\n <h3 className=\"laptop-md:mb-2 mb-1 text-left text-lg font-bold !leading-[1.3]\">\n {benefitPayloadData?.membershipBenefitData?.memberBenefitsNotLoginText}\n </h3>\n )}\n <ul\n className={`laptop-md:[&_li]:py-4 list-none \n [&_li:first-child]:rounded-t-lg [&_li:last-child]:rounded-b-lg [&_li:last-child]:last:border-b-0 [&_li]:flex\n [&_li]:items-center [&_li]:gap-2 [&_li]:border-b [&_li]:border-b-[#E4E5E6] [&_li]:bg-white [&_li]:px-4 [&_li]:py-[10px]\n [&_li]:text-left`}\n >\n {/* \u79EF\u5206\u62B5\u73B0 */}\n {creditsRedemption.enable ? (\n <li>\n <svg\n className=\"laptop-md:size-6 size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"#1D1D1F\"\n />\n </svg>\n <Text as=\"p\" className=\"x:text-[14px] text-left text-[16px] font-bold\">\n {!activated && Boolean(profile?.email) ? (\n <>\n {benefitPayloadData?.membershipBenefitData?.creditsAfterActivation}\n <span role=\"button\" tabIndex={0} onClick={() => handleActivate()} className=\"underline\">\n {benefitPayloadData?.membershipBenefitData?.active}\n </span>\n </>\n ) : (\n creditsRedemption?.config?.label?.replace(\n '{{amount}}',\n formatPrice({\n amount: creditsRedemption?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n })\n )\n )}\n </Text>\n </li>\n ) : null}\n {memberDiscount.enable && (\n <li className=\"justify-between\">\n <div className=\"flex gap-2\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"laptop-md:size-6 size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n 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\"\n fill=\"#1D1D1F\"\n />\n </svg>\n <Text as=\"p\" className=\"x:text-[14px] text-left text-[16px] font-bold\">\n {replaceTemplate(benefitPayloadData?.membershipBenefitData?.forNewMember, {\n amount: formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n }),\n })}\n </Text>\n </div>\n {Boolean(profile?.email) && <CheckedIcon />}\n </li>\n )}\n {benefitPayloadData?.membershipBenefitData?.equities?.map((item: any, index: number) =>\n item.modalText ? (\n <li key={index} className=\"justify-between gap-2\">\n <button\n onClick={() => openModal?.({ title: item.label, content: item.modalText })}\n key={index}\n className=\"flex justify-between\"\n >\n <Picture source={item.icon} alt={item.text} className=\"laptop-md:size-6 size-4 shrink-0\" />\n <Text className=\"x:text-[14px] text-wrap text-left text-[16px] font-bold\">{item.text}</Text>\n </button>\n {Boolean(profile?.email) && <CheckedIcon />}\n </li>\n ) : (\n <li key={index} className=\"justify-between\">\n <div className=\"flex items-center gap-2\">\n <Picture source={item.icon} alt={item.text} className=\"laptop-md:size-6 size-4 shrink-0\" />\n <Text as=\"p\" className=\"x:text-[14px] text-wrap text-left text-[16px] font-bold\">\n {item.label}\n </Text>\n </div>\n {Boolean(profile?.email) && <CheckedIcon />}\n </li>\n )\n )}\n {/* <li className=\"justify-between\">\n <div className=\"flex items-center gap-2\">\n <Picture\n source={benefitPayloadData?.membershipBenefitData.memberPriceIcon}\n alt={benefitPayloadData?.membershipBenefitData.memberPriceDesc}\n className=\" size-6 shrink-0\"\n />\n <Text as=\"p\" className=\"x:text-[14px] text-wrap text-left text-[16px] font-bold\">\n {benefitPayloadData?.membershipBenefitData.memberPriceDesc}\n </Text>\n </div>\n {Boolean(profile?.email) && <CheckedIcon />}\n </li> */}\n {/* \u9AD8\u6807\u7269\u6D41 */}\n {paidShipping.enable ? (\n <li className=\"justify-between\">\n <div className=\"flex gap-2\">\n <svg\n className=\"laptop-md:size-6 size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"#1D1D1F\"\n />\n </svg>\n <Text as=\"p\" className=\"x:text-[14px] text-left text-[16px] font-bold\">\n {benefitPayloadData?.membershipBenefitData?.expressShipping}\n </Text>\n </div>\n {Boolean(profile?.email) && <CheckedIcon />}\n </li>\n ) : null}\n </ul>\n </div>\n {!profile?.email && (\n <div className=\"laptop-md:pt-4 pt-2\">\n <Button variant=\"primary\" className=\"w-full\" onClick={() => openSignUpPopup?.()}>\n {copyWriting?.signUp}\n </Button>\n </div>\n )}\n </div>\n </ProductBenefitsTabs.Content>\n <ProductBenefitsTabs.Content\n value=\"pay\"\n className=\"benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto \"\n >\n <div className=\"lg-desktop:p-4 p-3\">\n <Heading size={2} className=\"mb-2 text-left text-lg font-bold\">\n {benefitPayloadData?.payBenefitData?.payMethod}\n </Heading>\n <div className=\"lg-desktop:p-4 flex items-center justify-between gap-2 rounded-lg bg-white p-3\">\n <div className=\"flex items-center gap-2\">\n <Picture\n source={benefitPayloadData?.payBenefitData?.icon}\n className=\"laptop-md:size-[70px] laptop-md:h-[34px] size-[40px] h-[20px] shrink-0\"\n />\n <Text\n as=\"p\"\n className=\"x:text-[14px] text-left text-[16px] font-bold\"\n html={benefitPayloadData?.payBenefitData?.withCheckout}\n />\n </div>\n <button\n className=\"hover:text-brand-0 laptop-md:text-[16px] whitespace-nowrap text-sm font-bold underline\"\n onClick={() => setIsFlexModalOpen(true)}\n >\n {benefitPayloadData?.payBenefitData?.learnMore}\n </button>\n </div>\n </div>\n\n <ModalContainer showModal={isFlexModalOpen} closeModal={() => setIsFlexModalOpen(false)}>\n <Picture source={benefitPayloadData?.payBenefitData?.payImage}></Picture>\n </ModalContainer>\n </ProductBenefitsTabs.Content>\n {/* \u81EA\u5B9A\u4E49\u5185\u5BB9 */}\n <ProductBenefitsTabs.Content\n value=\"installment\"\n forceMount={true}\n className={cn(\n 'benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto ',\n isInstallmentMounted ? 'block' : 'hidden'\n )}\n >\n <div className=\"lg-desktop:p-4 p-3\">\n <Heading size={2} className=\"mb-2 text-left text-lg font-bold\">\n {benefitPayloadData?.installmentBenefitData?.flexibleInstallment}\n </Heading>\n <div className=\"lg-desktop:p-4 overflow-hidden rounded-lg bg-white p-3\">{renderInstallments}</div>\n </div>\n </ProductBenefitsTabs.Content>\n </ProductBenefitsTabs>\n )\n}\n\nconst CheckedIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" {...props}>\n <path\n d=\"M4 9.19472L8.51935 13.667L16.2668 6.00024\"\n stroke=\"#2BBC4F\"\n strokeWidth=\"1.67\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default withLayout(BenefitsTab)\n"],
5
- "mappings": "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",
6
- "names": ["BenefitsTab_exports", "__export", "BenefitsTab_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_ProductBenefitsTabs", "import_BizProductProvider", "import_useComponentData", "import_useBenefits", "import_utils", "import_textFormat", "import_react", "import_AiuiProvider", "import_useCountDown", "import_useCopy", "import_helpers", "import_ModalContainer", "import_Styles", "defaultTextConfig", "CouponCountdown", "React", "endsAt", "daysLeft", "endsText", "daysText", "hurryLabel", "expiredText", "onOpenModal", "days", "hours", "minutes", "seconds", "useCountDown", "CouponItem", "item", "textConfig", "benefitPayloadData", "trackingData", "isCopied", "copyToClipboard", "useCopy", "checked", "setChecked", "couponCopy", "openModal", "event", "CouponContent", "coupons", "className", "index", "BenefitsTab", "profile", "variant", "renderInstallments", "onUseCouponChange", "onUseMemberDiscountChange", "discount", "savingDetail", "openSignInPopup", "openAuthCodePopup", "openSignUpPopup", "creditsRedemptionData", "usedPoints", "availablePoints", "isInstallmentMounted", "setIsInstallmentMounted", "productBenefitsData", "isFlexModalOpen", "setIsFlexModalOpen", "benefits", "locale", "copyWriting", "scrollContainerRef", "mergedTextConfig", "activated", "memberDiscount", "commonCoupon", "creditsRedemption", "freeGift", "functionFreeGift", "bundle", "paidShipping", "fullGift", "levelDiscount", "couponBenefitData", "membershipBenefitData", "installmentBenefitData", "payBenefitData", "value", "couponSaving", "memberSaving", "setProductBenefitsTabsValue", "productBenefitsTabsValue", "handleActivate", "handleProductBenefitsTabListClick", "el", "container", "button", "scrollLeft", "benefitTabs", "ProductBenefitsTabs", "e", "CheckedIcon", "ModalContainer", "props"]
4
+ "sourcesContent": ["/* eslint-disable react/no-unknown-property */\nimport { Button, Checkbox, Text, Picture, Heading, Link } from '../../../../../components/index.js'\nimport ProductBenefitsTabs from './ProductBenefitsTabs/index.js'\nimport { useBizProductContext } from '../../../BizProductProvider.js'\nimport { useComponentData } from '../../../hooks/useComponentData.js'\nimport { useBenefits } from '../../../hooks/useBenefits.js'\nimport { formatPrice } from '../../../utils/index.js'\nimport { replaceTemplate } from '../../../utils/textFormat.js'\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\nimport { useAiuiContext } from '../../../../AiuiProvider/index.js'\nimport useCountDown from '../../../../../hooks/useCountDown.js'\nimport useCopy from '../../../hooks/useCopy.js'\nimport { cn } from '../../../../../helpers/index.js'\nimport ModalContainer from './ProductBenefitsTabs/ModalContainer.js'\nimport { withLayout } from '../../../../../shared/Styles.js'\n// \u6587\u6848\u914D\u7F6E\u63A5\u53E3\ninterface BenefitsTabTextConfig {\n // Coupon \u76F8\u5173\n couponCode?: string // \"Code\"\n copyCode?: string // \"Copy Code\"\n copied?: string // \"Copied\"\n expired?: string // \"Expired\"\n offCoupon?: string // \"off coupon\"\n offMemberOnly?: string // \"{amount} off Member Only\"\n loginNow?: string // \"login now\"\n selectFreeGift?: string // \"You can select the free gift below.\"\n bundleSaveUpTo?: string // \"Bundle purchases save extra up to\"\n bundleOffer?: string // \"We offer {count} bundle for you\"\n creditsTitle?: string // \"Soundcore credits for cash\"\n creditsDesc?: string // \"100 Soundcore credits=$1\"\n\n // Tab \u6807\u7B7E\n off?: string // \"off\"\n memberBenefitsNotLogin?: string // \"Member Benefits\"\n memberBenefitsNotLoginText?: string //\n\n // Member Benefits \u90E8\u5206\n forNewMember?: string // \"for New Member\"\n expressShipping?: string // \"Express Shipping Method\"\n creditsAfterActivation?: string // \"You will get soundcoreCredits after activation.\"\n active?: string // \"Active\"\n\n // Installment \u90E8\u5206\n flexibleInstallment?: string // \"Flexible installment payment\"\n}\n\nexport type ProductBenefitsTabsValueType = 'coupon' | 'membership' | 'pay' | 'installment'\n\nexport type ModalData = {\n needClickAway?: boolean\n className?: string\n title?: string\n content?: string\n domContent?: React.ReactNode\n}\n\ninterface BenefitsTabProps {\n textConfig?: BenefitsTabTextConfig\n}\n\n// \u9ED8\u8BA4\u6587\u6848\u914D\u7F6E\nconst defaultTextConfig: Required<BenefitsTabTextConfig> = {\n couponCode: 'Code',\n copyCode: 'Copy Code',\n copied: 'Copied',\n expired: 'Expired',\n offCoupon: '{discount} off coupon',\n offMemberOnly: '{amount} off Member Only',\n loginNow: 'Login now',\n selectFreeGift: 'You can select the free gift below.',\n bundleSaveUpTo: 'Bundle purchases save extra up to',\n bundleOffer: 'We offer {count} bundle for you',\n creditsTitle: 'Soundcore credits for cash',\n creditsDesc: '100 Soundcore credits=$1',\n off: ' off',\n memberBenefitsNotLogin: 'You will enjoy a {amount} member discount after logging in.',\n memberBenefitsNotLoginText: 'Sign Up to Get Benefits Below',\n forNewMember: '{amount} off for New Member',\n expressShipping: 'Express Shipping Method',\n creditsAfterActivation: 'You will get soundcoreCredits after activation. ',\n active: 'Active',\n flexibleInstallment: 'Flexible installment payment ',\n}\n\n// Coupon content component (commonly used)\ninterface CouponContentProps {\n coupons?: Array<{\n borderStyle: 'inset' | 'rounded' // \u8FD9\u4E24\u79CD\u6837\u5F0F\u4E0D\u4E00\u6837\uFF0C inset \u56DB\u89D2\u662F\u5185\u5207\u5706\u89D2\uFF0C rounded \u56DB\u89D2\u662F\u666E\u901A\u5706\u89D2\n useAble?: boolean\n isAutoUse?: boolean\n onUseChange?: (useAble: boolean) => boolean | undefined\n code?: string\n title: string\n description: string | React.ReactNode\n discount?: number\n couponBgColor?: string\n bgImage?: { url: string; alt?: string }\n ends_at?: string\n }>\n className?: string\n}\n\nconst CouponItem = ({\n item,\n textConfig,\n benefitPayloadData,\n}: {\n item: NonNullable<CouponContentProps['coupons']>[number]\n textConfig: Required<BenefitsTabTextConfig>\n benefitPayloadData: any\n}) => {\n const { trackingData } = useAiuiContext()\n const { copied: isCopied, copy: copyToClipboard } = useCopy()\n const [checked, setChecked] = useState(false)\n const couponCopy = trackingData?.common?.coupon\n const { days, hours, minutes, seconds } = useCountDown({ endTime: item?.ends_at || '' })\n const { openModal } = useBizProductContext()\n return (\n <>\n <style jsx>{`\n .coupon-card {\n /* \u4F7F\u7528mask\u521B\u5EFA\u5185\u5207\u5706\u89D2 */\n mask:\n radial-gradient(circle at 0 0, transparent 12px, white 12px),\n radial-gradient(circle at 100% 0, transparent 12px, white 12px),\n radial-gradient(circle at 100% 100%, transparent 12px, white 12px),\n radial-gradient(circle at 0 100%, transparent 12px, white 12px);\n mask-size: 50% 50%;\n mask-position:\n top left,\n top right,\n bottom right,\n bottom left;\n mask-repeat: no-repeat;\n }\n `}</style>\n <div\n style={{\n background: item.couponBgColor || 'white',\n }}\n className={cn(\n 'laptop:h-[112px] lg-desktop:h-[130px] relative h-[100px] overflow-hidden p-3',\n item.borderStyle === 'inset' ? 'coupon-card ' : 'rounded-[8px]'\n )}\n {...(item.useAble && {\n role: 'button',\n tabIndex: 0,\n onClick: () => {\n const shouldChange = item?.onUseChange?.(checked)\n if (shouldChange !== false) {\n setChecked(!checked)\n }\n },\n })}\n >\n {item?.bgImage?.url && (\n <Picture\n source={item.bgImage.url}\n alt={item.bgImage.alt}\n className=\"absolute bottom-0 right-0 w-auto\"\n imgClassName=\"object-contain\"\n />\n )}\n <div className=\"z-1 relative \">\n <div className=\"flex items-center justify-start\">\n {item.useAble && (\n <Checkbox\n size=\"lg\"\n className=\"data-[state=checked]:border-primary mr-2 rounded-full border-[1.6px] border-[#D1D1D1]\"\n checked={item?.isAutoUse}\n />\n )}\n <Text\n html={item.title}\n className=\"laptop:text-[20px] lg-desktop:text-[24px] text-[16px] font-bold leading-[1.2]\"\n />\n </div>\n {item.description && (\n <Text\n {...(typeof item.description === 'string' ? { html: item.description } : {})}\n as=\"p\"\n className=\"lg-desktop:text-[16px] mt-2 pr-8 text-[14px] font-bold text-[#3D3D3F]\"\n >\n {item.description}\n </Text>\n )}\n {item.code && (\n <div className=\"laptop-md:mt-2 flex items-center gap-2\">\n <Text\n html={`${benefitPayloadData?.couponBenefitData?.commonCoupon?.couponCode}: ${item.code}`}\n className=\"lg-desktop:text-[16px] text-[14px] font-bold text-[#3D3D3F]\"\n />\n <Link\n className=\"lg-desktop:text-[16px] text-[14px] font-bold underline\"\n role=\"button\"\n tabIndex={0}\n onClick={event => {\n event.preventDefault()\n event.stopPropagation()\n copyToClipboard(item.code || '')\n }}\n >\n {isCopied\n ? couponCopy?.copied || benefitPayloadData?.couponBenefitData?.commonCoupon?.copied\n : couponCopy?.copy || benefitPayloadData?.couponBenefitData?.commonCoupon?.copyCode}\n </Link>\n </div>\n )}\n {item.ends_at && (\n <button\n onClick={() => {\n if (couponCopy?.modal) {\n openModal(couponCopy?.modal!)\n }\n }}\n className=\"lg-desktop:mt-[24px] text-brand-0 laptop-md:mt-4 lg-desktop:text-[16px] md-l:hidden mt-[14px] text-left text-[14px] font-bold text-[#1F2021]\"\n >\n {Number(days) < Number(couponCopy?.hurry?.daysLeft) ? (\n <>\n <span>\n {couponCopy?.ends} {days === '00' ? '0' : days} {couponCopy?.days || ''}\n </span>\n <span className=\"font-bold\">\n {` ${hours.toString()}:${minutes.toString()}:${seconds.toString()}`}\n </span>\n </>\n ) : (\n couponCopy?.hurry?.label || benefitPayloadData?.couponBenefitData?.commonCoupon?.expired\n )}\n </button>\n )}\n </div>\n </div>\n </>\n )\n}\n\nconst CouponContent = ({\n coupons,\n className,\n textConfig,\n benefitPayloadData,\n}: CouponContentProps & { textConfig: Required<BenefitsTabTextConfig>; benefitPayloadData: any }) => {\n return (\n <div className={cn('laptop:grid laptop:grid-cols-2 laptop-md:grid-cols-1 flex flex-col gap-3', className)}>\n {coupons?.map((item, index) => (\n <CouponItem key={index} item={item} textConfig={textConfig} benefitPayloadData={benefitPayloadData} />\n ))}\n </div>\n )\n}\n\nconst BenefitsTab = ({ textConfig }: BenefitsTabProps) => {\n const {\n profile,\n variant,\n renderInstallments,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n savingDetail,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n creditsRedemption: creditsRedemptionData,\n } = useBizProductContext()\n\n const { usedPoints = 0, availablePoints = 0 } = creditsRedemptionData ?? {}\n const [isInstallmentMounted, setIsInstallmentMounted] = useState(false)\n\n const productBenefitsData = useComponentData('ProductBenefits') ?? {}\n\n const [isFlexModalOpen, setIsFlexModalOpen] = useState(false)\n\n const benefits = useBenefits({ variant })\n const { locale = 'us', copyWriting } = useAiuiContext()\n const scrollContainerRef = useRef<HTMLDivElement>(null)\n\n // \u5408\u5E76\u9ED8\u8BA4\u914D\u7F6E\u548C\u4F20\u5165\u7684\u914D\u7F6E\n const mergedTextConfig = { ...defaultTextConfig, ...textConfig }\n\n const { activated = false } = profile || {} // \u7528\u6237\u662F\u5426\u6FC0\u6D3B\n const { memberDiscount, commonCoupon, creditsRedemption, freeGift, bundle, paidShipping, fullGift, levelDiscount } =\n benefits\n\n const benefitPayloadData = useMemo(() => {\n const couponBenefitData = productBenefitsData?.benefitTabs?.find((item: any) => item?.value === 'coupon') ?? {}\n const membershipBenefitData =\n productBenefitsData?.benefitTabs?.find((item: any) => item?.value === 'membership') ?? {}\n const installmentBenefitData =\n productBenefitsData?.benefitTabs?.find((item: any) => item?.value === 'installment') ?? {}\n const payBenefitData = productBenefitsData?.benefitTabs?.find((item: any) => item?.value === 'pay') ?? {}\n return { couponBenefitData, membershipBenefitData, installmentBenefitData, payBenefitData }\n }, [productBenefitsData])\n\n const coupons = [\n commonCoupon?.enable\n ? {\n ...commonCoupon.config,\n isAutoUse: savingDetail?.coupon > 0,\n useAble: true,\n borderStyle: 'rounded',\n code: commonCoupon?.config?.title ?? '',\n description: commonCoupon?.config?.desc ?? '',\n onUseChange: (value: boolean) => {\n const couponSaving = value ? (discount?.codeSavings ?? 0) : 0\n onUseCouponChange?.(couponSaving)\n },\n title: replaceTemplate(benefitPayloadData?.couponBenefitData?.commonCoupon?.offCoupon, {\n discount:\n commonCoupon?.config?.value_type == 'percentage'\n ? Math.abs(Number(commonCoupon?.config?.value || 0)) + '%'\n : formatPrice({\n amount: Math.abs(Number(commonCoupon?.config?.fixed_value || 0)),\n currencyCode: variant.price.currencyCode,\n locale,\n }),\n }),\n }\n : null,\n memberDiscount.enable\n ? {\n useAble: true,\n isAutoUse: Boolean(profile?.email) && !!savingDetail?.member,\n title: replaceTemplate(benefitPayloadData?.couponBenefitData?.member?.offMemberOnly, {\n amount: formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n }),\n }),\n description: (\n <>\n {profile?.email\n ? benefitPayloadData?.couponBenefitData?.member?.memberDiscounts\n : (benefitPayloadData?.membershipBenefitData?.memberBenefitsNotLogin?.replace(\n '{amount}',\n formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n })\n ) ?? '')}{' '}\n {profile?.email ? (\n ''\n ) : (\n <span role=\"button\" tabIndex={0} onClick={() => openSignInPopup?.()} className=\"underline\">\n {benefitPayloadData?.couponBenefitData?.member?.loginNow}\n </span>\n )}\n </>\n ),\n borderStyle: 'rounded',\n onUseChange: (value: boolean) => {\n if (profile?.email) {\n const memberSaving = value ? (memberDiscount?.config?.amount ?? 0) : 0\n onUseMemberDiscountChange?.(memberSaving)\n // setSavingDetail(prev => ({\n // ...prev,\n // member: value ? (memberDiscount?.config?.amount ?? 0) : 0,\n // }))\n return true\n } else {\n openSignInPopup?.()\n return false\n }\n },\n }\n : null,\n levelDiscount.enable\n ? {\n title: levelDiscount?.config?.title ?? '',\n description: levelDiscount?.config?.tag ?? '',\n borderStyle: 'inset',\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.levelDiscount?.bgImage,\n },\n }\n : null,\n freeGift.enable\n ? {\n title: freeGift?.config?.title ?? '',\n description: benefitPayloadData?.couponBenefitData?.freeGift?.selectFreeGift,\n borderStyle: 'inset',\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.freeGift?.bgImage,\n },\n couponBgColor:\n 'linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF',\n }\n : null,\n bundle.enable\n ? {\n title: `${benefitPayloadData?.couponBenefitData?.bundle?.bundleSaveUpTo} ${formatPrice({\n amount: Math.max(...(bundle?.config?.bundleList?.map((item: any) => item.savings ?? 0) ?? [])),\n currencyCode: variant.price.currencyCode,\n locale,\n })}`,\n borderStyle: 'inset',\n description: benefitPayloadData?.couponBenefitData?.bundle?.bundleOffer.replace(\n '{count}',\n bundle?.config?.bundleList?.length?.toString() ?? ''\n ),\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.bundle?.bgImage,\n },\n couponBgColor:\n 'linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF',\n }\n : null,\n fullGift.enable\n ? {\n title: fullGift?.config?.title ?? '',\n description: fullGift?.config?.desc ?? '',\n borderStyle: 'inset',\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.fullGift?.bgImage,\n },\n couponBgColor:\n 'linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF',\n }\n : null,\n creditsRedemption.enable\n ? {\n title: benefitPayloadData?.couponBenefitData?.creditsRedemption?.creditsTitle,\n description: benefitPayloadData?.couponBenefitData?.creditsRedemption?.creditsDesc,\n borderStyle: 'inset',\n bgImage: {\n url: benefitPayloadData?.couponBenefitData?.creditsRedemption?.bgImage,\n },\n couponBgColor:\n 'linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF',\n }\n : null,\n ].filter(Boolean)\n\n useEffect(() => {\n setProductBenefitsTabsValue(coupons?.length ? 'coupon' : 'membership')\n }, [coupons?.length])\n\n useEffect(() => {\n setIsInstallmentMounted(false)\n }, [variant?.id])\n\n const [productBenefitsTabsValue, setProductBenefitsTabsValue] = useState<ProductBenefitsTabsValueType>('coupon')\n\n const handleActivate = () => {\n openAuthCodePopup?.()\n }\n\n const handleProductBenefitsTabListClick = (\n el: React.MouseEvent<HTMLButtonElement>,\n value: ProductBenefitsTabsValueType\n ) => {\n setProductBenefitsTabsValue(value)\n if (scrollContainerRef.current) {\n const container = scrollContainerRef.current\n const button = el.currentTarget\n const scrollLeft = button.offsetLeft - container.offsetWidth / 2 + button.offsetWidth / 2\n container.scrollTo({\n left: scrollLeft,\n behavior: 'smooth',\n })\n }\n }\n\n const benefitTabs = useMemo(() => {\n return productBenefitsData?.benefitTabs\n ?.map((item: any) => {\n if (item?.value === 'coupon' && !coupons?.length) {\n return null\n }\n return item\n })\n .filter(Boolean)\n }, [productBenefitsData, coupons])\n\n if (!ProductBenefitsTabs) return null\n\n return (\n <ProductBenefitsTabs\n className=\"relative\"\n onValueChange={value => {\n setProductBenefitsTabsValue(value as 'coupon' | 'membership' | 'pay' | 'installment')\n if (value === 'installment') {\n setIsInstallmentMounted(true)\n } else {\n setIsInstallmentMounted(false)\n }\n }}\n value={productBenefitsTabsValue}\n >\n <div className=\"absolute right-0 top-0 z-[1] h-[40px] w-[25px] rounded-xl bg-gradient-to-r from-transparent to-[#EAEAEC]\"></div>\n <ProductBenefitsTabs.List ref={scrollContainerRef}>\n {benefitTabs?.map((item: any) => (\n <ProductBenefitsTabs.Trigger\n key={item?.value}\n className={cn(productBenefitsTabsValue === item.value && 'text-[#080A0F]')}\n value={item.value}\n onClick={e => handleProductBenefitsTabListClick(e, item?.value)}\n >\n {item.label}\n </ProductBenefitsTabs.Trigger>\n ))}\n </ProductBenefitsTabs.List>\n {/* TODO: @seasail \u7528tailwind \u539F\u5B50\u7C7B\u6216\u8005\u884C\u5185\u6837\u5F0F(Inline Style)\u4EE3\u66FF jsx global */}\n <style global jsx>\n {`\n .benefits-tabs-content::-webkit-scrollbar {\n width: 4px; /* \u6EDA\u52A8\u6761\u5BBD\u5EA6 */\n height: 64px; /* \u6A2A\u5411\u6EDA\u52A8\u6761\u9AD8\u5EA6 */\n }\n\n .benefits-tabs-content::-webkit-scrollbar-track {\n background: transparent; /* \u6EDA\u52A8\u6761\u8F68\u9053\u80CC\u666F */\n }\n\n .benefits-tabs-content::-webkit-scrollbar-thumb {\n background-color: #d1d1d1; /* \u6EDA\u52A8\u6761\u989C\u8272 */\n border-radius: 9999px; /* \u5706\u89D2 */\n }\n\n .benefits-tabs-content::-webkit-scrollbar-thumb:hover {\n background-color: rgba(100, 100, 100, 0.6);\n }\n `}\n </style>\n {/* \u4F7F\u7528\u5185\u7F6E\u7684 CouponContent \u5B50\u7EC4\u4EF6 */}\n {coupons?.length ? (\n <ProductBenefitsTabs.Content\n value=\"coupon\"\n className=\"benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto\"\n >\n <div className=\"lg-desktop:p-4 p-3\">\n <CouponContent\n coupons={coupons as NonNullable<CouponContentProps['coupons']>}\n textConfig={mergedTextConfig}\n benefitPayloadData={benefitPayloadData}\n />\n </div>\n </ProductBenefitsTabs.Content>\n ) : null}\n <ProductBenefitsTabs.Content\n value=\"membership\"\n className={cn('benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px]', {\n 'overflow-y-auto': profile?.email,\n })}\n >\n <div className=\"lg-desktop:p-4 p-3\">\n <div\n className={cn('rounded-lg', {\n 'benefits-tabs-content lg-desktop:h-[calc(240px-100px)] laptop-md:h-[calc(196px-80px)] laptop:h-[calc(220px-72px)] h-[calc(180px-73px)] overflow-y-auto':\n !profile?.email,\n })}\n >\n {!profile?.email && (\n <h3 className=\"laptop-md:mb-2 mb-1 text-left text-lg font-bold !leading-[1.3]\">\n {benefitPayloadData?.membershipBenefitData?.memberBenefitsNotLoginText}\n </h3>\n )}\n <ul\n className={`laptop-md:[&_li]:py-4 list-none \n [&_li:first-child]:rounded-t-lg [&_li:last-child]:rounded-b-lg [&_li:last-child]:last:border-b-0 [&_li]:flex\n [&_li]:items-center [&_li]:gap-2 [&_li]:border-b [&_li]:border-b-[#E4E5E6] [&_li]:bg-white [&_li]:px-4 [&_li]:py-[10px]\n [&_li]:text-left`}\n >\n {/* \u79EF\u5206\u62B5\u73B0 */}\n {creditsRedemption.enable ? (\n <li>\n <svg\n className=\"laptop-md:size-6 size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"#1D1D1F\"\n />\n </svg>\n <Text as=\"p\" className=\"x:text-[14px] text-left text-[16px] font-bold\">\n {!activated && Boolean(profile?.email) ? (\n <>\n {benefitPayloadData?.membershipBenefitData?.creditsAfterActivation}\n <span role=\"button\" tabIndex={0} onClick={() => handleActivate()} className=\"underline\">\n {benefitPayloadData?.membershipBenefitData?.active}\n </span>\n </>\n ) : (\n creditsRedemption?.config?.label?.replace(\n '{{amount}}',\n formatPrice({\n amount: creditsRedemption?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n })\n )\n )}\n </Text>\n </li>\n ) : null}\n {memberDiscount.enable && (\n <li className=\"justify-between\">\n <div className=\"flex gap-2\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"laptop-md:size-6 size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n 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\"\n fill=\"#1D1D1F\"\n />\n </svg>\n <Text as=\"p\" className=\"x:text-[14px] text-left text-[16px] font-bold\">\n {replaceTemplate(benefitPayloadData?.membershipBenefitData?.forNewMember, {\n amount: formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n }),\n })}\n </Text>\n </div>\n {Boolean(profile?.email) && <CheckedIcon />}\n </li>\n )}\n {benefitPayloadData?.membershipBenefitData?.equities?.map((item: any, index: number) =>\n item.modalText ? (\n <li key={index} className=\"justify-between gap-2\">\n <button\n onClick={() => openModal?.({ title: item.label, content: item.modalText })}\n key={index}\n className=\"flex justify-between\"\n >\n <Picture source={item.icon} alt={item.text} className=\"laptop-md:size-6 size-4 shrink-0\" />\n <Text className=\"x:text-[14px] text-wrap text-left text-[16px] font-bold\">{item.text}</Text>\n </button>\n {Boolean(profile?.email) && <CheckedIcon />}\n </li>\n ) : (\n <li key={index} className=\"justify-between\">\n <div className=\"flex items-center gap-2\">\n <Picture source={item.icon} alt={item.text} className=\"laptop-md:size-6 size-4 shrink-0\" />\n <Text as=\"p\" className=\"x:text-[14px] text-wrap text-left text-[16px] font-bold\">\n {item.label}\n </Text>\n </div>\n {Boolean(profile?.email) && <CheckedIcon />}\n </li>\n )\n )}\n {/* <li className=\"justify-between\">\n <div className=\"flex items-center gap-2\">\n <Picture\n source={benefitPayloadData?.membershipBenefitData.memberPriceIcon}\n alt={benefitPayloadData?.membershipBenefitData.memberPriceDesc}\n className=\" size-6 shrink-0\"\n />\n <Text as=\"p\" className=\"x:text-[14px] text-wrap text-left text-[16px] font-bold\">\n {benefitPayloadData?.membershipBenefitData.memberPriceDesc}\n </Text>\n </div>\n {Boolean(profile?.email) && <CheckedIcon />}\n </li> */}\n {/* \u9AD8\u6807\u7269\u6D41 */}\n {paidShipping.enable ? (\n <li className=\"justify-between\">\n <div className=\"flex gap-2\">\n <svg\n className=\"laptop-md:size-6 size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"#1D1D1F\"\n />\n </svg>\n <Text as=\"p\" className=\"x:text-[14px] text-left text-[16px] font-bold\">\n {benefitPayloadData?.membershipBenefitData?.expressShipping}\n </Text>\n </div>\n {Boolean(profile?.email) && <CheckedIcon />}\n </li>\n ) : null}\n </ul>\n </div>\n {!profile?.email && (\n <div className=\"laptop-md:pt-4 pt-2\">\n <Button variant=\"primary\" className=\"w-full\" onClick={() => openSignUpPopup?.()}>\n {copyWriting?.signUp}\n </Button>\n </div>\n )}\n </div>\n </ProductBenefitsTabs.Content>\n <ProductBenefitsTabs.Content\n value=\"pay\"\n className=\"benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto \"\n >\n <div className=\"lg-desktop:p-4 p-3\">\n <Heading size={2} className=\"mb-2 text-left text-lg font-bold\">\n {benefitPayloadData?.payBenefitData?.payMethod}\n </Heading>\n <div className=\"lg-desktop:p-4 flex items-center justify-between gap-2 rounded-lg bg-white p-3\">\n <div className=\"flex items-center gap-2\">\n <Picture\n source={benefitPayloadData?.payBenefitData?.icon}\n className=\"laptop-md:size-[70px] laptop-md:h-[34px] size-[40px] h-[20px] shrink-0\"\n />\n <Text\n as=\"p\"\n className=\"x:text-[14px] text-left text-[16px] font-bold\"\n html={benefitPayloadData?.payBenefitData?.withCheckout}\n />\n </div>\n <button\n className=\"hover:text-brand-0 laptop-md:text-[16px] whitespace-nowrap text-sm font-bold underline\"\n onClick={() => setIsFlexModalOpen(true)}\n >\n {benefitPayloadData?.payBenefitData?.learnMore}\n </button>\n </div>\n </div>\n\n <ModalContainer showModal={isFlexModalOpen} closeModal={() => setIsFlexModalOpen(false)}>\n <Picture source={benefitPayloadData?.payBenefitData?.payImage}></Picture>\n </ModalContainer>\n </ProductBenefitsTabs.Content>\n {/* \u81EA\u5B9A\u4E49\u5185\u5BB9 */}\n <ProductBenefitsTabs.Content\n value=\"installment\"\n forceMount={true}\n className={cn(\n 'benefits-tabs-content lg-desktop:h-[240px] laptop-md:h-[196px] laptop:h-[220px] h-[180px] overflow-y-auto ',\n isInstallmentMounted ? 'block' : 'hidden'\n )}\n >\n <div className=\"lg-desktop:p-4 p-3\">\n <Heading size={2} className=\"mb-2 text-left text-lg font-bold\">\n {benefitPayloadData?.installmentBenefitData?.flexibleInstallment}\n </Heading>\n <div className=\"lg-desktop:p-4 overflow-hidden rounded-lg bg-white p-3\">{renderInstallments}</div>\n </div>\n </ProductBenefitsTabs.Content>\n </ProductBenefitsTabs>\n )\n}\n\nconst CheckedIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" {...props}>\n <path\n d=\"M4 9.19472L8.51935 13.667L16.2668 6.00024\"\n stroke=\"#2BBC4F\"\n strokeWidth=\"1.67\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default withLayout(BenefitsTab)\n"],
5
+ "mappings": "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",
6
+ "names": ["BenefitsTab_exports", "__export", "BenefitsTab_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_ProductBenefitsTabs", "import_BizProductProvider", "import_useComponentData", "import_useBenefits", "import_utils", "import_textFormat", "import_react", "import_AiuiProvider", "import_useCountDown", "import_useCopy", "import_helpers", "import_ModalContainer", "import_Styles", "defaultTextConfig", "CouponItem", "item", "textConfig", "benefitPayloadData", "trackingData", "isCopied", "copyToClipboard", "useCopy", "checked", "setChecked", "couponCopy", "days", "hours", "minutes", "seconds", "useCountDown", "openModal", "event", "CouponContent", "coupons", "className", "index", "BenefitsTab", "profile", "variant", "renderInstallments", "onUseCouponChange", "onUseMemberDiscountChange", "discount", "savingDetail", "openSignInPopup", "openAuthCodePopup", "openSignUpPopup", "creditsRedemptionData", "usedPoints", "availablePoints", "isInstallmentMounted", "setIsInstallmentMounted", "productBenefitsData", "isFlexModalOpen", "setIsFlexModalOpen", "benefits", "locale", "copyWriting", "scrollContainerRef", "mergedTextConfig", "activated", "memberDiscount", "commonCoupon", "creditsRedemption", "freeGift", "bundle", "paidShipping", "fullGift", "levelDiscount", "couponBenefitData", "membershipBenefitData", "installmentBenefitData", "payBenefitData", "value", "couponSaving", "memberSaving", "setProductBenefitsTabsValue", "productBenefitsTabsValue", "handleActivate", "handleProductBenefitsTabListClick", "el", "container", "button", "scrollLeft", "benefitTabs", "ProductBenefitsTabs", "e", "CheckedIcon", "ModalContainer", "props"]
7
7
  }