@anker-in/headless-ui 1.3.38 → 1.3.39-alpha.1784616869310

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 (395) hide show
  1. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.d.ts +11 -0
  2. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js +2 -0
  3. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js.map +7 -0
  4. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.d.ts +23 -0
  5. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js +2 -0
  6. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js.map +7 -0
  7. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.d.ts +40 -0
  8. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js +2 -0
  9. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js.map +7 -0
  10. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.d.ts +107 -0
  11. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js +2 -0
  12. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js.map +7 -0
  13. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.d.ts +22 -0
  14. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.js +2 -0
  15. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.js.map +7 -0
  16. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.d.ts +10 -0
  17. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.js +2 -0
  18. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.js.map +7 -0
  19. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.d.ts +9 -0
  20. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.js +2 -0
  21. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.js.map +7 -0
  22. package/dist/cjs/biz-components/AccessoriesShelf/index.d.ts +7 -0
  23. package/dist/cjs/biz-components/AccessoriesShelf/index.js +2 -0
  24. package/dist/cjs/biz-components/AccessoriesShelf/index.js.map +7 -0
  25. package/dist/cjs/biz-components/AccessoriesShelf/types.d.ts +16 -0
  26. package/dist/cjs/biz-components/AccessoriesShelf/types.js +2 -0
  27. package/dist/cjs/biz-components/AccessoriesShelf/types.js.map +7 -0
  28. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.d.ts +14 -0
  29. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.js +2 -0
  30. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.js.map +7 -0
  31. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.d.ts +11 -0
  32. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js +2 -0
  33. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js.map +7 -0
  34. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.d.ts +2 -0
  35. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js +2 -0
  36. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js.map +7 -0
  37. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.d.ts +13 -0
  38. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js +2 -0
  39. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js.map +7 -0
  40. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.d.ts +2 -0
  41. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js +2 -0
  42. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js.map +7 -0
  43. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.d.ts +2 -0
  44. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.js +2 -0
  45. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.js.map +7 -0
  46. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.d.ts +54 -0
  47. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.js +2 -0
  48. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.js.map +7 -0
  49. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.d.ts +4 -0
  50. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js +2 -0
  51. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js.map +7 -0
  52. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.d.ts +2 -0
  53. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js +2 -0
  54. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js.map +7 -0
  55. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.d.ts +9 -0
  56. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js +2 -0
  57. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js.map +7 -0
  58. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.d.ts +11 -0
  59. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js +2 -0
  60. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js.map +7 -0
  61. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.d.ts +2 -0
  62. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js +2 -0
  63. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js.map +7 -0
  64. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.d.ts +12 -0
  65. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js +2 -0
  66. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js.map +7 -0
  67. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.d.ts +2 -0
  68. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js +2 -0
  69. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js.map +7 -0
  70. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.d.ts +4 -0
  71. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js +2 -0
  72. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js.map +7 -0
  73. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.d.ts +2 -0
  74. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js +2 -0
  75. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js.map +7 -0
  76. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.d.ts +11 -0
  77. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js +2 -0
  78. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js.map +7 -0
  79. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.d.ts +8 -0
  80. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js +2 -0
  81. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js.map +7 -0
  82. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.d.ts +2 -0
  83. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js +2 -0
  84. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js.map +7 -0
  85. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.d.ts +2 -0
  86. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.js +2 -0
  87. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.js.map +7 -0
  88. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.d.ts +36 -0
  89. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.js +2 -0
  90. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.js.map +7 -0
  91. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.d.ts +2 -0
  92. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.js +2 -0
  93. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.js.map +7 -0
  94. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.d.ts +47 -0
  95. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js +2 -0
  96. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js.map +7 -0
  97. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.d.ts +2 -0
  98. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.js +2 -0
  99. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.js.map +7 -0
  100. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.d.ts +26 -0
  101. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js +2 -0
  102. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js.map +7 -0
  103. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.d.ts +2 -0
  104. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.js +2 -0
  105. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.js.map +7 -0
  106. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.d.ts +10 -0
  107. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.js +2 -0
  108. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.js.map +7 -0
  109. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.d.ts +2 -0
  110. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.js +2 -0
  111. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.js.map +7 -0
  112. package/dist/cjs/biz-components/CartDetail/index.d.ts +16 -0
  113. package/dist/cjs/biz-components/CartDetail/index.js +2 -0
  114. package/dist/cjs/biz-components/CartDetail/index.js.map +7 -0
  115. package/dist/cjs/biz-components/CartDetail/types.d.ts +132 -0
  116. package/dist/cjs/biz-components/CartDetail/types.js +2 -0
  117. package/dist/cjs/biz-components/CartDetail/types.js.map +7 -0
  118. package/dist/cjs/biz-components/Listing/BizProductProvider.d.ts +13 -9
  119. package/dist/cjs/biz-components/Listing/BizProductProvider.js +1 -1
  120. package/dist/cjs/biz-components/Listing/BizProductProvider.js.map +3 -3
  121. package/dist/cjs/biz-components/Listing/components/CartActionButtons/index.d.ts +9 -1
  122. package/dist/cjs/biz-components/Listing/components/CartActionButtons/index.js +1 -1
  123. package/dist/cjs/biz-components/Listing/components/CartActionButtons/index.js.map +3 -3
  124. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +4 -4
  125. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +3 -3
  126. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefits/index.js +1 -1
  127. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefits/index.js.map +3 -3
  128. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +1 -0
  129. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +1 -1
  130. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +3 -3
  131. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.d.ts +48 -0
  132. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.js +2 -0
  133. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.js.map +7 -0
  134. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.d.ts +1 -1
  135. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.js +1 -1
  136. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.js.map +3 -3
  137. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +0 -2
  138. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +1 -1
  139. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +4 -4
  140. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.d.ts +3 -0
  141. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.js +2 -0
  142. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.js.map +7 -0
  143. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.d.ts +115 -0
  144. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.js +2 -0
  145. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.js.map +7 -0
  146. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js +1 -1
  147. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +3 -3
  148. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +1 -1
  149. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +3 -3
  150. package/dist/cjs/biz-components/Listing/components/index.d.ts +0 -1
  151. package/dist/cjs/biz-components/Listing/components/index.js +1 -1
  152. package/dist/cjs/biz-components/Listing/components/index.js.map +3 -3
  153. package/dist/cjs/biz-components/Listing/hooks/useBenefits.d.ts +8 -2
  154. package/dist/cjs/biz-components/Listing/hooks/useBenefits.js +1 -1
  155. package/dist/cjs/biz-components/Listing/hooks/useBenefits.js.map +3 -3
  156. package/dist/cjs/biz-components/Listing/types/product.d.ts +0 -21
  157. package/dist/cjs/biz-components/Listing/types/product.js +1 -1
  158. package/dist/cjs/biz-components/Listing/types/product.js.map +1 -1
  159. package/dist/cjs/biz-components/NotifyMeDialog/NotifyMeDialog.d.ts +7 -0
  160. package/dist/cjs/biz-components/NotifyMeDialog/NotifyMeDialog.js +2 -0
  161. package/dist/cjs/biz-components/NotifyMeDialog/NotifyMeDialog.js.map +7 -0
  162. package/dist/cjs/biz-components/NotifyMeDialog/index.d.ts +2 -0
  163. package/dist/cjs/biz-components/NotifyMeDialog/index.js +2 -0
  164. package/dist/cjs/biz-components/NotifyMeDialog/index.js.map +7 -0
  165. package/dist/cjs/biz-components/NotifyMeDialog/types.d.ts +111 -0
  166. package/dist/cjs/biz-components/NotifyMeDialog/types.js +2 -0
  167. package/dist/cjs/biz-components/NotifyMeDialog/types.js.map +7 -0
  168. package/dist/cjs/biz-components/ShelfDisplay/index.js +1 -1
  169. package/dist/cjs/biz-components/ShelfDisplay/index.js.map +3 -3
  170. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  171. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +2 -2
  172. package/dist/cjs/biz-components/index.d.ts +11 -3
  173. package/dist/cjs/biz-components/index.js +1 -1
  174. package/dist/cjs/biz-components/index.js.map +3 -3
  175. package/dist/cjs/components/breadcrumb.d.ts +12 -0
  176. package/dist/cjs/components/breadcrumb.js +2 -0
  177. package/dist/cjs/components/breadcrumb.js.map +7 -0
  178. package/dist/cjs/components/index.d.ts +2 -0
  179. package/dist/cjs/components/index.js +1 -1
  180. package/dist/cjs/components/index.js.map +3 -3
  181. package/dist/cjs/components/input-number.d.ts +22 -0
  182. package/dist/cjs/components/input-number.js +1 -1
  183. package/dist/cjs/components/input-number.js.map +3 -3
  184. package/dist/cjs/components/input.d.ts +5 -0
  185. package/dist/cjs/components/input.js +1 -1
  186. package/dist/cjs/components/input.js.map +3 -3
  187. package/dist/cjs/components/tabs.js +1 -1
  188. package/dist/cjs/components/tabs.js.map +3 -3
  189. package/dist/cjs/components/toast.d.ts +25 -0
  190. package/dist/cjs/components/toast.js +2 -0
  191. package/dist/cjs/components/toast.js.map +7 -0
  192. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.d.ts +11 -0
  193. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js +2 -0
  194. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js.map +7 -0
  195. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.d.ts +23 -0
  196. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js +2 -0
  197. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js.map +7 -0
  198. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.d.ts +40 -0
  199. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js +2 -0
  200. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js.map +7 -0
  201. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.d.ts +107 -0
  202. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js +1 -0
  203. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js.map +7 -0
  204. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.d.ts +22 -0
  205. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.js +2 -0
  206. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.js.map +7 -0
  207. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.d.ts +10 -0
  208. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.js +2 -0
  209. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.js.map +7 -0
  210. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.d.ts +9 -0
  211. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.js +2 -0
  212. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.js.map +7 -0
  213. package/dist/esm/biz-components/AccessoriesShelf/index.d.ts +7 -0
  214. package/dist/esm/biz-components/AccessoriesShelf/index.js +2 -0
  215. package/dist/esm/biz-components/AccessoriesShelf/index.js.map +7 -0
  216. package/dist/esm/biz-components/AccessoriesShelf/types.d.ts +16 -0
  217. package/dist/esm/biz-components/AccessoriesShelf/types.js +1 -0
  218. package/dist/esm/biz-components/AccessoriesShelf/types.js.map +7 -0
  219. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.d.ts +14 -0
  220. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.js +2 -0
  221. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.js.map +7 -0
  222. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.d.ts +11 -0
  223. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js +2 -0
  224. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js.map +7 -0
  225. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.d.ts +2 -0
  226. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js +2 -0
  227. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js.map +7 -0
  228. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.d.ts +13 -0
  229. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js +2 -0
  230. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js.map +7 -0
  231. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.d.ts +2 -0
  232. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js +2 -0
  233. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js.map +7 -0
  234. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.d.ts +2 -0
  235. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.js +2 -0
  236. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.js.map +7 -0
  237. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.d.ts +54 -0
  238. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.js +2 -0
  239. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.js.map +7 -0
  240. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.d.ts +4 -0
  241. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js +2 -0
  242. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js.map +7 -0
  243. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.d.ts +2 -0
  244. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js +2 -0
  245. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js.map +7 -0
  246. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.d.ts +9 -0
  247. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js +1 -0
  248. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js.map +7 -0
  249. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.d.ts +11 -0
  250. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js +2 -0
  251. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js.map +7 -0
  252. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.d.ts +2 -0
  253. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js +2 -0
  254. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js.map +7 -0
  255. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.d.ts +12 -0
  256. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js +2 -0
  257. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js.map +7 -0
  258. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.d.ts +2 -0
  259. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js +2 -0
  260. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js.map +7 -0
  261. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.d.ts +4 -0
  262. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js +2 -0
  263. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js.map +7 -0
  264. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.d.ts +2 -0
  265. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js +2 -0
  266. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js.map +7 -0
  267. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.d.ts +11 -0
  268. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js +1 -0
  269. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js.map +7 -0
  270. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.d.ts +8 -0
  271. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js +2 -0
  272. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js.map +7 -0
  273. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.d.ts +2 -0
  274. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js +2 -0
  275. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js.map +7 -0
  276. package/dist/esm/biz-components/CartDetail/CartItemRow/index.d.ts +2 -0
  277. package/dist/esm/biz-components/CartDetail/CartItemRow/index.js +2 -0
  278. package/dist/esm/biz-components/CartDetail/CartItemRow/index.js.map +7 -0
  279. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.d.ts +36 -0
  280. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.js +2 -0
  281. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.js.map +7 -0
  282. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.d.ts +2 -0
  283. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.js +2 -0
  284. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.js.map +7 -0
  285. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.d.ts +47 -0
  286. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js +2 -0
  287. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js.map +7 -0
  288. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.d.ts +2 -0
  289. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.js +2 -0
  290. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.js.map +7 -0
  291. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.d.ts +26 -0
  292. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js +2 -0
  293. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js.map +7 -0
  294. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.d.ts +2 -0
  295. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.js +2 -0
  296. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.js.map +7 -0
  297. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.d.ts +10 -0
  298. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.js +2 -0
  299. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.js.map +7 -0
  300. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.d.ts +2 -0
  301. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.js +2 -0
  302. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.js.map +7 -0
  303. package/dist/esm/biz-components/CartDetail/index.d.ts +16 -0
  304. package/dist/esm/biz-components/CartDetail/index.js +2 -0
  305. package/dist/esm/biz-components/CartDetail/index.js.map +7 -0
  306. package/dist/esm/biz-components/CartDetail/types.d.ts +132 -0
  307. package/dist/esm/biz-components/CartDetail/types.js +1 -0
  308. package/dist/esm/biz-components/CartDetail/types.js.map +7 -0
  309. package/dist/esm/biz-components/Listing/BizProductProvider.d.ts +13 -9
  310. package/dist/esm/biz-components/Listing/BizProductProvider.js +1 -1
  311. package/dist/esm/biz-components/Listing/BizProductProvider.js.map +3 -3
  312. package/dist/esm/biz-components/Listing/components/CartActionButtons/index.d.ts +9 -1
  313. package/dist/esm/biz-components/Listing/components/CartActionButtons/index.js +1 -1
  314. package/dist/esm/biz-components/Listing/components/CartActionButtons/index.js.map +3 -3
  315. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +4 -4
  316. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +3 -3
  317. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefits/index.js +1 -1
  318. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefits/index.js.map +3 -3
  319. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +1 -0
  320. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +1 -1
  321. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +3 -3
  322. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.d.ts +48 -0
  323. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.js +1 -0
  324. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/types.js.map +7 -0
  325. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.d.ts +1 -1
  326. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.js +1 -1
  327. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductCoupon/index.js.map +3 -3
  328. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +0 -2
  329. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +1 -1
  330. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +3 -3
  331. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.d.ts +3 -0
  332. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.js +2 -0
  333. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.js.map +7 -0
  334. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.d.ts +115 -0
  335. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.js +1 -0
  336. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/types.js.map +7 -0
  337. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js +1 -1
  338. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +3 -3
  339. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +1 -1
  340. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +3 -3
  341. package/dist/esm/biz-components/Listing/components/index.d.ts +0 -1
  342. package/dist/esm/biz-components/Listing/components/index.js +1 -1
  343. package/dist/esm/biz-components/Listing/components/index.js.map +2 -2
  344. package/dist/esm/biz-components/Listing/hooks/useBenefits.d.ts +8 -2
  345. package/dist/esm/biz-components/Listing/hooks/useBenefits.js +1 -1
  346. package/dist/esm/biz-components/Listing/hooks/useBenefits.js.map +3 -3
  347. package/dist/esm/biz-components/Listing/types/product.d.ts +0 -21
  348. package/dist/esm/biz-components/Listing/types/product.js.map +1 -1
  349. package/dist/esm/biz-components/NotifyMeDialog/NotifyMeDialog.d.ts +7 -0
  350. package/dist/esm/biz-components/NotifyMeDialog/NotifyMeDialog.js +2 -0
  351. package/dist/esm/biz-components/NotifyMeDialog/NotifyMeDialog.js.map +7 -0
  352. package/dist/esm/biz-components/NotifyMeDialog/index.d.ts +2 -0
  353. package/dist/esm/biz-components/NotifyMeDialog/index.js +2 -0
  354. package/dist/esm/biz-components/NotifyMeDialog/index.js.map +7 -0
  355. package/dist/esm/biz-components/NotifyMeDialog/types.d.ts +111 -0
  356. package/dist/esm/biz-components/NotifyMeDialog/types.js +1 -0
  357. package/dist/esm/biz-components/NotifyMeDialog/types.js.map +7 -0
  358. package/dist/esm/biz-components/ShelfDisplay/index.js +1 -1
  359. package/dist/esm/biz-components/ShelfDisplay/index.js.map +3 -3
  360. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  361. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +2 -2
  362. package/dist/esm/biz-components/index.d.ts +11 -3
  363. package/dist/esm/biz-components/index.js +1 -1
  364. package/dist/esm/biz-components/index.js.map +3 -3
  365. package/dist/esm/components/breadcrumb.d.ts +12 -0
  366. package/dist/esm/components/breadcrumb.js +2 -0
  367. package/dist/esm/components/breadcrumb.js.map +7 -0
  368. package/dist/esm/components/index.d.ts +2 -0
  369. package/dist/esm/components/index.js +1 -1
  370. package/dist/esm/components/index.js.map +3 -3
  371. package/dist/esm/components/input-number.d.ts +22 -0
  372. package/dist/esm/components/input-number.js +1 -1
  373. package/dist/esm/components/input-number.js.map +3 -3
  374. package/dist/esm/components/input.d.ts +5 -0
  375. package/dist/esm/components/input.js +1 -1
  376. package/dist/esm/components/input.js.map +3 -3
  377. package/dist/esm/components/tabs.js +1 -1
  378. package/dist/esm/components/tabs.js.map +3 -3
  379. package/dist/esm/components/toast.d.ts +25 -0
  380. package/dist/esm/components/toast.js +2 -0
  381. package/dist/esm/components/toast.js.map +7 -0
  382. package/package.json +1 -1
  383. package/style.css +275 -0
  384. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +0 -2
  385. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js +0 -2
  386. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +0 -7
  387. package/dist/cjs/biz-components/Listing/components/ProductCard/index.d.ts +0 -2
  388. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js +0 -2
  389. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js.map +0 -7
  390. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +0 -2
  391. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js +0 -2
  392. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +0 -7
  393. package/dist/esm/biz-components/Listing/components/ProductCard/index.d.ts +0 -2
  394. package/dist/esm/biz-components/Listing/components/ProductCard/index.js +0 -2
  395. package/dist/esm/biz-components/Listing/components/ProductCard/index.js.map +0 -7
