@yourgoods/ui-smart 0.33.0 → 0.35.0

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.
@@ -1,814 +0,0 @@
1
- import { createElementBlock as T, openBlock as h, createElementVNode as F, defineComponent as re, reactive as ue, watch as X, ref as O, toRefs as me, computed as B, createCommentVNode as k, createVNode as S, toDisplayString as W, createBlock as H, createTextVNode as Q, unref as u, isRef as _, withCtx as K, onMounted as Ue, Fragment as qe } from "vue";
2
- import { T as fe, c as Oe, a as We, u as je, P as Be, b as He } from "./useRateLimitToast-DrsfGcKN.js";
3
- import { IconTelegramSm as ge, PInput as ee, IconPhoneMd as Ge, IconMailMd as Le, PButton as De, PDialog as Je, PTopBar as Ke, IconCrossMd as Qe, PTeleportContainer as Xe } from "@profeat/ui-kit";
4
- import { C as q, t as Ee, p as Z, g as Ie } from "./index-1pX0MPM8.js";
5
- const Ye = {
6
- xmlns: "http://www.w3.org/2000/svg",
7
- width: "12",
8
- height: "16",
9
- fill: "none"
10
- };
11
- function Ze(N, x) {
12
- return h(), T("svg", Ye, x[0] || (x[0] = [
13
- F("path", {
14
- fill: "#1C7EF1",
15
- "fill-rule": "evenodd",
16
- d: "M1 0a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1zm1.5 2a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5zM6 13a1 1 0 1 0 0 2 1 1 0 0 0 0-2",
17
- "clip-rule": "evenodd"
18
- }, null, -1)
19
- ]));
20
- }
21
- const te = { render: Ze }, _e = { class: "dialogDefaultContainerInsideContent" }, et = { style: { display: "flex", width: "100%", gap: "4px", "align-items": "center", "justify-content": "center", "text-align": "center" } }, tt = { class: "dialogDefaultContainerTextHint" }, ot = { class: "chip" }, nt = {
22
- key: 0,
23
- class: "input-wrapper"
24
- }, at = {
25
- key: 1,
26
- class: "input-wrapper"
27
- }, lt = /* @__PURE__ */ re({
28
- __name: "OldPhoneContent",
29
- props: {
30
- phone: {},
31
- code: {},
32
- hintText: { default: "Чтобы продолжить, введите код подтверждения из" },
33
- phoneError: { default: "" },
34
- codeError: { default: "" },
35
- rateLimitText: { default: "" },
36
- showPhone: { type: Boolean, default: !0 },
37
- showCode: { type: Boolean, default: !0 },
38
- sendCodeBySmsText: { default: "Получить код из СМС" },
39
- isFinalLimit: { type: Boolean },
40
- isNotMatchCode: { type: Boolean },
41
- loading: { type: Boolean },
42
- isTg: { type: Boolean }
43
- },
44
- emits: ["update:phone", "update:code", "edit", "on-match-code", "on-match-code-error", "on-send-code-again", "on-send-only-sms", "on-clear-code-error"],
45
- setup(N, { emit: x }) {
46
- const V = N, c = x, p = ue({
47
- touched: { phone: !1, code: !1 },
48
- phoneModel: V.phone,
49
- codeModel: V.code
50
- });
51
- X(
52
- () => p.phoneModel,
53
- (i) => c("update:phone", i)
54
- ), X(
55
- () => p.codeModel,
56
- (i) => c("update:code", i)
57
- );
58
- const f = (i) => {
59
- p.touched[i] = !0;
60
- };
61
- let g = O("");
62
- const E = (i) => {
63
- c("on-clear-code-error");
64
- const d = i.target;
65
- let v = ((d == null ? void 0 : d.value) ?? "").replace(/\D/g, "");
66
- v.length > 4 && (v = v.slice(0, 4)), M.value = v, d && d.value !== v && (d.value = v), v.length === 4 && v !== g.value && (g.value = v, c("on-match-code", { phone: e.value, code: v }));
67
- }, j = () => c("on-send-code-again", { phone: p.phoneModel }), G = () => {
68
- console.debug("onSendCodeViaSms"), c("on-send-only-sms", { phone: p.phoneModel });
69
- }, { phoneModel: e, codeModel: M, touched: C } = me(p), y = B(() => C.value.phone && !e.value.trim() ? "Введите телефон" : V.phoneError), z = B(() => V.isNotMatchCode ? "Неверный код" : C.value.code ? M.value.trim() ? V.codeError ?? null : "Введите код" : "");
70
- return (i, d) => (h(), T("div", _e, [
71
- F("div", et, [
72
- F("div", tt, W(i.hintText), 1),
73
- F("div", ot, [
74
- i.isTg ? (h(), H(u(ge), { key: 0 })) : (h(), H(u(te), {
75
- key: 1,
76
- style: { "margin-left": "5px" }
77
- })),
78
- Q(" " + W(i.isTg ? "Telegram" : "СМС"), 1)
79
- ])
80
- ]),
81
- i.showPhone ? (h(), T("div", nt, [
82
- S(u(ee), {
83
- modelValue: u(e),
84
- "onUpdate:modelValue": d[0] || (d[0] = (v) => _(e) ? e.value = v : null),
85
- size: "large",
86
- "text-size": "medium",
87
- label: "Телефон",
88
- type: "tel",
89
- error: y.value,
90
- disabled: !0,
91
- onBlur: d[1] || (d[1] = (v) => f("phone")),
92
- onInput: d[2] || (d[2] = (v) => f("phone"))
93
- }, null, 8, ["modelValue", "error"]),
94
- S(u(Ge), {
95
- class: "icon-locked",
96
- onClick: d[3] || (d[3] = (v) => i.$emit("edit", "phone"))
97
- })
98
- ])) : k("", !0),
99
- i.showCode ? (h(), T("div", at, [
100
- S(u(ee), {
101
- modelValue: u(M),
102
- "onUpdate:modelValue": d[4] || (d[4] = (v) => _(M) ? M.value = v : null),
103
- size: "large",
104
- "text-size": "medium",
105
- label: "Код",
106
- type: "text",
107
- error: z.value,
108
- onInput: E,
109
- onBlur: d[5] || (d[5] = (v) => f("code"))
110
- }, null, 8, ["modelValue", "error"])
111
- ])) : k("", !0),
112
- S(fe, {
113
- loading: i.loading,
114
- "rate-limit-text": i.rateLimitText,
115
- "is-final-limit": i.isFinalLimit,
116
- "on-send-again": j
117
- }, {
118
- extra: K(() => [
119
- i.isTg ? (h(), T("span", {
120
- key: 0,
121
- class: "dialogDefaultContainerSendCodeBySmsText",
122
- onClick: G
123
- }, [
124
- Q(W(i.sendCodeBySmsText) + " ", 1),
125
- S(u(te), { style: { "margin-left": "5px" } })
126
- ])) : k("", !0)
127
- ]),
128
- _: 1
129
- }, 8, ["loading", "rate-limit-text", "is-final-limit"])
130
- ]));
131
- }
132
- }), A = (N) => {
133
- const x = N.replace(/\D/g, "");
134
- if (x.length >= 10 && x.length <= 15) {
135
- if (x.startsWith("8"))
136
- return `+7${x.slice(1)}`;
137
- if (x.startsWith("7"))
138
- return `+${x}`;
139
- }
140
- return N.trim().startsWith("+") ? N.trim() : `+${x}`;
141
- }, st = { class: "dialogDefaultContainerInsideContent" }, it = { style: { display: "flex", width: "100%", gap: "4px", "align-items": "center", "justify-content": "center", "text-align": "center" } }, dt = { class: "dialogDefaultContainerTextHint" }, rt = {
142
- key: 0,
143
- class: "chip"
144
- }, ut = {
145
- key: 0,
146
- class: "input-wrapper"
147
- }, ct = {
148
- key: 1,
149
- class: "input-wrapper"
150
- }, pt = {
151
- key: 2,
152
- class: "input-wrapper"
153
- }, ht = { key: 3 }, vt = /* @__PURE__ */ re({
154
- __name: "NewPhoneContent",
155
- props: {
156
- phone: {},
157
- oldPhone: {},
158
- hintText: { default: "" },
159
- phoneError: { default: "" },
160
- codeError: { default: "" },
161
- rateLimitText: { default: "" },
162
- sendCodeBySmsText: { default: "Получить код из СМС" },
163
- showPhone: { type: Boolean, default: !0 },
164
- isFinalLimit: { type: Boolean },
165
- isNotMatchCode: { type: Boolean, default: !1 },
166
- loading: { type: Boolean },
167
- isTg: { type: Boolean }
168
- },
169
- emits: ["update:phone", "update:code", "edit", "on-match-code", "on-match-code-error", "on-send-code", "on-send-code-again", "on-send-only-sms", "on-clear-code-error"],
170
- setup(N, { emit: x }) {
171
- const V = N, c = x, p = O(!1), f = O(""), g = ue({
172
- touched: { phone: !1, code: !1 },
173
- phoneModel: "",
174
- codeModel: ""
175
- });
176
- X(
177
- () => g.phoneModel,
178
- (o) => {
179
- c("update:phone", o), f.value = "";
180
- }
181
- ), X(
182
- () => g.codeModel,
183
- (o) => c("update:code", o)
184
- );
185
- const E = (o) => g.touched[o] = !0, j = B(() => {
186
- const n = g.phoneModel.trim().replace(/[()\-\s]/g, "");
187
- return /^\+?\d{10,15}$/.test(n);
188
- }), G = B(() => !j.value || !!f.value), e = async () => {
189
- var o;
190
- try {
191
- if (E("phone"), !j.value) {
192
- f.value = "Это не похоже на номер телефона";
193
- return;
194
- }
195
- const n = await Oe(void 0, A(g.phoneModel)), { data: s } = n.data;
196
- if (console.debug("result for checkAvailability: ", {
197
- res: n,
198
- data: s
199
- }), !(((o = s.data[0]) == null ? void 0 : o.available) ?? !1)) {
200
- f.value = "Такой номер уже используется";
201
- return;
202
- }
203
- f.value = "", c("on-send-code", { phone: g.phoneModel, prevPhone: V.oldPhone, offLoading: !0 }), p.value = !0;
204
- } catch (n) {
205
- console.error("Неизвестная ошибка при проверке доступности телефона:", n), f.value = "Это не похоже на номер телефона";
206
- }
207
- };
208
- let M = O("");
209
- const C = (o) => {
210
- c("on-clear-code-error");
211
- const n = o.target;
212
- let s = ((n == null ? void 0 : n.value) ?? "").replace(/\D/g, "");
213
- s.length > 4 && (s = s.slice(0, 4)), d.value = s, n && n.value !== s && (n.value = s), s.length === 4 && s !== M.value && (M.value = s, c("on-match-code", { phone: i.value, code: s }));
214
- }, y = () => {
215
- c("on-send-code-again", { phone: g.phoneModel });
216
- }, z = () => {
217
- console.debug("onSendCodeViaSms"), c("on-send-only-sms", { phone: g.phoneModel });
218
- }, { phoneModel: i, codeModel: d, touched: v } = me(g), J = B(() => f.value ? f.value : v.value.phone && !i.value.trim() ? "Это не похоже на номер телефона" : V.phoneError || ""), oe = B(() => V.isNotMatchCode ? "Неверный код" : v.value.code ? d.value.trim() ? V.codeError ?? null : "Введите код" : "");
219
- return (o, n) => (h(), T("div", st, [
220
- F("div", it, [
221
- F("div", dt, W(p.value ? "Чтобы продолжить, введите код подтверждения из" : o.hintText), 1),
222
- p.value ? (h(), T("div", rt, [
223
- o.isTg ? (h(), H(u(ge), { key: 0 })) : (h(), H(u(te), {
224
- key: 1,
225
- style: { "margin-left": "5px" }
226
- })),
227
- Q(" " + W(o.isTg ? "Telegram" : "СМС"), 1)
228
- ])) : k("", !0)
229
- ]),
230
- o.showPhone ? (h(), T("div", ut, [
231
- S(u(ee), {
232
- modelValue: u(i),
233
- "onUpdate:modelValue": n[0] || (n[0] = (s) => _(i) ? i.value = s : null),
234
- size: "large",
235
- "text-size": "medium",
236
- label: "Телефон",
237
- type: "tel",
238
- error: J.value,
239
- onBlur: n[1] || (n[1] = (s) => E("phone")),
240
- onInput: n[2] || (n[2] = (s) => E("phone"))
241
- }, null, 8, ["modelValue", "error"]),
242
- S(u(Le), {
243
- class: "icon-locked",
244
- onClick: n[3] || (n[3] = (s) => o.$emit("edit", "phone"))
245
- })
246
- ])) : k("", !0),
247
- p.value ? k("", !0) : (h(), T("div", ct, [
248
- S(u(De), {
249
- style: { width: "100%" },
250
- disabled: G.value,
251
- onClick: e
252
- }, {
253
- default: K(() => n[6] || (n[6] = [
254
- Q(" Отправить код ")
255
- ])),
256
- _: 1,
257
- __: [6]
258
- }, 8, ["disabled"])
259
- ])),
260
- p.value ? (h(), T("div", pt, [
261
- S(u(ee), {
262
- modelValue: u(d),
263
- "onUpdate:modelValue": n[4] || (n[4] = (s) => _(d) ? d.value = s : null),
264
- size: "large",
265
- "text-size": "medium",
266
- label: "Код",
267
- type: "text",
268
- error: oe.value,
269
- onInput: C,
270
- onBlur: n[5] || (n[5] = (s) => E("code"))
271
- }, null, 8, ["modelValue", "error"])
272
- ])) : k("", !0),
273
- !o.loading && p.value ? (h(), T("div", ht, [
274
- S(fe, {
275
- loading: o.loading,
276
- "rate-limit-text": o.rateLimitText,
277
- "is-final-limit": o.isFinalLimit,
278
- "on-send-again": y
279
- }, {
280
- extra: K(() => [
281
- o.isTg ? (h(), T("span", {
282
- key: 0,
283
- class: "dialogDefaultContainerSendCodeBySmsText",
284
- onClick: z
285
- }, [
286
- Q(W(o.sendCodeBySmsText) + " ", 1),
287
- S(u(te), { style: { "margin-left": "5px" } })
288
- ])) : k("", !0)
289
- ]),
290
- _: 1
291
- }, 8, ["loading", "rate-limit-text", "is-final-limit"])
292
- ])) : k("", !0)
293
- ]));
294
- }
295
- }), mt = { class: "dialogDefaultContainerInsideContent" }, ft = { style: { display: "flex", width: "100%", gap: "4px", "align-items": "center", "justify-content": "center", "text-align": "center" } }, gt = { class: "dialogDefaultContainerTextHint" }, yt = { class: "chip" }, Ct = {
296
- key: 0,
297
- class: "input-wrapper"
298
- }, wt = {
299
- key: 1,
300
- class: "input-wrapper"
301
- }, Pt = {
302
- key: 2,
303
- class: "input-wrapper"
304
- }, Tt = { key: 3 }, St = /* @__PURE__ */ re({
305
- __name: "AddNewPhoneContent",
306
- props: {
307
- phone: {},
308
- oldPhone: {},
309
- hintText: { default: "" },
310
- phoneError: { default: "" },
311
- codeError: { default: "" },
312
- rateLimitText: { default: "" },
313
- sendCodeBySmsText: { default: "Получить код из СМС" },
314
- showPhone: { type: Boolean, default: !0 },
315
- isFinalLimit: { type: Boolean },
316
- isNotMatchCode: { type: Boolean },
317
- loading: { type: Boolean },
318
- isTg: { type: Boolean }
319
- },
320
- emits: ["update:phone", "update:code", "edit", "on-match-code", "on-match-code-error", "on-send-code", "on-send-code-again", "on-send-only-sms", "on-clear-code-error"],
321
- setup(N, { emit: x }) {
322
- const V = N, c = x, p = O(!1), f = O(""), g = ue({
323
- touched: { phone: !1, code: !1 },
324
- phoneModel: "",
325
- codeModel: ""
326
- });
327
- X(
328
- () => g.phoneModel,
329
- (o) => {
330
- c("update:phone", o), f.value = "";
331
- }
332
- ), X(
333
- () => g.codeModel,
334
- (o) => c("update:code", o)
335
- );
336
- const E = (o) => g.touched[o] = !0, j = B(() => {
337
- const n = g.phoneModel.trim().replace(/[()\-\s]/g, "");
338
- return /^\+?\d{10,15}$/.test(n);
339
- }), G = B(() => !j.value || !!f.value), e = async () => {
340
- var o;
341
- try {
342
- if (E("phone"), !j.value) {
343
- f.value = "Это не похоже на номер телефона";
344
- return;
345
- }
346
- const n = await Oe(void 0, A(g.phoneModel)), { data: s } = n.data;
347
- if (!(((o = s.data[0]) == null ? void 0 : o.available) ?? !1)) {
348
- f.value = "Такой номер уже используется";
349
- return;
350
- }
351
- f.value = "", c("on-send-code", { phone: g.phoneModel, prevPhone: V.oldPhone, offLoading: !0 }), p.value = !0;
352
- } catch (n) {
353
- console.error("Неизвестная ошибка при проверке доступности телефона:", n), f.value = "Это не похоже на номер телефона";
354
- }
355
- };
356
- let M = "";
357
- const C = (o) => {
358
- c("on-clear-code-error");
359
- const n = o.target;
360
- let s = n.value.replace(/\D/g, "");
361
- s.length > 4 && (s = s.slice(0, 4), n.value = s), g.codeModel = s, s.length === 4 && s !== M && (M = s, c("on-match-code", { phone: g.phoneModel, code: s }));
362
- }, y = () => {
363
- c("on-send-code-again", { phone: g.phoneModel });
364
- }, z = () => {
365
- console.debug("onSendCodeViaSms"), c("on-send-only-sms", { phone: g.phoneModel });
366
- }, { phoneModel: i, codeModel: d, touched: v } = me(g), J = B(() => f.value ? f.value : v.value.phone && !i.value.trim() ? "Это не похоже на номер телефона" : V.phoneError || ""), oe = B(() => V.isNotMatchCode ? "Неверный код" : g.touched.code ? d.value.trim() ? V.codeError ?? null : "Введите код" : "");
367
- return (o, n) => (h(), T("div", mt, [
368
- F("div", ft, [
369
- F("div", gt, W(p.value ? "Чтобы продолжить, введите код подтверждения из" : o.hintText), 1),
370
- F("div", yt, [
371
- o.isTg ? (h(), H(u(ge), { key: 0 })) : (h(), H(u(te), {
372
- key: 1,
373
- style: { "margin-left": "5px" }
374
- })),
375
- Q(" " + W(o.isTg ? "Telegram" : "СМС"), 1)
376
- ])
377
- ]),
378
- o.showPhone ? (h(), T("div", Ct, [
379
- S(u(ee), {
380
- modelValue: u(i),
381
- "onUpdate:modelValue": n[0] || (n[0] = (s) => _(i) ? i.value = s : null),
382
- size: "large",
383
- "text-size": "medium",
384
- label: "Телефон",
385
- type: "tel",
386
- error: J.value,
387
- onBlur: n[1] || (n[1] = (s) => E("phone")),
388
- onInput: n[2] || (n[2] = (s) => E("phone"))
389
- }, null, 8, ["modelValue", "error"]),
390
- S(u(Le), {
391
- class: "icon-locked",
392
- onClick: n[3] || (n[3] = (s) => o.$emit("edit", "phone"))
393
- })
394
- ])) : k("", !0),
395
- p.value ? k("", !0) : (h(), T("div", wt, [
396
- S(u(De), {
397
- style: { width: "100%" },
398
- disabled: G.value,
399
- onClick: e
400
- }, {
401
- default: K(() => n[6] || (n[6] = [
402
- Q(" Отправить код ")
403
- ])),
404
- _: 1,
405
- __: [6]
406
- }, 8, ["disabled"])
407
- ])),
408
- p.value ? (h(), T("div", Pt, [
409
- S(u(ee), {
410
- modelValue: u(d),
411
- "onUpdate:modelValue": n[4] || (n[4] = (s) => _(d) ? d.value = s : null),
412
- size: "large",
413
- "text-size": "medium",
414
- label: "Код",
415
- type: "text",
416
- error: oe.value,
417
- onInput: C,
418
- onBlur: n[5] || (n[5] = (s) => E("code"))
419
- }, null, 8, ["modelValue", "error"])
420
- ])) : k("", !0),
421
- p.value ? (h(), T("div", Tt, [
422
- S(fe, {
423
- loading: o.loading,
424
- "rate-limit-text": o.rateLimitText,
425
- "is-final-limit": o.isFinalLimit,
426
- "on-send-again": y
427
- }, {
428
- extra: K(() => [
429
- o.isTg ? (h(), T("span", {
430
- key: 0,
431
- class: "dialogDefaultContainerSendCodeBySmsText",
432
- onClick: z
433
- }, [
434
- Q(W(o.sendCodeBySmsText) + " ", 1),
435
- S(u(te), { style: { "margin-left": "5px" } })
436
- ])) : k("", !0)
437
- ]),
438
- _: 1
439
- }, 8, ["loading", "rate-limit-text", "is-final-limit"])
440
- ])) : k("", !0)
441
- ]));
442
- }
443
- }), Mt = { class: "text-center w-full" }, xt = { class: "dialogTitle" }, bt = {
444
- key: 0,
445
- class: "dialogDefaultContainer"
446
- }, Vt = { key: 3 }, kt = {
447
- key: 1,
448
- class: "dialogDefaultContainer"
449
- }, ae = 3, Ot = /* @__PURE__ */ re({
450
- __name: "ProfilePhoneDialog",
451
- props: {
452
- modelValue: { type: Boolean },
453
- title: { default: void 0 },
454
- hintText: { default: void 0 },
455
- initialPhone: { default: "" },
456
- language: {},
457
- provider: {},
458
- mode: { default: void 0 }
459
- },
460
- emits: ["update:modelValue", "submit-phone", "edit", "close", "clean-input-errors", "on-update-jwt", "update-phone-field", "on-toast"],
461
- setup(N, { expose: x, emit: V }) {
462
- const c = N, p = V, f = O(c.modelValue);
463
- X(
464
- () => c.modelValue,
465
- (l) => f.value = l
466
- ), X(f, (l) => p("update:modelValue", l));
467
- const g = B(() => c.language ?? "ru"), E = (l) => Ee[g.value] && Ee[g.value][l] || (c.title ?? l), j = B(() => c.title ?? E("Смена номера телефона")), G = B(() => c.hintText ?? E("Чтобы продолжить, введите новый номер")), e = ue({
468
- oldPhone: c.initialPhone ?? "",
469
- newPhone: "",
470
- code: "",
471
- addPhone: "",
472
- addCode: ""
473
- }), M = O(q.OLD), C = O(null), y = O(!1), z = O(!1), i = O("tg"), d = B(() => i.value === "tg"), v = O(!1), { startTimer: J, remainingSeconds: oe, isAvailableForSendAgain: o, totalRateAttempts: n, currentRateAttempt: s } = We(), { showRateLimitToast: le } = He(p), { isEditFlow: ce, getFlow: Ae } = je(O(c.mode)), se = B(() => o.value ? "Повторить" : `${oe.value}`), ne = O(ae), ie = B(() => ne.value === 0), Ne = (l) => new Promise((a) => setTimeout(a, l));
474
- async function pe(l = "email") {
475
- var t;
476
- return (t = (await Ie("/users/profile/session/get-edit-session", { params: { field: l } })).data) == null ? void 0 : t.data;
477
- }
478
- async function ye(l = "phone") {
479
- var b;
480
- const t = (b = (await Z("/users/profile/session/create-if-not-exists", {
481
- field: l,
482
- oldValue: A(c.initialPhone)
483
- })).data) == null ? void 0 : b.data;
484
- C.value = (t == null ? void 0 : t.sessionId) ?? null, M.value = (t == null ? void 0 : t.step) ?? q.OLD, e.oldPhone = (t == null ? void 0 : t.oldValue) ?? "", e.newPhone = (t == null ? void 0 : t.newValue) ?? "";
485
- }
486
- async function ze() {
487
- try {
488
- const l = await pe("phone");
489
- C.value = l.sessionId, M.value = l.step, e.oldPhone = l.oldValue ?? "", l.sessionId || await ye("phone");
490
- } catch {
491
- await ye("phone");
492
- }
493
- }
494
- async function Ce(l, a = !1) {
495
- var t;
496
- try {
497
- const b = await Z(
498
- "/users/profile/check-throttler",
499
- {
500
- method: "sms",
501
- phone: A(l),
502
- isInvite: a
503
- },
504
- {
505
- headers: {
506
- "x-only-sms": v.value ?? !1
507
- }
508
- }
509
- );
510
- await Ne(1e3);
511
- const w = (t = b.data) == null ? void 0 : t.data;
512
- return w ? (w.restTimeSec > 0 ? (J(w.restTimeSec), o.value = !1, n.value = w.attempts.total, s.value = w.attempts.total - w.attempts.available, ne.value = w.attempts.available ?? ae) : o.value = !0, w) : null;
513
- } catch {
514
- return null;
515
- }
516
- }
517
- const he = async ({ phone: l }) => (v.value = !0, await Y({ value: l, isOnlySms: !0 })), Y = async ({ value: l, isOnlySms: a, offLoading: t } = {}) => {
518
- var b, w, L, D, R, $;
519
- y.value = !0;
520
- try {
521
- const m = l ?? e.oldPhone, r = await Z(
522
- "/users/profile/phone/contact/send-code",
523
- {
524
- sessionId: C.value,
525
- phone: A(m),
526
- value: A(m),
527
- oldValue: A(e.oldPhone),
528
- provider: c.provider,
529
- isOnlySms: a ?? !1
530
- },
531
- {
532
- headers: {
533
- "x-only-sms": a ?? !1
534
- }
535
- }
536
- );
537
- console.debug("response sendContactCode: ", r);
538
- const P = (w = (b = r == null ? void 0 : r.data) == null ? void 0 : b.data) == null ? void 0 : w.deliveryType;
539
- if ((P === "tg" || P === "sms") && (i.value = P, P === "tg" && (v.value = !1)), console.debug("sendContactCode before обработка 403 tooManyRequests", r), (r == null ? void 0 : r.status) === 403 && ((L = r.data) != null && L.tooManyRequests)) {
540
- console.debug("sendContactCode IN обработка 403 tooManyRequests", r);
541
- const I = (R = (D = r.data) == null ? void 0 : D.tooManyRequests) == null ? void 0 : R.type;
542
- i.value = I;
543
- const U = r.data.tooManyRequests;
544
- return U.restTimeSec > 0 ? (J(U.restTimeSec), n.value = U.attempts.total, s.value = U.attempts.total - U.attempts.available, ne.value = U.attempts.available ?? ae) : o.value = !0, r;
545
- }
546
- return console.debug("sendContactCode after обработка 403 tooManyRequests", r), await Ce(m), r;
547
- } catch (m) {
548
- const r = ($ = m == null ? void 0 : m.data) == null ? void 0 : $.tooManyRequests;
549
- if ((m == null ? void 0 : m.status) === 403 && r) {
550
- const { restTimeSec: P, attempts: I } = r;
551
- return P > 0 ? (J(P), n.value = I.total, s.value = I.total - I.available, ne.value = I.available ?? ae) : o.value = !0, m;
552
- }
553
- throw m;
554
- } finally {
555
- y.value = !1, t && (y.value = !1);
556
- }
557
- }, we = async (l, a) => {
558
- var t, b, w, L, D, R, $, m;
559
- y.value = !0;
560
- try {
561
- const r = await pe("phone");
562
- C.value = r.sessionId, M.value = r.step, e.oldPhone = r.oldValue ?? e.oldPhone, e.newPhone = r.newValue ?? e.newPhone;
563
- const P = await Z("/users/profile/change/phone/match-code", {
564
- phone: a === q.NEW ? A(e.newPhone) : A(e.oldPhone),
565
- sessionId: C.value,
566
- code: l,
567
- step: a
568
- }), I = ((t = P.data) == null ? void 0 : t.nextStep) ?? ((w = (b = P.data) == null ? void 0 : b.data) == null ? void 0 : w.nextStep), U = ((D = (L = P.data) == null ? void 0 : L.data) == null ? void 0 : D.rateLimit) ?? ((R = P.data) == null ? void 0 : R.rateLimit) ?? null, Re = (($ = P.data) == null ? void 0 : $.data.success) ?? ((m = P.data) == null ? void 0 : m.success);
569
- if (le(U), !Re) {
570
- z.value = !0;
571
- return;
572
- }
573
- if (!I) return P;
574
- if (M.value = I, I === q.NEW) {
575
- const $e = await pe("phone");
576
- e.oldPhone = $e.oldValue ?? e.oldPhone, e.newPhone = $e.newValue ?? e.newPhone, e.code = "";
577
- }
578
- return I === q.COMPLETED && (e.code = "", p("update-phone-field", e.addPhone), p("submit-phone", { phone: e.oldPhone, code: l }), p("on-toast", { color: "success", text: "Номер телефона изменён" }), p("on-update-jwt", "phone", "edit", e.newPhone), C.value = null, p("close")), P;
579
- } finally {
580
- y.value = !1;
581
- }
582
- }, Pe = ({ code: l }) => we(l, q.OLD);
583
- function Te(l) {
584
- }
585
- const Se = ({ code: l }) => we(l, q.NEW);
586
- function Me(l) {
587
- }
588
- const de = () => {
589
- p("close"), f.value = !1;
590
- };
591
- async function xe(l = "phone") {
592
- var t;
593
- return (t = (await Ie("/users/profile/session/get-bind-session", { params: { field: l } })).data) == null ? void 0 : t.data;
594
- }
595
- async function be({
596
- value: l,
597
- field: a = "phone",
598
- offLoading: t = !0
599
- }) {
600
- var b, w, L;
601
- y.value = !0;
602
- try {
603
- if (!C.value) {
604
- const D = await Z("/users/profile/session/bind/create", {
605
- field: a,
606
- newValue: A(l || e.addPhone)
607
- });
608
- if (C.value = ((w = (b = D.data) == null ? void 0 : b.data) == null ? void 0 : w.sessionId) ?? ((L = D.data) == null ? void 0 : L.sessionId) ?? null, !C.value)
609
- throw new Error("не удалось создать bind-сессию (sessionId отсутствует)");
610
- }
611
- } finally {
612
- t && (y.value = !1);
613
- }
614
- }
615
- async function Fe() {
616
- try {
617
- const l = await xe("phone");
618
- C.value = l.sessionId, M.value = l.step, e.addPhone = l.newValue ?? "", l.sessionId || await be({ field: "phone", value: e.addPhone });
619
- } catch {
620
- await be({ field: "phone", value: e.addPhone });
621
- }
622
- }
623
- const ve = async ({
624
- value: l,
625
- field: a = "phone",
626
- isOnlySms: t = !1,
627
- offLoading: b = !0
628
- } = {}) => {
629
- var w, L, D;
630
- y.value = !0;
631
- try {
632
- if (!C.value)
633
- throw new Error("bind-сессия не найдена. создайте её через createBindSession.");
634
- const R = l ?? e.addPhone, $ = await Z(
635
- `/users/profile/bind/contact/send-code/${a}`,
636
- {
637
- sessionId: C.value,
638
- phone: A(R),
639
- provider: c.provider,
640
- isOnlySms: t ?? !1
641
- },
642
- {
643
- headers: {
644
- "x-only-sms": t ?? !1
645
- }
646
- }
647
- ), m = (L = (w = $ == null ? void 0 : $.data) == null ? void 0 : w.data) == null ? void 0 : L.deliveryType;
648
- (m === "tg" || m === "sms") && (i.value = m, m === "tg" && (v.value = !1));
649
- const r = (D = $.data) == null ? void 0 : D.tooManyRequests;
650
- if ($.status === 403 && r) {
651
- const I = r == null ? void 0 : r.type;
652
- return i.value = I, r.restTimeSec > 0 ? (J(r.restTimeSec), n.value = r.attempts.total, s.value = r.attempts.total - r.attempts.available, ne.value = r.attempts.available ?? ae) : o.value = !0, $;
653
- }
654
- const P = await Ce(R);
655
- return P && P.restTimeSec > 0 ? (J(P.restTimeSec), o.value = !1) : o.value = !0, $;
656
- } finally {
657
- b && (y.value = !1);
658
- }
659
- }, Ve = async ({ code: l }) => {
660
- var a, t, b, w, L, D, R, $;
661
- y.value = !0;
662
- try {
663
- if (!C.value) {
664
- const U = await xe("phone");
665
- C.value = U.sessionId, e.addPhone = U.newValue ?? e.addPhone;
666
- }
667
- const m = await Z("/users/profile/bind/phone/match-code", {
668
- phone: A(e.addPhone),
669
- sessionId: C.value,
670
- code: l
671
- }), r = ((a = m.data) == null ? void 0 : a.nextStep) ?? ((b = (t = m.data) == null ? void 0 : t.data) == null ? void 0 : b.nextStep), P = ((L = (w = m.data) == null ? void 0 : w.data) == null ? void 0 : L.rateLimit) ?? ((D = m.data) == null ? void 0 : D.rateLimit) ?? null, I = ((R = m.data) == null ? void 0 : R.data.success) ?? (($ = m.data) == null ? void 0 : $.success);
672
- if (le(P), !I) {
673
- z.value = !0;
674
- return;
675
- }
676
- return r && r === q.COMPLETED && (e.code = "", p("update-phone-field", e.addPhone), p("submit-phone", { phone: e.addPhone, code: l }), p("on-update-jwt", "phone", "bind", e.addPhone), p("on-toast", { color: "success", text: "Номер телефона успешно привязан к аккаунту" }), C.value = null, p("close")), m;
677
- } finally {
678
- y.value = !1;
679
- }
680
- }, ke = async () => {
681
- };
682
- return Ue(async () => {
683
- y.value = !0;
684
- const l = await Ae("phone");
685
- if (c.mode === "bind" && l === "bind") {
686
- await Fe(), y.value = !1;
687
- return;
688
- }
689
- await ze(), await Y({});
690
- }), x({
691
- localVisible: f,
692
- form: e,
693
- currentStep: M,
694
- loading: y,
695
- rateLimitText: se,
696
- isAvailable: ie,
697
- title: j,
698
- hintText: G,
699
- handleClose: de,
700
- sendContactCode: Y,
701
- sendBindContactCode: ve,
702
- handleOldCodeSuccess: Pe,
703
- handleOldCodeError: Te,
704
- handleNewCodeSuccess: Se,
705
- handleNewCodeError: Me,
706
- matchBindCode: Ve,
707
- matchBindCodeError: ke
708
- }), (l, a) => (h(), T(qe, null, [
709
- S(u(Je), {
710
- modelValue: f.value,
711
- "onUpdate:modelValue": [
712
- a[15] || (a[15] = (t) => f.value = t),
713
- de
714
- ],
715
- width: "small",
716
- "auto-height": !0,
717
- "close-on-click-outside": !0,
718
- "onClick:outside": de
719
- }, {
720
- header: K(() => [
721
- F("div", Mt, [
722
- S(u(Ke), {
723
- "slot-left": !1,
724
- size: "small",
725
- borded: !0,
726
- "no-padding": !1
727
- }, {
728
- title: K(() => [
729
- F("span", xt, W(u(ce) ? j.value : "Добавление номера телефона"), 1)
730
- ]),
731
- "right-button": K(() => [
732
- S(u(Qe), {
733
- class: "cross",
734
- onClick: de
735
- })
736
- ]),
737
- _: 1
738
- })
739
- ])
740
- ]),
741
- default: K(() => [
742
- u(ce) ? (h(), T("div", bt, [
743
- y.value ? (h(), H(Be, { key: 0 })) : k("", !0),
744
- M.value === u(q).OLD ? (h(), H(lt, {
745
- key: 1,
746
- phone: e.oldPhone,
747
- "onUpdate:phone": a[0] || (a[0] = (t) => e.oldPhone = t),
748
- code: e.code,
749
- "onUpdate:code": a[1] || (a[1] = (t) => e.code = t),
750
- "rate-limit-text": se.value,
751
- "is-final-limit": ie.value,
752
- "is-not-match-code": z.value,
753
- loading: y.value,
754
- "is-tg": d.value,
755
- onOnSendCode: a[2] || (a[2] = (t) => Y({ value: e.oldPhone })),
756
- onOnSendCodeAgain: a[3] || (a[3] = (t) => Y({ value: e.oldPhone, isOnlySms: !d.value && v.value })),
757
- onOnSendOnlySms: he,
758
- onOnMatchCode: Pe,
759
- onOnMatchCodeError: Te
760
- }, null, 8, ["phone", "code", "rate-limit-text", "is-final-limit", "is-not-match-code", "loading", "is-tg"])) : M.value === u(q).NEW ? (h(), H(vt, {
761
- key: 2,
762
- phone: e.newPhone,
763
- "onUpdate:phone": a[4] || (a[4] = (t) => e.newPhone = t),
764
- oldPhone: e.oldPhone,
765
- "onUpdate:oldPhone": a[5] || (a[5] = (t) => e.oldPhone = t),
766
- code: e.code,
767
- "onUpdate:code": a[6] || (a[6] = (t) => e.code = t),
768
- "hint-text": G.value,
769
- "rate-limit-text": se.value,
770
- "is-final-limit": ie.value,
771
- "is-not-match-code": z.value,
772
- loading: y.value,
773
- "is-tg": d.value,
774
- onOnSendCode: a[7] || (a[7] = (t) => Y({ value: e.newPhone })),
775
- onOnSendCodeAgain: a[8] || (a[8] = (t) => Y({ value: e.newPhone, isOnlySms: !d.value && v.value })),
776
- onOnSendOnlySms: he,
777
- onOnMatchCode: Se,
778
- onOnMatchCodeError: Me,
779
- onOnClearCodeError: a[9] || (a[9] = (t) => z.value = !1)
780
- }, null, 8, ["phone", "oldPhone", "code", "hint-text", "rate-limit-text", "is-final-limit", "is-not-match-code", "loading", "is-tg"])) : M.value === u(q).COMPLETED ? (h(), T("div", Vt, [
781
- F("p", null, W(E("Телефон успешно изменен")), 1)
782
- ])) : k("", !0)
783
- ])) : (h(), T("div", kt, [
784
- y.value ? (h(), H(Be, { key: 0 })) : k("", !0),
785
- S(St, {
786
- phone: e.addPhone,
787
- "onUpdate:phone": a[10] || (a[10] = (t) => e.addPhone = t),
788
- oldPhone: e.oldPhone,
789
- "onUpdate:oldPhone": a[11] || (a[11] = (t) => e.oldPhone = t),
790
- code: e.addCode,
791
- "onUpdate:code": a[12] || (a[12] = (t) => e.addCode = t),
792
- "hint-text": u(ce) ? G.value : "Чтобы продолжить, введите новый номер",
793
- "rate-limit-text": se.value,
794
- "is-final-limit": ie.value,
795
- "is-not-match-code": z.value,
796
- loading: y.value,
797
- "is-tg": d.value,
798
- onOnSendCode: a[13] || (a[13] = (t) => ve({ value: e.addPhone, field: "phone" })),
799
- onOnSendCodeAgain: a[14] || (a[14] = (t) => ve({ value: e.addPhone, field: "phone", isOnlySms: !d.value && v.value })),
800
- onOnSendOnlySms: he,
801
- onOnMatchCode: Ve,
802
- onOnMatchCodeError: ke
803
- }, null, 8, ["phone", "oldPhone", "code", "hint-text", "rate-limit-text", "is-final-limit", "is-not-match-code", "loading", "is-tg"])
804
- ]))
805
- ]),
806
- _: 1
807
- }, 8, ["modelValue"]),
808
- S(u(Xe))
809
- ], 64));
810
- }
811
- });
812
- export {
813
- Ot as default
814
- };