@anker-in/campaign-ui 0.5.3-beta.1 → 0.5.3-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 (48) hide show
  1. package/dist/cjs/components/credits/context/const.js +1 -1
  2. package/dist/cjs/components/credits/context/const.js.map +2 -2
  3. package/dist/cjs/components/credits/context/utils.d.ts +1 -1
  4. package/dist/cjs/components/credits/context/utils.js +1 -1
  5. package/dist/cjs/components/credits/context/utils.js.map +3 -3
  6. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js +1 -1
  7. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js.map +2 -2
  8. package/dist/cjs/components/credits/creditsInfoCard/index.js +1 -1
  9. package/dist/cjs/components/credits/creditsInfoCard/index.js.map +3 -3
  10. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
  11. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
  12. package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.js +1 -1
  13. package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.js.map +3 -3
  14. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Init.js +1 -1
  15. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Init.js.map +3 -3
  16. package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.js +1 -1
  17. package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.js.map +3 -3
  18. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  19. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js.map +2 -2
  20. package/dist/esm/components/credits/context/const.js +1 -1
  21. package/dist/esm/components/credits/context/const.js.map +2 -2
  22. package/dist/esm/components/credits/context/utils.d.ts +1 -1
  23. package/dist/esm/components/credits/context/utils.js +1 -1
  24. package/dist/esm/components/credits/context/utils.js.map +3 -3
  25. package/dist/esm/components/credits/creditsCash/RedeemableItem.js +1 -1
  26. package/dist/esm/components/credits/creditsCash/RedeemableItem.js.map +2 -2
  27. package/dist/esm/components/credits/creditsInfoCard/index.js +1 -1
  28. package/dist/esm/components/credits/creditsInfoCard/index.js.map +3 -3
  29. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
  30. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
  31. package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.js +1 -1
  32. package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.js.map +3 -3
  33. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Init.js +1 -1
  34. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Init.js.map +3 -3
  35. package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.js +1 -1
  36. package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.js.map +3 -3
  37. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  38. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js.map +2 -2
  39. package/package.json +1 -1
  40. package/src/components/credits/context/const.ts +3 -0
  41. package/src/components/credits/context/utils.ts +10 -2
  42. package/src/components/credits/creditsCash/RedeemableItem.tsx +1 -1
  43. package/src/components/credits/creditsInfoCard/index.tsx +3 -3
  44. package/src/components/credits/creditsRedeemList/CreditsRedeemList.tsx +2 -2
  45. package/src/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.tsx +3 -1
  46. package/src/components/credits/creditsRedeemList/RedeemProductModal/Init.tsx +3 -1
  47. package/src/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.tsx +3 -1
  48. package/src/components/credits/creditsRedeemList/RedeemableItem.tsx +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/creditsRedeemList/RedeemProductModal/Init.tsx"],
4
- "sourcesContent": ["import { Button, Picture, Text } from '@anker-in/headless-ui'\nimport classNames from 'classnames'\nimport { Fragment, useMemo } from 'react'\nimport { numberFormat } from '../../context/utils'\nimport type { RedeemableItem as RedeemableItemType, RedeemModalCommon } from '../../type'\nimport { ConsumeType } from '../../context/const'\nimport { NoneProductValue } from './NonProductValue'\nimport { useCreditsContext } from '../../context/provider'\n\ntype InitProps = {\n copy: RedeemModalCommon\n item: RedeemableItemType\n loading: boolean\n disabled: boolean\n setStatus: (status: 'address' | 'init' | 'success' | 'error') => void\n}\n\nexport const Init = ({ copy, item, loading, disabled, setStatus }: InitProps) => {\n const { pageCommon } = useCreditsContext()\n const rules = useMemo(() => {\n if (item.config.rules?.length) {\n return item.config.rules\n }\n const descriptions = item.config.desc?.split('<br>') || []\n return [...descriptions, ...(copy.product.rules || [])]\n }, [item.config.rules, item.config.desc, copy.product.rules])\n\n return (\n <div className=\"flex flex-col\">\n <div\n className={classNames(\n 'max-h-[500px] overflow-y-auto bg-[#F5F5F7] px-[48px] pb-[24px] md:max-h-[400px] md:px-[16px]'\n )}\n >\n <>\n <div className=\"relative mx-auto h-[164px] w-fit\">\n <Picture\n source={\n item.config?.type === ConsumeType.Product\n ? item.product?.images[0]?.url\n : pageCommon?.imageMapping?.[item.config.type]?.url || item.config.image?.url\n }\n className=\"h-full w-auto [&_img]:h-full [&_img]:w-auto [&_img]:object-contain\"\n ></Picture>\n {/* \u793C\u54C1\u5361\u5C55\u793A */}\n <div className=\"absolute bottom-[8px] left-[16px] font-extrabold text-white\">\n {item.config.value && <NoneProductValue item={item} />}\n </div>\n </div>\n <div className=\"mt-[30px] md:mt-[18px]\">\n {item.config.type === 'product' && (\n <div\n className={classNames(\n 'mb-[4px] text-center text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]'\n )}\n >\n {item.config.title}\n </div>\n )}\n <Text\n as=\"p\"\n className={classNames(' text-center text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]')}\n >\n {numberFormat(item.alpc?.consumeCredits)} {pageCommon?.pointUnit}\n </Text>\n </div>\n <div className=\"mt-[16px] w-full text-[14px] font-semibold text-[#777] md:mt-[12px]\">\n <div className=\"text-[16px] font-bold leading-[1.4]\">{copy.product.stepTitle}</div>\n <div className=\"mt-[4px] flex items-center justify-center\">\n {copy.product.steps?.map((item, index) => (\n <Fragment key={index}>\n <div className=\"flex w-[76px] flex-col items-center text-center md:h-[94px] min-l:w-[130px]\">\n <Picture source={item.imageUrl} className=\"mb-[4px] h-[58px] w-[58px]\"></Picture>\n <div className=\"min-h-[34px] text-[14px] font-bold text-[#777] md:min-h-[28px] md:text-[12px]\">\n {item.title}\n </div>\n </div>\n {index !== copy.product.steps.length - 1 && (\n <Picture\n source=\"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/step-arrow.png?v=1690458150\"\n className=\"mb-[20px] h-[10px] w-[20px] md:mb-[30px] md:h-[5px] md:w-[12px]\"\n ></Picture>\n )}\n </Fragment>\n ))}\n </div>\n <div className=\"overflow-auto\">\n {rules?.length && (\n <ul className=\"ml-[18px] mt-[16px] grid grid-flow-row gap-[4px] text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:mt-[12px]\">\n {rules.map((text, index) => (\n <li className=\"list-disc\" key={index}>\n <Text as=\"div\" html={text} className=\"font-bold\" />\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n </>\n </div>\n <div className=\"flex-1 bg-white px-[48px] py-[24px] text-center md:px-[16px]\">\n <Text\n as=\"p\"\n className=\"block text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]\"\n html={copy.confirmTitle}\n ></Text>\n <Button\n loading={loading}\n disabled={disabled}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[16px] w-full md:mt-[12px]\"\n onClick={() => {\n setStatus('address')\n }}\n >\n {copy.confirmButton}\n </Button>\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,IAAA,eAAAC,EAAAH,GAkCQ,IAAAI,EAAA,6BAlCRC,EAAsC,iCACtCC,EAAuB,yBACvBC,EAAkC,iBAClCC,EAA6B,+BAE7BC,EAA4B,+BAC5BC,EAAiC,6BACjCC,EAAkC,kCAU3B,MAAMT,EAAO,CAAC,CAAE,KAAAU,EAAM,KAAAC,EAAM,QAAAC,EAAS,SAAAC,EAAU,UAAAC,CAAU,IAAiB,CAC/E,KAAM,CAAE,WAAAC,CAAW,KAAI,qBAAkB,EACnCC,KAAQ,WAAQ,IAChBL,EAAK,OAAO,OAAO,OACdA,EAAK,OAAO,MAGd,CAAC,GADaA,EAAK,OAAO,MAAM,MAAM,MAAM,GAAK,CAAC,EAChC,GAAID,EAAK,QAAQ,OAAS,CAAC,CAAE,EACrD,CAACC,EAAK,OAAO,MAAOA,EAAK,OAAO,KAAMD,EAAK,QAAQ,KAAK,CAAC,EAE5D,SACE,QAAC,OAAI,UAAU,gBACb,oBAAC,OACC,aAAW,EAAAO,SACT,8FACF,EAEA,gCACE,qBAAC,OAAI,UAAU,mCACb,oBAAC,WACC,OACEN,EAAK,QAAQ,OAAS,cAAY,QAC9BA,EAAK,SAAS,OAAO,CAAC,GAAG,IACzBI,GAAY,eAAeJ,EAAK,OAAO,IAAI,GAAG,KAAOA,EAAK,OAAO,OAAO,IAE9E,UAAU,qEACX,KAED,OAAC,OAAI,UAAU,8DACZ,SAAAA,EAAK,OAAO,UAAS,OAAC,oBAAiB,KAAMA,EAAM,EACtD,GACF,KACA,QAAC,OAAI,UAAU,yBACZ,UAAAA,EAAK,OAAO,OAAS,cACpB,OAAC,OACC,aAAW,EAAAM,SACT,0FACF,EAEC,SAAAN,EAAK,OAAO,MACf,KAEF,QAAC,QACC,GAAG,IACH,aAAW,EAAAM,SAAW,kFAAkF,EAEvG,6BAAaN,EAAK,MAAM,cAAc,EAAE,IAAEI,GAAY,WACzD,GACF,KACA,QAAC,OAAI,UAAU,sEACb,oBAAC,OAAI,UAAU,sCAAuC,SAAAL,EAAK,QAAQ,UAAU,KAC7E,OAAC,OAAI,UAAU,4CACZ,SAAAA,EAAK,QAAQ,OAAO,IAAI,CAACC,EAAMO,OAC9B,QAAC,YACC,qBAAC,OAAI,UAAU,8EACb,oBAAC,WAAQ,OAAQP,EAAK,SAAU,UAAU,6BAA6B,KACvE,OAAC,OAAI,UAAU,gFACZ,SAAAA,EAAK,MACR,GACF,EACCO,IAAUR,EAAK,QAAQ,MAAM,OAAS,MACrC,OAAC,WACC,OAAO,qFACP,UAAU,kEACX,IAXUQ,CAaf,CACD,EACH,KACA,OAAC,OAAI,UAAU,gBACZ,SAAAF,GAAO,WACN,OAAC,MAAG,UAAU,mHACX,SAAAA,EAAM,IAAI,CAACG,EAAMD,OAChB,OAAC,MAAG,UAAU,YACZ,mBAAC,QAAK,GAAG,MAAM,KAAMC,EAAM,UAAU,YAAY,GADpBD,CAE/B,CACD,EACH,EAEJ,GACF,GACF,EACF,KACA,QAAC,OAAI,UAAU,+DACb,oBAAC,QACC,GAAG,IACH,UAAU,4EACV,KAAMR,EAAK,aACZ,KACD,OAAC,UACC,QAASE,EACT,SAAUC,EACV,QAAQ,UACR,KAAK,KACL,UAAU,gCACV,QAAS,IAAM,CACbC,EAAU,SAAS,CACrB,EAEC,SAAAJ,EAAK,cACR,GACF,GACF,CAEJ",
6
- "names": ["Init_exports", "__export", "Init", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_classnames", "import_react", "import_utils", "import_const", "import_NonProductValue", "import_provider", "copy", "item", "loading", "disabled", "setStatus", "pageCommon", "rules", "classNames", "index", "text"]
4
+ "sourcesContent": ["import { Button, Picture, Text } from '@anker-in/headless-ui'\nimport classNames from 'classnames'\nimport { Fragment, useMemo } from 'react'\nimport { numberFormat } from '../../context/utils'\nimport type { RedeemableItem as RedeemableItemType, RedeemModalCommon } from '../../type'\nimport { ConsumeType } from '../../context/const'\nimport { NoneProductValue } from './NonProductValue'\nimport { useCreditsContext } from '../../context/provider'\nimport { useHeadlessContext } from '@anker-in/lib'\n\ntype InitProps = {\n copy: RedeemModalCommon\n item: RedeemableItemType\n loading: boolean\n disabled: boolean\n setStatus: (status: 'address' | 'init' | 'success' | 'error') => void\n}\n\nexport const Init = ({ copy, item, loading, disabled, setStatus }: InitProps) => {\n const { pageCommon } = useCreditsContext()\n const { locale } = useHeadlessContext()\n const rules = useMemo(() => {\n if (item.config.rules?.length) {\n return item.config.rules\n }\n const descriptions = item.config.desc?.split('<br>') || []\n return [...descriptions, ...(copy.product.rules || [])]\n }, [item.config.rules, item.config.desc, copy.product.rules])\n\n return (\n <div className=\"flex flex-col\">\n <div\n className={classNames(\n 'max-h-[500px] overflow-y-auto bg-[#F5F5F7] px-[48px] pb-[24px] md:max-h-[400px] md:px-[16px]'\n )}\n >\n <>\n <div className=\"relative mx-auto h-[164px] w-fit\">\n <Picture\n source={\n item.config?.type === ConsumeType.Product\n ? item.product?.images[0]?.url\n : pageCommon?.imageMapping?.[item.config.type]?.url || item.config.image?.url\n }\n className=\"h-full w-auto [&_img]:h-full [&_img]:w-auto [&_img]:object-contain\"\n ></Picture>\n {/* \u793C\u54C1\u5361\u5C55\u793A */}\n <div className=\"absolute bottom-[8px] left-[16px] font-extrabold text-white\">\n {item.config.value && <NoneProductValue item={item} />}\n </div>\n </div>\n <div className=\"mt-[30px] md:mt-[18px]\">\n {item.config.type === 'product' && (\n <div\n className={classNames(\n 'mb-[4px] text-center text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]'\n )}\n >\n {item.config.title}\n </div>\n )}\n <Text\n as=\"p\"\n className={classNames(' text-center text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]')}\n >\n {numberFormat(item.alpc?.consumeCredits, locale)} {pageCommon?.pointUnit}\n </Text>\n </div>\n <div className=\"mt-[16px] w-full text-[14px] font-semibold text-[#777] md:mt-[12px]\">\n <div className=\"text-[16px] font-bold leading-[1.4]\">{copy.product.stepTitle}</div>\n <div className=\"mt-[4px] flex items-center justify-center\">\n {copy.product.steps?.map((item, index) => (\n <Fragment key={index}>\n <div className=\"flex w-[76px] flex-col items-center text-center md:h-[94px] min-l:w-[130px]\">\n <Picture source={item.imageUrl} className=\"mb-[4px] h-[58px] w-[58px]\"></Picture>\n <div className=\"min-h-[34px] text-[14px] font-bold text-[#777] md:min-h-[28px] md:text-[12px]\">\n {item.title}\n </div>\n </div>\n {index !== copy.product.steps.length - 1 && (\n <Picture\n source=\"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/step-arrow.png?v=1690458150\"\n className=\"mb-[20px] h-[10px] w-[20px] md:mb-[30px] md:h-[5px] md:w-[12px]\"\n ></Picture>\n )}\n </Fragment>\n ))}\n </div>\n <div className=\"overflow-auto\">\n {rules?.length && (\n <ul className=\"ml-[18px] mt-[16px] grid grid-flow-row gap-[4px] text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:mt-[12px]\">\n {rules.map((text, index) => (\n <li className=\"list-disc\" key={index}>\n <Text as=\"div\" html={text} className=\"font-bold\" />\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n </>\n </div>\n <div className=\"flex-1 bg-white px-[48px] py-[24px] text-center md:px-[16px]\">\n <Text\n as=\"p\"\n className=\"block text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]\"\n html={copy.confirmTitle}\n ></Text>\n <Button\n loading={loading}\n disabled={disabled}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[16px] w-full md:mt-[12px]\"\n onClick={() => {\n setStatus('address')\n }}\n >\n {copy.confirmButton}\n </Button>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,IAAA,eAAAC,EAAAH,GAoCQ,IAAAI,EAAA,6BApCRC,EAAsC,iCACtCC,EAAuB,yBACvBC,EAAkC,iBAClCC,EAA6B,+BAE7BC,EAA4B,+BAC5BC,EAAiC,6BACjCC,EAAkC,kCAClCC,EAAmC,yBAU5B,MAAMV,EAAO,CAAC,CAAE,KAAAW,EAAM,KAAAC,EAAM,QAAAC,EAAS,SAAAC,EAAU,UAAAC,CAAU,IAAiB,CAC/E,KAAM,CAAE,WAAAC,CAAW,KAAI,qBAAkB,EACnC,CAAE,OAAAC,CAAO,KAAI,sBAAmB,EAChCC,KAAQ,WAAQ,IAChBN,EAAK,OAAO,OAAO,OACdA,EAAK,OAAO,MAGd,CAAC,GADaA,EAAK,OAAO,MAAM,MAAM,MAAM,GAAK,CAAC,EAChC,GAAID,EAAK,QAAQ,OAAS,CAAC,CAAE,EACrD,CAACC,EAAK,OAAO,MAAOA,EAAK,OAAO,KAAMD,EAAK,QAAQ,KAAK,CAAC,EAE5D,SACE,QAAC,OAAI,UAAU,gBACb,oBAAC,OACC,aAAW,EAAAQ,SACT,8FACF,EAEA,gCACE,qBAAC,OAAI,UAAU,mCACb,oBAAC,WACC,OACEP,EAAK,QAAQ,OAAS,cAAY,QAC9BA,EAAK,SAAS,OAAO,CAAC,GAAG,IACzBI,GAAY,eAAeJ,EAAK,OAAO,IAAI,GAAG,KAAOA,EAAK,OAAO,OAAO,IAE9E,UAAU,qEACX,KAED,OAAC,OAAI,UAAU,8DACZ,SAAAA,EAAK,OAAO,UAAS,OAAC,oBAAiB,KAAMA,EAAM,EACtD,GACF,KACA,QAAC,OAAI,UAAU,yBACZ,UAAAA,EAAK,OAAO,OAAS,cACpB,OAAC,OACC,aAAW,EAAAO,SACT,0FACF,EAEC,SAAAP,EAAK,OAAO,MACf,KAEF,QAAC,QACC,GAAG,IACH,aAAW,EAAAO,SAAW,kFAAkF,EAEvG,6BAAaP,EAAK,MAAM,eAAgBK,CAAM,EAAE,IAAED,GAAY,WACjE,GACF,KACA,QAAC,OAAI,UAAU,sEACb,oBAAC,OAAI,UAAU,sCAAuC,SAAAL,EAAK,QAAQ,UAAU,KAC7E,OAAC,OAAI,UAAU,4CACZ,SAAAA,EAAK,QAAQ,OAAO,IAAI,CAACC,EAAMQ,OAC9B,QAAC,YACC,qBAAC,OAAI,UAAU,8EACb,oBAAC,WAAQ,OAAQR,EAAK,SAAU,UAAU,6BAA6B,KACvE,OAAC,OAAI,UAAU,gFACZ,SAAAA,EAAK,MACR,GACF,EACCQ,IAAUT,EAAK,QAAQ,MAAM,OAAS,MACrC,OAAC,WACC,OAAO,qFACP,UAAU,kEACX,IAXUS,CAaf,CACD,EACH,KACA,OAAC,OAAI,UAAU,gBACZ,SAAAF,GAAO,WACN,OAAC,MAAG,UAAU,mHACX,SAAAA,EAAM,IAAI,CAACG,EAAMD,OAChB,OAAC,MAAG,UAAU,YACZ,mBAAC,QAAK,GAAG,MAAM,KAAMC,EAAM,UAAU,YAAY,GADpBD,CAE/B,CACD,EACH,EAEJ,GACF,GACF,EACF,KACA,QAAC,OAAI,UAAU,+DACb,oBAAC,QACC,GAAG,IACH,UAAU,4EACV,KAAMT,EAAK,aACZ,KACD,OAAC,UACC,QAASE,EACT,SAAUC,EACV,QAAQ,UACR,KAAK,KACL,UAAU,gCACV,QAAS,IAAM,CACbC,EAAU,SAAS,CACrB,EAEC,SAAAJ,EAAK,cACR,GACF,GACF,CAEJ",
6
+ "names": ["Init_exports", "__export", "Init", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_classnames", "import_react", "import_utils", "import_const", "import_NonProductValue", "import_provider", "import_lib", "copy", "item", "loading", "disabled", "setStatus", "pageCommon", "locale", "rules", "classNames", "index", "text"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var g=Object.create;var x=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var P=(e,l)=>{for(var a in l)x(e,a,{get:l[a],enumerable:!0})},n=(e,l,a,o)=>{if(l&&typeof l=="object"||typeof l=="function")for(let i of h(l))!w.call(e,i)&&i!==a&&x(e,i,{get:()=>l[i],enumerable:!(o=b(l,i))||o.enumerable});return e};var y=(e,l,a)=>(a=e!=null?g(N(e)):{},n(l||!e||!e.__esModule?x(a,"default",{value:e,enumerable:!0}):a,e)),C=e=>n(x({},"__esModule",{value:!0}),e);var T={};P(T,{VirtualProductInit:()=>F});module.exports=C(T);var t=require("react/jsx-runtime"),m=require("@anker-in/headless-ui"),r=y(require("classnames")),c=require("react"),u=require("../../context/utils"),f=require("../RedeemProductModal/NonProductValue"),v=require("../../context/provider");const F=({item:e,copy:l,loading:a,disabled:o,onConfirm:i})=>{const{pageCommon:p}=(0,v.useCreditsContext)();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:(0,r.default)("max-h-[500px] overflow-y-auto bg-[#F5F5F7] px-[48px] pb-[24px] md:max-h-[400px] md:px-[16px]"),children:[(0,t.jsxs)("div",{className:"relative mx-auto h-[164px] w-[324px]",children:[p?.imageMapping?.[e.config?.type]?.url&&(0,t.jsx)(m.Picture,{source:p.imageMapping[e.config.type].url,className:"h-full [&_img]:h-full"}),(0,t.jsx)("div",{className:"absolute bottom-[8px] left-[16px] font-extrabold text-white",children:e.config.value?(0,t.jsx)(f.NoneProductValue,{item:e}):(0,t.jsx)(m.Text,{size:3,html:e.alpc?.title})})]}),(0,t.jsxs)(m.Text,{as:"p",className:(0,r.default)("mt-[30px] text-center text-[24px] font-bold leading-[1.2] md:mt-[18px] md:text-[20px] md:leading-[1.2]"),children:[(0,u.numberFormat)(e.alpc?.consumeCredits)," ",p?.pointUnit]}),l?.virtualProduct?.steps&&l.virtualProduct.steps.length>0&&(0,t.jsxs)("div",{className:"mt-[16px] w-full text-[14px] font-semibold text-[#777] md:mt-[12px]",children:[(0,t.jsx)("div",{className:"text-[16px] font-bold leading-[1.4]",children:l.virtualProduct.stepTitle}),(0,t.jsx)("div",{className:"mt-[4px] flex items-center justify-center",children:l.virtualProduct.steps.map((d,s)=>(0,t.jsxs)(c.Fragment,{children:[(0,t.jsxs)("div",{className:"flex w-[76px] flex-col items-center text-center md:h-[94px] min-l:w-[130px]",children:[(0,t.jsx)(m.Picture,{source:d.imageUrl,className:"mb-[4px] h-[58px] w-[58px]"}),(0,t.jsx)("div",{className:"min-h-[34px] text-[14px] font-bold text-[#777] md:min-h-[28px] md:text-[12px]",children:d.title})]}),s!==l.virtualProduct.steps.length-1&&(0,t.jsx)(m.Picture,{source:"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/step-arrow.png?v=1690458150",className:"mb-[20px] h-[10px] w-[20px] md:mb-[30px] md:h-[5px] md:w-[12px]"})]},s))})]}),e.config?.rules?.length>0&&(0,t.jsxs)("div",{className:"mt-[18px] w-full text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:mt-[12px] md:text-[14px]",children:[(0,t.jsxs)("div",{className:"mb-[4px]",children:[p?.ruleLabel,":"]}),(0,t.jsx)("ul",{className:"ml-4 grid grid-flow-row gap-[4px]",children:e.config?.rules?.map((d,s)=>(0,t.jsx)("li",{className:"list-disc",children:(0,t.jsx)(m.Text,{html:d})},s))})]})]}),(0,t.jsxs)("div",{className:"bg-white px-[48px] pt-[24px] text-center md:px-[16px]",children:[(0,t.jsx)(m.Text,{className:"block text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]",html:l.confirmTitle}),(0,t.jsx)(m.Button,{loading:a,variant:"primary",size:"lg",className:"mt-[16px] w-full",onClick:i,disabled:o,children:l.confirmButton})]})]})};
1
+ "use strict";var h=Object.create;var x=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var y=(e,l)=>{for(var a in l)x(e,a,{get:l[a],enumerable:!0})},n=(e,l,a,o)=>{if(l&&typeof l=="object"||typeof l=="function")for(let i of w(l))!C.call(e,i)&&i!==a&&x(e,i,{get:()=>l[i],enumerable:!(o=N(l,i))||o.enumerable});return e};var F=(e,l,a)=>(a=e!=null?h(P(e)):{},n(l||!e||!e.__esModule?x(a,"default",{value:e,enumerable:!0}):a,e)),T=e=>n(x({},"__esModule",{value:!0}),e);var R={};y(R,{VirtualProductInit:()=>I});module.exports=T(R);var t=require("react/jsx-runtime"),m=require("@anker-in/headless-ui"),r=F(require("classnames")),c=require("react"),u=require("../../context/utils"),f=require("../RedeemProductModal/NonProductValue"),v=require("../../context/provider"),g=require("@anker-in/lib");const I=({item:e,copy:l,loading:a,disabled:o,onConfirm:i})=>{const{pageCommon:p}=(0,v.useCreditsContext)(),{locale:b}=(0,g.useHeadlessContext)();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:(0,r.default)("max-h-[500px] overflow-y-auto bg-[#F5F5F7] px-[48px] pb-[24px] md:max-h-[400px] md:px-[16px]"),children:[(0,t.jsxs)("div",{className:"relative mx-auto h-[164px] w-[324px]",children:[p?.imageMapping?.[e.config?.type]?.url&&(0,t.jsx)(m.Picture,{source:p.imageMapping[e.config.type].url,className:"h-full [&_img]:h-full"}),(0,t.jsx)("div",{className:"absolute bottom-[8px] left-[16px] font-extrabold text-white",children:e.config.value?(0,t.jsx)(f.NoneProductValue,{item:e}):(0,t.jsx)(m.Text,{size:3,html:e.alpc?.title})})]}),(0,t.jsxs)(m.Text,{as:"p",className:(0,r.default)("mt-[30px] text-center text-[24px] font-bold leading-[1.2] md:mt-[18px] md:text-[20px] md:leading-[1.2]"),children:[(0,u.numberFormat)(e.alpc?.consumeCredits,b)," ",p?.pointUnit]}),l?.virtualProduct?.steps&&l.virtualProduct.steps.length>0&&(0,t.jsxs)("div",{className:"mt-[16px] w-full text-[14px] font-semibold text-[#777] md:mt-[12px]",children:[(0,t.jsx)("div",{className:"text-[16px] font-bold leading-[1.4]",children:l.virtualProduct.stepTitle}),(0,t.jsx)("div",{className:"mt-[4px] flex items-center justify-center",children:l.virtualProduct.steps.map((s,d)=>(0,t.jsxs)(c.Fragment,{children:[(0,t.jsxs)("div",{className:"flex w-[76px] flex-col items-center text-center md:h-[94px] min-l:w-[130px]",children:[(0,t.jsx)(m.Picture,{source:s.imageUrl,className:"mb-[4px] h-[58px] w-[58px]"}),(0,t.jsx)("div",{className:"min-h-[34px] text-[14px] font-bold text-[#777] md:min-h-[28px] md:text-[12px]",children:s.title})]}),d!==l.virtualProduct.steps.length-1&&(0,t.jsx)(m.Picture,{source:"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/step-arrow.png?v=1690458150",className:"mb-[20px] h-[10px] w-[20px] md:mb-[30px] md:h-[5px] md:w-[12px]"})]},d))})]}),e.config?.rules?.length>0&&(0,t.jsxs)("div",{className:"mt-[18px] w-full text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:mt-[12px] md:text-[14px]",children:[(0,t.jsxs)("div",{className:"mb-[4px]",children:[p?.ruleLabel,":"]}),(0,t.jsx)("ul",{className:"ml-4 grid grid-flow-row gap-[4px]",children:e.config?.rules?.map((s,d)=>(0,t.jsx)("li",{className:"list-disc",children:(0,t.jsx)(m.Text,{html:s})},d))})]})]}),(0,t.jsxs)("div",{className:"bg-white px-[48px] pt-[24px] text-center md:px-[16px]",children:[(0,t.jsx)(m.Text,{className:"block text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]",html:l.confirmTitle}),(0,t.jsx)(m.Button,{loading:a,variant:"primary",size:"lg",className:"mt-[16px] w-full",onClick:i,disabled:o,children:l.confirmButton})]})]})};
2
2
  //# sourceMappingURL=VirtualProductInit.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.tsx"],
