@credenza3/passport-evm 0.3.2-alpha.0 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/{App-DAD-3pkW.js → App-BQcgQDOn.js} +18 -18
  2. package/dist/{App-DAD-3pkW.js.map → App-BQcgQDOn.js.map} +1 -1
  3. package/dist/{Button-BLBDGKgo.js → Button-DJ25fZA4.js} +4 -4
  4. package/dist/{Button-BLBDGKgo.js.map → Button-DJ25fZA4.js.map} +1 -1
  5. package/dist/{ButtonBack-BDP-q5pl.js → ButtonBack-PBOoIiLP.js} +4 -4
  6. package/dist/{ButtonBack-BDP-q5pl.js.map → ButtonBack-PBOoIiLP.js.map} +1 -1
  7. package/dist/{ButtonLink-CF_1WMV5.js → ButtonLink-BQoPpOzF.js} +3 -3
  8. package/dist/{ButtonLink-CF_1WMV5.js.map → ButtonLink-BQoPpOzF.js.map} +1 -1
  9. package/dist/{ConfirmAccount-PmDxAmpQ.js → ConfirmAccount-C0-nRoRY.js} +9 -9
  10. package/dist/{ConfirmAccount-PmDxAmpQ.js.map → ConfirmAccount-C0-nRoRY.js.map} +1 -1
  11. package/dist/{ContentHeader-Bp6StGDI.js → ContentHeader-ocxNyopL.js} +3 -3
  12. package/dist/{ContentHeader-Bp6StGDI.js.map → ContentHeader-ocxNyopL.js.map} +1 -1
  13. package/dist/{Error-C95un4B0.js → Error-DEp9Z6Bx.js} +5 -5
  14. package/dist/{Error-C95un4B0.js.map → Error-DEp9Z6Bx.js.map} +1 -1
  15. package/dist/{Input-CzIs2ykF.js → Input-CVqxfhUK.js} +4 -4
  16. package/dist/{Input-CzIs2ykF.js.map → Input-CVqxfhUK.js.map} +1 -1
  17. package/dist/{Label-BlLe_IwW.js → Label-B0znbjiv.js} +3 -3
  18. package/dist/{Label-BlLe_IwW.js.map → Label-B0znbjiv.js.map} +1 -1
  19. package/dist/{Loader-DtyOWErL.js → Loader-BReUBXtD.js} +3 -3
  20. package/dist/{Loader-DtyOWErL.js.map → Loader-BReUBXtD.js.map} +1 -1
  21. package/dist/{Login-eOxVEzMo.js → Login-Q3in9z5C.js} +9 -9
  22. package/dist/{Login-eOxVEzMo.js.map → Login-Q3in9z5C.js.map} +1 -1
  23. package/dist/{Logout-Cafg1Y4C.js → Logout-C-B6TAK5.js} +6 -6
  24. package/dist/{Logout-Cafg1Y4C.js.map → Logout-C-B6TAK5.js.map} +1 -1
  25. package/dist/Nav-BNL-t7lr.js +669 -0
  26. package/dist/{Nav-wtH0i__S.js.map → Nav-BNL-t7lr.js.map} +1 -1
  27. package/dist/{PassportId-B35HeqvH.js → PassportId-P66ciTeW.js} +103 -101
  28. package/dist/{PassportId-B35HeqvH.js.map → PassportId-P66ciTeW.js.map} +1 -1
  29. package/dist/{Payment-Db8rLNA_.js → Payment-CusdVS_r.js} +96 -93
  30. package/dist/{Payment-Db8rLNA_.js.map → Payment-CusdVS_r.js.map} +1 -1
  31. package/dist/{PaymentResult-4qhKeqB0.js → PaymentResult-2iBLz6Dz.js} +4 -4
  32. package/dist/{PaymentResult-4qhKeqB0.js.map → PaymentResult-2iBLz6Dz.js.map} +1 -1
  33. package/dist/{Profile-BqxYPAWO.js → Profile-B6KdB4Xw.js} +7 -7
  34. package/dist/{Profile-BqxYPAWO.js.map → Profile-B6KdB4Xw.js.map} +1 -1
  35. package/dist/{ProgressVideo-DCASDYbH.js → ProgressVideo-BsNCYtUY.js} +5 -5
  36. package/dist/{ProgressVideo-DCASDYbH.js.map → ProgressVideo-BsNCYtUY.js.map} +1 -1
  37. package/dist/{RichAlert-LE9rBMFh.js → RichAlert-2kCKGUJv.js} +5 -5
  38. package/dist/{RichAlert-LE9rBMFh.js.map → RichAlert-2kCKGUJv.js.map} +1 -1
  39. package/dist/{Scanner-FC7U2PA9.js → Scanner-hpy-diMW.js} +6 -6
  40. package/dist/{Scanner-FC7U2PA9.js.map → Scanner-hpy-diMW.js.map} +1 -1
  41. package/dist/{SendTokens-Dy4DjHfT.js → SendTokens-X8fgBuBY.js} +49 -48
  42. package/dist/{SendTokens-Dy4DjHfT.js.map → SendTokens-X8fgBuBY.js.map} +1 -1
  43. package/dist/Sign-C3c9NI6m.js +111 -0
  44. package/dist/Sign-C3c9NI6m.js.map +1 -0
  45. package/dist/{Stripe.service-DDH-p8P7.js → Stripe.service-DKMi4sIm.js} +3 -3
  46. package/dist/{Stripe.service-DDH-p8P7.js.map → Stripe.service-DKMi4sIm.js.map} +1 -1
  47. package/dist/{UpdateProfile-CEWBQF6V.js → UpdateProfile-9_gY1I65.js} +10 -10
  48. package/dist/{UpdateProfile-CEWBQF6V.js.map → UpdateProfile-9_gY1I65.js.map} +1 -1
  49. package/dist/{UserInfo-Cbn62Xtz.js → UserInfo-DeanoQH4.js} +4 -4
  50. package/dist/{UserInfo-Cbn62Xtz.js.map → UserInfo-DeanoQH4.js.map} +1 -1
  51. package/dist/{Wallet-4hBJr4Ig.js → Wallet-CNLR90WA.js} +7 -7
  52. package/dist/{Wallet-4hBJr4Ig.js.map → Wallet-CNLR90WA.js.map} +1 -1
  53. package/dist/{each-B6umsb9f.js → each-Bx-HYH8A.js} +2 -2
  54. package/dist/{each-B6umsb9f.js.map → each-Bx-HYH8A.js.map} +1 -1
  55. package/dist/{html-BAg87t7I.js → html-BCugDVdL.js} +3 -3
  56. package/dist/{html-BAg87t7I.js.map → html-BCugDVdL.js.map} +1 -1
  57. package/dist/{index-Hk3dAOE1.js → index-BA5V_Oz9.js} +277 -275
  58. package/dist/{index-Hk3dAOE1.js.map → index-BA5V_Oz9.js.map} +1 -1
  59. package/dist/{index-client-DFIkfIrM.js → index-client-CLutM9Bq.js} +2 -2
  60. package/dist/{index-client-DFIkfIrM.js.map → index-client-CLutM9Bq.js.map} +1 -1
  61. package/dist/{input-CN6xC5gE.js → input-B8aavsPk.js} +2 -2
  62. package/dist/{input-CN6xC5gE.js.map → input-B8aavsPk.js.map} +1 -1
  63. package/dist/{legacy-B8k6qOOM.js → legacy-Ba02xnfv.js} +2 -2
  64. package/dist/{legacy-B8k6qOOM.js.map → legacy-Ba02xnfv.js.map} +1 -1
  65. package/dist/passport.es.js +1 -1
  66. package/dist/passport.umd.js +59 -59
  67. package/dist/passport.umd.js.map +1 -1
  68. package/dist/types/Passport.d.ts +1 -1
  69. package/dist/types/passport/blockchain.d.ts +2 -2
  70. package/dist/types/stores/blockchain.d.ts +1 -1
  71. package/package.json +1 -1
  72. package/dist/Nav-wtH0i__S.js +0 -666
  73. package/dist/Sign-CmWD-VMG.js +0 -109
  74. package/dist/Sign-CmWD-VMG.js.map +0 -1
