@snabcentr/client-ui 0.8.6 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (24) hide show
  1. package/auth/constants/phone-approve-code-mask.d.ts +1 -1
  2. package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +5 -2
  3. package/esm2020/auth/constants/phone-approve-code-mask.mjs +2 -2
  4. package/esm2020/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +4 -4
  5. package/esm2020/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +117 -0
  6. package/esm2020/form-fields/form-fields.module.mjs +80 -0
  7. package/esm2020/form-fields/suggestion-field/sc-suggestion-field.component.mjs +111 -0
  8. package/esm2020/user/index.mjs +2 -1
  9. package/esm2020/user/sc-user.module.mjs +41 -8
  10. package/esm2020/user/update-user-info-form/sc-update-user-info-form.component.mjs +97 -0
  11. package/esm2020/verification/phone-approve-form/phone-approve-form.component.mjs +26 -6
  12. package/fesm2015/snabcentr-client-ui.mjs +462 -48
  13. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  14. package/fesm2020/snabcentr-client-ui.mjs +451 -48
  15. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  16. package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +65 -0
  17. package/form-fields/form-fields.module.d.ts +17 -0
  18. package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +45 -0
  19. package/package.json +1 -1
  20. package/styles/tailwind/tailwind.scss +18 -0
  21. package/user/index.d.ts +1 -0
  22. package/user/sc-user.module.d.ts +9 -6
  23. package/user/update-user-info-form/sc-update-user-info-form.component.d.ts +56 -0
  24. 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snabcentr/client-ui",
3
- "version": "0.8.6",
3
+ "version": "0.9.0",
4
4
  "author": "Snabcentr Ltd.",
5
5
  "repository": "https://gitlab.snabcentr.met/web/angular/snabcentr-client-ui-lib",
6
6
  "license": "Commercial",
@@ -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
@@ -1,2 +1,3 @@
1
1
  export * from './reset-user-password/sc-reset-user-password.component';
2
+ export * from './update-user-info-form/sc-update-user-info-form.component';
2
3
  export * from './sc-user.module';
@@ -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 "@angular/common";
4
- import * as i3 from "@angular/forms";
5
- import * as i4 from "@taiga-ui/kit";
6
- import * as i5 from "@taiga-ui/core";
7
- import * as i6 from "@taiga-ui/cdk";
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 i2.CommonModule, typeof i3.FormsModule, typeof i3.ReactiveFormsModule, typeof i4.TuiFieldErrorPipeModule, typeof i4.TuiInputPasswordModule, typeof i5.TuiButtonModule, typeof i5.TuiErrorModule, typeof i5.TuiLabelModule, typeof i5.TuiTextfieldControllerModule, typeof i6.TuiLetModule], [typeof i1.ScResetUserPasswordComponent]>;
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
- phoneApproveCode: FormControl<string | null>;
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 approveCodeMask: MaskitoOptions;
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
  }