@snabcentr/client-ui 0.8.7 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- package/auth/constants/phone-approve-code-mask.d.ts +1 -1
- package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +5 -2
- package/esm2020/auth/constants/phone-approve-code-mask.mjs +2 -2
- package/esm2020/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +4 -4
- package/esm2020/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +117 -0
- package/esm2020/form-fields/form-fields.module.mjs +80 -0
- package/esm2020/form-fields/suggestion-field/sc-suggestion-field.component.mjs +111 -0
- package/esm2020/user/index.mjs +2 -1
- package/esm2020/user/sc-user.module.mjs +41 -8
- package/esm2020/user/update-user-info-form/sc-update-user-info-form.component.mjs +97 -0
- package/esm2020/verification/phone-approve-form/phone-approve-form.component.mjs +26 -6
- package/fesm2015/snabcentr-client-ui.mjs +462 -48
- package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
- package/fesm2020/snabcentr-client-ui.mjs +451 -48
- package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
- package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +65 -0
- package/form-fields/form-fields.module.d.ts +17 -0
- package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +45 -0
- package/package.json +1 -1
- package/styles/tailwind/tailwind.scss +18 -0
- package/user/index.d.ts +1 -0
- package/user/sc-user.module.d.ts +9 -6
- package/user/update-user-info-form/sc-update-user-info-form.component.d.ts +56 -0
- package/verification/phone-approve-form/phone-approve-form.component.d.ts +15 -3
@@ -0,0 +1,65 @@
|
|
1
|
+
import { OnInit } from '@angular/core';
|
2
|
+
import { FormControl, FormGroupDirective } from '@angular/forms';
|
3
|
+
import { ScICity, ScICountry, ScIRegion, ScLocationsService } from '@snabcentr/client-core';
|
4
|
+
import { Observable } from 'rxjs';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
/**
|
7
|
+
* Компонент поля ввода страны/региона/города.
|
8
|
+
*/
|
9
|
+
export declare class ScAddressesSelectionFieldComponent implements OnInit {
|
10
|
+
private readonly formGroupDirective;
|
11
|
+
private readonly locationsService;
|
12
|
+
/**
|
13
|
+
* FormControl для поля страны.
|
14
|
+
*/
|
15
|
+
countryControl: FormControl<ScICountry | null>;
|
16
|
+
/**
|
17
|
+
* FormControl для поля региона.
|
18
|
+
*/
|
19
|
+
regionControl: FormControl<ScIRegion | null>;
|
20
|
+
/**
|
21
|
+
* FormControl для поля города.
|
22
|
+
*/
|
23
|
+
cityControl: FormControl<ScICity | null>;
|
24
|
+
/**
|
25
|
+
* {@link Observable} изменения списка стран.
|
26
|
+
*/
|
27
|
+
countries$: Observable<ScICountry[] | null>;
|
28
|
+
/**
|
29
|
+
* {@link Observable} изменения списка регионов.
|
30
|
+
*/
|
31
|
+
regions$: Observable<ScIRegion[] | null>;
|
32
|
+
/**
|
33
|
+
* {@link Observable} изменения списка городов.
|
34
|
+
*/
|
35
|
+
cities$: Observable<ScICity[] | null>;
|
36
|
+
/**
|
37
|
+
* `FormControl` поля идентификатора города.
|
38
|
+
*/
|
39
|
+
get cityIdControl(): FormControl<string | null>;
|
40
|
+
/**
|
41
|
+
* Инициализирует экземпляр класса {@link BankSuggestionFieldsComponent}.
|
42
|
+
*
|
43
|
+
* @param formGroupDirective Директива c `FormGroup` из DOM.
|
44
|
+
* @param locationsService Сервис для получения списков стран, регионов, городов.
|
45
|
+
*/
|
46
|
+
constructor(formGroupDirective: FormGroupDirective, locationsService: ScLocationsService);
|
47
|
+
/** @inheritDoc */
|
48
|
+
ngOnInit(): void;
|
49
|
+
/**
|
50
|
+
* Заполнение полей банковских реквизитов на основе выбранной подсказки.
|
51
|
+
*
|
52
|
+
* @param suggestion Объект подсказки по банку.
|
53
|
+
*/
|
54
|
+
onSelectedCity(city: ScICity | null): void;
|
55
|
+
/**
|
56
|
+
* Функция преобразования объекта сортировки в значение, отображаемое в поле ввода.
|
57
|
+
*
|
58
|
+
* @param item Выбранный объект выпадающего списка.
|
59
|
+
*/
|
60
|
+
readonly stringify: (item: {
|
61
|
+
name: string;
|
62
|
+
}) => string;
|
63
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScAddressesSelectionFieldComponent, [{ skipSelf: true; }, null]>;
|
64
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScAddressesSelectionFieldComponent, "sc-addresses-selection-field", never, {}, {}, never, never, false>;
|
65
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
import * as i1 from "./addresses-selection-field/sc-addresses-selection-field.component";
|
3
|
+
import * as i2 from "./suggestion-field/sc-suggestion-field.component";
|
4
|
+
import * as i3 from "@angular/common";
|
5
|
+
import * as i4 from "@angular/forms";
|
6
|
+
import * as i5 from "@taiga-ui/kit";
|
7
|
+
import * as i6 from "@taiga-ui/core";
|
8
|
+
import * as i7 from "@taiga-ui/cdk";
|
9
|
+
import * as i8 from "@maskito/angular";
|
10
|
+
/**
|
11
|
+
* Модуль полей ввода.
|
12
|
+
*/
|
13
|
+
export declare class ScFormFieldsModule {
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScFormFieldsModule, never>;
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ScFormFieldsModule, [typeof i1.ScAddressesSelectionFieldComponent, typeof i2.ScSuggestionFieldComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i5.TuiInputModule, typeof i6.TuiTextfieldControllerModule, typeof i6.TuiLabelModule, typeof i7.TuiLetModule, typeof i5.TuiFieldErrorPipeModule, typeof i6.TuiErrorModule, typeof i6.TuiDataListModule, typeof i6.TuiLoaderModule, typeof i5.TuiComboBoxModule, typeof i5.TuiDataListWrapperModule, typeof i5.TuiFilterByInputPipeModule, typeof i5.TuiStringifyContentPipeModule, typeof i5.TuiInputPhoneModule, typeof i6.TuiButtonModule, typeof i8.MaskitoModule], [typeof i1.ScAddressesSelectionFieldComponent, typeof i2.ScSuggestionFieldComponent]>;
|
16
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ScFormFieldsModule>;
|
17
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { OnInit } from '@angular/core';
|
2
|
+
import { NgControl } from '@angular/forms';
|
3
|
+
import { ScISuggestionType, ScSuggestion, ScSuggestionService } from '@snabcentr/client-core';
|
4
|
+
import { Observable } from 'rxjs';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
/**
|
7
|
+
* Компонент подсказок для поля ввода.
|
8
|
+
*/
|
9
|
+
export declare class ScSuggestionFieldComponent implements OnInit {
|
10
|
+
readonly control: NgControl;
|
11
|
+
private readonly suggestionService;
|
12
|
+
/**
|
13
|
+
* Тип подсказок.
|
14
|
+
*/
|
15
|
+
type: ScISuggestionType;
|
16
|
+
/**
|
17
|
+
* {@link Observable} подсказок.
|
18
|
+
*/
|
19
|
+
suggestions$?: Observable<ScSuggestion[] | null>;
|
20
|
+
/**
|
21
|
+
* {@link Observable} состояние запроса подсказок.
|
22
|
+
*/
|
23
|
+
loading$?: Observable<boolean>;
|
24
|
+
/**
|
25
|
+
* Перечисление типов подсказок.
|
26
|
+
*/
|
27
|
+
readonly suggestionType: typeof ScISuggestionType;
|
28
|
+
/**
|
29
|
+
* Инициализирует экземпляр класса {@link ScSuggestionFieldComponent}.
|
30
|
+
*
|
31
|
+
* @param control Контрол поля ввода.
|
32
|
+
* @param suggestionService Сервис работы с API подсказок.
|
33
|
+
*/
|
34
|
+
constructor(control: NgControl, suggestionService: ScSuggestionService);
|
35
|
+
/** @inheritDoc */
|
36
|
+
ngOnInit(): void;
|
37
|
+
/**
|
38
|
+
* Заполнение полей основе выбранной подсказки.
|
39
|
+
*
|
40
|
+
* @param suggestion Объект подсказки.
|
41
|
+
*/
|
42
|
+
onSelected(suggestion: ScSuggestion): void;
|
43
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScSuggestionFieldComponent, [{ skipSelf: true; }, null]>;
|
44
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScSuggestionFieldComponent, "sc-suggestion-field", never, { "type": "type"; }, {}, never, never, false>;
|
45
|
+
}
|
package/package.json
CHANGED
@@ -739,6 +739,10 @@ video {
|
|
739
739
|
margin-bottom: 2rem;
|
740
740
|
}
|
741
741
|
|
742
|
+
.ml-2 {
|
743
|
+
margin-left: 0.5rem;
|
744
|
+
}
|
745
|
+
|
742
746
|
.mr-2 {
|
743
747
|
margin-right: 0.5rem;
|
744
748
|
}
|
@@ -1050,6 +1054,10 @@ video {
|
|
1050
1054
|
align-content: center;
|
1051
1055
|
}
|
1052
1056
|
|
1057
|
+
.\!items-start {
|
1058
|
+
align-items: flex-start !important;
|
1059
|
+
}
|
1060
|
+
|
1053
1061
|
.items-start {
|
1054
1062
|
align-items: flex-start;
|
1055
1063
|
}
|
@@ -1417,6 +1425,10 @@ video {
|
|
1417
1425
|
color: var(--tui-error-fill);
|
1418
1426
|
}
|
1419
1427
|
|
1428
|
+
.text-tui-link {
|
1429
|
+
color: var(--tui-link);
|
1430
|
+
}
|
1431
|
+
|
1420
1432
|
.text-tui-primary {
|
1421
1433
|
color: var(--tui-primary);
|
1422
1434
|
}
|
@@ -1568,6 +1580,12 @@ video {
|
|
1568
1580
|
display: block;
|
1569
1581
|
}
|
1570
1582
|
|
1583
|
+
@media (min-width: 640px) {
|
1584
|
+
.sm\:flex-row {
|
1585
|
+
flex-direction: row;
|
1586
|
+
}
|
1587
|
+
}
|
1588
|
+
|
1571
1589
|
@media (min-width: 768px) {
|
1572
1590
|
.md\:mt-6 {
|
1573
1591
|
margin-top: 1.5rem;
|
package/user/index.d.ts
CHANGED
package/user/sc-user.module.d.ts
CHANGED
@@ -1,15 +1,18 @@
|
|
1
1
|
import * as i0 from "@angular/core";
|
2
2
|
import * as i1 from "./reset-user-password/sc-reset-user-password.component";
|
3
|
-
import * as i2 from "
|
4
|
-
import * as i3 from "@angular/
|
5
|
-
import * as i4 from "@
|
6
|
-
import * as i5 from "@taiga-ui/
|
7
|
-
import * as i6 from "@taiga-ui/
|
3
|
+
import * as i2 from "./update-user-info-form/sc-update-user-info-form.component";
|
4
|
+
import * as i3 from "@angular/common";
|
5
|
+
import * as i4 from "@angular/forms";
|
6
|
+
import * as i5 from "@taiga-ui/kit";
|
7
|
+
import * as i6 from "@taiga-ui/core";
|
8
|
+
import * as i7 from "@taiga-ui/cdk";
|
9
|
+
import * as i8 from "../verification/sc-verification.module";
|
10
|
+
import * as i9 from "../form-fields/form-fields.module";
|
8
11
|
/**
|
9
12
|
* Модуль компонентов пользователя.
|
10
13
|
*/
|
11
14
|
export declare class ScUserModule {
|
12
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScUserModule, never>;
|
13
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ScUserModule, [typeof i1.ScResetUserPasswordComponent], [typeof
|
16
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ScUserModule, [typeof i1.ScResetUserPasswordComponent, typeof i2.ScUpdateUserInfoFormComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i5.TuiFieldErrorPipeModule, typeof i5.TuiInputPasswordModule, typeof i6.TuiButtonModule, typeof i6.TuiErrorModule, typeof i6.TuiLabelModule, typeof i6.TuiTextfieldControllerModule, typeof i7.TuiLetModule, typeof i8.ScVerificationModule, typeof i9.ScFormFieldsModule, typeof i6.TuiLoaderModule, typeof i5.TuiInputModule, typeof i5.TuiInputPhoneModule, typeof i5.TuiCheckboxModule, typeof i5.TuiCheckboxLabeledModule, typeof i6.TuiDataListModule, typeof i5.TuiSelectModule, typeof i6.TuiModeModule], [typeof i1.ScResetUserPasswordComponent, typeof i2.ScUpdateUserInfoFormComponent]>;
|
14
17
|
static ɵinj: i0.ɵɵInjectorDeclaration<ScUserModule>;
|
15
18
|
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
2
|
+
import { FormGroup, FormControl } from '@angular/forms';
|
3
|
+
import { ScISuggestionType, ScUser, ScUserService } from '@snabcentr/client-core';
|
4
|
+
import { Observable, Subject } from 'rxjs';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
/**
|
7
|
+
* Компонент формы изменения данных пользователя.
|
8
|
+
*/
|
9
|
+
export declare class ScUpdateUserInfoFormComponent {
|
10
|
+
readonly user$: Observable<ScUser>;
|
11
|
+
private readonly userService;
|
12
|
+
/**
|
13
|
+
* Перечисление типов подсказок.
|
14
|
+
*/
|
15
|
+
readonly suggestionType: typeof ScISuggestionType;
|
16
|
+
/**
|
17
|
+
* Группа полей ввода формы общих данных пользователя для их редактирования.
|
18
|
+
*/
|
19
|
+
readonly form: FormGroup<{
|
20
|
+
name: FormControl<string | null>;
|
21
|
+
email: FormControl<string | null>;
|
22
|
+
phone: FormControl<string | null>;
|
23
|
+
verificationCode: FormControl<string | null>;
|
24
|
+
cityId: FormControl<number | null>;
|
25
|
+
getNews: FormControl<boolean | null>;
|
26
|
+
}>;
|
27
|
+
/**
|
28
|
+
* Сигнал нажатия на кнопку "Отмена".
|
29
|
+
*/
|
30
|
+
readonly cancelButtonClick: EventEmitter<void>;
|
31
|
+
/**
|
32
|
+
* Сигнал события успешного обновления данных пользователя.
|
33
|
+
*/
|
34
|
+
readonly successUpdateDate: Observable<ScUser>;
|
35
|
+
/**
|
36
|
+
* {@link Subject} события отправки формы.
|
37
|
+
*/
|
38
|
+
readonly onSubmit: Subject<void>;
|
39
|
+
/**
|
40
|
+
* {@link Observable} запроса обновления данных пользователя.
|
41
|
+
*/
|
42
|
+
private readonly request$;
|
43
|
+
/**
|
44
|
+
* {@link Observable} Изменения состояния загрузки данных аутентификации по email.
|
45
|
+
*/
|
46
|
+
readonly loading$: Observable<boolean>;
|
47
|
+
/**
|
48
|
+
* Инициализирует экземпляр класса {@link ScUpdateUserInfoFormComponent}.
|
49
|
+
*
|
50
|
+
* @param user$ Поток информации о текущем пользователе.
|
51
|
+
* @param userService Сервис информации о пользователе.
|
52
|
+
*/
|
53
|
+
constructor(user$: Observable<ScUser>, userService: ScUserService);
|
54
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScUpdateUserInfoFormComponent, never>;
|
55
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScUpdateUserInfoFormComponent, "sc-update-user-info-form", never, {}, { "cancelButtonClick": "cancelButtonClick"; "successUpdateDate": "successUpdateDate"; }, never, never, false>;
|
56
|
+
}
|
@@ -10,6 +10,18 @@ import * as i0 from "@angular/core";
|
|
10
10
|
export declare class ScPhoneApproveFormComponent implements OnInit {
|
11
11
|
private readonly verificationService;
|
12
12
|
private readonly formGroupDirective?;
|
13
|
+
/**
|
14
|
+
* Признак, следует ли отображать функционал кода подтверждения.
|
15
|
+
*/
|
16
|
+
private _showCodeFields;
|
17
|
+
/**
|
18
|
+
* Признак, следует ли отображать функционал кода подтверждения.
|
19
|
+
*/
|
20
|
+
set showCodeFields(showCodeFields: boolean);
|
21
|
+
/**
|
22
|
+
* Признак, следует ли отображать функционал кода подтверждения.
|
23
|
+
*/
|
24
|
+
get showCodeFields(): boolean;
|
13
25
|
/**
|
14
26
|
* Признак, следует ли телефону быть в системе. От этого признака зависит в каких случаях выдавать ошибку при проверки занятости телефона.
|
15
27
|
*/
|
@@ -31,7 +43,7 @@ export declare class ScPhoneApproveFormComponent implements OnInit {
|
|
31
43
|
*/
|
32
44
|
get form(): FormGroup<{
|
33
45
|
phone: FormControl<string | null>;
|
34
|
-
|
46
|
+
verificationCode: FormControl<string | null>;
|
35
47
|
}>;
|
36
48
|
/**
|
37
49
|
* Поле ввода 'Номер телефона'.
|
@@ -52,7 +64,7 @@ export declare class ScPhoneApproveFormComponent implements OnInit {
|
|
52
64
|
/**
|
53
65
|
* Маска поля ввода кода для подтверждения.
|
54
66
|
*/
|
55
|
-
readonly
|
67
|
+
readonly verificationCodeMask: MaskitoOptions;
|
56
68
|
/**
|
57
69
|
* {@link Subject} События запуска/остановки таймера.
|
58
70
|
*/
|
@@ -79,5 +91,5 @@ export declare class ScPhoneApproveFormComponent implements OnInit {
|
|
79
91
|
*/
|
80
92
|
setHaveCode(haveCode: boolean): void;
|
81
93
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScPhoneApproveFormComponent, never>;
|
82
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ScPhoneApproveFormComponent, "sc-phone-approve-form", never, { "shouldBeBusy": "shouldBeBusy"; "shouldBeConfirmed": "shouldBeConfirmed"; "haveCode": "haveCode"; }, { "haveCodeChange": "haveCodeChange"; }, never, never, false>;
|
94
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScPhoneApproveFormComponent, "sc-phone-approve-form", never, { "showCodeFields": "showCodeFields"; "shouldBeBusy": "shouldBeBusy"; "shouldBeConfirmed": "shouldBeConfirmed"; "haveCode": "haveCode"; }, { "haveCodeChange": "haveCodeChange"; }, never, never, false>;
|
83
95
|
}
|