@@ -0,0 +1,111 @@
1
+ /**
2
+ * CheckboxConfig - 勾选框配置
3
+ *
4
+ * 每项独立控制展示与提交限制,顺序按数组顺序渲染。
5
+ * label 有值时展示该项,无值时跳过不渲染。
6
+ */
7
+ export interface CheckboxConfig {
8
+ /** checkbox 名称标识,用于提交时识别选中了哪些项 */
9
+ checkbox_id: string;
10
+ /** checkbox 旁展示的文案;为空或不传则不渲染该 checkbox */
11
+ label: string;
12
+ /** 是否必须勾选才能提交;true 时未勾选则按钮 disabled;默认 false */
13
+ required?: boolean;
14
+ }
15
+ /**
16
+ * SubscriptionMeta - 订阅元数据
17
+ *
18
+ * 区分 OOS 到货通知和活动订阅两种模式,确保提交时携带正确的业务参数。
19
+ */
20
+ export type SubscriptionMeta = {
21
+ /** 固定值,标识 OOS 到货通知 */
22
+ mode: 'oos';
23
+ } | {
24
+ /** 固定值,标识活动订阅 */
25
+ mode: 'activity';
26
+ /** 活动标识,由业务层从 activeNotifyInfo 配置中读取 */
27
+ dealsType: string;
28
+ };
29
+ /**
30
+ * ErrorDetail - 按错误码映射错误提示
31
+ *
32
+ * 支持消费方根据接口返回的错误码配置不同的提示文案。
33
+ * code 匹配时显示对应 message;未匹配到则回退到 errorSubmit。
34
+ */
35
+ export interface ErrorDetail {
36
+ /** 错误码,如 "422"、"500" */
37
+ code: string;
38
+ /** 该错误码对应的提示文案 */
39
+ message: string;
40
+ }
41
+ /**
42
+ * NotifyMeDialogCopy - 文案配置
43
+ *
44
+ * 将弹窗内所有可配置文案集中到一个对象中,
45
+ * 方便从 CMS / 多语言配置层一次性传入。
46
+ */
47
+ export interface NotifyMeDialogCopy {
48
+ /** 弹窗主标题,如 "Email me when available" */
49
+ title: string;
50
+ /** 弹窗副标题;为空时不渲染 */
51
+ subTitle?: string;
52
+ /** 邮箱输入框占位文案 */
53
+ emailPlaceholder?: string;
54
+ /** 提交按钮文案 */
55
+ submitBtnText?: string;
56
+ /** 邮箱输入框标签文案,默认 "Email address" */
57
+ emailLabel?: string;
58
+ /** 邮箱输入框为空时的错误提示 */
59
+ errorEmpty: string;
60
+ /** 邮箱格式不合法时的错误提示 */
61
+ errorInvalidEmail: string;
62
+ /** 必选 checkbox 未勾选时的提示文案 */
63
+ errorCheckboxRequired: string;
64
+ /** 接口调用失败时的默认错误提示,当 errorSubmitDetail 中未匹配到对应 code 时使用 */
65
+ errorSubmit?: string;
66
+ /** 按错误码映射的错误提示,code 匹配到时显示对应 message;未传入或不匹配时回退到 errorSubmit */
67
+ errorSubmitDetail?: ErrorDetail[];
68
+ /** 提交成功后的主标题 */
69
+ successTitle: string;
70
+ /** 提交成功后的副文案;为空时不渲染 */
71
+ successDesc?: string;
72
+ /** 提交成功后的按钮文案;为空时不渲染按钮 */
73
+ successBtnText?: string;
74
+ }
75
+ /**
76
+ * NotifyMeDialogSemanticName - 组件语义化区域名
77
+ *
78
+ * 用于 classNames prop,按语义区域自定义样式。
79
+ * 未传入的 key 使用组件默认样式。
80
+ */
81
+ export type NotifyMeDialogSemanticName = 'root' | 'header' | 'title' | 'subTitle' | 'emailInput' | 'checkboxes' | 'checkboxItem' | 'submitBtn' | 'errorText' | 'successText';
82
+ /**
83
+ * SubscribeFormData - 提交时暴露的完整表单数据
84
+ */
85
+ export interface SubscribeFormData {
86
+ /** 用户输入的邮箱 */
87
+ email: string;
88
+ /** 各 checkbox 的状态列表,仅包含配置了 name 的项 */
89
+ checkedItems: {
90
+ checkbox_id: string;
91
+ checked: boolean;
92
+ }[];
93
+ /** 订阅元数据 */
94
+ meta: SubscriptionMeta;
95
+ }
96
+ export interface NotifyMeDialogProps {
97
+ /** 是否打开弹窗 */
98
+ open: boolean;
99
+ /** 关闭弹窗回调 */
100
+ onOpenChange: (open: boolean) => void;
101
+ /** 文案配置 */
102
+ copy: NotifyMeDialogCopy;
103
+ /** 各区域自定义样式 */
104
+ classNames?: Partial<Record<NotifyMeDialogSemanticName, string>>;
105
+ /** 勾选框列表,支持配置多个;每项 label 有值时展示,无值时跳过 */
106
+ checkboxes?: CheckboxConfig[];
107
+ /** 订阅元数据,区分 OOS / 活动两种模式 */
108
+ subscriptionMeta: SubscriptionMeta;
109
+ /** 提交回调,接收完整表单数据,业务层决定调哪个接口 */
110
+ onSubmit: (data: SubscribeFormData) => Promise<void>;
111
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of n(e))!c.call(t,i)&&i!==s&&o(t,i,{get:()=>e[i],enumerable:!(r=a(e,i))||r.enumerable});return t};var b=t=>l(o({},"__esModule",{value:!0}),t);var g={};module.exports=b(g);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/NotifyMeDialog/types.ts"],
4
+ "sourcesContent": ["/**\n * CheckboxConfig - \u52FE\u9009\u6846\u914D\u7F6E\n *\n * \u6BCF\u9879\u72EC\u7ACB\u63A7\u5236\u5C55\u793A\u4E0E\u63D0\u4EA4\u9650\u5236\uFF0C\u987A\u5E8F\u6309\u6570\u7EC4\u987A\u5E8F\u6E32\u67D3\u3002\n * label \u6709\u503C\u65F6\u5C55\u793A\u8BE5\u9879\uFF0C\u65E0\u503C\u65F6\u8DF3\u8FC7\u4E0D\u6E32\u67D3\u3002\n */\nexport interface CheckboxConfig {\n /** checkbox \u540D\u79F0\u6807\u8BC6\uFF0C\u7528\u4E8E\u63D0\u4EA4\u65F6\u8BC6\u522B\u9009\u4E2D\u4E86\u54EA\u4E9B\u9879 */\n checkbox_id: string\n /** checkbox \u65C1\u5C55\u793A\u7684\u6587\u6848\uFF1B\u4E3A\u7A7A\u6216\u4E0D\u4F20\u5219\u4E0D\u6E32\u67D3\u8BE5 checkbox */\n label: string\n /** \u662F\u5426\u5FC5\u987B\u52FE\u9009\u624D\u80FD\u63D0\u4EA4\uFF1Btrue \u65F6\u672A\u52FE\u9009\u5219\u6309\u94AE disabled\uFF1B\u9ED8\u8BA4 false */\n required?: boolean\n}\n\n/**\n * SubscriptionMeta - \u8BA2\u9605\u5143\u6570\u636E\n *\n * \u533A\u5206 OOS \u5230\u8D27\u901A\u77E5\u548C\u6D3B\u52A8\u8BA2\u9605\u4E24\u79CD\u6A21\u5F0F\uFF0C\u786E\u4FDD\u63D0\u4EA4\u65F6\u643A\u5E26\u6B63\u786E\u7684\u4E1A\u52A1\u53C2\u6570\u3002\n */\nexport type SubscriptionMeta =\n | {\n /** \u56FA\u5B9A\u503C\uFF0C\u6807\u8BC6 OOS \u5230\u8D27\u901A\u77E5 */\n mode: 'oos'\n }\n | {\n /** \u56FA\u5B9A\u503C\uFF0C\u6807\u8BC6\u6D3B\u52A8\u8BA2\u9605 */\n mode: 'activity'\n /** \u6D3B\u52A8\u6807\u8BC6\uFF0C\u7531\u4E1A\u52A1\u5C42\u4ECE activeNotifyInfo \u914D\u7F6E\u4E2D\u8BFB\u53D6 */\n dealsType: string\n }\n\n/**\n * ErrorDetail - \u6309\u9519\u8BEF\u7801\u6620\u5C04\u9519\u8BEF\u63D0\u793A\n *\n * \u652F\u6301\u6D88\u8D39\u65B9\u6839\u636E\u63A5\u53E3\u8FD4\u56DE\u7684\u9519\u8BEF\u7801\u914D\u7F6E\u4E0D\u540C\u7684\u63D0\u793A\u6587\u6848\u3002\n * code \u5339\u914D\u65F6\u663E\u793A\u5BF9\u5E94 message\uFF1B\u672A\u5339\u914D\u5230\u5219\u56DE\u9000\u5230 errorSubmit\u3002\n */\nexport interface ErrorDetail {\n /** \u9519\u8BEF\u7801\uFF0C\u5982 \"422\"\u3001\"500\" */\n code: string\n /** \u8BE5\u9519\u8BEF\u7801\u5BF9\u5E94\u7684\u63D0\u793A\u6587\u6848 */\n message: string\n}\n\n/**\n * NotifyMeDialogCopy - \u6587\u6848\u914D\u7F6E\n *\n * \u5C06\u5F39\u7A97\u5185\u6240\u6709\u53EF\u914D\u7F6E\u6587\u6848\u96C6\u4E2D\u5230\u4E00\u4E2A\u5BF9\u8C61\u4E2D\uFF0C\n * \u65B9\u4FBF\u4ECE CMS / \u591A\u8BED\u8A00\u914D\u7F6E\u5C42\u4E00\u6B21\u6027\u4F20\u5165\u3002\n */\nexport interface NotifyMeDialogCopy {\n /** \u5F39\u7A97\u4E3B\u6807\u9898\uFF0C\u5982 \"Email me when available\" */\n title: string\n /** \u5F39\u7A97\u526F\u6807\u9898\uFF1B\u4E3A\u7A7A\u65F6\u4E0D\u6E32\u67D3 */\n subTitle?: string\n /** \u90AE\u7BB1\u8F93\u5165\u6846\u5360\u4F4D\u6587\u6848 */\n emailPlaceholder?: string\n /** \u63D0\u4EA4\u6309\u94AE\u6587\u6848 */\n submitBtnText?: string\n /** \u90AE\u7BB1\u8F93\u5165\u6846\u6807\u7B7E\u6587\u6848\uFF0C\u9ED8\u8BA4 \"Email address\" */\n emailLabel?: string\n /** \u90AE\u7BB1\u8F93\u5165\u6846\u4E3A\u7A7A\u65F6\u7684\u9519\u8BEF\u63D0\u793A */\n errorEmpty: string\n /** \u90AE\u7BB1\u683C\u5F0F\u4E0D\u5408\u6CD5\u65F6\u7684\u9519\u8BEF\u63D0\u793A */\n errorInvalidEmail: string\n /** \u5FC5\u9009 checkbox \u672A\u52FE\u9009\u65F6\u7684\u63D0\u793A\u6587\u6848 */\n errorCheckboxRequired: string\n /** \u63A5\u53E3\u8C03\u7528\u5931\u8D25\u65F6\u7684\u9ED8\u8BA4\u9519\u8BEF\u63D0\u793A\uFF0C\u5F53 errorSubmitDetail \u4E2D\u672A\u5339\u914D\u5230\u5BF9\u5E94 code \u65F6\u4F7F\u7528 */\n errorSubmit?: string\n /** \u6309\u9519\u8BEF\u7801\u6620\u5C04\u7684\u9519\u8BEF\u63D0\u793A\uFF0Ccode \u5339\u914D\u5230\u65F6\u663E\u793A\u5BF9\u5E94 message\uFF1B\u672A\u4F20\u5165\u6216\u4E0D\u5339\u914D\u65F6\u56DE\u9000\u5230 errorSubmit */\n errorSubmitDetail?: ErrorDetail[]\n /** \u63D0\u4EA4\u6210\u529F\u540E\u7684\u4E3B\u6807\u9898 */\n successTitle: string\n /** \u63D0\u4EA4\u6210\u529F\u540E\u7684\u526F\u6587\u6848\uFF1B\u4E3A\u7A7A\u65F6\u4E0D\u6E32\u67D3 */\n successDesc?: string\n /** \u63D0\u4EA4\u6210\u529F\u540E\u7684\u6309\u94AE\u6587\u6848\uFF1B\u4E3A\u7A7A\u65F6\u4E0D\u6E32\u67D3\u6309\u94AE */\n successBtnText?: string\n}\n\n/**\n * NotifyMeDialogSemanticName - \u7EC4\u4EF6\u8BED\u4E49\u5316\u533A\u57DF\u540D\n *\n * \u7528\u4E8E classNames prop\uFF0C\u6309\u8BED\u4E49\u533A\u57DF\u81EA\u5B9A\u4E49\u6837\u5F0F\u3002\n * \u672A\u4F20\u5165\u7684 key \u4F7F\u7528\u7EC4\u4EF6\u9ED8\u8BA4\u6837\u5F0F\u3002\n */\nexport type NotifyMeDialogSemanticName =\n | 'root'\n | 'header'\n | 'title'\n | 'subTitle'\n | 'emailInput'\n | 'checkboxes'\n | 'checkboxItem'\n | 'submitBtn'\n | 'errorText'\n | 'successText'\n\n/**\n * SubscribeFormData - \u63D0\u4EA4\u65F6\u66B4\u9732\u7684\u5B8C\u6574\u8868\u5355\u6570\u636E\n */\nexport interface SubscribeFormData {\n /** \u7528\u6237\u8F93\u5165\u7684\u90AE\u7BB1 */\n email: string\n /** \u5404 checkbox \u7684\u72B6\u6001\u5217\u8868\uFF0C\u4EC5\u5305\u542B\u914D\u7F6E\u4E86 name \u7684\u9879 */\n checkedItems: { checkbox_id: string; checked: boolean }[]\n /** \u8BA2\u9605\u5143\u6570\u636E */\n meta: SubscriptionMeta\n}\n\nexport interface NotifyMeDialogProps {\n /** \u662F\u5426\u6253\u5F00\u5F39\u7A97 */\n open: boolean\n /** \u5173\u95ED\u5F39\u7A97\u56DE\u8C03 */\n onOpenChange: (open: boolean) => void\n /** \u6587\u6848\u914D\u7F6E */\n copy: NotifyMeDialogCopy\n /** \u5404\u533A\u57DF\u81EA\u5B9A\u4E49\u6837\u5F0F */\n classNames?: Partial<Record<NotifyMeDialogSemanticName, string>>\n /** \u52FE\u9009\u6846\u5217\u8868\uFF0C\u652F\u6301\u914D\u7F6E\u591A\u4E2A\uFF1B\u6BCF\u9879 label \u6709\u503C\u65F6\u5C55\u793A\uFF0C\u65E0\u503C\u65F6\u8DF3\u8FC7 */\n checkboxes?: CheckboxConfig[]\n /** \u8BA2\u9605\u5143\u6570\u636E\uFF0C\u533A\u5206 OOS / \u6D3B\u52A8\u4E24\u79CD\u6A21\u5F0F */\n subscriptionMeta: SubscriptionMeta\n /** \u63D0\u4EA4\u56DE\u8C03\uFF0C\u63A5\u6536\u5B8C\u6574\u8868\u5355\u6570\u636E\uFF0C\u4E1A\u52A1\u5C42\u51B3\u5B9A\u8C03\u54EA\u4E2A\u63A5\u53E3 */\n onSubmit: (data: SubscribeFormData) => Promise<void>\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var he=Object.create;var T=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var we=Object.getPrototypeOf,be=Object.prototype.hasOwnProperty;var ye=(t,n)=>{for(var i in n)T(t,i,{get:n[i],enumerable:!0})},A=(t,n,i,h)=>{if(n&&typeof n=="object"||typeof n=="function")for(let c of _e(n))!be.call(t,c)&&c!==i&&T(t,c,{get:()=>n[c],enumerable:!(h=ge(n,c))||h.enumerable});return t};var R=(t,n,i)=>(i=t!=null?he(we(t)):{},A(n||!t||!t.__esModule?T(i,"default",{value:t,enumerable:!0}):i,t)),Te=t=>A(T({},"__esModule",{value:!0}),t);var Re={};ye(Re,{default:()=>Ie});module.exports=Te(Re);var o=require("react/jsx-runtime"),s=R(require("react")),$=require("../../helpers/utils.js"),d=require("../../components/tabs.js"),O=R(require("../Title/index.js")),K=R(require("../SwiperBox/index.js")),Q=require("../../shared/Styles.js"),D=require("../../shared/track.js"),W=require("react-responsive"),Z=require("../../hooks/useRollout.js"),v=require("./shelfDisplayItem.js");const ve="image",Se="product_shelf",ke=t=>t==null?"default":String(t).replace(/[^a-zA-Z0-9_-]/g,"")||"default",q=s.default.forwardRef(({key:t,data:n,event:i,buildData:h,breakpoints:c,className:j="",recommendedData:p,target:F="_self",metafields:G,isDisplayGudgments:x=!1,isDisplayBackImage:J=!1,renderOriginalPrice:U,renderPriceLabel:X,renderPrice:Y,onAddCart:ee,onBuyNow:te,onLearnMore:se,formatPrice:ne,...ae},re)=>{const{productsTab:m=[],productsCard:M=[],title:P,isShowTab:w=!0,tabShape:ie="square",isShowTag:oe=!1,isShowOriginalPrice:le=!0,isShowRecommendedCard:C=!1,...ce}=n,[b,H]=(0,s.useState)(""),[f,S]=(0,s.useState)([]),L=(0,s.useRef)(!1),k=(0,s.useRef)(!1),V=(0,s.useRef)(null),me=(0,s.useId)(),fe=(0,W.useMediaQuery)({query:"(max-width: 768px)"}),[pe,B]=(0,Z.useRollout)({threshold:0}),y=f?.length<=1&&x,g=!fe&&f?.length<=2&&x,I=e=>{switch(e){case 1440:return g?f?.length:4;case 1024:return g?f?.length:3;default:return g?f?.length:2.3}},E=()=>{(0,D.gaTrack)({event:"ga4Event",event_name:"view_item_list",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:p?.map((e,r)=>{const l=e?.variants?.find(a=>a?.sku===e?.sku)||e?.variants?.[0];return{item_id:e?.sku||l?.sku,item_name:e?.name,item_variant:l?.name,price:l?.price,index:r+1}})}})},_=(e,r)=>{if(r){const u=p?.map?.(l=>({...l,isShowRecommended:!0}));S(u?.length?u||[]:[])}else if(Array.isArray(e)){const l=e?.map?.(a=>{const z=h?.products?.find(de=>de?.handle===a?.handle);if(z)return{sku:a.sku,isShowRecommended:!1,custom_name:a.custom_name,custom_description:a.custom_description,custom_image:a.custom_image,custom_theme:a.custom_theme,custom_primary_link:a?.custom_primary_link||"",custom_secondary_link:a?.custom_secondary_link||"",custom_bg_image:a?.custom_bg_image||"",...z}})?.filter(a=>a);S(l?.length?l||[]:[])}else S([])};(0,s.useImperativeHandle)(re,()=>V.current),(0,s.useEffect)(()=>{B&&p?.length&&!L.current&&(L.current=!0,E())},[B,p]),(0,s.useEffect)(()=>{if(!k.current){if(!k.current&&p?.length&&(k.current=!0),w){const e=m?.find(r=>r?.tab===b)||m?.[0];H(e?.tab||""),_(e?.data||[],e?.isShowRecommendedTab);return}_(M,C)}},[p]),(0,s.useEffect)(()=>{if(w){const e=m?.find(r=>r?.tab===b)||m?.[0];_(e?.data||[],e?.isShowRecommendedTab);return}_(M,C)},[h]);const ue=ke(b),N=`${me}-${ue}`;return(0,o.jsxs)("div",{ref:V,...ae,className:(0,$.cn)("shelf-display-wrap text-info-primary w-full",j,{"aiui-dark":n?.theme==="dark"}),children:[P&&(0,o.jsx)(O.default,{data:{title:P}}),w&&m?.length>0&&(0,o.jsx)(d.Tabs,{value:b,onValueChange:e=>{const r=m?.find(u=>u?.tab===e);if(r){if(H(e),_(r.data||[],r.isShowRecommendedTab),!r.isShowRecommendedTab){(0,D.gaTrack)({event:"ga4Event",event_name:"component_click",event_parameters:{page_group:"Home Page",component_type:ve,component_name:Se,component_title:n?.title,component_position:1,navigation:e}});return}E()}},shape:ie==="rounded"?"rounded":"square",children:(0,o.jsx)(d.TabsList,{children:m.map(e=>(0,o.jsx)(d.TabsTrigger,{value:e?.tab,children:e?.tab||""},e?.id||e?.tab))})}),(0,o.jsx)("div",{ref:pe,className:"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]",children:(0,o.jsx)(K.default,{data:{list:f,configuration:{...ce,event:i,isShowTag:oe,isShowOriginalPrice:le,target:F,metafields:G,itemLength:f?.length,isDisplayBackImage:J,renderOriginalPrice:U,renderPriceLabel:X,renderPrice:Y,onAddCart:ee,onBuyNow:te,onLearnMore:se,formatPrice:ne}},id:N,className:`${w?"mt-6":""} shelf-display-swiper-box !overflow-visible`,itemClassName:g?"flex-1":"",Slide:g?v.ShelfDisplayHorizontalItem:v.ShelfDisplayWrapItem,breakpoints:c||{0:{spaceBetween:12,freeMode:!1,slidesPerView:1},374:{spaceBetween:12,freeMode:!1,slidesPerView:y?1:1.2},768:{spaceBetween:y?0:16,freeMode:!1,slidesPerView:I()},1024:{spaceBetween:y?0:16,freeMode:!1,slidesPerView:I(1024)},1440:{spaceBetween:y?0:16,freeMode:!1,slidesPerView:I(1440)}}},N)})]})});q.displayName="ShelfDisplay";var Ie=(0,Q.withLayout)(q);
1
+ "use strict";"use client";var fe=Object.create;var w=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var he=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,ge=Object.prototype.hasOwnProperty;var be=(s,o)=>{for(var a in o)w(s,a,{get:o[a],enumerable:!0})},$=(s,o,a,m)=>{if(o&&typeof o=="object"||typeof o=="function")for(let p of he(o))!ge.call(s,p)&&p!==a&&w(s,p,{get:()=>o[p],enumerable:!(m=de(o,p))||m.enumerable});return s};var T=(s,o,a)=>(a=s!=null?fe(_e(s)):{},$(o||!s||!s.__esModule?w(a,"default",{value:s,enumerable:!0}):a,s)),we=s=>$(w({},"__esModule",{value:!0}),s);var Se={};be(Se,{default:()=>ke});module.exports=we(Se);var i=require("react/jsx-runtime"),t=T(require("react")),A=require("../../helpers/utils.js"),c=require("../../components/tabs.js"),Q=T(require("../Title/index.js")),W=T(require("../SwiperBox/index.js")),Z=require("../../shared/Styles.js"),D=require("../../shared/track.js"),j=require("react-responsive"),F=require("../../hooks/useRollout.js"),y=require("./shelfDisplayItem.js");const ye="image",ve="product_shelf",I=s=>s==null?"default":String(s).replace(/[^a-zA-Z0-9_-]/g,"")||"default";function x(s){return s.trim().replace(/\s+/g,"-")}const O=t.default.forwardRef(({key:s,data:o,event:a,buildData:m,breakpoints:p,className:J="",recommendedData:u,target:K="_self",metafields:U,isDisplayGudgments:h=!1,isDisplayBackImage:X=!1,renderOriginalPrice:Y,renderPriceLabel:G,renderPrice:ee,onAddCart:ne,onBuyNow:se,onLearnMore:te,formatPrice:oe,...re},ie)=>{const{productsTab:f=[],productsCard:R=[],title:M,isShowTab:_=!0,tabShape:ae="square",isShowTag:le=!1,isShowOriginalPrice:ce=!0,isShowRecommendedCard:B=!1,...me}=o,[g,P]=(0,t.useState)(""),V=(0,t.useRef)(!1),H=(0,t.useRef)(null),pe=(0,t.useId)(),v=(0,j.useMediaQuery)({query:"(max-width: 768px)"}),[L,C]=(0,F.useRollout)({threshold:0}),ue=I(pe),E=(0,t.useCallback)(e=>e.isShowRecommendedTab?u?.map(n=>({...n,isShowRecommended:!0}))||[]:e.data?.map(n=>{const r=m?.products?.find(l=>l?.handle===n?.handle);if(r)return{sku:n.sku,isShowRecommended:!1,custom_name:n.custom_name,custom_description:n.custom_description,custom_image:n.custom_image,custom_theme:n.custom_theme,custom_primary_link:n?.custom_primary_link||"",custom_secondary_link:n?.custom_secondary_link||"",custom_bg_image:n?.custom_bg_image||"",...r}}).filter(Boolean)||[],[m,u]),b=(0,t.useMemo)(()=>f.map(e=>({...e,resolvedData:E(e)})),[f,E]),k=(0,t.useMemo)(()=>B?u?.map(e=>({...e,isShowRecommended:!0}))||[]:R?.map(e=>{const n=m?.products?.find(r=>r?.handle===e?.handle);if(n)return{sku:e.sku,isShowRecommended:!1,custom_name:e.custom_name,custom_description:e.custom_description,custom_image:e.custom_image,custom_theme:e.custom_theme,custom_primary_link:e?.custom_primary_link||"",custom_secondary_link:e?.custom_secondary_link||"",custom_bg_image:e?.custom_bg_image||"",...n}}).filter(Boolean)||[],[R,m,u,B]),N=(0,t.useMemo)(()=>_?b.find(n=>x(n?.tab)===x(g))?.resolvedData||b[0]?.resolvedData||[]:k,[_,b,g,k]),Te=N?.length<=1&&h,xe=!v&&N?.length<=2&&h,S=(e,n)=>{const r=!v&&e?.length<=2&&h;switch(n){case 1440:return r?e?.length:4;case 1024:return r?e?.length:3;default:return r?e?.length:2.3}},z=()=>{(0,D.gaTrack)({event:"ga4Event",event_name:"view_item_list",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:u?.map((e,n)=>{const l=e?.variants?.find(d=>d?.sku===e?.sku)||e?.variants?.[0];return{item_id:e?.sku||l?.sku,item_name:e?.name,item_variant:l?.name,price:l?.price,index:n+1}})}})};(0,t.useImperativeHandle)(ie,()=>H.current),(0,t.useEffect)(()=>{C&&u?.length&&!V.current&&(V.current=!0,z())},[C,u]),(0,t.useEffect)(()=>{_&&f?.length>0&&!g&&P(f[0]?.tab||"")},[]);const q=(e,n)=>{const r=`${ue}-${I(n)}`,l=!v&&e?.length<=2&&h,d=e?.length<=1&&h;return(0,i.jsx)(W.default,{data:{list:e,configuration:{...me,event:a,isShowTag:le,isShowOriginalPrice:ce,target:K,metafields:U,itemLength:e?.length,isDisplayBackImage:X,renderOriginalPrice:Y,renderPriceLabel:G,renderPrice:ee,onAddCart:ne,onBuyNow:se,onLearnMore:te,formatPrice:oe}},id:r,className:`${_?"mt-6":""} shelf-display-swiper-box !overflow-visible`,itemClassName:l?"flex-1":"",Slide:l?y.ShelfDisplayHorizontalItem:y.ShelfDisplayWrapItem,breakpoints:p||{0:{spaceBetween:12,freeMode:!1,slidesPerView:1},374:{spaceBetween:12,freeMode:!1,slidesPerView:d?1:1.2},768:{spaceBetween:d?0:16,freeMode:!1,slidesPerView:S(e)},1024:{spaceBetween:d?0:16,freeMode:!1,slidesPerView:S(e,1024)},1440:{spaceBetween:d?0:16,freeMode:!1,slidesPerView:S(e,1440)}}},r)};return(0,i.jsxs)("div",{ref:H,...re,className:(0,A.cn)("shelf-display-wrap text-info-primary w-full",J,{"aiui-dark":o?.theme==="dark"}),children:[M&&(0,i.jsx)(Q.default,{data:{title:M}}),_&&f?.length>0?(0,i.jsxs)(c.Tabs,{value:g,onValueChange:e=>{const n=f?.find(r=>x(r?.tab)===e);if(n){if(P(e),!n.isShowRecommendedTab){(0,D.gaTrack)({event:"ga4Event",event_name:"component_click",event_parameters:{page_group:"Home Page",component_type:ye,component_name:ve,component_title:o?.title,component_position:1,navigation:e}});return}z()}},shape:ae==="rounded"?"rounded":"square",children:[(0,i.jsx)(c.TabsList,{children:f.map(e=>(0,i.jsx)(c.TabsTrigger,{value:e?.tab,children:e?.tab||""},e?.id||e?.tab))}),b.map(e=>(0,i.jsx)(c.TabsContent,{value:e?.tab,children:(0,i.jsx)("div",{ref:L,className:"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]",children:q(e.resolvedData||[],e?.tab||"")})},e?.id||e?.tab))]}):(0,i.jsx)("div",{ref:L,className:"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]",children:q(k,"card")})]})});O.displayName="ShelfDisplay";var ke=(0,Z.withLayout)(O);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/ShelfDisplay/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useState, useEffect, useRef, useImperativeHandle, useId } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport { Tabs, TabsList, TabsTrigger } from '../../components/tabs.js'\nimport Title from '../Title/index.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useRollout } from '../../hooks/useRollout.js'\nimport { ShelfDisplayWrapItem, ShelfDisplayHorizontalItem } from './shelfDisplayItem.js'\nimport type { ShelfDisplayProps, ShelfDisplayItem } from './shelfDisplay.js'\n\nconst componentType = 'image'\nconst componentName = 'product_shelf'\n\nconst sanitizeCssSelector = (value?: string | number) => {\n if (value === undefined || value === null) return 'default'\n const sanitized = String(value).replace(/[^a-zA-Z0-9_-]/g, '')\n return sanitized || 'default'\n}\n\nconst ShelfDisplay = React.forwardRef<HTMLDivElement, ShelfDisplayProps>(\n (\n {\n key,\n data,\n event,\n buildData,\n breakpoints,\n className = '',\n recommendedData,\n target = '_self',\n metafields,\n isDisplayGudgments = false,\n isDisplayBackImage = false,\n renderOriginalPrice,\n renderPriceLabel,\n renderPrice,\n onAddCart,\n onBuyNow,\n onLearnMore,\n formatPrice,\n ...rest\n },\n ref\n ) => {\n const {\n productsTab = [],\n productsCard = [],\n title,\n isShowTab = true,\n tabShape = 'square',\n isShowTag = false,\n isShowOriginalPrice = true,\n isShowRecommendedCard = false,\n ...other\n } = data\n\n const [tabId, setTabId] = useState<string>('')\n const [currentItems, setCurrentItems] = useState<ShelfDisplayItem[]>([])\n\n const isView = useRef<boolean>(false)\n const isRecommend = useRef<boolean>(false)\n const innerRef = useRef<HTMLDivElement>(null)\n const instanceId = useId()\n\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n const [viewRef, inView] = useRollout<HTMLDivElement>({ threshold: 0 })\n\n const isOnce = currentItems?.length <= 1 && isDisplayGudgments\n const isShowGudgments = !isMobile && currentItems?.length <= 2 && isDisplayGudgments\n\n const showItemLength = (size?: number) => {\n switch (size) {\n case 1440:\n return isShowGudgments ? currentItems?.length : 4\n case 1024:\n return isShowGudgments ? currentItems?.length : 3\n default:\n return isShowGudgments ? currentItems?.length : 2.3\n }\n }\n\n const gackViewEvent = () => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'view_item_list',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: recommendedData?.map((item, index) => {\n const findData = item?.variants?.find((v: any) => v?.sku === item?.sku)\n const variant = findData || item?.variants?.[0]\n return {\n item_id: item?.sku || variant?.sku,\n item_name: item?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: index + 1,\n }\n }),\n },\n })\n }\n\n const handleCurrentTab = (currentData: ShelfDisplayItem[], flag: boolean) => {\n if (flag) {\n const newCurrentData = recommendedData?.map?.(item => {\n return {\n ...item,\n isShowRecommended: true,\n }\n })\n setCurrentItems(newCurrentData?.length ? newCurrentData || [] : [])\n } else {\n const isArray = Array.isArray(currentData)\n if (isArray) {\n const newCurrentData = currentData\n ?.map?.(item => {\n const findData = buildData?.products?.find(params => params?.handle === item?.handle)\n if (findData) {\n return {\n sku: item.sku,\n isShowRecommended: false,\n custom_name: item.custom_name,\n custom_description: item.custom_description,\n custom_image: item.custom_image,\n custom_theme: item.custom_theme,\n custom_primary_link: item?.custom_primary_link || '',\n custom_secondary_link: item?.custom_secondary_link || '',\n custom_bg_image: item?.custom_bg_image || '',\n ...findData,\n }\n }\n })\n ?.filter(item => item)\n setCurrentItems(newCurrentData?.length ? newCurrentData || [] : [])\n } else {\n setCurrentItems([])\n }\n }\n }\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n useEffect(() => {\n if (inView && recommendedData?.length && !isView.current) {\n isView.current = true\n gackViewEvent()\n }\n }, [inView, recommendedData])\n\n // \u7B97\u6CD5\u6570\u636E\u4F1A\u7A0D\u5FAE\u5EF6\u8FDF\uFF0C\u6240\u4EE5\u9700\u76D1\u542CrecommendedData\uFF0C\u4E3A\u4E86\u9632\u6B62\u5728\u6709\u7B97\u6CD5\u6570\u636E\u4E14\u5BF9\u9ED8\u8BA4\u6E32\u67D3\u7B2C\u4E00\u4E2A\u540E\u53CD\u590D\u89E6\u53D1\uFF0C\u7528isRecommend\u5173\u95ED\n useEffect(() => {\n if (isRecommend.current) return\n if (!isRecommend.current && recommendedData?.length) {\n isRecommend.current = true\n }\n if (isShowTab) {\n const currentTab = productsTab?.find(item => item?.tab === tabId) || productsTab?.[0]\n setTabId(currentTab?.tab || '')\n handleCurrentTab(currentTab?.data || [], currentTab?.isShowRecommendedTab)\n return\n }\n handleCurrentTab(productsCard, isShowRecommendedCard)\n }, [recommendedData])\n\n useEffect(() => {\n if (isShowTab) {\n const currentTab = productsTab?.find(item => item?.tab === tabId) || productsTab?.[0]\n handleCurrentTab(currentTab?.data || [], currentTab?.isShowRecommendedTab)\n return\n }\n handleCurrentTab(productsCard, isShowRecommendedCard)\n // buildData \u66F4\u65B0\u65F6\u9700\u8981\u91CD\u65B0\u8BA1\u7B97\u5F53\u524D\u5217\u8868\n }, [buildData])\n\n const safeTabKey = sanitizeCssSelector(tabId)\n const swiperInstanceId = `${instanceId}-${safeTabKey}`\n\n return (\n <div\n ref={innerRef}\n {...rest}\n className={cn('shelf-display-wrap text-info-primary w-full', className, {\n 'aiui-dark': data?.theme === 'dark',\n })}\n >\n {title && <Title data={{ title: title }} />}\n {isShowTab && productsTab?.length > 0 && (\n <Tabs\n value={tabId}\n onValueChange={value => {\n const currentTab = productsTab?.find(item => item?.tab === value)\n if (currentTab) {\n setTabId(value)\n handleCurrentTab(currentTab.data || [], currentTab.isShowRecommendedTab)\n if (!currentTab.isShowRecommendedTab) {\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_click',\n event_parameters: {\n page_group: 'Home Page',\n component_type: componentType,\n component_name: componentName,\n component_title: data?.title,\n component_position: 1,\n navigation: value,\n },\n })\n return\n }\n gackViewEvent()\n }\n }}\n shape={tabShape === 'rounded' ? 'rounded' : 'square'}\n >\n <TabsList>\n {productsTab.map(item => (\n <TabsTrigger key={item?.id || item?.tab} value={item?.tab}>\n {item?.tab || ''}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n )}\n <div\n ref={viewRef as any}\n className=\"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]\"\n >\n <SwiperBox\n key={swiperInstanceId}\n data={{\n list: currentItems,\n configuration: {\n ...other,\n event: event,\n isShowTag,\n isShowOriginalPrice,\n target: target,\n metafields: metafields,\n itemLength: currentItems?.length,\n isDisplayBackImage: isDisplayBackImage,\n renderOriginalPrice,\n renderPriceLabel,\n renderPrice,\n onAddCart,\n onBuyNow,\n onLearnMore,\n formatPrice,\n },\n }}\n id={swiperInstanceId}\n className={`${isShowTab ? 'mt-6' : ''} shelf-display-swiper-box !overflow-visible`}\n itemClassName={isShowGudgments ? 'flex-1' : ''}\n Slide={isShowGudgments ? ShelfDisplayHorizontalItem : ShelfDisplayWrapItem}\n breakpoints={\n breakpoints || {\n 0: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: isOnce ? 1 : 1.2,\n },\n 768: {\n spaceBetween: isOnce ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(),\n },\n 1024: {\n spaceBetween: isOnce ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(1024),\n },\n 1440: {\n spaceBetween: isOnce ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(1440),\n },\n }\n }\n />\n </div>\n </div>\n )\n }\n)\n\nShelfDisplay.displayName = 'ShelfDisplay'\nexport default withLayout(ShelfDisplay)\n"],
5
- "mappings": "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",
6
- "names": ["ShelfDisplay_exports", "__export", "ShelfDisplay_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_tabs", "import_Title", "import_SwiperBox", "import_Styles", "import_track", "import_react_responsive", "import_useRollout", "import_shelfDisplayItem", "componentType", "componentName", "sanitizeCssSelector", "value", "ShelfDisplay", "React", "key", "data", "event", "buildData", "breakpoints", "className", "recommendedData", "target", "metafields", "isDisplayGudgments", "isDisplayBackImage", "renderOriginalPrice", "renderPriceLabel", "renderPrice", "onAddCart", "onBuyNow", "onLearnMore", "formatPrice", "rest", "ref", "productsTab", "productsCard", "title", "isShowTab", "tabShape", "isShowTag", "isShowOriginalPrice", "isShowRecommendedCard", "other", "tabId", "setTabId", "currentItems", "setCurrentItems", "isView", "isRecommend", "innerRef", "instanceId", "isMobile", "viewRef", "inView", "isOnce", "isShowGudgments", "showItemLength", "size", "gackViewEvent", "item", "index", "variant", "v", "handleCurrentTab", "currentData", "flag", "newCurrentData", "findData", "params", "currentTab", "safeTabKey", "swiperInstanceId", "Title", "SwiperBox"]
4
+ "sourcesContent": ["'use client'\nimport React, { useState, useEffect, useRef, useImperativeHandle, useId, useMemo, useCallback } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../../components/tabs.js'\nimport Title from '../Title/index.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useRollout } from '../../hooks/useRollout.js'\nimport { ShelfDisplayWrapItem, ShelfDisplayHorizontalItem } from './shelfDisplayItem.js'\nimport type { ShelfDisplayProps, ShelfDisplayItem } from './shelfDisplay.js'\n\nconst componentType = 'image'\nconst componentName = 'product_shelf'\n\nconst sanitizeCssSelector = (value?: string | number) => {\n if (value === undefined || value === null) return 'default'\n const sanitized = String(value).replace(/[^a-zA-Z0-9_-]/g, '')\n return sanitized || 'default'\n}\n\nfunction sanitizeTabValue(value: string): string {\n return value.trim().replace(/\\s+/g, '-')\n}\n\nconst ShelfDisplay = React.forwardRef<HTMLDivElement, ShelfDisplayProps>(\n (\n {\n key,\n data,\n event,\n buildData,\n breakpoints,\n className = '',\n recommendedData,\n target = '_self',\n metafields,\n isDisplayGudgments = false,\n isDisplayBackImage = false,\n renderOriginalPrice,\n renderPriceLabel,\n renderPrice,\n onAddCart,\n onBuyNow,\n onLearnMore,\n formatPrice,\n ...rest\n },\n ref\n ) => {\n const {\n productsTab = [],\n productsCard = [],\n title,\n isShowTab = true,\n tabShape = 'square',\n isShowTag = false,\n isShowOriginalPrice = true,\n isShowRecommendedCard = false,\n ...other\n } = data\n\n const [tabId, setTabId] = useState<string>('')\n\n const isView = useRef<boolean>(false)\n const innerRef = useRef<HTMLDivElement>(null)\n const instanceId = useId()\n\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n const [viewRef, inView] = useRollout<HTMLDivElement>({ threshold: 0 })\n\n const safeInstanceId = sanitizeCssSelector(instanceId)\n\n const resolveTabData = useCallback(\n (tabItem: any) => {\n if (tabItem.isShowRecommendedTab) {\n return recommendedData?.map((item: any) => ({ ...item, isShowRecommended: true })) || []\n }\n return (\n tabItem.data\n ?.map((dataItem: ShelfDisplayItem) => {\n const findData = buildData?.products?.find((params: any) => params?.handle === dataItem?.handle)\n if (findData) {\n return {\n sku: dataItem.sku,\n isShowRecommended: false,\n custom_name: dataItem.custom_name,\n custom_description: dataItem.custom_description,\n custom_image: dataItem.custom_image,\n custom_theme: dataItem.custom_theme,\n custom_primary_link: dataItem?.custom_primary_link || '',\n custom_secondary_link: dataItem?.custom_secondary_link || '',\n custom_bg_image: dataItem?.custom_bg_image || '',\n ...findData,\n }\n }\n })\n .filter(Boolean) || []\n )\n },\n [buildData, recommendedData]\n )\n\n const resolvedTabs = useMemo(() => {\n return productsTab.map(item => ({ ...item, resolvedData: resolveTabData(item) }))\n }, [productsTab, resolveTabData])\n\n const cardItems = useMemo(() => {\n if (isShowRecommendedCard) {\n return recommendedData?.map((item: any) => ({ ...item, isShowRecommended: true })) || []\n }\n return (\n productsCard\n ?.map((dataItem: ShelfDisplayItem) => {\n const findData = buildData?.products?.find((params: any) => params?.handle === dataItem?.handle)\n if (findData) {\n return {\n sku: dataItem.sku,\n isShowRecommended: false,\n custom_name: dataItem.custom_name,\n custom_description: dataItem.custom_description,\n custom_image: dataItem.custom_image,\n custom_theme: dataItem.custom_theme,\n custom_primary_link: dataItem?.custom_primary_link || '',\n custom_secondary_link: dataItem?.custom_secondary_link || '',\n custom_bg_image: dataItem?.custom_bg_image || '',\n ...findData,\n }\n }\n })\n .filter(Boolean) || []\n )\n }, [productsCard, buildData, recommendedData, isShowRecommendedCard])\n\n const currentItems = useMemo(() => {\n if (!isShowTab) return cardItems\n const tab = resolvedTabs.find(item => sanitizeTabValue(item?.tab) === sanitizeTabValue(tabId))\n return tab?.resolvedData || resolvedTabs[0]?.resolvedData || []\n }, [isShowTab, resolvedTabs, tabId, cardItems])\n\n const isOnce = currentItems?.length <= 1 && isDisplayGudgments\n const isShowGudgments = !isMobile && currentItems?.length <= 2 && isDisplayGudgments\n\n const showItemLength = (items: ShelfDisplayItem[], size?: number) => {\n const showGudgments = !isMobile && items?.length <= 2 && isDisplayGudgments\n switch (size) {\n case 1440:\n return showGudgments ? items?.length : 4\n case 1024:\n return showGudgments ? items?.length : 3\n default:\n return showGudgments ? items?.length : 2.3\n }\n }\n\n const gackViewEvent = () => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'view_item_list',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: recommendedData?.map((item, index) => {\n const findData = item?.variants?.find((v: any) => v?.sku === item?.sku)\n const variant = findData || item?.variants?.[0]\n return {\n item_id: item?.sku || variant?.sku,\n item_name: item?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: index + 1,\n }\n }),\n },\n })\n }\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n useEffect(() => {\n if (inView && recommendedData?.length && !isView.current) {\n isView.current = true\n gackViewEvent()\n }\n }, [inView, recommendedData])\n\n useEffect(() => {\n if (isShowTab && productsTab?.length > 0 && !tabId) {\n setTabId(productsTab[0]?.tab || '')\n }\n }, [])\n\n const renderSwiperBox = (items: ShelfDisplayItem[], tabKey: string) => {\n const swipperId = `${safeInstanceId}-${sanitizeCssSelector(tabKey)}`\n const showGudgments = !isMobile && items?.length <= 2 && isDisplayGudgments\n const once = items?.length <= 1 && isDisplayGudgments\n\n return (\n <SwiperBox\n key={swipperId}\n data={{\n list: items,\n configuration: {\n ...other,\n event: event,\n isShowTag,\n isShowOriginalPrice,\n target: target,\n metafields: metafields,\n itemLength: items?.length,\n isDisplayBackImage: isDisplayBackImage,\n renderOriginalPrice,\n renderPriceLabel,\n renderPrice,\n onAddCart,\n onBuyNow,\n onLearnMore,\n formatPrice,\n },\n }}\n id={swipperId}\n className={`${isShowTab ? 'mt-6' : ''} shelf-display-swiper-box !overflow-visible`}\n itemClassName={showGudgments ? 'flex-1' : ''}\n Slide={showGudgments ? ShelfDisplayHorizontalItem : ShelfDisplayWrapItem}\n breakpoints={\n breakpoints || {\n 0: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: once ? 1 : 1.2,\n },\n 768: {\n spaceBetween: once ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(items),\n },\n 1024: {\n spaceBetween: once ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(items, 1024),\n },\n 1440: {\n spaceBetween: once ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(items, 1440),\n },\n }\n }\n />\n )\n }\n\n return (\n <div\n ref={innerRef}\n {...rest}\n className={cn('shelf-display-wrap text-info-primary w-full', className, {\n 'aiui-dark': data?.theme === 'dark',\n })}\n >\n {title && <Title data={{ title: title }} />}\n {isShowTab && productsTab?.length > 0 ? (\n <Tabs\n value={tabId}\n onValueChange={value => {\n const currentTab = productsTab?.find(item => sanitizeTabValue(item?.tab) === value)\n if (currentTab) {\n setTabId(value)\n if (!currentTab.isShowRecommendedTab) {\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_click',\n event_parameters: {\n page_group: 'Home Page',\n component_type: componentType,\n component_name: componentName,\n component_title: data?.title,\n component_position: 1,\n navigation: value,\n },\n })\n return\n }\n gackViewEvent()\n }\n }}\n shape={tabShape === 'rounded' ? 'rounded' : 'square'}\n >\n <TabsList>\n {productsTab.map(item => (\n <TabsTrigger key={item?.id || item?.tab} value={item?.tab}>\n {item?.tab || ''}\n </TabsTrigger>\n ))}\n </TabsList>\n {resolvedTabs.map(item => (\n <TabsContent key={item?.id || item?.tab} value={item?.tab}>\n <div\n ref={viewRef as any}\n className=\"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]\"\n >\n {renderSwiperBox(item.resolvedData || [], item?.tab || '')}\n </div>\n </TabsContent>\n ))}\n </Tabs>\n ) : (\n <div\n ref={viewRef as any}\n className=\"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]\"\n >\n {renderSwiperBox(cardItems, 'card')}\n </div>\n )}\n </div>\n )\n }\n)\n\nShelfDisplay.displayName = 'ShelfDisplay'\nexport default withLayout(ShelfDisplay)\n"],
5
+ "mappings": "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",
6
+ "names": ["ShelfDisplay_exports", "__export", "ShelfDisplay_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_tabs", "import_Title", "import_SwiperBox", "import_Styles", "import_track", "import_react_responsive", "import_useRollout", "import_shelfDisplayItem", "componentType", "componentName", "sanitizeCssSelector", "value", "sanitizeTabValue", "ShelfDisplay", "React", "key", "data", "event", "buildData", "breakpoints", "className", "recommendedData", "target", "metafields", "isDisplayGudgments", "isDisplayBackImage", "renderOriginalPrice", "renderPriceLabel", "renderPrice", "onAddCart", "onBuyNow", "onLearnMore", "formatPrice", "rest", "ref", "productsTab", "productsCard", "title", "isShowTab", "tabShape", "isShowTag", "isShowOriginalPrice", "isShowRecommendedCard", "other", "tabId", "setTabId", "isView", "innerRef", "instanceId", "isMobile", "viewRef", "inView", "safeInstanceId", "resolveTabData", "tabItem", "item", "dataItem", "findData", "params", "resolvedTabs", "cardItems", "currentItems", "isOnce", "isShowGudgments", "showItemLength", "items", "size", "showGudgments", "gackViewEvent", "index", "variant", "v", "renderSwiperBox", "tabKey", "swipperId", "once", "SwiperBox", "Title", "currentTab"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var Be=Object.create;var ie=Object.defineProperty;var Ce=Object.getOwnPropertyDescriptor;var Pe=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,$e=Object.prototype.hasOwnProperty;var De=(e,t)=>{for(var u in t)ie(e,u,{get:t[u],enumerable:!0})},Te=(e,t,u,v)=>{if(t&&typeof t=="object"||typeof t=="function")for(let y of Pe(t))!$e.call(e,y)&&y!==u&&ie(e,y,{get:()=>t[y],enumerable:!(v=Ce(t,y))||v.enumerable});return e};var xe=(e,t,u)=>(u=e!=null?Be(Le(e)):{},Te(t||!e||!e.__esModule?ie(u,"default",{value:e,enumerable:!0}):u,e)),Ie=e=>Te(ie({},"__esModule",{value:!0}),e);var Me={};De(Me,{ShelfDisplayHorizontalItem:()=>Fe,ShelfDisplayWrapItem:()=>Ae,getProductImage:()=>Ne});module.exports=Ie(Me);var s=require("react/jsx-runtime"),ge=require("../AiuiProvider/index.js"),ve=require("./shelfDisplay.js"),ae=xe(require("../../components/picture.js")),ce=xe(require("../../components/badge.js")),g=require("../../helpers/utils.js"),be=require("../../components/text.js"),K=xe(require("../../components/button.js")),ke=require("../../shared/track.js"),we=require("../../shared/trackUrlRef.js"),_e=require("../../components/heading.js"),Se=require("../../hooks/useExposure.js"),m=require("react");const oe="image",ne="product_shelf",le=999999999e-2,Ne=e=>{const t=e?.sku,u=e?.variants,v=u?.find(L=>L?.sku===t),y=v?.image?.url||u?.[0]?.image?.url||"",W=v?.image?.altText||u?.[0]?.image?.altText||e?.custom_name||e?.title||"";return{imageUrl:y,altText:W}},Ae=({data:e,configuration:t})=>{const{isDisplayBackImage:u=!1,itemShape:v,metafields:y,isTopTag:W=!1,isShowTag:L,isShowOriginalPrice:Q,isShowShortTitle:me=!1,formatPrice:$,renderOriginalPrice:U,renderPriceLabel:X,renderPrice:b}=t||{},{locale:T="es",copyWriting:pe,currencyDisplay:Y}=(0,ge.useAiuiContext)(),{discounts:Z,discountsCopy:z}=y||{},H=(0,m.useRef)(null),[E,ee]=(0,m.useState)([]),[R,de]=(0,m.useState)(""),[te,c]=(0,m.useState)(!1),[V,se]=(0,m.useState)(!1),D=(r,i,o,l)=>{const{primaryFun:d,onAddCart:f,onBuyNow:_,onLearnMore:J,event:he}=t||{};if(d){if(d==="AddCart"&&f)return f(r,i+1,o,l);if(d==="BuyNow"&&_)return _(r,i+1,o,l);if(d==="LearnMore"&&J)return J(r,i+1,o,l)}he?.primaryButton?.(r,i+1,o,l)},ue=(r,i,o,l)=>{const{secondaryFun:d,onAddCart:f,onBuyNow:_,onLearnMore:J,event:he}=t||{};if(d){if(d==="AddCart"&&f)return f(r,i+1,o,l);if(d==="BuyNow"&&_)return _(r,i+1,o,l);if(d==="LearnMore"&&J)return J(r,i+1,o,l)}he?.secondaryButton?.(r,i+1,o,l)},p=(0,m.useMemo)(()=>{const r=e?.variants||[];if(r.length)return e?.sku?r?.find?.(i=>i?.sku===e?.sku)||r[0]:r?.[0]},[e?.sku,e?.variants]),h=p?.id?.split?.("/")||[],q=h?.[h?.length-1],B=!p?.availableForSale||p?.price?.amount===le||p?.price===le,k=p?.coupons?.[0],C=!!(Q&&k),P=e?.price?.currencyCode||"USD",S=(0,m.useMemo)(()=>(0,ve.formatVariantPrice)({locale:T,amount:C?k?.variant_price4wscode:p?.price,baseAmount:C?p?.price:0,currencyCode:P,currencyDisplay:Y,customFormatPrice:$}),[P,T,C,k?.variant_price4wscode,p,$]),{price:w,basePrice:I,discount:N,discountAmount:x}=S,{imageUrl:A,altText:F}=Ne(e),M=e?.custom_name||e?.title,G=me&&p?.metafields?.infos?.page_short_title||M,j=e?.custom_description||e?.description,fe=()=>{if(k?.value_type==="fixed_amount"){const r=x||"",i=r.match(/^(.*?)(\d[\d.,]*)(.*)$/);if(i){const[,o,l,d]=i;let f=l;return l.endsWith(".00")?f=l.replace(/\.00$/,""):l.endsWith(",00")&&(f=l.replace(/,00$/,"")),`${o}${f}${d}`}return r}return N||""};(0,m.useEffect)(()=>{let r=[];if(N||x){const o=`${fe()} ${Z?.off||z?.off||""}`;de(o),r.push(o)}const i=e?.tags?.filter?.(o=>o?.startsWith?.("CLtag"))?.map?.(o=>o?.replace?.("CLtag:",""))?.slice?.(0,N?1:2);ee(r.concat(i))},[e?.tags,N,x,Z?.off,z?.off]),(0,Se.useExposure)(H,{componentType:oe,componentName:ne,componentTitle:M,componentDescription:j,position:t?.index+1});const ye=async()=>{if(!te&&!e?.custom_primary_link){c(!0);try{await D(e,t?.index,t,k)}finally{c(!1)}}},O=async()=>{if(!V&&!e?.custom_secondary_link){se(!0);try{await ue(e,t?.index,t,k)}finally{se(!1)}}},re=()=>(0,s.jsxs)(s.Fragment,{children:[L&&E?.length>0?(0,s.jsx)("div",{className:"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden",children:E?.map?.((r,i)=>(0,s.jsx)(ce.default,{className:"shelf-items-tag",variant:"fill",children:r},i))}):null,G?(0,s.jsx)(_e.Heading,{as:"h3",title:G||"",size:2,className:"shelf-display-product-title lg-desktop:h-[58px] text-info-primary line-clamp-2 h-12",html:G||""}):null,(0,s.jsx)(be.Text,{size:2,className:"lg-desktop:text-lg desktop:h-[24px] lg-desktop:h-[28px] desktop:text-base shelf-display-product-description text-info-primary line-clamp-1 h-[20px] text-sm",html:j||""}),(0,s.jsx)("div",{className:"mb-2 mt-4 flex items-center",children:b?b(e,{price:w,basePrice:I,discount:N,discountAmount:x,variant:p,coupon:k,isSoldOut:B}):B?(0,s.jsx)("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:pe?.soldOutText}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"final-price tablet:text-xl text-info-primary text-xl font-bold",children:p?.availableForSale&&w||""}),U?U(e,{price:w,basePrice:I,discount:N,discountAmount:x}):I&&(0,s.jsx)("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:p?.availableForSale&&I||""})]})}),!b&&X?.(e,p),(0,s.jsxs)("div",{className:(0,g.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",t.direction==="vertical"?"flex-col":""),children:[t?.secondaryButton?(0,s.jsx)(K.default,{disabled:B&&t?.secondaryFun!=="LearnMore",variant:"secondary",href:e?.custom_secondary_link,as:e?.custom_secondary_link?"a":"button",onClick:O,loading:V,className:t.direction==="vertical"?"w-full":"",children:t?.secondaryButton||""}):null,t?.primaryButton?(0,s.jsx)(K.default,{disabled:B&&t?.primaryFun!=="LearnMore",variant:"primary",href:e?.custom_primary_link,as:e?.custom_primary_link?"a":"button",onClick:ye,loading:te,className:t.direction==="vertical"?"w-full":"",children:t?.primaryButton||""}):null]})]}),n=e?.custom_bg_image,a=e?.custom_theme;return(0,s.jsx)("div",{ref:H,className:(0,g.cn)("box-border w-full cursor-pointer overflow-hidden duration-300","rounded-box","lg-desktop:aspect-w-[404] lg-desktop:aspect-h-[480] desktop:aspect-w-[316] desktop:aspect-h-[384]","laptop:aspect-w-[288] laptop:aspect-h-[360] aspect-w-[296] aspect-h-[360] relative","md-tablet:h-[360px] shelf-display-item",n?"bg-cover bg-center bg-no-repeat":"bg-background tablet:hover:bg-info-white",{"aiui-dark":a==="dark"}),style:n?{backgroundImage:`url(${n})`}:void 0,children:u?(0,s.jsx)("div",{className:"absolute inset-0 box-border overflow-hidden",children:(0,s.jsxs)("div",{className:"relative inset-0 size-full",children:[(0,s.jsx)(ae.default,{source:A,alt:F,className:(0,g.cn)("flex h-full justify-center object-cover [&_img]:w-auto",{"opacity-0":n})}),(0,s.jsx)("div",{className:"desktop:p-6 absolute inset-x-0 bottom-0 box-border overflow-hidden p-4",children:re()})]})}):(0,s.jsxs)("div",{className:"desktop:p-6 absolute inset-0 box-border flex flex-col justify-between overflow-hidden p-4",children:[R&&W&&(0,s.jsx)(ce.default,{className:"shelf-prices-tag absolute left-4 top-4 z-10",variant:"fill",children:R||""}),(0,s.jsx)("div",{className:(0,g.cn)("lg-desktop:h-[195px] shelf-display-item-image relative mb-2 inline-block h-[140px] w-full flex-1 overflow-hidden",{"opacity-0":n}),children:(0,s.jsx)("a",{"aria-label":M,target:t?.target,href:(0,we.trackUrlRef)(`${T==="us"||!T?"":`/${T}`}/products/${e?.handle}?variant=${q}`,`${oe}_${ne}`),onClick:()=>{(0,ke.gaTrack)({event:"ga4Event",event_name:"select_item",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:[{item_id:e?.sku||p?.sku,item_name:e?.name,item_variant:p?.name,price:p?.price,index:t?.index+1}]}})},children:(0,s.jsx)(ae.default,{source:A,alt:F,className:"flex h-full justify-center object-cover [&_img]:w-auto"})})}),re()]})},e?.id||e?.handle)},Fe=({data:e,configuration:t})=>{const{itemShape:u,itemLength:v,metafields:y,isShowShortTitle:W,formatPrice:L,renderOriginalPrice:Q,renderPriceLabel:me,renderPrice:$}=t||{},{discounts:U,discountsCopy:X}=y||{},{locale:b="us",copyWriting:T,currencyDisplay:pe}=(0,ge.useAiuiContext)(),[Y,Z]=(0,m.useState)([]),z=(0,m.useRef)(null),[H,E]=(0,m.useState)(!1),[ee,R]=(0,m.useState)(!1),de=(n,a,r,i)=>{const{primaryFun:o,onAddCart:l,onBuyNow:d,onLearnMore:f,event:_}=t||{};if(o){if(o==="AddCart"&&l)return l(n,a+1,r,i);if(o==="BuyNow"&&d)return d(n,a+1,r,i);if(o==="LearnMore"&&f)return f(n,a+1,r,i)}_?.primaryButton?.(n,a+1,r,i)},te=(n,a,r,i)=>{const{secondaryFun:o,onAddCart:l,onBuyNow:d,onLearnMore:f,event:_}=t||{};if(o){if(o==="AddCart"&&l)return l(n,a+1,r,i);if(o==="BuyNow"&&d)return d(n,a+1,r,i);if(o==="LearnMore"&&f)return f(n,a+1,r,i)}_?.secondaryButton?.(n,a+1,r,i)},c=(0,m.useMemo)(()=>{const n=e?.variants||[];if(n.length)return e?.sku&&n.find(a=>a?.sku===e?.sku)||n[0]},[e?.sku,e?.variants]),V=c?.id?.split?.("/")||[],se=V?.[V?.length-1],D=!c?.availableForSale||c?.price?.amount===le||c?.price===le,ue=t?.isShowTag,p=t?.isShowOriginalPrice,h=c?.coupons?.[0],q=!!(p&&h),B=e?.price?.currencyCode||"USD",k=(0,m.useMemo)(()=>(0,ve.formatVariantPrice)({locale:b,amount:q?h?.variant_price4wscode:c?.price,baseAmount:q?c?.price:0,currencyCode:B,currencyDisplay:pe,customFormatPrice:L}),[B,b,q,h?.variant_price4wscode,c,L]),{price:C,basePrice:P,discount:S,discountAmount:w}=k,{imageUrl:I,altText:N}=Ne(e),x=e?.custom_name||e?.title,A=W&&c?.metafields?.infos?.page_short_title||x,F=e?.custom_description||e?.description;(0,Se.useExposure)(z,{componentType:oe,componentName:ne,componentTitle:x,componentDescription:F,position:t?.index+1});const M=async()=>{if(!H&&!e?.custom_primary_link){E(!0);try{await de(e,t?.index,t,h)}finally{E(!1)}}},G=async()=>{if(!ee&&!e?.custom_secondary_link){R(!0);try{await te(e,t?.index,t,h)}finally{R(!1)}}},j=()=>v>=2?{boxItem:"lg-desktop:max-w-[401px] desktop:max-w-[292px] max-w-full",imgItem:"m-tablet:m-auto lg-desktop:max-w-[330px] lg-desktop:max-h-[330px] desktop:max-w-[260px] desktop:max-h-[260px] max-w-[138px] max-h-[138px]",wrap:"lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[480] desktop:aspect-w-[648] desktop:aspect-h-[380] laptop:aspect-w-[440] laptop:aspect-h-[356] tablet:aspect-w-[346] tablet:aspect-h-[360] md-tablet:w-full"}:{boxItem:"lg-desktop:max-w-[401px] desktop:max-w-[292px] laptop:max-w-[289px] max-w-[262px]",imgItem:"md-tablet:m-auto lg-desktop:max-w-[450px] lg-desktop:max-h-[450px] desktop:max-w-[332px] desktop:max-h-[332px] max-w-[312px] max-h-[312px]",wrap:"lg-desktop:aspect-w-[1664] lg-desktop:aspect-h-[480] desktop:aspect-w-[1312] desktop:aspect-h-[380] laptop:aspect-w-[896] laptop:aspect-h-[356] tablet:aspect-w-[704] tablet:aspect-h-[360] md-tablet:w-full"},fe=()=>v>=2?"flex flex-col justify-between desktop:gap-12 desktop:flex-row desktop:justify-center desktop:items-center":"flex justify-center items-center gap-6 md-tablet:flex-col",ye=()=>{if(h?.value_type==="fixed_amount"){const n=w||"",a=n.match(/^(.*?)(\d[\d.,]*)(.*)$/);if(a){const[,r,i,o]=a;let l=i;return i.endsWith(".00")?l=i.replace(/\.00$/,""):i.endsWith(",00")&&(l=i.replace(/,00$/,"")),`${r}${l}${o}`}return n}return S||""};(0,m.useEffect)(()=>{let n=[];if(S||w){const r=`${ye()} ${U?.off||X?.off||""}`;n.push(r)}const a=e?.tags?.filter?.(r=>r?.startsWith?.("CLtag"))?.map?.(r=>r?.replace?.("CLtag:",""))?.slice?.(0,S?1:2);Z(n.concat(a))},[e?.tags,S,w,U?.off,X?.off]);const O=e?.custom_bg_image,re=e?.custom_theme;return(0,s.jsx)("div",{ref:z,className:(0,g.cn)(j().wrap,"rounded-box","shelf-display-item","duration-300","md-tablet:h-[360px] relative box-border w-full cursor-pointer overflow-hidden",O?"bg-cover bg-center bg-no-repeat":"bg-container-secondary-1 tablet:hover:bg-info-white",{"aiui-dark":re==="dark"}),style:O?{backgroundImage:`url(${O})`}:void 0,children:(0,s.jsxs)("div",{className:(0,g.cn)(fe(),"desktop:p-6 absolute inset-0 box-border overflow-hidden p-4"),children:[(0,s.jsx)("div",{className:(0,g.cn)(j().imgItem,"desktop:mb-0 relative mb-1 overflow-hidden",{"opacity-0":O}),children:(0,s.jsx)("a",{"aria-label":x,target:t?.target,href:(0,we.trackUrlRef)(`${b==="us"||!b?"":`/${b}`}/products/${e?.handle}?variant=${se}`,`${oe}_${ne}`),onClick:()=>{(0,ke.gaTrack)({event:"ga4Event",event_name:"select_item",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:[{item_id:e?.sku||c?.sku,item_name:e?.name,item_variant:c?.name,price:c?.price,index:t?.index+1}]}})},children:(0,s.jsx)(ae.default,{source:I,alt:N,className:"flex h-full justify-center object-cover [&_img]:w-auto"})})}),(0,s.jsxs)("div",{className:(0,g.cn)("flex flex-col items-start justify-center",j().boxItem),children:[ue&&(0,s.jsx)("div",{className:"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden",children:Y?.length>0&&Y?.map?.((n,a)=>(0,s.jsx)(ce.default,{className:"shelf-items-tag",variant:"fill",children:n},a))}),A?(0,s.jsx)(_e.Heading,{as:"h3",title:A||"",size:2,className:"shelf-display-product-title lg-desktop:h-[58px] text-info-primary mb-1 line-clamp-2 h-[48px]",html:A||""}):null,F?(0,s.jsx)(be.Text,{size:2,className:"lg-desktop:text-lg lg-desktop:h-[26px] desktop:text-base desktop:h-6 shelf-display-product-description text-info-primary line-clamp-1 h-5 text-sm",html:F||""}):null,(0,s.jsx)("div",{className:"mb-2 mt-5 flex items-center",children:$?$(e,{price:C,basePrice:P,discount:S,discountAmount:w,variant:c,coupon:h,isSoldOut:D}):D?(0,s.jsx)("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:T?.soldOutText}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"final-price tablet:text-xl text-info-primary text-xl font-bold",children:c?.availableForSale&&C||""}),Q?Q(e,{price:C,basePrice:P,discount:S,discountAmount:w}):P&&(0,s.jsx)("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:c?.availableForSale&&P||""})]})}),!$&&me?.(e,c),(0,s.jsxs)("div",{className:(0,g.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",t.direction==="vertical"?"flex-col":""),children:[t?.secondaryButton?(0,s.jsx)(K.default,{disabled:D&&t?.secondaryFun!=="LearnMore",variant:"secondary",href:e?.custom_secondary_link,as:e?.custom_secondary_link?"a":"button",onClick:G,loading:ee,className:t.direction==="vertical"?"w-full":"",children:t?.secondaryButton||""}):null,t?.primaryButton?(0,s.jsx)(K.default,{disabled:D&&t?.primaryFun!=="LearnMore",variant:"primary",href:e?.custom_primary_link,as:e?.custom_primary_link?"a":"button",onClick:M,loading:H,className:t.direction==="vertical"?"w-full":"",children:t?.primaryButton||""}):null]})]})]})},e?.id||e?.handle)};
1
+ "use strict";var Be=Object.create;var ie=Object.defineProperty;var Ce=Object.getOwnPropertyDescriptor;var Pe=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,$e=Object.prototype.hasOwnProperty;var De=(e,t)=>{for(var u in t)ie(e,u,{get:t[u],enumerable:!0})},Te=(e,t,u,v)=>{if(t&&typeof t=="object"||typeof t=="function")for(let y of Pe(t))!$e.call(e,y)&&y!==u&&ie(e,y,{get:()=>t[y],enumerable:!(v=Ce(t,y))||v.enumerable});return e};var xe=(e,t,u)=>(u=e!=null?Be(Le(e)):{},Te(t||!e||!e.__esModule?ie(u,"default",{value:e,enumerable:!0}):u,e)),Ie=e=>Te(ie({},"__esModule",{value:!0}),e);var Me={};De(Me,{ShelfDisplayHorizontalItem:()=>Fe,ShelfDisplayWrapItem:()=>Ae,getProductImage:()=>Ne});module.exports=Ie(Me);var s=require("react/jsx-runtime"),ge=require("../AiuiProvider/index.js"),ve=require("./shelfDisplay.js"),ae=xe(require("../../components/picture.js")),ce=xe(require("../../components/badge.js")),g=require("../../helpers/utils.js"),be=require("../../components/text.js"),K=xe(require("../../components/button.js")),ke=require("../../shared/track.js"),we=require("../../shared/trackUrlRef.js"),_e=require("../../components/heading.js"),Se=require("../../hooks/useExposure.js"),m=require("react");const oe="image",ne="product_shelf",le=999999999e-2,Ne=e=>{const t=e?.sku,u=e?.variants,v=u?.find(L=>L?.sku===t),y=v?.image?.url||u?.[0]?.image?.url||"",W=v?.image?.altText||u?.[0]?.image?.altText||e?.custom_name||e?.title||"";return{imageUrl:y,altText:W}},Ae=({data:e,configuration:t})=>{const{isDisplayBackImage:u=!1,itemShape:v,metafields:y,isTopTag:W=!1,isShowTag:L,isShowOriginalPrice:Q,isShowShortTitle:me=!1,formatPrice:$,renderOriginalPrice:U,renderPriceLabel:X,renderPrice:b}=t||{},{locale:T="es",copyWriting:pe,currencyDisplay:Y}=(0,ge.useAiuiContext)(),{discounts:Z,discountsCopy:z}=y||{},H=(0,m.useRef)(null),[E,ee]=(0,m.useState)([]),[R,de]=(0,m.useState)(""),[te,c]=(0,m.useState)(!1),[V,se]=(0,m.useState)(!1),D=(r,i,o,l)=>{const{primaryFun:d,onAddCart:f,onBuyNow:_,onLearnMore:J,event:he}=t||{};if(d){if(d==="AddCart"&&f)return f(r,i+1,o,l);if(d==="BuyNow"&&_)return _(r,i+1,o,l);if(d==="LearnMore"&&J)return J(r,i+1,o,l)}he?.primaryButton?.(r,i+1,o,l)},ue=(r,i,o,l)=>{const{secondaryFun:d,onAddCart:f,onBuyNow:_,onLearnMore:J,event:he}=t||{};if(d){if(d==="AddCart"&&f)return f(r,i+1,o,l);if(d==="BuyNow"&&_)return _(r,i+1,o,l);if(d==="LearnMore"&&J)return J(r,i+1,o,l)}he?.secondaryButton?.(r,i+1,o,l)},p=(0,m.useMemo)(()=>{const r=e?.variants||[];if(r.length)return e?.sku?r?.find?.(i=>i?.sku===e?.sku)||r[0]:r?.[0]},[e?.sku,e?.variants]),h=p?.id?.split?.("/")||[],q=h?.[h?.length-1],B=!p?.availableForSale||p?.price?.amount===le||p?.price===le,k=p?.coupons?.[0],C=!!(Q&&k),P=e?.price?.currencyCode||"USD",S=(0,m.useMemo)(()=>(0,ve.formatVariantPrice)({locale:T,amount:C?k?.variant_price4wscode:p?.price,baseAmount:C?p?.price:0,currencyCode:P,currencyDisplay:Y,customFormatPrice:$}),[P,T,C,k?.variant_price4wscode,p,$]),{price:w,basePrice:I,discount:N,discountAmount:x}=S,{imageUrl:A,altText:F}=Ne(e),M=e?.custom_name||e?.title,G=me&&p?.metafields?.infos?.page_short_title||M,j=e?.custom_description||e?.description,fe=()=>{if(k?.value_type==="fixed_amount"){const r=x||"",i=r.match(/^(.*?)(\d[\d.,]*)(.*)$/);if(i){const[,o,l,d]=i;let f=l;return l.endsWith(".00")?f=l.replace(/\.00$/,""):l.endsWith(",00")&&(f=l.replace(/,00$/,"")),`${o}${f}${d}`}return r}return N||""};(0,m.useEffect)(()=>{let r=[];if(N||x){const o=`${fe()} ${Z?.off||z?.off||""}`;de(o),r.push(o)}const i=e?.tags?.filter?.(o=>o?.startsWith?.("CLtag"))?.map?.(o=>o?.replace?.("CLtag:",""))?.slice?.(0,N?1:2)||[];ee(r.concat(i))},[e?.tags,N,x,Z?.off,z?.off]),(0,Se.useExposure)(H,{componentType:oe,componentName:ne,componentTitle:M,componentDescription:j,position:t?.index+1});const ye=async()=>{if(!te&&!e?.custom_primary_link){c(!0);try{await D(e,t?.index,t,k)}finally{c(!1)}}},O=async()=>{if(!V&&!e?.custom_secondary_link){se(!0);try{await ue(e,t?.index,t,k)}finally{se(!1)}}},re=()=>(0,s.jsxs)(s.Fragment,{children:[L&&E?.length>0?(0,s.jsx)("div",{className:"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden",children:E?.map?.((r,i)=>(0,s.jsx)(ce.default,{className:"shelf-items-tag",variant:"fill",children:r},i))}):null,G?(0,s.jsx)(_e.Heading,{as:"h3",title:G||"",size:2,className:"shelf-display-product-title lg-desktop:h-[58px] text-info-primary line-clamp-2 h-12",html:G||""}):null,(0,s.jsx)(be.Text,{size:2,className:"lg-desktop:text-lg desktop:h-[24px] lg-desktop:h-[28px] desktop:text-base shelf-display-product-description text-info-primary line-clamp-1 h-[20px] text-sm",html:j||""}),(0,s.jsx)("div",{className:"mb-2 mt-4 flex items-center",children:b?b(e,{price:w,basePrice:I,discount:N,discountAmount:x,variant:p,coupon:k,isSoldOut:B}):B?(0,s.jsx)("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:pe?.soldOutText}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"final-price tablet:text-xl text-info-primary text-xl font-bold",children:p?.availableForSale&&w||""}),U?U(e,{price:w,basePrice:I,discount:N,discountAmount:x}):I&&(0,s.jsx)("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:p?.availableForSale&&I||""})]})}),!b&&X?.(e,p),(0,s.jsxs)("div",{className:(0,g.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",t.direction==="vertical"?"flex-col":""),children:[t?.secondaryButton?(0,s.jsx)(K.default,{disabled:B&&t?.secondaryFun!=="LearnMore",variant:"secondary",href:e?.custom_secondary_link,as:e?.custom_secondary_link?"a":"button",onClick:O,loading:V,className:t.direction==="vertical"?"w-full":"",children:t?.secondaryButton||""}):null,t?.primaryButton?(0,s.jsx)(K.default,{disabled:B&&t?.primaryFun!=="LearnMore",variant:"primary",href:e?.custom_primary_link,as:e?.custom_primary_link?"a":"button",onClick:ye,loading:te,className:t.direction==="vertical"?"w-full":"",children:t?.primaryButton||""}):null]})]}),n=e?.custom_bg_image,a=e?.custom_theme;return(0,s.jsx)("div",{ref:H,className:(0,g.cn)("box-border w-full cursor-pointer overflow-hidden duration-300","rounded-box","lg-desktop:aspect-w-[404] lg-desktop:aspect-h-[480] desktop:aspect-w-[316] desktop:aspect-h-[384]","laptop:aspect-w-[288] laptop:aspect-h-[360] aspect-w-[296] aspect-h-[360] relative","md-tablet:h-[360px] shelf-display-item",n?"bg-cover bg-center bg-no-repeat":"bg-background tablet:hover:bg-info-white",{"aiui-dark":a==="dark"}),style:n?{backgroundImage:`url(${n})`}:void 0,children:u?(0,s.jsx)("div",{className:"absolute inset-0 box-border overflow-hidden",children:(0,s.jsxs)("div",{className:"relative inset-0 size-full",children:[(0,s.jsx)(ae.default,{source:A,alt:F,className:(0,g.cn)("flex h-full justify-center object-cover [&_img]:w-auto",{"opacity-0":n})}),(0,s.jsx)("div",{className:"desktop:p-6 absolute inset-x-0 bottom-0 box-border overflow-hidden p-4",children:re()})]})}):(0,s.jsxs)("div",{className:"desktop:p-6 absolute inset-0 box-border flex flex-col justify-between overflow-hidden p-4",children:[R&&W&&(0,s.jsx)(ce.default,{className:"shelf-prices-tag absolute left-4 top-4 z-10",variant:"fill",children:R||""}),(0,s.jsx)("div",{className:(0,g.cn)("lg-desktop:h-[195px] shelf-display-item-image relative mb-2 inline-block h-[140px] w-full flex-1 overflow-hidden",{"opacity-0":n}),children:(0,s.jsx)("a",{"aria-label":M,target:t?.target,href:(0,we.trackUrlRef)(`${T==="us"||!T?"":`/${T}`}/products/${e?.handle}?variant=${q}`,`${oe}_${ne}`),onClick:()=>{(0,ke.gaTrack)({event:"ga4Event",event_name:"select_item",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:[{item_id:e?.sku||p?.sku,item_name:e?.name,item_variant:p?.name,price:p?.price,index:t?.index+1}]}})},children:(0,s.jsx)(ae.default,{source:A,alt:F,className:"flex h-full justify-center object-cover [&_img]:w-auto"})})}),re()]})},e?.id||e?.handle)},Fe=({data:e,configuration:t})=>{const{itemShape:u,itemLength:v,metafields:y,isShowShortTitle:W,formatPrice:L,renderOriginalPrice:Q,renderPriceLabel:me,renderPrice:$}=t||{},{discounts:U,discountsCopy:X}=y||{},{locale:b="us",copyWriting:T,currencyDisplay:pe}=(0,ge.useAiuiContext)(),[Y,Z]=(0,m.useState)([]),z=(0,m.useRef)(null),[H,E]=(0,m.useState)(!1),[ee,R]=(0,m.useState)(!1),de=(n,a,r,i)=>{const{primaryFun:o,onAddCart:l,onBuyNow:d,onLearnMore:f,event:_}=t||{};if(o){if(o==="AddCart"&&l)return l(n,a+1,r,i);if(o==="BuyNow"&&d)return d(n,a+1,r,i);if(o==="LearnMore"&&f)return f(n,a+1,r,i)}_?.primaryButton?.(n,a+1,r,i)},te=(n,a,r,i)=>{const{secondaryFun:o,onAddCart:l,onBuyNow:d,onLearnMore:f,event:_}=t||{};if(o){if(o==="AddCart"&&l)return l(n,a+1,r,i);if(o==="BuyNow"&&d)return d(n,a+1,r,i);if(o==="LearnMore"&&f)return f(n,a+1,r,i)}_?.secondaryButton?.(n,a+1,r,i)},c=(0,m.useMemo)(()=>{const n=e?.variants||[];if(n.length)return e?.sku&&n.find(a=>a?.sku===e?.sku)||n[0]},[e?.sku,e?.variants]),V=c?.id?.split?.("/")||[],se=V?.[V?.length-1],D=!c?.availableForSale||c?.price?.amount===le||c?.price===le,ue=t?.isShowTag,p=t?.isShowOriginalPrice,h=c?.coupons?.[0],q=!!(p&&h),B=e?.price?.currencyCode||"USD",k=(0,m.useMemo)(()=>(0,ve.formatVariantPrice)({locale:b,amount:q?h?.variant_price4wscode:c?.price,baseAmount:q?c?.price:0,currencyCode:B,currencyDisplay:pe,customFormatPrice:L}),[B,b,q,h?.variant_price4wscode,c,L]),{price:C,basePrice:P,discount:S,discountAmount:w}=k,{imageUrl:I,altText:N}=Ne(e),x=e?.custom_name||e?.title,A=W&&c?.metafields?.infos?.page_short_title||x,F=e?.custom_description||e?.description;(0,Se.useExposure)(z,{componentType:oe,componentName:ne,componentTitle:x,componentDescription:F,position:t?.index+1});const M=async()=>{if(!H&&!e?.custom_primary_link){E(!0);try{await de(e,t?.index,t,h)}finally{E(!1)}}},G=async()=>{if(!ee&&!e?.custom_secondary_link){R(!0);try{await te(e,t?.index,t,h)}finally{R(!1)}}},j=()=>v>=2?{boxItem:"lg-desktop:max-w-[401px] desktop:max-w-[292px] max-w-full",imgItem:"m-tablet:m-auto lg-desktop:max-w-[330px] lg-desktop:max-h-[330px] desktop:max-w-[260px] desktop:max-h-[260px] max-w-[138px] max-h-[138px]",wrap:"lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[480] desktop:aspect-w-[648] desktop:aspect-h-[380] laptop:aspect-w-[440] laptop:aspect-h-[356] tablet:aspect-w-[346] tablet:aspect-h-[360] md-tablet:w-full"}:{boxItem:"lg-desktop:max-w-[401px] desktop:max-w-[292px] laptop:max-w-[289px] max-w-[262px]",imgItem:"md-tablet:m-auto lg-desktop:max-w-[450px] lg-desktop:max-h-[450px] desktop:max-w-[332px] desktop:max-h-[332px] max-w-[312px] max-h-[312px]",wrap:"lg-desktop:aspect-w-[1664] lg-desktop:aspect-h-[480] desktop:aspect-w-[1312] desktop:aspect-h-[380] laptop:aspect-w-[896] laptop:aspect-h-[356] tablet:aspect-w-[704] tablet:aspect-h-[360] md-tablet:w-full"},fe=()=>v>=2?"flex flex-col justify-between desktop:gap-12 desktop:flex-row desktop:justify-center desktop:items-center":"flex justify-center items-center gap-6 md-tablet:flex-col",ye=()=>{if(h?.value_type==="fixed_amount"){const n=w||"",a=n.match(/^(.*?)(\d[\d.,]*)(.*)$/);if(a){const[,r,i,o]=a;let l=i;return i.endsWith(".00")?l=i.replace(/\.00$/,""):i.endsWith(",00")&&(l=i.replace(/,00$/,"")),`${r}${l}${o}`}return n}return S||""};(0,m.useEffect)(()=>{let n=[];if(S||w){const r=`${ye()} ${U?.off||X?.off||""}`;n.push(r)}const a=e?.tags?.filter?.(r=>r?.startsWith?.("CLtag"))?.map?.(r=>r?.replace?.("CLtag:",""))?.slice?.(0,S?1:2)||[];Z(n.concat(a))},[e?.tags,S,w,U?.off,X?.off]);const O=e?.custom_bg_image,re=e?.custom_theme;return(0,s.jsx)("div",{ref:z,className:(0,g.cn)(j().wrap,"rounded-box","shelf-display-item","duration-300","md-tablet:h-[360px] relative box-border w-full cursor-pointer overflow-hidden",O?"bg-cover bg-center bg-no-repeat":"bg-container-secondary-1 tablet:hover:bg-info-white",{"aiui-dark":re==="dark"}),style:O?{backgroundImage:`url(${O})`}:void 0,children:(0,s.jsxs)("div",{className:(0,g.cn)(fe(),"desktop:p-6 absolute inset-0 box-border overflow-hidden p-4"),children:[(0,s.jsx)("div",{className:(0,g.cn)(j().imgItem,"desktop:mb-0 relative mb-1 overflow-hidden",{"opacity-0":O}),children:(0,s.jsx)("a",{"aria-label":x,target:t?.target,href:(0,we.trackUrlRef)(`${b==="us"||!b?"":`/${b}`}/products/${e?.handle}?variant=${se}`,`${oe}_${ne}`),onClick:()=>{(0,ke.gaTrack)({event:"ga4Event",event_name:"select_item",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:[{item_id:e?.sku||c?.sku,item_name:e?.name,item_variant:c?.name,price:c?.price,index:t?.index+1}]}})},children:(0,s.jsx)(ae.default,{source:I,alt:N,className:"flex h-full justify-center object-cover [&_img]:w-auto"})})}),(0,s.jsxs)("div",{className:(0,g.cn)("flex flex-col items-start justify-center",j().boxItem),children:[ue&&(0,s.jsx)("div",{className:"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden",children:Y?.length>0&&Y?.map?.((n,a)=>(0,s.jsx)(ce.default,{className:"shelf-items-tag",variant:"fill",children:n},a))}),A?(0,s.jsx)(_e.Heading,{as:"h3",title:A||"",size:2,className:"shelf-display-product-title lg-desktop:h-[58px] text-info-primary mb-1 line-clamp-2 h-[48px]",html:A||""}):null,F?(0,s.jsx)(be.Text,{size:2,className:"lg-desktop:text-lg lg-desktop:h-[26px] desktop:text-base desktop:h-6 shelf-display-product-description text-info-primary line-clamp-1 h-5 text-sm",html:F||""}):null,(0,s.jsx)("div",{className:"mb-2 mt-5 flex items-center",children:$?$(e,{price:C,basePrice:P,discount:S,discountAmount:w,variant:c,coupon:h,isSoldOut:D}):D?(0,s.jsx)("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:T?.soldOutText}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"final-price tablet:text-xl text-info-primary text-xl font-bold",children:c?.availableForSale&&C||""}),Q?Q(e,{price:C,basePrice:P,discount:S,discountAmount:w}):P&&(0,s.jsx)("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:c?.availableForSale&&P||""})]})}),!$&&me?.(e,c),(0,s.jsxs)("div",{className:(0,g.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",t.direction==="vertical"?"flex-col":""),children:[t?.secondaryButton?(0,s.jsx)(K.default,{disabled:D&&t?.secondaryFun!=="LearnMore",variant:"secondary",href:e?.custom_secondary_link,as:e?.custom_secondary_link?"a":"button",onClick:G,loading:ee,className:t.direction==="vertical"?"w-full":"",children:t?.secondaryButton||""}):null,t?.primaryButton?(0,s.jsx)(K.default,{disabled:D&&t?.primaryFun!=="LearnMore",variant:"primary",href:e?.custom_primary_link,as:e?.custom_primary_link?"a":"button",onClick:M,loading:H,className:t.direction==="vertical"?"w-full":"",children:t?.primaryButton||""}):null]})]})]})},e?.id||e?.handle)};
2
2
  //# sourceMappingURL=shelfDisplayItem.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/ShelfDisplay/shelfDisplayItem.tsx"],
