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

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 (216) hide show
  1. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.d.ts +1 -0
  2. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js +2 -0
  3. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js.map +7 -0
  4. package/dist/cjs/components/credits/context/hooks/useSubscriptions.d.ts +9 -0
  5. package/dist/cjs/components/credits/context/hooks/useSubscriptions.js +2 -0
  6. package/dist/cjs/components/credits/context/hooks/useSubscriptions.js.map +7 -0
  7. package/dist/cjs/components/credits/context/utils.d.ts +4 -0
  8. package/dist/cjs/components/credits/context/utils.js +1 -1
  9. package/dist/cjs/components/credits/context/utils.js.map +3 -3
  10. package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
  11. package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +3 -3
  12. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js +2 -0
  13. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js.map +7 -0
  14. package/dist/cjs/components/credits/creditsBenefits/index.js +3 -3
  15. package/dist/cjs/components/credits/creditsBenefits/index.js.map +2 -2
  16. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js +1 -1
  17. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js.map +3 -3
  18. package/dist/cjs/components/credits/creditsFaq/index.js +1 -1
  19. package/dist/cjs/components/credits/creditsFaq/index.js.map +3 -3
  20. package/dist/cjs/components/credits/creditsInfoCard/index.js +1 -1
  21. package/dist/cjs/components/credits/creditsInfoCard/index.js.map +3 -3
  22. package/dist/cjs/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
  23. package/dist/cjs/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +3 -3
  24. package/dist/cjs/components/credits/creditsMemberPrice/MemberPriceItem.js +1 -1
  25. package/dist/cjs/components/credits/creditsMemberPrice/MemberPriceItem.js.map +3 -3
  26. package/dist/cjs/components/credits/creditsMemberPrice/Pagination.d.ts +7 -0
  27. package/dist/cjs/components/credits/creditsMemberPrice/Pagination.js +2 -0
  28. package/dist/cjs/components/credits/creditsMemberPrice/Pagination.js.map +7 -0
  29. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/CountrySelect.js +1 -1
  30. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/CountrySelect.js.map +3 -3
  31. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/StateSelect.js +1 -1
  32. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/StateSelect.js.map +3 -3
  33. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
  34. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js.map +3 -3
  35. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
  36. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
  37. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
  38. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +3 -3
  39. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js +1 -1
  40. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +3 -3
  41. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  42. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
  43. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
  44. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +3 -3
  45. package/dist/cjs/components/credits/modal/MyRewardsModal.js +1 -1
  46. package/dist/cjs/components/credits/modal/MyRewardsModal.js.map +3 -3
  47. package/dist/cjs/components/credits/modal/activitiesModal.js +1 -1
  48. package/dist/cjs/components/credits/modal/activitiesModal.js.map +3 -3
  49. package/dist/cjs/components/credits/modal/creditsUploadReceiptModal.js +1 -1
  50. package/dist/cjs/components/credits/modal/creditsUploadReceiptModal.js.map +3 -3
  51. package/dist/cjs/components/credits/modal/modalContainer.js +1 -1
  52. package/dist/cjs/components/credits/modal/modalContainer.js.map +3 -3
  53. package/dist/cjs/components/credits/modal/subscribeModal.js +1 -1
  54. package/dist/cjs/components/credits/modal/subscribeModal.js.map +3 -3
  55. package/dist/cjs/components/credits/modal/tip.js +1 -1
  56. package/dist/cjs/components/credits/modal/tip.js.map +3 -3
  57. package/dist/cjs/components/index.d.ts +2 -2
  58. package/dist/cjs/components/index.js +1 -1
  59. package/dist/cjs/components/index.js.map +2 -2
  60. package/dist/cjs/components/registration/authCodeActivate/index.js +1 -1
  61. package/dist/cjs/components/registration/authCodeActivate/index.js.map +3 -3
  62. package/dist/cjs/components/registration/modalContainer.js +1 -1
  63. package/dist/cjs/components/registration/modalContainer.js.map +3 -3
  64. package/dist/cjs/constants.d.ts +1 -0
  65. package/dist/cjs/constants.js +2 -0
  66. package/dist/cjs/constants.js.map +7 -0
  67. package/dist/cjs/helpers/fetchResponse.d.ts +14 -0
  68. package/dist/cjs/helpers/fetchResponse.js +2 -0
  69. package/dist/cjs/helpers/fetchResponse.js.map +7 -0
  70. package/dist/cjs/helpers/fetcher.d.ts +2 -0
  71. package/dist/cjs/helpers/fetcher.js +2 -0
  72. package/dist/cjs/helpers/fetcher.js.map +7 -0
  73. package/dist/cjs/helpers/index.d.ts +2 -0
  74. package/dist/cjs/helpers/index.js +2 -0
  75. package/dist/cjs/helpers/index.js.map +7 -0
  76. package/dist/cjs/helpers/track.d.ts +19 -0
  77. package/dist/cjs/helpers/track.js +2 -0
  78. package/dist/cjs/helpers/track.js.map +7 -0
  79. package/dist/cjs/helpers/utils.d.ts +3 -0
  80. package/dist/cjs/helpers/utils.js +2 -0
  81. package/dist/cjs/helpers/utils.js.map +7 -0
  82. package/dist/cjs/index.d.ts +3 -2
  83. package/dist/cjs/index.js +1 -1
  84. package/dist/cjs/index.js.map +2 -2
  85. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.d.ts +1 -0
  86. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js +2 -0
  87. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js.map +7 -0
  88. package/dist/esm/components/credits/context/hooks/useSubscriptions.d.ts +9 -0
  89. package/dist/esm/components/credits/context/hooks/useSubscriptions.js +2 -0
  90. package/dist/esm/components/credits/context/hooks/useSubscriptions.js.map +7 -0
  91. package/dist/esm/components/credits/context/utils.d.ts +4 -0
  92. package/dist/esm/components/credits/context/utils.js +1 -1
  93. package/dist/esm/components/credits/context/utils.js.map +3 -3
  94. package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
  95. package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +3 -3
  96. package/dist/esm/components/credits/creditsBenefits/benefitItem.js +2 -0
  97. package/dist/esm/components/credits/creditsBenefits/benefitItem.js.map +7 -0
  98. package/dist/esm/components/credits/creditsBenefits/index.js +3 -3
  99. package/dist/esm/components/credits/creditsBenefits/index.js.map +2 -2
  100. package/dist/esm/components/credits/creditsCash/RedeemableItem.js +1 -1
  101. package/dist/esm/components/credits/creditsCash/RedeemableItem.js.map +3 -3
  102. package/dist/esm/components/credits/creditsFaq/index.js +1 -1
  103. package/dist/esm/components/credits/creditsFaq/index.js.map +3 -3
  104. package/dist/esm/components/credits/creditsInfoCard/index.js +1 -1
  105. package/dist/esm/components/credits/creditsInfoCard/index.js.map +2 -2
  106. package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
  107. package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +3 -3
  108. package/dist/esm/components/credits/creditsMemberPrice/MemberPriceItem.js +1 -1
  109. package/dist/esm/components/credits/creditsMemberPrice/MemberPriceItem.js.map +3 -3
  110. package/dist/esm/components/credits/creditsMemberPrice/Pagination.d.ts +7 -0
  111. package/dist/esm/components/credits/creditsMemberPrice/Pagination.js +2 -0
  112. package/dist/esm/components/credits/creditsMemberPrice/Pagination.js.map +7 -0
  113. package/dist/esm/components/credits/creditsRedeemList/AddressForm/CountrySelect.js +1 -1
  114. package/dist/esm/components/credits/creditsRedeemList/AddressForm/CountrySelect.js.map +2 -2
  115. package/dist/esm/components/credits/creditsRedeemList/AddressForm/StateSelect.js +1 -1
  116. package/dist/esm/components/credits/creditsRedeemList/AddressForm/StateSelect.js.map +2 -2
  117. package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
  118. package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js.map +2 -2
  119. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
  120. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
  121. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
  122. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +3 -3
  123. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.js +1 -1
  124. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +2 -2
  125. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  126. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
  127. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
  128. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +3 -3
  129. package/dist/esm/components/credits/modal/MyRewardsModal.js +1 -1
  130. package/dist/esm/components/credits/modal/MyRewardsModal.js.map +2 -2
  131. package/dist/esm/components/credits/modal/activitiesModal.js +1 -1
  132. package/dist/esm/components/credits/modal/activitiesModal.js.map +3 -3
  133. package/dist/esm/components/credits/modal/creditsUploadReceiptModal.js +1 -1
  134. package/dist/esm/components/credits/modal/creditsUploadReceiptModal.js.map +3 -3
  135. package/dist/esm/components/credits/modal/modalContainer.js +1 -1
  136. package/dist/esm/components/credits/modal/modalContainer.js.map +3 -3
  137. package/dist/esm/components/credits/modal/subscribeModal.js +1 -1
  138. package/dist/esm/components/credits/modal/subscribeModal.js.map +3 -3
  139. package/dist/esm/components/credits/modal/tip.js +1 -1
  140. package/dist/esm/components/credits/modal/tip.js.map +3 -3
  141. package/dist/esm/components/index.d.ts +2 -2
  142. package/dist/esm/components/index.js +1 -1
  143. package/dist/esm/components/index.js.map +2 -2
  144. package/dist/esm/components/registration/authCodeActivate/index.js +1 -1
  145. package/dist/esm/components/registration/authCodeActivate/index.js.map +3 -3
  146. package/dist/esm/components/registration/modalContainer.js +1 -1
  147. package/dist/esm/components/registration/modalContainer.js.map +3 -3
  148. package/dist/esm/constants.d.ts +1 -0
  149. package/dist/esm/constants.js +2 -0
  150. package/dist/esm/constants.js.map +7 -0
  151. package/dist/esm/helpers/fetchResponse.d.ts +14 -0
  152. package/dist/esm/helpers/fetchResponse.js +2 -0
  153. package/dist/esm/helpers/fetchResponse.js.map +7 -0
  154. package/dist/esm/helpers/fetcher.d.ts +2 -0
  155. package/dist/esm/helpers/fetcher.js +2 -0
  156. package/dist/esm/helpers/fetcher.js.map +7 -0
  157. package/dist/esm/helpers/index.d.ts +2 -0
  158. package/dist/esm/helpers/index.js +2 -0
  159. package/dist/esm/helpers/index.js.map +7 -0
  160. package/dist/esm/helpers/track.d.ts +19 -0
  161. package/dist/esm/helpers/track.js +2 -0
  162. package/dist/esm/helpers/track.js.map +7 -0
  163. package/dist/esm/helpers/utils.d.ts +3 -0
  164. package/dist/esm/helpers/utils.js +2 -0
  165. package/dist/esm/helpers/utils.js.map +7 -0
  166. package/dist/esm/index.d.ts +3 -2
  167. package/dist/esm/index.js +1 -1
  168. package/dist/esm/index.js.map +2 -2
  169. package/package.json +3 -3
  170. package/src/components/credits/context/utils.ts +9 -0
  171. package/src/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.tsx +21 -18
  172. package/src/components/credits/creditsBenefits/BenefitItem.tsx +3 -2
  173. package/src/components/credits/creditsBenefits/index.tsx +1 -1
  174. package/src/components/credits/creditsCash/RedeemableItem.tsx +9 -4
  175. package/src/components/credits/creditsFaq/index.tsx +2 -1
  176. package/src/components/credits/creditsInfoCard/index.tsx +2 -1
  177. package/src/components/credits/creditsMemberPrice/CreditsMemberPrice.tsx +37 -112
  178. package/src/components/credits/creditsMemberPrice/MemberPriceItem.tsx +32 -9
  179. package/src/components/credits/creditsMemberPrice/Pagination.tsx +113 -0
  180. package/src/components/credits/creditsRedeemList/AddressForm/CountrySelect.tsx +2 -1
  181. package/src/components/credits/creditsRedeemList/AddressForm/StateSelect.tsx +2 -1
  182. package/src/components/credits/creditsRedeemList/AddressForm/index.tsx +2 -1
  183. package/src/components/credits/creditsRedeemList/CreditsRedeemList.tsx +2 -1
  184. package/src/components/credits/creditsRedeemList/RedeemProductModal/Address.tsx +2 -1
  185. package/src/components/credits/creditsRedeemList/RedeemProductModal/Success.tsx +2 -1
  186. package/src/components/credits/creditsRedeemList/RedeemableItem.tsx +2 -1
  187. package/src/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.tsx +14 -3
  188. package/src/components/credits/modal/MyRewardsModal.tsx +2 -1
  189. package/src/components/credits/modal/activitiesModal.tsx +2 -1
  190. package/src/components/credits/modal/creditsUploadReceiptModal.tsx +2 -1
  191. package/src/components/credits/modal/modalContainer.tsx +2 -1
  192. package/src/components/credits/modal/subscribeModal.tsx +2 -1
  193. package/src/components/credits/modal/tip.tsx +2 -1
  194. package/src/components/index.ts +2 -2
  195. package/src/components/registration/authCodeActivate/index.tsx +1 -1
  196. package/src/components/registration/modalContainer.tsx +2 -1
  197. package/src/constants.ts +1 -0
  198. package/src/index.ts +3 -2
  199. package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js +0 -2
  200. package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js.map +0 -7
  201. package/dist/esm/components/credits/creditsBenefits/BenefitItem.js +0 -2
  202. package/dist/esm/components/credits/creditsBenefits/BenefitItem.js.map +0 -7
  203. /package/dist/cjs/components/credits/creditsBenefits/{BenefitItem.d.ts → benefitItem.d.ts} +0 -0
  204. /package/dist/cjs/components/credits/creditsBenefits/{IconInfo.d.ts → iconInfo.d.ts} +0 -0
  205. /package/dist/cjs/components/credits/creditsBenefits/{IconInfo.js → iconInfo.js} +0 -0
  206. /package/dist/cjs/components/credits/creditsBenefits/{IconInfo.js.map → iconInfo.js.map} +0 -0
  207. /package/dist/cjs/templates/{Credits.d.ts → credits.d.ts} +0 -0
  208. /package/dist/cjs/templates/{Credits.js → credits.js} +0 -0
  209. /package/dist/cjs/templates/{Credits.js.map → credits.js.map} +0 -0
  210. /package/dist/esm/components/credits/creditsBenefits/{BenefitItem.d.ts → benefitItem.d.ts} +0 -0
  211. /package/dist/esm/components/credits/creditsBenefits/{IconInfo.d.ts → iconInfo.d.ts} +0 -0
  212. /package/dist/esm/components/credits/creditsBenefits/{IconInfo.js → iconInfo.js} +0 -0
  213. /package/dist/esm/components/credits/creditsBenefits/{IconInfo.js.map → iconInfo.js.map} +0 -0
  214. /package/dist/esm/templates/{Credits.d.ts → credits.d.ts} +0 -0
  215. /package/dist/esm/templates/{Credits.js → credits.js} +0 -0
  216. /package/dist/esm/templates/{Credits.js.map → credits.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsInfoCard/index.tsx"],
4
- "sourcesContent": ["import { Button, Container, Text } from '@anker-in/headless-ui'\n\nimport { useCallback, useState } from 'react'\nimport { useCreditsContext } from '../context/provider'\nimport { numberFormat } from '../context/utils'\nimport ActivitiesModal from '../modal/activitiesModal'\nimport MyRewardsModal from '../modal/MyRewardsModal'\nimport { gaNormalClick, classNames as cn, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'\n\ntype ButtonConfig = {\n text: string\n type: 'activities' | 'rewards'\n}\nexport type CreditsInfoCardCopy = {\n balanceLabel: string\n comingSoonLabel: string\n comingSoonTips: string\n buttons: ButtonConfig[]\n}\n\nexport function CreditsInfoCard({ copy, id }: { copy: CreditsInfoCardCopy; id?: string }) {\n const [openActivities, setOpenActivities] = useState(false)\n const [openRewards, setOpenRewards] = useState(false)\n const [hover, setHover] = useState<boolean>(false)\n const { creditInfo, pageCommon } = useCreditsContext()\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const handleButtonClick = useCallback((buttonConfig: ButtonConfig) => {\n gaNormalClick({ position: 'info_card', label: buttonConfig.text })\n\n if (buttonConfig.type) {\n switch (buttonConfig.type) {\n case 'activities':\n setOpenActivities(true)\n break\n case 'rewards':\n setOpenRewards(true)\n break\n }\n }\n }, [])\n\n return (\n <Container asChild id={id} className=\"-mb-[86px] -translate-y-[86px] x:-mb-[30px] x:-translate-y-[30px]\">\n <div\n className={cn(\n 'mx-auto flex justify-between items-center rounded-[12px] border border-white px-[24px] py-[40px]',\n 'l:flex-col l:items-start',\n 'min-l:px-[48px]',\n 'min-xl:px-[100px]',\n !rounded && 'rounded-none'\n )}\n style={{\n background:\n 'linear-gradient(119.61deg, rgba(250, 250, 250, 0.6) 38.58%, rgba(255, 255, 255, 0.6) 63.73%, rgba(249, 252, 255, 0.6) 89.37%)',\n backdropFilter: 'blur(8px)',\n }}\n >\n <div\n className={cn(\n 'grid grid-cols-2 gap-[24px] font-bold l:w-full md:grid-cols-1 md:flex-col md:gap-[16px] min-md:items-center'\n )}\n >\n <div className=\"mr-[80px] md:mr-[0] md:flex-1 md-xl:mr-[64px]\">\n <div\n className={cn(\n 'mb-[24px] text-[14px] font-bold l:mb-[6px] xl:text-[16px] min-md:text-[18px] l-xl:mb-[16px]'\n )}\n >\n {copy.balanceLabel}\n </div>\n <div className=\"flex items-baseline\">\n <div className={cn('mr-[8px] text-[36px] font-extrabold', 'min-md:text-[44px]', 'min-xl:text-[56px]')}>\n {creditInfo ? numberFormat(creditInfo.available_credit) : 0}\n </div>\n <div className=\"text-[16px]\">{pageCommon?.pointUnit}</div>\n </div>\n </div>\n <div className=\"w-fit md:flex-1\">\n <div className={cn('mb-[24px] flex text-[18px] l:mb-[6px] l:text-[14px] l-xl:mb-[16px]')}>\n <Text className=\"text-[14px] font-bold xl:text-[16px] min-md:text-[18px]\" html={copy.comingSoonLabel} />\n {copy.comingSoonTips && (\n <div className=\"group relative ml-[4px] flex cursor-pointer items-start\">\n <Text\n as=\"div\"\n html={pageCommon?.infoIcon}\n className=\"size-[18px] cursor-pointer [&_svg]:size-full\"\n onClick={() => {\n if (hover) {\n setHover(false)\n } else {\n setHover(true)\n setTimeout(() => {\n setHover(false)\n }, 5000)\n }\n }}\n />\n <div\n className={cn(\n 'absolute -bottom-[12px] -left-[32px] z-10 w-[356px] translate-y-full md:w-[276px]',\n hover ? 'block' : 'hidden'\n )}\n >\n <div\n className={cn(\n 'relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow',\n !rounded && 'rounded-none'\n )}\n >\n <Text size=\"2\" html={copy.comingSoonTips} className=\"desktop:text-[18px]\" />\n <div\n className={cn(\n 'absolute -top-[10px] left-[40px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]',\n !rounded && 'rounded-none'\n )}\n />\n </div>\n </div>\n </div>\n )}\n </div>\n <div className=\"flex items-baseline \">\n <div className={cn('mr-[8px] text-[36px] font-extrabold', 'min-l:text-[44px]', 'min-xl:text-[56px]')}>\n {creditInfo ? numberFormat(creditInfo.pending_credit) : 0}\n </div>\n <div className=\"text-[16px]\">{pageCommon?.pointUnit}</div>\n </div>\n </div>\n </div>\n <div\n className={cn(\n 'grid w-fit md:w-full l:mt-[32px] l:gap-[12px] min-l:gap-[16px] min-l:pl-[48px] md-l:grid-cols-2'\n )}\n >\n {copy.buttons?.map((item, index) => (\n <Button\n key={index}\n variant={index === 0 ? 'secondary' : 'primary'}\n size=\"lg\"\n className=\"min-w-[156px] laptop:min-w-[189px]\"\n onClick={() => {\n handleButtonClick(item)\n }}\n >\n {item.text}\n </Button>\n ))}\n </div>\n\n {pageCommon?.activitiesModal && (\n <ActivitiesModal\n isOpen={openActivities}\n data={pageCommon?.activitiesModal}\n onClose={() => {\n setOpenActivities(false)\n }}\n />\n )}\n {pageCommon?.rewardsModal && (\n <MyRewardsModal\n isOpen={openRewards}\n data={pageCommon?.rewardsModal}\n onClose={() => {\n setOpenRewards(false)\n }}\n ></MyRewardsModal>\n )}\n </div>\n {hover && (\n <div\n role=\"button\"\n tabIndex={0}\n className=\"fixed inset-0 z-10\"\n onClick={() => setHover(false)}\n onKeyDown={e => e.key === 'Escape' && setHover(false)}\n />\n )}\n </Container>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["creditsInfoCard_exports", "__export", "CreditsInfoCard", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_provider", "import_utils", "import_activitiesModal", "import_MyRewardsModal", "import_lib", "copy", "id", "openActivities", "setOpenActivities", "openRewards", "setOpenRewards", "hover", "setHover", "creditInfo", "pageCommon", "brand", "rounded", "handleButtonClick", "buttonConfig", "cn", "item", "index", "ActivitiesModal", "MyRewardsModal", "e"]
4
+ "sourcesContent": ["import { Button, Container, Text } from '@anker-in/headless-ui'\n\nimport { useCallback, useState } from 'react'\nimport { useCreditsContext } from '../context/provider'\nimport { numberFormat } from '../context/utils'\nimport ActivitiesModal from '../modal/activitiesModal'\nimport MyRewardsModal from '../modal/MyRewardsModal'\nimport { gaNormalClick, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\ntype ButtonConfig = {\n text: string\n type: 'activities' | 'rewards'\n}\nexport type CreditsInfoCardCopy = {\n balanceLabel: string\n comingSoonLabel: string\n comingSoonTips: string\n buttons: ButtonConfig[]\n}\n\nexport function CreditsInfoCard({ copy, id }: { copy: CreditsInfoCardCopy; id?: string }) {\n const [openActivities, setOpenActivities] = useState(false)\n const [openRewards, setOpenRewards] = useState(false)\n const [hover, setHover] = useState<boolean>(false)\n const { creditInfo, pageCommon } = useCreditsContext()\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const handleButtonClick = useCallback((buttonConfig: ButtonConfig) => {\n gaNormalClick({ position: 'info_card', label: buttonConfig.text })\n\n if (buttonConfig.type) {\n switch (buttonConfig.type) {\n case 'activities':\n setOpenActivities(true)\n break\n case 'rewards':\n setOpenRewards(true)\n break\n }\n }\n }, [])\n\n return (\n <Container asChild id={id} className=\"-mb-[86px] -translate-y-[86px] x:-mb-[30px] x:-translate-y-[30px]\">\n <div\n className={cn(\n 'mx-auto flex justify-between items-center rounded-[12px] border border-white px-[24px] py-[40px]',\n 'l:flex-col l:items-start',\n 'min-l:px-[48px]',\n 'min-xl:px-[100px]',\n !rounded && 'rounded-none'\n )}\n style={{\n background:\n 'linear-gradient(119.61deg, rgba(250, 250, 250, 0.6) 38.58%, rgba(255, 255, 255, 0.6) 63.73%, rgba(249, 252, 255, 0.6) 89.37%)',\n backdropFilter: 'blur(8px)',\n }}\n >\n <div\n className={cn(\n 'grid grid-cols-2 gap-[24px] font-bold l:w-full md:grid-cols-1 md:flex-col md:gap-[16px] min-md:items-center'\n )}\n >\n <div className=\"mr-[80px] md:mr-[0] md:flex-1 md-xl:mr-[64px]\">\n <div\n className={cn(\n 'mb-[24px] text-[14px] font-bold l:mb-[6px] xl:text-[16px] min-md:text-[18px] l-xl:mb-[16px]'\n )}\n >\n {copy.balanceLabel}\n </div>\n <div className=\"flex items-baseline\">\n <div className={cn('mr-[8px] text-[36px] font-extrabold', 'min-md:text-[44px]', 'min-xl:text-[56px]')}>\n {creditInfo ? numberFormat(creditInfo.available_credit) : 0}\n </div>\n <div className=\"text-[16px]\">{pageCommon?.pointUnit}</div>\n </div>\n </div>\n <div className=\"w-fit md:flex-1\">\n <div className={cn('mb-[24px] flex text-[18px] l:mb-[6px] l:text-[14px] l-xl:mb-[16px]')}>\n <Text className=\"text-[14px] font-bold xl:text-[16px] min-md:text-[18px]\" html={copy.comingSoonLabel} />\n {copy.comingSoonTips && (\n <div className=\"group relative ml-[4px] flex cursor-pointer items-start\">\n <Text\n as=\"div\"\n html={pageCommon?.infoIcon}\n className=\"size-[18px] cursor-pointer [&_svg]:size-full\"\n onClick={() => {\n if (hover) {\n setHover(false)\n } else {\n setHover(true)\n setTimeout(() => {\n setHover(false)\n }, 5000)\n }\n }}\n />\n <div\n className={cn(\n 'absolute -bottom-[12px] -left-[32px] z-10 w-[356px] translate-y-full md:w-[276px]',\n hover ? 'block' : 'hidden'\n )}\n >\n <div\n className={cn(\n 'relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow',\n !rounded && 'rounded-none'\n )}\n >\n <Text size=\"2\" html={copy.comingSoonTips} className=\"desktop:text-[18px]\" />\n <div\n className={cn(\n 'absolute -top-[10px] left-[40px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]',\n !rounded && 'rounded-none'\n )}\n />\n </div>\n </div>\n </div>\n )}\n </div>\n <div className=\"flex items-baseline \">\n <div className={cn('mr-[8px] text-[36px] font-extrabold', 'min-l:text-[44px]', 'min-xl:text-[56px]')}>\n {creditInfo ? numberFormat(creditInfo.pending_credit) : 0}\n </div>\n <div className=\"text-[16px]\">{pageCommon?.pointUnit}</div>\n </div>\n </div>\n </div>\n <div\n className={cn(\n 'grid w-fit md:w-full l:mt-[32px] l:gap-[12px] min-l:gap-[16px] min-l:pl-[48px] md-l:grid-cols-2'\n )}\n >\n {copy.buttons?.map((item, index) => (\n <Button\n key={index}\n variant={index === 0 ? 'secondary' : 'primary'}\n size=\"lg\"\n className=\"min-w-[156px] laptop:min-w-[189px]\"\n onClick={() => {\n handleButtonClick(item)\n }}\n >\n {item.text}\n </Button>\n ))}\n </div>\n\n {pageCommon?.activitiesModal && (\n <ActivitiesModal\n isOpen={openActivities}\n data={pageCommon?.activitiesModal}\n onClose={() => {\n setOpenActivities(false)\n }}\n />\n )}\n {pageCommon?.rewardsModal && (\n <MyRewardsModal\n isOpen={openRewards}\n data={pageCommon?.rewardsModal}\n onClose={() => {\n setOpenRewards(false)\n }}\n ></MyRewardsModal>\n )}\n </div>\n {hover && (\n <div\n role=\"button\"\n tabIndex={0}\n className=\"fixed inset-0 z-10\"\n onClick={() => setHover(false)}\n onKeyDown={e => e.key === 'Escape' && setHover(false)}\n />\n )}\n </Container>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["creditsInfoCard_exports", "__export", "CreditsInfoCard", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_provider", "import_utils", "import_activitiesModal", "import_MyRewardsModal", "import_lib", "import_constants", "copy", "id", "openActivities", "setOpenActivities", "openRewards", "setOpenRewards", "hover", "setHover", "creditInfo", "pageCommon", "brand", "rounded", "handleButtonClick", "buttonConfig", "cn", "item", "index", "ActivitiesModal", "MyRewardsModal", "e"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var G=Object.create;var w=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var Q=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var Y=(i,l)=>{for(var m in l)w(i,m,{get:l[m],enumerable:!0})},W=(i,l,m,P)=>{if(l&&typeof l=="object"||typeof l=="function")for(let p of K(l))!X.call(i,p)&&p!==m&&w(i,p,{get:()=>l[p],enumerable:!(P=J(l,p))||P.enumerable});return i};var g=(i,l,m)=>(m=i!=null?G(Q(i)):{},W(l||!i||!i.__esModule?w(m,"default",{value:i,enumerable:!0}):m,i)),Z=i=>W(w({},"__esModule",{value:!0}),i);var te={};Y(te,{CreditsMemberPrice:()=>ee});module.exports=Z(te);var t=require("react/jsx-runtime"),b=require("@anker-in/headless-ui"),o=require("react"),M=g(require("decimal.js")),E=g(require("./MemberPriceItem")),H=g(require("../creditsCash/RedeemableItem")),V=g(require("../context/hooks/useRedeemableList")),O=g(require("../modal/rulesModal")),_=require("@anker-in/lib"),x=require("@anker-in/lib"),U=require("../context/provider"),C=require("../context/memberPriceConst");const ee=({copy:i,id:l})=>{const[m,P]=(0,o.useState)(i.tabs[0]?.type||"memberPrice"),[p,R]=(0,o.useState)(),[c,v]=(0,o.useState)(1),[f,z]=(0,o.useState)(9),{redeemableList:F}=(0,V.default)(),{pageCommon:$,memberPriceDiscount:k}=(0,U.useCreditsContext)();console.log("copy in CreditsMemberPrice",i);const A=[{namespace:"global",key:"transparentImg"}];(0,o.useEffect)(()=>{const e=()=>{window.innerWidth>=1024?z(9):z(8)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,o.useEffect)(()=>{v(1)},[m,f]);const u=(0,o.useMemo)(()=>!k||!i.memberPriceTab.memberPriceRuleId?null:k.find(e=>String(e.rule_id)===String(i.memberPriceTab.memberPriceRuleId))?.result_detail?.member_discounts?.find(e=>e.user_identity===1),[k,i.memberPriceTab.memberPriceRuleId]);console.log("targetRule in CreditsMemberPrice",u);const q=(0,o.useMemo)(()=>u?u.main_products?.variants?.map(e=>e.handle)||[]:[],[u?.main_products.variants]),{data:y}=(0,_.useProductsByHandles)({handles:q,metafieldIdentifiers:{variant:A}}),{data:I}=(0,_.useProductsByHandles)({handles:i?.redeemTab?.list?.map(e=>e.products?.[0]?.handle)||[],metafieldIdentifiers:{variant:A}}),D=(0,o.useCallback)(e=>{if(!u)return null;const n=u?.discount_conf;if(!n)return null;let r=new M.default(e);switch(n.discount_type){case C.FunctionDiscountType.Percentage:r=r.mul(100-n.discount_value).div(100);break;case C.FunctionDiscountType.FixedAmount:r=r.sub(n.discount_value);break;case C.FunctionDiscountType.FixedPrice:r=new M.default(n.discount_value);break}return{memberPrice:r.toNumber(),originalPrice:e}},[u]),N=(0,o.useMemo)(()=>!u||!y?[]:u.main_products.variants.map(e=>{const n=y.find(a=>a.handle===e.handle);if(!n)return null;const r=n.variants?.find(a=>a.sku===e.sku)||n.variants?.[0];if(!r||!r.availableForSale)return null;const s=D(r.price.amount);return s?{product:n,productVariant:r,memberPrice:s.memberPrice,originalPrice:s.originalPrice}:null})?.filter(Boolean)||[],[u,y,D]),T=(0,o.useMemo)(()=>I?.map(e=>{const n=i.redeemTab.list.find(a=>a.products?.[0]?.handle===e.handle),r=F.find(a=>a.id?.toString()===n?.redeemId?.toString()),s=e.variants?.find(a=>a.sku===n?.products?.[0]?.sku)||e.variants?.[0];return!r||!s||!s.availableForSale||r.is_limited&&r.remaining_inventory<=0?null:{product:e,productVariant:s,alpcData:{id:r?.id,consumeCredits:r?.consume_credits,remainingInventory:r?.remaining_inventory,isLimited:r?.is_limited,consumeType:r?.consume_type,title:r?.name,desc:r?.note},config:n}}).filter(Boolean),[I,i.redeemTab.list,F]),S=(0,o.useMemo)(()=>{const e=N?.length||0,n=Math.ceil(e/f),r=(c-1)*f,s=r+f,a=N?.slice(r,s)||[];return{totalPages:n,currentItems:a,showPagination:n>1}},[N,c,f]),j=(0,o.useMemo)(()=>{const e=T?.length||0,n=Math.ceil(e/f),r=(c-1)*f,s=r+f,a=T?.slice(r,s)||[];return{totalPages:n,currentItems:a,showPagination:n>1}},[T,c,f]),B=e=>{if(e<=1)return null;const r=(()=>{const a=[],h=[];for(let d=1;d<=e;d++)(d===1||d===e||d>=c-2&&d<=c+2)&&a.push(d);let L=0;for(const d of a)L&&d-L>1&&h.push("..."),h.push(d),L=d;return h})();return(0,t.jsxs)("div",{className:"mt-[32px] flex items-center justify-center gap-[8px]",children:[(0,t.jsx)("button",{onClick:()=>v(s=>Math.max(1,s-1)),disabled:c===1,className:(0,x.classNames)("flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white",c===1&&"cursor-not-allowed opacity-50"),children:(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,t.jsx)("path",{d:"M10 12L6 8L10 4",stroke:c===1?"#767880":"#080A0F",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),r.map((s,a)=>s==="..."?(0,t.jsx)("div",{className:"flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white",children:(0,t.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[(0,t.jsx)("circle",{cx:"4.5",cy:"10",r:"1.25",fill:"#2A2C32"}),(0,t.jsx)("circle",{cx:"10",cy:"10",r:"1.25",fill:"#2A2C32"}),(0,t.jsx)("circle",{cx:"15.5",cy:"10",r:"1.25",fill:"#2A2C32"})]})},`ellipsis-${a}`):(0,t.jsx)("button",{onClick:()=>v(s),className:(0,x.classNames)("flex size-[32px] xl:size-[24px] pt-[4px] items-center justify-center overflow-hidden text-[16px] xl:text-[14px] font-bold leading-[1.4] tracking-[-0.28px]",c===s?"bg-[#080a0f] text-white":"bg-white text-[#080a0f]"),children:s},s)),(0,t.jsx)("button",{onClick:()=>v(s=>Math.min(e,s+1)),disabled:c===e,className:(0,x.classNames)("flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white",c===e&&"cursor-not-allowed opacity-50"),children:(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,t.jsx)("path",{d:"M6 4L10 8L6 12",stroke:c===e?"#767880":"#080A0F",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})};return(0,t.jsxs)(b.Container,{id:l,className:(0,x.classNames)("bg-[#F5F5F5]"),children:[(0,t.jsx)(b.Heading,{as:"h2",size:"4",html:i.title,className:"mx:px-[16px]"}),(0,t.jsx)(b.Tabs,{align:"left",className:"mt-[24px]",value:m,onValueChange:e=>P(e),children:(0,t.jsx)(b.TabsList,{children:i.tabs.map((e,n)=>(0,t.jsx)(b.TabsTrigger,{value:e.type,children:e.label},n))})}),(0,t.jsxs)("div",{className:"relative mt-[24px]",children:[m==="memberPrice"&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"grid md:grid-cols-2 gap-[12px] grid-cols-4 md-xl:grid-cols-3 lg:gap-[16px]",children:S.currentItems?.map((e,n)=>(0,t.jsx)(E.default,{itemData:e,copy:i.memberPriceTab},n))}),B(S.totalPages)]}),m==="redeem"&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"grid md:grid-cols-2 gap-[12px] grid-cols-4 md-xl:grid-cols-3 lg:gap-[16px]",children:j.currentItems?.map((e,n)=>(0,t.jsx)(H.default,{copy:{title:i.title,...i.redeemTab},itemData:e,setRules:R,currencyCode:I?.[0]?.price.currencyCode||"USD"},n))}),B(j.totalPages)]})]}),p&&(0,t.jsx)(O.default,{overlayClassName:"md:px-[16px] md:items-center",className:"md:h-fit md:rounded-b-[16px]",isOpen:p.length>0,onClose:()=>R([]),titleClassName:"border-b-transparent h-[56px]",rules:p,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:$?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};
1
+ "use strict";var J=Object.create;var v=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,Y=Object.prototype.hasOwnProperty;var Z=(r,s)=>{for(var m in s)v(r,m,{get:s[m],enumerable:!0})},z=(r,s,m,p)=>{if(s&&typeof s=="object"||typeof s=="function")for(let u of Q(s))!Y.call(r,u)&&u!==m&&v(r,u,{get:()=>s[u],enumerable:!(p=K(s,u))||p.enumerable});return r};var P=(r,s,m)=>(m=r!=null?J(X(r)):{},z(s||!r||!r.__esModule?v(m,"default",{value:r,enumerable:!0}):m,r)),$=r=>z(v({},"__esModule",{value:!0}),r);var ee={};Z(ee,{CreditsMemberPrice:()=>j});module.exports=$(ee);var i=require("react/jsx-runtime"),d=require("@anker-in/headless-ui"),a=require("react"),R=P(require("decimal.js")),B=P(require("./MemberPriceItem")),V=P(require("../creditsCash/RedeemableItem")),A=P(require("../context/hooks/useRedeemableList")),O=P(require("../modal/rulesModal")),k=require("./Pagination"),y=require("@anker-in/lib"),U=require("@anker-in/lib"),W=require("../context/provider"),h=require("../context/memberPriceConst");const j=({copy:r,id:s})=>{const[m,p]=(0,a.useState)(r.tabs[0]?.type||"memberPrice"),[u,N]=(0,a.useState)(),[b,C]=(0,a.useState)(1),[g,f]=(0,a.useState)(9),{redeemableList:L}=(0,A.default)(),{pageCommon:q,memberPriceDiscount:x}=(0,W.useCreditsContext)(),I=(0,a.useRef)(null);console.log("copy in CreditsMemberPrice",r);const D=[{namespace:"global",key:"transparentImg"}];(0,a.useEffect)(()=>{const e=()=>{const t=window.innerWidth;t>=1440?f(12):t>=1024?f(9):t>=768?f(12):f(8)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,a.useEffect)(()=>{C(1)},[m,g]);const c=(0,a.useMemo)(()=>!x||!r.memberPriceTab.memberPriceRuleId?null:x.find(e=>String(e.rule_id)===String(r.memberPriceTab.memberPriceRuleId))?.result_detail?.member_discounts?.find(e=>e.user_identity===1),[x,r.memberPriceTab.memberPriceRuleId]);console.log("targetRule in CreditsMemberPrice",c);const G=(0,a.useMemo)(()=>c?c.main_products?.variants?.map(e=>e.handle)||[]:[],[c?.main_products.variants]),{data:T}=(0,y.useProductsByHandles)({handles:G,metafieldIdentifiers:{variant:D}}),{data:_}=(0,y.useProductsByHandles)({handles:r?.redeemTab?.list?.map(e=>e.products?.[0]?.handle)||[],metafieldIdentifiers:{variant:D}}),F=(0,a.useCallback)(e=>{if(!c)return null;const t=c?.discount_conf;if(!t)return null;let n=new R.default(e);switch(t.discount_type){case h.FunctionDiscountType.Percentage:n=n.mul(100-t.discount_value).div(100);break;case h.FunctionDiscountType.FixedAmount:n=n.sub(t.discount_value);break;case h.FunctionDiscountType.FixedPrice:n=new R.default(t.discount_value);break}return{memberPrice:n.toNumber(),originalPrice:e}},[c]),w=(0,a.useMemo)(()=>!c||!T?[]:c.main_products.variants.map(e=>{const t=T.find(o=>o.handle===e.handle);if(!t)return null;const n=t.variants?.find(o=>o.sku===e.sku)||t.variants?.[0];if(!n||!n.availableForSale)return null;const l=F(n.price.amount);return l?{product:t,productVariant:n,memberPrice:l.memberPrice,originalPrice:l.originalPrice}:null})?.filter(Boolean)||[],[c,T,F]),M=(0,a.useMemo)(()=>_?.map(e=>{const t=r.redeemTab.list.find(o=>o.products?.[0]?.handle===e.handle),n=L.find(o=>o.id?.toString()===t?.redeemId?.toString()),l=e.variants?.find(o=>o.sku===t?.products?.[0]?.sku)||e.variants?.[0];return!n||!l||!l.availableForSale||n.is_limited&&n.remaining_inventory<=0?null:{product:e,productVariant:l,alpcData:{id:n?.id,consumeCredits:n?.consume_credits,remainingInventory:n?.remaining_inventory,isLimited:n?.is_limited,consumeType:n?.consume_type,title:n?.name,desc:n?.note},config:t}}).filter(Boolean),[_,r.redeemTab.list,L]),S=(0,a.useMemo)(()=>{const e=w?.length||0,t=Math.ceil(e/g),n=(b-1)*g,l=n+g,o=w?.slice(n,l)||[];return{totalPages:t,currentItems:o,showPagination:t>1}},[w,b,g]),E=(0,a.useMemo)(()=>{const e=M?.length||0,t=Math.ceil(e/g),n=(b-1)*g,l=n+g,o=M?.slice(n,l)||[];return{totalPages:t,currentItems:o,showPagination:t>1}},[M,b,g]),H=(0,a.useCallback)(e=>{if(C(e),I.current){const t=I.current.offsetTop;window.scrollTo({top:t-80,behavior:"smooth"})}},[C]);return(0,i.jsxs)(d.Container,{id:s,className:(0,U.classNames)("bg-[#F5F5F5]"),ref:I,children:[(0,i.jsx)(d.Heading,{as:"h2",size:"4",html:r.title,className:"mx:px-[16px]"}),(0,i.jsx)(d.Tabs,{align:"left",className:"mt-[24px]",value:m,onValueChange:e=>p(e),children:(0,i.jsx)(d.TabsList,{children:r.tabs.map((e,t)=>(0,i.jsx)(d.TabsTrigger,{value:e.type,children:e.label},t))})}),(0,i.jsxs)("div",{className:"relative mt-[24px]",children:[m==="memberPrice"&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"grid md:grid-cols-2 gap-[12px] grid-cols-4 md-xl:grid-cols-3 lg:gap-[16px]",children:S.currentItems?.map((e,t)=>(0,i.jsx)(B.default,{itemData:e,copy:r.memberPriceTab},t))}),(0,i.jsx)(k.Pagination,{currentPage:b,totalPages:S.totalPages,onPageChange:H})]}),m==="redeem"&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"grid md:grid-cols-2 gap-[12px] grid-cols-4 md-xl:grid-cols-3 lg:gap-[16px]",children:E.currentItems?.map((e,t)=>(0,i.jsx)(V.default,{copy:{title:r.title,...r.redeemTab},itemData:e,setRules:N,currencyCode:_?.[0]?.price.currencyCode||"USD"},t))}),(0,i.jsx)(k.Pagination,{currentPage:b,totalPages:E.totalPages,onPageChange:H})]})]}),u&&(0,i.jsx)(O.default,{overlayClassName:"md:px-[16px] md:items-center",className:"md:h-fit md:rounded-b-[16px]",isOpen:u.length>0,onClose:()=>N([]),titleClassName:"border-b-transparent h-[56px]",rules:u,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:q?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};
2
2
  //# sourceMappingURL=CreditsMemberPrice.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsMemberPrice/CreditsMemberPrice.tsx"],
4
- "sourcesContent": ["import { Container, Heading, Tabs, TabsList, TabsTrigger } from '@anker-in/headless-ui'\nimport { useMemo, useState, useEffect, useCallback } from 'react'\nimport Decimal from 'decimal.js'\n\nimport MemberPriceItem from './MemberPriceItem'\nimport RedeemableItem from '../creditsCash/RedeemableItem'\nimport useRedeemableList from '../context/hooks/useRedeemableList'\nimport RulesModal from '../modal/rulesModal'\nimport { useProductsByHandles } from '@anker-in/lib'\nimport { CreditsMemberPriceCopy, MemberPriceProduct } from './type'\nimport { Product, classNames as cn } from '@anker-in/lib'\nimport { useCreditsContext } from '../context/provider'\nimport { RedeemItem } from '../creditsCash/type'\nimport { FunctionDiscountType } from '../context/memberPriceConst'\n\nexport const CreditsMemberPrice = ({ copy, id }: { copy: CreditsMemberPriceCopy; id?: string }) => {\n const [activeTab, setActiveTab] = useState<'memberPrice' | 'redeem'>(copy.tabs[0]?.type || 'memberPrice')\n const [rules, setRules] = useState<string | string[]>()\n const [currentPage, setCurrentPage] = useState(1)\n const [itemsPerPage, setItemsPerPage] = useState(9) // \u9ED8\u8BA4 1024px \u4EE5\u4E0A\uFF1A3\u5217 \u00D7 3\u884C = 9\n const { redeemableList } = useRedeemableList()\n const { pageCommon, memberPriceDiscount } = useCreditsContext()\n\n console.log('copy in CreditsMemberPrice', copy)\n\n // \u5B9A\u4E49\u9700\u8981\u83B7\u53D6\u7684 metafield\uFF0C\u5305\u62EC\u900F\u660E\u56FE\n const variantMetafieldIdentifiers: any[] = [\n {\n namespace: 'global',\n key: 'transparentImg',\n },\n ]\n\n // \u6839\u636E\u5C4F\u5E55\u5C3A\u5BF8\u52A8\u6001\u8C03\u6574\u6BCF\u9875\u663E\u793A\u7684\u5546\u54C1\u6570\u91CF\n useEffect(() => {\n const updateItemsPerPage = () => {\n const width = window.innerWidth\n if (width >= 1024) {\n // 1024px \u4EE5\u4E0A\uFF1A3\u5217 \u00D7 3\u884C = 9\u4E2A\n setItemsPerPage(9)\n } else {\n // 1024px \u4EE5\u4E0B\uFF1A2\u5217 \u00D7 4\u884C = 8\u4E2A\n setItemsPerPage(8)\n }\n }\n\n updateItemsPerPage()\n window.addEventListener('resize', updateItemsPerPage)\n return () => window.removeEventListener('resize', updateItemsPerPage)\n }, [])\n\n // \u5F53\u5207\u6362 tab \u6216\u6BCF\u9875\u6570\u91CF\u53D8\u5316\u65F6\u91CD\u7F6E\u9875\u7801\n useEffect(() => {\n setCurrentPage(1)\n }, [activeTab, itemsPerPage])\n\n // \u6839\u636E\u914D\u7F6E\u7684 ruleId \u67E5\u627E\u5BF9\u5E94\u7684\u4F1A\u5458\u4EF7\u89C4\u5219\n const targetRule = useMemo(() => {\n if (!memberPriceDiscount || !copy.memberPriceTab.memberPriceRuleId) return null\n return memberPriceDiscount\n .find(rule => String(rule.rule_id) === String(copy.memberPriceTab.memberPriceRuleId))\n ?.result_detail?.member_discounts?.find(discount => discount.user_identity === 1)\n }, [memberPriceDiscount, copy.memberPriceTab.memberPriceRuleId])\n\n console.log('targetRule in CreditsMemberPrice', targetRule)\n\n const memberPriceHandles = useMemo(() => {\n if (!targetRule) return []\n\n return targetRule.main_products?.variants?.map(variant => variant.handle) || []\n }, [targetRule?.main_products.variants])\n\n // \u83B7\u53D6\u4F1A\u5458\u4EF7\u4EA7\u54C1\u6570\u636E\uFF08\u901A\u8FC7\u4ECE memberPriceDiscount \u63D0\u53D6\u7684 handles \u83B7\u53D6\u4EA7\u54C1\uFF09\n const { data: memberPriceProducts } = useProductsByHandles({\n handles: memberPriceHandles,\n metafieldIdentifiers: {\n variant: variantMetafieldIdentifiers,\n },\n })\n\n // \u83B7\u53D6\u79EF\u5206\u5151\u6362\u4EA7\u54C1\u6570\u636E\n const { data: redeemProducts } = useProductsByHandles({\n handles: copy?.redeemTab?.list?.map(item => item.products?.[0]?.handle) || [],\n metafieldIdentifiers: {\n variant: variantMetafieldIdentifiers,\n },\n })\n\n // \u8BA1\u7B97\u4F1A\u5458\u4EF7\u7684\u8F85\u52A9\u51FD\u6570\uFF08\u4EC5\u4F7F\u7528\u666E\u901A\u4F1A\u5458 user_identity = 1 \u7684\u6298\u6263\uFF09\n const calculateMemberPrice = useCallback(\n (price: number) => {\n if (!targetRule) return null\n\n const discountConfig = targetRule?.discount_conf\n if (!discountConfig) return null\n\n // \u6839\u636E\u6298\u6263\u7C7B\u578B\u8BA1\u7B97\u4F1A\u5458\u4EF7\n let salePrice = new Decimal(price)\n switch (discountConfig.discount_type) {\n case FunctionDiscountType.Percentage:\n salePrice = salePrice.mul(100 - discountConfig.discount_value).div(100)\n break\n case FunctionDiscountType.FixedAmount:\n salePrice = salePrice.sub(discountConfig.discount_value)\n break\n case FunctionDiscountType.FixedPrice:\n salePrice = new Decimal(discountConfig.discount_value)\n break\n }\n\n return {\n memberPrice: salePrice.toNumber(),\n originalPrice: price,\n }\n },\n [targetRule]\n )\n\n // \u5904\u7406\u4F1A\u5458\u4EF7\u4EA7\u54C1\u5217\u8868\uFF08\u4EC5\u666E\u901A\u4F1A\u5458 user_identity = 1 \u7684\u6298\u6263\uFF09\n const memberPriceList = useMemo(() => {\n if (!targetRule || !memberPriceProducts) return []\n\n return (\n (targetRule.main_products.variants\n .map(variant => {\n const product = memberPriceProducts.find(p => p.handle === variant.handle)\n if (!product) return null\n\n const productVariant = product.variants?.find(v => v.sku === variant.sku) || product.variants?.[0]\n if (!productVariant || !productVariant.availableForSale) return null\n\n const priceResult = calculateMemberPrice(productVariant.price.amount)\n if (!priceResult) return null\n\n return {\n product,\n productVariant,\n memberPrice: priceResult.memberPrice,\n originalPrice: priceResult.originalPrice,\n }\n })\n ?.filter(Boolean) as unknown as MemberPriceProduct[]) || []\n )\n }, [targetRule, memberPriceProducts, calculateMemberPrice])\n\n // \u5904\u7406\u79EF\u5206\u5151\u6362\u4EA7\u54C1\u5217\u8868\uFF08\u590D\u7528 creditsCash \u7684\u903B\u8F91\uFF0C\u8FC7\u6EE4\u7F3A\u8D27\u5546\u54C1\uFF09\n const redeemList = useMemo(() => {\n return redeemProducts\n ?.map((product: Product) => {\n const config = copy.redeemTab.list.find(item => item.products?.[0]?.handle === product.handle)\n const alpcData = redeemableList.find(item => item.id?.toString() === config?.redeemId?.toString())\n const productVariant =\n product.variants?.find((variant: any) => variant.sku === config?.products?.[0]?.sku) || product.variants?.[0]\n\n // \u8FC7\u6EE4\u6761\u4EF6\uFF1A\n // 1. \u5FC5\u987B\u6709 alpcData \u548C productVariant\n // 2. \u5546\u54C1\u4E0D\u80FD\u7F3A\u8D27\n // 3. \u5982\u679C\u6709\u5E93\u5B58\u9650\u5236\uFF0C\u5219\u5E93\u5B58\u5FC5\u987B\u5927\u4E8E 0\n if (!alpcData || !productVariant) return null\n if (!productVariant.availableForSale) return null\n if (alpcData.is_limited && alpcData.remaining_inventory <= 0) return null\n\n return {\n product,\n productVariant,\n alpcData: {\n id: alpcData?.id,\n consumeCredits: alpcData?.consume_credits,\n remainingInventory: alpcData?.remaining_inventory,\n isLimited: alpcData?.is_limited,\n consumeType: alpcData?.consume_type,\n title: alpcData?.name,\n desc: alpcData?.note,\n },\n config,\n }\n })\n .filter(Boolean) as unknown as RedeemItem[]\n }, [redeemProducts, copy.redeemTab.list, redeemableList])\n\n // \u8BA1\u7B97\u4F1A\u5458\u4EF7\u5206\u9875\n const memberPricePagination = useMemo(() => {\n const totalItems = memberPriceList?.length || 0\n const totalPages = Math.ceil(totalItems / itemsPerPage)\n const startIndex = (currentPage - 1) * itemsPerPage\n const endIndex = startIndex + itemsPerPage\n const currentItems = memberPriceList?.slice(startIndex, endIndex) || []\n\n return {\n totalPages,\n currentItems,\n showPagination: totalPages > 1,\n }\n }, [memberPriceList, currentPage, itemsPerPage])\n\n // \u8BA1\u7B97\u79EF\u5206\u5151\u6362\u5206\u9875\n const redeemPagination = useMemo(() => {\n const totalItems = redeemList?.length || 0\n const totalPages = Math.ceil(totalItems / itemsPerPage)\n const startIndex = (currentPage - 1) * itemsPerPage\n const endIndex = startIndex + itemsPerPage\n const currentItems = redeemList?.slice(startIndex, endIndex) || []\n\n return {\n totalPages,\n currentItems,\n showPagination: totalPages > 1,\n }\n }, [redeemList, currentPage, itemsPerPage])\n\n // \u5206\u9875\u5BFC\u822A\u7EC4\u4EF6 - \u6309\u7167 Figma \u8BBE\u8BA1\n const renderPagination = (totalPages: number) => {\n if (totalPages <= 1) return null\n\n // \u8BA1\u7B97\u8981\u663E\u793A\u7684\u9875\u7801\n const getPageNumbers = () => {\n const delta = 2 // \u5F53\u524D\u9875\u524D\u540E\u663E\u793A\u7684\u9875\u7801\u6570\u91CF\n const range = []\n const rangeWithDots = []\n\n for (let i = 1; i <= totalPages; i++) {\n if (i === 1 || i === totalPages || (i >= currentPage - delta && i <= currentPage + delta)) {\n range.push(i)\n }\n }\n\n let prev = 0\n for (const i of range) {\n if (prev && i - prev > 1) {\n rangeWithDots.push('...')\n }\n rangeWithDots.push(i)\n prev = i\n }\n\n return rangeWithDots\n }\n\n const pages = getPageNumbers()\n\n return (\n <div className=\"mt-[32px] flex items-center justify-center gap-[8px]\">\n {/* \u4E0A\u4E00\u9875\u6309\u94AE */}\n <button\n onClick={() => setCurrentPage(prev => Math.max(1, prev - 1))}\n disabled={currentPage === 1}\n className={cn(\n 'flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white',\n currentPage === 1 && 'cursor-not-allowed opacity-50'\n )}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M10 12L6 8L10 4\"\n stroke={currentPage === 1 ? '#767880' : '#080A0F'}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n\n {/* \u9875\u7801\u6309\u94AE */}\n {pages.map((page, index) => {\n if (page === '...') {\n return (\n <div\n key={`ellipsis-${index}`}\n className=\"flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white\"\n >\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"4.5\" cy=\"10\" r=\"1.25\" fill=\"#2A2C32\" />\n <circle cx=\"10\" cy=\"10\" r=\"1.25\" fill=\"#2A2C32\" />\n <circle cx=\"15.5\" cy=\"10\" r=\"1.25\" fill=\"#2A2C32\" />\n </svg>\n </div>\n )\n }\n\n const isActive = currentPage === page\n return (\n <button\n key={page}\n onClick={() => setCurrentPage(page as number)}\n className={cn(\n 'flex size-[32px] xl:size-[24px] pt-[4px] items-center justify-center overflow-hidden text-[16px] xl:text-[14px] font-bold leading-[1.4] tracking-[-0.28px]',\n isActive ? 'bg-[#080a0f] text-white' : 'bg-white text-[#080a0f]'\n )}\n >\n {page}\n </button>\n )\n })}\n\n {/* \u4E0B\u4E00\u9875\u6309\u94AE */}\n <button\n onClick={() => setCurrentPage(prev => Math.min(totalPages, prev + 1))}\n disabled={currentPage === totalPages}\n className={cn(\n 'flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white',\n currentPage === totalPages && 'cursor-not-allowed opacity-50'\n )}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M6 4L10 8L6 12\"\n stroke={currentPage === totalPages ? '#767880' : '#080A0F'}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n )\n }\n\n return (\n <Container id={id} className={cn('bg-[#F5F5F5]')}>\n <Heading as=\"h2\" size=\"4\" html={copy.title} className=\"mx:px-[16px]\" />\n\n <Tabs\n align=\"left\"\n className=\"mt-[24px]\"\n value={activeTab}\n onValueChange={value => setActiveTab(value as 'memberPrice' | 'redeem')}\n >\n <TabsList>\n {copy.tabs.map((tab, index) => (\n <TabsTrigger key={index} value={tab.type}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n\n {/* Tab \u5185\u5BB9 */}\n <div className=\"relative mt-[24px]\">\n {/* \u4F1A\u5458\u4EF7 Tab */}\n {activeTab === 'memberPrice' && (\n <>\n <div className=\"grid md:grid-cols-2 gap-[12px] grid-cols-4 md-xl:grid-cols-3 lg:gap-[16px]\">\n {memberPricePagination.currentItems?.map((item, index: number) => (\n <MemberPriceItem key={index} itemData={item} copy={copy.memberPriceTab} />\n ))}\n </div>\n {renderPagination(memberPricePagination.totalPages)}\n </>\n )}\n\n {/* \u79EF\u5206\u5151\u6362 Tab */}\n {activeTab === 'redeem' && (\n <>\n <div className=\"grid md:grid-cols-2 gap-[12px] grid-cols-4 md-xl:grid-cols-3 lg:gap-[16px]\">\n {redeemPagination.currentItems?.map((item, index: number) => (\n <RedeemableItem\n key={index}\n copy={{\n title: copy.title,\n ...copy.redeemTab,\n }}\n itemData={item}\n setRules={setRules}\n currencyCode={redeemProducts?.[0]?.price.currencyCode || 'USD'}\n />\n ))}\n </div>\n {renderPagination(redeemPagination.totalPages)}\n </>\n )}\n </div>\n\n {/* Rules Modal */}\n {rules && (\n <RulesModal\n overlayClassName=\"md:px-[16px] md:items-center\"\n className=\"md:h-fit md:rounded-b-[16px]\"\n isOpen={rules.length > 0}\n onClose={() => setRules([])}\n titleClassName=\"border-b-transparent h-[56px]\"\n rules={rules}\n scrollClassName=\"md:mt-[8px] md:mb-[24px] md:pt-0\"\n title={pageCommon?.ruleLabel}\n ruleClassName=\"text-[#1d1d1f] font-bold\"\n />\n )}\n </Container>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["CreditsMemberPrice_exports", "__export", "CreditsMemberPrice", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_decimal", "import_MemberPriceItem", "import_RedeemableItem", "import_useRedeemableList", "import_rulesModal", "import_lib", "import_provider", "import_memberPriceConst", "copy", "id", "activeTab", "setActiveTab", "rules", "setRules", "currentPage", "setCurrentPage", "itemsPerPage", "setItemsPerPage", "redeemableList", "useRedeemableList", "pageCommon", "memberPriceDiscount", "variantMetafieldIdentifiers", "updateItemsPerPage", "targetRule", "rule", "discount", "memberPriceHandles", "variant", "memberPriceProducts", "redeemProducts", "item", "calculateMemberPrice", "price", "discountConfig", "salePrice", "Decimal", "memberPriceList", "product", "p", "productVariant", "v", "priceResult", "redeemList", "config", "alpcData", "memberPricePagination", "totalItems", "totalPages", "startIndex", "endIndex", "currentItems", "redeemPagination", "renderPagination", "pages", "range", "rangeWithDots", "i", "prev", "cn", "page", "index", "value", "tab", "MemberPriceItem", "RedeemableItem", "RulesModal"]
4
+ "sourcesContent": ["import { Container, Heading, Tabs, TabsList, TabsTrigger } from '@anker-in/headless-ui'\nimport { useMemo, useState, useEffect, useCallback, useRef } from 'react'\nimport Decimal from 'decimal.js'\n\nimport MemberPriceItem from './MemberPriceItem'\nimport RedeemableItem from '../creditsCash/RedeemableItem'\nimport useRedeemableList from '../context/hooks/useRedeemableList'\nimport RulesModal from '../modal/rulesModal'\nimport { Pagination } from './Pagination'\nimport { useProductsByHandles } from '@anker-in/lib'\nimport { CreditsMemberPriceCopy, MemberPriceProduct } from './type'\nimport { Product, classNames as cn } from '@anker-in/lib'\nimport { useCreditsContext } from '../context/provider'\nimport { RedeemItem } from '../creditsCash/type'\nimport { FunctionDiscountType } from '../context/memberPriceConst'\n\nexport const CreditsMemberPrice = ({ copy, id }: { copy: CreditsMemberPriceCopy; id?: string }) => {\n const [activeTab, setActiveTab] = useState<'memberPrice' | 'redeem'>(copy.tabs[0]?.type || 'memberPrice')\n const [rules, setRules] = useState<string | string[]>()\n const [currentPage, setCurrentPage] = useState(1)\n const [itemsPerPage, setItemsPerPage] = useState(9) // \u9ED8\u8BA4 1024px \u4EE5\u4E0A\uFF1A3\u5217 \u00D7 3\u884C = 9\n const { redeemableList } = useRedeemableList()\n const { pageCommon, memberPriceDiscount } = useCreditsContext()\n const containerRef = useRef<HTMLDivElement>(null)\n\n console.log('copy in CreditsMemberPrice', copy)\n\n // \u5B9A\u4E49\u9700\u8981\u83B7\u53D6\u7684 metafield\uFF0C\u5305\u62EC\u900F\u660E\u56FE\n const variantMetafieldIdentifiers: any[] = [\n {\n namespace: 'global',\n key: 'transparentImg',\n },\n ]\n\n // \u6839\u636E\u5C4F\u5E55\u5C3A\u5BF8\u52A8\u6001\u8C03\u6574\u6BCF\u9875\u663E\u793A\u7684\u5546\u54C1\u6570\u91CF\n useEffect(() => {\n const updateItemsPerPage = () => {\n const width = window.innerWidth\n if (width >= 1440) {\n // 1920px \u4EE5\u4E0A\uFF1A4\u5217 \u00D7 3\u884C = 12\u4E2A\n setItemsPerPage(12)\n } else if (width >= 1024) {\n // 1024px - 1919px\uFF1A3\u5217 \u00D7 3\u884C = 9\u4E2A\n setItemsPerPage(9)\n } else if (width >= 768) {\n // 1024px \u4EE5\u4E0B\uFF1A3\u5217 \u00D7 4\u884C = 12\u4E2A\n setItemsPerPage(12)\n } else {\n // 768px \u4EE5\u4E0B\uFF1A2\u5217 \u00D7 4\u884C = 8\u4E2A\n setItemsPerPage(8)\n }\n }\n\n updateItemsPerPage()\n window.addEventListener('resize', updateItemsPerPage)\n return () => window.removeEventListener('resize', updateItemsPerPage)\n }, [])\n\n // \u5F53\u5207\u6362 tab \u6216\u6BCF\u9875\u6570\u91CF\u53D8\u5316\u65F6\u91CD\u7F6E\u9875\u7801\n useEffect(() => {\n setCurrentPage(1)\n }, [activeTab, itemsPerPage])\n\n // \u6839\u636E\u914D\u7F6E\u7684 ruleId \u67E5\u627E\u5BF9\u5E94\u7684\u4F1A\u5458\u4EF7\u89C4\u5219\n const targetRule = useMemo(() => {\n if (!memberPriceDiscount || !copy.memberPriceTab.memberPriceRuleId) return null\n return memberPriceDiscount\n .find(rule => String(rule.rule_id) === String(copy.memberPriceTab.memberPriceRuleId))\n ?.result_detail?.member_discounts?.find(discount => discount.user_identity === 1)\n }, [memberPriceDiscount, copy.memberPriceTab.memberPriceRuleId])\n\n console.log('targetRule in CreditsMemberPrice', targetRule)\n\n const memberPriceHandles = useMemo(() => {\n if (!targetRule) return []\n\n return targetRule.main_products?.variants?.map(variant => variant.handle) || []\n }, [targetRule?.main_products.variants])\n\n // \u83B7\u53D6\u4F1A\u5458\u4EF7\u4EA7\u54C1\u6570\u636E\uFF08\u901A\u8FC7\u4ECE memberPriceDiscount \u63D0\u53D6\u7684 handles \u83B7\u53D6\u4EA7\u54C1\uFF09\n const { data: memberPriceProducts } = useProductsByHandles({\n handles: memberPriceHandles,\n metafieldIdentifiers: {\n variant: variantMetafieldIdentifiers,\n },\n })\n\n // \u83B7\u53D6\u79EF\u5206\u5151\u6362\u4EA7\u54C1\u6570\u636E\n const { data: redeemProducts } = useProductsByHandles({\n handles: copy?.redeemTab?.list?.map(item => item.products?.[0]?.handle) || [],\n metafieldIdentifiers: {\n variant: variantMetafieldIdentifiers,\n },\n })\n\n // \u8BA1\u7B97\u4F1A\u5458\u4EF7\u7684\u8F85\u52A9\u51FD\u6570\uFF08\u4EC5\u4F7F\u7528\u666E\u901A\u4F1A\u5458 user_identity = 1 \u7684\u6298\u6263\uFF09\n const calculateMemberPrice = useCallback(\n (price: number) => {\n if (!targetRule) return null\n\n const discountConfig = targetRule?.discount_conf\n if (!discountConfig) return null\n\n // \u6839\u636E\u6298\u6263\u7C7B\u578B\u8BA1\u7B97\u4F1A\u5458\u4EF7\n let salePrice = new Decimal(price)\n switch (discountConfig.discount_type) {\n case FunctionDiscountType.Percentage:\n salePrice = salePrice.mul(100 - discountConfig.discount_value).div(100)\n break\n case FunctionDiscountType.FixedAmount:\n salePrice = salePrice.sub(discountConfig.discount_value)\n break\n case FunctionDiscountType.FixedPrice:\n salePrice = new Decimal(discountConfig.discount_value)\n break\n }\n\n return {\n memberPrice: salePrice.toNumber(),\n originalPrice: price,\n }\n },\n [targetRule]\n )\n\n // \u5904\u7406\u4F1A\u5458\u4EF7\u4EA7\u54C1\u5217\u8868\uFF08\u4EC5\u666E\u901A\u4F1A\u5458 user_identity = 1 \u7684\u6298\u6263\uFF09\n const memberPriceList = useMemo(() => {\n if (!targetRule || !memberPriceProducts) return []\n\n return (\n (targetRule.main_products.variants\n .map(variant => {\n const product = memberPriceProducts.find(p => p.handle === variant.handle)\n if (!product) return null\n\n const productVariant = product.variants?.find(v => v.sku === variant.sku) || product.variants?.[0]\n if (!productVariant || !productVariant.availableForSale) return null\n\n const priceResult = calculateMemberPrice(productVariant.price.amount)\n if (!priceResult) return null\n\n return {\n product,\n productVariant,\n memberPrice: priceResult.memberPrice,\n originalPrice: priceResult.originalPrice,\n }\n })\n ?.filter(Boolean) as unknown as MemberPriceProduct[]) || []\n )\n }, [targetRule, memberPriceProducts, calculateMemberPrice])\n\n // \u5904\u7406\u79EF\u5206\u5151\u6362\u4EA7\u54C1\u5217\u8868\uFF08\u590D\u7528 creditsCash \u7684\u903B\u8F91\uFF0C\u8FC7\u6EE4\u7F3A\u8D27\u5546\u54C1\uFF09\n const redeemList = useMemo(() => {\n return redeemProducts\n ?.map((product: Product) => {\n const config = copy.redeemTab.list.find(item => item.products?.[0]?.handle === product.handle)\n const alpcData = redeemableList.find(item => item.id?.toString() === config?.redeemId?.toString())\n const productVariant =\n product.variants?.find((variant: any) => variant.sku === config?.products?.[0]?.sku) || product.variants?.[0]\n\n // \u8FC7\u6EE4\u6761\u4EF6\uFF1A\n // 1. \u5FC5\u987B\u6709 alpcData \u548C productVariant\n // 2. \u5546\u54C1\u4E0D\u80FD\u7F3A\u8D27\n // 3. \u5982\u679C\u6709\u5E93\u5B58\u9650\u5236\uFF0C\u5219\u5E93\u5B58\u5FC5\u987B\u5927\u4E8E 0\n if (!alpcData || !productVariant) return null\n if (!productVariant.availableForSale) return null\n if (alpcData.is_limited && alpcData.remaining_inventory <= 0) return null\n\n return {\n product,\n productVariant,\n alpcData: {\n id: alpcData?.id,\n consumeCredits: alpcData?.consume_credits,\n remainingInventory: alpcData?.remaining_inventory,\n isLimited: alpcData?.is_limited,\n consumeType: alpcData?.consume_type,\n title: alpcData?.name,\n desc: alpcData?.note,\n },\n config,\n }\n })\n .filter(Boolean) as unknown as RedeemItem[]\n }, [redeemProducts, copy.redeemTab.list, redeemableList])\n\n // \u8BA1\u7B97\u4F1A\u5458\u4EF7\u5206\u9875\n const memberPricePagination = useMemo(() => {\n const totalItems = memberPriceList?.length || 0\n const totalPages = Math.ceil(totalItems / itemsPerPage)\n const startIndex = (currentPage - 1) * itemsPerPage\n const endIndex = startIndex + itemsPerPage\n const currentItems = memberPriceList?.slice(startIndex, endIndex) || []\n\n return {\n totalPages,\n currentItems,\n showPagination: totalPages > 1,\n }\n }, [memberPriceList, currentPage, itemsPerPage])\n\n // \u8BA1\u7B97\u79EF\u5206\u5151\u6362\u5206\u9875\n const redeemPagination = useMemo(() => {\n const totalItems = redeemList?.length || 0\n const totalPages = Math.ceil(totalItems / itemsPerPage)\n const startIndex = (currentPage - 1) * itemsPerPage\n const endIndex = startIndex + itemsPerPage\n const currentItems = redeemList?.slice(startIndex, endIndex) || []\n\n return {\n totalPages,\n currentItems,\n showPagination: totalPages > 1,\n }\n }, [redeemList, currentPage, itemsPerPage])\n\n // \u5904\u7406\u9875\u9762\u5207\u6362\uFF0C\u6EDA\u52A8\u5230\u6A21\u5757\u9876\u90E8\n const handlePageChange = useCallback(\n (page: number) => {\n setCurrentPage(page)\n // \u6EDA\u52A8\u5230\u6A21\u5757\u9876\u90E8\n if (containerRef.current) {\n const top = containerRef.current.offsetTop\n window.scrollTo({\n top: top - 80, // \u51CF\u53BB 80px \u7684\u504F\u79FB\u91CF\uFF0C\u907F\u514D\u88AB\u56FA\u5B9A\u5934\u90E8\u906E\u6321\n behavior: 'smooth',\n })\n }\n },\n [setCurrentPage]\n )\n\n return (\n <Container id={id} className={cn('bg-[#F5F5F5]')} ref={containerRef}>\n <Heading as=\"h2\" size=\"4\" html={copy.title} className=\"mx:px-[16px]\" />\n\n <Tabs\n align=\"left\"\n className=\"mt-[24px]\"\n value={activeTab}\n onValueChange={value => setActiveTab(value as 'memberPrice' | 'redeem')}\n >\n <TabsList>\n {copy.tabs.map((tab, index) => (\n <TabsTrigger key={index} value={tab.type}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n\n {/* Tab \u5185\u5BB9 */}\n <div className=\"relative mt-[24px]\">\n {/* \u4F1A\u5458\u4EF7 Tab */}\n {activeTab === 'memberPrice' && (\n <>\n <div className=\"grid md:grid-cols-2 gap-[12px] grid-cols-4 md-xl:grid-cols-3 lg:gap-[16px]\">\n {memberPricePagination.currentItems?.map((item, index: number) => (\n <MemberPriceItem key={index} itemData={item} copy={copy.memberPriceTab} />\n ))}\n </div>\n <Pagination\n currentPage={currentPage}\n totalPages={memberPricePagination.totalPages}\n onPageChange={handlePageChange}\n />\n </>\n )}\n\n {/* \u79EF\u5206\u5151\u6362 Tab */}\n {activeTab === 'redeem' && (\n <>\n <div className=\"grid md:grid-cols-2 gap-[12px] grid-cols-4 md-xl:grid-cols-3 lg:gap-[16px]\">\n {redeemPagination.currentItems?.map((item, index: number) => (\n <RedeemableItem\n key={index}\n copy={{\n title: copy.title,\n ...copy.redeemTab,\n }}\n itemData={item}\n setRules={setRules}\n currencyCode={redeemProducts?.[0]?.price.currencyCode || 'USD'}\n />\n ))}\n </div>\n <Pagination\n currentPage={currentPage}\n totalPages={redeemPagination.totalPages}\n onPageChange={handlePageChange}\n />\n </>\n )}\n </div>\n\n {/* Rules Modal */}\n {rules && (\n <RulesModal\n overlayClassName=\"md:px-[16px] md:items-center\"\n className=\"md:h-fit md:rounded-b-[16px]\"\n isOpen={rules.length > 0}\n onClose={() => setRules([])}\n titleClassName=\"border-b-transparent h-[56px]\"\n rules={rules}\n scrollClassName=\"md:mt-[8px] md:mb-[24px] md:pt-0\"\n title={pageCommon?.ruleLabel}\n ruleClassName=\"text-[#1d1d1f] font-bold\"\n />\n )}\n </Container>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["CreditsMemberPrice_exports", "__export", "CreditsMemberPrice", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_decimal", "import_MemberPriceItem", "import_RedeemableItem", "import_useRedeemableList", "import_rulesModal", "import_Pagination", "import_lib", "import_provider", "import_memberPriceConst", "copy", "id", "activeTab", "setActiveTab", "rules", "setRules", "currentPage", "setCurrentPage", "itemsPerPage", "setItemsPerPage", "redeemableList", "useRedeemableList", "pageCommon", "memberPriceDiscount", "containerRef", "variantMetafieldIdentifiers", "updateItemsPerPage", "width", "targetRule", "rule", "discount", "memberPriceHandles", "variant", "memberPriceProducts", "redeemProducts", "item", "calculateMemberPrice", "price", "discountConfig", "salePrice", "Decimal", "memberPriceList", "product", "p", "productVariant", "v", "priceResult", "redeemList", "config", "alpcData", "memberPricePagination", "totalItems", "totalPages", "startIndex", "endIndex", "currentItems", "redeemPagination", "handlePageChange", "page", "top", "cn", "value", "tab", "index", "MemberPriceItem", "RedeemableItem", "RulesModal"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var i in t)c(e,i,{get:t[i],enumerable:!0})},w=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of P(t))!h.call(e,o)&&o!==i&&c(e,o,{get:()=>t[o],enumerable:!(n=v(t,o))||n.enumerable});return e};var y=e=>w(c({},"__esModule",{value:!0}),e);var A={};C(A,{default:()=>k});module.exports=y(A);var r=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),x=require("react"),s=require("../context/utils"),a=require("@anker-in/lib"),p=require("../context/provider");function M({itemData:e,copy:t,className:i}){const{brand:n,locale:o}=(0,a.useHeadlessContext)(),{profile:u}=(0,p.useCreditsContext)(),b=a.ROUNDED_BRANDS.includes(n),{trigger:g,isMutating:d}=(0,a.useBuyNow)({},{throwOnError:!0}),m=(0,x.useMemo)(()=>e.productVariant?.availableForSale,[e.productVariant?.availableForSale]),f=()=>{window.location.href=`/products/${e.product.handle}`},N=()=>{g({customAttributes:[{key:"_member_type",value:String(u?.memberType||0)}],lineItems:[{variant:e.productVariant,quantity:1}]})};return(0,r.jsxs)("div",{className:(0,a.classNames)("relative flex flex-col items-center bg-[#EAEAEC] p-[16px] md:rounded-[12px]",!b&&"rounded-none md:rounded-none",i),children:[t.memberPriceImg&&(0,r.jsx)(l.Picture,{className:"absolute left-[24px] top-[16px] h-[24px] w-auto",imgClassName:"!h-full object-contain",source:t.memberPriceImg.url,alt:t.memberPriceImg.alt||"Member Price"}),(0,r.jsx)("a",{href:`/products/${e.product.handle}`,className:(0,a.classNames)("relative mx-auto size-[138px]"),children:(0,r.jsx)(l.Picture,{className:"mx-auto size-full",imgClassName:"object-contain",source:e?.productVariant?.metafields?.global?.transparentImg||e?.config?.image?.url||e?.productVariant?.image?.url})}),(0,r.jsxs)("div",{className:(0,a.classNames)("mt-[4px] w-full"),children:[(0,r.jsx)(l.Text,{html:e?.product?.title,title:e?.product?.title,className:"line-clamp-2 text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#080A0F]"}),(0,r.jsxs)("div",{className:"mt-[16px] flex flex-col gap-[8px]",children:[(0,r.jsx)(l.Text,{html:t.memberPriceLabel,className:(0,a.classNames)("text-brand-color-0 text-[16px] l-xl:text-[14px] l:text-[12px] w-fit font-bold leading-[1.4] tracking-[-0.28px]",n==="ankersolix"&&"leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-[43%] to-[#00db84] bg-clip-text text-transparent"),as:"p"}),(0,r.jsxs)("div",{className:"flex items-center gap-[4px]",children:[(0,r.jsx)(l.Text,{html:(0,s.formatPrice)({amount:e.memberPrice,currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:o}),className:"text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#080A0F]",as:"span"}),(0,r.jsx)(l.Text,{html:(0,s.formatPrice)({amount:e.originalPrice,currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:o}),className:"text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through",as:"span"})]}),(0,r.jsxs)("div",{className:"flex w-full gap-[8px] md:flex-col",children:[(0,r.jsx)(l.Button,{variant:"secondary",className:"flex-1 md:w-full",size:"lg",onClick:f,disabled:!m,children:t.learnMoreText}),(0,r.jsx)(l.Button,{variant:"primary",className:"flex-1 md:w-full",size:"lg",onClick:N,disabled:!m||d,loading:d,children:t.shopNowText})]})]})]})]})}var k=M;
1
+ "use strict";var d=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var k=(e,r)=>{for(var i in r)d(e,i,{get:r[i],enumerable:!0})},A=(e,r,i,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of V(r))!M.call(e,a)&&a!==i&&d(e,a,{get:()=>r[a],enumerable:!(c=y(r,a))||c.enumerable});return e};var I=e=>A(d({},"__esModule",{value:!0}),e);var $={};k($,{default:()=>B});module.exports=I($);var t=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),p=require("react"),n=require("../context/utils"),o=require("@anker-in/lib"),g=require("../context/provider"),f=require("../../../constants");function S({itemData:e,copy:r,className:i}){const{brand:c,locale:a}=(0,o.useHeadlessContext)(),{profile:s,openSignUpPopup:b}=(0,g.useCreditsContext)(),v=f.ROUNDED_BRANDS.includes(c),{trigger:N,isMutating:x}=(0,o.useBuyNow)({},{throwOnError:!0}),u=(0,p.useMemo)(()=>e.productVariant?.availableForSale,[e.productVariant?.availableForSale]),h=(0,p.useMemo)(()=>!!s,[s]),P=()=>{const m=(0,n.extractVariantId)(e.productVariant?.id),w=m?`/products/${e.product.handle}?variant=${m}`:`/products/${e.product.handle}`;window.location.href=w},C=()=>{if(!h){b();return}N({customAttributes:[{key:"_member_type",value:String(s?.memberType||0)}],lineItems:[{variant:e.productVariant,quantity:1}]})};return(0,t.jsxs)("div",{className:(0,o.classNames)("relative flex flex-col items-center bg-[#EAEAEC] p-[24px] l:p-[8px] rounded-[16px] md-xl:p-[16px] md:rounded-[12px]",!v&&"rounded-none md:rounded-none",i),children:[r.memberPriceImg&&(0,t.jsx)(l.Picture,{className:"absolute left-[24px] top-[16px] h-[24px] w-auto",imgClassName:"!h-full object-contain",source:r.memberPriceImg.url,alt:r.memberPriceImg.alt||"Member Price"}),(0,t.jsx)("a",{href:(0,n.extractVariantId)(e.productVariant?.id)?`/products/${e.product.handle}?variant=${(0,n.extractVariantId)(e.productVariant?.id)}`:`/products/${e.product.handle}`,className:(0,o.classNames)("relative mx-auto size-[138px]"),children:(0,t.jsx)(l.Picture,{className:"mx-auto size-full",imgClassName:"object-contain",source:e?.productVariant?.metafields?.global?.transparentImg||e?.config?.image?.url||e?.productVariant?.image?.url})}),(0,t.jsxs)("div",{className:(0,o.classNames)("mt-[10px] xl:mt-[8px] w-full"),children:[(0,t.jsx)(l.Text,{html:e?.product?.title,title:e?.product?.title,className:"line-clamp-2 text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#080A0F]"}),(0,t.jsxs)("div",{className:"mt-[16px] flex flex-col gap-[8px]",children:[(0,t.jsx)(l.Text,{html:r.memberPriceLabel,className:(0,o.classNames)("text-brand-color-0 text-[16px] l-xl:text-[14px] l:text-[12px] w-fit font-bold leading-[1.4] tracking-[-0.28px]",c==="ankersolix"&&"leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-[43%] to-[#00db84] bg-clip-text text-transparent"),as:"p"}),(0,t.jsxs)("div",{className:"flex items-center gap-[4px]",children:[(0,t.jsx)(l.Text,{html:(0,n.formatPrice)({amount:e.memberPrice,currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:a}),className:"text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#080A0F]",as:"span"}),(0,t.jsx)(l.Text,{html:(0,n.formatPrice)({amount:e.originalPrice,currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:a}),className:"text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through",as:"span"})]}),(0,t.jsxs)("div",{className:"flex w-full gap-[8px] l:flex-col",children:[(0,t.jsx)(l.Button,{variant:"secondary",className:"flex-1 md:w-full",size:"lg",onClick:P,disabled:!u,children:r.learnMoreText}),(0,t.jsx)(l.Button,{variant:"primary",className:"flex-1 md:w-full",size:"lg",onClick:C,disabled:!u||x,loading:x,children:r.shopNowText})]})]})]})]})}var B=S;
2
2
  //# sourceMappingURL=MemberPriceItem.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsMemberPrice/MemberPriceItem.tsx"],
