@credenza3/passport-evm 0.2.17 → 0.2.19

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 (72) hide show
  1. package/README.md +4 -3
  2. package/dist/{App-DrYtIsxl.js → App-C9I9989L.js} +71 -70
  3. package/dist/App-C9I9989L.js.map +1 -0
  4. package/dist/{Button-B58tbHjg.js → Button-D5CGIu8s.js} +4 -4
  5. package/dist/{Button-B58tbHjg.js.map → Button-D5CGIu8s.js.map} +1 -1
  6. package/dist/{ButtonBack-yLJ1WhkW.js → ButtonBack-DiIG6luz.js} +4 -4
  7. package/dist/{ButtonBack-yLJ1WhkW.js.map → ButtonBack-DiIG6luz.js.map} +1 -1
  8. package/dist/{ButtonLink-CVzrI4Fv.js → ButtonLink-CujytEgB.js} +3 -3
  9. package/dist/{ButtonLink-CVzrI4Fv.js.map → ButtonLink-CujytEgB.js.map} +1 -1
  10. package/dist/{ConfirmAccount-ncjz-yQ1.js → ConfirmAccount-L4VSLm33.js} +9 -9
  11. package/dist/{ConfirmAccount-ncjz-yQ1.js.map → ConfirmAccount-L4VSLm33.js.map} +1 -1
  12. package/dist/{ContentHeader-D-0aj97w.js → ContentHeader-DtB3AfgZ.js} +3 -3
  13. package/dist/{ContentHeader-D-0aj97w.js.map → ContentHeader-DtB3AfgZ.js.map} +1 -1
  14. package/dist/{Error-CIuEwqJ-.js → Error-4PRrZwmC.js} +5 -5
  15. package/dist/{Error-CIuEwqJ-.js.map → Error-4PRrZwmC.js.map} +1 -1
  16. package/dist/{Input-DeQta7wH.js → Input-B40ySJRz.js} +4 -4
  17. package/dist/{Input-DeQta7wH.js.map → Input-B40ySJRz.js.map} +1 -1
  18. package/dist/{Label-CsM-krt9.js → Label-CVUbL1bW.js} +3 -3
  19. package/dist/{Label-CsM-krt9.js.map → Label-CVUbL1bW.js.map} +1 -1
  20. package/dist/{Loader-ByudRoiy.js → Loader-DWGzCX4y.js} +3 -3
  21. package/dist/{Loader-ByudRoiy.js.map → Loader-DWGzCX4y.js.map} +1 -1
  22. package/dist/{Login-th1QspZ6.js → Login-CAgCGqA-.js} +9 -9
  23. package/dist/{Login-th1QspZ6.js.map → Login-CAgCGqA-.js.map} +1 -1
  24. package/dist/{Logout-Bk28ziTL.js → Logout-Cn-fwBb4.js} +6 -6
  25. package/dist/{Logout-Bk28ziTL.js.map → Logout-Cn-fwBb4.js.map} +1 -1
  26. package/dist/{Nav-BlIeXcjd.js → Nav-CuA2pLgM.js} +318 -318
  27. package/dist/{Nav-BlIeXcjd.js.map → Nav-CuA2pLgM.js.map} +1 -1
  28. package/dist/{PassportId-bFnyj9d5.js → PassportId-CSTvlPYW.js} +6 -6
  29. package/dist/{PassportId-bFnyj9d5.js.map → PassportId-CSTvlPYW.js.map} +1 -1
  30. package/dist/{Payment-BfBk2Vj4.js → Payment-DVlaKx-E.js} +10 -10
  31. package/dist/{Payment-BfBk2Vj4.js.map → Payment-DVlaKx-E.js.map} +1 -1
  32. package/dist/{PaymentResult-B1O3xIUb.js → PaymentResult-C5iwUhAQ.js} +4 -4
  33. package/dist/{PaymentResult-B1O3xIUb.js.map → PaymentResult-C5iwUhAQ.js.map} +1 -1
  34. package/dist/{Profile-D96I4nz3.js → Profile-GkmykWQr.js} +7 -7
  35. package/dist/{Profile-D96I4nz3.js.map → Profile-GkmykWQr.js.map} +1 -1
  36. package/dist/{ProgressVideo-SNiU0jSS.js → ProgressVideo-4SQjAnPJ.js} +17 -17
  37. package/dist/{ProgressVideo-SNiU0jSS.js.map → ProgressVideo-4SQjAnPJ.js.map} +1 -1
  38. package/dist/RichAlert-DoQILIMV.js +119 -0
  39. package/dist/RichAlert-DoQILIMV.js.map +1 -0
  40. package/dist/{Scanner-Be30oFob.js → Scanner-BCw9U9L_.js} +10 -10
  41. package/dist/{Scanner-Be30oFob.js.map → Scanner-BCw9U9L_.js.map} +1 -1
  42. package/dist/{SendTokens-Cpbc8pNW.js → SendTokens-D3cXqMmt.js} +7 -7
  43. package/dist/{SendTokens-Cpbc8pNW.js.map → SendTokens-D3cXqMmt.js.map} +1 -1
  44. package/dist/{Sign-Cqt9pYfi.js → Sign-IQLTbDiV.js} +6 -6
  45. package/dist/{Sign-Cqt9pYfi.js.map → Sign-IQLTbDiV.js.map} +1 -1
  46. package/dist/{Stripe.service-DkU3OPk-.js → Stripe.service-GlcYQnp5.js} +5 -5
  47. package/dist/{Stripe.service-DkU3OPk-.js.map → Stripe.service-GlcYQnp5.js.map} +1 -1
  48. package/dist/{UpdateProfile-CsxQubeT.js → UpdateProfile-D4bg5GEF.js} +10 -10
  49. package/dist/{UpdateProfile-CsxQubeT.js.map → UpdateProfile-D4bg5GEF.js.map} +1 -1
  50. package/dist/{UserInfo-0xD5yBFz.js → UserInfo-DwjE6Ph4.js} +4 -4
  51. package/dist/{UserInfo-0xD5yBFz.js.map → UserInfo-DwjE6Ph4.js.map} +1 -1
  52. package/dist/{Wallet-DFIt3eLL.js → Wallet-BUV87MlV.js} +7 -7
  53. package/dist/{Wallet-DFIt3eLL.js.map → Wallet-BUV87MlV.js.map} +1 -1
  54. package/dist/{each-DlTYG9SE.js → each-tAR3XqEj.js} +23 -23
  55. package/dist/{each-DlTYG9SE.js.map → each-tAR3XqEj.js.map} +1 -1
  56. package/dist/{html-ClFJTrTO.js → html-a8zjkl0d.js} +3 -3
  57. package/dist/{html-ClFJTrTO.js.map → html-a8zjkl0d.js.map} +1 -1
  58. package/dist/{index-DacuCeWr.js → index-B0D9qQ_O.js} +3054 -3050
  59. package/dist/{index-DacuCeWr.js.map → index-B0D9qQ_O.js.map} +1 -1
  60. package/dist/{index-client-DaK3V4t-.js → index-client-z9rIkUyw.js} +2 -2
  61. package/dist/{index-client-DaK3V4t-.js.map → index-client-z9rIkUyw.js.map} +1 -1
  62. package/dist/{input-CV6w1OZd.js → input-b1D2_f8m.js} +3 -3
  63. package/dist/{input-CV6w1OZd.js.map → input-b1D2_f8m.js.map} +1 -1
  64. package/dist/{legacy-B3q739rj.js → legacy-C1UsO_tu.js} +4 -3
  65. package/dist/{legacy-B3q739rj.js.map → legacy-C1UsO_tu.js.map} +1 -1
  66. package/dist/passport.es.js +2 -2
  67. package/dist/passport.umd.js +84 -83
  68. package/dist/passport.umd.js.map +1 -1
  69. package/package.json +1 -1
  70. package/dist/App-DrYtIsxl.js.map +0 -1
  71. package/dist/RichAlert-Bl6k1lyQ.js +0 -139
  72. package/dist/RichAlert-Bl6k1lyQ.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Scanner-Be30oFob.js","sources":["../../ui/main/scanner/Scanner.svelte","../src/app/pages/scanner/Scanner.svelte"],"sourcesContent":["<script lang=\"ts\">\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import Loader from \"../shared/Loader.svelte\";\n\n export let options: {\n isScannerLoaded: boolean\n }\n\n $: isScannerLoaded = options.isScannerLoaded\n</script>\n\n<ContentHeader text=\"Scan PassScan Code\" />\n<div class=\"crtw-w-full\">\n {#if !isScannerLoaded}\n <div\n class=\"crtw-w-full crtw-h-64 crtw-rounded-[10px] crtw-flex crtw-items-center crtw-justify-center\"\n style=\"background-color: rgb(238, 238, 238)\"\n >\n <Loader />\n </div>\n {/if}\n <div\n id=\"cpuiScanner\"\n class=\"crtw-w-full crtw-h-64 crtw-rounded-lg crtw-flex crtw-items-center crtw-justify-center\"\n class:crtw-hidden={!isScannerLoaded}\n style=\"background-color: rgb(238, 238, 238)\"\n />\n</div>\n ","<script lang=\"ts\">\n import { onMount } from 'svelte'\n import { get } from 'svelte/store'\n import type { Scanner } from '@credenza3/scanner-lib'\n\n import { pageStore, fn } from '@packages/stores'\n import { ScanTypes } from '@packages/utils/enums'\n import { once, PassportEvents } from '@lib/events/events'\n import {\n goToPayment,\n goToSendTokens,\n processAirDrop,\n processRequestLoyaltyPoints,\n } from '@pages/scanner/Scanner.service'\n import { Scanner as ScannerComponent } from '@packages/ui'\n import { getUserAddressBySub } from '@src/Passport.service'\n\n const { close } = get(fn)\n let scanner: Scanner\n let isScannerLoaded = false\n\n const onCapture = async ({ message, sub, scanType }: { sub: string; message: string; scanType: string }) => {\n scanner.close()\n switch (scanType) {\n case ScanTypes.PASSPORT_ID_PASS:\n case ScanTypes.PASSPORT_ID: {\n const parsed = JSON.parse(message)\n const { address } = await getUserAddressBySub(sub)\n goToSendTokens({ userAddress: address, amount: parsed?.amount })\n break\n }\n case ScanTypes.TOKENS_PURCHASE: {\n goToPayment(JSON.parse(message))\n break\n }\n case ScanTypes.AIR_DROP_ASSET: {\n await processAirDrop(JSON.parse(message))\n break\n }\n case ScanTypes.REQUEST_LOYALTY_POINTS: {\n await processRequestLoyaltyPoints(JSON.parse(message))\n break\n }\n default: {\n close()\n pageStore.set(null)\n }\n }\n }\n\n onMount(async () => {\n const { Scanner } = await import('@credenza3/scanner-lib')\n scanner = new Scanner({ target: '#cpuiScanner' })\n once(PassportEvents.UI_CLOSED, () => {\n scanner.close()\n pageStore.set(null)\n })\n await scanner.scan({ isCloseButton: false })\n isScannerLoaded = true\n scanner.on(Scanner.events.CAPTURE, onCapture)\n scanner.on(Scanner.events.ERROR, (err) => {\n const message = err?.message || err\n if (message.includes('Permission'))\n alert('In order to scan please allow the current page to access your camera and try again.')\n })\n })\n</script>\n\n<ScannerComponent options={{ isScannerLoaded }} />\n"],"names":["options","$.prop","$$props","isScannerLoaded","$$render","consequent","__awaiter","thisArg","_arguments","P","generator","close","get","fn","scanner","onCapture","_a","message","sub","scanType","ScanTypes","parsed","address","getUserAddressBySub","goToSendTokens","goToPayment","processAirDrop","processRequestLoyaltyPoints","pageStore","onMount","Scanner","once","PassportEvents","$.set","err","expression","$.derived_safe_equal"],"mappings":";;;;;;;;;;MAIaA,IAEVC,EAAAC,GAAA,WAAA,EAAA;;MAEEC,GAAkBH,EAAO,EAAC,eAAe;AAAA;;;;;;;;;;QAKtCG,CAAe,KAAAC,EAAAC,CAAA;AAAA;;;;;;;iCAWCF,CAAe,EAAA;AAAA;;;;;;;;;;;;;;;;ACxBtB,MAAAG,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiBP,OAAAC,EAAK,IAAKC,EAAIC,CAAE;MACpBC,GACAX,MAAkB,EAAK;QAErBY,IAAS,CAAGC,MAAyFV,EAAhF,QAAA,CAAAU,CAAA,GAAA,QAAA,WAAA,EAAA,SAAAC,GAAS,KAAAC,GAAK,UAAAC,EAAQ,GAAsD;YACrGL,EAAQ,MAAK,GACLK,GAAQ;AAAA,MACT,KAAAC,EAAU;AAAA,MACV,KAAAA,EAAU,aAAa;AACpB,cAAAC,IAAS,KAAK,MAAMJ,CAAO,KACzB,SAAAK,EAAO,IAAA,MAAWC,GAAoBL,CAAG;AACjD,QAAAM,GAAc;AAAA,UAAG,aAAaF;AAAA,UAAS,QAAQD,KAAM,OAAN,SAAAA,EAAQ;AAAA;;MAEzD;AAAA,MACK,KAAAD,EAAU,iBAAiB;AAC9B,QAAAK,GAAY,KAAK,MAAMR,CAAO,CAAA;;MAEhC;AAAA,MACK,KAAAG,EAAU,gBAAgB;AACvB,cAAAM,EAAe,KAAK,MAAMT,CAAO,CAAA;;MAEzC;AAAA,MACK,KAAAG,EAAU,wBAAwB;AAC/B,cAAAO,EAA4B,KAAK,MAAMV,CAAO,CAAA;;MAEtD;AAAA;AAEE,QAAAN,EAAK,GACLiB,EAAU,IAAI,IAAI;AAAA;GAGvB;AAED,EAAAC,EAAmB,MAAAvB,EAAA,QAAA,QAAA,QAAA,aAAA;AACT,UAAA,EAAA,SAAAwB,EAAO,iBAAkB,0BAAwB;AACzD,IAAAhB,IAAc,IAAAgB,EAAU,EAAA,QAAQ,eAAc,CAAA,GAC9CC,EAAKC,EAAe,WAAgB,MAAA;AAClC,MAAAlB,EAAQ,MAAK,GACbc,EAAU,IAAI,IAAI;AAAA,KACnB,GACK,MAAAd,EAAQ,KAAO,EAAA,eAAe,GAAK,CAAA,GACzCmB,EAAA9B,GAAkB,EAAI,GACtBW,EAAQ,GAAGgB,EAAQ,OAAO,SAASf,CAAS,GAC5CD,EAAQ,GAAGgB,EAAQ,OAAO,OAAQ,CAAAI,MAAO;AAEnC,QADYA,KAAA,gBAAAA,EAAK,YAAWA,GACpB,SAAS,YAAY,KAC/B,MAAM,qFAAqF;AAAA,KAC9F;AAAA,GACF,CAAA;AAG0B,QAAAC,IAAAC,EAAA,OAAA,EAAA,mBAAAjC,CAAe,EAAA,EAAA;;;;;;;;;;"}
