@anker-in/campaign-ui 0.2.10-beta.11 → 0.2.10-beta.13

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 (129) hide show
  1. package/dist/cjs/components/chat/chatContext.js +2 -0
  2. package/dist/cjs/components/chat/chatContext.js.map +7 -0
  3. package/dist/cjs/components/credits/context/hooks/useActivities.js +1 -1
  4. package/dist/cjs/components/credits/context/hooks/useActivities.js.map +3 -3
  5. package/dist/cjs/components/credits/context/hooks/useAddressValidate.js +1 -1
  6. package/dist/cjs/components/credits/context/hooks/useAddressValidate.js.map +3 -3
  7. package/dist/cjs/components/credits/context/hooks/useAlpcFetch.js +1 -1
  8. package/dist/cjs/components/credits/context/hooks/useAlpcFetch.js.map +3 -3
  9. package/dist/cjs/components/credits/context/hooks/useCountries.js +1 -1
  10. package/dist/cjs/components/credits/context/hooks/useCountries.js.map +3 -3
  11. package/dist/cjs/components/credits/context/hooks/useMyRewards.js +1 -1
  12. package/dist/cjs/components/credits/context/hooks/useMyRewards.js.map +3 -3
  13. package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.js +1 -1
  14. package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.js.map +3 -3
  15. package/dist/cjs/components/credits/context/hooks/useRedeemCoupon.js +1 -1
  16. package/dist/cjs/components/credits/context/hooks/useRedeemCoupon.js.map +3 -3
  17. package/dist/cjs/components/credits/context/hooks/useRedeemProduct.js +1 -1
  18. package/dist/cjs/components/credits/context/hooks/useRedeemProduct.js.map +3 -3
  19. package/dist/cjs/components/credits/context/hooks/useRedeemableList.js +1 -1
  20. package/dist/cjs/components/credits/context/hooks/useRedeemableList.js.map +3 -3
  21. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js +1 -1
  22. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js.map +3 -3
  23. package/dist/cjs/components/credits/context/hooks/useSubscribed.js +1 -1
  24. package/dist/cjs/components/credits/context/hooks/useSubscribed.js.map +3 -3
  25. package/dist/cjs/components/credits/context/hooks/useSubscriptions.js +1 -1
  26. package/dist/cjs/components/credits/context/hooks/useSubscriptions.js.map +3 -3
  27. package/dist/cjs/components/credits/creditsBanner/index.js +2 -0
  28. package/dist/cjs/components/credits/creditsBanner/index.js.map +7 -0
  29. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js +2 -0
  30. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js.map +7 -0
  31. package/dist/cjs/components/credits/creditsBenefits/iconInfo.js +2 -0
  32. package/dist/cjs/components/credits/creditsBenefits/iconInfo.js.map +7 -0
  33. package/dist/cjs/components/credits/creditsBenefits/index.js +4 -0
  34. package/dist/cjs/components/credits/creditsBenefits/index.js.map +7 -0
  35. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js +2 -0
  36. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js.map +7 -0
  37. package/dist/cjs/components/credits/creditsCash/index.js +2 -0
  38. package/dist/cjs/components/credits/creditsCash/index.js.map +7 -0
  39. package/dist/cjs/components/credits/creditsCash/type.js +2 -0
  40. package/dist/cjs/components/credits/creditsCash/type.js.map +7 -0
  41. package/dist/cjs/components/credits/creditsFaq/faqItem/FaqItem.js +2 -0
  42. package/dist/cjs/components/credits/creditsFaq/faqItem/FaqItem.js.map +7 -0
  43. package/dist/cjs/components/credits/creditsFaq/index.js +2 -0
  44. package/dist/cjs/components/credits/creditsFaq/index.js.map +7 -0
  45. package/dist/cjs/components/credits/creditsInfoCard/index.js +2 -0
  46. package/dist/cjs/components/credits/creditsInfoCard/index.js.map +7 -0
  47. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/CountrySelect.js +2 -0
  48. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/CountrySelect.js.map +7 -0
  49. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/FormItem.js +2 -0
  50. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/FormItem.js.map +7 -0
  51. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/Input.js +2 -0
  52. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/Input.js.map +7 -0
  53. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/StateSelect.js +2 -0
  54. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/StateSelect.js.map +7 -0
  55. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js +2 -0
  56. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js.map +7 -0
  57. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/type.js +2 -0
  58. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/type.js.map +7 -0
  59. package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js +2 -0
  60. package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js.map +7 -0
  61. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js +2 -0
  62. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +7 -0
  63. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Error.js +2 -0
  64. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Error.js.map +7 -0
  65. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Init.js +2 -0
  66. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Init.js.map +7 -0
  67. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +2 -0
  68. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +7 -0
  69. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js +2 -0
  70. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +7 -0
  71. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.js +2 -0
  72. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.js.map +7 -0
  73. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal.d.ts +62 -0
  74. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js +2 -0
  75. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js.map +7 -0
  76. package/dist/cjs/components/credits/creditsRedeemList/index.js +2 -0
  77. package/dist/cjs/components/credits/creditsRedeemList/index.js.map +7 -0
  78. package/dist/cjs/components/credits/creditsRedeemList/type.js +2 -0
  79. package/dist/cjs/components/credits/creditsRedeemList/type.js.map +7 -0
  80. package/dist/cjs/components/credits/creditsWaysToGetCredits/index.js +2 -0
  81. package/dist/cjs/components/credits/creditsWaysToGetCredits/index.js.map +7 -0
  82. package/dist/cjs/components/credits/creditsWaysToGetCredits/type.js +2 -0
  83. package/dist/cjs/components/credits/creditsWaysToGetCredits/type.js.map +7 -0
  84. package/dist/cjs/components/credits/creditsWaysToGetCredits/useActions.js +2 -0
  85. package/dist/cjs/components/credits/creditsWaysToGetCredits/useActions.js.map +7 -0
  86. package/dist/cjs/components/credits/modal/MyRewardsModal.d.ts +4 -1
  87. package/dist/cjs/components/credits/modal/MyRewardsModal.js +1 -1
  88. package/dist/cjs/components/credits/modal/MyRewardsModal.js.map +2 -2
  89. package/dist/cjs/components/credits/modal/activitiesModal.d.ts +4 -1
  90. package/dist/cjs/components/credits/modal/loadingDots.js +1 -1
  91. package/dist/cjs/components/credits/modal/loadingDots.js.map +2 -2
  92. package/dist/cjs/components/credits/type.js +1 -1
  93. package/dist/cjs/components/credits/type.js.map +1 -1
  94. package/dist/cjs/helpers/ssr-safe.d.ts +33 -0
  95. package/dist/cjs/helpers/track.d.ts +4 -0
  96. package/dist/cjs/index.css +387 -1
  97. package/dist/cjs/index.css.map +2 -2
  98. package/dist/cjs/index.js +67582 -566
  99. package/dist/cjs/index.js.map +4 -4
  100. package/dist/cjs/shopify/context/ShopifyProvider.d.ts +1 -1
  101. package/dist/cjs/shopify/context/index.d.ts +1 -1
  102. package/dist/cjs/shopify/fetchers/create-cart.d.ts +2 -1
  103. package/dist/cjs/shopify/hooks/index.d.ts +2 -2
  104. package/dist/cjs/shopify/hooks/useProductsByHandles.d.ts +1 -1
  105. package/dist/cjs/shopify/types/index.d.ts +0 -2
  106. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  107. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal.d.ts +62 -0
  108. package/dist/esm/components/credits/modal/MyRewardsModal.d.ts +4 -1
  109. package/dist/esm/components/credits/modal/MyRewardsModal.js +1 -1
  110. package/dist/esm/components/credits/modal/MyRewardsModal.js.map +2 -2
  111. package/dist/esm/components/credits/modal/activitiesModal.d.ts +4 -1
  112. package/dist/esm/helpers/ssr-safe.d.ts +33 -0
  113. package/dist/esm/helpers/track.d.ts +4 -0
  114. package/dist/esm/index.css +387 -1
  115. package/dist/esm/index.css.map +2 -2
  116. package/dist/esm/index.js +67576 -566
  117. package/dist/esm/index.js.map +4 -4
  118. package/dist/esm/shopify/context/ShopifyProvider.d.ts +1 -1
  119. package/dist/esm/shopify/context/index.d.ts +1 -1
  120. package/dist/esm/shopify/fetchers/create-cart.d.ts +2 -1
  121. package/dist/esm/shopify/hooks/index.d.ts +2 -2
  122. package/dist/esm/shopify/hooks/useProductsByHandles.d.ts +1 -1
  123. package/dist/esm/shopify/types/index.d.ts +0 -2
  124. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  125. package/package.json +3 -3
  126. package/src/components/credits/creditsInfoCard/index.tsx +2 -1
  127. package/src/components/credits/modal/MyRewardsModal.tsx +10 -2
  128. package/src/components/credits/modal/activitiesModal.tsx +9 -2
  129. package/src/helpers/track.ts +12 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/context/hooks/useSubscriptions.ts"],