4
- "sourcesContent": ["import { Button, Text, Picture } from '@anker-in/headless-ui'\nimport { useMemo } from 'react'\n\nimport { CreditsMemberPriceCopy, MemberPriceProduct } from './type'\nimport { formatPrice } from '../context/utils'\nimport { classNames as cn, ROUNDED_BRANDS, useHeadlessContext, useBuyNow } from '@anker-in/lib'\nimport { useCreditsContext } from '../context/provider'\n\nfunction MemberPriceItem({\n itemData,\n copy,\n className,\n}: {\n itemData: MemberPriceProduct\n copy: CreditsMemberPriceCopy['memberPriceTab']\n className?: string\n}) {\n const { brand, locale } = useHeadlessContext()\n const { profile } = useCreditsContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n // \u4F7F\u7528 buyNow hook \u6765\u5904\u7406\u7ED3\u7B97\n const { trigger: buyNow, isMutating: isBuying } = useBuyNow({}, { throwOnError: true })\n\n const isAvailable = useMemo(() => {\n return itemData.productVariant?.availableForSale\n }, [itemData.productVariant?.availableForSale])\n\n // Learn More \u6309\u94AE\u70B9\u51FB - \u8DF3\u8F6C\u5230\u4EA7\u54C1\u8BE6\u60C5\u9875\n const handleLearnMore = () => {\n window.location.href = `/products/${itemData.product.handle}`\n }\n\n // Shop Now \u6309\u94AE\u70B9\u51FB - \u4F7F\u7528 buyNow \u8FDB\u884C\u7ED3\u7B97\n const handleShopNow = () => {\n buyNow({\n customAttributes: [\n {\n key: '_member_type',\n value: String(profile?.memberType || 0),\n },\n ],\n lineItems: [\n {\n variant: itemData.productVariant,\n quantity: 1,\n },\n ],\n })\n }\n\n return (\n <div\n className={cn(\n 'relative flex flex-col items-center bg-[#EAEAEC] p-[16px] md:rounded-[12px]',\n !rounded && 'rounded-none md:rounded-none',\n className\n )}\n >\n {/* Member \u6807\u7B7E\u56FE\u7247 */}\n {copy.memberPriceImg && (\n <Picture\n className=\"absolute left-[24px] top-[16px] h-[24px] w-auto\"\n imgClassName=\"!h-full object-contain\"\n source={copy.memberPriceImg.url}\n alt={copy.memberPriceImg.alt || 'Member Price'}\n />\n )}\n\n {/* \u4EA7\u54C1\u56FE\u7247 - \u4F18\u5148\u4F7F\u7528\u4EA7\u54C1\u7684 metafields \u900F\u660E\u56FE */}\n <a href={`/products/${itemData.product.handle}`} className={cn('relative mx-auto size-[138px]')}>\n <Picture\n className=\"mx-auto size-full\"\n imgClassName=\"object-contain\"\n source={\n itemData?.productVariant?.metafields?.global?.transparentImg ||\n itemData?.config?.image?.url ||\n itemData?.productVariant?.image?.url\n }\n ></Picture>\n </a>\n\n {/* \u4EA7\u54C1\u4FE1\u606F */}\n <div className={cn('mt-[4px] w-full')}>\n {/* \u4EA7\u54C1\u6807\u9898 - \u4F7F\u7528\u4EA7\u54C1\u7684\u771F\u5B9E\u6807\u9898 */}\n <Text\n html={itemData?.product?.title}\n title={itemData?.product?.title}\n className=\"line-clamp-2 text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#080A0F]\"\n />\n\n {/* \u4EF7\u683C\u4FE1\u606F */}\n <div className=\"mt-[16px] flex flex-col gap-[8px]\">\n {/* Member Price \u6807\u7B7E - \u4F7F\u7528 text-brand-color-1 */}\n <Text\n html={copy.memberPriceLabel}\n className={cn(\n 'text-brand-color-0 text-[16px] l-xl:text-[14px] l:text-[12px] w-fit font-bold leading-[1.4] tracking-[-0.28px]',\n brand === 'ankersolix' &&\n 'leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-[43%] to-[#00db84] bg-clip-text text-transparent'\n )}\n as=\"p\"\n />\n\n {/* \u4F1A\u5458\u4EF7\u548C\u539F\u4EF7\u5728\u540C\u4E00\u884C */}\n <div className=\"flex items-center gap-[4px]\">\n <Text\n html={formatPrice({\n amount: itemData.memberPrice,\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}\n className=\"text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#080A0F]\"\n as=\"span\"\n />\n <Text\n html={formatPrice({\n amount: itemData.originalPrice,\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}\n className=\"text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through\"\n as=\"span\"\n />\n </div>\n\n {/* \u6309\u94AE\u7EC4 */}\n <div className=\"flex w-full gap-[8px] md:flex-col\">\n {/* Learn More \u6309\u94AE */}\n <Button\n variant=\"secondary\"\n className=\"flex-1 md:w-full\"\n size=\"lg\"\n onClick={handleLearnMore}\n disabled={!isAvailable}\n >\n {copy.learnMoreText}\n </Button>\n\n {/* Shop Now \u6309\u94AE */}\n <Button\n variant=\"primary\"\n className=\"flex-1 md:w-full\"\n size=\"lg\"\n onClick={handleShopNow}\n disabled={!isAvailable || isBuying}\n loading={isBuying}\n >\n {copy.shopNowText}\n </Button>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default MemberPriceItem\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA6DQ,IAAAI,EAAA,6BA7DRC,EAAsC,iCACtCC,EAAwB,iBAGxBC,EAA4B,4BAC5BC,EAAgF,yBAChFC,EAAkC,+BAElC,SAASC,EAAgB,CACvB,SAAAC,EACA,KAAAC,EACA,UAAAC,CACF,EAIG,CACD,KAAM,CAAE,MAAAC,EAAO,OAAAC,CAAO,KAAI,sBAAmB,EACvC,CAAE,QAAAC,CAAQ,KAAI,qBAAkB,EAChCC,EAAU,iBAAe,SAASH,CAAK,EAGvC,CAAE,QAASI,EAAQ,WAAYC,CAAS,KAAI,aAAU,CAAC,EAAG,CAAE,aAAc,EAAK,CAAC,EAEhFC,KAAc,WAAQ,IACnBT,EAAS,gBAAgB,iBAC/B,CAACA,EAAS,gBAAgB,gBAAgB,CAAC,EAGxCU,EAAkB,IAAM,CAC5B,OAAO,SAAS,KAAO,aAAaV,EAAS,QAAQ,MAAM,EAC7D,EAGMW,EAAgB,IAAM,CAC1BJ,EAAO,CACL,iBAAkB,CAChB,CACE,IAAK,eACL,MAAO,OAAOF,GAAS,YAAc,CAAC,CACxC,CACF,EACA,UAAW,CACT,CACE,QAASL,EAAS,eAClB,SAAU,CACZ,CACF,CACF,CAAC,CACH,EAEA,SACE,QAAC,OACC,aAAW,EAAAY,YACT,8EACA,CAACN,GAAW,+BACZJ,CACF,EAGC,UAAAD,EAAK,mBACJ,OAAC,WACC,UAAU,kDACV,aAAa,yBACb,OAAQA,EAAK,eAAe,IAC5B,IAAKA,EAAK,eAAe,KAAO,eAClC,KAIF,OAAC,KAAE,KAAM,aAAaD,EAAS,QAAQ,MAAM,GAAI,aAAW,EAAAY,YAAG,+BAA+B,EAC5F,mBAAC,WACC,UAAU,oBACV,aAAa,iBACb,OACEZ,GAAU,gBAAgB,YAAY,QAAQ,gBAC9CA,GAAU,QAAQ,OAAO,KACzBA,GAAU,gBAAgB,OAAO,IAEpC,EACH,KAGA,QAAC,OAAI,aAAW,EAAAY,YAAG,iBAAiB,EAElC,oBAAC,QACC,KAAMZ,GAAU,SAAS,MACzB,MAAOA,GAAU,SAAS,MAC1B,UAAU,oHACZ,KAGA,QAAC,OAAI,UAAU,oCAEb,oBAAC,QACC,KAAMC,EAAK,iBACX,aAAW,EAAAW,YACT,iHACAT,IAAU,cACR,iHACJ,EACA,GAAG,IACL,KAGA,QAAC,OAAI,UAAU,8BACb,oBAAC,QACC,QAAM,eAAY,CAChB,OAAQH,EAAS,YACjB,aAAcA,GAAU,gBAAgB,MAAM,cAAgB,MAC9D,OAAQI,CACV,CAAC,EACD,UAAU,uGACV,GAAG,OACL,KACA,OAAC,QACC,QAAM,eAAY,CAChB,OAAQJ,EAAS,cACjB,aAAcA,GAAU,gBAAgB,MAAM,cAAgB,MAC9D,OAAQI,CACV,CAAC,EACD,UAAU,oHACV,GAAG,OACL,GACF,KAGA,QAAC,OAAI,UAAU,oCAEb,oBAAC,UACC,QAAQ,YACR,UAAU,mBACV,KAAK,KACL,QAASM,EACT,SAAU,CAACD,EAEV,SAAAR,EAAK,cACR,KAGA,OAAC,UACC,QAAQ,UACR,UAAU,mBACV,KAAK,KACL,QAASU,EACT,SAAU,CAACF,GAAeD,EAC1B,QAASA,EAER,SAAAP,EAAK,YACR,GACF,GACF,GACF,GACF,CAEJ,CAEA,IAAOV,EAAQQ",
6
- "names": ["MemberPriceItem_exports", "__export", "MemberPriceItem_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_utils", "import_lib", "import_provider", "MemberPriceItem", "itemData", "copy", "className", "brand", "locale", "profile", "rounded", "buyNow", "isBuying", "isAvailable", "handleLearnMore", "handleShopNow", "cn"]
4
+ "sourcesContent": ["import { Button, Text, Picture } from '@anker-in/headless-ui'\nimport { useMemo } from 'react'\n\nimport { CreditsMemberPriceCopy, MemberPriceProduct } from './type'\nimport { formatPrice, extractVariantId } from '../context/utils'\nimport { classNames as cn, useHeadlessContext, useBuyNow } from '@anker-in/lib'\nimport { useCreditsContext } from '../context/provider'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nfunction MemberPriceItem({\n itemData,\n copy,\n className,\n}: {\n itemData: MemberPriceProduct\n copy: CreditsMemberPriceCopy['memberPriceTab']\n className?: string\n}) {\n const { brand, locale } = useHeadlessContext()\n const { profile, openSignUpPopup } = useCreditsContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n // \u4F7F\u7528 buyNow hook \u6765\u5904\u7406\u7ED3\u7B97\n const { trigger: buyNow, isMutating: isBuying } = useBuyNow({}, { throwOnError: true })\n\n const isAvailable = useMemo(() => {\n return itemData.productVariant?.availableForSale\n }, [itemData.productVariant?.availableForSale])\n\n const isLogin = useMemo(() => {\n return !!profile\n }, [profile])\n\n // Learn More \u6309\u94AE\u70B9\u51FB - \u8DF3\u8F6C\u5230\u4EA7\u54C1\u8BE6\u60C5\u9875\n const handleLearnMore = () => {\n const variantId = extractVariantId(itemData.productVariant?.id)\n const url = variantId\n ? `/products/${itemData.product.handle}?variant=${variantId}`\n : `/products/${itemData.product.handle}`\n window.location.href = url\n }\n\n // Shop Now \u6309\u94AE\u70B9\u51FB - \u68C0\u67E5\u767B\u5F55\u72B6\u6001\u540E\u4F7F\u7528 buyNow \u8FDB\u884C\u7ED3\u7B97\n const handleShopNow = () => {\n // \u5982\u679C\u672A\u767B\u5F55\uFF0C\u5F39\u51FA\u767B\u5F55\u5F39\u7A97\n if (!isLogin) {\n openSignUpPopup()\n return\n }\n\n // \u5DF2\u767B\u5F55\uFF0C\u6267\u884C\u8D2D\u4E70\n buyNow({\n customAttributes: [\n {\n key: '_member_type',\n value: String(profile?.memberType || 0),\n },\n ],\n lineItems: [\n {\n variant: itemData.productVariant,\n quantity: 1,\n },\n ],\n })\n }\n\n return (\n <div\n className={cn(\n 'relative flex flex-col items-center bg-[#EAEAEC] p-[24px] l:p-[8px] rounded-[16px] md-xl:p-[16px] md:rounded-[12px]',\n !rounded && 'rounded-none md:rounded-none',\n className\n )}\n >\n {/* Member \u6807\u7B7E\u56FE\u7247 */}\n {copy.memberPriceImg && (\n <Picture\n className=\"absolute left-[24px] top-[16px] h-[24px] w-auto\"\n imgClassName=\"!h-full object-contain\"\n source={copy.memberPriceImg.url}\n alt={copy.memberPriceImg.alt || 'Member Price'}\n />\n )}\n\n {/* \u4EA7\u54C1\u56FE\u7247 - \u4F18\u5148\u4F7F\u7528\u4EA7\u54C1\u7684 metafields \u900F\u660E\u56FE */}\n <a\n href={\n extractVariantId(itemData.productVariant?.id)\n ? `/products/${itemData.product.handle}?variant=${extractVariantId(itemData.productVariant?.id)}`\n : `/products/${itemData.product.handle}`\n }\n className={cn('relative mx-auto size-[138px]')}\n >\n <Picture\n className=\"mx-auto size-full\"\n imgClassName=\"object-contain\"\n source={\n itemData?.productVariant?.metafields?.global?.transparentImg ||\n itemData?.config?.image?.url ||\n itemData?.productVariant?.image?.url\n }\n ></Picture>\n </a>\n\n {/* \u4EA7\u54C1\u4FE1\u606F */}\n <div className={cn('mt-[10px] xl:mt-[8px] w-full')}>\n {/* \u4EA7\u54C1\u6807\u9898 - \u4F7F\u7528\u4EA7\u54C1\u7684\u771F\u5B9E\u6807\u9898 */}\n <Text\n html={itemData?.product?.title}\n title={itemData?.product?.title}\n className=\"line-clamp-2 text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#080A0F]\"\n />\n\n {/* \u4EF7\u683C\u4FE1\u606F */}\n <div className=\"mt-[16px] flex flex-col gap-[8px]\">\n {/* Member Price \u6807\u7B7E - \u4F7F\u7528 text-brand-color-1 */}\n <Text\n html={copy.memberPriceLabel}\n className={cn(\n 'text-brand-color-0 text-[16px] l-xl:text-[14px] l:text-[12px] w-fit font-bold leading-[1.4] tracking-[-0.28px]',\n brand === 'ankersolix' &&\n 'leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-[43%] to-[#00db84] bg-clip-text text-transparent'\n )}\n as=\"p\"\n />\n\n {/* \u4F1A\u5458\u4EF7\u548C\u539F\u4EF7\u5728\u540C\u4E00\u884C */}\n <div className=\"flex items-center gap-[4px]\">\n <Text\n html={formatPrice({\n amount: itemData.memberPrice,\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}\n className=\"text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#080A0F]\"\n as=\"span\"\n />\n <Text\n html={formatPrice({\n amount: itemData.originalPrice,\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}\n className=\"text-[24px] l-xxl:text-[20px] l:text-[16px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through\"\n as=\"span\"\n />\n </div>\n\n {/* \u6309\u94AE\u7EC4 */}\n <div className=\"flex w-full gap-[8px] l:flex-col\">\n {/* Learn More \u6309\u94AE */}\n <Button\n variant=\"secondary\"\n className=\"flex-1 md:w-full\"\n size=\"lg\"\n onClick={handleLearnMore}\n disabled={!isAvailable}\n >\n {copy.learnMoreText}\n </Button>\n\n {/* Shop Now \u6309\u94AE */}\n <Button\n variant=\"primary\"\n className=\"flex-1 md:w-full\"\n size=\"lg\"\n onClick={handleShopNow}\n disabled={!isAvailable || isBuying}\n loading={isBuying}\n >\n {copy.shopNowText}\n </Button>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default MemberPriceItem\n"],
5
+ "mappings": "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",
6
+ "names": ["MemberPriceItem_exports", "__export", "MemberPriceItem_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_utils", "import_lib", "import_provider", "import_constants", "MemberPriceItem", "itemData", "copy", "className", "brand", "locale", "profile", "openSignUpPopup", "rounded", "buyNow", "isBuying", "isAvailable", "isLogin", "handleLearnMore", "variantId", "url", "handleShopNow", "cn"]
7
7
  }