4
- "sourcesContent": ["import { useAiuiContext } from '../AiuiProvider/index.js'\nimport { formatVariantPrice } from './shelfDisplay.js'\nimport Picture from '../../components/picture.js'\nimport Badge from '../../components/badge.js'\nimport { cn } from '../../helpers/utils.js'\nimport { Text } from '../../components/text.js'\nimport Button from '../../components/button.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport { Heading } from '../../components/heading.js'\nimport type { ShelfDisplayItem, ShelfDisplayType } from './shelfDisplay.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport { useRef, useEffect, useMemo, useState } from 'react'\n\nconst componentType = 'image'\nconst componentName = 'product_shelf'\n\nconst SOLD_OUT_PRICE = 9999999.99\n\n// \u516C\u5171\u51FD\u6570\uFF1A\u83B7\u53D6\u4EA7\u54C1\u56FE\u7247URL\u548CaltText\nexport const getProductImage = (data: any) => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n const imageUrl = findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n const altText = findSku?.image?.altText || skuArray?.[0]?.image?.altText || data?.custom_name || data?.title || ''\n\n return {\n imageUrl,\n altText,\n }\n}\n\nexport const ShelfDisplayWrapItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const {\n isDisplayBackImage = false,\n itemShape,\n metafields,\n isTopTag = false,\n isShowTag,\n isShowOriginalPrice,\n isShowShortTitle = false,\n formatPrice,\n renderOriginalPrice,\n renderPriceLabel,\n renderPrice,\n } = configuration || {}\n const { locale = 'es', copyWriting, currencyDisplay } = useAiuiContext()\n const { discounts, discountsCopy } = metafields || {}\n const ref = useRef<HTMLDivElement>(null)\n const [showTags, setShowTags] = useState<string[]>([])\n const [currentPriceTag, setCurrentPriceTag] = useState<string>('')\n const [primaryLoading, setPrimaryLoading] = useState(false)\n const [secondaryLoading, setSecondaryLoading] = useState(false)\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) => {\n const { primaryFun, onAddCart, onBuyNow, onLearnMore, event } = configuration || {}\n\n // \u4F18\u5148\u4F7F\u7528 function props\uFF08\u6839\u636E primaryFun \u503C\uFF09\n if (primaryFun) {\n if (primaryFun === 'AddCart' && onAddCart) {\n return onAddCart(params, index + 1, data, coupon)\n }\n if (primaryFun === 'BuyNow' && onBuyNow) {\n return onBuyNow(params, index + 1, data, coupon)\n }\n if (primaryFun === 'LearnMore' && onLearnMore) {\n return onLearnMore(params, index + 1, data, coupon)\n }\n }\n\n // \u517C\u5BB9\u65E7\u7684 event \u903B\u8F91\n event?.primaryButton?.(params, index + 1, data, coupon)\n }\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) => {\n const { secondaryFun, onAddCart, onBuyNow, onLearnMore, event } = configuration || {}\n\n // \u4F18\u5148\u4F7F\u7528 function props\uFF08\u6839\u636E secondaryFun \u503C\uFF09\n if (secondaryFun) {\n if (secondaryFun === 'AddCart' && onAddCart) {\n return onAddCart(params, index + 1, data, coupon)\n }\n if (secondaryFun === 'BuyNow' && onBuyNow) {\n return onBuyNow(params, index + 1, data, coupon)\n }\n if (secondaryFun === 'LearnMore' && onLearnMore) {\n return onLearnMore(params, index + 1, data, coupon)\n }\n }\n\n // \u517C\u5BB9\u65E7\u7684 event \u903B\u8F91\n event?.secondaryButton?.(params, index + 1, data, coupon)\n }\n\n const variant = useMemo(() => {\n const variants = data?.variants || []\n if (!variants.length) {\n return undefined\n }\n if (!data?.sku) {\n return variants?.[0]\n }\n return variants?.find?.((item: any) => item?.sku === data?.sku) || variants[0]\n }, [data?.sku, data?.variants])\n\n const variantArr = variant?.id?.split?.('/') || []\n const variantId = variantArr?.[variantArr?.length - 1]\n\n const isSoldOut =\n !variant?.availableForSale || variant?.price?.amount === SOLD_OUT_PRICE || variant?.price === SOLD_OUT_PRICE\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const shouldUseCouponPrice = Boolean(isShowOriginalPrice && coupon)\n const currencyCode = data?.price?.currencyCode || 'USD'\n\n const priceInfo = useMemo(\n () =>\n formatVariantPrice({\n locale,\n amount: shouldUseCouponPrice ? coupon?.variant_price4wscode : variant?.price,\n baseAmount: shouldUseCouponPrice ? variant?.price : 0,\n currencyCode,\n currencyDisplay,\n customFormatPrice: formatPrice,\n }),\n [currencyCode, locale, shouldUseCouponPrice, coupon?.variant_price4wscode, variant, formatPrice]\n )\n\n const { price, basePrice, discount, discountAmount } = priceInfo\n\n const { imageUrl, altText } = getProductImage(data)\n\n const displayTitle = data?.custom_name || data?.title\n const currentDisplayTitle = isShowShortTitle\n ? variant?.metafields?.infos?.page_short_title || displayTitle\n : displayTitle\n const displayDescription = data?.custom_description || data?.description\n\n const showPrice = () => {\n if (coupon?.value_type === 'fixed_amount') {\n const amountStr = discountAmount || ''\n const match = amountStr.match(/^(.*?)(\\d[\\d.,]*)(.*)$/)\n if (match) {\n const [, prefix, numeric, suffix] = match\n let updatedNumeric = numeric\n if (numeric.endsWith('.00')) {\n updatedNumeric = numeric.replace(/\\.00$/, '')\n } else if (numeric.endsWith(',00')) {\n updatedNumeric = numeric.replace(/,00$/, '')\n }\n return `${prefix}${updatedNumeric}${suffix}`\n }\n return amountStr\n }\n return discount || ''\n }\n\n // \u5904\u7406\u6807\u7B7E\n useEffect(() => {\n let handleTags: string[] = []\n if (discount || discountAmount) {\n const discountTag = `${showPrice()} ${discounts?.off || discountsCopy?.off || ''}`\n setCurrentPriceTag(discountTag)\n handleTags.push(discountTag)\n }\n const newTags = data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2)\n setShowTags(handleTags.concat(newTags))\n }, [data?.tags, discount, discountAmount, discounts?.off, discountsCopy?.off])\n\n useExposure(ref, {\n componentType,\n componentName,\n componentTitle: displayTitle,\n componentDescription: displayDescription,\n position: configuration?.index + 1,\n })\n\n const handlePrimaryClick = async () => {\n if (primaryLoading) return\n if (data?.custom_primary_link) return\n setPrimaryLoading(true)\n try {\n await onPrimaryButton(data, configuration?.index, configuration, coupon)\n } finally {\n setPrimaryLoading(false)\n }\n }\n\n const handleSecondaryClick = async () => {\n if (secondaryLoading) return\n if (data?.custom_secondary_link) return\n setSecondaryLoading(true)\n try {\n await onSecondaryButton(data, configuration?.index, configuration, coupon)\n } finally {\n setSecondaryLoading(false)\n }\n }\n\n const bottomContent = () => {\n return (\n <>\n {isShowTag && showTags?.length > 0 ? (\n <div className=\"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden\">\n {showTags?.map?.((item: any, index: number) => (\n <Badge key={index} className=\"shelf-items-tag\" variant=\"fill\">\n {item}\n </Badge>\n ))}\n </div>\n ) : null}\n {currentDisplayTitle ? (\n <Heading\n as=\"h3\"\n title={currentDisplayTitle || ''}\n size={2}\n className=\"shelf-display-product-title lg-desktop:h-[58px] text-info-primary line-clamp-2 h-12\"\n html={currentDisplayTitle || ''}\n />\n ) : null}\n <Text\n size={2}\n className=\"lg-desktop:text-lg desktop:h-[24px] lg-desktop:h-[28px] desktop:text-base shelf-display-product-description text-info-primary line-clamp-1 h-[20px] text-sm\"\n html={displayDescription || ''}\n />\n <div className=\"mb-2 mt-4 flex items-center\">\n {renderPrice ? (\n renderPrice(data, { price, basePrice, discount, discountAmount, variant, coupon, isSoldOut })\n ) : isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{copyWriting?.soldOutText}</div>\n ) : (\n <>\n <div className=\"final-price tablet:text-xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n {renderOriginalPrice\n ? renderOriginalPrice(data, { price, basePrice, discount, discountAmount })\n : basePrice && (\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n )}\n </>\n )}\n </div>\n {!renderPrice && renderPriceLabel?.(data, variant)}\n {/* \u6309\u94AE\u7EC4 */}\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n configuration.direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {configuration?.secondaryButton ? (\n <Button\n disabled={isSoldOut && configuration?.secondaryFun !== 'LearnMore'}\n variant=\"secondary\"\n href={data?.custom_secondary_link}\n as={data?.custom_secondary_link ? 'a' : 'button'}\n onClick={handleSecondaryClick}\n loading={secondaryLoading}\n className={configuration.direction === 'vertical' ? 'w-full' : ''}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n ) : null}\n {configuration?.primaryButton ? (\n <Button\n disabled={isSoldOut && configuration?.primaryFun !== 'LearnMore'}\n variant=\"primary\"\n href={data?.custom_primary_link}\n as={data?.custom_primary_link ? 'a' : 'button'}\n onClick={handlePrimaryClick}\n loading={primaryLoading}\n className={configuration.direction === 'vertical' ? 'w-full' : ''}\n >\n {configuration?.primaryButton || ''}\n </Button>\n ) : null}\n </div>\n </>\n )\n }\n\n const custom_bg_image = data?.custom_bg_image\n const custom_theme = data?.custom_theme\n\n return (\n <div\n ref={ref}\n key={data?.id || data?.handle}\n className={cn(\n 'box-border w-full cursor-pointer overflow-hidden duration-300',\n 'rounded-box',\n 'lg-desktop:aspect-w-[404] lg-desktop:aspect-h-[480] desktop:aspect-w-[316] desktop:aspect-h-[384]',\n 'laptop:aspect-w-[288] laptop:aspect-h-[360] aspect-w-[296] aspect-h-[360] relative',\n 'md-tablet:h-[360px] shelf-display-item',\n custom_bg_image ? 'bg-cover bg-center bg-no-repeat' : 'bg-background tablet:hover:bg-info-white',\n { 'aiui-dark': custom_theme === 'dark' }\n )}\n style={custom_bg_image ? { backgroundImage: `url(${custom_bg_image})` } : undefined}\n >\n {isDisplayBackImage ? (\n <div className=\"absolute inset-0 box-border overflow-hidden\">\n <div className=\"relative inset-0 size-full\">\n <Picture\n source={imageUrl}\n alt={altText}\n className={cn('flex h-full justify-center object-cover [&_img]:w-auto', {\n 'opacity-0': custom_bg_image,\n })}\n />\n <div className=\"desktop:p-6 absolute inset-x-0 bottom-0 box-border overflow-hidden p-4\">\n {bottomContent()}\n </div>\n </div>\n </div>\n ) : (\n <div className=\"desktop:p-6 absolute inset-0 box-border flex flex-col justify-between overflow-hidden p-4\">\n {currentPriceTag && isTopTag && (\n <Badge className=\"shelf-prices-tag absolute left-4 top-4 z-10\" variant=\"fill\">\n {currentPriceTag || ''}\n </Badge>\n )}\n <div\n className={cn(\n 'lg-desktop:h-[195px] shelf-display-item-image relative mb-2 inline-block h-[140px] w-full flex-1 overflow-hidden',\n { 'opacity-0': custom_bg_image }\n )}\n >\n <a\n aria-label={displayTitle}\n target={configuration?.target}\n href={trackUrlRef(\n `${locale === 'us' || !locale ? '' : `/${locale}`}/products/${data?.handle}?variant=${variantId}`,\n `${componentType}_${componentName}`\n )}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'select_item',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: [\n {\n item_id: data?.sku || variant?.sku,\n item_name: data?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: configuration?.index + 1,\n },\n ],\n },\n })\n }}\n >\n <Picture\n source={imageUrl}\n alt={altText}\n className=\"flex h-full justify-center object-cover [&_img]:w-auto\"\n />\n </a>\n </div>\n {bottomContent()}\n </div>\n )}\n </div>\n )\n}\n\nexport const ShelfDisplayHorizontalItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const {\n itemShape,\n itemLength,\n metafields,\n isShowShortTitle,\n formatPrice,\n renderOriginalPrice,\n renderPriceLabel,\n renderPrice,\n } = configuration || {}\n const { discounts, discountsCopy } = metafields || {}\n const { locale = 'us', copyWriting, currencyDisplay } = useAiuiContext()\n const [showTags, setShowTags] = useState<string[]>([])\n const ref = useRef<HTMLDivElement>(null)\n const [primaryLoading, setPrimaryLoading] = useState(false)\n const [secondaryLoading, setSecondaryLoading] = useState(false)\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) => {\n const { primaryFun, onAddCart, onBuyNow, onLearnMore, event } = configuration || {}\n\n // \u4F18\u5148\u4F7F\u7528 function props\uFF08\u6839\u636E primaryFun \u503C\uFF09\n if (primaryFun) {\n if (primaryFun === 'AddCart' && onAddCart) {\n return onAddCart(params, index + 1, data, coupon)\n }\n if (primaryFun === 'BuyNow' && onBuyNow) {\n return onBuyNow(params, index + 1, data, coupon)\n }\n if (primaryFun === 'LearnMore' && onLearnMore) {\n return onLearnMore(params, index + 1, data, coupon)\n }\n }\n\n // \u517C\u5BB9\u65E7\u7684 event \u903B\u8F91\n event?.primaryButton?.(params, index + 1, data, coupon)\n }\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) => {\n const { secondaryFun, onAddCart, onBuyNow, onLearnMore, event } = configuration || {}\n\n // \u4F18\u5148\u4F7F\u7528 function props\uFF08\u6839\u636E secondaryFun \u503C\uFF09\n if (secondaryFun) {\n if (secondaryFun === 'AddCart' && onAddCart) {\n return onAddCart(params, index + 1, data, coupon)\n }\n if (secondaryFun === 'BuyNow' && onBuyNow) {\n return onBuyNow(params, index + 1, data, coupon)\n }\n if (secondaryFun === 'LearnMore' && onLearnMore) {\n return onLearnMore(params, index + 1, data, coupon)\n }\n }\n\n // \u517C\u5BB9\u65E7\u7684 event \u903B\u8F91\n event?.secondaryButton?.(params, index + 1, data, coupon)\n }\n\n const variant = useMemo(() => {\n const variants = data?.variants || []\n if (!variants.length) {\n return undefined\n }\n if (!data?.sku) {\n return variants[0]\n }\n return variants.find((item: any) => item?.sku === data?.sku) || variants[0]\n }, [data?.sku, data?.variants])\n\n const variantArr = variant?.id?.split?.('/') || []\n const variantId = variantArr?.[variantArr?.length - 1]\n\n const isSoldOut =\n !variant?.availableForSale || variant?.price?.amount === SOLD_OUT_PRICE || variant?.price === SOLD_OUT_PRICE\n const isShowTag = configuration?.isShowTag\n const isShowOriginalPrice = configuration?.isShowOriginalPrice\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const shouldUseCouponPrice = Boolean(isShowOriginalPrice && coupon)\n const currencyCode = data?.price?.currencyCode || 'USD'\n\n const priceInfo = useMemo(\n () =>\n formatVariantPrice({\n locale,\n amount: shouldUseCouponPrice ? coupon?.variant_price4wscode : variant?.price,\n baseAmount: shouldUseCouponPrice ? variant?.price : 0,\n currencyCode,\n currencyDisplay,\n customFormatPrice: formatPrice,\n }),\n [currencyCode, locale, shouldUseCouponPrice, coupon?.variant_price4wscode, variant, formatPrice]\n )\n\n const { price, basePrice, discount, discountAmount } = priceInfo\n\n const { imageUrl, altText } = getProductImage(data)\n\n const displayTitle = data?.custom_name || data?.title\n const currentDisplayTitle = isShowShortTitle\n ? variant?.metafields?.infos?.page_short_title || displayTitle\n : displayTitle\n const displayDescription = data?.custom_description || data?.description\n\n useExposure(ref, {\n componentType,\n componentName,\n componentTitle: displayTitle,\n componentDescription: displayDescription,\n position: configuration?.index + 1,\n })\n\n const handlePrimaryClick = async () => {\n if (primaryLoading) return\n if (data?.custom_primary_link) return\n setPrimaryLoading(true)\n try {\n await onPrimaryButton(data, configuration?.index, configuration, coupon)\n } finally {\n setPrimaryLoading(false)\n }\n }\n\n const handleSecondaryClick = async () => {\n if (secondaryLoading) return\n if (data?.custom_secondary_link) return\n setSecondaryLoading(true)\n try {\n await onSecondaryButton(data, configuration?.index, configuration, coupon)\n } finally {\n setSecondaryLoading(false)\n }\n }\n\n const showSizeClass = (): {\n boxItem: string\n imgItem: string\n wrap: string\n } => {\n if (itemLength >= 2) {\n return {\n boxItem: 'lg-desktop:max-w-[401px] desktop:max-w-[292px] max-w-full',\n imgItem:\n 'm-tablet:m-auto lg-desktop:max-w-[330px] lg-desktop:max-h-[330px] desktop:max-w-[260px] desktop:max-h-[260px] max-w-[138px] max-h-[138px]',\n wrap: 'lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[480] desktop:aspect-w-[648] desktop:aspect-h-[380] laptop:aspect-w-[440] laptop:aspect-h-[356] tablet:aspect-w-[346] tablet:aspect-h-[360] md-tablet:w-full',\n }\n }\n return {\n boxItem: 'lg-desktop:max-w-[401px] desktop:max-w-[292px] laptop:max-w-[289px] max-w-[262px]',\n imgItem:\n 'md-tablet:m-auto lg-desktop:max-w-[450px] lg-desktop:max-h-[450px] desktop:max-w-[332px] desktop:max-h-[332px] max-w-[312px] max-h-[312px]',\n wrap: 'lg-desktop:aspect-w-[1664] lg-desktop:aspect-h-[480] desktop:aspect-w-[1312] desktop:aspect-h-[380] laptop:aspect-w-[896] laptop:aspect-h-[356] tablet:aspect-w-[704] tablet:aspect-h-[360] md-tablet:w-full',\n }\n }\n\n const handleWrapClass = () => {\n if (itemLength >= 2) {\n return 'flex flex-col justify-between desktop:gap-12 desktop:flex-row desktop:justify-center desktop:items-center'\n }\n return 'flex justify-center items-center gap-6 md-tablet:flex-col'\n }\n\n const showPrice = () => {\n if (coupon?.value_type === 'fixed_amount') {\n const amountStr = discountAmount || ''\n const match = amountStr.match(/^(.*?)(\\d[\\d.,]*)(.*)$/)\n if (match) {\n const [, prefix, numeric, suffix] = match\n let updatedNumeric = numeric\n if (numeric.endsWith('.00')) {\n updatedNumeric = numeric.replace(/\\.00$/, '')\n } else if (numeric.endsWith(',00')) {\n updatedNumeric = numeric.replace(/,00$/, '')\n }\n return `${prefix}${updatedNumeric}${suffix}`\n }\n return amountStr\n }\n return discount || ''\n }\n\n // \u5904\u7406\u6807\u7B7E\n useEffect(() => {\n let handleTags: string[] = []\n if (discount || discountAmount) {\n const discountTag = `${showPrice()} ${discounts?.off || discountsCopy?.off || ''}`\n handleTags.push(discountTag)\n }\n const newTags = data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2)\n setShowTags(handleTags.concat(newTags))\n }, [data?.tags, discount, discountAmount, discounts?.off, discountsCopy?.off])\n\n const custom_bg_image = data?.custom_bg_image\n const custom_theme = data?.custom_theme\n\n return (\n <div\n ref={ref}\n key={data?.id || data?.handle}\n className={cn(\n showSizeClass().wrap,\n 'rounded-box',\n 'shelf-display-item',\n 'duration-300',\n 'md-tablet:h-[360px] relative box-border w-full cursor-pointer overflow-hidden',\n custom_bg_image ? 'bg-cover bg-center bg-no-repeat' : 'bg-container-secondary-1 tablet:hover:bg-info-white',\n { 'aiui-dark': custom_theme === 'dark' }\n )}\n style={custom_bg_image ? { backgroundImage: `url(${custom_bg_image})` } : undefined}\n >\n <div className={cn(handleWrapClass(), 'desktop:p-6 absolute inset-0 box-border overflow-hidden p-4')}>\n <div\n className={cn(showSizeClass().imgItem, 'desktop:mb-0 relative mb-1 overflow-hidden', {\n 'opacity-0': custom_bg_image,\n })}\n >\n <a\n aria-label={displayTitle}\n target={configuration?.target}\n href={trackUrlRef(\n `${locale === 'us' || !locale ? '' : `/${locale}`}/products/${data?.handle}?variant=${variantId}`,\n `${componentType}_${componentName}`\n )}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'select_item',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: [\n {\n item_id: data?.sku || variant?.sku,\n item_name: data?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: configuration?.index + 1,\n },\n ],\n },\n })\n }}\n >\n <Picture\n source={imageUrl}\n alt={altText}\n className=\"flex h-full justify-center object-cover [&_img]:w-auto\"\n />\n </a>\n </div>\n <div className={cn('flex flex-col items-start justify-center', showSizeClass().boxItem)}>\n {isShowTag && (\n <div className=\"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden\">\n {showTags?.length > 0 &&\n showTags?.map?.((item: any, index: number) => (\n <Badge key={index} className=\"shelf-items-tag\" variant=\"fill\">\n {item}\n </Badge>\n ))}\n </div>\n )}\n {currentDisplayTitle ? (\n <Heading\n as=\"h3\"\n title={currentDisplayTitle || ''}\n size={2}\n className=\"shelf-display-product-title lg-desktop:h-[58px] text-info-primary mb-1 line-clamp-2 h-[48px]\"\n html={currentDisplayTitle || ''}\n />\n ) : null}\n {displayDescription ? (\n <Text\n size={2}\n className=\"lg-desktop:text-lg lg-desktop:h-[26px] desktop:text-base desktop:h-6 shelf-display-product-description text-info-primary line-clamp-1 h-5 text-sm\"\n html={displayDescription || ''}\n />\n ) : null}\n <div className=\"mb-2 mt-5 flex items-center\">\n {renderPrice ? (\n renderPrice(data, { price, basePrice, discount, discountAmount, variant, coupon, isSoldOut })\n ) : isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{copyWriting?.soldOutText}</div>\n ) : (\n <>\n <div className=\"final-price tablet:text-xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n {renderOriginalPrice\n ? renderOriginalPrice(data, { price, basePrice, discount, discountAmount })\n : basePrice && (\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n )}\n </>\n )}\n </div>\n {!renderPrice && renderPriceLabel?.(data, variant)}\n {/* \u6309\u94AE\u7EC4 */}\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n configuration.direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {configuration?.secondaryButton ? (\n <Button\n disabled={isSoldOut && configuration?.secondaryFun !== 'LearnMore'}\n variant=\"secondary\"\n href={data?.custom_secondary_link}\n as={data?.custom_secondary_link ? 'a' : 'button'}\n onClick={handleSecondaryClick}\n loading={secondaryLoading}\n className={configuration.direction === 'vertical' ? 'w-full' : ''}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n ) : null}\n {configuration?.primaryButton ? (\n <Button\n disabled={isSoldOut && configuration?.primaryFun !== 'LearnMore'}\n variant=\"primary\"\n href={data?.custom_primary_link}\n as={data?.custom_primary_link ? 'a' : 'button'}\n onClick={handlePrimaryClick}\n loading={primaryLoading}\n className={configuration.direction === 'vertical' ? 'w-full' : ''}\n >\n {configuration?.primaryButton || ''}\n </Button>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "+kBAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,gCAAAE,GAAA,yBAAAC,GAAA,oBAAAC,KAAA,eAAAC,GAAAL,IAmNc,IAAAM,EAAA,6BAnNdC,GAA+B,oCAC/BC,GAAmC,6BACnCC,GAAoB,2CACpBC,GAAkB,yCAClBC,EAAmB,kCACnBC,GAAqB,oCACrBC,EAAmB,0CACnBC,GAAwB,iCACxBC,GAA4B,uCAC5BC,GAAwB,uCAExBC,GAA4B,sCAC5BC,EAAqD,iBAErD,MAAMC,GAAgB,QAChBC,GAAgB,gBAEhBC,GAAiB,aAGVjB,GAAmBkB,GAAc,CAC5C,MAAMC,EAAMD,GAAM,IACZE,EAAWF,GAAM,SACjBG,EAAUD,GAAU,KAAME,GAAcA,GAAM,MAAQH,CAAG,EACzDI,EAAWF,GAAS,OAAO,KAAOD,IAAW,CAAC,GAAG,OAAO,KAAO,GAC/DI,EAAUH,GAAS,OAAO,SAAWD,IAAW,CAAC,GAAG,OAAO,SAAWF,GAAM,aAAeA,GAAM,OAAS,GAEhH,MAAO,CACL,SAAAK,EACA,QAAAC,CACF,CACF,EAEazB,GAAuB,CAAC,CAAE,KAAAmB,EAAM,cAAAO,CAAc,IAA0C,CACnG,KAAM,CACJ,mBAAAC,EAAqB,GACrB,UAAAC,EACA,WAAAC,EACA,SAAAC,EAAW,GACX,UAAAC,EACA,oBAAAC,EACA,iBAAAC,GAAmB,GACnB,YAAAC,EACA,oBAAAC,EACA,iBAAAC,EACA,YAAAC,CACF,EAAIX,GAAiB,CAAC,EAChB,CAAE,OAAAY,EAAS,KAAM,YAAAC,GAAa,gBAAAC,CAAgB,KAAI,mBAAe,EACjE,CAAE,UAAAC,EAAW,cAAAC,CAAc,EAAIb,GAAc,CAAC,EAC9Cc,KAAM,UAAuB,IAAI,EACjC,CAACC,EAAUC,EAAW,KAAI,YAAmB,CAAC,CAAC,EAC/C,CAACC,EAAiBC,EAAkB,KAAI,YAAiB,EAAE,EAC3D,CAACC,GAAgBC,CAAiB,KAAI,YAAS,EAAK,EACpD,CAACC,EAAkBC,EAAmB,KAAI,YAAS,EAAK,EAExDC,EAAkB,CAACC,EAA0BC,EAAenC,EAAwBoC,IAAgB,CACxG,KAAM,CAAE,WAAAC,EAAY,UAAAC,EAAW,SAAAC,EAAU,YAAAC,EAAa,MAAAC,EAAM,EAAIlC,GAAiB,CAAC,EAGlF,GAAI8B,EAAY,CACd,GAAIA,IAAe,WAAaC,EAC9B,OAAOA,EAAUJ,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,EAElD,GAAIC,IAAe,UAAYE,EAC7B,OAAOA,EAASL,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,EAEjD,GAAIC,IAAe,aAAeG,EAChC,OAAOA,EAAYN,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,CAEtD,CAGAK,IAAO,gBAAgBP,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,CACxD,EAEMM,GAAoB,CAACR,EAA0BC,EAAenC,EAAwBoC,IAAgB,CAC1G,KAAM,CAAE,aAAAO,EAAc,UAAAL,EAAW,SAAAC,EAAU,YAAAC,EAAa,MAAAC,EAAM,EAAIlC,GAAiB,CAAC,EAGpF,GAAIoC,EAAc,CAChB,GAAIA,IAAiB,WAAaL,EAChC,OAAOA,EAAUJ,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,EAElD,GAAIO,IAAiB,UAAYJ,EAC/B,OAAOA,EAASL,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,EAEjD,GAAIO,IAAiB,aAAeH,EAClC,OAAOA,EAAYN,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,CAEtD,CAGAK,IAAO,kBAAkBP,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,CAC1D,EAEMQ,KAAU,WAAQ,IAAM,CAC5B,MAAMC,EAAW7C,GAAM,UAAY,CAAC,EACpC,GAAK6C,EAAS,OAGd,OAAK7C,GAAM,IAGJ6C,GAAU,OAAQzC,GAAcA,GAAM,MAAQJ,GAAM,GAAG,GAAK6C,EAAS,CAAC,EAFpEA,IAAW,CAAC,CAGvB,EAAG,CAAC7C,GAAM,IAAKA,GAAM,QAAQ,CAAC,EAExB8C,EAAaF,GAAS,IAAI,QAAQ,GAAG,GAAK,CAAC,EAC3CG,EAAYD,IAAaA,GAAY,OAAS,CAAC,EAE/CE,EACJ,CAACJ,GAAS,kBAAoBA,GAAS,OAAO,SAAW7C,IAAkB6C,GAAS,QAAU7C,GAG1FqC,EAASQ,GAAS,UAAU,CAAC,EAE7BK,EAAuB,GAAQpC,GAAuBuB,GACtDc,EAAelD,GAAM,OAAO,cAAgB,MAE5CmD,KAAY,WAChB,OACE,uBAAmB,CACjB,OAAAhC,EACA,OAAQ8B,EAAuBb,GAAQ,qBAAuBQ,GAAS,MACvE,WAAYK,EAAuBL,GAAS,MAAQ,EACpD,aAAAM,EACA,gBAAA7B,EACA,kBAAmBN,CACrB,CAAC,EACH,CAACmC,EAAc/B,EAAQ8B,EAAsBb,GAAQ,qBAAsBQ,EAAS7B,CAAW,CACjG,EAEM,CAAE,MAAAqC,EAAO,UAAAC,EAAW,SAAAC,EAAU,eAAAC,CAAe,EAAIJ,EAEjD,CAAE,SAAA9C,EAAU,QAAAC,CAAQ,EAAIxB,GAAgBkB,CAAI,EAE5CwD,EAAexD,GAAM,aAAeA,GAAM,MAC1CyD,EAAsB3C,IACxB8B,GAAS,YAAY,OAAO,kBAAoBY,EAE9CE,EAAqB1D,GAAM,oBAAsBA,GAAM,YAEvD2D,GAAY,IAAM,CACtB,GAAIvB,GAAQ,aAAe,eAAgB,CACzC,MAAMwB,EAAYL,GAAkB,GAC9BM,EAAQD,EAAU,MAAM,wBAAwB,EACtD,GAAIC,EAAO,CACT,KAAM,CAAC,CAAEC,EAAQC,EAASC,CAAM,EAAIH,EACpC,IAAII,EAAiBF,EACrB,OAAIA,EAAQ,SAAS,KAAK,EACxBE,EAAiBF,EAAQ,QAAQ,QAAS,EAAE,EACnCA,EAAQ,SAAS,KAAK,IAC/BE,EAAiBF,EAAQ,QAAQ,OAAQ,EAAE,GAEtC,GAAGD,CAAM,GAAGG,CAAc,GAAGD,CAAM,EAC5C,CACA,OAAOJ,CACT,CACA,OAAON,GAAY,EACrB,KAGA,aAAU,IAAM,CACd,IAAIY,EAAuB,CAAC,EAC5B,GAAIZ,GAAYC,EAAgB,CAC9B,MAAMY,EAAc,GAAGR,GAAU,CAAC,IAAIrC,GAAW,KAAOC,GAAe,KAAO,EAAE,GAChFK,GAAmBuC,CAAW,EAC9BD,EAAW,KAAKC,CAAW,CAC7B,CACA,MAAMC,EAAUpE,GAAM,MAClB,SAAUI,GAAiBA,GAAM,aAAa,OAAO,CAAC,GACtD,MAAOA,GAAiBA,GAAM,UAAU,SAAU,EAAE,CAAC,GACrD,QAAQ,EAAGkD,EAAW,EAAI,CAAC,EAC/B5B,GAAYwC,EAAW,OAAOE,CAAO,CAAC,CACxC,EAAG,CAACpE,GAAM,KAAMsD,EAAUC,EAAgBjC,GAAW,IAAKC,GAAe,GAAG,CAAC,KAE7E,gBAAYC,EAAK,CACf,cAAA3B,GACA,cAAAC,GACA,eAAgB0D,EAChB,qBAAsBE,EACtB,SAAUnD,GAAe,MAAQ,CACnC,CAAC,EAED,MAAM8D,GAAqB,SAAY,CACrC,GAAI,CAAAxC,IACA,CAAA7B,GAAM,oBACV,CAAA8B,EAAkB,EAAI,EACtB,GAAI,CACF,MAAMG,EAAgBjC,EAAMO,GAAe,MAAOA,EAAe6B,CAAM,CACzE,QAAE,CACAN,EAAkB,EAAK,CACzB,EACF,EAEMwC,EAAuB,SAAY,CACvC,GAAI,CAAAvC,GACA,CAAA/B,GAAM,sBACV,CAAAgC,GAAoB,EAAI,EACxB,GAAI,CACF,MAAMU,GAAkB1C,EAAMO,GAAe,MAAOA,EAAe6B,CAAM,CAC3E,QAAE,CACAJ,GAAoB,EAAK,CAC3B,EACF,EAEMuC,GAAgB,OAElB,oBACG,UAAA3D,GAAaa,GAAU,OAAS,KAC/B,OAAC,OAAI,UAAU,2DACZ,SAAAA,GAAU,MAAM,CAACrB,EAAW+B,OAC3B,OAAC,GAAAqC,QAAA,CAAkB,UAAU,kBAAkB,QAAQ,OACpD,SAAApE,GADS+B,CAEZ,CACD,EACH,EACE,KACHsB,KACC,OAAC,YACC,GAAG,KACH,MAAOA,GAAuB,GAC9B,KAAM,EACN,UAAU,sFACV,KAAMA,GAAuB,GAC/B,EACE,QACJ,OAAC,SACC,KAAM,EACN,UAAU,8JACV,KAAMC,GAAsB,GAC9B,KACA,OAAC,OAAI,UAAU,8BACZ,SAAAxC,EACCA,EAAYlB,EAAM,CAAE,MAAAoD,EAAO,UAAAC,EAAW,SAAAC,EAAU,eAAAC,EAAgB,QAAAX,EAAS,OAAAR,EAAQ,UAAAY,CAAU,CAAC,EAC1FA,KACF,OAAC,OAAI,UAAU,sDAAuD,SAAA5B,IAAa,YAAY,KAE/F,oBACE,oBAAC,OAAI,UAAU,iEACZ,SAAAwB,GAAS,kBAAmBQ,GAAS,GACxC,EACCpC,EACGA,EAAoBhB,EAAM,CAAE,MAAAoD,EAAO,UAAAC,EAAW,SAAAC,EAAU,eAAAC,CAAe,CAAC,EACxEF,MACE,OAAC,OAAI,UAAU,sFACZ,SAAAT,GAAS,kBAAmBS,GAAa,GAC5C,GAER,EAEJ,EACC,CAACnC,GAAeD,IAAmBjB,EAAM4C,CAAO,KAEjD,QAAC,OACC,aAAW,MACT,0BACA,2CACArC,EAAc,YAAc,WAAa,WAAa,EACxD,EAEC,UAAAA,GAAe,mBACd,OAAC,EAAAkE,QAAA,CACC,SAAUzB,GAAazC,GAAe,eAAiB,YACvD,QAAQ,YACR,KAAMP,GAAM,sBACZ,GAAIA,GAAM,sBAAwB,IAAM,SACxC,QAASsE,EACT,QAASvC,EACT,UAAWxB,EAAc,YAAc,WAAa,SAAW,GAE9D,SAAAA,GAAe,iBAAmB,GACrC,EACE,KACHA,GAAe,iBACd,OAAC,EAAAkE,QAAA,CACC,SAAUzB,GAAazC,GAAe,aAAe,YACrD,QAAQ,UACR,KAAMP,GAAM,oBACZ,GAAIA,GAAM,oBAAsB,IAAM,SACtC,QAASqE,GACT,QAASxC,GACT,UAAWtB,EAAc,YAAc,WAAa,SAAW,GAE9D,SAAAA,GAAe,eAAiB,GACnC,EACE,MACN,GACF,EAIEmE,EAAkB1E,GAAM,gBACxB2E,EAAe3E,GAAM,aAE3B,SACE,OAAC,OACC,IAAKwB,EAEL,aAAW,MACT,gEACA,cACA,oGACA,qFACA,yCACAkD,EAAkB,kCAAoC,2CACtD,CAAE,YAAaC,IAAiB,MAAO,CACzC,EACA,MAAOD,EAAkB,CAAE,gBAAiB,OAAOA,CAAe,GAAI,EAAI,OAEzE,SAAAlE,KACC,OAAC,OAAI,UAAU,8CACb,oBAAC,OAAI,UAAU,6BACb,oBAAC,GAAAoE,QAAA,CACC,OAAQvE,EACR,IAAKC,EACL,aAAW,MAAG,yDAA0D,CACtE,YAAaoE,CACf,CAAC,EACH,KACA,OAAC,OAAI,UAAU,yEACZ,SAAAH,GAAc,EACjB,GACF,EACF,KAEA,QAAC,OAAI,UAAU,4FACZ,UAAA5C,GAAmBhB,MAClB,OAAC,GAAA6D,QAAA,CAAM,UAAU,8CAA8C,QAAQ,OACpE,SAAA7C,GAAmB,GACtB,KAEF,OAAC,OACC,aAAW,MACT,mHACA,CAAE,YAAa+C,CAAgB,CACjC,EAEA,mBAAC,KACC,aAAYlB,EACZ,OAAQjD,GAAe,OACvB,QAAM,gBACJ,GAAGY,IAAW,MAAQ,CAACA,EAAS,GAAK,IAAIA,CAAM,EAAE,aAAanB,GAAM,MAAM,YAAY+C,CAAS,GAC/F,GAAGlD,EAAa,IAAIC,EAAa,EACnC,EACA,QAAS,IAAM,IACb,YAAQ,CACN,MAAO,WACP,WAAY,cACZ,iBAAkB,CAChB,WAAY,YACZ,eAAgB,mBAChB,MAAO,CACL,CACE,QAASE,GAAM,KAAO4C,GAAS,IAC/B,UAAW5C,GAAM,KACjB,aAAc4C,GAAS,KACvB,MAAOA,GAAS,MAChB,MAAOrC,GAAe,MAAQ,CAChC,CACF,CACF,CACF,CAAC,CACH,EAEA,mBAAC,GAAAqE,QAAA,CACC,OAAQvE,EACR,IAAKC,EACL,UAAU,yDACZ,EACF,EACF,EACCiE,GAAc,GACjB,GA3EGvE,GAAM,IAAMA,GAAM,MA6EzB,CAEJ,EAEapB,GAA6B,CAAC,CAAE,KAAAoB,EAAM,cAAAO,CAAc,IAA0C,CACzG,KAAM,CACJ,UAAAE,EACA,WAAAoE,EACA,WAAAnE,EACA,iBAAAI,EACA,YAAAC,EACA,oBAAAC,EACA,iBAAAC,GACA,YAAAC,CACF,EAAIX,GAAiB,CAAC,EAChB,CAAE,UAAAe,EAAW,cAAAC,CAAc,EAAIb,GAAc,CAAC,EAC9C,CAAE,OAAAS,EAAS,KAAM,YAAAC,EAAa,gBAAAC,EAAgB,KAAI,mBAAe,EACjE,CAACI,EAAUC,CAAW,KAAI,YAAmB,CAAC,CAAC,EAC/CF,KAAM,UAAuB,IAAI,EACjC,CAACK,EAAgBC,CAAiB,KAAI,YAAS,EAAK,EACpD,CAACC,GAAkBC,CAAmB,KAAI,YAAS,EAAK,EAExDC,GAAkB,CAACC,EAA0BC,EAAenC,EAAwBoC,IAAgB,CACxG,KAAM,CAAE,WAAAC,EAAY,UAAAC,EAAW,SAAAC,EAAU,YAAAC,EAAa,MAAAC,CAAM,EAAIlC,GAAiB,CAAC,EAGlF,GAAI8B,EAAY,CACd,GAAIA,IAAe,WAAaC,EAC9B,OAAOA,EAAUJ,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,EAElD,GAAIC,IAAe,UAAYE,EAC7B,OAAOA,EAASL,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,EAEjD,GAAIC,IAAe,aAAeG,EAChC,OAAOA,EAAYN,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,CAEtD,CAGAK,GAAO,gBAAgBP,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,CACxD,EAEMM,GAAoB,CAACR,EAA0BC,EAAenC,EAAwBoC,IAAgB,CAC1G,KAAM,CAAE,aAAAO,EAAc,UAAAL,EAAW,SAAAC,EAAU,YAAAC,EAAa,MAAAC,CAAM,EAAIlC,GAAiB,CAAC,EAGpF,GAAIoC,EAAc,CAChB,GAAIA,IAAiB,WAAaL,EAChC,OAAOA,EAAUJ,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,EAElD,GAAIO,IAAiB,UAAYJ,EAC/B,OAAOA,EAASL,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,EAEjD,GAAIO,IAAiB,aAAeH,EAClC,OAAOA,EAAYN,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,CAEtD,CAGAK,GAAO,kBAAkBP,EAAQC,EAAQ,EAAGnC,EAAMoC,CAAM,CAC1D,EAEMQ,KAAU,WAAQ,IAAM,CAC5B,MAAMC,EAAW7C,GAAM,UAAY,CAAC,EACpC,GAAK6C,EAAS,OAGd,OAAK7C,GAAM,KAGJ6C,EAAS,KAAMzC,GAAcA,GAAM,MAAQJ,GAAM,GAAG,GAAK6C,EAAS,CAAC,CAC5E,EAAG,CAAC7C,GAAM,IAAKA,GAAM,QAAQ,CAAC,EAExB8C,EAAaF,GAAS,IAAI,QAAQ,GAAG,GAAK,CAAC,EAC3CG,GAAYD,IAAaA,GAAY,OAAS,CAAC,EAE/CE,EACJ,CAACJ,GAAS,kBAAoBA,GAAS,OAAO,SAAW7C,IAAkB6C,GAAS,QAAU7C,GAC1Fa,GAAYL,GAAe,UAC3BM,EAAsBN,GAAe,oBAGrC6B,EAASQ,GAAS,UAAU,CAAC,EAE7BK,EAAuB,GAAQpC,GAAuBuB,GACtDc,EAAelD,GAAM,OAAO,cAAgB,MAE5CmD,KAAY,WAChB,OACE,uBAAmB,CACjB,OAAAhC,EACA,OAAQ8B,EAAuBb,GAAQ,qBAAuBQ,GAAS,MACvE,WAAYK,EAAuBL,GAAS,MAAQ,EACpD,aAAAM,EACA,gBAAA7B,GACA,kBAAmBN,CACrB,CAAC,EACH,CAACmC,EAAc/B,EAAQ8B,EAAsBb,GAAQ,qBAAsBQ,EAAS7B,CAAW,CACjG,EAEM,CAAE,MAAAqC,EAAO,UAAAC,EAAW,SAAAC,EAAU,eAAAC,CAAe,EAAIJ,EAEjD,CAAE,SAAA9C,EAAU,QAAAC,CAAQ,EAAIxB,GAAgBkB,CAAI,EAE5CwD,EAAexD,GAAM,aAAeA,GAAM,MAC1CyD,EAAsB3C,GACxB8B,GAAS,YAAY,OAAO,kBAAoBY,EAE9CE,EAAqB1D,GAAM,oBAAsBA,GAAM,eAE7D,gBAAYwB,EAAK,CACf,cAAA3B,GACA,cAAAC,GACA,eAAgB0D,EAChB,qBAAsBE,EACtB,SAAUnD,GAAe,MAAQ,CACnC,CAAC,EAED,MAAM8D,EAAqB,SAAY,CACrC,GAAI,CAAAxC,GACA,CAAA7B,GAAM,oBACV,CAAA8B,EAAkB,EAAI,EACtB,GAAI,CACF,MAAMG,GAAgBjC,EAAMO,GAAe,MAAOA,EAAe6B,CAAM,CACzE,QAAE,CACAN,EAAkB,EAAK,CACzB,EACF,EAEMwC,EAAuB,SAAY,CACvC,GAAI,CAAAvC,IACA,CAAA/B,GAAM,sBACV,CAAAgC,EAAoB,EAAI,EACxB,GAAI,CACF,MAAMU,GAAkB1C,EAAMO,GAAe,MAAOA,EAAe6B,CAAM,CAC3E,QAAE,CACAJ,EAAoB,EAAK,CAC3B,EACF,EAEM8C,EAAgB,IAKhBD,GAAc,EACT,CACL,QAAS,4DACT,QACE,4IACF,KAAM,4MACR,EAEK,CACL,QAAS,oFACT,QACE,6IACF,KAAM,8MACR,EAGIE,GAAkB,IAClBF,GAAc,EACT,4GAEF,4DAGHlB,GAAY,IAAM,CACtB,GAAIvB,GAAQ,aAAe,eAAgB,CACzC,MAAMwB,EAAYL,GAAkB,GAC9BM,EAAQD,EAAU,MAAM,wBAAwB,EACtD,GAAIC,EAAO,CACT,KAAM,CAAC,CAAEC,EAAQC,EAASC,CAAM,EAAIH,EACpC,IAAII,EAAiBF,EACrB,OAAIA,EAAQ,SAAS,KAAK,EACxBE,EAAiBF,EAAQ,QAAQ,QAAS,EAAE,EACnCA,EAAQ,SAAS,KAAK,IAC/BE,EAAiBF,EAAQ,QAAQ,OAAQ,EAAE,GAEtC,GAAGD,CAAM,GAAGG,CAAc,GAAGD,CAAM,EAC5C,CACA,OAAOJ,CACT,CACA,OAAON,GAAY,EACrB,KAGA,aAAU,IAAM,CACd,IAAIY,EAAuB,CAAC,EAC5B,GAAIZ,GAAYC,EAAgB,CAC9B,MAAMY,EAAc,GAAGR,GAAU,CAAC,IAAIrC,GAAW,KAAOC,GAAe,KAAO,EAAE,GAChF2C,EAAW,KAAKC,CAAW,CAC7B,CACA,MAAMC,EAAUpE,GAAM,MAClB,SAAUI,GAAiBA,GAAM,aAAa,OAAO,CAAC,GACtD,MAAOA,GAAiBA,GAAM,UAAU,SAAU,EAAE,CAAC,GACrD,QAAQ,EAAGkD,EAAW,EAAI,CAAC,EAC/B5B,EAAYwC,EAAW,OAAOE,CAAO,CAAC,CACxC,EAAG,CAACpE,GAAM,KAAMsD,EAAUC,EAAgBjC,GAAW,IAAKC,GAAe,GAAG,CAAC,EAE7E,MAAMmD,EAAkB1E,GAAM,gBACxB2E,GAAe3E,GAAM,aAE3B,SACE,OAAC,OACC,IAAKwB,EAEL,aAAW,MACTsD,EAAc,EAAE,KAChB,cACA,qBACA,eACA,gFACAJ,EAAkB,kCAAoC,sDACtD,CAAE,YAAaC,KAAiB,MAAO,CACzC,EACA,MAAOD,EAAkB,CAAE,gBAAiB,OAAOA,CAAe,GAAI,EAAI,OAE1E,oBAAC,OAAI,aAAW,MAAGK,GAAgB,EAAG,6DAA6D,EACjG,oBAAC,OACC,aAAW,MAAGD,EAAc,EAAE,QAAS,6CAA8C,CACnF,YAAaJ,CACf,CAAC,EAED,mBAAC,KACC,aAAYlB,EACZ,OAAQjD,GAAe,OACvB,QAAM,gBACJ,GAAGY,IAAW,MAAQ,CAACA,EAAS,GAAK,IAAIA,CAAM,EAAE,aAAanB,GAAM,MAAM,YAAY+C,EAAS,GAC/F,GAAGlD,EAAa,IAAIC,EAAa,EACnC,EACA,QAAS,IAAM,IACb,YAAQ,CACN,MAAO,WACP,WAAY,cACZ,iBAAkB,CAChB,WAAY,YACZ,eAAgB,mBAChB,MAAO,CACL,CACE,QAASE,GAAM,KAAO4C,GAAS,IAC/B,UAAW5C,GAAM,KACjB,aAAc4C,GAAS,KACvB,MAAOA,GAAS,MAChB,MAAOrC,GAAe,MAAQ,CAChC,CACF,CACF,CACF,CAAC,CACH,EAEA,mBAAC,GAAAqE,QAAA,CACC,OAAQvE,EACR,IAAKC,EACL,UAAU,yDACZ,EACF,EACF,KACA,QAAC,OAAI,aAAW,MAAG,2CAA4CwE,EAAc,EAAE,OAAO,EACnF,UAAAlE,OACC,OAAC,OAAI,UAAU,2DACZ,SAAAa,GAAU,OAAS,GAClBA,GAAU,MAAM,CAACrB,EAAW+B,OAC1B,OAAC,GAAAqC,QAAA,CAAkB,UAAU,kBAAkB,QAAQ,OACpD,SAAApE,GADS+B,CAEZ,CACD,EACL,EAEDsB,KACC,OAAC,YACC,GAAG,KACH,MAAOA,GAAuB,GAC9B,KAAM,EACN,UAAU,+FACV,KAAMA,GAAuB,GAC/B,EACE,KACHC,KACC,OAAC,SACC,KAAM,EACN,UAAU,oJACV,KAAMA,GAAsB,GAC9B,EACE,QACJ,OAAC,OAAI,UAAU,8BACZ,SAAAxC,EACCA,EAAYlB,EAAM,CAAE,MAAAoD,EAAO,UAAAC,EAAW,SAAAC,EAAU,eAAAC,EAAgB,QAAAX,EAAS,OAAAR,EAAQ,UAAAY,CAAU,CAAC,EAC1FA,KACF,OAAC,OAAI,UAAU,sDAAuD,SAAA5B,GAAa,YAAY,KAE/F,oBACE,oBAAC,OAAI,UAAU,iEACZ,SAAAwB,GAAS,kBAAmBQ,GAAS,GACxC,EACCpC,EACGA,EAAoBhB,EAAM,CAAE,MAAAoD,EAAO,UAAAC,EAAW,SAAAC,EAAU,eAAAC,CAAe,CAAC,EACxEF,MACE,OAAC,OAAI,UAAU,sFACZ,SAAAT,GAAS,kBAAmBS,GAAa,GAC5C,GAER,EAEJ,EACC,CAACnC,GAAeD,KAAmBjB,EAAM4C,CAAO,KAEjD,QAAC,OACC,aAAW,MACT,0BACA,2CACArC,EAAc,YAAc,WAAa,WAAa,EACxD,EAEC,UAAAA,GAAe,mBACd,OAAC,EAAAkE,QAAA,CACC,SAAUzB,GAAazC,GAAe,eAAiB,YACvD,QAAQ,YACR,KAAMP,GAAM,sBACZ,GAAIA,GAAM,sBAAwB,IAAM,SACxC,QAASsE,EACT,QAASvC,GACT,UAAWxB,EAAc,YAAc,WAAa,SAAW,GAE9D,SAAAA,GAAe,iBAAmB,GACrC,EACE,KACHA,GAAe,iBACd,OAAC,EAAAkE,QAAA,CACC,SAAUzB,GAAazC,GAAe,aAAe,YACrD,QAAQ,UACR,KAAMP,GAAM,oBACZ,GAAIA,GAAM,oBAAsB,IAAM,SACtC,QAASqE,EACT,QAASxC,EACT,UAAWtB,EAAc,YAAc,WAAa,SAAW,GAE9D,SAAAA,GAAe,eAAiB,GACnC,EACE,MACN,GACF,GACF,GAxIKP,GAAM,IAAMA,GAAM,MAyIzB,CAEJ",
4
+ "sourcesContent": ["import { useAiuiContext } from '../AiuiProvider/index.js'\nimport { formatVariantPrice } from './shelfDisplay.js'\nimport Picture from '../../components/picture.js'\nimport Badge from '../../components/badge.js'\nimport { cn } from '../../helpers/utils.js'\nimport { Text } from '../../components/text.js'\nimport Button from '../../components/button.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport { Heading } from '../../components/heading.js'\nimport type { ShelfDisplayItem, ShelfDisplayType } from './shelfDisplay.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport { useRef, useEffect, useMemo, useState } from 'react'\n\nconst componentType = 'image'\nconst componentName = 'product_shelf'\n\nconst SOLD_OUT_PRICE = 9999999.99\n\n// \u516C\u5171\u51FD\u6570\uFF1A\u83B7\u53D6\u4EA7\u54C1\u56FE\u7247URL\u548CaltText\nexport const getProductImage = (data: any) => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n const imageUrl = findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n const altText = findSku?.image?.altText || skuArray?.[0]?.image?.altText || data?.custom_name || data?.title || ''\n\n return {\n imageUrl,\n altText,\n }\n}\n\nexport const ShelfDisplayWrapItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const {\n isDisplayBackImage = false,\n itemShape,\n metafields,\n isTopTag = false,\n isShowTag,\n isShowOriginalPrice,\n isShowShortTitle = false,\n formatPrice,\n renderOriginalPrice,\n renderPriceLabel,\n renderPrice,\n } = configuration || {}\n const { locale = 'es', copyWriting, currencyDisplay } = useAiuiContext()\n const { discounts, discountsCopy } = metafields || {}\n const ref = useRef<HTMLDivElement>(null)\n const [showTags, setShowTags] = useState<string[]>([])\n const [currentPriceTag, setCurrentPriceTag] = useState<string>('')\n const [primaryLoading, setPrimaryLoading] = useState(false)\n const [secondaryLoading, setSecondaryLoading] = useState(false)\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) => {\n const { primaryFun, onAddCart, onBuyNow, onLearnMore, event } = configuration || {}\n\n // \u4F18\u5148\u4F7F\u7528 function props\uFF08\u6839\u636E primaryFun \u503C\uFF09\n if (primaryFun) {\n if (primaryFun === 'AddCart' && onAddCart) {\n return onAddCart(params, index + 1, data, coupon)\n }\n if (primaryFun === 'BuyNow' && onBuyNow) {\n return onBuyNow(params, index + 1, data, coupon)\n }\n if (primaryFun === 'LearnMore' && onLearnMore) {\n return onLearnMore(params, index + 1, data, coupon)\n }\n }\n\n // \u517C\u5BB9\u65E7\u7684 event \u903B\u8F91\n event?.primaryButton?.(params, index + 1, data, coupon)\n }\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) => {\n const { secondaryFun, onAddCart, onBuyNow, onLearnMore, event } = configuration || {}\n\n // \u4F18\u5148\u4F7F\u7528 function props\uFF08\u6839\u636E secondaryFun \u503C\uFF09\n if (secondaryFun) {\n if (secondaryFun === 'AddCart' && onAddCart) {\n return onAddCart(params, index + 1, data, coupon)\n }\n if (secondaryFun === 'BuyNow' && onBuyNow) {\n return onBuyNow(params, index + 1, data, coupon)\n }\n if (secondaryFun === 'LearnMore' && onLearnMore) {\n return onLearnMore(params, index + 1, data, coupon)\n }\n }\n\n // \u517C\u5BB9\u65E7\u7684 event \u903B\u8F91\n event?.secondaryButton?.(params, index + 1, data, coupon)\n }\n\n const variant = useMemo(() => {\n const variants = data?.variants || []\n if (!variants.length) {\n return undefined\n }\n if (!data?.sku) {\n return variants?.[0]\n }\n return variants?.find?.((item: any) => item?.sku === data?.sku) || variants[0]\n }, [data?.sku, data?.variants])\n\n const variantArr = variant?.id?.split?.('/') || []\n const variantId = variantArr?.[variantArr?.length - 1]\n\n const isSoldOut =\n !variant?.availableForSale || variant?.price?.amount === SOLD_OUT_PRICE || variant?.price === SOLD_OUT_PRICE\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const shouldUseCouponPrice = Boolean(isShowOriginalPrice && coupon)\n const currencyCode = data?.price?.currencyCode || 'USD'\n\n const priceInfo = useMemo(\n () =>\n formatVariantPrice({\n locale,\n amount: shouldUseCouponPrice ? coupon?.variant_price4wscode : variant?.price,\n baseAmount: shouldUseCouponPrice ? variant?.price : 0,\n currencyCode,\n currencyDisplay,\n customFormatPrice: formatPrice,\n }),\n [currencyCode, locale, shouldUseCouponPrice, coupon?.variant_price4wscode, variant, formatPrice]\n )\n\n const { price, basePrice, discount, discountAmount } = priceInfo\n\n const { imageUrl, altText } = getProductImage(data)\n\n const displayTitle = data?.custom_name || data?.title\n const currentDisplayTitle = isShowShortTitle\n ? variant?.metafields?.infos?.page_short_title || displayTitle\n : displayTitle\n const displayDescription = data?.custom_description || data?.description\n\n const showPrice = () => {\n if (coupon?.value_type === 'fixed_amount') {\n const amountStr = discountAmount || ''\n const match = amountStr.match(/^(.*?)(\\d[\\d.,]*)(.*)$/)\n if (match) {\n const [, prefix, numeric, suffix] = match\n let updatedNumeric = numeric\n if (numeric.endsWith('.00')) {\n updatedNumeric = numeric.replace(/\\.00$/, '')\n } else if (numeric.endsWith(',00')) {\n updatedNumeric = numeric.replace(/,00$/, '')\n }\n return `${prefix}${updatedNumeric}${suffix}`\n }\n return amountStr\n }\n return discount || ''\n }\n\n // \u5904\u7406\u6807\u7B7E\n useEffect(() => {\n let handleTags: string[] = []\n if (discount || discountAmount) {\n const discountTag = `${showPrice()} ${discounts?.off || discountsCopy?.off || ''}`\n setCurrentPriceTag(discountTag)\n handleTags.push(discountTag)\n }\n const newTags =\n data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2) || []\n setShowTags(handleTags.concat(newTags))\n }, [data?.tags, discount, discountAmount, discounts?.off, discountsCopy?.off])\n\n useExposure(ref, {\n componentType,\n componentName,\n componentTitle: displayTitle,\n componentDescription: displayDescription,\n position: configuration?.index + 1,\n })\n\n const handlePrimaryClick = async () => {\n if (primaryLoading) return\n if (data?.custom_primary_link) return\n setPrimaryLoading(true)\n try {\n await onPrimaryButton(data, configuration?.index, configuration, coupon)\n } finally {\n setPrimaryLoading(false)\n }\n }\n\n const handleSecondaryClick = async () => {\n if (secondaryLoading) return\n if (data?.custom_secondary_link) return\n setSecondaryLoading(true)\n try {\n await onSecondaryButton(data, configuration?.index, configuration, coupon)\n } finally {\n setSecondaryLoading(false)\n }\n }\n\n const bottomContent = () => {\n return (\n <>\n {isShowTag && showTags?.length > 0 ? (\n <div className=\"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden\">\n {showTags?.map?.((item: any, index: number) => (\n <Badge key={index} className=\"shelf-items-tag\" variant=\"fill\">\n {item}\n </Badge>\n ))}\n </div>\n ) : null}\n {currentDisplayTitle ? (\n <Heading\n as=\"h3\"\n title={currentDisplayTitle || ''}\n size={2}\n className=\"shelf-display-product-title lg-desktop:h-[58px] text-info-primary line-clamp-2 h-12\"\n html={currentDisplayTitle || ''}\n />\n ) : null}\n <Text\n size={2}\n className=\"lg-desktop:text-lg desktop:h-[24px] lg-desktop:h-[28px] desktop:text-base shelf-display-product-description text-info-primary line-clamp-1 h-[20px] text-sm\"\n html={displayDescription || ''}\n />\n <div className=\"mb-2 mt-4 flex items-center\">\n {renderPrice ? (\n renderPrice(data, { price, basePrice, discount, discountAmount, variant, coupon, isSoldOut })\n ) : isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{copyWriting?.soldOutText}</div>\n ) : (\n <>\n <div className=\"final-price tablet:text-xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n {renderOriginalPrice\n ? renderOriginalPrice(data, { price, basePrice, discount, discountAmount })\n : basePrice && (\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n )}\n </>\n )}\n </div>\n {!renderPrice && renderPriceLabel?.(data, variant)}\n {/* \u6309\u94AE\u7EC4 */}\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n configuration.direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {configuration?.secondaryButton ? (\n <Button\n disabled={isSoldOut && configuration?.secondaryFun !== 'LearnMore'}\n variant=\"secondary\"\n href={data?.custom_secondary_link}\n as={data?.custom_secondary_link ? 'a' : 'button'}\n onClick={handleSecondaryClick}\n loading={secondaryLoading}\n className={configuration.direction === 'vertical' ? 'w-full' : ''}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n ) : null}\n {configuration?.primaryButton ? (\n <Button\n disabled={isSoldOut && configuration?.primaryFun !== 'LearnMore'}\n variant=\"primary\"\n href={data?.custom_primary_link}\n as={data?.custom_primary_link ? 'a' : 'button'}\n onClick={handlePrimaryClick}\n loading={primaryLoading}\n className={configuration.direction === 'vertical' ? 'w-full' : ''}\n >\n {configuration?.primaryButton || ''}\n </Button>\n ) : null}\n </div>\n </>\n )\n }\n\n const custom_bg_image = data?.custom_bg_image\n const custom_theme = data?.custom_theme\n\n return (\n <div\n ref={ref}\n key={data?.id || data?.handle}\n className={cn(\n 'box-border w-full cursor-pointer overflow-hidden duration-300',\n 'rounded-box',\n 'lg-desktop:aspect-w-[404] lg-desktop:aspect-h-[480] desktop:aspect-w-[316] desktop:aspect-h-[384]',\n 'laptop:aspect-w-[288] laptop:aspect-h-[360] aspect-w-[296] aspect-h-[360] relative',\n 'md-tablet:h-[360px] shelf-display-item',\n custom_bg_image ? 'bg-cover bg-center bg-no-repeat' : 'bg-background tablet:hover:bg-info-white',\n { 'aiui-dark': custom_theme === 'dark' }\n )}\n style={custom_bg_image ? { backgroundImage: `url(${custom_bg_image})` } : undefined}\n >\n {isDisplayBackImage ? (\n <div className=\"absolute inset-0 box-border overflow-hidden\">\n <div className=\"relative inset-0 size-full\">\n <Picture\n source={imageUrl}\n alt={altText}\n className={cn('flex h-full justify-center object-cover [&_img]:w-auto', {\n 'opacity-0': custom_bg_image,\n })}\n />\n <div className=\"desktop:p-6 absolute inset-x-0 bottom-0 box-border overflow-hidden p-4\">\n {bottomContent()}\n </div>\n </div>\n </div>\n ) : (\n <div className=\"desktop:p-6 absolute inset-0 box-border flex flex-col justify-between overflow-hidden p-4\">\n {currentPriceTag && isTopTag && (\n <Badge className=\"shelf-prices-tag absolute left-4 top-4 z-10\" variant=\"fill\">\n {currentPriceTag || ''}\n </Badge>\n )}\n <div\n className={cn(\n 'lg-desktop:h-[195px] shelf-display-item-image relative mb-2 inline-block h-[140px] w-full flex-1 overflow-hidden',\n { 'opacity-0': custom_bg_image }\n )}\n >\n <a\n aria-label={displayTitle}\n target={configuration?.target}\n href={trackUrlRef(\n `${locale === 'us' || !locale ? '' : `/${locale}`}/products/${data?.handle}?variant=${variantId}`,\n `${componentType}_${componentName}`\n )}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'select_item',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: [\n {\n item_id: data?.sku || variant?.sku,\n item_name: data?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: configuration?.index + 1,\n },\n ],\n },\n })\n }}\n >\n <Picture\n source={imageUrl}\n alt={altText}\n className=\"flex h-full justify-center object-cover [&_img]:w-auto\"\n />\n </a>\n </div>\n {bottomContent()}\n </div>\n )}\n </div>\n )\n}\n\nexport const ShelfDisplayHorizontalItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const {\n itemShape,\n itemLength,\n metafields,\n isShowShortTitle,\n formatPrice,\n renderOriginalPrice,\n renderPriceLabel,\n renderPrice,\n } = configuration || {}\n const { discounts, discountsCopy } = metafields || {}\n const { locale = 'us', copyWriting, currencyDisplay } = useAiuiContext()\n const [showTags, setShowTags] = useState<string[]>([])\n const ref = useRef<HTMLDivElement>(null)\n const [primaryLoading, setPrimaryLoading] = useState(false)\n const [secondaryLoading, setSecondaryLoading] = useState(false)\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) => {\n const { primaryFun, onAddCart, onBuyNow, onLearnMore, event } = configuration || {}\n\n // \u4F18\u5148\u4F7F\u7528 function props\uFF08\u6839\u636E primaryFun \u503C\uFF09\n if (primaryFun) {\n if (primaryFun === 'AddCart' && onAddCart) {\n return onAddCart(params, index + 1, data, coupon)\n }\n if (primaryFun === 'BuyNow' && onBuyNow) {\n return onBuyNow(params, index + 1, data, coupon)\n }\n if (primaryFun === 'LearnMore' && onLearnMore) {\n return onLearnMore(params, index + 1, data, coupon)\n }\n }\n\n // \u517C\u5BB9\u65E7\u7684 event \u903B\u8F91\n event?.primaryButton?.(params, index + 1, data, coupon)\n }\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) => {\n const { secondaryFun, onAddCart, onBuyNow, onLearnMore, event } = configuration || {}\n\n // \u4F18\u5148\u4F7F\u7528 function props\uFF08\u6839\u636E secondaryFun \u503C\uFF09\n if (secondaryFun) {\n if (secondaryFun === 'AddCart' && onAddCart) {\n return onAddCart(params, index + 1, data, coupon)\n }\n if (secondaryFun === 'BuyNow' && onBuyNow) {\n return onBuyNow(params, index + 1, data, coupon)\n }\n if (secondaryFun === 'LearnMore' && onLearnMore) {\n return onLearnMore(params, index + 1, data, coupon)\n }\n }\n\n // \u517C\u5BB9\u65E7\u7684 event \u903B\u8F91\n event?.secondaryButton?.(params, index + 1, data, coupon)\n }\n\n const variant = useMemo(() => {\n const variants = data?.variants || []\n if (!variants.length) {\n return undefined\n }\n if (!data?.sku) {\n return variants[0]\n }\n return variants.find((item: any) => item?.sku === data?.sku) || variants[0]\n }, [data?.sku, data?.variants])\n\n const variantArr = variant?.id?.split?.('/') || []\n const variantId = variantArr?.[variantArr?.length - 1]\n\n const isSoldOut =\n !variant?.availableForSale || variant?.price?.amount === SOLD_OUT_PRICE || variant?.price === SOLD_OUT_PRICE\n const isShowTag = configuration?.isShowTag\n const isShowOriginalPrice = configuration?.isShowOriginalPrice\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const shouldUseCouponPrice = Boolean(isShowOriginalPrice && coupon)\n const currencyCode = data?.price?.currencyCode || 'USD'\n\n const priceInfo = useMemo(\n () =>\n formatVariantPrice({\n locale,\n amount: shouldUseCouponPrice ? coupon?.variant_price4wscode : variant?.price,\n baseAmount: shouldUseCouponPrice ? variant?.price : 0,\n currencyCode,\n currencyDisplay,\n customFormatPrice: formatPrice,\n }),\n [currencyCode, locale, shouldUseCouponPrice, coupon?.variant_price4wscode, variant, formatPrice]\n )\n\n const { price, basePrice, discount, discountAmount } = priceInfo\n\n const { imageUrl, altText } = getProductImage(data)\n\n const displayTitle = data?.custom_name || data?.title\n const currentDisplayTitle = isShowShortTitle\n ? variant?.metafields?.infos?.page_short_title || displayTitle\n : displayTitle\n const displayDescription = data?.custom_description || data?.description\n\n useExposure(ref, {\n componentType,\n componentName,\n componentTitle: displayTitle,\n componentDescription: displayDescription,\n position: configuration?.index + 1,\n })\n\n const handlePrimaryClick = async () => {\n if (primaryLoading) return\n if (data?.custom_primary_link) return\n setPrimaryLoading(true)\n try {\n await onPrimaryButton(data, configuration?.index, configuration, coupon)\n } finally {\n setPrimaryLoading(false)\n }\n }\n\n const handleSecondaryClick = async () => {\n if (secondaryLoading) return\n if (data?.custom_secondary_link) return\n setSecondaryLoading(true)\n try {\n await onSecondaryButton(data, configuration?.index, configuration, coupon)\n } finally {\n setSecondaryLoading(false)\n }\n }\n\n const showSizeClass = (): {\n boxItem: string\n imgItem: string\n wrap: string\n } => {\n if (itemLength >= 2) {\n return {\n boxItem: 'lg-desktop:max-w-[401px] desktop:max-w-[292px] max-w-full',\n imgItem:\n 'm-tablet:m-auto lg-desktop:max-w-[330px] lg-desktop:max-h-[330px] desktop:max-w-[260px] desktop:max-h-[260px] max-w-[138px] max-h-[138px]',\n wrap: 'lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[480] desktop:aspect-w-[648] desktop:aspect-h-[380] laptop:aspect-w-[440] laptop:aspect-h-[356] tablet:aspect-w-[346] tablet:aspect-h-[360] md-tablet:w-full',\n }\n }\n return {\n boxItem: 'lg-desktop:max-w-[401px] desktop:max-w-[292px] laptop:max-w-[289px] max-w-[262px]',\n imgItem:\n 'md-tablet:m-auto lg-desktop:max-w-[450px] lg-desktop:max-h-[450px] desktop:max-w-[332px] desktop:max-h-[332px] max-w-[312px] max-h-[312px]',\n wrap: 'lg-desktop:aspect-w-[1664] lg-desktop:aspect-h-[480] desktop:aspect-w-[1312] desktop:aspect-h-[380] laptop:aspect-w-[896] laptop:aspect-h-[356] tablet:aspect-w-[704] tablet:aspect-h-[360] md-tablet:w-full',\n }\n }\n\n const handleWrapClass = () => {\n if (itemLength >= 2) {\n return 'flex flex-col justify-between desktop:gap-12 desktop:flex-row desktop:justify-center desktop:items-center'\n }\n return 'flex justify-center items-center gap-6 md-tablet:flex-col'\n }\n\n const showPrice = () => {\n if (coupon?.value_type === 'fixed_amount') {\n const amountStr = discountAmount || ''\n const match = amountStr.match(/^(.*?)(\\d[\\d.,]*)(.*)$/)\n if (match) {\n const [, prefix, numeric, suffix] = match\n let updatedNumeric = numeric\n if (numeric.endsWith('.00')) {\n updatedNumeric = numeric.replace(/\\.00$/, '')\n } else if (numeric.endsWith(',00')) {\n updatedNumeric = numeric.replace(/,00$/, '')\n }\n return `${prefix}${updatedNumeric}${suffix}`\n }\n return amountStr\n }\n return discount || ''\n }\n\n // \u5904\u7406\u6807\u7B7E\n useEffect(() => {\n let handleTags: string[] = []\n if (discount || discountAmount) {\n const discountTag = `${showPrice()} ${discounts?.off || discountsCopy?.off || ''}`\n handleTags.push(discountTag)\n }\n const newTags =\n data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2) || []\n setShowTags(handleTags.concat(newTags))\n }, [data?.tags, discount, discountAmount, discounts?.off, discountsCopy?.off])\n\n const custom_bg_image = data?.custom_bg_image\n const custom_theme = data?.custom_theme\n\n return (\n <div\n ref={ref}\n key={data?.id || data?.handle}\n className={cn(\n showSizeClass().wrap,\n 'rounded-box',\n 'shelf-display-item',\n 'duration-300',\n 'md-tablet:h-[360px] relative box-border w-full cursor-pointer overflow-hidden',\n custom_bg_image ? 'bg-cover bg-center bg-no-repeat' : 'bg-container-secondary-1 tablet:hover:bg-info-white',\n { 'aiui-dark': custom_theme === 'dark' }\n )}\n style={custom_bg_image ? { backgroundImage: `url(${custom_bg_image})` } : undefined}\n >\n <div className={cn(handleWrapClass(), 'desktop:p-6 absolute inset-0 box-border overflow-hidden p-4')}>\n <div\n className={cn(showSizeClass().imgItem, 'desktop:mb-0 relative mb-1 overflow-hidden', {\n 'opacity-0': custom_bg_image,\n })}\n >\n <a\n aria-label={displayTitle}\n target={configuration?.target}\n href={trackUrlRef(\n `${locale === 'us' || !locale ? '' : `/${locale}`}/products/${data?.handle}?variant=${variantId}`,\n `${componentType}_${componentName}`\n )}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'select_item',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: [\n {\n item_id: data?.sku || variant?.sku,\n item_name: data?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: configuration?.index + 1,\n },\n ],\n },\n })\n }}\n >\n <Picture\n source={imageUrl}\n alt={altText}\n className=\"flex h-full justify-center object-cover [&_img]:w-auto\"\n />\n </a>\n </div>\n <div className={cn('flex flex-col items-start justify-center', showSizeClass().boxItem)}>\n {isShowTag && (\n <div className=\"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden\">\n {showTags?.length > 0 &&\n showTags?.map?.((item: any, index: number) => (\n <Badge key={index} className=\"shelf-items-tag\" variant=\"fill\">\n {item}\n </Badge>\n ))}\n </div>\n )}\n {currentDisplayTitle ? (\n <Heading\n as=\"h3\"\n title={currentDisplayTitle || ''}\n size={2}\n className=\"shelf-display-product-title lg-desktop:h-[58px] text-info-primary mb-1 line-clamp-2 h-[48px]\"\n html={currentDisplayTitle || ''}\n />\n ) : null}\n {displayDescription ? (\n <Text\n size={2}\n className=\"lg-desktop:text-lg lg-desktop:h-[26px] desktop:text-base desktop:h-6 shelf-display-product-description text-info-primary line-clamp-1 h-5 text-sm\"\n html={displayDescription || ''}\n />\n ) : null}\n <div className=\"mb-2 mt-5 flex items-center\">\n {renderPrice ? (\n renderPrice(data, { price, basePrice, discount, discountAmount, variant, coupon, isSoldOut })\n ) : isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{copyWriting?.soldOutText}</div>\n ) : (\n <>\n <div className=\"final-price tablet:text-xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n {renderOriginalPrice\n ? renderOriginalPrice(data, { price, basePrice, discount, discountAmount })\n : basePrice && (\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n )}\n </>\n )}\n </div>\n {!renderPrice && renderPriceLabel?.(data, variant)}\n {/* \u6309\u94AE\u7EC4 */}\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n configuration.direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {configuration?.secondaryButton ? (\n <Button\n disabled={isSoldOut && configuration?.secondaryFun !== 'LearnMore'}\n variant=\"secondary\"\n href={data?.custom_secondary_link}\n as={data?.custom_secondary_link ? 'a' : 'button'}\n onClick={handleSecondaryClick}\n loading={secondaryLoading}\n className={configuration.direction === 'vertical' ? 'w-full' : ''}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n ) : null}\n {configuration?.primaryButton ? (\n <Button\n disabled={isSoldOut && configuration?.primaryFun !== 'LearnMore'}\n variant=\"primary\"\n href={data?.custom_primary_link}\n as={data?.custom_primary_link ? 'a' : 'button'}\n onClick={handlePrimaryClick}\n loading={primaryLoading}\n className={configuration.direction === 'vertical' ? 'w-full' : ''}\n >\n {configuration?.primaryButton || ''}\n </Button>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["shelfDisplayItem_exports", "__export", "ShelfDisplayHorizontalItem", "ShelfDisplayWrapItem", "getProductImage", "__toCommonJS", "import_jsx_runtime", "import_AiuiProvider", "import_shelfDisplay", "import_picture", "import_badge", "import_utils", "import_text", "import_button", "import_track", "import_trackUrlRef", "import_heading", "import_useExposure", "import_react", "componentType", "componentName", "SOLD_OUT_PRICE", "data", "sku", "skuArray", "findSku", "item", "imageUrl", "altText", "configuration", "isDisplayBackImage", "itemShape", "metafields", "isTopTag", "isShowTag", "isShowOriginalPrice", "isShowShortTitle", "formatPrice", "renderOriginalPrice", "renderPriceLabel", "renderPrice", "locale", "copyWriting", "currencyDisplay", "discounts", "discountsCopy", "ref", "showTags", "setShowTags", "currentPriceTag", "setCurrentPriceTag", "primaryLoading", "setPrimaryLoading", "secondaryLoading", "setSecondaryLoading", "onPrimaryButton", "params", "index", "coupon", "primaryFun", "onAddCart", "onBuyNow", "onLearnMore", "event", "onSecondaryButton", "secondaryFun", "variant", "variants", "variantArr", "variantId", "isSoldOut", "shouldUseCouponPrice", "currencyCode", "priceInfo", "price", "basePrice", "discount", "discountAmount", "displayTitle", "currentDisplayTitle", "displayDescription", "showPrice", "amountStr", "match", "prefix", "numeric", "suffix", "updatedNumeric", "handleTags", "discountTag", "newTags", "handlePrimaryClick", "handleSecondaryClick", "bottomContent", "Badge", "Button", "custom_bg_image", "custom_theme", "Picture", "itemLength", "showSizeClass", "handleWrapClass"]
7
7
  }