@anker-in/campaign-ui 0.2.11-beta.3 → 0.2.11-beta.31

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 (491) hide show
  1. package/dist/cjs/components/LiveChatWidget/LiveChatWidget.d.ts +63 -0
  2. package/dist/cjs/components/LiveChatWidget/LiveChatWidget.js +2 -0
  3. package/dist/cjs/components/LiveChatWidget/LiveChatWidget.js.map +7 -0
  4. package/dist/cjs/components/LiveChatWidget/api/chat.d.ts +46 -0
  5. package/dist/cjs/components/LiveChatWidget/api/chat.js +3 -0
  6. package/dist/cjs/components/LiveChatWidget/api/chat.js.map +7 -0
  7. package/dist/cjs/components/LiveChatWidget/components/ChatBubble.d.ts +68 -0
  8. package/dist/cjs/components/LiveChatWidget/components/ChatBubble.js +2 -0
  9. package/dist/cjs/components/LiveChatWidget/components/ChatBubble.js.map +7 -0
  10. package/dist/cjs/components/LiveChatWidget/components/ChatHeader.d.ts +57 -0
  11. package/dist/cjs/components/LiveChatWidget/components/ChatHeader.js +2 -0
  12. package/dist/cjs/components/LiveChatWidget/components/ChatHeader.js.map +7 -0
  13. package/dist/cjs/components/LiveChatWidget/components/ChatInput.d.ts +70 -0
  14. package/dist/cjs/components/LiveChatWidget/components/ChatInput.js +2 -0
  15. package/dist/cjs/components/LiveChatWidget/components/ChatInput.js.map +7 -0
  16. package/dist/cjs/components/LiveChatWidget/components/ChatMessage.d.ts +59 -0
  17. package/dist/cjs/components/LiveChatWidget/components/ChatMessage.js +5 -0
  18. package/dist/cjs/components/LiveChatWidget/components/ChatMessage.js.map +7 -0
  19. package/dist/cjs/components/LiveChatWidget/components/ChatWindow.d.ts +127 -0
  20. package/dist/cjs/components/LiveChatWidget/components/ChatWindow.js +2 -0
  21. package/dist/cjs/components/LiveChatWidget/components/ChatWindow.js.map +7 -0
  22. package/dist/cjs/components/LiveChatWidget/components/MessageContent/CartCard.d.ts +54 -0
  23. package/dist/cjs/components/LiveChatWidget/components/MessageContent/CartCard.js +2 -0
  24. package/dist/cjs/components/LiveChatWidget/components/MessageContent/CartCard.js.map +7 -0
  25. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ErrorBlock.d.ts +33 -0
  26. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ErrorBlock.js +2 -0
  27. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ErrorBlock.js.map +7 -0
  28. package/dist/cjs/components/LiveChatWidget/components/MessageContent/FAQList.d.ts +16 -0
  29. package/dist/cjs/components/LiveChatWidget/components/MessageContent/FAQList.js +2 -0
  30. package/dist/cjs/components/LiveChatWidget/components/MessageContent/FAQList.js.map +7 -0
  31. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PolicyBlock.d.ts +45 -0
  32. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PolicyBlock.js +5 -0
  33. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PolicyBlock.js.map +7 -0
  34. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.d.ts +41 -0
  35. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.js +2 -0
  36. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.js.map +7 -0
  37. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductComparison.d.ts +75 -0
  38. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductComparison.js +2 -0
  39. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductComparison.js.map +7 -0
  40. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductList.d.ts +47 -0
  41. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductList.js +2 -0
  42. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductList.js.map +7 -0
  43. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PromotionList.d.ts +81 -0
  44. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PromotionList.js +2 -0
  45. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PromotionList.js.map +7 -0
  46. package/dist/cjs/components/LiveChatWidget/components/MessageContent/QuickReplies.d.ts +54 -0
  47. package/dist/cjs/components/LiveChatWidget/components/MessageContent/QuickReplies.js +2 -0
  48. package/dist/cjs/components/LiveChatWidget/components/MessageContent/QuickReplies.js.map +7 -0
  49. package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.d.ts +31 -0
  50. package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.js +2 -0
  51. package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.js.map +7 -0
  52. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ThinkingBlock.d.ts +31 -0
  53. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js +2 -0
  54. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js.map +7 -0
  55. package/dist/cjs/components/LiveChatWidget/components/MessageContent/index.d.ts +15 -0
  56. package/dist/cjs/components/LiveChatWidget/components/MessageContent/index.js +2 -0
  57. package/dist/cjs/components/LiveChatWidget/components/MessageContent/index.js.map +7 -0
  58. package/dist/cjs/components/LiveChatWidget/components/MessageContent.d.ts +63 -0
  59. package/dist/cjs/components/LiveChatWidget/components/MessageContent.js +2 -0
  60. package/dist/cjs/components/LiveChatWidget/components/MessageContent.js.map +7 -0
  61. package/dist/cjs/components/LiveChatWidget/components/MessageList.d.ts +74 -0
  62. package/dist/cjs/components/LiveChatWidget/components/MessageList.js +5 -0
  63. package/dist/cjs/components/LiveChatWidget/components/MessageList.js.map +7 -0
  64. package/dist/cjs/components/LiveChatWidget/components/ScrollAnchor.d.ts +44 -0
  65. package/dist/cjs/components/LiveChatWidget/components/ScrollAnchor.js +2 -0
  66. package/dist/cjs/components/LiveChatWidget/components/ScrollAnchor.js.map +7 -0
  67. package/dist/cjs/components/LiveChatWidget/constants.d.ts +13 -0
  68. package/dist/cjs/components/LiveChatWidget/constants.js +2 -0
  69. package/dist/cjs/components/LiveChatWidget/constants.js.map +7 -0
  70. package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.d.ts +60 -0
  71. package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.js +2 -0
  72. package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.js.map +7 -0
  73. package/dist/cjs/components/LiveChatWidget/hooks/useChatState.d.ts +151 -0
  74. package/dist/cjs/components/LiveChatWidget/hooks/useChatState.js +2 -0
  75. package/dist/cjs/components/LiveChatWidget/hooks/useChatState.js.map +7 -0
  76. package/dist/cjs/components/LiveChatWidget/hooks/useSession.d.ts +37 -0
  77. package/dist/cjs/components/LiveChatWidget/hooks/useSession.js +2 -0
  78. package/dist/cjs/components/LiveChatWidget/hooks/useSession.js.map +7 -0
  79. package/dist/cjs/components/LiveChatWidget/index.d.ts +12 -0
  80. package/dist/cjs/components/LiveChatWidget/index.js +2 -0
  81. package/dist/cjs/components/LiveChatWidget/index.js.map +7 -0
  82. package/dist/cjs/components/LiveChatWidget/types.d.ts +767 -0
  83. package/dist/cjs/components/LiveChatWidget/types.js +2 -0
  84. package/dist/cjs/components/LiveChatWidget/types.js.map +7 -0
  85. package/dist/cjs/components/LiveChatWidget/utils/cartTransformers.d.ts +25 -0
  86. package/dist/cjs/components/LiveChatWidget/utils/cartTransformers.js +2 -0
  87. package/dist/cjs/components/LiveChatWidget/utils/cartTransformers.js.map +7 -0
  88. package/dist/cjs/components/LiveChatWidget/utils/fetcher.d.ts +36 -0
  89. package/dist/cjs/components/LiveChatWidget/utils/fetcher.js +2 -0
  90. package/dist/cjs/components/LiveChatWidget/utils/fetcher.js.map +7 -0
  91. package/dist/cjs/components/LiveChatWidget/utils/messageRenderers.d.ts +64 -0
  92. package/dist/cjs/components/LiveChatWidget/utils/messageRenderers.js +2 -0
  93. package/dist/cjs/components/LiveChatWidget/utils/messageRenderers.js.map +7 -0
  94. package/dist/cjs/components/LiveChatWidget/utils/productTransformers.d.ts +43 -0
  95. package/dist/cjs/components/LiveChatWidget/utils/productTransformers.js +2 -0
  96. package/dist/cjs/components/LiveChatWidget/utils/productTransformers.js.map +7 -0
  97. package/dist/cjs/components/LiveChatWidget/utils/userId.d.ts +18 -0
  98. package/dist/cjs/components/LiveChatWidget/utils/userId.js +2 -0
  99. package/dist/cjs/components/LiveChatWidget/utils/userId.js.map +7 -0
  100. package/dist/cjs/components/LiveChatWidget/utils/validation.d.ts +37 -0
  101. package/dist/cjs/components/LiveChatWidget/utils/validation.js +2 -0
  102. package/dist/cjs/components/LiveChatWidget/utils/validation.js.map +7 -0
  103. package/dist/cjs/components/chat/markdown.js +1 -1
  104. package/dist/cjs/components/chat/markdown.js.map +2 -2
  105. package/dist/cjs/components/credits/context/hooks/useRedeemableList.js +1 -1
  106. package/dist/cjs/components/credits/context/hooks/useRedeemableList.js.map +2 -2
  107. package/dist/cjs/components/credits/context/memberPriceConst.d.ts +0 -5
  108. package/dist/cjs/components/credits/context/memberPriceConst.js +1 -1
  109. package/dist/cjs/components/credits/context/memberPriceConst.js.map +3 -3
  110. package/dist/cjs/components/credits/context/memberPriceTypes.d.ts +1 -22
  111. package/dist/cjs/components/credits/context/memberPriceTypes.js +1 -1
  112. package/dist/cjs/components/credits/context/memberPriceTypes.js.map +1 -1
  113. package/dist/cjs/components/credits/context/provider.d.ts +16 -1
  114. package/dist/cjs/components/credits/context/provider.js +1 -1
  115. package/dist/cjs/components/credits/context/provider.js.map +3 -3
  116. package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
  117. package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +3 -3
  118. package/dist/cjs/components/credits/creditsBanner/index.d.ts +2 -0
  119. package/dist/cjs/components/credits/creditsBanner/index.js +12 -1
  120. package/dist/cjs/components/credits/creditsBanner/index.js.map +3 -3
  121. package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js +2 -0
  122. package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js.map +7 -0
  123. package/dist/cjs/components/credits/creditsBenefits/{iconInfo.js → IconInfo.js} +1 -1
  124. package/dist/cjs/components/credits/creditsBenefits/{iconInfo.js.map → IconInfo.js.map} +1 -1
  125. package/dist/cjs/components/credits/creditsCash/CreditsCash.js +1 -1
  126. package/dist/cjs/components/credits/creditsCash/CreditsCash.js.map +3 -3
  127. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js +1 -1
  128. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js.map +3 -3
  129. package/dist/cjs/components/credits/creditsCash/type.d.ts +1 -0
  130. package/dist/cjs/components/credits/creditsCash/type.js +1 -1
  131. package/dist/cjs/components/credits/creditsCash/type.js.map +1 -1
  132. package/dist/cjs/components/credits/creditsFaq/faqItem/FaqItem.js +1 -1
  133. package/dist/cjs/components/credits/creditsFaq/faqItem/FaqItem.js.map +3 -3
  134. package/dist/cjs/components/credits/creditsInfoCard/index.js +1 -1
  135. package/dist/cjs/components/credits/creditsInfoCard/index.js.map +2 -2
  136. package/dist/cjs/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
  137. package/dist/cjs/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +3 -3
  138. package/dist/cjs/components/credits/creditsMemberPrice/MemberPriceItem.js +1 -1
  139. package/dist/cjs/components/credits/creditsMemberPrice/MemberPriceItem.js.map +3 -3
  140. package/dist/cjs/components/credits/creditsMemberPrice/type.d.ts +3 -5
  141. package/dist/cjs/components/credits/creditsMemberPrice/type.js +1 -1
  142. package/dist/cjs/components/credits/creditsMemberPrice/type.js.map +1 -1
  143. package/dist/cjs/components/credits/creditsNavigation/CreditsNavigation.js +1 -1
  144. package/dist/cjs/components/credits/creditsNavigation/CreditsNavigation.js.map +2 -2
  145. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
  146. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
  147. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +1 -1
  148. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +2 -2
  149. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  150. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
  151. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
  152. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +3 -3
  153. package/dist/cjs/components/index.d.ts +3 -1
  154. package/dist/cjs/components/index.js +1 -1
  155. package/dist/cjs/components/index.js.map +3 -3
  156. package/dist/cjs/components/registration/authCodeActivate/index.js +1 -1
  157. package/dist/cjs/components/registration/authCodeActivate/index.js.map +2 -2
  158. package/dist/cjs/stories/CartCard.stories.d.ts +33 -0
  159. package/dist/cjs/stories/CartCard.stories.js +21 -0
  160. package/dist/cjs/stories/CartCard.stories.js.map +7 -0
  161. package/dist/cjs/stories/LiveChatWidget.stories.d.ts +108 -0
  162. package/dist/cjs/stories/LiveChatWidget.stories.js +149 -0
  163. package/dist/cjs/stories/LiveChatWidget.stories.js.map +7 -0
  164. package/dist/cjs/templates/{credits.d.ts → Credits.d.ts} +16 -1
  165. package/dist/cjs/templates/Credits.js +2 -0
  166. package/dist/cjs/templates/Credits.js.map +7 -0
  167. package/dist/esm/components/LiveChatWidget/LiveChatWidget.d.ts +63 -0
  168. package/dist/esm/components/LiveChatWidget/LiveChatWidget.js +2 -0
  169. package/dist/esm/components/LiveChatWidget/LiveChatWidget.js.map +7 -0
  170. package/dist/esm/components/LiveChatWidget/api/chat.d.ts +46 -0
  171. package/dist/esm/components/LiveChatWidget/api/chat.js +3 -0
  172. package/dist/esm/components/LiveChatWidget/api/chat.js.map +7 -0
  173. package/dist/esm/components/LiveChatWidget/components/ChatBubble.d.ts +68 -0
  174. package/dist/esm/components/LiveChatWidget/components/ChatBubble.js +2 -0
  175. package/dist/esm/components/LiveChatWidget/components/ChatBubble.js.map +7 -0
  176. package/dist/esm/components/LiveChatWidget/components/ChatHeader.d.ts +57 -0
  177. package/dist/esm/components/LiveChatWidget/components/ChatHeader.js +2 -0
  178. package/dist/esm/components/LiveChatWidget/components/ChatHeader.js.map +7 -0
  179. package/dist/esm/components/LiveChatWidget/components/ChatInput.d.ts +70 -0
  180. package/dist/esm/components/LiveChatWidget/components/ChatInput.js +2 -0
  181. package/dist/esm/components/LiveChatWidget/components/ChatInput.js.map +7 -0
  182. package/dist/esm/components/LiveChatWidget/components/ChatMessage.d.ts +59 -0
  183. package/dist/esm/components/LiveChatWidget/components/ChatMessage.js +5 -0
  184. package/dist/esm/components/LiveChatWidget/components/ChatMessage.js.map +7 -0
  185. package/dist/esm/components/LiveChatWidget/components/ChatWindow.d.ts +127 -0
  186. package/dist/esm/components/LiveChatWidget/components/ChatWindow.js +2 -0
  187. package/dist/esm/components/LiveChatWidget/components/ChatWindow.js.map +7 -0
  188. package/dist/esm/components/LiveChatWidget/components/MessageContent/CartCard.d.ts +54 -0
  189. package/dist/esm/components/LiveChatWidget/components/MessageContent/CartCard.js +2 -0
  190. package/dist/esm/components/LiveChatWidget/components/MessageContent/CartCard.js.map +7 -0
  191. package/dist/esm/components/LiveChatWidget/components/MessageContent/ErrorBlock.d.ts +33 -0
  192. package/dist/esm/components/LiveChatWidget/components/MessageContent/ErrorBlock.js +2 -0
  193. package/dist/esm/components/LiveChatWidget/components/MessageContent/ErrorBlock.js.map +7 -0
  194. package/dist/esm/components/LiveChatWidget/components/MessageContent/FAQList.d.ts +16 -0
  195. package/dist/esm/components/LiveChatWidget/components/MessageContent/FAQList.js +2 -0
  196. package/dist/esm/components/LiveChatWidget/components/MessageContent/FAQList.js.map +7 -0
  197. package/dist/esm/components/LiveChatWidget/components/MessageContent/PolicyBlock.d.ts +45 -0
  198. package/dist/esm/components/LiveChatWidget/components/MessageContent/PolicyBlock.js +5 -0
  199. package/dist/esm/components/LiveChatWidget/components/MessageContent/PolicyBlock.js.map +7 -0
  200. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.d.ts +41 -0
  201. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.js +2 -0
  202. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.js.map +7 -0
  203. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductComparison.d.ts +75 -0
  204. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductComparison.js +2 -0
  205. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductComparison.js.map +7 -0
  206. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductList.d.ts +47 -0
  207. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductList.js +2 -0
  208. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductList.js.map +7 -0
  209. package/dist/esm/components/LiveChatWidget/components/MessageContent/PromotionList.d.ts +81 -0
  210. package/dist/esm/components/LiveChatWidget/components/MessageContent/PromotionList.js +2 -0
  211. package/dist/esm/components/LiveChatWidget/components/MessageContent/PromotionList.js.map +7 -0
  212. package/dist/esm/components/LiveChatWidget/components/MessageContent/QuickReplies.d.ts +54 -0
  213. package/dist/esm/components/LiveChatWidget/components/MessageContent/QuickReplies.js +2 -0
  214. package/dist/esm/components/LiveChatWidget/components/MessageContent/QuickReplies.js.map +7 -0
  215. package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.d.ts +31 -0
  216. package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.js +2 -0
  217. package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.js.map +7 -0
  218. package/dist/esm/components/LiveChatWidget/components/MessageContent/ThinkingBlock.d.ts +31 -0
  219. package/dist/esm/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js +2 -0
  220. package/dist/esm/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js.map +7 -0
  221. package/dist/esm/components/LiveChatWidget/components/MessageContent/index.d.ts +15 -0
  222. package/dist/esm/components/LiveChatWidget/components/MessageContent/index.js +2 -0
  223. package/dist/esm/components/LiveChatWidget/components/MessageContent/index.js.map +7 -0
  224. package/dist/esm/components/LiveChatWidget/components/MessageContent.d.ts +63 -0
  225. package/dist/esm/components/LiveChatWidget/components/MessageContent.js +2 -0
  226. package/dist/esm/components/LiveChatWidget/components/MessageContent.js.map +7 -0
  227. package/dist/esm/components/LiveChatWidget/components/MessageList.d.ts +74 -0
  228. package/dist/esm/components/LiveChatWidget/components/MessageList.js +5 -0
  229. package/dist/esm/components/LiveChatWidget/components/MessageList.js.map +7 -0
  230. package/dist/esm/components/LiveChatWidget/components/ScrollAnchor.d.ts +44 -0
  231. package/dist/esm/components/LiveChatWidget/components/ScrollAnchor.js +2 -0
  232. package/dist/esm/components/LiveChatWidget/components/ScrollAnchor.js.map +7 -0
  233. package/dist/esm/components/LiveChatWidget/constants.d.ts +13 -0
  234. package/dist/esm/components/LiveChatWidget/constants.js +2 -0
  235. package/dist/esm/components/LiveChatWidget/constants.js.map +7 -0
  236. package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.d.ts +60 -0
  237. package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.js +2 -0
  238. package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.js.map +7 -0
  239. package/dist/esm/components/LiveChatWidget/hooks/useChatState.d.ts +151 -0
  240. package/dist/esm/components/LiveChatWidget/hooks/useChatState.js +2 -0
  241. package/dist/esm/components/LiveChatWidget/hooks/useChatState.js.map +7 -0
  242. package/dist/esm/components/LiveChatWidget/hooks/useSession.d.ts +37 -0
  243. package/dist/esm/components/LiveChatWidget/hooks/useSession.js +2 -0
  244. package/dist/esm/components/LiveChatWidget/hooks/useSession.js.map +7 -0
  245. package/dist/esm/components/LiveChatWidget/index.d.ts +12 -0
  246. package/dist/esm/components/LiveChatWidget/index.js +2 -0
  247. package/dist/esm/components/LiveChatWidget/index.js.map +7 -0
  248. package/dist/esm/components/LiveChatWidget/types.d.ts +767 -0
  249. package/dist/esm/components/LiveChatWidget/types.js +1 -0
  250. package/dist/esm/components/LiveChatWidget/types.js.map +7 -0
  251. package/dist/esm/components/LiveChatWidget/utils/cartTransformers.d.ts +25 -0
  252. package/dist/esm/components/LiveChatWidget/utils/cartTransformers.js +2 -0
  253. package/dist/esm/components/LiveChatWidget/utils/cartTransformers.js.map +7 -0
  254. package/dist/esm/components/LiveChatWidget/utils/fetcher.d.ts +36 -0
  255. package/dist/esm/components/LiveChatWidget/utils/fetcher.js +2 -0
  256. package/dist/esm/components/LiveChatWidget/utils/fetcher.js.map +7 -0
  257. package/dist/esm/components/LiveChatWidget/utils/messageRenderers.d.ts +64 -0
  258. package/dist/esm/components/LiveChatWidget/utils/messageRenderers.js +2 -0
  259. package/dist/esm/components/LiveChatWidget/utils/messageRenderers.js.map +7 -0
  260. package/dist/esm/components/LiveChatWidget/utils/productTransformers.d.ts +43 -0
  261. package/dist/esm/components/LiveChatWidget/utils/productTransformers.js +2 -0
  262. package/dist/esm/components/LiveChatWidget/utils/productTransformers.js.map +7 -0
  263. package/dist/esm/components/LiveChatWidget/utils/userId.d.ts +18 -0
  264. package/dist/esm/components/LiveChatWidget/utils/userId.js +2 -0
  265. package/dist/esm/components/LiveChatWidget/utils/userId.js.map +7 -0
  266. package/dist/esm/components/LiveChatWidget/utils/validation.d.ts +37 -0
  267. package/dist/esm/components/LiveChatWidget/utils/validation.js +2 -0
  268. package/dist/esm/components/LiveChatWidget/utils/validation.js.map +7 -0
  269. package/dist/esm/components/chat/markdown.js +1 -1
  270. package/dist/esm/components/chat/markdown.js.map +2 -2
  271. package/dist/esm/components/credits/context/hooks/useRedeemableList.js +1 -1
  272. package/dist/esm/components/credits/context/hooks/useRedeemableList.js.map +2 -2
  273. package/dist/esm/components/credits/context/memberPriceConst.d.ts +0 -5
  274. package/dist/esm/components/credits/context/memberPriceConst.js +1 -1
  275. package/dist/esm/components/credits/context/memberPriceConst.js.map +3 -3
  276. package/dist/esm/components/credits/context/memberPriceTypes.d.ts +1 -22
  277. package/dist/esm/components/credits/context/provider.d.ts +16 -1
  278. package/dist/esm/components/credits/context/provider.js +1 -1
  279. package/dist/esm/components/credits/context/provider.js.map +3 -3
  280. package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
  281. package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +3 -3
  282. package/dist/esm/components/credits/creditsBanner/index.d.ts +2 -0
  283. package/dist/esm/components/credits/creditsBanner/index.js +12 -1
  284. package/dist/esm/components/credits/creditsBanner/index.js.map +3 -3
  285. package/dist/esm/components/credits/creditsBenefits/BenefitItem.js +2 -0
  286. package/dist/esm/components/credits/creditsBenefits/BenefitItem.js.map +7 -0
  287. package/dist/esm/components/credits/creditsBenefits/{iconInfo.js → IconInfo.js} +1 -1
  288. package/dist/esm/components/credits/creditsBenefits/{iconInfo.js.map → IconInfo.js.map} +1 -1
  289. package/dist/esm/components/credits/creditsCash/CreditsCash.js +1 -1
  290. package/dist/esm/components/credits/creditsCash/CreditsCash.js.map +3 -3
  291. package/dist/esm/components/credits/creditsCash/RedeemableItem.js +1 -1
  292. package/dist/esm/components/credits/creditsCash/RedeemableItem.js.map +3 -3
  293. package/dist/esm/components/credits/creditsCash/type.d.ts +1 -0
  294. package/dist/esm/components/credits/creditsFaq/faqItem/FaqItem.js +1 -1
  295. package/dist/esm/components/credits/creditsFaq/faqItem/FaqItem.js.map +3 -3
  296. package/dist/esm/components/credits/creditsInfoCard/index.js +1 -1
  297. package/dist/esm/components/credits/creditsInfoCard/index.js.map +2 -2
  298. package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
  299. package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +3 -3
  300. package/dist/esm/components/credits/creditsMemberPrice/MemberPriceItem.js +1 -1
  301. package/dist/esm/components/credits/creditsMemberPrice/MemberPriceItem.js.map +3 -3
  302. package/dist/esm/components/credits/creditsMemberPrice/type.d.ts +3 -5
  303. package/dist/esm/components/credits/creditsNavigation/CreditsNavigation.js +1 -1
  304. package/dist/esm/components/credits/creditsNavigation/CreditsNavigation.js.map +2 -2
  305. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
  306. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
  307. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +1 -1
  308. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +2 -2
  309. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  310. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
  311. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
  312. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +3 -3
  313. package/dist/esm/components/index.d.ts +3 -1
  314. package/dist/esm/components/index.js +1 -1
  315. package/dist/esm/components/index.js.map +3 -3
  316. package/dist/esm/components/registration/authCodeActivate/index.js +1 -1
  317. package/dist/esm/components/registration/authCodeActivate/index.js.map +2 -2
  318. package/dist/esm/stories/CartCard.stories.d.ts +33 -0
  319. package/dist/esm/stories/CartCard.stories.js +21 -0
  320. package/dist/esm/stories/CartCard.stories.js.map +7 -0
  321. package/dist/esm/stories/LiveChatWidget.stories.d.ts +108 -0
  322. package/dist/esm/stories/LiveChatWidget.stories.js +149 -0
  323. package/dist/esm/stories/LiveChatWidget.stories.js.map +7 -0
  324. package/dist/esm/templates/{credits.d.ts → Credits.d.ts} +16 -1
  325. package/dist/esm/templates/Credits.js +2 -0
  326. package/dist/esm/templates/Credits.js.map +7 -0
  327. package/dist/index.d.mts +1305 -0
  328. package/dist/index.d.ts +1305 -0
  329. package/dist/index.js +26656 -0
  330. package/dist/index.js.map +1 -0
  331. package/dist/index.mjs +26641 -0
  332. package/dist/index.mjs.map +1 -0
  333. package/package.json +7 -3
  334. package/src/components/LiveChatWidget/LiveChatWidget.tsx +732 -0
  335. package/src/components/LiveChatWidget/api/chat.ts +174 -0
  336. package/src/components/LiveChatWidget/components/ChatBubble.tsx +152 -0
  337. package/src/components/LiveChatWidget/components/ChatHeader.tsx +150 -0
  338. package/src/components/LiveChatWidget/components/ChatInput.tsx +241 -0
  339. package/src/components/LiveChatWidget/components/ChatMessage.tsx +190 -0
  340. package/src/components/LiveChatWidget/components/ChatWindow.tsx +353 -0
  341. package/src/components/LiveChatWidget/components/MessageContent/CartCard.tsx +202 -0
  342. package/src/components/LiveChatWidget/components/MessageContent/ErrorBlock.tsx +75 -0
  343. package/src/components/LiveChatWidget/components/MessageContent/FAQList.tsx +127 -0
  344. package/src/components/LiveChatWidget/components/MessageContent/PolicyBlock.tsx +150 -0
  345. package/src/components/LiveChatWidget/components/MessageContent/ProductCard.tsx +218 -0
  346. package/src/components/LiveChatWidget/components/MessageContent/ProductComparison.tsx +359 -0
  347. package/src/components/LiveChatWidget/components/MessageContent/ProductList.tsx +293 -0
  348. package/src/components/LiveChatWidget/components/MessageContent/PromotionList.tsx +170 -0
  349. package/src/components/LiveChatWidget/components/MessageContent/QuickReplies.tsx +91 -0
  350. package/src/components/LiveChatWidget/components/MessageContent/TextBlock.tsx +89 -0
  351. package/src/components/LiveChatWidget/components/MessageContent/ThinkingBlock.tsx +53 -0
  352. package/src/components/LiveChatWidget/components/MessageContent/index.ts +16 -0
  353. package/src/components/LiveChatWidget/components/MessageContent.tsx +113 -0
  354. package/src/components/LiveChatWidget/components/MessageList.tsx +261 -0
  355. package/src/components/LiveChatWidget/components/ScrollAnchor.tsx +75 -0
  356. package/src/components/LiveChatWidget/constants.ts +36 -0
  357. package/src/components/LiveChatWidget/hooks/useChatAPI.ts +146 -0
  358. package/src/components/LiveChatWidget/hooks/useChatState.ts +1086 -0
  359. package/src/components/LiveChatWidget/hooks/useSession.ts +123 -0
  360. package/src/components/LiveChatWidget/index.tsx +62 -0
  361. package/src/components/LiveChatWidget/types.ts +949 -0
  362. package/src/components/LiveChatWidget/utils/cartTransformers.ts +72 -0
  363. package/src/components/LiveChatWidget/utils/fetcher.ts +126 -0
  364. package/src/components/LiveChatWidget/utils/messageRenderers.ts +120 -0
  365. package/src/components/LiveChatWidget/utils/productTransformers.ts +149 -0
  366. package/src/components/LiveChatWidget/utils/userId.ts +140 -0
  367. package/src/components/LiveChatWidget/utils/validation.ts +99 -0
  368. package/src/components/chat/markdown.tsx +1 -1
  369. package/src/components/credits/context/hooks/useRedeemableList.ts +1 -1
  370. package/src/components/credits/context/memberPriceConst.ts +0 -7
  371. package/src/components/credits/context/memberPriceTypes.ts +1 -26
  372. package/src/components/credits/context/provider.tsx +16 -0
  373. package/src/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.tsx +26 -26
  374. package/src/components/credits/creditsBanner/index.tsx +31 -3
  375. package/src/components/credits/creditsBenefits/BenefitItem.tsx +11 -4
  376. package/src/components/credits/creditsBenefits/IconInfo.tsx +1 -1
  377. package/src/components/credits/creditsCash/CreditsCash.tsx +6 -3
  378. package/src/components/credits/creditsCash/RedeemableItem.tsx +23 -10
  379. package/src/components/credits/creditsCash/type.ts +1 -0
  380. package/src/components/credits/creditsFaq/faqItem/FaqItem.tsx +25 -23
  381. package/src/components/credits/creditsInfoCard/index.tsx +8 -2
  382. package/src/components/credits/creditsMemberPrice/CreditsMemberPrice.tsx +124 -25
  383. package/src/components/credits/creditsMemberPrice/MemberPriceItem.tsx +113 -31
  384. package/src/components/credits/creditsMemberPrice/type.ts +3 -5
  385. package/src/components/credits/creditsNavigation/CreditsNavigation.tsx +3 -3
  386. package/src/components/credits/creditsRedeemList/CreditsRedeemList.tsx +31 -18
  387. package/src/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.tsx +6 -4
  388. package/src/components/credits/creditsRedeemList/RedeemableItem.tsx +19 -6
  389. package/src/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.tsx +20 -17
  390. package/src/components/index.ts +23 -1
  391. package/src/components/registration/authCodeActivate/index.tsx +2 -0
  392. package/src/stories/CartCard.stories.tsx +459 -0
  393. package/src/stories/LiveChatWidget.stories.tsx +754 -0
  394. package/src/styles/livechat.css +268 -0
  395. package/src/templates/Credits.tsx +27 -9
  396. package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.d.ts +0 -7
  397. package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.js +0 -2
  398. package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.js.map +0 -7
  399. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.d.ts +0 -1
  400. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js +0 -2
  401. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js.map +0 -7
  402. package/dist/cjs/components/credits/context/hooks/useSubscriptions.d.ts +0 -9
  403. package/dist/cjs/components/credits/context/hooks/useSubscriptions.js +0 -2
  404. package/dist/cjs/components/credits/context/hooks/useSubscriptions.js.map +0 -7
  405. package/dist/cjs/components/credits/context/utils/atobID.d.ts +0 -1
  406. package/dist/cjs/components/credits/context/utils/atobID.js +0 -2
  407. package/dist/cjs/components/credits/context/utils/atobID.js.map +0 -7
  408. package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.d.ts +0 -5
  409. package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.js +0 -2
  410. package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.js.map +0 -7
  411. package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.d.ts +0 -8
  412. package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.js +0 -2
  413. package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.js.map +0 -7
  414. package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.d.ts +0 -9
  415. package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js +0 -2
  416. package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js.map +0 -7
  417. package/dist/cjs/components/credits/context/utils/variantGetCoupon.d.ts +0 -6
  418. package/dist/cjs/components/credits/context/utils/variantGetCoupon.js +0 -2
  419. package/dist/cjs/components/credits/context/utils/variantGetCoupon.js.map +0 -7
  420. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js +0 -2
  421. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js.map +0 -7
  422. package/dist/cjs/helpers/fetchResponse.d.ts +0 -14
  423. package/dist/cjs/helpers/fetchResponse.js +0 -2
  424. package/dist/cjs/helpers/fetchResponse.js.map +0 -7
  425. package/dist/cjs/helpers/fetcher.d.ts +0 -2
  426. package/dist/cjs/helpers/fetcher.js +0 -2
  427. package/dist/cjs/helpers/fetcher.js.map +0 -7
  428. package/dist/cjs/helpers/index.d.ts +0 -2
  429. package/dist/cjs/helpers/index.js +0 -2
  430. package/dist/cjs/helpers/index.js.map +0 -7
  431. package/dist/cjs/helpers/track.d.ts +0 -19
  432. package/dist/cjs/helpers/track.js +0 -2
  433. package/dist/cjs/helpers/track.js.map +0 -7
  434. package/dist/cjs/helpers/utils.d.ts +0 -3
  435. package/dist/cjs/helpers/utils.js +0 -2
  436. package/dist/cjs/helpers/utils.js.map +0 -7
  437. package/dist/cjs/templates/credits.js +0 -2
  438. package/dist/cjs/templates/credits.js.map +0 -7
  439. package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.d.ts +0 -7
  440. package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.js +0 -2
  441. package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.js.map +0 -7
  442. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.d.ts +0 -1
  443. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js +0 -2
  444. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js.map +0 -7
  445. package/dist/esm/components/credits/context/hooks/useSubscriptions.d.ts +0 -9
  446. package/dist/esm/components/credits/context/hooks/useSubscriptions.js +0 -2
  447. package/dist/esm/components/credits/context/hooks/useSubscriptions.js.map +0 -7
  448. package/dist/esm/components/credits/context/utils/atobID.d.ts +0 -1
  449. package/dist/esm/components/credits/context/utils/atobID.js +0 -2
  450. package/dist/esm/components/credits/context/utils/atobID.js.map +0 -7
  451. package/dist/esm/components/credits/context/utils/functionDiscountCalculate.d.ts +0 -5
  452. package/dist/esm/components/credits/context/utils/functionDiscountCalculate.js +0 -2
  453. package/dist/esm/components/credits/context/utils/functionDiscountCalculate.js.map +0 -7
  454. package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.d.ts +0 -8
  455. package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.js +0 -2
  456. package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.js.map +0 -7
  457. package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.d.ts +0 -9
  458. package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js +0 -2
  459. package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js.map +0 -7
  460. package/dist/esm/components/credits/context/utils/variantGetCoupon.d.ts +0 -6
  461. package/dist/esm/components/credits/context/utils/variantGetCoupon.js +0 -2
  462. package/dist/esm/components/credits/context/utils/variantGetCoupon.js.map +0 -7
  463. package/dist/esm/components/credits/creditsBenefits/benefitItem.js +0 -2
  464. package/dist/esm/components/credits/creditsBenefits/benefitItem.js.map +0 -7
  465. package/dist/esm/helpers/fetchResponse.d.ts +0 -14
  466. package/dist/esm/helpers/fetchResponse.js +0 -2
  467. package/dist/esm/helpers/fetchResponse.js.map +0 -7
  468. package/dist/esm/helpers/fetcher.d.ts +0 -2
  469. package/dist/esm/helpers/fetcher.js +0 -2
  470. package/dist/esm/helpers/fetcher.js.map +0 -7
  471. package/dist/esm/helpers/index.d.ts +0 -2
  472. package/dist/esm/helpers/index.js +0 -2
  473. package/dist/esm/helpers/index.js.map +0 -7
  474. package/dist/esm/helpers/track.d.ts +0 -19
  475. package/dist/esm/helpers/track.js +0 -2
  476. package/dist/esm/helpers/track.js.map +0 -7
  477. package/dist/esm/helpers/utils.d.ts +0 -3
  478. package/dist/esm/helpers/utils.js +0 -2
  479. package/dist/esm/helpers/utils.js.map +0 -7
  480. package/dist/esm/templates/credits.js +0 -2
  481. package/dist/esm/templates/credits.js.map +0 -7
  482. package/src/components/credits/context/hooks/useFunctionMemberPrice.ts +0 -33
  483. package/src/components/credits/context/utils/atobID.ts +0 -8
  484. package/src/components/credits/context/utils/functionDiscountCalculate.ts +0 -57
  485. package/src/components/credits/context/utils/getFunctionMemberPrice.ts +0 -135
  486. package/src/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.ts +0 -51
  487. package/src/components/credits/context/utils/variantGetCoupon.ts +0 -34
  488. /package/dist/cjs/components/credits/creditsBenefits/{benefitItem.d.ts → BenefitItem.d.ts} +0 -0
  489. /package/dist/cjs/components/credits/creditsBenefits/{iconInfo.d.ts → IconInfo.d.ts} +0 -0
  490. /package/dist/esm/components/credits/creditsBenefits/{benefitItem.d.ts → BenefitItem.d.ts} +0 -0
  491. /package/dist/esm/components/credits/creditsBenefits/{iconInfo.d.ts → IconInfo.d.ts} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";var t=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var a=(n,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of u(e))!s.call(n,i)&&i!==o&&t(n,i,{get:()=>e[i],enumerable:!(r=c(e,i))||r.enumerable});return n};var l=n=>a(t({},"__esModule",{value:!0}),n);var d={};module.exports=l(d);