@@ -0,0 +1,7 @@
1
+ interface PaginationProps {
2
+ currentPage: number;
3
+ totalPages: number;
4
+ onPageChange: (page: number) => void;
5
+ }
6
+ export declare function Pagination({ currentPage, totalPages, onPageChange }: PaginationProps): import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";var p=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var m=(e,i)=>{for(var n in i)p(e,n,{get:i[n],enumerable:!0})},v=(e,i,n,x)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of a(i))!u.call(e,o)&&o!==n&&p(e,o,{get:()=>i[o],enumerable:!(x=h(i,o))||x.enumerable});return e};var b=e=>v(p({},"__esModule",{value:!0}),e);var k={};m(k,{Pagination:()=>w});module.exports=b(k);var t=require("react/jsx-runtime"),d=require("@anker-in/lib");function w({currentPage:e,totalPages:i,onPageChange:n}){if(i<=1)return null;const o=(()=>{const r=[],c=[];for(let s=1;s<=i;s++)(s===1||s===i||s>=e-2&&s<=e+2)&&r.push(s);let f=0;for(const s of r)f&&s-f>1&&c.push("..."),c.push(s),f=s;return c})();return(0,t.jsxs)("div",{className:"mt-[32px] flex items-center justify-center gap-[8px]",children:[(0,t.jsx)("button",{onClick:()=>n(Math.max(1,e-1)),disabled:e===1,className:(0,d.classNames)("flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white",e===1&&"cursor-not-allowed opacity-50"),children:(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,t.jsx)("path",{d:"M10 12L6 8L10 4",stroke:e===1?"#767880":"#080A0F",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),o.map((l,r)=>l==="..."?(0,t.jsx)("div",{className:"flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white",children:(0,t.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[(0,t.jsx)("circle",{cx:"4.5",cy:"10",r:"1.25",fill:"#2A2C32"}),(0,t.jsx)("circle",{cx:"10",cy:"10",r:"1.25",fill:"#2A2C32"}),(0,t.jsx)("circle",{cx:"15.5",cy:"10",r:"1.25",fill:"#2A2C32"})]})},`ellipsis-${r}`):(0,t.jsx)("button",{onClick:()=>n(l),className:(0,d.classNames)("flex size-[32px] xl:size-[24px] pt-[4px] items-center justify-center overflow-hidden text-[16px] xl:text-[14px] font-bold leading-[1.4] tracking-[-0.28px]",e===l?"bg-[#080a0f] text-white":"bg-white text-[#080a0f]"),children:l},l)),(0,t.jsx)("button",{onClick:()=>n(Math.min(i,e+1)),disabled:e===i,className:(0,d.classNames)("flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white",e===i&&"cursor-not-allowed opacity-50"),children:(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,t.jsx)("path",{d:"M6 4L10 8L6 12",stroke:e===i?"#767880":"#080A0F",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}
2
+ //# sourceMappingURL=Pagination.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsMemberPrice/Pagination.tsx"],
4
+ "sourcesContent": ["import { classNames as cn } from '@anker-in/lib'\n\ninterface PaginationProps {\n currentPage: number\n totalPages: number\n onPageChange: (page: number) => void\n}\n\nexport function Pagination({ currentPage, totalPages, onPageChange }: PaginationProps) {\n if (totalPages <= 1) return null\n\n // \u8BA1\u7B97\u8981\u663E\u793A\u7684\u9875\u7801\n const getPageNumbers = () => {\n const delta = 2 // \u5F53\u524D\u9875\u524D\u540E\u663E\u793A\u7684\u9875\u7801\u6570\u91CF\n const range = []\n const rangeWithDots = []\n\n for (let i = 1; i <= totalPages; i++) {\n if (i === 1 || i === totalPages || (i >= currentPage - delta && i <= currentPage + delta)) {\n range.push(i)\n }\n }\n\n let prev = 0\n for (const i of range) {\n if (prev && i - prev > 1) {\n rangeWithDots.push('...')\n }\n rangeWithDots.push(i)\n prev = i\n }\n\n return rangeWithDots\n }\n\n const pages = getPageNumbers()\n\n return (\n <div className=\"mt-[32px] flex items-center justify-center gap-[8px]\">\n {/* \u4E0A\u4E00\u9875\u6309\u94AE */}\n <button\n onClick={() => onPageChange(Math.max(1, currentPage - 1))}\n disabled={currentPage === 1}\n className={cn(\n 'flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white',\n currentPage === 1 && 'cursor-not-allowed opacity-50'\n )}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M10 12L6 8L10 4\"\n stroke={currentPage === 1 ? '#767880' : '#080A0F'}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n\n {/* \u9875\u7801\u6309\u94AE */}\n {pages.map((page, index) => {\n if (page === '...') {\n return (\n <div\n key={`ellipsis-${index}`}\n className=\"flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white\"\n >\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"4.5\" cy=\"10\" r=\"1.25\" fill=\"#2A2C32\" />\n <circle cx=\"10\" cy=\"10\" r=\"1.25\" fill=\"#2A2C32\" />\n <circle cx=\"15.5\" cy=\"10\" r=\"1.25\" fill=\"#2A2C32\" />\n </svg>\n </div>\n )\n }\n\n const isActive = currentPage === page\n return (\n <button\n key={page}\n onClick={() => onPageChange(page as number)}\n className={cn(\n 'flex size-[32px] xl:size-[24px] pt-[4px] items-center justify-center overflow-hidden text-[16px] xl:text-[14px] font-bold leading-[1.4] tracking-[-0.28px]',\n isActive ? 'bg-[#080a0f] text-white' : 'bg-white text-[#080a0f]'\n )}\n >\n {page}\n </button>\n )\n })}\n\n {/* \u4E0B\u4E00\u9875\u6309\u94AE */}\n <button\n onClick={() => onPageChange(Math.min(totalPages, currentPage + 1))}\n disabled={currentPage === totalPages}\n className={cn(\n 'flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white',\n currentPage === totalPages && 'cursor-not-allowed opacity-50'\n )}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M6 4L10 8L6 12\"\n stroke={currentPage === totalPages ? '#767880' : '#080A0F'}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n )\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,IAAA,eAAAC,EAAAH,GAiDU,IAAAI,EAAA,6BAjDVC,EAAiC,yBAQ1B,SAASH,EAAW,CAAE,YAAAI,EAAa,WAAAC,EAAY,aAAAC,CAAa,EAAoB,CACrF,GAAID,GAAc,EAAG,OAAO,KA0B5B,MAAME,GAvBiB,IAAM,CAE3B,MAAMC,EAAQ,CAAC,EACTC,EAAgB,CAAC,EAEvB,QAASC,EAAI,EAAGA,GAAKL,EAAYK,KAC3BA,IAAM,GAAKA,IAAML,GAAeK,GAAKN,EAAc,GAASM,GAAKN,EAAc,IACjFI,EAAM,KAAKE,CAAC,EAIhB,IAAIC,EAAO,EACX,UAAWD,KAAKF,EACVG,GAAQD,EAAIC,EAAO,GACrBF,EAAc,KAAK,KAAK,EAE1BA,EAAc,KAAKC,CAAC,EACpBC,EAAOD,EAGT,OAAOD,CACT,GAE6B,EAE7B,SACE,QAAC,OAAI,UAAU,uDAEb,oBAAC,UACC,QAAS,IAAMH,EAAa,KAAK,IAAI,EAAGF,EAAc,CAAC,CAAC,EACxD,SAAUA,IAAgB,EAC1B,aAAW,EAAAQ,YACT,uFACAR,IAAgB,GAAK,+BACvB,EAEA,mBAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACnD,mBAAC,QACC,EAAE,kBACF,OAAQA,IAAgB,EAAI,UAAY,UACxC,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,EACF,EACF,EAGCG,EAAM,IAAI,CAACM,EAAMC,IACZD,IAAS,SAET,OAAC,OAEC,UAAU,uFAEV,oBAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACnD,oBAAC,UAAO,GAAG,MAAM,GAAG,KAAK,EAAE,OAAO,KAAK,UAAU,KACjD,OAAC,UAAO,GAAG,KAAK,GAAG,KAAK,EAAE,OAAO,KAAK,UAAU,KAChD,OAAC,UAAO,GAAG,OAAO,GAAG,KAAK,EAAE,OAAO,KAAK,UAAU,GACpD,GAPK,YAAYC,CAAK,EAQxB,KAMF,OAAC,UAEC,QAAS,IAAMR,EAAaO,CAAc,EAC1C,aAAW,EAAAD,YACT,6JANWR,IAAgBS,EAOhB,0BAA4B,yBACzC,EAEC,SAAAA,GAPIA,CAQP,CAEH,KAGD,OAAC,UACC,QAAS,IAAMP,EAAa,KAAK,IAAID,EAAYD,EAAc,CAAC,CAAC,EACjE,SAAUA,IAAgBC,EAC1B,aAAW,EAAAO,YACT,uFACAR,IAAgBC,GAAc,+BAChC,EAEA,mBAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACnD,mBAAC,QACC,EAAE,iBACF,OAAQD,IAAgBC,EAAa,UAAY,UACjD,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,EACF,EACF,GACF,CAEJ",
6
+ "names": ["Pagination_exports", "__export", "Pagination", "__toCommonJS", "import_jsx_runtime", "import_lib", "currentPage", "totalPages", "onPageChange", "pages", "range", "rangeWithDots", "i", "prev", "cn", "page", "index"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var k=Object.create;var d=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty;var A=(o,t)=>{for(var n in t)d(o,n,{get:t[n],enumerable:!0})},m=(o,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of w(t))!S.call(o,l)&&l!==n&&d(o,l,{get:()=>t[l],enumerable:!(r=E(t,l))||r.enumerable});return o};var g=(o,t,n)=>(n=o!=null?k(D(o)):{},m(t||!o||!o.__esModule?d(n,"default",{value:o,enumerable:!0}):n,o)),_=o=>m(d({},"__esModule",{value:!0}),o);var P={};A(P,{CountrySelect:()=>z});module.exports=_(P);var s=require("react/jsx-runtime"),x=require("@anker-in/headless-ui"),b=g(require("../../context/hooks/useClickOutside")),a=g(require("classnames")),i=require("react"),c=require("@anker-in/lib");function z({countries:o,loading:t,className:n,value:r,onChange:l}){const[v,p]=(0,i.useState)(!1),[y,u]=(0,i.useState)(""),{brand:h}=(0,c.useHeadlessContext)(),f=c.ROUNDED_BRANDS.includes(h),C=(0,b.default)(()=>{p(!1)});return(0,i.useEffect)(()=>{const e=o.filter(N=>N.code===r);e.length&&u(e[0].name)},[u,o,r]),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("select",{className:(0,a.default)("!h-[50px] pr-[45px] min-l:hidden",n),style:{WebkitTextFillColor:"black"},disabled:t,value:r,onChange:e=>{l(e.target.value)},children:o.map(e=>(0,s.jsx)("option",{value:e.code,children:e.name},e.code))}),(0,s.jsx)("div",{className:(0,a.default)("absolute left-0 top-0 hidden !h-[50px] rounded-[2px] pr-[45px] text-[16px] font-bold focus:!border-[#6D6D6F] min-l:!block",!f&&"rounded-none",n),onClick:()=>{p(!0)},role:"button",tabIndex:0,onKeyDown:e=>{(e.key==="Enter"||e.key===" ")&&e.preventDefault()},children:y}),(0,s.jsx)(x.Picture,{source:"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500",className:"absolute pointer-events-none right-0 top-0 bottom-0 size-[50px] object-cover",alt:"arrow"}),(0,s.jsx)("div",{ref:C,className:(0,a.default)("absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]",!f&&"rounded-none",{"!hidden":!v}),children:(0,s.jsx)("ul",{className:"py-[6px]",children:o.map(e=>(0,s.jsxs)("li",{value:e.code,className:(0,a.default)("relative px-[14px] py-[17px] text-[16px] font-bold leading-[1] transition hover:bg-[#EAEAEC]",{"!bg-[#EAEAEC]":e.code===r}),children:[(0,s.jsx)("button",{className:"absolute left-0 top-0 z-1 size-full opacity-0",value:e.code,onClick:()=>{u(e.name),p(!1),l(e.code)}}),e.name]},e.code))})})]})}
1
+ "use strict";var E=Object.create;var d=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var _=(o,t)=>{for(var n in t)d(o,n,{get:t[n],enumerable:!0})},f=(o,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of D(t))!A.call(o,l)&&l!==n&&d(o,l,{get:()=>t[l],enumerable:!(r=w(t,l))||r.enumerable});return o};var m=(o,t,n)=>(n=o!=null?E(S(o)):{},f(t||!o||!o.__esModule?d(n,"default",{value:o,enumerable:!0}):n,o)),z=o=>f(d({},"__esModule",{value:!0}),o);var F={};_(F,{CountrySelect:()=>P});module.exports=z(F);var s=require("react/jsx-runtime"),g=require("@anker-in/headless-ui"),x=m(require("../../context/hooks/useClickOutside")),a=m(require("classnames")),i=require("react"),b=require("@anker-in/lib"),v=require("../../../../constants");function P({countries:o,loading:t,className:n,value:r,onChange:l}){const[y,c]=(0,i.useState)(!1),[h,p]=(0,i.useState)(""),{brand:C}=(0,b.useHeadlessContext)(),u=v.ROUNDED_BRANDS.includes(C),N=(0,x.default)(()=>{c(!1)});return(0,i.useEffect)(()=>{const e=o.filter(k=>k.code===r);e.length&&p(e[0].name)},[p,o,r]),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("select",{className:(0,a.default)("!h-[50px] pr-[45px] min-l:hidden",n),style:{WebkitTextFillColor:"black"},disabled:t,value:r,onChange:e=>{l(e.target.value)},children:o.map(e=>(0,s.jsx)("option",{value:e.code,children:e.name},e.code))}),(0,s.jsx)("div",{className:(0,a.default)("absolute left-0 top-0 hidden !h-[50px] rounded-[2px] pr-[45px] text-[16px] font-bold focus:!border-[#6D6D6F] min-l:!block",!u&&"rounded-none",n),onClick:()=>{c(!0)},role:"button",tabIndex:0,onKeyDown:e=>{(e.key==="Enter"||e.key===" ")&&e.preventDefault()},children:h}),(0,s.jsx)(g.Picture,{source:"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500",className:"absolute pointer-events-none right-0 top-0 bottom-0 size-[50px] object-cover",alt:"arrow"}),(0,s.jsx)("div",{ref:N,className:(0,a.default)("absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]",!u&&"rounded-none",{"!hidden":!y}),children:(0,s.jsx)("ul",{className:"py-[6px]",children:o.map(e=>(0,s.jsxs)("li",{value:e.code,className:(0,a.default)("relative px-[14px] py-[17px] text-[16px] font-bold leading-[1] transition hover:bg-[#EAEAEC]",{"!bg-[#EAEAEC]":e.code===r}),children:[(0,s.jsx)("button",{className:"absolute left-0 top-0 z-1 size-full opacity-0",value:e.code,onClick:()=>{p(e.name),c(!1),l(e.code)}}),e.name]},e.code))})})]})}
2
2
  //# sourceMappingURL=CountrySelect.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/creditsRedeemList/AddressForm/CountrySelect.tsx"],