1
+ {"version":3,"file":"Scanner-BCw9U9L_.js","sources":["../../ui/main/scanner/Scanner.svelte","../src/app/pages/scanner/Scanner.svelte"],"sourcesContent":["<script lang=\"ts\">\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import Loader from \"../shared/Loader.svelte\";\n\n export let options: {\n isScannerLoaded: boolean\n }\n\n $: isScannerLoaded = options.isScannerLoaded\n</script>\n\n<ContentHeader text=\"Scan PassScan Code\" />\n<div class=\"crtw-w-full\">\n {#if !isScannerLoaded}\n <div\n class=\"crtw-w-full crtw-h-64 crtw-rounded-[10px] crtw-flex crtw-items-center crtw-justify-center\"\n style=\"background-color: rgb(238, 238, 238)\"\n >\n <Loader />\n </div>\n {/if}\n <div\n id=\"cpuiScanner\"\n class=\"crtw-w-full crtw-h-64 crtw-rounded-lg crtw-flex crtw-items-center crtw-justify-center\"\n class:crtw-hidden={!isScannerLoaded}\n style=\"background-color: rgb(238, 238, 238)\"\n />\n</div>\n ","<script lang=\"ts\">\n import { onMount } from 'svelte'\n import { get } from 'svelte/store'\n import type { Scanner } from '@credenza3/scanner-lib'\n\n import { pageStore, fn } from '@packages/stores'\n import { ScanTypes } from '@packages/utils/enums'\n import { once, PassportEvents } from '@lib/events/events'\n import {\n goToPayment,\n goToSendTokens,\n processAirDrop,\n processRequestLoyaltyPoints,\n } from '@pages/scanner/Scanner.service'\n import { Scanner as ScannerComponent } from '@packages/ui'\n import { getUserAddressBySub } from '@src/Passport.service'\n\n const { close } = get(fn)\n let scanner: Scanner\n let isScannerLoaded = false\n\n const onCapture = async ({ message, sub, scanType }: { sub: string; message: string; scanType: string }) => {\n scanner.close()\n switch (scanType) {\n case ScanTypes.PASSPORT_ID_PASS:\n case ScanTypes.PASSPORT_ID: {\n const parsed = JSON.parse(message)\n const { address } = await getUserAddressBySub(sub)\n goToSendTokens({ userAddress: address, amount: parsed?.amount })\n break\n }\n case ScanTypes.TOKENS_PURCHASE: {\n goToPayment(JSON.parse(message))\n break\n }\n case ScanTypes.AIR_DROP_ASSET: {\n await processAirDrop(JSON.parse(message))\n break\n }\n case ScanTypes.REQUEST_LOYALTY_POINTS: {\n await processRequestLoyaltyPoints(JSON.parse(message))\n break\n }\n default: {\n close()\n pageStore.set(null)\n }\n }\n }\n\n onMount(async () => {\n const { Scanner } = await import('@credenza3/scanner-lib')\n scanner = new Scanner({ target: '#cpuiScanner' })\n once(PassportEvents.UI_CLOSED, () => {\n scanner.close()\n pageStore.set(null)\n })\n await scanner.scan({ isCloseButton: false })\n isScannerLoaded = true\n scanner.on(Scanner.events.CAPTURE, onCapture)\n scanner.on(Scanner.events.ERROR, (err) => {\n const message = err?.message || err\n if (message.includes('Permission'))\n alert('In order to scan please allow the current page to access your camera and try again.')\n })\n })\n</script>\n\n<ScannerComponent options={{ isScannerLoaded }} />\n"],"names":["options","$.prop","$$props","isScannerLoaded","$$render","consequent","__awaiter","thisArg","_arguments","P","generator","close","get","fn","scanner","onCapture","_a","message","sub","scanType","ScanTypes","parsed","address","getUserAddressBySub","goToSendTokens","goToPayment","processAirDrop","processRequestLoyaltyPoints","pageStore","onMount","Scanner","once","PassportEvents","$.set","err","expression","$.derived_safe_equal"],"mappings":";;;;;;;;;;MAIaA,IAEVC,EAAAC,GAAA,WAAA,EAAA;;MAEEC,GAAkBH,EAAO,EAAC,eAAe;AAAA;;;;;;;;;;QAKtCG,CAAe,KAAAC,EAAAC,CAAA;AAAA;;;;;;;iCAWCF,CAAe,EAAA;AAAA;;;;;;;;;;;;;;;;ACxBtB,MAAAG,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiBP,OAAAC,EAAK,IAAKC,EAAIC,CAAE;MACpBC,GACAX,MAAkB,EAAK;QAErBY,IAAS,CAAGC,MAAyFV,EAAhF,QAAA,CAAAU,CAAA,GAAA,QAAA,WAAA,EAAA,SAAAC,GAAS,KAAAC,GAAK,UAAAC,EAAQ,GAAsD;YACrGL,EAAQ,MAAK,GACLK,GAAQ;AAAA,MACT,KAAAC,EAAU;AAAA,MACV,KAAAA,EAAU,aAAa;AACpB,cAAAC,IAAS,KAAK,MAAMJ,CAAO,KACzB,SAAAK,EAAO,IAAA,MAAWC,GAAoBL,CAAG;AACjD,QAAAM,GAAc;AAAA,UAAG,aAAaF;AAAA,UAAS,QAAQD,KAAM,OAAN,SAAAA,EAAQ;AAAA;;MAEzD;AAAA,MACK,KAAAD,EAAU,iBAAiB;AAC9B,QAAAK,GAAY,KAAK,MAAMR,CAAO,CAAA;;MAEhC;AAAA,MACK,KAAAG,EAAU,gBAAgB;AACvB,cAAAM,EAAe,KAAK,MAAMT,CAAO,CAAA;;MAEzC;AAAA,MACK,KAAAG,EAAU,wBAAwB;AAC/B,cAAAO,EAA4B,KAAK,MAAMV,CAAO,CAAA;;MAEtD;AAAA;AAEE,QAAAN,EAAK,GACLiB,EAAU,IAAI,IAAI;AAAA;GAGvB;AAED,EAAAC,EAAmB,MAAAvB,EAAA,QAAA,QAAA,QAAA,aAAA;AACT,UAAA,EAAA,SAAAwB,EAAO,iBAAkB,0BAAwB;AACzD,IAAAhB,IAAc,IAAAgB,EAAU,EAAA,QAAQ,eAAc,CAAA,GAC9CC,EAAKC,EAAe,WAAgB,MAAA;AAClC,MAAAlB,EAAQ,MAAK,GACbc,EAAU,IAAI,IAAI;AAAA,KACnB,GACK,MAAAd,EAAQ,KAAO,EAAA,eAAe,GAAK,CAAA,GACzCmB,EAAA9B,GAAkB,EAAI,GACtBW,EAAQ,GAAGgB,EAAQ,OAAO,SAASf,CAAS,GAC5CD,EAAQ,GAAGgB,EAAQ,OAAO,OAAQ,CAAAI,MAAO;AAEnC,QADYA,KAAA,gBAAAA,EAAK,YAAWA,GACpB,SAAS,YAAY,KAC/B,MAAM,qFAAqF;AAAA,KAC9F;AAAA,GACF,CAAA;AAG0B,QAAAC,IAAAC,EAAA,OAAA,EAAA,mBAAAjC,CAAe,EAAA,EAAA;;;;;;;;;;"}
@@ -1,10 +1,10 @@
1
- import { c as $e, p as pe, h as Te, f as de, i as ie, k as ze, r as me, s as Ke, e as We, b as Z, d as Re, u as Ee, t as Xe, o as fe, n as qe } from "./legacy-B3q739rj.js";
2
- import { v as Ie, w as g, J as t, m as i, A as y, K as e, x as Le, y as Ge, I as U, E as p, B as _, C as b, D as ge, G as ce, z as De, u as we, L as oe, W as Ce, N as Je, a3 as X, a1 as he, O as Ye, a2 as Qe, R as xe, S as Ae, a5 as Ze, b8 as et, M as ke, P as _e, b9 as tt, ba as nt } from "./index-DacuCeWr.js";
1
+ import { c as $e, p as pe, h as Te, f as de, i as ie, k as ze, r as me, s as Ke, e as We, b as Z, d as Re, u as Ee, t as Xe, o as fe, n as qe } from "./legacy-C1UsO_tu.js";
2
+ import { v as Ie, w as g, J as t, m as i, A as y, K as e, x as Le, y as Ge, I as U, E as p, B as _, C as b, D as ge, G as ce, z as De, u as we, L as oe, W as Ce, N as Je, a3 as X, a1 as he, O as Ye, a2 as Qe, R as xe, S as Ae, a5 as Ze, b8 as et, M as ke, P as _e, b9 as tt, ba as nt } from "./index-B0D9qQ_O.js";
3
3
  import "./scanner.es-cf-mCExK.js";
4
- import { C as rt } from "./ContentHeader-D-0aj97w.js";
5
- import { B as st } from "./ButtonBack-yLJ1WhkW.js";
6
- import { B as be } from "./Button-B58tbHjg.js";
7
- import { I as Be } from "./Input-DeQta7wH.js";
4
+ import { C as rt } from "./ContentHeader-DtB3AfgZ.js";
5
+ import { B as st } from "./ButtonBack-DiIG6luz.js";
6
+ import { B as be } from "./Button-D5CGIu8s.js";
7
+ import { I as Be } from "./Input-B40ySJRz.js";
8
8
  import { S as at } from "./scanner-Bm3Pvpfs.js";
9
9
  import { g as ye } from "./strings-B-rKL311.js";
10
10
  var it = de('<div>ChainId: <span class="crtw-font-bold"> </span></div>'), ot = de('<label class="crtw-text-[10px] crtw-text-warningTextColor cpui-send-tokens-validation-message" for="recipientAddress">Provided address is not valid.</label>'), ct = de('<div class="crtw-ml-2.5 crtw-w-16 crtw-min-w-16"><!></div>'), dt = de('<!> <div class="crtw-w-full crtw-p-0 crtw-relative"><div id="cpuiCredScanner"></div> <!> <div>Your balance: <span class="crtw-font-bold"><!> </span></div> <div class="crtw-mb-2.5 crtw-flex crtw-items-start crtw-justify-between crtw-w-full"><div class="crtw-flex crtw-flex-col crtw-w-full"><!> <!></div> <div class="crtw-ml-2.5 crtw-cursor-pointer"><img width="53px" alt="" class="crtw-h-[53px]"/></div></div> <div class="crtw-mb-2.5 crtw-flex crtw-items-start crtw-justify-between crtw-w-full"><!> <div class="crtw-ml-2.5 crtw-w-16 crtw-min-w-16"><!></div> <!></div> <!></div> <div class="crtw-mt-0.5 crtw-mb-3 crtw-w-full"><!></div>', 1);