4
- "sourcesContent": ["import { Button, Picture, Text } from '@anker-in/headless-ui'\nimport classNames from 'classnames'\nimport { Fragment } from 'react'\nimport { numberFormat } from '../../context/utils'\nimport type { RedeemableItem as RedeemableItemType, RedeemModalCommon } from '../../type'\nimport { NoneProductValue } from '../RedeemProductModal/NonProductValue'\nimport { useCreditsContext } from '../../context/provider'\n\ntype VirtualProductInitProps = {\n item: RedeemableItemType\n copy: RedeemModalCommon\n loading: boolean\n disabled: boolean\n onConfirm: () => void\n}\n\nexport const VirtualProductInit = ({ item, copy, loading, disabled, onConfirm }: VirtualProductInitProps) => {\n const { pageCommon } = useCreditsContext()\n\n return (\n <>\n <div\n className={classNames(\n 'max-h-[500px] overflow-y-auto bg-[#F5F5F7] px-[48px] pb-[24px] md:max-h-[400px] md:px-[16px]'\n )}\n >\n <div className=\"relative mx-auto h-[164px] w-[324px]\">\n {pageCommon?.imageMapping?.[item.config?.type]?.url && (\n <Picture source={pageCommon.imageMapping[item.config.type].url} className=\"h-full [&_img]:h-full\" />\n )}\n <div className=\"absolute bottom-[8px] left-[16px] font-extrabold text-white\">\n {item.config.value ? (\n <NoneProductValue item={item} />\n ) : (\n <Text size={3} html={item.alpc?.title} />\n )}\n </div>\n </div>\n <Text\n as=\"p\"\n className={classNames(\n 'mt-[30px] text-center text-[24px] font-bold leading-[1.2] md:mt-[18px] md:text-[20px] md:leading-[1.2]'\n )}\n >\n {numberFormat(item.alpc?.consumeCredits)} {pageCommon?.pointUnit}\n </Text>\n {copy?.virtualProduct?.steps && copy.virtualProduct.steps.length > 0 && (\n <div className=\"mt-[16px] w-full text-[14px] font-semibold text-[#777] md:mt-[12px]\">\n <div className=\"text-[16px] font-bold leading-[1.4]\">{copy.virtualProduct.stepTitle}</div>\n <div className=\"mt-[4px] flex items-center justify-center\">\n {copy.virtualProduct.steps.map((step, index) => (\n <Fragment key={index}>\n <div className=\"flex w-[76px] flex-col items-center text-center md:h-[94px] min-l:w-[130px]\">\n <Picture source={step.imageUrl} className=\"mb-[4px] h-[58px] w-[58px]\"></Picture>\n <div className=\"min-h-[34px] text-[14px] font-bold text-[#777] md:min-h-[28px] md:text-[12px]\">\n {step.title}\n </div>\n </div>\n {index !== copy.virtualProduct.steps!.length - 1 && (\n <Picture\n source=\"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/step-arrow.png?v=1690458150\"\n className=\"mb-[20px] h-[10px] w-[20px] md:mb-[30px] md:h-[5px] md:w-[12px]\"\n ></Picture>\n )}\n </Fragment>\n ))}\n </div>\n </div>\n )}\n {item.config?.rules?.length > 0 && (\n <div className=\"mt-[18px] w-full text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:mt-[12px] md:text-[14px]\">\n <div className=\"mb-[4px]\">{pageCommon?.ruleLabel}:</div>\n <ul className=\"ml-4 grid grid-flow-row gap-[4px]\">\n {item.config?.rules?.map((text, index) => (\n <li className=\"list-disc\" key={index}>\n <Text html={text} />\n </li>\n ))}\n </ul>\n </div>\n )}\n </div>\n <div className=\"bg-white px-[48px] pt-[24px] text-center md:px-[16px]\">\n <Text\n className=\"block text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]\"\n html={copy.confirmTitle}\n ></Text>\n <Button\n loading={loading}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[16px] w-full\"\n onClick={onConfirm}\n disabled={disabled}\n >\n {copy.confirmButton}\n </Button>\n </div>\n </>\n )\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAoBI,IAAAI,EAAA,6BApBJC,EAAsC,iCACtCC,EAAuB,yBACvBC,EAAyB,iBACzBC,EAA6B,+BAE7BC,EAAiC,iDACjCC,EAAkC,kCAU3B,MAAMR,EAAqB,CAAC,CAAE,KAAAS,EAAM,KAAAC,EAAM,QAAAC,EAAS,SAAAC,EAAU,UAAAC,CAAU,IAA+B,CAC3G,KAAM,CAAE,WAAAC,CAAW,KAAI,qBAAkB,EAEzC,SACE,oBACE,qBAAC,OACC,aAAW,EAAAC,SACT,8FACF,EAEA,qBAAC,OAAI,UAAU,uCACZ,UAAAD,GAAY,eAAeL,EAAK,QAAQ,IAAI,GAAG,QAC9C,OAAC,WAAQ,OAAQK,EAAW,aAAaL,EAAK,OAAO,IAAI,EAAE,IAAK,UAAU,wBAAwB,KAEpG,OAAC,OAAI,UAAU,8DACZ,SAAAA,EAAK,OAAO,SACX,OAAC,oBAAiB,KAAMA,EAAM,KAE9B,OAAC,QAAK,KAAM,EAAG,KAAMA,EAAK,MAAM,MAAO,EAE3C,GACF,KACA,QAAC,QACC,GAAG,IACH,aAAW,EAAAM,SACT,wGACF,EAEC,6BAAaN,EAAK,MAAM,cAAc,EAAE,IAAEK,GAAY,WACzD,EACCJ,GAAM,gBAAgB,OAASA,EAAK,eAAe,MAAM,OAAS,MACjE,QAAC,OAAI,UAAU,sEACb,oBAAC,OAAI,UAAU,sCAAuC,SAAAA,EAAK,eAAe,UAAU,KACpF,OAAC,OAAI,UAAU,4CACZ,SAAAA,EAAK,eAAe,MAAM,IAAI,CAACM,EAAMC,OACpC,QAAC,YACC,qBAAC,OAAI,UAAU,8EACb,oBAAC,WAAQ,OAAQD,EAAK,SAAU,UAAU,6BAA6B,KACvE,OAAC,OAAI,UAAU,gFACZ,SAAAA,EAAK,MACR,GACF,EACCC,IAAUP,EAAK,eAAe,MAAO,OAAS,MAC7C,OAAC,WACC,OAAO,qFACP,UAAU,kEACX,IAXUO,CAaf,CACD,EACH,GACF,EAEDR,EAAK,QAAQ,OAAO,OAAS,MAC5B,QAAC,OAAI,UAAU,kGACb,qBAAC,OAAI,UAAU,WAAY,UAAAK,GAAY,UAAU,KAAC,KAClD,OAAC,MAAG,UAAU,oCACX,SAAAL,EAAK,QAAQ,OAAO,IAAI,CAACS,EAAMD,OAC9B,OAAC,MAAG,UAAU,YACZ,mBAAC,QAAK,KAAMC,EAAM,GADWD,CAE/B,CACD,EACH,GACF,GAEJ,KACA,QAAC,OAAI,UAAU,wDACb,oBAAC,QACC,UAAU,4EACV,KAAMP,EAAK,aACZ,KACD,OAAC,UACC,QAASC,EACT,QAAQ,UACR,KAAK,KACL,UAAU,mBACV,QAASE,EACT,SAAUD,EAET,SAAAF,EAAK,cACR,GACF,GACF,CAEJ",
6
- "names": ["VirtualProductInit_exports", "__export", "VirtualProductInit", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_classnames", "import_react", "import_utils", "import_NonProductValue", "import_provider", "item", "copy", "loading", "disabled", "onConfirm", "pageCommon", "classNames", "step", "index", "text"]
4
+ "sourcesContent": ["import { Button, Picture, Text } from '@anker-in/headless-ui'\nimport classNames from 'classnames'\nimport { Fragment } from 'react'\nimport { numberFormat } from '../../context/utils'\nimport type { RedeemableItem as RedeemableItemType, RedeemModalCommon } from '../../type'\nimport { NoneProductValue } from '../RedeemProductModal/NonProductValue'\nimport { useCreditsContext } from '../../context/provider'\nimport { useHeadlessContext } from '@anker-in/lib'\n\ntype VirtualProductInitProps = {\n item: RedeemableItemType\n copy: RedeemModalCommon\n loading: boolean\n disabled: boolean\n onConfirm: () => void\n}\n\nexport const VirtualProductInit = ({ item, copy, loading, disabled, onConfirm }: VirtualProductInitProps) => {\n const { pageCommon } = useCreditsContext()\n const { locale } = useHeadlessContext()\n\n return (\n <>\n <div\n className={classNames(\n 'max-h-[500px] overflow-y-auto bg-[#F5F5F7] px-[48px] pb-[24px] md:max-h-[400px] md:px-[16px]'\n )}\n >\n <div className=\"relative mx-auto h-[164px] w-[324px]\">\n {pageCommon?.imageMapping?.[item.config?.type]?.url && (\n <Picture source={pageCommon.imageMapping[item.config.type].url} className=\"h-full [&_img]:h-full\" />\n )}\n <div className=\"absolute bottom-[8px] left-[16px] font-extrabold text-white\">\n {item.config.value ? (\n <NoneProductValue item={item} />\n ) : (\n <Text size={3} html={item.alpc?.title} />\n )}\n </div>\n </div>\n <Text\n as=\"p\"\n className={classNames(\n 'mt-[30px] text-center text-[24px] font-bold leading-[1.2] md:mt-[18px] md:text-[20px] md:leading-[1.2]'\n )}\n >\n {numberFormat(item.alpc?.consumeCredits, locale)} {pageCommon?.pointUnit}\n </Text>\n {copy?.virtualProduct?.steps && copy.virtualProduct.steps.length > 0 && (\n <div className=\"mt-[16px] w-full text-[14px] font-semibold text-[#777] md:mt-[12px]\">\n <div className=\"text-[16px] font-bold leading-[1.4]\">{copy.virtualProduct.stepTitle}</div>\n <div className=\"mt-[4px] flex items-center justify-center\">\n {copy.virtualProduct.steps.map((step, index) => (\n <Fragment key={index}>\n <div className=\"flex w-[76px] flex-col items-center text-center md:h-[94px] min-l:w-[130px]\">\n <Picture source={step.imageUrl} className=\"mb-[4px] h-[58px] w-[58px]\"></Picture>\n <div className=\"min-h-[34px] text-[14px] font-bold text-[#777] md:min-h-[28px] md:text-[12px]\">\n {step.title}\n </div>\n </div>\n {index !== copy.virtualProduct.steps!.length - 1 && (\n <Picture\n source=\"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/step-arrow.png?v=1690458150\"\n className=\"mb-[20px] h-[10px] w-[20px] md:mb-[30px] md:h-[5px] md:w-[12px]\"\n ></Picture>\n )}\n </Fragment>\n ))}\n </div>\n </div>\n )}\n {item.config?.rules?.length > 0 && (\n <div className=\"mt-[18px] w-full text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:mt-[12px] md:text-[14px]\">\n <div className=\"mb-[4px]\">{pageCommon?.ruleLabel}:</div>\n <ul className=\"ml-4 grid grid-flow-row gap-[4px]\">\n {item.config?.rules?.map((text, index) => (\n <li className=\"list-disc\" key={index}>\n <Text html={text} />\n </li>\n ))}\n </ul>\n </div>\n )}\n </div>\n <div className=\"bg-white px-[48px] pt-[24px] text-center md:px-[16px]\">\n <Text\n className=\"block text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]\"\n html={copy.confirmTitle}\n ></Text>\n <Button\n loading={loading}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[16px] w-full\"\n onClick={onConfirm}\n disabled={disabled}\n >\n {copy.confirmButton}\n </Button>\n </div>\n </>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAsBI,IAAAI,EAAA,6BAtBJC,EAAsC,iCACtCC,EAAuB,yBACvBC,EAAyB,iBACzBC,EAA6B,+BAE7BC,EAAiC,iDACjCC,EAAkC,kCAClCC,EAAmC,yBAU5B,MAAMT,EAAqB,CAAC,CAAE,KAAAU,EAAM,KAAAC,EAAM,QAAAC,EAAS,SAAAC,EAAU,UAAAC,CAAU,IAA+B,CAC3G,KAAM,CAAE,WAAAC,CAAW,KAAI,qBAAkB,EACnC,CAAE,OAAAC,CAAO,KAAI,sBAAmB,EAEtC,SACE,oBACE,qBAAC,OACC,aAAW,EAAAC,SACT,8FACF,EAEA,qBAAC,OAAI,UAAU,uCACZ,UAAAF,GAAY,eAAeL,EAAK,QAAQ,IAAI,GAAG,QAC9C,OAAC,WAAQ,OAAQK,EAAW,aAAaL,EAAK,OAAO,IAAI,EAAE,IAAK,UAAU,wBAAwB,KAEpG,OAAC,OAAI,UAAU,8DACZ,SAAAA,EAAK,OAAO,SACX,OAAC,oBAAiB,KAAMA,EAAM,KAE9B,OAAC,QAAK,KAAM,EAAG,KAAMA,EAAK,MAAM,MAAO,EAE3C,GACF,KACA,QAAC,QACC,GAAG,IACH,aAAW,EAAAO,SACT,wGACF,EAEC,6BAAaP,EAAK,MAAM,eAAgBM,CAAM,EAAE,IAAED,GAAY,WACjE,EACCJ,GAAM,gBAAgB,OAASA,EAAK,eAAe,MAAM,OAAS,MACjE,QAAC,OAAI,UAAU,sEACb,oBAAC,OAAI,UAAU,sCAAuC,SAAAA,EAAK,eAAe,UAAU,KACpF,OAAC,OAAI,UAAU,4CACZ,SAAAA,EAAK,eAAe,MAAM,IAAI,CAACO,EAAMC,OACpC,QAAC,YACC,qBAAC,OAAI,UAAU,8EACb,oBAAC,WAAQ,OAAQD,EAAK,SAAU,UAAU,6BAA6B,KACvE,OAAC,OAAI,UAAU,gFACZ,SAAAA,EAAK,MACR,GACF,EACCC,IAAUR,EAAK,eAAe,MAAO,OAAS,MAC7C,OAAC,WACC,OAAO,qFACP,UAAU,kEACX,IAXUQ,CAaf,CACD,EACH,GACF,EAEDT,EAAK,QAAQ,OAAO,OAAS,MAC5B,QAAC,OAAI,UAAU,kGACb,qBAAC,OAAI,UAAU,WAAY,UAAAK,GAAY,UAAU,KAAC,KAClD,OAAC,MAAG,UAAU,oCACX,SAAAL,EAAK,QAAQ,OAAO,IAAI,CAACU,EAAMD,OAC9B,OAAC,MAAG,UAAU,YACZ,mBAAC,QAAK,KAAMC,EAAM,GADWD,CAE/B,CACD,EACH,GACF,GAEJ,KACA,QAAC,OAAI,UAAU,wDACb,oBAAC,QACC,UAAU,4EACV,KAAMR,EAAK,aACZ,KACD,OAAC,UACC,QAASC,EACT,QAAQ,UACR,KAAK,KACL,UAAU,mBACV,QAASE,EACT,SAAUD,EAET,SAAAF,EAAK,cACR,GACF,GACF,CAEJ",
6
+ "names": ["VirtualProductInit_exports", "__export", "VirtualProductInit", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_classnames", "import_react", "import_utils", "import_NonProductValue", "import_provider", "import_lib", "item", "copy", "loading", "disabled", "onConfirm", "pageCommon", "locale", "classNames", "step", "index", "text"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var k=Object.create;var f=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var D=(t,l)=>{for(var e in l)f(t,e,{get:l[e],enumerable:!0})},N=(t,l,e,m)=>{if(l&&typeof l=="object"||typeof l=="function")for(let r of z(l))!L.call(t,r)&&r!==e&&f(t,r,{get:()=>l[r],enumerable:!(m=S(l,r))||m.enumerable});return t};var O=(t,l,e)=>(e=t!=null?k(E(t)):{},N(l||!t||!t.__esModule?f(e,"default",{value:t,enumerable:!0}):e,t)),F=t=>N(f({},"__esModule",{value:!0}),t);var B={};D(B,{RedeemableItem:()=>A});module.exports=F(B);var a=require("react/jsx-runtime"),n=require("@anker-in/headless-ui"),v=require("react"),g=O(require("classnames")),R=require("../context/provider"),i=require("../context/const"),c=require("../context/utils"),u=require("@anker-in/lib"),C=require("./NonProductValue"),T=require("../../../constants");function A({copy:t,className:l,item:e,onRulesOpen:m,onRedeem:r}){const{creditInfo:h,profile:p,gtm:{pageGroup:y,pageHandle:s},pageCommon:d}=(0,R.useCreditsContext)(),{brand:$,locale:b}=(0,u.useHeadlessContext)(),x=Object.keys(p||{}).length>0,w=T.ROUNDED_BRANDS.includes($),I=(0,v.useMemo)(()=>!!(e.hasRedeemed||e.alpc?.remainingInventory<=0&&e.alpc?.isLimited||e.alpc?.consumeType===i.AlpcConsumeType.Product&&!e.variant?.availableForSale||x&&p?.activated&&e.alpc?.consumeCredits>Number(h?.available_credit||0)),[e.hasRedeemed,e.alpc?.remainingInventory,e.alpc?.isLimited,e.alpc?.consumeType,e.alpc?.consumeCredits,x,p?.activated,h?.available_credit,e.variant?.availableForSale]),_=(0,v.useMemo)(()=>x?e.alpc?.consumeType===i.AlpcConsumeType.Product?e.variant?.availableForSale?t.btnRedeem:d?.soldOut||"Sold Out":t.btnRedeem:t.unlockRewards,[x,e.alpc?.consumeType,e.variant?.availableForSale,t.btnRedeem,t.unlockRewards,d?.soldOut]),P=(0,v.useMemo)(()=>{if(e.config?.type!==i.ConsumeType.Product||!e.product?.handle)return;const o=b==="us"?"":`/${b}`;return(0,c.extractVariantId)(e.variant?.id)?`${o}/products/${e.product.handle}?variant=${(0,c.extractVariantId)(e.variant?.id)}${s?`&ref=${s}`:""}`:`${o}/products/${e.product.handle}${s?`?ref=${s}`:""}`},[e.config?.type,e.product?.handle,e.variant?.id,s,b]);return(0,a.jsxs)("div",{className:(0,g.default)("flex flex-col items-center rounded-[16px] bg-[#EAEAEC] p-[24px] md:rounded-[12px] md:px-[8px] xl:py-[16px] md-xl:px-[16px]",!w&&"rounded-none md:rounded-none",l),children:[e.config?.type===i.ConsumeType.Product?(0,a.jsx)("a",{href:P,className:(0,g.default)("relative mx-auto h-[224px] w-fit md:my-[10px] l:h-[120px] l-xxl:h-[138px]"),children:(0,a.jsx)(n.Picture,{className:"h-full w-auto [&_img]:h-full [&_img]:object-contain",source:e.config?.image?.url||e.product?.images?.[0]?.url})}):(0,a.jsxs)("div",{className:"relative mx-auto my-[30px] h-[164px] md:my-0 md:h-[66px] l-xxl:h-[138px] md-l:h-[80px]",children:[(0,a.jsx)(n.Picture,{source:d?.imageMapping?.[e.config?.type]?.url,className:"h-full [&_img]:h-full [&_img]:w-auto [&_img]:object-contain"}),(0,a.jsx)(C.NoneProductValue,{item:e})]}),(0,a.jsxs)("div",{className:(0,g.default)("mt-[10px] xl:mt-[8px] flex w-full flex-1 flex-col justify-between"),children:[(0,a.jsx)(n.Text,{html:e.config?.title||e.alpc?.title,title:e.config?.title||e.alpc?.title,size:2,className:"line-clamp-2 h-[58px] text-[24px] leading-[1.2] l:h-[40px] l:text-[16px] l-xxl:h-[48px] l-xxl:text-[20px]"}),e.config?.rules?.length>0&&(0,a.jsx)("button",{type:"button",onClick:()=>{m(e.config?.rules||[]),(0,u.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:p?.activated?"active":"not active",event_parameters:{page_group:y,position:t.title,button_name:d?.ruleLabel,info:e.alpc?.id?.toString()}})},className:"mt-[8px] w-fit text-[16px] font-bold underline md:text-[14px] l:mt-0",tabIndex:0,onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&o.preventDefault()},children:d?.ruleLabel}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"mt-[26px] flex items-center l:mt-[12px] l-xl:mt-[16px]",children:[(0,a.jsx)(n.Picture,{className:"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783"}),(0,a.jsx)(n.Text,{html:`${(0,c.numberFormat)(e.alpc?.consumeCredits)}`,size:2,as:"p",className:"ml-[4px] text-[24px] font-bold mt-[4px] leading-none l-xxl:text-[20px] l:text-[16px] "})]}),(0,a.jsx)(n.Button,{disabled:I,variant:"primary",size:"lg",className:"mt-[8px] md:px-[8px] l:w-full",onClick:()=>{r(e),(0,u.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:p?.activated?"active":"not active",event_parameters:{page_group:y,position:t.title,button_name:_,info:e.alpc?.id?.toString()}})},children:_})]})]})]})}
1
+ "use strict";var k=Object.create;var v=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var D=(t,l)=>{for(var e in l)v(t,e,{get:l[e],enumerable:!0})},N=(t,l,e,m)=>{if(l&&typeof l=="object"||typeof l=="function")for(let r of z(l))!L.call(t,r)&&r!==e&&v(t,r,{get:()=>l[r],enumerable:!(m=S(l,r))||m.enumerable});return t};var O=(t,l,e)=>(e=t!=null?k(E(t)):{},N(l||!t||!t.__esModule?v(e,"default",{value:t,enumerable:!0}):e,t)),F=t=>N(v({},"__esModule",{value:!0}),t);var B={};D(B,{RedeemableItem:()=>A});module.exports=F(B);var a=require("react/jsx-runtime"),n=require("@anker-in/headless-ui"),g=require("react"),b=O(require("classnames")),R=require("../context/provider"),i=require("../context/const"),c=require("../context/utils"),u=require("@anker-in/lib"),C=require("./NonProductValue"),T=require("../../../constants");function A({copy:t,className:l,item:e,onRulesOpen:m,onRedeem:r}){const{creditInfo:h,profile:p,gtm:{pageGroup:y,pageHandle:s},pageCommon:d}=(0,R.useCreditsContext)(),{brand:$,locale:x}=(0,u.useHeadlessContext)(),f=Object.keys(p||{}).length>0,w=T.ROUNDED_BRANDS.includes($),I=(0,g.useMemo)(()=>!!(e.hasRedeemed||e.alpc?.remainingInventory<=0&&e.alpc?.isLimited||e.alpc?.consumeType===i.AlpcConsumeType.Product&&!e.variant?.availableForSale||f&&p?.activated&&e.alpc?.consumeCredits>Number(h?.available_credit||0)),[e.hasRedeemed,e.alpc?.remainingInventory,e.alpc?.isLimited,e.alpc?.consumeType,e.alpc?.consumeCredits,f,p?.activated,h?.available_credit,e.variant?.availableForSale]),_=(0,g.useMemo)(()=>f?e.alpc?.consumeType===i.AlpcConsumeType.Product?e.variant?.availableForSale?t.btnRedeem:d?.soldOut||"Sold Out":t.btnRedeem:t.unlockRewards,[f,e.alpc?.consumeType,e.variant?.availableForSale,t.btnRedeem,t.unlockRewards,d?.soldOut]),P=(0,g.useMemo)(()=>{if(e.config?.type!==i.ConsumeType.Product||!e.product?.handle)return;const o=x==="us"?"":`/${x}`;return(0,c.extractVariantId)(e.variant?.id)?`${o}/products/${e.product.handle}?variant=${(0,c.extractVariantId)(e.variant?.id)}${s?`&ref=${s}`:""}`:`${o}/products/${e.product.handle}${s?`?ref=${s}`:""}`},[e.config?.type,e.product?.handle,e.variant?.id,s,x]);return(0,a.jsxs)("div",{className:(0,b.default)("flex flex-col items-center rounded-[16px] bg-[#EAEAEC] p-[24px] md:rounded-[12px] md:px-[8px] xl:py-[16px] md-xl:px-[16px]",!w&&"rounded-none md:rounded-none",l),children:[e.config?.type===i.ConsumeType.Product?(0,a.jsx)("a",{href:P,className:(0,b.default)("relative mx-auto h-[224px] w-fit md:my-[10px] l:h-[120px] l-xxl:h-[138px]"),children:(0,a.jsx)(n.Picture,{className:"h-full w-auto [&_img]:h-full [&_img]:object-contain",source:e.config?.image?.url||e.product?.images?.[0]?.url})}):(0,a.jsxs)("div",{className:"relative mx-auto my-[30px] h-[164px] md:my-0 md:h-[66px] l-xxl:h-[138px] md-l:h-[80px]",children:[(0,a.jsx)(n.Picture,{source:d?.imageMapping?.[e.config?.type]?.url,className:"h-full [&_img]:h-full [&_img]:w-auto [&_img]:object-contain"}),(0,a.jsx)(C.NoneProductValue,{item:e})]}),(0,a.jsxs)("div",{className:(0,b.default)("mt-[10px] xl:mt-[8px] flex w-full flex-1 flex-col justify-between"),children:[(0,a.jsx)(n.Text,{html:e.config?.title||e.alpc?.title,title:e.config?.title||e.alpc?.title,size:2,className:"line-clamp-2 h-[58px] text-[24px] leading-[1.2] l:h-[40px] l:text-[16px] l-xxl:h-[48px] l-xxl:text-[20px]"}),e.config?.rules?.length>0&&(0,a.jsx)("button",{type:"button",onClick:()=>{m(e.config?.rules||[]),(0,u.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:p?.activated?"active":"not active",event_parameters:{page_group:y,position:t.title,button_name:d?.ruleLabel,info:e.alpc?.id?.toString()}})},className:"mt-[8px] w-fit text-[16px] font-bold underline md:text-[14px] l:mt-0",tabIndex:0,onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&o.preventDefault()},children:d?.ruleLabel}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"mt-[26px] flex items-center l:mt-[12px] l-xl:mt-[16px]",children:[(0,a.jsx)(n.Picture,{className:"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783"}),(0,a.jsx)(n.Text,{html:`${(0,c.numberFormat)(e.alpc?.consumeCredits,x)}`,size:2,as:"p",className:"ml-[4px] text-[24px] font-bold mt-[4px] leading-none l-xxl:text-[20px] l:text-[16px] "})]}),(0,a.jsx)(n.Button,{disabled:I,variant:"primary",size:"lg",className:"mt-[8px] md:px-[8px] l:w-full",onClick:()=>{r(e),(0,u.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:p?.activated?"active":"not active",event_parameters:{page_group:y,position:t.title,button_name:_,info:e.alpc?.id?.toString()}})},children:_})]})]})]})}
2
2
  //# sourceMappingURL=RedeemableItem.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsRedeemList/RedeemableItem.tsx"],