4
- "sourcesContent": ["import { Picture } from '@anker-in/headless-ui'\nimport useClickOutside from '../../context/hooks/useClickOutside'\nimport classNames from 'classnames'\nimport { useEffect, useState } from 'react'\nimport { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'\n\ninterface Country {\n id: string\n code: string\n name: string\n}\n\ninterface CountrySelectProps {\n countries: Country[]\n loading?: boolean\n className?: string\n value?: string\n onChange: (code: string) => void\n}\n\nexport function CountrySelect({ countries, loading, className, value, onChange }: CountrySelectProps) {\n const [show, setShow] = useState(false)\n const [display, setDisplay] = useState<any>('')\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const dorpdown = useClickOutside<HTMLDivElement>(() => {\n setShow(false)\n })\n\n useEffect(() => {\n const target = countries.filter(item => item.code === value)\n if (target.length) setDisplay(target[0].name)\n }, [setDisplay, countries, value])\n\n return (\n <div className=\"relative\">\n <select\n className={classNames('!h-[50px] pr-[45px] min-l:hidden', className)}\n style={{\n WebkitTextFillColor: 'black',\n }}\n disabled={loading}\n value={value}\n onChange={event => {\n onChange(event.target.value)\n }}\n >\n {countries.map((item: { id: string; name: string; code: string }) => (\n <option key={item.code} value={item.code}>\n {item.name}\n </option>\n ))}\n </select>\n\n <div\n className={classNames(\n 'absolute left-0 top-0 hidden !h-[50px] rounded-[2px] pr-[45px] text-[16px] font-bold focus:!border-[#6D6D6F] min-l:!block',\n !rounded && 'rounded-none',\n className\n )}\n onClick={() => {\n setShow(true)\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {display}\n </div>\n\n <Picture\n source=\"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500\"\n className=\"absolute pointer-events-none right-0 top-0 bottom-0 size-[50px] object-cover\"\n alt=\"arrow\"\n />\n\n <div\n ref={dorpdown}\n className={classNames(\n 'absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]',\n !rounded && 'rounded-none',\n { '!hidden': !show }\n )}\n >\n <ul className=\"py-[6px]\">\n {countries.map((item: { id: string; name: string; code: string }) => (\n <li\n key={item.code}\n value={item.code}\n className={classNames(\n 'relative px-[14px] py-[17px] text-[16px] font-bold leading-[1] transition hover:bg-[#EAEAEC]',\n { '!bg-[#EAEAEC]': item.code === value }\n )}\n >\n <button\n className=\"absolute left-0 top-0 z-1 size-full opacity-0\"\n value={item.code}\n onClick={() => {\n setDisplay(item.name)\n setShow(false)\n onChange(item.code)\n }}\n />\n {item.name}\n </li>\n ))}\n </ul>\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAgDU,IAAAI,EAAA,6BAhDVC,EAAwB,iCACxBC,EAA4B,kDAC5BC,EAAuB,yBACvBC,EAAoC,iBACpCC,EAAmD,yBAgB5C,SAASP,EAAc,CAAE,UAAAQ,EAAW,QAAAC,EAAS,UAAAC,EAAW,MAAAC,EAAO,SAAAC,CAAS,EAAuB,CACpG,KAAM,CAACC,EAAMC,CAAO,KAAI,YAAS,EAAK,EAChC,CAACC,EAASC,CAAU,KAAI,YAAc,EAAE,EACxC,CAAE,MAAAC,CAAM,KAAI,sBAAmB,EAC/BC,EAAU,iBAAe,SAASD,CAAK,EACvCE,KAAW,EAAAC,SAAgC,IAAM,CACrDN,EAAQ,EAAK,CACf,CAAC,EAED,sBAAU,IAAM,CACd,MAAMO,EAASb,EAAU,OAAOc,GAAQA,EAAK,OAASX,CAAK,EACvDU,EAAO,QAAQL,EAAWK,EAAO,CAAC,EAAE,IAAI,CAC9C,EAAG,CAACL,EAAYR,EAAWG,CAAK,CAAC,KAG/B,QAAC,OAAI,UAAU,WACb,oBAAC,UACC,aAAW,EAAAY,SAAW,mCAAoCb,CAAS,EACnE,MAAO,CACL,oBAAqB,OACvB,EACA,SAAUD,EACV,MAAOE,EACP,SAAUa,GAAS,CACjBZ,EAASY,EAAM,OAAO,KAAK,CAC7B,EAEC,SAAAhB,EAAU,IAAKc,MACd,OAAC,UAAuB,MAAOA,EAAK,KACjC,SAAAA,EAAK,MADKA,EAAK,IAElB,CACD,EACH,KAEA,OAAC,OACC,aAAW,EAAAC,SACT,4HACA,CAACL,GAAW,eACZR,CACF,EACA,QAAS,IAAM,CACbI,EAAQ,EAAI,CACd,EACA,KAAK,SACL,SAAU,EACV,UAAW,GAAK,EACV,EAAE,MAAQ,SAAW,EAAE,MAAQ,MACjC,EAAE,eAAe,CAErB,EAEC,SAAAC,EACH,KAEA,OAAC,WACC,OAAO,yFACP,UAAU,+EACV,IAAI,QACN,KAEA,OAAC,OACC,IAAKI,EACL,aAAW,EAAAI,SACT,yIACA,CAACL,GAAW,eACZ,CAAE,UAAW,CAACL,CAAK,CACrB,EAEA,mBAAC,MAAG,UAAU,WACX,SAAAL,EAAU,IAAKc,MACd,QAAC,MAEC,MAAOA,EAAK,KACZ,aAAW,EAAAC,SACT,+FACA,CAAE,gBAAiBD,EAAK,OAASX,CAAM,CACzC,EAEA,oBAAC,UACC,UAAU,gDACV,MAAOW,EAAK,KACZ,QAAS,IAAM,CACbN,EAAWM,EAAK,IAAI,EACpBR,EAAQ,EAAK,EACbF,EAASU,EAAK,IAAI,CACpB,EACF,EACCA,EAAK,OAhBDA,EAAK,IAiBZ,CACD,EACH,EACF,GACF,CAEJ",
6
- "names": ["CountrySelect_exports", "__export", "CountrySelect", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_useClickOutside", "import_classnames", "import_react", "import_lib", "countries", "loading", "className", "value", "onChange", "show", "setShow", "display", "setDisplay", "brand", "rounded", "dorpdown", "useClickOutside", "target", "item", "classNames", "event"]
4
+ "sourcesContent": ["import { Picture } from '@anker-in/headless-ui'\nimport useClickOutside from '../../context/hooks/useClickOutside'\nimport classNames from 'classnames'\nimport { useEffect, useState } from 'react'\nimport { useHeadlessContext } from '@anker-in/lib'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ninterface Country {\n id: string\n code: string\n name: string\n}\n\ninterface CountrySelectProps {\n countries: Country[]\n loading?: boolean\n className?: string\n value?: string\n onChange: (code: string) => void\n}\n\nexport function CountrySelect({ countries, loading, className, value, onChange }: CountrySelectProps) {\n const [show, setShow] = useState(false)\n const [display, setDisplay] = useState<any>('')\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const dorpdown = useClickOutside<HTMLDivElement>(() => {\n setShow(false)\n })\n\n useEffect(() => {\n const target = countries.filter(item => item.code === value)\n if (target.length) setDisplay(target[0].name)\n }, [setDisplay, countries, value])\n\n return (\n <div className=\"relative\">\n <select\n className={classNames('!h-[50px] pr-[45px] min-l:hidden', className)}\n style={{\n WebkitTextFillColor: 'black',\n }}\n disabled={loading}\n value={value}\n onChange={event => {\n onChange(event.target.value)\n }}\n >\n {countries.map((item: { id: string; name: string; code: string }) => (\n <option key={item.code} value={item.code}>\n {item.name}\n </option>\n ))}\n </select>\n\n <div\n className={classNames(\n 'absolute left-0 top-0 hidden !h-[50px] rounded-[2px] pr-[45px] text-[16px] font-bold focus:!border-[#6D6D6F] min-l:!block',\n !rounded && 'rounded-none',\n className\n )}\n onClick={() => {\n setShow(true)\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {display}\n </div>\n\n <Picture\n source=\"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500\"\n className=\"absolute pointer-events-none right-0 top-0 bottom-0 size-[50px] object-cover\"\n alt=\"arrow\"\n />\n\n <div\n ref={dorpdown}\n className={classNames(\n 'absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]',\n !rounded && 'rounded-none',\n { '!hidden': !show }\n )}\n >\n <ul className=\"py-[6px]\">\n {countries.map((item: { id: string; name: string; code: string }) => (\n <li\n key={item.code}\n value={item.code}\n className={classNames(\n 'relative px-[14px] py-[17px] text-[16px] font-bold leading-[1] transition hover:bg-[#EAEAEC]',\n { '!bg-[#EAEAEC]': item.code === value }\n )}\n >\n <button\n className=\"absolute left-0 top-0 z-1 size-full opacity-0\"\n value={item.code}\n onClick={() => {\n setDisplay(item.name)\n setShow(false)\n onChange(item.code)\n }}\n />\n {item.name}\n </li>\n ))}\n </ul>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAiDU,IAAAI,EAAA,6BAjDVC,EAAwB,iCACxBC,EAA4B,kDAC5BC,EAAuB,yBACvBC,EAAoC,iBACpCC,EAAmC,yBACnCC,EAA+B,iCAgBxB,SAASR,EAAc,CAAE,UAAAS,EAAW,QAAAC,EAAS,UAAAC,EAAW,MAAAC,EAAO,SAAAC,CAAS,EAAuB,CACpG,KAAM,CAACC,EAAMC,CAAO,KAAI,YAAS,EAAK,EAChC,CAACC,EAASC,CAAU,KAAI,YAAc,EAAE,EACxC,CAAE,MAAAC,CAAM,KAAI,sBAAmB,EAC/BC,EAAU,iBAAe,SAASD,CAAK,EACvCE,KAAW,EAAAC,SAAgC,IAAM,CACrDN,EAAQ,EAAK,CACf,CAAC,EAED,sBAAU,IAAM,CACd,MAAMO,EAASb,EAAU,OAAOc,GAAQA,EAAK,OAASX,CAAK,EACvDU,EAAO,QAAQL,EAAWK,EAAO,CAAC,EAAE,IAAI,CAC9C,EAAG,CAACL,EAAYR,EAAWG,CAAK,CAAC,KAG/B,QAAC,OAAI,UAAU,WACb,oBAAC,UACC,aAAW,EAAAY,SAAW,mCAAoCb,CAAS,EACnE,MAAO,CACL,oBAAqB,OACvB,EACA,SAAUD,EACV,MAAOE,EACP,SAAUa,GAAS,CACjBZ,EAASY,EAAM,OAAO,KAAK,CAC7B,EAEC,SAAAhB,EAAU,IAAKc,MACd,OAAC,UAAuB,MAAOA,EAAK,KACjC,SAAAA,EAAK,MADKA,EAAK,IAElB,CACD,EACH,KAEA,OAAC,OACC,aAAW,EAAAC,SACT,4HACA,CAACL,GAAW,eACZR,CACF,EACA,QAAS,IAAM,CACbI,EAAQ,EAAI,CACd,EACA,KAAK,SACL,SAAU,EACV,UAAW,GAAK,EACV,EAAE,MAAQ,SAAW,EAAE,MAAQ,MACjC,EAAE,eAAe,CAErB,EAEC,SAAAC,EACH,KAEA,OAAC,WACC,OAAO,yFACP,UAAU,+EACV,IAAI,QACN,KAEA,OAAC,OACC,IAAKI,EACL,aAAW,EAAAI,SACT,yIACA,CAACL,GAAW,eACZ,CAAE,UAAW,CAACL,CAAK,CACrB,EAEA,mBAAC,MAAG,UAAU,WACX,SAAAL,EAAU,IAAKc,MACd,QAAC,MAEC,MAAOA,EAAK,KACZ,aAAW,EAAAC,SACT,+FACA,CAAE,gBAAiBD,EAAK,OAASX,CAAM,CACzC,EAEA,oBAAC,UACC,UAAU,gDACV,MAAOW,EAAK,KACZ,QAAS,IAAM,CACbN,EAAWM,EAAK,IAAI,EACpBR,EAAQ,EAAK,EACbF,EAASU,EAAK,IAAI,CACpB,EACF,EACCA,EAAK,OAhBDA,EAAK,IAiBZ,CACD,EACH,EACF,GACF,CAEJ",
6
+ "names": ["CountrySelect_exports", "__export", "CountrySelect", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_useClickOutside", "import_classnames", "import_react", "import_lib", "import_constants", "countries", "loading", "className", "value", "onChange", "show", "setShow", "display", "setDisplay", "brand", "rounded", "dorpdown", "useClickOutside", "target", "item", "classNames", "event"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var C=Object.create;var p=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var E=(n,o)=>{for(var l in o)p(n,l,{get:o[l],enumerable:!0})},v=(n,o,l,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of j(o))!_.call(n,a)&&a!==l&&p(n,a,{get:()=>o[a],enumerable:!(r=D(o,a))||r.enumerable});return n};var m=(n,o,l)=>(l=n!=null?C(F(n)):{},v(o||!n||!n.__esModule?p(l,"default",{value:n,enumerable:!0}):l,n)),z=n=>v(p({},"__esModule",{value:!0}),n);var T={};E(T,{StateSelect:()=>P});module.exports=z(T);var t=require("react/jsx-runtime"),d=m(require("classnames")),x=require("@anker-in/headless-ui"),i=require("react"),b=m(require("../../context/hooks/useClickOutside")),u=require("@anker-in/lib");function P({states:n,stateName:o="",stateCode:l="",className:r="",onChange:a}){const[h,f]=(0,i.useState)(!1),[y,g]=(0,i.useState)(""),{brand:k}=(0,u.useHeadlessContext)(),w=u.ROUNDED_BRANDS.includes(k),N=(0,b.default)(()=>{f(!1)}),c=(0,i.useMemo)(()=>{const e=n.find(s=>l?s.code===l:s.name===o);return e?[e?.id,e?.name,e?.code].join(","):""},[n,l,o]);return(0,i.useEffect)(()=>{const e=n.filter(s=>[s.id,s.name,s.code].join(",")===c);e.length&&g(e[0].name)},[g,n,c]),(0,t.jsx)("div",{className:"relative h-full",children:n.length?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("select",{className:(0,d.default)("h-[52px] pr-[45px] min-l:hidden",r),value:c,style:{WebkitTextFillColor:c?"black":"#666"},onChange:e=>{const[,s,S]=e.target.value.split(",");a(S,s)},children:n.map(e=>(0,t.jsx)("option",{value:[e.id,e.name,e.code].join(","),children:e.name},e.id))}),(0,t.jsx)("div",{className:(0,d.default)("absolute left-0 top-0 hidden h-[52px] pr-[45px] min-l:!block",r),onClick:()=>{f(!0)},role:"button",tabIndex:0,onKeyDown:e=>{(e.key==="Enter"||e.key===" ")&&e.preventDefault()},children:y}),(0,t.jsx)(x.Picture,{source:"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500",className:"pointer-events-none absolute right-0 top-1/2 h-[45px] !w-[45px] -translate-y-1/2 object-cover",alt:"arrow"}),(0,t.jsx)("div",{ref:N,className:(0,d.default)("absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]",!w&&"rounded-none",{"!hidden":!h}),children:(0,t.jsx)("ul",{className:"py-[6px]",children:n.map(e=>(0,t.jsxs)("li",{value:[e.id,e.name,e.code].join(","),className:(0,d.default)("relative px-[14px] py-[17px] text-[16px] font-semibold leading-[1] transition hover:bg-[#F7F8F9]",{"!bg-[#e8e8e8]":[e.id,e.name,e.code].join(",")===c}),children:[(0,t.jsx)("button",{className:"absolute left-0 top-0 z-1 size-full opacity-0",value:[e.id,e.name,e.code].join(","),onClick:()=>{g(e.name),f(!1),a(e.code,e.name)}}),e.name]},e.id))})})]}):(0,t.jsx)("input",{className:r,value:o,style:{WebkitTextFillColor:"black"},onChange:e=>{a("",e.target.value)}})})}
1
+ "use strict";var D=Object.create;var p=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var z=(n,o)=>{for(var l in o)p(n,l,{get:o[l],enumerable:!0})},g=(n,o,l,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of F(o))!E.call(n,a)&&a!==l&&p(n,a,{get:()=>o[a],enumerable:!(i=j(o,a))||i.enumerable});return n};var m=(n,o,l)=>(l=n!=null?D(_(n)):{},g(o||!n||!n.__esModule?p(l,"default",{value:n,enumerable:!0}):l,n)),P=n=>g(p({},"__esModule",{value:!0}),n);var H={};z(H,{StateSelect:()=>T});module.exports=P(H);var t=require("react/jsx-runtime"),d=m(require("classnames")),v=require("@anker-in/headless-ui"),r=require("react"),x=m(require("../../context/hooks/useClickOutside")),b=require("@anker-in/lib"),h=require("../../../../constants");function T({states:n,stateName:o="",stateCode:l="",className:i="",onChange:a}){const[y,u]=(0,r.useState)(!1),[k,f]=(0,r.useState)(""),{brand:w}=(0,b.useHeadlessContext)(),N=h.ROUNDED_BRANDS.includes(w),S=(0,x.default)(()=>{u(!1)}),c=(0,r.useMemo)(()=>{const e=n.find(s=>l?s.code===l:s.name===o);return e?[e?.id,e?.name,e?.code].join(","):""},[n,l,o]);return(0,r.useEffect)(()=>{const e=n.filter(s=>[s.id,s.name,s.code].join(",")===c);e.length&&f(e[0].name)},[f,n,c]),(0,t.jsx)("div",{className:"relative h-full",children:n.length?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("select",{className:(0,d.default)("h-[52px] pr-[45px] min-l:hidden",i),value:c,style:{WebkitTextFillColor:c?"black":"#666"},onChange:e=>{const[,s,C]=e.target.value.split(",");a(C,s)},children:n.map(e=>(0,t.jsx)("option",{value:[e.id,e.name,e.code].join(","),children:e.name},e.id))}),(0,t.jsx)("div",{className:(0,d.default)("absolute left-0 top-0 hidden h-[52px] pr-[45px] min-l:!block",i),onClick:()=>{u(!0)},role:"button",tabIndex:0,onKeyDown:e=>{(e.key==="Enter"||e.key===" ")&&e.preventDefault()},children:k}),(0,t.jsx)(v.Picture,{source:"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500",className:"pointer-events-none absolute right-0 top-1/2 h-[45px] !w-[45px] -translate-y-1/2 object-cover",alt:"arrow"}),(0,t.jsx)("div",{ref:S,className:(0,d.default)("absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]",!N&&"rounded-none",{"!hidden":!y}),children:(0,t.jsx)("ul",{className:"py-[6px]",children:n.map(e=>(0,t.jsxs)("li",{value:[e.id,e.name,e.code].join(","),className:(0,d.default)("relative px-[14px] py-[17px] text-[16px] font-semibold leading-[1] transition hover:bg-[#F7F8F9]",{"!bg-[#e8e8e8]":[e.id,e.name,e.code].join(",")===c}),children:[(0,t.jsx)("button",{className:"absolute left-0 top-0 z-1 size-full opacity-0",value:[e.id,e.name,e.code].join(","),onClick:()=>{f(e.name),u(!1),a(e.code,e.name)}}),e.name]},e.id))})})]}):(0,t.jsx)("input",{className:i,value:o,style:{WebkitTextFillColor:"black"},onChange:e=>{a("",e.target.value)}})})}
2
2
  //# sourceMappingURL=StateSelect.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/creditsRedeemList/AddressForm/StateSelect.tsx"],
