@yourgoods/ui-smart 0.53.14 → 0.53.16

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 (46) hide show
  1. package/dist/{ProfileEmailDialog-DLudgSso.js → ProfileEmailDialog-CSkBhFZg.js} +2 -2
  2. package/dist/{ProfilePasswordDialog-CBk7eiWU.js → ProfilePasswordDialog-33HFcbos.js} +1 -1
  3. package/dist/{ProfilePhoneDialog-DliOsBke.js → ProfilePhoneDialog-C38K6-Gg.js} +2 -2
  4. package/dist/components/PEditUserContact/PEditUserContact.vue.d.ts +48 -0
  5. package/dist/components/PEditUserContact/ProfileDialogs/DialogManager.vue.d.ts +26 -0
  6. package/dist/components/PEditUserContact/ProfileDialogs/DialogSegments/AddNewEmailContent.vue.d.ts +64 -0
  7. package/dist/components/PEditUserContact/ProfileDialogs/DialogSegments/AddNewPasswordContent.vue.d.ts +25 -0
  8. package/dist/components/PEditUserContact/ProfileDialogs/DialogSegments/AddNewPhoneContent.vue.d.ts +75 -0
  9. package/dist/components/PEditUserContact/ProfileDialogs/DialogSegments/NewEmailContent.vue.d.ts +66 -0
  10. package/dist/components/PEditUserContact/ProfileDialogs/DialogSegments/NewPhoneContent.vue.d.ts +74 -0
  11. package/dist/components/PEditUserContact/ProfileDialogs/DialogSegments/OldEmailContent.vue.d.ts +57 -0
  12. package/dist/components/PEditUserContact/ProfileDialogs/DialogSegments/OldPhoneContent.vue.d.ts +65 -0
  13. package/dist/components/PEditUserContact/ProfileDialogs/DialogSegments/ThrottlerTimer.vue.d.ts +33 -0
  14. package/dist/components/PEditUserContact/ProfileDialogs/ProfileEmailDialog.vue.d.ts +55 -0
  15. package/dist/components/PEditUserContact/ProfileDialogs/ProfilePasswordDialog.vue.d.ts +36 -0
  16. package/dist/components/PEditUserContact/ProfileDialogs/ProfilePhoneDialog.vue.d.ts +92 -0
  17. package/dist/components/PEditUserContact/ProfileOverlayLoading.vue.d.ts +2 -0
  18. package/dist/components/PEditUserContact/index.vue.d.ts +40 -0
  19. package/dist/components/PEditUserContact/types.d.ts +35 -0
  20. package/dist/components/PEmailOrPhoneInput/index.vue.d.ts +37 -0
  21. package/dist/components/PEmailOrPhoneInput/types.d.ts +16 -0
  22. package/dist/components/PEmailOrPhoneInput/utils/detect-field.d.ts +2 -0
  23. package/dist/components/PEmailOrPhoneInput/utils/email.d.ts +2 -0
  24. package/dist/components/PEmailOrPhoneInput/utils/phone.d.ts +6 -0
  25. package/dist/components/index.d.ts +0 -0
  26. package/dist/composables/profile/useDialogManager.d.ts +21 -0
  27. package/dist/composables/profile/useModeFlow.d.ts +7 -0
  28. package/dist/composables/profile/usePasswordRateLimitToast.d.ts +9 -0
  29. package/dist/composables/profile/useRateLimitToast.d.ts +9 -0
  30. package/dist/composables/profile/useThrottler.d.ts +13 -0
  31. package/dist/icons/index.d.ts +1 -0
  32. package/dist/{index-BqAKjNzC.js → index-DYfxtE--.js} +9 -6
  33. package/dist/index.d.ts +2 -1
  34. package/dist/index.js +2 -2
  35. package/dist/locales/index.d.ts +134 -0
  36. package/dist/modules/api/profile/check-availability.d.ts +1 -0
  37. package/dist/modules/api/profile/me.d.ts +19 -0
  38. package/dist/modules/index.d.ts +7 -0
  39. package/dist/types.d.ts +10 -0
  40. package/dist/{useRateLimitToast-DhiphkbR.js → useRateLimitToast-BAK-6nD5.js} +1 -1
  41. package/dist/utils/checkEmailFormatError.d.ts +1 -0
  42. package/dist/utils/checkPhoneFormatError.d.ts +1 -0
  43. package/dist/utils/formatPhone.d.ts +5 -0
  44. package/dist/utils/phoneValidationKeywords.d.ts +1 -0
  45. package/dist/utils/url.d.ts +2 -0
  46. package/package.json +1 -1