4
- "sourcesContent": ["import { Button, Text, Picture } from '@anker-in/headless-ui'\n\nimport { useMemo } from 'react'\n\nimport classNames from 'classnames'\nimport { useCreditsContext } from '../context/provider'\nimport type { RedeemableItem as RedeemableItemType } from '../type'\nimport { AlpcConsumeType, ConsumeType } from '../context/const'\nimport { numberFormat, extractVariantId } from '../context/utils'\nimport type { CreditsRedeemListCopy } from './type'\nimport { gaTrack, useHeadlessContext } from '@anker-in/lib'\nimport { NoneProductValue } from './NonProductValue'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nexport function RedeemableItem({\n copy,\n className,\n item,\n onRulesOpen,\n onRedeem,\n}: {\n copy: CreditsRedeemListCopy\n className?: string\n item: RedeemableItemType\n onRulesOpen: (rules: string[]) => void\n onRedeem: (item: RedeemableItemType) => void\n}) {\n const {\n creditInfo,\n profile,\n gtm: { pageGroup, pageHandle },\n pageCommon,\n } = useCreditsContext()\n const { brand, locale } = useHeadlessContext()\n const isLogin = Object.keys(profile || {}).length > 0\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const isDisabled = useMemo(() => {\n if (item.hasRedeemed) {\n return true\n }\n\n if (item.alpc?.remainingInventory <= 0 && item.alpc?.isLimited) {\n // \u6709\u5E93\u5B58\u9650\u5236\n return true\n }\n\n if (item.alpc?.consumeType === AlpcConsumeType.Product) {\n if (!item.variant?.availableForSale) {\n return true\n }\n }\n if (isLogin && profile?.activated && item.alpc?.consumeCredits > Number(creditInfo?.available_credit || 0)) {\n return true\n }\n return false\n }, [\n item.hasRedeemed,\n item.alpc?.remainingInventory,\n item.alpc?.isLimited,\n item.alpc?.consumeType,\n item.alpc?.consumeCredits,\n isLogin,\n profile?.activated,\n creditInfo?.available_credit,\n item.variant?.availableForSale,\n ])\n\n const redeemButtonText = useMemo(() => {\n if (!isLogin) {\n return copy.unlockRewards\n }\n\n // \u7F3A\u8D27\u6587\u6848\n if (item.alpc?.consumeType === AlpcConsumeType.Product) {\n return item.variant?.availableForSale ? copy.btnRedeem : pageCommon?.soldOut || 'Sold Out'\n }\n return copy.btnRedeem\n }, [\n isLogin,\n item.alpc?.consumeType,\n item.variant?.availableForSale,\n copy.btnRedeem,\n copy.unlockRewards,\n pageCommon?.soldOut,\n ])\n\n // \u751F\u6210\u4EA7\u54C1 listing \u9875\u9762\u94FE\u63A5\n const productUrl = useMemo(() => {\n if (item.config?.type !== ConsumeType.Product || !item.product?.handle) {\n return undefined\n }\n const localePrefix = locale === 'us' ? '' : `/${locale}`\n return extractVariantId(item.variant?.id)\n ? `${localePrefix}/products/${item.product.handle}?variant=${extractVariantId(item.variant?.id)}${pageHandle ? `&ref=${pageHandle}` : ''}`\n : `${localePrefix}/products/${item.product.handle}${pageHandle ? `?ref=${pageHandle}` : ''}`\n }, [item.config?.type, item.product?.handle, item.variant?.id, pageHandle, locale])\n\n return (\n <div\n className={classNames(\n 'flex flex-col items-center rounded-[16px] bg-[#EAEAEC] p-[24px] md:rounded-[12px] md:px-[8px] xl:py-[16px] md-xl:px-[16px]',\n !rounded && 'rounded-none md:rounded-none',\n className\n )}\n >\n {item.config?.type === ConsumeType.Product ? (\n <a\n href={productUrl}\n className={classNames('relative mx-auto h-[224px] w-fit md:my-[10px] l:h-[120px] l-xxl:h-[138px]')}\n >\n <Picture\n className=\"h-full w-auto [&_img]:h-full [&_img]:object-contain\"\n source={item.config?.image?.url || item.product?.images?.[0]?.url}\n ></Picture>\n </a>\n ) : (\n <div className=\"relative mx-auto my-[30px] h-[164px] md:my-0 md:h-[66px] l-xxl:h-[138px] md-l:h-[80px]\">\n <Picture\n source={pageCommon?.imageMapping?.[item.config?.type]?.url}\n className=\"h-full [&_img]:h-full [&_img]:w-auto [&_img]:object-contain\"\n ></Picture>\n\n <NoneProductValue item={item} />\n </div>\n )}\n <div className={classNames('mt-[10px] xl:mt-[8px] flex w-full flex-1 flex-col justify-between')}>\n <Text\n html={item.config?.title || item.alpc?.title}\n title={item.config?.title || item.alpc?.title}\n size={2}\n className=\"line-clamp-2 h-[58px] text-[24px] leading-[1.2] l:h-[40px] l:text-[16px] l-xxl:h-[48px] l-xxl:text-[20px]\"\n />\n {item.config?.rules?.length > 0 && (\n <button\n type=\"button\"\n onClick={() => {\n onRulesOpen(item.config?.rules || [])\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: pageCommon?.ruleLabel,\n info: item.alpc?.id?.toString(),\n },\n })\n }}\n className=\"mt-[8px] w-fit text-[16px] font-bold underline md:text-[14px] l:mt-0\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {pageCommon?.ruleLabel}\n </button>\n )}\n <div>\n <div className=\"mt-[26px] flex items-center l:mt-[12px] l-xl:mt-[16px]\">\n <Picture\n className=\"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]\"\n source=\"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783\"\n />\n <Text\n html={`${numberFormat(item.alpc?.consumeCredits)}`}\n size={2}\n as=\"p\"\n className=\"ml-[4px] text-[24px] font-bold mt-[4px] leading-none l-xxl:text-[20px] l:text-[16px] \"\n />\n </div>\n\n <Button\n disabled={isDisabled}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[8px] md:px-[8px] l:w-full\"\n onClick={() => {\n onRedeem(item)\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: redeemButtonText,\n info: item.alpc?.id?.toString(),\n },\n })\n }}\n >\n {redeemButtonText}\n </Button>\n </div>\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Button, Text, Picture } from '@anker-in/headless-ui'\n\nimport { useMemo } from 'react'\n\nimport classNames from 'classnames'\nimport { useCreditsContext } from '../context/provider'\nimport type { RedeemableItem as RedeemableItemType } from '../type'\nimport { AlpcConsumeType, ConsumeType } from '../context/const'\nimport { numberFormat, extractVariantId } from '../context/utils'\nimport type { CreditsRedeemListCopy } from './type'\nimport { gaTrack, useHeadlessContext } from '@anker-in/lib'\nimport { NoneProductValue } from './NonProductValue'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nexport function RedeemableItem({\n copy,\n className,\n item,\n onRulesOpen,\n onRedeem,\n}: {\n copy: CreditsRedeemListCopy\n className?: string\n item: RedeemableItemType\n onRulesOpen: (rules: string[]) => void\n onRedeem: (item: RedeemableItemType) => void\n}) {\n const {\n creditInfo,\n profile,\n gtm: { pageGroup, pageHandle },\n pageCommon,\n } = useCreditsContext()\n const { brand, locale } = useHeadlessContext()\n const isLogin = Object.keys(profile || {}).length > 0\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const isDisabled = useMemo(() => {\n if (item.hasRedeemed) {\n return true\n }\n\n if (item.alpc?.remainingInventory <= 0 && item.alpc?.isLimited) {\n // \u6709\u5E93\u5B58\u9650\u5236\n return true\n }\n\n if (item.alpc?.consumeType === AlpcConsumeType.Product) {\n if (!item.variant?.availableForSale) {\n return true\n }\n }\n if (isLogin && profile?.activated && item.alpc?.consumeCredits > Number(creditInfo?.available_credit || 0)) {\n return true\n }\n return false\n }, [\n item.hasRedeemed,\n item.alpc?.remainingInventory,\n item.alpc?.isLimited,\n item.alpc?.consumeType,\n item.alpc?.consumeCredits,\n isLogin,\n profile?.activated,\n creditInfo?.available_credit,\n item.variant?.availableForSale,\n ])\n\n const redeemButtonText = useMemo(() => {\n if (!isLogin) {\n return copy.unlockRewards\n }\n\n // \u7F3A\u8D27\u6587\u6848\n if (item.alpc?.consumeType === AlpcConsumeType.Product) {\n return item.variant?.availableForSale ? copy.btnRedeem : pageCommon?.soldOut || 'Sold Out'\n }\n return copy.btnRedeem\n }, [\n isLogin,\n item.alpc?.consumeType,\n item.variant?.availableForSale,\n copy.btnRedeem,\n copy.unlockRewards,\n pageCommon?.soldOut,\n ])\n\n // \u751F\u6210\u4EA7\u54C1 listing \u9875\u9762\u94FE\u63A5\n const productUrl = useMemo(() => {\n if (item.config?.type !== ConsumeType.Product || !item.product?.handle) {\n return undefined\n }\n const localePrefix = locale === 'us' ? '' : `/${locale}`\n return extractVariantId(item.variant?.id)\n ? `${localePrefix}/products/${item.product.handle}?variant=${extractVariantId(item.variant?.id)}${pageHandle ? `&ref=${pageHandle}` : ''}`\n : `${localePrefix}/products/${item.product.handle}${pageHandle ? `?ref=${pageHandle}` : ''}`\n }, [item.config?.type, item.product?.handle, item.variant?.id, pageHandle, locale])\n\n return (\n <div\n className={classNames(\n 'flex flex-col items-center rounded-[16px] bg-[#EAEAEC] p-[24px] md:rounded-[12px] md:px-[8px] xl:py-[16px] md-xl:px-[16px]',\n !rounded && 'rounded-none md:rounded-none',\n className\n )}\n >\n {item.config?.type === ConsumeType.Product ? (\n <a\n href={productUrl}\n className={classNames('relative mx-auto h-[224px] w-fit md:my-[10px] l:h-[120px] l-xxl:h-[138px]')}\n >\n <Picture\n className=\"h-full w-auto [&_img]:h-full [&_img]:object-contain\"\n source={item.config?.image?.url || item.product?.images?.[0]?.url}\n ></Picture>\n </a>\n ) : (\n <div className=\"relative mx-auto my-[30px] h-[164px] md:my-0 md:h-[66px] l-xxl:h-[138px] md-l:h-[80px]\">\n <Picture\n source={pageCommon?.imageMapping?.[item.config?.type]?.url}\n className=\"h-full [&_img]:h-full [&_img]:w-auto [&_img]:object-contain\"\n ></Picture>\n\n <NoneProductValue item={item} />\n </div>\n )}\n <div className={classNames('mt-[10px] xl:mt-[8px] flex w-full flex-1 flex-col justify-between')}>\n <Text\n html={item.config?.title || item.alpc?.title}\n title={item.config?.title || item.alpc?.title}\n size={2}\n className=\"line-clamp-2 h-[58px] text-[24px] leading-[1.2] l:h-[40px] l:text-[16px] l-xxl:h-[48px] l-xxl:text-[20px]\"\n />\n {item.config?.rules?.length > 0 && (\n <button\n type=\"button\"\n onClick={() => {\n onRulesOpen(item.config?.rules || [])\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: pageCommon?.ruleLabel,\n info: item.alpc?.id?.toString(),\n },\n })\n }}\n className=\"mt-[8px] w-fit text-[16px] font-bold underline md:text-[14px] l:mt-0\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {pageCommon?.ruleLabel}\n </button>\n )}\n <div>\n <div className=\"mt-[26px] flex items-center l:mt-[12px] l-xl:mt-[16px]\">\n <Picture\n className=\"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]\"\n source=\"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783\"\n />\n <Text\n html={`${numberFormat(item.alpc?.consumeCredits, locale)}`}\n size={2}\n as=\"p\"\n className=\"ml-[4px] text-[24px] font-bold mt-[4px] leading-none l-xxl:text-[20px] l:text-[16px] \"\n />\n </div>\n\n <Button\n disabled={isDisabled}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[8px] md:px-[8px] l:w-full\"\n onClick={() => {\n onRedeem(item)\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: redeemButtonText,\n info: item.alpc?.id?.toString(),\n },\n })\n }}\n >\n {redeemButtonText}\n </Button>\n </div>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["RedeemableItem_exports", "__export", "RedeemableItem", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_classnames", "import_provider", "import_const", "import_utils", "import_lib", "import_NonProductValue", "import_constants", "copy", "className", "item", "onRulesOpen", "onRedeem", "creditInfo", "profile", "pageGroup", "pageHandle", "pageCommon", "brand", "locale", "isLogin", "rounded", "isDisabled", "redeemButtonText", "productUrl", "localePrefix", "classNames", "e"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var c=(g=>(g[g.All=0]="All",g[g.Earned=1]="Earned",g[g.Deducted=2]="Deducted",g[g.Expired=3]="Expired",g))(c||{}),u=(f=>(f.Coupon="coupon",f.GiftCard="giftCard",f.GoGift="goGift",f.Product="product",f.ShippingCoupon="shippingCoupon",f))(u||{}),P=(t=>(t[t.Coupon=1]="Coupon",t[t.Product=2]="Product",t[t.ExternalProduct=5]="ExternalProduct",t))(P||{}),h=(t=>(t[t.Program=1]="Program",t[t.Operation=2]="Operation",t[t.Redeem=3]="Redeem",t))(h||{}),G=(t=>(t.FirstPurchase="firstPurchase",t.UploadReceipt="uploadReceipt",t.Shopping="shopping",t))(G||{}),L=(o=>(o[o.Activation=1]="Activation",o[o.UpdateName=2]="UpdateName",o[o.UpdatePhone=3]="UpdatePhone",o[o.UpdateBirthday=4]="UpdateBirthday",o[o.Subscription=5]="Subscription",o[o.UpadteAppName=7]="UpadteAppName",o[o.Refund=3e3]="Refund",o[o.ProductUnApproved=5e3]="ProductUnApproved",o))(L||{}),U=(x=>(x.FixedMount="fixed_amount",x.Percent="percent",x))(U||{}),m=(n=>(n[n.Received=0]="Received",n[n.Pending=1]="Pending",n[n.ApproveSuccess=2]="ApproveSuccess",n[n.ApproveFail=3]="ApproveFail",n[n.Unfulfilled=4]="Unfulfilled",n[n.Fulfilled=5]="Fulfilled",n[n.Failed=6]="Failed",n[n.GogiftPending=7]="GogiftPending",n[n.GogiftApproved=8]="GogiftApproved",n[n.GogiftSecondConfirm=9]="GogiftSecondConfirm",n[n.GogiftRejected=10]="GogiftRejected",n[n.GogiftCallbackPending=11]="GogiftCallbackPending",n[n.GogiftCallbackSuccess=12]="GogiftCallbackSuccess",n[n.GogiftCallbackTimeout=13]="GogiftCallbackTimeout",n))(m||{}),F=(i=>(i[i.CodeLpcRedeemFailed=180001]="CodeLpcRedeemFailed",i[i.CodeLpcUserNotFound=180002]="CodeLpcUserNotFound",i[i.CodeLpcCreditRuleNotFound=180003]="CodeLpcCreditRuleNotFound",i[i.CodeLpcUnknownError=180004]="CodeLpcUnknownError",i[i.CodeLpcNotEnoughCredits=180005]="CodeLpcNotEnoughCredits",i[i.CodeLpcUserMigrate=180006]="CodeLpcUserMigrate",i[i.CodeLpcRuleInventoryNotEnough=180007]="CodeLpcRuleInventoryNotEnough",i[i.CodeLpcShopifyCouponRuleRedeemLimit=180009]="CodeLpcShopifyCouponRuleRedeemLimit",i[i.CodeCrossSiteError=180011]="CodeCrossSiteError",i))(F||{});const M=new Map([["eu-en","eu"],["eu-de","de"],["eu-fr","fr"]]);var N=(g=>(g[g.Pending=0]="Pending",g[g.Success=1]="Success",g[g.Failed=2]="Failed",g[g.DoubleConfirm=3]="DoubleConfirm",g))(N||{});const $={us:"$",uk:"\xA3",ca:"$",eu:"\u20AC",pl:"z\u0142",fr:"\u20AC",de:"\u20AC",vn:"\u20AB",cl:"$",sg:"$",ae:"AED",es:"\u20AC"};export{M as ALPC_COUNTRY_MAP,P as AlpcConsumeType,F as AlpcErrorCode,N as ApprovalStatus,u as ConsumeType,U as CouponType,c as CreditType,G as DTC_TASK_TYPE,$ as PRICE_SYMBOL,m as RewardType,L as TaskSubType,h as TaskType};
1
+ var c=(g=>(g[g.All=0]="All",g[g.Earned=1]="Earned",g[g.Deducted=2]="Deducted",g[g.Expired=3]="Expired",g))(c||{}),u=(f=>(f.Coupon="coupon",f.GiftCard="giftCard",f.GoGift="goGift",f.Product="product",f.ShippingCoupon="shippingCoupon",f))(u||{}),P=(t=>(t[t.Coupon=1]="Coupon",t[t.Product=2]="Product",t[t.ExternalProduct=5]="ExternalProduct",t))(P||{}),h=(t=>(t[t.Program=1]="Program",t[t.Operation=2]="Operation",t[t.Redeem=3]="Redeem",t))(h||{}),G=(t=>(t.FirstPurchase="firstPurchase",t.UploadReceipt="uploadReceipt",t.Shopping="shopping",t))(G||{}),L=(o=>(o[o.Activation=1]="Activation",o[o.UpdateName=2]="UpdateName",o[o.UpdatePhone=3]="UpdatePhone",o[o.UpdateBirthday=4]="UpdateBirthday",o[o.Subscription=5]="Subscription",o[o.UpadteAppName=7]="UpadteAppName",o[o.Refund=3e3]="Refund",o[o.ProductUnApproved=5e3]="ProductUnApproved",o))(L||{}),U=(x=>(x.FixedMount="fixed_amount",x.Percent="percent",x))(U||{}),m=(n=>(n[n.Received=0]="Received",n[n.Pending=1]="Pending",n[n.ApproveSuccess=2]="ApproveSuccess",n[n.ApproveFail=3]="ApproveFail",n[n.Unfulfilled=4]="Unfulfilled",n[n.Fulfilled=5]="Fulfilled",n[n.Failed=6]="Failed",n[n.GogiftPending=7]="GogiftPending",n[n.GogiftApproved=8]="GogiftApproved",n[n.GogiftSecondConfirm=9]="GogiftSecondConfirm",n[n.GogiftRejected=10]="GogiftRejected",n[n.GogiftCallbackPending=11]="GogiftCallbackPending",n[n.GogiftCallbackSuccess=12]="GogiftCallbackSuccess",n[n.GogiftCallbackTimeout=13]="GogiftCallbackTimeout",n))(m||{}),F=(i=>(i[i.CodeLpcRedeemFailed=180001]="CodeLpcRedeemFailed",i[i.CodeLpcUserNotFound=180002]="CodeLpcUserNotFound",i[i.CodeLpcCreditRuleNotFound=180003]="CodeLpcCreditRuleNotFound",i[i.CodeLpcUnknownError=180004]="CodeLpcUnknownError",i[i.CodeLpcNotEnoughCredits=180005]="CodeLpcNotEnoughCredits",i[i.CodeLpcUserMigrate=180006]="CodeLpcUserMigrate",i[i.CodeLpcRuleInventoryNotEnough=180007]="CodeLpcRuleInventoryNotEnough",i[i.CodeLpcShopifyCouponRuleRedeemLimit=180009]="CodeLpcShopifyCouponRuleRedeemLimit",i[i.CodeCrossSiteError=180011]="CodeCrossSiteError",i))(F||{});const M=new Map([["eu-en","eu"],["eu-de","de"],["eu-fr","fr"],["eu-es","es"],["eu-it","it"],["sg-en","sg"]]);var N=(g=>(g[g.Pending=0]="Pending",g[g.Success=1]="Success",g[g.Failed=2]="Failed",g[g.DoubleConfirm=3]="DoubleConfirm",g))(N||{});const $={us:"$",uk:"\xA3",ca:"$",eu:"\u20AC",pl:"z\u0142",fr:"\u20AC",de:"\u20AC",vn:"\u20AB",cl:"$",sg:"$",ae:"AED",es:"\u20AC"};export{M as ALPC_COUNTRY_MAP,P as AlpcConsumeType,F as AlpcErrorCode,N as ApprovalStatus,u as ConsumeType,U as CouponType,c as CreditType,G as DTC_TASK_TYPE,$ as PRICE_SYMBOL,m as RewardType,L as TaskSubType,h as TaskType};
2
2
  //# sourceMappingURL=const.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/context/const.ts"],
4
- "sourcesContent": ["export enum CreditType {\n All = 0,\n Earned = 1,\n Deducted = 2,\n Expired = 3,\n}\n\nexport enum ConsumeType {\n Coupon = 'coupon',\n GiftCard = 'giftCard',\n GoGift = 'goGift',\n Product = 'product',\n ShippingCoupon = 'shippingCoupon',\n}\n\nexport enum AlpcConsumeType {\n Coupon = 1,\n Product = 2,\n ExternalProduct = 5,\n}\n\nexport enum TaskType {\n Program = 1,\n Operation = 2,\n Redeem = 3,\n}\n\nexport enum DTC_TASK_TYPE {\n FirstPurchase = 'firstPurchase',\n UploadReceipt = 'uploadReceipt',\n Shopping = 'shopping',\n}\n\nexport enum TaskSubType {\n Activation = 1, // \u6FC0\u6D3B\u4E8B\u4EF6\n UpdateName = 2, // \u5B8C\u5584\u59D3\u540D\n UpdatePhone = 3, // \u66F4\u65B0\u624B\u673A\u53F7\n UpdateBirthday = 4, // \u66F4\u65B0\u751F\u65E5\n Subscription = 5, // \u8BA2\u9605\n UpadteAppName = 7, // \u5B8C\u5584APP\u59D3\u540D\n Refund = 3000, // \u8D2D\u7269\u9001\u79EF\u5206\u4EFB\u52A1\u9000\u6B3E\n ProductUnApproved = 5000, // \u5151\u6362\u5546\u54C1\u5BA1\u6838\u4E0D\u901A\u8FC7\n}\n\nexport enum CouponType {\n FixedMount = 'fixed_amount',\n Percent = 'percent',\n}\n\nexport enum RewardType {\n Received = 0,\n Pending = 1,\n ApproveSuccess = 2,\n ApproveFail = 3,\n Unfulfilled = 4,\n Fulfilled = 5,\n Failed = 6,\n GogiftPending = 7,\n GogiftApproved = 8,\n GogiftSecondConfirm = 9,\n GogiftRejected = 10,\n GogiftCallbackPending = 11,\n GogiftCallbackSuccess = 12,\n GogiftCallbackTimeout = 13,\n}\n\nexport enum AlpcErrorCode {\n CodeLpcRedeemFailed = 180001,\n //user not found\n CodeLpcUserNotFound = 180002,\n //credit rule not found\n CodeLpcCreditRuleNotFound = 180003,\n //unknown error\n CodeLpcUnknownError = 180004,\n // not enough credits\n CodeLpcNotEnoughCredits = 180005,\n // user migrate\n CodeLpcUserMigrate = 180006,\n // \u5E93\u5B58\u4E0D\u8DB3\n CodeLpcRuleInventoryNotEnough = 180007,\n // \u5151\u6362\u6B21\u6570\u9650\u5236\n CodeLpcShopifyCouponRuleRedeemLimit = 180009,\n // \u8DE8\u533A\u5151\u6362\u9519\u8BEF\uFF08\u975E\u6B27\u5151\u6362\u6B27\u6D32\u7684\uFF09\n CodeCrossSiteError = 180011,\n}\n\nexport const ALPC_COUNTRY_MAP = new Map<string, string>([\n ['eu-en', 'eu'],\n ['eu-de', 'de'],\n ['eu-fr', 'fr'],\n])\n\nexport enum ApprovalStatus {\n Pending = 0,\n Success = 1,\n Failed = 2,\n DoubleConfirm = 3,\n}\n\nexport const PRICE_SYMBOL = {\n us: '$',\n uk: '\u00A3',\n ca: '$',\n eu: '\u20AC',\n pl: 'z\u0142',\n fr: '\u20AC',\n de: '\u20AC',\n vn: '\u20AB',\n cl: '$',\n sg: '$',\n ae: 'AED',\n es: '\u20AC',\n}\n"],
5
- "mappings": "AAAO,IAAKA,OACVA,IAAA,IAAM,GAAN,MACAA,IAAA,OAAS,GAAT,SACAA,IAAA,SAAW,GAAX,WACAA,IAAA,QAAU,GAAV,UAJUA,OAAA,IAOAC,OACVA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,eAAiB,iBALPA,OAAA,IAQAC,OACVA,IAAA,OAAS,GAAT,SACAA,IAAA,QAAU,GAAV,UACAA,IAAA,gBAAkB,GAAlB,kBAHUA,OAAA,IAMAC,OACVA,IAAA,QAAU,GAAV,UACAA,IAAA,UAAY,GAAZ,YACAA,IAAA,OAAS,GAAT,SAHUA,OAAA,IAMAC,OACVA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,SAAW,WAHDA,OAAA,IAMAC,OACVA,IAAA,WAAa,GAAb,aACAA,IAAA,WAAa,GAAb,aACAA,IAAA,YAAc,GAAd,cACAA,IAAA,eAAiB,GAAjB,iBACAA,IAAA,aAAe,GAAf,eACAA,IAAA,cAAgB,GAAhB,gBACAA,IAAA,OAAS,KAAT,SACAA,IAAA,kBAAoB,KAApB,oBARUA,OAAA,IAWAC,OACVA,EAAA,WAAa,eACbA,EAAA,QAAU,UAFAA,OAAA,IAKAC,OACVA,IAAA,SAAW,GAAX,WACAA,IAAA,QAAU,GAAV,UACAA,IAAA,eAAiB,GAAjB,iBACAA,IAAA,YAAc,GAAd,cACAA,IAAA,YAAc,GAAd,cACAA,IAAA,UAAY,GAAZ,YACAA,IAAA,OAAS,GAAT,SACAA,IAAA,cAAgB,GAAhB,gBACAA,IAAA,eAAiB,GAAjB,iBACAA,IAAA,oBAAsB,GAAtB,sBACAA,IAAA,eAAiB,IAAjB,iBACAA,IAAA,sBAAwB,IAAxB,wBACAA,IAAA,sBAAwB,IAAxB,wBACAA,IAAA,sBAAwB,IAAxB,wBAdUA,OAAA,IAiBAC,OACVA,IAAA,oBAAsB,QAAtB,sBAEAA,IAAA,oBAAsB,QAAtB,sBAEAA,IAAA,0BAA4B,QAA5B,4BAEAA,IAAA,oBAAsB,QAAtB,sBAEAA,IAAA,wBAA0B,QAA1B,0BAEAA,IAAA,mBAAqB,QAArB,qBAEAA,IAAA,8BAAgC,QAAhC,gCAEAA,IAAA,oCAAsC,QAAtC,sCAEAA,IAAA,mBAAqB,QAArB,qBAjBUA,OAAA,IAoBL,MAAMC,EAAmB,IAAI,IAAoB,CACtD,CAAC,QAAS,IAAI,EACd,CAAC,QAAS,IAAI,EACd,CAAC,QAAS,IAAI,CAChB,CAAC,EAEM,IAAKC,OACVA,IAAA,QAAU,GAAV,UACAA,IAAA,QAAU,GAAV,UACAA,IAAA,OAAS,GAAT,SACAA,IAAA,cAAgB,GAAhB,gBAJUA,OAAA,IAOL,MAAMC,EAAe,CAC1B,GAAI,IACJ,GAAI,OACJ,GAAI,IACJ,GAAI,SACJ,GAAI,UACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,IACJ,GAAI,IACJ,GAAI,MACJ,GAAI,QACN",
4
+ "sourcesContent": ["export enum CreditType {\n All = 0,\n Earned = 1,\n Deducted = 2,\n Expired = 3,\n}\n\nexport enum ConsumeType {\n Coupon = 'coupon',\n GiftCard = 'giftCard',\n GoGift = 'goGift',\n Product = 'product',\n ShippingCoupon = 'shippingCoupon',\n}\n\nexport enum AlpcConsumeType {\n Coupon = 1,\n Product = 2,\n ExternalProduct = 5,\n}\n\nexport enum TaskType {\n Program = 1,\n Operation = 2,\n Redeem = 3,\n}\n\nexport enum DTC_TASK_TYPE {\n FirstPurchase = 'firstPurchase',\n UploadReceipt = 'uploadReceipt',\n Shopping = 'shopping',\n}\n\nexport enum TaskSubType {\n Activation = 1, // \u6FC0\u6D3B\u4E8B\u4EF6\n UpdateName = 2, // \u5B8C\u5584\u59D3\u540D\n UpdatePhone = 3, // \u66F4\u65B0\u624B\u673A\u53F7\n UpdateBirthday = 4, // \u66F4\u65B0\u751F\u65E5\n Subscription = 5, // \u8BA2\u9605\n UpadteAppName = 7, // \u5B8C\u5584APP\u59D3\u540D\n Refund = 3000, // \u8D2D\u7269\u9001\u79EF\u5206\u4EFB\u52A1\u9000\u6B3E\n ProductUnApproved = 5000, // \u5151\u6362\u5546\u54C1\u5BA1\u6838\u4E0D\u901A\u8FC7\n}\n\nexport enum CouponType {\n FixedMount = 'fixed_amount',\n Percent = 'percent',\n}\n\nexport enum RewardType {\n Received = 0,\n Pending = 1,\n ApproveSuccess = 2,\n ApproveFail = 3,\n Unfulfilled = 4,\n Fulfilled = 5,\n Failed = 6,\n GogiftPending = 7,\n GogiftApproved = 8,\n GogiftSecondConfirm = 9,\n GogiftRejected = 10,\n GogiftCallbackPending = 11,\n GogiftCallbackSuccess = 12,\n GogiftCallbackTimeout = 13,\n}\n\nexport enum AlpcErrorCode {\n CodeLpcRedeemFailed = 180001,\n //user not found\n CodeLpcUserNotFound = 180002,\n //credit rule not found\n CodeLpcCreditRuleNotFound = 180003,\n //unknown error\n CodeLpcUnknownError = 180004,\n // not enough credits\n CodeLpcNotEnoughCredits = 180005,\n // user migrate\n CodeLpcUserMigrate = 180006,\n // \u5E93\u5B58\u4E0D\u8DB3\n CodeLpcRuleInventoryNotEnough = 180007,\n // \u5151\u6362\u6B21\u6570\u9650\u5236\n CodeLpcShopifyCouponRuleRedeemLimit = 180009,\n // \u8DE8\u533A\u5151\u6362\u9519\u8BEF\uFF08\u975E\u6B27\u5151\u6362\u6B27\u6D32\u7684\uFF09\n CodeCrossSiteError = 180011,\n}\n\nexport const ALPC_COUNTRY_MAP = new Map<string, string>([\n ['eu-en', 'eu'],\n ['eu-de', 'de'],\n ['eu-fr', 'fr'],\n ['eu-es', 'es'],\n ['eu-it', 'it'],\n ['sg-en', 'sg'],\n])\n\nexport enum ApprovalStatus {\n Pending = 0,\n Success = 1,\n Failed = 2,\n DoubleConfirm = 3,\n}\n\nexport const PRICE_SYMBOL = {\n us: '$',\n uk: '\u00A3',\n ca: '$',\n eu: '\u20AC',\n pl: 'z\u0142',\n fr: '\u20AC',\n de: '\u20AC',\n vn: '\u20AB',\n cl: '$',\n sg: '$',\n ae: 'AED',\n es: '\u20AC',\n}\n"],
5
+ "mappings": "AAAO,IAAKA,OACVA,IAAA,IAAM,GAAN,MACAA,IAAA,OAAS,GAAT,SACAA,IAAA,SAAW,GAAX,WACAA,IAAA,QAAU,GAAV,UAJUA,OAAA,IAOAC,OACVA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,eAAiB,iBALPA,OAAA,IAQAC,OACVA,IAAA,OAAS,GAAT,SACAA,IAAA,QAAU,GAAV,UACAA,IAAA,gBAAkB,GAAlB,kBAHUA,OAAA,IAMAC,OACVA,IAAA,QAAU,GAAV,UACAA,IAAA,UAAY,GAAZ,YACAA,IAAA,OAAS,GAAT,SAHUA,OAAA,IAMAC,OACVA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,SAAW,WAHDA,OAAA,IAMAC,OACVA,IAAA,WAAa,GAAb,aACAA,IAAA,WAAa,GAAb,aACAA,IAAA,YAAc,GAAd,cACAA,IAAA,eAAiB,GAAjB,iBACAA,IAAA,aAAe,GAAf,eACAA,IAAA,cAAgB,GAAhB,gBACAA,IAAA,OAAS,KAAT,SACAA,IAAA,kBAAoB,KAApB,oBARUA,OAAA,IAWAC,OACVA,EAAA,WAAa,eACbA,EAAA,QAAU,UAFAA,OAAA,IAKAC,OACVA,IAAA,SAAW,GAAX,WACAA,IAAA,QAAU,GAAV,UACAA,IAAA,eAAiB,GAAjB,iBACAA,IAAA,YAAc,GAAd,cACAA,IAAA,YAAc,GAAd,cACAA,IAAA,UAAY,GAAZ,YACAA,IAAA,OAAS,GAAT,SACAA,IAAA,cAAgB,GAAhB,gBACAA,IAAA,eAAiB,GAAjB,iBACAA,IAAA,oBAAsB,GAAtB,sBACAA,IAAA,eAAiB,IAAjB,iBACAA,IAAA,sBAAwB,IAAxB,wBACAA,IAAA,sBAAwB,IAAxB,wBACAA,IAAA,sBAAwB,IAAxB,wBAdUA,OAAA,IAiBAC,OACVA,IAAA,oBAAsB,QAAtB,sBAEAA,IAAA,oBAAsB,QAAtB,sBAEAA,IAAA,0BAA4B,QAA5B,4BAEAA,IAAA,oBAAsB,QAAtB,sBAEAA,IAAA,wBAA0B,QAA1B,0BAEAA,IAAA,mBAAqB,QAArB,qBAEAA,IAAA,8BAAgC,QAAhC,gCAEAA,IAAA,oCAAsC,QAAtC,sCAEAA,IAAA,mBAAqB,QAArB,qBAjBUA,OAAA,IAoBL,MAAMC,EAAmB,IAAI,IAAoB,CACtD,CAAC,QAAS,IAAI,EACd,CAAC,QAAS,IAAI,EACd,CAAC,QAAS,IAAI,EACd,CAAC,QAAS,IAAI,EACd,CAAC,QAAS,IAAI,EACd,CAAC,QAAS,IAAI,CAChB,CAAC,EAEM,IAAKC,OACVA,IAAA,QAAU,GAAV,UACAA,IAAA,QAAU,GAAV,UACAA,IAAA,OAAS,GAAT,SACAA,IAAA,cAAgB,GAAhB,gBAJUA,OAAA,IAOL,MAAMC,EAAe,CAC1B,GAAI,IACJ,GAAI,OACJ,GAAI,IACJ,GAAI,SACJ,GAAI,UACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,IACJ,GAAI,IACJ,GAAI,MACJ,GAAI,QACN",
6
6
  "names": ["CreditType", "ConsumeType", "AlpcConsumeType", "TaskType", "DTC_TASK_TYPE", "TaskSubType", "CouponType", "RewardType", "AlpcErrorCode", "ALPC_COUNTRY_MAP", "ApprovalStatus", "PRICE_SYMBOL"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  export declare function getAlpcPath(locale?: string, apiBaseUrl?: string): string;
2
- export declare function numberFormat(num?: number): string | number;
2
+ export declare function numberFormat(num?: number, locale?: string): string | number;
3
3
  export declare const emailValidate: (email: any) => boolean;
4
4
  export declare const languageTerritory: (locale: string) => string;
5
5
  export declare function formatPrice({ amount, currencyCode, locale, maximumFractionDigits, minimumFractionDigits, removeTrailingZeros, }: {
@@ -1,2 +1,2 @@
1
- import g from"js-cookie";import{PRICE_SYMBOL as s}from"./const";function $(e="",r){let t=!1;const n=g.get("alpcEU");return n===void 0||n===""?["de","eu-de","eu","eu-en","uk","fr","fra"].includes(e)&&(t=!0):Number(n)&&(t=!0),r?t?`${r}/api/multipass/alpc-eu`:`${r}/api/multipass/alpc`:t?"/api/multipass/alpc-eu":"/api/multipass/alpc"}function I(e=0){return typeof Intl>"u"?e:new Intl.NumberFormat().format(e)}const P=e=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e),f=e=>({us:"en-us",uk:"en-gb",ca:"en-ca",au:"en-au",nz:"en-nz",eu:"en-eu",pl:"pl-pl",fr:"fr-fr","eu-fr":"fr-fr",fra:"fr-fr",de:"de-de",vn:"vi-vn",sg:"en-sg","ae-en":"en-ae",plus:"en-us",cl:"es-cl",es:"es-es",se:"en-se",dk:"en-dk",is:"en-is",no:"en-no",fi:"en-fi"})[e]||"";function c({amount:e,currencyCode:r,locale:t,maximumFractionDigits:n,minimumFractionDigits:u,removeTrailingZeros:a=!1}){let i=new Intl.NumberFormat(f(t)||t,{style:"currency",currency:r||"USD",minimumFractionDigits:n===0?0:u,maximumFractionDigits:n}).format(e);return["eu-de","eu-en","de","eu"].includes(t)&&(i=i?.toString()?.replace(/[\s]/g,"")),["fr","eu-fr","fra"].includes(t)&&(i=i?.toString()?.replace(/[\u202f\u00a0]/g," ")),a&&(i=i.replace(/(\.\d*?[1-9])0+\b/,"$1").replace(/\.0+\b/,"").replace(/(\,\d*?[1-9])0+\b/,"$1").replace(/\,0+\b/,"")),i}function S({amount:e,baseAmount:r,currencyCode:t,locale:n,maximumFractionDigits:u,minimumFractionDigits:a,removeTrailingZeros:o}){if(typeof Intl>"u")return{price:`${s[n]}${e}`,basePrice:`${s[n]}${r}`,discount:`${s[n]}${r-e||0}`};const i=r>e,p=new Intl.NumberFormat(f(n),{style:"percent"}),m=i?p.format((r-e)/r):null,l=c({amount:e,currencyCode:t,locale:n,removeTrailingZeros:o}),d=i?c({amount:r,currencyCode:t,locale:n,maximumFractionDigits:u,minimumFractionDigits:a,removeTrailingZeros:o}):void 0;return{price:l,basePrice:d,discount:m}}function k(e){return e?(typeof e=="number"?e.toString():e).replace("gid://shopify/ProductVariant/",""):null}export{P as emailValidate,k as extractVariantId,c as formatPrice,S as formatVariantPrice,$ as getAlpcPath,f as languageTerritory,I as numberFormat};
1
+ import g from"js-cookie";import{PRICE_SYMBOL as a}from"./const";function $(e="",r){let n=!1;const t=g.get("alpcEU");return t===void 0||t===""?["de","eu-de","eu","eu-en","uk","fr","fra"].includes(e)&&(n=!0):Number(t)&&(n=!0),r?n?`${r}/api/multipass/alpc-eu`:`${r}/api/multipass/alpc`:n?"/api/multipass/alpc-eu":"/api/multipass/alpc"}function I(e=0,r){if(typeof Intl>"u")return e;const n=new Intl.NumberFormat(o(r||"")||r).format(e);return r&&["fr","eu-fr","fra"].includes(r)?n.replace(/[\u202f\u00a0]/g," "):n}const P=e=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e),o=e=>({us:"en-us",uk:"en-gb",ca:"en-ca",au:"en-au",nz:"en-nz",eu:"en-eu","eu-en":"en-eu",pl:"pl-pl",fr:"fr-fr","eu-fr":"fr-fr",fra:"fr-fr",de:"de-de","eu-de":"de-de",vn:"vi-vn",sg:"en-sg","ae-en":"en-ae",plus:"en-us",cl:"es-cl",es:"es-es",se:"en-se",dk:"en-dk",is:"en-is",no:"en-no",fi:"en-fi"})[e]||"";function c({amount:e,currencyCode:r,locale:n,maximumFractionDigits:t,minimumFractionDigits:u,removeTrailingZeros:f=!1}){let i=new Intl.NumberFormat(o(n)||n,{style:"currency",currency:r||"USD",minimumFractionDigits:t===0?0:u,maximumFractionDigits:t}).format(e);return["eu-de","eu-en","de","eu"].includes(n)&&(i=i?.toString()?.replace(/[\s]/g,"")),["fr","eu-fr","fra"].includes(n)&&(i=i?.toString()?.replace(/[\u202f\u00a0]/g," ")),f&&(i=i.replace(/(\.\d*?[1-9])0+\b/,"$1").replace(/\.0+\b/,"").replace(/(\,\d*?[1-9])0+\b/,"$1").replace(/\,0+\b/,"")),i}function S({amount:e,baseAmount:r,currencyCode:n,locale:t,maximumFractionDigits:u,minimumFractionDigits:f,removeTrailingZeros:s}){if(typeof Intl>"u")return{price:`${a[t]}${e}`,basePrice:`${a[t]}${r}`,discount:`${a[t]}${r-e||0}`};const i=r>e,p=new Intl.NumberFormat(o(t),{style:"percent"}),m=i?p.format((r-e)/r):null,l=c({amount:e,currencyCode:n,locale:t,removeTrailingZeros:s}),d=i?c({amount:r,currencyCode:n,locale:t,maximumFractionDigits:u,minimumFractionDigits:f,removeTrailingZeros:s}):void 0;return{price:l,basePrice:d,discount:m}}function k(e){return e?(typeof e=="number"?e.toString():e).replace("gid://shopify/ProductVariant/",""):null}export{P as emailValidate,k as extractVariantId,c as formatPrice,S as formatVariantPrice,$ as getAlpcPath,o as languageTerritory,I as numberFormat};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/context/utils.ts"],
4
- "sourcesContent": ["import Cookies from 'js-cookie'\nimport { PRICE_SYMBOL } from './const'\n\nexport function getAlpcPath(locale = '', apiBaseUrl?: string) {\n let isEU = false\n const alpcEUCookie = Cookies.get('alpcEU')\n if (alpcEUCookie === undefined || alpcEUCookie === '') {\n if (['de', 'eu-de', 'eu', 'eu-en', 'uk', 'fr', 'fra'].includes(locale)) {\n isEU = true\n }\n } else {\n let alpcEU = Number(alpcEUCookie)\n if (alpcEU) {\n isEU = true\n }\n }\n\n // \u5982\u679C\u63D0\u4F9B\u4E86\u81EA\u5B9A\u4E49\u7684 apiBaseUrl\uFF0C\u62FC\u63A5\u5BF9\u5E94\u7684\u8DEF\u5F84\n if (apiBaseUrl) {\n return isEU ? `${apiBaseUrl}/api/multipass/alpc-eu` : `${apiBaseUrl}/api/multipass/alpc`\n }\n\n if (isEU) {\n return '/api/multipass/alpc-eu'\n }\n\n return '/api/multipass/alpc'\n}\n\nexport function numberFormat(num: number = 0) {\n if (typeof Intl === 'undefined') {\n return num\n }\n\n return new Intl.NumberFormat().format(num)\n}\n\nexport const emailValidate = (email: any) => {\n return /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n email\n )\n}\n\nexport const languageTerritory = (locale: string) =>\n // https://unicode-org.github.io/cldr-staging/charts/37/supplemental/language_territory_information.html\n ({\n us: 'en-us',\n uk: 'en-gb',\n ca: 'en-ca',\n au: 'en-au',\n nz: 'en-nz',\n eu: 'en-eu',\n pl: 'pl-pl',\n fr: 'fr-fr',\n 'eu-fr': 'fr-fr',\n fra: 'fr-fr',\n de: 'de-de',\n vn: 'vi-vn',\n sg: 'en-sg',\n 'ae-en': 'en-ae',\n plus: 'en-us',\n cl: 'es-cl',\n es: 'es-es',\n // Nordic countries\n se: 'en-se',\n dk: 'en-dk',\n is: 'en-is',\n no: 'en-no',\n fi: 'en-fi',\n })[locale] || ''\n\nexport function formatPrice({\n amount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros = false,\n}: {\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n}) {\n const formatCurrency = new Intl.NumberFormat(languageTerritory(locale) || locale, {\n style: 'currency',\n currency: currencyCode || 'USD',\n minimumFractionDigits: maximumFractionDigits === 0 ? 0 : minimumFractionDigits,\n maximumFractionDigits,\n })\n\n let formattedValue = formatCurrency.format(amount)\n\n if (['eu-de', 'eu-en', 'de', 'eu'].includes(locale)) {\n formattedValue = formattedValue?.toString()?.replace(/[\\s]/g, '')\n }\n\n if (['fr', 'eu-fr', 'fra'].includes(locale)) {\n // Intl \u8F93\u51FA\u7684\u5343\u4F4D\u5206\u9694\u7B26\u662F\u7A84\u4E0D\u6362\u884C\u7A7A\u683C(U+202F)/\u4E0D\u6362\u884C\u7A7A\u683C(U+00A0)\uFF0C\u7EDF\u4E00\u66FF\u6362\u4E3A\u666E\u901A\u7A7A\u683C\n formattedValue = formattedValue?.toString()?.replace(/[\\u202f\\u00a0]/g, ' ')\n }\n\n if (removeTrailingZeros) {\n // Adjust the regex to match comma as decimal separator\n formattedValue = formattedValue\n .replace(/(\\.\\d*?[1-9])0+\\b/, '$1')\n .replace(/\\.0+\\b/, '')\n .replace(/(\\,\\d*?[1-9])0+\\b/, '$1')\n .replace(/\\,0+\\b/, '')\n }\n\n return formattedValue\n}\n\nexport function formatVariantPrice({\n amount,\n baseAmount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros,\n}: {\n baseAmount: number\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n}) {\n if (typeof Intl === 'undefined') {\n return {\n price: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${amount}`,\n basePrice: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${baseAmount}`,\n discount: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${baseAmount - amount || 0}`,\n }\n }\n\n const hasDiscount = baseAmount > amount\n const formatDiscount = new Intl.NumberFormat(languageTerritory(locale), {\n style: 'percent',\n })\n const discount = hasDiscount ? formatDiscount.format((baseAmount - amount) / baseAmount) : null\n\n const price = formatPrice({ amount, currencyCode, locale, removeTrailingZeros })\n const basePrice = hasDiscount\n ? formatPrice({\n amount: baseAmount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros,\n })\n : undefined\n\n return { price, basePrice, discount }\n}\n\n/**\n * \u63D0\u53D6 variant id\uFF0C\u53BB\u6389 gid://shopify/ProductVariant/ \u524D\u7F00\n */\nexport function extractVariantId(id: string | number | undefined): string | null {\n if (!id) return null\n const idStr = typeof id === 'number' ? id.toString() : id\n return idStr.replace('gid://shopify/ProductVariant/', '')\n}\n"],
5
- "mappings": "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",
6
- "names": ["Cookies", "PRICE_SYMBOL", "getAlpcPath", "locale", "apiBaseUrl", "isEU", "alpcEUCookie", "numberFormat", "num", "emailValidate", "email", "languageTerritory", "formatPrice", "amount", "currencyCode", "maximumFractionDigits", "minimumFractionDigits", "removeTrailingZeros", "formattedValue", "formatVariantPrice", "baseAmount", "hasDiscount", "formatDiscount", "discount", "price", "basePrice", "extractVariantId", "id"]
4
+ "sourcesContent": ["import Cookies from 'js-cookie'\nimport { PRICE_SYMBOL } from './const'\n\nexport function getAlpcPath(locale = '', apiBaseUrl?: string) {\n let isEU = false\n const alpcEUCookie = Cookies.get('alpcEU')\n if (alpcEUCookie === undefined || alpcEUCookie === '') {\n if (['de', 'eu-de', 'eu', 'eu-en', 'uk', 'fr', 'fra'].includes(locale)) {\n isEU = true\n }\n } else {\n let alpcEU = Number(alpcEUCookie)\n if (alpcEU) {\n isEU = true\n }\n }\n\n // \u5982\u679C\u63D0\u4F9B\u4E86\u81EA\u5B9A\u4E49\u7684 apiBaseUrl\uFF0C\u62FC\u63A5\u5BF9\u5E94\u7684\u8DEF\u5F84\n if (apiBaseUrl) {\n return isEU ? `${apiBaseUrl}/api/multipass/alpc-eu` : `${apiBaseUrl}/api/multipass/alpc`\n }\n\n if (isEU) {\n return '/api/multipass/alpc-eu'\n }\n\n return '/api/multipass/alpc'\n}\n\nexport function numberFormat(num: number = 0, locale?: string) {\n if (typeof Intl === 'undefined') {\n return num\n }\n\n const formatted = new Intl.NumberFormat(languageTerritory(locale || '') || locale).format(num)\n\n if (locale && ['fr', 'eu-fr', 'fra'].includes(locale)) {\n return formatted.replace(/[\\u202f\\u00a0]/g, ' ')\n }\n\n return formatted\n}\n\nexport const emailValidate = (email: any) => {\n return /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n email\n )\n}\n\nexport const languageTerritory = (locale: string) =>\n // https://unicode-org.github.io/cldr-staging/charts/37/supplemental/language_territory_information.html\n ({\n us: 'en-us',\n uk: 'en-gb',\n ca: 'en-ca',\n au: 'en-au',\n nz: 'en-nz',\n eu: 'en-eu',\n 'eu-en': 'en-eu',\n pl: 'pl-pl',\n fr: 'fr-fr',\n 'eu-fr': 'fr-fr',\n fra: 'fr-fr',\n de: 'de-de',\n 'eu-de': 'de-de',\n vn: 'vi-vn',\n sg: 'en-sg',\n 'ae-en': 'en-ae',\n plus: 'en-us',\n cl: 'es-cl',\n es: 'es-es',\n // Nordic countries\n se: 'en-se',\n dk: 'en-dk',\n is: 'en-is',\n no: 'en-no',\n fi: 'en-fi',\n })[locale] || ''\n\nexport function formatPrice({\n amount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros = false,\n}: {\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n}) {\n const formatCurrency = new Intl.NumberFormat(languageTerritory(locale) || locale, {\n style: 'currency',\n currency: currencyCode || 'USD',\n minimumFractionDigits: maximumFractionDigits === 0 ? 0 : minimumFractionDigits,\n maximumFractionDigits,\n })\n\n let formattedValue = formatCurrency.format(amount)\n\n if (['eu-de', 'eu-en', 'de', 'eu'].includes(locale)) {\n formattedValue = formattedValue?.toString()?.replace(/[\\s]/g, '')\n }\n\n if (['fr', 'eu-fr', 'fra'].includes(locale)) {\n // Intl \u8F93\u51FA\u7684\u5343\u4F4D\u5206\u9694\u7B26\u662F\u7A84\u4E0D\u6362\u884C\u7A7A\u683C(U+202F)/\u4E0D\u6362\u884C\u7A7A\u683C(U+00A0)\uFF0C\u7EDF\u4E00\u66FF\u6362\u4E3A\u666E\u901A\u7A7A\u683C\n formattedValue = formattedValue?.toString()?.replace(/[\\u202f\\u00a0]/g, ' ')\n }\n\n if (removeTrailingZeros) {\n // Adjust the regex to match comma as decimal separator\n formattedValue = formattedValue\n .replace(/(\\.\\d*?[1-9])0+\\b/, '$1')\n .replace(/\\.0+\\b/, '')\n .replace(/(\\,\\d*?[1-9])0+\\b/, '$1')\n .replace(/\\,0+\\b/, '')\n }\n\n return formattedValue\n}\n\nexport function formatVariantPrice({\n amount,\n baseAmount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros,\n}: {\n baseAmount: number\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n}) {\n if (typeof Intl === 'undefined') {\n return {\n price: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${amount}`,\n basePrice: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${baseAmount}`,\n discount: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${baseAmount - amount || 0}`,\n }\n }\n\n const hasDiscount = baseAmount > amount\n const formatDiscount = new Intl.NumberFormat(languageTerritory(locale), {\n style: 'percent',\n })\n const discount = hasDiscount ? formatDiscount.format((baseAmount - amount) / baseAmount) : null\n\n const price = formatPrice({ amount, currencyCode, locale, removeTrailingZeros })\n const basePrice = hasDiscount\n ? formatPrice({\n amount: baseAmount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros,\n })\n : undefined\n\n return { price, basePrice, discount }\n}\n\n/**\n * \u63D0\u53D6 variant id\uFF0C\u53BB\u6389 gid://shopify/ProductVariant/ \u524D\u7F00\n */\nexport function extractVariantId(id: string | number | undefined): string | null {\n if (!id) return null\n const idStr = typeof id === 'number' ? id.toString() : id\n return idStr.replace('gid://shopify/ProductVariant/', '')\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Cookies", "PRICE_SYMBOL", "getAlpcPath", "locale", "apiBaseUrl", "isEU", "alpcEUCookie", "numberFormat", "num", "formatted", "languageTerritory", "emailValidate", "email", "formatPrice", "amount", "currencyCode", "maximumFractionDigits", "minimumFractionDigits", "removeTrailingZeros", "formattedValue", "formatVariantPrice", "baseAmount", "hasDiscount", "formatDiscount", "discount", "price", "basePrice", "extractVariantId", "id"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as d}from"react/jsx-runtime";import{Button as A,Text as x,Picture as N,Badge as L}from"@anker-in/headless-ui";import{useMemo as p,useState as B}from"react";import{useCreditsContext as P}from"../context/provider";import{useRedeemAndBuy as U}from"../context/hooks/useRedeemAndBuy";import{formatPrice as _,numberFormat as O,extractVariantId as S}from"../context/utils";import{gaTrack as V,classNames as s,useHeadlessContext as T}from"@anker-in/lib";import{useRegistration as H}from"../../../components/registration";import{ROUNDED_BRANDS as M}from"../../../constants";function G({copy:r,itemData:e,setRules:w,className:y}){const{creditInfo:g,profile:a,openSignUpPopup:R,pageCommon:c,gtm:{pageGroup:b,pageHandle:n}}=P(),{authCodeActivate:m}=H(),{brand:z,locale:o}=T(),v=M.includes(z),[h,C]=B(null),{trigger:$,isMutating:I}=U({},{onError:l=>{C(l.message)}}),i=p(()=>!!a,[a?.activated]),u=p(()=>i&&a?.activated&&e.alpcData?.consumeCredits>Number(g?.available_credit||0),[i,a?.activated,e.alpcData?.consumeCredits,g?.available_credit]),k=p(()=>!!(e.alpcData?.remainingInventory<=0&&e.alpcData?.isLimited||!e.productVariant?.availableForSale||u),[e.alpcData?.remainingInventory,e.alpcData?.isLimited,e.productVariant?.availableForSale,u]),E=()=>{C(null),i?!a?.activated&&!m.isActivateSuccess?(m.setAutoSendEmail(!0),m.open()):($({productVariant:e?.productVariant,redeemId:e?.config?.redeemId}),V({event:"ga4Event",event_name:"lp_button",member_active_status:a?.activated?"active":"not active",event_parameters:{page_group:b,position:r.title,button_name:f,info:e?.alpcData?.id?.toString()}})):R()},f=p(()=>e.productVariant?.availableForSale?i?r.btnRedeem:r.unlockRewards:r?.soldOut||"Sold Out",[i,e.productVariant?.availableForSale,r.btnRedeem,r.unlockRewards,r?.soldOut]),F=p(()=>{const l=o==="us"?"":`/${o}`;return S(e.productVariant?.id)?`${l}/products/${e.product.handle}?variant=${S(e.productVariant?.id)}${n?`&ref=${n}`:""}`:`${l}/products/${e.product.handle}${n?`?ref=${n}`:""}`},[e.productVariant?.id,e.product.handle,n,o]);return d("div",{className:s("relative flex flex-col items-center rounded-[16px] bg-[#EAEAEC] md:rounded-[12px] px-[24px] pb-[24px] l:px-[8px] l:pb-[8px] md-xl:px-[16px] md-xl:pb-[16px]",!v&&"rounded-none md:rounded-none",r.badgeLabel?"pt-[48px] l:pt-[44px]":"pt-[24px] md-xl:pt-[16px] l:pt-[8px]",y),children:[r.badgeLabel&&t(L,{className:"absolute left-[24px] l:left-[16px] !bg-gradient-brand top-[16px] z-10",size:"lg",variant:"promotional",promotionalType:"regular-member",children:r.badgeLabel}),t("a",{href:F,className:s("relative mx-auto h-[196px] w-fit md:h-[120px] md-xxl:h-[138px]"),children:t(N,{className:"mx-auto h-full w-auto",imgClassName:"h-full object-contain",source:e?.config?.image?.url||e?.productVariant?.metafields?.global?.transparentImg||e?.productVariant?.image?.url})}),d("div",{className:s("mt-[10px] w-full xl:mt-[8px]"),children:[t(x,{html:e?.product?.title,title:e.config?.title||e.alpcData?.title||e.product?.title,size:2,className:"line-clamp-2 h-[58px] text-[24px] l-xxl:text-[20px] l:text-[16px] leading-[1.2] l:h-[38px] l-xxl:h-[48px]"}),e?.config?.rules?.split("<br>")?.length>0&&t("button",{type:"button",onClick:()=>{w(e?.config?.rules?.split("<br>")),V({event:"ga4Event",event_name:"lp_button",member_active_status:a?.activated?"active":"not active",event_parameters:{page_group:b,position:r.title,button_name:c?.ruleLabel,info:e?.alpcData?.id?.toString()}})},className:"mt-[8px] text-[16px] font-bold underline xxl:text-[14px]",tabIndex:0,onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&l.preventDefault()},children:c?.ruleLabel}),d("div",{className:"flex flex-wrap items-center l:mt-[12px] md:min-h-[46px] laptop:text-[16px] lg-desktop:text-[18px]",children:[t(N,{className:"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783"}),t(x,{html:`${O(e?.alpcData?.consumeCredits)} + ${_({amount:Number(e?.config?.price),currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:o})}`,size:2,as:"p",className:"ml-[4px] mt-[4px] font-bold leading-none text-[24px] l-xxl:text-[20px] l:text-[16px]"}),t(x,{html:_({amount:e?.productVariant?.price.amount,currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:o}),className:"l-xxl:text-[20px] mt-[4px] l:text-[16px] ml-[4px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through",as:"p"})]}),d("div",{className:"group relative w-full mt-[8px]",children:[t(A,{disabled:k,variant:"primary",size:"lg",className:"mt-[8px] md:px-[10px] l:w-full",loading:I,onClick:()=>{E()},title:u?c.insufficientCredits:f,children:f}),t("div",{className:s("absolute -bottom-[20px] left-0 z-10 w-[300px] translate-y-full opacity-0 transition-opacity group-hover:opacity-100 md:-bottom-[14px] md:w-[160px]",u?"block":"hidden"),children:d("div",{className:s("relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]",!v&&"rounded-none"),children:[t(x,{as:"p",size:"2",html:c?.insufficientCredits,className:"text-[14px]"}),t("div",{className:"absolute -top-[10px] left-[48px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]"})]})})]})]}),h&&t("div",{className:"mt-[8px] text-[14px] text-[#FF0000]",children:h})]})}var te=G;export{te as default};
1
+ import{jsx as t,jsxs as d}from"react/jsx-runtime";import{Button as A,Text as x,Picture as N,Badge as L}from"@anker-in/headless-ui";import{useMemo as p,useState as B}from"react";import{useCreditsContext as P}from"../context/provider";import{useRedeemAndBuy as U}from"../context/hooks/useRedeemAndBuy";import{formatPrice as _,numberFormat as O,extractVariantId as S}from"../context/utils";import{gaTrack as V,classNames as s,useHeadlessContext as T}from"@anker-in/lib";import{useRegistration as H}from"../../../components/registration";import{ROUNDED_BRANDS as M}from"../../../constants";function G({copy:r,itemData:e,setRules:w,className:y}){const{creditInfo:g,profile:a,openSignUpPopup:R,pageCommon:c,gtm:{pageGroup:b,pageHandle:o}}=P(),{authCodeActivate:m}=H(),{brand:z,locale:n}=T(),v=M.includes(z),[h,C]=B(null),{trigger:$,isMutating:I}=U({},{onError:l=>{C(l.message)}}),i=p(()=>!!a,[a?.activated]),u=p(()=>i&&a?.activated&&e.alpcData?.consumeCredits>Number(g?.available_credit||0),[i,a?.activated,e.alpcData?.consumeCredits,g?.available_credit]),k=p(()=>!!(e.alpcData?.remainingInventory<=0&&e.alpcData?.isLimited||!e.productVariant?.availableForSale||u),[e.alpcData?.remainingInventory,e.alpcData?.isLimited,e.productVariant?.availableForSale,u]),E=()=>{C(null),i?!a?.activated&&!m.isActivateSuccess?(m.setAutoSendEmail(!0),m.open()):($({productVariant:e?.productVariant,redeemId:e?.config?.redeemId}),V({event:"ga4Event",event_name:"lp_button",member_active_status:a?.activated?"active":"not active",event_parameters:{page_group:b,position:r.title,button_name:f,info:e?.alpcData?.id?.toString()}})):R()},f=p(()=>e.productVariant?.availableForSale?i?r.btnRedeem:r.unlockRewards:r?.soldOut||"Sold Out",[i,e.productVariant?.availableForSale,r.btnRedeem,r.unlockRewards,r?.soldOut]),F=p(()=>{const l=n==="us"?"":`/${n}`;return S(e.productVariant?.id)?`${l}/products/${e.product.handle}?variant=${S(e.productVariant?.id)}${o?`&ref=${o}`:""}`:`${l}/products/${e.product.handle}${o?`?ref=${o}`:""}`},[e.productVariant?.id,e.product.handle,o,n]);return d("div",{className:s("relative flex flex-col items-center rounded-[16px] bg-[#EAEAEC] md:rounded-[12px] px-[24px] pb-[24px] l:px-[8px] l:pb-[8px] md-xl:px-[16px] md-xl:pb-[16px]",!v&&"rounded-none md:rounded-none",r.badgeLabel?"pt-[48px] l:pt-[44px]":"pt-[24px] md-xl:pt-[16px] l:pt-[8px]",y),children:[r.badgeLabel&&t(L,{className:"absolute left-[24px] l:left-[16px] !bg-gradient-brand top-[16px] z-10",size:"lg",variant:"promotional",promotionalType:"regular-member",children:r.badgeLabel}),t("a",{href:F,className:s("relative mx-auto h-[196px] w-fit md:h-[120px] md-xxl:h-[138px]"),children:t(N,{className:"mx-auto h-full w-auto",imgClassName:"h-full object-contain",source:e?.config?.image?.url||e?.productVariant?.metafields?.global?.transparentImg||e?.productVariant?.image?.url})}),d("div",{className:s("mt-[10px] w-full xl:mt-[8px]"),children:[t(x,{html:e?.product?.title,title:e.config?.title||e.alpcData?.title||e.product?.title,size:2,className:"line-clamp-2 h-[58px] text-[24px] l-xxl:text-[20px] l:text-[16px] leading-[1.2] l:h-[38px] l-xxl:h-[48px]"}),e?.config?.rules?.split("<br>")?.length>0&&t("button",{type:"button",onClick:()=>{w(e?.config?.rules?.split("<br>")),V({event:"ga4Event",event_name:"lp_button",member_active_status:a?.activated?"active":"not active",event_parameters:{page_group:b,position:r.title,button_name:c?.ruleLabel,info:e?.alpcData?.id?.toString()}})},className:"mt-[8px] text-[16px] font-bold underline xxl:text-[14px]",tabIndex:0,onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&l.preventDefault()},children:c?.ruleLabel}),d("div",{className:"flex flex-wrap items-center l:mt-[12px] md:min-h-[46px] laptop:text-[16px] lg-desktop:text-[18px]",children:[t(N,{className:"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783"}),t(x,{html:`${O(e?.alpcData?.consumeCredits,n)} + ${_({amount:Number(e?.config?.price),currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:n})}`,size:2,as:"p",className:"ml-[4px] mt-[4px] font-bold leading-none text-[24px] l-xxl:text-[20px] l:text-[16px]"}),t(x,{html:_({amount:e?.productVariant?.price.amount,currencyCode:e?.productVariant?.price.currencyCode||"USD",locale:n}),className:"l-xxl:text-[20px] mt-[4px] l:text-[16px] ml-[4px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through",as:"p"})]}),d("div",{className:"group relative w-full mt-[8px]",children:[t(A,{disabled:k,variant:"primary",size:"lg",className:"mt-[8px] md:px-[10px] l:w-full",loading:I,onClick:()=>{E()},title:u?c.insufficientCredits:f,children:f}),t("div",{className:s("absolute -bottom-[20px] left-0 z-10 w-[300px] translate-y-full opacity-0 transition-opacity group-hover:opacity-100 md:-bottom-[14px] md:w-[160px]",u?"block":"hidden"),children:d("div",{className:s("relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]",!v&&"rounded-none"),children:[t(x,{as:"p",size:"2",html:c?.insufficientCredits,className:"text-[14px]"}),t("div",{className:"absolute -top-[10px] left-[48px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]"})]})})]})]}),h&&t("div",{className:"mt-[8px] text-[14px] text-[#FF0000]",children:h})]})}var te=G;export{te as default};
2
2
  //# sourceMappingURL=RedeemableItem.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsCash/RedeemableItem.tsx"],