4
- "sourcesContent": ["import classNames from 'classnames'\nimport { Picture } from '@anker-in/headless-ui'\nimport { useEffect, useMemo, useState } from 'react'\nimport useClickOutside from '../../context/hooks/useClickOutside'\nimport { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'\n\ninterface StateSelectProps {\n states: { code: string; id: string; name: string }[]\n className?: string\n countryId?: string\n defaultCode?: string\n stateName?: string\n stateCode?: string\n onChange: (code: string, name: string) => void\n}\n\nexport function StateSelect({ states, stateName = '', stateCode = '', className = '', onChange }: StateSelectProps) {\n const [show, setShow] = useState(false)\n const [display, setDisplay] = useState<any>('')\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const dropdown = useClickOutside<HTMLDivElement>(() => {\n setShow(false)\n })\n\n const value = useMemo(() => {\n const currentState = states.find(item => (stateCode ? item.code === stateCode : item.name === stateName))\n\n return currentState ? [currentState?.id, currentState?.name, currentState?.code].join(',') : ''\n }, [states, stateCode, stateName])\n\n useEffect(() => {\n const target = states.filter(item => [item.id, item.name, item.code].join(',') === value)\n if (target.length) setDisplay(target[0].name)\n }, [setDisplay, states, value])\n\n return (\n <div className=\"relative h-full\">\n {states.length ? (\n <>\n <select\n className={classNames('h-[52px] pr-[45px] min-l:hidden', className)}\n value={value}\n style={{\n WebkitTextFillColor: value ? 'black' : '#666',\n }}\n onChange={event => {\n const [, name, code] = event.target.value.split(',')\n onChange(code, name)\n }}\n >\n {states.map((item: { id: string; name: string; code: string }) => (\n <option key={item.id} value={[item.id, item.name, item.code].join(',')}>\n {item.name}\n </option>\n ))}\n </select>\n <div\n className={classNames('absolute left-0 top-0 hidden h-[52px] pr-[45px] min-l:!block', className)}\n onClick={() => {\n setShow(true)\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {display}\n </div>\n\n <Picture\n source=\"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500\"\n className=\"pointer-events-none absolute right-0 top-1/2 h-[45px] !w-[45px] -translate-y-1/2 object-cover\"\n alt=\"arrow\"\n />\n\n <div\n ref={dropdown}\n className={classNames(\n 'absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]',\n !rounded && 'rounded-none',\n { '!hidden': !show }\n )}\n >\n <ul className=\"py-[6px]\">\n {states.map((item: { id: string; name: string; code: string }) => (\n <li\n key={item.id}\n value={[item.id, item.name, item.code].join(',')}\n className={classNames(\n 'relative px-[14px] py-[17px] text-[16px] font-semibold leading-[1] transition hover:bg-[#F7F8F9]',\n {\n '!bg-[#e8e8e8]': [item.id, item.name, item.code].join(',') === value,\n }\n )}\n >\n <button\n className=\"absolute left-0 top-0 z-1 size-full opacity-0\"\n value={[item.id, item.name, item.code].join(',')}\n onClick={() => {\n setDisplay(item.name)\n setShow(false)\n onChange(item.code, item.name)\n }}\n />\n {item.name}\n </li>\n ))}\n </ul>\n </div>\n </>\n ) : (\n <input\n className={className}\n value={stateName}\n style={{\n WebkitTextFillColor: 'black',\n }}\n onChange={event => {\n onChange('', event.target.value)\n }}\n ></input>\n )}\n </div>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["StateSelect_exports", "__export", "StateSelect", "__toCommonJS", "import_jsx_runtime", "import_classnames", "import_headless_ui", "import_react", "import_useClickOutside", "import_lib", "states", "stateName", "stateCode", "className", "onChange", "show", "setShow", "display", "setDisplay", "brand", "rounded", "dropdown", "useClickOutside", "value", "currentState", "item", "target", "classNames", "event", "name", "code"]
4
+ "sourcesContent": ["import classNames from 'classnames'\nimport { Picture } from '@anker-in/headless-ui'\nimport { useEffect, useMemo, useState } from 'react'\nimport useClickOutside from '../../context/hooks/useClickOutside'\nimport { useHeadlessContext } from '@anker-in/lib'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ninterface StateSelectProps {\n states: { code: string; id: string; name: string }[]\n className?: string\n countryId?: string\n defaultCode?: string\n stateName?: string\n stateCode?: string\n onChange: (code: string, name: string) => void\n}\n\nexport function StateSelect({ states, stateName = '', stateCode = '', className = '', onChange }: StateSelectProps) {\n const [show, setShow] = useState(false)\n const [display, setDisplay] = useState<any>('')\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const dropdown = useClickOutside<HTMLDivElement>(() => {\n setShow(false)\n })\n\n const value = useMemo(() => {\n const currentState = states.find(item => (stateCode ? item.code === stateCode : item.name === stateName))\n\n return currentState ? [currentState?.id, currentState?.name, currentState?.code].join(',') : ''\n }, [states, stateCode, stateName])\n\n useEffect(() => {\n const target = states.filter(item => [item.id, item.name, item.code].join(',') === value)\n if (target.length) setDisplay(target[0].name)\n }, [setDisplay, states, value])\n\n return (\n <div className=\"relative h-full\">\n {states.length ? (\n <>\n <select\n className={classNames('h-[52px] pr-[45px] min-l:hidden', className)}\n value={value}\n style={{\n WebkitTextFillColor: value ? 'black' : '#666',\n }}\n onChange={event => {\n const [, name, code] = event.target.value.split(',')\n onChange(code, name)\n }}\n >\n {states.map((item: { id: string; name: string; code: string }) => (\n <option key={item.id} value={[item.id, item.name, item.code].join(',')}>\n {item.name}\n </option>\n ))}\n </select>\n <div\n className={classNames('absolute left-0 top-0 hidden h-[52px] pr-[45px] min-l:!block', className)}\n onClick={() => {\n setShow(true)\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {display}\n </div>\n\n <Picture\n source=\"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500\"\n className=\"pointer-events-none absolute right-0 top-1/2 h-[45px] !w-[45px] -translate-y-1/2 object-cover\"\n alt=\"arrow\"\n />\n\n <div\n ref={dropdown}\n className={classNames(\n 'absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]',\n !rounded && 'rounded-none',\n { '!hidden': !show }\n )}\n >\n <ul className=\"py-[6px]\">\n {states.map((item: { id: string; name: string; code: string }) => (\n <li\n key={item.id}\n value={[item.id, item.name, item.code].join(',')}\n className={classNames(\n 'relative px-[14px] py-[17px] text-[16px] font-semibold leading-[1] transition hover:bg-[#F7F8F9]',\n {\n '!bg-[#e8e8e8]': [item.id, item.name, item.code].join(',') === value,\n }\n )}\n >\n <button\n className=\"absolute left-0 top-0 z-1 size-full opacity-0\"\n value={[item.id, item.name, item.code].join(',')}\n onClick={() => {\n setDisplay(item.name)\n setShow(false)\n onChange(item.code, item.name)\n }}\n />\n {item.name}\n </li>\n ))}\n </ul>\n </div>\n </>\n ) : (\n <input\n className={className}\n value={stateName}\n style={{\n WebkitTextFillColor: 'black',\n }}\n onChange={event => {\n onChange('', event.target.value)\n }}\n ></input>\n )}\n </div>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAyCQ,IAAAI,EAAA,6BAzCRC,EAAuB,yBACvBC,EAAwB,iCACxBC,EAA6C,iBAC7CC,EAA4B,kDAC5BC,EAAmC,yBACnCC,EAA+B,iCAYxB,SAASR,EAAY,CAAE,OAAAS,EAAQ,UAAAC,EAAY,GAAI,UAAAC,EAAY,GAAI,UAAAC,EAAY,GAAI,SAAAC,CAAS,EAAqB,CAClH,KAAM,CAACC,EAAMC,CAAO,KAAI,YAAS,EAAK,EAChC,CAACC,EAASC,CAAU,KAAI,YAAc,EAAE,EACxC,CAAE,MAAAC,CAAM,KAAI,sBAAmB,EAC/BC,EAAU,iBAAe,SAASD,CAAK,EAEvCE,KAAW,EAAAC,SAAgC,IAAM,CACrDN,EAAQ,EAAK,CACf,CAAC,EAEKO,KAAQ,WAAQ,IAAM,CAC1B,MAAMC,EAAed,EAAO,KAAKe,GAASb,EAAYa,EAAK,OAASb,EAAYa,EAAK,OAASd,CAAU,EAExG,OAAOa,EAAe,CAACA,GAAc,GAAIA,GAAc,KAAMA,GAAc,IAAI,EAAE,KAAK,GAAG,EAAI,EAC/F,EAAG,CAACd,EAAQE,EAAWD,CAAS,CAAC,EAEjC,sBAAU,IAAM,CACd,MAAMe,EAAShB,EAAO,OAAOe,GAAQ,CAACA,EAAK,GAAIA,EAAK,KAAMA,EAAK,IAAI,EAAE,KAAK,GAAG,IAAMF,CAAK,EACpFG,EAAO,QAAQR,EAAWQ,EAAO,CAAC,EAAE,IAAI,CAC9C,EAAG,CAACR,EAAYR,EAAQa,CAAK,CAAC,KAG5B,OAAC,OAAI,UAAU,kBACZ,SAAAb,EAAO,UACN,oBACE,oBAAC,UACC,aAAW,EAAAiB,SAAW,kCAAmCd,CAAS,EAClE,MAAOU,EACP,MAAO,CACL,oBAAqBA,EAAQ,QAAU,MACzC,EACA,SAAUK,GAAS,CACjB,KAAM,CAAC,CAAEC,EAAMC,CAAI,EAAIF,EAAM,OAAO,MAAM,MAAM,GAAG,EACnDd,EAASgB,EAAMD,CAAI,CACrB,EAEC,SAAAnB,EAAO,IAAKe,MACX,OAAC,UAAqB,MAAO,CAACA,EAAK,GAAIA,EAAK,KAAMA,EAAK,IAAI,EAAE,KAAK,GAAG,EAClE,SAAAA,EAAK,MADKA,EAAK,EAElB,CACD,EACH,KACA,OAAC,OACC,aAAW,EAAAE,SAAW,+DAAgEd,CAAS,EAC/F,QAAS,IAAM,CACbG,EAAQ,EAAI,CACd,EACA,KAAK,SACL,SAAU,EACV,UAAW,GAAK,EACV,EAAE,MAAQ,SAAW,EAAE,MAAQ,MACjC,EAAE,eAAe,CAErB,EAEC,SAAAC,EACH,KAEA,OAAC,WACC,OAAO,yFACP,UAAU,gGACV,IAAI,QACN,KAEA,OAAC,OACC,IAAKI,EACL,aAAW,EAAAM,SACT,yIACA,CAACP,GAAW,eACZ,CAAE,UAAW,CAACL,CAAK,CACrB,EAEA,mBAAC,MAAG,UAAU,WACX,SAAAL,EAAO,IAAKe,MACX,QAAC,MAEC,MAAO,CAACA,EAAK,GAAIA,EAAK,KAAMA,EAAK,IAAI,EAAE,KAAK,GAAG,EAC/C,aAAW,EAAAE,SACT,mGACA,CACE,gBAAiB,CAACF,EAAK,GAAIA,EAAK,KAAMA,EAAK,IAAI,EAAE,KAAK,GAAG,IAAMF,CACjE,CACF,EAEA,oBAAC,UACC,UAAU,gDACV,MAAO,CAACE,EAAK,GAAIA,EAAK,KAAMA,EAAK,IAAI,EAAE,KAAK,GAAG,EAC/C,QAAS,IAAM,CACbP,EAAWO,EAAK,IAAI,EACpBT,EAAQ,EAAK,EACbF,EAASW,EAAK,KAAMA,EAAK,IAAI,CAC/B,EACF,EACCA,EAAK,OAlBDA,EAAK,EAmBZ,CACD,EACH,EACF,GACF,KAEA,OAAC,SACC,UAAWZ,EACX,MAAOF,EACP,MAAO,CACL,oBAAqB,OACvB,EACA,SAAUiB,GAAS,CACjBd,EAAS,GAAIc,EAAM,OAAO,KAAK,CACjC,EACD,EAEL,CAEJ",
6
+ "names": ["StateSelect_exports", "__export", "StateSelect", "__toCommonJS", "import_jsx_runtime", "import_classnames", "import_headless_ui", "import_react", "import_useClickOutside", "import_lib", "import_constants", "states", "stateName", "stateCode", "className", "onChange", "show", "setShow", "display", "setDisplay", "brand", "rounded", "dropdown", "useClickOutside", "value", "currentState", "item", "target", "classNames", "event", "name", "code"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var E=Object.create;var y=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var O=(r,s)=>{for(var d in s)y(r,d,{get:s[d],enumerable:!0})},_=(r,s,d,m)=>{if(s&&typeof s=="object"||typeof s=="function")for(let c of z(s))!M.call(r,c)&&c!==d&&y(r,c,{get:()=>s[c],enumerable:!(m=K(s,c))||m.enumerable});return r};var G=(r,s,d)=>(d=r!=null?E(L(r)):{},_(s||!r||!r.__esModule?y(d,"default",{value:r,enumerable:!0}):d,r)),H=r=>_(y({},"__esModule",{value:!0}),r);var V={};O(V,{AddressForm:()=>T});module.exports=H(V);var n=require("react/jsx-runtime"),h=G(require("classnames")),l=require("react"),S=require("./CountrySelect"),w=require("./FormItem"),I=require("./Input"),D=require("./StateSelect"),q=require("../../context/const"),P=require("../../context/provider"),b=require("@anker-in/lib");const T=({countries:r,countriesLoading:s,form:d,validate:m,errors:c,onChange:p})=>{const{profile:v,customer:t}=(0,P.useCreditsContext)(),{locale:A,brand:R}=(0,b.useHeadlessContext)(),U=b.ROUNDED_BRANDS.includes(R),[e,f]=(0,l.useState)(),N=(0,l.useMemo)(()=>r.find(u=>u.code===e?.country)?.provinces||[],[e,r]),k=(0,l.useMemo)(()=>d?.flat().find(u=>u.type==="state")?.key,[d]),F=(0,l.useCallback)(()=>{if(t?.defaultAddress)return{name:(t?.defaultAddress.firstName||"")+" "+(t?.defaultAddress.lastName||""),first_name:t?.defaultAddress.firstName,last_name:t?.defaultAddress.lastName,address1:t?.defaultAddress.address1,address2:t?.defaultAddress.address2,city:t?.defaultAddress.city,phone:t?.defaultAddress.phone,country:t?.defaultAddress.countryCodeV2,province:t?.defaultAddress.province,province_code:t?.defaultAddress.provinceCode,email:t?.email||v?.email,zip:t?.defaultAddress.zip};{let o=q.ALPC_COUNTRY_MAP.get(A)||A;return o==="UK"&&(o="GB"),o==="EU"&&(o="NL"),{email:v?.email,country:o}}},[t,v?.email,A]);return(0,l.useEffect)(()=>{if(t){const o=F();f(o),p(o)}},[t,F]),e?(0,n.jsx)("div",{className:"grid gap-[20px]",children:d&&d.map((o,u)=>(0,n.jsx)("div",{className:"item-center -mx-[6px] flex",children:o.map((a,B)=>{const x=c.find(i=>i.key===a.key)?.message,g=(0,h.default)("h-full w-full appearance-none rounded-[2px] border bg-white px-[14px] py-[17px] leading-[1] outline-none placeholder:text-[#999] autofill:shadow-white focus:border-brand disabled:pointer-events-none disabled:text-[#999] disabled:bg-[#F7F8F9] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",x?"!border-[#F84D4F]":"border-[#d8d8d8]",!U&&"rounded-none");return a.type==="state"&&!N.length?null:(0,n.jsx)("div",{className:(0,h.default)("mx-[6px] flex-1"),children:(0,n.jsxs)(w.FormItem,{error:x,required:a.required,label:a.label,children:[a.type==="country"&&(0,n.jsx)(S.CountrySelect,{className:g,countries:r,loading:s,value:e.country,onChange:i=>{e.country!==i&&(e.province="",e.province_code=""),e.country=i,f({...e}),p(e)}}),a.type==="state"&&(0,n.jsx)(D.StateSelect,{className:g,states:N,stateCode:e.province_code,stateName:e.province,onChange:(i,C)=>{e.province_code=i,e.province=C,f({...e}),p(e)}}),a.type!=="state"&&a.type!=="country"&&(0,n.jsx)(I.Input,{placeholder:a.label,className:g,error:x,value:e[a.key],required:a.required,disabled:a.type==="email",onChange:i=>{const C=i.target.value;e[a.key]=C,f({...e}),p(e)},onBlur:()=>{m({ignoreKeys:N.length&&k?[k]:[]})}})]})},B)})},u))}):null};
1
+ "use strict";var K=Object.create;var y=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var G=(r,s)=>{for(var d in s)y(r,d,{get:s[d],enumerable:!0})},F=(r,s,d,m)=>{if(s&&typeof s=="object"||typeof s=="function")for(let c of L(s))!O.call(r,c)&&c!==d&&y(r,c,{get:()=>s[c],enumerable:!(m=z(s,c))||m.enumerable});return r};var H=(r,s,d)=>(d=r!=null?K(M(r)):{},F(s||!r||!r.__esModule?y(d,"default",{value:r,enumerable:!0}):d,r)),T=r=>F(y({},"__esModule",{value:!0}),r);var Y={};G(Y,{AddressForm:()=>V});module.exports=T(Y);var n=require("react/jsx-runtime"),C=H(require("classnames")),l=require("react"),_=require("./CountrySelect"),S=require("./FormItem"),w=require("./Input"),I=require("./StateSelect"),D=require("../../context/const"),q=require("../../context/provider"),P=require("@anker-in/lib"),R=require("../../../../constants");const V=({countries:r,countriesLoading:s,form:d,validate:m,errors:c,onChange:p})=>{const{profile:b,customer:t}=(0,q.useCreditsContext)(),{locale:v,brand:U}=(0,P.useHeadlessContext)(),B=R.ROUNDED_BRANDS.includes(U),[e,f]=(0,l.useState)(),A=(0,l.useMemo)(()=>r.find(u=>u.code===e?.country)?.provinces||[],[e,r]),h=(0,l.useMemo)(()=>d?.flat().find(u=>u.type==="state")?.key,[d]),k=(0,l.useCallback)(()=>{if(t?.defaultAddress)return{name:(t?.defaultAddress.firstName||"")+" "+(t?.defaultAddress.lastName||""),first_name:t?.defaultAddress.firstName,last_name:t?.defaultAddress.lastName,address1:t?.defaultAddress.address1,address2:t?.defaultAddress.address2,city:t?.defaultAddress.city,phone:t?.defaultAddress.phone,country:t?.defaultAddress.countryCodeV2,province:t?.defaultAddress.province,province_code:t?.defaultAddress.provinceCode,email:t?.email||b?.email,zip:t?.defaultAddress.zip};{let a=D.ALPC_COUNTRY_MAP.get(v)||v;return a==="UK"&&(a="GB"),a==="EU"&&(a="NL"),{email:b?.email,country:a}}},[t,b?.email,v]);return(0,l.useEffect)(()=>{if(t){const a=k();f(a),p(a)}},[t,k]),e?(0,n.jsx)("div",{className:"grid gap-[20px]",children:d&&d.map((a,u)=>(0,n.jsx)("div",{className:"item-center -mx-[6px] flex",children:a.map((o,E)=>{const N=c.find(i=>i.key===o.key)?.message,x=(0,C.default)("h-full w-full appearance-none rounded-[2px] border bg-white px-[14px] py-[17px] leading-[1] outline-none placeholder:text-[#999] autofill:shadow-white focus:border-brand disabled:pointer-events-none disabled:text-[#999] disabled:bg-[#F7F8F9] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",N?"!border-[#F84D4F]":"border-[#d8d8d8]",!B&&"rounded-none");return o.type==="state"&&!A.length?null:(0,n.jsx)("div",{className:(0,C.default)("mx-[6px] flex-1"),children:(0,n.jsxs)(S.FormItem,{error:N,required:o.required,label:o.label,children:[o.type==="country"&&(0,n.jsx)(_.CountrySelect,{className:x,countries:r,loading:s,value:e.country,onChange:i=>{e.country!==i&&(e.province="",e.province_code=""),e.country=i,f({...e}),p(e)}}),o.type==="state"&&(0,n.jsx)(I.StateSelect,{className:x,states:A,stateCode:e.province_code,stateName:e.province,onChange:(i,g)=>{e.province_code=i,e.province=g,f({...e}),p(e)}}),o.type!=="state"&&o.type!=="country"&&(0,n.jsx)(w.Input,{placeholder:o.label,className:x,error:N,value:e[o.key],required:o.required,disabled:o.type==="email",onChange:i=>{const g=i.target.value;e[o.key]=g,f({...e}),p(e)},onBlur:()=>{m({ignoreKeys:A.length&&h?[h]:[]})}})]})},E)})},u))}):null};
2
2
  //# sourceMappingURL=index.js.map