@@ -1,10 +1,10 @@
1
- import { c as $e, p as ue, h as Be, f as ce, i as se, k as Me, r as me, s as Ve, e as je, b as ee, d as Te, u as Re, t as Fe, o as pe, n as ze } from "./legacy-B8k6qOOM.js";
2
- import { z as Ee, v as g, I as n, m as s, A as y, J as e, w as Ie, x as Xe, Z as J, E as m, B as _, C as b, D as fe, G as oe, y as De, u as ge, N as ie, M as Se, Q as qe, a3 as G, a1 as Ce, R as Ge, a2 as Je, T as he, V as Ae, a5 as Ke, bg as Qe, O as xe, P as we, bh as We, bi as Ye } from "./index-Hk3dAOE1.js";
1
+ import { c as $e, p as ue, h as Be, f as ce, i as se, k as Me, r as me, s as Ve, e as je, b as ee, d as Te, u as Re, t as Fe, o as fe, n as ze } from "./legacy-Ba02xnfv.js";
2
+ import { z as Ee, v as g, I as n, m as s, A as y, J as e, w as Ie, x as Xe, Z as J, E as m, B as _, C as b, D as pe, G as oe, y as De, u as ge, N as ie, M as Se, Q as qe, a3 as G, a1 as Ce, R as Ge, a2 as Je, T as he, V as Ae, a5 as Ke, bg as Qe, O as xe, P as we, bh as We, bi as Ye } from "./index-BA5V_Oz9.js";
3
3
  import "./scanner.es-DK9KxX60.js";
4
- import { C as Ze } from "./ContentHeader-Bp6StGDI.js";
5
- import { B as et } from "./ButtonBack-BDP-q5pl.js";
6
- import { B as _e } from "./Button-BLBDGKgo.js";
7
- import { I as ke } from "./Input-CzIs2ykF.js";
4
+ import { C as Ze } from "./ContentHeader-ocxNyopL.js";
5
+ import { B as et } from "./ButtonBack-PBOoIiLP.js";
6
+ import { B as _e } from "./Button-DJ25fZA4.js";
7
+ import { I as ke } from "./Input-CVqxfhUK.js";
8
8
  import { S as tt } from "./scanner-Bm3Pvpfs.js";
9
9
  import { g as be } from "./strings-B-rKL311.js";