1
+ "use strict";var e=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var a=(t,n,r,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of u(n))!c.call(t,i)&&i!==r&&e(t,i,{get:()=>n[i],enumerable:!(o=s(n,i))||o.enumerable});return t};var _=t=>a(e({},"__esModule",{value:!0}),t);var d={};module.exports=_(d);
2
2
  //# sourceMappingURL=memberPriceTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/context/memberPriceTypes.ts"],
4
- "sourcesContent": ["import { FunctionDiscountType, RoundSelected } from './memberPriceConst'\n\n// \u4EF7\u683C\u7ED3\u5C3E\u914D\u7F6E\nexport type PriceEndingConf = {\n apply_price_ending: boolean\n one_decimal_place: string\n two_decimal_place: string\n round_selected: RoundSelected\n}\n\n// \u6298\u6263\u914D\u7F6E\nexport type DiscountConfig = {\n discount_type: FunctionDiscountType\n discount_value: number\n price_ending_conf?: PriceEndingConf\n}\n\n// \u4F1A\u5458\u4EF7\u914D\u7F6E\u7C7B\u578B\nexport type FunctionMemberPriceConfig = {\n rule_id: string\n result_detail: {\n member_discounts?: {\n user_identity: number // \u7528\u6237\u8EAB\u4EFD\uFF1A1-\u666E\u901A\u4F1A\u5458\uFF0C2-\u9AD8\u7EA7\u4F1A\u5458\u7B49\n main_products: {\n all_store_variant: boolean\n variants: {\n variant_id: string\n sku: string\n handle: string\n }[]\n }\n discount_conf: DiscountConfig\n }[]\n }\n discount_combinations: {\n other_product_discounts: boolean\n }\n}\n\n// \u4F1A\u5458\u4EF7\u8BA1\u7B97\u7ED3\u679C\nexport type FunctionMemberPriceResult = {\n hasMemberPrice: boolean\n useCoupon: boolean\n originalPrice: number\n originalPriceWithCurrency: string\n salePrice: number\n salePriceWithCurrency: string\n salePriceWithoutCoupon: number\n salePriceWithoutCouponWithCurrency: string\n savePrice: number\n savePriceWithCurrency: string\n savePriceWithoutCoupon: number\n savePriceWithoutCouponWithCurrency: string\n}\n"],
4
+ "sourcesContent": ["import { FunctionDiscountType } from './memberPriceConst'\n\n// \u6298\u6263\u914D\u7F6E\nexport type DiscountConfig = {\n discount_type: FunctionDiscountType\n discount_value: number\n}\n\n// \u4F1A\u5458\u4EF7\u914D\u7F6E\u7C7B\u578B\nexport type FunctionMemberPriceConfig = {\n rule_id: string\n result_detail: {\n member_discounts?: {\n user_identity: number // \u7528\u6237\u8EAB\u4EFD\uFF1A1-\u666E\u901A\u4F1A\u5458\uFF0C2-\u9AD8\u7EA7\u4F1A\u5458\u7B49\n main_products: {\n all_store_variant: boolean\n variants: {\n variant_id: string\n sku: string\n handle: string\n }[]\n }\n discount_conf: DiscountConfig\n }[]\n }\n discount_combinations: {\n other_product_discounts: boolean\n }\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["memberPriceTypes_exports", "__toCommonJS"]
7
7
  }
@@ -16,12 +16,27 @@ type Context = {
16
16
  fetchCreditInfo: (user_id: string) => void;
17
17
  gtm: {
18
18
  pageGroup: string;
19
+ pageHandle?: string;
19
20
  };
20
21
  pageCommon: CreditsPageCommon;
21
22
  memberPriceDiscount?: FunctionMemberPriceConfig[];
22
23
  alpcBrand?: string;
24
+ cartConfig?: {
25
+ addToCart: (params: {
26
+ variantList: Array<{
27
+ variant: any;
28
+ quantity: number;
29
+ attributes?: Array<{
30
+ key: string;
31
+ value: string;
32
+ }>;
33
+ }>;
34
+ cartAttributes?: Record<string, string>;
35
+ discountCodes?: string[];
36
+ }) => void | Promise<any>;
37
+ };
23
38
  };
24
39
  export declare const CreditsContext: import("react").Context<Context>;
25
- export declare function CreditsProvider({ children, profile, removeProfile, isLoadingProfile, openSignInPopup, openSignUpPopup, taskIdToTypeMapping, creditInfo, customer, customerLoading, fetchCreditInfo, gtm, pageCommon, memberPriceDiscount, alpcBrand, }: PropsWithChildren<Context>): import("react/jsx-runtime").JSX.Element;
40
+ export declare function CreditsProvider({ children, profile, removeProfile, isLoadingProfile, openSignInPopup, openSignUpPopup, taskIdToTypeMapping, creditInfo, customer, customerLoading, fetchCreditInfo, gtm, pageCommon, memberPriceDiscount, alpcBrand, cartConfig, }: PropsWithChildren<Context>): import("react/jsx-runtime").JSX.Element;
26
41
  export declare function useCreditsContext(): Context;
27
42
  export {};
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var h=(e,o)=>{for(var n in o)p(e,n,{get:o[n],enumerable:!0})},b=(e,o,n,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of I(o))!T.call(e,r)&&r!==n&&p(e,r,{get:()=>o[r],enumerable:!(t=v(o,r))||t.enumerable});return e};var y=e=>b(p({},"__esModule",{value:!0}),e);var D={};h(D,{CreditsContext:()=>d,CreditsProvider:()=>S,useCreditsContext:()=>_});module.exports=y(D);var s=require("react/jsx-runtime"),i=require("react");const d=(0,i.createContext)({profile:null,isLoadingProfile:!1,taskIdToTypeMapping:{},removeProfile:()=>{},openSignInPopup:()=>{},openSignUpPopup:()=>{},creditInfo:void 0,customerLoading:!1,fetchCreditInfo:e=>{},gtm:{pageGroup:""},pageCommon:{},memberPriceDiscount:void 0,alpcBrand:void 0});function S({children:e,profile:o,removeProfile:n,isLoadingProfile:t,openSignInPopup:r,openSignUpPopup:m,taskIdToTypeMapping:C,creditInfo:f,customer:u,customerLoading:a,fetchCreditInfo:g,gtm:c,pageCommon:P,memberPriceDiscount:l,alpcBrand:x}){return(0,s.jsx)(d.Provider,{value:{profile:o,isLoadingProfile:t,removeProfile:n,openSignInPopup:r,openSignUpPopup:m,taskIdToTypeMapping:C,creditInfo:f,fetchCreditInfo:g,customer:u,customerLoading:a,gtm:c,pageCommon:P,memberPriceDiscount:l,alpcBrand:x},children:e})}function _(){const e=(0,i.useContext)(d);if(!e)throw new Error("useCreditsContext must be used within a CreditsProvider");return e}
1
+ "use strict";var s=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var I=(e,o)=>{for(var n in o)s(e,n,{get:o[n],enumerable:!0})},h=(e,o,n,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of T(o))!b.call(e,r)&&r!==n&&s(e,r,{get:()=>o[r],enumerable:!(t=x(o,r))||t.enumerable});return e};var S=e=>h(s({},"__esModule",{value:!0}),e);var L={};I(L,{CreditsContext:()=>d,CreditsProvider:()=>_,useCreditsContext:()=>A});module.exports=S(L);var p=require("react/jsx-runtime"),i=require("react");const d=(0,i.createContext)({profile:null,isLoadingProfile:!1,taskIdToTypeMapping:{},removeProfile:()=>{},openSignInPopup:()=>{},openSignUpPopup:()=>{},creditInfo:void 0,customerLoading:!1,fetchCreditInfo:e=>{},gtm:{pageGroup:"",pageHandle:""},pageCommon:{},memberPriceDiscount:void 0,alpcBrand:void 0,cartConfig:void 0});function _({children:e,profile:o,removeProfile:n,isLoadingProfile:t,openSignInPopup:r,openSignUpPopup:a,taskIdToTypeMapping:g,creditInfo:u,customer:C,customerLoading:m,fetchCreditInfo:f,gtm:c,pageCommon:P,memberPriceDiscount:l,alpcBrand:v,cartConfig:y}){return(0,p.jsx)(d.Provider,{value:{profile:o,isLoadingProfile:t,removeProfile:n,openSignInPopup:r,openSignUpPopup:a,taskIdToTypeMapping:g,creditInfo:u,fetchCreditInfo:f,customer:C,customerLoading:m,gtm:c,pageCommon:P,memberPriceDiscount:l,alpcBrand:v,cartConfig:y},children:e})}function A(){const e=(0,i.useContext)(d);if(!e)throw new Error("useCreditsContext must be used within a CreditsProvider");return e}
2
2
  //# sourceMappingURL=provider.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/context/provider.tsx"],
