@anker-in/headless-ui 1.0.26-alpha.1762243303200 → 1.0.26-alpha.1762264700743

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 (262) hide show
  1. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +1 -1
  2. package/dist/cjs/biz-components/AiuiProvider/index.js.map +1 -1
  3. package/dist/cjs/biz-components/AplusDesc/index.d.ts +22 -0
  4. package/dist/cjs/biz-components/AplusDesc/index.js +2 -0
  5. package/dist/cjs/biz-components/AplusDesc/index.js.map +7 -0
  6. package/dist/cjs/biz-components/CollectionShelves/CollectionShelvesItem.d.ts +4 -0
  7. package/dist/cjs/biz-components/CollectionShelves/CollectionShelvesItem.js +2 -0
  8. package/dist/cjs/biz-components/CollectionShelves/CollectionShelvesItem.js.map +7 -0
  9. package/dist/cjs/biz-components/CollectionShelves/index.d.ts +6 -0
  10. package/dist/cjs/biz-components/CollectionShelves/index.js +2 -0
  11. package/dist/cjs/biz-components/CollectionShelves/index.js.map +7 -0
  12. package/dist/cjs/biz-components/CollectionsBanner/index.d.ts +7 -0
  13. package/dist/cjs/biz-components/CollectionsBanner/index.js +2 -0
  14. package/dist/cjs/biz-components/CollectionsBanner/index.js.map +7 -0
  15. package/dist/cjs/biz-components/CollectionsBanner/types.d.ts +43 -0
  16. package/dist/cjs/biz-components/CollectionsBanner/types.js +2 -0
  17. package/dist/cjs/biz-components/CollectionsBanner/types.js.map +7 -0
  18. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrap.d.ts +18 -0
  19. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrap.js +2 -0
  20. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrap.js.map +7 -0
  21. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrapItem.d.ts +10 -0
  22. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrapItem.js +2 -0
  23. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrapItem.js.map +7 -0
  24. package/dist/cjs/biz-components/CollectionsFilters/FilterHeader.d.ts +13 -0
  25. package/dist/cjs/biz-components/CollectionsFilters/FilterHeader.js +2 -0
  26. package/dist/cjs/biz-components/CollectionsFilters/FilterHeader.js.map +7 -0
  27. package/dist/cjs/biz-components/CollectionsFilters/FilterList.d.ts +14 -0
  28. package/dist/cjs/biz-components/CollectionsFilters/FilterList.js +2 -0
  29. package/dist/cjs/biz-components/CollectionsFilters/FilterList.js.map +7 -0
  30. package/dist/cjs/biz-components/CollectionsFilters/component/AnimatedUL.d.ts +5 -0
  31. package/dist/cjs/biz-components/CollectionsFilters/component/AnimatedUL.js +2 -0
  32. package/dist/cjs/biz-components/CollectionsFilters/component/AnimatedUL.js.map +7 -0
  33. package/dist/cjs/biz-components/CollectionsFilters/component/TabFilter.d.ts +12 -0
  34. package/dist/cjs/biz-components/CollectionsFilters/component/TabFilter.js +2 -0
  35. package/dist/cjs/biz-components/CollectionsFilters/component/TabFilter.js.map +7 -0
  36. package/dist/cjs/biz-components/CollectionsFilters/component/filtersFun.d.ts +12 -0
  37. package/dist/cjs/biz-components/CollectionsFilters/component/filtersFun.js +2 -0
  38. package/dist/cjs/biz-components/CollectionsFilters/component/filtersFun.js.map +7 -0
  39. package/dist/cjs/biz-components/CollectionsFilters/component/helper.d.ts +81 -0
  40. package/dist/cjs/biz-components/CollectionsFilters/component/helper.js +2 -0
  41. package/dist/cjs/biz-components/CollectionsFilters/component/helper.js.map +7 -0
  42. package/dist/cjs/biz-components/CollectionsFilters/component/price.d.ts +25 -0
  43. package/dist/cjs/biz-components/CollectionsFilters/component/price.js +2 -0
  44. package/dist/cjs/biz-components/CollectionsFilters/component/price.js.map +7 -0
  45. package/dist/cjs/biz-components/CollectionsFilters/component/priceProps.d.ts +215 -0
  46. package/dist/cjs/biz-components/CollectionsFilters/component/priceProps.js +2 -0
  47. package/dist/cjs/biz-components/CollectionsFilters/component/priceProps.js.map +7 -0
  48. package/dist/cjs/biz-components/CollectionsFilters/index.d.ts +23 -0
  49. package/dist/cjs/biz-components/CollectionsFilters/index.js +2 -0
  50. package/dist/cjs/biz-components/CollectionsFilters/index.js.map +7 -0
  51. package/dist/cjs/biz-components/DownLoad/index.d.ts +20 -0
  52. package/dist/cjs/biz-components/DownLoad/index.js +2 -0
  53. package/dist/cjs/biz-components/DownLoad/index.js.map +7 -0
  54. package/dist/cjs/biz-components/Faq/Faq.js +1 -1
  55. package/dist/cjs/biz-components/Faq/Faq.js.map +2 -2
  56. package/dist/cjs/biz-components/Features/index.d.ts +26 -0
  57. package/dist/cjs/biz-components/Features/index.js +2 -0
  58. package/dist/cjs/biz-components/Features/index.js.map +7 -0
  59. package/dist/cjs/biz-components/FootCharger/index.d.ts +12 -0
  60. package/dist/cjs/biz-components/FootCharger/index.js +2 -0
  61. package/dist/cjs/biz-components/FootCharger/index.js.map +7 -0
  62. package/dist/cjs/biz-components/GiftBox/index.d.ts +17 -0
  63. package/dist/cjs/biz-components/GiftBox/index.js +2 -0
  64. package/dist/cjs/biz-components/GiftBox/index.js.map +7 -0
  65. package/dist/cjs/biz-components/Graphic/index.js +1 -1
  66. package/dist/cjs/biz-components/Graphic/index.js.map +2 -2
  67. package/dist/cjs/biz-components/GraphicMore/index.d.ts +22 -0
  68. package/dist/cjs/biz-components/GraphicMore/index.js +2 -0
  69. package/dist/cjs/biz-components/GraphicMore/index.js.map +7 -0
  70. package/dist/cjs/biz-components/Listing/BizProductProvider.d.ts +19 -11
  71. package/dist/cjs/biz-components/Listing/BizProductProvider.js +1 -1
  72. package/dist/cjs/biz-components/Listing/BizProductProvider.js.map +3 -3
  73. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.js +1 -1
  74. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.js.map +2 -2
  75. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +1 -0
  76. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +8 -8
  77. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +2 -2
  78. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +1 -1
  79. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +2 -2
  80. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +1 -1
  81. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +2 -2
  82. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +1 -1
  83. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +2 -2
  84. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +1 -1
  85. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +2 -2
  86. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +1 -1
  87. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +3 -3
  88. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js +1 -1
  89. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +2 -2
  90. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js +1 -1
  91. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +3 -3
  92. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +1 -1
  93. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +3 -3
  94. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  95. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +2 -2
  96. package/dist/cjs/biz-components/Paginator/index.d.ts +7 -0
  97. package/dist/cjs/biz-components/Paginator/index.js +7 -0
  98. package/dist/cjs/biz-components/Paginator/index.js.map +7 -0
  99. package/dist/cjs/biz-components/SelectStore/index.d.ts +20 -0
  100. package/dist/cjs/biz-components/SelectStore/index.js +2 -0
  101. package/dist/cjs/biz-components/SelectStore/index.js.map +7 -0
  102. package/dist/cjs/biz-components/ShelfDisplay/index.js +1 -1
  103. package/dist/cjs/biz-components/ShelfDisplay/index.js.map +3 -3
  104. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.d.ts +11 -2
  105. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  106. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  107. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +4 -4
  108. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  109. package/dist/cjs/biz-components/TextMarquee/index.d.ts +9 -0
  110. package/dist/cjs/biz-components/TextMarquee/index.js +2 -0
  111. package/dist/cjs/biz-components/TextMarquee/index.js.map +7 -0
  112. package/dist/cjs/biz-components/Title/index.js +1 -1
  113. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  114. package/dist/cjs/biz-components/Title/types.d.ts +1 -0
  115. package/dist/cjs/biz-components/Title/types.js +1 -1
  116. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  117. package/dist/cjs/biz-components/index.d.ts +16 -0
  118. package/dist/cjs/biz-components/index.js +1 -1
  119. package/dist/cjs/biz-components/index.js.map +3 -3
  120. package/dist/cjs/components/breadcrumb.d.ts +12 -0
  121. package/dist/cjs/components/breadcrumb.js +2 -0
  122. package/dist/cjs/components/breadcrumb.js.map +7 -0
  123. package/dist/cjs/components/index.d.ts +1 -0
  124. package/dist/cjs/components/index.js +1 -1
  125. package/dist/cjs/components/index.js.map +3 -3
  126. package/dist/cjs/helpers/utils.d.ts +1 -0
  127. package/dist/cjs/helpers/utils.js +1 -1
  128. package/dist/cjs/helpers/utils.js.map +3 -3
  129. package/dist/cjs/hooks/useRollout.d.ts +1 -0
  130. package/dist/cjs/hooks/useRollout.js +2 -0
  131. package/dist/cjs/hooks/useRollout.js.map +7 -0
  132. package/dist/esm/biz-components/AiuiProvider/index.d.ts +1 -1
  133. package/dist/esm/biz-components/AiuiProvider/index.js.map +1 -1
  134. package/dist/esm/biz-components/AplusDesc/index.d.ts +22 -0
  135. package/dist/esm/biz-components/AplusDesc/index.js +2 -0
  136. package/dist/esm/biz-components/AplusDesc/index.js.map +7 -0
  137. package/dist/esm/biz-components/CollectionShelves/CollectionShelvesItem.d.ts +4 -0
  138. package/dist/esm/biz-components/CollectionShelves/CollectionShelvesItem.js +2 -0
  139. package/dist/esm/biz-components/CollectionShelves/CollectionShelvesItem.js.map +7 -0
  140. package/dist/esm/biz-components/CollectionShelves/index.d.ts +6 -0
  141. package/dist/esm/biz-components/CollectionShelves/index.js +2 -0
  142. package/dist/esm/biz-components/CollectionShelves/index.js.map +7 -0
  143. package/dist/esm/biz-components/CollectionsBanner/index.d.ts +7 -0
  144. package/dist/esm/biz-components/CollectionsBanner/index.js +2 -0
  145. package/dist/esm/biz-components/CollectionsBanner/index.js.map +7 -0
  146. package/dist/esm/biz-components/CollectionsBanner/types.d.ts +43 -0
  147. package/dist/esm/biz-components/CollectionsBanner/types.js +1 -0
  148. package/dist/esm/biz-components/CollectionsBanner/types.js.map +7 -0
  149. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrap.d.ts +18 -0
  150. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrap.js +2 -0
  151. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrap.js.map +7 -0
  152. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrapItem.d.ts +10 -0
  153. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrapItem.js +2 -0
  154. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrapItem.js.map +7 -0
  155. package/dist/esm/biz-components/CollectionsFilters/FilterHeader.d.ts +13 -0
  156. package/dist/esm/biz-components/CollectionsFilters/FilterHeader.js +2 -0
  157. package/dist/esm/biz-components/CollectionsFilters/FilterHeader.js.map +7 -0
  158. package/dist/esm/biz-components/CollectionsFilters/FilterList.d.ts +14 -0
  159. package/dist/esm/biz-components/CollectionsFilters/FilterList.js +2 -0
  160. package/dist/esm/biz-components/CollectionsFilters/FilterList.js.map +7 -0
  161. package/dist/esm/biz-components/CollectionsFilters/component/AnimatedUL.d.ts +5 -0
  162. package/dist/esm/biz-components/CollectionsFilters/component/AnimatedUL.js +2 -0
  163. package/dist/esm/biz-components/CollectionsFilters/component/AnimatedUL.js.map +7 -0
  164. package/dist/esm/biz-components/CollectionsFilters/component/TabFilter.d.ts +12 -0
  165. package/dist/esm/biz-components/CollectionsFilters/component/TabFilter.js +2 -0
  166. package/dist/esm/biz-components/CollectionsFilters/component/TabFilter.js.map +7 -0
  167. package/dist/esm/biz-components/CollectionsFilters/component/filtersFun.d.ts +12 -0
  168. package/dist/esm/biz-components/CollectionsFilters/component/filtersFun.js +2 -0
  169. package/dist/esm/biz-components/CollectionsFilters/component/filtersFun.js.map +7 -0
  170. package/dist/esm/biz-components/CollectionsFilters/component/helper.d.ts +81 -0
  171. package/dist/esm/biz-components/CollectionsFilters/component/helper.js +2 -0
  172. package/dist/esm/biz-components/CollectionsFilters/component/helper.js.map +7 -0
  173. package/dist/esm/biz-components/CollectionsFilters/component/price.d.ts +25 -0
  174. package/dist/esm/biz-components/CollectionsFilters/component/price.js +2 -0
  175. package/dist/esm/biz-components/CollectionsFilters/component/price.js.map +7 -0
  176. package/dist/esm/biz-components/CollectionsFilters/component/priceProps.d.ts +215 -0
  177. package/dist/esm/biz-components/CollectionsFilters/component/priceProps.js +2 -0
  178. package/dist/esm/biz-components/CollectionsFilters/component/priceProps.js.map +7 -0
  179. package/dist/esm/biz-components/CollectionsFilters/index.d.ts +23 -0
  180. package/dist/esm/biz-components/CollectionsFilters/index.js +2 -0
  181. package/dist/esm/biz-components/CollectionsFilters/index.js.map +7 -0
  182. package/dist/esm/biz-components/DownLoad/index.d.ts +20 -0
  183. package/dist/esm/biz-components/DownLoad/index.js +2 -0
  184. package/dist/esm/biz-components/DownLoad/index.js.map +7 -0
  185. package/dist/esm/biz-components/Faq/Faq.js +1 -1
  186. package/dist/esm/biz-components/Faq/Faq.js.map +3 -3
  187. package/dist/esm/biz-components/Features/index.d.ts +26 -0
  188. package/dist/esm/biz-components/Features/index.js +2 -0
  189. package/dist/esm/biz-components/Features/index.js.map +7 -0
  190. package/dist/esm/biz-components/FootCharger/index.d.ts +12 -0
  191. package/dist/esm/biz-components/FootCharger/index.js +2 -0
  192. package/dist/esm/biz-components/FootCharger/index.js.map +7 -0
  193. package/dist/esm/biz-components/GiftBox/index.d.ts +17 -0
  194. package/dist/esm/biz-components/GiftBox/index.js +2 -0
  195. package/dist/esm/biz-components/GiftBox/index.js.map +7 -0
  196. package/dist/esm/biz-components/Graphic/index.js +1 -1
  197. package/dist/esm/biz-components/Graphic/index.js.map +2 -2
  198. package/dist/esm/biz-components/GraphicMore/index.d.ts +22 -0
  199. package/dist/esm/biz-components/GraphicMore/index.js +2 -0
  200. package/dist/esm/biz-components/GraphicMore/index.js.map +7 -0
  201. package/dist/esm/biz-components/Listing/BizProductProvider.d.ts +19 -11
  202. package/dist/esm/biz-components/Listing/BizProductProvider.js +1 -1
  203. package/dist/esm/biz-components/Listing/BizProductProvider.js.map +3 -3
  204. package/dist/esm/biz-components/Listing/components/PaidShipping/index.js +1 -1
  205. package/dist/esm/biz-components/Listing/components/PaidShipping/index.js.map +2 -2
  206. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +1 -0
  207. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +8 -8
  208. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +2 -2
  209. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +1 -1
  210. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +2 -2
  211. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +1 -1
  212. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +2 -2
  213. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +1 -1
  214. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +2 -2
  215. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +1 -1
  216. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +2 -2
  217. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +1 -1
  218. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +3 -3
  219. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js +1 -1
  220. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +2 -2
  221. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js +1 -1
  222. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +3 -3
  223. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +1 -1
  224. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +3 -3
  225. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  226. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +2 -2
  227. package/dist/esm/biz-components/Paginator/index.d.ts +7 -0
  228. package/dist/esm/biz-components/Paginator/index.js +7 -0
  229. package/dist/esm/biz-components/Paginator/index.js.map +7 -0
  230. package/dist/esm/biz-components/SelectStore/index.d.ts +20 -0
  231. package/dist/esm/biz-components/SelectStore/index.js +2 -0
  232. package/dist/esm/biz-components/SelectStore/index.js.map +7 -0
  233. package/dist/esm/biz-components/ShelfDisplay/index.js +1 -1
  234. package/dist/esm/biz-components/ShelfDisplay/index.js.map +3 -3
  235. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.d.ts +11 -2
  236. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  237. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  238. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +9 -9
  239. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  240. package/dist/esm/biz-components/TextMarquee/index.d.ts +9 -0
  241. package/dist/esm/biz-components/TextMarquee/index.js +2 -0
  242. package/dist/esm/biz-components/TextMarquee/index.js.map +7 -0
  243. package/dist/esm/biz-components/Title/index.js +1 -1
  244. package/dist/esm/biz-components/Title/index.js.map +3 -3
  245. package/dist/esm/biz-components/Title/types.d.ts +1 -0
  246. package/dist/esm/biz-components/index.d.ts +16 -0
  247. package/dist/esm/biz-components/index.js +1 -1
  248. package/dist/esm/biz-components/index.js.map +2 -2
  249. package/dist/esm/components/breadcrumb.d.ts +12 -0
  250. package/dist/esm/components/breadcrumb.js +2 -0
  251. package/dist/esm/components/breadcrumb.js.map +7 -0
  252. package/dist/esm/components/index.d.ts +1 -0
  253. package/dist/esm/components/index.js +1 -1
  254. package/dist/esm/components/index.js.map +2 -2
  255. package/dist/esm/helpers/utils.d.ts +1 -0
  256. package/dist/esm/helpers/utils.js +1 -1
  257. package/dist/esm/helpers/utils.js.map +3 -3
  258. package/dist/esm/hooks/useRollout.d.ts +1 -0
  259. package/dist/esm/hooks/useRollout.js +2 -0
  260. package/dist/esm/hooks/useRollout.js.map +7 -0
  261. package/package.json +1 -1
  262. package/style.css +23 -0