4
- "sourcesContent": ["import { useRouter } from 'next/router'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport type { Subscription } from '../../type'\nimport fetcher from '../../../../helpers/fetcher'\n\nfunction useSubscriptions(email?: string) {\n const loading = useRef(false)\n const [subscriptionData, setSubscriptionData] = useState<Subscription>()\n const { locale } = useRouter()\n\n const fetchSubscription = useCallback(async () => {\n if (!email) {\n return\n }\n\n if (loading.current) {\n return\n }\n\n loading.current = true\n\n try {\n const response = await fetcher({\n method: 'GET',\n url: '/api/multipass/account/subscriptions',\n body: {\n email,\n },\n action: 'login',\n locale,\n headers: {},\n type: '',\n })\n\n if (response) {\n setSubscriptionData(response)\n }\n } catch (error) {\n console.error(error)\n } finally {\n loading.current = false\n }\n }, [email, locale, loading])\n\n useEffect(() => {\n fetchSubscription()\n }, [fetchSubscription])\n\n return {\n subscriptionData,\n }\n}\n\nexport default useSubscriptions\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA0B,uBAC1BC,EAAyD,iBAEzDC,EAAoB,0CAEpB,SAASC,EAAiBC,EAAgB,CACxC,MAAMC,KAAU,UAAO,EAAK,EACtB,CAACC,EAAkBC,CAAmB,KAAI,YAAuB,EACjE,CAAE,OAAAC,CAAO,KAAI,aAAU,EAEvBC,KAAoB,eAAY,SAAY,CAChD,GAAKL,GAID,CAAAC,EAAQ,QAIZ,CAAAA,EAAQ,QAAU,GAElB,GAAI,CACF,MAAMK,EAAW,QAAM,EAAAC,SAAQ,CAC7B,OAAQ,MACR,IAAK,uCACL,KAAM,CACJ,MAAAP,CACF,EACA,OAAQ,QACR,OAAAI,EACA,QAAS,CAAC,EACV,KAAM,EACR,CAAC,EAEGE,GACFH,EAAoBG,CAAQ,CAEhC,OAASE,EAAO,CACd,QAAQ,MAAMA,CAAK,CACrB,QAAE,CACAP,EAAQ,QAAU,EACpB,EACF,EAAG,CAACD,EAAOI,EAAQH,CAAO,CAAC,EAE3B,sBAAU,IAAM,CACdI,EAAkB,CACpB,EAAG,CAACA,CAAiB,CAAC,EAEf,CACL,iBAAAH,CACF,CACF,CAEA,IAAOR,EAAQK",
6
- "names": ["useSubscriptions_exports", "__export", "useSubscriptions_default", "__toCommonJS", "import_router", "import_react", "import_fetcher", "useSubscriptions", "email", "loading", "subscriptionData", "setSubscriptionData", "locale", "fetchSubscription", "response", "fetcher", "error"]
4
+ "sourcesContent": ["import { useCallback, useEffect, useRef, useState } from 'react'\nimport type { Subscription } from '../../type'\nimport fetcher from '../../../../helpers/fetcher'\nimport { useShopifyContext } from '@anker-in/shopify'\n\nfunction useSubscriptions(email?: string) {\n const loading = useRef(false)\n const [subscriptionData, setSubscriptionData] = useState<Subscription>()\n const { locale } = useShopifyContext()\n\n const fetchSubscription = useCallback(async () => {\n if (!email) {\n return\n }\n\n if (loading.current) {\n return\n }\n\n loading.current = true\n\n try {\n const response = await fetcher({\n method: 'GET',\n url: '/api/multipass/account/subscriptions',\n body: {\n email,\n },\n action: 'login',\n locale,\n headers: {},\n type: '',\n })\n\n if (response) {\n setSubscriptionData(response)\n }\n } catch (error) {\n console.error(error)\n } finally {\n loading.current = false\n }\n }, [email, locale, loading])\n\n useEffect(() => {\n fetchSubscription()\n }, [fetchSubscription])\n\n return {\n subscriptionData,\n }\n}\n\nexport default useSubscriptions\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyD,iBAEzDC,EAAoB,0CACpBC,EAAkC,6BAElC,SAASC,EAAiBC,EAAgB,CACxC,MAAMC,KAAU,UAAO,EAAK,EACtB,CAACC,EAAkBC,CAAmB,KAAI,YAAuB,EACjE,CAAE,OAAAC,CAAO,KAAI,qBAAkB,EAE/BC,KAAoB,eAAY,SAAY,CAChD,GAAKL,GAID,CAAAC,EAAQ,QAIZ,CAAAA,EAAQ,QAAU,GAElB,GAAI,CACF,MAAMK,EAAW,QAAM,EAAAC,SAAQ,CAC7B,OAAQ,MACR,IAAK,uCACL,KAAM,CACJ,MAAAP,CACF,EACA,OAAQ,QACR,OAAAI,EACA,QAAS,CAAC,EACV,KAAM,EACR,CAAC,EAEGE,GACFH,EAAoBG,CAAQ,CAEhC,OAASE,EAAO,CACd,QAAQ,MAAMA,CAAK,CACrB,QAAE,CACAP,EAAQ,QAAU,EACpB,EACF,EAAG,CAACD,EAAOI,EAAQH,CAAO,CAAC,EAE3B,sBAAU,IAAM,CACdI,EAAkB,CACpB,EAAG,CAACA,CAAiB,CAAC,EAEf,CACL,iBAAAH,CACF,CACF,CAEA,IAAOR,EAAQK",
6
+ "names": ["useSubscriptions_exports", "__export", "useSubscriptions_default", "__toCommonJS", "import_react", "import_fetcher", "import_shopify", "useSubscriptions", "email", "loading", "subscriptionData", "setSubscriptionData", "locale", "fetchSubscription", "response", "fetcher", "error"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var u=Object.create;var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var v=(t,i)=>{for(var a in i)r(t,a,{get:i[a],enumerable:!0})},m=(t,i,a,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of x(i))!h.call(t,n)&&n!==a&&r(t,n,{get:()=>i[n],enumerable:!(s=f(i,n))||s.enumerable});return t};var N=(t,i,a)=>(a=t!=null?u(I(t)):{},m(i||!t||!t.__esModule?r(a,"default",{value:t,enumerable:!0}):a,t)),C=t=>m(r({},"__esModule",{value:!0}),t);var b={};v(b,{CreditsBanner:()=>w});module.exports=C(b);var e=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),g=N(require("classnames")),p=require("../context/provider");function w({copy:t}){const{profile:i,openSignInPopup:a,openSignUpPopup:s}=(0,p.useCreditsContext)(),n=i?Object.keys(i).length!==0:!1,d=i?.first_name?i?.first_name+" "+i?.last_name:i?.email?.split("@")[0],o=c=>{c==="primary"?s():a()};return(0,e.jsx)(e.Fragment,{children:(0,e.jsxs)("div",{className:" relative w-full",children:[(0,e.jsx)(l.Picture,{className:"aspect-h-[804] aspect-w-[1920] md:aspect-h-[660] md:aspect-w-[390] md-l:aspect-h-[660] md-l:aspect-w-[768]",source:`${t.pcImg?.url}, ${t.laptopImg?.url} 1024, ${t.mobileImg?.url} 768`,alt:t.pcImg?.alt,loading:"eager"}),n&&(0,e.jsx)("div",{className:"absolute inset-0 ",style:{background:"linear-gradient(180deg, rgba(245, 245, 247, 0) 70.31%, #F5F5F7 100%)"}}),(0,e.jsx)(l.Container,{className:"l:h-auto !absolute inset-0 mx-auto grid h-full",asChild:!0,children:(0,e.jsx)("div",{className:"grid grid-cols-12",children:(0,e.jsxs)("div",{className:"l:col-span-12 l:justify-start l:pt-[64px] col-span-5 flex h-full flex-col justify-center text-[#1F2021]",children:[(0,e.jsx)(l.Heading,{as:"h1",size:"5",html:n?t.login.title?.replace("$name",d||""):t.unLogin.title}),(0,e.jsx)(l.Text,{size:"3",className:"l:mt-[4px] l-xxl:text-[14px] mt-[16px]",html:n?t.login.description:t.unLogin.description}),!n&&(0,e.jsxs)("div",{className:(0,g.default)("mt-[32px] grid w-fit grid-flow-col gap-[12px] l:mt-[24px]",n&&"hidden"),children:[(0,e.jsx)(l.Button,{variant:"secondary",size:"lg",onClick:()=>{o("primary")},children:t.joinNow}),(0,e.jsx)(l.Button,{variant:"primary",size:"lg",onClick:()=>{o("secondary")},children:t.loginIn})]})]})})})]})})}
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsBanner/index.tsx"],
4
+ "sourcesContent": ["import { Button, Container, Heading, Picture, Text } from '@anker-in/headless-ui'\nimport classNames from 'classnames'\nimport { useCreditsContext } from '../context/provider'\n\ntype Img = {\n url: string\n alt: string\n}\ntype BannerProps = {\n copy: {\n pcImg: Img\n laptopImg: Img\n mobileImg: Img\n joinNow: string\n loginIn: string\n login: {\n title: string\n description: string\n }\n unLogin: {\n title: string\n description: string\n }\n }\n}\n\nexport function CreditsBanner({ copy }: BannerProps) {\n const { profile, openSignInPopup, openSignUpPopup } = useCreditsContext()\n const isLogin = profile ? Object.keys(profile).length !== 0 : false\n\n const displayName = profile?.first_name\n ? profile?.first_name + ' ' + profile?.last_name\n : profile?.email?.split('@')[0]\n\n const handleButtonClick = (buttonType: 'primary' | 'secondary') => {\n buttonType === 'primary' ? openSignUpPopup() : openSignInPopup()\n }\n\n return (\n <>\n <div className=\" relative w-full\">\n <Picture\n className=\"aspect-h-[804] aspect-w-[1920] md:aspect-h-[660] md:aspect-w-[390] md-l:aspect-h-[660] md-l:aspect-w-[768]\"\n source={`${copy.pcImg?.url}, ${copy.laptopImg?.url} 1024, ${copy.mobileImg?.url} 768`}\n alt={copy.pcImg?.alt}\n loading=\"eager\"\n ></Picture>\n {isLogin && (\n <div\n className=\"absolute inset-0 \"\n style={{\n background: 'linear-gradient(180deg, rgba(245, 245, 247, 0) 70.31%, #F5F5F7 100%)',\n }}\n ></div>\n )}\n\n <Container className=\"l:h-auto !absolute inset-0 mx-auto grid h-full\" asChild>\n <div className=\"grid grid-cols-12\">\n <div className=\"l:col-span-12 l:justify-start l:pt-[64px] col-span-5 flex h-full flex-col justify-center text-[#1F2021]\">\n <Heading\n as=\"h1\"\n size=\"5\"\n html={isLogin ? copy.login.title?.replace('$name', displayName || '') : copy.unLogin.title}\n ></Heading>\n\n <Text\n size=\"3\"\n className=\"l:mt-[4px] l-xxl:text-[14px] mt-[16px]\"\n html={isLogin ? copy.login.description : copy.unLogin.description}\n ></Text>\n\n {!isLogin && (\n <div\n className={classNames(\n 'mt-[32px] grid w-fit grid-flow-col gap-[12px] l:mt-[24px]',\n isLogin && 'hidden'\n )}\n >\n <Button\n variant=\"secondary\"\n size=\"lg\"\n onClick={() => {\n handleButtonClick('primary')\n }}\n >\n {copy.joinNow}\n </Button>\n <Button\n variant=\"primary\"\n size=\"lg\"\n onClick={() => {\n handleButtonClick('secondary')\n }}\n >\n {copy.loginIn}\n </Button>\n </div>\n )}\n </div>\n </div>\n </Container>\n </div>\n </>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAuCI,IAAAI,EAAA,6BAvCJC,EAA0D,iCAC1DC,EAAuB,yBACvBC,EAAkC,+BAwB3B,SAASL,EAAc,CAAE,KAAAM,CAAK,EAAgB,CACnD,KAAM,CAAE,QAAAC,EAAS,gBAAAC,EAAiB,gBAAAC,CAAgB,KAAI,qBAAkB,EAClEC,EAAUH,EAAU,OAAO,KAAKA,CAAO,EAAE,SAAW,EAAI,GAExDI,EAAcJ,GAAS,WACzBA,GAAS,WAAa,IAAMA,GAAS,UACrCA,GAAS,OAAO,MAAM,GAAG,EAAE,CAAC,EAE1BK,EAAqBC,GAAwC,CACjEA,IAAe,UAAYJ,EAAgB,EAAID,EAAgB,CACjE,EAEA,SACE,mBACE,oBAAC,OAAI,UAAU,mBACb,oBAAC,WACC,UAAU,6GACV,OAAQ,GAAGF,EAAK,OAAO,GAAG,KAAKA,EAAK,WAAW,GAAG,UAAUA,EAAK,WAAW,GAAG,OAC/E,IAAKA,EAAK,OAAO,IACjB,QAAQ,QACT,EACAI,MACC,OAAC,OACC,UAAU,oBACV,MAAO,CACL,WAAY,sEACd,EACD,KAGH,OAAC,aAAU,UAAU,iDAAiD,QAAO,GAC3E,mBAAC,OAAI,UAAU,oBACb,oBAAC,OAAI,UAAU,0GACb,oBAAC,WACC,GAAG,KACH,KAAK,IACL,KAAMA,EAAUJ,EAAK,MAAM,OAAO,QAAQ,QAASK,GAAe,EAAE,EAAIL,EAAK,QAAQ,MACtF,KAED,OAAC,QACC,KAAK,IACL,UAAU,yCACV,KAAMI,EAAUJ,EAAK,MAAM,YAAcA,EAAK,QAAQ,YACvD,EAEA,CAACI,MACA,QAAC,OACC,aAAW,EAAAI,SACT,4DACAJ,GAAW,QACb,EAEA,oBAAC,UACC,QAAQ,YACR,KAAK,KACL,QAAS,IAAM,CACbE,EAAkB,SAAS,CAC7B,EAEC,SAAAN,EAAK,QACR,KACA,OAAC,UACC,QAAQ,UACR,KAAK,KACL,QAAS,IAAM,CACbM,EAAkB,WAAW,CAC/B,EAEC,SAAAN,EAAK,QACR,GACF,GAEJ,EACF,EACF,GACF,EACF,CAEJ",
6
+ "names": ["creditsBanner_exports", "__export", "CreditsBanner", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_classnames", "import_provider", "copy", "profile", "openSignInPopup", "openSignUpPopup", "isLogin", "displayName", "handleButtonClick", "buttonType", "classNames"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var x=Object.create;var d=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var u=(e,i)=>{for(var o in i)d(e,o,{get:i[o],enumerable:!0})},r=(e,i,o,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let a of c(i))!f.call(e,a)&&a!==o&&d(e,a,{get:()=>i[a],enumerable:!(n=m(i,a))||n.enumerable});return e};var v=(e,i,o)=>(o=e!=null?x(b(e)):{},r(i||!e||!e.__esModule?d(o,"default",{value:e,enumerable:!0}):o,e)),g=e=>r(d({},"__esModule",{value:!0}),e);var N={};u(N,{default:()=>h});module.exports=g(N);var t=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),s=require("../../../helpers/utils"),p=v(require("./iconInfo"));const F=({item:e,handleClick:i,isNoteActive:o,index:n})=>(0,t.jsx)("div",{className:"relative h-full rounded-[16px] border border-white px-[24px] pb-[26px] pt-[24px] md:min-h-[180px] md:p-[16px]",style:{background:"linear-gradient(119.61deg, #FAFAFA 38.58%, #FFFFFF 63.73%, #F9FCFF 89.37%)"},children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)(l.Picture,{className:"mb-[16px] size-[31px] md:absolute md:bottom-[16px] md:right-[16px] md:mb-0",alt:e.icon?.alt,source:e.icon?.url}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(l.Heading,{html:e.text,size:"2",className:"break-all"}),e.note&&(0,t.jsxs)("div",{role:"button",tabIndex:0,onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&a.preventDefault()},className:"relative mb-1 ml-[4px]",onClick:()=>i({item:e,index:n}),children:[(0,t.jsx)(p.default,{}),(0,t.jsx)("div",{className:(0,s.cn)("absolute -bottom-[12px] left-[32px] z-10 w-[356px] -translate-x-full translate-y-full md:w-[276px]",o?"block":"hidden"),children:(0,t.jsxs)("div",{className:"relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow",children:[(0,t.jsx)(l.Text,{as:"p",size:"2",html:e.note,className:"desktop:text-[18px]"}),(0,t.jsx)("div",{className:"absolute -top-[10px] right-[9px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]"})]})})]})]}),e.tag&&(0,t.jsx)(l.Text,{as:"div",html:e.tag,className:"mt-[2px] text-[16px] font-bold text-[#6D6D6F]"})]})});var h=F;
2
+ //# sourceMappingURL=benefitItem.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsBenefits/benefitItem.tsx"],
4
+ "sourcesContent": ["import { Heading, Picture, Text } from '@anker-in/headless-ui'\nimport { cn } from '../../../helpers/utils'\nimport IconInfo from './iconInfo'\n\nexport interface BenefitItemCopy {\n icon: {\n alt: string\n url: string\n }\n text: string\n note?: string\n tag?: string\n}\nconst BenefitItem = ({\n item,\n handleClick,\n isNoteActive,\n index,\n}: {\n item: BenefitItemCopy\n handleClick: ({ item, index }: { item: BenefitItemCopy; index: number }) => void\n isNoteActive: boolean\n index: number\n}) => {\n return (\n <div\n className=\"relative h-full rounded-[16px] border border-white px-[24px] pb-[26px] pt-[24px] md:min-h-[180px] md:p-[16px]\"\n style={{\n background: 'linear-gradient(119.61deg, #FAFAFA 38.58%, #FFFFFF 63.73%, #F9FCFF 89.37%)',\n }}\n >\n <div className=\"flex flex-col\">\n <Picture\n className=\"mb-[16px] size-[31px] md:absolute md:bottom-[16px] md:right-[16px] md:mb-0\"\n alt={item.icon?.alt}\n source={item.icon?.url}\n />\n <div className=\"flex items-center\">\n <Heading html={item.text} size=\"2\" className=\"break-all\" />\n {item.note && (\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n className=\"relative mb-1 ml-[4px]\"\n onClick={() => handleClick({ item, index })}\n >\n <IconInfo />\n <div\n className={cn(\n 'absolute -bottom-[12px] left-[32px] z-10 w-[356px] -translate-x-full translate-y-full md:w-[276px]',\n isNoteActive ? 'block' : 'hidden'\n )}\n >\n <div className=\"relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow\">\n <Text as=\"p\" size=\"2\" html={item.note} className=\"desktop:text-[18px]\" />\n <div className=\"absolute -top-[10px] right-[9px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]\" />\n </div>\n </div>\n </div>\n )}\n </div>\n {item.tag && <Text as=\"div\" html={item.tag} className=\"mt-[2px] text-[16px] font-bold text-[#6D6D6F]\" />}\n </div>\n </div>\n )\n}\n\nexport default BenefitItem\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAgCQ,IAAAI,EAAA,6BAhCRC,EAAuC,iCACvCC,EAAmB,kCACnBC,EAAqB,yBAWrB,MAAMC,EAAc,CAAC,CACnB,KAAAC,EACA,YAAAC,EACA,aAAAC,EACA,MAAAC,CACF,OAOI,OAAC,OACC,UAAU,gHACV,MAAO,CACL,WAAY,4EACd,EAEA,oBAAC,OAAI,UAAU,gBACb,oBAAC,WACC,UAAU,6EACV,IAAKH,EAAK,MAAM,IAChB,OAAQA,EAAK,MAAM,IACrB,KACA,QAAC,OAAI,UAAU,oBACb,oBAAC,WAAQ,KAAMA,EAAK,KAAM,KAAK,IAAI,UAAU,YAAY,EACxDA,EAAK,SACJ,QAAC,OACC,KAAK,SACL,SAAU,EACV,UAAWI,GAAK,EACVA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,MACjCA,EAAE,eAAe,CAErB,EACA,UAAU,yBACV,QAAS,IAAMH,EAAY,CAAE,KAAAD,EAAM,MAAAG,CAAM,CAAC,EAE1C,oBAAC,EAAAE,QAAA,EAAS,KACV,OAAC,OACC,aAAW,MACT,qGACAH,EAAe,QAAU,QAC3B,EAEA,oBAAC,OAAI,UAAU,0FACb,oBAAC,QAAK,GAAG,IAAI,KAAK,IAAI,KAAMF,EAAK,KAAM,UAAU,sBAAsB,KACvE,OAAC,OAAI,UAAU,mHAAmH,GACpI,EACF,GACF,GAEJ,EACCA,EAAK,QAAO,OAAC,QAAK,GAAG,MAAM,KAAMA,EAAK,IAAK,UAAU,gDAAgD,GACxG,EACF,EAIJ,IAAOP,EAAQM",
6
+ "names": ["benefitItem_exports", "__export", "benefitItem_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_utils", "import_iconInfo", "BenefitItem", "item", "handleClick", "isNoteActive", "index", "e", "IconInfo"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var e=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var h=(l,C)=>{for(var t in C)e(l,t,{get:C[t],enumerable:!0})},r=(l,C,t,i)=>{if(C&&typeof C=="object"||typeof C=="function")for(let o of f(C))!g.call(l,o)&&o!==t&&e(l,o,{get:()=>C[o],enumerable:!(i=p(C,o))||i.enumerable});return l};var w=l=>r(e({},"__esModule",{value:!0}),l);var a={};h(a,{IconInfo:()=>n,default:()=>v});module.exports=w(a);var s=require("react/jsx-runtime");const n=()=>(0,s.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"size-[18px] cursor-pointer [&_svg]:size-full",width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:[(0,s.jsx)("path",{d:"M9 1.125C11.1744 1.125 13.1441 2.00737 14.5684 3.43164C15.9926 4.85593 16.875 6.8256 16.875 9C16.875 11.1744 15.9926 13.1441 14.5684 14.5684C13.1441 15.9926 11.1744 16.875 9 16.875C6.8256 16.875 4.85593 15.9926 3.43164 14.5684C2.00737 13.1441 1.125 11.1744 1.125 9C1.125 6.8256 2.00738 4.85593 3.43164 3.43164C4.85593 2.00738 6.8256 1.125 9 1.125ZM9 2.625C7.23941 2.625 5.64668 3.33772 4.49219 4.49219C3.33772 5.64668 2.625 7.23941 2.625 9C2.625 10.7606 3.33772 12.3533 4.49219 13.5078C5.64668 14.6623 7.23941 15.375 9 15.375C10.7606 15.375 12.3533 14.6623 13.5078 13.5078C14.6623 12.3533 15.375 10.7606 15.375 9C15.375 7.23941 14.6623 5.64668 13.5078 4.49219C12.3533 3.33772 10.7606 2.625 9 2.625Z",fill:"#6D6D6F"}),(0,s.jsx)("path",{d:"M9 11.583C9.51777 11.583 9.9375 12.0027 9.9375 12.5205V12.5596C9.93718 13.0771 9.51757 13.4971 9 13.4971C8.48243 13.4971 8.06282 13.0771 8.0625 12.5596V12.5205C8.0625 12.0027 8.48223 11.583 9 11.583ZM8.99902 4.5C9.51671 4.49959 9.93696 4.91886 9.9375 5.43652L9.94043 9.37109C9.94084 9.88884 9.52165 10.3091 9.00391 10.3096C8.48616 10.31 8.06587 9.89079 8.06543 9.37305L8.0625 5.43848C8.06209 4.92079 8.48136 4.50054 8.99902 4.5Z",fill:"#6D6D6F"})]});var v=n;
2
+ //# sourceMappingURL=iconInfo.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsBenefits/iconInfo.tsx"],
4
+ "sourcesContent": ["export const IconInfo = () => {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='size-[18px] cursor-pointer [&_svg]:size-full'\n width='18'\n height='18'\n viewBox='0 0 18 18'\n fill='none'\n >\n <path\n d='M9 1.125C11.1744 1.125 13.1441 2.00737 14.5684 3.43164C15.9926 4.85593 16.875 6.8256 16.875 9C16.875 11.1744 15.9926 13.1441 14.5684 14.5684C13.1441 15.9926 11.1744 16.875 9 16.875C6.8256 16.875 4.85593 15.9926 3.43164 14.5684C2.00737 13.1441 1.125 11.1744 1.125 9C1.125 6.8256 2.00738 4.85593 3.43164 3.43164C4.85593 2.00738 6.8256 1.125 9 1.125ZM9 2.625C7.23941 2.625 5.64668 3.33772 4.49219 4.49219C3.33772 5.64668 2.625 7.23941 2.625 9C2.625 10.7606 3.33772 12.3533 4.49219 13.5078C5.64668 14.6623 7.23941 15.375 9 15.375C10.7606 15.375 12.3533 14.6623 13.5078 13.5078C14.6623 12.3533 15.375 10.7606 15.375 9C15.375 7.23941 14.6623 5.64668 13.5078 4.49219C12.3533 3.33772 10.7606 2.625 9 2.625Z'\n fill='#6D6D6F'\n />\n <path\n d='M9 11.583C9.51777 11.583 9.9375 12.0027 9.9375 12.5205V12.5596C9.93718 13.0771 9.51757 13.4971 9 13.4971C8.48243 13.4971 8.06282 13.0771 8.0625 12.5596V12.5205C8.0625 12.0027 8.48223 11.583 9 11.583ZM8.99902 4.5C9.51671 4.49959 9.93696 4.91886 9.9375 5.43652L9.94043 9.37109C9.94084 9.88884 9.52165 10.3091 9.00391 10.3096C8.48616 10.31 8.06587 9.89079 8.06543 9.37305L8.0625 5.43848C8.06209 4.92079 8.48136 4.50054 8.99902 4.5Z'\n fill='#6D6D6F'\n />\n </svg>\n )\n}\n\nexport default IconInfo\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEI,IAAAK,EAAA,6BAFG,MAAMH,EAAW,OAEpB,QAAC,OACC,MAAM,6BACN,UAAU,+CACV,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OAEL,oBAAC,QACC,EAAE,6rBACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,+aACF,KAAK,UACP,GACF,EAIJ,IAAOC,EAAQD",
6
+ "names": ["iconInfo_exports", "__export", "IconInfo", "iconInfo_default", "__toCommonJS", "import_jsx_runtime"]
7
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";var C=Object.create;var a=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var h=(e,i)=>{for(var t in i)a(e,t,{get:i[t],enumerable:!0})},f=(e,i,t,l)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of k(i))!_.call(e,s)&&s!==t&&a(e,s,{get:()=>i[s],enumerable:!(l=x(i,s))||l.enumerable});return e};var B=(e,i,t)=>(t=e!=null?C(N(e)):{},f(i||!e||!e.__esModule?a(t,"default",{value:e,enumerable:!0}):t,e)),y=e=>f(a({},"__esModule",{value:!0}),e);var P={};h(P,{CreditsBenefits:()=>I});module.exports=y(P);var r=require("react/jsx-runtime"),z=require("swiper/css"),D=require("swiper/css/grid"),G=require("swiper/css/pagination"),p=require("@anker-in/headless-ui"),g=require("react"),m=require("swiper/modules"),d=require("swiper/react"),c=B(require("./benefitItem")),v=require("../context/provider"),b=require("../../../helpers/track"),w=require("../../../helpers/utils");const I=({copy:e})=>{const[i,t]=(0,g.useState)(null),{profile:l,gtm:s}=(0,v.useCreditsContext)(),u=({item:o,index:n})=>{(0,b.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:l?.activated?"active":"not active",event_parameters:{page_group:s.pageGroup,position:e.title,button_name:o.text,info:""}}),i===n?t(null):(t(n),setTimeout(()=>{t(null)},5e3))};return(0,r.jsxs)(p.Container,{id:"benefits",className:"!z-[30] bg-[#F5F5F7]",children:[(0,r.jsx)(p.Heading,{as:"h2",size:"4",html:e?.title}),(0,r.jsx)("div",{className:"mt-[24px] grid grid-cols-2 gap-[16px] l:hidden min-md:grid-cols-3 min-xl:grid-cols-4",children:e.benefits.map((o,n)=>(0,r.jsx)(c.default,{item:o,handleClick:u,isNoteActive:i===n,index:n},n))}),(0,r.jsxs)("div",{className:"mt-[24px] hidden l:block",children:[(0,r.jsx)(d.Swiper,{spaceBetween:16,slidesPerView:2,slidesPerGroup:2,grid:{rows:2,fill:"row"},breakpoints:{768:{slidesPerView:3,slidesPerGroup:3}},wrapperClass:"items-stretch",modules:[m.Grid,m.Pagination],pagination:{clickable:!0,el:"#benefits-pagination",renderBullet(o,n){return`<div class='${n} !flex justify-center size-[8px] rounded-full bg-[#D9D9D9] cursor-pointer items-center'>
2
+ </div>`}},children:e.benefits.map((o,n)=>(0,r.jsx)(d.SwiperSlide,{className:(0,w.cn)("!h-auto",i===n&&"!z-[100]"),children:(0,r.jsx)(c.default,{item:o,handleClick:u,isNoteActive:i===n,index:n})},n))}),(0,r.jsx)("div",{id:"benefits-pagination",className:`mx-auto mt-[12px] grid !w-fit grid-flow-col [&_.swiper-pagination-bullet-active>div]:!bg-[#151515]
3
+ [&_.swiper-pagination-bullet]:cursor-pointer [&_.swiper-pagination-bullet]:rounded-full`})]}),i&&(0,r.jsx)("div",{role:"button",tabIndex:0,className:"fixed inset-0 z-10",onClick:()=>t(null),onKeyDown:o=>o.key==="Escape"&&t(null)})]})};
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsBenefits/index.tsx"],
4
+ "sourcesContent": ["import 'swiper/css'\nimport 'swiper/css/grid'\nimport 'swiper/css/pagination'\n\nimport { Container, Heading } from '@anker-in/headless-ui'\nimport { useState } from 'react'\nimport { Grid, Pagination } from 'swiper/modules'\nimport { Swiper, SwiperSlide } from 'swiper/react'\n\nimport BenefitItem, { type BenefitItemCopy } from './benefitItem'\nimport { useCreditsContext } from '../context/provider'\nimport { gaTrack } from '../../../helpers/track'\nimport { cn } from '../../../helpers/utils'\n\ninterface CreditsBenefitsProps {\n copy: {\n title: string\n benefits: BenefitItemCopy[]\n }\n}\n\nexport const CreditsBenefits = ({ copy }: CreditsBenefitsProps) => {\n const [activeNoteIndex, setActiveNoteIndex] = useState<number | null>(null)\n const { profile, gtm } = useCreditsContext()\n\n const handleClick = ({ item, index }: { item: BenefitItemCopy; index: number }) => {\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: gtm.pageGroup,\n position: copy.title,\n button_name: item.text,\n info: '',\n },\n })\n if (activeNoteIndex === index) {\n setActiveNoteIndex(null)\n } else {\n setActiveNoteIndex(index)\n setTimeout(() => {\n setActiveNoteIndex(null)\n }, 5000)\n }\n }\n\n return (\n <Container id=\"benefits\" className=\"!z-[30] bg-[#F5F5F7]\">\n <Heading as=\"h2\" size=\"4\" html={copy?.title} />\n <div className=\"mt-[24px] grid grid-cols-2 gap-[16px] l:hidden min-md:grid-cols-3 min-xl:grid-cols-4\">\n {copy.benefits.map((item, index) => (\n <BenefitItem\n key={index}\n item={item}\n handleClick={handleClick}\n isNoteActive={activeNoteIndex === index}\n index={index}\n />\n ))}\n </div>\n <div className=\"mt-[24px] hidden l:block\">\n <Swiper\n spaceBetween={16}\n slidesPerView={2}\n slidesPerGroup={2}\n grid={{\n rows: 2,\n fill: 'row',\n }}\n breakpoints={{\n 768: {\n slidesPerView: 3,\n slidesPerGroup: 3,\n },\n }}\n wrapperClass=\"items-stretch\"\n modules={[Grid, Pagination]}\n pagination={{\n clickable: true,\n el: '#benefits-pagination',\n renderBullet(index, className) {\n return `<div class='${className} !flex justify-center size-[8px] rounded-full bg-[#D9D9D9] cursor-pointer items-center'>\n </div>`\n },\n }}\n >\n {copy.benefits.map((item, index) => (\n <SwiperSlide key={index} className={cn('!h-auto', activeNoteIndex === index && '!z-[100]')}>\n <BenefitItem\n item={item}\n handleClick={handleClick}\n isNoteActive={activeNoteIndex === index}\n index={index}\n />\n </SwiperSlide>\n ))}\n </Swiper>\n <div\n id=\"benefits-pagination\"\n className=\"mx-auto mt-[12px] grid !w-fit grid-flow-col [&_.swiper-pagination-bullet-active>div]:!bg-[#151515] \n [&_.swiper-pagination-bullet]:cursor-pointer [&_.swiper-pagination-bullet]:rounded-full\"\n ></div>\n </div>\n\n {activeNoteIndex && (\n <div\n role=\"button\"\n tabIndex={0}\n className=\"fixed inset-0 z-10\"\n onClick={() => setActiveNoteIndex(null)}\n onKeyDown={e => e.key === 'Escape' && setActiveNoteIndex(null)}\n />\n )}\n </Container>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAiDM,IAAAI,EAAA,6BAjDNC,EAAO,sBACPC,EAAO,2BACPC,EAAO,iCAEPC,EAAmC,iCACnCC,EAAyB,iBACzBC,EAAiC,0BACjCD,EAAoC,wBAEpCE,EAAkD,4BAClDC,EAAkC,+BAClCC,EAAwB,kCACxBC,EAAmB,kCASZ,MAAMZ,EAAkB,CAAC,CAAE,KAAAa,CAAK,IAA4B,CACjE,KAAM,CAACC,EAAiBC,CAAkB,KAAI,YAAwB,IAAI,EACpE,CAAE,QAAAC,EAAS,IAAAC,CAAI,KAAI,qBAAkB,EAErCC,EAAc,CAAC,CAAE,KAAAC,EAAM,MAAAC,CAAM,IAAgD,IACjF,WAAQ,CACN,MAAO,WACP,WAAY,YACZ,qBAAsBJ,GAAS,UAAY,SAAW,aACtD,iBAAkB,CAChB,WAAYC,EAAI,UAChB,SAAUJ,EAAK,MACf,YAAaM,EAAK,KAClB,KAAM,EACR,CACF,CAAC,EACGL,IAAoBM,EACtBL,EAAmB,IAAI,GAEvBA,EAAmBK,CAAK,EACxB,WAAW,IAAM,CACfL,EAAmB,IAAI,CACzB,EAAG,GAAI,EAEX,EAEA,SACE,QAAC,aAAU,GAAG,WAAW,UAAU,uBACjC,oBAAC,WAAQ,GAAG,KAAK,KAAK,IAAI,KAAMF,GAAM,MAAO,KAC7C,OAAC,OAAI,UAAU,uFACZ,SAAAA,EAAK,SAAS,IAAI,CAACM,EAAMC,OACxB,OAAC,EAAAC,QAAA,CAEC,KAAMF,EACN,YAAaD,EACb,aAAcJ,IAAoBM,EAClC,MAAOA,GAJFA,CAKP,CACD,EACH,KACA,QAAC,OAAI,UAAU,2BACb,oBAAC,UACC,aAAc,GACd,cAAe,EACf,eAAgB,EAChB,KAAM,CACJ,KAAM,EACN,KAAM,KACR,EACA,YAAa,CACX,IAAK,CACH,cAAe,EACf,eAAgB,CAClB,CACF,EACA,aAAa,gBACb,QAAS,CAAC,OAAM,YAAU,EAC1B,WAAY,CACV,UAAW,GACX,GAAI,uBACJ,aAAaA,EAAOE,EAAW,CAC7B,MAAO,eAAeA,CAAS;AAAA,qBAEjC,CACF,EAEC,SAAAT,EAAK,SAAS,IAAI,CAACM,EAAMC,OACxB,OAAC,eAAwB,aAAW,MAAG,UAAWN,IAAoBM,GAAS,UAAU,EACvF,mBAAC,EAAAC,QAAA,CACC,KAAMF,EACN,YAAaD,EACb,aAAcJ,IAAoBM,EAClC,MAAOA,EACT,GANgBA,CAOlB,CACD,EACH,KACA,OAAC,OACC,GAAG,sBACH,UAAU;AAAA,mGAEX,GACH,EAECN,MACC,OAAC,OACC,KAAK,SACL,SAAU,EACV,UAAU,qBACV,QAAS,IAAMC,EAAmB,IAAI,EACtC,UAAWQ,GAAKA,EAAE,MAAQ,UAAYR,EAAmB,IAAI,EAC/D,GAEJ,CAEJ",
6
+ "names": ["creditsBenefits_exports", "__export", "CreditsBenefits", "__toCommonJS", "import_jsx_runtime", "import_css", "import_grid", "import_pagination", "import_headless_ui", "import_react", "import_modules", "import_benefitItem", "import_provider", "import_track", "import_utils", "copy", "activeNoteIndex", "setActiveNoteIndex", "profile", "gtm", "handleClick", "item", "index", "BenefitItem", "className", "e"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var x=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var E=(t,e)=>{for(var a in e)x(t,a,{get:e[a],enumerable:!0})},z=(t,e,a,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of V(e))!F.call(t,r)&&r!==a&&x(t,r,{get:()=>e[r],enumerable:!(c=R(e,r))||c.enumerable});return t};var A=t=>z(x({},"__esModule",{value:!0}),t);var P={};E(P,{default:()=>O});module.exports=A(P);var i=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),p=require("react"),d=require("../../../helpers"),h=require("../context/provider"),_=require("../context/hooks/useRedeemAndBuy"),C=require("../context/utils"),f=require("../../../helpers/track");function L({copy:t,itemData:e,setRules:a,className:c,authCodeActivate:r}){const{creditInfo:v,profile:n,openSignUpPopup:N,gtm:{pageGroup:g}}=(0,h.useCreditsContext)(),{trigger:b,isMutating:w}=(0,_.useRedeemAndBuy)(),s=(0,p.useMemo)(()=>!!n,[n?.activated]),u=(0,p.useMemo)(()=>s&&n?.activated&&e.alpcData?.consumeCredits>Number(v?.available_credit||0),[s,n?.activated,e.alpcData?.consumeCredits,v?.available_credit]),S=(0,p.useMemo)(()=>!!(e.alpcData?.remainingInventory<=0&&e.alpcData?.isLimited||!e.productVariant?.availableForSale||u),[e.alpcData?.remainingInventory,e.alpcData?.isLimited,e.productVariant?.availableForSale,u]),I=()=>{if(!s)N();else if(!n?.activated&&!(r.isSendingActivateEmail||r.isSuccess))r.openAuthCodePopup(),r.setOnSuccess(async()=>{const{success:o,url:y,error:k}=await b({productVariant:e?.productVariant,redeemId:e?.config?.redeemId});o?window.open(y,"_blank"):console.error(k)});else{try{b({productVariant:e?.productVariant,redeemId:e?.config?.redeemId})}catch{}(0,f.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:n?.activated?"active":"not active",event_parameters:{page_group:g,position:t.title,button_name:m,info:e?.alpcData?.id?.toString()}})}},m=(0,p.useMemo)(()=>e.productVariant?.availableForSale?s?t.btnRedeem:t.unlockRewards:t?.soldOut||"Sold Out",[s,e.productVariant?.availableForSale,t.btnRedeem,t.unlockRewards,t?.soldOut]);return(0,i.jsxs)("div",{className:(0,d.cn)("flex flex-col items-center rounded-[16px] bg-[#EAEAEC] p-[24px] md:rounded-[12px] md:px-[8px] xl:py-[16px] md-xl:px-[16px]",c),children:[(0,i.jsx)("div",{className:(0,d.cn)("relative mx-auto h-[224px] w-fit l:h-[120px] l-xxl:h-[138px]"),children:(0,i.jsx)(l.Picture,{className:"mx-auto h-full w-auto",imgClassName:"h-full object-contain",source:e?.config?.image?.url||e?.productVariant?.metafields?.global?.transparentImg||e?.productVariant?.image?.url})}),(0,i.jsxs)("div",{className:(0,d.cn)("mt-[22px] w-full l:mt-[8px]"),children:[(0,i.jsx)(l.Text,{html:e?.product?.title,title:e.config?.title||e.alpcData?.title||e.product?.title,size:2,className:"line-clamp-2 h-[58px] text-[24px] leading-[1.2] l:line-clamp-3 l:h-[56px] l:text-[16px] l-xxl:h-[48px] l-xxl:text-[20px]"}),e?.config?.rules?.split("<br>")?.length>0&&(0,i.jsx)("button",{type:"button",onClick:()=>{a(e?.config?.rules?.split("<br>")),(0,f.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:n?.activated?"active":"not active",event_parameters:{page_group:g,position:t.title,button_name:t?.ruleLabel,info:e?.alpcData?.id?.toString()}})},className:"mt-[8px] text-[16px] font-bold underline xxl:text-[14px]",tabIndex:0,onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&o.preventDefault()},children:t?.ruleLabel}),(0,i.jsxs)("div",{className:"mt-[24px] flex items-center l:mt-[12px] laptop:text-[16px] lg-desktop:text-[18px]",children:[(0,i.jsx)(l.Picture,{className:"size-[20px]",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783"}),(0,i.jsx)(l.Text,{html:`${(0,C.numberFormat)(e?.alpcData?.consumeCredits)} + ${e?.config?.price}`,size:2,as:"p",className:"ml-[4px] text-[28px] font-bold leading-[1.2] md:text-[18px] l-xxl:text-[24px] md-l:text-[20px] "})]}),(0,i.jsxs)("div",{className:"group relative w-full",children:[(0,i.jsx)(l.Button,{disabled:S,variant:"primary",size:"lg",className:"mt-[8px] md:px-[10px] l:w-full",loading:w,onClick:()=>{I()},title:u?"Insufficient credit":m,children:m}),(0,i.jsx)("div",{className:(0,d.cn)("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:(0,i.jsxs)("div",{className:"relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]",children:[(0,i.jsx)(l.Text,{as:"p",size:"2",html:t?.insufficientCredits,className:"text-[14px]"}),(0,i.jsx)("div",{className:"absolute -top-[10px] left-[48px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]"})]})})]})]})]})}var O=L;
2
+ //# sourceMappingURL=RedeemableItem.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsCash/RedeemableItem.tsx"],
4
+ "sourcesContent": ["import { Button, Text, Picture } from '@anker-in/headless-ui'\nimport { useMemo } from 'react'\nimport { cn } from '../../../helpers'\n\nimport { CreditsCashCopy, RedeemItem } from './type'\nimport { useCreditsContext } from '../context/provider'\nimport { useRedeemAndBuy } from '../context/hooks/useRedeemAndBuy'\nimport { numberFormat } from '../context/utils'\nimport { gaTrack } from '../../../helpers/track'\n\nfunction RedeemableItem({\n copy,\n itemData,\n setRules,\n className,\n authCodeActivate,\n}: {\n copy: CreditsCashCopy\n itemData: RedeemItem\n className?: string\n setRules: (rules: string[]) => void\n currencyCode: string\n authCodeActivate: {\n openAuthCodePopup: Function\n isSuccess: boolean\n setOnSuccess: (arg: Function) => void\n isSendingActivateEmail: boolean\n }\n}) {\n const {\n creditInfo,\n profile,\n openSignUpPopup,\n gtm: { pageGroup },\n } = useCreditsContext()\n const { trigger, isMutating } = useRedeemAndBuy()\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 if (!isLogin) {\n openSignUpPopup()\n } else if (!profile?.activated && !(authCodeActivate.isSendingActivateEmail || authCodeActivate.isSuccess)) {\n authCodeActivate.openAuthCodePopup()\n authCodeActivate.setOnSuccess(async () => {\n const { success, url, error } = await trigger({\n productVariant: itemData?.productVariant,\n redeemId: itemData?.config?.redeemId,\n })\n if (success) {\n window.open(url, '_blank')\n } else {\n console.error(error)\n }\n })\n } else {\n try {\n trigger({\n productVariant: itemData?.productVariant,\n redeemId: itemData?.config?.redeemId,\n })\n } catch (error) {}\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: pageGroup,\n position: copy.title,\n button_name: redeemButtonText,\n info: itemData?.alpcData?.id?.toString(),\n },\n })\n }\n }\n\n const redeemButtonText = useMemo(() => {\n // \u7F3A\u8D27\u6587\u6848\n if (!itemData.productVariant?.availableForSale) {\n return copy?.soldOut || 'Sold Out'\n } else if (!isLogin) {\n return copy.unlockRewards\n } else {\n return copy.btnRedeem\n }\n }, [isLogin, itemData.productVariant?.availableForSale, copy.btnRedeem, copy.unlockRewards, copy?.soldOut])\n\n return (\n <div\n className={cn(\n 'flex flex-col items-center rounded-[16px] bg-[#EAEAEC] p-[24px] md:rounded-[12px] md:px-[8px] xl:py-[16px] md-xl:px-[16px]',\n className\n )}\n >\n <div className={cn('relative mx-auto h-[224px] w-fit l:h-[120px] l-xxl:h-[138px]')}>\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 </div>\n <div className={cn('mt-[22px] w-full l:mt-[8px]')}>\n <Text\n html={itemData?.product?.title}\n title={itemData.config?.title || itemData.alpcData?.title || itemData.product?.title}\n size={2}\n className=\"line-clamp-2 h-[58px] text-[24px] leading-[1.2] l:line-clamp-3 l:h-[56px] l:text-[16px] l-xxl:h-[48px] l-xxl:text-[20px]\"\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: copy?.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 {copy?.ruleLabel}\n </button>\n )}\n <div className=\"mt-[24px] flex items-center l:mt-[12px] laptop:text-[16px] lg-desktop:text-[18px]\">\n <Picture\n className=\"size-[20px]\"\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)} + ${itemData?.config?.price}`}\n size={2}\n as=\"p\"\n className=\"ml-[4px] text-[28px] font-bold leading-[1.2] md:text-[18px] l-xxl:text-[24px] md-l:text-[20px] \"\n />\n </div>\n\n <div className=\"group relative w-full\">\n <Button\n disabled={isDisabled}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[8px] md:px-[10px] l:w-full\"\n loading={isMutating}\n onClick={() => {\n handleRedeem()\n }}\n title={inSufficientCredit ? 'Insufficient credit' : 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 className=\"relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]\">\n <Text as=\"p\" size=\"2\" html={copy?.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 </div>\n )\n}\n\nexport default RedeemableItem\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA8HQ,IAAAI,EAAA,6BA9HRC,EAAsC,iCACtCC,EAAwB,iBACxBC,EAAmB,4BAGnBC,EAAkC,+BAClCC,EAAgC,4CAChCC,EAA6B,4BAC7BC,EAAwB,kCAExB,SAASC,EAAe,CACtB,KAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,CACF,EAYG,CACD,KAAM,CACJ,WAAAC,EACA,QAAAC,EACA,gBAAAC,EACA,IAAK,CAAE,UAAAC,CAAU,CACnB,KAAI,qBAAkB,EAChB,CAAE,QAAAC,EAAS,WAAAC,CAAW,KAAI,mBAAgB,EAE1CC,KAAU,WAAQ,IACf,CAAC,CAACL,EACR,CAACA,GAAS,SAAS,CAAC,EAEjBM,KAAqB,WAAQ,IAE/BD,GAAWL,GAAS,WAAaL,EAAS,UAAU,eAAiB,OAAOI,GAAY,kBAAoB,CAAC,EAE9G,CAACM,EAASL,GAAS,UAAWL,EAAS,UAAU,eAAgBI,GAAY,gBAAgB,CAAC,EAE3FQ,KAAa,WAAQ,IAErB,GAAAZ,EAAS,UAAU,oBAAsB,GAAKA,EAAS,UAAU,WAKjE,CAACA,EAAS,gBAAgB,kBAK1BW,GAIH,CACDX,EAAS,UAAU,mBACnBA,EAAS,UAAU,UACnBA,EAAS,gBAAgB,iBACzBW,CACF,CAAC,EAEKE,EAAe,IAAM,CACzB,GAAI,CAACH,EACHJ,EAAgB,UACP,CAACD,GAAS,WAAa,EAAEF,EAAiB,wBAA0BA,EAAiB,WAC9FA,EAAiB,kBAAkB,EACnCA,EAAiB,aAAa,SAAY,CACxC,KAAM,CAAE,QAAAW,EAAS,IAAAC,EAAK,MAAAC,CAAM,EAAI,MAAMR,EAAQ,CAC5C,eAAgBR,GAAU,eAC1B,SAAUA,GAAU,QAAQ,QAC9B,CAAC,EACGc,EACF,OAAO,KAAKC,EAAK,QAAQ,EAEzB,QAAQ,MAAMC,CAAK,CAEvB,CAAC,MACI,CACL,GAAI,CACFR,EAAQ,CACN,eAAgBR,GAAU,eAC1B,SAAUA,GAAU,QAAQ,QAC9B,CAAC,CACH,MAAgB,CAAC,IACjB,WAAQ,CACN,MAAO,WACP,WAAY,YACZ,qBAAsBK,GAAS,UAAY,SAAW,aACtD,iBAAkB,CAChB,WAAYE,EACZ,SAAUR,EAAK,MACf,YAAakB,EACb,KAAMjB,GAAU,UAAU,IAAI,SAAS,CACzC,CACF,CAAC,CACH,CACF,EAEMiB,KAAmB,WAAQ,IAE1BjB,EAAS,gBAAgB,iBAElBU,EAGHX,EAAK,UAFLA,EAAK,cAFLA,GAAM,SAAW,WAMzB,CAACW,EAASV,EAAS,gBAAgB,iBAAkBD,EAAK,UAAWA,EAAK,cAAeA,GAAM,OAAO,CAAC,EAE1G,SACE,QAAC,OACC,aAAW,MACT,6HACAG,CACF,EAEA,oBAAC,OAAI,aAAW,MAAG,8DAA8D,EAC/E,mBAAC,WACC,UAAU,wBACV,aAAa,wBACb,OACEF,GAAU,QAAQ,OAAO,KACzBA,GAAU,gBAAgB,YAAY,QAAQ,gBAC9CA,GAAU,gBAAgB,OAAO,IAEpC,EACH,KACA,QAAC,OAAI,aAAW,MAAG,6BAA6B,EAC9C,oBAAC,QACC,KAAMA,GAAU,SAAS,MACzB,MAAOA,EAAS,QAAQ,OAASA,EAAS,UAAU,OAASA,EAAS,SAAS,MAC/E,KAAM,EACN,UAAU,2HACZ,EACCA,GAAU,QAAQ,OAAO,MAAM,MAAM,GAAG,OAAS,MAChD,OAAC,UACC,KAAK,SACL,QAAS,IAAM,CACbC,EAASD,GAAU,QAAQ,OAAO,MAAM,MAAM,CAAC,KAC/C,WAAQ,CACN,MAAO,WACP,WAAY,YACZ,qBAAsBK,GAAS,UAAY,SAAW,aACtD,iBAAkB,CAChB,WAAYE,EACZ,SAAUR,EAAK,MACf,YAAaA,GAAM,UACnB,KAAMC,GAAU,UAAU,IAAI,SAAS,CACzC,CACF,CAAC,CACH,EACA,UAAU,2DACV,SAAU,EACV,UAAWkB,GAAK,EACVA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,MACjCA,EAAE,eAAe,CAErB,EAEC,SAAAnB,GAAM,UACT,KAEF,QAAC,OAAI,UAAU,oFACb,oBAAC,WACC,UAAU,cACV,OAAO,6FACT,KACA,OAAC,QACC,KAAM,MAAG,gBAAaC,GAAU,UAAU,cAAc,CAAC,MAAMA,GAAU,QAAQ,KAAK,GACtF,KAAM,EACN,GAAG,IACH,UAAU,kGACZ,GACF,KAEA,QAAC,OAAI,UAAU,wBACb,oBAAC,UACC,SAAUY,EACV,QAAQ,UACR,KAAK,KACL,UAAU,iCACV,QAASH,EACT,QAAS,IAAM,CACbI,EAAa,CACf,EACA,MAAOF,EAAqB,sBAAwBM,EAEnD,SAAAA,EACH,KACA,OAAC,OACC,aAAW,MACT,qJACAN,EAAqB,QAAU,QACjC,EAEA,oBAAC,OAAI,UAAU,mHACb,oBAAC,QAAK,GAAG,IAAI,KAAK,IAAI,KAAMZ,GAAM,oBAAqB,UAAU,cAAc,KAC/E,OAAC,OAAI,UAAU,mHAAmH,GACpI,EACF,GACF,GACF,GACF,CAEJ,CAEA,IAAOX,EAAQU",
6
+ "names": ["RedeemableItem_exports", "__export", "RedeemableItem_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_helpers", "import_provider", "import_useRedeemAndBuy", "import_utils", "import_track", "RedeemableItem", "copy", "itemData", "setRules", "className", "authCodeActivate", "creditInfo", "profile", "openSignUpPopup", "pageGroup", "trigger", "isMutating", "isLogin", "inSufficientCredit", "isDisabled", "handleRedeem", "success", "url", "error", "redeemButtonText", "e"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var k=Object.create;var l=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var _=(e,t)=>{for(var s in t)l(e,s,{get:t[s],enumerable:!0})},v=(e,t,s,m)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of D(t))!P.call(e,i)&&i!==s&&l(e,i,{get:()=>t[i],enumerable:!(m=A(t,i))||m.enumerable});return e};var f=(e,t,s)=>(s=e!=null?k(L(e)):{},v(t||!e||!e.__esModule?l(s,"default",{value:e,enumerable:!0}):s,e)),H=e=>v(l({},"__esModule",{value:!0}),e);var B={};_(B,{CreditsCash:()=>M});module.exports=H(B);var r=require("react/jsx-runtime"),c=require("@anker-in/headless-ui"),u=require("react"),y=f(require("./RedeemableItem")),x=f(require("../context/hooks/useRedeemableList")),N=require("../../../helpers"),I=f(require("../modal/rulesModal")),R=require("@anker-in/shopify");const M=({copy:e,className:t="",hideTitle:s=!1,cardClassName:m,authCodeActivate:i})=>{const[p,g]=(0,u.useState)(),{redeemableList:h}=(0,x.default)(),S="us",F=[],{data:C}=(0,R.useProductsByHandles)({locale:S,handles:e?.list?.map(a=>a.products?.[0]?.handle)||[],metafieldIdentifiers:{variant:F}}),b=(0,u.useMemo)(()=>C?.map(a=>{const o=e.list.find(d=>d.products?.[0]?.handle===a.handle),n=h.find(d=>d.id?.toString()===o?.redeemId?.toString());return{product:a,productVariant:a.variants?.find(d=>d.sku===o?.products?.[0]?.sku)||a.variants?.[0],alpcData:{id:n?.id,consumeCredits:n?.consume_credits,remainingInventory:n?.remaining_inventory,isLimited:n?.is_limited,consumeType:n?.consume_type,title:n?.name,desc:n?.note},config:o}}),[C,e.list,h]);return console.log("list",b),(0,r.jsxs)(c.Container,{className:(0,N.cn)("bg-[#F5F5F5]",t),children:[!s&&(0,r.jsx)(c.Heading,{as:"h2",size:"4",html:e.title}),(0,r.jsx)("div",{className:"relative mt-[24px] grid grid-cols-4 gap-[16px] md:grid-cols-2 md-xl:grid-cols-3",children:b?.map((a,o)=>(0,r.jsx)(y.default,{copy:e,itemData:a,setRules:g,className:m,currencyCode:C?.[0]?.price.currencyCode||"USD",authCodeActivate:i},o))}),p&&(0,r.jsx)(I.default,{overlayClassName:"md:px-[16px] md:items-center",className:"md:h-fit md:rounded-b-[16px]",isOpen:p.length>0,onClose:()=>g([]),titleClassName:"border-b-transparent h-[56px]",rules:p,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:e?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsCash/index.tsx"],
4
+ "sourcesContent": ["import { Container, Heading } from '@anker-in/headless-ui'\nimport { useMemo, useState } from 'react'\n\nimport RedeemableItem from './RedeemableItem'\nimport useRedeemableList from '../context/hooks/useRedeemableList'\nimport { cn } from '../../../helpers'\nimport RulesModal from '../modal/rulesModal'\nimport { useProductsByHandles } from '@anker-in/shopify'\nimport { CreditsCashCopy, RedeemItem } from './type'\nimport { Product } from '@anker-in/shopify'\n\nexport const CreditsCash = ({\n copy,\n className = '',\n hideTitle = false,\n cardClassName,\n authCodeActivate,\n}: {\n copy: CreditsCashCopy\n className?: string\n hideTitle?: boolean\n cardClassName?: string\n authCodeActivate: {\n openAuthCodePopup: Function\n isSuccess: boolean\n setOnSuccess: (arg: Function) => void\n isSendingActivateEmail: boolean\n }\n}) => {\n const [rules, setRules] = useState<string | string[]>()\n const { redeemableList } = useRedeemableList()\n\n // Temporary variables until proper configuration\n const locale = 'us'\n const variantMetafieldIdentifiers: any[] = []\n\n const { data: productByHandles } = useProductsByHandles({\n locale,\n handles: copy?.list?.map(item => item.products?.[0]?.handle) || [],\n metafieldIdentifiers: {\n variant: variantMetafieldIdentifiers,\n },\n })\n\n const list = useMemo(() => {\n return productByHandles?.map((product: Product) => {\n const config = copy.list.find(item => item.products?.[0]?.handle === product.handle)\n const alpcData = redeemableList.find(item => item.id?.toString() === config?.redeemId?.toString())\n\n return {\n product,\n productVariant:\n product.variants?.find((variant: any) => variant.sku === config?.products?.[0]?.sku) || product.variants?.[0],\n alpcData: {\n id: alpcData?.id,\n consumeCredits: alpcData?.consume_credits,\n remainingInventory: alpcData?.remaining_inventory,\n isLimited: alpcData?.is_limited,\n consumeType: alpcData?.consume_type,\n title: alpcData?.name,\n desc: alpcData?.note,\n },\n config,\n }\n }) as unknown as RedeemItem[]\n }, [productByHandles, copy.list, redeemableList])\n\n console.log('list', list)\n\n return (\n <Container className={cn('bg-[#F5F5F5]', className)}>\n {!hideTitle && <Heading as=\"h2\" size=\"4\" html={copy.title} />}\n <div className=\"relative mt-[24px] grid grid-cols-4 gap-[16px] md:grid-cols-2 md-xl:grid-cols-3\">\n {list?.map((item, index: number) => (\n <RedeemableItem\n key={index}\n copy={copy}\n itemData={item}\n setRules={setRules}\n className={cardClassName}\n currencyCode={productByHandles?.[0]?.price.currencyCode || 'USD'}\n authCodeActivate={authCodeActivate}\n />\n ))}\n </div>\n\n {rules && (\n <RulesModal\n overlayClassName=\"md:px-[16px] md:items-center\"\n className=\"md:h-fit md:rounded-b-[16px]\"\n isOpen={rules.length > 0}\n onClose={() => setRules([])}\n titleClassName=\"border-b-transparent h-[56px]\"\n rules={rules}\n scrollClassName=\"md:mt-[8px] md:mb-[24px] md:pt-0\"\n title={copy?.ruleLabel}\n ruleClassName=\"text-[#1d1d1f] font-bold\"\n />\n )}\n </Container>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAsEI,IAAAI,EAAA,6BAtEJC,EAAmC,iCACnCC,EAAkC,iBAElCC,EAA2B,+BAC3BC,EAA8B,iDAC9BC,EAAmB,4BACnBC,EAAuB,kCACvBC,EAAqC,6BAI9B,MAAMT,EAAc,CAAC,CAC1B,KAAAU,EACA,UAAAC,EAAY,GACZ,UAAAC,EAAY,GACZ,cAAAC,EACA,iBAAAC,CACF,IAWM,CACJ,KAAM,CAACC,EAAOC,CAAQ,KAAI,YAA4B,EAChD,CAAE,eAAAC,CAAe,KAAI,EAAAC,SAAkB,EAGvCC,EAAS,KACTC,EAAqC,CAAC,EAEtC,CAAE,KAAMC,CAAiB,KAAI,wBAAqB,CACtD,OAAAF,EACA,QAAST,GAAM,MAAM,IAAIY,GAAQA,EAAK,WAAW,CAAC,GAAG,MAAM,GAAK,CAAC,EACjE,qBAAsB,CACpB,QAASF,CACX,CACF,CAAC,EAEKG,KAAO,WAAQ,IACZF,GAAkB,IAAKG,GAAqB,CACjD,MAAMC,EAASf,EAAK,KAAK,KAAKY,GAAQA,EAAK,WAAW,CAAC,GAAG,SAAWE,EAAQ,MAAM,EAC7EE,EAAWT,EAAe,KAAKK,GAAQA,EAAK,IAAI,SAAS,IAAMG,GAAQ,UAAU,SAAS,CAAC,EAEjG,MAAO,CACL,QAAAD,EACA,eACEA,EAAQ,UAAU,KAAMG,GAAiBA,EAAQ,MAAQF,GAAQ,WAAW,CAAC,GAAG,GAAG,GAAKD,EAAQ,WAAW,CAAC,EAC9G,SAAU,CACR,GAAIE,GAAU,GACd,eAAgBA,GAAU,gBAC1B,mBAAoBA,GAAU,oBAC9B,UAAWA,GAAU,WACrB,YAAaA,GAAU,aACvB,MAAOA,GAAU,KACjB,KAAMA,GAAU,IAClB,EACA,OAAAD,CACF,CACF,CAAC,EACA,CAACJ,EAAkBX,EAAK,KAAMO,CAAc,CAAC,EAEhD,eAAQ,IAAI,OAAQM,CAAI,KAGtB,QAAC,aAAU,aAAW,MAAG,eAAgBZ,CAAS,EAC/C,WAACC,MAAa,OAAC,WAAQ,GAAG,KAAK,KAAK,IAAI,KAAMF,EAAK,MAAO,KAC3D,OAAC,OAAI,UAAU,kFACZ,SAAAa,GAAM,IAAI,CAACD,EAAMM,OAChB,OAAC,EAAAC,QAAA,CAEC,KAAMnB,EACN,SAAUY,EACV,SAAUN,EACV,UAAWH,EACX,aAAcQ,IAAmB,CAAC,GAAG,MAAM,cAAgB,MAC3D,iBAAkBP,GANbc,CAOP,CACD,EACH,EAECb,MACC,OAAC,EAAAe,QAAA,CACC,iBAAiB,+BACjB,UAAU,+BACV,OAAQf,EAAM,OAAS,EACvB,QAAS,IAAMC,EAAS,CAAC,CAAC,EAC1B,eAAe,gCACf,MAAOD,EACP,gBAAgB,mCAChB,MAAOL,GAAM,UACb,cAAc,2BAChB,GAEJ,CAEJ",
6
+ "names": ["creditsCash_exports", "__export", "CreditsCash", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_RedeemableItem", "import_useRedeemableList", "import_helpers", "import_rulesModal", "import_shopify", "copy", "className", "hideTitle", "cardClassName", "authCodeActivate", "rules", "setRules", "redeemableList", "useRedeemableList", "locale", "variantMetafieldIdentifiers", "productByHandles", "item", "list", "product", "config", "alpcData", "variant", "index", "RedeemableItem", "RulesModal"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var g=(t,e,s,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of d(e))!m.call(t,r)&&r!==s&&n(t,r,{get:()=>e[r],enumerable:!(i=o(e,r))||i.enumerable});return t};var u=t=>g(n({},"__esModule",{value:!0}),t);var a={};module.exports=u(a);
2
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsCash/type.ts"],
4
+ "sourcesContent": ["import { ProductVariant, Product } from '@anker-in/shopify'\nimport { AlpcConsumeType } from '../context/const'\n\ntype RedeemableItemConfig = {\n title: string\n desc: string\n price: string\n credit: string\n rules: string\n image: {\n url: string\n }\n mobileImage: {\n url: string\n }\n redeemId: number\n}\n\nexport type CreditsCashCopy = {\n title: string\n list: (RedeemableItemConfig & {\n products: { handle: string; sku: string }[]\n })[]\n soldOut: string\n ruleLabel: string\n unlockRewards: string\n btnRedeem: string\n off: string\n insufficientCredits: string\n}\n\nexport type RedeemItem = {\n product: Product\n productVariant: ProductVariant\n alpcData: {\n id: number\n consumeCredits: number\n remainingInventory: number\n isLimited: boolean\n consumeType: AlpcConsumeType.Product\n showCredit: boolean\n title: string\n desc: string\n }\n config: RedeemableItemConfig\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["type_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var m=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var g=(t,e)=>{for(var o in e)m(t,o,{get:e[o],enumerable:!0})},y=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of v(e))!h.call(t,a)&&a!==o&&m(t,a,{get:()=>e[a],enumerable:!(i=u(e,a))||i.enumerable});return t};var N=t=>y(m({},"__esModule",{value:!0}),t);var k={};g(k,{FaqItem:()=>D});module.exports=N(k);var r=require("react/jsx-runtime"),d=require("@anker-in/headless-ui"),f=require("@heroicons/react/24/outline"),n=require("../../../../helpers/index"),b=require("framer-motion"),l=require("react");const D=({index:t,question:e,answer:o,showDots:i,itemRightIconRender:a,defaultExpended:c=!1})=>{const[p,x]=(0,l.useState)(c);return(0,l.useEffect)(()=>{t==0&&x(!0),e||x(!0)},[t,e]),(0,r.jsxs)("div",{className:(0,n.cn)("relative mx-0 border-b-[1px] border-[#e4e5e6] py-[24px] l:py-[16px]"),children:[(0,r.jsxs)("div",{className:"relative flex items-center",onClick:()=>{x(!p)},role:"button",tabIndex:0,onKeyDown:s=>{(s.key==="Enter"||s.key===" ")&&s.preventDefault()},children:[(0,r.jsx)(d.Heading,{html:e,as:"h3",className:(0,n.cn)(i?'before:absolute before:left-[-15px] before:top-[8px] before:h-[6px] before:w-[6px] before:rounded-[50%] before:bg-[#000] before:content-[""]':"","relative block flex-1 cursor-pointer pr-[10px] text-[18px] font-bold text-[#1D1D1F] l:text-[16px]")}),a?a({expanded:p}):(0,r.jsx)(f.ChevronDownIcon,{className:(0,n.cn)("size-[16px] shrink-0 cursor-pointer stroke-[2.5px] transition-all",p?"rotate-180":"")})]}),(0,r.jsx)(b.motion.div,{initial:!1,animate:{height:p?"auto":0},className:"overflow-hidden [&_td]:border [&_td]:border-[#333] [&_td]:px-[8px] [&_td]:py-[4px]",children:o?.toString()?.includes("https://www.youtube.com")?(0,r.jsx)(d.Text,{as:"div",className:(0,n.cn)("mt-[8px]"),"data-ratio":"16:9","data-content":o,html:o?.toString()}):(0,r.jsx)(d.Text,{as:"div",html:o?.toString(),className:(0,n.cn)("mt-[8px] text-[16px] font-bold leading-[1.5] text-[#3D3D3F] l:text-[14px] [&_a]:text-brand [&_a]:underline")})})]},t)};
2
+ //# sourceMappingURL=FaqItem.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/credits/creditsFaq/faqItem/FaqItem.tsx"],
4
+ "sourcesContent": ["import { Heading, Text } from '@anker-in/headless-ui'\nimport { ChevronDownIcon } from '@heroicons/react/24/outline'\nimport { cn } from '../../../../helpers/index'\nimport { motion } from 'framer-motion'\nimport { type ReactNode, useEffect, useState } from 'react'\n\ntype FaqItemProps = {\n index: number\n question?: string\n answer?: string | number\n showDots: boolean\n itemRightIconRender?: ({ expanded }: { expanded: boolean }) => ReactNode\n defaultExpended?: boolean\n}\n\nexport const FaqItem = ({\n index,\n question,\n answer,\n showDots,\n itemRightIconRender,\n defaultExpended = false,\n}: FaqItemProps) => {\n const [expanded, setExpanded] = useState(defaultExpended)\n useEffect(() => {\n if (index == 0) {\n setExpanded(true)\n }\n if (!question) {\n setExpanded(true)\n }\n }, [index, question])\n\n return (\n <div key={index} className={cn('relative mx-0 border-b-[1px] border-[#e4e5e6] py-[24px] l:py-[16px]')}>\n <div\n className='relative flex items-center'\n onClick={() => {\n setExpanded(!expanded)\n }}\n role='button'\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n <Heading\n html={question}\n as='h3'\n className={cn(\n showDots\n ? 'before:absolute before:left-[-15px] before:top-[8px] before:h-[6px] before:w-[6px] before:rounded-[50%] before:bg-[#000] before:content-[\"\"]'\n : '',\n 'relative block flex-1 cursor-pointer pr-[10px] text-[18px] font-bold text-[#1D1D1F] l:text-[16px]',\n )}\n ></Heading>\n {itemRightIconRender ? (\n itemRightIconRender({ expanded })\n ) : (\n <ChevronDownIcon\n className={cn(\n 'size-[16px] shrink-0 cursor-pointer stroke-[2.5px] transition-all',\n expanded ? 'rotate-180' : '',\n )}\n />\n )}\n </div>\n <motion.div\n initial={false}\n animate={{ height: !expanded ? 0 : 'auto' }}\n className='overflow-hidden [&_td]:border [&_td]:border-[#333] [&_td]:px-[8px] [&_td]:py-[4px]'\n >\n {answer?.toString()?.includes('https://www.youtube.com') ? (\n <Text\n as='div'\n className={cn('mt-[8px]')}\n data-ratio='16:9'\n data-content={answer}\n html={answer?.toString()}\n ></Text>\n ) : (\n <Text\n as='div'\n html={answer?.toString()}\n className={cn(\n 'mt-[8px] text-[16px] font-bold leading-[1.5] text-[#3D3D3F] l:text-[14px] [&_a]:text-brand [&_a]:underline',\n )}\n ></Text>\n )}\n </motion.div>\n </div>\n )\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAmCM,IAAAI,EAAA,6BAnCNC,EAA8B,iCAC9BC,EAAgC,uCAChCC,EAAmB,qCACnBC,EAAuB,yBACvBC,EAAoD,iBAW7C,MAAMP,EAAU,CAAC,CACtB,MAAAQ,EACA,SAAAC,EACA,OAAAC,EACA,SAAAC,EACA,oBAAAC,EACA,gBAAAC,EAAkB,EACpB,IAAoB,CAClB,KAAM,CAACC,EAAUC,CAAW,KAAI,YAASF,CAAe,EACxD,sBAAU,IAAM,CACVL,GAAS,GACXO,EAAY,EAAI,EAEbN,GACHM,EAAY,EAAI,CAEpB,EAAG,CAACP,EAAOC,CAAQ,CAAC,KAGlB,QAAC,OAAgB,aAAW,MAAG,sEAAsE,EACnG,qBAAC,OACC,UAAU,6BACV,QAAS,IAAM,CACbM,EAAY,CAACD,CAAQ,CACvB,EACA,KAAK,SACL,SAAU,EACV,UAAYE,GAAM,EACZA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,MACjCA,EAAE,eAAe,CAErB,EAEA,oBAAC,WACC,KAAMP,EACN,GAAG,KACH,aAAW,MACTE,EACI,+IACA,GACJ,mGACF,EACD,EACAC,EACCA,EAAoB,CAAE,SAAAE,CAAS,CAAC,KAEhC,OAAC,mBACC,aAAW,MACT,oEACAA,EAAW,aAAe,EAC5B,EACF,GAEJ,KACA,OAAC,SAAO,IAAP,CACC,QAAS,GACT,QAAS,CAAE,OAASA,EAAe,OAAJ,CAAW,EAC1C,UAAU,qFAET,SAAAJ,GAAQ,SAAS,GAAG,SAAS,yBAAyB,KACrD,OAAC,QACC,GAAG,MACH,aAAW,MAAG,UAAU,EACxB,aAAW,OACX,eAAcA,EACd,KAAMA,GAAQ,SAAS,EACxB,KAED,OAAC,QACC,GAAG,MACH,KAAMA,GAAQ,SAAS,EACvB,aAAW,MACT,4GACF,EACD,EAEL,IAzDQF,CA0DV,CAEJ",
6
+ "names": ["FaqItem_exports", "__export", "FaqItem", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_outline", "import_helpers", "import_framer_motion", "import_react", "index", "question", "answer", "showDots", "itemRightIconRender", "defaultExpended", "expanded", "setExpanded", "e"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var f=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var h=(e,s)=>{for(var r in s)f(e,r,{get:s[r],enumerable:!0})},q=(e,s,r,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let l of d(s))!T.call(e,l)&&l!==r&&f(e,l,{get:()=>s[l],enumerable:!(i=c(s,l))||i.enumerable});return e};var v=e=>q(f({},"__esModule",{value:!0}),e);var F={};h(F,{CreditsFaq:()=>w});module.exports=v(F);var a=require("react/jsx-runtime"),n=require("@anker-in/headless-ui"),u=require("../../../helpers/index"),o=require("react"),b=require("./faqItem/FaqItem");const w=({copy:e})=>{const{title:s,items:r,subTitle:i=""}=e||{},l=(0,o.useMemo)(()=>Array.from(new Set(r?.map?.(t=>t.category_name).filter(t=>!!t))),[r]),[g,p]=(0,o.useState)(l[0]?.toString()||""),x=(0,o.useMemo)(()=>r?l.length?r.filter(t=>t?.category_name===g):r:[],[r,l.length,g]);return(0,a.jsxs)(n.Container,{className:"bg-[#F5F5F7]",id:"faq",children:[s&&(0,a.jsx)(n.Heading,{as:"h2",size:"4",html:e?.title}),i&&(0,a.jsx)("div",{className:"mt-[8px] flex flex-row",children:(0,a.jsx)(n.Text,{size:"4",as:"p",html:i,className:"flex-1"})}),(0,a.jsx)(n.Tabs,{align:"left",shape:"rounded",className:"mt-[24px]",value:g.toString(),onValueChange:t=>{p(t)},children:(0,a.jsx)(n.TabsList,{children:l.map((t,m)=>(0,a.jsx)(n.TabsTrigger,{value:t?.toString()||"",children:t},m))})}),(0,a.jsx)("div",{className:(0,u.cn)("mt-[24px] flex flex-col overflow-auto pt-0"),children:x?.map((t,m)=>(0,a.jsx)(b.FaqItem,{index:m,defaultExpended:r.length===1,question:t.question,answer:t.answer,showDots:!1},m))}),e.learnMore?.link&&e.learnMore?.label&&(0,a.jsx)("a",{href:e.learnMore?.link,target:"_blank",className:"mt-[64px] block w-full text-center text-[18px] font-bold text-brand hover:underline l:text-[16px]",children:e.learnMore?.label})]})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsFaq/index.tsx"],
4
+ "sourcesContent": ["import { Container, Heading, Tabs, TabsList, TabsTrigger, Text } from '@anker-in/headless-ui'\nimport { cn } from '../../../helpers/index'\nimport { useMemo, useState } from 'react'\n\nimport { FaqItem } from './faqItem/FaqItem'\n\nexport type FaqCopy = {\n title: string\n subTitle: string\n learnMore: {\n link: string\n label: string\n }\n items: {\n category_name: string\n question: string\n answer: string\n }[]\n}\nexport const CreditsFaq = ({ copy }: { copy: FaqCopy }) => {\n const { title, items: faqList, subTitle = '' } = copy || {}\n const categoryList = useMemo(() => {\n return Array.from(new Set(faqList?.map?.(faq => faq.category_name).filter(item => !!item)))\n }, [faqList])\n const [activeTab, setActiveTab] = useState<string>(categoryList[0]?.toString() || '')\n\n const currentList = useMemo(() => {\n if (!faqList) return []\n if (categoryList.length) {\n return faqList.filter(item => item?.category_name === activeTab)\n }\n return faqList\n }, [faqList, categoryList.length, activeTab])\n\n return (\n <Container className=\"bg-[#F5F5F7]\" id=\"faq\">\n {title && <Heading as=\"h2\" size=\"4\" html={copy?.title} />}\n {subTitle && (\n <div className=\"mt-[8px] flex flex-row\">\n <Text size=\"4\" as=\"p\" html={subTitle} className=\"flex-1\" />\n </div>\n )}\n {/* faq-nav */}\n <Tabs\n align=\"left\"\n shape=\"rounded\"\n className=\"mt-[24px]\"\n value={activeTab.toString()}\n onValueChange={value => {\n setActiveTab(value)\n }}\n >\n <TabsList>\n {categoryList.map((item, index) => (\n <TabsTrigger key={index} value={item?.toString() || ''}>\n {item}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n <div className={cn('mt-[24px] flex flex-col overflow-auto pt-0')}>\n {currentList?.map((item, index) => {\n return (\n <FaqItem\n key={index}\n index={index}\n defaultExpended={faqList.length === 1}\n question={item.question}\n answer={item.answer}\n showDots={false}\n ></FaqItem>\n )\n })}\n </div>\n {copy.learnMore?.link && copy.learnMore?.label && (\n <a\n href={copy.learnMore?.link}\n target=\"_blank\"\n className=\"mt-[64px] block w-full text-center text-[18px] font-bold text-brand hover:underline l:text-[16px]\"\n >\n {copy.learnMore?.label}\n </a>\n )}\n </Container>\n )\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,IAAA,eAAAC,EAAAH,GAmCI,IAAAI,EAAA,6BAnCJC,EAAsE,iCACtEC,EAAmB,kCACnBC,EAAkC,iBAElCC,EAAwB,6BAejB,MAAMN,EAAa,CAAC,CAAE,KAAAO,CAAK,IAAyB,CACzD,KAAM,CAAE,MAAAC,EAAO,MAAOC,EAAS,SAAAC,EAAW,EAAG,EAAIH,GAAQ,CAAC,EACpDI,KAAe,WAAQ,IACpB,MAAM,KAAK,IAAI,IAAIF,GAAS,MAAMG,GAAOA,EAAI,aAAa,EAAE,OAAOC,GAAQ,CAAC,CAACA,CAAI,CAAC,CAAC,EACzF,CAACJ,CAAO,CAAC,EACN,CAACK,EAAWC,CAAY,KAAI,YAAiBJ,EAAa,CAAC,GAAG,SAAS,GAAK,EAAE,EAE9EK,KAAc,WAAQ,IACrBP,EACDE,EAAa,OACRF,EAAQ,OAAOI,GAAQA,GAAM,gBAAkBC,CAAS,EAE1DL,EAJc,CAAC,EAKrB,CAACA,EAASE,EAAa,OAAQG,CAAS,CAAC,EAE5C,SACE,QAAC,aAAU,UAAU,eAAe,GAAG,MACpC,UAAAN,MAAS,OAAC,WAAQ,GAAG,KAAK,KAAK,IAAI,KAAMD,GAAM,MAAO,EACtDG,MACC,OAAC,OAAI,UAAU,yBACb,mBAAC,QAAK,KAAK,IAAI,GAAG,IAAI,KAAMA,EAAU,UAAU,SAAS,EAC3D,KAGF,OAAC,QACC,MAAM,OACN,MAAM,UACN,UAAU,YACV,MAAOI,EAAU,SAAS,EAC1B,cAAeG,GAAS,CACtBF,EAAaE,CAAK,CACpB,EAEA,mBAAC,YACE,SAAAN,EAAa,IAAI,CAACE,EAAMK,OACvB,OAAC,eAAwB,MAAOL,GAAM,SAAS,GAAK,GACjD,SAAAA,GADeK,CAElB,CACD,EACH,EACF,KACA,OAAC,OAAI,aAAW,MAAG,4CAA4C,EAC5D,SAAAF,GAAa,IAAI,CAACH,EAAMK,OAErB,OAAC,WAEC,MAAOA,EACP,gBAAiBT,EAAQ,SAAW,EACpC,SAAUI,EAAK,SACf,OAAQA,EAAK,OACb,SAAU,IALLK,CAMN,CAEJ,EACH,EACCX,EAAK,WAAW,MAAQA,EAAK,WAAW,UACvC,OAAC,KACC,KAAMA,EAAK,WAAW,KACtB,OAAO,SACP,UAAU,oGAET,SAAAA,EAAK,WAAW,MACnB,GAEJ,CAEJ",
6
+ "names": ["creditsFaq_exports", "__export", "CreditsFaq", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_helpers", "import_react", "import_FaqItem", "copy", "title", "faqList", "subTitle", "categoryList", "faq", "item", "activeTab", "setActiveTab", "currentList", "value", "index"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var C=Object.create;var d=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var A=(e,i)=>{for(var s in i)d(e,s,{get:i[s],enumerable:!0})},b=(e,i,s,m)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of M(i))!R.call(e,o)&&o!==s&&d(e,o,{get:()=>i[o],enumerable:!(m=k(i,o))||m.enumerable});return e};var g=(e,i,s)=>(s=e!=null?C(h(e)):{},b(i||!e||!e.__esModule?d(s,"default",{value:e,enumerable:!0}):s,e)),z=e=>b(d({},"__esModule",{value:!0}),e);var B={};A(B,{CreditsInfoCard:()=>I});module.exports=z(B);var t=require("react/jsx-runtime"),a=require("@anker-in/headless-ui"),r=require("react"),u=require("../context/provider"),l=require("../../../helpers"),f=require("../context/utils"),y=g(require("../modal/activitiesModal")),w=g(require("../modal/MyRewardsModal"));function I({data:e}){const[i,s]=(0,r.useState)(!1),[m,o]=(0,r.useState)(!1),[c,p]=(0,r.useState)(!1),N=(0,r.useCallback)(n=>{if(n.type)switch(n.type){case"activities":s(!0);break;case"rewards":o(!0);break}},[]),{creditInfo:x}=(0,u.useCreditsContext)();return(0,t.jsxs)(a.Container,{asChild:!0,id:"infoCard",className:"-mb-[86px] -translate-y-[86px] x:-mb-[30px] x:-translate-y-[30px]",children:[(0,t.jsxs)("div",{className:(0,l.cn)("mx-auto flex justify-between items-center rounded-[12px] border border-white px-[24px] py-[40px]","l:flex-col","min-l:px-[48px]","min-xl:px-[100px]"),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:[(0,t.jsxs)("div",{className:(0,l.cn)("grid grid-cols-2 gap-[24px] font-bold md:grid-cols-1 md:flex-col md:gap-[16px] min-md:items-center"),children:[(0,t.jsxs)("div",{className:"mr-[80px] md:mr-[0] md:flex-1 md-xl:mr-[64px]",children:[(0,t.jsx)("div",{className:(0,l.cn)("mb-[24px] text-[14px] font-bold l:mb-[6px] xl:text-[16px] min-md:text-[18px] l-xl:mb-[16px]"),children:e.balanceLabel}),(0,t.jsxs)("div",{className:"flex items-baseline",children:[(0,t.jsx)("div",{className:(0,l.cn)("mr-[8px] text-[36px] font-extrabold","min-md:text-[44px]","min-xl:text-[56px]"),children:x?(0,f.numberFormat)(x.available_credit):0}),(0,t.jsx)("div",{className:"text-[16px]",children:e?.pointUnit})]})]}),(0,t.jsxs)("div",{className:"w-fit md:flex-1",children:[(0,t.jsxs)("div",{className:(0,l.cn)("mb-[24px] flex text-[18px] l:mb-[6px] l:text-[14px] l-xl:mb-[16px]"),children:[(0,t.jsx)(a.Text,{className:"text-[14px] font-bold xl:text-[16px] min-md:text-[18px]",html:e.comingSoonLabel}),e.comingSoonTips&&(0,t.jsxs)("div",{className:"group relative ml-[4px] flex cursor-pointer items-start",children:[(0,t.jsx)(a.Text,{as:"div",html:e?.infoIcon,className:"size-[18px] cursor-pointer [&_svg]:size-full",onClick:()=>{c?p(!1):(p(!0),setTimeout(()=>{p(!1)},5e3))}}),(0,t.jsx)("div",{className:(0,l.cn)("absolute -bottom-[12px] -left-[32px] z-10 w-[356px] translate-y-full md:w-[276px]",c?"block":"hidden"),children:(0,t.jsxs)("div",{className:"relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow",children:[(0,t.jsx)(a.Text,{size:"2",html:e.comingSoonTips,className:"desktop:text-[18px]"}),(0,t.jsx)("div",{className:"absolute -top-[10px] left-[40px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]"})]})})]})]}),(0,t.jsxs)("div",{className:"flex items-baseline ",children:[(0,t.jsx)("div",{className:(0,l.cn)("mr-[8px] text-[36px] font-extrabold","min-l:text-[44px]","min-xl:text-[56px]"),children:x?(0,f.numberFormat)(x.pending_credit):0}),(0,t.jsx)("div",{className:"text-[16px]",children:e?.pointUnit})]})]})]}),(0,t.jsx)("div",{className:(0,l.cn)("grid w-fit md:w-full l:mt-[32px] l:gap-[12px] min-l:gap-[16px] min-l:pl-[48px] md-l:grid-cols-2"),children:e.buttons?.map((n,v)=>(0,t.jsx)(a.Button,{variant:v===0?"secondary":"primary",size:"lg",className:"min-w-[156px] laptop:min-w-[189px]",onClick:()=>{N(n)},children:n.text},v))}),e?.myActivities&&(0,t.jsx)(y.default,{isOpen:i,data:e?.myActivities,onClose:()=>{s(!1)}}),e?.myRewards&&(0,t.jsx)(w.default,{isOpen:m,data:e?.myRewards,onClose:()=>{o(!1)}})]}),c&&(0,t.jsx)("div",{role:"button",tabIndex:0,className:"fixed inset-0 z-10",onClick:()=>p(!1),onKeyDown:n=>n.key==="Escape"&&p(!1)})]})}
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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 { cn } from '../../../helpers'\nimport { numberFormat } from '../context/utils'\nimport ActivitiesModal from '../modal/activitiesModal'\nimport MyRewardsModal, { type MyRewardsMetafields } from '../modal/MyRewardsModal'\nimport { type MyActivitiesMetafields } from '../modal/activitiesModal'\n\ntype ButtonConfig = {\n text: string\n type: 'activities' | 'rewards'\n}\nexport interface InfoCardProps {\n data: {\n balanceLabel: string\n comingSoonLabel: string\n comingSoonTips: string\n buttons: ButtonConfig[]\n pointUnit: string\n infoIcon: string\n myActivities: MyActivitiesMetafields\n myRewards: MyRewardsMetafields\n }\n}\nexport function CreditsInfoCard({ data }: InfoCardProps) {\n const [openActivities, setOpenActivities] = useState(false)\n const [openRewards, setOpenRewards] = useState(false)\n const [hover, setHover] = useState<boolean>(false)\n\n const handleButtonClick = useCallback((buttonConfig: ButtonConfig) => {\n // gaNormalClick({ position: 'info_card', label: buttonConfig.text })\n\n if (buttonConfig.type) {\n switch (buttonConfig.type) {\n case 'activities':\n setOpenActivities(true)\n break\n case 'rewards':\n setOpenRewards(true)\n break\n }\n }\n }, [])\n\n const { creditInfo } = useCreditsContext()\n\n return (\n <Container asChild id=\"infoCard\" 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',\n 'min-l:px-[48px]',\n 'min-xl:px-[100px]'\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 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 {data.balanceLabel}\n </div>\n <div className=\"flex items-baseline\">\n <div className={cn('mr-[8px] text-[36px] font-extrabold', 'min-md:text-[44px]', 'min-xl:text-[56px]')}>\n {creditInfo ? numberFormat(creditInfo.available_credit) : 0}\n </div>\n <div className=\"text-[16px]\">{data?.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={data.comingSoonLabel} />\n {data.comingSoonTips && (\n <div className=\"group relative ml-[4px] flex cursor-pointer items-start\">\n <Text\n as=\"div\"\n html={data?.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 className=\"relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow\">\n <Text size=\"2\" html={data.comingSoonTips} className=\"desktop:text-[18px]\" />\n <div className=\"absolute -top-[10px] left-[40px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]\" />\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]\">{data?.pointUnit}</div>\n </div>\n </div>\n </div>\n <div\n className={cn(\n 'grid w-fit md:w-full l:mt-[32px] l:gap-[12px] min-l:gap-[16px] min-l:pl-[48px] md-l:grid-cols-2'\n )}\n >\n {data.buttons?.map((item, index) => (\n <Button\n key={index}\n variant={index === 0 ? 'secondary' : 'primary'}\n size=\"lg\"\n className=\"min-w-[156px] laptop:min-w-[189px]\"\n onClick={() => {\n handleButtonClick(item)\n }}\n >\n {item.text}\n </Button>\n ))}\n </div>\n\n {data?.myActivities && (\n <ActivitiesModal\n isOpen={openActivities}\n data={data?.myActivities}\n onClose={() => {\n setOpenActivities(false)\n }}\n />\n )}\n {data?.myRewards && (\n <MyRewardsModal\n isOpen={openRewards}\n data={data?.myRewards}\n onClose={() => {\n setOpenRewards(false)\n }}\n ></MyRewardsModal>\n )}\n </div>\n {hover && (\n <div\n role=\"button\"\n tabIndex={0}\n className=\"fixed inset-0 z-10\"\n onClick={() => setHover(false)}\n onKeyDown={e => e.key === 'Escape' && setHover(false)}\n />\n )}\n </Container>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAqEY,IAAAI,EAAA,6BArEZC,EAAwC,iCAExCC,EAAsC,iBACtCC,EAAkC,+BAClCC,EAAmB,4BACnBC,EAA6B,4BAC7BC,EAA4B,uCAC5BC,EAAyD,sCAmBlD,SAAST,EAAgB,CAAE,KAAAU,CAAK,EAAkB,CACvD,KAAM,CAACC,EAAgBC,CAAiB,KAAI,YAAS,EAAK,EACpD,CAACC,EAAaC,CAAc,KAAI,YAAS,EAAK,EAC9C,CAACC,EAAOC,CAAQ,KAAI,YAAkB,EAAK,EAE3CC,KAAoB,eAAaC,GAA+B,CAGpE,GAAIA,EAAa,KACf,OAAQA,EAAa,KAAM,CACzB,IAAK,aACHN,EAAkB,EAAI,EACtB,MACF,IAAK,UACHE,EAAe,EAAI,EACnB,KACJ,CAEJ,EAAG,CAAC,CAAC,EAEC,CAAE,WAAAK,CAAW,KAAI,qBAAkB,EAEzC,SACE,QAAC,aAAU,QAAO,GAAC,GAAG,WAAW,UAAU,oEACzC,qBAAC,OACC,aAAW,MACT,mGACA,aACA,kBACA,mBACF,EACA,MAAO,CACL,WACE,gIACF,eAAgB,WAClB,EAEA,qBAAC,OACC,aAAW,MACT,oGACF,EAEA,qBAAC,OAAI,UAAU,gDACb,oBAAC,OACC,aAAW,MACT,6FACF,EAEC,SAAAT,EAAK,aACR,KACA,QAAC,OAAI,UAAU,sBACb,oBAAC,OAAI,aAAW,MAAG,sCAAuC,qBAAsB,oBAAoB,EACjG,SAAAS,KAAa,gBAAaA,EAAW,gBAAgB,EAAI,EAC5D,KACA,OAAC,OAAI,UAAU,cAAe,SAAAT,GAAM,UAAU,GAChD,GACF,KACA,QAAC,OAAI,UAAU,kBACb,qBAAC,OAAI,aAAW,MAAG,oEAAoE,EACrF,oBAAC,QAAK,UAAU,0DAA0D,KAAMA,EAAK,gBAAiB,EACrGA,EAAK,mBACJ,QAAC,OAAI,UAAU,0DACb,oBAAC,QACC,GAAG,MACH,KAAMA,GAAM,SACZ,UAAU,+CACV,QAAS,IAAM,CACTK,EACFC,EAAS,EAAK,GAEdA,EAAS,EAAI,EACb,WAAW,IAAM,CACfA,EAAS,EAAK,CAChB,EAAG,GAAI,EAEX,EACF,KACA,OAAC,OACC,aAAW,MACT,oFACAD,EAAQ,QAAU,QACpB,EAEA,oBAAC,OAAI,UAAU,0FACb,oBAAC,QAAK,KAAK,IAAI,KAAML,EAAK,eAAgB,UAAU,sBAAsB,KAC1E,OAAC,OAAI,UAAU,mHAAmH,GACpI,EACF,GACF,GAEJ,KACA,QAAC,OAAI,UAAU,uBACb,oBAAC,OAAI,aAAW,MAAG,sCAAuC,oBAAqB,oBAAoB,EAChG,SAAAS,KAAa,gBAAaA,EAAW,cAAc,EAAI,EAC1D,KACA,OAAC,OAAI,UAAU,cAAe,SAAAT,GAAM,UAAU,GAChD,GACF,GACF,KACA,OAAC,OACC,aAAW,MACT,iGACF,EAEC,SAAAA,EAAK,SAAS,IAAI,CAACU,EAAMC,OACxB,OAAC,UAEC,QAASA,IAAU,EAAI,YAAc,UACrC,KAAK,KACL,UAAU,qCACV,QAAS,IAAM,CACbJ,EAAkBG,CAAI,CACxB,EAEC,SAAAA,EAAK,MARDC,CASP,CACD,EACH,EAECX,GAAM,iBACL,OAAC,EAAAY,QAAA,CACC,OAAQX,EACR,KAAMD,GAAM,aACZ,QAAS,IAAM,CACbE,EAAkB,EAAK,CACzB,EACF,EAEDF,GAAM,cACL,OAAC,EAAAa,QAAA,CACC,OAAQV,EACR,KAAMH,GAAM,UACZ,QAAS,IAAM,CACbI,EAAe,EAAK,CACtB,EACD,GAEL,EACCC,MACC,OAAC,OACC,KAAK,SACL,SAAU,EACV,UAAU,qBACV,QAAS,IAAMC,EAAS,EAAK,EAC7B,UAAWQ,GAAKA,EAAE,MAAQ,UAAYR,EAAS,EAAK,EACtD,GAEJ,CAEJ",
6
+ "names": ["creditsInfoCard_exports", "__export", "CreditsInfoCard", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_provider", "import_helpers", "import_utils", "import_activitiesModal", "import_MyRewardsModal", "data", "openActivities", "setOpenActivities", "openRewards", "setOpenRewards", "hover", "setHover", "handleButtonClick", "buttonConfig", "creditInfo", "item", "index", "ActivitiesModal", "MyRewardsModal", "e"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var h=Object.create;var p=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var N=(o,t)=>{for(var n in t)p(o,n,{get:t[n],enumerable:!0})},u=(o,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of k(t))!E.call(o,l)&&l!==n&&p(o,l,{get:()=>t[l],enumerable:!(a=C(t,l))||a.enumerable});return o};var f=(o,t,n)=>(n=o!=null?h(w(o)):{},u(t||!o||!o.__esModule?p(n,"default",{value:o,enumerable:!0}):n,o)),D=o=>u(p({},"__esModule",{value:!0}),o);var A={};N(A,{CountrySelect:()=>S});module.exports=D(A);var s=require("react/jsx-runtime"),g=require("@anker-in/headless-ui"),m=f(require("../../context/hooks/useClickOutside")),r=f(require("classnames")),i=require("react");function S({countries:o,loading:t,className:n,value:a,onChange:l}){const[x,c]=(0,i.useState)(!1),[b,d]=(0,i.useState)(""),v=(0,m.default)(()=>{c(!1)});return(0,i.useEffect)(()=>{const e=o.filter(y=>y.code===a);e.length&&d(e[0].name)},[d,o,a]),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("select",{className:(0,r.default)("!h-[50px] pr-[45px] min-l:hidden",n),style:{WebkitTextFillColor:"black"},disabled:t,value:a,onChange:e=>{l(e.target.value)},children:o.map(e=>(0,s.jsx)("option",{value:e.code,children:e.name},e.code))}),(0,s.jsx)("div",{className:(0,r.default)("absolute left-0 top-0 hidden !h-[50px] rounded-[2px] pr-[45px] text-[16px] font-bold focus:!border-[#6D6D6F] min-l:!block",n),onClick:()=>{c(!0)},role:"button",tabIndex:0,onKeyDown:e=>{(e.key==="Enter"||e.key===" ")&&e.preventDefault()},children:b}),(0,s.jsx)(g.Picture,{source:"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500",imgClassName:"pointer-events-none absolute right-0 top-0 bottom-0 !w-[45px] object-cover",alt:"arrow"}),(0,s.jsx)("div",{ref:v,className:(0,r.default)("absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto rounded-[4px] bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]",{"!hidden":!x}),children:(0,s.jsx)("ul",{className:"py-[6px]",children:o.map(e=>(0,s.jsxs)("li",{value:e.code,className:(0,r.default)("relative px-[14px] py-[17px] text-[16px] font-bold leading-[1] transition hover:bg-[#EAEAEC]",{"!bg-[#EAEAEC]":e.code===a}),children:[(0,s.jsx)("button",{className:"absolute left-0 top-0 z-1 size-full opacity-0",value:e.code,onClick:()=>{d(e.name),c(!1),l(e.code)}}),e.name]},e.code))})})]})}
2
+ //# sourceMappingURL=CountrySelect.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/credits/creditsRedeemList/AddressForm/CountrySelect.tsx"],
4
+ "sourcesContent": ["import { Picture } from '@anker-in/headless-ui'\nimport useClickOutside from '../../context/hooks/useClickOutside'\nimport classNames from 'classnames'\nimport { useEffect, useState } from 'react'\n\ninterface Country {\n id: string\n code: string\n name: string\n}\n\ninterface CountrySelectProps {\n countries: Country[]\n loading?: boolean\n className?: string\n value?: string\n onChange: (code: string) => void\n}\n\nexport function CountrySelect({ countries, loading, className, value, onChange }: CountrySelectProps) {\n const [show, setShow] = useState(false)\n const [display, setDisplay] = useState<any>('')\n\n const dorpdown = useClickOutside<HTMLDivElement>(() => {\n setShow(false)\n })\n\n useEffect(() => {\n const target = countries.filter(item => item.code === value)\n if (target.length) setDisplay(target[0].name)\n }, [setDisplay, countries, value])\n\n return (\n <div className=\"relative\">\n <select\n className={classNames('!h-[50px] pr-[45px] min-l:hidden', className)}\n style={{\n WebkitTextFillColor: 'black',\n }}\n disabled={loading}\n value={value}\n onChange={event => {\n onChange(event.target.value)\n }}\n >\n {countries.map((item: { id: string; name: string; code: string }) => (\n <option key={item.code} value={item.code}>\n {item.name}\n </option>\n ))}\n </select>\n\n <div\n className={classNames(\n 'absolute left-0 top-0 hidden !h-[50px] rounded-[2px] pr-[45px] text-[16px] font-bold focus:!border-[#6D6D6F] min-l:!block',\n className\n )}\n onClick={() => {\n setShow(true)\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {display}\n </div>\n\n <Picture\n source=\"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500\"\n imgClassName=\"pointer-events-none absolute right-0 top-0 bottom-0 !w-[45px] object-cover\"\n alt=\"arrow\"\n />\n\n <div\n ref={dorpdown}\n className={classNames(\n 'absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto rounded-[4px] bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]',\n { '!hidden': !show }\n )}\n >\n <ul className=\"py-[6px]\">\n {countries.map((item: { id: string; name: string; code: string }) => (\n <li\n key={item.code}\n value={item.code}\n className={classNames(\n 'relative px-[14px] py-[17px] text-[16px] font-bold leading-[1] transition hover:bg-[#EAEAEC]',\n { '!bg-[#EAEAEC]': item.code === value }\n )}\n >\n <button\n className=\"absolute left-0 top-0 z-1 size-full opacity-0\"\n value={item.code}\n onClick={() => {\n setDisplay(item.name)\n setShow(false)\n onChange(item.code)\n }}\n />\n {item.name}\n </li>\n ))}\n </ul>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GA8CU,IAAAI,EAAA,6BA9CVC,EAAwB,iCACxBC,EAA4B,kDAC5BC,EAAuB,yBACvBC,EAAoC,iBAgB7B,SAASN,EAAc,CAAE,UAAAO,EAAW,QAAAC,EAAS,UAAAC,EAAW,MAAAC,EAAO,SAAAC,CAAS,EAAuB,CACpG,KAAM,CAACC,EAAMC,CAAO,KAAI,YAAS,EAAK,EAChC,CAACC,EAASC,CAAU,KAAI,YAAc,EAAE,EAExCC,KAAW,EAAAC,SAAgC,IAAM,CACrDJ,EAAQ,EAAK,CACf,CAAC,EAED,sBAAU,IAAM,CACd,MAAMK,EAASX,EAAU,OAAOY,GAAQA,EAAK,OAAST,CAAK,EACvDQ,EAAO,QAAQH,EAAWG,EAAO,CAAC,EAAE,IAAI,CAC9C,EAAG,CAACH,EAAYR,EAAWG,CAAK,CAAC,KAG/B,QAAC,OAAI,UAAU,WACb,oBAAC,UACC,aAAW,EAAAU,SAAW,mCAAoCX,CAAS,EACnE,MAAO,CACL,oBAAqB,OACvB,EACA,SAAUD,EACV,MAAOE,EACP,SAAUW,GAAS,CACjBV,EAASU,EAAM,OAAO,KAAK,CAC7B,EAEC,SAAAd,EAAU,IAAKY,MACd,OAAC,UAAuB,MAAOA,EAAK,KACjC,SAAAA,EAAK,MADKA,EAAK,IAElB,CACD,EACH,KAEA,OAAC,OACC,aAAW,EAAAC,SACT,4HACAX,CACF,EACA,QAAS,IAAM,CACbI,EAAQ,EAAI,CACd,EACA,KAAK,SACL,SAAU,EACV,UAAW,GAAK,EACV,EAAE,MAAQ,SAAW,EAAE,MAAQ,MACjC,EAAE,eAAe,CAErB,EAEC,SAAAC,EACH,KAEA,OAAC,WACC,OAAO,yFACP,aAAa,6EACb,IAAI,QACN,KAEA,OAAC,OACC,IAAKE,EACL,aAAW,EAAAI,SACT,sJACA,CAAE,UAAW,CAACR,CAAK,CACrB,EAEA,mBAAC,MAAG,UAAU,WACX,SAAAL,EAAU,IAAKY,MACd,QAAC,MAEC,MAAOA,EAAK,KACZ,aAAW,EAAAC,SACT,+FACA,CAAE,gBAAiBD,EAAK,OAAST,CAAM,CACzC,EAEA,oBAAC,UACC,UAAU,gDACV,MAAOS,EAAK,KACZ,QAAS,IAAM,CACbJ,EAAWI,EAAK,IAAI,EACpBN,EAAQ,EAAK,EACbF,EAASQ,EAAK,IAAI,CACpB,EACF,EACCA,EAAK,OAhBDA,EAAK,IAiBZ,CACD,EACH,EACF,GACF,CAEJ",
6
+ "names": ["CountrySelect_exports", "__export", "CountrySelect", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_useClickOutside", "import_classnames", "import_react", "countries", "loading", "className", "value", "onChange", "show", "setShow", "display", "setDisplay", "dorpdown", "useClickOutside", "target", "item", "classNames", "event"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var n=(t,o)=>{for(var e in o)s(t,e,{get:o[e],enumerable:!0})},f=(t,o,e,p)=>{if(o&&typeof o=="object"||typeof o=="function")for(let m of d(o))!l.call(t,m)&&m!==e&&s(t,m,{get:()=>o[m],enumerable:!(p=x(o,m))||p.enumerable});return t};var h=t=>f(s({},"__esModule",{value:!0}),t);var v={};n(v,{FormItem:()=>a});module.exports=h(v);var i=require("react/jsx-runtime"),r=require("@anker-in/headless-ui");const a=({error:t,children:o,label:e,required:p})=>(0,i.jsxs)("div",{children:[e&&(0,i.jsx)(r.Text,{html:p?`${e} *`:e,className:"text-[16px] font-bold"}),(0,i.jsx)("div",{className:"mt-[8px] h-[50px] w-full text-[14px] font-semibold",children:o}),t&&typeof t=="string"&&(0,i.jsx)(r.Text,{as:"div",html:t,className:"mt-[8px] text-[16px] font-bold text-[#FF4D4D]"})]});
2
+ //# sourceMappingURL=FormItem.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/credits/creditsRedeemList/AddressForm/FormItem.tsx"],
4
+ "sourcesContent": ["import { Text } from '@anker-in/headless-ui'\nimport { type PropsWithChildren } from 'react'\n\nexport const FormItem = ({\n error,\n children,\n label,\n required,\n}: PropsWithChildren<{\n label?: string\n required: boolean\n error?: string\n}>) => {\n return (\n <div>\n {label && <Text html={required ? `${label} *` : label} className=\"text-[16px] font-bold\"></Text>}\n <div className=\"mt-[8px] h-[50px] w-full text-[14px] font-semibold\">{children}</div>\n {error && typeof error === 'string' && (\n <Text as=\"div\" html={error} className=\"mt-[8px] text-[16px] font-bold text-[#FF4D4D]\" />\n )}\n </div>\n )\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GAcI,IAAAI,EAAA,6BAdJC,EAAqB,iCAGd,MAAMH,EAAW,CAAC,CACvB,MAAAI,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,CACF,OAMI,QAAC,OACE,UAAAD,MAAS,OAAC,QAAK,KAAMC,EAAW,GAAGD,CAAK,KAAOA,EAAO,UAAU,wBAAwB,KACzF,OAAC,OAAI,UAAU,qDAAsD,SAAAD,EAAS,EAC7ED,GAAS,OAAOA,GAAU,aACzB,OAAC,QAAK,GAAG,MAAM,KAAMA,EAAO,UAAU,gDAAgD,GAE1F",
6
+ "names": ["FormItem_exports", "__export", "FormItem", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "error", "children", "label", "required"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var v=Object.create;var u=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var D=(e,n)=>{for(var t in n)u(e,t,{get:n[t],enumerable:!0})},i=(e,n,t,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of E(n))!C.call(e,r)&&r!==t&&u(e,r,{get:()=>n[r],enumerable:!(a=x(n,r))||a.enumerable});return e};var I=(e,n,t)=>(t=e!=null?v(F(e)):{},i(n||!e||!e.__esModule?u(t,"default",{value:e,enumerable:!0}):t,e)),T=e=>i(u({},"__esModule",{value:!0}),e);var H={};D(H,{Input:()=>R});module.exports=T(H);var h=require("react/jsx-runtime"),f=I(require("classnames")),o=require("react");function R({className:e,error:n,value:t,placeholder:a,disabled:r,onChange:p,onBlur:c}){const[L,l]=(0,o.useState)(!1);(0,o.useEffect)(()=>{t&&l(!0)},[t]);const g=(0,o.useCallback)(s=>{const d=s.currentTarget.value;d&&l(!!d),p(s)},[p]),b=(0,o.useCallback)(s=>{l(!!s.currentTarget.value),c&&c()},[c]),m=(0,o.useCallback)(()=>{l(!0)},[]);return(0,h.jsx)("input",{className:(0,f.default)("w-full rounded-[2px] border border-[#6D6D6F] p-[14px] text-[16px] font-bold placeholder:text-[16px] placeholder:font-bold placeholder:text-[#6D6D6F] focus:outline-none focus:ring-0",e,n&&"border-[#FF4D4D]"),value:t,placeholder:a,disabled:r,onChange:g,onBlur:b,onFocus:m})}
2
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/credits/creditsRedeemList/AddressForm/Input.tsx"],
4
+ "sourcesContent": ["import classNames from 'classnames'\nimport React, { useCallback, useEffect, useState } from 'react'\n\ninterface InputProps {\n className?: string\n value: string\n error?: string | boolean\n placeholder: string\n required?: boolean\n disabled?: boolean\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void\n onBlur?: () => void\n}\n\nexport function Input({ className, error, value, placeholder, disabled, onChange, onBlur }: InputProps) {\n const [focus, setFocus] = useState(false)\n\n useEffect(() => {\n if (value) setFocus(true)\n }, [value])\n\n const handleOnChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.currentTarget.value\n if (val) setFocus(!!val)\n onChange(event)\n },\n [onChange],\n )\n\n const handleOnBlur = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setFocus(!!event.currentTarget.value)\n onBlur && onBlur()\n },\n [onBlur],\n )\n\n const handleOnFocus = useCallback(() => {\n setFocus(true)\n }, [])\n\n return (\n <input\n className={classNames(\n 'w-full rounded-[2px] border border-[#6D6D6F] p-[14px] text-[16px] font-bold placeholder:text-[16px] placeholder:font-bold placeholder:text-[#6D6D6F] focus:outline-none focus:ring-0',\n className,\n error && 'border-[#FF4D4D]',\n )}\n value={value}\n placeholder={placeholder}\n disabled={disabled}\n onChange={handleOnChange}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n ></input>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,IAAA,eAAAC,EAAAH,GA2CI,IAAAI,EAAA,6BA3CJC,EAAuB,yBACvBC,EAAwD,iBAajD,SAASJ,EAAM,CAAE,UAAAK,EAAW,MAAAC,EAAO,MAAAC,EAAO,YAAAC,EAAa,SAAAC,EAAU,SAAAC,EAAU,OAAAC,CAAO,EAAe,CACtG,KAAM,CAACC,EAAOC,CAAQ,KAAI,YAAS,EAAK,KAExC,aAAU,IAAM,CACVN,GAAOM,EAAS,EAAI,CAC1B,EAAG,CAACN,CAAK,CAAC,EAEV,MAAMO,KAAiB,eACpBC,GAA+C,CAC9C,MAAMC,EAAMD,EAAM,cAAc,MAC5BC,GAAKH,EAAS,CAAC,CAACG,CAAG,EACvBN,EAASK,CAAK,CAChB,EACA,CAACL,CAAQ,CACX,EAEMO,KAAe,eAClBF,GAA+C,CAC9CF,EAAS,CAAC,CAACE,EAAM,cAAc,KAAK,EACpCJ,GAAUA,EAAO,CACnB,EACA,CAACA,CAAM,CACT,EAEMO,KAAgB,eAAY,IAAM,CACtCL,EAAS,EAAI,CACf,EAAG,CAAC,CAAC,EAEL,SACE,OAAC,SACC,aAAW,EAAAM,SACT,uLACAd,EACAC,GAAS,kBACX,EACA,MAAOC,EACP,YAAaC,EACb,SAAUC,EACV,SAAUK,EACV,OAAQG,EACR,QAASC,EACV,CAEL",
6
+ "names": ["Input_exports", "__export", "Input", "__toCommonJS", "import_jsx_runtime", "import_classnames", "import_react", "className", "error", "value", "placeholder", "disabled", "onChange", "onBlur", "focus", "setFocus", "handleOnChange", "event", "val", "handleOnBlur", "handleOnFocus", "classNames"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var w=Object.create;var p=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var F=(n,o)=>{for(var l in o)p(n,l,{get:o[l],enumerable:!0})},g=(n,o,l,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of N(o))!C.call(n,a)&&a!==l&&p(n,a,{get:()=>o[a],enumerable:!(r=S(o,a))||r.enumerable});return n};var v=(n,o,l)=>(l=n!=null?w(j(n)):{},g(o||!n||!n.__esModule?p(l,"default",{value:n,enumerable:!0}):l,n)),D=n=>g(p({},"__esModule",{value:!0}),n);var z={};F(z,{StateSelect:()=>_});module.exports=D(z);var t=require("react/jsx-runtime"),d=v(require("classnames")),x=require("@anker-in/headless-ui"),s=require("react"),m=v(require("../../context/hooks/useClickOutside"));function _({states:n,stateName:o="",stateCode:l="",className:r="",onChange:a}){const[h,u]=(0,s.useState)(!1),[b,f]=(0,s.useState)(""),y=(0,m.default)(()=>{u(!1)}),c=(0,s.useMemo)(()=>{const e=n.find(i=>l?i.code===l:i.name===o);return e?[e?.id,e?.name,e?.code].join(","):""},[n,l,o]);return(0,s.useEffect)(()=>{const e=n.filter(i=>[i.id,i.name,i.code].join(",")===c);e.length&&f(e[0].name)},[f,n,c]),(0,t.jsx)("div",{className:"relative h-full",children:n.length?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("select",{className:(0,d.default)("h-[52px] pr-[45px] min-l:hidden",r),value:c,style:{WebkitTextFillColor:c?"black":"#666"},onChange:e=>{const[,i,k]=e.target.value.split(",");a(k,i)},children:n.map(e=>(0,t.jsx)("option",{value:[e.id,e.name,e.code].join(","),children:e.name},e.id))}),(0,t.jsx)("div",{className:(0,d.default)("absolute left-0 top-0 hidden h-[52px] pr-[45px] min-l:!block",r),onClick:()=>{u(!0)},role:"button",tabIndex:0,onKeyDown:e=>{(e.key==="Enter"||e.key===" ")&&e.preventDefault()},children:b}),(0,t.jsx)(x.Picture,{source:"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500",className:"pointer-events-none absolute right-0 top-1/2 h-[45px] !w-[45px] -translate-y-1/2 object-cover",alt:"arrow"}),(0,t.jsx)("div",{ref:y,className:(0,d.default)("absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto rounded-[4px] bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]",{"!hidden":!h}),children:(0,t.jsx)("ul",{className:"py-[6px]",children:n.map(e=>(0,t.jsxs)("li",{value:[e.id,e.name,e.code].join(","),className:(0,d.default)("relative px-[14px] py-[17px] text-[16px] font-semibold leading-[1] transition hover:bg-[#F7F8F9]",{"!bg-[#e8e8e8]":[e.id,e.name,e.code].join(",")===c}),children:[(0,t.jsx)("button",{className:"absolute left-0 top-0 z-1 size-full opacity-0",value:[e.id,e.name,e.code].join(","),onClick:()=>{f(e.name),u(!1),a(e.code,e.name)}}),e.name]},e.id))})})]}):(0,t.jsx)("input",{className:r,value:o,style:{WebkitTextFillColor:"black"},onChange:e=>{a("",e.target.value)}})})}
2
+ //# sourceMappingURL=StateSelect.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/credits/creditsRedeemList/AddressForm/StateSelect.tsx"],
4
+ "sourcesContent": ["import classNames from 'classnames'\nimport { Picture } from '@anker-in/headless-ui'\nimport { useEffect, useMemo, useState } from 'react'\nimport useClickOutside from '../../context/hooks/useClickOutside'\n\ninterface StateSelectProps {\n states: { code: string; id: string; name: string }[]\n className?: string\n countryId?: string\n defaultCode?: string\n stateName?: string\n stateCode?: string\n onChange: (code: string, name: string) => void\n}\n\nexport function StateSelect({ states, stateName = '', stateCode = '', className = '', onChange }: StateSelectProps) {\n const [show, setShow] = useState(false)\n const [display, setDisplay] = useState<any>('')\n\n const dropdown = useClickOutside<HTMLDivElement>(() => {\n setShow(false)\n })\n\n const value = useMemo(() => {\n const currentState = states.find(item => (stateCode ? item.code === stateCode : item.name === stateName))\n\n return currentState ? [currentState?.id, currentState?.name, currentState?.code].join(',') : ''\n }, [states, stateCode, stateName])\n\n useEffect(() => {\n const target = states.filter(item => [item.id, item.name, item.code].join(',') === value)\n if (target.length) setDisplay(target[0].name)\n }, [setDisplay, states, value])\n\n return (\n <div className=\"relative h-full\">\n {states.length ? (\n <>\n <select\n className={classNames('h-[52px] pr-[45px] min-l:hidden', className)}\n value={value}\n style={{\n WebkitTextFillColor: value ? 'black' : '#666',\n }}\n onChange={event => {\n const [, name, code] = event.target.value.split(',')\n onChange(code, name)\n }}\n >\n {states.map((item: { id: string; name: string; code: string }) => (\n <option key={item.id} value={[item.id, item.name, item.code].join(',')}>\n {item.name}\n </option>\n ))}\n </select>\n <div\n className={classNames('absolute left-0 top-0 hidden h-[52px] pr-[45px] min-l:!block', className)}\n onClick={() => {\n setShow(true)\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {display}\n </div>\n\n <Picture\n source=\"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500\"\n className=\"pointer-events-none absolute right-0 top-1/2 h-[45px] !w-[45px] -translate-y-1/2 object-cover\"\n alt=\"arrow\"\n />\n\n <div\n ref={dropdown}\n className={classNames(\n 'absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto rounded-[4px] bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]',\n { '!hidden': !show }\n )}\n >\n <ul className=\"py-[6px]\">\n {states.map((item: { id: string; name: string; code: string }) => (\n <li\n key={item.id}\n value={[item.id, item.name, item.code].join(',')}\n className={classNames(\n 'relative px-[14px] py-[17px] text-[16px] font-semibold leading-[1] transition hover:bg-[#F7F8F9]',\n {\n '!bg-[#e8e8e8]': [item.id, item.name, item.code].join(',') === value,\n }\n )}\n >\n <button\n className=\"absolute left-0 top-0 z-1 size-full opacity-0\"\n value={[item.id, item.name, item.code].join(',')}\n onClick={() => {\n setDisplay(item.name)\n setShow(false)\n onChange(item.code, item.name)\n }}\n />\n {item.name}\n </li>\n ))}\n </ul>\n </div>\n </>\n ) : (\n <input\n className={className}\n value={stateName}\n style={{\n WebkitTextFillColor: 'black',\n }}\n onChange={event => {\n onChange('', event.target.value)\n }}\n ></input>\n )}\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["StateSelect_exports", "__export", "StateSelect", "__toCommonJS", "import_jsx_runtime", "import_classnames", "import_headless_ui", "import_react", "import_useClickOutside", "states", "stateName", "stateCode", "className", "onChange", "show", "setShow", "display", "setDisplay", "dropdown", "useClickOutside", "value", "currentState", "item", "target", "classNames", "event", "name", "code"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var z=Object.create;var y=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var M=(r,s)=>{for(var d in s)y(r,d,{get:s[d],enumerable:!0})},F=(r,s,d,m)=>{if(s&&typeof s=="object"||typeof s=="function")for(let c of D(s))!L.call(r,c)&&c!==d&&y(r,c,{get:()=>s[c],enumerable:!(m=B(s,c))||m.enumerable});return r};var R=(r,s,d)=>(d=r!=null?z(E(r)):{},F(s||!r||!r.__esModule?y(d,"default",{value:r,enumerable:!0}):d,r)),G=r=>F(y({},"__esModule",{value:!0}),r);var T={};M(T,{AddressForm:()=>O});module.exports=G(T);var n=require("react/jsx-runtime"),C=R(require("classnames")),l=require("react"),S=require("./CountrySelect"),_=require("./FormItem"),w=require("./Input"),I=require("./StateSelect"),q=require("../../context/const"),P=require("../../context/provider"),K=require("@anker-in/shopify");const O=({countries:r,countriesLoading:s,form:d,validate:m,errors:c,onChange:p})=>{const{profile:v,customer:t}=(0,P.useCreditsContext)(),{locale:b}=(0,K.useShopifyContext)(),[e,f]=(0,l.useState)(),A=(0,l.useMemo)(()=>r.find(u=>u.code===e?.country)?.provinces||[],[e,r]),h=(0,l.useMemo)(()=>d?.flat().find(u=>u.type==="state")?.key,[d]),k=(0,l.useCallback)(()=>{if(t?.defaultAddress)return{name:(t?.defaultAddress.firstName||"")+" "+(t?.defaultAddress.lastName||""),first_name:t?.defaultAddress.firstName,last_name:t?.defaultAddress.lastName,address1:t?.defaultAddress.address1,address2:t?.defaultAddress.address2,city:t?.defaultAddress.city,phone:t?.defaultAddress.phone,country:t?.defaultAddress.countryCodeV2,province:t?.defaultAddress.province,province_code:t?.defaultAddress.provinceCode,email:t?.email||v?.email,zip:t?.defaultAddress.zip};{let a=q.ALPC_COUNTRY_MAP.get(b)||b;return a==="UK"&&(a="GB"),a==="EU"&&(a="NL"),{email:v?.email,country:a}}},[t,v?.email,b]);return console.log("customer",t),(0,l.useEffect)(()=>{if(t){const a=k();f(a),p(a)}},[t,k]),e?(0,n.jsx)("div",{className:"grid gap-[20px]",children:d&&d.map((a,u)=>(0,n.jsx)("div",{className:"item-center -mx-[6px] flex",children:a.map((o,U)=>{const g=c.find(i=>i.key===o.key)?.message,x=(0,C.default)("h-full w-full appearance-none rounded-[2px] border bg-white px-[14px] py-[17px] leading-[1] outline-none placeholder:text-[#999] autofill:shadow-white focus:border-brand disabled:pointer-events-none disabled:text-[#999] disabled:bg-[#F7F8F9] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",g?"!border-[#F84D4F]":"border-[#d8d8d8]");return o.type==="state"&&!A.length?null:(0,n.jsx)("div",{className:(0,C.default)("mx-[6px] flex-1"),children:(0,n.jsxs)(_.FormItem,{error:g,required:o.required,label:o.label,children:[o.type==="country"&&(0,n.jsx)(S.CountrySelect,{className:x,countries:r,loading:s,value:e.country,onChange:i=>{e.country!==i&&(e.province="",e.province_code=""),e.country=i,f({...e}),p(e)}}),o.type==="state"&&(0,n.jsx)(I.StateSelect,{className:x,states:A,stateCode:e.province_code,stateName:e.province,onChange:(i,N)=>{e.province_code=i,e.province=N,f({...e}),p(e)}}),o.type!=="state"&&o.type!=="country"&&(0,n.jsx)(w.Input,{placeholder:o.label,className:x,error:g,value:e[o.key],required:o.required,disabled:o.type==="email",onChange:i=>{const N=i.target.value;e[o.key]=N,f({...e}),p(e)},onBlur:()=>{m({ignoreKeys:A.length&&h?[h]:[]})}})]})},U)})},u))}):null};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/credits/creditsRedeemList/AddressForm/index.tsx"],
4
+ "sourcesContent": ["import classNames from 'classnames'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { CountrySelect } from './CountrySelect'\nimport { FormItem } from './FormItem'\nimport { Input } from './Input'\nimport { StateSelect } from './StateSelect'\nimport { ALPC_COUNTRY_MAP } from '../../context/const'\nimport { useCreditsContext } from '../../context/provider'\nimport { useShopifyContext } from '@anker-in/shopify'\nimport { AddressFormProps } from './type'\n\nexport const AddressForm = ({ countries, countriesLoading, form, validate, errors, onChange }: AddressFormProps) => {\n const { profile, customer } = useCreditsContext()\n const { locale } = useShopifyContext()\n\n const [address, setAddress] = useState<Record<string, any>>()\n\n const states = useMemo(() => {\n const currentCountry = countries.find(item => item.code === address?.country)\n\n return currentCountry?.provinces || []\n }, [address, countries])\n\n const stateInputKey = useMemo(() => {\n const stateInput = form?.flat().find(item => item.type === 'state')\n return stateInput?.key\n }, [form])\n\n const getDefaultAddress = useCallback(() => {\n if (customer?.defaultAddress) {\n return {\n name: (customer?.defaultAddress.firstName || '') + ' ' + (customer?.defaultAddress.lastName || ''),\n first_name: customer?.defaultAddress.firstName,\n last_name: customer?.defaultAddress.lastName,\n address1: customer?.defaultAddress.address1,\n address2: customer?.defaultAddress.address2,\n city: customer?.defaultAddress.city,\n phone: customer?.defaultAddress.phone,\n country: customer?.defaultAddress.countryCodeV2,\n province: customer?.defaultAddress.province,\n province_code: customer?.defaultAddress.provinceCode,\n email: customer?.email || profile?.email,\n zip: customer?.defaultAddress.zip,\n }\n } else {\n let defaultCountry = ALPC_COUNTRY_MAP.get(locale) || locale\n if (defaultCountry === 'UK') {\n defaultCountry = 'GB'\n }\n if (defaultCountry === 'EU') {\n defaultCountry = 'NL'\n }\n return {\n email: profile?.email,\n country: defaultCountry,\n }\n }\n }, [customer, profile?.email, locale])\n\n console.log('customer', customer)\n useEffect(() => {\n if (customer) {\n const defaultAddress = getDefaultAddress()\n setAddress(defaultAddress)\n onChange(defaultAddress)\n }\n }, [customer, getDefaultAddress])\n\n if (!address) {\n return null\n }\n\n return (\n <div className=\"grid gap-[20px]\">\n {form &&\n form.map((row, rowIndex: number) => (\n <div key={rowIndex} className=\"item-center -mx-[6px] flex\">\n {row.map((input, inputIndex: number) => {\n const error = errors.find(item => item.key === input.key)?.message\n const inputClassName = classNames(\n 'h-full w-full appearance-none rounded-[2px] border bg-white px-[14px] py-[17px] leading-[1] outline-none placeholder:text-[#999] autofill:shadow-white focus:border-brand disabled:pointer-events-none disabled:text-[#999] disabled:bg-[#F7F8F9] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',\n error ? '!border-[#F84D4F]' : 'border-[#d8d8d8]'\n )\n\n if (input.type === 'state') {\n if (!states.length) {\n return null\n }\n }\n\n return (\n <div key={inputIndex} className={classNames('mx-[6px] flex-1')}>\n <FormItem error={error} required={input.required} label={input.label}>\n {input.type === 'country' && (\n <CountrySelect\n className={inputClassName}\n countries={countries}\n loading={countriesLoading}\n value={address.country}\n onChange={selectedCountryCode => {\n if (address.country !== selectedCountryCode) {\n address.province = ''\n address.province_code = ''\n }\n address.country = selectedCountryCode\n setAddress({ ...address })\n onChange(address)\n }}\n ></CountrySelect>\n )}\n {input.type === 'state' && (\n <StateSelect\n className={inputClassName}\n states={states}\n stateCode={address.province_code}\n stateName={address.province}\n onChange={(provinceCode, provinceName) => {\n address.province_code = provinceCode\n address.province = provinceName\n setAddress({ ...address })\n onChange(address)\n }}\n ></StateSelect>\n )}\n\n {input.type !== 'state' && input.type !== 'country' && (\n <Input\n placeholder={input.label}\n className={inputClassName}\n error={error}\n value={address[input.key]}\n required={input.required}\n disabled={input.type === 'email'}\n onChange={event => {\n const value = event.target.value\n address[input.key] = value\n setAddress({ ...address })\n onChange(address)\n }}\n onBlur={() => {\n validate({\n ignoreKeys: states.length && stateInputKey ? [stateInputKey] : [],\n })\n }}\n />\n )}\n </FormItem>\n </div>\n )\n })}\n </div>\n ))}\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["AddressForm_exports", "__export", "AddressForm", "__toCommonJS", "import_jsx_runtime", "import_classnames", "import_react", "import_CountrySelect", "import_FormItem", "import_Input", "import_StateSelect", "import_const", "import_provider", "import_shopify", "countries", "countriesLoading", "form", "validate", "errors", "onChange", "profile", "customer", "locale", "address", "setAddress", "states", "item", "stateInputKey", "getDefaultAddress", "defaultCountry", "defaultAddress", "row", "rowIndex", "input", "inputIndex", "error", "inputClassName", "classNames", "selectedCountryCode", "provinceCode", "provinceName", "event", "value"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var g=(r,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of d(e))!a.call(r,o)&&o!==n&&s(r,o,{get:()=>e[o],enumerable:!(i=t(e,o))||i.enumerable});return r};var p=r=>g(s({},"__esModule",{value:!0}),r);var m={};module.exports=p(m);
2
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/credits/creditsRedeemList/AddressForm/type.ts"],
4
+ "sourcesContent": ["import { CreditsRedeemListCopy } from '../type'\n\ntype ShippingCountry = {\n id: string\n name: string\n code: string\n provinces: {\n id: string\n name: string\n code: string\n }[]\n}\n\nexport interface AddressFormProps {\n form: CreditsRedeemListCopy['redeemModal']['product']['addressForm']\n onChange: (address: any) => void\n validate: (args: { force?: boolean; ignoreKeys?: string[] }) => boolean\n errors: {\n key: string\n message: string\n }[]\n countries: ShippingCountry[]\n countriesLoading: boolean\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["type_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var B=Object.create;var f=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var A=(o,t)=>{for(var i in t)f(o,i,{get:t[i],enumerable:!0})},E=(o,t,i,m)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of P(t))!U.call(o,a)&&a!==i&&f(o,a,{get:()=>t[a],enumerable:!(m=z(t,a))||m.enumerable});return o};var w=(o,t,i)=>(i=o!=null?B(O(o)):{},E(t||!o||!o.__esModule?f(i,"default",{value:o,enumerable:!0}):i,o)),D=o=>E(f({},"__esModule",{value:!0}),o);var j={};A(j,{default:()=>$});module.exports=D(j);var e=require("react/jsx-runtime"),d=require("@anker-in/headless-ui"),g=w(require("classnames")),r=require("react"),F=w(require("../context/hooks/useCopy")),R=require("../context/provider"),T=require("../context/hooks/useRedeemCoupon"),c=require("../context/const"),k=require("../modal/modalContainer"),I=require("../context/utils"),L=require("@anker-in/shopify");function K({item:o,copy:t,onError:i,...m}){const{locale:a}=(0,L.useShopifyContext)(),[n,S]=(0,r.useState)(),[C,x]=(0,r.useState)(),[b,p]=(0,r.useState)(!1),{copy:y,copied:v}=(0,F.default)(),{profile:u,fetchCreditInfo:N}=(0,R.useCreditsContext)(),{isMutating:h,trigger:M}=(0,T.useRedeemCoupon)({onSuccess(l){if(!l){x(t.redeemModal.commonError);return}if(l?.data?.success)S(l.data.coupon_code),N(u?.user_id);else{let s;l.code===c.AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit?(s=t.redeemModal.redeemLimitError,p(!0)):l.code===c.AlpcErrorCode.CodeLpcRuleInventoryNotEnough?(s=t.redeemModal.inventoryNotEnough,p(!0)):l.code===c.AlpcErrorCode.CodeLpcNotEnoughCredits?(s=t.redeemModal.creditsNotEnough,p(!0),N(u?.user_id)):l.code===c.AlpcErrorCode.CodeCrossSiteError&&(s=t.redeemModal.crossSiteError,p(!0)),x(s||t.redeemModal.commonError||""),i&&i(l.code)}},onError(l){x(l.message||t.redeemModal.commonError)}}),_=(0,r.useCallback)(async()=>{x(""),M({user_id:u?.user_id,rule_id:Number(o.alpc?.id)})},[o,u,M]);return(0,r.useEffect)(()=>{m.isOpen||(p(!1),x(""))},[m.isOpen]),(0,e.jsxs)(k.CreditsModalContainer,{...m,className:"w-[540px] md:h-auto",scrollClassName:"mb-[40px] min-l:px-0 md:mb-[24px] px-0",titleClassName:"h-[56px] bg-[#F5F5F7]",children:[(0,e.jsxs)("div",{className:(0,g.default)("max-h-[500px] overflow-y-auto bg-[#F5F5F7] px-[48px] pb-[24px] md:max-h-[400px] md:px-[16px]"),children:[(0,e.jsxs)("div",{className:"relative mx-auto h-[164px] w-[324px]",children:[t?.imageMapping?.coupon?.url&&(0,e.jsx)(d.Picture,{source:t?.imageMapping?.coupon?.url,className:"h-full [&_img]:h-full"}),(0,e.jsx)("div",{className:"absolute bottom-[8px] left-[16px] font-extrabold text-white",children:o.config.value?(0,e.jsxs)("div",{className:"flex items-end gap-[4px]",children:[(0,e.jsx)(d.Text,{className:"text-[64px] font-bold leading-none",html:o.config.value.toString()}),(0,e.jsx)(d.Text,{className:"text-[24px] font-bold leading-[2]",html:t?.off})]}):(0,e.jsx)(d.Text,{size:3,html:o.alpc?.title})})]}),n?(0,e.jsxs)("div",{className:"mt-[30px] flex items-center justify-center md:mt-[18px]",children:[(0,e.jsx)("div",{className:"mr-[10px] text-[24px] font-bold leading-[1.4] md:leading-[1.2]",children:n}),(0,e.jsx)("div",{className:(0,g.default)("cursor-pointer text-[16px] font-bold leading-[1.2] underline md:text-[14px]",v?"pointer-events-none":"pointer-events-auto"),onClick:()=>{y(n)},role:"button",tabIndex:0,onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&l.preventDefault()},children:v?t?.copied:t?.copy})]}):(0,e.jsxs)(d.Text,{as:"p",className:(0,g.default)("mt-[30px] text-center text-[24px] font-bold leading-[1.2] md:mt-[18px] md:text-[20px] md:leading-[1.2]"),children:[(0,I.numberFormat)(o.alpc?.consumeCredits)," ",t?.pointUnit]}),!n&&o.config?.rules?.length>0&&(0,e.jsxs)("div",{className:"mt-[18px] w-full text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:mt-[12px] md:text-[14px]",children:[(0,e.jsxs)("div",{className:"mb-[4px]",children:[t?.ruleLabel,":"]}),(0,e.jsx)("ul",{className:"ml-4 grid grid-flow-row gap-[4px]",children:o.config?.rules?.map((l,s)=>(0,e.jsx)("li",{className:"list-disc",children:(0,e.jsx)(d.Text,{html:l})},s))})]})]}),(0,e.jsxs)("div",{className:"bg-white px-[48px] pt-[24px] text-center md:px-[16px]",children:[n&&!h?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"flex flex-col",children:[(0,e.jsx)(d.Text,{className:"mb-[4px] text-[24px] font-bold leading-[1.2] md:text-[20px]",html:t.redeemModal.coupon.successTitle}),(0,e.jsx)(d.Text,{className:"text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:text-[14px]",html:t.redeemModal.coupon.successDesc})]}),(0,e.jsx)(d.Button,{variant:"primary",size:"lg",className:"mt-[16px] w-full",onClick:()=>{window.location.href=t.redeemModal.coupon.successButtonUrl||`/${a}`,m.onClose&&m.onClose()},disabled:b,children:t.redeemModal.coupon.successButton})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(d.Text,{className:"block text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]",html:t.redeemModal.confirmTitle}),(0,e.jsx)(d.Button,{loading:h,variant:"primary",size:"lg",className:"mt-[16px] w-full",onClick:_,disabled:b,children:t.redeemModal.confirmButton})]}),C&&(0,e.jsx)("div",{className:"mx-auto max-w-full py-[12px] text-center",children:(0,e.jsx)(d.Text,{className:"text-[14px] font-semibold text-[#1F2021]",html:C})})]})]})}var $=K;
2
+ //# sourceMappingURL=RedeemCouponModal.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/credits/creditsRedeemList/RedeemCouponModal.tsx"],
4
+ "sourcesContent": ["import { Button, Picture, Text } from '@anker-in/headless-ui'\nimport classNames from 'classnames'\nimport { useCallback, useEffect, useState } from 'react'\nimport type { ModalContainerProps } from '../modal/modalContainer'\nimport useCopy from '../context/hooks/useCopy'\nimport { useCreditsContext } from '../context/provider'\nimport { useRedeemCoupon } from '../context/hooks/useRedeemCoupon'\nimport { AlpcErrorCode } from '../context/const'\nimport { CreditsModalContainer } from '../modal/modalContainer'\nimport { numberFormat } from '../context/utils'\nimport type { RedeemableItem as RedeemableItemType } from '../type'\nimport { useShopifyContext } from '@anker-in/shopify'\nimport { CreditsRedeemListCopy } from './type'\n\nfunction RedeemCouponModal({\n item,\n copy,\n onError,\n ...props\n}: ModalContainerProps & {\n item: RedeemableItemType\n copy: CreditsRedeemListCopy\n onError: (code: number) => void\n}) {\n const { locale } = useShopifyContext()\n const [couponCode, setCouponCode] = useState<string>()\n const [errorInfo, setErrorInfo] = useState<string>()\n\n const [disabled, setDisabled] = useState(false)\n const { copy: copyText, copied: copiedStatus } = useCopy()\n\n const { profile, fetchCreditInfo } = useCreditsContext()\n\n const { isMutating: loading, trigger } = useRedeemCoupon({\n onSuccess(responseData) {\n if (!responseData) {\n setErrorInfo(copy.redeemModal.commonError)\n return\n }\n\n if (responseData?.data?.success) {\n setCouponCode(responseData.data.coupon_code)\n fetchCreditInfo(profile?.user_id)\n } else {\n let errorMsg\n if (responseData.code === AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit) {\n errorMsg = copy.redeemModal.redeemLimitError\n setDisabled(true)\n } else if (responseData.code === AlpcErrorCode.CodeLpcRuleInventoryNotEnough) {\n errorMsg = copy.redeemModal.inventoryNotEnough\n setDisabled(true)\n } else if (responseData.code === AlpcErrorCode.CodeLpcNotEnoughCredits) {\n errorMsg = copy.redeemModal.creditsNotEnough\n setDisabled(true)\n fetchCreditInfo(profile?.user_id)\n } else if (responseData.code === AlpcErrorCode.CodeCrossSiteError) {\n errorMsg = copy.redeemModal.crossSiteError\n setDisabled(true)\n }\n\n setErrorInfo(errorMsg || copy.redeemModal.commonError || '')\n onError && onError(responseData.code)\n }\n },\n onError(error) {\n setErrorInfo(error.message || copy.redeemModal.commonError)\n },\n })\n\n const handleConfirm = useCallback(async () => {\n setErrorInfo('')\n trigger({\n user_id: profile?.user_id,\n rule_id: Number(item.alpc?.id),\n })\n }, [item, profile, trigger])\n\n useEffect(() => {\n if (!props.isOpen) {\n setDisabled(false)\n setErrorInfo('')\n }\n }, [props.isOpen])\n\n return (\n <CreditsModalContainer\n {...props}\n className=\"w-[540px] md:h-auto\"\n scrollClassName=\"mb-[40px] min-l:px-0 md:mb-[24px] px-0\"\n titleClassName=\"h-[56px] bg-[#F5F5F7]\"\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 {copy?.imageMapping?.coupon?.url && (\n <Picture source={copy?.imageMapping?.coupon?.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 <div className=\"flex items-end gap-[4px]\">\n <Text className=\"text-[64px] font-bold leading-none\" html={item.config.value.toString()} />\n <Text className=\"text-[24px] font-bold leading-[2]\" html={copy?.off} />\n </div>\n ) : (\n <Text size={3} html={item.alpc?.title} />\n )}\n </div>\n </div>\n {couponCode ? (\n <div className=\"mt-[30px] flex items-center justify-center md:mt-[18px]\">\n <div className=\"mr-[10px] text-[24px] font-bold leading-[1.4] md:leading-[1.2]\">{couponCode}</div>\n <div\n className={classNames(\n 'cursor-pointer text-[16px] font-bold leading-[1.2] underline md:text-[14px]',\n copiedStatus ? 'pointer-events-none' : 'pointer-events-auto'\n )}\n onClick={() => {\n copyText(couponCode)\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {copiedStatus ? copy?.copied : copy?.copy}\n </div>\n </div>\n ) : (\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)} {copy?.pointUnit}\n </Text>\n )}\n {!couponCode && 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]\">{copy?.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 {couponCode && !loading ? (\n <>\n <div className=\"flex flex-col\">\n <Text\n className=\"mb-[4px] text-[24px] font-bold leading-[1.2] md:text-[20px]\"\n html={copy.redeemModal.coupon.successTitle}\n ></Text>\n <Text\n className=\"text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:text-[14px]\"\n html={copy.redeemModal.coupon.successDesc}\n ></Text>\n </div>\n <Button\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[16px] w-full\"\n onClick={() => {\n window.location.href = copy.redeemModal.coupon.successButtonUrl || `/${locale}`\n if (props.onClose) {\n props.onClose()\n }\n }}\n disabled={disabled}\n >\n {copy.redeemModal.coupon.successButton}\n </Button>\n </>\n ) : (\n <>\n <Text\n className=\"block text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]\"\n html={copy.redeemModal.confirmTitle}\n ></Text>\n <Button\n loading={loading}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-[16px] w-full\"\n onClick={handleConfirm}\n disabled={disabled}\n >\n {copy.redeemModal.confirmButton}\n </Button>\n </>\n )}\n {errorInfo && (\n <div className=\"mx-auto max-w-full py-[12px] text-center\">\n <Text className=\"text-[14px] font-semibold text-[#1F2021]\" html={errorInfo} />\n </div>\n )}\n </div>\n </CreditsModalContainer>\n )\n}\n\nexport default RedeemCouponModal\n"],
5
+ "mappings": "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",
6
+ "names": ["RedeemCouponModal_exports", "__export", "RedeemCouponModal_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_classnames", "import_react", "import_useCopy", "import_provider", "import_useRedeemCoupon", "import_const", "import_modalContainer", "import_utils", "import_shopify", "RedeemCouponModal", "item", "copy", "onError", "props", "locale", "couponCode", "setCouponCode", "errorInfo", "setErrorInfo", "disabled", "setDisabled", "copyText", "copiedStatus", "useCopy", "profile", "fetchCreditInfo", "loading", "trigger", "responseData", "errorMsg", "error", "handleConfirm", "classNames", "e", "text", "index"]
7
+ }