@@ -0,0 +1,92 @@
1
+ import { Ref } from 'vue';
2
+ import { ModeType } from '../../../composables/profile/useDialogManager';
3
+ import { CurrentStepType, EmitToastType, LangFormatType, ProviderType } from '../types';
4
+ interface Props {
5
+ modelValue: boolean;
6
+ title?: string;
7
+ hintText?: string;
8
+ initialPhone?: string;
9
+ language: LangFormatType;
10
+ provider: ProviderType;
11
+ disableAddPhone: boolean;
12
+ mode?: ModeType;
13
+ }
14
+ declare function handleOldCodeError(payload: {
15
+ code: string;
16
+ message: string;
17
+ }): void;
18
+ declare function handleNewCodeError(payload: {
19
+ code: string;
20
+ message: string;
21
+ }): void;
22
+ declare const _default: import('vue').DefineComponent<Props, {
23
+ localVisible: Ref<boolean, boolean>;
24
+ form: {
25
+ oldPhone: string;
26
+ newPhone: string;
27
+ code: string;
28
+ addPhone: string;
29
+ addCode: string;
30
+ };
31
+ currentStep: Ref<CurrentStepType, CurrentStepType>;
32
+ loading: Ref<boolean, boolean>;
33
+ rateLimitText: import('vue').ComputedRef<string>;
34
+ isAvailable: import('vue').ComputedRef<boolean>;
35
+ title: import('vue').ComputedRef<string>;
36
+ hintText: import('vue').ComputedRef<string>;
37
+ handleClose: () => void;
38
+ sendContactCode: ({ value, isOnlySms, offLoading }?: {
39
+ value?: string;
40
+ isOnlySms?: boolean;
41
+ offLoading?: boolean;
42
+ }) => Promise<any>;
43
+ sendBindContactCode: ({ value, field, isOnlySms, offLoading }?: {
44
+ value?: string;
45
+ field?: "email" | "phone";
46
+ isOnlySms?: boolean;
47
+ offLoading?: boolean;
48
+ }) => Promise<any>;
49
+ handleOldCodeSuccess: ({ code }: {
50
+ code: string;
51
+ }) => Promise<import('axios').AxiosResponse<any, any, {}> | undefined>;
52
+ handleOldCodeError: typeof handleOldCodeError;
53
+ handleNewCodeSuccess: ({ code }: {
54
+ code: string;
55
+ }) => Promise<import('axios').AxiosResponse<any, any, {}> | undefined>;
56
+ handleNewCodeError: typeof handleNewCodeError;
57
+ matchBindCode: ({ code }: {
58
+ phone?: string;
59
+ code: string;
60
+ }) => Promise<import('axios').AxiosResponse<any, any, {}> | undefined>;
61
+ matchBindCodeError: () => Promise<void>;
62
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
63
+ edit: (field: "phone") => any;
64
+ close: () => any;
65
+ "update:modelValue": (value: boolean) => any;
66
+ "on-toast": (data: EmitToastType) => any;
67
+ "clean-input-errors": () => any;
68
+ "on-update-jwt": (flow?: "email" | "phone" | "password" | undefined, mode?: ModeType | undefined, newValue?: string | undefined) => any;
69
+ "submit-phone": (payload: {
70
+ phone: string;
71
+ code: string;
72
+ }) => any;
73
+ "update-phone-field": (value: string) => any;
74
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
75
+ onEdit?: ((field: "phone") => any) | undefined;
76
+ onClose?: (() => any) | undefined;
77
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
78
+ "onOn-toast"?: ((data: EmitToastType) => any) | undefined;
79
+ "onClean-input-errors"?: (() => any) | undefined;
80
+ "onOn-update-jwt"?: ((flow?: "email" | "phone" | "password" | undefined, mode?: ModeType | undefined, newValue?: string | undefined) => any) | undefined;
81
+ "onSubmit-phone"?: ((payload: {
82
+ phone: string;
83
+ code: string;
84
+ }) => any) | undefined;
85
+ "onUpdate-phone-field"?: ((value: string) => any) | undefined;
86
+ }>, {
87
+ title: string;
88
+ hintText: string;
89
+ mode: ModeType;
90
+ initialPhone: string;
91
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
92
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,40 @@
1
+ import { ModeType } from '../../composables/profile/useDialogManager';
2
+ import { LangFormatType, ProviderType } from './types';
3
+ declare const _default: import('vue').DefineComponent<{
4
+ throttlerPrefix: string;
5
+ provider: ProviderType;
6
+ requestUrl: string;
7
+ accessToken: string;
8
+ refreshToken: string;
9
+ language: LangFormatType;
10
+ fields: Array<{
11
+ key: "firstName" | "lastName" | "email" | "phone" | "avatar";
12
+ label?: string;
13
+ readonly?: boolean;
14
+ type?: string;
15
+ }>;
16
+ awsStorageUrl: string;
17
+ disableAddPhone: boolean;
18
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
19
+ "on-update-jwt": (flow?: "email" | "phone" | "password" | undefined, mode?: ModeType | undefined, newValue?: string | undefined) => any;
20
+ "update-tokens": (accessToken: string, refreshToken: string) => any;
21
+ }, string, import('vue').PublicProps, Readonly<{
22
+ throttlerPrefix: string;
23
+ provider: ProviderType;
24
+ requestUrl: string;
25
+ accessToken: string;
26
+ refreshToken: string;
27
+ language: LangFormatType;
28
+ fields: Array<{
29
+ key: "firstName" | "lastName" | "email" | "phone" | "avatar";
30
+ label?: string;
31
+ readonly?: boolean;
32
+ type?: string;
33
+ }>;
34
+ awsStorageUrl: string;
35
+ disableAddPhone: boolean;
36
+ }> & Readonly<{
37
+ "onOn-update-jwt"?: ((flow?: "email" | "phone" | "password" | undefined, mode?: ModeType | undefined, newValue?: string | undefined) => any) | undefined;
38
+ "onUpdate-tokens"?: ((accessToken: string, refreshToken: string) => any) | undefined;
39
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
40
+ export default _default;
@@ -0,0 +1,35 @@
1
+ export declare function formatFileSize(bytes: number, decimals?: number): string;
2
+ export declare function formatMimeTypes(mimeTypes: string[]): string[];
3
+ export interface EmitToastType {
4
+ color: 'default' | 'error' | 'success' | undefined;
5
+ text: string;
6
+ }
7
+ export type ProviderType = 'crm' | 'widget' | 'sendbot' | 'planner' | 'logic' | 'dengi';
8
+ export type LangFormatType = 'ru' | 'en';
9
+ export declare const CURRENT_STEP: {
10
+ readonly OLD: "old";
11
+ readonly NEW: "new";
12
+ readonly COMPLETED: "completed";
13
+ };
14
+ export declare const BIND_PASSWORD_CURRENT_STEP: {
15
+ readonly VERIFY_EMAIL: "verify-email";
16
+ readonly PASSWORD_FLOW: "password-flow";
17
+ readonly COMPLETED: "completed";
18
+ };
19
+ export declare const DeliveryMethod: {
20
+ readonly SMS: "sms";
21
+ readonly TG: "tg";
22
+ };
23
+ export declare const ThrottlerMeta: {
24
+ RETRY: string;
25
+ };
26
+ export type ActiveStepType = Exclude<CurrentStepType, typeof CURRENT_STEP.OLD>;
27
+ export type CurrentStepType = (typeof CURRENT_STEP)[keyof typeof CURRENT_STEP];
28
+ export type BindPasswordStepType = (typeof BIND_PASSWORD_CURRENT_STEP)[keyof typeof BIND_PASSWORD_CURRENT_STEP];
29
+ export type DeliveryMethodType = (typeof DeliveryMethod)[keyof typeof DeliveryMethod];
30
+ export interface FileInfo {
31
+ id: string;
32
+ name: string;
33
+ key: string;
34
+ size: number;
35
+ }
@@ -0,0 +1,37 @@
1
+ import { SmartInputConfig } from './types';
2
+ declare const _default: import('vue').DefineComponent<{
3
+ modelValue?: string;
4
+ disabled?: boolean;
5
+ config?: SmartInputConfig;
6
+ type?: "number" | "email" | "time" | "text" | "password" | "date" | "tel" | undefined;
7
+ size?: "small" | "medium" | "large";
8
+ label?: string;
9
+ locale?: string;
10
+ errorMessages?: {
11
+ invalidPhoneChars?: string;
12
+ invalidPhoneLength?: string;
13
+ invalidEmail?: string;
14
+ };
15
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
16
+ "update:modelValue": (value: string) => any;
17
+ "validity-change": (valid: boolean) => any;
18
+ "type-change": (type: "email" | "phone" | null) => any;
19
+ }, string, import('vue').PublicProps, Readonly<{
20
+ modelValue?: string;
21
+ disabled?: boolean;
22
+ config?: SmartInputConfig;
23
+ type?: "number" | "email" | "time" | "text" | "password" | "date" | "tel" | undefined;
24
+ size?: "small" | "medium" | "large";
25
+ label?: string;
26
+ locale?: string;
27
+ errorMessages?: {
28
+ invalidPhoneChars?: string;
29
+ invalidPhoneLength?: string;
30
+ invalidEmail?: string;
31
+ };
32
+ }> & Readonly<{
33
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
34
+ "onValidity-change"?: ((valid: boolean) => any) | undefined;
35
+ "onType-change"?: ((type: "email" | "phone" | null) => any) | undefined;
36
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
37
+ export default _default;
@@ -0,0 +1,16 @@
1
+ type InputMode = 'phone' | 'email' | 'auto';
2
+ export interface PhoneValidationConfig {
3
+ enabled: boolean;
4
+ minDigits?: number;
5
+ maxDigits?: number;
6
+ autoPlus?: boolean;
7
+ }
8
+ export interface EmailValidationConfig {
9
+ enabled: boolean;
10
+ }
11
+ export interface SmartInputConfig {
12
+ mode?: InputMode;
13
+ phone?: PhoneValidationConfig;
14
+ email?: EmailValidationConfig;
15
+ }
16
+ export {};
@@ -0,0 +1,2 @@
1
+ import { SmartInputConfig } from '../types';
2
+ export declare function detectInputType(value: string, config: SmartInputConfig): 'phone' | 'email' | null;
@@ -0,0 +1,2 @@
1
+ export declare const EMAIL_REGEX: RegExp;
2
+ export declare function isValidEmail(value: string): boolean;
@@ -0,0 +1,6 @@
1
+ export declare const MIN_VISIBLE_DIGITS = 10;
2
+ export declare function normalizePhoneInput(raw: string, autoPlus: boolean, locale?: string): string;
3
+ export declare function extractDigits(value: string): string;
4
+ export declare function limitPhoneLength(value: string, maxDigits: number): string;
5
+ export declare function isValidPhone(value: string, minDigits?: number, maxDigits?: number): boolean;
6
+ export declare function hasInvalidPhoneChars(raw: string): boolean;
File without changes
@@ -0,0 +1,21 @@
1
+ type DialogKey = keyof DialogPayloadMap | null;
2
+ export type ModeType = 'edit' | 'bind';
3
+ export interface DialogPayloadMap {
4
+ email: {
5
+ initialEmail?: string;
6
+ mode: ModeType;
7
+ };
8
+ phone: {
9
+ initialPhone?: string;
10
+ mode: ModeType;
11
+ };
12
+ password: {};
13
+ }
14
+ export declare function useDialogManager(): {
15
+ currentDialog: import('vue').Ref<DialogKey, DialogKey>;
16
+ dialogPayload: import('vue').ShallowRef<any, any>;
17
+ openDialog: <K extends keyof DialogPayloadMap>(name: K, payload?: DialogPayloadMap[K]) => void;
18
+ closeDialog: () => void;
19
+ isDialogOpen: <K extends keyof DialogPayloadMap>(name: K) => boolean;
20
+ };
21
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Ref } from 'vue';
2
+ import { ModeType } from './useDialogManager';
3
+ export declare function useFlow(modeProp: Ref<ModeType>): {
4
+ modeFlowFromBack: Ref<ModeType, ModeType>;
5
+ isEditFlow: import('vue').ComputedRef<boolean>;
6
+ getFlow: (field: "email" | "phone" | "password") => Promise<ModeType>;
7
+ };
@@ -0,0 +1,9 @@
1
+ interface PasswordRateLimit {
2
+ attemptsLeft: number;
3
+ maxAttempts: number;
4
+ retryAfterSec: number;
5
+ }
6
+ export declare function usePasswordRateLimitToast(emit: any): {
7
+ showPasswordRateLimitToast: (rateLimit?: PasswordRateLimit | null) => void;
8
+ };
9
+ export {};
@@ -0,0 +1,9 @@
1
+ interface RateLimit {
2
+ attemptsLeft: number;
3
+ maxAttempts: number;
4
+ retryAfterSec: number;
5
+ }
6
+ export declare function useRateLimitToast(emit: any): {
7
+ showRateLimitToast: (rateLimit?: RateLimit | null) => void;
8
+ };
9
+ export {};
@@ -0,0 +1,13 @@
1
+ import { Ref } from 'vue';
2
+ export declare function formattedTime(input: number): string;
3
+ type StartTimer = (seconds: number, end?: () => void) => void;
4
+ interface UseRateLimitTimer {
5
+ startTimer: StartTimer;
6
+ isShowRateTimers: Ref<boolean>;
7
+ remainingSeconds: Ref<string>;
8
+ totalRateAttempts: Ref<number>;
9
+ currentRateAttempt: Ref<number>;
10
+ isAvailableForSendAgain: Ref<boolean>;
11
+ }
12
+ export declare function useRateLimitTimer(): UseRateLimitTimer;
13
+ export {};
@@ -0,0 +1 @@
1
+ export { default as IconProfileMobileSm } from './IconMobileSm.svg';
@@ -218,9 +218,9 @@ const sa = {
218
218
  emits: ["clean-input-errors", "on-update-jwt", "update-phone-field", "update-email-field", "on-password-error", "on-toast"],
219
219
  setup(l, { emit: i }) {
220
220
  const t = i, o = h(!0), { currentDialog: m, dialogPayload: v, closeDialog: U } = te(), u = {
221
- email: Y(() => import("./ProfileEmailDialog-DLudgSso.js")),
222
- phone: Y(() => import("./ProfilePhoneDialog-DliOsBke.js")),
223
- password: Y(() => import("./ProfilePasswordDialog-CBk7eiWU.js"))
221
+ email: Y(() => import("./ProfileEmailDialog-CSkBhFZg.js")),
222
+ phone: Y(() => import("./ProfilePhoneDialog-C38K6-Gg.js")),
223
+ password: Y(() => import("./ProfilePasswordDialog-33HFcbos.js"))
224
224
  }, d = ({ email: b }) => {
225
225
  t("update-email-field", b);
226
226
  }, p = ({ phone: b }) => {
@@ -717,7 +717,10 @@ const Va = { class: "smart-input" }, Aa = /* @__PURE__ */ q({
717
717
  });
718
718
  function b(s) {
719
719
  var C, D, B;
720
- u.value.trim() === "" && (d.value = null, o("type-change", null));
720
+ if (u.value.trim() === "") {
721
+ d.value = null, o("type-change", null);
722
+ return;
723
+ }
721
724
  const c = s.target.value, r = m.value.mode === "auto" ? Ba(c, m.value) : m.value.mode;
722
725
  if (d.value = r, o("type-change", r), r === "email") {
723
726
  const E = Ia(c);
@@ -742,7 +745,7 @@ const Va = { class: "smart-input" }, Aa = /* @__PURE__ */ q({
742
745
  u.value = S, U.value = S, o("update:modelValue", S);
743
746
  return;
744
747
  }
745
- if (U.value = E, A.length < Pa) {
748
+ if (u.value = E, U.value = E, A.length < Pa) {
746
749
  p.value = "", o("validity-change", !1);
747
750
  return;
748
751
  }
@@ -776,7 +779,7 @@ const Va = { class: "smart-input" }, Aa = /* @__PURE__ */ q({
776
779
  })) : T("", !0)
777
780
  ]));
778
781
  }
779
- }), La = /* @__PURE__ */ ge(Aa, [["__scopeId", "data-v-0f49a2a4"]]);
782
+ }), La = /* @__PURE__ */ ge(Aa, [["__scopeId", "data-v-36ff2e5b"]]);
780
783
  export {
781
784
  $a as B,
782
785
  Ma as C,
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
- export {}
1
+ export { default as PEditUserContact } from './components/PEditUserContact/index.vue';
2
+ export { default as PEmailOrPhoneInput } from './components/PEmailOrPhoneInput/index.vue';
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".avatar-input[data-v-a56fcdbb] .p-input-file .overlay{visibility:hidden}.avatar-input[data-v-a56fcdbb] .p-input-file:hover .overlay{visibility:visible}.smart-input[data-v-0f49a2a4]{position:relative;width:100%}.smart-input__icon[data-v-0f49a2a4]{position:absolute;top:16px;right:16px;pointer-events:none;opacity:.5}.icon-locked{pointer-events:auto;position:absolute;right:1rem;top:1rem;color:#b6c7d6}.input-wrapper{position:relative;width:100%}.dialogTitle{z-index:10;width:100%;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#2b3238}.dialogDefaultContainer{display:flex;align-items:flex-start;flex-direction:column;width:100%;gap:32px;margin-top:16px;padding:10px 16px}.dialogDefaultContainerTextHint{font-weight:400;font-size:14px;line-height:20px;text-align:center;color:#1b1b1b}.dialogDefaultContainerRateLimitText{font-weight:600;font-size:14px;line-height:20px;color:#d0dbe4}.dialogDefaultContainerInsideContent{width:100%;display:flex;flex-direction:column;gap:24px}.dialogDefaultContainerRateLimitTextActive{color:#1c7ef1;cursor:pointer}.dialogDefaultContainerSendCodeBySmsText{color:#1c7ef1;cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;text-align:center}.chip{display:flex;align-items:center;justify-content:center;flex-direction:row;gap:4px;height:24px;font-size:12px;font-weight:600;color:#1b1b1b;padding:4px;line-height:16px;background-color:#b6d7ff4d;border-radius:4px;text-align:center;margin-left:5px}.cross{cursor:pointer;text-align:end}.finalLimitWrapper{display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:12px;width:100%;min-height:94px;background:#e4606026;border-radius:8px}.finalLimitText{text-align:center;max-width:100%;word-wrap:break-word;font-family:Inter,sans-serif;font-size:14px;line-height:20px;color:#5d7285}.finalLimitLink{font-family:Inter,sans-serif;font-weight:600;font-size:14px;line-height:20px;color:#1c7ef1;text-align:center;cursor:pointer;text-decoration:none}.finalLimitLink:hover{text-decoration:underline}.toastWrapper{position:fixed;bottom:1rem;right:1rem;z-index:9999}.toast{width:100%}.base-container{margin-top:1.5rem;display:flex;flex-direction:column;gap:1.25rem;width:490px;height:428px}.icon-disabled{pointer-events:none;position:absolute;right:1rem;top:1rem;color:#b6c7d6}.centered-overlay{position:absolute;left:50%;top:50%;z-index:1000;height:100%;width:100%;transform:translate(-50%,-50%)}.buttons-container{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-start}.buttons-container PButton{flex:1 1 100%}._loaderOverlay_cpu73_1[data-v-9e697525]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;background:#ffffffb3;border-radius:16px;z-index:99}")),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2
- import { a as o, i as r } from "./index-BqAKjNzC.js";
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".avatar-input[data-v-a56fcdbb] .p-input-file .overlay{visibility:hidden}.avatar-input[data-v-a56fcdbb] .p-input-file:hover .overlay{visibility:visible}.smart-input[data-v-36ff2e5b]{position:relative;width:100%}.smart-input__icon[data-v-36ff2e5b]{position:absolute;top:16px;right:16px;pointer-events:none;opacity:.5}.icon-locked{pointer-events:auto;position:absolute;right:1rem;top:1rem;color:#b6c7d6}.input-wrapper{position:relative;width:100%}.dialogTitle{z-index:10;width:100%;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#2b3238}.dialogDefaultContainer{display:flex;align-items:flex-start;flex-direction:column;width:100%;gap:32px;margin-top:16px;padding:10px 16px}.dialogDefaultContainerTextHint{font-weight:400;font-size:14px;line-height:20px;text-align:center;color:#1b1b1b}.dialogDefaultContainerRateLimitText{font-weight:600;font-size:14px;line-height:20px;color:#d0dbe4}.dialogDefaultContainerInsideContent{width:100%;display:flex;flex-direction:column;gap:24px}.dialogDefaultContainerRateLimitTextActive{color:#1c7ef1;cursor:pointer}.dialogDefaultContainerSendCodeBySmsText{color:#1c7ef1;cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;text-align:center}.chip{display:flex;align-items:center;justify-content:center;flex-direction:row;gap:4px;height:24px;font-size:12px;font-weight:600;color:#1b1b1b;padding:4px;line-height:16px;background-color:#b6d7ff4d;border-radius:4px;text-align:center;margin-left:5px}.cross{cursor:pointer;text-align:end}.finalLimitWrapper{display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:12px;width:100%;min-height:94px;background:#e4606026;border-radius:8px}.finalLimitText{text-align:center;max-width:100%;word-wrap:break-word;font-family:Inter,sans-serif;font-size:14px;line-height:20px;color:#5d7285}.finalLimitLink{font-family:Inter,sans-serif;font-weight:600;font-size:14px;line-height:20px;color:#1c7ef1;text-align:center;cursor:pointer;text-decoration:none}.finalLimitLink:hover{text-decoration:underline}.toastWrapper{position:fixed;bottom:1rem;right:1rem;z-index:9999}.toast{width:100%}.base-container{margin-top:1.5rem;display:flex;flex-direction:column;gap:1.25rem;width:490px;height:428px}.icon-disabled{pointer-events:none;position:absolute;right:1rem;top:1rem;color:#b6c7d6}.centered-overlay{position:absolute;left:50%;top:50%;z-index:1000;height:100%;width:100%;transform:translate(-50%,-50%)}.buttons-container{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-start}.buttons-container PButton{flex:1 1 100%}._loaderOverlay_cpu73_1[data-v-9e697525]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;background:#ffffffb3;border-radius:16px;z-index:99}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
+ import { a as o, i as r } from "./index-DYfxtE--.js";
3
3
  export {
4
4
  o as PEditUserContact,
5
5
  r as PEmailOrPhoneInput
@@ -0,0 +1,134 @@
1
+ export declare const translations: {
2
+ readonly ru: {
3
+ readonly Имя: "Имя";
4
+ readonly Фамилия: "Фамилия";
5
+ readonly Email: "Email";
6
+ readonly Телефон: "Телефон";
7
+ readonly Аватар: "Аватар";
8
+ readonly Сохранить: "Сохранить";
9
+ readonly Отмена: "Отмена";
10
+ readonly Изменить: "Изменить";
11
+ readonly '\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u043A\u043E\u0434': "Отправить код";
12
+ readonly Подтвердить: "Подтвердить";
13
+ readonly '\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 email': "Некорректный email";
14
+ readonly '\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Некорректный номер телефона";
15
+ readonly '\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u043F\u043E\u043B\u0435': "Обязательное поле";
16
+ readonly '\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0444\u043E\u0442\u043E': "Загрузить фото";
17
+ readonly '\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0434\u0440\u0443\u0433\u043E\u0435 \u0444\u043E\u0442\u043E': "Загрузить другое фото";
18
+ readonly '\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0444\u043E\u0442\u043E. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0444\u043E\u0440\u043C\u0430\u0442 (JPEG/PNG) \u0438 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430 (\u0434\u043E 10 \u041C\u0431)': "Не удалось загрузить фото. Проверьте формат (JPEG/PNG) и размер файла (до 10 Мб)";
19
+ readonly Формат: "Формат";
20
+ readonly до: "до";
21
+ readonly '\u041D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Номер телефона";
22
+ readonly '\u0421\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0430\u0440\u043E\u043B\u044C': "Сменить пароль";
23
+ readonly 'E-mail \u0438\u0437\u043C\u0435\u043D\u0435\u043D': "E-mail изменен";
24
+ readonly '\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u043E\u0437\u0436\u0435': "Не удалось сохранить изменения. Попробуйте позже";
25
+ readonly '\u0421\u043C\u0435\u043D\u0430 \u043F\u043E\u0447\u0442\u044B': "Смена почты";
26
+ readonly '\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F': "Чтобы продолжить, введите код подтверждения";
27
+ readonly '\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u0447\u0435\u0440\u0435\u0437': "Повторить через";
28
+ readonly '\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0439 \u043F\u043E\u0447\u0442\u044B': "Введите новый адрес вашей почты";
29
+ readonly _Повторить_: "Повторить";
30
+ readonly '\u0412\u044B \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0447\u0430\u0441\u0442\u043E \u0437\u0430\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u043B\u0438 \u043A\u043E\u0434.': "Вы слишком часто запрашивали код.";
31
+ readonly '\u041D\u043E\u0432\u044B\u0439 \u043A\u043E\u0434 \u043C\u043E\u0436\u043D\u043E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0447\u0435\u0440\u0435\u0437': "Новый код можно получить через";
32
+ readonly '\u0415\u0441\u043B\u0438 \u0435\u0441\u0442\u044C \u0432\u043E\u043F\u0440\u043E\u0441\u044B': "Если есть вопросы";
33
+ readonly '\u043F\u0438\u0448\u0438\u0442\u0435 \u0432': "пишите в";
34
+ readonly '\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043E\u0434': "Неверный код";
35
+ readonly '\u0422\u0430\u043A\u043E\u0439 email \u0443\u0436\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F': "Такой email уже используется";
36
+ readonly '\u042D\u0442\u043E \u043D\u0435 \u043F\u043E\u0445\u043E\u0436\u0435 \u043D\u0430 e-mail': "Это не похоже на e-mail";
37
+ readonly '\u041E\u0441\u0442\u0430\u043B\u043E\u0441\u044C 2 \u043F\u043E\u043F\u044B\u0442\u043A\u0438. \u041F\u043E\u0441\u043B\u0435 \u0438\u0441\u0447\u0435\u0440\u043F\u0430\u043D\u0438\u044F \u043B\u0438\u043C\u0438\u0442\u0430 \u0432\u0432\u043E\u0434 \u043A\u043E\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D \u043D\u0430 5 \u043C\u0438\u043D\u0443\u0442': "Осталось 2 попытки. После исчерпания лимита ввод кода будет заблокирован на 5 минут";
38
+ readonly '\u041E\u0441\u0442\u0430\u043B\u0430\u0441\u044C 1 \u043F\u043E\u043F\u044B\u0442\u043A\u0430. \u041F\u043E\u0441\u043B\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432\u0432\u043E\u0434 \u043A\u043E\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D \u043D\u0430 5 \u043C\u0438\u043D\u0443\u0442': "Осталась 1 попытка. После следующей ошибки ввод кода будет заблокирован на 5 минут";
39
+ readonly '\u0421\u043C\u0435\u043D\u0430 \u043D\u043E\u043C\u0435\u0440\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Смена номера телефона";
40
+ readonly '\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u0438\u0437': "Чтобы продолжить, введите код подтверждения из";
41
+ readonly '\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u043A\u043E\u0434 \u0438\u0437 \u0421\u041C\u0421': "Получить код из СМС";
42
+ readonly '\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440': "Чтобы продолжить, введите новый номер";
43
+ readonly '\u0422\u0430\u043A\u043E\u0439 \u043D\u043E\u043C\u0435\u0440 \u0443\u0436\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F': "Такой номер уже используется";
44
+ readonly '\u042D\u0442\u043E \u043D\u0435 \u043F\u043E\u0445\u043E\u0436\u0435 \u043D\u0430 \u043D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Это не похоже на номер телефона";
45
+ readonly '\u0421\u043C\u0435\u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u044F': "Смена пароля";
46
+ readonly '\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448 \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C': "Введите ваш текущий пароль";
47
+ readonly '\u0422\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C': "Текущий пароль";
48
+ readonly Продолжить: "Продолжить";
49
+ readonly '\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C \u0434\u043B\u044F\u00A0\u0437\u0430\u0449\u0438\u0442\u044B\u00A0\u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0430. \u041F\u0430\u0440\u043E\u043B\u044C \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u043D\u0435 \u043C\u0435\u043D\u0435\u0435 8 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.': "Установите новый пароль для защиты аккаунта. Пароль должен содержать не менее 8 символов.";
50
+ readonly '\u041D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C': "Новый пароль";
51
+ readonly '\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C': "Повторите новый пароль";
52
+ readonly '\u041F\u0430\u0440\u043E\u043B\u044C \u0438\u0437\u043C\u0435\u043D\u0451\u043D': "Пароль изменён";
53
+ readonly '\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C': "Неверный текущий пароль";
54
+ readonly '\u041E\u0441\u0442\u0430\u043B\u043E\u0441\u044C 2 \u043F\u043E\u043F\u044B\u0442\u043A\u0438. \u0412\u0432\u043E\u0434 \u043F\u0430\u0440\u043E\u043B\u044F \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D \u043D\u0430 5 \u043C\u0438\u043D\u0443\u0442.': "Осталось 2 попытки. Ввод пароля будет заблокирован на 5 минут.";
55
+ readonly '\u041E\u0441\u0442\u0430\u043B\u0430\u0441\u044C 1 \u043F\u043E\u043F\u044B\u0442\u043A\u0430. \u041F\u043E\u0441\u043B\u0435 \u0438\u0441\u0447\u0435\u0440\u043F\u0430\u043D\u0438\u044F \u043B\u0438\u043C\u0438\u0442\u0430 \u0432\u0432\u043E\u0434 \u043F\u0430\u0440\u043E\u043B\u044F \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D \u043D\u0430 1 \u0447\u0430\u0441.': "Осталась 1 попытка. После исчерпания лимита ввод пароля будет заблокирован на 1 час.";
56
+ readonly '\u0414\u043E\u0441\u0442\u0438\u0433\u043D\u0443\u0442 \u043B\u0438\u043C\u0438\u0442 \u043F\u043E\u043F\u044B\u0442\u043E\u043A \u0432\u0432\u043E\u0434\u0430 \u043F\u0430\u0440\u043E\u043B\u044F. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 1 \u0447\u0430\u0441.': "Достигнут лимит попыток ввода пароля. Попробуйте снова через 1 час.";
57
+ readonly '\u041F\u0430\u0440\u043E\u043B\u0438 \u043D\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0442': "Пароли не совпадают";
58
+ readonly '\u041F\u0430\u0440\u043E\u043B\u044C \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043A\u043E\u0440\u043E\u0442\u043A\u0438\u0439. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0445\u043E\u0442\u044F \u0431\u044B 8 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.': "Пароль слишком короткий. Введите хотя бы 8 символов.";
59
+ readonly '\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u043E\u043C\u0435\u0440\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Добавление номера телефона";
60
+ readonly '\u041D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D \u043A\u00A0\u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0443': "Номер телефона успешно привязан к аккаунту";
61
+ readonly '\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u043E\u0447\u0442\u044B': "Добавление почты";
62
+ readonly '\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0430\u0440\u043E\u043B\u044F': "Добавление пароля";
63
+ readonly '\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u044C': "Повторите пароль";
64
+ readonly 'E-mail \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D \u043A \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0443': "E-mail успешно привязан к аккаунту";
65
+ readonly '\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Введите новый номер телефона";
66
+ readonly '\u0422\u0435\u043B\u0435\u0444\u043E\u043D \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D': "Телефон успешно изменен";
67
+ };
68
+ readonly en: {
69
+ readonly Имя: "First Name";
70
+ readonly Фамилия: "Last Name";
71
+ readonly Email: "Email";
72
+ readonly Телефон: "Phone Number";
73
+ readonly Аватар: "Avatar";
74
+ readonly Сохранить: "Save";
75
+ readonly Отмена: "Cancel";
76
+ readonly Изменить: "Change";
77
+ readonly '\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u043A\u043E\u0434': "Send verification code";
78
+ readonly Подтвердить: "Verify";
79
+ readonly '\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 email': "Invalid email format";
80
+ readonly '\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Invalid phone number";
81
+ readonly '\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u043F\u043E\u043B\u0435': "Required field";
82
+ readonly '\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0444\u043E\u0442\u043E': "Upload photo";
83
+ readonly '\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0434\u0440\u0443\u0433\u043E\u0435 \u0444\u043E\u0442\u043E': "Upload another photo";
84
+ readonly '\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0444\u043E\u0442\u043E. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0444\u043E\u0440\u043C\u0430\u0442 (JPEG/PNG) \u0438 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430 (\u0434\u043E 10 \u041C\u0431)': "Failed to upload photo. Check the format (JPEG/PNG) and file size (up to 10 MB)";
85
+ readonly Формат: "Format";
86
+ readonly до: "up to";
87
+ readonly '\u041D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Phone number";
88
+ readonly '\u0421\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0430\u0440\u043E\u043B\u044C': "Change password";
89
+ readonly 'E-mail \u0438\u0437\u043C\u0435\u043D\u0435\u043D': "Email has been updated";
90
+ readonly '\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u043E\u0437\u0436\u0435': "Failed to save changes. Please try again later.";
91
+ readonly '\u0421\u043C\u0435\u043D\u0430 \u043F\u043E\u0447\u0442\u044B': "Change of email";
92
+ readonly '\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F': "To continue, please enter the verification code";
93
+ readonly '\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u0447\u0435\u0440\u0435\u0437': "Repeat after";
94
+ readonly '\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0439 \u043F\u043E\u0447\u0442\u044B': "Enter your new email address";
95
+ readonly _Повторить_: "Repeat";
96
+ readonly '\u0412\u044B \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0447\u0430\u0441\u0442\u043E \u0437\u0430\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u043B\u0438 \u043A\u043E\u0434.': "You have requested the code too many times.";
97
+ readonly '\u041D\u043E\u0432\u044B\u0439 \u043A\u043E\u0434 \u043C\u043E\u0436\u043D\u043E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0447\u0435\u0440\u0435\u0437': "A new code can be obtained through";
98
+ readonly '\u0415\u0441\u043B\u0438 \u0435\u0441\u0442\u044C \u0432\u043E\u043F\u0440\u043E\u0441\u044B': "If you have any questions";
99
+ readonly '\u043F\u0438\u0448\u0438\u0442\u0435 \u0432': "write to";
100
+ readonly '\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043E\u0434': "Invalid code";
101
+ readonly '\u0422\u0430\u043A\u043E\u0439 email \u0443\u0436\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F': "This email is already in use";
102
+ readonly '\u042D\u0442\u043E \u043D\u0435 \u043F\u043E\u0445\u043E\u0436\u0435 \u043D\u0430 e-mail': "This doesn't look like email.";
103
+ readonly '\u041E\u0441\u0442\u0430\u043B\u043E\u0441\u044C 2 \u043F\u043E\u043F\u044B\u0442\u043A\u0438. \u041F\u043E\u0441\u043B\u0435 \u0438\u0441\u0447\u0435\u0440\u043F\u0430\u043D\u0438\u044F \u043B\u0438\u043C\u0438\u0442\u0430 \u0432\u0432\u043E\u0434 \u043A\u043E\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D \u043D\u0430 5 \u043C\u0438\u043D\u0443\u0442': "You have 2 attempts remaining. Once the limit is reached, code entry will be blocked for 5 minutes";
104
+ readonly '\u041E\u0441\u0442\u0430\u043B\u0430\u0441\u044C 1 \u043F\u043E\u043F\u044B\u0442\u043A\u0430. \u041F\u043E\u0441\u043B\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432\u0432\u043E\u0434 \u043A\u043E\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D \u043D\u0430 5 \u043C\u0438\u043D\u0443\u0442': "You have 1 attempt left. After another error, entering the code will be blocked for 5 minutes";
105
+ readonly '\u0421\u043C\u0435\u043D\u0430 \u043D\u043E\u043C\u0435\u0440\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Change of phone number";
106
+ readonly '\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u0438\u0437': "To continue, please enter the verification code from";
107
+ readonly '\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u043A\u043E\u0434 \u0438\u0437 \u0421\u041C\u0421': "Receive code from SMS";
108
+ readonly '\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440': "To continue, please enter a new number";
109
+ readonly '\u0422\u0430\u043A\u043E\u0439 \u043D\u043E\u043C\u0435\u0440 \u0443\u0436\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F': "This number is already in use";
110
+ readonly '\u042D\u0442\u043E \u043D\u0435 \u043F\u043E\u0445\u043E\u0436\u0435 \u043D\u0430 \u043D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "This doesn't look like a phone number";
111
+ readonly '\u0421\u043C\u0435\u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u044F': "Change password";
112
+ readonly '\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448 \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C': "Enter your current password";
113
+ readonly '\u0422\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C': "Current Password";
114
+ readonly Продолжить: "Continue";
115
+ readonly '\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C \u0434\u043B\u044F\u00A0\u0437\u0430\u0449\u0438\u0442\u044B\u00A0\u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0430. \u041F\u0430\u0440\u043E\u043B\u044C \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u043D\u0435 \u043C\u0435\u043D\u0435\u0435 8 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.': "Set a new password to protect your account. The password must be at least 8 characters long.";
116
+ readonly '\u041D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C': "New Password";
117
+ readonly '\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C': "Repeat the new password";
118
+ readonly '\u041F\u0430\u0440\u043E\u043B\u044C \u0438\u0437\u043C\u0435\u043D\u0451\u043D': "Password changed";
119
+ readonly '\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C': "Incorrect current password";
120
+ readonly '\u041E\u0441\u0442\u0430\u043B\u043E\u0441\u044C 2 \u043F\u043E\u043F\u044B\u0442\u043A\u0438. \u0412\u0432\u043E\u0434 \u043F\u0430\u0440\u043E\u043B\u044F \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D \u043D\u0430 5 \u043C\u0438\u043D\u0443\u0442.': "You have 2 attempts left. Password entry will be blocked for 5 minutes.";
121
+ readonly '\u041E\u0441\u0442\u0430\u043B\u0430\u0441\u044C 1 \u043F\u043E\u043F\u044B\u0442\u043A\u0430. \u041F\u043E\u0441\u043B\u0435 \u0438\u0441\u0447\u0435\u0440\u043F\u0430\u043D\u0438\u044F \u043B\u0438\u043C\u0438\u0442\u0430 \u0432\u0432\u043E\u0434 \u043F\u0430\u0440\u043E\u043B\u044F \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D \u043D\u0430 1 \u0447\u0430\u0441.': "You have 1 attempt remaining. Once the limit is reached, password entry will be blocked for 1 hour.";
122
+ readonly '\u0414\u043E\u0441\u0442\u0438\u0433\u043D\u0443\u0442 \u043B\u0438\u043C\u0438\u0442 \u043F\u043E\u043F\u044B\u0442\u043E\u043A \u0432\u0432\u043E\u0434\u0430 \u043F\u0430\u0440\u043E\u043B\u044F. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 1 \u0447\u0430\u0441.': "The password entry attempt limit has been reached. Please try again in 1 hour.";
123
+ readonly '\u041F\u0430\u0440\u043E\u043B\u0438 \u043D\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0442': "The passwords don't match";
124
+ readonly '\u041F\u0430\u0440\u043E\u043B\u044C \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043A\u043E\u0440\u043E\u0442\u043A\u0438\u0439. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0445\u043E\u0442\u044F \u0431\u044B 8 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.': "The password is too short. Please enter at least 8 characters.";
125
+ readonly '\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u043E\u043C\u0435\u0440\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Adding a phone number";
126
+ readonly '\u041D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D \u043A\u00A0\u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0443': "The phone number has been successfully linked to the account.";
127
+ readonly '\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u043E\u0447\u0442\u044B': "Adding mail";
128
+ readonly '\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0430\u0440\u043E\u043B\u044F': "Adding a password";
129
+ readonly '\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u044C': "Repeat password";
130
+ readonly 'E-mail \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D \u043A \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0443': "The email has been successfully linked to the account";
131
+ readonly '\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430': "Enter a new phone number";
132
+ readonly '\u0422\u0435\u043B\u0435\u0444\u043E\u043D \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D': "Phone number successfully changed";
133
+ };
134
+ };
@@ -0,0 +1 @@
1
+ export declare const checkAvailability: (email?: string, phone?: string) => Promise<import('axios').AxiosResponse<any, any, {}>>;
@@ -0,0 +1,19 @@
1
+ interface VerifyTokensResponse {
2
+ firstName: string;
3
+ lastName: string;
4
+ email: string;
5
+ phone?: string;
6
+ avatar?: string;
7
+ [key: string]: any;
8
+ }
9
+ interface TokensPayload {
10
+ accessToken: string;
11
+ refreshToken?: string;
12
+ excludeFields?: string[];
13
+ forceRefresh?: boolean;
14
+ }
15
+ /**
16
+ * Получаем актуальные данные пользователя по токену
17
+ */
18
+ export declare function fetchUserProfile(tokens: TokensPayload): Promise<VerifyTokensResponse>;
19
+ export {};
@@ -0,0 +1,7 @@
1
+ import { AxiosInstance, AxiosRequestConfig } from 'axios';
2
+ export declare function initAxios(token: string, baseUrl: string, throttlerPrefix?: string): void;
3
+ /** axios-инстанс */
4
+ export declare function getAxios(): AxiosInstance;
5
+ export declare function post<T = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<import('axios').AxiosResponse<T, any, {}>>;
6
+ export declare function get<T = any>(url: string, config?: AxiosRequestConfig): Promise<import('axios').AxiosResponse<T, any, {}>>;
7
+ export declare function del<T = any>(url: string, config?: AxiosRequestConfig): Promise<import('axios').AxiosResponse<T, any, {}>>;
@@ -0,0 +1,10 @@
1
+ export type ValuesType<T> = T[keyof T];
2
+ export declare const Provider: {
3
+ readonly Crm: "crm";
4
+ readonly Widget: "widget";
5
+ readonly Sendbot: "sendbot";
6
+ readonly Logic: "logic";
7
+ readonly Planner: "planner";
8
+ readonly Dengi: "dengi";
9
+ };
10
+ export type Provider = ValuesType<typeof Provider>;
@@ -1,6 +1,6 @@
1
1
  import { ref as n, defineComponent as L, createElementBlock as p, openBlock as v, normalizeClass as c, createVNode as w, unref as _, computed as T, renderSlot as d, createCommentVNode as h, createElementVNode as i, toDisplayString as y, createTextVNode as f } from "vue";
2
2
  import { PLoader as $ } from "@profeat/ui-kit";
3
- import { _ as b, g as C, p as R } from "./index-BqAKjNzC.js";
3
+ import { _ as b, g as C, p as R } from "./index-DYfxtE--.js";
4
4
  function g(s) {
5
5
  const e = Math.floor(s / 60), a = s % 60;
6
6
  return `${String(e).padStart(2, "0")}:${String(a).padStart(2, "0")}`;
@@ -0,0 +1 @@
1
+ declare const checkEmailFormatError: (res: any) => boolean;
@@ -0,0 +1 @@
1
+ declare const checkPhoneFormatError: (res: any) => boolean;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * преобразует телефон в формат для бэкенда (+7...),
3
+ * корректно обрабатывая ввод через 8 или 7.
4
+ */
5
+ export declare const formatPhoneForBackend: (phone: string) => string;
@@ -0,0 +1 @@
1
+ export declare const hasPhoneError: (lowerCaseError: string) => boolean;
@@ -0,0 +1,2 @@
1
+ import { Provider } from '../types';
2
+ export declare function getSupportUrl(product: Provider): string;