4
- "sourcesContent": ["import { Button, Text, Picture, Badge } from '@anker-in/headless-ui'\nimport { useMemo, useState } from 'react'\n\nimport { CreditsCashCopy, RedeemItem } from './type'\nimport { useCreditsContext } from '../context/provider'\nimport { useRedeemAndBuy } from '../context/hooks/useRedeemAndBuy'\nimport { formatPrice, numberFormat, extractVariantId } from '../context/utils'\nimport { gaTrack, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useRegistration } from '../../../components/registration'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nfunction RedeemableItem({\n copy,\n itemData,\n setRules,\n className,\n}: {\n copy: CreditsCashCopy\n itemData: RedeemItem\n className?: string\n setRules: (rules: string[]) => void\n currencyCode: string\n}) {\n const {\n creditInfo,\n profile,\n openSignUpPopup,\n pageCommon,\n gtm: { pageGroup, pageHandle },\n } = useCreditsContext()\n const { authCodeActivate } = useRegistration()\n const { brand, locale } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const [error, setError] = useState<string | null>(null)\n const { trigger, isMutating } = useRedeemAndBuy(\n {},\n {\n onError: error => {\n setError(error.message)\n },\n }\n )\n\n const isLogin = useMemo(() => {\n return !!profile\n }, [profile?.activated])\n\n const inSufficientCredit = useMemo(() => {\n return (\n isLogin && profile?.activated && itemData.alpcData?.consumeCredits > Number(creditInfo?.available_credit || 0)\n )\n }, [isLogin, profile?.activated, itemData.alpcData?.consumeCredits, creditInfo?.available_credit])\n\n const isDisabled = useMemo(() => {\n // \u5151\u6362\u9650\u5236\n if (itemData.alpcData?.remainingInventory <= 0 && itemData.alpcData?.isLimited) {\n return true\n }\n\n // \u5546\u54C1\u5E93\u5B58\u9650\u5236\n if (!itemData.productVariant?.availableForSale) {\n return true\n }\n\n // \u79EF\u5206\u4E0D\u8DB3\n if (inSufficientCredit) {\n return true\n }\n return false\n }, [\n itemData.alpcData?.remainingInventory,\n itemData.alpcData?.isLimited,\n itemData.productVariant?.availableForSale,\n inSufficientCredit,\n ])\n\n const handleRedeem = () => {\n setError(null)\n if (!isLogin) {\n openSignUpPopup()\n } else if (!profile?.activated && !authCodeActivate.isActivateSuccess) {\n authCodeActivate.setAutoSendEmail(true)\n authCodeActivate.open()\n } else {\n trigger({\n productVariant: itemData?.productVariant,\n redeemId: itemData?.config?.redeemId,\n })\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: redeemButtonText,\n info: itemData?.alpcData?.id?.toString(),\n },\n })\n }\n }\n\n const redeemButtonText = useMemo(() => {\n // \u7F3A\u8D27\u6587\u6848\n if (!itemData.productVariant?.availableForSale) {\n return copy?.soldOut || 'Sold Out'\n } else if (!isLogin) {\n return copy.unlockRewards\n } else {\n return copy.btnRedeem\n }\n }, [isLogin, itemData.productVariant?.availableForSale, copy.btnRedeem, copy.unlockRewards, copy?.soldOut])\n\n const productUrl = useMemo(() => {\n const localePrefix = locale === 'us' ? '' : `/${locale}`\n return extractVariantId(itemData.productVariant?.id)\n ? `${localePrefix}/products/${itemData.product.handle}?variant=${extractVariantId(itemData.productVariant?.id)}${pageHandle ? `&ref=${pageHandle}` : ''}`\n : `${localePrefix}/products/${itemData.product.handle}${pageHandle ? `?ref=${pageHandle}` : ''}`\n }, [itemData.productVariant?.id, itemData.product.handle, pageHandle, locale])\n\n return (\n <div\n className={cn(\n 'relative flex flex-col items-center rounded-[16px] bg-[#EAEAEC] md:rounded-[12px] px-[24px] pb-[24px] l:px-[8px] l:pb-[8px] md-xl:px-[16px] md-xl:pb-[16px]',\n !rounded && 'rounded-none md:rounded-none',\n copy.badgeLabel ? 'pt-[48px] l:pt-[44px]' : 'pt-[24px] md-xl:pt-[16px] l:pt-[8px]',\n className\n )}\n >\n {/* Redeem \u6807\u7B7E Badge */}\n {copy.badgeLabel && (\n <Badge\n className=\"absolute left-[24px] l:left-[16px] !bg-gradient-brand top-[16px] z-10\"\n size=\"lg\"\n variant=\"promotional\"\n promotionalType=\"regular-member\"\n >\n {copy.badgeLabel}\n </Badge>\n )}\n\n <a\n href={productUrl}\n className={cn('relative mx-auto h-[196px] w-fit md:h-[120px] md-xxl:h-[138px]')}\n >\n <Picture\n className=\"mx-auto h-full w-auto\"\n imgClassName=\"h-full object-contain\"\n source={\n itemData?.config?.image?.url ||\n itemData?.productVariant?.metafields?.global?.transparentImg ||\n itemData?.productVariant?.image?.url\n }\n ></Picture>\n </a>\n <div className={cn('mt-[10px] w-full xl:mt-[8px]')}>\n <Text\n html={itemData?.product?.title}\n title={itemData.config?.title || itemData.alpcData?.title || itemData.product?.title}\n size={2}\n className=\"line-clamp-2 h-[58px] text-[24px] l-xxl:text-[20px] l:text-[16px] leading-[1.2] l:h-[38px] l-xxl:h-[48px]\"\n />\n {itemData?.config?.rules?.split('<br>')?.length > 0 && (\n <button\n type=\"button\"\n onClick={() => {\n setRules(itemData?.config?.rules?.split('<br>'))\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: pageCommon?.ruleLabel,\n info: itemData?.alpcData?.id?.toString(),\n },\n })\n }}\n className=\"mt-[8px] text-[16px] font-bold underline xxl:text-[14px]\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {pageCommon?.ruleLabel}\n </button>\n )}\n\n <div className=\"flex flex-wrap items-center l:mt-[12px] md:min-h-[46px] laptop:text-[16px] lg-desktop:text-[18px]\">\n <Picture\n className=\"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]\"\n source=\"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783\"\n />\n <Text\n html={`${numberFormat(itemData?.alpcData?.consumeCredits)} + ${formatPrice({\n amount: Number(itemData?.config?.price),\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}`}\n size={2}\n as=\"p\"\n className=\"ml-[4px] mt-[4px] font-bold leading-none text-[24px] l-xxl:text-[20px] l:text-[16px]\"\n />\n <Text\n html={formatPrice({\n amount: itemData?.productVariant?.price.amount,\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}\n className=\"l-xxl:text-[20px] mt-[4px] l:text-[16px] ml-[4px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through\"\n as=\"p\"\n />\n </div>\n\n <div className=\"group relative w-full mt-[8px]\">\n <Button\n disabled={isDisabled}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[8px] md:px-[10px] l:w-full\"\n loading={isMutating}\n onClick={() => {\n handleRedeem()\n }}\n title={inSufficientCredit ? pageCommon.insufficientCredits : redeemButtonText}\n >\n {redeemButtonText}\n </Button>\n <div\n className={cn(\n 'absolute -bottom-[20px] left-0 z-10 w-[300px] translate-y-full opacity-0 transition-opacity group-hover:opacity-100 md:-bottom-[14px] md:w-[160px]',\n inSufficientCredit ? 'block' : 'hidden'\n )}\n >\n <div\n className={cn(\n 'relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]',\n !rounded && 'rounded-none'\n )}\n >\n <Text as=\"p\" size=\"2\" html={pageCommon?.insufficientCredits} className=\"text-[14px]\" />\n <div className=\"absolute -top-[10px] left-[48px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]\" />\n </div>\n </div>\n </div>\n </div>\n {error && <div className=\"mt-[8px] text-[14px] text-[#FF0000]\">{error}</div>}\n </div>\n )\n}\n\nexport default RedeemableItem\n"],
5
- "mappings": "AAmIQ,cAAAA,EA4DA,QAAAC,MA5DA,oBAnIR,OAAS,UAAAC,EAAQ,QAAAC,EAAM,WAAAC,EAAS,SAAAC,MAAa,wBAC7C,OAAS,WAAAC,EAAS,YAAAC,MAAgB,QAGlC,OAAS,qBAAAC,MAAyB,sBAClC,OAAS,mBAAAC,MAAuB,mCAChC,OAAS,eAAAC,EAAa,gBAAAC,EAAc,oBAAAC,MAAwB,mBAC5D,OAAS,WAAAC,EAAS,cAAcC,EAAI,sBAAAC,MAA0B,gBAC9D,OAAS,mBAAAC,MAAuB,mCAChC,OAAS,kBAAAC,MAAsB,qBAE/B,SAASC,EAAe,CACtB,KAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,CACF,EAMG,CACD,KAAM,CACJ,WAAAC,EACA,QAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,IAAK,CAAE,UAAAC,EAAW,WAAAC,CAAW,CAC/B,EAAIpB,EAAkB,EAChB,CAAE,iBAAAqB,CAAiB,EAAIb,EAAgB,EACvC,CAAE,MAAAc,EAAO,OAAAC,CAAO,EAAIhB,EAAmB,EACvCiB,EAAUf,EAAe,SAASa,CAAK,EACvC,CAACG,EAAOC,CAAQ,EAAI3B,EAAwB,IAAI,EAChD,CAAE,QAAA4B,EAAS,WAAAC,CAAW,EAAI3B,EAC9B,CAAC,EACD,CACE,QAASwB,GAAS,CAChBC,EAASD,EAAM,OAAO,CACxB,CACF,CACF,EAEMI,EAAU/B,EAAQ,IACf,CAAC,CAACkB,EACR,CAACA,GAAS,SAAS,CAAC,EAEjBc,EAAqBhC,EAAQ,IAE/B+B,GAAWb,GAAS,WAAaJ,EAAS,UAAU,eAAiB,OAAOG,GAAY,kBAAoB,CAAC,EAE9G,CAACc,EAASb,GAAS,UAAWJ,EAAS,UAAU,eAAgBG,GAAY,gBAAgB,CAAC,EAE3FgB,EAAajC,EAAQ,IAErB,GAAAc,EAAS,UAAU,oBAAsB,GAAKA,EAAS,UAAU,WAKjE,CAACA,EAAS,gBAAgB,kBAK1BkB,GAIH,CACDlB,EAAS,UAAU,mBACnBA,EAAS,UAAU,UACnBA,EAAS,gBAAgB,iBACzBkB,CACF,CAAC,EAEKE,EAAe,IAAM,CACzBN,EAAS,IAAI,EACRG,EAEM,CAACb,GAAS,WAAa,CAACK,EAAiB,mBAClDA,EAAiB,iBAAiB,EAAI,EACtCA,EAAiB,KAAK,IAEtBM,EAAQ,CACN,eAAgBf,GAAU,eAC1B,SAAUA,GAAU,QAAQ,QAC9B,CAAC,EACDP,EAAQ,CACN,MAAO,WACP,WAAY,YACZ,qBAAsBW,GAAS,UAAY,SAAW,aACtD,iBAAkB,CAChB,WAAYG,EACZ,SAAUR,EAAK,MACf,YAAasB,EACb,KAAMrB,GAAU,UAAU,IAAI,SAAS,CACzC,CACF,CAAC,GAnBDK,EAAgB,CAqBpB,EAEMgB,EAAmBnC,EAAQ,IAE1Bc,EAAS,gBAAgB,iBAElBiB,EAGHlB,EAAK,UAFLA,EAAK,cAFLA,GAAM,SAAW,WAMzB,CAACkB,EAASjB,EAAS,gBAAgB,iBAAkBD,EAAK,UAAWA,EAAK,cAAeA,GAAM,OAAO,CAAC,EAEpGuB,EAAapC,EAAQ,IAAM,CAC/B,MAAMqC,EAAeZ,IAAW,KAAO,GAAK,IAAIA,CAAM,GACtD,OAAOnB,EAAiBQ,EAAS,gBAAgB,EAAE,EAC/C,GAAGuB,CAAY,aAAavB,EAAS,QAAQ,MAAM,YAAYR,EAAiBQ,EAAS,gBAAgB,EAAE,CAAC,GAAGQ,EAAa,QAAQA,CAAU,GAAK,EAAE,GACrJ,GAAGe,CAAY,aAAavB,EAAS,QAAQ,MAAM,GAAGQ,EAAa,QAAQA,CAAU,GAAK,EAAE,EAClG,EAAG,CAACR,EAAS,gBAAgB,GAAIA,EAAS,QAAQ,OAAQQ,EAAYG,CAAM,CAAC,EAE7E,OACE9B,EAAC,OACC,UAAWa,EACT,8JACA,CAACkB,GAAW,+BACZb,EAAK,WAAa,wBAA0B,uCAC5CG,CACF,EAGC,UAAAH,EAAK,YACJnB,EAACK,EAAA,CACC,UAAU,wEACV,KAAK,KACL,QAAQ,cACR,gBAAgB,iBAEf,SAAAc,EAAK,WACR,EAGFnB,EAAC,KACC,KAAM0C,EACN,UAAW5B,EAAG,gEAAgE,EAE9E,SAAAd,EAACI,EAAA,CACC,UAAU,wBACV,aAAa,wBACb,OACEgB,GAAU,QAAQ,OAAO,KACzBA,GAAU,gBAAgB,YAAY,QAAQ,gBAC9CA,GAAU,gBAAgB,OAAO,IAEpC,EACH,EACAnB,EAAC,OAAI,UAAWa,EAAG,8BAA8B,EAC/C,UAAAd,EAACG,EAAA,CACC,KAAMiB,GAAU,SAAS,MACzB,MAAOA,EAAS,QAAQ,OAASA,EAAS,UAAU,OAASA,EAAS,SAAS,MAC/E,KAAM,EACN,UAAU,4GACZ,EACCA,GAAU,QAAQ,OAAO,MAAM,MAAM,GAAG,OAAS,GAChDpB,EAAC,UACC,KAAK,SACL,QAAS,IAAM,CACbqB,EAASD,GAAU,QAAQ,OAAO,MAAM,MAAM,CAAC,EAC/CP,EAAQ,CACN,MAAO,WACP,WAAY,YACZ,qBAAsBW,GAAS,UAAY,SAAW,aACtD,iBAAkB,CAChB,WAAYG,EACZ,SAAUR,EAAK,MACf,YAAaO,GAAY,UACzB,KAAMN,GAAU,UAAU,IAAI,SAAS,CACzC,CACF,CAAC,CACH,EACA,UAAU,2DACV,SAAU,EACV,UAAWwB,GAAK,EACVA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,MACjCA,EAAE,eAAe,CAErB,EAEC,SAAAlB,GAAY,UACf,EAGFzB,EAAC,OAAI,UAAU,oGACb,UAAAD,EAACI,EAAA,CACC,UAAU,gEACV,OAAO,6FACT,EACAJ,EAACG,EAAA,CACC,KAAM,GAAGQ,EAAaS,GAAU,UAAU,cAAc,CAAC,MAAMV,EAAY,CACzE,OAAQ,OAAOU,GAAU,QAAQ,KAAK,EACtC,aAAcA,GAAU,gBAAgB,MAAM,cAAgB,MAC9D,OAAQW,CACV,CAAC,CAAC,GACF,KAAM,EACN,GAAG,IACH,UAAU,uFACZ,EACA/B,EAACG,EAAA,CACC,KAAMO,EAAY,CAChB,OAAQU,GAAU,gBAAgB,MAAM,OACxC,aAAcA,GAAU,gBAAgB,MAAM,cAAgB,MAC9D,OAAQW,CACV,CAAC,EACD,UAAU,0HACV,GAAG,IACL,GACF,EAEA9B,EAAC,OAAI,UAAU,iCACb,UAAAD,EAACE,EAAA,CACC,SAAUqC,EACV,QAAQ,UACR,KAAK,KACL,UAAU,iCACV,QAASH,EACT,QAAS,IAAM,CACbI,EAAa,CACf,EACA,MAAOF,EAAqBZ,EAAW,oBAAsBe,EAE5D,SAAAA,EACH,EACAzC,EAAC,OACC,UAAWc,EACT,qJACAwB,EAAqB,QAAU,QACjC,EAEA,SAAArC,EAAC,OACC,UAAWa,EACT,mHACA,CAACkB,GAAW,cACd,EAEA,UAAAhC,EAACG,EAAA,CAAK,GAAG,IAAI,KAAK,IAAI,KAAMuB,GAAY,oBAAqB,UAAU,cAAc,EACrF1B,EAAC,OAAI,UAAU,mHAAmH,GACpI,EACF,GACF,GACF,EACCiC,GAASjC,EAAC,OAAI,UAAU,sCAAuC,SAAAiC,EAAM,GACxE,CAEJ,CAEA,IAAOY,GAAQ3B",
4
+ "sourcesContent": ["import { Button, Text, Picture, Badge } from '@anker-in/headless-ui'\nimport { useMemo, useState } from 'react'\n\nimport { CreditsCashCopy, RedeemItem } from './type'\nimport { useCreditsContext } from '../context/provider'\nimport { useRedeemAndBuy } from '../context/hooks/useRedeemAndBuy'\nimport { formatPrice, numberFormat, extractVariantId } from '../context/utils'\nimport { gaTrack, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useRegistration } from '../../../components/registration'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nfunction RedeemableItem({\n copy,\n itemData,\n setRules,\n className,\n}: {\n copy: CreditsCashCopy\n itemData: RedeemItem\n className?: string\n setRules: (rules: string[]) => void\n currencyCode: string\n}) {\n const {\n creditInfo,\n profile,\n openSignUpPopup,\n pageCommon,\n gtm: { pageGroup, pageHandle },\n } = useCreditsContext()\n const { authCodeActivate } = useRegistration()\n const { brand, locale } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const [error, setError] = useState<string | null>(null)\n const { trigger, isMutating } = useRedeemAndBuy(\n {},\n {\n onError: error => {\n setError(error.message)\n },\n }\n )\n\n const isLogin = useMemo(() => {\n return !!profile\n }, [profile?.activated])\n\n const inSufficientCredit = useMemo(() => {\n return (\n isLogin && profile?.activated && itemData.alpcData?.consumeCredits > Number(creditInfo?.available_credit || 0)\n )\n }, [isLogin, profile?.activated, itemData.alpcData?.consumeCredits, creditInfo?.available_credit])\n\n const isDisabled = useMemo(() => {\n // \u5151\u6362\u9650\u5236\n if (itemData.alpcData?.remainingInventory <= 0 && itemData.alpcData?.isLimited) {\n return true\n }\n\n // \u5546\u54C1\u5E93\u5B58\u9650\u5236\n if (!itemData.productVariant?.availableForSale) {\n return true\n }\n\n // \u79EF\u5206\u4E0D\u8DB3\n if (inSufficientCredit) {\n return true\n }\n return false\n }, [\n itemData.alpcData?.remainingInventory,\n itemData.alpcData?.isLimited,\n itemData.productVariant?.availableForSale,\n inSufficientCredit,\n ])\n\n const handleRedeem = () => {\n setError(null)\n if (!isLogin) {\n openSignUpPopup()\n } else if (!profile?.activated && !authCodeActivate.isActivateSuccess) {\n authCodeActivate.setAutoSendEmail(true)\n authCodeActivate.open()\n } else {\n trigger({\n productVariant: itemData?.productVariant,\n redeemId: itemData?.config?.redeemId,\n })\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: redeemButtonText,\n info: itemData?.alpcData?.id?.toString(),\n },\n })\n }\n }\n\n const redeemButtonText = useMemo(() => {\n // \u7F3A\u8D27\u6587\u6848\n if (!itemData.productVariant?.availableForSale) {\n return copy?.soldOut || 'Sold Out'\n } else if (!isLogin) {\n return copy.unlockRewards\n } else {\n return copy.btnRedeem\n }\n }, [isLogin, itemData.productVariant?.availableForSale, copy.btnRedeem, copy.unlockRewards, copy?.soldOut])\n\n const productUrl = useMemo(() => {\n const localePrefix = locale === 'us' ? '' : `/${locale}`\n return extractVariantId(itemData.productVariant?.id)\n ? `${localePrefix}/products/${itemData.product.handle}?variant=${extractVariantId(itemData.productVariant?.id)}${pageHandle ? `&ref=${pageHandle}` : ''}`\n : `${localePrefix}/products/${itemData.product.handle}${pageHandle ? `?ref=${pageHandle}` : ''}`\n }, [itemData.productVariant?.id, itemData.product.handle, pageHandle, locale])\n\n return (\n <div\n className={cn(\n 'relative flex flex-col items-center rounded-[16px] bg-[#EAEAEC] md:rounded-[12px] px-[24px] pb-[24px] l:px-[8px] l:pb-[8px] md-xl:px-[16px] md-xl:pb-[16px]',\n !rounded && 'rounded-none md:rounded-none',\n copy.badgeLabel ? 'pt-[48px] l:pt-[44px]' : 'pt-[24px] md-xl:pt-[16px] l:pt-[8px]',\n className\n )}\n >\n {/* Redeem \u6807\u7B7E Badge */}\n {copy.badgeLabel && (\n <Badge\n className=\"absolute left-[24px] l:left-[16px] !bg-gradient-brand top-[16px] z-10\"\n size=\"lg\"\n variant=\"promotional\"\n promotionalType=\"regular-member\"\n >\n {copy.badgeLabel}\n </Badge>\n )}\n\n <a\n href={productUrl}\n className={cn('relative mx-auto h-[196px] w-fit md:h-[120px] md-xxl:h-[138px]')}\n >\n <Picture\n className=\"mx-auto h-full w-auto\"\n imgClassName=\"h-full object-contain\"\n source={\n itemData?.config?.image?.url ||\n itemData?.productVariant?.metafields?.global?.transparentImg ||\n itemData?.productVariant?.image?.url\n }\n ></Picture>\n </a>\n <div className={cn('mt-[10px] w-full xl:mt-[8px]')}>\n <Text\n html={itemData?.product?.title}\n title={itemData.config?.title || itemData.alpcData?.title || itemData.product?.title}\n size={2}\n className=\"line-clamp-2 h-[58px] text-[24px] l-xxl:text-[20px] l:text-[16px] leading-[1.2] l:h-[38px] l-xxl:h-[48px]\"\n />\n {itemData?.config?.rules?.split('<br>')?.length > 0 && (\n <button\n type=\"button\"\n onClick={() => {\n setRules(itemData?.config?.rules?.split('<br>'))\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: pageCommon?.ruleLabel,\n info: itemData?.alpcData?.id?.toString(),\n },\n })\n }}\n className=\"mt-[8px] text-[16px] font-bold underline xxl:text-[14px]\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {pageCommon?.ruleLabel}\n </button>\n )}\n\n <div className=\"flex flex-wrap items-center l:mt-[12px] md:min-h-[46px] laptop:text-[16px] lg-desktop:text-[18px]\">\n <Picture\n className=\"size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]\"\n source=\"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783\"\n />\n <Text\n html={`${numberFormat(itemData?.alpcData?.consumeCredits, locale)} + ${formatPrice({\n amount: Number(itemData?.config?.price),\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}`}\n size={2}\n as=\"p\"\n className=\"ml-[4px] mt-[4px] font-bold leading-none text-[24px] l-xxl:text-[20px] l:text-[16px]\"\n />\n <Text\n html={formatPrice({\n amount: itemData?.productVariant?.price.amount,\n currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',\n locale: locale,\n })}\n className=\"l-xxl:text-[20px] mt-[4px] l:text-[16px] ml-[4px] font-bold leading-[1.2] tracking-[-0.8px] text-[#4A4C56] line-through\"\n as=\"p\"\n />\n </div>\n\n <div className=\"group relative w-full mt-[8px]\">\n <Button\n disabled={isDisabled}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[8px] md:px-[10px] l:w-full\"\n loading={isMutating}\n onClick={() => {\n handleRedeem()\n }}\n title={inSufficientCredit ? pageCommon.insufficientCredits : redeemButtonText}\n >\n {redeemButtonText}\n </Button>\n <div\n className={cn(\n 'absolute -bottom-[20px] left-0 z-10 w-[300px] translate-y-full opacity-0 transition-opacity group-hover:opacity-100 md:-bottom-[14px] md:w-[160px]',\n inSufficientCredit ? 'block' : 'hidden'\n )}\n >\n <div\n className={cn(\n 'relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]',\n !rounded && 'rounded-none'\n )}\n >\n <Text as=\"p\" size=\"2\" html={pageCommon?.insufficientCredits} className=\"text-[14px]\" />\n <div className=\"absolute -top-[10px] left-[48px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]\" />\n </div>\n </div>\n </div>\n </div>\n {error && <div className=\"mt-[8px] text-[14px] text-[#FF0000]\">{error}</div>}\n </div>\n )\n}\n\nexport default RedeemableItem\n"],
5
+ "mappings": "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",
6
6
  "names": ["jsx", "jsxs", "Button", "Text", "Picture", "Badge", "useMemo", "useState", "useCreditsContext", "useRedeemAndBuy", "formatPrice", "numberFormat", "extractVariantId", "gaTrack", "cn", "useHeadlessContext", "useRegistration", "ROUNDED_BRANDS", "RedeemableItem", "copy", "itemData", "setRules", "className", "creditInfo", "profile", "openSignUpPopup", "pageCommon", "pageGroup", "pageHandle", "authCodeActivate", "brand", "locale", "rounded", "error", "setError", "trigger", "isMutating", "isLogin", "inSufficientCredit", "isDisabled", "handleRedeem", "redeemButtonText", "productUrl", "localePrefix", "e", "RedeemableItem_default"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Button as g,Container as N,Text as r}from"@anker-in/headless-ui";import{useCallback as C,useState as w}from"react";import{useCreditsContext as y}from"../context/provider";import{numberFormat as b}from"../context/utils";import{gaNormalClick as k,classNames as t,useHeadlessContext as h}from"@anker-in/lib";import{ROUNDED_BRANDS as D}from"../../../constants";function F({copy:l,id:f}){const[n,s]=w(!1),{creditInfo:o,pageCommon:d,setOpenMyRewardsModal:p,setOpenActivitiesModal:m}=y(),{brand:v}=h(),x=D.includes(v),u=C(a=>{if(k({position:"info_card",label:a.text}),a.type)switch(a.type){case"activities":m(!0);break;case"rewards":p(!0);break}},[m,p]);return i(N,{asChild:!0,id:f,className:"-mb-[86px] -translate-y-[86px] x:-mb-[30px] x:-translate-y-[30px]",children:[i("div",{className:t("mx-auto flex justify-between items-center rounded-[12px] border border-white px-[24px] py-[40px]","l:flex-col l:items-start","min-l:px-[48px]","min-xl:px-[100px]",!x&&"rounded-none"),style:{background:"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%)",backdropFilter:"blur(8px)"},children:[i("div",{className:t("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"),children:[i("div",{className:"mr-[80px] md:mr-[0] md:flex-1 md-xl:mr-[64px]",children:[e("div",{className:t("mb-[24px] text-[14px] font-bold l:mb-[6px] xl:text-[16px] min-md:text-[18px] l-xl:mb-[16px]"),children:l.balanceLabel}),i("div",{className:"flex items-baseline",children:[e("div",{className:t("mr-[8px] text-[36px] font-extrabold text-brand-color-1","min-md:text-[44px]","min-xl:text-[56px]"),children:o?b(o.available_credit):0}),e("div",{className:"text-[16px]",children:d?.pointUnit})]})]}),i("div",{className:"w-fit md:flex-1",children:[i("div",{className:t("mb-[24px] flex text-[18px] l:mb-[6px] l:text-[14px] l-xl:mb-[16px]"),children:[e(r,{className:"text-[14px] font-bold xl:text-[16px] min-md:text-[18px]",html:l.comingSoonLabel}),l.comingSoonTips&&i("div",{className:"group relative ml-[4px] flex cursor-pointer items-start",children:[e(r,{as:"div",html:d?.infoIcon,className:"size-[18px] cursor-pointer [&_svg]:size-full",onClick:()=>{n?s(!1):(s(!0),setTimeout(()=>{s(!1)},5e3))}}),e("div",{className:t("absolute -bottom-[12px] -left-[32px] z-10 w-[356px] translate-y-full md:w-[276px]",n?"block":"hidden"),children:i("div",{className:t("relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow",!x&&"rounded-none"),children:[e(r,{size:"2",html:l.comingSoonTips,className:"desktop:text-[18px]"}),e("div",{className:t("absolute -top-[10px] left-[40px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]",!x&&"rounded-none")})]})})]})]}),i("div",{className:"flex items-baseline ",children:[e("div",{className:t("mr-[8px] text-[36px] font-extrabold","min-l:text-[44px]","min-xl:text-[56px]"),children:o?b(o.pending_credit):0}),e("div",{className:"text-[16px]",children:d?.pointUnit})]})]})]}),e("div",{className:t("grid w-fit md:w-full l:mt-[32px] l:gap-[12px] gap-[16px] l:pl-0 pl-[48px] md-l:grid-cols-2"),children:l.buttons?.map((a,c)=>e(g,{variant:c===0?"secondary":"primary",size:"lg",className:"min-w-[156px] laptop:min-w-[189px]",onClick:()=>{u(a)},children:a.text},c))})]}),n&&e("div",{role:"button",tabIndex:0,className:"fixed inset-0 z-10",onClick:()=>s(!1),onKeyDown:a=>a.key==="Escape"&&s(!1)})]})}export{F as CreditsInfoCard};