4
- "sourcesContent": ["import { createContext, PropsWithChildren, useContext } from 'react'\nimport type { DTC_TASK_TYPE } from './const'\nimport type { CreditInfoResponse } from './response'\nimport { CreditsPageCommon } from '../type'\nimport { FunctionMemberPriceConfig } from './memberPriceTypes'\n\ntype Context = {\n profile: any\n isLoadingProfile: boolean\n removeProfile: () => void\n taskIdToTypeMapping: Record<string, DTC_TASK_TYPE>\n openSignInPopup: () => void\n openSignUpPopup: () => void\n creditInfo?: CreditInfoResponse\n customer?: any\n customerLoading: boolean\n fetchCreditInfo: (user_id: string) => void\n gtm: {\n pageGroup: string\n }\n pageCommon: CreditsPageCommon\n memberPriceDiscount?: FunctionMemberPriceConfig[]\n alpcBrand?: string\n}\n\nexport const CreditsContext = createContext<Context>({\n profile: null,\n isLoadingProfile: false,\n taskIdToTypeMapping: {},\n removeProfile: () => {},\n openSignInPopup: () => {},\n openSignUpPopup: () => {},\n creditInfo: undefined,\n customerLoading: false,\n fetchCreditInfo: (user_id: string) => {},\n gtm: {\n pageGroup: '',\n },\n pageCommon: {},\n memberPriceDiscount: undefined,\n alpcBrand: undefined,\n})\n\nexport function CreditsProvider({\n children,\n profile,\n removeProfile,\n isLoadingProfile,\n openSignInPopup,\n openSignUpPopup,\n taskIdToTypeMapping,\n creditInfo,\n customer,\n customerLoading,\n fetchCreditInfo,\n gtm,\n pageCommon,\n memberPriceDiscount,\n alpcBrand,\n}: PropsWithChildren<Context>) {\n return (\n <CreditsContext.Provider\n value={{\n profile,\n isLoadingProfile,\n removeProfile,\n openSignInPopup,\n openSignUpPopup,\n taskIdToTypeMapping,\n creditInfo,\n fetchCreditInfo,\n customer,\n customerLoading,\n gtm,\n pageCommon,\n memberPriceDiscount,\n alpcBrand,\n }}\n >\n {children}\n </CreditsContext.Provider>\n )\n}\n\nexport function useCreditsContext() {\n const context = useContext(CreditsContext)\n if (!context) {\n throw new Error('useCreditsContext must be used within a CreditsProvider')\n }\n return context\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,oBAAAC,EAAA,sBAAAC,IAAA,eAAAC,EAAAL,GA6DI,IAAAM,EAAA,6BA7DJC,EAA6D,iBAyBtD,MAAML,KAAiB,iBAAuB,CACnD,QAAS,KACT,iBAAkB,GAClB,oBAAqB,CAAC,EACtB,cAAe,IAAM,CAAC,EACtB,gBAAiB,IAAM,CAAC,EACxB,gBAAiB,IAAM,CAAC,EACxB,WAAY,OACZ,gBAAiB,GACjB,gBAAkBM,GAAoB,CAAC,EACvC,IAAK,CACH,UAAW,EACb,EACA,WAAY,CAAC,EACb,oBAAqB,OACrB,UAAW,MACb,CAAC,EAEM,SAASL,EAAgB,CAC9B,SAAAM,EACA,QAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,oBAAAC,EACA,WAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,IAAAC,EACA,WAAAC,EACA,oBAAAC,EACA,UAAAC,CACF,EAA+B,CAC7B,SACE,OAACrB,EAAe,SAAf,CACC,MAAO,CACL,QAAAQ,EACA,iBAAAE,EACA,cAAAD,EACA,gBAAAE,EACA,gBAAAC,EACA,oBAAAC,EACA,WAAAC,EACA,gBAAAG,EACA,SAAAF,EACA,gBAAAC,EACA,IAAAE,EACA,WAAAC,EACA,oBAAAC,EACA,UAAAC,CACF,EAEC,SAAAd,EACH,CAEJ,CAEO,SAASL,GAAoB,CAClC,MAAMoB,KAAU,cAAWtB,CAAc,EACzC,GAAI,CAACsB,EACH,MAAM,IAAI,MAAM,yDAAyD,EAE3E,OAAOA,CACT",
6
- "names": ["provider_exports", "__export", "CreditsContext", "CreditsProvider", "useCreditsContext", "__toCommonJS", "import_jsx_runtime", "import_react", "user_id", "children", "profile", "removeProfile", "isLoadingProfile", "openSignInPopup", "openSignUpPopup", "taskIdToTypeMapping", "creditInfo", "customer", "customerLoading", "fetchCreditInfo", "gtm", "pageCommon", "memberPriceDiscount", "alpcBrand", "context"]
4
+ "sourcesContent": ["import { createContext, PropsWithChildren, useContext } from 'react'\nimport type { DTC_TASK_TYPE } from './const'\nimport type { CreditInfoResponse } from './response'\nimport { CreditsPageCommon } from '../type'\nimport { FunctionMemberPriceConfig } from './memberPriceTypes'\n\ntype Context = {\n profile: any\n isLoadingProfile: boolean\n removeProfile: () => void\n taskIdToTypeMapping: Record<string, DTC_TASK_TYPE>\n openSignInPopup: () => void\n openSignUpPopup: () => void\n creditInfo?: CreditInfoResponse\n customer?: any\n customerLoading: boolean\n fetchCreditInfo: (user_id: string) => void\n gtm: {\n pageGroup: string\n pageHandle?: string\n }\n pageCommon: CreditsPageCommon\n memberPriceDiscount?: FunctionMemberPriceConfig[]\n alpcBrand?: string\n cartConfig?: {\n addToCart: (params: {\n variantList: Array<{\n variant: any\n quantity: number\n attributes?: Array<{ key: string; value: string }>\n }>\n cartAttributes?: Record<string, string>\n discountCodes?: string[]\n }) => void | Promise<any>\n }\n}\n\nexport const CreditsContext = createContext<Context>({\n profile: null,\n isLoadingProfile: false,\n taskIdToTypeMapping: {},\n removeProfile: () => {},\n openSignInPopup: () => {},\n openSignUpPopup: () => {},\n creditInfo: undefined,\n customerLoading: false,\n fetchCreditInfo: (user_id: string) => {},\n gtm: {\n pageGroup: '',\n pageHandle: '',\n },\n pageCommon: {},\n memberPriceDiscount: undefined,\n alpcBrand: undefined,\n cartConfig: undefined,\n})\n\nexport function CreditsProvider({\n children,\n profile,\n removeProfile,\n isLoadingProfile,\n openSignInPopup,\n openSignUpPopup,\n taskIdToTypeMapping,\n creditInfo,\n customer,\n customerLoading,\n fetchCreditInfo,\n gtm,\n pageCommon,\n memberPriceDiscount,\n alpcBrand,\n cartConfig,\n}: PropsWithChildren<Context>) {\n return (\n <CreditsContext.Provider\n value={{\n profile,\n isLoadingProfile,\n removeProfile,\n openSignInPopup,\n openSignUpPopup,\n taskIdToTypeMapping,\n creditInfo,\n fetchCreditInfo,\n customer,\n customerLoading,\n gtm,\n pageCommon,\n memberPriceDiscount,\n alpcBrand,\n cartConfig,\n }}\n >\n {children}\n </CreditsContext.Provider>\n )\n}\n\nexport function useCreditsContext() {\n const context = useContext(CreditsContext)\n if (!context) {\n throw new Error('useCreditsContext must be used within a CreditsProvider')\n }\n return context\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,oBAAAC,EAAA,sBAAAC,IAAA,eAAAC,EAAAL,GA4EI,IAAAM,EAAA,6BA5EJC,EAA6D,iBAqCtD,MAAML,KAAiB,iBAAuB,CACnD,QAAS,KACT,iBAAkB,GAClB,oBAAqB,CAAC,EACtB,cAAe,IAAM,CAAC,EACtB,gBAAiB,IAAM,CAAC,EACxB,gBAAiB,IAAM,CAAC,EACxB,WAAY,OACZ,gBAAiB,GACjB,gBAAkBM,GAAoB,CAAC,EACvC,IAAK,CACH,UAAW,GACX,WAAY,EACd,EACA,WAAY,CAAC,EACb,oBAAqB,OACrB,UAAW,OACX,WAAY,MACd,CAAC,EAEM,SAASL,EAAgB,CAC9B,SAAAM,EACA,QAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,oBAAAC,EACA,WAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,IAAAC,EACA,WAAAC,EACA,oBAAAC,EACA,UAAAC,EACA,WAAAC,CACF,EAA+B,CAC7B,SACE,OAACtB,EAAe,SAAf,CACC,MAAO,CACL,QAAAQ,EACA,iBAAAE,EACA,cAAAD,EACA,gBAAAE,EACA,gBAAAC,EACA,oBAAAC,EACA,WAAAC,EACA,gBAAAG,EACA,SAAAF,EACA,gBAAAC,EACA,IAAAE,EACA,WAAAC,EACA,oBAAAC,EACA,UAAAC,EACA,WAAAC,CACF,EAEC,SAAAf,EACH,CAEJ,CAEO,SAASL,GAAoB,CAClC,MAAMqB,KAAU,cAAWvB,CAAc,EACzC,GAAI,CAACuB,EACH,MAAM,IAAI,MAAM,yDAAyD,EAE3E,OAAOA,CACT",
6
+ "names": ["provider_exports", "__export", "CreditsContext", "CreditsProvider", "useCreditsContext", "__toCommonJS", "import_jsx_runtime", "import_react", "user_id", "children", "profile", "removeProfile", "isLoadingProfile", "openSignInPopup", "openSignUpPopup", "taskIdToTypeMapping", "creditInfo", "customer", "customerLoading", "fetchCreditInfo", "gtm", "pageCommon", "memberPriceDiscount", "alpcBrand", "cartConfig", "context"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var F=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var J=Object.prototype.hasOwnProperty;var K=(t,n)=>{for(var d in n)F(t,d,{get:n[d],enumerable:!0})},Q=(t,n,d,l)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of G(n))!J.call(t,o)&&o!==d&&F(t,o,{get:()=>n[o],enumerable:!(l=V(n,o))||l.enumerable});return t};var W=t=>Q(F({},"__esModule",{value:!0}),t);var Y={};K(Y,{CreditsAnkersolixTask:()=>X});module.exports=W(Y);var e=require("react/jsx-runtime"),i=require("@anker-in/headless-ui"),b=require("@heroicons/react/24/outline"),A=require("framer-motion"),a=require("react"),f=require("./type"),M=require("../creditsWaysToGetCredits/useActions"),R=require("../context/provider"),c=require("@anker-in/lib"),L=require("../../registration"),T=require("../modal/creditsUploadReceiptModal"),U=require("../modal/subscribeModal"),O=require("../../../constants");const X=({copy:t,classNames:n,id:d})=>{const[l,o]=(0,a.useState)(!1),{profile:B}=(0,R.useCreditsContext)(),{authCodeActivate:D}=(0,L.useRegistration)(),{brand:P}=(0,c.useHeadlessContext)(),h=O.ROUNDED_BRANDS.includes(P),g=!!B,[j,N]=(0,a.useState)(!1),[_,v]=(0,a.useState)(!1),[w,E]=(0,a.useState)(!1),[S,H]=(0,a.useState)(!1),{actions:k}=(0,M.useActions)({copy:t,subscribe:{openSubscribePopup:()=>v(!0),isSuccess:w},uploadReceipt:{openUploadReceiptPopup:()=>N(!0),isSuccess:S}}),I=(0,a.useMemo)(()=>{const s=t.list.map(r=>{if(!k[r.id])return;const{finished:x,notLogin:y,notFinished:C,completed:q}=k[r.id];let u="",m,z;return g?x?(u=q.buttonLabel,m=void 0):(u=C.buttonLabel,m=C.handleClick,z=C.link):(u=y.buttonLabel,m=y.handleClick),{...r,buttonLabel:u,handleClick:m,finished:x,link:z}}).filter(Boolean);return g?s.sort((r,x)=>r?.finished&&!x?.finished?1:!r?.finished&&x?.finished?-1:0):s},[k,t.list,g]),p=I.length>3;return(0,e.jsxs)(i.Container,{id:d,className:"bg-[#F5F5F7]",children:[(0,e.jsx)(i.Heading,{as:"h2",size:"4",html:t.title}),(0,e.jsxs)("div",{className:(0,c.classNames)("mt-[24px] p-[32px] md-l:p-[32px] md:p-[16px] relative overflow-hidden",h?"rounded-[8px]":"",!h&&"l:rounded-none"),style:{background:"linear-gradient(180deg, rgba(255, 241, 214, 0) 39.51%, #F4CA81 119.53%)"},children:[(0,e.jsx)("div",{className:"absolute inset-0 pointer-events-none -z-10",style:{background:"radial-gradient(ellipse 130% 205% at 45% -20%, #FFF6EA 0%, #FFFFFF 73%, #FFF1D6 100%)"}}),(0,e.jsxs)("div",{className:"flex items-center justify-between xl-xxl:h-[448px] l-xl:h-[336px] h-[560px] l:h-auto md:flex-col md:items-start l:h-auto l:mb-[16px] l:flex-col-reverse l:items-start",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-[8px] l:mt-[8px]",children:[(0,e.jsx)(i.Heading,{as:"h3",size:4,html:t?.subtitle,className:"text-[32px] font-bold text-[#080a0f] tracking-[-1.28px] leading-[1.2] xl:text-[24px]"}),(0,e.jsx)("div",{className:"flex items-center gap-[8px]",children:(0,e.jsx)("p",{className:"text-[48px] font-bold tracking-[-1.92px] leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-43% to-[#00db84] bg-clip-text text-transparent xl-xxl:text-[40px] l-xl:text-[32px] l:text-[24px]",dangerouslySetInnerHTML:{__html:t.equalCredits}})})]}),t.mainImage?.url&&(0,e.jsx)(i.Picture,{className:"h-full object-contain l:mx-auto md:h-auto md:w-full md-l:h-[302px]",imgClassName:"!h-full !object-contain",source:t.mainImage.url})]}),(0,e.jsxs)("div",{className:"relative mt-[24px]",children:[(0,e.jsxs)(A.motion.div,{className:(0,c.classNames)("grid grid-cols-3 gap-[16px] overflow-hidden md:grid-cols-1 md-l:grid-cols-2 min-md:!h-auto"),initial:{height:p?512:"auto"},animate:{height:l||!p?"auto":512},transition:{duration:.3},onAnimationComplete:()=>{if(!l&&p&&window.screen.width<768){const s=document.getElementById(d||"ankersolix-task");s&&s.scrollIntoView({behavior:"smooth",block:"end"})}},children:[I.map(s=>(0,e.jsxs)("div",{className:(0,c.classNames)("flex min-h-[241px] xl-xxl:min-h-[192px] l:min-h-[160px] l-xl:min-h-[170px] flex-col justify-between bg-white p-[32px] xl:p-[16px]",h?"rounded-[16px]":""),children:[(0,e.jsxs)("div",{children:[(0,e.jsx)(i.Text,{as:"p",html:s.title,size:2,className:"text-pretty text-[24px] font-bold xxl:text-[20px]"}),(0,e.jsxs)("div",{className:"mt-[8px] l:mt-[4px] flex items-center",children:[(0,e.jsx)(i.Picture,{className:"size-[24px] xxl:size-[18px] [&_path]:size-full",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/20250902-153351.png?v=1756798450"}),(0,e.jsx)(i.Text,{as:"p",html:s.credits,size:2,className:"ml-[4px] mt-[6px] text-[18px] xxl:text-[14px]"})]})]}),s.handleClick&&!(s.id===f.TaskType.UploadReceipt&&S)&&!(s.id===f.TaskType.Activate&&D.isActivateSuccess)&&!(s.id===f.TaskType.Subscribe&&w)?(0,e.jsx)(i.Button,{as:s.link?"a":"button",...s.link&&{href:s.link},...s.handleClick&&{onClick:s.handleClick},variant:"primary",size:"lg",className:"mt-[24px] w-fit bg-[#080a0f] text-white text-[16px] font-bold tracking-[-0.64px] leading-[1.2]",children:s.buttonLabel}):(0,e.jsx)(i.Button,{variant:"primary",size:"lg",className:"mt-[24px] w-fit bg-[#080a0f] text-white text-[16px] font-bold tracking-[-0.64px] leading-[1.2]",disabled:!0,children:s.buttonLabel})]},s.id)),!l&&p&&(0,e.jsx)("div",{className:"absolute inset-0 pointer-events-none min-md:hidden",style:{background:"linear-gradient(180deg, rgba(244, 202, 129, 0) 66.37%, #f4ca81 100%)"}})]}),p&&(0,e.jsx)(e.Fragment,{children:l?(0,e.jsx)("button",{className:"mx-auto mt-[12px] block w-fit min-md:hidden",onClick:()=>{o(!1)},children:(0,e.jsx)(b.ChevronUpIcon,{className:"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]"})}):(0,e.jsx)(e.Fragment,{children:(0,e.jsx)("div",{className:"absolute bottom-0 flex w-full translate-y-1/2 justify-center min-md:hidden",children:(0,e.jsx)("button",{className:"w-fit",onClick:()=>o(!l),children:(0,e.jsx)(b.ChevronDownIcon,{className:"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]"})})})})})]})]}),t.receipt&&(0,e.jsx)(T.CreditsUploadReceiptModal,{isOpen:j,onClose:()=>{N(!1)},copy:t.receipt,onSuccess:()=>{H(!0)}}),t.subscribe&&(0,e.jsx)(U.CreditsSubscribeModal,{copy:t.subscribe,onSuccess:()=>{E(!0),setTimeout(()=>{v(!1)},3e3)},isOpen:_,onClose:()=>{v(!1)}})]})};
1
+ "use strict";var F=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var J=(t,l)=>{for(var r in l)F(t,r,{get:l[r],enumerable:!0})},K=(t,l,r,o)=>{if(l&&typeof l=="object"||typeof l=="function")for(let d of V(l))!G.call(t,d)&&d!==r&&F(t,d,{get:()=>l[d],enumerable:!(o=q(l,d))||o.enumerable});return t};var Q=t=>K(F({},"__esModule",{value:!0}),t);var X={};J(X,{CreditsAnkersolixTask:()=>W});module.exports=Q(X);var e=require("react/jsx-runtime"),i=require("@anker-in/headless-ui"),b=require("@heroicons/react/24/outline"),n=require("react"),f=require("./type"),z=require("../creditsWaysToGetCredits/useActions"),R=require("../context/provider"),c=require("@anker-in/lib"),T=require("../../registration"),M=require("../modal/creditsUploadReceiptModal"),A=require("../modal/subscribeModal"),L=require("../../../constants");const W=({copy:t,classNames:l,id:r})=>{const[o,d]=(0,n.useState)(!1),{profile:U}=(0,R.useCreditsContext)(),{authCodeActivate:O}=(0,T.useRegistration)(),{brand:B}=(0,c.useHeadlessContext)(),h=L.ROUNDED_BRANDS.includes(B),g=!!U,[D,N]=(0,n.useState)(!1),[P,v]=(0,n.useState)(!1),[S,j]=(0,n.useState)(!1),[w,E]=(0,n.useState)(!1),{actions:k}=(0,z.useActions)({copy:t,subscribe:{openSubscribePopup:()=>v(!0),isSuccess:S},uploadReceipt:{openUploadReceiptPopup:()=>N(!0),isSuccess:w}}),p=(t?.list||[]).length>3;(0,n.useEffect)(()=>{if(!o&&p&&window.screen.width<768){const s=setTimeout(()=>{const a=document.getElementById(r||"ankersolix-task");a&&a.scrollIntoView({behavior:"smooth",block:"end"})},300);return()=>clearTimeout(s)}},[o,p,r]);const _=(0,n.useMemo)(()=>{const s=t.list.map(a=>{if(!k[a.id])return;const{finished:u,notLogin:I,notFinished:C,completed:H}=k[a.id];let x="",m,y;return g?u?(x=H.buttonLabel,m=void 0):(x=C.buttonLabel,m=C.handleClick,y=C.link):(x=I.buttonLabel,m=I.handleClick),{...a,buttonLabel:x,handleClick:m,finished:u,link:y}}).filter(Boolean);return g?s.sort((a,u)=>a?.finished&&!u?.finished?1:!a?.finished&&u?.finished?-1:0):s},[k,t.list,g]);return(0,e.jsxs)(i.Container,{id:r,className:"bg-[#F5F5F7]",children:[(0,e.jsx)(i.Heading,{as:"h2",size:"4",html:t.title}),(0,e.jsxs)("div",{className:(0,c.classNames)("mt-[24px] p-[32px] md-l:p-[32px] md:p-[16px] relative overflow-hidden",h?"rounded-[8px]":"",!h&&"l:rounded-none"),style:{background:"linear-gradient(180deg, rgba(255, 241, 214, 0) 39.51%, #F4CA81 119.53%)"},children:[(0,e.jsx)("div",{className:"absolute inset-0 pointer-events-none -z-10",style:{background:"radial-gradient(ellipse 130% 205% at 45% -20%, #FFF6EA 0%, #FFFFFF 73%, #FFF1D6 100%)"}}),(0,e.jsxs)("div",{className:"flex items-center justify-between xl-xxl:h-[448px] l-xl:h-[336px] h-[560px] l:h-auto md:flex-col md:items-start l:h-auto l:mb-[16px] l:flex-col-reverse l:items-start",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-[8px] l:mt-[8px]",children:[(0,e.jsx)(i.Heading,{as:"h3",size:4,html:t?.subtitle,className:"text-[32px] font-bold text-[#080a0f] tracking-[-1.28px] leading-[1.2] xl:text-[24px]"}),(0,e.jsx)("div",{className:"flex items-center gap-[8px]",children:(0,e.jsx)("p",{className:"text-[48px] font-bold leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-43% to-[#00db84] bg-clip-text text-transparent xl-xxl:text-[40px] l-xl:text-[32px] l:text-[24px]",dangerouslySetInnerHTML:{__html:t.equalCredits}})})]}),t.mainImage?.url&&(0,e.jsx)(i.Picture,{className:"h-full object-contain l:mx-auto md:h-auto md:w-full md-l:h-[302px]",imgClassName:"!h-full !object-contain",source:t.mainImage.url})]}),(0,e.jsxs)("div",{className:"relative mt-[24px]",children:[(0,e.jsxs)("div",{className:(0,c.classNames)("grid grid-cols-3 gap-[16px] overflow-hidden md:grid-cols-1 md-l:grid-cols-2 min-md:!h-auto transition-all duration-300 ease-in-out"),style:{height:o||!p?"auto":"512px"},children:[_.map(s=>(0,e.jsxs)("div",{className:(0,c.classNames)("flex min-h-[241px] xl-xxl:min-h-[192px] l:min-h-[160px] l-xl:min-h-[170px] flex-col justify-between bg-white p-[32px] xl:p-[16px]",h?"rounded-[16px]":""),children:[(0,e.jsxs)("div",{children:[(0,e.jsx)(i.Text,{as:"p",html:s.title,size:2,className:"text-pretty text-[24px] font-bold xxl:text-[20px]"}),(0,e.jsxs)("div",{className:"mt-[8px] l:mt-[4px] flex items-center",children:[(0,e.jsx)(i.Picture,{className:"size-[24px] xxl:size-[18px] [&_path]:size-full",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/20250902-153351.png?v=1756798450"}),(0,e.jsx)(i.Text,{as:"p",html:s.credits,size:2,className:"ml-[4px] mt-[6px] text-[18px] xxl:text-[14px]"})]})]}),s.handleClick&&!(s.id===f.TaskType.UploadReceipt&&w)&&!(s.id===f.TaskType.Activate&&O.isActivateSuccess)&&!(s.id===f.TaskType.Subscribe&&S)?(0,e.jsx)(i.Button,{as:s.link?"a":"button",...s.link&&{href:s.link},...s.handleClick&&{onClick:s.handleClick},variant:"primary",size:"lg",className:"mt-[24px] w-fit",children:s.buttonLabel}):(0,e.jsx)(i.Button,{variant:"primary",size:"lg",className:"mt-[24px] w-fit",disabled:!0,children:s.buttonLabel})]},s.id)),!o&&p&&(0,e.jsx)("div",{className:"absolute inset-0 pointer-events-none min-md:hidden",style:{background:"linear-gradient(180deg, rgba(244, 202, 129, 0) 66.37%, #f4ca81 100%)"}})]}),p&&(0,e.jsx)(e.Fragment,{children:o?(0,e.jsx)("button",{className:"mx-auto mt-[12px] block w-fit min-md:hidden",onClick:()=>{d(!1)},children:(0,e.jsx)(b.ChevronUpIcon,{className:"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]"})}):(0,e.jsx)(e.Fragment,{children:(0,e.jsx)("div",{className:"absolute bottom-0 flex w-full translate-y-1/2 justify-center min-md:hidden",children:(0,e.jsx)("button",{className:"w-fit",onClick:()=>d(!o),children:(0,e.jsx)(b.ChevronDownIcon,{className:"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]"})})})})})]})]}),t.receipt&&(0,e.jsx)(M.CreditsUploadReceiptModal,{isOpen:D,onClose:()=>{N(!1)},copy:t.receipt,onSuccess:()=>{E(!0)}}),t.subscribe&&(0,e.jsx)(A.CreditsSubscribeModal,{copy:t.subscribe,onSuccess:()=>{j(!0),setTimeout(()=>{v(!1)},3e3)},isOpen:P,onClose:()=>{v(!1)}})]})};
2
2
  //# sourceMappingURL=CreditsAnkersolixTask.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.tsx"],
4
- "sourcesContent": ["import { Button, Container, Heading, Picture, Text } from '@anker-in/headless-ui'\nimport { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/24/outline'\nimport { motion } from 'framer-motion'\nimport { useMemo, useState } from 'react'\n\nimport { TaskType, type CreditsAnkersolixTaskProps } from './type'\nimport { useActions } from '../creditsWaysToGetCredits/useActions'\nimport { useCreditsContext } from '../context/provider'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useRegistration } from '../../registration'\nimport { CreditsUploadReceiptModal } from '../modal/creditsUploadReceiptModal'\nimport { CreditsSubscribeModal } from '../modal/subscribeModal'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nexport const CreditsAnkersolixTask = ({ copy, classNames, id }: CreditsAnkersolixTaskProps & { id?: string }) => {\n const [showMore, setShowMore] = useState(false)\n const { profile } = useCreditsContext()\n const { authCodeActivate } = useRegistration()\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const isLogin = !!profile\n\n const [isUploadReceiptModalOpen, setIsUploadReceiptModalOpen] = useState(false)\n const [isSubscribeModalOpen, setIsSubscribeModalOpen] = useState(false)\n const [isSubscribeSuccess, setIsSubscribeSuccess] = useState(false)\n const [isUploadReceiptSuccess, setIsUploadReceiptSuccess] = useState(false)\n\n const { actions } = useActions({\n copy,\n subscribe: {\n openSubscribePopup: () => setIsSubscribeModalOpen(true),\n isSuccess: isSubscribeSuccess,\n },\n uploadReceipt: {\n openUploadReceiptPopup: () => setIsUploadReceiptModalOpen(true),\n isSuccess: isUploadReceiptSuccess,\n },\n })\n const list = useMemo(() => {\n const list = copy.list\n .map(item => {\n if (!actions[item.id as keyof typeof actions]) {\n return undefined\n }\n const { finished, notLogin, notFinished, completed } = actions[item.id as keyof typeof actions]\n let buttonLabel = ''\n let handleClick = undefined\n let link = undefined\n if (!isLogin) {\n buttonLabel = notLogin.buttonLabel\n handleClick = notLogin.handleClick\n } else if (finished) {\n buttonLabel = completed.buttonLabel\n handleClick = undefined\n } else {\n buttonLabel = notFinished.buttonLabel\n handleClick = notFinished.handleClick\n link = (notFinished as { link: string }).link\n }\n return {\n ...item,\n buttonLabel,\n handleClick,\n finished,\n link,\n }\n })\n .filter(Boolean) as {\n title: string\n credits: string\n id: TaskType\n buttonLabel: string\n finished: boolean\n link: string\n handleClick: (() => void) | undefined\n }[]\n\n // \u767B\u5F55\u540E\uFF0C\u4FDD\u7559\u539F\u987A\u5E8F\uFF0C\u5C06\u5DF2\u5B8C\u6210\u7684\u4EFB\u52A1\u653E\u5728\u6700\u540E\n if (isLogin) {\n return list.sort((a, b) => {\n if (a?.finished && !b?.finished) {\n return 1 // a\u5DF2\u5B8C\u6210\uFF0Cb\u672A\u5B8C\u6210\uFF0Ca\u6392\u5728\u540E\u9762\n }\n if (!a?.finished && b?.finished) {\n return -1 // a\u672A\u5B8C\u6210\uFF0Cb\u5DF2\u5B8C\u6210\uFF0Ca\u6392\u5728\u524D\u9762\n }\n return 0 // \u90FD\u5DF2\u5B8C\u6210\u6216\u90FD\u672A\u5B8C\u6210\uFF0C\u4FDD\u6301\u539F\u987A\u5E8F\n })\n } else {\n return list\n }\n }, [actions, copy.list, isLogin])\n\n // \u53EA\u6709\u5927\u4E8E3\u4E2A\u4EFB\u52A1\u65F6\u624D\u663E\u793A\u8499\u5C42\n const shouldShowMask = list.length > 3\n\n return (\n <Container id={id} className=\"bg-[#F5F5F7]\">\n <Heading as=\"h2\" size=\"4\" html={copy.title} />\n <div\n className={cn(\n 'mt-[24px] p-[32px] md-l:p-[32px] md:p-[16px] relative overflow-hidden',\n rounded ? 'rounded-[8px]' : '',\n !rounded && 'l:rounded-none'\n )}\n style={{\n background: 'linear-gradient(180deg, rgba(255, 241, 214, 0) 39.51%, #F4CA81 119.53%)',\n }}\n >\n {/* \u5F84\u5411\u6E10\u53D8\u80CC\u666F\u5C42 - \u4F7F\u7528\u4F2A\u5143\u7D20\u6A21\u62DF */}\n <div\n className=\"absolute inset-0 pointer-events-none -z-10\"\n style={{\n background: 'radial-gradient(ellipse 130% 205% at 45% -20%, #FFF6EA 0%, #FFFFFF 73%, #FFF1D6 100%)',\n }}\n />\n {/* \u526F\u6807\u9898\u548C\u88C5\u9970\u56FE\u90E8\u5206 */}\n <div className=\"flex items-center justify-between xl-xxl:h-[448px] l-xl:h-[336px] h-[560px] l:h-auto md:flex-col md:items-start l:h-auto l:mb-[16px] l:flex-col-reverse l:items-start\">\n <div className=\"flex flex-col gap-[8px] l:mt-[8px]\">\n <Heading\n as=\"h3\"\n size={4}\n html={copy?.subtitle}\n className=\"text-[32px] font-bold text-[#080a0f] tracking-[-1.28px] leading-[1.2] xl:text-[24px]\"\n />\n <div className=\"flex items-center gap-[8px]\">\n <p\n className=\"text-[48px] font-bold tracking-[-1.92px] leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-43% to-[#00db84] bg-clip-text text-transparent xl-xxl:text-[40px] l-xl:text-[32px] l:text-[24px]\"\n dangerouslySetInnerHTML={{ __html: copy.equalCredits }}\n />\n </div>\n </div>\n {copy.mainImage?.url && (\n <Picture\n className=\"h-full object-contain l:mx-auto md:h-auto md:w-full md-l:h-[302px]\"\n imgClassName=\"!h-full !object-contain\"\n source={copy.mainImage.url}\n />\n )}\n </div>\n\n {/* \u5361\u7247\u5217\u8868 */}\n <div className=\"relative mt-[24px]\">\n <motion.div\n className={cn('grid grid-cols-3 gap-[16px] overflow-hidden md:grid-cols-1 md-l:grid-cols-2 min-md:!h-auto')}\n initial={{ height: shouldShowMask ? 512 : 'auto' }}\n animate={{ height: showMore || !shouldShowMask ? 'auto' : 512 }}\n transition={{ duration: 0.3 }}\n onAnimationComplete={() => {\n if (!showMore && shouldShowMask && window.screen.width < 768) {\n const section = document.getElementById(id || 'ankersolix-task')\n if (section) {\n section.scrollIntoView({ behavior: 'smooth', block: 'end' })\n }\n }\n }}\n >\n {list.map(item => (\n <div\n key={item.id}\n className={cn(\n 'flex min-h-[241px] xl-xxl:min-h-[192px] l:min-h-[160px] l-xl:min-h-[170px] flex-col justify-between bg-white p-[32px] xl:p-[16px]',\n rounded ? 'rounded-[16px]' : ''\n )}\n >\n <div>\n <Text\n as=\"p\"\n html={item.title}\n size={2}\n className=\"text-pretty text-[24px] font-bold xxl:text-[20px]\"\n />\n <div className=\"mt-[8px] l:mt-[4px] flex items-center\">\n <Picture\n className=\"size-[24px] xxl:size-[18px] [&_path]:size-full\"\n source=\"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/20250902-153351.png?v=1756798450\"\n />\n <Text\n as=\"p\"\n html={item.credits}\n size={2}\n className=\"ml-[4px] mt-[6px] text-[18px] xxl:text-[14px]\"\n />\n </div>\n </div>\n\n {item.handleClick &&\n !(item.id === TaskType.UploadReceipt && isUploadReceiptSuccess) &&\n !(item.id === TaskType.Activate && authCodeActivate.isActivateSuccess) &&\n !(item.id === TaskType.Subscribe && isSubscribeSuccess) ? (\n <Button\n as={item.link ? 'a' : 'button'}\n {...(item.link && { href: item.link })}\n {...(item.handleClick && { onClick: item.handleClick })}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[24px] w-fit bg-[#080a0f] text-white text-[16px] font-bold tracking-[-0.64px] leading-[1.2]\"\n >\n {item.buttonLabel}\n </Button>\n ) : (\n <Button\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[24px] w-fit bg-[#080a0f] text-white text-[16px] font-bold tracking-[-0.64px] leading-[1.2]\"\n disabled\n >\n {item.buttonLabel}\n </Button>\n )}\n </div>\n ))}\n {!showMore && shouldShowMask && (\n <div\n className=\"absolute inset-0 pointer-events-none min-md:hidden\"\n style={{ background: 'linear-gradient(180deg, rgba(244, 202, 129, 0) 66.37%, #f4ca81 100%)' }}\n ></div>\n )}\n </motion.div>\n {shouldShowMask && (\n <>\n {showMore ? (\n <button\n className=\"mx-auto mt-[12px] block w-fit min-md:hidden\"\n onClick={() => {\n setShowMore(false)\n }}\n >\n <ChevronUpIcon className=\"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]\"></ChevronUpIcon>\n </button>\n ) : (\n <>\n <div className=\"absolute bottom-0 flex w-full translate-y-1/2 justify-center min-md:hidden\">\n <button className=\"w-fit\" onClick={() => setShowMore(!showMore)}>\n <ChevronDownIcon className=\"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]\"></ChevronDownIcon>\n </button>\n </div>\n </>\n )}\n </>\n )}\n </div>\n </div>\n {copy.receipt && (\n <CreditsUploadReceiptModal\n isOpen={isUploadReceiptModalOpen}\n onClose={() => {\n setIsUploadReceiptModalOpen(false)\n }}\n copy={copy.receipt}\n onSuccess={() => {\n setIsUploadReceiptSuccess(true)\n }}\n />\n )}\n {copy.subscribe && (\n <CreditsSubscribeModal\n copy={copy.subscribe}\n onSuccess={() => {\n setIsSubscribeSuccess(true)\n setTimeout(() => {\n setIsSubscribeModalOpen(false)\n }, 3000)\n }}\n isOpen={isSubscribeModalOpen}\n onClose={() => {\n setIsSubscribeModalOpen(false)\n }}\n />\n )}\n </Container>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["CreditsAnkersolixTask_exports", "__export", "CreditsAnkersolixTask", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_outline", "import_framer_motion", "import_react", "import_type", "import_useActions", "import_provider", "import_lib", "import_registration", "import_creditsUploadReceiptModal", "import_subscribeModal", "import_constants", "copy", "classNames", "id", "showMore", "setShowMore", "profile", "authCodeActivate", "brand", "rounded", "isLogin", "isUploadReceiptModalOpen", "setIsUploadReceiptModalOpen", "isSubscribeModalOpen", "setIsSubscribeModalOpen", "isSubscribeSuccess", "setIsSubscribeSuccess", "isUploadReceiptSuccess", "setIsUploadReceiptSuccess", "actions", "list", "item", "finished", "notLogin", "notFinished", "completed", "buttonLabel", "handleClick", "link", "a", "b", "shouldShowMask", "cn", "section"]
4
+ "sourcesContent": ["import { Button, Container, Heading, Picture, Text } from '@anker-in/headless-ui'\nimport { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/24/outline'\nimport { useMemo, useState, useRef, useEffect } from 'react'\n\nimport { TaskType, type CreditsAnkersolixTaskProps } from './type'\nimport { useActions } from '../creditsWaysToGetCredits/useActions'\nimport { useCreditsContext } from '../context/provider'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useRegistration } from '../../registration'\nimport { CreditsUploadReceiptModal } from '../modal/creditsUploadReceiptModal'\nimport { CreditsSubscribeModal } from '../modal/subscribeModal'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nexport const CreditsAnkersolixTask = ({ copy, classNames, id }: CreditsAnkersolixTaskProps & { id?: string }) => {\n const [showMore, setShowMore] = useState(false)\n const { profile } = useCreditsContext()\n const { authCodeActivate } = useRegistration()\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const isLogin = !!profile\n\n const [isUploadReceiptModalOpen, setIsUploadReceiptModalOpen] = useState(false)\n const [isSubscribeModalOpen, setIsSubscribeModalOpen] = useState(false)\n const [isSubscribeSuccess, setIsSubscribeSuccess] = useState(false)\n const [isUploadReceiptSuccess, setIsUploadReceiptSuccess] = useState(false)\n\n const { actions } = useActions({\n copy,\n subscribe: {\n openSubscribePopup: () => setIsSubscribeModalOpen(true),\n isSuccess: isSubscribeSuccess,\n },\n uploadReceipt: {\n openUploadReceiptPopup: () => setIsUploadReceiptModalOpen(true),\n isSuccess: isUploadReceiptSuccess,\n },\n })\n\n const shouldShowMask = (copy?.list || []).length > 3\n\n // Handle scroll after collapse animation\n useEffect(() => {\n if (!showMore && shouldShowMask && window.screen.width < 768) {\n const timer = setTimeout(() => {\n const section = document.getElementById(id || 'ankersolix-task')\n if (section) {\n section.scrollIntoView({ behavior: 'smooth', block: 'end' })\n }\n }, 300) // Match transition duration\n return () => clearTimeout(timer)\n }\n }, [showMore, shouldShowMask, id])\n const list = useMemo(() => {\n const list = copy.list\n .map(item => {\n if (!actions[item.id as keyof typeof actions]) {\n return undefined\n }\n const { finished, notLogin, notFinished, completed } = actions[item.id as keyof typeof actions]\n let buttonLabel = ''\n let handleClick = undefined\n let link = undefined\n if (!isLogin) {\n buttonLabel = notLogin.buttonLabel\n handleClick = notLogin.handleClick\n } else if (finished) {\n buttonLabel = completed.buttonLabel\n handleClick = undefined\n } else {\n buttonLabel = notFinished.buttonLabel\n handleClick = notFinished.handleClick\n link = (notFinished as { link: string }).link\n }\n return {\n ...item,\n buttonLabel,\n handleClick,\n finished,\n link,\n }\n })\n .filter(Boolean) as {\n title: string\n credits: string\n id: TaskType\n buttonLabel: string\n finished: boolean\n link: string\n handleClick: (() => void) | undefined\n }[]\n\n // \u767B\u5F55\u540E\uFF0C\u4FDD\u7559\u539F\u987A\u5E8F\uFF0C\u5C06\u5DF2\u5B8C\u6210\u7684\u4EFB\u52A1\u653E\u5728\u6700\u540E\n if (isLogin) {\n return list.sort((a, b) => {\n if (a?.finished && !b?.finished) {\n return 1 // a\u5DF2\u5B8C\u6210\uFF0Cb\u672A\u5B8C\u6210\uFF0Ca\u6392\u5728\u540E\u9762\n }\n if (!a?.finished && b?.finished) {\n return -1 // a\u672A\u5B8C\u6210\uFF0Cb\u5DF2\u5B8C\u6210\uFF0Ca\u6392\u5728\u524D\u9762\n }\n return 0 // \u90FD\u5DF2\u5B8C\u6210\u6216\u90FD\u672A\u5B8C\u6210\uFF0C\u4FDD\u6301\u539F\u987A\u5E8F\n })\n } else {\n return list\n }\n }, [actions, copy.list, isLogin])\n\n return (\n <Container id={id} className=\"bg-[#F5F5F7]\">\n <Heading as=\"h2\" size=\"4\" html={copy.title} />\n <div\n className={cn(\n 'mt-[24px] p-[32px] md-l:p-[32px] md:p-[16px] relative overflow-hidden',\n rounded ? 'rounded-[8px]' : '',\n !rounded && 'l:rounded-none'\n )}\n style={{\n background: 'linear-gradient(180deg, rgba(255, 241, 214, 0) 39.51%, #F4CA81 119.53%)',\n }}\n >\n {/* \u5F84\u5411\u6E10\u53D8\u80CC\u666F\u5C42 - \u4F7F\u7528\u4F2A\u5143\u7D20\u6A21\u62DF */}\n <div\n className=\"absolute inset-0 pointer-events-none -z-10\"\n style={{\n background: 'radial-gradient(ellipse 130% 205% at 45% -20%, #FFF6EA 0%, #FFFFFF 73%, #FFF1D6 100%)',\n }}\n />\n {/* \u526F\u6807\u9898\u548C\u88C5\u9970\u56FE\u90E8\u5206 */}\n <div className=\"flex items-center justify-between xl-xxl:h-[448px] l-xl:h-[336px] h-[560px] l:h-auto md:flex-col md:items-start l:h-auto l:mb-[16px] l:flex-col-reverse l:items-start\">\n <div className=\"flex flex-col gap-[8px] l:mt-[8px]\">\n <Heading\n as=\"h3\"\n size={4}\n html={copy?.subtitle}\n className=\"text-[32px] font-bold text-[#080a0f] tracking-[-1.28px] leading-[1.2] xl:text-[24px]\"\n />\n <div className=\"flex items-center gap-[8px]\">\n <p\n className=\"text-[48px] font-bold leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-43% to-[#00db84] bg-clip-text text-transparent xl-xxl:text-[40px] l-xl:text-[32px] l:text-[24px]\"\n dangerouslySetInnerHTML={{ __html: copy.equalCredits }}\n />\n </div>\n </div>\n {copy.mainImage?.url && (\n <Picture\n className=\"h-full object-contain l:mx-auto md:h-auto md:w-full md-l:h-[302px]\"\n imgClassName=\"!h-full !object-contain\"\n source={copy.mainImage.url}\n />\n )}\n </div>\n\n {/* \u5361\u7247\u5217\u8868 */}\n <div className=\"relative mt-[24px]\">\n <div\n className={cn(\n 'grid grid-cols-3 gap-[16px] overflow-hidden md:grid-cols-1 md-l:grid-cols-2 min-md:!h-auto transition-all duration-300 ease-in-out'\n )}\n style={{\n height: showMore || !shouldShowMask ? 'auto' : '512px',\n }}\n >\n {list.map(item => (\n <div\n key={item.id}\n className={cn(\n 'flex min-h-[241px] xl-xxl:min-h-[192px] l:min-h-[160px] l-xl:min-h-[170px] flex-col justify-between bg-white p-[32px] xl:p-[16px]',\n rounded ? 'rounded-[16px]' : ''\n )}\n >\n <div>\n <Text\n as=\"p\"\n html={item.title}\n size={2}\n className=\"text-pretty text-[24px] font-bold xxl:text-[20px]\"\n />\n <div className=\"mt-[8px] l:mt-[4px] flex items-center\">\n <Picture\n className=\"size-[24px] xxl:size-[18px] [&_path]:size-full\"\n source=\"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/20250902-153351.png?v=1756798450\"\n />\n <Text\n as=\"p\"\n html={item.credits}\n size={2}\n className=\"ml-[4px] mt-[6px] text-[18px] xxl:text-[14px]\"\n />\n </div>\n </div>\n\n {item.handleClick &&\n !(item.id === TaskType.UploadReceipt && isUploadReceiptSuccess) &&\n !(item.id === TaskType.Activate && authCodeActivate.isActivateSuccess) &&\n !(item.id === TaskType.Subscribe && isSubscribeSuccess) ? (\n <Button\n as={item.link ? 'a' : 'button'}\n {...(item.link && { href: item.link })}\n {...(item.handleClick && { onClick: item.handleClick })}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[24px] w-fit\"\n >\n {item.buttonLabel}\n </Button>\n ) : (\n <Button variant=\"primary\" size=\"lg\" className=\"mt-[24px] w-fit\" disabled>\n {item.buttonLabel}\n </Button>\n )}\n </div>\n ))}\n {!showMore && shouldShowMask && (\n <div\n className=\"absolute inset-0 pointer-events-none min-md:hidden\"\n style={{ background: 'linear-gradient(180deg, rgba(244, 202, 129, 0) 66.37%, #f4ca81 100%)' }}\n ></div>\n )}\n </div>\n {shouldShowMask && (\n <>\n {showMore ? (\n <button\n className=\"mx-auto mt-[12px] block w-fit min-md:hidden\"\n onClick={() => {\n setShowMore(false)\n }}\n >\n <ChevronUpIcon className=\"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]\"></ChevronUpIcon>\n </button>\n ) : (\n <>\n <div className=\"absolute bottom-0 flex w-full translate-y-1/2 justify-center min-md:hidden\">\n <button className=\"w-fit\" onClick={() => setShowMore(!showMore)}>\n <ChevronDownIcon className=\"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]\"></ChevronDownIcon>\n </button>\n </div>\n </>\n )}\n </>\n )}\n </div>\n </div>\n {copy.receipt && (\n <CreditsUploadReceiptModal\n isOpen={isUploadReceiptModalOpen}\n onClose={() => {\n setIsUploadReceiptModalOpen(false)\n }}\n copy={copy.receipt}\n onSuccess={() => {\n setIsUploadReceiptSuccess(true)\n }}\n />\n )}\n {copy.subscribe && (\n <CreditsSubscribeModal\n copy={copy.subscribe}\n onSuccess={() => {\n setIsSubscribeSuccess(true)\n setTimeout(() => {\n setIsSubscribeModalOpen(false)\n }, 3000)\n }}\n isOpen={isSubscribeModalOpen}\n onClose={() => {\n setIsSubscribeModalOpen(false)\n }}\n />\n )}\n </Container>\n )\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2BAAAE,IAAA,eAAAC,EAAAH,GA6GM,IAAAI,EAAA,6BA7GNC,EAA0D,iCAC1DC,EAA+C,uCAC/CC,EAAqD,iBAErDC,EAA0D,kBAC1DC,EAA2B,iDAC3BC,EAAkC,+BAClCC,EAAqD,yBACrDC,EAAgC,8BAChCC,EAA0C,8CAC1CC,EAAsC,mCACtCC,EAA+B,8BAExB,MAAMb,EAAwB,CAAC,CAAE,KAAAc,EAAM,WAAAC,EAAY,GAAAC,CAAG,IAAoD,CAC/G,KAAM,CAACC,EAAUC,CAAW,KAAI,YAAS,EAAK,EACxC,CAAE,QAAAC,CAAQ,KAAI,qBAAkB,EAChC,CAAE,iBAAAC,CAAiB,KAAI,mBAAgB,EACvC,CAAE,MAAAC,CAAM,KAAI,sBAAmB,EAC/BC,EAAU,iBAAe,SAASD,CAAK,EACvCE,EAAU,CAAC,CAACJ,EAEZ,CAACK,EAA0BC,CAA2B,KAAI,YAAS,EAAK,EACxE,CAACC,EAAsBC,CAAuB,KAAI,YAAS,EAAK,EAChE,CAACC,EAAoBC,CAAqB,KAAI,YAAS,EAAK,EAC5D,CAACC,EAAwBC,CAAyB,KAAI,YAAS,EAAK,EAEpE,CAAE,QAAAC,CAAQ,KAAI,cAAW,CAC7B,KAAAlB,EACA,UAAW,CACT,mBAAoB,IAAMa,EAAwB,EAAI,EACtD,UAAWC,CACb,EACA,cAAe,CACb,uBAAwB,IAAMH,EAA4B,EAAI,EAC9D,UAAWK,CACb,CACF,CAAC,EAEKG,GAAkBnB,GAAM,MAAQ,CAAC,GAAG,OAAS,KAGnD,aAAU,IAAM,CACd,GAAI,CAACG,GAAYgB,GAAkB,OAAO,OAAO,MAAQ,IAAK,CAC5D,MAAMC,EAAQ,WAAW,IAAM,CAC7B,MAAMC,EAAU,SAAS,eAAenB,GAAM,iBAAiB,EAC3DmB,GACFA,EAAQ,eAAe,CAAE,SAAU,SAAU,MAAO,KAAM,CAAC,CAE/D,EAAG,GAAG,EACN,MAAO,IAAM,aAAaD,CAAK,CACjC,CACF,EAAG,CAACjB,EAAUgB,EAAgBjB,CAAE,CAAC,EACjC,MAAMoB,KAAO,WAAQ,IAAM,CACzB,MAAMA,EAAOtB,EAAK,KACf,IAAIuB,GAAQ,CACX,GAAI,CAACL,EAAQK,EAAK,EAA0B,EAC1C,OAEF,KAAM,CAAE,SAAAC,EAAU,SAAAC,EAAU,YAAAC,EAAa,UAAAC,CAAU,EAAIT,EAAQK,EAAK,EAA0B,EAC9F,IAAIK,EAAc,GACdC,EACAC,EACJ,OAAKrB,EAGMe,GACTI,EAAcD,EAAU,YACxBE,EAAc,SAEdD,EAAcF,EAAY,YAC1BG,EAAcH,EAAY,YAC1BI,EAAQJ,EAAiC,OARzCE,EAAcH,EAAS,YACvBI,EAAcJ,EAAS,aASlB,CACL,GAAGF,EACH,YAAAK,EACA,YAAAC,EACA,SAAAL,EACA,KAAAM,CACF,CACF,CAAC,EACA,OAAO,OAAO,EAWjB,OAAIrB,EACKa,EAAK,KAAK,CAAC,EAAGS,IACf,GAAG,UAAY,CAACA,GAAG,SACd,EAEL,CAAC,GAAG,UAAYA,GAAG,SACd,GAEF,CACR,EAEMT,CAEX,EAAG,CAACJ,EAASlB,EAAK,KAAMS,CAAO,CAAC,EAEhC,SACE,QAAC,aAAU,GAAIP,EAAI,UAAU,eAC3B,oBAAC,WAAQ,GAAG,KAAK,KAAK,IAAI,KAAMF,EAAK,MAAO,KAC5C,QAAC,OACC,aAAW,EAAAgC,YACT,wEACAxB,EAAU,gBAAkB,GAC5B,CAACA,GAAW,gBACd,EACA,MAAO,CACL,WAAY,yEACd,EAGA,oBAAC,OACC,UAAU,6CACV,MAAO,CACL,WAAY,uFACd,EACF,KAEA,QAAC,OAAI,UAAU,wKACb,qBAAC,OAAI,UAAU,qCACb,oBAAC,WACC,GAAG,KACH,KAAM,EACN,KAAMR,GAAM,SACZ,UAAU,uFACZ,KACA,OAAC,OAAI,UAAU,8BACb,mBAAC,KACC,UAAU,wLACV,wBAAyB,CAAE,OAAQA,EAAK,YAAa,EACvD,EACF,GACF,EACCA,EAAK,WAAW,QACf,OAAC,WACC,UAAU,qEACV,aAAa,0BACb,OAAQA,EAAK,UAAU,IACzB,GAEJ,KAGA,QAAC,OAAI,UAAU,qBACb,qBAAC,OACC,aAAW,EAAAgC,YACT,oIACF,EACA,MAAO,CACL,OAAQ7B,GAAY,CAACgB,EAAiB,OAAS,OACjD,EAEC,UAAAG,EAAK,IAAIC,MACR,QAAC,OAEC,aAAW,EAAAS,YACT,oIACAxB,EAAU,iBAAmB,EAC/B,EAEA,qBAAC,OACC,oBAAC,QACC,GAAG,IACH,KAAMe,EAAK,MACX,KAAM,EACN,UAAU,oDACZ,KACA,QAAC,OAAI,UAAU,wCACb,oBAAC,WACC,UAAU,iDACV,OAAO,0FACT,KACA,OAAC,QACC,GAAG,IACH,KAAMA,EAAK,QACX,KAAM,EACN,UAAU,gDACZ,GACF,GACF,EAECA,EAAK,aACN,EAAEA,EAAK,KAAO,WAAS,eAAiBP,IACxC,EAAEO,EAAK,KAAO,WAAS,UAAYjB,EAAiB,oBACpD,EAAEiB,EAAK,KAAO,WAAS,WAAaT,MAClC,OAAC,UACC,GAAIS,EAAK,KAAO,IAAM,SACrB,GAAIA,EAAK,MAAQ,CAAE,KAAMA,EAAK,IAAK,EACnC,GAAIA,EAAK,aAAe,CAAE,QAASA,EAAK,WAAY,EACrD,QAAQ,UACR,KAAK,KACL,UAAU,kBAET,SAAAA,EAAK,YACR,KAEA,OAAC,UAAO,QAAQ,UAAU,KAAK,KAAK,UAAU,kBAAkB,SAAQ,GACrE,SAAAA,EAAK,YACR,IA5CGA,EAAK,EA8CZ,CACD,EACA,CAACpB,GAAYgB,MACZ,OAAC,OACC,UAAU,qDACV,MAAO,CAAE,WAAY,sEAAuE,EAC7F,GAEL,EACCA,MACC,mBACG,SAAAhB,KACC,OAAC,UACC,UAAU,8CACV,QAAS,IAAM,CACbC,EAAY,EAAK,CACnB,EAEA,mBAAC,iBAAc,UAAU,kDAAkD,EAC7E,KAEA,mBACE,mBAAC,OAAI,UAAU,6EACb,mBAAC,UAAO,UAAU,QAAQ,QAAS,IAAMA,EAAY,CAACD,CAAQ,EAC5D,mBAAC,mBAAgB,UAAU,kDAAkD,EAC/E,EACF,EACF,EAEJ,GAEJ,GACF,EACCH,EAAK,YACJ,OAAC,6BACC,OAAQU,EACR,QAAS,IAAM,CACbC,EAA4B,EAAK,CACnC,EACA,KAAMX,EAAK,QACX,UAAW,IAAM,CACfiB,EAA0B,EAAI,CAChC,EACF,EAEDjB,EAAK,cACJ,OAAC,yBACC,KAAMA,EAAK,UACX,UAAW,IAAM,CACfe,EAAsB,EAAI,EAC1B,WAAW,IAAM,CACfF,EAAwB,EAAK,CAC/B,EAAG,GAAI,CACT,EACA,OAAQD,EACR,QAAS,IAAM,CACbC,EAAwB,EAAK,CAC/B,EACF,GAEJ,CAEJ",
6
+ "names": ["CreditsAnkersolixTask_exports", "__export", "CreditsAnkersolixTask", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_outline", "import_react", "import_type", "import_useActions", "import_provider", "import_lib", "import_registration", "import_creditsUploadReceiptModal", "import_subscribeModal", "import_constants", "copy", "classNames", "id", "showMore", "setShowMore", "profile", "authCodeActivate", "brand", "rounded", "isLogin", "isUploadReceiptModalOpen", "setIsUploadReceiptModalOpen", "isSubscribeModalOpen", "setIsSubscribeModalOpen", "isSubscribeSuccess", "setIsSubscribeSuccess", "isUploadReceiptSuccess", "setIsUploadReceiptSuccess", "actions", "shouldShowMask", "timer", "section", "list", "item", "finished", "notLogin", "notFinished", "completed", "buttonLabel", "handleClick", "link", "b", "cn"]
7
7
  }
@@ -1,6 +1,8 @@
1
1
  type Img = {
2
2
  url: string;
3
3
  alt: string;
4
+ width?: number;
5
+ height?: number;
4
6
  };
5
7
  export type CreditsBannerCopy = {
6
8
  pcImg: Img;
@@ -1,2 +1,13 @@
1
- "use strict";var x=Object.create;var o=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var C=(t,n)=>{for(var e in n)o(t,e,{get:n[e],enumerable:!0})},m=(t,n,e,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of I(n))!v.call(t,a)&&a!==e&&o(t,a,{get:()=>n[a],enumerable:!(r=f(n,a))||r.enumerable});return t};var N=(t,n,e)=>(e=t!=null?x(h(t)):{},m(n||!t||!t.__esModule?o(e,"default",{value:t,enumerable:!0}):e,t)),w=t=>m(o({},"__esModule",{value:!0}),t);var b={};C(b,{CreditsBanner:()=>y});module.exports=w(b);var i=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),p=N(require("classnames")),d=require("../context/provider");function y({copy:t,id:n}){const{profile:e,openSignInPopup:r,openSignUpPopup:a}=(0,d.useCreditsContext)(),s=e?Object.keys(e).length!==0:!1,c=e?.first_name?e?.first_name+" "+e?.last_name:e?.email?.split("@")[0],g=u=>{u==="primary"?a():r()};return(0,i.jsx)(i.Fragment,{children:(0,i.jsxs)("div",{id:n,className:" relative w-full",children:[(0,i.jsx)(l.Picture,{className:"aspect-h-[804] aspect-w-[1920] md:aspect-h-[660] md:aspect-w-[390] md-l:aspect-h-[660] md-l:aspect-w-[768]",source:`${t.pcImg?.url}, ${t.laptopImg?.url} 1024, ${t.mobileImg?.url} 768`,alt:t.pcImg?.alt,loading:"eager"}),s&&(0,i.jsx)("div",{className:"absolute inset-0 ",style:{background:"linear-gradient(180deg, rgba(245, 245, 247, 0) 70.31%, #F5F5F7 100%)"}}),(0,i.jsx)(l.Container,{className:"l:h-auto !absolute inset-0 mx-auto grid h-full",asChild:!0,children:(0,i.jsx)("div",{className:"grid grid-cols-12",children:(0,i.jsxs)("div",{className:"l:col-span-12 l:justify-start l:truncate l:pt-[64px] col-span-5 flex h-full flex-col justify-center text-[#1F2021]",children:[(0,i.jsx)(l.Heading,{as:"h1",size:"5",html:s?t.login.title?.replace("$name",c||""):t.unLogin.title}),(0,i.jsx)(l.Text,{size:"3",className:"l:mt-[4px] l-xxl:text-[14px] mt-[16px]",html:s?t.login.description:t.unLogin.description}),!s&&(0,i.jsxs)("div",{className:(0,p.default)("mt-[32px] grid w-fit grid-flow-col gap-[12px] l:mt-[24px]",s&&"hidden"),children:[(0,i.jsx)(l.Button,{variant:"secondary",size:"lg",onClick:()=>{g("primary")},children:t.joinNow}),(0,i.jsx)(l.Button,{variant:"primary",size:"lg",onClick:()=>{g("secondary")},children:t.loginIn})]})]})})})]})})}
1
+ "use strict";var f=Object.create;var m=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var N=(t,a)=>{for(var e in a)m(t,e,{get:a[e],enumerable:!0})},o=(t,a,e,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of w(a))!C.call(t,n)&&n!==e&&m(t,n,{get:()=>a[n],enumerable:!(r=b(a,n))||r.enumerable});return t};var $=(t,a,e)=>(e=t!=null?f(v(t)):{},o(a||!t||!t.__esModule?m(e,"default",{value:t,enumerable:!0}):e,t)),B=t=>o(m({},"__esModule",{value:!0}),t);var k={};N(k,{CreditsBanner:()=>j});module.exports=B(k);var i=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),d=$(require("classnames")),p=require("../context/provider");function j({copy:t,id:a}){const{profile:e,openSignInPopup:r,openSignUpPopup:n}=(0,p.useCreditsContext)(),s=e?Object.keys(e).length!==0:!1,c=e?.first_name?e?.first_name+" "+e?.last_name:e?.email?.split("@")[0],g=I=>{I==="primary"?n():r()},h=t.pcImg?.width&&t.pcImg?.height?`${t.pcImg.width} / ${t.pcImg.height}`:"1920 / 804",u=t.laptopImg?.width&&t.laptopImg?.height?`${t.laptopImg.width} / ${t.laptopImg.height}`:"768 / 660",x=t.mobileImg?.width&&t.mobileImg?.height?`${t.mobileImg.width} / ${t.mobileImg.height}`:"390 / 660";return(0,i.jsx)(i.Fragment,{children:(0,i.jsxs)("div",{id:a,className:" relative w-full",children:[(0,i.jsx)(l.Picture,{className:"credits-banner-image w-full",style:{aspectRatio:h},imgClassName:"object-cover w-full h-full",source:`${t.pcImg?.url}, ${t.laptopImg?.url} 1024, ${t.mobileImg?.url} 768`,alt:t.pcImg?.alt,loading:"eager"}),(0,i.jsx)("style",{children:`
2
+ @media (max-width: 1024px) and (min-width: 768px) {
3
+ .credits-banner-image {
4
+ aspect-ratio: ${u} !important;
5
+ }
6
+ }
7
+ @media (max-width: 767px) {
8
+ .credits-banner-image {
9
+ aspect-ratio: ${x} !important;
10
+ }
11
+ }
12
+ `}),s&&(0,i.jsx)("div",{className:"absolute inset-0 ",style:{background:"linear-gradient(180deg, rgba(245, 245, 247, 0) 70.31%, #F5F5F7 100%)"}}),(0,i.jsx)(l.Container,{className:"l:h-auto !absolute inset-0 mx-auto grid h-full",asChild:!0,children:(0,i.jsx)("div",{className:"grid grid-cols-12",children:(0,i.jsxs)("div",{className:"l:col-span-12 l:justify-start l:truncate l:pt-[32px] col-span-5 flex h-full flex-col justify-center text-[#1F2021]",children:[(0,i.jsx)(l.Heading,{as:"h1",className:"text-[48px] font-bold xl-xxl:text-[40px] l:text-[32px]",html:s?t.login.title?.replace("$name",c||""):t.unLogin.title}),(0,i.jsx)(l.Text,{size:"3",className:"l:mt-[4px] l-xxl:text-[14px] mt-[16px]",html:s?t.login.description:t.unLogin.description}),!s&&(0,i.jsxs)("div",{className:(0,d.default)("mt-[32px] grid w-fit grid-flow-col gap-[12px] l:mt-[24px]",s&&"hidden"),children:[(0,i.jsx)(l.Button,{variant:"secondary",size:"lg",onClick:()=>{g("primary")},children:t.joinNow}),(0,i.jsx)(l.Button,{variant:"primary",size:"lg",onClick:()=>{g("secondary")},children:t.loginIn})]})]})})})]})})}
2
13
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsBanner/index.tsx"],
4
- "sourcesContent": ["import { Button, Container, Heading, Picture, Text } from '@anker-in/headless-ui'\nimport classNames from 'classnames'\nimport { useCreditsContext } from '../context/provider'\n\ntype Img = {\n url: string\n alt: string\n}\nexport type CreditsBannerCopy = {\n pcImg: Img\n laptopImg: Img\n mobileImg: Img\n joinNow: string\n loginIn: string\n login: {\n title: string\n description: string\n }\n unLogin: {\n title: string\n description: string\n }\n}\n\nexport function CreditsBanner({ copy, id }: { copy: CreditsBannerCopy; id?: string }) {\n const { profile, openSignInPopup, openSignUpPopup } = useCreditsContext()\n const isLogin = profile ? Object.keys(profile).length !== 0 : false\n\n const displayName = profile?.first_name\n ? profile?.first_name + ' ' + profile?.last_name\n : profile?.email?.split('@')[0]\n\n const handleButtonClick = (buttonType: 'primary' | 'secondary') => {\n buttonType === 'primary' ? openSignUpPopup() : openSignInPopup()\n }\n\n return (\n <>\n <div id={id} className=\" relative w-full\">\n <Picture\n className=\"aspect-h-[804] aspect-w-[1920] md:aspect-h-[660] md:aspect-w-[390] md-l:aspect-h-[660] md-l:aspect-w-[768]\"\n source={`${copy.pcImg?.url}, ${copy.laptopImg?.url} 1024, ${copy.mobileImg?.url} 768`}\n alt={copy.pcImg?.alt}\n loading=\"eager\"\n ></Picture>\n {isLogin && (\n <div\n className=\"absolute inset-0 \"\n style={{\n background: 'linear-gradient(180deg, rgba(245, 245, 247, 0) 70.31%, #F5F5F7 100%)',\n }}\n ></div>\n )}\n\n <Container className=\"l:h-auto !absolute inset-0 mx-auto grid h-full\" asChild>\n <div className=\"grid grid-cols-12\">\n <div className=\"l:col-span-12 l:justify-start l:truncate l:pt-[64px] col-span-5 flex h-full flex-col justify-center text-[#1F2021]\">\n <Heading\n as=\"h1\"\n size=\"5\"\n html={isLogin ? copy.login.title?.replace('$name', displayName || '') : copy.unLogin.title}\n ></Heading>\n\n <Text\n size=\"3\"\n className=\"l:mt-[4px] l-xxl:text-[14px] mt-[16px]\"\n html={isLogin ? copy.login.description : copy.unLogin.description}\n ></Text>\n\n {!isLogin && (\n <div\n className={classNames(\n 'mt-[32px] grid w-fit grid-flow-col gap-[12px] l:mt-[24px]',\n isLogin && 'hidden'\n )}\n >\n <Button\n variant=\"secondary\"\n size=\"lg\"\n onClick={() => {\n handleButtonClick('primary')\n }}\n >\n {copy.joinNow}\n </Button>\n <Button\n variant=\"primary\"\n size=\"lg\"\n onClick={() => {\n handleButtonClick('secondary')\n }}\n >\n {copy.loginIn}\n </Button>\n </div>\n )}\n </div>\n </div>\n </Container>\n </div>\n </>\n )\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAqCI,IAAAI,EAAA,6BArCJC,EAA0D,iCAC1DC,EAAuB,yBACvBC,EAAkC,+BAsB3B,SAASL,EAAc,CAAE,KAAAM,EAAM,GAAAC,CAAG,EAA6C,CACpF,KAAM,CAAE,QAAAC,EAAS,gBAAAC,EAAiB,gBAAAC,CAAgB,KAAI,qBAAkB,EAClEC,EAAUH,EAAU,OAAO,KAAKA,CAAO,EAAE,SAAW,EAAI,GAExDI,EAAcJ,GAAS,WACzBA,GAAS,WAAa,IAAMA,GAAS,UACrCA,GAAS,OAAO,MAAM,GAAG,EAAE,CAAC,EAE1BK,EAAqBC,GAAwC,CACjEA,IAAe,UAAYJ,EAAgB,EAAID,EAAgB,CACjE,EAEA,SACE,mBACE,oBAAC,OAAI,GAAIF,EAAI,UAAU,mBACrB,oBAAC,WACC,UAAU,6GACV,OAAQ,GAAGD,EAAK,OAAO,GAAG,KAAKA,EAAK,WAAW,GAAG,UAAUA,EAAK,WAAW,GAAG,OAC/E,IAAKA,EAAK,OAAO,IACjB,QAAQ,QACT,EACAK,MACC,OAAC,OACC,UAAU,oBACV,MAAO,CACL,WAAY,sEACd,EACD,KAGH,OAAC,aAAU,UAAU,iDAAiD,QAAO,GAC3E,mBAAC,OAAI,UAAU,oBACb,oBAAC,OAAI,UAAU,qHACb,oBAAC,WACC,GAAG,KACH,KAAK,IACL,KAAMA,EAAUL,EAAK,MAAM,OAAO,QAAQ,QAASM,GAAe,EAAE,EAAIN,EAAK,QAAQ,MACtF,KAED,OAAC,QACC,KAAK,IACL,UAAU,yCACV,KAAMK,EAAUL,EAAK,MAAM,YAAcA,EAAK,QAAQ,YACvD,EAEA,CAACK,MACA,QAAC,OACC,aAAW,EAAAI,SACT,4DACAJ,GAAW,QACb,EAEA,oBAAC,UACC,QAAQ,YACR,KAAK,KACL,QAAS,IAAM,CACbE,EAAkB,SAAS,CAC7B,EAEC,SAAAP,EAAK,QACR,KACA,OAAC,UACC,QAAQ,UACR,KAAK,KACL,QAAS,IAAM,CACbO,EAAkB,WAAW,CAC/B,EAEC,SAAAP,EAAK,QACR,GACF,GAEJ,EACF,EACF,GACF,EACF,CAEJ",
6
- "names": ["creditsBanner_exports", "__export", "CreditsBanner", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_classnames", "import_provider", "copy", "id", "profile", "openSignInPopup", "openSignUpPopup", "isLogin", "displayName", "handleButtonClick", "buttonType", "classNames"]
4
+ "sourcesContent": ["import { Button, Container, Heading, Picture, Text } from '@anker-in/headless-ui'\nimport classNames from 'classnames'\nimport { useCreditsContext } from '../context/provider'\n\ntype Img = {\n url: string\n alt: string\n width?: number\n height?: number\n}\nexport type CreditsBannerCopy = {\n pcImg: Img\n laptopImg: Img\n mobileImg: Img\n joinNow: string\n loginIn: string\n login: {\n title: string\n description: string\n }\n unLogin: {\n title: string\n description: string\n }\n}\n\nexport function CreditsBanner({ copy, id }: { copy: CreditsBannerCopy; id?: string }) {\n const { profile, openSignInPopup, openSignUpPopup } = useCreditsContext()\n const isLogin = profile ? Object.keys(profile).length !== 0 : false\n\n const displayName = profile?.first_name\n ? profile?.first_name + ' ' + profile?.last_name\n : profile?.email?.split('@')[0]\n\n const handleButtonClick = (buttonType: 'primary' | 'secondary') => {\n buttonType === 'primary' ? openSignUpPopup() : openSignInPopup()\n }\n\n // \u8BA1\u7B97\u56FE\u7247\u6BD4\u4F8B\uFF0C\u5982\u679C\u6CA1\u6709\u914D\u7F6E\u5219\u4F7F\u7528\u9ED8\u8BA4\u503C\n const pcAspectRatio =\n copy.pcImg?.width && copy.pcImg?.height ? `${copy.pcImg.width} / ${copy.pcImg.height}` : '1920 / 804'\n const laptopAspectRatio =\n copy.laptopImg?.width && copy.laptopImg?.height ? `${copy.laptopImg.width} / ${copy.laptopImg.height}` : '768 / 660'\n const mobileAspectRatio =\n copy.mobileImg?.width && copy.mobileImg?.height ? `${copy.mobileImg.width} / ${copy.mobileImg.height}` : '390 / 660'\n\n return (\n <>\n <div id={id} className=\" relative w-full\">\n <Picture\n className=\"credits-banner-image w-full\"\n style={{\n aspectRatio: pcAspectRatio,\n }}\n imgClassName=\"object-cover w-full h-full\"\n source={`${copy.pcImg?.url}, ${copy.laptopImg?.url} 1024, ${copy.mobileImg?.url} 768`}\n alt={copy.pcImg?.alt}\n loading=\"eager\"\n ></Picture>\n <style>\n {`\n @media (max-width: 1024px) and (min-width: 768px) {\n .credits-banner-image {\n aspect-ratio: ${laptopAspectRatio} !important;\n }\n }\n @media (max-width: 767px) {\n .credits-banner-image {\n aspect-ratio: ${mobileAspectRatio} !important;\n }\n }\n `}\n </style>\n {isLogin && (\n <div\n className=\"absolute inset-0 \"\n style={{\n background: 'linear-gradient(180deg, rgba(245, 245, 247, 0) 70.31%, #F5F5F7 100%)',\n }}\n ></div>\n )}\n\n <Container className=\"l:h-auto !absolute inset-0 mx-auto grid h-full\" asChild>\n <div className=\"grid grid-cols-12\">\n <div className=\"l:col-span-12 l:justify-start l:truncate l:pt-[32px] col-span-5 flex h-full flex-col justify-center text-[#1F2021]\">\n <Heading\n as=\"h1\"\n className=\"text-[48px] font-bold xl-xxl:text-[40px] l:text-[32px]\"\n html={isLogin ? copy.login.title?.replace('$name', displayName || '') : copy.unLogin.title}\n ></Heading>\n\n <Text\n size=\"3\"\n className=\"l:mt-[4px] l-xxl:text-[14px] mt-[16px]\"\n html={isLogin ? copy.login.description : copy.unLogin.description}\n ></Text>\n\n {!isLogin && (\n <div\n className={classNames(\n 'mt-[32px] grid w-fit grid-flow-col gap-[12px] l:mt-[24px]',\n isLogin && 'hidden'\n )}\n >\n <Button\n variant=\"secondary\"\n size=\"lg\"\n onClick={() => {\n handleButtonClick('primary')\n }}\n >\n {copy.joinNow}\n </Button>\n <Button\n variant=\"primary\"\n size=\"lg\"\n onClick={() => {\n handleButtonClick('secondary')\n }}\n >\n {copy.loginIn}\n </Button>\n </div>\n )}\n </div>\n </div>\n </Container>\n </div>\n </>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GA+CI,IAAAI,EAAA,6BA/CJC,EAA0D,iCAC1DC,EAAuB,yBACvBC,EAAkC,+BAwB3B,SAASL,EAAc,CAAE,KAAAM,EAAM,GAAAC,CAAG,EAA6C,CACpF,KAAM,CAAE,QAAAC,EAAS,gBAAAC,EAAiB,gBAAAC,CAAgB,KAAI,qBAAkB,EAClEC,EAAUH,EAAU,OAAO,KAAKA,CAAO,EAAE,SAAW,EAAI,GAExDI,EAAcJ,GAAS,WACzBA,GAAS,WAAa,IAAMA,GAAS,UACrCA,GAAS,OAAO,MAAM,GAAG,EAAE,CAAC,EAE1BK,EAAqBC,GAAwC,CACjEA,IAAe,UAAYJ,EAAgB,EAAID,EAAgB,CACjE,EAGMM,EACJT,EAAK,OAAO,OAASA,EAAK,OAAO,OAAS,GAAGA,EAAK,MAAM,KAAK,MAAMA,EAAK,MAAM,MAAM,GAAK,aACrFU,EACJV,EAAK,WAAW,OAASA,EAAK,WAAW,OAAS,GAAGA,EAAK,UAAU,KAAK,MAAMA,EAAK,UAAU,MAAM,GAAK,YACrGW,EACJX,EAAK,WAAW,OAASA,EAAK,WAAW,OAAS,GAAGA,EAAK,UAAU,KAAK,MAAMA,EAAK,UAAU,MAAM,GAAK,YAE3G,SACE,mBACE,oBAAC,OAAI,GAAIC,EAAI,UAAU,mBACrB,oBAAC,WACC,UAAU,8BACV,MAAO,CACL,YAAaQ,CACf,EACA,aAAa,6BACb,OAAQ,GAAGT,EAAK,OAAO,GAAG,KAAKA,EAAK,WAAW,GAAG,UAAUA,EAAK,WAAW,GAAG,OAC/E,IAAKA,EAAK,OAAO,IACjB,QAAQ,QACT,KACD,OAAC,SACE;AAAA;AAAA;AAAA,gCAGqBU,CAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,gCAKjBC,CAAiB;AAAA;AAAA;AAAA,YAIzC,EACCN,MACC,OAAC,OACC,UAAU,oBACV,MAAO,CACL,WAAY,sEACd,EACD,KAGH,OAAC,aAAU,UAAU,iDAAiD,QAAO,GAC3E,mBAAC,OAAI,UAAU,oBACb,oBAAC,OAAI,UAAU,qHACb,oBAAC,WACC,GAAG,KACH,UAAU,yDACV,KAAMA,EAAUL,EAAK,MAAM,OAAO,QAAQ,QAASM,GAAe,EAAE,EAAIN,EAAK,QAAQ,MACtF,KAED,OAAC,QACC,KAAK,IACL,UAAU,yCACV,KAAMK,EAAUL,EAAK,MAAM,YAAcA,EAAK,QAAQ,YACvD,EAEA,CAACK,MACA,QAAC,OACC,aAAW,EAAAO,SACT,4DACAP,GAAW,QACb,EAEA,oBAAC,UACC,QAAQ,YACR,KAAK,KACL,QAAS,IAAM,CACbE,EAAkB,SAAS,CAC7B,EAEC,SAAAP,EAAK,QACR,KACA,OAAC,UACC,QAAQ,UACR,KAAK,KACL,QAAS,IAAM,CACbO,EAAkB,WAAW,CAC/B,EAEC,SAAAP,EAAK,QACR,GACF,GAEJ,EACF,EACF,GACF,EACF,CAEJ",
6
+ "names": ["creditsBanner_exports", "__export", "CreditsBanner", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_classnames", "import_provider", "copy", "id", "profile", "openSignInPopup", "openSignUpPopup", "isLogin", "displayName", "handleButtonClick", "buttonType", "pcAspectRatio", "laptopAspectRatio", "mobileAspectRatio", "classNames"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var h=Object.create;var a=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var z=(e,o)=>{for(var n in o)a(e,n,{get:o[n],enumerable:!0})},b=(e,o,n,d)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of k(o))!y.call(e,i)&&i!==n&&a(e,i,{get:()=>o[i],enumerable:!(d=D(o,i))||d.enumerable});return e};var I=(e,o,n)=>(n=e!=null?h(C(e)):{},b(o||!e||!e.__esModule?a(n,"default",{value:e,enumerable:!0}):n,e)),w=e=>b(a({},"__esModule",{value:!0}),e);var S={};z(S,{default:()=>A});module.exports=w(S);var t=require("react/jsx-runtime"),s=require("@anker-in/headless-ui"),l=require("@anker-in/lib"),f=I(require("./IconInfo")),u=require("../../../constants");const B=({item:e,handleClick:o,isNoteActive:n,index:d,bigIcon:i,cardBgColor:x,cardBorderColor:c})=>{const{brand:g,locale:v}=(0,l.useHeadlessContext)(),m=u.ROUNDED_BRANDS.includes(g),F=["de","eu-de","fr","eu-fr"].includes(v),N=i?"mb-[16px] size-[64px] xl-xxl:size-[56px] xl:size-[48px] md:absolute md:bottom-[16px] md:right-[16px] md:mb-0":"mb-[16px] size-[31px] md:absolute md:bottom-[16px] md:right-[16px] md:mb-0";console.log("cardBgColor in BenefitItem",x);const r={};return x?r.background=x:r.background="linear-gradient(119.61deg, #FAFAFA 38.58%, #FFFFFF 63.73%, #F9FCFF 89.37%)",c&&(r.borderColor=c),(0,t.jsx)("div",{className:(0,l.classNames)("relative flex-1 flex flex-col rounded-[16px] border border-white px-[24px] pb-[26px] pt-[24px] md:min-h-[180px] md:p-[16px]",!m&&"rounded-none"),style:r,children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)(s.Picture,{className:N,alt:e.icon?.alt,source:e.icon?.url}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(s.Heading,{html:e.text,size:"2",className:(0,l.classNames)("md-l:line-clamp-3",F&&"break-words")}),e.note&&(0,t.jsxs)("div",{role:"button",tabIndex:0,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&p.preventDefault()},className:"relative mb-1 ml-[4px]",onClick:()=>o({item:e,index:d}),children:[(0,t.jsx)(f.default,{}),(0,t.jsx)("div",{className:(0,l.classNames)("absolute -bottom-[12px] left-[32px] z-10 w-[356px] -translate-x-full translate-y-full md:w-[276px]",n?"block":"hidden"),children:(0,t.jsxs)("div",{className:(0,l.classNames)("relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow",!m&&"rounded-none"),children:[(0,t.jsx)(s.Text,{as:"p",size:"2",html:e.note,className:"desktop:text-[18px]"}),(0,t.jsx)("div",{className:(0,l.classNames)("absolute -top-[10px] right-[9px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]",!m&&"rounded-none")})]})})]})]}),e.tag&&(0,t.jsx)(s.Text,{as:"div",html:e.tag,className:"mt-[2px] text-[16px] font-bold text-[#6D6D6F]"})]})})};var A=B;
2
+ //# sourceMappingURL=BenefitItem.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsBenefits/BenefitItem.tsx"],
4
+ "sourcesContent": ["import { Heading, Picture, Text } from '@anker-in/headless-ui'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport IconInfo from './IconInfo'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nexport interface BenefitItemCopy {\n icon: {\n alt: string\n url: string\n }\n text: string\n note?: string\n tag?: string\n}\nconst BenefitItem = ({\n item,\n handleClick,\n isNoteActive,\n index,\n bigIcon,\n cardBgColor,\n cardBorderColor,\n}: {\n item: BenefitItemCopy\n handleClick: ({ item, index }: { item: BenefitItemCopy; index: number }) => void\n isNoteActive: boolean\n index: number\n bigIcon?: boolean\n cardBgColor?: string\n cardBorderColor?: string\n}) => {\n const { brand, locale } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n // \u5FB7\u8BED\u548C\u6CD5\u8BED\u9700\u8981\u6298\u884C\n const shouldBreakWords = ['de', 'eu-de', 'fr', 'eu-fr'].includes(locale)\n\n // \u6839\u636E bigIcon \u8BBE\u7F6E\u4E0D\u540C\u5C4F\u5E55\u4E0B\u7684\u56FE\u6807\u5927\u5C0F\n // \u5C3A\u5BF8\uFF1A\u22651921px=64px, 1441-1920px=56px, 1025-1440px=20px, \u22641024px=48px\n const iconSizeClass = bigIcon\n ? 'mb-[16px] size-[64px] xl-xxl:size-[56px] xl:size-[48px] md:absolute md:bottom-[16px] md:right-[16px] md:mb-0'\n : 'mb-[16px] size-[31px] md:absolute md:bottom-[16px] md:right-[16px] md:mb-0'\n\n console.log('cardBgColor in BenefitItem', cardBgColor)\n // \u80CC\u666F\u8272\u548C\u8FB9\u6846\u8272\u5904\u7406\n const cardStyle: React.CSSProperties = {}\n if (cardBgColor) {\n cardStyle.background = cardBgColor\n } else {\n cardStyle.background = 'linear-gradient(119.61deg, #FAFAFA 38.58%, #FFFFFF 63.73%, #F9FCFF 89.37%)'\n }\n if (cardBorderColor) {\n cardStyle.borderColor = cardBorderColor\n }\n\n return (\n <div\n className={cn(\n 'relative flex-1 flex flex-col rounded-[16px] border border-white px-[24px] pb-[26px] pt-[24px] md:min-h-[180px] md:p-[16px]',\n !rounded && 'rounded-none'\n )}\n style={cardStyle}\n >\n <div className=\"flex flex-col\">\n <Picture className={iconSizeClass} alt={item.icon?.alt} source={item.icon?.url} />\n <div className=\"flex items-center\">\n <Heading\n html={item.text}\n size=\"2\"\n className={cn('md-l:line-clamp-3', shouldBreakWords && 'break-words')}\n />\n {item.note && (\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n className=\"relative mb-1 ml-[4px]\"\n onClick={() => handleClick({ item, index })}\n >\n <IconInfo />\n <div\n className={cn(\n 'absolute -bottom-[12px] left-[32px] z-10 w-[356px] -translate-x-full translate-y-full md:w-[276px]',\n isNoteActive ? 'block' : 'hidden'\n )}\n >\n <div\n className={cn(\n 'relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow',\n !rounded && 'rounded-none'\n )}\n >\n <Text as=\"p\" size=\"2\" html={item.note} className=\"desktop:text-[18px]\" />\n <div\n className={cn(\n 'absolute -top-[10px] right-[9px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]',\n !rounded && 'rounded-none'\n )}\n />\n </div>\n </div>\n </div>\n )}\n </div>\n {item.tag && <Text as=\"div\" html={item.tag} className=\"mt-[2px] text-[16px] font-bold text-[#6D6D6F]\" />}\n </div>\n </div>\n )\n}\n\nexport default BenefitItem\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAgEQ,IAAAI,EAAA,6BAhERC,EAAuC,iCACvCC,EAAqD,yBACrDC,EAAqB,yBACrBC,EAA+B,8BAW/B,MAAMC,EAAc,CAAC,CACnB,KAAAC,EACA,YAAAC,EACA,aAAAC,EACA,MAAAC,EACA,QAAAC,EACA,YAAAC,EACA,gBAAAC,CACF,IAQM,CACJ,KAAM,CAAE,MAAAC,EAAO,OAAAC,CAAO,KAAI,sBAAmB,EACvCC,EAAU,iBAAe,SAASF,CAAK,EAGvCG,EAAmB,CAAC,KAAM,QAAS,KAAM,OAAO,EAAE,SAASF,CAAM,EAIjEG,EAAgBP,EAClB,+GACA,6EAEJ,QAAQ,IAAI,6BAA8BC,CAAW,EAErD,MAAMO,EAAiC,CAAC,EACxC,OAAIP,EACFO,EAAU,WAAaP,EAEvBO,EAAU,WAAa,6EAErBN,IACFM,EAAU,YAAcN,MAIxB,OAAC,OACC,aAAW,EAAAO,YACT,8HACA,CAACJ,GAAW,cACd,EACA,MAAOG,EAEP,oBAAC,OAAI,UAAU,gBACb,oBAAC,WAAQ,UAAWD,EAAe,IAAKX,EAAK,MAAM,IAAK,OAAQA,EAAK,MAAM,IAAK,KAChF,QAAC,OAAI,UAAU,oBACb,oBAAC,WACC,KAAMA,EAAK,KACX,KAAK,IACL,aAAW,EAAAa,YAAG,oBAAqBH,GAAoB,aAAa,EACtE,EACCV,EAAK,SACJ,QAAC,OACC,KAAK,SACL,SAAU,EACV,UAAWc,GAAK,EACVA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,MACjCA,EAAE,eAAe,CAErB,EACA,UAAU,yBACV,QAAS,IAAMb,EAAY,CAAE,KAAAD,EAAM,MAAAG,CAAM,CAAC,EAE1C,oBAAC,EAAAY,QAAA,EAAS,KACV,OAAC,OACC,aAAW,EAAAF,YACT,qGACAX,EAAe,QAAU,QAC3B,EAEA,oBAAC,OACC,aAAW,EAAAW,YACT,0FACA,CAACJ,GAAW,cACd,EAEA,oBAAC,QAAK,GAAG,IAAI,KAAK,IAAI,KAAMT,EAAK,KAAM,UAAU,sBAAsB,KACvE,OAAC,OACC,aAAW,EAAAa,YACT,mHACA,CAACJ,GAAW,cACd,EACF,GACF,EACF,GACF,GAEJ,EACCT,EAAK,QAAO,OAAC,QAAK,GAAG,MAAM,KAAMA,EAAK,IAAK,UAAU,gDAAgD,GACxG,EACF,CAEJ,EAEA,IAAOR,EAAQO",
6
+ "names": ["BenefitItem_exports", "__export", "BenefitItem_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_lib", "import_IconInfo", "import_constants", "BenefitItem", "item", "handleClick", "isNoteActive", "index", "bigIcon", "cardBgColor", "cardBorderColor", "brand", "locale", "rounded", "shouldBreakWords", "iconSizeClass", "cardStyle", "cn", "e", "IconInfo"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var e=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var h=(l,C)=>{for(var t in C)e(l,t,{get:C[t],enumerable:!0})},r=(l,C,t,i)=>{if(C&&typeof C=="object"||typeof C=="function")for(let o of f(C))!g.call(l,o)&&o!==t&&e(l,o,{get:()=>C[o],enumerable:!(i=p(C,o))||i.enumerable});return l};var w=l=>r(e({},"__esModule",{value:!0}),l);var a={};h(a,{IconInfo:()=>n,default:()=>v});module.exports=w(a);var s=require("react/jsx-runtime");const n=()=>(0,s.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"size-[18px] cursor-pointer [&_svg]:size-full",width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:[(0,s.jsx)("path",{d:"M9 1.125C11.1744 1.125 13.1441 2.00737 14.5684 3.43164C15.9926 4.85593 16.875 6.8256 16.875 9C16.875 11.1744 15.9926 13.1441 14.5684 14.5684C13.1441 15.9926 11.1744 16.875 9 16.875C6.8256 16.875 4.85593 15.9926 3.43164 14.5684C2.00737 13.1441 1.125 11.1744 1.125 9C1.125 6.8256 2.00738 4.85593 3.43164 3.43164C4.85593 2.00738 6.8256 1.125 9 1.125ZM9 2.625C7.23941 2.625 5.64668 3.33772 4.49219 4.49219C3.33772 5.64668 2.625 7.23941 2.625 9C2.625 10.7606 3.33772 12.3533 4.49219 13.5078C5.64668 14.6623 7.23941 15.375 9 15.375C10.7606 15.375 12.3533 14.6623 13.5078 13.5078C14.6623 12.3533 15.375 10.7606 15.375 9C15.375 7.23941 14.6623 5.64668 13.5078 4.49219C12.3533 3.33772 10.7606 2.625 9 2.625Z",fill:"#6D6D6F"}),(0,s.jsx)("path",{d:"M9 11.583C9.51777 11.583 9.9375 12.0027 9.9375 12.5205V12.5596C9.93718 13.0771 9.51757 13.4971 9 13.4971C8.48243 13.4971 8.06282 13.0771 8.0625 12.5596V12.5205C8.0625 12.0027 8.48223 11.583 9 11.583ZM8.99902 4.5C9.51671 4.49959 9.93696 4.91886 9.9375 5.43652L9.94043 9.37109C9.94084 9.88884 9.52165 10.3091 9.00391 10.3096C8.48616 10.31 8.06587 9.89079 8.06543 9.37305L8.0625 5.43848C8.06209 4.92079 8.48136 4.50054 8.99902 4.5Z",fill:"#6D6D6F"})]});var v=n;
1
+ "use strict";var e=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var h=(l,C)=>{for(var t in C)e(l,t,{get:C[t],enumerable:!0})},r=(l,C,t,i)=>{if(C&&typeof C=="object"||typeof C=="function")for(let o of f(C))!g.call(l,o)&&o!==t&&e(l,o,{get:()=>C[o],enumerable:!(i=p(C,o))||i.enumerable});return l};var w=l=>r(e({},"__esModule",{value:!0}),l);var a={};h(a,{IconInfo:()=>n,default:()=>v});module.exports=w(a);var s=require("react/jsx-runtime");const n=()=>(0,s.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"size-[20px] cursor-pointer [&_svg]:size-full",width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:[(0,s.jsx)("path",{d:"M9 1.125C11.1744 1.125 13.1441 2.00737 14.5684 3.43164C15.9926 4.85593 16.875 6.8256 16.875 9C16.875 11.1744 15.9926 13.1441 14.5684 14.5684C13.1441 15.9926 11.1744 16.875 9 16.875C6.8256 16.875 4.85593 15.9926 3.43164 14.5684C2.00737 13.1441 1.125 11.1744 1.125 9C1.125 6.8256 2.00738 4.85593 3.43164 3.43164C4.85593 2.00738 6.8256 1.125 9 1.125ZM9 2.625C7.23941 2.625 5.64668 3.33772 4.49219 4.49219C3.33772 5.64668 2.625 7.23941 2.625 9C2.625 10.7606 3.33772 12.3533 4.49219 13.5078C5.64668 14.6623 7.23941 15.375 9 15.375C10.7606 15.375 12.3533 14.6623 13.5078 13.5078C14.6623 12.3533 15.375 10.7606 15.375 9C15.375 7.23941 14.6623 5.64668 13.5078 4.49219C12.3533 3.33772 10.7606 2.625 9 2.625Z",fill:"#6D6D6F"}),(0,s.jsx)("path",{d:"M9 11.583C9.51777 11.583 9.9375 12.0027 9.9375 12.5205V12.5596C9.93718 13.0771 9.51757 13.4971 9 13.4971C8.48243 13.4971 8.06282 13.0771 8.0625 12.5596V12.5205C8.0625 12.0027 8.48223 11.583 9 11.583ZM8.99902 4.5C9.51671 4.49959 9.93696 4.91886 9.9375 5.43652L9.94043 9.37109C9.94084 9.88884 9.52165 10.3091 9.00391 10.3096C8.48616 10.31 8.06587 9.89079 8.06543 9.37305L8.0625 5.43848C8.06209 4.92079 8.48136 4.50054 8.99902 4.5Z",fill:"#6D6D6F"})]});var v=n;
2
2
  //# sourceMappingURL=IconInfo.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsBenefits/IconInfo.tsx"],
4
- "sourcesContent": ["export const IconInfo = () => {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='size-[18px] cursor-pointer [&_svg]:size-full'\n width='18'\n height='18'\n viewBox='0 0 18 18'\n fill='none'\n >\n <path\n d='M9 1.125C11.1744 1.125 13.1441 2.00737 14.5684 3.43164C15.9926 4.85593 16.875 6.8256 16.875 9C16.875 11.1744 15.9926 13.1441 14.5684 14.5684C13.1441 15.9926 11.1744 16.875 9 16.875C6.8256 16.875 4.85593 15.9926 3.43164 14.5684C2.00737 13.1441 1.125 11.1744 1.125 9C1.125 6.8256 2.00738 4.85593 3.43164 3.43164C4.85593 2.00738 6.8256 1.125 9 1.125ZM9 2.625C7.23941 2.625 5.64668 3.33772 4.49219 4.49219C3.33772 5.64668 2.625 7.23941 2.625 9C2.625 10.7606 3.33772 12.3533 4.49219 13.5078C5.64668 14.6623 7.23941 15.375 9 15.375C10.7606 15.375 12.3533 14.6623 13.5078 13.5078C14.6623 12.3533 15.375 10.7606 15.375 9C15.375 7.23941 14.6623 5.64668 13.5078 4.49219C12.3533 3.33772 10.7606 2.625 9 2.625Z'\n fill='#6D6D6F'\n />\n <path\n d='M9 11.583C9.51777 11.583 9.9375 12.0027 9.9375 12.5205V12.5596C9.93718 13.0771 9.51757 13.4971 9 13.4971C8.48243 13.4971 8.06282 13.0771 8.0625 12.5596V12.5205C8.0625 12.0027 8.48223 11.583 9 11.583ZM8.99902 4.5C9.51671 4.49959 9.93696 4.91886 9.9375 5.43652L9.94043 9.37109C9.94084 9.88884 9.52165 10.3091 9.00391 10.3096C8.48616 10.31 8.06587 9.89079 8.06543 9.37305L8.0625 5.43848C8.06209 4.92079 8.48136 4.50054 8.99902 4.5Z'\n fill='#6D6D6F'\n />\n </svg>\n )\n}\n\nexport default IconInfo\n"],
4
+ "sourcesContent": ["export const IconInfo = () => {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='size-[20px] cursor-pointer [&_svg]:size-full'\n width='18'\n height='18'\n viewBox='0 0 18 18'\n fill='none'\n >\n <path\n d='M9 1.125C11.1744 1.125 13.1441 2.00737 14.5684 3.43164C15.9926 4.85593 16.875 6.8256 16.875 9C16.875 11.1744 15.9926 13.1441 14.5684 14.5684C13.1441 15.9926 11.1744 16.875 9 16.875C6.8256 16.875 4.85593 15.9926 3.43164 14.5684C2.00737 13.1441 1.125 11.1744 1.125 9C1.125 6.8256 2.00738 4.85593 3.43164 3.43164C4.85593 2.00738 6.8256 1.125 9 1.125ZM9 2.625C7.23941 2.625 5.64668 3.33772 4.49219 4.49219C3.33772 5.64668 2.625 7.23941 2.625 9C2.625 10.7606 3.33772 12.3533 4.49219 13.5078C5.64668 14.6623 7.23941 15.375 9 15.375C10.7606 15.375 12.3533 14.6623 13.5078 13.5078C14.6623 12.3533 15.375 10.7606 15.375 9C15.375 7.23941 14.6623 5.64668 13.5078 4.49219C12.3533 3.33772 10.7606 2.625 9 2.625Z'\n fill='#6D6D6F'\n />\n <path\n d='M9 11.583C9.51777 11.583 9.9375 12.0027 9.9375 12.5205V12.5596C9.93718 13.0771 9.51757 13.4971 9 13.4971C8.48243 13.4971 8.06282 13.0771 8.0625 12.5596V12.5205C8.0625 12.0027 8.48223 11.583 9 11.583ZM8.99902 4.5C9.51671 4.49959 9.93696 4.91886 9.9375 5.43652L9.94043 9.37109C9.94084 9.88884 9.52165 10.3091 9.00391 10.3096C8.48616 10.31 8.06587 9.89079 8.06543 9.37305L8.0625 5.43848C8.06209 4.92079 8.48136 4.50054 8.99902 4.5Z'\n fill='#6D6D6F'\n />\n </svg>\n )\n}\n\nexport default IconInfo\n"],
5
5
  "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEI,IAAAK,EAAA,6BAFG,MAAMH,EAAW,OAEpB,QAAC,OACC,MAAM,6BACN,UAAU,+CACV,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OAEL,oBAAC,QACC,EAAE,6rBACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,+aACF,KAAK,UACP,GACF,EAIJ,IAAOC,EAAQD",
6
6
  "names": ["IconInfo_exports", "__export", "IconInfo", "IconInfo_default", "__toCommonJS", "import_jsx_runtime"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var D=Object.create;var l=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var B=(e,t)=>{for(var s in t)l(e,s,{get:t[s],enumerable:!0})},g=(e,t,s,m)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of L(t))!_.call(e,r)&&r!==s&&l(e,r,{get:()=>t[r],enumerable:!(m=F(t,r))||m.enumerable});return e};var f=(e,t,s)=>(s=e!=null?D(S(e)):{},g(t||!e||!e.__esModule?l(s,"default",{value:e,enumerable:!0}):s,e)),H=e=>g(l({},"__esModule",{value:!0}),e);var P={};B(P,{CreditsCash:()=>M});module.exports=H(P);var n=require("react/jsx-runtime"),c=require("@anker-in/headless-ui"),p=require("react"),x=f(require("./RedeemableItem")),b=f(require("../context/hooks/useRedeemableList")),h=f(require("../modal/rulesModal")),y=require("@anker-in/lib"),v=require("@anker-in/lib"),N=require("../context/provider");const M=({copy:e,id:t})=>{const[s,m]=(0,p.useState)(),{redeemableList:r}=(0,b.default)(),{pageCommon:I}=(0,N.useCreditsContext)(),R=[],{data:u}=(0,y.useProductsByHandles)({handles:e?.list?.map(i=>i.products?.[0]?.handle)||[],metafieldIdentifiers:{variant:R}}),k=(0,p.useMemo)(()=>u?.map(i=>{const o=e.list.find(d=>d.products?.[0]?.handle===i.handle),a=r.find(d=>d.id?.toString()===o?.redeemId?.toString()),C=i.variants?.find(d=>d.sku===o?.products?.[0]?.sku)||i.variants?.[0];return!a||!C?null:{product:i,productVariant:C,alpcData:{id:a?.id,consumeCredits:a?.consume_credits,remainingInventory:a?.remaining_inventory,isLimited:a?.is_limited,consumeType:a?.consume_type,title:a?.name,desc:a?.note},config:o}}).filter(Boolean),[u,e.list,r]);return(0,n.jsxs)(c.Container,{id:t,className:(0,v.classNames)("bg-[#F5F5F5]"),children:[(0,n.jsx)(c.Heading,{as:"h2",size:"4",html:e.title}),(0,n.jsx)("div",{className:"relative mt-[24px] grid grid-cols-4 gap-[16px] l:gap-[12px] md:grid-cols-2 md-xl:grid-cols-3",children:k?.map((i,o)=>(0,n.jsx)(x.default,{copy:e,itemData:i,setRules:m,currencyCode:u?.[0]?.price.currencyCode||"USD"},o))}),s&&(0,n.jsx)(h.default,{overlayClassName:"md:px-[16px] md:items-center",className:"md:h-fit md:rounded-b-[16px]",isOpen:s.length>0,onClose:()=>m([]),titleClassName:"border-b-transparent h-[56px]",rules:s,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:I?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};
1
+ "use strict";var B=Object.create;var l=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var P=(e,t)=>{for(var s in t)l(e,s,{get:t[s],enumerable:!0})},b=(e,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of H(t))!M.call(e,r)&&r!==s&&l(e,r,{get:()=>t[r],enumerable:!(o=F(t,r))||o.enumerable});return e};var C=(e,t,s)=>(s=e!=null?B(L(e)):{},b(t||!e||!e.__esModule?l(s,"default",{value:e,enumerable:!0}):s,e)),O=e=>b(l({},"__esModule",{value:!0}),e);var U={};P(U,{CreditsCash:()=>T});module.exports=O(U);var a=require("react/jsx-runtime"),c=require("@anker-in/headless-ui"),p=require("react"),h=C(require("./RedeemableItem")),y=C(require("../context/hooks/useRedeemableList")),v=C(require("../modal/rulesModal")),u=require("@anker-in/lib"),g=require("@anker-in/lib"),N=require("../context/provider"),R=require("../../../constants");const T=({copy:e,id:t})=>{const[s,o]=(0,p.useState)(),{redeemableList:r}=(0,y.default)(),{pageCommon:D}=(0,N.useCreditsContext)(),{brand:I}=(0,u.useHeadlessContext)(),S=R.ROUNDED_BRANDS.includes(I),_=[],{data:f}=(0,u.useProductsByHandles)({handles:e?.list?.map(n=>n.products?.[0]?.handle)||[],metafieldIdentifiers:{variant:_}}),k=(0,p.useMemo)(()=>f?.map(n=>{const d=(e.list||[]).find(m=>m.products?.[0]?.handle===n.handle),i=r.find(m=>m.id?.toString()===d?.redeemId?.toString()),x=n.variants?.find(m=>m.sku===d?.products?.[0]?.sku)||n.variants?.[0];return!i||!x?null:{product:n,productVariant:x,alpcData:{id:i?.id,consumeCredits:i?.consume_credits,remainingInventory:i?.remaining_inventory,isLimited:i?.is_limited,consumeType:i?.consume_type,title:i?.name,desc:i?.note},config:d}}).filter(Boolean),[f,e.list,r]);return(0,a.jsxs)(c.Container,{id:t,className:(0,g.classNames)("bg-[#F5F5F5]"),children:[(0,a.jsx)(c.Heading,{as:"h2",size:"4",html:e.title}),(0,a.jsx)("div",{className:"relative mt-[24px] grid grid-cols-4 gap-[16px] l:gap-[12px] md:grid-cols-2 md-xl:grid-cols-3",children:k?.map((n,d)=>(0,a.jsx)(h.default,{copy:e,itemData:n,setRules:o,currencyCode:f?.[0]?.price.currencyCode||"USD"},d))}),s&&(0,a.jsx)(v.default,{overlayClassName:"md:px-[16px] md:items-center",className:(0,g.classNames)("md:h-fit md:rounded-b-[16px]",!S&&"md:rounded-none"),isOpen:s.length>0,onClose:()=>o([]),titleClassName:"border-b-transparent h-[56px]",rules:s,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:D?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};
2
2
  //# sourceMappingURL=CreditsCash.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsCash/CreditsCash.tsx"],
4
- "sourcesContent": ["import { Container, Heading, Text } from '@anker-in/headless-ui'\nimport { useMemo, useState } from 'react'\n\nimport RedeemableItem from './RedeemableItem'\nimport useRedeemableList from '../context/hooks/useRedeemableList'\nimport RulesModal from '../modal/rulesModal'\nimport { useProductsByHandles } from '@anker-in/lib'\nimport { CreditsCashCopy, RedeemItem } from './type'\nimport { Product, classNames as cn } from '@anker-in/lib'\nimport { useCreditsContext } from '../context/provider'\nimport { numberFormat } from '../context/utils'\n\nexport const CreditsCash = ({ copy, id }: { copy: CreditsCashCopy; id?: string }) => {\n const [rules, setRules] = useState<string | string[]>()\n const { redeemableList } = useRedeemableList()\n const { pageCommon } = useCreditsContext()\n\n const variantMetafieldIdentifiers: any[] = []\n\n const { data: productByHandles } = useProductsByHandles({\n handles: copy?.list?.map(item => item.products?.[0]?.handle) || [],\n metafieldIdentifiers: {\n variant: variantMetafieldIdentifiers,\n },\n })\n\n const list = useMemo(() => {\n return productByHandles\n ?.map((product: Product) => {\n const config = copy.list.find(item => item.products?.[0]?.handle === product.handle)\n const alpcData = redeemableList.find(item => item.id?.toString() === config?.redeemId?.toString())\n const productVariant =\n product.variants?.find((variant: any) => variant.sku === config?.products?.[0]?.sku) || product.variants?.[0]\n if (!alpcData || !productVariant) return null\n return {\n product,\n productVariant,\n alpcData: {\n id: alpcData?.id,\n consumeCredits: alpcData?.consume_credits,\n remainingInventory: alpcData?.remaining_inventory,\n isLimited: alpcData?.is_limited,\n consumeType: alpcData?.consume_type,\n title: alpcData?.name,\n desc: alpcData?.note,\n },\n config,\n }\n })\n .filter(Boolean) as unknown as RedeemItem[]\n }, [productByHandles, copy.list, redeemableList])\n\n return (\n <Container id={id} className={cn('bg-[#F5F5F5]')}>\n <Heading as=\"h2\" size=\"4\" html={copy.title} />\n\n <div className=\"relative mt-[24px] grid grid-cols-4 gap-[16px] l:gap-[12px] md:grid-cols-2 md-xl:grid-cols-3\">\n {list?.map((item, index: number) => (\n <RedeemableItem\n key={index}\n copy={copy}\n itemData={item}\n setRules={setRules}\n currencyCode={productByHandles?.[0]?.price.currencyCode || 'USD'}\n />\n ))}\n </div>\n\n {rules && (\n <RulesModal\n overlayClassName=\"md:px-[16px] md:items-center\"\n className=\"md:h-fit md:rounded-b-[16px]\"\n isOpen={rules.length > 0}\n onClose={() => setRules([])}\n titleClassName=\"border-b-transparent h-[56px]\"\n rules={rules}\n scrollClassName=\"md:mt-[8px] md:mb-[24px] md:pt-0\"\n title={pageCommon?.ruleLabel}\n ruleClassName=\"text-[#1d1d1f] font-bold\"\n />\n )}\n </Container>\n )\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAqDI,IAAAI,EAAA,6BArDJC,EAAyC,iCACzCC,EAAkC,iBAElCC,EAA2B,+BAC3BC,EAA8B,iDAC9BC,EAAuB,kCACvBC,EAAqC,yBAErCA,EAA0C,yBAC1CC,EAAkC,+BAG3B,MAAMT,EAAc,CAAC,CAAE,KAAAU,EAAM,GAAAC,CAAG,IAA8C,CACnF,KAAM,CAACC,EAAOC,CAAQ,KAAI,YAA4B,EAChD,CAAE,eAAAC,CAAe,KAAI,EAAAC,SAAkB,EACvC,CAAE,WAAAC,CAAW,KAAI,qBAAkB,EAEnCC,EAAqC,CAAC,EAEtC,CAAE,KAAMC,CAAiB,KAAI,wBAAqB,CACtD,QAASR,GAAM,MAAM,IAAIS,GAAQA,EAAK,WAAW,CAAC,GAAG,MAAM,GAAK,CAAC,EACjE,qBAAsB,CACpB,QAASF,CACX,CACF,CAAC,EAEKG,KAAO,WAAQ,IACZF,GACH,IAAKG,GAAqB,CAC1B,MAAMC,EAASZ,EAAK,KAAK,KAAKS,GAAQA,EAAK,WAAW,CAAC,GAAG,SAAWE,EAAQ,MAAM,EAC7EE,EAAWT,EAAe,KAAKK,GAAQA,EAAK,IAAI,SAAS,IAAMG,GAAQ,UAAU,SAAS,CAAC,EAC3FE,EACJH,EAAQ,UAAU,KAAMI,GAAiBA,EAAQ,MAAQH,GAAQ,WAAW,CAAC,GAAG,GAAG,GAAKD,EAAQ,WAAW,CAAC,EAC9G,MAAI,CAACE,GAAY,CAACC,EAAuB,KAClC,CACL,QAAAH,EACA,eAAAG,EACA,SAAU,CACR,GAAID,GAAU,GACd,eAAgBA,GAAU,gBAC1B,mBAAoBA,GAAU,oBAC9B,UAAWA,GAAU,WACrB,YAAaA,GAAU,aACvB,MAAOA,GAAU,KACjB,KAAMA,GAAU,IAClB,EACA,OAAAD,CACF,CACF,CAAC,EACA,OAAO,OAAO,EAChB,CAACJ,EAAkBR,EAAK,KAAMI,CAAc,CAAC,EAEhD,SACE,QAAC,aAAU,GAAIH,EAAI,aAAW,EAAAe,YAAG,cAAc,EAC7C,oBAAC,WAAQ,GAAG,KAAK,KAAK,IAAI,KAAMhB,EAAK,MAAO,KAE5C,OAAC,OAAI,UAAU,+FACZ,SAAAU,GAAM,IAAI,CAACD,EAAMQ,OAChB,OAAC,EAAAC,QAAA,CAEC,KAAMlB,EACN,SAAUS,EACV,SAAUN,EACV,aAAcK,IAAmB,CAAC,GAAG,MAAM,cAAgB,OAJtDS,CAKP,CACD,EACH,EAECf,MACC,OAAC,EAAAiB,QAAA,CACC,iBAAiB,+BACjB,UAAU,+BACV,OAAQjB,EAAM,OAAS,EACvB,QAAS,IAAMC,EAAS,CAAC,CAAC,EAC1B,eAAe,gCACf,MAAOD,EACP,gBAAgB,mCAChB,MAAOI,GAAY,UACnB,cAAc,2BAChB,GAEJ,CAEJ",
6
- "names": ["CreditsCash_exports", "__export", "CreditsCash", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_RedeemableItem", "import_useRedeemableList", "import_rulesModal", "import_lib", "import_provider", "copy", "id", "rules", "setRules", "redeemableList", "useRedeemableList", "pageCommon", "variantMetafieldIdentifiers", "productByHandles", "item", "list", "product", "config", "alpcData", "productVariant", "variant", "cn", "index", "RedeemableItem", "RulesModal"]
4
+ "sourcesContent": ["import { Container, Heading, Text } from '@anker-in/headless-ui'\nimport { useMemo, useState } from 'react'\n\nimport RedeemableItem from './RedeemableItem'\nimport useRedeemableList from '../context/hooks/useRedeemableList'\nimport RulesModal from '../modal/rulesModal'\nimport { useProductsByHandles, useHeadlessContext } from '@anker-in/lib'\nimport { CreditsCashCopy, RedeemItem } from './type'\nimport { Product, classNames as cn } from '@anker-in/lib'\nimport { useCreditsContext } from '../context/provider'\nimport { numberFormat } from '../context/utils'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nexport const CreditsCash = ({ copy, id }: { copy: CreditsCashCopy; id?: string }) => {\n const [rules, setRules] = useState<string | string[]>()\n const { redeemableList } = useRedeemableList()\n const { pageCommon } = useCreditsContext()\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const variantMetafieldIdentifiers: any[] = []\n\n const { data: productByHandles } = useProductsByHandles({\n handles: copy?.list?.map(item => item.products?.[0]?.handle) || [],\n metafieldIdentifiers: {\n variant: variantMetafieldIdentifiers,\n },\n })\n\n const list = useMemo(() => {\n return productByHandles\n ?.map((product: Product) => {\n const config = (copy.list || []).find(item => item.products?.[0]?.handle === product.handle)\n const alpcData = redeemableList.find(item => item.id?.toString() === config?.redeemId?.toString())\n const productVariant =\n product.variants?.find((variant: any) => variant.sku === config?.products?.[0]?.sku) || product.variants?.[0]\n if (!alpcData || !productVariant) return null\n return {\n product,\n productVariant,\n alpcData: {\n id: alpcData?.id,\n consumeCredits: alpcData?.consume_credits,\n remainingInventory: alpcData?.remaining_inventory,\n isLimited: alpcData?.is_limited,\n consumeType: alpcData?.consume_type,\n title: alpcData?.name,\n desc: alpcData?.note,\n },\n config,\n }\n })\n .filter(Boolean) as unknown as RedeemItem[]\n }, [productByHandles, copy.list, redeemableList])\n\n return (\n <Container id={id} className={cn('bg-[#F5F5F5]')}>\n <Heading as=\"h2\" size=\"4\" html={copy.title} />\n\n <div className=\"relative mt-[24px] grid grid-cols-4 gap-[16px] l:gap-[12px] md:grid-cols-2 md-xl:grid-cols-3\">\n {list?.map((item, index: number) => (\n <RedeemableItem\n key={index}\n copy={copy}\n itemData={item}\n setRules={setRules}\n currencyCode={productByHandles?.[0]?.price.currencyCode || 'USD'}\n />\n ))}\n </div>\n\n {rules && (\n <RulesModal\n overlayClassName=\"md:px-[16px] md:items-center\"\n className={cn('md:h-fit md:rounded-b-[16px]', !rounded && 'md:rounded-none')}\n isOpen={rules.length > 0}\n onClose={() => setRules([])}\n titleClassName=\"border-b-transparent h-[56px]\"\n rules={rules}\n scrollClassName=\"md:mt-[8px] md:mb-[24px] md:pt-0\"\n title={pageCommon?.ruleLabel}\n ruleClassName=\"text-[#1d1d1f] font-bold\"\n />\n )}\n </Container>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAwDI,IAAAI,EAAA,6BAxDJC,EAAyC,iCACzCC,EAAkC,iBAElCC,EAA2B,+BAC3BC,EAA8B,iDAC9BC,EAAuB,kCACvBC,EAAyD,yBAEzDA,EAA0C,yBAC1CC,EAAkC,+BAElCC,EAA+B,8BAExB,MAAMV,EAAc,CAAC,CAAE,KAAAW,EAAM,GAAAC,CAAG,IAA8C,CACnF,KAAM,CAACC,EAAOC,CAAQ,KAAI,YAA4B,EAChD,CAAE,eAAAC,CAAe,KAAI,EAAAC,SAAkB,EACvC,CAAE,WAAAC,CAAW,KAAI,qBAAkB,EACnC,CAAE,MAAAC,CAAM,KAAI,sBAAmB,EAC/BC,EAAU,iBAAe,SAASD,CAAK,EAEvCE,EAAqC,CAAC,EAEtC,CAAE,KAAMC,CAAiB,KAAI,wBAAqB,CACtD,QAASV,GAAM,MAAM,IAAIW,GAAQA,EAAK,WAAW,CAAC,GAAG,MAAM,GAAK,CAAC,EACjE,qBAAsB,CACpB,QAASF,CACX,CACF,CAAC,EAEKG,KAAO,WAAQ,IACZF,GACH,IAAKG,GAAqB,CAC1B,MAAMC,GAAUd,EAAK,MAAQ,CAAC,GAAG,KAAKW,GAAQA,EAAK,WAAW,CAAC,GAAG,SAAWE,EAAQ,MAAM,EACrFE,EAAWX,EAAe,KAAKO,GAAQA,EAAK,IAAI,SAAS,IAAMG,GAAQ,UAAU,SAAS,CAAC,EAC3FE,EACJH,EAAQ,UAAU,KAAMI,GAAiBA,EAAQ,MAAQH,GAAQ,WAAW,CAAC,GAAG,GAAG,GAAKD,EAAQ,WAAW,CAAC,EAC9G,MAAI,CAACE,GAAY,CAACC,EAAuB,KAClC,CACL,QAAAH,EACA,eAAAG,EACA,SAAU,CACR,GAAID,GAAU,GACd,eAAgBA,GAAU,gBAC1B,mBAAoBA,GAAU,oBAC9B,UAAWA,GAAU,WACrB,YAAaA,GAAU,aACvB,MAAOA,GAAU,KACjB,KAAMA,GAAU,IAClB,EACA,OAAAD,CACF,CACF,CAAC,EACA,OAAO,OAAO,EAChB,CAACJ,EAAkBV,EAAK,KAAMI,CAAc,CAAC,EAEhD,SACE,QAAC,aAAU,GAAIH,EAAI,aAAW,EAAAiB,YAAG,cAAc,EAC7C,oBAAC,WAAQ,GAAG,KAAK,KAAK,IAAI,KAAMlB,EAAK,MAAO,KAE5C,OAAC,OAAI,UAAU,+FACZ,SAAAY,GAAM,IAAI,CAACD,EAAMQ,OAChB,OAAC,EAAAC,QAAA,CAEC,KAAMpB,EACN,SAAUW,EACV,SAAUR,EACV,aAAcO,IAAmB,CAAC,GAAG,MAAM,cAAgB,OAJtDS,CAKP,CACD,EACH,EAECjB,MACC,OAAC,EAAAmB,QAAA,CACC,iBAAiB,+BACjB,aAAW,EAAAH,YAAG,+BAAgC,CAACV,GAAW,iBAAiB,EAC3E,OAAQN,EAAM,OAAS,EACvB,QAAS,IAAMC,EAAS,CAAC,CAAC,EAC1B,eAAe,gCACf,MAAOD,EACP,gBAAgB,mCAChB,MAAOI,GAAY,UACnB,cAAc,2BAChB,GAEJ,CAEJ",
6
+ "names": ["CreditsCash_exports", "__export", "CreditsCash", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_RedeemableItem", "import_useRedeemableList", "import_rulesModal", "import_lib", "import_provider", "import_constants", "copy", "id", "rules", "setRules", "redeemableList", "useRedeemableList", "pageCommon", "brand", "rounded", "variantMetafieldIdentifiers", "productByHandles", "item", "list", "product", "config", "alpcData", "productVariant", "variant", "cn", "index", "RedeemableItem", "RulesModal"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var v=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var $=(r,e)=>{for(var p in e)v(r,p,{get:e[p],enumerable:!0})},O=(r,e,p,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of B(e))!L.call(r,o)&&o!==p&&v(r,o,{get:()=>e[o],enumerable:!(u=A(e,o))||u.enumerable});return r};var P=r=>O(v({},"__esModule",{value:!0}),r);var M={};$(M,{default:()=>T});module.exports=P(M);var t=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),s=require("react"),y=require("../context/provider"),S=require("../context/hooks/useRedeemAndBuy"),a=require("../context/utils"),n=require("@anker-in/lib"),V=require("../../../components/registration"),w=require("../../../constants");function U({copy:r,itemData:e,setRules:p,className:u}){const{creditInfo:o,profile:i,openSignUpPopup:R,pageCommon:x,gtm:{pageGroup:g}}=(0,y.useCreditsContext)(),{authCodeActivate:b}=(0,V.useRegistration)(),{brand:I,locale:h}=(0,n.useHeadlessContext)(),C=w.ROUNDED_BRANDS.includes(I),[N,_]=(0,s.useState)(null),{trigger:k,isMutating:z}=(0,S.useRedeemAndBuy)({},{onError:c=>{_(c.message)}}),d=(0,s.useMemo)(()=>!!i,[i?.activated]),m=(0,s.useMemo)(()=>d&&i?.activated&&e.alpcData?.consumeCredits>Number(o?.available_credit||0),[d,i?.activated,e.alpcData?.consumeCredits,o?.available_credit]),E=(0,s.useMemo)(()=>!!(e.alpcData?.remainingInventory<=0&&e.alpcData?.isLimited||!e.productVariant?.availableForSale||m),[e.alpcData?.remainingInventory,e.alpcData?.isLimited,e.productVariant?.availableForSale,m]),F=()=>{_(null),d?!i?.activated&&!b.isActivateSuccess?b.open():(k({productVariant:e?.productVariant,redeemId:e?.config?.redeemId}),(0,n.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:i?.activated?"active":"not active",event_parameters:{page_group:g,position:r.title,button_name:f,info:e?.alpcData?.id?.toString()}})):R()},f=(0,s.useMemo)(()=>e.productVariant?.availableForSale?d?r.btnRedeem:r.unlockRewards:r?.soldOut||"Sold Out",[d,e.productVariant?.availableForSale,r.btnRedeem,r.unlockRewards,r?.soldOut]);return(0,t.jsxs)("div",{className:(0,n.classNames)("flex flex-col items-center rounded-[16px] bg-[#EAEAEC] md:rounded-[12px] p-[24px] l:p-[8px] md-xl:p-[16px]",!C&&"rounded-none md:rounded-none",u),children:[(0,t.jsx)("a",{href:(0,a.extractVariantId)(e.productVariant?.id)?`/products/${e.product.handle}?variant=${(0,a.extractVariantId)(e.productVariant?.id)}`:`/products/${e.product.handle}`,className:(0,n.classNames)("relative mx-auto h-[224px] w-fit l:h-[120px] l-xxl:h-[138px]"),children:(0,t.jsx)(l.Picture,{className:"mx-auto h-full w-auto",imgClassName:"h-full object-contain",source:e?.config?.image?.url||e?.productVariant?.metafields?.global?.transparentImg||e?.productVariant?.image?.url})}),(0,t.jsxs)("div",{className:(0,n.classNames)("mt-[22px] w-full l:mt-[8px]"),children:[(0,t.jsx)(l.Text,{html:e?.product?.title,title:e.config?.title||e.alpcData?.title||e.product?.title,size:2,className:"line-clamp-2 h-[58px] text-[24px] l-xxl:text-[20px] l:text-[16px] leading-[1.2] l:h-[40px] l-xxl:h-[48px]"}),e?.config?.rules?.split("<br>")?.length>0&&(0,t.jsx)("button",{type:"button",onClick:()=>{p(e?.config?.rules?.split("<br>")),(0,n.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:i?.activated?"active":"not active",event_parameters:{page_group:g,position:r.title,button_name:x?.ruleLabel,info:e?.alpcData?.id?.toString()}})},className:"mt-[8px] text-[16px] font-bold underline xxl:text-[14px]",tabIndex:0,onKeyDown:c=>{(c.key==="Enter"||c.key===" ")&&c.preventDefault()},children:x?.ruleLabel}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center l:mt-[12px] laptop:text-[16px] lg-desktop:text-[18px]",children:[(0,t.jsx)(l.Picture,{className:"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783"}),(0,t.jsx)(l.Text,{html:`${(0,a.numberFormat)(e?.alpcData?.consumeCredits)} + ${(0,a.formatPrice)({amount:Number(e?.config?.price),currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:h})}`,size:2,as:"p",className:"ml-[4px] mt-[4px] font-bold leading-none text-[24px] l-xxl:text-[20px] l:text-[16px]"}),(0,t.jsx)(l.Text,{html:(0,a.formatPrice)({amount:e?.productVariant?.price.amount,currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:h}),className:"l-xxl:text-[20px] mt-[4px] l:text-[16px] ml-[4px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through",as:"p"})]}),(0,t.jsxs)("div",{className:"group relative w-full",children:[(0,t.jsx)(l.Button,{disabled:E,variant:"primary",size:"lg",className:"mt-[8px] md:px-[10px] l:w-full",loading:z,onClick:()=>{F()},title:m?x.insufficientCredits:f,children:f}),(0,t.jsx)("div",{className:(0,n.classNames)("absolute -bottom-[20px] left-0 z-10 w-[300px] translate-y-full opacity-0 transition-opacity group-hover:opacity-100 md:-bottom-[14px] md:w-[160px]",m?"block":"hidden"),children:(0,t.jsxs)("div",{className:(0,n.classNames)("relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]",!C&&"rounded-none"),children:[(0,t.jsx)(l.Text,{as:"p",size:"2",html:x?.insufficientCredits,className:"text-[14px]"}),(0,t.jsx)("div",{className:"absolute -top-[10px] left-[48px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]"})]})})]})]}),N&&(0,t.jsx)("div",{className:"mt-[8px] text-[14px] text-[#FF0000]",children:N})]})}var T=U;
1
+ "use strict";var b=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var O=(r,e)=>{for(var s in e)b(r,s,{get:e[s],enumerable:!0})},P=(r,e,s,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of A(e))!B.call(r,n)&&n!==s&&b(r,n,{get:()=>e[n],enumerable:!(u=L(e,n))||u.enumerable});return r};var T=r=>P(b({},"__esModule",{value:!0}),r);var M={};O(M,{default:()=>H});module.exports=T(M);var t=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),p=require("react"),V=require("../context/provider"),w=require("../context/hooks/useRedeemAndBuy"),o=require("../context/utils"),a=require("@anker-in/lib"),y=require("../../../components/registration"),R=require("../../../constants");function U({copy:r,itemData:e,setRules:s,className:u}){const{creditInfo:n,profile:i,openSignUpPopup:z,pageCommon:x,gtm:{pageGroup:v,pageHandle:m}}=(0,V.useCreditsContext)(),{authCodeActivate:h}=(0,y.useRegistration)(),{brand:I,locale:C}=(0,a.useHeadlessContext)(),N=R.ROUNDED_BRANDS.includes(I),[_,S]=(0,p.useState)(null),{trigger:k,isMutating:E}=(0,w.useRedeemAndBuy)({},{onError:c=>{S(c.message)}}),d=(0,p.useMemo)(()=>!!i,[i?.activated]),f=(0,p.useMemo)(()=>d&&i?.activated&&e.alpcData?.consumeCredits>Number(n?.available_credit||0),[d,i?.activated,e.alpcData?.consumeCredits,n?.available_credit]),F=(0,p.useMemo)(()=>!!(e.alpcData?.remainingInventory<=0&&e.alpcData?.isLimited||!e.productVariant?.availableForSale||f),[e.alpcData?.remainingInventory,e.alpcData?.isLimited,e.productVariant?.availableForSale,f]),$=()=>{S(null),d?!i?.activated&&!h.isActivateSuccess?h.open():(k({productVariant:e?.productVariant,redeemId:e?.config?.redeemId}),(0,a.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:i?.activated?"active":"not active",event_parameters:{page_group:v,position:r.title,button_name:g,info:e?.alpcData?.id?.toString()}})):z()},g=(0,p.useMemo)(()=>e.productVariant?.availableForSale?d?r.btnRedeem:r.unlockRewards:r?.soldOut||"Sold Out",[d,e.productVariant?.availableForSale,r.btnRedeem,r.unlockRewards,r?.soldOut]);return(0,t.jsxs)("div",{className:(0,a.classNames)("relative flex flex-col items-center rounded-[16px] bg-[#EAEAEC] md:rounded-[12px] px-[24px] pb-[24px] l:px-[8px] l:pb-[8px] md-xl:px-[16px] md-xl:pb-[16px]",!N&&"rounded-none md:rounded-none",r.badgeLabel?"pt-[48px] l:pt-[44px]":"pt-[24px] md-xl:pt-[16px] l:pt-[8px]",u),children:[r.badgeLabel&&(0,t.jsx)(l.Badge,{className:"absolute left-[24px] l:left-[16px] !bg-gradient-brand top-[16px] z-10",size:"lg",variant:"promotional",promotionalType:"regular-member",children:r.badgeLabel}),(0,t.jsx)("a",{href:(0,o.extractVariantId)(e.productVariant?.id)?`/products/${e.product.handle}?variant=${(0,o.extractVariantId)(e.productVariant?.id)}${m?`&ref=${m}`:""}`:`/products/${e.product.handle}${m?`?ref=${m}`:""}`,className:(0,a.classNames)("relative mx-auto h-[196px] w-fit md:h-[120px] md-xxl:h-[138px]"),children:(0,t.jsx)(l.Picture,{className:"mx-auto h-full w-auto",imgClassName:"h-full object-contain",source:e?.config?.image?.url||e?.productVariant?.metafields?.global?.transparentImg||e?.productVariant?.image?.url})}),(0,t.jsxs)("div",{className:(0,a.classNames)("mt-[10px] w-full xl:mt-[8px]"),children:[(0,t.jsx)(l.Text,{html:e?.product?.title,title:e.config?.title||e.alpcData?.title||e.product?.title,size:2,className:"line-clamp-2 h-[58px] text-[24px] l-xxl:text-[20px] l:text-[16px] leading-[1.2] l:h-[38px] l-xxl:h-[48px]"}),e?.config?.rules?.split("<br>")?.length>0&&(0,t.jsx)("button",{type:"button",onClick:()=>{s(e?.config?.rules?.split("<br>")),(0,a.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:i?.activated?"active":"not active",event_parameters:{page_group:v,position:r.title,button_name:x?.ruleLabel,info:e?.alpcData?.id?.toString()}})},className:"mt-[8px] text-[16px] font-bold underline xxl:text-[14px]",tabIndex:0,onKeyDown:c=>{(c.key==="Enter"||c.key===" ")&&c.preventDefault()},children:x?.ruleLabel}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center l:mt-[12px] md:min-h-[46px] laptop:text-[16px] lg-desktop:text-[18px]",children:[(0,t.jsx)(l.Picture,{className:"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783"}),(0,t.jsx)(l.Text,{html:`${(0,o.numberFormat)(e?.alpcData?.consumeCredits)} + ${(0,o.formatPrice)({amount:Number(e?.config?.price),currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:C})}`,size:2,as:"p",className:"ml-[4px] mt-[4px] font-bold leading-none text-[24px] l-xxl:text-[20px] l:text-[16px]"}),(0,t.jsx)(l.Text,{html:(0,o.formatPrice)({amount:e?.productVariant?.price.amount,currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:C}),className:"l-xxl:text-[20px] mt-[4px] l:text-[16px] ml-[4px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through",as:"p"})]}),(0,t.jsxs)("div",{className:"group relative w-full mt-[8px]",children:[(0,t.jsx)(l.Button,{disabled:F,variant:"primary",size:"lg",className:"mt-[8px] md:px-[10px] l:w-full",loading:E,onClick:()=>{$()},title:f?x.insufficientCredits:g,children:g}),(0,t.jsx)("div",{className:(0,a.classNames)("absolute -bottom-[20px] left-0 z-10 w-[300px] translate-y-full opacity-0 transition-opacity group-hover:opacity-100 md:-bottom-[14px] md:w-[160px]",f?"block":"hidden"),children:(0,t.jsxs)("div",{className:(0,a.classNames)("relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]",!N&&"rounded-none"),children:[(0,t.jsx)(l.Text,{as:"p",size:"2",html:x?.insufficientCredits,className:"text-[14px]"}),(0,t.jsx)("div",{className:"absolute -top-[10px] left-[48px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]"})]})})]})]}),_&&(0,t.jsx)("div",{className:"mt-[8px] text-[14px] text-[#FF0000]",children:_})]})}var H=U;
2
2
  //# sourceMappingURL=RedeemableItem.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsCash/RedeemableItem.tsx"],
4
- "sourcesContent": ["import { Button, Text, Picture } from '@anker-in/headless-ui'\nimport { useMemo, useState } from 'react'\n\nimport { CreditsCashCopy, RedeemItem } from './type'\nimport { useCreditsContext } from '../context/provider'\nimport { useRedeemAndBuy } from '../context/hooks/useRedeemAndBuy'\nimport { formatPrice, numberFormat, extractVariantId } from '../context/utils'\nimport { gaTrack, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useRegistration } from '../../../components/registration'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nfunction RedeemableItem({\n copy,\n itemData,\n setRules,\n className,\n}: {\n copy: CreditsCashCopy\n itemData: RedeemItem\n className?: string\n setRules: (rules: string[]) => void\n currencyCode: string\n}) {\n const {\n creditInfo,\n profile,\n openSignUpPopup,\n pageCommon,\n gtm: { pageGroup },\n } = useCreditsContext()\n const { authCodeActivate } = useRegistration()\n const { brand, locale } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const [error, setError] = useState<string | null>(null)\n const { trigger, isMutating } = useRedeemAndBuy(\n {},\n {\n onError: error => {\n setError(error.message)\n },\n }\n )\n\n const isLogin = useMemo(() => {\n return !!profile\n }, [profile?.activated])\n\n const inSufficientCredit = useMemo(() => {\n return (\n isLogin && profile?.activated && itemData.alpcData?.consumeCredits > Number(creditInfo?.available_credit || 0)\n )\n }, [isLogin, profile?.activated, itemData.alpcData?.consumeCredits, creditInfo?.available_credit])\n\n const isDisabled = useMemo(() => {\n // \u5151\u6362\u9650\u5236\n if (itemData.alpcData?.remainingInventory <= 0 && itemData.alpcData?.isLimited) {\n return true\n }\n\n // \u5546\u54C1\u5E93\u5B58\u9650\u5236\n if (!itemData.productVariant?.availableForSale) {\n return true\n }\n\n // \u79EF\u5206\u4E0D\u8DB3\n if (inSufficientCredit) {\n return true\n }\n return false\n }, [\n itemData.alpcData?.remainingInventory,\n itemData.alpcData?.isLimited,\n itemData.productVariant?.availableForSale,\n inSufficientCredit,\n ])\n\n const handleRedeem = () => {\n setError(null)\n if (!isLogin) {\n openSignUpPopup()\n } else if (!profile?.activated && !authCodeActivate.isActivateSuccess) {\n authCodeActivate.open()\n } else {\n trigger({\n productVariant: itemData?.productVariant,\n redeemId: itemData?.config?.redeemId,\n })\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: redeemButtonText,\n info: itemData?.alpcData?.id?.toString(),\n },\n })\n }\n }\n\n const redeemButtonText = useMemo(() => {\n // \u7F3A\u8D27\u6587\u6848\n if (!itemData.productVariant?.availableForSale) {\n return copy?.soldOut || 'Sold Out'\n } else if (!isLogin) {\n return copy.unlockRewards\n } else {\n return copy.btnRedeem\n }\n }, [isLogin, itemData.productVariant?.availableForSale, copy.btnRedeem, copy.unlockRewards, copy?.soldOut])\n\n return (\n <div\n className={cn(\n 'flex flex-col items-center rounded-[16px] bg-[#EAEAEC] md:rounded-[12px] p-[24px] l:p-[8px] md-xl:p-[16px]',\n !rounded && 'rounded-none md:rounded-none',\n className\n )}\n >\n <a\n href={\n extractVariantId(itemData.productVariant?.id)\n ? `/products/${itemData.product.handle}?variant=${extractVariantId(itemData.productVariant?.id)}`\n : `/products/${itemData.product.handle}`\n }\n className={cn('relative mx-auto h-[224px] w-fit l:h-[120px] l-xxl:h-[138px]')}\n >\n <Picture\n className=\"mx-auto h-full w-auto\"\n imgClassName=\"h-full object-contain\"\n source={\n itemData?.config?.image?.url ||\n itemData?.productVariant?.metafields?.global?.transparentImg ||\n itemData?.productVariant?.image?.url\n }\n ></Picture>\n </a>\n <div className={cn('mt-[22px] w-full l:mt-[8px]')}>\n <Text\n html={itemData?.product?.title}\n title={itemData.config?.title || itemData.alpcData?.title || itemData.product?.title}\n size={2}\n className=\"line-clamp-2 h-[58px] text-[24px] l-xxl:text-[20px] l:text-[16px] leading-[1.2] l:h-[40px] l-xxl:h-[48px]\"\n />\n {itemData?.config?.rules?.split('<br>')?.length > 0 && (\n <button\n type=\"button\"\n onClick={() => {\n setRules(itemData?.config?.rules?.split('<br>'))\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: pageCommon?.ruleLabel,\n info: itemData?.alpcData?.id?.toString(),\n },\n })\n }}\n className=\"mt-[8px] text-[16px] font-bold underline xxl:text-[14px]\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {pageCommon?.ruleLabel}\n </button>\n )}\n\n <div className=\"flex flex-wrap items-center l:mt-[12px] laptop:text-[16px] lg-desktop:text-[18px]\">\n <Picture\n className=\"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]\"\n source=\"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783\"\n />\n <Text\n html={`${numberFormat(itemData?.alpcData?.consumeCredits)} + ${formatPrice({\n amount: Number(itemData?.config?.price),\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}`}\n size={2}\n as=\"p\"\n className=\"ml-[4px] mt-[4px] font-bold leading-none text-[24px] l-xxl:text-[20px] l:text-[16px]\"\n />\n <Text\n html={formatPrice({\n amount: itemData?.productVariant?.price.amount,\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}\n className=\"l-xxl:text-[20px] mt-[4px] l:text-[16px] ml-[4px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through\"\n as=\"p\"\n />\n </div>\n\n <div className=\"group relative w-full\">\n <Button\n disabled={isDisabled}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[8px] md:px-[10px] l:w-full\"\n loading={isMutating}\n onClick={() => {\n handleRedeem()\n }}\n title={inSufficientCredit ? pageCommon.insufficientCredits : redeemButtonText}\n >\n {redeemButtonText}\n </Button>\n <div\n className={cn(\n 'absolute -bottom-[20px] left-0 z-10 w-[300px] translate-y-full opacity-0 transition-opacity group-hover:opacity-100 md:-bottom-[14px] md:w-[160px]',\n inSufficientCredit ? 'block' : 'hidden'\n )}\n >\n <div\n className={cn(\n 'relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]',\n !rounded && 'rounded-none'\n )}\n >\n <Text as=\"p\" size=\"2\" html={pageCommon?.insufficientCredits} className=\"text-[14px]\" />\n <div className=\"absolute -top-[10px] left-[48px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]\" />\n </div>\n </div>\n </div>\n </div>\n {error && <div className=\"mt-[8px] text-[14px] text-[#FF0000]\">{error}</div>}\n </div>\n )\n}\n\nexport default RedeemableItem\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAgIQ,IAAAI,EAAA,6BAhIRC,EAAsC,iCACtCC,EAAkC,iBAGlCC,EAAkC,+BAClCC,EAAgC,4CAChCC,EAA4D,4BAC5DC,EAA8D,yBAC9DC,EAAgC,4CAChCC,EAA+B,8BAE/B,SAASC,EAAe,CACtB,KAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,CACF,EAMG,CACD,KAAM,CACJ,WAAAC,EACA,QAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,IAAK,CAAE,UAAAC,CAAU,CACnB,KAAI,qBAAkB,EAChB,CAAE,iBAAAC,CAAiB,KAAI,mBAAgB,EACvC,CAAE,MAAAC,EAAO,OAAAC,CAAO,KAAI,sBAAmB,EACvCC,EAAU,iBAAe,SAASF,CAAK,EACvC,CAACG,EAAOC,CAAQ,KAAI,YAAwB,IAAI,EAChD,CAAE,QAAAC,EAAS,WAAAC,CAAW,KAAI,mBAC9B,CAAC,EACD,CACE,QAASH,GAAS,CAChBC,EAASD,EAAM,OAAO,CACxB,CACF,CACF,EAEMI,KAAU,WAAQ,IACf,CAAC,CAACZ,EACR,CAACA,GAAS,SAAS,CAAC,EAEjBa,KAAqB,WAAQ,IAE/BD,GAAWZ,GAAS,WAAaJ,EAAS,UAAU,eAAiB,OAAOG,GAAY,kBAAoB,CAAC,EAE9G,CAACa,EAASZ,GAAS,UAAWJ,EAAS,UAAU,eAAgBG,GAAY,gBAAgB,CAAC,EAE3Fe,KAAa,WAAQ,IAErB,GAAAlB,EAAS,UAAU,oBAAsB,GAAKA,EAAS,UAAU,WAKjE,CAACA,EAAS,gBAAgB,kBAK1BiB,GAIH,CACDjB,EAAS,UAAU,mBACnBA,EAAS,UAAU,UACnBA,EAAS,gBAAgB,iBACzBiB,CACF,CAAC,EAEKE,EAAe,IAAM,CACzBN,EAAS,IAAI,EACRG,EAEM,CAACZ,GAAS,WAAa,CAACI,EAAiB,kBAClDA,EAAiB,KAAK,GAEtBM,EAAQ,CACN,eAAgBd,GAAU,eAC1B,SAAUA,GAAU,QAAQ,QAC9B,CAAC,KACD,WAAQ,CACN,MAAO,WACP,WAAY,YACZ,qBAAsBI,GAAS,UAAY,SAAW,aACtD,iBAAkB,CAChB,WAAYG,EACZ,SAAUR,EAAK,MACf,YAAaqB,EACb,KAAMpB,GAAU,UAAU,IAAI,SAAS,CACzC,CACF,CAAC,GAlBDK,EAAgB,CAoBpB,EAEMe,KAAmB,WAAQ,IAE1BpB,EAAS,gBAAgB,iBAElBgB,EAGHjB,EAAK,UAFLA,EAAK,cAFLA,GAAM,SAAW,WAMzB,CAACiB,EAAShB,EAAS,gBAAgB,iBAAkBD,EAAK,UAAWA,EAAK,cAAeA,GAAM,OAAO,CAAC,EAE1G,SACE,QAAC,OACC,aAAW,EAAAsB,YACT,6GACA,CAACV,GAAW,+BACZT,CACF,EAEA,oBAAC,KACC,QACE,oBAAiBF,EAAS,gBAAgB,EAAE,EACxC,aAAaA,EAAS,QAAQ,MAAM,eAAY,oBAAiBA,EAAS,gBAAgB,EAAE,CAAC,GAC7F,aAAaA,EAAS,QAAQ,MAAM,GAE1C,aAAW,EAAAqB,YAAG,8DAA8D,EAE5E,mBAAC,WACC,UAAU,wBACV,aAAa,wBACb,OACErB,GAAU,QAAQ,OAAO,KACzBA,GAAU,gBAAgB,YAAY,QAAQ,gBAC9CA,GAAU,gBAAgB,OAAO,IAEpC,EACH,KACA,QAAC,OAAI,aAAW,EAAAqB,YAAG,6BAA6B,EAC9C,oBAAC,QACC,KAAMrB,GAAU,SAAS,MACzB,MAAOA,EAAS,QAAQ,OAASA,EAAS,UAAU,OAASA,EAAS,SAAS,MAC/E,KAAM,EACN,UAAU,4GACZ,EACCA,GAAU,QAAQ,OAAO,MAAM,MAAM,GAAG,OAAS,MAChD,OAAC,UACC,KAAK,SACL,QAAS,IAAM,CACbC,EAASD,GAAU,QAAQ,OAAO,MAAM,MAAM,CAAC,KAC/C,WAAQ,CACN,MAAO,WACP,WAAY,YACZ,qBAAsBI,GAAS,UAAY,SAAW,aACtD,iBAAkB,CAChB,WAAYG,EACZ,SAAUR,EAAK,MACf,YAAaO,GAAY,UACzB,KAAMN,GAAU,UAAU,IAAI,SAAS,CACzC,CACF,CAAC,CACH,EACA,UAAU,2DACV,SAAU,EACV,UAAWsB,GAAK,EACVA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,MACjCA,EAAE,eAAe,CAErB,EAEC,SAAAhB,GAAY,UACf,KAGF,QAAC,OAAI,UAAU,oFACb,oBAAC,WACC,UAAU,gEACV,OAAO,6FACT,KACA,OAAC,QACC,KAAM,MAAG,gBAAaN,GAAU,UAAU,cAAc,CAAC,SAAM,eAAY,CACzE,OAAQ,OAAOA,GAAU,QAAQ,KAAK,EACtC,aAAcA,GAAU,gBAAgB,MAAM,cAAgB,MAC9D,OAAQU,CACV,CAAC,CAAC,GACF,KAAM,EACN,GAAG,IACH,UAAU,uFACZ,KACA,OAAC,QACC,QAAM,eAAY,CAChB,OAAQV,GAAU,gBAAgB,MAAM,OACxC,aAAcA,GAAU,gBAAgB,MAAM,cAAgB,MAC9D,OAAQU,CACV,CAAC,EACD,UAAU,0HACV,GAAG,IACL,GACF,KAEA,QAAC,OAAI,UAAU,wBACb,oBAAC,UACC,SAAUQ,EACV,QAAQ,UACR,KAAK,KACL,UAAU,iCACV,QAASH,EACT,QAAS,IAAM,CACbI,EAAa,CACf,EACA,MAAOF,EAAqBX,EAAW,oBAAsBc,EAE5D,SAAAA,EACH,KACA,OAAC,OACC,aAAW,EAAAC,YACT,qJACAJ,EAAqB,QAAU,QACjC,EAEA,oBAAC,OACC,aAAW,EAAAI,YACT,mHACA,CAACV,GAAW,cACd,EAEA,oBAAC,QAAK,GAAG,IAAI,KAAK,IAAI,KAAML,GAAY,oBAAqB,UAAU,cAAc,KACrF,OAAC,OAAI,UAAU,mHAAmH,GACpI,EACF,GACF,GACF,EACCM,MAAS,OAAC,OAAI,UAAU,sCAAuC,SAAAA,EAAM,GACxE,CAEJ,CAEA,IAAOzB,EAAQW",
6
- "names": ["RedeemableItem_exports", "__export", "RedeemableItem_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_provider", "import_useRedeemAndBuy", "import_utils", "import_lib", "import_registration", "import_constants", "RedeemableItem", "copy", "itemData", "setRules", "className", "creditInfo", "profile", "openSignUpPopup", "pageCommon", "pageGroup", "authCodeActivate", "brand", "locale", "rounded", "error", "setError", "trigger", "isMutating", "isLogin", "inSufficientCredit", "isDisabled", "handleRedeem", "redeemButtonText", "cn", "e"]
4
+ "sourcesContent": ["import { Button, Text, Picture, Badge } from '@anker-in/headless-ui'\nimport { useMemo, useState } from 'react'\n\nimport { CreditsCashCopy, RedeemItem } from './type'\nimport { useCreditsContext } from '../context/provider'\nimport { useRedeemAndBuy } from '../context/hooks/useRedeemAndBuy'\nimport { formatPrice, numberFormat, extractVariantId } from '../context/utils'\nimport { gaTrack, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useRegistration } from '../../../components/registration'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nfunction RedeemableItem({\n copy,\n itemData,\n setRules,\n className,\n}: {\n copy: CreditsCashCopy\n itemData: RedeemItem\n className?: string\n setRules: (rules: string[]) => void\n currencyCode: string\n}) {\n const {\n creditInfo,\n profile,\n openSignUpPopup,\n pageCommon,\n gtm: { pageGroup, pageHandle },\n } = useCreditsContext()\n const { authCodeActivate } = useRegistration()\n const { brand, locale } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const [error, setError] = useState<string | null>(null)\n const { trigger, isMutating } = useRedeemAndBuy(\n {},\n {\n onError: error => {\n setError(error.message)\n },\n }\n )\n\n const isLogin = useMemo(() => {\n return !!profile\n }, [profile?.activated])\n\n const inSufficientCredit = useMemo(() => {\n return (\n isLogin && profile?.activated && itemData.alpcData?.consumeCredits > Number(creditInfo?.available_credit || 0)\n )\n }, [isLogin, profile?.activated, itemData.alpcData?.consumeCredits, creditInfo?.available_credit])\n\n const isDisabled = useMemo(() => {\n // \u5151\u6362\u9650\u5236\n if (itemData.alpcData?.remainingInventory <= 0 && itemData.alpcData?.isLimited) {\n return true\n }\n\n // \u5546\u54C1\u5E93\u5B58\u9650\u5236\n if (!itemData.productVariant?.availableForSale) {\n return true\n }\n\n // \u79EF\u5206\u4E0D\u8DB3\n if (inSufficientCredit) {\n return true\n }\n return false\n }, [\n itemData.alpcData?.remainingInventory,\n itemData.alpcData?.isLimited,\n itemData.productVariant?.availableForSale,\n inSufficientCredit,\n ])\n\n const handleRedeem = () => {\n setError(null)\n if (!isLogin) {\n openSignUpPopup()\n } else if (!profile?.activated && !authCodeActivate.isActivateSuccess) {\n authCodeActivate.open()\n } else {\n trigger({\n productVariant: itemData?.productVariant,\n redeemId: itemData?.config?.redeemId,\n })\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: redeemButtonText,\n info: itemData?.alpcData?.id?.toString(),\n },\n })\n }\n }\n\n const redeemButtonText = useMemo(() => {\n // \u7F3A\u8D27\u6587\u6848\n if (!itemData.productVariant?.availableForSale) {\n return copy?.soldOut || 'Sold Out'\n } else if (!isLogin) {\n return copy.unlockRewards\n } else {\n return copy.btnRedeem\n }\n }, [isLogin, itemData.productVariant?.availableForSale, copy.btnRedeem, copy.unlockRewards, copy?.soldOut])\n\n return (\n <div\n className={cn(\n 'relative flex flex-col items-center rounded-[16px] bg-[#EAEAEC] md:rounded-[12px] px-[24px] pb-[24px] l:px-[8px] l:pb-[8px] md-xl:px-[16px] md-xl:pb-[16px]',\n !rounded && 'rounded-none md:rounded-none',\n copy.badgeLabel ? 'pt-[48px] l:pt-[44px]' : 'pt-[24px] md-xl:pt-[16px] l:pt-[8px]',\n className\n )}\n >\n {/* Redeem \u6807\u7B7E Badge */}\n {copy.badgeLabel && (\n <Badge\n className=\"absolute left-[24px] l:left-[16px] !bg-gradient-brand top-[16px] z-10\"\n size=\"lg\"\n variant=\"promotional\"\n promotionalType=\"regular-member\"\n >\n {copy.badgeLabel}\n </Badge>\n )}\n\n <a\n href={\n extractVariantId(itemData.productVariant?.id)\n ? `/products/${itemData.product.handle}?variant=${extractVariantId(itemData.productVariant?.id)}${pageHandle ? `&ref=${pageHandle}` : ''}`\n : `/products/${itemData.product.handle}${pageHandle ? `?ref=${pageHandle}` : ''}`\n }\n className={cn('relative mx-auto h-[196px] w-fit md:h-[120px] md-xxl:h-[138px]')}\n >\n <Picture\n className=\"mx-auto h-full w-auto\"\n imgClassName=\"h-full object-contain\"\n source={\n itemData?.config?.image?.url ||\n itemData?.productVariant?.metafields?.global?.transparentImg ||\n itemData?.productVariant?.image?.url\n }\n ></Picture>\n </a>\n <div className={cn('mt-[10px] w-full xl:mt-[8px]')}>\n <Text\n html={itemData?.product?.title}\n title={itemData.config?.title || itemData.alpcData?.title || itemData.product?.title}\n size={2}\n className=\"line-clamp-2 h-[58px] text-[24px] l-xxl:text-[20px] l:text-[16px] leading-[1.2] l:h-[38px] l-xxl:h-[48px]\"\n />\n {itemData?.config?.rules?.split('<br>')?.length > 0 && (\n <button\n type=\"button\"\n onClick={() => {\n setRules(itemData?.config?.rules?.split('<br>'))\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: pageCommon?.ruleLabel,\n info: itemData?.alpcData?.id?.toString(),\n },\n })\n }}\n className=\"mt-[8px] text-[16px] font-bold underline xxl:text-[14px]\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {pageCommon?.ruleLabel}\n </button>\n )}\n\n <div className=\"flex flex-wrap items-center l:mt-[12px] md:min-h-[46px] laptop:text-[16px] lg-desktop:text-[18px]\">\n <Picture\n className=\"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]\"\n source=\"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783\"\n />\n <Text\n html={`${numberFormat(itemData?.alpcData?.consumeCredits)} + ${formatPrice({\n amount: Number(itemData?.config?.price),\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}`}\n size={2}\n as=\"p\"\n className=\"ml-[4px] mt-[4px] font-bold leading-none text-[24px] l-xxl:text-[20px] l:text-[16px]\"\n />\n <Text\n html={formatPrice({\n amount: itemData?.productVariant?.price.amount,\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}\n className=\"l-xxl:text-[20px] mt-[4px] l:text-[16px] ml-[4px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through\"\n as=\"p\"\n />\n </div>\n\n <div className=\"group relative w-full mt-[8px]\">\n <Button\n disabled={isDisabled}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[8px] md:px-[10px] l:w-full\"\n loading={isMutating}\n onClick={() => {\n handleRedeem()\n }}\n title={inSufficientCredit ? pageCommon.insufficientCredits : redeemButtonText}\n >\n {redeemButtonText}\n </Button>\n <div\n className={cn(\n 'absolute -bottom-[20px] left-0 z-10 w-[300px] translate-y-full opacity-0 transition-opacity group-hover:opacity-100 md:-bottom-[14px] md:w-[160px]',\n inSufficientCredit ? 'block' : 'hidden'\n )}\n >\n <div\n className={cn(\n 'relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]',\n !rounded && 'rounded-none'\n )}\n >\n <Text as=\"p\" size=\"2\" html={pageCommon?.insufficientCredits} className=\"text-[14px]\" />\n <div className=\"absolute -top-[10px] left-[48px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]\" />\n </div>\n </div>\n </div>\n </div>\n {error && <div className=\"mt-[8px] text-[14px] text-[#FF0000]\">{error}</div>}\n </div>\n )\n}\n\nexport default RedeemableItem\n"],
5
+ "mappings": "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",
6
+ "names": ["RedeemableItem_exports", "__export", "RedeemableItem_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_provider", "import_useRedeemAndBuy", "import_utils", "import_lib", "import_registration", "import_constants", "RedeemableItem", "copy", "itemData", "setRules", "className", "creditInfo", "profile", "openSignUpPopup", "pageCommon", "pageGroup", "pageHandle", "authCodeActivate", "brand", "locale", "rounded", "error", "setError", "trigger", "isMutating", "isLogin", "inSufficientCredit", "isDisabled", "handleRedeem", "redeemButtonText", "cn", "e"]
7
7
  }
@@ -26,6 +26,7 @@ export type CreditsCashCopy = {
26
26
  unlockRewards: string;
27
27
  btnRedeem: string;
28
28
  off: string;
29
+ badgeLabel?: string;
29
30
  };
30
31
  export type RedeemItem = {
31
32
  product: Product;
@@ -1,2 +1,2 @@
1
- "use strict";var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var u=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of m(e))!d.call(t,r)&&r!==o&&n(t,r,{get:()=>e[r],enumerable:!(i=s(e,r))||i.enumerable});return t};var g=t=>u(n({},"__esModule",{value:!0}),t);var a={};module.exports=g(a);
1
+ "use strict";var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var g=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of m(e))!d.call(t,r)&&r!==o&&n(t,r,{get:()=>e[r],enumerable:!(i=s(e,r))||i.enumerable});return t};var u=t=>g(n({},"__esModule",{value:!0}),t);var a={};module.exports=u(a);
2
2
  //# sourceMappingURL=type.js.map