@@ -58,6 +58,20 @@ export type ModalData = {
58
58
  content?: string;
59
59
  domContent?: React.ReactNode;
60
60
  };
61
+ export type JoinedRecommendBuyProducts = {
62
+ bundle?: {
63
+ value?: BundleListItem;
64
+ canOperate?: boolean;
65
+ };
66
+ gift?: {
67
+ value?: ProductVariant;
68
+ canOperate?: boolean;
69
+ };
70
+ exchange?: {
71
+ value?: ProductVariant;
72
+ canOperate?: boolean;
73
+ };
74
+ };
61
75
  export interface ProductContextType {
62
76
  isLogin?: boolean;
63
77
  isMobile?: boolean;
@@ -83,16 +97,8 @@ export interface ProductContextType {
83
97
  setCheckedExchangePurchase?: Dispatch<SetStateAction<ProductVariant | undefined>>;
84
98
  checkedBundle?: BundleListItem;
85
99
  setCheckedBundle: Dispatch<SetStateAction<BundleListItem | undefined>>;
86
- joinedRecommendBuyProducts: {
87
- bundle?: BundleListItem;
88
- gift?: ProductVariant;
89
- exchange?: ProductVariant;
90
- };
91
- setJoinedRecommendBuyProducts?: Dispatch<SetStateAction<{
92
- bundle?: BundleListItem;
93
- gift?: ProductVariant;
94
- exchange?: ProductVariant;
95
- }>>;
100
+ joinedRecommendBuyProducts: JoinedRecommendBuyProducts;
101
+ setJoinedRecommendBuyProducts?: Dispatch<SetStateAction<JoinedRecommendBuyProducts>>;
96
102
  checkedCareBundle?: ProductVariant;
97
103
  setCheckedCareBundle?: Dispatch<SetStateAction<ProductVariant | undefined>>;
98
104
  bundle?: Bundle;
@@ -111,8 +117,10 @@ export interface ProductContextType {
111
117
  onUseCouponChange?: (couponSaving: number) => void;
112
118
  onUseMemberDiscountChange?: (memberSaving: number) => void;
113
119
  discount?: DiscountData;
120
+ buyNowLoading?: boolean;
121
+ addToCartLoading?: boolean;
114
122
  }
115
123
  export declare const BizProductContext: React.Context<ProductContextType>;
116
124
  export declare const useBizProductContext: () => ProductContextType;
117
- declare const ProductProvider: ({ product, isLogin, profile, isMobile, isDesktop, children, renderRating, freeGift, exchangePurchase, bundle, checkedBundle, checkedGift, setCheckedBundle, setCheckedGift, checkedExchangePurchase, setCheckedExchangePurchase, variant, selectedOptions, setSelectedOptions, compareData, coupon, finalPrice, comparePrice, totalSavings, savingDetail, setSavingDetail, selectedVariants, onAddToCart, onBuyNow, creditsRedemptionAmount, memberFunctionResult, openModal, openSignInPopup, openAuthCodePopup, openSignUpPopup, renderAffirm, renderKlarna, renderPaypal, onUseCouponChange, onUseMemberDiscountChange, discount, }: PropsWithChildren<Omit<ProductContextType, "joinedRecommendBuyProducts" | "setJoinedRecommendBuyProducts">>) => import("react/jsx-runtime").JSX.Element;
125
+ declare const ProductProvider: ({ product, isLogin, profile, isMobile, isDesktop, children, renderRating, freeGift, exchangePurchase, bundle, checkedBundle, checkedGift, setCheckedBundle, setCheckedGift, checkedExchangePurchase, setCheckedExchangePurchase, variant, selectedOptions, setSelectedOptions, compareData, coupon, finalPrice, comparePrice, totalSavings, savingDetail, setSavingDetail, selectedVariants, onAddToCart, onBuyNow, creditsRedemptionAmount, memberFunctionResult, openModal, openSignInPopup, openAuthCodePopup, openSignUpPopup, renderAffirm, renderKlarna, renderPaypal, onUseCouponChange, onUseMemberDiscountChange, discount, buyNowLoading, addToCartLoading, }: PropsWithChildren<Omit<ProductContextType, "joinedRecommendBuyProducts" | "setJoinedRecommendBuyProducts">>) => import("react/jsx-runtime").JSX.Element;
118
126
  export default ProductProvider;
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var X=(t,e)=>{for(var r in e)c(t,r,{get:e[r],enumerable:!0})},Y=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of H(e))!Q.call(t,n)&&n!==r&&c(t,n,{get:()=>e[n],enumerable:!(i=q(e,n))||i.enumerable});return t};var Z=t=>Y(c({},"__esModule",{value:!0}),t);var ne={};X(ne,{BizProductContext:()=>a,default:()=>te,useBizProductContext:()=>$});module.exports=Z(ne);var d=require("react/jsx-runtime"),o=require("react");const a=(0,o.createContext)({}),$=()=>{if(!(0,o.useContext)(a))throw new Error("useProductContext must be used in <ProductProvider>");return(0,o.useContext)(a)},ee=({product:t,isLogin:e,profile:r,isMobile:i,isDesktop:n,children:u,renderRating:s,freeGift:p,exchangePurchase:m,bundle:l,checkedBundle:P,checkedGift:b,setCheckedBundle:g,setCheckedGift:h,checkedExchangePurchase:C,setCheckedExchangePurchase:f,variant:v,selectedOptions:y,setSelectedOptions:S,compareData:x,coupon:D,finalPrice:B,comparePrice:R,totalSavings:V,savingDetail:_,setSavingDetail:k,selectedVariants:A,onAddToCart:M,onBuyNow:F,creditsRedemptionAmount:w,memberFunctionResult:G,openModal:I,openSignInPopup:L,openAuthCodePopup:N,openSignUpPopup:T,renderAffirm:O,renderKlarna:U,renderPaypal:W,onUseCouponChange:j,onUseMemberDiscountChange:z,discount:E})=>{const[J,K]=(0,o.useState)({bundle:void 0,gift:void 0});return(0,d.jsx)(a.Provider,{value:{product:t,variant:v,isMobile:i,isDesktop:n,isLogin:e,profile:r,coupon:D,renderRating:s,finalPrice:B,comparePrice:R,savingDetail:_,setSavingDetail:k,totalSavings:V,selectedOptions:y,setSelectedOptions:S,freeGift:p,exchangePurchase:m,checkedGift:b,setCheckedGift:h,checkedBundle:P,setCheckedBundle:g,bundle:l,compareData:x,selectedVariants:A,onAddToCart:M,onBuyNow:F,joinedRecommendBuyProducts:J,setJoinedRecommendBuyProducts:K,checkedExchangePurchase:C,setCheckedExchangePurchase:f,creditsRedemptionAmount:w,memberFunctionResult:G,openModal:I,openSignInPopup:L,openAuthCodePopup:N,openSignUpPopup:T,renderAffirm:O,renderKlarna:U,renderPaypal:W,onUseCouponChange:j,onUseMemberDiscountChange:z,discount:E},children:u})};var te=ee;
1
+ "use strict";var c=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var Z=(t,e)=>{for(var r in e)c(t,r,{get:e[r],enumerable:!0})},$=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of X(e))!Y.call(t,n)&&n!==r&&c(t,n,{get:()=>e[n],enumerable:!(a=Q(e,n))||a.enumerable});return t};var ee=t=>$(c({},"__esModule",{value:!0}),t);var re={};Z(re,{BizProductContext:()=>i,default:()=>oe,useBizProductContext:()=>te});module.exports=ee(re);var d=require("react/jsx-runtime"),o=require("react");const i=(0,o.createContext)({}),te=()=>{if(!(0,o.useContext)(i))throw new Error("useProductContext must be used in <ProductProvider>");return(0,o.useContext)(i)},ne=({product:t,isLogin:e,profile:r,isMobile:a,isDesktop:n,children:u,renderRating:s,freeGift:p,exchangePurchase:m,bundle:l,checkedBundle:P,checkedGift:b,setCheckedBundle:g,setCheckedGift:h,checkedExchangePurchase:v,setCheckedExchangePurchase:y,variant:C,selectedOptions:f,setSelectedOptions:S,compareData:x,coupon:R,finalPrice:B,comparePrice:D,totalSavings:_,savingDetail:k,setSavingDetail:A,selectedVariants:V,onAddToCart:O,onBuyNow:M,creditsRedemptionAmount:w,memberFunctionResult:F,openModal:N,openSignInPopup:T,openAuthCodePopup:G,openSignUpPopup:J,renderAffirm:L,renderKlarna:I,renderPaypal:U,onUseCouponChange:W,onUseMemberDiscountChange:j,discount:z,buyNowLoading:E,addToCartLoading:K})=>{const[q,H]=(0,o.useState)({bundle:{value:void 0,canOperate:!0},gift:{value:void 0,canOperate:!0},exchange:{value:void 0,canOperate:!0}});return(0,d.jsx)(i.Provider,{value:{product:t,variant:C,isMobile:a,isDesktop:n,isLogin:e,profile:r,coupon:R,renderRating:s,finalPrice:B,comparePrice:D,savingDetail:k,setSavingDetail:A,totalSavings:_,selectedOptions:f,setSelectedOptions:S,freeGift:p,exchangePurchase:m,checkedGift:b,setCheckedGift:h,checkedBundle:P,setCheckedBundle:g,bundle:l,compareData:x,selectedVariants:V,onAddToCart:O,onBuyNow:M,joinedRecommendBuyProducts:q,setJoinedRecommendBuyProducts:H,checkedExchangePurchase:v,setCheckedExchangePurchase:y,creditsRedemptionAmount:w,memberFunctionResult:F,openModal:N,openSignInPopup:T,openAuthCodePopup:G,openSignUpPopup:J,renderAffirm:L,renderKlarna:I,renderPaypal:U,onUseCouponChange:W,onUseMemberDiscountChange:j,discount:z,buyNowLoading:E,addToCartLoading:K},children:u})};var oe=ne;
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} from 'react'\nimport type {\n Product,\n ProductPrice,\n ProductVariant,\n VariantCoupon,\n Options,\n FreeGift,\n BundleListItem,\n Bundle,\n} from './types/product'\nimport type { CompareData, DiscountData } from './types.js'\n\ntype Country = {\n id?: number\n name?: string\n code?: string\n}\n\nexport type UserProfile = {\n user_id: string\n email: string\n nick_name?: string\n full_name?: string\n first_name?: string\n last_name?: string\n dob?: string\n gender?: string\n phone_number?: string\n phone_account?: string\n country?: Country\n is_subscribe?: boolean\n avatar?: string\n can_change_password?: boolean\n invitation_code?: string\n phone_carrier?: string\n dob_programmed?: boolean\n activated?: boolean\n registed_at?: number\n activated_at?: number\n token?: string\n}\n\nexport type SavingDetail = { coupon: number; bundle: number; member: number; freeGift: number; compare: number; exchangePurchase: number }\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}\nexport interface ProductContextType {\n isLogin?: boolean\n isMobile?: boolean\n isDesktop?: boolean\n product: Product\n profile?: UserProfile\n variant: ProductVariant\n selectedVariants: Array<variantWithFinalPrice>\n renderRating?: React.ReactNode\n coupon?: VariantCoupon\n savingDetail: SavingDetail\n setSavingDetail: Dispatch<SetStateAction<SavingDetail>>\n finalPrice: number\n comparePrice: number\n totalSavings: number\n selectedOptions: Options\n setSelectedOptions: Dispatch<SetStateAction<Options>>\n freeGift?: FreeGift\n checkedGift?: ProductVariant\n setCheckedGift?: Dispatch<SetStateAction<ProductVariant | undefined>>\n exchangePurchase?: FreeGift\n checkedExchangePurchase?: ProductVariant\n setCheckedExchangePurchase?: Dispatch<SetStateAction<ProductVariant | undefined>>\n checkedBundle?: BundleListItem\n setCheckedBundle: Dispatch<SetStateAction<BundleListItem | undefined>>\n joinedRecommendBuyProducts: { bundle?: BundleListItem; gift?: ProductVariant; exchange?: ProductVariant }\n setJoinedRecommendBuyProducts?: Dispatch<SetStateAction<{ bundle?: BundleListItem; gift?: ProductVariant, exchange?: ProductVariant }>>\n checkedCareBundle?: ProductVariant\n setCheckedCareBundle?: Dispatch<SetStateAction<ProductVariant | undefined>>\n bundle?: Bundle\n compareData?: CompareData['data']\n onAddToCart?: () => void\n onBuyNow?: () => void\n creditsRedemptionAmount?: number\n memberFunctionResult?: FunctionMemberPriceResult\n openModal: ({ title, content, domContent }: ModalData) => void\n openSignInPopup?: () => void\n openAuthCodePopup?: () => void\n openSignUpPopup?: () => void\n renderAffirm?: React.ReactNode\n renderKlarna?: React.ReactNode\n renderPaypal?: React.ReactNode\n onUseCouponChange?: (couponSaving: number) => void\n onUseMemberDiscountChange?: (memberSaving: number) => void\n discount?: DiscountData\n}\n\n// const initialState: ProductContextType = {\n// isLogin: false,\n// isMobile: false,\n// product: {} as Product,\n// variant: {} as ProductVariant,\n// savingDetail: { coupon: 0, bundle: 0, member: 0, freeGift: 0, compare: 0 },\n// finalPrice: 0,\n// comparePrice: 0,\n// totalSavings: 0,\n// renderRating: null,\n// selectedOptions: {} as Options,\n// setSelectedOptions: () => {},\n// checkedBundle: undefined,\n// checkedGift: undefined,\n// setCheckedBundle: () => {},\n// setCheckedGift: () => {},\n// checkedCareBundle: undefined,\n// setCheckedCareBundle: () => {},\n// }\n\nexport const BizProductContext = createContext<ProductContextType>({} as ProductContextType)\n\nexport const useBizProductContext = () => {\n const context = useContext(BizProductContext)\n if (!context) {\n throw new Error('useProductContext must be used in <ProductProvider>')\n }\n return useContext(BizProductContext)\n}\n\nconst ProductProvider = ({\n product,\n isLogin,\n profile,\n isMobile,\n isDesktop,\n children,\n renderRating,\n freeGift,\n exchangePurchase,\n bundle,\n checkedBundle,\n checkedGift,\n setCheckedBundle,\n setCheckedGift,\n checkedExchangePurchase,\n setCheckedExchangePurchase,\n variant,\n selectedOptions,\n setSelectedOptions,\n compareData,\n coupon,\n finalPrice,\n comparePrice,\n totalSavings,\n savingDetail,\n setSavingDetail,\n selectedVariants,\n onAddToCart,\n onBuyNow,\n creditsRedemptionAmount,\n memberFunctionResult,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n renderAffirm,\n renderKlarna,\n renderPaypal,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n}: PropsWithChildren<\n Omit<\n ProductContextType,\n | 'joinedRecommendBuyProducts'\n | 'setJoinedRecommendBuyProducts'\n >\n>) => {\n const [joinedRecommendBuyProducts, setJoinedRecommendBuyProducts] = useState<{\n bundle?: BundleListItem\n gift?: ProductVariant\n }>({\n bundle: undefined,\n gift: undefined,\n })\n\n return (\n <BizProductContext.Provider\n value={{\n product,\n variant,\n isMobile,\n isDesktop,\n isLogin,\n profile,\n coupon,\n renderRating,\n finalPrice,\n comparePrice,\n savingDetail,\n setSavingDetail,\n totalSavings,\n selectedOptions,\n setSelectedOptions,\n freeGift,\n exchangePurchase,\n checkedGift,\n setCheckedGift,\n checkedBundle,\n setCheckedBundle,\n bundle,\n compareData,\n selectedVariants,\n onAddToCart,\n onBuyNow,\n joinedRecommendBuyProducts,\n setJoinedRecommendBuyProducts,\n checkedExchangePurchase,\n setCheckedExchangePurchase,\n creditsRedemptionAmount,\n memberFunctionResult,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n renderAffirm,\n renderKlarna,\n renderPaypal,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n }}\n >\n {children}\n </BizProductContext.Provider>\n )\n}\n\nexport default ProductProvider\n"],
5
- "mappings": "yaAAA,IAAAA,GAAA,GAAAC,EAAAD,GAAA,uBAAAE,EAAA,YAAAC,GAAA,yBAAAC,IAAA,eAAAC,EAAAL,IAiNI,IAAAM,EAAA,6BAjNJC,EAQO,iBAqIA,MAAML,KAAoB,iBAAkC,CAAC,CAAuB,EAE9EE,EAAuB,IAAM,CAExC,GAAI,IADY,cAAWF,CAAiB,EAE1C,MAAM,IAAI,MAAM,qDAAqD,EAEvE,SAAO,cAAWA,CAAiB,CACrC,EAEMM,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,wBAAAC,EACA,qBAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,SAAAC,CACF,IAMM,CACJ,KAAM,CAACC,EAA4BC,CAA6B,KAAI,YAGjE,CACD,OAAQ,OACR,KAAM,MACR,CAAC,EAED,SACE,OAACjD,EAAkB,SAAlB,CACC,MAAO,CACL,QAAAO,EACA,QAAAgB,EACA,SAAAb,EACA,UAAAC,EACA,QAAAH,EACA,QAAAC,EACA,OAAAkB,EACA,aAAAd,EACA,WAAAe,EACA,aAAAC,EACA,aAAAE,EACA,gBAAAC,EACA,aAAAF,EACA,gBAAAN,EACA,mBAAAC,EACA,SAAAX,EACA,iBAAAC,EACA,YAAAG,EACA,eAAAE,EACA,cAAAH,EACA,iBAAAE,EACA,OAAAH,EACA,YAAAU,EACA,iBAAAO,EACA,YAAAC,EACA,SAAAC,EACA,2BAAAa,EACA,8BAAAC,EACA,wBAAA5B,EACA,2BAAAC,EACA,wBAAAc,EACA,qBAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,SAAAC,CACF,EAEC,SAAAnC,EACH,CAEJ,EAEA,IAAOX,GAAQK",
6
- "names": ["BizProductProvider_exports", "__export", "BizProductContext", "BizProductProvider_default", "useBizProductContext", "__toCommonJS", "import_jsx_runtime", "import_react", "ProductProvider", "product", "isLogin", "profile", "isMobile", "isDesktop", "children", "renderRating", "freeGift", "exchangePurchase", "bundle", "checkedBundle", "checkedGift", "setCheckedBundle", "setCheckedGift", "checkedExchangePurchase", "setCheckedExchangePurchase", "variant", "selectedOptions", "setSelectedOptions", "compareData", "coupon", "finalPrice", "comparePrice", "totalSavings", "savingDetail", "setSavingDetail", "selectedVariants", "onAddToCart", "onBuyNow", "creditsRedemptionAmount", "memberFunctionResult", "openModal", "openSignInPopup", "openAuthCodePopup", "openSignUpPopup", "renderAffirm", "renderKlarna", "renderPaypal", "onUseCouponChange", "onUseMemberDiscountChange", "discount", "joinedRecommendBuyProducts", "setJoinedRecommendBuyProducts"]
4
+ "sourcesContent": ["import React, {\n createContext,\n useCallback,\n useContext,\n type Dispatch,\n type SetStateAction,\n type PropsWithChildren,\n useState,\n} from 'react'\nimport type {\n Product,\n ProductPrice,\n ProductVariant,\n VariantCoupon,\n Options,\n FreeGift,\n BundleListItem,\n Bundle,\n} from './types/product'\nimport type { CompareData, DiscountData } from './types.js'\n\ntype Country = {\n id?: number\n name?: string\n code?: string\n}\n\nexport type UserProfile = {\n user_id: string\n email: string\n nick_name?: string\n full_name?: string\n first_name?: string\n last_name?: string\n dob?: string\n gender?: string\n phone_number?: string\n phone_account?: string\n country?: Country\n is_subscribe?: boolean\n avatar?: string\n can_change_password?: boolean\n invitation_code?: string\n phone_carrier?: string\n dob_programmed?: boolean\n activated?: boolean\n registed_at?: number\n activated_at?: number\n token?: string\n}\n\nexport type SavingDetail = {\n coupon: number\n bundle: number\n member: number\n freeGift: number\n compare: number\n exchangePurchase: number\n}\n\ntype variantWithFinalPrice = ProductVariant & { finalPrice?: ProductPrice }\n\nexport type FunctionMemberPriceResult = {\n hasMemberPrice: boolean\n originalPrice: number\n withCouponMemberTotalSave: number\n withoutCouponMaxMemberTotalSave?: number\n labels: {\n key: string\n value: string\n desc: string\n }[]\n}\n\nexport type ModalData = {\n needClickAway?: boolean\n className?: string\n title?: string\n content?: string\n domContent?: React.ReactNode\n}\n\nexport type JoinedRecommendBuyProducts = {\n bundle?: {\n value?: BundleListItem\n canOperate?: boolean\n }\n gift?: {\n value?: ProductVariant\n canOperate?: boolean\n }\n exchange?: {\n value?: ProductVariant\n canOperate?: boolean\n }\n}\nexport interface ProductContextType {\n isLogin?: boolean\n isMobile?: boolean\n isDesktop?: boolean\n product: Product\n profile?: UserProfile\n variant: ProductVariant\n selectedVariants: Array<variantWithFinalPrice>\n renderRating?: React.ReactNode\n coupon?: VariantCoupon\n savingDetail: SavingDetail\n setSavingDetail: Dispatch<SetStateAction<SavingDetail>>\n finalPrice: number\n comparePrice: number\n totalSavings: number\n selectedOptions: Options\n setSelectedOptions: Dispatch<SetStateAction<Options>>\n freeGift?: FreeGift\n checkedGift?: ProductVariant\n setCheckedGift?: Dispatch<SetStateAction<ProductVariant | undefined>>\n exchangePurchase?: FreeGift\n checkedExchangePurchase?: ProductVariant\n setCheckedExchangePurchase?: Dispatch<SetStateAction<ProductVariant | undefined>>\n checkedBundle?: BundleListItem\n setCheckedBundle: Dispatch<SetStateAction<BundleListItem | undefined>>\n joinedRecommendBuyProducts: JoinedRecommendBuyProducts\n setJoinedRecommendBuyProducts?: Dispatch<SetStateAction<JoinedRecommendBuyProducts>>\n checkedCareBundle?: ProductVariant\n setCheckedCareBundle?: Dispatch<SetStateAction<ProductVariant | undefined>>\n bundle?: Bundle\n compareData?: CompareData['data']\n onAddToCart?: () => void\n onBuyNow?: () => void\n creditsRedemptionAmount?: number\n memberFunctionResult?: FunctionMemberPriceResult\n openModal: ({ title, content, domContent }: ModalData) => void\n openSignInPopup?: () => void\n openAuthCodePopup?: () => void\n openSignUpPopup?: () => void\n renderAffirm?: React.ReactNode\n renderKlarna?: React.ReactNode\n renderPaypal?: React.ReactNode\n onUseCouponChange?: (couponSaving: number) => void\n onUseMemberDiscountChange?: (memberSaving: number) => void\n discount?: DiscountData\n buyNowLoading?: boolean\n addToCartLoading?: boolean\n}\n\n// const initialState: ProductContextType = {\n// isLogin: false,\n// isMobile: false,\n// product: {} as Product,\n// variant: {} as ProductVariant,\n// savingDetail: { coupon: 0, bundle: 0, member: 0, freeGift: 0, compare: 0 },\n// finalPrice: 0,\n// comparePrice: 0,\n// totalSavings: 0,\n// renderRating: null,\n// selectedOptions: {} as Options,\n// setSelectedOptions: () => {},\n// checkedBundle: undefined,\n// checkedGift: undefined,\n// setCheckedBundle: () => {},\n// setCheckedGift: () => {},\n// checkedCareBundle: undefined,\n// setCheckedCareBundle: () => {},\n// }\n\nexport const BizProductContext = createContext<ProductContextType>({} as ProductContextType)\n\nexport const useBizProductContext = () => {\n const context = useContext(BizProductContext)\n if (!context) {\n throw new Error('useProductContext must be used in <ProductProvider>')\n }\n return useContext(BizProductContext)\n}\n\nconst ProductProvider = ({\n product,\n isLogin,\n profile,\n isMobile,\n isDesktop,\n children,\n renderRating,\n freeGift,\n exchangePurchase,\n bundle,\n checkedBundle,\n checkedGift,\n setCheckedBundle,\n setCheckedGift,\n checkedExchangePurchase,\n setCheckedExchangePurchase,\n variant,\n selectedOptions,\n setSelectedOptions,\n compareData,\n coupon,\n finalPrice,\n comparePrice,\n totalSavings,\n savingDetail,\n setSavingDetail,\n selectedVariants,\n onAddToCart,\n onBuyNow,\n creditsRedemptionAmount,\n memberFunctionResult,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n renderAffirm,\n renderKlarna,\n renderPaypal,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n buyNowLoading,\n addToCartLoading,\n}: PropsWithChildren<Omit<ProductContextType, 'joinedRecommendBuyProducts' | 'setJoinedRecommendBuyProducts'>>) => {\n const [joinedRecommendBuyProducts, setJoinedRecommendBuyProducts] = useState<JoinedRecommendBuyProducts>({\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\n return (\n <BizProductContext.Provider\n value={{\n product,\n variant,\n isMobile,\n isDesktop,\n isLogin,\n profile,\n coupon,\n renderRating,\n finalPrice,\n comparePrice,\n savingDetail,\n setSavingDetail,\n totalSavings,\n selectedOptions,\n setSelectedOptions,\n freeGift,\n exchangePurchase,\n checkedGift,\n setCheckedGift,\n checkedBundle,\n setCheckedBundle,\n bundle,\n compareData,\n selectedVariants,\n onAddToCart,\n onBuyNow,\n joinedRecommendBuyProducts,\n setJoinedRecommendBuyProducts,\n checkedExchangePurchase,\n setCheckedExchangePurchase,\n creditsRedemptionAmount,\n memberFunctionResult,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n renderAffirm,\n renderKlarna,\n renderPaypal,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n buyNowLoading,\n addToCartLoading,\n }}\n >\n {children}\n </BizProductContext.Provider>\n )\n}\n\nexport default ProductProvider\n"],
5
+ "mappings": "0aAAA,IAAAA,GAAA,GAAAC,EAAAD,GAAA,uBAAAE,EAAA,YAAAC,GAAA,yBAAAC,KAAA,eAAAC,GAAAL,IA4OI,IAAAM,EAAA,6BA5OJC,EAQO,iBA6JA,MAAML,KAAoB,iBAAkC,CAAC,CAAuB,EAE9EE,GAAuB,IAAM,CAExC,GAAI,IADY,cAAWF,CAAiB,EAE1C,MAAM,IAAI,MAAM,qDAAqD,EAEvE,SAAO,cAAWA,CAAiB,CACrC,EAEMM,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,wBAAAC,EACA,qBAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,SAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,IAAmH,CACjH,KAAM,CAACC,EAA4BC,CAA6B,KAAI,YAAqC,CACvG,OAAQ,CACN,MAAO,OACP,WAAY,EACd,EACA,KAAM,CACJ,MAAO,OACP,WAAY,EACd,EACA,SAAU,CACR,MAAO,OACP,WAAY,EACd,CACF,CAAC,EAED,SACE,OAACnD,EAAkB,SAAlB,CACC,MAAO,CACL,QAAAO,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,wBAAAc,EACA,qBAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,SAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,EAEC,SAAArC,EACH,CAEJ,EAEA,IAAOX,GAAQK",
6
+ "names": ["BizProductProvider_exports", "__export", "BizProductContext", "BizProductProvider_default", "useBizProductContext", "__toCommonJS", "import_jsx_runtime", "import_react", "ProductProvider", "product", "isLogin", "profile", "isMobile", "isDesktop", "children", "renderRating", "freeGift", "exchangePurchase", "bundle", "checkedBundle", "checkedGift", "setCheckedBundle", "setCheckedGift", "checkedExchangePurchase", "setCheckedExchangePurchase", "variant", "selectedOptions", "setSelectedOptions", "compareData", "coupon", "finalPrice", "comparePrice", "totalSavings", "savingDetail", "setSavingDetail", "selectedVariants", "onAddToCart", "onBuyNow", "creditsRedemptionAmount", "memberFunctionResult", "openModal", "openSignInPopup", "openAuthCodePopup", "openSignUpPopup", "renderAffirm", "renderKlarna", "renderPaypal", "onUseCouponChange", "onUseMemberDiscountChange", "discount", "buyNowLoading", "addToCartLoading", "joinedRecommendBuyProducts", "setJoinedRecommendBuyProducts"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var L=Object.create;var y=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var B=(i,p)=>{for(var n in p)y(i,n,{get:p[n],enumerable:!0})},T=(i,p,n,d)=>{if(p&&typeof p=="object"||typeof p=="function")for(let l of W(p))!$.call(i,l)&&l!==n&&y(i,l,{get:()=>p[l],enumerable:!(d=V(p,l))||d.enumerable});return i};var P=(i,p,n)=>(n=i!=null?L(F(i)):{},T(p||!i||!i.__esModule?y(n,"default",{value:i,enumerable:!0}):n,i)),j=i=>T(y({},"__esModule",{value:!0}),i);var H={};B(H,{default:()=>G});module.exports=j(H);var r=require("react/jsx-runtime"),x=require("../../../../components/index.js"),o=require("react"),_=require("../../../../helpers"),w=P(require("./ShippingMethod")),C=require("./ShippingPolicyModal"),M=require("./utils"),k=P(require("./LearnMore")),N=require("../../BizProductProvider.js");const q=({metafields:i,productList:p,onShippingInfoChange:n,variant:d,className:l})=>{const{isLogin:A,openSignInPopup:O}=(0,N.useBizProductContext)(),[z,S]=(0,o.useState)(!1),[f,D]=(0,o.useState)(!1),[E,b]=(0,o.useState)(null),v=(0,o.useMemo)(()=>p.reduce((e,t)=>e+(t?.variant?.weight||0),0),[p]),c=(0,o.useCallback)((e,t,s)=>({id:`${e.__code}__${e.price}`,code:e.__code,mode:e.__mode,title:e.title,disabled:!(0,M.isWeightAvailable)(t,e),price:e.price,subtitle:e.subtitle,tag:s!==0?i?.memberOnly:"",error:(0,M.isWeightAvailable)(t,e)?"":i.overWeightError}),[i?.memberOnly,i.overWeightError]),h=(0,o.useMemo)(()=>{const e=i?.list?.map((t,s)=>c(t,v,s));return e?.reduce((t,s)=>{const m=e.filter(a=>a.code==s.code);let u;return m.every(a=>a.disabled)?u=m[m.length-1]:u=m.find(a=>!a.disabled),t.find(a=>u.id===a.id)?t:[...t,u]},[])},[c,i?.list,v]),g=(0,o.useCallback)(e=>{n({selected_delivery_code:e.code,selected_delivery_mode:e.mode})},[n]);(0,o.useEffect)(()=>{if(i?.list?.length>0&&!f){const e=c(i?.list[0],0,0);b(e),g(e),D(!0)}},[c,i?.list,g,f]);const I=(0,o.useCallback)(e=>{e.disabled||(b(e),g(e))},[A,h,d.sku,g,O]);return(0,r.jsxs)("div",{id:"ipc-product-paid-shipping",className:(0,_.cn)(" mt-8 desktop:mt-16 px-4 tablet:px-0 tablet:px-8 laptop:px-16 desktop:px-0",l),children:[(0,r.jsx)("div",{className:"flex flex-wrap justify-between space-x-2 md:space-x-1",children:(0,r.jsx)(x.Text,{className:"text-[20px] font-bold leading-[1.4] text-[#1F2021] md:text-[16px]",html:i?.title})}),(0,r.jsxs)("div",{className:"mt-[16px] flex flex-wrap gap-[12px] overflow-hidden md:mt-[12px] desktop:flex-nowrap",children:[h.map((e,t)=>(0,r.jsx)(w.default,{index:t,item:e,active:E?.code===e.code,toggleShipping:()=>I(e),currencyCode:d.price.currencyCode,metafields:i,className:"w-full laptop:w-[calc(50%-6px)] desktop:flex-1"},t)),(0,r.jsx)(k.default,{setOpenShippingPolicyModal:S,metafields:i,className:"w-full laptop:w-[calc(50%-6px)] desktop:w-[calc(33.33%-16px)] lg-desktop:w-[calc(33.33%-24px)]"})]}),h.find(e=>e?.error)&&(0,r.jsx)(x.Text,{className:"mt-[16px] font-bold leading-[1.4] text-[#D41435] md:mt-[12px]",html:h.find(e=>e.error)?.error,as:"p"}),i?.seeAvailableArea&&(0,r.jsx)(x.Text,{as:"div",className:"mt-[16px] font-bold leading-[1.4] text-[#1F2021] [&_a]:text-[#595959] [&_a]:underline",html:i?.seeAvailableArea}),i?.shippingPolicy&&(0,r.jsx)(C.ShippingPolicyModal,{data:i?.shippingPolicy,onClose:()=>S(!1),open:z})]})};var G=q;
1
+ "use strict";var L=Object.create;var y=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var B=(i,p)=>{for(var n in p)y(i,n,{get:p[n],enumerable:!0})},T=(i,p,n,d)=>{if(p&&typeof p=="object"||typeof p=="function")for(let l of W(p))!$.call(i,l)&&l!==n&&y(i,l,{get:()=>p[l],enumerable:!(d=V(p,l))||d.enumerable});return i};var P=(i,p,n)=>(n=i!=null?L(F(i)):{},T(p||!i||!i.__esModule?y(n,"default",{value:i,enumerable:!0}):n,i)),j=i=>T(y({},"__esModule",{value:!0}),i);var H={};B(H,{default:()=>G});module.exports=j(H);var r=require("react/jsx-runtime"),x=require("../../../../components/index.js"),o=require("react"),_=require("../../../../helpers"),w=P(require("./ShippingMethod")),k=require("./ShippingPolicyModal"),M=require("./utils"),C=P(require("./LearnMore")),N=require("../../BizProductProvider.js");const q=({metafields:i,productList:p,onShippingInfoChange:n,variant:d,className:l})=>{const{isLogin:A,openSignInPopup:O}=(0,N.useBizProductContext)(),[z,S]=(0,o.useState)(!1),[f,D]=(0,o.useState)(!1),[E,b]=(0,o.useState)(null),v=(0,o.useMemo)(()=>p.reduce((e,t)=>e+(t?.variant?.weight||0),0),[p]),c=(0,o.useCallback)((e,t,s)=>({id:`${e.__code}__${e.price}`,code:e.__code,mode:e.__mode,title:e.title,disabled:!(0,M.isWeightAvailable)(t,e),price:e.price,subtitle:e.subtitle,tag:s!==0?i?.memberOnly:"",error:(0,M.isWeightAvailable)(t,e)?"":i.overWeightError}),[i?.memberOnly,i.overWeightError]),h=(0,o.useMemo)(()=>{const e=i?.list?.map((t,s)=>c(t,v,s));return e?.reduce((t,s)=>{const m=e.filter(a=>a.code==s.code);let u;return m.every(a=>a.disabled)?u=m[m.length-1]:u=m.find(a=>!a.disabled),t.find(a=>u.id===a.id)?t:[...t,u]},[])},[c,i?.list,v]),g=(0,o.useCallback)(e=>{n({selected_delivery_code:e.code,selected_delivery_mode:e.mode})},[n]);(0,o.useEffect)(()=>{if(i?.list?.length>0&&!f){const e=c(i?.list[0],0,0);b(e),g(e),D(!0)}},[c,i?.list,g,f]);const I=(0,o.useCallback)(e=>{e.disabled||(b(e),g(e))},[A,h,d.sku,g,O]);return(0,r.jsxs)("div",{id:"ipc-product-paid-shipping",className:(0,_.cn)(" mt-16 desktop:mt-[96px] lg-desktop:mt-[128px] px-4 tablet:px-0 tablet:px-8 laptop:px-16 desktop:px-0",l),children:[(0,r.jsx)("div",{className:"flex flex-wrap justify-between space-x-2 md:space-x-1",children:(0,r.jsx)(x.Text,{className:"text-[20px] font-bold leading-[1.4] text-[#1F2021] md:text-[16px]",html:i?.title})}),(0,r.jsxs)("div",{className:"mt-[16px] flex flex-wrap gap-[12px] overflow-hidden md:mt-[12px] desktop:flex-nowrap",children:[h.map((e,t)=>(0,r.jsx)(w.default,{index:t,item:e,active:E?.code===e.code,toggleShipping:()=>I(e),currencyCode:d.price.currencyCode,metafields:i,className:"w-full laptop:w-[calc(50%-6px)] desktop:flex-1"},t)),(0,r.jsx)(C.default,{setOpenShippingPolicyModal:S,metafields:i,className:"w-full laptop:w-[calc(50%-6px)] desktop:w-[calc(33.33%-16px)] lg-desktop:w-[calc(33.33%-24px)]"})]}),h.find(e=>e?.error)&&(0,r.jsx)(x.Text,{className:"mt-[16px] font-bold leading-[1.4] text-[#D41435] md:mt-[12px]",html:h.find(e=>e.error)?.error,as:"p"}),i?.seeAvailableArea&&(0,r.jsx)(x.Text,{as:"div",className:"mt-[16px] font-bold leading-[1.4] text-[#1F2021] [&_a]:text-[#595959] [&_a]:underline",html:i?.seeAvailableArea}),i?.shippingPolicy&&(0,r.jsx)(k.ShippingPolicyModal,{data:i?.shippingPolicy,onClose:()=>S(!1),open:z})]})};var G=q;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/biz-components/Listing/components/PaidShipping/index.tsx"],
4
- "sourcesContent": ["import { Container, Text } from '../../../../components/index.js'\nimport type { Product, ProductVariant } from '../../types/product'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { cn } from '../../../../helpers'\n\nimport ShippingMethod from './ShippingMethod'\nimport { ShippingPolicyModal } from './ShippingPolicyModal'\nimport type { DeliveryCustom, shippingMetafields, ShippingMethodType } from './type'\nimport { isWeightAvailable } from './utils'\nimport LearnMore from './LearnMore'\nimport { useBizProductContext } from '../../BizProductProvider.js'\n\nconst PaidShipping = ({\n metafields,\n productList,\n onShippingInfoChange,\n variant,\n className,\n}: {\n metafields: any\n productList: Array<Product & { variant: ProductVariant }>\n variant: ProductVariant\n onShippingInfoChange: (deliveryCustom: DeliveryCustom) => void\n className?: string\n}) => {\n const { isLogin, openSignInPopup } = useBizProductContext()\n const [openShippingPolicyModal, setOpenShippingPolicyModal] = useState(false)\n const [init, setInit] = useState(false)\n\n const [selectedMethod, setSelectedMethod] = useState<ShippingMethodType | null>(null)\n\n const weight = useMemo(() => {\n return productList.reduce((acc, product) => acc + (product?.variant?.weight || 0), 0)\n }, [productList])\n\n const normalizedMethod = useCallback(\n (method: shippingMetafields, weight: number, index: number) => {\n return {\n id: `${method.__code}__${method.price}`,\n code: method.__code,\n mode: method.__mode,\n title: method.title,\n disabled: !isWeightAvailable(weight, method),\n price: method.price,\n subtitle: method.subtitle,\n tag: index !== 0 ? metafields?.memberOnly : '',\n error: !isWeightAvailable(weight, method) ? metafields.overWeightError : '',\n }\n },\n [metafields?.memberOnly, metafields.overWeightError],\n )\n\n const list = useMemo(() => {\n const normalizedList: ShippingMethodType[] = metafields?.list?.map((method: shippingMetafields, index: number) => normalizedMethod(method, weight, index))\n\n return normalizedList?.reduce((prev: ShippingMethodType[], method: ShippingMethodType) => {\n // \u5982\u679C\u8D85\u91CD\uFF0C\u540C\u4E00\u4E2A\u7269\u6D41\u9009\u9879\u7C7B\u578B\u4E0B\uFF0C\u5C55\u793A\u5176\u4E2D\u4E00\u4E2A\u4E14\u4E0D\u53EF\u9009\n const sameTypeMethod = normalizedList.filter((m: ShippingMethodType) => m.code == method.code)\n let availableMethod: ShippingMethodType\n // \u6240\u6709\u7269\u6D41\u9009\u9879\u90FD\u4E0D\u53EF\u9009\n if (sameTypeMethod.every((m: ShippingMethodType) => m.disabled)) {\n availableMethod = sameTypeMethod[sameTypeMethod.length - 1]\n } else {\n // \u53EF\u9009\u7269\u6D41\u9009\u9879\n availableMethod = sameTypeMethod.find((m: ShippingMethodType) => !m.disabled)!\n }\n // \u5F53\u524D\u7269\u6D41\u9009\u9879\u5DF2\u5B58\u5728\n const hasSameMethod = prev.find((m: ShippingMethodType) => availableMethod.id === m.id)\n if (!hasSameMethod) {\n return [...prev, availableMethod]\n } else {\n return prev\n }\n }, [] as ShippingMethodType[])\n }, [normalizedMethod, metafields?.list, weight])\n\n const handleChangeShippingInfo = useCallback(\n (selectedMethod: ShippingMethodType) => {\n onShippingInfoChange({\n selected_delivery_code: selectedMethod.code,\n selected_delivery_mode: selectedMethod.mode,\n })\n },\n [onShippingInfoChange],\n )\n\n useEffect(() => {\n // \u9ED8\u8BA4\u9009\u4E2D\u7B2C\u4E00\u4E2A\u7269\u6D41\u9009\u9879\n if (metafields?.list?.length > 0 && !init) {\n const standardShippingMethod = normalizedMethod(metafields?.list[0], 0, 0)\n setSelectedMethod(standardShippingMethod)\n handleChangeShippingInfo(standardShippingMethod)\n setInit(true)\n }\n }, [normalizedMethod, metafields?.list, handleChangeShippingInfo, init])\n\n const toggleShipping = useCallback(\n (method: ShippingMethodType) => {\n if (method.disabled) {\n return\n }\n setSelectedMethod(method)\n handleChangeShippingInfo(method)\n // gaTrack({\n // event: 'ga4Event',\n // event_name: 'lp_button',\n // member_active_status: isLogin ? 'active' : 'not active', //\u7528\u4E8E\u8F93\u5165code\u6FC0\u6D3B\u4F1A\u5458\u5F39'\u7A97\u7684\u6309\u94AE\uFF0C\u533A\u5206\u4F1A\u5458\u6FC0\u6D3B\u72B6\u6001\uFF0C\u4F20active\u6216not active\n // event_parameters: {\n // page_group: 'Product Detail Page' + variant.sku, //\u5982\u679C\u662F\u9996\u9875\uFF0C\u5219\u4F20\"Home Page\";\u5982\u679C\u662Flisting\u7684\u9996\u5C4F\u6309\u94AE\uFF0C\u4F20Product Detail Page+$SKU\n // position: 'masterbanner1', //\u4F4D\u7F6E\u6807\u8BB0\u3002\u9996\u9875\u9996\u5C4F\u8F6E\u64AD\u4F4D\u7F6E\u4F20masterbanner1\u3001masterbanner2\u3001masterbanner3\uFF0C\u7B2C\u4E8C\u5C4F\u4F202nd_banner\uFF0C\u7B2C\u4E09\u5C4F\u4F203rd_banner\uFF0C\u6216\u8005\u53D6\u8BE5\u6A21\u5757\u5C0F\u6807\u9898\uFF0C\u6216\u80FD\u8BC6\u522B\u51FA\u662F\u54EA\u4E2A\u6A21\u5757\u4F4D\u7F6E\u7684\u6587\u6848\uFF0C\u5F39\u7A97\u4F20pop;\u5982\u679C\u662F\u8D2D\u7269\u8F66\u4FA7\u8FB9\u680F\uFF0C\u5219\u4F20\"Cart Pop Up\"\n // button_name: method.title, //\u53D6\u6309\u94AE\u6587\u6848\uFF0C\u6216\u80FD\u8BC6\u522B\u51FA\u662F\u54EA\u4E2A\u6309\u94AE\u7684\u6587\u6848,\u6BD4\u5982\u53F3\u4E0A\u89D2\u5173\u95ED\u4F20close,\u793E\u5A92\u5206\u4EAB\u56FE\u6807\u4F20\u5BF9\u5E94\u5E73\u53F0\u540D\u5B57\u5982Facebook,\u56FE\u7247\u5207\u6362\u5219\u4F20\u5BF9\u5E94\u5C55\u793A\u56FE\u7247\u7684\u540D\u5B57\n // info: '', //\u9ED8\u8BA4\u7A7A\u503C\uFF0C\u4E00\u822C\u4F20\u590D\u9009\u6846\u7684\u6587\u6848\u5185\u5BB9\uFF0C\u7279\u6B8A\u60C5\u51B5\u53EF\u6307\u5B9Ainfo\u503C\n // },\n // })\n },\n\n [isLogin, list, variant.sku, handleChangeShippingInfo, openSignInPopup],\n )\n\n return (\n <div\n id=\"ipc-product-paid-shipping\"\n className={cn(' mt-8 desktop:mt-16 px-4 tablet:px-0 tablet:px-8 laptop:px-16 desktop:px-0', className)}\n >\n <div className=\"flex flex-wrap justify-between space-x-2 md:space-x-1\">\n <Text\n className=\"text-[20px] font-bold leading-[1.4] text-[#1F2021] md:text-[16px]\"\n html={metafields?.title}\n ></Text>\n {/* <button\n onClick={() => {\n setOpenShippingPolicyModal(true)\n }}\n className='text-brand-color text-[16px] font-semibold text-[#595959] underline md:text-[14px]'\n >\n {metafields?.policy}\n </button> */}\n </div>\n <div className=\"mt-[16px] flex flex-wrap gap-[12px] overflow-hidden md:mt-[12px] desktop:flex-nowrap\">\n {list.map((method: ShippingMethodType, index: number) => (\n <ShippingMethod\n key={index}\n index={index}\n item={method}\n active={selectedMethod?.code === method.code}\n toggleShipping={() => toggleShipping(method)}\n currencyCode={variant.price.currencyCode}\n metafields={metafields}\n className=\"w-full laptop:w-[calc(50%-6px)] desktop:flex-1\"\n />\n ))}\n {/* learn more \u5361\u7247 */}\n <LearnMore\n setOpenShippingPolicyModal={setOpenShippingPolicyModal}\n metafields={metafields}\n className=\"w-full laptop:w-[calc(50%-6px)] desktop:w-[calc(33.33%-16px)] lg-desktop:w-[calc(33.33%-24px)]\"\n />\n </div>\n {list.find((method: ShippingMethodType) => method?.error) && (\n <Text\n className=\"mt-[16px] font-bold leading-[1.4] text-[#D41435] md:mt-[12px]\"\n html={list.find((method: ShippingMethodType) => method.error)?.error as string}\n as=\"p\"\n />\n )}\n\n {metafields?.seeAvailableArea && (\n <Text\n as=\"div\"\n className=\"mt-[16px] font-bold leading-[1.4] text-[#1F2021] [&_a]:text-[#595959] [&_a]:underline\"\n html={metafields?.seeAvailableArea}\n />\n )}\n {metafields?.shippingPolicy && (\n <ShippingPolicyModal\n data={metafields?.shippingPolicy}\n onClose={() => setOpenShippingPolicyModal(false)}\n open={openShippingPolicyModal}\n />\n )}\n </div>\n )\n}\n\nexport default PaidShipping"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Container, Text } from '../../../../components/index.js'\nimport type { Product, ProductVariant } from '../../types/product'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { cn } from '../../../../helpers'\n\nimport ShippingMethod from './ShippingMethod'\nimport { ShippingPolicyModal } from './ShippingPolicyModal'\nimport type { DeliveryCustom, shippingMetafields, ShippingMethodType } from './type'\nimport { isWeightAvailable } from './utils'\nimport LearnMore from './LearnMore'\nimport { useBizProductContext } from '../../BizProductProvider.js'\n\nconst PaidShipping = ({\n metafields,\n productList,\n onShippingInfoChange,\n variant,\n className,\n}: {\n metafields: any\n productList: Array<Product & { variant: ProductVariant }>\n variant: ProductVariant\n onShippingInfoChange: (deliveryCustom: DeliveryCustom) => void\n className?: string\n}) => {\n const { isLogin, openSignInPopup } = useBizProductContext()\n const [openShippingPolicyModal, setOpenShippingPolicyModal] = useState(false)\n const [init, setInit] = useState(false)\n\n const [selectedMethod, setSelectedMethod] = useState<ShippingMethodType | null>(null)\n\n const weight = useMemo(() => {\n return productList.reduce((acc, product) => acc + (product?.variant?.weight || 0), 0)\n }, [productList])\n\n const normalizedMethod = useCallback(\n (method: shippingMetafields, weight: number, index: number) => {\n return {\n id: `${method.__code}__${method.price}`,\n code: method.__code,\n mode: method.__mode,\n title: method.title,\n disabled: !isWeightAvailable(weight, method),\n price: method.price,\n subtitle: method.subtitle,\n tag: index !== 0 ? metafields?.memberOnly : '',\n error: !isWeightAvailable(weight, method) ? metafields.overWeightError : '',\n }\n },\n [metafields?.memberOnly, metafields.overWeightError]\n )\n\n const list = useMemo(() => {\n const normalizedList: ShippingMethodType[] = metafields?.list?.map((method: shippingMetafields, index: number) =>\n normalizedMethod(method, weight, index)\n )\n\n return normalizedList?.reduce((prev: ShippingMethodType[], method: ShippingMethodType) => {\n // \u5982\u679C\u8D85\u91CD\uFF0C\u540C\u4E00\u4E2A\u7269\u6D41\u9009\u9879\u7C7B\u578B\u4E0B\uFF0C\u5C55\u793A\u5176\u4E2D\u4E00\u4E2A\u4E14\u4E0D\u53EF\u9009\n const sameTypeMethod = normalizedList.filter((m: ShippingMethodType) => m.code == method.code)\n let availableMethod: ShippingMethodType\n // \u6240\u6709\u7269\u6D41\u9009\u9879\u90FD\u4E0D\u53EF\u9009\n if (sameTypeMethod.every((m: ShippingMethodType) => m.disabled)) {\n availableMethod = sameTypeMethod[sameTypeMethod.length - 1]\n } else {\n // \u53EF\u9009\u7269\u6D41\u9009\u9879\n availableMethod = sameTypeMethod.find((m: ShippingMethodType) => !m.disabled)!\n }\n // \u5F53\u524D\u7269\u6D41\u9009\u9879\u5DF2\u5B58\u5728\n const hasSameMethod = prev.find((m: ShippingMethodType) => availableMethod.id === m.id)\n if (!hasSameMethod) {\n return [...prev, availableMethod]\n } else {\n return prev\n }\n }, [] as ShippingMethodType[])\n }, [normalizedMethod, metafields?.list, weight])\n\n const handleChangeShippingInfo = useCallback(\n (selectedMethod: ShippingMethodType) => {\n onShippingInfoChange({\n selected_delivery_code: selectedMethod.code,\n selected_delivery_mode: selectedMethod.mode,\n })\n },\n [onShippingInfoChange]\n )\n\n useEffect(() => {\n // \u9ED8\u8BA4\u9009\u4E2D\u7B2C\u4E00\u4E2A\u7269\u6D41\u9009\u9879\n if (metafields?.list?.length > 0 && !init) {\n const standardShippingMethod = normalizedMethod(metafields?.list[0], 0, 0)\n setSelectedMethod(standardShippingMethod)\n handleChangeShippingInfo(standardShippingMethod)\n setInit(true)\n }\n }, [normalizedMethod, metafields?.list, handleChangeShippingInfo, init])\n\n const toggleShipping = useCallback(\n (method: ShippingMethodType) => {\n if (method.disabled) {\n return\n }\n setSelectedMethod(method)\n handleChangeShippingInfo(method)\n // gaTrack({\n // event: 'ga4Event',\n // event_name: 'lp_button',\n // member_active_status: isLogin ? 'active' : 'not active', //\u7528\u4E8E\u8F93\u5165code\u6FC0\u6D3B\u4F1A\u5458\u5F39'\u7A97\u7684\u6309\u94AE\uFF0C\u533A\u5206\u4F1A\u5458\u6FC0\u6D3B\u72B6\u6001\uFF0C\u4F20active\u6216not active\n // event_parameters: {\n // page_group: 'Product Detail Page' + variant.sku, //\u5982\u679C\u662F\u9996\u9875\uFF0C\u5219\u4F20\"Home Page\";\u5982\u679C\u662Flisting\u7684\u9996\u5C4F\u6309\u94AE\uFF0C\u4F20Product Detail Page+$SKU\n // position: 'masterbanner1', //\u4F4D\u7F6E\u6807\u8BB0\u3002\u9996\u9875\u9996\u5C4F\u8F6E\u64AD\u4F4D\u7F6E\u4F20masterbanner1\u3001masterbanner2\u3001masterbanner3\uFF0C\u7B2C\u4E8C\u5C4F\u4F202nd_banner\uFF0C\u7B2C\u4E09\u5C4F\u4F203rd_banner\uFF0C\u6216\u8005\u53D6\u8BE5\u6A21\u5757\u5C0F\u6807\u9898\uFF0C\u6216\u80FD\u8BC6\u522B\u51FA\u662F\u54EA\u4E2A\u6A21\u5757\u4F4D\u7F6E\u7684\u6587\u6848\uFF0C\u5F39\u7A97\u4F20pop;\u5982\u679C\u662F\u8D2D\u7269\u8F66\u4FA7\u8FB9\u680F\uFF0C\u5219\u4F20\"Cart Pop Up\"\n // button_name: method.title, //\u53D6\u6309\u94AE\u6587\u6848\uFF0C\u6216\u80FD\u8BC6\u522B\u51FA\u662F\u54EA\u4E2A\u6309\u94AE\u7684\u6587\u6848,\u6BD4\u5982\u53F3\u4E0A\u89D2\u5173\u95ED\u4F20close,\u793E\u5A92\u5206\u4EAB\u56FE\u6807\u4F20\u5BF9\u5E94\u5E73\u53F0\u540D\u5B57\u5982Facebook,\u56FE\u7247\u5207\u6362\u5219\u4F20\u5BF9\u5E94\u5C55\u793A\u56FE\u7247\u7684\u540D\u5B57\n // info: '', //\u9ED8\u8BA4\u7A7A\u503C\uFF0C\u4E00\u822C\u4F20\u590D\u9009\u6846\u7684\u6587\u6848\u5185\u5BB9\uFF0C\u7279\u6B8A\u60C5\u51B5\u53EF\u6307\u5B9Ainfo\u503C\n // },\n // })\n },\n\n [isLogin, list, variant.sku, handleChangeShippingInfo, openSignInPopup]\n )\n\n return (\n <div\n id=\"ipc-product-paid-shipping\"\n className={cn(\n ' mt-16 desktop:mt-[96px] lg-desktop:mt-[128px] px-4 tablet:px-0 tablet:px-8 laptop:px-16 desktop:px-0',\n className\n )}\n >\n <div className=\"flex flex-wrap justify-between space-x-2 md:space-x-1\">\n <Text\n className=\"text-[20px] font-bold leading-[1.4] text-[#1F2021] md:text-[16px]\"\n html={metafields?.title}\n ></Text>\n {/* <button\n onClick={() => {\n setOpenShippingPolicyModal(true)\n }}\n className='text-brand-color text-[16px] font-semibold text-[#595959] underline md:text-[14px]'\n >\n {metafields?.policy}\n </button> */}\n </div>\n <div className=\"mt-[16px] flex flex-wrap gap-[12px] overflow-hidden md:mt-[12px] desktop:flex-nowrap\">\n {list.map((method: ShippingMethodType, index: number) => (\n <ShippingMethod\n key={index}\n index={index}\n item={method}\n active={selectedMethod?.code === method.code}\n toggleShipping={() => toggleShipping(method)}\n currencyCode={variant.price.currencyCode}\n metafields={metafields}\n className=\"w-full laptop:w-[calc(50%-6px)] desktop:flex-1\"\n />\n ))}\n {/* learn more \u5361\u7247 */}\n <LearnMore\n setOpenShippingPolicyModal={setOpenShippingPolicyModal}\n metafields={metafields}\n className=\"w-full laptop:w-[calc(50%-6px)] desktop:w-[calc(33.33%-16px)] lg-desktop:w-[calc(33.33%-24px)]\"\n />\n </div>\n {list.find((method: ShippingMethodType) => method?.error) && (\n <Text\n className=\"mt-[16px] font-bold leading-[1.4] text-[#D41435] md:mt-[12px]\"\n html={list.find((method: ShippingMethodType) => method.error)?.error as string}\n as=\"p\"\n />\n )}\n\n {metafields?.seeAvailableArea && (\n <Text\n as=\"div\"\n className=\"mt-[16px] font-bold leading-[1.4] text-[#1F2021] [&_a]:text-[#595959] [&_a]:underline\"\n html={metafields?.seeAvailableArea}\n />\n )}\n {metafields?.shippingPolicy && (\n <ShippingPolicyModal\n data={metafields?.shippingPolicy}\n onClose={() => setOpenShippingPolicyModal(false)}\n open={openShippingPolicyModal}\n />\n )}\n </div>\n )\n}\n\nexport default PaidShipping\n"],
5
+ "mappings": "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",
6
6
  "names": ["PaidShipping_exports", "__export", "PaidShipping_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_react", "import_helpers", "import_ShippingMethod", "import_ShippingPolicyModal", "import_utils", "import_LearnMore", "import_BizProductProvider", "PaidShipping", "metafields", "productList", "onShippingInfoChange", "variant", "className", "isLogin", "openSignInPopup", "openShippingPolicyModal", "setOpenShippingPolicyModal", "init", "setInit", "selectedMethod", "setSelectedMethod", "weight", "acc", "product", "normalizedMethod", "method", "index", "list", "normalizedList", "prev", "sameTypeMethod", "m", "availableMethod", "handleChangeShippingInfo", "standardShippingMethod", "toggleShipping", "ShippingMethod", "LearnMore"]
7
7
  }
@@ -16,6 +16,7 @@ interface BenefitsTabTextConfig {
16
16
  off?: string;
17
17
  memberBenefits?: string;
18
18
  memberBenefitsNotLogin?: string;
19
+ memberBenefitsNotLoginText?: string;
19
20
  installment?: string;
20
21
  forNewMember?: string;
21
22
  expressShipping?: string;
@@ -1,4 +1,4 @@
1
- "use strict";var oe=Object.create;var v=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var ie=Object.getOwnPropertyNames;var se=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty;var le=(t,o)=>{for(var r in o)v(t,r,{get:o[r],enumerable:!0})},E=(t,o,r,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of ie(o))!re.call(t,a)&&a!==r&&v(t,a,{get:()=>o[a],enumerable:!(l=ne(o,a))||l.enumerable});return t};var y=(t,o,r)=>(r=t!=null?oe(se(t)):{},E(o||!t||!t.__esModule?v(r,"default",{value:t,enumerable:!0}):r,t)),ae=t=>E(v({},"__esModule",{value:!0}),t);var ge={};le(ge,{default:()=>fe});module.exports=ae(ge);var e=require("react/jsx-runtime"),s=require("../../../../../components/index.js"),d=y(require("./ProductBenefitsTabs/index.js")),_=require("../../../BizProductProvider.js"),z=require("../../../hooks/useBenefits"),g=require("../../../utils/index.js"),N=require("../../../utils/textFormat"),U=y(require("classnames")),w=require("react"),Z=require("../../../../AiuiProvider/index.js"),O=y(require("../../../../../hooks/useCountDown.js")),G=y(require("../../../hooks/useCopy")),T=require("../../../../../helpers/index.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",yourBenefits:"Your Benefits",off:" off",memberBenefits:"Member Benefits",memberBenefitsNotLogin:"You will enjoy a {amount} member discount after logging in.",installment:"Installment",forNewMember:"{amount} for New Member",expressShipping:"Express Shipping Method",creditsAfterActivation:"You will get soundcoreCredits after activation. ",active:"Active",flexibleInstallment:"Flexible installment payment "},pe=({item:t,textConfig:o})=>{const{trackingData:r}=(0,Z.useAiuiContext)(),{copied:l,copy:a}=(0,G.default)(),c=r?.common?.coupon,{days:b,hours:B,minutes:k,seconds:L}=(0,O.default)({endTime:t?.ends_at||""}),{openModal:D,isLogin:R}=(0,_.useBizProductContext)();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("style",{jsx:!0,children:`
1
+ "use strict";var oe=Object.create;var v=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var se=Object.getOwnPropertyNames;var ie=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty;var le=(t,o)=>{for(var r in o)v(t,r,{get:o[r],enumerable:!0})},E=(t,o,r,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of se(o))!re.call(t,a)&&a!==r&&v(t,a,{get:()=>o[a],enumerable:!(l=ne(o,a))||l.enumerable});return t};var y=(t,o,r)=>(r=t!=null?oe(ie(t)):{},E(o||!t||!t.__esModule?v(r,"default",{value:t,enumerable:!0}):r,t)),ae=t=>E(v({},"__esModule",{value:!0}),t);var ge={};le(ge,{default:()=>fe});module.exports=ae(ge);var e=require("react/jsx-runtime"),i=require("../../../../../components/index.js"),d=y(require("./ProductBenefitsTabs/index.js")),I=require("../../../BizProductProvider.js"),z=require("../../../hooks/useBenefits"),g=require("../../../utils/index.js"),N=require("../../../utils/textFormat"),_=y(require("classnames")),B=require("react"),U=require("../../../../AiuiProvider/index.js"),G=y(require("../../../../../hooks/useCountDown.js")),O=y(require("../../../hooks/useCopy")),T=require("../../../../../helpers/index.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",yourBenefits:"Your Benefits",off:" off",memberBenefits:"Member Benefits",memberBenefitsNotLogin:"You will enjoy a {amount} member discount after logging in.",memberBenefitsNotLoginText:"Sign Up to Get Benefits Below",installment:"Installment",forNewMember:"{amount} for New Member",expressShipping:"Express Shipping Method",creditsAfterActivation:"You will get soundcoreCredits after activation. ",active:"Active",flexibleInstallment:"Flexible installment payment "},pe=({item:t,textConfig:o})=>{const{trackingData:r}=(0,U.useAiuiContext)(),{copied:l,copy:a}=(0,O.default)(),c=r?.common?.coupon,{days:b,hours:w,minutes:k,seconds:L}=(0,G.default)({endTime:t?.ends_at||""}),{openModal:M,isLogin:Z}=(0,I.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,27 +14,27 @@
14
14
  bottom left;
15
15
  mask-repeat: no-repeat;
16
16
  }
17
- `}),(0,e.jsxs)("div",{style:{background:t.couponBgColor||"white"},className:(0,U.default)("relative h-[100px] overflow-hidden laptop:h-[112px] lg-desktop:h-[130px]",t.borderStyle==="inset"?"coupon-card ":"rounded-[8px]"),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:"relative z-1 p-3",children:[(0,e.jsxs)("div",{className:"flex items-center justify-start",children:[t.useAble&&(0,e.jsx)(s.Checkbox,{size:"lg",className:"mr-2 rounded-full border-[#D1D1D1] border-[1.6px] data-[state=checked]:border-primary",checked:t?.isAutoUse,onCheckedChange:C=>{t?.onUseChange?.(C)}}),(0,e.jsx)(s.Text,{html:t.title,className:"text-[16px] font-bold laptop:text-[20px] lg-desktop:text-[24px]"})]}),(0,e.jsx)(s.Text,{...typeof t.description=="string"?{html:t.description}:{},as:"p",className:"mt-2 pr-8 text-[14px] font-bold text-[#3D3D3F] lg-desktop:text-[16px]",children:t.description}),t.code&&(0,e.jsxs)("div",{className:"last:mt-2 flex items-center gap-2",children:[(0,e.jsx)(s.Text,{html:`${o.couponCode}: ${t.code}`,className:"text-base font-bold text-[#3D3D3F]"}),(0,e.jsx)("button",{className:"text-base font-bold underline",onClick:()=>a(t.code??""),children:l?c?.copied||o.copied:c?.copy||o.copyCode})]}),t.ends_at&&(0,e.jsx)("button",{onClick:()=>{c?.modal&&D(c?.modal)},className:"mt-[4px] text-left text-[14px] font-semibold text-[#1F2021] x:text-[12px] md-l:hidden",children:Number(b)<Number(c?.hurry?.daysLeft)?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:c?.ends}),(0,e.jsx)("span",{className:"font-bold",children:` ${b} ${c?.days} ${B.toString().padStart(2,"0")}:${k.toString().padStart(2,"0")}:${L.toString().padStart(2,"0")}`})]}):c?.hurry?.label||o.expired})]})]})]})},de=({coupons:t,className:o,textConfig:r})=>(0,e.jsx)("div",{className:(0,U.default)("flex flex-col gap-3 laptop:grid laptop:grid-cols-2 desktop:grid-cols-1",o),children:t?.map((l,a)=>(0,e.jsx)(pe,{item:l,textConfig:r},a))}),ue=({textConfig:t})=>{const{isLogin:o,profile:r,variant:l,renderAffirm:a,renderKlarna:c,renderPaypal:b,onUseCouponChange:B,onUseMemberDiscountChange:k,discount:L,savingDetail:D,openModal:R,openSignInPopup:C,openAuthCodePopup:j,openSignUpPopup:W}=(0,_.useBizProductContext)(),Y=(0,z.useBenefits)({variant:l}),[M,q]=(0,w.useState)("coupon"),{trackingData:$,locale:m="us",copyWriting:K}=(0,Z.useAiuiContext)(),S=(0,w.useRef)(null),n={...ce,...t},{activated:J=!1}=r||{},{memberDiscount:u,commonCoupon:f,creditsRedemption:x,freeGift:V,bundle:F,paidShipping:Q,fullGift:P,levelDiscount:H}=Y,X=$?.product?.support??{},{thirdParty:me={}}=$?.common||{},h=[f?.enable?{...f.config,isAutoUse:D?.coupon>0,useAble:!0,borderStyle:"rounded",code:f?.config?.title??"",description:f?.config?.desc??"",onUseChange:i=>{const p=i?L?.codeSavings??0:0;B?.(p)},title:(0,N.replaceTemplate)(n.offCoupon,{discount:f?.config?.value_type=="percentage"?Math.abs(Number(f?.config?.value||0))+"%":(0,g.formatPrice)({amount:Math.abs(Number(f?.config?.fixed_value||0)),currencyCode:l.price.currencyCode,locale:m})})}:null,u.enable?{useAble:!0,isAutoUse:o,title:(0,N.replaceTemplate)(n.offMemberOnly,{amount:(0,g.formatPrice)({amount:u?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m})}),description:(0,e.jsxs)(e.Fragment,{children:[o?u?.config?.description??"":n.memberBenefitsNotLogin.replace("{amount}",(0,g.formatPrice)({amount:u?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m}))??""," ",o?"":(0,e.jsx)("span",{role:"button",tabIndex:0,onClick:()=>C?.(),className:"underline",children:n.loginNow})]}),borderStyle:"rounded",onUseChange:i=>{if(o){const p=i?u?.config?.amount??0:0;k?.(p)}else C?.()}}:null,H.enable?{title:H?.config?.title??"",description:H?.config?.tag??"",borderStyle:"inset",bgImage:{url:"https://cdn.shopify.com/s/files/1/0521/9411/5753/files/levelDiscount.png?v=1760437385"}}:null,V.enable?{title:V?.config?.title??"",description:n.selectFreeGift,borderStyle:"inset",bgImage:{url:"https://cdn.shopify.com/s/files/1/0516/3761/6830/files/gift.png?v=1759113534"},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null,F.enable?{title:`${n.bundleSaveUpTo} ${(0,g.formatPrice)({amount:Math.max(...F?.config?.bundleList?.map(i=>i.savings??0)??[]),currencyCode:l.price.currencyCode,locale:m})}`,borderStyle:"inset",description:n.bundleOffer.replace("{count}",F?.config?.bundleList?.length?.toString()??""),bgImage:{url:"https://cdn.shopify.com/s/files/1/0516/3761/6830/files/bundle.png?v=1759113534"},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null,P.enable?{title:P?.config?.title??"",description:P?.config?.desc??"",borderStyle:"inset",bgImage:{url:"https://cdn.shopify.com/s/files/1/0516/3761/6830/files/fullGift.png?v=1759141790"},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null,x.enable?{title:n.creditsTitle,description:n.creditsDesc,borderStyle:"inset",bgImage:{url:"https://cdn.shopify.com/s/files/1/0516/3761/6830/files/cash.png?v=1759113534"},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null].filter(Boolean),ee=()=>{j?.()};if(!d.default)return null;const A=i=>{if(S.current){const p=S.current,I=i.currentTarget;console.log("button",I.offsetLeft);const te=I.offsetLeft-p.offsetWidth/2+I.offsetWidth/2;p.scrollTo({left:te,behavior:"smooth"})}};return(0,e.jsxs)(d.default,{onValueChange:i=>q(i),defaultValue:h?.length?"coupon":"membership",children:[(0,e.jsxs)(d.default.List,{ref:S,children:[h?.length?(0,e.jsx)(d.default.Trigger,{className:(0,T.cn)(M==="coupon"&&"text-[#1D1D1F]"),value:"coupon",onClick:A,children:n.yourBenefits}):null,(0,e.jsx)(d.default.Trigger,{className:(0,T.cn)(M==="membership"&&"text-[#1D1D1F]"),value:"membership",onClick:A,children:n.memberBenefits}),(0,e.jsx)(d.default.Trigger,{className:(0,T.cn)(M==="installment"&&"text-[#1D1D1F]"),value:"installment",onClick:A,children:n.installment})]}),(0,e.jsx)("style",{global:!0,jsx:!0,children:`
18
- .coupon-container::-webkit-scrollbar {
17
+ `}),(0,e.jsxs)("div",{style:{background:t.couponBgColor||"white"},className:(0,_.default)("relative h-[100px] overflow-hidden laptop:h-[112px] lg-desktop:h-[130px]",t.borderStyle==="inset"?"coupon-card ":"rounded-[8px]"),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:"relative z-1 p-3",children:[(0,e.jsxs)("div",{className:"flex items-center justify-start",children:[t.useAble&&(0,e.jsx)(i.Checkbox,{size:"lg",className:"mr-2 rounded-full border-[#D1D1D1] border-[1.6px] data-[state=checked]:border-primary",checked:t?.isAutoUse,onCheckedChange:x=>{t?.onUseChange?.(x)}}),(0,e.jsx)(i.Text,{html:t.title,className:"text-[16px] font-bold laptop:text-[20px] lg-desktop:text-[24px]"})]}),(0,e.jsx)(i.Text,{...typeof t.description=="string"?{html:t.description}:{},as:"p",className:"mt-2 pr-8 text-[14px] font-bold text-[#3D3D3F] lg-desktop:text-[16px]",children:t.description}),t.code&&(0,e.jsxs)("div",{className:"last:mt-2 flex items-center gap-2",children:[(0,e.jsx)(i.Text,{html:`${o.couponCode}: ${t.code}`,className:"text-base font-bold text-[#3D3D3F]"}),(0,e.jsx)("button",{className:"text-base font-bold underline",onClick:()=>a(t.code??""),children:l?c?.copied||o.copied:c?.copy||o.copyCode})]}),t.ends_at&&(0,e.jsx)("button",{onClick:()=>{c?.modal&&M(c?.modal)},className:"mt-[4px] text-left text-[14px] font-semibold text-[#1F2021] x:text-[12px] md-l:hidden",children:Number(b)<Number(c?.hurry?.daysLeft)?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:c?.ends}),(0,e.jsx)("span",{className:"font-bold",children:` ${b} ${c?.days} ${w.toString().padStart(2,"0")}:${k.toString().padStart(2,"0")}:${L.toString().padStart(2,"0")}`})]}):c?.hurry?.label||o.expired})]})]})]})},de=({coupons:t,className:o,textConfig:r})=>(0,e.jsx)("div",{className:(0,_.default)("flex flex-col gap-3 laptop:grid laptop:grid-cols-2 desktop:grid-cols-1",o),children:t?.map((l,a)=>(0,e.jsx)(pe,{item:l,textConfig:r},a))}),ue=({textConfig:t})=>{const{isLogin:o,profile:r,variant:l,renderAffirm:a,renderKlarna:c,renderPaypal:b,onUseCouponChange:w,onUseMemberDiscountChange:k,discount:L,savingDetail:M,openModal:Z,openSignInPopup:x,openAuthCodePopup:j,openSignUpPopup:W}=(0,I.useBizProductContext)(),Y=(0,z.useBenefits)({variant:l}),[S,q]=(0,B.useState)("coupon"),{trackingData:R,locale:m="us",copyWriting:K}=(0,U.useAiuiContext)(),D=(0,B.useRef)(null),n={...ce,...t},{activated:J=!1}=r||{},{memberDiscount:u,commonCoupon:f,creditsRedemption:C,freeGift:$,bundle:F,paidShipping:Q,fullGift:P,levelDiscount:H}=Y,X=R?.product?.support??{},{thirdParty:me={}}=R?.common||{},h=[f?.enable?{...f.config,isAutoUse:M?.coupon>0,useAble:!0,borderStyle:"rounded",code:f?.config?.title??"",description:f?.config?.desc??"",onUseChange:s=>{const p=s?L?.codeSavings??0:0;w?.(p)},title:(0,N.replaceTemplate)(n.offCoupon,{discount:f?.config?.value_type=="percentage"?Math.abs(Number(f?.config?.value||0))+"%":(0,g.formatPrice)({amount:Math.abs(Number(f?.config?.fixed_value||0)),currencyCode:l.price.currencyCode,locale:m})})}:null,u.enable?{useAble:!0,isAutoUse:o,title:(0,N.replaceTemplate)(n.offMemberOnly,{amount:(0,g.formatPrice)({amount:u?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m})}),description:(0,e.jsxs)(e.Fragment,{children:[o?u?.config?.description??"":n.memberBenefitsNotLogin.replace("{amount}",(0,g.formatPrice)({amount:u?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m}))??""," ",o?"":(0,e.jsx)("span",{role:"button",tabIndex:0,onClick:()=>x?.(),className:"underline",children:n.loginNow})]}),borderStyle:"rounded",onUseChange:s=>{if(o){const p=s?u?.config?.amount??0:0;k?.(p)}else x?.()}}:null,H.enable?{title:H?.config?.title??"",description:H?.config?.tag??"",borderStyle:"inset",bgImage:{url:"https://cdn.shopify.com/s/files/1/0521/9411/5753/files/levelDiscount.png?v=1760437385"}}:null,$.enable?{title:$?.config?.title??"",description:n.selectFreeGift,borderStyle:"inset",bgImage:{url:"https://cdn.shopify.com/s/files/1/0516/3761/6830/files/gift.png?v=1759113534"},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null,F.enable?{title:`${n.bundleSaveUpTo} ${(0,g.formatPrice)({amount:Math.max(...F?.config?.bundleList?.map(s=>s.savings??0)??[]),currencyCode:l.price.currencyCode,locale:m})}`,borderStyle:"inset",description:n.bundleOffer.replace("{count}",F?.config?.bundleList?.length?.toString()??""),bgImage:{url:"https://cdn.shopify.com/s/files/1/0516/3761/6830/files/bundle.png?v=1759113534"},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null,P.enable?{title:P?.config?.title??"",description:P?.config?.desc??"",borderStyle:"inset",bgImage:{url:"https://cdn.shopify.com/s/files/1/0516/3761/6830/files/fullGift.png?v=1759141790"},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null,C.enable?{title:n.creditsTitle,description:n.creditsDesc,borderStyle:"inset",bgImage:{url:"https://cdn.shopify.com/s/files/1/0516/3761/6830/files/cash.png?v=1759113534"},couponBgColor:"linear-gradient(94deg, rgba(215, 245, 254, 0.24) 4.2%, rgba(215, 245, 254, 0.80) 99.11%), #FFF"}:null].filter(Boolean),ee=()=>{j?.()};if(!d.default)return null;const A=s=>{if(D.current){const p=D.current,V=s.currentTarget,te=V.offsetLeft-p.offsetWidth/2+V.offsetWidth/2;p.scrollTo({left:te,behavior:"smooth"})}};return(0,e.jsxs)(d.default,{onValueChange:s=>q(s),defaultValue:h?.length?"coupon":"membership",children:[(0,e.jsxs)(d.default.List,{ref:D,children:[h?.length?(0,e.jsx)(d.default.Trigger,{className:(0,T.cn)(S==="coupon"&&"text-[#1D1D1F]"),value:"coupon",onClick:A,children:n.yourBenefits}):null,(0,e.jsx)(d.default.Trigger,{className:(0,T.cn)(S==="membership"&&"text-[#1D1D1F]"),value:"membership",onClick:A,children:n.memberBenefits}),(0,e.jsx)(d.default.Trigger,{className:(0,T.cn)(S==="installment"&&"text-[#1D1D1F]"),value:"installment",onClick:A,children:n.installment})]}),(0,e.jsx)("style",{global:!0,jsx:!0,children:`
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 */
21
21
  }
22
22
 
23
- .coupon-container::-webkit-scrollbar-track {
23
+ .benefits-tabs-content::-webkit-scrollbar-track {
24
24
  background: transparent; /* \u6EDA\u52A8\u6761\u8F68\u9053\u80CC\u666F */
25
25
  }
26
26
 
27
- .coupon-container::-webkit-scrollbar-thumb {
27
+ .benefits-tabs-content::-webkit-scrollbar-thumb {
28
28
  background-color: #d1d1d1; /* \u6EDA\u52A8\u6761\u989C\u8272 */
29
29
  border-radius: 9999px; /* \u5706\u89D2 */
30
30
  }
31
31
 
32
- .coupon-container::-webkit-scrollbar-thumb:hover {
32
+ .benefits-tabs-content::-webkit-scrollbar-thumb:hover {
33
33
  background-color: rgba(100, 100, 100, 0.6);
34
34
  }
35
- `}),h?.length?(0,e.jsx)(d.default.Content,{value:"coupon",className:"",children:(0,e.jsx)("div",{className:"coupon-container h-[240px] overflow-y-auto p-3 lg-desktop:p-4",children:(0,e.jsx)(de,{coupons:h,className:"",textConfig:n})})}):null,(0,e.jsxs)(d.default.Content,{value:"membership",className:"",children:[(0,e.jsx)("h3",{className:"mx-4 mb-2 text-left text-lg font-bold",children:n.memberBenefits}),(0,e.jsx)("div",{className:`overflow-y-auto rounded-[16px] px-4 ${o?"max-h-[240px]":"max-h-[160px]"}`,children:(0,e.jsxs)("ul",{className:`list-none [&_li:first-child]:rounded-t-[16px]
35
+ `}),h?.length?(0,e.jsx)(d.default.Content,{value:"coupon",className:"benefits-tabs-content overflow-y-auto lg-desktop:h-[240px] desktop:h-[196px] h-[180px] laptop:h-[220px]",children:(0,e.jsx)("div",{className:"p-3 lg-desktop:p-4",children:(0,e.jsx)(de,{coupons:h,className:"",textConfig:n})})}):null,(0,e.jsx)(d.default.Content,{value:"membership",className:"benefits-tabs-content overflow-y-auto lg-desktop:h-[240px] desktop:h-[196px] h-[180px] laptop:h-[220px]",children:(0,e.jsxs)("div",{className:"p-3 lg-desktop:p-4 ",children:[!o&&(0,e.jsx)("h3",{className:"mx-4 mb-2 text-left text-lg font-bold",children:n.memberBenefitsNotLoginText}),(0,e.jsx)("div",{className:`overflow-y-auto rounded-[16px] px-4 ${o?"max-h-[240px]":"max-h-[160px]"}`,children:(0,e.jsxs)("ul",{className:`list-none [&_li:first-child]:rounded-t-[16px]
36
36
  [&_li:last-child]:rounded-b-[16px] [&_li:last-child]:last:border-b-0 [&_li]:flex [&_li]:items-center [&_li]:gap-2
37
37
  [&_li]:border-b [&_li]:border-b-[#E4E5E6] [&_li]:bg-white [&_li]:px-4
38
38
  [&_li]:py-4
39
- [&_li]:text-left`,children:[u.enable&&(0,e.jsxs)("li",{children:[(0,e.jsx)("svg",{width:"24",height:"24",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:"text-left text-[16px] font-medium x:text-[14px]",children:(0,N.replaceTemplate)(n.forNewMember,{amount:(0,g.formatPrice)({amount:u?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m})})})]}),X.items?.map((i,p)=>i.modalText?(0,e.jsx)("li",{children:(0,e.jsxs)("button",{onClick:()=>R?.({title:i.text,content:i.modalText}),className:"flex",children:[(0,e.jsx)(s.Picture,{source:i.icon,alt:i.text,className:"mr-[8px] size-[20px] shrink-0"}),(0,e.jsx)(s.Text,{className:"text-left text-[16px] font-medium x:text-[14px]",children:i.text})]},p)},p):(0,e.jsxs)("li",{className:"flex",children:[(0,e.jsx)(s.Picture,{source:i.icon,alt:i.text,className:"mr-[8px] size-[20px] shrink-0"}),(0,e.jsx)(s.Text,{as:"p",className:"text-left text-[16px] font-medium x:text-[14px]",children:i.text})]},p)),Q.enable?(0,e.jsxs)("li",{children:[(0,e.jsx)("svg",{width:"24",height:"24",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:"text-left text-[16px] font-medium x:text-[14px]",children:n.expressShipping})]}):null,x.enable?(0,e.jsxs)("li",{children:[(0,e.jsx)("svg",{width:"24",height:"24",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:"text-left text-[16px] font-medium x:text-[14px]",children:J?x?.config?.label?.replace("{{amount}}",(0,g.formatPrice)({amount:x?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m})):(0,e.jsxs)(e.Fragment,{children:[n.creditsAfterActivation,(0,e.jsx)("span",{role:"button",tabIndex:0,onClick:()=>ee(),className:"underline",children:n.active})]})})]}):null]})}),!o&&(0,e.jsx)("div",{className:"px-4 pt-4",children:(0,e.jsx)(s.Button,{variant:"primary",className:"w-full",onClick:()=>W?.(),children:K?.signUp})})]}),(0,e.jsxs)(d.default.Content,{value:"installment",className:"px-4",children:[(0,e.jsx)(s.Heading,{size:2,className:"mb-2 text-left text-lg font-bold",children:n.flexibleInstallment}),(0,e.jsxs)("div",{className:"overflow-hidden rounded-[16px] bg-white",children:[a,c,b&&(0,e.jsx)("div",{className:"border-b border-[#D9D9D9] bg-white px-4 py-4 last:border-b-0",children:b})]})]})]})};var fe=ue;
39
+ [&_li]:text-left`,children:[u.enable&&(0,e.jsxs)("li",{children:[(0,e.jsx)("svg",{width:"24",height:"24",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:"text-left text-[16px] font-bold x:text-[14px]",children:(0,N.replaceTemplate)(n.forNewMember,{amount:(0,g.formatPrice)({amount:u?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m})})})]}),X.items?.map((s,p)=>s.modalText?(0,e.jsx)("li",{children:(0,e.jsxs)("button",{onClick:()=>Z?.({title:s.text,content:s.modalText}),className:"flex",children:[(0,e.jsx)(i.Picture,{source:s.icon,alt:s.text,className:"mr-[8px] size-[20px] shrink-0"}),(0,e.jsx)(i.Text,{className:"text-left text-[16px] font-bold x:text-[14px]",children:s.text})]},p)},p):(0,e.jsxs)("li",{className:"flex",children:[(0,e.jsx)(i.Picture,{source:s.icon,alt:s.text,className:"mr-[8px] size-[20px] shrink-0"}),(0,e.jsx)(i.Text,{as:"p",className:"text-left text-[16px] font-bold x:text-[14px]",children:s.text})]},p)),Q.enable?(0,e.jsxs)("li",{children:[(0,e.jsx)("svg",{width:"24",height:"24",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:"text-left text-[16px] font-bold x:text-[14px]",children:n.expressShipping})]}):null,C.enable?(0,e.jsxs)("li",{children:[(0,e.jsx)("svg",{width:"24",height:"24",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:"text-left text-[16px] font-medium x:text-[14px]",children:J?C?.config?.label?.replace("{{amount}}",(0,g.formatPrice)({amount:C?.config?.amount??0,currencyCode:l.price.currencyCode,locale:m})):(0,e.jsxs)(e.Fragment,{children:[n.creditsAfterActivation,(0,e.jsx)("span",{role:"button",tabIndex:0,onClick:()=>ee(),className:"underline",children:n.active})]})})]}):null]})}),!o&&(0,e.jsx)("div",{className:"px-4 pt-4",children:(0,e.jsx)(i.Button,{variant:"primary",className:"w-full",onClick:()=>W?.(),children:K?.signUp})})]})}),(0,e.jsxs)(d.default.Content,{value:"installment",className:"benefits-tabs-content overflow-y-auto px-4 lg-desktop:h-[240px] desktop:h-[196px] h-[180px] laptop:h-[220px] ",children:[(0,e.jsx)(i.Heading,{size:2,className:"mb-2 text-left text-lg font-bold",children:n.flexibleInstallment}),(0,e.jsxs)("div",{className:"overflow-hidden rounded-[16px] bg-white",children:[a,c,b]})]})]})};var fe=ue;
40
40
  //# 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 jsx-a11y/click-events-have-key-events */\nimport { Button, Checkbox, Text, Picture, Heading } from '../../../../../components/index.js'\nimport ProductBenefitsTabs from './ProductBenefitsTabs/index.js'\nimport { useBizProductContext } from '../../../BizProductProvider.js'\nimport { useBenefits } from '../../../hooks/useBenefits'\nimport { formatPrice } from '../../../utils/index.js'\nimport { replaceTemplate } from '../../../utils/textFormat'\nimport classNames from 'classnames'\nimport React, { useRef, useState } from 'react'\nimport { useAiuiContext } from '../../../../AiuiProvider/index.js'\nimport useCountDown from '../../../../../hooks/useCountDown.js'\nimport useCopy from '../../../hooks/useCopy'\nimport { cn } from '../../../../../helpers/index.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 yourBenefits?: string // \"Your Benefits\"\n off?: string // \"off\"\n memberBenefits?: string // \"Member Benefits\"\n memberBenefitsNotLogin?: string // \"Member Benefits\"\n installment?: string // \"Installment\"\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 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 yourBenefits: 'Your Benefits',\n off: ' off',\n memberBenefits: 'Member Benefits',\n memberBenefitsNotLogin: 'You will enjoy a {amount} member discount after logging in.',\n installment: 'Installment',\n forNewMember: '{amount} 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) => void\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}: {\n item: NonNullable<CouponContentProps['coupons']>[number]\n textConfig: Required<BenefitsTabTextConfig>\n}) => {\n const { trackingData } = useAiuiContext()\n const { copied: isCopied, copy: copyToClipboard } = useCopy()\n const couponCopy = trackingData?.common?.coupon\n const { days, hours, minutes, seconds } = useCountDown({ endTime: item?.ends_at || '' })\n const { openModal, isLogin } = 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={classNames(\n 'relative h-[100px] overflow-hidden laptop:h-[112px] lg-desktop:h-[130px]',\n item.borderStyle === 'inset' ? 'coupon-card ' : 'rounded-[8px]'\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=\"relative z-1 p-3\">\n <div className=\"flex items-center justify-start\">\n {item.useAble && (\n <Checkbox\n size=\"lg\"\n className=\"mr-2 rounded-full border-[#D1D1D1] border-[1.6px] data-[state=checked]:border-primary\"\n checked={item?.isAutoUse}\n onCheckedChange={(e: boolean) => {\n item?.onUseChange?.(e)\n }}\n />\n )}\n <Text html={item.title} className=\"text-[16px] font-bold laptop:text-[20px] lg-desktop:text-[24px]\" />\n </div>\n <Text\n {...(typeof item.description === 'string' ? { html: item.description } : {})}\n as=\"p\"\n className=\"mt-2 pr-8 text-[14px] font-bold text-[#3D3D3F] lg-desktop:text-[16px]\"\n >\n {item.description}\n </Text>\n {item.code && (\n <div className=\"last:mt-2 flex items-center gap-2\">\n <Text html={`${textConfig.couponCode}: ${item.code}`} className=\"text-base font-bold text-[#3D3D3F]\" />\n <button className=\"text-base font-bold underline\" onClick={() => copyToClipboard(item.code ?? '')}>\n {isCopied ? couponCopy?.copied || textConfig.copied : couponCopy?.copy || textConfig.copyCode}\n </button>\n </div>\n )}\n {item.ends_at && (\n <button\n onClick={() => {\n if (couponCopy?.modal) {\n openModal(couponCopy?.modal!)\n }\n }}\n className=\"mt-[4px] text-left text-[14px] font-semibold text-[#1F2021] x:text-[12px] md-l:hidden\"\n >\n {Number(days) < Number(couponCopy?.hurry?.daysLeft) ? (\n <>\n <span>{couponCopy?.ends}</span>\n <span className=\"font-bold\">\n {` ${days} ${couponCopy?.days} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`}\n </span>\n </>\n ) : (\n couponCopy?.hurry?.label || textConfig.expired\n )}\n </button>\n )}\n </div>\n </div>\n </>\n )\n}\n\nconst CouponContent = ({\n coupons,\n className,\n textConfig,\n}: CouponContentProps & { textConfig: Required<BenefitsTabTextConfig> }) => {\n return (\n <div className={classNames('flex flex-col gap-3 laptop:grid laptop:grid-cols-2 desktop:grid-cols-1', className)}>\n {coupons?.map((item, index) => <CouponItem key={index} item={item} textConfig={textConfig} />)}\n </div>\n )\n}\n\nconst BenefitsTab = ({ textConfig }: BenefitsTabProps) => {\n const {\n isLogin,\n profile,\n variant,\n renderAffirm,\n renderKlarna,\n renderPaypal,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n savingDetail,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n } = useBizProductContext()\n const benefits = useBenefits({ variant })\n const [productBenefitsTabsValue, setProductBenefitsTabsValue] = useState<'coupon' | 'membership' | 'installment'>(\n 'coupon'\n )\n const { trackingData, 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 productsBenefits = trackingData?.product?.support ?? {}\n const { thirdParty = {} } = trackingData?.common || {}\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(mergedTextConfig.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: isLogin,\n title: replaceTemplate(mergedTextConfig.offMemberOnly, {\n amount: formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n }),\n }),\n description: (\n <>\n {isLogin\n ? (memberDiscount?.config?.description ?? '')\n : (mergedTextConfig.memberBenefitsNotLogin.replace(\n '{amount}',\n formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n })\n ) ?? '')}{' '}\n {isLogin ? (\n ''\n ) : (\n <span role=\"button\" tabIndex={0} onClick={() => openSignInPopup?.()} className=\"underline\">\n {mergedTextConfig.loginNow}\n </span>\n )}\n </>\n ),\n borderStyle: 'rounded',\n onUseChange: (value: boolean) => {\n if (isLogin) {\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 } else {\n openSignInPopup?.()\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: 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/levelDiscount.png?v=1760437385',\n },\n }\n : null,\n freeGift.enable\n ? {\n title: freeGift?.config?.title ?? '',\n description: mergedTextConfig.selectFreeGift,\n borderStyle: 'inset',\n bgImage: {\n url: 'https://cdn.shopify.com/s/files/1/0516/3761/6830/files/gift.png?v=1759113534',\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: `${mergedTextConfig.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: mergedTextConfig.bundleOffer.replace(\n '{count}',\n bundle?.config?.bundleList?.length?.toString() ?? ''\n ),\n bgImage: {\n url: 'https://cdn.shopify.com/s/files/1/0516/3761/6830/files/bundle.png?v=1759113534',\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: 'https://cdn.shopify.com/s/files/1/0516/3761/6830/files/fullGift.png?v=1759141790',\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: mergedTextConfig.creditsTitle,\n description: mergedTextConfig.creditsDesc,\n borderStyle: 'inset',\n bgImage: {\n url: 'https://cdn.shopify.com/s/files/1/0516/3761/6830/files/cash.png?v=1759113534',\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 const handleActivate = () => {\n openAuthCodePopup?.()\n }\n\n if (!ProductBenefitsTabs) return null\n\n const handleProductBenefitsTabListClick = (el: React.MouseEvent<HTMLButtonElement>) => {\n if (scrollContainerRef.current) {\n const container = scrollContainerRef.current\n const button = el.currentTarget\n console.log('button', button.offsetLeft)\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 return (\n <ProductBenefitsTabs\n onValueChange={value => setProductBenefitsTabsValue(value as 'coupon' | 'membership' | 'installment')}\n defaultValue={coupons?.length ? 'coupon' : 'membership'}\n >\n <ProductBenefitsTabs.List ref={scrollContainerRef}>\n {coupons?.length ? (\n <ProductBenefitsTabs.Trigger\n className={cn(productBenefitsTabsValue === 'coupon' && 'text-[#1D1D1F]')}\n value=\"coupon\"\n onClick={handleProductBenefitsTabListClick}\n >\n {mergedTextConfig.yourBenefits}\n {/* {(savingDetail.coupon || 0) > 0 && (\n <ProductBenefitsTabs.Badge>\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 {mergedTextConfig.off}\n </ProductBenefitsTabs.Badge>\n )} */}\n </ProductBenefitsTabs.Trigger>\n ) : null}\n <ProductBenefitsTabs.Trigger\n className={cn(productBenefitsTabsValue === 'membership' && 'text-[#1D1D1F]')}\n value=\"membership\"\n onClick={handleProductBenefitsTabListClick}\n >\n {mergedTextConfig.memberBenefits}\n </ProductBenefitsTabs.Trigger>\n <ProductBenefitsTabs.Trigger\n className={cn(productBenefitsTabsValue === 'installment' && 'text-[#1D1D1F]')}\n value=\"installment\"\n onClick={handleProductBenefitsTabListClick}\n >\n {mergedTextConfig.installment}\n </ProductBenefitsTabs.Trigger>\n </ProductBenefitsTabs.List>\n <style global jsx>\n {`\n .coupon-container::-webkit-scrollbar {\n width: 4px; /* \u6EDA\u52A8\u6761\u5BBD\u5EA6 */\n height: 64px; /* \u6A2A\u5411\u6EDA\u52A8\u6761\u9AD8\u5EA6 */\n }\n\n .coupon-container::-webkit-scrollbar-track {\n background: transparent; /* \u6EDA\u52A8\u6761\u8F68\u9053\u80CC\u666F */\n }\n\n .coupon-container::-webkit-scrollbar-thumb {\n background-color: #d1d1d1; /* \u6EDA\u52A8\u6761\u989C\u8272 */\n border-radius: 9999px; /* \u5706\u89D2 */\n }\n\n .coupon-container::-webkit-scrollbar-thumb:hover {\n background-color: rgba(100, 100, 100, 0.6);\n }\n `}\n </style>\n\n {/* \u4F7F\u7528\u5185\u7F6E\u7684 CouponContent \u5B50\u7EC4\u4EF6 */}\n {coupons?.length ? (\n <ProductBenefitsTabs.Content value=\"coupon\" className=\"\">\n <div className=\"coupon-container h-[240px] overflow-y-auto p-3 lg-desktop:p-4\">\n <CouponContent\n coupons={coupons as NonNullable<CouponContentProps['coupons']>}\n className=\"\"\n textConfig={mergedTextConfig}\n />\n </div>\n </ProductBenefitsTabs.Content>\n ) : null}\n\n <ProductBenefitsTabs.Content value=\"membership\" className=\"\">\n <h3 className=\"mx-4 mb-2 text-left text-lg font-bold\">{mergedTextConfig.memberBenefits}</h3>\n <div className={`overflow-y-auto rounded-[16px] px-4 ${isLogin ? 'max-h-[240px]' : 'max-h-[160px]'}`}>\n <ul\n className={`list-none [&_li:first-child]:rounded-t-[16px] \n [&_li:last-child]:rounded-b-[16px] [&_li:last-child]:last:border-b-0 [&_li]:flex [&_li]:items-center [&_li]:gap-2\n [&_li]:border-b [&_li]:border-b-[#E4E5E6] [&_li]:bg-white [&_li]:px-4\n [&_li]:py-4 \n [&_li]:text-left`}\n >\n {memberDiscount.enable && (\n <li>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"text-left text-[16px] font-medium x:text-[14px]\">\n {replaceTemplate(mergedTextConfig.forNewMember, {\n amount: formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n }),\n })}\n </Text>\n </li>\n )}\n {productsBenefits.items?.map((item: any, index: number) =>\n item.modalText ? (\n <li key={index}>\n <button\n onClick={() => openModal?.({ title: item.text, content: item.modalText })}\n key={index}\n className=\"flex\"\n >\n <Picture source={item.icon} alt={item.text} className=\"mr-[8px] size-[20px] shrink-0\" />\n <Text className=\"text-left text-[16px] font-medium x:text-[14px]\">{item.text}</Text>\n </button>\n </li>\n ) : (\n <li key={index} className=\"flex\">\n <Picture source={item.icon} alt={item.text} className=\"mr-[8px] size-[20px] shrink-0\" />\n <Text as=\"p\" className=\"text-left text-[16px] font-medium x:text-[14px]\">\n {item.text}\n </Text>\n </li>\n )\n )}\n {/* \u9AD8\u6807\u7269\u6D41 */}\n {paidShipping.enable ? (\n <li>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"text-left text-[16px] font-medium x:text-[14px]\">\n {mergedTextConfig.expressShipping}\n </Text>\n </li>\n ) : null}\n {/* \u79EF\u5206\u62B5\u73B0 */}\n {creditsRedemption.enable ? (\n <li>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"text-left text-[16px] font-medium x:text-[14px]\">\n {activated ? (\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 <>\n {mergedTextConfig.creditsAfterActivation}\n <span role=\"button\" tabIndex={0} onClick={() => handleActivate()} className=\"underline\">\n {mergedTextConfig.active}\n </span>\n </>\n )}\n </Text>\n </li>\n ) : null}\n </ul>\n </div>\n {!isLogin && (\n <div className=\"px-4 pt-4\">\n <Button variant=\"primary\" className=\"w-full\" onClick={() => openSignUpPopup?.()}>\n {copyWriting?.signUp}\n </Button>\n </div>\n )}\n </ProductBenefitsTabs.Content>\n {/* \u81EA\u5B9A\u4E49\u5185\u5BB9 */}\n <ProductBenefitsTabs.Content value=\"installment\" className=\"px-4\">\n <Heading size={2} className=\"mb-2 text-left text-lg font-bold\">\n {mergedTextConfig.flexibleInstallment}\n </Heading>\n <div className=\"overflow-hidden rounded-[16px] bg-white\">\n {renderAffirm}\n {renderKlarna}\n {renderPaypal && (\n <div className=\"border-b border-[#D9D9D9] bg-white px-4 py-4 last:border-b-0\">{renderPaypal}</div>\n )}\n </div>\n </ProductBenefitsTabs.Content>\n </ProductBenefitsTabs>\n )\n}\n\nexport default BenefitsTab\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { Button, Checkbox, Text, Picture, Heading } from '../../../../../components/index.js'\nimport ProductBenefitsTabs from './ProductBenefitsTabs/index.js'\nimport { useBizProductContext } from '../../../BizProductProvider.js'\nimport { useBenefits } from '../../../hooks/useBenefits'\nimport { formatPrice } from '../../../utils/index.js'\nimport { replaceTemplate } from '../../../utils/textFormat'\nimport classNames from 'classnames'\nimport React, { useRef, useState } from 'react'\nimport { useAiuiContext } from '../../../../AiuiProvider/index.js'\nimport useCountDown from '../../../../../hooks/useCountDown.js'\nimport useCopy from '../../../hooks/useCopy'\nimport { cn } from '../../../../../helpers/index.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 yourBenefits?: string // \"Your Benefits\"\n off?: string // \"off\"\n memberBenefits?: string // \"Member Benefits\"\n memberBenefitsNotLogin?: string // \"Member Benefits\"\n memberBenefitsNotLoginText?: string // \n installment?: string // \"Installment\"\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 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 yourBenefits: 'Your Benefits',\n off: ' off',\n memberBenefits: 'Member Benefits',\n memberBenefitsNotLogin: 'You will enjoy a {amount} member discount after logging in.',\n memberBenefitsNotLoginText: \"Sign Up to Get Benefits Below\",\n installment: 'Installment',\n forNewMember: '{amount} 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) => void\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}: {\n item: NonNullable<CouponContentProps['coupons']>[number]\n textConfig: Required<BenefitsTabTextConfig>\n}) => {\n const { trackingData } = useAiuiContext()\n const { copied: isCopied, copy: copyToClipboard } = useCopy()\n const couponCopy = trackingData?.common?.coupon\n const { days, hours, minutes, seconds } = useCountDown({ endTime: item?.ends_at || '' })\n const { openModal, isLogin } = 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={classNames(\n 'relative h-[100px] overflow-hidden laptop:h-[112px] lg-desktop:h-[130px]',\n item.borderStyle === 'inset' ? 'coupon-card ' : 'rounded-[8px]'\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=\"relative z-1 p-3\">\n <div className=\"flex items-center justify-start\">\n {item.useAble && (\n <Checkbox\n size=\"lg\"\n className=\"mr-2 rounded-full border-[#D1D1D1] border-[1.6px] data-[state=checked]:border-primary\"\n checked={item?.isAutoUse}\n onCheckedChange={(e: boolean) => {\n item?.onUseChange?.(e)\n }}\n />\n )}\n <Text html={item.title} className=\"text-[16px] font-bold laptop:text-[20px] lg-desktop:text-[24px]\" />\n </div>\n <Text\n {...(typeof item.description === 'string' ? { html: item.description } : {})}\n as=\"p\"\n className=\"mt-2 pr-8 text-[14px] font-bold text-[#3D3D3F] lg-desktop:text-[16px]\"\n >\n {item.description}\n </Text>\n {item.code && (\n <div className=\"last:mt-2 flex items-center gap-2\">\n <Text html={`${textConfig.couponCode}: ${item.code}`} className=\"text-base font-bold text-[#3D3D3F]\" />\n <button className=\"text-base font-bold underline\" onClick={() => copyToClipboard(item.code ?? '')}>\n {isCopied ? couponCopy?.copied || textConfig.copied : couponCopy?.copy || textConfig.copyCode}\n </button>\n </div>\n )}\n {item.ends_at && (\n <button\n onClick={() => {\n if (couponCopy?.modal) {\n openModal(couponCopy?.modal!)\n }\n }}\n className=\"mt-[4px] text-left text-[14px] font-semibold text-[#1F2021] x:text-[12px] md-l:hidden\"\n >\n {Number(days) < Number(couponCopy?.hurry?.daysLeft) ? (\n <>\n <span>{couponCopy?.ends}</span>\n <span className=\"font-bold\">\n {` ${days} ${couponCopy?.days} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`}\n </span>\n </>\n ) : (\n couponCopy?.hurry?.label || textConfig.expired\n )}\n </button>\n )}\n </div>\n </div>\n </>\n )\n}\n\nconst CouponContent = ({\n coupons,\n className,\n textConfig,\n}: CouponContentProps & { textConfig: Required<BenefitsTabTextConfig> }) => {\n return (\n <div className={classNames('flex flex-col gap-3 laptop:grid laptop:grid-cols-2 desktop:grid-cols-1', className)}>\n {coupons?.map((item, index) => <CouponItem key={index} item={item} textConfig={textConfig} />)}\n </div>\n )\n}\n\nconst BenefitsTab = ({ textConfig }: BenefitsTabProps) => {\n const {\n isLogin,\n profile,\n variant,\n renderAffirm,\n renderKlarna,\n renderPaypal,\n onUseCouponChange,\n onUseMemberDiscountChange,\n discount,\n savingDetail,\n openModal,\n openSignInPopup,\n openAuthCodePopup,\n openSignUpPopup,\n } = useBizProductContext()\n const benefits = useBenefits({ variant })\n const [productBenefitsTabsValue, setProductBenefitsTabsValue] = useState<'coupon' | 'membership' | 'installment'>(\n 'coupon'\n )\n const { trackingData, 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 productsBenefits = trackingData?.product?.support ?? {}\n const { thirdParty = {} } = trackingData?.common || {}\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(mergedTextConfig.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: isLogin,\n title: replaceTemplate(mergedTextConfig.offMemberOnly, {\n amount: formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n }),\n }),\n description: (\n <>\n {isLogin\n ? (memberDiscount?.config?.description ?? '')\n : (mergedTextConfig.memberBenefitsNotLogin.replace(\n '{amount}',\n formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n })\n ) ?? '')}{' '}\n {isLogin ? (\n ''\n ) : (\n <span role=\"button\" tabIndex={0} onClick={() => openSignInPopup?.()} className=\"underline\">\n {mergedTextConfig.loginNow}\n </span>\n )}\n </>\n ),\n borderStyle: 'rounded',\n onUseChange: (value: boolean) => {\n if (isLogin) {\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 } else {\n openSignInPopup?.()\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: 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/levelDiscount.png?v=1760437385',\n },\n }\n : null,\n freeGift.enable\n ? {\n title: freeGift?.config?.title ?? '',\n description: mergedTextConfig.selectFreeGift,\n borderStyle: 'inset',\n bgImage: {\n url: 'https://cdn.shopify.com/s/files/1/0516/3761/6830/files/gift.png?v=1759113534',\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: `${mergedTextConfig.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: mergedTextConfig.bundleOffer.replace(\n '{count}',\n bundle?.config?.bundleList?.length?.toString() ?? ''\n ),\n bgImage: {\n url: 'https://cdn.shopify.com/s/files/1/0516/3761/6830/files/bundle.png?v=1759113534',\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: 'https://cdn.shopify.com/s/files/1/0516/3761/6830/files/fullGift.png?v=1759141790',\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: mergedTextConfig.creditsTitle,\n description: mergedTextConfig.creditsDesc,\n borderStyle: 'inset',\n bgImage: {\n url: 'https://cdn.shopify.com/s/files/1/0516/3761/6830/files/cash.png?v=1759113534',\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 const handleActivate = () => {\n openAuthCodePopup?.()\n }\n\n if (!ProductBenefitsTabs) return null\n\n const handleProductBenefitsTabListClick = (el: React.MouseEvent<HTMLButtonElement>) => {\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 return (\n <ProductBenefitsTabs\n onValueChange={value => setProductBenefitsTabsValue(value as 'coupon' | 'membership' | 'installment')}\n defaultValue={coupons?.length ? 'coupon' : 'membership'}\n >\n <ProductBenefitsTabs.List ref={scrollContainerRef}>\n {coupons?.length ? (\n <ProductBenefitsTabs.Trigger\n className={cn(productBenefitsTabsValue === 'coupon' && 'text-[#1D1D1F]')}\n value=\"coupon\"\n onClick={handleProductBenefitsTabListClick}\n >\n {mergedTextConfig.yourBenefits}\n {/* {(savingDetail.coupon || 0) > 0 && (\n <ProductBenefitsTabs.Badge>\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 {mergedTextConfig.off}\n </ProductBenefitsTabs.Badge>\n )} */}\n </ProductBenefitsTabs.Trigger>\n ) : null}\n <ProductBenefitsTabs.Trigger\n className={cn(productBenefitsTabsValue === 'membership' && 'text-[#1D1D1F]')}\n value=\"membership\"\n onClick={handleProductBenefitsTabListClick}\n >\n {mergedTextConfig.memberBenefits}\n </ProductBenefitsTabs.Trigger>\n <ProductBenefitsTabs.Trigger\n className={cn(productBenefitsTabsValue === 'installment' && 'text-[#1D1D1F]')}\n value=\"installment\"\n onClick={handleProductBenefitsTabListClick}\n >\n {mergedTextConfig.installment}\n </ProductBenefitsTabs.Trigger>\n </ProductBenefitsTabs.List>\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\n {/* \u4F7F\u7528\u5185\u7F6E\u7684 CouponContent \u5B50\u7EC4\u4EF6 */}\n {coupons?.length ? (\n <ProductBenefitsTabs.Content\n value=\"coupon\"\n className=\"benefits-tabs-content overflow-y-auto lg-desktop:h-[240px] desktop:h-[196px] h-[180px] laptop:h-[220px]\"\n >\n <div className=\"p-3 lg-desktop:p-4\">\n <CouponContent\n coupons={coupons as NonNullable<CouponContentProps['coupons']>}\n className=\"\"\n textConfig={mergedTextConfig}\n />\n </div>\n </ProductBenefitsTabs.Content>\n ) : null}\n\n <ProductBenefitsTabs.Content\n value=\"membership\"\n className=\"benefits-tabs-content overflow-y-auto lg-desktop:h-[240px] desktop:h-[196px] h-[180px] laptop:h-[220px]\"\n >\n <div className=\"p-3 lg-desktop:p-4 \">\n {!isLogin && (\n <h3 className=\"mx-4 mb-2 text-left text-lg font-bold\">{mergedTextConfig.memberBenefitsNotLoginText}</h3>\n )}\n <div className={`overflow-y-auto rounded-[16px] px-4 ${isLogin ? 'max-h-[240px]' : 'max-h-[160px]'}`}>\n <ul\n className={`list-none [&_li:first-child]:rounded-t-[16px] \n [&_li:last-child]:rounded-b-[16px] [&_li:last-child]:last:border-b-0 [&_li]:flex [&_li]:items-center [&_li]:gap-2\n [&_li]:border-b [&_li]:border-b-[#E4E5E6] [&_li]:bg-white [&_li]:px-4\n [&_li]:py-4 \n [&_li]:text-left`}\n >\n {memberDiscount.enable && (\n <li>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"text-left text-[16px] font-bold x:text-[14px]\">\n {replaceTemplate(mergedTextConfig.forNewMember, {\n amount: formatPrice({\n amount: memberDiscount?.config?.amount ?? 0,\n currencyCode: variant.price.currencyCode,\n locale,\n }),\n })}\n </Text>\n </li>\n )}\n {productsBenefits.items?.map((item: any, index: number) =>\n item.modalText ? (\n <li key={index}>\n <button\n onClick={() => openModal?.({ title: item.text, content: item.modalText })}\n key={index}\n className=\"flex\"\n >\n <Picture source={item.icon} alt={item.text} className=\"mr-[8px] size-[20px] shrink-0\" />\n <Text className=\"text-left text-[16px] font-bold x:text-[14px]\">{item.text}</Text>\n </button>\n </li>\n ) : (\n <li key={index} className=\"flex\">\n <Picture source={item.icon} alt={item.text} className=\"mr-[8px] size-[20px] shrink-0\" />\n <Text as=\"p\" className=\"text-left text-[16px] font-bold x:text-[14px]\">\n {item.text}\n </Text>\n </li>\n )\n )}\n {/* \u9AD8\u6807\u7269\u6D41 */}\n {paidShipping.enable ? (\n <li>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"text-left text-[16px] font-bold x:text-[14px]\">\n {mergedTextConfig.expressShipping}\n </Text>\n </li>\n ) : null}\n {/* \u79EF\u5206\u62B5\u73B0 */}\n {creditsRedemption.enable ? (\n <li>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"text-left text-[16px] font-medium x:text-[14px]\">\n {activated ? (\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 <>\n {mergedTextConfig.creditsAfterActivation}\n <span role=\"button\" tabIndex={0} onClick={() => handleActivate()} className=\"underline\">\n {mergedTextConfig.active}\n </span>\n </>\n )}\n </Text>\n </li>\n ) : null}\n </ul>\n </div>\n {!isLogin && (\n <div className=\"px-4 pt-4\">\n <Button variant=\"primary\" className=\"w-full\" onClick={() => openSignUpPopup?.()}>\n {copyWriting?.signUp}\n </Button>\n </div>\n )}\n </div>\n </ProductBenefitsTabs.Content>\n {/* \u81EA\u5B9A\u4E49\u5185\u5BB9 */}\n <ProductBenefitsTabs.Content\n value=\"installment\"\n className=\"benefits-tabs-content overflow-y-auto px-4 lg-desktop:h-[240px] desktop:h-[196px] h-[180px] laptop:h-[220px] \"\n >\n <Heading size={2} className=\"mb-2 text-left text-lg font-bold\">\n {mergedTextConfig.flexibleInstallment}\n </Heading>\n <div className=\"overflow-hidden rounded-[16px] bg-white\">\n {renderAffirm}\n {renderKlarna}\n {renderPaypal}\n </div>\n </ProductBenefitsTabs.Content>\n </ProductBenefitsTabs>\n )\n}\n\nexport default BenefitsTab\n"],
5
+ "mappings": "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",
6
6
  "names": ["BenefitsTab_exports", "__export", "BenefitsTab_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_ProductBenefitsTabs", "import_BizProductProvider", "import_useBenefits", "import_utils", "import_textFormat", "import_classnames", "import_react", "import_AiuiProvider", "import_useCountDown", "import_useCopy", "import_helpers", "defaultTextConfig", "CouponItem", "item", "textConfig", "trackingData", "isCopied", "copyToClipboard", "useCopy", "couponCopy", "days", "hours", "minutes", "seconds", "useCountDown", "openModal", "isLogin", "classNames", "e", "CouponContent", "coupons", "className", "index", "BenefitsTab", "profile", "variant", "renderAffirm", "renderKlarna", "renderPaypal", "onUseCouponChange", "onUseMemberDiscountChange", "discount", "savingDetail", "openSignInPopup", "openAuthCodePopup", "openSignUpPopup", "benefits", "productBenefitsTabsValue", "setProductBenefitsTabsValue", "locale", "copyWriting", "scrollContainerRef", "mergedTextConfig", "activated", "memberDiscount", "commonCoupon", "creditsRedemption", "freeGift", "bundle", "paidShipping", "fullGift", "levelDiscount", "productsBenefits", "thirdParty", "value", "couponSaving", "memberSaving", "handleActivate", "ProductBenefitsTabs", "handleProductBenefitsTabListClick", "el", "container", "button", "scrollLeft"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var s in t)c(e,s,{get:t[s],enumerable:!0})},P=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of x(t))!L.call(e,a)&&a!==s&&c(e,a,{get:()=>t[a],enumerable:!(n=v(t,a))||n.enumerable});return e};var h=e=>P(c({},"__esModule",{value:!0}),e);var E={};C(E,{default:()=>A});module.exports=h(E);var i=require("react/jsx-runtime"),u=require("../../../../../../components/index.js"),r=require("react"),l=require("../../../../../../helpers/index.js"),o=require("@radix-ui/react-tabs");const g=(0,r.createContext)(void 0),N=()=>{const e=(0,r.useContext)(g);if(!e)throw new Error("ProductBenefitsTabs components must be used within ProductBenefitsTabs");return e},d=({defaultValue:e,value:t,onValueChange:s,children:n,className:a,...f})=>{const[B,m]=(0,r.useState)(e),T=t??B,b=p=>{t===void 0&&m(p),s?.(p)};return(0,i.jsx)(g.Provider,{value:{activeValue:T,setActiveValue:b},children:(0,i.jsx)("div",{id:"ipc-product-detail-benefits-tabs",className:(0,l.cn)("bg-[#EAEAEC] rounded-xl py-[10px] lg-desktop:py-4",a),...f,children:(0,i.jsx)(o.Root,{value:T,onValueChange:b,children:n})})})},w=(0,r.forwardRef)(({children:e,className:t,...s},n)=>(0,i.jsx)(o.List,{className:(0,l.cn)("flex space-x-6 overflow-x-auto px-4 relative",t),style:{scrollbarWidth:"none",msOverflowStyle:"none"},ref:n,...s,children:e})),H=({value:e,children:t,className:s,...n})=>{const{activeValue:a}=N(),f=a===e;return(0,i.jsxs)(o.Trigger,{value:e,className:(0,l.cn)("text-sm lg-desktop:text-base whitespace-nowrap relative leading-[1.4] font-bold pb-4 text-[#6D6D6F]",s),...n,children:[(0,i.jsx)(u.Text,{className:(0,l.cn)("absolute bottom-0 z-10 left-0 h-[2px] w-0 bg-info-primary transition-all duration-300",f&&"w-full")}),t]})},M=({children:e,className:t,...s})=>(0,i.jsx)(u.Text,{size:1,className:(0,l.cn)("font-bold ml-1 !whitespace-nowrap rounded-full px-2 py-1 text-white bg-brand",t),...s,children:e}),y=({value:e,children:t,className:s,...n})=>(0,i.jsx)(o.Content,{value:e,className:(0,l.cn)(s),...n,children:t});d.displayName="ProductBenefitsTabs",d.List=w,d.Trigger=H,d.Badge=M,d.Content=y;var A=d;
1
+ "use strict";var c=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var s in t)c(e,s,{get:t[s],enumerable:!0})},P=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of v(t))!L.call(e,r)&&r!==s&&c(e,r,{get:()=>t[r],enumerable:!(n=m(t,r))||n.enumerable});return e};var h=e=>P(c({},"__esModule",{value:!0}),e);var y={};C(y,{default:()=>A});module.exports=h(y);var i=require("react/jsx-runtime"),u=require("../../../../../../components/index.js"),a=require("react"),l=require("../../../../../../helpers/index.js"),o=require("@radix-ui/react-tabs");const g=(0,a.createContext)(void 0),E=()=>{const e=(0,a.useContext)(g);if(!e)throw new Error("ProductBenefitsTabs components must be used within ProductBenefitsTabs");return e},d=({defaultValue:e,value:t,onValueChange:s,children:n,className:r,...f})=>{const[x,B]=(0,a.useState)(e),b=t??x,T=p=>{t===void 0&&B(p),s?.(p)};return(0,i.jsx)(g.Provider,{value:{activeValue:b,setActiveValue:T},children:(0,i.jsx)("div",{id:"ipc-product-detail-benefits-tabs",className:(0,l.cn)("bg-[#EAEAEC] rounded-xl pt-[10px] lg-desktop:py-4",r),...f,children:(0,i.jsx)(o.Root,{value:b,onValueChange:T,children:n})})})},N=(0,a.forwardRef)(({children:e,className:t,...s},n)=>(0,i.jsx)(o.List,{className:(0,l.cn)("flex space-x-6 overflow-x-auto px-4 border-b border-[#E4E5E6] relative",t),style:{scrollbarWidth:"none",msOverflowStyle:"none"},ref:n,...s,children:e})),w=({value:e,children:t,className:s,...n})=>{const{activeValue:r}=E(),f=r===e;return(0,i.jsxs)(o.Trigger,{value:e,className:(0,l.cn)("text-sm lg-desktop:text-base whitespace-nowrap relative leading-[1.4] font-bold lg-desktop:pb-4 pb-[10px] text-[#6D6D6F]",s),...n,children:[(0,i.jsx)(u.Text,{className:(0,l.cn)("absolute bottom-0 z-10 left-0 h-[2px] w-0 bg-info-primary transition-all duration-300",f&&"w-full")}),t]})},H=({children:e,className:t,...s})=>(0,i.jsx)(u.Text,{size:1,className:(0,l.cn)("font-bold ml-1 !whitespace-nowrap rounded-full px-2 py-1 text-white bg-brand",t),...s,children:e}),M=({value:e,children:t,className:s,...n})=>(0,i.jsx)(o.Content,{value:e,className:(0,l.cn)(s),...n,children:t});d.displayName="ProductBenefitsTabs",d.List=N,d.Trigger=w,d.Badge=H,d.Content=M;var A=d;
2
2
  //# sourceMappingURL=index.js.map