10
10
  var nt = ce('<div>ChainId: <span class="crtw-font-bold"> </span></div>'), rt = ce('<label class="crtw-text-[10px] crtw-text-warningTextColor cpui-send-tokens-validation-message" for="recipientAddress">Provided address is not valid.</label>'), at = ce('<div class="crtw-ml-2.5 crtw-w-16 crtw-min-w-16"><!></div>'), st = ce('<!> <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);
@@ -15,12 +15,12 @@ function Le(K, E) {
15
15
  let V = ue(E, "recipientAddress", 12), D = ue(E, "amount", 12), a = ue(E, "options", 12), {
16
16
  onChangeCurrency: A,
17
17
  onSetMaxAmount: l,
18
- onBackClicked: p,
18
+ onBackClicked: f,
19
19
  onSendTokens: z,
20
20
  title: w,
21
21
  chainId: x,
22
22
  onScannerClicked: X,
23
- credAlias: B,
23
+ credAlias: T,
24
24
  isNativeCurrecyTransferAllowed: k = !0
25
25
  } = a();
26
26
  const L = (t) => Math.floor(t * 100) / 100;
@@ -43,9 +43,9 @@ function Le(K, E) {
43
43
  }), g(() => y(a()), () => {
44
44
  n(j, a().nativeBalance);
45
45
  }), g(() => e(h), () => {
46
- n(F, be(e(h), B));
46
+ n(F, be(e(h), T));
47
47
  }), Ie(), Be();
48
- var T = st(), P = Xe(T);
48
+ var R = st(), P = Xe(R);
49
49
  {
50
50
  let t = J(() => e(H) ? "" : "Scan Passport Id");
51
51
  Ze(P, {
@@ -63,7 +63,7 @@ function Le(K, E) {
63
63
  {
64
64
  var de = (t) => {
65
65
  var o = nt(), O = m(_(o)), ve = _(O, !0);
66
- b(O), b(o), fe(() => me(ve, x)), ee(t, o);
66
+ b(O), b(o), pe(() => me(ve, x)), ee(t, o);
67
67
  };
68
68
  se(re, (t) => {
69
69
  x && t(de);
@@ -73,7 +73,7 @@ function Le(K, E) {
73
73
  {
74
74
  var c = (t) => {
75
75
  var o = Fe();
76
- fe((O) => me(o, `${O ?? ""} ${e(M) ?? ""} /`), [
76
+ pe((O) => me(o, `${O ?? ""} ${e(M) ?? ""} /`), [
77
77
  () => (e(j), oe(() => L(+e(j))))
78
78
  ]), ee(t, o);
79
79
  };
@@ -83,7 +83,7 @@ function Le(K, E) {
83
83
  }
84
84
  var v = m(r);
85
85
  b(i), b(W);
86
- var S = m(W, 2), f = _(S), u = _(f);
86
+ var S = m(W, 2), p = _(S), u = _(p);
87
87
  ke(u, {
88
88
  name: "recipientAddress",
89
89
  type: "text",
@@ -106,9 +106,9 @@ function Le(K, E) {
106
106
  V() && !e(Q) && t(Z);
107
107
  });
108
108
  }
109
- b(f);
110
- var R = m(f, 2), d = _(R);
111
- b(R), b(S);
109
+ b(p);
110
+ var B = m(p, 2), d = _(B);
111
+ b(B), b(S);
112
112
  var C = m(S, 2), ae = _(C);
113
113
  {
114
114
  let t = J(() => `${e(F)} amount`);
@@ -189,9 +189,9 @@ function Le(K, E) {
189
189
  var ye = m(q, 2), Ne = _(ye);
190
190
  return et(Ne, {
191
191
  get onClick() {
192
- return p;
192
+ return f;
193
193
  }
194
- }), b(ye), fe(
194
+ }), b(ye), pe(
195
195
  (t, o, O) => {
196
196
  ne = Me($, 1, "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", null, ne, t), me(v, ` ${o ?? ""} ${O ?? ""}`), Ve(d, "src", tt);
197
197
  },
@@ -201,9 +201,9 @@ function Le(K, E) {
201
201
  "crtw-z-[-1]": e(H)
202
202
  }),
203
203
  () => (e(I), oe(() => L(+e(I)))),
204
- () => (y(be), e(N), oe(() => be(e(N), B)))
204
+ () => (y(be), e(N), oe(() => be(e(N), T)))
205
205
  ]
206
- ), je("click", d, X), ee(K, T), De({
206
+ ), je("click", d, X), ee(K, R), De({
207
207
  get recipientAddress() {
208
208
  return V();
209
209
  },
@@ -229,36 +229,36 @@ function Le(K, E) {
229
229
  function it(K, E) {
230
230
  if (new.target) return $e({ component: it, ...K });
231
231
  Ee(E, !1);
232
- const [I, te] = ze(), U = () => pe(Se, "$configStore", I), Q = () => pe(Ce, "$providerStore", I), H = () => pe(Ke, "$clientPublicStore", I), h = s(), N = s();
232
+ const [I, te] = ze(), U = () => fe(Se, "$configStore", I), Q = () => fe(Ce, "$providerStore", I), H = () => fe(Ke, "$clientPublicStore", I), h = s(), N = s();
233
233
  var M = this && this.__awaiter || function(i, r, c, v) {
234
- function S(f) {
235
- return f instanceof c ? f : new c(function(u) {
236
- u(f);
234
+ function S(p) {
235
+ return p instanceof c ? p : new c(function(u) {
236
+ u(p);
237
237
  });
238
238
  }
239
- return new (c || (c = Promise))(function(f, u) {
239
+ return new (c || (c = Promise))(function(p, u) {
240
240
  function Y(d) {
241
241
  try {
242
- R(v.next(d));
242
+ B(v.next(d));
243
243
  } catch (C) {
244
244
  u(C);
245
245
  }
246
246
  }
247
247
  function Z(d) {
248
248
  try {
249
- R(v.throw(d));
249
+ B(v.throw(d));
250
250
  } catch (C) {
251
251
  u(C);
252
252
  }
253
253
  }
254
- function R(d) {
255
- d.done ? f(d.value) : S(d.value).then(Y, Z);
254
+ function B(d) {
255
+ d.done ? p(d.value) : S(d.value).then(Y, Z);
256
256
  }
257
- R((v = v.apply(i, r || [])).next());
257
+ B((v = v.apply(i, r || [])).next());
258
258
  });
259
259
  };
260
260
  const j = ie(Se), { sendTokens: F, getCREDContract: V, toastAlert: D } = ie(qe);
261
- let a = "", A = s(""), l = s(), p = s(""), z = 18, w = s("-"), x = s(""), X = 18, B = s("-"), k = s(""), L = s(!0), T = s(!1), P, q, $;
261
+ let a = "", A = s(""), l = s(), f = s(""), z = 18, w = s("-"), x = s(""), X = 18, T = s("-"), k = s(""), L = s(!0), R = s(!1), P, q, $;
262
262
  const ne = () => M(void 0, void 0, void 0, function* () {
263
263
  const { Scanner: i } = yield import("./scanner.es-DK9KxX60.js");
264
264
  $ = new i({ target: "#cpuiCredScanner" }), We(we.UI_CLOSED, $.close), yield $.scan(), $.on(i.events.CAPTURE, (r) => M(void 0, [r], void 0, function* ({ sub: c }) {
@@ -268,8 +268,8 @@ function it(K, E) {
268
268
  (r?.message || r).includes("Permission") && alert("In order to scan please allow the current page to access your camera and try again."), n(L, !0);
269
269
  }), n(L, !1);
270
270
  }), re = () => M(void 0, void 0, void 0, function* () {
271
- const i = e(p) === e(w);
272
- n(T, !0);
271
+ const i = e(f) === e(w);
272
+ n(R, !0);
273
273
  try {
274
274
  const r = G.parseUnits(String(e(l)), i ? z : X), c = yield F({
275
275
  address: e(A),
@@ -285,35 +285,36 @@ function it(K, E) {
285
285
  } catch (r) {
286
286
  D(r?.message || r || "An error occurred while sending tokens", "failure"), xe(we.ERROR, { error: r });
287
287
  }
288
- n(T, !1);
288
+ n(R, !1);
289
289
  }), de = () => M(void 0, void 0, void 0, function* () {
290
- var i, r, c, v, S, f;
290
+ var i, r, c, v, S, p;
291
291
  const u = ie(Ge);
292
292
  n(A, u?.to || ""), n(l, u?.amount || void 0);
293
293
  const { decimals: Y, contract: Z } = yield V();
294
294
  z = Y, P = Z;
295
- const R = ie(Ce);
296
- q = yield R.getSigner(), a = yield Je();
295
+ const B = ie(Ce);
296
+ if (!B) return;
297
+ q = yield B.getSigner(), a = yield Je();
297
298
  const d = yield Promise.all([
298
299
  P.symbol(),
299
300
  P.balanceOf(a),
300
- R.getBalance(a),
301
+ B.getBalance(a),
301
302
  fetch("https://chainid.network/chains.json").then((C) => C.json()).then((C) => C.find((ae) => String(ae.chainId) === j.chainId))
302
303
  ]);
303
- n(w, d[0]), n(x, G.formatUnits(d[1], z)), X = (c = (r = (i = d[3]) === null || i === void 0 ? void 0 : i.nativeCurrency) === null || r === void 0 ? void 0 : r.decimals) !== null && c !== void 0 ? c : 18, n(k, parseFloat(G.formatUnits(d[2], X)).toFixed(4)), n(B, (f = (S = (v = d[3]) === null || v === void 0 ? void 0 : v.nativeCurrency) === null || S === void 0 ? void 0 : S.symbol) !== null && f !== void 0 ? f : "ETH"), n(p, e(w));
304
+ n(w, d[0]), n(x, G.formatUnits(d[1], z)), X = (c = (r = (i = d[3]) === null || i === void 0 ? void 0 : i.nativeCurrency) === null || r === void 0 ? void 0 : r.decimals) !== null && c !== void 0 ? c : 18, n(k, parseFloat(G.formatUnits(d[2], X)).toFixed(4)), n(T, (p = (S = (v = d[3]) === null || v === void 0 ? void 0 : v.nativeCurrency) === null || S === void 0 ? void 0 : S.symbol) !== null && p !== void 0 ? p : "ETH"), n(f, e(w));
304
305
  });
305
306
  g(() => (U(), Q()), () => {
306
307
  U().chainId && Q() && de();
307
308
  }), g(() => e(A), () => {
308
309
  n(h, !!G.isAddress(e(A)));
309
310
  }), g(
310
- () => (e(T), e(l), e(h), e(p), e(w), e(x), e(B), e(k)),
311
+ () => (e(R), e(l), e(h), e(f), e(w), e(x), e(T), e(k)),
311
312
  () => {
312
- n(N, e(T) || !e(l) || !e(h) || e(p) === e(w) && e(l) > +e(x) || e(p) === e(B) && e(l) > +e(k));
313
+ n(N, e(R) || !e(l) || !e(h) || e(f) === e(w) && e(l) > +e(x) || e(f) === e(T) && e(l) > +e(k));
313
314
  }
314
315
  ), Ie(), Be();
315
316
  {
316
- let i = J(() => (U(), e(L), e(x), e(h), y(he), y(Ae), e(p), e(w), e(B), e(l), e(k), e(T), e(N), H(), oe(() => ({
317
+ let i = J(() => (U(), e(L), e(x), e(h), y(he), y(Ae), e(f), e(w), e(T), e(l), e(k), e(R), e(N), H(), oe(() => ({
317
318
  title: "Send stored value",
318
319
  isNativeCurrecyTransferAllowed: U().transferTokens?.nativeCurrency !== !1,
319
320
  isScannerHidden: e(L),
@@ -323,14 +324,14 @@ function it(K, E) {
323
324
  onScannerClicked: ne,
324
325
  onSendTokens: re,
325
326
  onBackClicked: () => he.set(Ae.WALLET),
326
- onChangeCurrency: () => e(p) === e(w) ? n(p, e(B)) : n(p, e(w)),
327
- onSetMaxAmount: () => e(p) === e(w) ? n(l, +e(x)) : n(l, +e(k)),
328
- isLoading: e(T),
327
+ onChangeCurrency: () => e(f) === e(w) ? n(f, e(T)) : n(f, e(w)),
328
+ onSetMaxAmount: () => e(f) === e(w) ? n(l, +e(x)) : n(l, +e(k)),
329
+ isLoading: e(R),
329
330
  isSubmitDisabled: e(N),
330
331
  credAlias: H()?.ui_settings.cred_alias,
331
- activeCurrency: e(p),
332
+ activeCurrency: e(f),
332
333
  symbol: e(w),
333
- nativeSymbol: e(B),
334
+ nativeSymbol: e(T),
334
335
  nativeBalance: e(k)
335
336
  }))));
336
337
  Le(K, {
@@ -361,4 +362,4 @@ function it(K, E) {
361
362
  export {
362
363
  it as default
363
364
  };
364
- //# sourceMappingURL=SendTokens-Dy4DjHfT.js.map
365
+ //# sourceMappingURL=SendTokens-X8fgBuBY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SendTokens-Dy4DjHfT.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":["$.prop","$$props","amount","options","onChangeCurrency","onSetMaxAmount","onBackClicked","onSendTokens","title","chainId","onScannerClicked","credAlias","isNativeCurrecyTransferAllowed","round","num","isLoading","isSubmitDisabled","isRecipientAddressValid","isScannerHidden","activeCurrency","symbol","nativeSymbol","nativeBalance","$.set","activeCurrencySymbol","getCryptoCurrencySymbol","$.get","$0","$.derived_safe_equal","$$render","consequent","consequent_1","recipientAddress","consequent_2","ScanIcon","balance","__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","sendTokensToRecipient","isTCRED","weiBn","ethers","result","getTxScanAddress","weiBalance","weiNativeBalance","dispatch","err","init","pageOpts","pageOptsStore","contractDecimals","credContract","provider","providerStore","getAddress","networks","network","results","_c","_b","_f","_e","_d","pageStore","Pages"],"mappings":"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"}
1
+ {"version":3,"file":"SendTokens-X8fgBuBY.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 if(!provider) return\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":["$.prop","$$props","amount","options","onChangeCurrency","onSetMaxAmount","onBackClicked","onSendTokens","title","chainId","onScannerClicked","credAlias","isNativeCurrecyTransferAllowed","round","num","isLoading","isSubmitDisabled","isRecipientAddressValid","isScannerHidden","activeCurrency","symbol","nativeSymbol","nativeBalance","$.set","activeCurrencySymbol","getCryptoCurrencySymbol","$.get","$0","$.derived_safe_equal","$$render","consequent","consequent_1","recipientAddress","consequent_2","ScanIcon","balance","__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","sendTokensToRecipient","isTCRED","weiBn","ethers","result","getTxScanAddress","weiBalance","weiNativeBalance","dispatch","err","init","pageOpts","pageOptsStore","contractDecimals","credContract","provider","providerStore","getAddress","networks","network","_c","_b","results","_f","_e","_d","$configStore","$providerStore","pageStore","Pages"],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ import { c as k, p as R, f as E, b as C, d as q, u as O, h as T, n as j, o as w } from "./legacy-Ba02xnfv.js";
2
+ import { z, x as y, E as $, y as B, u as A, N as x, Q as F, J, Z as N, a1 as Q, bc as U, R as W, M as Z } from "./index-BA5V_Oz9.js";
3
+ import { C as G } from "./App-BQcgQDOn.js";
4
+ import { C as I } from "./ContentHeader-ocxNyopL.js";
5
+ import { B as b } from "./Button-DJ25fZA4.js";
6
+ var K = E("<!> <!>", 1), L = E("<!> <!>", 1);
7
+ function D(i, r) {
8
+ if (new.target) return k({ component: D, ...i });
9
+ z(r, !1);
10
+ let a = R(r, "options", 12), { title: g, description: p, onConfirm: d, onCancel: m } = a();
11
+ var c = L(), l = y(c);
12
+ I(l, {
13
+ get text() {
14
+ return g;
15
+ },
16
+ get description() {
17
+ return p;
18
+ }
19
+ });
20
+ var _ = $(l, 2);
21
+ return G(_, {
22
+ class: "crtw-flex crtw-justify-between crtw-gap-10",
23
+ children: (t, n) => {
24
+ var e = K(), o = y(e);
25
+ b(o, {
26
+ text: "Cancel",
27
+ get onClick() {
28
+ return m;
29
+ }
30
+ });
31
+ var v = $(o, 2);
32
+ b(v, {
33
+ text: "Sign the message",
34
+ get onClick() {
35
+ return d;
36
+ }
37
+ }), C(t, e);
38
+ },
39
+ $$slots: { default: !0 }
40
+ }), C(i, c), B({
41
+ get options() {
42
+ return a();
43
+ },
44
+ set options(t) {
45
+ a(t), A();
46
+ },
47
+ $set: O,
48
+ $on: (t, n) => q(r, t, n)
49
+ });
50
+ }
51
+ function P(i, r) {
52
+ if (new.target) return k({ component: P, ...i });
53
+ z(r, !1);
54
+ const [a, g] = j(), p = () => w(W, "$pageOptsStore", a), d = () => w(Z, "$configStore", a);
55
+ var m = this && this.__awaiter || function(t, n, e, o) {
56
+ function v(f) {
57
+ return f instanceof e ? f : new e(function(u) {
58
+ u(f);
59
+ });
60
+ }
61
+ return new (e || (e = Promise))(function(f, u) {
62
+ function H(s) {
63
+ try {
64
+ S(o.next(s));
65
+ } catch (h) {
66
+ u(h);
67
+ }
68
+ }
69
+ function M(s) {
70
+ try {
71
+ S(o.throw(s));
72
+ } catch (h) {
73
+ u(h);
74
+ }
75
+ }
76
+ function S(s) {
77
+ s.done ? f(s.value) : v(s.value).then(H, M);
78
+ }
79
+ S((o = o.apply(t, n || [])).next());
80
+ });
81
+ };
82
+ const { close: c } = x(F), l = () => m(void 0, void 0, void 0, function* () {
83
+ const t = x(Q);
84
+ if (!t) return;
85
+ const e = yield (yield t.getSigner()).signMessage(p().message);
86
+ U.signDataAndEmitEvent(d().credenza.generalWssUrl, e, p().socketEventDataHeaders), c();
87
+ });
88
+ T();
89
+ {
90
+ let t = N(() => ({
91
+ title: "Sign Transaction Request",
92
+ description: "Please sign the requested transaction.",
93
+ onCancel: c,
94
+ onConfirm: l
95
+ }));
96
+ D(i, {
97
+ get options() {
98
+ return J(t);
99
+ }
100
+ });
101
+ }
102
+ var _ = B({
103
+ $set: O,
104
+ $on: (t, n) => q(r, t, n)
105
+ });
106
+ return g(), _;
107
+ }
108
+ export {
109
+ P as default
110
+ };
111
+ //# sourceMappingURL=Sign-C3c9NI6m.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sign-C3c9NI6m.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 provider = get(providerStore)\n if(!provider) return\n const signer = await provider.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","handleSignTransaction","provider","get","providerStore","signature","$pageOptsStore","socketFn","$configStore","close"],"mappings":";;;;;;iBAAA;;;MAaQA,IAKLC,EAAAC,GAAA,WAAA,EAAA,GAED,EAAA,OAAAC,GAAS,aAAAC,GAAA,WAAAC,GAAA,UAAAC,EAAA,IAAAN,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCpBX;;;;AAAiB,MAAAO,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAERC,IAAY,MAAkBL,EAAA,QAAA,QAAA,QAAA,aAAA;UAC5BM,IAAYC,EAAAC,CAAc;SAC5BF,EAAE;AAEF,UAAAG,WADE,MAAeH,EAAA,UAAmB,GACrB,YAAmBI,EAAA,EAAA,OAAA;AAEzC,IAAAC,EAAa,qBAAYC,IAAA,SAAA,eAAAH,GAAAC,EAAA,EAAA,sBAAA,GAEzBG,EAAM;AAAA,EACJ,CAAA;;;;MAIA,OAAA;AAAA,MACA,aAAO;AAAA,MACR,UAAAA;AAAA,MACD,WAAMR;AAAA;;;;;;;;;;;;AANJ;"}
@@ -1,5 +1,5 @@
1
- import { N as s, R as m, M as l, bd as g, O as b, P as u, bM as _, b9 as f, a2 as k, bq as P } from "./index-Hk3dAOE1.js";
2
- import { g as O, r as w } from "./Payment-Db8rLNA_.js";
1
+ import { N as s, R as m, M as l, bd as g, O as b, P as u, bM as _, b9 as f, a2 as k, bq as P } from "./index-BA5V_Oz9.js";
2
+ import { g as O, r as w } from "./Payment-CusdVS_r.js";
3
3
  const I = async (r) => {
4
4
  const e = s(m), a = e.tokens?.map(
5
5
  ({
@@ -56,4 +56,4 @@ const I = async (r) => {
56
56
  export {
57
57
  A as processPayment
58
58
  };
59
- //# sourceMappingURL=Stripe.service-DDH-p8P7.js.map
59
+ //# sourceMappingURL=Stripe.service-DKMi4sIm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stripe.service-DDH-p8P7.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","contractAddress","tokenId","amount","membershipsPaymentData","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":";;AAWO,MAAMA,IAAc,OAAOC,MAA6C;AAC7E,QAAMC,IAAcC,EAAIC,CAAa,GAE/BC,IACJH,EAAY,QAAQ;AAAA,IAClB,CAAC;AAAA,MACC,iBAAAI;AAAA,MACA,SAAAC;AAAA,MACA,QAAAC;AAAA,IAAA,OAKK;AAAA,MACL,kBAAkBF;AAAA,MAClB,UAAU,CAACC;AAAA,MACX,QAAAC;AAAA,IAAA;AAAA,EACF,KACG,CAAA,GAEDC,IACJP,EAAY,aAAa,IAAI,CAAC,EAAE,iBAAAI,SAAoD;AAAA,IAClF,kBAAkBA;AAAA,EAAA,EAClB,KAAK,CAAA,GAEHI,IAAU;AAAA,IACd,GAAGT;AAAA,IACH,QAAQI;AAAA,IACR,aAAaI;AAAA,EAAA,GAITE,IAASR,EAAIS,CAAW,GACxBC,IAAM,MAAM,MAAMF,EAAO,SAAS,YAAY,yBAAyB;AAAA,IAC3E,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,eAAe,UAAUR,EAAIW,CAAgB,CAAC;AAAA,IAAA;AAAA,IAEhD,QAAQ;AAAA,IACR,MAAM,KAAK,UAAUJ,CAAO;AAAA,EAAA,CAC7B;AACD,MAAI,CAACG,EAAI,GAAI,OAAM,IAAI,MAAM,wBAAwB;AACrD,QAAM,EAAE,KAAAE,EAAA,IAAyB,MAAMF,EAAI,KAAA;AAE3C,SAAOE;AACT,GAEaC,IAAe,OAAOC,MAA6C;AAC9E,QAAMN,IAASR,EAAIS,CAAW,GACxBV,IAAcC,EAAIC,CAAa,GAE/Bc,IAAQ,MAAMC,EAA0BR,EAAO,SAAS,eAAeM,CAAO;AAEpF,SAAIC,EAAK,wBACP,MAAME,EAAe;AAAA,IACnB,gBAAgBF,EAAK;AAAA,IACrB,OAAOhB,EAAY;AAAA,IACnB,UAAUA,EAAY;AAAA,EAAA,CACvB,GACDmB,EAASC,EAAe,SAAS,EAAE,gBAAgBJ,EAAK,qBAAqB,IAG/E,MAAMK,EAAsBL,EAAK,KAAK,GAC/BA;AACT,GClEaM,IAAiB,OAAOC,MAA0B;AAC7D,QAAMd,IAASR,EAAIS,CAAW,GACxBV,IAAcC,EAAIC,CAAa,GAC/BsB,IAAOvB,EAAIwB,CAAS,GACpBC,IAAc,MAAMC,EAAA,GAEpBC,IAAQJ,GAAM,SAASA,GAAM,SAAS,OACtCK,IAAQL,GAAM,SAASA,GAAM,SAAS,OACtCM,IACJ,sBACI,KAAK,UAAU;AAAA,IACjB,GAAG9B,EAAY;AAAA,IACf,GAAGA,EAAY;AAAA,IACf,aAAA0B;AAAA,IACA,SAASjB,EAAO;AAAA,IAChB,OAAAmB;AAAA,IACA,OAAAC;AAAA,EAAA,CACD,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,EAAA,GAGNyB,IAAQ,MAAMpC,EAAYmC,CAAgB;AAChD,SAAO,MAAMnB,EAAaoB,CAAK;AACjC;"}
1
+ {"version":3,"file":"Stripe.service-DKMi4sIm.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","contractAddress","tokenId","amount","membershipsPaymentData","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":";;AAWO,MAAMA,IAAc,OAAOC,MAA6C;AAC7E,QAAMC,IAAcC,EAAIC,CAAa,GAE/BC,IACJH,EAAY,QAAQ;AAAA,IAClB,CAAC;AAAA,MACC,iBAAAI;AAAA,MACA,SAAAC;AAAA,MACA,QAAAC;AAAA,IAAA,OAKK;AAAA,MACL,kBAAkBF;AAAA,MAClB,UAAU,CAACC;AAAA,MACX,QAAAC;AAAA,IAAA;AAAA,EACF,KACG,CAAA,GAEDC,IACJP,EAAY,aAAa,IAAI,CAAC,EAAE,iBAAAI,SAAoD;AAAA,IAClF,kBAAkBA;AAAA,EAAA,EAClB,KAAK,CAAA,GAEHI,IAAU;AAAA,IACd,GAAGT;AAAA,IACH,QAAQI;AAAA,IACR,aAAaI;AAAA,EAAA,GAITE,IAASR,EAAIS,CAAW,GACxBC,IAAM,MAAM,MAAMF,EAAO,SAAS,YAAY,yBAAyB;AAAA,IAC3E,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,eAAe,UAAUR,EAAIW,CAAgB,CAAC;AAAA,IAAA;AAAA,IAEhD,QAAQ;AAAA,IACR,MAAM,KAAK,UAAUJ,CAAO;AAAA,EAAA,CAC7B;AACD,MAAI,CAACG,EAAI,GAAI,OAAM,IAAI,MAAM,wBAAwB;AACrD,QAAM,EAAE,KAAAE,EAAA,IAAyB,MAAMF,EAAI,KAAA;AAE3C,SAAOE;AACT,GAEaC,IAAe,OAAOC,MAA6C;AAC9E,QAAMN,IAASR,EAAIS,CAAW,GACxBV,IAAcC,EAAIC,CAAa,GAE/Bc,IAAQ,MAAMC,EAA0BR,EAAO,SAAS,eAAeM,CAAO;AAEpF,SAAIC,EAAK,wBACP,MAAME,EAAe;AAAA,IACnB,gBAAgBF,EAAK;AAAA,IACrB,OAAOhB,EAAY;AAAA,IACnB,UAAUA,EAAY;AAAA,EAAA,CACvB,GACDmB,EAASC,EAAe,SAAS,EAAE,gBAAgBJ,EAAK,qBAAqB,IAG/E,MAAMK,EAAsBL,EAAK,KAAK,GAC/BA;AACT,GClEaM,IAAiB,OAAOC,MAA0B;AAC7D,QAAMd,IAASR,EAAIS,CAAW,GACxBV,IAAcC,EAAIC,CAAa,GAC/BsB,IAAOvB,EAAIwB,CAAS,GACpBC,IAAc,MAAMC,EAAA,GAEpBC,IAAQJ,GAAM,SAASA,GAAM,SAAS,OACtCK,IAAQL,GAAM,SAASA,GAAM,SAAS,OACtCM,IACJ,sBACI,KAAK,UAAU;AAAA,IACjB,GAAG9B,EAAY;AAAA,IACf,GAAGA,EAAY;AAAA,IACf,aAAA0B;AAAA,IACA,SAASjB,EAAO;AAAA,IAChB,OAAAmB;AAAA,IACA,OAAAC;AAAA,EAAA,CACD,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,EAAA,GAGNyB,IAAQ,MAAMpC,EAAYmC,CAAgB;AAChD,SAAO,MAAMnB,EAAaoB,CAAK;AACjC;"}
@@ -1,13 +1,13 @@
1
- import { c as ee, m as Ee, p as h, h as fe, f as A, i as J, w as me, r as X, b as D, k as Pe, e as Se, d as te, u as ae, t as Ce, o as ge, n as De } from "./legacy-B8k6qOOM.js";
2
- import { o as Ie } from "./index-client-DFIkfIrM.js";
3
- import { z as re, B as U, E as C, C as B, D as Q, G as Z, A as Y, J as e, y as ne, u as w, I as s, m as x, v as _e, w as be, x as ie, F as se, N as pe, Q as Ve, b9 as ke, b8 as M, ba as oe, Z as Ue, M as Be, V as de, T as Ae } from "./index-Hk3dAOE1.js";
1
+ import { c as ee, m as Ee, p as h, h as fe, f as A, i as J, w as me, r as X, b as D, k as Pe, e as Se, d as te, u as ae, t as Ce, o as ge, n as De } from "./legacy-Ba02xnfv.js";
2
+ import { o as Ie } from "./index-client-CLutM9Bq.js";
3
+ import { z as re, B as U, E as C, C as B, D as Q, G as Z, A as Y, J as e, y as ne, u as w, I as s, m as x, v as _e, w as be, x as ie, F as se, N as pe, Q as Ve, b9 as ke, b8 as M, ba as oe, Z as Ue, M as Be, V as de, T as Ae } from "./index-BA5V_Oz9.js";
4
4
  import { v as he, P as Re } from "./validation-DaZvZUPL.js";
5
- import { C as ze } from "./App-DAD-3pkW.js";
6
- import { L as ue } from "./Label-BlLe_IwW.js";
7
- import { I as ve } from "./Input-CzIs2ykF.js";
8
- import { B as Le } from "./ButtonBack-BDP-q5pl.js";
9
- import { B as Ne } from "./Button-BLBDGKgo.js";
10
- import { e as Oe, i as Te } from "./each-B6umsb9f.js";
5
+ import { C as ze } from "./App-BQcgQDOn.js";
6
+ import { L as ue } from "./Label-B0znbjiv.js";
7
+ import { I as ve } from "./Input-CVqxfhUK.js";
8
+ import { B as Le } from "./ButtonBack-PBOoIiLP.js";
9
+ import { B as Ne } from "./Button-DJ25fZA4.js";
10
+ import { e as Oe, i as Te } from "./each-Bx-HYH8A.js";
11
11
  var Fe = A('<label class="crtw-font-medium" for="credenzaSelect"> </label>'), je = A("<option> </option>"), $e = A("<option> </option>"), qe = A('<div><!> <select name="credenzaSelect"><!><!></select></div>');
12
12
  const Ge = {
13
13
  hash: "svelte-1dzo0ix",
@@ -522,4 +522,4 @@ function Ye(I, n) {
522
522
  export {
523
523
  Ye as default
524
524
  };
525
- //# sourceMappingURL=UpdateProfile-CEWBQF6V.js.map
525
+ //# sourceMappingURL=UpdateProfile-9_gY1I65.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateProfile-CEWBQF6V.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","$.get","$.untrack","countryCodes","phone","selectedCountryCode","$.mutable_source","countryCode","number","isValid","validate","PHONE_PATTERN","$$value","name","email","isSubmitDisabled","error","isEmailInputValid","isExtendedRegistration","onProfileUpdate","onBackClick","shouldShowBackButton","isEmailChangeDisabled","isPhoneChangeDisabled","__awaiter","thisArg","_arguments","P","generator","updateProfile","close","toastAlert","get","fn","currentUser","unsubscribeUserStore","userStore","user","forcedPageStore","$.set","isSocialLoginType","_a","_b","isLoading","isEmailValid","isNameValid","newData","updatedUser","page","pageStore","Pages","err","errorText","onDestroy","$.safe_get"],"mappings":"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"}
1
+ {"version":3,"file":"UpdateProfile-9_gY1I65.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","$.get","$.untrack","countryCodes","phone","selectedCountryCode","$.mutable_source","countryCode","number","isValid","validate","PHONE_PATTERN","$$value","name","email","isSubmitDisabled","error","isEmailInputValid","isExtendedRegistration","onProfileUpdate","onBackClick","shouldShowBackButton","isEmailChangeDisabled","isPhoneChangeDisabled","__awaiter","thisArg","_arguments","P","generator","updateProfile","close","toastAlert","get","fn","currentUser","unsubscribeUserStore","userStore","user","forcedPageStore","$.set","isSocialLoginType","_a","_b","isLoading","isEmailValid","isNameValid","newData","updatedUser","page","pageStore","Pages","err","errorText","onDestroy","$.safe_get"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { c as Q, p as R, h as T, f as g, i as f, r as m, b as i, d as W, u as X, t as k, a as G } from "./legacy-B8k6qOOM.js";
2
- import { z as Y, v as J, I as L, m as P, A as S, w as Z, B as n, J as a, G as c, E as d, C as v, D as x, y as $, u as aa, x as V } from "./index-Hk3dAOE1.js";
3
- import { a as ea } from "./App-DAD-3pkW.js";
1
+ import { c as Q, p as R, h as T, f as g, i as f, r as m, b as i, d as W, u as X, t as k, a as G } from "./legacy-Ba02xnfv.js";
2
+ import { z as Y, v as J, I as L, m as P, A as S, w as Z, B as n, J as a, G as c, E as d, C as v, D as x, y as $, u as aa, x as V } from "./index-BA5V_Oz9.js";
3
+ import { a as ea } from "./App-BQcgQDOn.js";
4
4
  var ta = g('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">User name:</p> <p class="crtw-text-sm"> </p></div>'), ra = g('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">Email address:</p> <p class="crtw-text-sm"><!></p></div>'), sa = g('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">Phone number:</p> <p class="crtw-text-sm"><!></p></div>'), la = g('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">Logged in address:</p> <p class="crtw-text-sm"> </p></div>'), ia = g('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium"> </p> <p class="crtw-text-sm"> </p></div>'), na = g('<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 ca(E, y) {
6
6
  if (new.target) return Q({ component: ca, ...E });
@@ -125,4 +125,4 @@ function ca(E, y) {
125
125
  export {
126
126
  ca as U
127
127
  };
128
- //# sourceMappingURL=UserInfo-Cbn62Xtz.js.map
128
+ //# sourceMappingURL=UserInfo-DeanoQH4.js.map