1
+ import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Button as N,Container as C,Text as r}from"@anker-in/headless-ui";import{useCallback as w,useState as y}from"react";import{useCreditsContext as k}from"../context/provider";import{numberFormat as f}from"../context/utils";import{gaNormalClick as h,classNames as t,useHeadlessContext as D}from"@anker-in/lib";import{ROUNDED_BRANDS as z}from"../../../constants";function L({copy:l,id:v}){const[n,s]=y(!1),{creditInfo:o,pageCommon:d,setOpenMyRewardsModal:p,setOpenActivitiesModal:m}=k(),{brand:u,locale:c}=D(),x=z.includes(u),g=w(a=>{if(h({position:"info_card",label:a.text}),a.type)switch(a.type){case"activities":m(!0);break;case"rewards":p(!0);break}},[m,p]);return i(C,{asChild:!0,id:v,className:"-mb-[86px] -translate-y-[86px] x:-mb-[30px] x:-translate-y-[30px]",children:[i("div",{className:t("mx-auto flex justify-between items-center rounded-[12px] border border-white px-[24px] py-[40px]","l:flex-col l:items-start","min-l:px-[48px]","min-xl:px-[100px]",!x&&"rounded-none"),style:{background:"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%)",backdropFilter:"blur(8px)"},children:[i("div",{className:t("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"),children:[i("div",{className:"mr-[80px] md:mr-[0] md:flex-1 md-xl:mr-[64px]",children:[e("div",{className:t("mb-[24px] text-[14px] font-bold l:mb-[6px] xl:text-[16px] min-md:text-[18px] l-xl:mb-[16px]"),children:l.balanceLabel}),i("div",{className:"flex items-baseline",children:[e("div",{className:t("mr-[8px] text-[36px] font-extrabold text-brand-color-1","min-md:text-[44px]","min-xl:text-[56px]"),children:o?f(o.available_credit,c):0}),e("div",{className:"text-[16px]",children:d?.pointUnit})]})]}),i("div",{className:"w-fit md:flex-1",children:[i("div",{className:t("mb-[24px] flex text-[18px] l:mb-[6px] l:text-[14px] l-xl:mb-[16px]"),children:[e(r,{className:"text-[14px] font-bold xl:text-[16px] min-md:text-[18px]",html:l.comingSoonLabel}),l.comingSoonTips&&i("div",{className:"group relative ml-[4px] flex cursor-pointer items-start",children:[e(r,{as:"div",html:d?.infoIcon,className:"size-[18px] cursor-pointer [&_svg]:size-full",onClick:()=>{n?s(!1):(s(!0),setTimeout(()=>{s(!1)},5e3))}}),e("div",{className:t("absolute -bottom-[12px] -left-[32px] z-10 w-[356px] translate-y-full md:w-[276px]",n?"block":"hidden"),children:i("div",{className:t("relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow",!x&&"rounded-none"),children:[e(r,{size:"2",html:l.comingSoonTips,className:"desktop:text-[18px]"}),e("div",{className:t("absolute -top-[10px] left-[40px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]",!x&&"rounded-none")})]})})]})]}),i("div",{className:"flex items-baseline ",children:[e("div",{className:t("mr-[8px] text-[36px] font-extrabold","min-l:text-[44px]","min-xl:text-[56px]"),children:o?f(o.pending_credit,c):0}),e("div",{className:"text-[16px]",children:d?.pointUnit})]})]})]}),e("div",{className:t("grid w-fit md:w-full l:mt-[32px] l:gap-[12px] gap-[16px] l:pl-0 pl-[48px] md-l:grid-cols-2"),children:l.buttons?.map((a,b)=>e(N,{variant:b===0?"secondary":"primary",size:"lg",className:"min-w-[156px] laptop:min-w-[189px]",onClick:()=>{g(a)},children:a.text},b))})]}),n&&e("div",{role:"button",tabIndex:0,className:"fixed inset-0 z-10",onClick:()=>s(!1),onKeyDown:a=>a.key==="Escape"&&s(!1)})]})}export{L as CreditsInfoCard};
2
2
  //# sourceMappingURL=index.js.map