@@ -360,4 +360,4 @@ function lt(q, E) {
360
360
  export {
361
361
  lt as default
362
362
  };
363
- //# sourceMappingURL=SendTokens-Cpbc8pNW.js.map
363
+ //# sourceMappingURL=SendTokens-D3cXqMmt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SendTokens-Cpbc8pNW.js","sources":["../../ui/main/send-tokens/SendTokens.svelte","../src/app/pages/send-tokens/SendTokens.svelte"],"sourcesContent":["<script lang=\"ts\">\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import ButtonBack from \"../shared/inputs/button-back/ButtonBack.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n import Input from \"../shared/inputs/input/Input.svelte\";\n import ScanIcon from \"../../images/scanner.svg\";\n\n import { getCryptoCurrencySymbol } from \"../../../utils/lib/strings/strings\";\n\n export let recipientAddress: string;\n export let amount: number | undefined;\n\n export let options: {\n title: string;\n isScannerHidden: boolean;\n balance: string;\n chainId?: string;\n isRecipientAddressValid: boolean;\n onScannerClicked: () => void;\n onSendTokens: () => void;\n onBackClicked: () => void;\n onChangeCurrency: () => void;\n onSetMaxAmount: () => void;\n isLoading: boolean;\n isSubmitDisabled: boolean;\n credAlias: string;\n activeCurrency: string;\n symbol: string;\n nativeSymbol: string;\n nativeBalance: string;\n isNativeCurrecyTransferAllowed?: boolean;\n };\n\n let {\n onChangeCurrency,\n onSetMaxAmount,\n onBackClicked,\n onSendTokens,\n title,\n chainId,\n onScannerClicked,\n credAlias,\n isNativeCurrecyTransferAllowed = true\n } = options;\n\n $: balance = options.balance;\n $: isLoading = options.isLoading;\n $: isSubmitDisabled = options.isSubmitDisabled;\n $: isRecipientAddressValid = options.isRecipientAddressValid;\n $: isScannerHidden = options.isScannerHidden;\n $: activeCurrency = options.activeCurrency;\n $: symbol = options.symbol;\n $: nativeSymbol = options.nativeSymbol;\n $: nativeBalance = options.nativeBalance;\n\n $: activeCurrencySymbol = getCryptoCurrencySymbol(activeCurrency, credAlias);\n const round = (num: number) => Math.floor(num * 100) / 100\n</script>\n\n<ContentHeader\n text={title}\n description={isScannerHidden\n ? ``\n : \"Scan Passport Id\"}\n/>\n<div class=\"crtw-w-full crtw-p-0 crtw-relative\">\n <div\n id=\"cpuiCredScanner\"\n class=\"crtw-absolute crtw-top-0 crtw-bottom-0 crtw-left-0 crtw-right-0 crtw-z-10 crtw-border crtw-border-gray-300 crtw-rounded-lg crtw-backdrop-blur-lg\"\n class:crtw-hidden={isScannerHidden}\n class:crtw-z-[-1]={isScannerHidden}\n ></div>\n {#if chainId}\n <div>ChainId: <span class=\"crtw-font-bold\">{chainId}</span></div>\n {/if}\n <div>\n Your balance: \n <span class=\"crtw-font-bold\">\n {#if isNativeCurrecyTransferAllowed}\n {round(+nativeBalance)} {nativeSymbol} / \n {/if}\n\n {round(+balance)} {getCryptoCurrencySymbol(symbol, credAlias)}\n </span>\n </div>\n <div\n class=\"crtw-mb-2.5 crtw-flex crtw-items-start crtw-justify-between crtw-w-full\"\n >\n <div class=\"crtw-flex crtw-flex-col crtw-w-full\">\n <Input\n name=\"recipientAddress\"\n type=\"text\"\n placeholder=\"Address 0x...\"\n bind:value={recipientAddress}\n />\n {#if recipientAddress && !isRecipientAddressValid}\n <label\n class=\"crtw-text-[10px] crtw-text-warningTextColor cpui-send-tokens-validation-message\"\n for=\"recipientAddress\">Provided address is not valid.</label\n >\n {/if}\n </div>\n\n <div class=\"crtw-ml-2.5 crtw-cursor-pointer\">\n <!-- svelte-ignore a11y-click-events-have-key-events -->\n <!-- svelte-ignore a11y-no-noninteractive-element-interactions -->\n <img\n src={ScanIcon}\n on:click={onScannerClicked}\n width=\"53px\"\n alt=\"\"\n class=\"crtw-h-[53px]\"\n />\n </div>\n </div>\n\n <div\n class=\"crtw-mb-2.5 crtw-flex crtw-items-start crtw-justify-between crtw-w-full\"\n >\n <Input\n type=\"number\"\n min=\"0\"\n step=\"0.001\"\n placeholder={`${activeCurrencySymbol} amount`}\n bind:value={amount}\n />\n <div class=\"crtw-ml-2.5 crtw-w-16 crtw-min-w-16\">\n <Button onClick={onSetMaxAmount} text={`MAX`} disabled={+balance <= 0} />\n </div>\n\n {#if isNativeCurrecyTransferAllowed}\n <div class=\"crtw-ml-2.5 crtw-w-16 crtw-min-w-16\">\n <Button\n onClick={onChangeCurrency}\n text={activeCurrencySymbol}\n disabled={!activeCurrency}\n />\n </div>\n {/if}\n </div>\n <Button\n onClick={onSendTokens}\n text={`Send ${amount || \"\"} ${activeCurrencySymbol}`}\n {isLoading}\n disabled={isSubmitDisabled}\n />\n</div>\n<div class=\"crtw-mt-0.5 crtw-mb-3 crtw-w-full\">\n <ButtonBack onClick={onBackClicked} />\n</div>\n","<script lang=\"ts\">\n import { ethers } from '@credenza3/core-web-evm-ext'\n import { get } from 'svelte/store'\n import { type Scanner } from '@credenza3/scanner-lib'\n\n import { clientPublicStore, fn, pageOptsStore, pageStore } from '@packages/stores'\n import { dispatch, once, PassportEvents } from '@lib/events/events'\n import { Pages } from '@packages/utils/enums'\n import { getTxScanAddress } from '@src/lib/tx/tx'\n import { SendTokens } from '@packages/ui'\n import { getAddress } from '@src/passport/blockchain'\n import { configStore } from '@src/stores/config'\n import type { TEvmContract } from '@packages/utils/types'\n import { providerStore } from '@src/stores'\n import { getUserAddressBySub } from '@src/Passport.service'\n\n const config = get(configStore)\n const { sendTokens, getCREDContract, toastAlert } = get(fn)\n\n let userAddress = ''\n let recipientAddress = ''\n let amount: number | undefined\n\n let activeCurrency = ''\n\n let decimals = 18\n let symbol = '-'\n let balance = ''\n\n let nativeDecimals = 18\n let nativeSymbol = '-'\n let nativeBalance = ''\n\n let isScannerHidden = true\n let isLoading = false\n\n let contract: ethers.Contract\n let signer: ethers.JsonRpcSigner\n let scanner: Scanner\n\n const onScannerClicked = async () => {\n const { Scanner } = await import('@credenza3/scanner-lib')\n scanner = new Scanner({ target: '#cpuiCredScanner' })\n once(PassportEvents.UI_CLOSED, scanner.close)\n await scanner.scan()\n scanner.on(Scanner.events.CAPTURE, async ({ sub }: { sub: string }) => {\n const { address } = await getUserAddressBySub(sub)\n recipientAddress = address\n scanner.close()\n })\n scanner.on(Scanner.events.CANCEL, () => (isScannerHidden = true))\n scanner.on(Scanner.events.ERROR, (err) => {\n const message = err?.message || err\n if (message.includes('Permission'))\n alert('In order to scan please allow the current page to access your camera and try again.')\n isScannerHidden = true\n })\n isScannerHidden = false\n }\n\n const sendTokensToRecipient = async () => {\n const isTCRED = activeCurrency === symbol\n isLoading = true\n try {\n const weiBn = ethers.parseUnits(String(amount), isTCRED ? decimals : nativeDecimals)\n const result = (await sendTokens({\n address: recipientAddress,\n amount: weiBn,\n instance: isTCRED ? contract : undefined,\n })) as { hash: string; wait: () => Promise<void> }\n toastAlert(\n `<a href=\"${getTxScanAddress(result.hash)}\" target=\"_blank\">Send TX</a> was created`,\n )\n recipientAddress = ''\n amount = undefined\n\n const [weiBalance, weiNativeBalance] = await Promise.all([\n contract.balanceOf(userAddress),\n signer.provider.getBalance(userAddress),\n ])\n\n balance = ethers.formatUnits(weiBalance, decimals)\n nativeBalance = parseFloat(ethers.formatUnits(weiNativeBalance, nativeDecimals)).toFixed(4)\n dispatch(PassportEvents.RECHECK_BALANCE, [result.hash])\n } catch (err) {\n toastAlert(err?.message || err || 'An error occurred while sending tokens', 'failure')\n dispatch(PassportEvents.ERROR, { error: err })\n }\n isLoading = false\n }\n\n const init = async () => {\n const pageOpts = get(pageOptsStore)\n recipientAddress = pageOpts?.to || ''\n amount = pageOpts?.amount || undefined\n const { decimals: contractDecimals, contract: credContract } = (await getCREDContract()) as TEvmContract\n decimals = contractDecimals\n contract = credContract\n const provider = get(providerStore)\n signer = await provider.getSigner()\n userAddress = await getAddress()\n const results = await Promise.all([\n contract.symbol(),\n contract.balanceOf(userAddress),\n provider.getBalance(userAddress),\n fetch('https://chainid.network/chains.json')\n .then((result) => result.json())\n .then((networks) =>\n networks.find((network: { chainId: number }) => String(network.chainId) === config.chainId),\n ),\n ])\n symbol = results[0]\n balance = ethers.formatUnits(results[1], decimals)\n nativeDecimals = results[3]?.nativeCurrency?.decimals ?? 18\n nativeBalance = parseFloat(ethers.formatUnits(results[2], nativeDecimals)).toFixed(4)\n nativeSymbol = results[3]?.nativeCurrency?.symbol ?? 'ETH'\n activeCurrency = symbol\n }\n\n $: $configStore.chainId && $providerStore && init()\n $: isRecipientAddressValid = !!ethers.isAddress(recipientAddress)\n $: isSubmitDisabled =\n isLoading ||\n !amount ||\n !isRecipientAddressValid ||\n (activeCurrency === symbol && amount > +balance) ||\n (activeCurrency === nativeSymbol && amount > +nativeBalance)\n</script>\n\n<SendTokens\n bind:recipientAddress\n bind:amount\n options={{\n title: `Send stored value`,\n isNativeCurrecyTransferAllowed: $configStore.transferTokens?.nativeCurrency !== false,\n isScannerHidden,\n balance,\n chainId: config.chainId,\n isRecipientAddressValid,\n onScannerClicked,\n onSendTokens: sendTokensToRecipient,\n onBackClicked: () => pageStore.set(Pages.WALLET),\n onChangeCurrency: () => (activeCurrency === symbol ? (activeCurrency = nativeSymbol) : (activeCurrency = symbol)),\n onSetMaxAmount: () => (activeCurrency === symbol ? (amount = +balance) : (amount = +nativeBalance)),\n isLoading,\n isSubmitDisabled,\n credAlias: $clientPublicStore?.ui_settings.cred_alias,\n activeCurrency,\n symbol,\n nativeSymbol,\n nativeBalance,\n }}\n/>\n"],"names":["recipientAddress","$.prop","$$props","amount","options","onChangeCurrency","onSetMaxAmount","onBackClicked","onSendTokens","title","chainId","onScannerClicked","credAlias","isNativeCurrecyTransferAllowed","round","num","balance","isLoading","isSubmitDisabled","isRecipientAddressValid","isScannerHidden","activeCurrency","symbol","nativeSymbol","nativeBalance","$.set","activeCurrencySymbol","getCryptoCurrencySymbol","$.get","expression","$.derived_safe_equal","$$render","consequent","$.untrack","consequent_1","$$value","consequent_2","expression_2","consequent_3","ScanIcon","__awaiter","thisArg","_arguments","P","generator","config","get","configStore","sendTokens","getCREDContract","toastAlert","fn","userAddress","$.mutable_source","decimals","nativeDecimals","contract","signer","scanner","Scanner","once","PassportEvents","_a","sub","address","getUserAddressBySub","err","sendTokensToRecipient","isTCRED","weiBn","ethers","result","getTxScanAddress","weiBalance","weiNativeBalance","dispatch","init","pageOpts","pageOptsStore","contractDecimals","credContract","provider","providerStore","getAddress","results","networks","network","_c","_b","_f","_e","_d","$configStore","$providerStore","pageStore","Pages","$clientPublicStore"],"mappings":"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"}
1
+ {"version":3,"file":"SendTokens-D3cXqMmt.js","sources":["../../ui/main/send-tokens/SendTokens.svelte","../src/app/pages/send-tokens/SendTokens.svelte"],"sourcesContent":["<script lang=\"ts\">\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import ButtonBack from \"../shared/inputs/button-back/ButtonBack.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n import Input from \"../shared/inputs/input/Input.svelte\";\n import ScanIcon from \"../../images/scanner.svg\";\n\n import { getCryptoCurrencySymbol } from \"../../../utils/lib/strings/strings\";\n\n export let recipientAddress: string;\n export let amount: number | undefined;\n\n export let options: {\n title: string;\n isScannerHidden: boolean;\n balance: string;\n chainId?: string;\n isRecipientAddressValid: boolean;\n onScannerClicked: () => void;\n onSendTokens: () => void;\n onBackClicked: () => void;\n onChangeCurrency: () => void;\n onSetMaxAmount: () => void;\n isLoading: boolean;\n isSubmitDisabled: boolean;\n credAlias: string;\n activeCurrency: string;\n symbol: string;\n nativeSymbol: string;\n nativeBalance: string;\n isNativeCurrecyTransferAllowed?: boolean;\n };\n\n let {\n onChangeCurrency,\n onSetMaxAmount,\n onBackClicked,\n onSendTokens,\n title,\n chainId,\n onScannerClicked,\n credAlias,\n isNativeCurrecyTransferAllowed = true\n } = options;\n\n $: balance = options.balance;\n $: isLoading = options.isLoading;\n $: isSubmitDisabled = options.isSubmitDisabled;\n $: isRecipientAddressValid = options.isRecipientAddressValid;\n $: isScannerHidden = options.isScannerHidden;\n $: activeCurrency = options.activeCurrency;\n $: symbol = options.symbol;\n $: nativeSymbol = options.nativeSymbol;\n $: nativeBalance = options.nativeBalance;\n\n $: activeCurrencySymbol = getCryptoCurrencySymbol(activeCurrency, credAlias);\n const round = (num: number) => Math.floor(num * 100) / 100\n</script>\n\n<ContentHeader\n text={title}\n description={isScannerHidden\n ? ``\n : \"Scan Passport Id\"}\n/>\n<div class=\"crtw-w-full crtw-p-0 crtw-relative\">\n <div\n id=\"cpuiCredScanner\"\n class=\"crtw-absolute crtw-top-0 crtw-bottom-0 crtw-left-0 crtw-right-0 crtw-z-10 crtw-border crtw-border-gray-300 crtw-rounded-lg crtw-backdrop-blur-lg\"\n class:crtw-hidden={isScannerHidden}\n class:crtw-z-[-1]={isScannerHidden}\n ></div>\n {#if chainId}\n <div>ChainId: <span class=\"crtw-font-bold\">{chainId}</span></div>\n {/if}\n <div>\n Your balance: \n <span class=\"crtw-font-bold\">\n {#if isNativeCurrecyTransferAllowed}\n {round(+nativeBalance)} {nativeSymbol} / \n {/if}\n\n {round(+balance)} {getCryptoCurrencySymbol(symbol, credAlias)}\n </span>\n </div>\n <div\n class=\"crtw-mb-2.5 crtw-flex crtw-items-start crtw-justify-between crtw-w-full\"\n >\n <div class=\"crtw-flex crtw-flex-col crtw-w-full\">\n <Input\n name=\"recipientAddress\"\n type=\"text\"\n placeholder=\"Address 0x...\"\n bind:value={recipientAddress}\n />\n {#if recipientAddress && !isRecipientAddressValid}\n <label\n class=\"crtw-text-[10px] crtw-text-warningTextColor cpui-send-tokens-validation-message\"\n for=\"recipientAddress\">Provided address is not valid.</label\n >\n {/if}\n </div>\n\n <div class=\"crtw-ml-2.5 crtw-cursor-pointer\">\n <!-- svelte-ignore a11y-click-events-have-key-events -->\n <!-- svelte-ignore a11y-no-noninteractive-element-interactions -->\n <img\n src={ScanIcon}\n on:click={onScannerClicked}\n width=\"53px\"\n alt=\"\"\n class=\"crtw-h-[53px]\"\n />\n </div>\n </div>\n\n <div\n class=\"crtw-mb-2.5 crtw-flex crtw-items-start crtw-justify-between crtw-w-full\"\n >\n <Input\n type=\"number\"\n min=\"0\"\n step=\"0.001\"\n placeholder={`${activeCurrencySymbol} amount`}\n bind:value={amount}\n />\n <div class=\"crtw-ml-2.5 crtw-w-16 crtw-min-w-16\">\n <Button onClick={onSetMaxAmount} text={`MAX`} disabled={+balance <= 0} />\n </div>\n\n {#if isNativeCurrecyTransferAllowed}\n <div class=\"crtw-ml-2.5 crtw-w-16 crtw-min-w-16\">\n <Button\n onClick={onChangeCurrency}\n text={activeCurrencySymbol}\n disabled={!activeCurrency}\n />\n </div>\n {/if}\n </div>\n <Button\n onClick={onSendTokens}\n text={`Send ${amount || \"\"} ${activeCurrencySymbol}`}\n {isLoading}\n disabled={isSubmitDisabled}\n />\n</div>\n<div class=\"crtw-mt-0.5 crtw-mb-3 crtw-w-full\">\n <ButtonBack onClick={onBackClicked} />\n</div>\n","<script lang=\"ts\">\n import { ethers } from '@credenza3/core-web-evm-ext'\n import { get } from 'svelte/store'\n import { type Scanner } from '@credenza3/scanner-lib'\n\n import { clientPublicStore, fn, pageOptsStore, pageStore } from '@packages/stores'\n import { dispatch, once, PassportEvents } from '@lib/events/events'\n import { Pages } from '@packages/utils/enums'\n import { getTxScanAddress } from '@src/lib/tx/tx'\n import { SendTokens } from '@packages/ui'\n import { getAddress } from '@src/passport/blockchain'\n import { configStore } from '@src/stores/config'\n import type { TEvmContract } from '@packages/utils/types'\n import { providerStore } from '@src/stores'\n import { getUserAddressBySub } from '@src/Passport.service'\n\n const config = get(configStore)\n const { sendTokens, getCREDContract, toastAlert } = get(fn)\n\n let userAddress = ''\n let recipientAddress = ''\n let amount: number | undefined\n\n let activeCurrency = ''\n\n let decimals = 18\n let symbol = '-'\n let balance = ''\n\n let nativeDecimals = 18\n let nativeSymbol = '-'\n let nativeBalance = ''\n\n let isScannerHidden = true\n let isLoading = false\n\n let contract: ethers.Contract\n let signer: ethers.JsonRpcSigner\n let scanner: Scanner\n\n const onScannerClicked = async () => {\n const { Scanner } = await import('@credenza3/scanner-lib')\n scanner = new Scanner({ target: '#cpuiCredScanner' })\n once(PassportEvents.UI_CLOSED, scanner.close)\n await scanner.scan()\n scanner.on(Scanner.events.CAPTURE, async ({ sub }: { sub: string }) => {\n const { address } = await getUserAddressBySub(sub)\n recipientAddress = address\n scanner.close()\n })\n scanner.on(Scanner.events.CANCEL, () => (isScannerHidden = true))\n scanner.on(Scanner.events.ERROR, (err) => {\n const message = err?.message || err\n if (message.includes('Permission'))\n alert('In order to scan please allow the current page to access your camera and try again.')\n isScannerHidden = true\n })\n isScannerHidden = false\n }\n\n const sendTokensToRecipient = async () => {\n const isTCRED = activeCurrency === symbol\n isLoading = true\n try {\n const weiBn = ethers.parseUnits(String(amount), isTCRED ? decimals : nativeDecimals)\n const result = (await sendTokens({\n address: recipientAddress,\n amount: weiBn,\n instance: isTCRED ? contract : undefined,\n })) as { hash: string; wait: () => Promise<void> }\n toastAlert(\n `<a href=\"${getTxScanAddress(result.hash)}\" target=\"_blank\">Send TX</a> was created`,\n )\n recipientAddress = ''\n amount = undefined\n\n const [weiBalance, weiNativeBalance] = await Promise.all([\n contract.balanceOf(userAddress),\n signer.provider.getBalance(userAddress),\n ])\n\n balance = ethers.formatUnits(weiBalance, decimals)\n nativeBalance = parseFloat(ethers.formatUnits(weiNativeBalance, nativeDecimals)).toFixed(4)\n dispatch(PassportEvents.RECHECK_BALANCE, [result.hash])\n } catch (err) {\n toastAlert(err?.message || err || 'An error occurred while sending tokens', 'failure')\n dispatch(PassportEvents.ERROR, { error: err })\n }\n isLoading = false\n }\n\n const init = async () => {\n const pageOpts = get(pageOptsStore)\n recipientAddress = pageOpts?.to || ''\n amount = pageOpts?.amount || undefined\n const { decimals: contractDecimals, contract: credContract } = (await getCREDContract()) as TEvmContract\n decimals = contractDecimals\n contract = credContract\n const provider = get(providerStore)\n signer = await provider.getSigner()\n userAddress = await getAddress()\n const results = await Promise.all([\n contract.symbol(),\n contract.balanceOf(userAddress),\n provider.getBalance(userAddress),\n fetch('https://chainid.network/chains.json')\n .then((result) => result.json())\n .then((networks) =>\n networks.find((network: { chainId: number }) => String(network.chainId) === config.chainId),\n ),\n ])\n symbol = results[0]\n balance = ethers.formatUnits(results[1], decimals)\n nativeDecimals = results[3]?.nativeCurrency?.decimals ?? 18\n nativeBalance = parseFloat(ethers.formatUnits(results[2], nativeDecimals)).toFixed(4)\n nativeSymbol = results[3]?.nativeCurrency?.symbol ?? 'ETH'\n activeCurrency = symbol\n }\n\n $: $configStore.chainId && $providerStore && init()\n $: isRecipientAddressValid = !!ethers.isAddress(recipientAddress)\n $: isSubmitDisabled =\n isLoading ||\n !amount ||\n !isRecipientAddressValid ||\n (activeCurrency === symbol && amount > +balance) ||\n (activeCurrency === nativeSymbol && amount > +nativeBalance)\n</script>\n\n<SendTokens\n bind:recipientAddress\n bind:amount\n options={{\n title: `Send stored value`,\n isNativeCurrecyTransferAllowed: $configStore.transferTokens?.nativeCurrency !== false,\n isScannerHidden,\n balance,\n chainId: config.chainId,\n isRecipientAddressValid,\n onScannerClicked,\n onSendTokens: sendTokensToRecipient,\n onBackClicked: () => pageStore.set(Pages.WALLET),\n onChangeCurrency: () => (activeCurrency === symbol ? (activeCurrency = nativeSymbol) : (activeCurrency = symbol)),\n onSetMaxAmount: () => (activeCurrency === symbol ? (amount = +balance) : (amount = +nativeBalance)),\n isLoading,\n isSubmitDisabled,\n credAlias: $clientPublicStore?.ui_settings.cred_alias,\n activeCurrency,\n symbol,\n nativeSymbol,\n nativeBalance,\n }}\n/>\n"],"names":["recipientAddress","$.prop","$$props","amount","options","onChangeCurrency","onSetMaxAmount","onBackClicked","onSendTokens","title","chainId","onScannerClicked","credAlias","isNativeCurrecyTransferAllowed","round","num","balance","isLoading","isSubmitDisabled","isRecipientAddressValid","isScannerHidden","activeCurrency","symbol","nativeSymbol","nativeBalance","$.set","activeCurrencySymbol","getCryptoCurrencySymbol","$.get","expression","$.derived_safe_equal","$$render","consequent","$.untrack","consequent_1","$$value","consequent_2","expression_2","consequent_3","ScanIcon","__awaiter","thisArg","_arguments","P","generator","config","get","configStore","sendTokens","getCREDContract","toastAlert","fn","userAddress","$.mutable_source","decimals","nativeDecimals","contract","signer","scanner","Scanner","once","PassportEvents","_a","sub","address","getUserAddressBySub","err","sendTokensToRecipient","isTCRED","weiBn","ethers","result","getTxScanAddress","weiBalance","weiNativeBalance","dispatch","init","pageOpts","pageOptsStore","contractDecimals","credContract","provider","providerStore","getAddress","results","networks","network","_c","_b","_f","_e","_d","$configStore","$providerStore","pageStore","Pages","$clientPublicStore"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { c as k, p as j, f as E, b as $, d as O, u as q, h as A, n as F, o as w } from "./legacy-B3q739rj.js";
2
- import { v as z, y, E as x, z as B, u as I, L as K, N as L, K as M, I as N, b4 as R, a1 as U, O as G, W as J } from "./index-DacuCeWr.js";
3
- import { C as P } from "./App-DrYtIsxl.js";
4
- import { C as Q } from "./ContentHeader-D-0aj97w.js";
5
- import { B as b } from "./Button-B58tbHjg.js";
1
+ import { c as k, p as j, f as E, b as $, d as O, u as q, h as A, n as F, o as w } from "./legacy-C1UsO_tu.js";
2
+ import { v as z, y, E as x, z as B, u as I, L as K, N as L, K as M, I as N, b4 as R, a1 as U, O as G, W as J } from "./index-B0D9qQ_O.js";
3
+ import { C as P } from "./App-C9I9989L.js";
4
+ import { C as Q } from "./ContentHeader-DtB3AfgZ.js";
5
+ import { B as b } from "./Button-D5CGIu8s.js";
6
6
  var V = E("<!> <!>", 1), X = E("<!> <!>", 1);
7
7
  function D(i, r) {
8
8
  if (new.target) return k({ component: D, ...i });
@@ -104,4 +104,4 @@ function Y(i, r) {
104
104
  export {
105
105
  Y as default
106
106
  };
107
- //# sourceMappingURL=Sign-Cqt9pYfi.js.map
107
+ //# sourceMappingURL=Sign-IQLTbDiV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sign-Cqt9pYfi.js","sources":["../../ui/main/passport-id/Sign.svelte","../src/app/pages/sign/Sign.svelte"],"sourcesContent":["<script lang=\"ts\">\n import Container from \"../shared/Container.svelte\";\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n\n export let options: {\n title: string;\n description: string;\n onConfirm: () => Promise<void>;\n onCancel: () => void;\n };\n\n let { title, description, onConfirm, onCancel } = options;\n</script>\n\n<ContentHeader text={title} {description} />\n\n<Container class=\"crtw-flex crtw-justify-between crtw-gap-10\">\n <Button text=\"Cancel\" onClick={onCancel}></Button>\n <Button text=\"Sign the message\" onClick={onConfirm} />\n</Container>\n","<script lang=\"ts\">\n import { get } from 'svelte/store'\n import { fn } from '@packages/stores'\n import { Sign } from '@packages/ui'\n import { pageOptsStore } from '@packages/stores'\n import { providerStore, configStore } from '@src/stores'\n import socketFn from '@lib/ws/socket-io'\n\n const { close } = get(fn)\n\n const handleSignTransaction = async () => {\n const signer = await $providerStore.getSigner()\n const signature = await signer.signMessage($pageOptsStore.message)\n socketFn.signDataAndEmitEvent($configStore.credenza.generalWssUrl, signature, $pageOptsStore.socketEventDataHeaders)\n close()\n }\n</script>\n\n<Sign\n options={{\n title: 'Sign Transaction Request',\n description: 'Please sign the requested transaction.',\n onCancel: close,\n onConfirm: handleSignTransaction,\n }}\n/>\n"],"names":["options","$.prop","$$props","title","description","onConfirm","onCancel","__awaiter","thisArg","_arguments","P","generator","close","get","fn","handleSignTransaction","signature","$providerStore","$pageOptsStore","socketFn","$configStore"],"mappings":";;;;;;;;;MAKaA,IAKVC,EAAAC,GAAA,WAAA,EAAA,GAEK,EAAA,OAAAC,GAAO,aAAAC,GAAa,WAAAC,GAAW,UAAAC,EAAQ,IAAKN,EAAO;;;;aAGtCG;AAAA;;;;;;;;;;;;;iBAGYG;AAAA;;;;;;iBACUD;AAAA;;;;;;;;;;;;;;;;;;;ACnB1B,MAAAE,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQP,OAAAC,EAAK,IAAKC,EAAIC,CAAE,GAElBC,IAAmC,MAAAR,EAAA,QAAA,QAAA,QAAA,aAAA;AAEjC,UAAAS,WADM,MAASC,EAAc,EAAC,UAAS,GACd,YAAYC,EAAc,EAAC,OAAO;AACjE,IAAAC,EAAS,qBAAqBC,IAAa,SAAS,eAAeJ,GAAWE,IAAe,sBAAsB,GACnHN,EAAK;AAAA,GACN;;;IAKC,OAAO;AAAA,IACP,aAAa;AAAA,IACb,UAAUA;AAAA,IACV,WAAWG;AAAA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Sign-IQLTbDiV.js","sources":["../../ui/main/passport-id/Sign.svelte","../src/app/pages/sign/Sign.svelte"],"sourcesContent":["<script lang=\"ts\">\n import Container from \"../shared/Container.svelte\";\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n\n export let options: {\n title: string;\n description: string;\n onConfirm: () => Promise<void>;\n onCancel: () => void;\n };\n\n let { title, description, onConfirm, onCancel } = options;\n</script>\n\n<ContentHeader text={title} {description} />\n\n<Container class=\"crtw-flex crtw-justify-between crtw-gap-10\">\n <Button text=\"Cancel\" onClick={onCancel}></Button>\n <Button text=\"Sign the message\" onClick={onConfirm} />\n</Container>\n","<script lang=\"ts\">\n import { get } from 'svelte/store'\n import { fn } from '@packages/stores'\n import { Sign } from '@packages/ui'\n import { pageOptsStore } from '@packages/stores'\n import { providerStore, configStore } from '@src/stores'\n import socketFn from '@lib/ws/socket-io'\n\n const { close } = get(fn)\n\n const handleSignTransaction = async () => {\n const signer = await $providerStore.getSigner()\n const signature = await signer.signMessage($pageOptsStore.message)\n socketFn.signDataAndEmitEvent($configStore.credenza.generalWssUrl, signature, $pageOptsStore.socketEventDataHeaders)\n close()\n }\n</script>\n\n<Sign\n options={{\n title: 'Sign Transaction Request',\n description: 'Please sign the requested transaction.',\n onCancel: close,\n onConfirm: handleSignTransaction,\n }}\n/>\n"],"names":["options","$.prop","$$props","title","description","onConfirm","onCancel","__awaiter","thisArg","_arguments","P","generator","close","get","fn","handleSignTransaction","signature","$providerStore","$pageOptsStore","socketFn","$configStore"],"mappings":";;;;;;;;;MAKaA,IAKVC,EAAAC,GAAA,WAAA,EAAA,GAEK,EAAA,OAAAC,GAAO,aAAAC,GAAa,WAAAC,GAAW,UAAAC,EAAQ,IAAKN,EAAO;;;;aAGtCG;AAAA;;;;;;;;;;;;;iBAGYG;AAAA;;;;;;iBACUD;AAAA;;;;;;;;;;;;;;;;;;;ACnB1B,MAAAE,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQP,OAAAC,EAAK,IAAKC,EAAIC,CAAE,GAElBC,IAAmC,MAAAR,EAAA,QAAA,QAAA,QAAA,aAAA;AAEjC,UAAAS,WADM,MAASC,EAAc,EAAC,UAAS,GACd,YAAYC,EAAc,EAAC,OAAO;AACjE,IAAAC,EAAS,qBAAqBC,IAAa,SAAS,eAAeJ,GAAWE,IAAe,sBAAsB,GACnHN,EAAK;AAAA,GACN;;;IAKC,OAAO;AAAA,IACP,aAAa;AAAA,IACb,UAAUA;AAAA,IACV,WAAWG;AAAA;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
- import { L as a, O as h, W as g, b5 as _, M as f, P as k, bC as P, b1 as O, a2 as w, bf as C } from "./index-DacuCeWr.js";
2
- import { g as I, r as S } from "./Payment-BfBk2Vj4.js";
1
+ import { L as a, O as h, W as g, b5 as _, M as f, P as k, bB as P, b1 as O, a2 as w, bf as I } from "./index-B0D9qQ_O.js";
2
+ import { g as C, r as S } from "./Payment-DVlaKx-E.js";
3
3
  const v = async (n) => {
4
4
  var o, l;
5
5
  const e = a(h), s = ((o = e.tokens) == null ? void 0 : o.map(
@@ -30,7 +30,7 @@ const v = async (n) => {
30
30
  const { _id: m } = await c.json();
31
31
  return m;
32
32
  }, u = async (n) => {
33
- const e = a(g), s = a(h), t = await I(e.credenza.generalApiUrl, n);
33
+ const e = a(g), s = a(h), t = await C(e.credenza.generalApiUrl, n);
34
34
  return t.payment_provider_tx && (await S({
35
35
  stripeChargeId: t.payment_provider_tx,
36
36
  title: s.title,
@@ -45,7 +45,7 @@ const v = async (n) => {
45
45
  chainId: e.chainId,
46
46
  email: d,
47
47
  phone: c
48
- })})`, o = C(e.clientId).name, r = {
48
+ })})`, o = I(e.clientId).name, r = {
49
49
  card_token: (e.stripe.pk[o] ?? e.stripe.pk.DEFAULT).includes("pk_live") ? n : "tok_visa",
50
50
  client: o,
51
51
  description: m,
@@ -58,4 +58,4 @@ const v = async (n) => {
58
58
  export {
59
59
  T as processPayment
60
60
  };
61
- //# sourceMappingURL=Stripe.service-DkU3OPk-.js.map
61
+ //# sourceMappingURL=Stripe.service-GlcYQnp5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stripe.service-DkU3OPk-.js","sources":["../src/app/pages/payment/order.service.ts","../src/app/pages/payment/stripe/Stripe.service.ts"],"sourcesContent":["import { get } from 'svelte/store'\nimport { pageOptsStore, accessTokenStore } from '@packages/stores'\nimport { requestReceipt } from './Payment.service'\nimport { attachMetadataToItems } from '@src/passport/blockchain'\nimport { configStore } from '@src/stores/config'\nimport { PassportEvents, dispatch } from '@lib/events/events'\nimport { getCompmletedOrderDetails } from '@lib/orders'\nimport { type TPaymentReturn } from '@packages/utils/types'\nimport type { TMembershipPaymentData, TBasicPaymentData, TTokenPaymentData } from './oders.types'\n\n\nexport const createOrder = async (body: TBasicPaymentData): Promise<string> => {\n const paymentOpts = get(pageOptsStore)\n\n const tokensPaymentData: TTokenPaymentData[] =\n paymentOpts.tokens?.map(\n ({\n contractAddress,\n tokenId,\n amount,\n }: {\n contractAddress: string\n tokenId: number\n amount: string | number\n }) => ({\n contract_address: contractAddress,\n token_id: +tokenId,\n amount,\n }),\n ) || []\n\n const membershipsPaymentData: TMembershipPaymentData[] =\n paymentOpts.memberships?.map(({ contractAddress }: { contractAddress: string }) => ({\n contract_address: contractAddress,\n })) || []\n\n const payload = {\n ...body,\n tokens: tokensPaymentData,\n memberships: membershipsPaymentData\n }\n\n\n const config = get(configStore)\n const res = await fetch(config.credenza.evmApiUrl + '/contracts/buy-assets', {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: 'POST',\n body: JSON.stringify(payload),\n })\n if (!res.ok) throw new Error('Failed to create order')\n const { _id }: { _id: string } = await res.json()\n\n return _id\n}\n\nexport const processOrder = async (orderId: string): Promise<TPaymentReturn> => {\n const config = get(configStore)\n const paymentOpts = get(pageOptsStore)\n\n const data = (await getCompmletedOrderDetails(config.credenza.generalApiUrl, orderId)) as TPaymentReturn\n\n if (data.payment_provider_tx) {\n await requestReceipt({\n stripeChargeId: data.payment_provider_tx,\n title: paymentOpts.title,\n subtitle: paymentOpts.subtitle,\n })\n dispatch(PassportEvents.RECEIPT, { stripeChargeId: data.payment_provider_tx })\n }\n \n await attachMetadataToItems(data.items)\n return data\n}","import { get } from 'svelte/store'\nimport { userStore, pageOptsStore } from '@packages/stores'\nimport { getAddress } from '@src/passport/blockchain'\nimport { configStore } from '@src/stores/config'\nimport { getClientConfigByClientId } from '@lib/clients'\nimport { processOrder, createOrder } from '../order.service'\nimport type { TBasicPaymentData } from '../oders.types'\n\n\nexport const processPayment = async (stripeTokenId: string) => {\n const config = get(configStore)\n const paymentOpts = get(pageOptsStore)\n const user = get(userStore)\n const userAddress = await getAddress()\n\n const email = user?.email || user?.pending?.email\n const phone = user?.phone || user?.pending?.phone\n const description =\n 'Passport Payment: ' +\n `(${JSON.stringify({\n ...paymentOpts.tokens,\n ...paymentOpts.memberships,\n userAddress,\n chainId: config.chainId,\n email,\n phone,\n })})`\n\n const clientName = getClientConfigByClientId(config.clientId).name\n const stripePK = config.stripe.pk[clientName] ?? config.stripe.pk.DEFAULT\n const basicPaymentData: TBasicPaymentData = {\n card_token: stripePK.includes('pk_live') ? stripeTokenId : 'tok_visa',\n client: clientName,\n description,\n address: userAddress,\n chain_id: Number(config.chainId),\n currency: 'USD',\n }\n\n const order = await createOrder(basicPaymentData)\n return await processOrder(order)\n}\n"],"names":["createOrder","body","paymentOpts","get","pageOptsStore","tokensPaymentData","_a","contractAddress","tokenId","amount","membershipsPaymentData","_b","payload","config","configStore","res","accessTokenStore","_id","processOrder","orderId","data","getCompmletedOrderDetails","requestReceipt","dispatch","PassportEvents","attachMetadataToItems","processPayment","stripeTokenId","user","userStore","userAddress","getAddress","email","phone","description","clientName","getClientConfigByClientId","basicPaymentData","order"],"mappings":";;AAWa,MAAAA,IAAc,OAAOC,MAA6C;;AACvE,QAAAC,IAAcC,EAAIC,CAAa,GAE/BC,MACJC,IAAAJ,EAAY,WAAZ,gBAAAI,EAAoB;AAAA,IAClB,CAAC;AAAA,MACC,iBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,QAAAC;AAAA,IAAA,OAKK;AAAA,MACL,kBAAkBF;AAAA,MAClB,UAAU,CAACC;AAAA,MACX,QAAAC;AAAA,IACF;AAAA,QACG,CAAC,GAEFC,MACJC,IAAAT,EAAY,gBAAZ,gBAAAS,EAAyB,IAAI,CAAC,EAAE,iBAAAJ,SAAoD;AAAA,IAClF,kBAAkBA;AAAA,EACpB,QAAO,CAAC,GAEJK,IAAU;AAAA,IACd,GAAGX;AAAA,IACH,QAAQI;AAAA,IACR,aAAaK;AAAA,EACf,GAGMG,IAASV,EAAIW,CAAW,GACxBC,IAAM,MAAM,MAAMF,EAAO,SAAS,YAAY,yBAAyB;AAAA,IAC3E,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,eAAe,UAAUV,EAAIa,CAAgB,CAAC;AAAA,IAChD;AAAA,IACA,QAAQ;AAAA,IACR,MAAM,KAAK,UAAUJ,CAAO;AAAA,EAAA,CAC7B;AACD,MAAI,CAACG,EAAI,GAAU,OAAA,IAAI,MAAM,wBAAwB;AACrD,QAAM,EAAE,KAAAE,EAAA,IAAyB,MAAMF,EAAI,KAAK;AAEzC,SAAAE;AACT,GAEaC,IAAe,OAAOC,MAA6C;AACxE,QAAAN,IAASV,EAAIW,CAAW,GACxBZ,IAAcC,EAAIC,CAAa,GAE/BgB,IAAQ,MAAMC,EAA0BR,EAAO,SAAS,eAAeM,CAAO;AAEpF,SAAIC,EAAK,wBACP,MAAME,EAAe;AAAA,IACnB,gBAAgBF,EAAK;AAAA,IACrB,OAAOlB,EAAY;AAAA,IACnB,UAAUA,EAAY;AAAA,EAAA,CACvB,GACDqB,EAASC,EAAe,SAAS,EAAE,gBAAgBJ,EAAK,qBAAqB,IAGzE,MAAAK,EAAsBL,EAAK,KAAK,GAC/BA;AACT,GClEaM,IAAiB,OAAOC,MAA0B;;AACvD,QAAAd,IAASV,EAAIW,CAAW,GACxBZ,IAAcC,EAAIC,CAAa,GAC/BwB,IAAOzB,EAAI0B,CAAS,GACpBC,IAAc,MAAMC,EAAW,GAE/BC,KAAQJ,KAAA,gBAAAA,EAAM,YAAStB,IAAAsB,KAAA,gBAAAA,EAAM,YAAN,gBAAAtB,EAAe,QACtC2B,KAAQL,KAAA,gBAAAA,EAAM,YAASjB,IAAAiB,KAAA,gBAAAA,EAAM,YAAN,gBAAAjB,EAAe,QACtCuB,IACJ,sBACI,KAAK,UAAU;AAAA,IACjB,GAAGhC,EAAY;AAAA,IACf,GAAGA,EAAY;AAAA,IACf,aAAA4B;AAAA,IACA,SAASjB,EAAO;AAAA,IAChB,OAAAmB;AAAA,IACA,OAAAC;AAAA,EACD,CAAA,CAAC,KAEEE,IAAaC,EAA0BvB,EAAO,QAAQ,EAAE,MAExDwB,IAAsC;AAAA,IAC1C,aAFexB,EAAO,OAAO,GAAGsB,CAAU,KAAKtB,EAAO,OAAO,GAAG,SAE3C,SAAS,SAAS,IAAIc,IAAgB;AAAA,IAC3D,QAAQQ;AAAA,IACR,aAAAD;AAAA,IACA,SAASJ;AAAA,IACT,UAAU,OAAOjB,EAAO,OAAO;AAAA,IAC/B,UAAU;AAAA,EACZ,GAEMyB,IAAQ,MAAMtC,EAAYqC,CAAgB;AACzC,SAAA,MAAMnB,EAAaoB,CAAK;AACjC;"}
1
+ {"version":3,"file":"Stripe.service-GlcYQnp5.js","sources":["../src/app/pages/payment/order.service.ts","../src/app/pages/payment/stripe/Stripe.service.ts"],"sourcesContent":["import { get } from 'svelte/store'\nimport { pageOptsStore, accessTokenStore } from '@packages/stores'\nimport { requestReceipt } from './Payment.service'\nimport { attachMetadataToItems } from '@src/passport/blockchain'\nimport { configStore } from '@src/stores/config'\nimport { PassportEvents, dispatch } from '@lib/events/events'\nimport { getCompmletedOrderDetails } from '@lib/orders'\nimport { type TPaymentReturn } from '@packages/utils/types'\nimport type { TMembershipPaymentData, TBasicPaymentData, TTokenPaymentData } from './oders.types'\n\n\nexport const createOrder = async (body: TBasicPaymentData): Promise<string> => {\n const paymentOpts = get(pageOptsStore)\n\n const tokensPaymentData: TTokenPaymentData[] =\n paymentOpts.tokens?.map(\n ({\n contractAddress,\n tokenId,\n amount,\n }: {\n contractAddress: string\n tokenId: number\n amount: string | number\n }) => ({\n contract_address: contractAddress,\n token_id: +tokenId,\n amount,\n }),\n ) || []\n\n const membershipsPaymentData: TMembershipPaymentData[] =\n paymentOpts.memberships?.map(({ contractAddress }: { contractAddress: string }) => ({\n contract_address: contractAddress,\n })) || []\n\n const payload = {\n ...body,\n tokens: tokensPaymentData,\n memberships: membershipsPaymentData\n }\n\n\n const config = get(configStore)\n const res = await fetch(config.credenza.evmApiUrl + '/contracts/buy-assets', {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: 'POST',\n body: JSON.stringify(payload),\n })\n if (!res.ok) throw new Error('Failed to create order')\n const { _id }: { _id: string } = await res.json()\n\n return _id\n}\n\nexport const processOrder = async (orderId: string): Promise<TPaymentReturn> => {\n const config = get(configStore)\n const paymentOpts = get(pageOptsStore)\n\n const data = (await getCompmletedOrderDetails(config.credenza.generalApiUrl, orderId)) as TPaymentReturn\n\n if (data.payment_provider_tx) {\n await requestReceipt({\n stripeChargeId: data.payment_provider_tx,\n title: paymentOpts.title,\n subtitle: paymentOpts.subtitle,\n })\n dispatch(PassportEvents.RECEIPT, { stripeChargeId: data.payment_provider_tx })\n }\n \n await attachMetadataToItems(data.items)\n return data\n}","import { get } from 'svelte/store'\nimport { userStore, pageOptsStore } from '@packages/stores'\nimport { getAddress } from '@src/passport/blockchain'\nimport { configStore } from '@src/stores/config'\nimport { getClientConfigByClientId } from '@lib/clients'\nimport { processOrder, createOrder } from '../order.service'\nimport type { TBasicPaymentData } from '../oders.types'\n\n\nexport const processPayment = async (stripeTokenId: string) => {\n const config = get(configStore)\n const paymentOpts = get(pageOptsStore)\n const user = get(userStore)\n const userAddress = await getAddress()\n\n const email = user?.email || user?.pending?.email\n const phone = user?.phone || user?.pending?.phone\n const description =\n 'Passport Payment: ' +\n `(${JSON.stringify({\n ...paymentOpts.tokens,\n ...paymentOpts.memberships,\n userAddress,\n chainId: config.chainId,\n email,\n phone,\n })})`\n\n const clientName = getClientConfigByClientId(config.clientId).name\n const stripePK = config.stripe.pk[clientName] ?? config.stripe.pk.DEFAULT\n const basicPaymentData: TBasicPaymentData = {\n card_token: stripePK.includes('pk_live') ? stripeTokenId : 'tok_visa',\n client: clientName,\n description,\n address: userAddress,\n chain_id: Number(config.chainId),\n currency: 'USD',\n }\n\n const order = await createOrder(basicPaymentData)\n return await processOrder(order)\n}\n"],"names":["createOrder","body","paymentOpts","get","pageOptsStore","tokensPaymentData","_a","contractAddress","tokenId","amount","membershipsPaymentData","_b","payload","config","configStore","res","accessTokenStore","_id","processOrder","orderId","data","getCompmletedOrderDetails","requestReceipt","dispatch","PassportEvents","attachMetadataToItems","processPayment","stripeTokenId","user","userStore","userAddress","getAddress","email","phone","description","clientName","getClientConfigByClientId","basicPaymentData","order"],"mappings":";;AAWa,MAAAA,IAAc,OAAOC,MAA6C;;AACvE,QAAAC,IAAcC,EAAIC,CAAa,GAE/BC,MACJC,IAAAJ,EAAY,WAAZ,gBAAAI,EAAoB;AAAA,IAClB,CAAC;AAAA,MACC,iBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,QAAAC;AAAA,IAAA,OAKK;AAAA,MACL,kBAAkBF;AAAA,MAClB,UAAU,CAACC;AAAA,MACX,QAAAC;AAAA,IACF;AAAA,QACG,CAAC,GAEFC,MACJC,IAAAT,EAAY,gBAAZ,gBAAAS,EAAyB,IAAI,CAAC,EAAE,iBAAAJ,SAAoD;AAAA,IAClF,kBAAkBA;AAAA,EACpB,QAAO,CAAC,GAEJK,IAAU;AAAA,IACd,GAAGX;AAAA,IACH,QAAQI;AAAA,IACR,aAAaK;AAAA,EACf,GAGMG,IAASV,EAAIW,CAAW,GACxBC,IAAM,MAAM,MAAMF,EAAO,SAAS,YAAY,yBAAyB;AAAA,IAC3E,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,eAAe,UAAUV,EAAIa,CAAgB,CAAC;AAAA,IAChD;AAAA,IACA,QAAQ;AAAA,IACR,MAAM,KAAK,UAAUJ,CAAO;AAAA,EAAA,CAC7B;AACD,MAAI,CAACG,EAAI,GAAU,OAAA,IAAI,MAAM,wBAAwB;AACrD,QAAM,EAAE,KAAAE,EAAA,IAAyB,MAAMF,EAAI,KAAK;AAEzC,SAAAE;AACT,GAEaC,IAAe,OAAOC,MAA6C;AACxE,QAAAN,IAASV,EAAIW,CAAW,GACxBZ,IAAcC,EAAIC,CAAa,GAE/BgB,IAAQ,MAAMC,EAA0BR,EAAO,SAAS,eAAeM,CAAO;AAEpF,SAAIC,EAAK,wBACP,MAAME,EAAe;AAAA,IACnB,gBAAgBF,EAAK;AAAA,IACrB,OAAOlB,EAAY;AAAA,IACnB,UAAUA,EAAY;AAAA,EAAA,CACvB,GACDqB,EAASC,EAAe,SAAS,EAAE,gBAAgBJ,EAAK,qBAAqB,IAGzE,MAAAK,EAAsBL,EAAK,KAAK,GAC/BA;AACT,GClEaM,IAAiB,OAAOC,MAA0B;;AACvD,QAAAd,IAASV,EAAIW,CAAW,GACxBZ,IAAcC,EAAIC,CAAa,GAC/BwB,IAAOzB,EAAI0B,CAAS,GACpBC,IAAc,MAAMC,EAAW,GAE/BC,KAAQJ,KAAA,gBAAAA,EAAM,YAAStB,IAAAsB,KAAA,gBAAAA,EAAM,YAAN,gBAAAtB,EAAe,QACtC2B,KAAQL,KAAA,gBAAAA,EAAM,YAASjB,IAAAiB,KAAA,gBAAAA,EAAM,YAAN,gBAAAjB,EAAe,QACtCuB,IACJ,sBACI,KAAK,UAAU;AAAA,IACjB,GAAGhC,EAAY;AAAA,IACf,GAAGA,EAAY;AAAA,IACf,aAAA4B;AAAA,IACA,SAASjB,EAAO;AAAA,IAChB,OAAAmB;AAAA,IACA,OAAAC;AAAA,EACD,CAAA,CAAC,KAEEE,IAAaC,EAA0BvB,EAAO,QAAQ,EAAE,MAExDwB,IAAsC;AAAA,IAC1C,aAFexB,EAAO,OAAO,GAAGsB,CAAU,KAAKtB,EAAO,OAAO,GAAG,SAE3C,SAAS,SAAS,IAAIc,IAAgB;AAAA,IAC3D,QAAQQ;AAAA,IACR,aAAAD;AAAA,IACA,SAASJ;AAAA,IACT,UAAU,OAAOjB,EAAO,OAAO;AAAA,IAC/B,UAAU;AAAA,EACZ,GAEMyB,IAAQ,MAAMtC,EAAYqC,CAAgB;AACzC,SAAA,MAAMnB,EAAaoB,CAAK;AACjC;"}
@@ -1,13 +1,13 @@
1
- import { c as ee, m as Ee, p as _, h as fe, f as R, i as H, w as me, r as Y, b as k, k as Pe, e as Se, d as te, u as ae, t as Ce, o as pe, n as De } from "./legacy-B3q739rj.js";
2
- import { o as Ie } from "./index-client-DaK3V4t-.js";
3
- import { v as re, B as U, E as I, C as B, D as M, G as Q, K as e, A as Z, z as ne, u as b, J as i, m as E, w as _e, x as be, y as se, F as ie, L as ge, N as ke, b1 as Ve, b0 as W, b2 as oe, I as Ue, W as Be, S as de, R as Re } from "./index-DacuCeWr.js";
1
+ import { c as ee, m as Ee, p as _, h as fe, f as R, i as H, w as me, r as Y, b as k, k as Pe, e as Se, d as te, u as ae, t as Ce, o as pe, n as De } from "./legacy-C1UsO_tu.js";
2
+ import { o as Ie } from "./index-client-z9rIkUyw.js";
3
+ import { v as re, B as U, E as I, C as B, D as M, G as Q, K as e, A as Z, z as ne, u as b, J as i, m as E, w as _e, x as be, y as se, F as ie, L as ge, N as ke, b1 as Ve, b0 as W, b2 as oe, I as Ue, W as Be, S as de, R as Re } from "./index-B0D9qQ_O.js";
4
4
  import { v as he, P as Ae } from "./validation-DaZvZUPL.js";
5
- import { C as Le } from "./App-DrYtIsxl.js";
6
- import { L as ue } from "./Label-CsM-krt9.js";
7
- import { I as ve } from "./Input-DeQta7wH.js";
8
- import { B as ze } from "./ButtonBack-yLJ1WhkW.js";
9
- import { B as Ne } from "./Button-B58tbHjg.js";
10
- import { e as Oe, i as Fe } from "./each-DlTYG9SE.js";
5
+ import { C as Le } from "./App-C9I9989L.js";
6
+ import { L as ue } from "./Label-CVUbL1bW.js";
7
+ import { I as ve } from "./Input-B40ySJRz.js";
8
+ import { B as ze } from "./ButtonBack-DiIG6luz.js";
9
+ import { B as Ne } from "./Button-D5CGIu8s.js";
10
+ import { e as Oe, i as Fe } from "./each-tAR3XqEj.js";
11
11
  var Te = R('<label class="crtw-font-medium" for="credenzaSelect"> </label>'), je = R("<option> </option>"), $e = R("<option> </option>"), qe = R('<div><!> <select name="credenzaSelect"><!><!></select></div>');
12
12
  const Ge = {
13
13
  hash: "svelte-1dzo0ix",
@@ -519,4 +519,4 @@ function Ze(V, l) {
519
519
  export {
520
520
  Ze as default
521
521
  };
522
- //# sourceMappingURL=UpdateProfile-CsxQubeT.js.map
522
+ //# sourceMappingURL=UpdateProfile-D4bg5GEF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateProfile-CsxQubeT.js","sources":["../../ui/main/shared/inputs/select/Select.svelte","../../ui/main/shared/inputs/phone/PhoneInput.constants.ts","../../ui/main/shared/inputs/phone/PhoneInput.svelte","../../ui/main/update-profile/UpdateProfile.svelte","../src/app/pages/update-profile/UpdateProfile.svelte"],"sourcesContent":["<style>\n .simple {\n background-image: none;\n padding: 0 10px;\n text-align: center; \n }\n .simple:focus {\n background-image: none;\n }\n</style>\n\n<script lang=\"ts\">\n export let options: { value: string; name?: string }[]\n export let placeholder: string | undefined = undefined\n export let label: string | undefined = undefined\n export let selected: string | undefined = undefined\n export let onChange: undefined | ((...args: unknown[]) => unknown) = undefined\n export let simple: boolean = false\n export let disabled: boolean = false\n\n const handleChange = (e: Event) => {\n const target = e.target as HTMLSelectElement\n if (selected !== undefined) selected = target.value\n if (onChange) onChange(e)\n }\n</script>\n\n<div>\n {#if label}\n <label class=\"crtw-font-medium\" for=\"credenzaSelect\">{label}</label>\n {/if}\n <select\n class=\"crtw-w-full crtw-h-[53px] crtw-px-5 crtw-appearance-none crtw-text-base crtw-rounded crtw-border crtw-border-gray-300\n crtw-cursor-pointer crtw-text-gray-500 focus:crtw-outline-none focus:crtw-border-blue-900 focus:crtw-text-blue-900\n {simple ? 'simple' : ''}\"\n name=\"credenzaSelect\"\n on:change={handleChange}\n {disabled}\n >\n {#if placeholder}\n <option disabled={true} selected={!selected} hidden={true}>{placeholder}</option>\n {/if}\n {#each options as item}\n <option value={item.value} selected={selected === item.value}> {item.name ?? item.value} </option>\n {/each}\n </select>\n</div>\n","export const countryCodes = [\n { value: '+1', name: 'US/CA +1' },\n { value: '+49', name: 'DE +49' },\n { value: '+33', name: 'FR +33' },\n { value: '+44', name: 'UK +44' },\n { value: '+380', name: 'UA +380' },\n { value: '+48', name: 'PL +48' },\n { value: '+233', name: 'GH +233' },\n]\n","<script lang=\"ts\">\n import Select from '../select/Select.svelte'\n import Input from '../input/Input.svelte'\n import { PHONE_PATTERN, validate } from '../../../../../utils/lib/validation/validation'\n import { countryCodes } from './PhoneInput.constants'\n\n export let phone: string\n export let isValid: boolean = true\n export let disabled: boolean = false\n\n let selectedCountryCode: string = countryCodes[0].value\n let number: number | null\n\n if (phone) {\n for (const countryCode of countryCodes) {\n if (phone.indexOf(countryCode.value) === 0) {\n number = parseInt(phone.slice(countryCode.value.length))\n selectedCountryCode = countryCode.value\n break\n }\n }\n }\n\n $: {\n isValid = !number || validate(String(number), PHONE_PATTERN)\n isValid && selectedCountryCode && number ? (phone = selectedCountryCode + String(number).trim()) : ''\n }\n</script>\n\n<div class=\"crtw-flex crtw-justify-center crtw-flex-row\">\n <div class=\"crtw-w-40 crtw-mr-0.5\">\n <Select options={countryCodes} simple bind:selected={selectedCountryCode} {disabled} />\n </div>\n <Input\n type=\"number\"\n min=\"0\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n placeholder=\"Phone Number\"\n bind:value={number}\n name=\"phone\"\n {disabled}\n />\n</div>\n","<script lang=\"ts\">\n import Container from \"../shared/Container.svelte\";\n import Label from \"../shared/inputs/input/Label.svelte\";\n import Input from \"../shared/inputs/input/Input.svelte\";\n import ButtonBack from \"../shared/inputs/button-back/ButtonBack.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n import PhoneInput from \"../shared/inputs/phone/PhoneInput.svelte\";\n\n export let name: string;\n export let email: string;\n export let phone: string;\n export let isSubmitDisabled: boolean;\n export let error: string | null;\n export let isEmailInputValid: boolean;\n export let options: {\n isExtendedRegistration: boolean | undefined;\n onProfileUpdate: () => void;\n onBackClick: () => void;\n shouldShowBackButton: boolean;\n isEmailChangeDisabled: boolean;\n isPhoneChangeDisabled: boolean;\n };\n\n let {\n isExtendedRegistration,\n onProfileUpdate,\n onBackClick,\n shouldShowBackButton,\n isEmailChangeDisabled,\n isPhoneChangeDisabled,\n } = options;\n</script>\n\n<Container class=\"crtw-flex crtw-justify-center crtw-flex-col crtw-gap-2.5\">\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"NameInput\"\n >First and last name\n {#if isExtendedRegistration}\n <span class=\"crtw-text-red-500\">*</span>\n {/if}\n </Label>\n <Input\n id=\"NameInput\"\n type=\"text\"\n placeholder=\"First and last name\"\n bind:value={name}\n name=\"name\"\n required={isExtendedRegistration}\n />\n </div>\n\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"EmailInput\"\n >Email address\n {#if isExtendedRegistration}\n <span class=\"crtw-text-red-500\">*</span>\n {/if}\n </Label>\n <Input\n id=\"EmailInput\"\n type=\"email\"\n bind:isValid={isEmailInputValid}\n placeholder=\"Email address\"\n bind:value={email}\n name=\"email\"\n disabled={isEmailChangeDisabled}\n />\n </div>\n\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"PhoneInput\">Phone number</Label>\n <PhoneInput bind:phone disabled={isPhoneChangeDisabled} />\n </div>\n\n <Button\n text=\"Update profile\"\n onClick={onProfileUpdate}\n disabled={isSubmitDisabled}\n />\n\n {#if error}\n <div class=\"crtw-text-xs crtw-text-[#990008]\">\n - {error}\n </div>\n {/if}\n\n {#if shouldShowBackButton}\n <div class=\"crtw-text-left crtw-mt-2.5 crtw-w-full\">\n <ButtonBack onClick={onBackClick} />\n </div>\n {/if}\n</Container>\n","<script lang=\"ts\">\n import { onDestroy } from 'svelte'\n import { get } from 'svelte/store'\n import { validate } from '@lib/validation/validation'\n import { fn, userStore, pageStore, forcedPageStore } from '@packages/stores'\n import { Pages } from '@packages/utils/enums'\n import { UpdateProfile } from '@packages/ui'\n import { type TUser } from '@packages/utils/types'\n import { configStore } from '@src/stores/config'\n\n const { updateProfile, close, toastAlert } = get(fn)\n\n let email: string\n let name: string\n let phone: string\n\n let currentUser: TUser\n\n let isEmailChangeDisabled: boolean\n let isPhoneChangeDisabled: boolean\n let isSubmitDisabled: boolean\n\n const unsubscribeUserStore = userStore.subscribe((user) => {\n if (!user) {\n forcedPageStore.set(null)\n close()\n return\n }\n\n name = user.name || ''\n email = user.email || ''\n phone = user.phone || ''\n currentUser = user\n\n \n const isSocialLoginType =\n user.login_type !== 'credentials' && user.login_type !== 'passwordless'\n isEmailChangeDisabled = !!user.pending?.email || isSocialLoginType\n isPhoneChangeDisabled = !!user.pending?.phone || isSocialLoginType\n })\n\n let isLoading = false\n let isEmailValid: boolean = false\n let isEmailInputValid: boolean = true\n let isNameValid: boolean = true\n let error: string = ''\n\n const executeProfileUpdate = async () => {\n error = ''\n isLoading = true\n try {\n const newData = {\n ...(currentUser.email !== email ? { email } : {}),\n ...(currentUser.name !== name ? { name } : {}),\n ...(currentUser.phone !== phone ? { phone } : {}),\n }\n const updatedUser = await updateProfile(newData)\n forcedPageStore.set(null)\n\n toastAlert(\n 'Account has been updated successfully. Email or phone should be confirmed by entering one-time code.',\n 'success',\n )\n const page = get(pageStore)\n if (!updatedUser?.pending?.phone && !updatedUser?.pending?.email && (!page || page === Pages.UPDATE_PROFILE))\n close()\n } catch (err) {\n const errorText = err?.message || 'Error while updating your account details.'\n toastAlert(errorText, 'failure')\n error = errorText\n }\n isLoading = false\n }\n\n $: {\n isEmailValid = validate(email)\n isEmailInputValid = !email || isEmailValid\n\n $configStore.auth?.extendedRegistration && (isNameValid = !!name)\n\n isSubmitDisabled = isLoading || !isEmailInputValid || !isNameValid\n }\n\n onDestroy(unsubscribeUserStore)\n</script>\n\n<UpdateProfile\n bind:error\n bind:name\n bind:email\n bind:phone\n bind:isSubmitDisabled\n bind:isEmailInputValid\n options={{\n isExtendedRegistration: $configStore.auth?.extendedRegistration,\n onProfileUpdate: executeProfileUpdate,\n onBackClick: () => forcedPageStore.set(null),\n shouldShowBackButton: $forcedPageStore === Pages.UPDATE_PROFILE,\n isEmailChangeDisabled,\n isPhoneChangeDisabled,\n }}\n/>\n"],"names":["options","$.prop","$$props","placeholder","label","selected","onChange","simple","disabled","handleChange","e","target","$$render","consequent","consequent_1","$.each","node_2","item","$.untrack","$.get","countryCodes","phone","isValid","selectedCountryCode","$.mutable_source","number","countryCode","validate","PHONE_PATTERN","$$value","name","email","isSubmitDisabled","error","isEmailInputValid","isExtendedRegistration","onProfileUpdate","onBackClick","shouldShowBackButton","isEmailChangeDisabled","isPhoneChangeDisabled","consequent_2","consequent_3","__awaiter","thisArg","_arguments","P","generator","updateProfile","close","toastAlert","get","fn","currentUser","unsubscribeUserStore","userStore","user","forcedPageStore","$.set","isSocialLoginType","_a","_b","isLoading","isEmailValid","isNameValid","executeProfileUpdate","newData","updatedUser","page","pageStore","Pages","err","errorText","onDestroy","$configStore","$.safe_get","$forcedPageStore"],"mappings":";;;;;;;;;;;;;;;;;;MAYaA,IAA2CC,EAAAC,GAAA,WAAA,EAAA,GAC3CC,4BAAkC,MAAS,GAC3CC,sBAA4B,MAAS,GACrCC,yBAA+B,MAAS,GACxCC,yBAA0D,MAAS,GACnEC,uBAAkB,EAAK,GACvBC,yBAAoB,EAAK;QAE9BC,IAAY,CAAIC,MAAY;UAC1BC,IAASD,EAAE;AACb,IAAAL,EAAQ,MAAK,UAAWA,EAAWM,EAAO,KAAK,GAC/CL,EAAQ,KAAEA,EAAQ,EAACI,CAAC;AAAA,EACzB;;;;;;yBAKuDN,EAAK,CAAA,CAAA;;;MADxDA,EAAK,KAAAQ,EAAAC,CAAA;AAAA;;;;;;mBAYY,eAAmC;;;eAAlBR,GAAQ,cAAiBF,EAAW,8BAAXA,EAAW,MAAA,UAAXA,GAAW;AAAA;;;MADpEA,EAAW,KAAAS,EAAAE,CAAA;AAAA;;;AAGTC,SAAAA,GAAAC,GAAA,GAAAhB,WAAWiB,MAAI;;;oBAAJA,CAAI,GACLC,EAAA,MAAAC,EAAAF,CAAI,EAAC,KAAK,kCADTA,CAAI,GACLC,EAAA,MAAAC,EAAAF,CAAI,EAAC,KAAK,qBA5BlBZ,EAAQ,CAAA,KA2BCY,CAAI,WACiBZ,EAAQ,MAAAc,EAAKF,CAAI,EAAC,KAAK,aAD5CA,CAAI,GAC4CC,EAAA,MAAAC,EAAAF,CAAI,EAAC,QAAQE,EAAAF,CAAI,EAAC,KAAK;;;;;;;;MATxFV,EAAM,IAAG,WAAW,EAAE;AAAA;;sBAEZE,CAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpCpB,MAAMW,KAAe;AAAA,EAC1B,EAAE,OAAO,MAAM,MAAM,WAAW;AAAA,EAChC,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,QAAQ,MAAM,UAAU;AAAA,EACjC,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,QAAQ,MAAM,UAAU;AACnC;;;;;MCFaC,IAAapB,EAAAC,GAAA,SAAA,EAAA,GACboB,wBAAmB,EAAI,GACvBd,yBAAoB,EAAK,GAEhCe,IAA8BC,EAAAJ,GAAa,CAAC,EAAE,KAAK,GACnDK,IAAqBD,EAAA;AAErB,MAAAH,EAAK;eACIK,KAAeN;UACpBC,EAAK,EAAC,QAAQK,EAAY,KAAK,MAAM,GAAG;UAC1CD,GAAS,SAASJ,EAAK,EAAC,MAAMK,EAAY,MAAM,MAAM,CAAA,CAAA,KACtDH,GAAsBG,EAAY,KAAK;;MAEzC;AAAA;;;;AAKF,MAAAJ,EAAO,CAAAH,EAAIM,CAAM,KAAIE,GAAS,OAAMR,EAACM,CAAM,CAAA,GAAGG,EAAa,CAAA,GAC3DN,EAAO,KAAIH,EAAAI,CAAmB,KAAIJ,EAAAM,CAAM,KAAIJ,EAAKF,EAAGI,CAAmB,IAAG,OAAOJ,EAAAM,CAAM,CAAE,EAAA;;;;;;aAMxEL;AAAA;;;;;;eAAoCG,CAAmB;AAAA;;QAAnBA,GAAmBM,CAAA;AAAA;;;;;;;;;;;;;;;eAQ5DJ,CAAM;AAAA;;QAANA,GAAMI,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC/BTC,IAAY7B,EAAAC,GAAA,QAAA,EAAA,GACZ6B,IAAa9B,EAAAC,GAAA,SAAA,EAAA,GACbmB,IAAapB,EAAAC,GAAA,SAAA,EAAA,GACb8B,IAAyB/B,EAAAC,GAAA,oBAAA,EAAA,GACzB+B,IAAoBhC,EAAAC,GAAA,SAAA,EAAA,GACpBgC,IAA0BjC,EAAAC,GAAA,qBAAA,EAAA,GAC1BF,IAOVC,EAAAC,GAAA,WAAA,EAAA;IAGC,wBAAAiC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,uBAAAC;AAAA,MACExC,EAAO;;;;;;;;;;;;;;;;cAOFmC,KAAsBvB,EAAAC,CAAA;AAAA;;;;;;;;;;;;;iBAUjBsB;AAAA;;iBAFEL,EAAI;AAAA;;AAAJ,UAAAA,EAAID,CAAA;AAAA;;;;;;;;;;;;;;;cASXM,KAAsBvB,EAAAE,CAAA;AAAA;;;;;;;;;;;;;iBAWjByB;AAAA;;iBAJIL,EAAiB;AAAA;;AAAjB,UAAAA,EAAiBL,CAAA;AAAA;;iBAEnBE,EAAK;AAAA;;AAAL,UAAAA,EAAKF,CAAA;AAAA;;;;;;;;;;;;;;;;iBAQcW;AAAA;;;;;;;;;;;;;iBAKxBJ;AAAA;;iBACCJ,EAAgB;AAAA;;;;;;kCAKrBC,EAAK,KAAA,EAAA,EAAA,CAAA;;;UAFPA,EAAK,KAAArB,EAAA6B,CAAA;AAAA;;;;;;;;qBAQeJ;AAAA;;;;UAFpBC,KAAoB1B,EAAA8B,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFV,MAAAC,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUP,QAAA,EAAA,eAAAC,GAAe,OAAAC,GAAO,YAAAC,EAAU,IAAKC,GAAIC,EAAE;MAE/CrB,IAAaP,EAAA,GACbM,IAAYN,EAAA,GACZH,IAAaG,EAAA,GAEb6B,GAEAd,IAA8Bf,EAAA,GAC9BgB,IAA8BhB,EAAA,GAC9BQ,IAAyBR,EAAA;AAEvB,QAAA8B,IAAuBC,GAAU,UAAS,CAAEC,MAAQ;;AACnD,QAAA,CAAAA,GAAM;AACT,MAAAC,EAAgB,IAAI,IAAI,GACxBR,EAAK;;IAEP;AAEAS,IAAAA,EAAA5B,GAAO0B,EAAK,QAAQ,EAAE,GACtBE,EAAA3B,GAAQyB,EAAK,SAAS,EAAE,GACxBE,EAAArC,GAAQmC,EAAK,SAAS,EAAE,GACxBH,IAAcG;UAGPG,IACLH,EAAK,eAAe,iBAAiBA,EAAK,eAAe;AAC3DE,IAAAA,EAAAnB,MAA0B,GAAAqB,IAAIJ,EAAC,aAAS,QAAAI,MAAA,WAAAA,EAAA,UAASD,CAAiB,GAClED,EAAAlB,MAA0B,GAAAqB,IAAIL,EAAC,aAAS,QAAAK,MAAA,WAAAA,EAAA,UAASF,CAAiB;AAAA,GACnE;AAEG,MAAAG,MAAY,EAAK,GACjBC,MAAwB,EAAK,GAC7B7B,MAA6B,EAAI,GACjC8B,MAAuB,EAAI,GAC3B/B,MAAgB,EAAE;AAEhB,QAAAgC,IAAkC,MAAAtB,EAAA,QAAA,QAAA,QAAA,aAAA;;AACtCe,IAAAA,EAAAzB,GAAQ,EAAE,GACVyB,EAAAI,GAAY,EAAI;AACZ,QAAA;AACI,YAAAI,IACA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,IAAAb,EAAY,UAAUlC,EAAAY,CAAK,IAAK,EAAA,OAAAZ,EAAAY,CAAK,MACrC,CAAA,CAAA,GAAAsB,EAAY,SAASlC,EAAAW,CAAI,IAAK,EAAA,MAAAX,EAAAW,CAAI,EAClC,IAAA,EAAA,GAAAuB,EAAY,UAAUlC,EAAAE,CAAK,IAAK,EAAA,SAAAA,CAAK,EAAA,IAAA,EAAA,GAErC8C,IAAW,MAASnB,EAAckB,CAAO;AAC/C,MAAAT,EAAgB,IAAI,IAAI,GAExBP,EACE,wGACA,SAAS;YAELkB,IAAOjB,GAAIkB,EAAS;QACrB,GAAAT,IAAWO,KAAA,OAAA,SAAXA,EAAa,aAAO,QAAAP,MAAA,WAAAA,EAAE,UAAK,EAAK,GAAAC,IAAWM,KAAA,OAAA,SAAXA,EAAa,aAAO,QAAAN,MAAA,WAAAA,EAAE,WAAK,CAAMO,KAAQA,MAASE,GAAM,mBAC3FrB,EAAK;AAAA,IACT,SAASsB,GAAK;YACNC,KAAYD,KAAA,gBAAAA,EAAK,YAAW;AAClC,MAAArB,EAAWsB,GAAW,SAAS,GAC/Bd,EAAAzB,GAAQuC,CAAS;AAAA,IACnB;AACAd,IAAAA,EAAAI,GAAY,EAAK;AAAA,GAClB;AAWD,EAAAW,GAAUnB,CAAoB;;;QAR5BS,GAAepC,GAAQR,EAACY,CAAK,CAAA,CAAA,KAC7BG,GAAiB,CAAAf,EAAIY,CAAK,KAAAZ,EAAI4C,CAAY,CAAA,GAE1CL,EAAAA,EAAAE,GAAAc,IAAa,IAAI,MAAA,QAAAC,GAAAf,CAAA,MAAA,WAAAe,GAAAf,CAAA,EAAE,wBAAyBF,EAAAM,OAAgBlC,CAAI,CAAA,GAEhE4B,EAAA1B,GAAmBb,EAAA2C,CAAS,KAAK,CAAA3C,EAAAe,CAAiB,QAAK8B,CAAW,CAAA;AAAA;;6BA5EjCP,CAAe,UACzCa,EAAK,KAaV/B,CAA8B,KAC9BC,CAA8B;;;MA2EhC,yBAAwBoB,IAAAc,IAAa,SAAb,gBAAAd,EAAmB;AAAA,MAC3C,iBAAiBK;AAAA,MACjB,aAAmB,MAAAR,EAAgB,IAAI,IAAI;AAAA,MAC3C,sBAAsBmB,QAAqBN,GAAM;AAAA,MACjD,yBAAA/B,CAAqB;AAAA,MACrB,yBAAAC,CAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"UpdateProfile-D4bg5GEF.js","sources":["../../ui/main/shared/inputs/select/Select.svelte","../../ui/main/shared/inputs/phone/PhoneInput.constants.ts","../../ui/main/shared/inputs/phone/PhoneInput.svelte","../../ui/main/update-profile/UpdateProfile.svelte","../src/app/pages/update-profile/UpdateProfile.svelte"],"sourcesContent":["<style>\n .simple {\n background-image: none;\n padding: 0 10px;\n text-align: center; \n }\n .simple:focus {\n background-image: none;\n }\n</style>\n\n<script lang=\"ts\">\n export let options: { value: string; name?: string }[]\n export let placeholder: string | undefined = undefined\n export let label: string | undefined = undefined\n export let selected: string | undefined = undefined\n export let onChange: undefined | ((...args: unknown[]) => unknown) = undefined\n export let simple: boolean = false\n export let disabled: boolean = false\n\n const handleChange = (e: Event) => {\n const target = e.target as HTMLSelectElement\n if (selected !== undefined) selected = target.value\n if (onChange) onChange(e)\n }\n</script>\n\n<div>\n {#if label}\n <label class=\"crtw-font-medium\" for=\"credenzaSelect\">{label}</label>\n {/if}\n <select\n class=\"crtw-w-full crtw-h-[53px] crtw-px-5 crtw-appearance-none crtw-text-base crtw-rounded crtw-border crtw-border-gray-300\n crtw-cursor-pointer crtw-text-gray-500 focus:crtw-outline-none focus:crtw-border-blue-900 focus:crtw-text-blue-900\n {simple ? 'simple' : ''}\"\n name=\"credenzaSelect\"\n on:change={handleChange}\n {disabled}\n >\n {#if placeholder}\n <option disabled={true} selected={!selected} hidden={true}>{placeholder}</option>\n {/if}\n {#each options as item}\n <option value={item.value} selected={selected === item.value}> {item.name ?? item.value} </option>\n {/each}\n </select>\n</div>\n","export const countryCodes = [\n { value: '+1', name: 'US/CA +1' },\n { value: '+49', name: 'DE +49' },\n { value: '+33', name: 'FR +33' },\n { value: '+44', name: 'UK +44' },\n { value: '+380', name: 'UA +380' },\n { value: '+48', name: 'PL +48' },\n { value: '+233', name: 'GH +233' },\n]\n","<script lang=\"ts\">\n import Select from '../select/Select.svelte'\n import Input from '../input/Input.svelte'\n import { PHONE_PATTERN, validate } from '../../../../../utils/lib/validation/validation'\n import { countryCodes } from './PhoneInput.constants'\n\n export let phone: string\n export let isValid: boolean = true\n export let disabled: boolean = false\n\n let selectedCountryCode: string = countryCodes[0].value\n let number: number | null\n\n if (phone) {\n for (const countryCode of countryCodes) {\n if (phone.indexOf(countryCode.value) === 0) {\n number = parseInt(phone.slice(countryCode.value.length))\n selectedCountryCode = countryCode.value\n break\n }\n }\n }\n\n $: {\n isValid = !number || validate(String(number), PHONE_PATTERN)\n isValid && selectedCountryCode && number ? (phone = selectedCountryCode + String(number).trim()) : ''\n }\n</script>\n\n<div class=\"crtw-flex crtw-justify-center crtw-flex-row\">\n <div class=\"crtw-w-40 crtw-mr-0.5\">\n <Select options={countryCodes} simple bind:selected={selectedCountryCode} {disabled} />\n </div>\n <Input\n type=\"number\"\n min=\"0\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n placeholder=\"Phone Number\"\n bind:value={number}\n name=\"phone\"\n {disabled}\n />\n</div>\n","<script lang=\"ts\">\n import Container from \"../shared/Container.svelte\";\n import Label from \"../shared/inputs/input/Label.svelte\";\n import Input from \"../shared/inputs/input/Input.svelte\";\n import ButtonBack from \"../shared/inputs/button-back/ButtonBack.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n import PhoneInput from \"../shared/inputs/phone/PhoneInput.svelte\";\n\n export let name: string;\n export let email: string;\n export let phone: string;\n export let isSubmitDisabled: boolean;\n export let error: string | null;\n export let isEmailInputValid: boolean;\n export let options: {\n isExtendedRegistration: boolean | undefined;\n onProfileUpdate: () => void;\n onBackClick: () => void;\n shouldShowBackButton: boolean;\n isEmailChangeDisabled: boolean;\n isPhoneChangeDisabled: boolean;\n };\n\n let {\n isExtendedRegistration,\n onProfileUpdate,\n onBackClick,\n shouldShowBackButton,\n isEmailChangeDisabled,\n isPhoneChangeDisabled,\n } = options;\n</script>\n\n<Container class=\"crtw-flex crtw-justify-center crtw-flex-col crtw-gap-2.5\">\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"NameInput\"\n >First and last name\n {#if isExtendedRegistration}\n <span class=\"crtw-text-red-500\">*</span>\n {/if}\n </Label>\n <Input\n id=\"NameInput\"\n type=\"text\"\n placeholder=\"First and last name\"\n bind:value={name}\n name=\"name\"\n required={isExtendedRegistration}\n />\n </div>\n\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"EmailInput\"\n >Email address\n {#if isExtendedRegistration}\n <span class=\"crtw-text-red-500\">*</span>\n {/if}\n </Label>\n <Input\n id=\"EmailInput\"\n type=\"email\"\n bind:isValid={isEmailInputValid}\n placeholder=\"Email address\"\n bind:value={email}\n name=\"email\"\n disabled={isEmailChangeDisabled}\n />\n </div>\n\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"PhoneInput\">Phone number</Label>\n <PhoneInput bind:phone disabled={isPhoneChangeDisabled} />\n </div>\n\n <Button\n text=\"Update profile\"\n onClick={onProfileUpdate}\n disabled={isSubmitDisabled}\n />\n\n {#if error}\n <div class=\"crtw-text-xs crtw-text-[#990008]\">\n - {error}\n </div>\n {/if}\n\n {#if shouldShowBackButton}\n <div class=\"crtw-text-left crtw-mt-2.5 crtw-w-full\">\n <ButtonBack onClick={onBackClick} />\n </div>\n {/if}\n</Container>\n","<script lang=\"ts\">\n import { onDestroy } from 'svelte'\n import { get } from 'svelte/store'\n import { validate } from '@lib/validation/validation'\n import { fn, userStore, pageStore, forcedPageStore } from '@packages/stores'\n import { Pages } from '@packages/utils/enums'\n import { UpdateProfile } from '@packages/ui'\n import { type TUser } from '@packages/utils/types'\n import { configStore } from '@src/stores/config'\n\n const { updateProfile, close, toastAlert } = get(fn)\n\n let email: string\n let name: string\n let phone: string\n\n let currentUser: TUser\n\n let isEmailChangeDisabled: boolean\n let isPhoneChangeDisabled: boolean\n let isSubmitDisabled: boolean\n\n const unsubscribeUserStore = userStore.subscribe((user) => {\n if (!user) {\n forcedPageStore.set(null)\n close()\n return\n }\n\n name = user.name || ''\n email = user.email || ''\n phone = user.phone || ''\n currentUser = user\n\n \n const isSocialLoginType =\n user.login_type !== 'credentials' && user.login_type !== 'passwordless'\n isEmailChangeDisabled = !!user.pending?.email || isSocialLoginType\n isPhoneChangeDisabled = !!user.pending?.phone || isSocialLoginType\n })\n\n let isLoading = false\n let isEmailValid: boolean = false\n let isEmailInputValid: boolean = true\n let isNameValid: boolean = true\n let error: string = ''\n\n const executeProfileUpdate = async () => {\n error = ''\n isLoading = true\n try {\n const newData = {\n ...(currentUser.email !== email ? { email } : {}),\n ...(currentUser.name !== name ? { name } : {}),\n ...(currentUser.phone !== phone ? { phone } : {}),\n }\n const updatedUser = await updateProfile(newData)\n forcedPageStore.set(null)\n\n toastAlert(\n 'Account has been updated successfully. Email or phone should be confirmed by entering one-time code.',\n 'success',\n )\n const page = get(pageStore)\n if (!updatedUser?.pending?.phone && !updatedUser?.pending?.email && (!page || page === Pages.UPDATE_PROFILE))\n close()\n } catch (err) {\n const errorText = err?.message || 'Error while updating your account details.'\n toastAlert(errorText, 'failure')\n error = errorText\n }\n isLoading = false\n }\n\n $: {\n isEmailValid = validate(email)\n isEmailInputValid = !email || isEmailValid\n\n $configStore.auth?.extendedRegistration && (isNameValid = !!name)\n\n isSubmitDisabled = isLoading || !isEmailInputValid || !isNameValid\n }\n\n onDestroy(unsubscribeUserStore)\n</script>\n\n<UpdateProfile\n bind:error\n bind:name\n bind:email\n bind:phone\n bind:isSubmitDisabled\n bind:isEmailInputValid\n options={{\n isExtendedRegistration: $configStore.auth?.extendedRegistration,\n onProfileUpdate: executeProfileUpdate,\n onBackClick: () => forcedPageStore.set(null),\n shouldShowBackButton: $forcedPageStore === Pages.UPDATE_PROFILE,\n isEmailChangeDisabled,\n isPhoneChangeDisabled,\n }}\n/>\n"],"names":["options","$.prop","$$props","placeholder","label","selected","onChange","simple","disabled","handleChange","e","target","$$render","consequent","consequent_1","$.each","node_2","item","$.untrack","$.get","countryCodes","phone","isValid","selectedCountryCode","$.mutable_source","number","countryCode","validate","PHONE_PATTERN","$$value","name","email","isSubmitDisabled","error","isEmailInputValid","isExtendedRegistration","onProfileUpdate","onBackClick","shouldShowBackButton","isEmailChangeDisabled","isPhoneChangeDisabled","consequent_2","consequent_3","__awaiter","thisArg","_arguments","P","generator","updateProfile","close","toastAlert","get","fn","currentUser","unsubscribeUserStore","userStore","user","forcedPageStore","$.set","isSocialLoginType","_a","_b","isLoading","isEmailValid","isNameValid","executeProfileUpdate","newData","updatedUser","page","pageStore","Pages","err","errorText","onDestroy","$configStore","$.safe_get","$forcedPageStore"],"mappings":";;;;;;;;;;;;;;;;;;MAYaA,IAA2CC,EAAAC,GAAA,WAAA,EAAA,GAC3CC,4BAAkC,MAAS,GAC3CC,sBAA4B,MAAS,GACrCC,yBAA+B,MAAS,GACxCC,yBAA0D,MAAS,GACnEC,uBAAkB,EAAK,GACvBC,yBAAoB,EAAK;QAE9BC,IAAY,CAAIC,MAAY;UAC1BC,IAASD,EAAE;AACb,IAAAL,EAAQ,MAAK,UAAWA,EAAWM,EAAO,KAAK,GAC/CL,EAAQ,KAAEA,EAAQ,EAACI,CAAC;AAAA,EACzB;;;;;;yBAKuDN,EAAK,CAAA,CAAA;;;MADxDA,EAAK,KAAAQ,EAAAC,CAAA;AAAA;;;;;;mBAYY,eAAmC;;;eAAlBR,GAAQ,cAAiBF,EAAW,8BAAXA,EAAW,MAAA,UAAXA,GAAW;AAAA;;;MADpEA,EAAW,KAAAS,EAAAE,CAAA;AAAA;;;AAGTC,SAAAA,GAAAC,GAAA,GAAAhB,WAAWiB,MAAI;;;oBAAJA,CAAI,GACLC,EAAA,MAAAC,EAAAF,CAAI,EAAC,KAAK,kCADTA,CAAI,GACLC,EAAA,MAAAC,EAAAF,CAAI,EAAC,KAAK,qBA5BlBZ,EAAQ,CAAA,KA2BCY,CAAI,WACiBZ,EAAQ,MAAAc,EAAKF,CAAI,EAAC,KAAK,aAD5CA,CAAI,GAC4CC,EAAA,MAAAC,EAAAF,CAAI,EAAC,QAAQE,EAAAF,CAAI,EAAC,KAAK;;;;;;;;MATxFV,EAAM,IAAG,WAAW,EAAE;AAAA;;sBAEZE,CAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpCpB,MAAMW,KAAe;AAAA,EAC1B,EAAE,OAAO,MAAM,MAAM,WAAW;AAAA,EAChC,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,QAAQ,MAAM,UAAU;AAAA,EACjC,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,QAAQ,MAAM,UAAU;AACnC;;;;;MCFaC,IAAapB,EAAAC,GAAA,SAAA,EAAA,GACboB,wBAAmB,EAAI,GACvBd,yBAAoB,EAAK,GAEhCe,IAA8BC,EAAAJ,GAAa,CAAC,EAAE,KAAK,GACnDK,IAAqBD,EAAA;AAErB,MAAAH,EAAK;eACIK,KAAeN;UACpBC,EAAK,EAAC,QAAQK,EAAY,KAAK,MAAM,GAAG;UAC1CD,GAAS,SAASJ,EAAK,EAAC,MAAMK,EAAY,MAAM,MAAM,CAAA,CAAA,KACtDH,GAAsBG,EAAY,KAAK;;MAEzC;AAAA;;;;AAKF,MAAAJ,EAAO,CAAAH,EAAIM,CAAM,KAAIE,GAAS,OAAMR,EAACM,CAAM,CAAA,GAAGG,EAAa,CAAA,GAC3DN,EAAO,KAAIH,EAAAI,CAAmB,KAAIJ,EAAAM,CAAM,KAAIJ,EAAKF,EAAGI,CAAmB,IAAG,OAAOJ,EAAAM,CAAM,CAAE,EAAA;;;;;;aAMxEL;AAAA;;;;;;eAAoCG,CAAmB;AAAA;;QAAnBA,GAAmBM,CAAA;AAAA;;;;;;;;;;;;;;;eAQ5DJ,CAAM;AAAA;;QAANA,GAAMI,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC/BTC,IAAY7B,EAAAC,GAAA,QAAA,EAAA,GACZ6B,IAAa9B,EAAAC,GAAA,SAAA,EAAA,GACbmB,IAAapB,EAAAC,GAAA,SAAA,EAAA,GACb8B,IAAyB/B,EAAAC,GAAA,oBAAA,EAAA,GACzB+B,IAAoBhC,EAAAC,GAAA,SAAA,EAAA,GACpBgC,IAA0BjC,EAAAC,GAAA,qBAAA,EAAA,GAC1BF,IAOVC,EAAAC,GAAA,WAAA,EAAA;IAGC,wBAAAiC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,uBAAAC;AAAA,MACExC,EAAO;;;;;;;;;;;;;;;;cAOFmC,KAAsBvB,EAAAC,CAAA;AAAA;;;;;;;;;;;;;iBAUjBsB;AAAA;;iBAFEL,EAAI;AAAA;;AAAJ,UAAAA,EAAID,CAAA;AAAA;;;;;;;;;;;;;;;cASXM,KAAsBvB,EAAAE,CAAA;AAAA;;;;;;;;;;;;;iBAWjByB;AAAA;;iBAJIL,EAAiB;AAAA;;AAAjB,UAAAA,EAAiBL,CAAA;AAAA;;iBAEnBE,EAAK;AAAA;;AAAL,UAAAA,EAAKF,CAAA;AAAA;;;;;;;;;;;;;;;;iBAQcW;AAAA;;;;;;;;;;;;;iBAKxBJ;AAAA;;iBACCJ,EAAgB;AAAA;;;;;;kCAKrBC,EAAK,KAAA,EAAA,EAAA,CAAA;;;UAFPA,EAAK,KAAArB,EAAA6B,CAAA;AAAA;;;;;;;;qBAQeJ;AAAA;;;;UAFpBC,KAAoB1B,EAAA8B,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFV,MAAAC,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUP,QAAA,EAAA,eAAAC,GAAe,OAAAC,GAAO,YAAAC,EAAU,IAAKC,GAAIC,EAAE;MAE/CrB,IAAaP,EAAA,GACbM,IAAYN,EAAA,GACZH,IAAaG,EAAA,GAEb6B,GAEAd,IAA8Bf,EAAA,GAC9BgB,IAA8BhB,EAAA,GAC9BQ,IAAyBR,EAAA;AAEvB,QAAA8B,IAAuBC,GAAU,UAAS,CAAEC,MAAQ;;AACnD,QAAA,CAAAA,GAAM;AACT,MAAAC,EAAgB,IAAI,IAAI,GACxBR,EAAK;;IAEP;AAEAS,IAAAA,EAAA5B,GAAO0B,EAAK,QAAQ,EAAE,GACtBE,EAAA3B,GAAQyB,EAAK,SAAS,EAAE,GACxBE,EAAArC,GAAQmC,EAAK,SAAS,EAAE,GACxBH,IAAcG;UAGPG,IACLH,EAAK,eAAe,iBAAiBA,EAAK,eAAe;AAC3DE,IAAAA,EAAAnB,MAA0B,GAAAqB,IAAIJ,EAAC,aAAS,QAAAI,MAAA,WAAAA,EAAA,UAASD,CAAiB,GAClED,EAAAlB,MAA0B,GAAAqB,IAAIL,EAAC,aAAS,QAAAK,MAAA,WAAAA,EAAA,UAASF,CAAiB;AAAA,GACnE;AAEG,MAAAG,MAAY,EAAK,GACjBC,MAAwB,EAAK,GAC7B7B,MAA6B,EAAI,GACjC8B,MAAuB,EAAI,GAC3B/B,MAAgB,EAAE;AAEhB,QAAAgC,IAAkC,MAAAtB,EAAA,QAAA,QAAA,QAAA,aAAA;;AACtCe,IAAAA,EAAAzB,GAAQ,EAAE,GACVyB,EAAAI,GAAY,EAAI;AACZ,QAAA;AACI,YAAAI,IACA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,IAAAb,EAAY,UAAUlC,EAAAY,CAAK,IAAK,EAAA,OAAAZ,EAAAY,CAAK,MACrC,CAAA,CAAA,GAAAsB,EAAY,SAASlC,EAAAW,CAAI,IAAK,EAAA,MAAAX,EAAAW,CAAI,EAClC,IAAA,EAAA,GAAAuB,EAAY,UAAUlC,EAAAE,CAAK,IAAK,EAAA,SAAAA,CAAK,EAAA,IAAA,EAAA,GAErC8C,IAAW,MAASnB,EAAckB,CAAO;AAC/C,MAAAT,EAAgB,IAAI,IAAI,GAExBP,EACE,wGACA,SAAS;YAELkB,IAAOjB,GAAIkB,EAAS;QACrB,GAAAT,IAAWO,KAAA,OAAA,SAAXA,EAAa,aAAO,QAAAP,MAAA,WAAAA,EAAE,UAAK,EAAK,GAAAC,IAAWM,KAAA,OAAA,SAAXA,EAAa,aAAO,QAAAN,MAAA,WAAAA,EAAE,WAAK,CAAMO,KAAQA,MAASE,GAAM,mBAC3FrB,EAAK;AAAA,IACT,SAASsB,GAAK;YACNC,KAAYD,KAAA,gBAAAA,EAAK,YAAW;AAClC,MAAArB,EAAWsB,GAAW,SAAS,GAC/Bd,EAAAzB,GAAQuC,CAAS;AAAA,IACnB;AACAd,IAAAA,EAAAI,GAAY,EAAK;AAAA,GAClB;AAWD,EAAAW,GAAUnB,CAAoB;;;QAR5BS,GAAepC,GAAQR,EAACY,CAAK,CAAA,CAAA,KAC7BG,GAAiB,CAAAf,EAAIY,CAAK,KAAAZ,EAAI4C,CAAY,CAAA,GAE1CL,EAAAA,EAAAE,GAAAc,IAAa,IAAI,MAAA,QAAAC,GAAAf,CAAA,MAAA,WAAAe,GAAAf,CAAA,EAAE,wBAAyBF,EAAAM,OAAgBlC,CAAI,CAAA,GAEhE4B,EAAA1B,GAAmBb,EAAA2C,CAAS,KAAK,CAAA3C,EAAAe,CAAiB,QAAK8B,CAAW,CAAA;AAAA;;6BA5EjCP,CAAe,UACzCa,EAAK,KAaV/B,CAA8B,KAC9BC,CAA8B;;;MA2EhC,yBAAwBoB,IAAAc,IAAa,SAAb,gBAAAd,EAAmB;AAAA,MAC3C,iBAAiBK;AAAA,MACjB,aAAmB,MAAAR,EAAgB,IAAI,IAAI;AAAA,MAC3C,sBAAsBmB,QAAqBN,GAAM;AAAA,MACjD,yBAAA/B,CAAqB;AAAA,MACrB,yBAAAC,CAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
- import { c as N, p as O, h as Q, f as h, i as w, r as u, b as _, d as R, u as T, t as y } from "./legacy-B3q739rj.js";
2
- import { v as W, w as I, J, m as K, A as L, x as X, B as n, K as a, G as o, E as f, C as v, D as b, z as Y, u as Z } from "./index-DacuCeWr.js";
3
- import { a as $ } from "./App-DrYtIsxl.js";
1
+ import { c as N, p as O, h as Q, f as h, i as w, r as u, b as _, d as R, u as T, t as y } from "./legacy-C1UsO_tu.js";
2
+ import { v as W, w as I, J, m as K, A as L, x as X, B as n, K as a, G as o, E as f, C as v, D as b, z as Y, u as Z } from "./index-B0D9qQ_O.js";
3
+ import { a as $ } from "./App-C9I9989L.js";
4
4
  var aa = h('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">User name:</p> <p class="crtw-text-sm"> </p></div>'), ea = h('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">Email address:</p> <p class="crtw-text-sm"><!></p></div>'), ta = h('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">Phone number:</p> <p class="crtw-text-sm"><!></p></div>'), ra = h('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">Logged in address:</p> <p class="crtw-text-sm"> </p></div>'), sa = h('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium"> </p> <p class="crtw-text-sm"> </p></div>'), la = h('<div class="crtw-flex crtw-justify-center crtw-flex-col crtw-items-start crtw-gap-[22px] crtw-w-full crtw-px-2.5 crtw-py-0"><!> <!> <!> <!> <!></div>');
5
5
  function ia(E, U) {
6
6
  if (new.target) return N({ component: ia, ...E });
@@ -148,4 +148,4 @@ function ia(E, U) {
148
148
  export {
149
149
  ia as U
150
150
  };
151
- //# sourceMappingURL=UserInfo-0xD5yBFz.js.map
151
+ //# sourceMappingURL=UserInfo-DwjE6Ph4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserInfo-0xD5yBFz.js","sources":["../../ui/main/shared/UserInfo.svelte"],"sourcesContent":["<script lang=\"ts\">\n import { TUser } from \"../../../utils/types\";\n\n export let options: {\n storedValueAlias: string;\n balance?: string | null;\n userData: TUser | null;\n userAddress: Promise<string>;\n };\n\n let { storedValueAlias, userAddress } = options;\n $: balance = options.balance\n $: userData = options.userData\n</script>\n\n<div\n class=\"crtw-flex crtw-justify-center crtw-flex-col crtw-items-start crtw-gap-[22px] crtw-w-full crtw-px-2.5 crtw-py-0\"\n>\n {#if userData?.name}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">User name:</p>\n <p class=\"crtw-text-sm\">\n {userData.name}\n </p>\n </div>\n {/if}\n {#if userData?.email || userData?.pending?.email}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">Email address:</p>\n <p class=\"crtw-text-sm\">\n {#if userData?.email}\n {userData.email}\n {:else if userData?.pending?.email}\n {userData.pending?.email} (Unconfirmed)\n {/if}\n </p>\n </div>\n {/if}\n\n {#if userData?.phone || userData?.pending?.phone}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">Phone number:</p>\n <p class=\"crtw-text-sm\">\n {#if userData?.phone}\n {userData.phone}\n {:else if userData?.pending?.phone}\n {userData.pending?.phone} (Unconfirmed)\n {/if}\n </p>\n </div>\n {/if}\n\n {#await userAddress then address}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">Logged in address:</p>\n <p class=\"crtw-text-sm\">\n {address}\n </p>\n </div>\n {/await}\n \n\n {#if balance}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">{storedValueAlias} available:</p>\n <p class=\"crtw-text-sm\">{balance}</p>\n </div>\n {/if}\n</div>\n"],"names":["options","$.prop","$$props","storedValueAlias","userAddress","balance","userData","$.untrack","$.get","$.await","node_5","address","$$render","consequent_7"],"mappings":";;;;;;;;MAGaA,IAKVC,EAAAC,GAAA,WAAA,EAAA,KAEK,kBAAAC,GAAkB,aAAAC,EAAW,IAAKJ,EAAO;;MAC5CK,GAAUL,EAAO,EAAC,OAAO;AAAA;MACzBM,GAAWN,EAAO,EAAC,QAAQ;AAAA;;;;;kCAA3BM,CAAQ,GAUJC,EAAA,MAAAC,EAAAF,CAAQ,EAAC,IAAI;;;QAVjBA,CAAQ,GAMNC,EAAA,MAAAC;;AAAAA,gBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU;AAAA,OAAI;;;;;;;;;;0BANhBF,CAAQ,GAmBFC,EAAA,MAAAC,EAAAF,CAAQ,EAAC,KAAK;;;;;gCAnBpBA,CAAQ;;8BAqBFA,CAAQ,EAAC,8BAAS;AAAA,eAAK;;;;;kBArB7BA,CAAQ;;qCAoBKA,CAAQ,wBAAE,8BAAS;AAAA,iBAAK;;;;;;;YApBrCA,CAAQ,GAkBAC,EAAA,MAAAC;;AAAAA,oBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU;AAAA,WAAK;;;;;;QAlBvBF,CAAQ,GAcNC,EAAA,MAAA;;AAAAC,iBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU,YAAKA,KAAAA,IAAAA,EAAIF,CAAQ,MAAZE,gBAAAA,EAAc,YAAdA,gBAAAA,EAAuB;AAAA,OAAK;;;;;;;;;;0BAd7CF,CAAQ,GAgCFC,EAAA,MAAAC,EAAAF,CAAQ,EAAC,KAAK;;;;;gCAhCpBA,CAAQ;;8BAkCFA,CAAQ,EAAC,8BAAS;AAAA,eAAK;;;;;kBAlC7BA,CAAQ;;qCAiCKA,CAAQ,wBAAE,8BAAS;AAAA,iBAAK;;;;;;;YAjCrCA,CAAQ,GA+BAC,EAAA,MAAAC;;AAAAA,oBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU;AAAA,WAAK;;;;;;QA/BvBF,CAAQ,GA2BNC,EAAA,MAAA;;AAAAC,iBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU,YAAKA,KAAAA,IAAAA,EAAIF,CAAQ,MAAZE,gBAAAA,EAAc,YAAdA,gBAAAA,EAAuB;AAAA,OAAK;;;;AAaxCC,EAAAA,EAAAC,GAAA,MAAAN,aAAiBO,MAAO;;+BAIzBA,CAAO,CAAA,CAAA;;;;;;;;;gBAQmBR,KAAgB,EAAA,aAAA,UACpBE,CAAO,CAAA;AAAA;;;QAH/BA,CAAO,KAAAO,EAAAC,CAAA;AAAA;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"UserInfo-DwjE6Ph4.js","sources":["../../ui/main/shared/UserInfo.svelte"],"sourcesContent":["<script lang=\"ts\">\n import { TUser } from \"../../../utils/types\";\n\n export let options: {\n storedValueAlias: string;\n balance?: string | null;\n userData: TUser | null;\n userAddress: Promise<string>;\n };\n\n let { storedValueAlias, userAddress } = options;\n $: balance = options.balance\n $: userData = options.userData\n</script>\n\n<div\n class=\"crtw-flex crtw-justify-center crtw-flex-col crtw-items-start crtw-gap-[22px] crtw-w-full crtw-px-2.5 crtw-py-0\"\n>\n {#if userData?.name}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">User name:</p>\n <p class=\"crtw-text-sm\">\n {userData.name}\n </p>\n </div>\n {/if}\n {#if userData?.email || userData?.pending?.email}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">Email address:</p>\n <p class=\"crtw-text-sm\">\n {#if userData?.email}\n {userData.email}\n {:else if userData?.pending?.email}\n {userData.pending?.email} (Unconfirmed)\n {/if}\n </p>\n </div>\n {/if}\n\n {#if userData?.phone || userData?.pending?.phone}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">Phone number:</p>\n <p class=\"crtw-text-sm\">\n {#if userData?.phone}\n {userData.phone}\n {:else if userData?.pending?.phone}\n {userData.pending?.phone} (Unconfirmed)\n {/if}\n </p>\n </div>\n {/if}\n\n {#await userAddress then address}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">Logged in address:</p>\n <p class=\"crtw-text-sm\">\n {address}\n </p>\n </div>\n {/await}\n \n\n {#if balance}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">{storedValueAlias} available:</p>\n <p class=\"crtw-text-sm\">{balance}</p>\n </div>\n {/if}\n</div>\n"],"names":["options","$.prop","$$props","storedValueAlias","userAddress","balance","userData","$.untrack","$.get","$.await","node_5","address","$$render","consequent_7"],"mappings":";;;;;;;;MAGaA,IAKVC,EAAAC,GAAA,WAAA,EAAA,KAEK,kBAAAC,GAAkB,aAAAC,EAAW,IAAKJ,EAAO;;MAC5CK,GAAUL,EAAO,EAAC,OAAO;AAAA;MACzBM,GAAWN,EAAO,EAAC,QAAQ;AAAA;;;;;kCAA3BM,CAAQ,GAUJC,EAAA,MAAAC,EAAAF,CAAQ,EAAC,IAAI;;;QAVjBA,CAAQ,GAMNC,EAAA,MAAAC;;AAAAA,gBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU;AAAA,OAAI;;;;;;;;;;0BANhBF,CAAQ,GAmBFC,EAAA,MAAAC,EAAAF,CAAQ,EAAC,KAAK;;;;;gCAnBpBA,CAAQ;;8BAqBFA,CAAQ,EAAC,8BAAS;AAAA,eAAK;;;;;kBArB7BA,CAAQ;;qCAoBKA,CAAQ,wBAAE,8BAAS;AAAA,iBAAK;;;;;;;YApBrCA,CAAQ,GAkBAC,EAAA,MAAAC;;AAAAA,oBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU;AAAA,WAAK;;;;;;QAlBvBF,CAAQ,GAcNC,EAAA,MAAA;;AAAAC,iBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU,YAAKA,KAAAA,IAAAA,EAAIF,CAAQ,MAAZE,gBAAAA,EAAc,YAAdA,gBAAAA,EAAuB;AAAA,OAAK;;;;;;;;;;0BAd7CF,CAAQ,GAgCFC,EAAA,MAAAC,EAAAF,CAAQ,EAAC,KAAK;;;;;gCAhCpBA,CAAQ;;8BAkCFA,CAAQ,EAAC,8BAAS;AAAA,eAAK;;;;;kBAlC7BA,CAAQ;;qCAiCKA,CAAQ,wBAAE,8BAAS;AAAA,iBAAK;;;;;;;YAjCrCA,CAAQ,GA+BAC,EAAA,MAAAC;;AAAAA,oBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU;AAAA,WAAK;;;;;;QA/BvBF,CAAQ,GA2BNC,EAAA,MAAA;;AAAAC,iBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU,YAAKA,KAAAA,IAAAA,EAAIF,CAAQ,MAAZE,gBAAAA,EAAc,YAAdA,gBAAAA,EAAuB;AAAA,OAAK;;;;AAaxCC,EAAAA,EAAAC,GAAA,MAAAN,aAAiBO,MAAO;;+BAIzBA,CAAO,CAAA,CAAA;;;;;;;;;gBAQmBR,KAAgB,EAAA,aAAA,UACpBE,CAAO,CAAA;AAAA;;;QAH/BA,CAAO,KAAAO,EAAAC,CAAA;AAAA;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
- import { c as A, p as B, h as W, f as I, k as re, r as H, e as J, b as P, i as L, d as $, u as G, v as ae, o as z, n as se } from "./legacy-B3q739rj.js";
2
- import { v as K, m as E, B as k, E as T, C as y, D as R, I as U, K as n, G as ne, z as q, u as D, J as S, y as oe, w as Q, A as ce, x as X, L as ue, N as le, W as ie, a1 as de, R as Y, S as j, O as ve, b7 as fe } from "./index-DacuCeWr.js";
3
- import { C as me } from "./ContentHeader-D-0aj97w.js";
4
- import { B as F } from "./Button-B58tbHjg.js";
5
- import { e as pe, i as ge } from "./each-DlTYG9SE.js";
6
- import { b as we } from "./input-CV6w1OZd.js";
1
+ import { c as A, p as B, h as W, f as I, k as re, r as H, e as J, b as P, i as L, d as $, u as G, v as ae, o as z, n as se } from "./legacy-C1UsO_tu.js";
2
+ import { v as K, m as E, B as k, E as T, C as y, D as R, I as U, K as n, G as ne, z as q, u as D, J as S, y as oe, w as Q, A as ce, x as X, L as ue, N as le, W as ie, a1 as de, R as Y, S as j, O as ve, b7 as fe } from "./index-B0D9qQ_O.js";
3
+ import { C as me } from "./ContentHeader-DtB3AfgZ.js";
4
+ import { B as F } from "./Button-D5CGIu8s.js";
5
+ import { e as pe, i as ge } from "./each-tAR3XqEj.js";
6
+ import { b as we } from "./input-b1D2_f8m.js";
7
7
  var _e = I("<button> </button>"), he = I('<div class="crtw-text-xs crtw-text-gray-400 crtw-mt-1"> </div>'), Se = I('<input class="crtw-appearance-none focus:crtw-outline-0 crtw-w-full crtw-h-9 crtw-mt-4 crtw-px-5 crtw-text-base crtw-border crtw-border-gray-300 crtw-rounded focus:crtw-border-blue-800 hover:crtw-bg-gray-100" type="number" min="1" max="100"/> <!>', 1), xe = I('<div><div class="crtw-flex crtw-flex-col">Select amount <div class="crtw-inline-flex crtw-w-full" role="group"></div> <!></div></div>');
8
8
  function Z(v, o) {
9
9
  if (new.target) return A({ component: Z, ...v });
@@ -257,4 +257,4 @@ function ye(v, o) {
257
257
  export {
258
258
  ye as default
259
259
  };
260
- //# sourceMappingURL=Wallet-DFIt3eLL.js.map
260
+ //# sourceMappingURL=Wallet-BUV87MlV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet-DFIt3eLL.js","sources":["../../ui/main/wallet/ButtonGroup.svelte","../../ui/main/wallet/Wallet.svelte","../src/app/pages/wallet/Wallet.svelte"],"sourcesContent":["<script lang=\"ts\">\n export let selected: string | undefined = undefined\n export let minStoredValueToPurchase: number = 0\n export let maxStoredValueToPurchase: number = 100\n\n let isInputShown = false\n let active = selected\n\n const selectItems = [\n { value: '10', name: '10' },\n { value: '25', name: '25' },\n { value: '50', name: '50' },\n { value: 'CUSTOM', name: 'Custom' },\n ]\n const handleChangeButton = (value: string) => {\n active = value\n if (value === 'CUSTOM') {\n isInputShown = true\n selected = ''\n return\n }\n isInputShown = false\n selected = value\n }\n const handleChangeInput = (e: Event) => {\n const target = e.target as HTMLSelectElement | HTMLInputElement\n target.value = target.value.replace(/[,.-]/g, '')\n if (+target.value > maxStoredValueToPurchase) {\n selected = maxStoredValueToPurchase.toString()\n return\n }\n selected = target.value\n }\n</script>\n\n<div>\n <div class=\"crtw-flex crtw-flex-col\">\n Select amount\n <div class=\"crtw-inline-flex crtw-w-full\" role=\"group\">\n {#each selectItems as item}\n <button\n on:click={() => handleChangeButton(item.value)}\n class=\"crtw-w-full crtw-h-[30px] crtw-text-sm crtw-border hover:crtw-bg-gray-100 hover:crtw-text-blue-800 first:crtw-rounded-l last:crtw-rounded-r\"\n class:crtw-border-blue-800={item.value === active}\n class:crtw-z-10={item.value === active}\n >\n {item.name}\n </button>\n {/each}\n </div>\n {#if isInputShown}\n <input\n class=\"crtw-appearance-none focus:crtw-outline-0 crtw-w-full crtw-h-9 crtw-mt-4 crtw-px-5 crtw-text-base crtw-border crtw-border-gray-300 crtw-rounded focus:crtw-border-blue-800 hover:crtw-bg-gray-100\"\n type=\"number\"\n min=\"1\"\n max=\"100\"\n bind:value={selected}\n on:input={handleChangeInput}\n />\n {#if minStoredValueToPurchase}\n <div class=\"crtw-text-xs crtw-text-gray-400 crtw-mt-1\">\n Minimum purchase amount is {minStoredValueToPurchase}\n </div>\n {/if}\n {/if}\n </div>\n</div>\n","<script lang=\"ts\">\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n import ButtonGroup from \"./ButtonGroup.svelte\";\n\n export let selected: string;\n export let options: {\n title: string;\n description: string;\n onSendClick: () => void;\n sendValueButtonText: string;\n isSendValueDisabled: boolean;\n onPaymentClick: () => void;\n minStoredValueToPurchase?: number;\n maxStoredValueToPurchase?: number;\n };\n\n let { title, description, onSendClick, sendValueButtonText, onPaymentClick, minStoredValueToPurchase = 0, maxStoredValueToPurchase = 100 } =\n options;\n\n $: isSendValueDisabled = options.isSendValueDisabled;\n</script>\n\n<div class=\"crtw-w-full crtw-px-2.5\">\n <ContentHeader text={title} {description} />\n <ButtonGroup bind:selected {minStoredValueToPurchase} {maxStoredValueToPurchase}/>\n <div class=\"crtw-h-4\" />\n <Button\n text=\"Confirm purchase\"\n disabled={!selected || (!!minStoredValueToPurchase && +selected < minStoredValueToPurchase)}\n onClick={onPaymentClick}\n />\n <div class=\"crtw-m-3.5\" />\n <Button\n onClick={onSendClick}\n text={sendValueButtonText}\n disabled={isSendValueDisabled}\n />\n</div>\n","<script lang=\"ts\">\n import { get } from 'svelte/store'\n\n import {\n pageStore,\n fn,\n pageOptsStore,\n } from '@packages/stores'\n import { Pages } from '@packages/utils/enums'\n import { Wallet } from '@packages/ui'\n import { configStore, providerStore, contractsStore } from '@src/stores'\n\n const { getBalance: getEvmBalance } = get(fn)\n let balance: string = ''\n\n const getBalance = async () => {\n try {\n balance = await getEvmBalance()\n } catch {\n balance = '0'\n }\n }\n\n $: $configStore.chainId && $providerStore && getBalance()\n\n let selected: string = '10'\n\n const goToPayment = () => {\n pageOptsStore.set({\n subtitle: `Purchase stored value`,\n payments: {\n credenzaStoredValue: {\n disabled: true,\n },\n },\n tokens: [\n {\n contractAddress: $contractsStore.erc20Cred.address,\n amount: +selected,\n },\n ],\n })\n pageStore.set(Pages.PAYMENT)\n }\n</script>\n\n<Wallet\n bind:selected\n options={{\n title: `buy stored value`,\n description: `Buy/Send stored value for purchases throughout this website.`,\n onSendClick: () => pageStore.set(Pages.SEND_TOKENS),\n sendValueButtonText: `Send stored value`,\n isSendValueDisabled: !balance,\n onPaymentClick: goToPayment,\n }}\n/>\n"],"names":["selected","minStoredValueToPurchase","maxStoredValueToPurchase","isInputShown","active","selectItems","handleChangeButton","value","$.set","handleChangeInput","target","$.each","div_2","item","$.untrack","$.get","$$render","consequent","consequent_1","$.prop","$$props","options","title","description","onSendClick","sendValueButtonText","onPaymentClick","isSendValueDisabled","expression","$.derived_safe_equal","__awaiter","thisArg","_arguments","P","generator","getEvmBalance","get","fn","balance","getBalance","goToPayment","pageOptsStore","$contractsStore","pageStore","Pages","$configStore","$providerStore"],"mappings":"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"}
1
+ {"version":3,"file":"Wallet-BUV87MlV.js","sources":["../../ui/main/wallet/ButtonGroup.svelte","../../ui/main/wallet/Wallet.svelte","../src/app/pages/wallet/Wallet.svelte"],"sourcesContent":["<script lang=\"ts\">\n export let selected: string | undefined = undefined\n export let minStoredValueToPurchase: number = 0\n export let maxStoredValueToPurchase: number = 100\n\n let isInputShown = false\n let active = selected\n\n const selectItems = [\n { value: '10', name: '10' },\n { value: '25', name: '25' },\n { value: '50', name: '50' },\n { value: 'CUSTOM', name: 'Custom' },\n ]\n const handleChangeButton = (value: string) => {\n active = value\n if (value === 'CUSTOM') {\n isInputShown = true\n selected = ''\n return\n }\n isInputShown = false\n selected = value\n }\n const handleChangeInput = (e: Event) => {\n const target = e.target as HTMLSelectElement | HTMLInputElement\n target.value = target.value.replace(/[,.-]/g, '')\n if (+target.value > maxStoredValueToPurchase) {\n selected = maxStoredValueToPurchase.toString()\n return\n }\n selected = target.value\n }\n</script>\n\n<div>\n <div class=\"crtw-flex crtw-flex-col\">\n Select amount\n <div class=\"crtw-inline-flex crtw-w-full\" role=\"group\">\n {#each selectItems as item}\n <button\n on:click={() => handleChangeButton(item.value)}\n class=\"crtw-w-full crtw-h-[30px] crtw-text-sm crtw-border hover:crtw-bg-gray-100 hover:crtw-text-blue-800 first:crtw-rounded-l last:crtw-rounded-r\"\n class:crtw-border-blue-800={item.value === active}\n class:crtw-z-10={item.value === active}\n >\n {item.name}\n </button>\n {/each}\n </div>\n {#if isInputShown}\n <input\n class=\"crtw-appearance-none focus:crtw-outline-0 crtw-w-full crtw-h-9 crtw-mt-4 crtw-px-5 crtw-text-base crtw-border crtw-border-gray-300 crtw-rounded focus:crtw-border-blue-800 hover:crtw-bg-gray-100\"\n type=\"number\"\n min=\"1\"\n max=\"100\"\n bind:value={selected}\n on:input={handleChangeInput}\n />\n {#if minStoredValueToPurchase}\n <div class=\"crtw-text-xs crtw-text-gray-400 crtw-mt-1\">\n Minimum purchase amount is {minStoredValueToPurchase}\n </div>\n {/if}\n {/if}\n </div>\n</div>\n","<script lang=\"ts\">\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n import ButtonGroup from \"./ButtonGroup.svelte\";\n\n export let selected: string;\n export let options: {\n title: string;\n description: string;\n onSendClick: () => void;\n sendValueButtonText: string;\n isSendValueDisabled: boolean;\n onPaymentClick: () => void;\n minStoredValueToPurchase?: number;\n maxStoredValueToPurchase?: number;\n };\n\n let { title, description, onSendClick, sendValueButtonText, onPaymentClick, minStoredValueToPurchase = 0, maxStoredValueToPurchase = 100 } =\n options;\n\n $: isSendValueDisabled = options.isSendValueDisabled;\n</script>\n\n<div class=\"crtw-w-full crtw-px-2.5\">\n <ContentHeader text={title} {description} />\n <ButtonGroup bind:selected {minStoredValueToPurchase} {maxStoredValueToPurchase}/>\n <div class=\"crtw-h-4\" />\n <Button\n text=\"Confirm purchase\"\n disabled={!selected || (!!minStoredValueToPurchase && +selected < minStoredValueToPurchase)}\n onClick={onPaymentClick}\n />\n <div class=\"crtw-m-3.5\" />\n <Button\n onClick={onSendClick}\n text={sendValueButtonText}\n disabled={isSendValueDisabled}\n />\n</div>\n","<script lang=\"ts\">\n import { get } from 'svelte/store'\n\n import {\n pageStore,\n fn,\n pageOptsStore,\n } from '@packages/stores'\n import { Pages } from '@packages/utils/enums'\n import { Wallet } from '@packages/ui'\n import { configStore, providerStore, contractsStore } from '@src/stores'\n\n const { getBalance: getEvmBalance } = get(fn)\n let balance: string = ''\n\n const getBalance = async () => {\n try {\n balance = await getEvmBalance()\n } catch {\n balance = '0'\n }\n }\n\n $: $configStore.chainId && $providerStore && getBalance()\n\n let selected: string = '10'\n\n const goToPayment = () => {\n pageOptsStore.set({\n subtitle: `Purchase stored value`,\n payments: {\n credenzaStoredValue: {\n disabled: true,\n },\n },\n tokens: [\n {\n contractAddress: $contractsStore.erc20Cred.address,\n amount: +selected,\n },\n ],\n })\n pageStore.set(Pages.PAYMENT)\n }\n</script>\n\n<Wallet\n bind:selected\n options={{\n title: `buy stored value`,\n description: `Buy/Send stored value for purchases throughout this website.`,\n onSendClick: () => pageStore.set(Pages.SEND_TOKENS),\n sendValueButtonText: `Send stored value`,\n isSendValueDisabled: !balance,\n onPaymentClick: goToPayment,\n }}\n/>\n"],"names":["selected","minStoredValueToPurchase","maxStoredValueToPurchase","isInputShown","active","selectItems","handleChangeButton","value","$.set","handleChangeInput","target","$.each","div_2","item","$.untrack","$.get","$$render","consequent","consequent_1","$.prop","$$props","options","title","description","onSendClick","sendValueButtonText","onPaymentClick","isSendValueDisabled","expression","$.derived_safe_equal","__awaiter","thisArg","_arguments","P","generator","getEvmBalance","get","fn","balance","getBalance","goToPayment","pageOptsStore","$contractsStore","pageStore","Pages","$configStore","$providerStore"],"mappings":"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"}