@@ -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 { 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 [hover, setHover] = useState<boolean>(false)\n const { creditInfo, pageCommon, setOpenMyRewardsModal, setOpenActivitiesModal } = 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 setOpenActivitiesModal(true)\n break\n case 'rewards':\n setOpenMyRewardsModal(true)\n break\n }\n }\n }, [setOpenActivitiesModal, setOpenMyRewardsModal])\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\n className={cn(\n 'mr-[8px] text-[36px] font-extrabold text-brand-color-1',\n 'min-md:text-[44px]',\n 'min-xl:text-[56px]'\n )}\n >\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] gap-[16px] l:pl-0 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 </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": ["jsx", "jsxs", "Button", "Container", "Text", "useCallback", "useState", "useCreditsContext", "numberFormat", "gaNormalClick", "cn", "useHeadlessContext", "ROUNDED_BRANDS", "CreditsInfoCard", "copy", "id", "hover", "setHover", "creditInfo", "pageCommon", "setOpenMyRewardsModal", "setOpenActivitiesModal", "brand", "rounded", "handleButtonClick", "buttonConfig", "item", "index", "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 { 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 [hover, setHover] = useState<boolean>(false)\n const { creditInfo, pageCommon, setOpenMyRewardsModal, setOpenActivitiesModal } = useCreditsContext()\n const { brand, locale } = 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 setOpenActivitiesModal(true)\n break\n case 'rewards':\n setOpenMyRewardsModal(true)\n break\n }\n }\n }, [setOpenActivitiesModal, setOpenMyRewardsModal])\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\n className={cn(\n 'mr-[8px] text-[36px] font-extrabold text-brand-color-1',\n 'min-md:text-[44px]',\n 'min-xl:text-[56px]'\n )}\n >\n {creditInfo ? numberFormat(creditInfo.available_credit, locale) : 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, locale) : 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] gap-[16px] l:pl-0 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 </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": ["jsx", "jsxs", "Button", "Container", "Text", "useCallback", "useState", "useCreditsContext", "numberFormat", "gaNormalClick", "cn", "useHeadlessContext", "ROUNDED_BRANDS", "CreditsInfoCard", "copy", "id", "hover", "setHover", "creditInfo", "pageCommon", "setOpenMyRewardsModal", "setOpenActivitiesModal", "brand", "locale", "rounded", "handleButtonClick", "buttonConfig", "item", "index", "e"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Fragment as le,jsx as o,jsxs as A}from"react/jsx-runtime";import{Container as B,Heading as U,Tabs as V,TabsList as j,TabsTrigger as q}from"@anker-in/headless-ui";import v from"classnames";import{useCallback as J,useMemo as x,useState as y}from"react";import K from"./RedeemCouponModal";import Q from"./RedeemProductModal";import W from"./RedeemVirtualProductModal";import{useCreditsContext as X}from"../context/provider";import Y from"../context/hooks/useRedeemableList";import{AlpcConsumeType as E,AlpcErrorCode as Z,ConsumeType as l}from"../context/const";import{useHeadlessContext as ee,useProductsByHandles as te,gaTrack as re,classNames as M}from"@anker-in/lib";import{RedeemableItem as oe}from"./RedeemableItem";import{ROUNDED_BRANDS as ne}from"../../../constants";import ae from"../modal/RulesModal";import{useRegistration as ie}from"../../../components/registration";import{numberFormat as se}from"../context/utils";import de from"../context/hooks/useMyRewards";const ke=({copy:t,id:P})=>{const{profile:R,openSignUpPopup:G,gtm:{pageGroup:D},pageCommon:u,creditInfo:F}=X(),{authCodeActivate:c}=ie(),{brand:h}=ee(),T=ne.includes(h),m=Object.keys(R||{}).length>0,[g,O]=y(t.list?.[0]?.label||""),[n,p]=y(void 0),[f,L]=y(),{listLoading:w,redeemableList:N,getRedeemableList:S}=Y(),{myRewards:_}=de({page:1,pageSize:100,consumeType:E.ExternalProduct}),s=x(()=>({...u?.redeemModal||{},...t.redeemModal||{}}),[t.redeemModal,u?.redeemModal]),d=x(()=>N.map(e=>({id:e.id.toString(),title:e.name,consumeCredits:e.consume_credits,remainingInventory:e.remaining_inventory,isLimited:!!e.is_limited,consumeType:e.consume_type,handle:e.sku_handle,sku:e.goods_sku,image:e.goods_url})),[t.list,g,N]),H=d.map(e=>e.handle),{data:k}=te({handles:H}),$=x(()=>(t.list?.find(r=>r.label===g)?.list||[]).filter(r=>d.some(i=>String(i.id)===String(r.id))).map(r=>{const i=d.find(a=>String(a.id)===String(r.id)),C=k?.find(a=>a.handle===i?.handle),I=C?.variants.find(a=>a.sku===i?.sku);if(i?.isLimited&&(!i?.remainingInventory||i.remainingInventory<=0)||i?.consumeType===E.Product&&(!C||!I))return null;const z=r.type===l.GoGift&&m&&_.some(a=>a.rule_id===Number(r.id));return{alpc:d.find(a=>String(a.id)===String(r.id)),config:r,product:C,variant:I,hasRedeemed:z}}).filter(r=>r!==null),[d,k,m,_]),b=J(e=>{e===Z.CodeLpcRuleInventoryNotEnough&&S()},[S]);return A(B,{id:P,className:v("relative bg-[#F5F5F7]"),children:[o(U,{as:"h2",size:"4",html:t.title}),m&&t.availableCredits&&o("p",{className:"mt-[12px] text-[20px] l-xxl:text-[18px] l:text-[16px] font-bold text-[#4A4C56]",children:t.availableCredits.includes("$credits")?A(le,{children:[t.availableCredits.split("$credits")[0],o("span",{className:M("text-brand-color-0",h==="ankersolix"&&"bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-[43%] to-[#00db84] bg-clip-text text-transparent"),children:se(F?.available_credit||0).toString()}),t.availableCredits.split("$credits")[1]||""]}):t.availableCredits}),o(V,{shape:T?"rounded":"square",align:"left",className:v("py-[24px] md:justify-center"),value:g.toString(),onValueChange:e=>{O(e),re({event:"ga4Event",event_name:"lp_navigation",event_parameters:{navigation:e,page_group:D}})},children:o(j,{children:(t.list||[]).map(e=>o(q,{value:e.label,children:e.label},e.label))})}),!!d?.length&&!w&&o("div",{className:v("relative grid grid-cols-4 gap-[16px] md:grid-cols-2 md:gap-[12px] md-xl:grid-cols-3"),children:$?.map(e=>o(oe,{copy:t,item:e,onRedeem:r=>{m?!R?.activated&&!c.isActivateSuccess?(c.setAutoSendEmail(!0),c.open()):p(r):G()},onRulesOpen:L},e?.alpc?.id))}),(n?.config?.type===l.Coupon||n?.config?.type===l.ShippingCoupon)&&s?.coupon&&n&&o(K,{item:n,copy:s,onError:b,onClose:()=>{p(void 0)}}),n?.config?.type===l.Product&&s?.product&&n&&o(Q,{item:n,copy:s,onError:b,onClose:()=>{p(void 0)}}),(n?.config?.type===l.GiftCard||n?.config?.type===l.GoGift)&&s?.virtualProduct&&n&&o(W,{item:n,copy:s,onError:b,onClose:()=>{p(void 0)}}),f&&o(ae,{overlayClassName:"md:px-[16px] md:items-center",className:M("md:h-fit md:rounded-b-[16px]",!T&&"md:rounded-none"),isOpen:f.length>0,onClose:()=>L([]),titleClassName:"border-b-transparent h-[56px]",rules:f,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:u?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};export{ke as CreditsRedeemList};
1
+ import{Fragment as me,jsx as o,jsxs as A}from"react/jsx-runtime";import{Container as U,Heading as V,Tabs as j,TabsList as q,TabsTrigger as J}from"@anker-in/headless-ui";import v from"classnames";import{useCallback as K,useMemo as x,useState as y}from"react";import Q from"./RedeemCouponModal";import W from"./RedeemProductModal";import X from"./RedeemVirtualProductModal";import{useCreditsContext as Y}from"../context/provider";import Z from"../context/hooks/useRedeemableList";import{AlpcConsumeType as E,AlpcErrorCode as ee,ConsumeType as l}from"../context/const";import{useHeadlessContext as te,useProductsByHandles as re,gaTrack as oe,classNames as M}from"@anker-in/lib";import{RedeemableItem as ne}from"./RedeemableItem";import{ROUNDED_BRANDS as ae}from"../../../constants";import ie from"../modal/RulesModal";import{useRegistration as se}from"../../../components/registration";import{numberFormat as de}from"../context/utils";import le from"../context/hooks/useMyRewards";const Ie=({copy:t,id:P})=>{const{profile:R,openSignUpPopup:G,gtm:{pageGroup:D},pageCommon:u,creditInfo:F}=Y(),{authCodeActivate:c}=se(),{brand:h,locale:O}=te(),T=ae.includes(h),m=Object.keys(R||{}).length>0,[g,w]=y(t.list?.[0]?.label||""),[n,p]=y(void 0),[f,L]=y(),{listLoading:H,redeemableList:N,getRedeemableList:S}=Z(),{myRewards:_}=le({page:1,pageSize:100,consumeType:E.ExternalProduct}),s=x(()=>({...u?.redeemModal||{},...t.redeemModal||{}}),[t.redeemModal,u?.redeemModal]),d=x(()=>N.map(e=>({id:e.id.toString(),title:e.name,consumeCredits:e.consume_credits,remainingInventory:e.remaining_inventory,isLimited:!!e.is_limited,consumeType:e.consume_type,handle:e.sku_handle,sku:e.goods_sku,image:e.goods_url})),[t.list,g,N]),$=d.map(e=>e.handle),{data:k}=re({handles:$}),z=x(()=>(t.list?.find(r=>r.label===g)?.list||[]).filter(r=>d.some(i=>String(i.id)===String(r.id))).map(r=>{const i=d.find(a=>String(a.id)===String(r.id)),C=k?.find(a=>a.handle===i?.handle),I=C?.variants.find(a=>a.sku===i?.sku);if(i?.isLimited&&(!i?.remainingInventory||i.remainingInventory<=0)||i?.consumeType===E.Product&&(!C||!I))return null;const B=r.type===l.GoGift&&m&&_.some(a=>a.rule_id===Number(r.id));return{alpc:d.find(a=>String(a.id)===String(r.id)),config:r,product:C,variant:I,hasRedeemed:B}}).filter(r=>r!==null),[d,k,m,_]),b=K(e=>{e===ee.CodeLpcRuleInventoryNotEnough&&S()},[S]);return A(U,{id:P,className:v("relative bg-[#F5F5F7]"),children:[o(V,{as:"h2",size:"4",html:t.title}),m&&t.availableCredits&&o("p",{className:"mt-[12px] text-[20px] l-xxl:text-[18px] l:text-[16px] font-bold text-[#4A4C56]",children:t.availableCredits.includes("$credits")?A(me,{children:[t.availableCredits.split("$credits")[0],o("span",{className:M("text-brand-color-0",h==="ankersolix"&&"bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-[43%] to-[#00db84] bg-clip-text text-transparent"),children:de(F?.available_credit||0,O).toString()}),t.availableCredits.split("$credits")[1]||""]}):t.availableCredits}),o(j,{shape:T?"rounded":"square",align:"left",className:v("py-[24px] md:justify-center"),value:g.toString(),onValueChange:e=>{w(e),oe({event:"ga4Event",event_name:"lp_navigation",event_parameters:{navigation:e,page_group:D}})},children:o(q,{children:(t.list||[]).map(e=>o(J,{value:e.label,children:e.label},e.label))})}),!!d?.length&&!H&&o("div",{className:v("relative grid grid-cols-4 gap-[16px] md:grid-cols-2 md:gap-[12px] md-xl:grid-cols-3"),children:z?.map(e=>o(ne,{copy:t,item:e,onRedeem:r=>{m?!R?.activated&&!c.isActivateSuccess?(c.setAutoSendEmail(!0),c.open()):p(r):G()},onRulesOpen:L},e?.alpc?.id))}),(n?.config?.type===l.Coupon||n?.config?.type===l.ShippingCoupon)&&s?.coupon&&n&&o(Q,{item:n,copy:s,onError:b,onClose:()=>{p(void 0)}}),n?.config?.type===l.Product&&s?.product&&n&&o(W,{item:n,copy:s,onError:b,onClose:()=>{p(void 0)}}),(n?.config?.type===l.GiftCard||n?.config?.type===l.GoGift)&&s?.virtualProduct&&n&&o(X,{item:n,copy:s,onError:b,onClose:()=>{p(void 0)}}),f&&o(ie,{overlayClassName:"md:px-[16px] md:items-center",className:M("md:h-fit md:rounded-b-[16px]",!T&&"md:rounded-none"),isOpen:f.length>0,onClose:()=>L([]),titleClassName:"border-b-transparent h-[56px]",rules:f,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:u?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};export{Ie as CreditsRedeemList};
2
2
  //# sourceMappingURL=CreditsRedeemList.js.map