@snabcentr/client-ui 0.14.3 → 0.15.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/accordion/sc-accordion.component.d.ts +9 -0
  2. package/auth/index.d.ts +0 -1
  3. package/catalog/input-quantity/sc-input-quantity.component.d.ts +3 -0
  4. package/contacts/add-contact-dialog/sc-add-contact-dialog.component.d.ts +44 -0
  5. package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +3 -3
  6. package/contacts/index.d.ts +2 -2
  7. package/contacts/new-contact-form/sc-new-contact-form.component.d.ts +23 -0
  8. package/contacts/sc-contacts.module.d.ts +3 -3
  9. package/{contacts → contragents}/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.d.ts +1 -1
  10. package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +147 -0
  11. package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +24 -6
  12. package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +19 -8
  13. package/contragents/index.d.ts +4 -0
  14. package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +100 -0
  15. package/contragents/sc-contragents.module.d.ts +15 -6
  16. package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +53 -0
  17. package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +23 -5
  18. package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +17 -2
  19. package/delivery-address/index.d.ts +1 -0
  20. package/delivery-address/sc-delivery-address.module.d.ts +10 -6
  21. package/directives/carousel-item-hidden/sc-carousel-item-hidden.directive.d.ts +24 -0
  22. package/directives/carousel-item-hidden/sc-carousel-item-hidden.module.d.ts +11 -0
  23. package/directives/index.d.ts +2 -0
  24. package/esm2020/accordion/sc-accordion.component.mjs +14 -4
  25. package/esm2020/auth/index.mjs +1 -2
  26. package/esm2020/catalog/input-quantity/sc-input-quantity.component.mjs +6 -1
  27. package/esm2020/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +71 -0
  28. package/esm2020/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +6 -6
  29. package/esm2020/contacts/index.mjs +3 -3
  30. package/esm2020/contacts/new-contact-form/sc-new-contact-form.component.mjs +28 -0
  31. package/esm2020/contacts/sc-contacts.module.mjs +7 -7
  32. package/esm2020/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +71 -0
  33. package/esm2020/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +249 -0
  34. package/esm2020/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +32 -11
  35. package/esm2020/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +24 -12
  36. package/esm2020/contragents/index.mjs +5 -1
  37. package/esm2020/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +61 -0
  38. package/esm2020/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +183 -0
  39. package/esm2020/contragents/sc-contragents.module.mjs +84 -7
  40. package/esm2020/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +79 -0
  41. package/esm2020/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +28 -8
  42. package/esm2020/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +21 -3
  43. package/esm2020/delivery-address/index.mjs +2 -1
  44. package/esm2020/delivery-address/sc-delivery-address.module.mjs +58 -7
  45. package/esm2020/directives/carousel-item-hidden/sc-carousel-item-hidden.directive.mjs +40 -0
  46. package/esm2020/directives/carousel-item-hidden/sc-carousel-item-hidden.module.mjs +21 -0
  47. package/esm2020/directives/index.mjs +3 -0
  48. package/esm2020/masks/index.mjs +5 -1
  49. package/esm2020/masks/sc-inn-mask.mjs +13 -0
  50. package/esm2020/masks/sc-kpp-mask.mjs +7 -0
  51. package/esm2020/masks/sc-okpo-mask.mjs +13 -0
  52. package/esm2020/masks/sc-phone-verification-code-mask.mjs +7 -0
  53. package/esm2020/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +67 -8
  54. package/esm2020/profile/sc-profile.module.mjs +8 -4
  55. package/esm2020/public-api.mjs +2 -1
  56. package/esm2020/user/reset-user-password/sc-reset-user-password.component.mjs +24 -18
  57. package/esm2020/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +3 -3
  58. package/fesm2015/snabcentr-client-ui.mjs +1176 -264
  59. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  60. package/fesm2020/snabcentr-client-ui.mjs +1155 -262
  61. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  62. package/masks/index.d.ts +4 -0
  63. package/masks/sc-inn-mask.d.ts +9 -0
  64. package/masks/sc-kpp-mask.d.ts +5 -0
  65. package/masks/sc-okpo-mask.d.ts +9 -0
  66. package/{auth/constants/phone-approve-code-mask.d.ts → masks/sc-phone-verification-code-mask.d.ts} +1 -1
  67. package/package.json +2 -2
  68. package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +50 -4
  69. package/profile/sc-profile.module.d.ts +2 -1
  70. package/public-api.d.ts +1 -0
  71. package/styles/tailwind/tailwind.scss +30 -6
  72. package/user/reset-user-password/sc-reset-user-password.component.d.ts +11 -3
  73. package/esm2020/auth/constants/phone-approve-code-mask.mjs +0 -7
  74. package/esm2020/contacts/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +0 -72
  75. package/esm2020/contacts/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +0 -61
  76. /package/{contacts → contragents}/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.d.ts +0 -0
package/masks/index.d.ts CHANGED
@@ -1,3 +1,7 @@
1
1
  export * from './sc-account-number-mask';
2
2
  export * from './sc-bic-mask';
3
3
  export * from './sc-correspondent-account-mask';
4
+ export * from './sc-inn-mask';
5
+ export * from './sc-kpp-mask';
6
+ export * from './sc-okpo-mask';
7
+ export * from './sc-phone-verification-code-mask';
@@ -0,0 +1,9 @@
1
+ import { MaskitoOptions } from '@maskito/core';
2
+ /**
3
+ * Маска поля ввода ИНН индивидуального предпринимателя.
4
+ */
5
+ export declare const scEntrepreneurInnMask: MaskitoOptions;
6
+ /**
7
+ * Маска поля ввода ИНН юридического лица.
8
+ */
9
+ export declare const scLegalInnMask: MaskitoOptions;
@@ -0,0 +1,5 @@
1
+ import { MaskitoOptions } from '@maskito/core';
2
+ /**
3
+ * Маска поля ввода КПП.
4
+ */
5
+ export declare const scKppMask: MaskitoOptions;
@@ -0,0 +1,9 @@
1
+ import { MaskitoOptions } from '@maskito/core';
2
+ /**
3
+ * Маска поля ввода ОКПО индивидуального предпринимателя.
4
+ */
5
+ export declare const scEntrepreneurOkpoMask: MaskitoOptions;
6
+ /**
7
+ * Маска поля ввода ОКПО юридического лица.
8
+ */
9
+ export declare const scLegalOkpoMask: MaskitoOptions;
@@ -2,4 +2,4 @@ import { MaskitoOptions } from '@maskito/core';
2
2
  /**
3
3
  * Маска поля ввода кода подтверждения телефона.
4
4
  */
5
- export declare const verificationCodeMask: MaskitoOptions;
5
+ export declare const scPhoneVerificationCodeMask: MaskitoOptions;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snabcentr/client-ui",
3
- "version": "0.14.3",
3
+ "version": "0.15.2",
4
4
  "author": "Snabcentr Ltd.",
5
5
  "repository": "https://gitlab.snabcentr.met/web/angular/snabcentr-client-ui-lib",
6
6
  "license": "Commercial",
@@ -14,7 +14,7 @@
14
14
  "@angular/platform-browser": ">=14.2.12",
15
15
  "@angular/platform-browser-dynamic": ">=14.2.12",
16
16
  "@angular/material": ">=14.2.7",
17
- "@snabcentr/client-core": ">=0.9.0",
17
+ "@snabcentr/client-core": ">=0.12.0",
18
18
  "@maskito/angular": ">=1.7.0",
19
19
  "@maskito/core": ">=1.7.0",
20
20
  "@taiga-ui/addon-charts": ">=3.42.1",
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from '@angular/core';
2
- import { ScICity, ScLocationsService, ScUser, ScUserService, ScVerificationService } from '@snabcentr/client-core';
2
+ import { ScContragent, ScIBankAccount, ScICity, ScIContact, ScIDeliveryAddress, ScLocationsService, ScUser, ScUserService, ScVerificationService } from '@snabcentr/client-core';
3
3
  import { Observable, Subject } from 'rxjs';
4
4
  import { FormControl } from '@angular/forms';
5
5
  import * as i0 from "@angular/core";
@@ -40,7 +40,11 @@ export declare class ScProfileAccordionsContentComponent {
40
40
  */
41
41
  readonly isSendApproveEmail$: Observable<boolean>;
42
42
  /**
43
- * Событие нажатия на кнопку редактирование контактного лица.
43
+ * {@link Observable} изменения списка контактных лиц пользователя.
44
+ */
45
+ readonly userContacts$: Observable<ScIContact[] | null>;
46
+ /**
47
+ * Событие нажатия на кнопку редактирование профиля пользователя.
44
48
  */
45
49
  editProfileClick: EventEmitter<void>;
46
50
  /**
@@ -51,14 +55,56 @@ export declare class ScProfileAccordionsContentComponent {
51
55
  * Событие нажатия на кнопку добавления контрагента.
52
56
  */
53
57
  addContragentClick: EventEmitter<void>;
58
+ /**
59
+ * Событие нажатия на кнопку удаления контрагента.
60
+ */
61
+ deleteContragentClick: EventEmitter<ScContragent>;
54
62
  /**
55
63
  * Событие нажатия на кнопку добавления банковского счёта контрагенту.
56
64
  */
57
- addContragentBankAccountsClick: EventEmitter<number>;
65
+ addContragentBankAccountClick: EventEmitter<ScContragent>;
66
+ /**
67
+ * Событие нажатия на кнопку удаления банковского счёта контрагента.
68
+ */
69
+ deleteContragentBankAccountClick: EventEmitter<ScIBankAccount>;
70
+ /**
71
+ * Событие нажатия на кнопку добавления контактного лица контрагенту.
72
+ */
73
+ addContragentContactClick: EventEmitter<ScContragent>;
74
+ /**
75
+ * Событие нажатия на кнопку удаления контактного лица у контрагента.
76
+ */
77
+ deleteContragentContactClick: EventEmitter<{
78
+ contact: ScIContact;
79
+ contragent: ScContragent;
80
+ }>;
58
81
  /**
59
82
  * Событие нажатия на кнопку добавления адреса доставки клиента.
60
83
  */
61
84
  addDeliveryAddressClick: EventEmitter<void>;
85
+ /**
86
+ * Событие нажатия на кнопку удаления адреса доставки у клиента.
87
+ */
88
+ deleteDeliveryAddressClick: EventEmitter<ScIDeliveryAddress>;
89
+ /**
90
+ * Событие нажатия на кнопку добавления контактного лица для адреса доставки.
91
+ */
92
+ addDeliveryAddressContactClick: EventEmitter<ScIDeliveryAddress>;
93
+ /**
94
+ * Событие нажатия на кнопку удаления контактного лица у адреса доставки.
95
+ */
96
+ deleteDeliveryAddressContactClick: EventEmitter<{
97
+ contact: ScIContact;
98
+ address: ScIDeliveryAddress;
99
+ }>;
100
+ /**
101
+ * Событие нажатия на кнопку добавления контактного лица клиенту.
102
+ */
103
+ addUserContactClick: EventEmitter<number>;
104
+ /**
105
+ * Событие нажатия на кнопку удаления контактного лица у клиента.
106
+ */
107
+ deleteUserContactClick: EventEmitter<ScIContact>;
62
108
  /**
63
109
  * Инициализирует экземпляр класса {@link ScProfileComponent}.
64
110
  *
@@ -75,5 +121,5 @@ export declare class ScProfileAccordionsContentComponent {
75
121
  */
76
122
  getUserCity$(cityId: number): Observable<ScICity>;
77
123
  static ɵfac: i0.ɵɵFactoryDeclaration<ScProfileAccordionsContentComponent, never>;
78
- static ɵcmp: i0.ɵɵComponentDeclaration<ScProfileAccordionsContentComponent, "sc-profile-accordions-content", never, {}, { "editProfileClick": "editProfileClick"; "approvePhoneClick": "approvePhoneClick"; "addContragentClick": "addContragentClick"; "addContragentBankAccountsClick": "addContragentBankAccountsClick"; "addDeliveryAddressClick": "addDeliveryAddressClick"; }, never, never, false>;
124
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScProfileAccordionsContentComponent, "sc-profile-accordions-content", never, {}, { "editProfileClick": "editProfileClick"; "approvePhoneClick": "approvePhoneClick"; "addContragentClick": "addContragentClick"; "deleteContragentClick": "deleteContragentClick"; "addContragentBankAccountClick": "addContragentBankAccountClick"; "deleteContragentBankAccountClick": "deleteContragentBankAccountClick"; "addContragentContactClick": "addContragentContactClick"; "deleteContragentContactClick": "deleteContragentContactClick"; "addDeliveryAddressClick": "addDeliveryAddressClick"; "deleteDeliveryAddressClick": "deleteDeliveryAddressClick"; "addDeliveryAddressContactClick": "addDeliveryAddressContactClick"; "deleteDeliveryAddressContactClick": "deleteDeliveryAddressContactClick"; "addUserContactClick": "addUserContactClick"; "deleteUserContactClick": "deleteUserContactClick"; }, never, never, false>;
79
125
  }
@@ -9,11 +9,12 @@ import * as i7 from "@taiga-ui/core";
9
9
  import * as i8 from "@taiga-ui/cdk";
10
10
  import * as i9 from "@taiga-ui/kit";
11
11
  import * as i10 from "@angular/forms";
12
+ import * as i11 from "../contacts/sc-contacts.module";
12
13
  /**
13
14
  * Модуль профиля пользователя.
14
15
  */
15
16
  export declare class ScProfileModule {
16
17
  static ɵfac: i0.ɵɵFactoryDeclaration<ScProfileModule, never>;
17
- static ɵmod: i0.ɵɵNgModuleDeclaration<ScProfileModule, [typeof i1.ScProfileAccordionsContentComponent], [typeof i2.CommonModule, typeof i3.ScUserModule, typeof i4.ScAccordionModule, typeof i5.ScContragentsModule, typeof i6.ScDeliveryAddressModule, typeof i7.TuiLoaderModule, typeof i8.TuiLetModule, typeof i7.TuiLinkModule, typeof i7.TuiModeModule, typeof i7.TuiFormatPhonePipeModule, typeof i9.TuiCheckboxLabeledModule, typeof i7.TuiSvgModule, typeof i10.FormsModule, typeof i10.ReactiveFormsModule, typeof i7.TuiLoaderModule, typeof i7.TuiButtonModule], [typeof i1.ScProfileAccordionsContentComponent]>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ScProfileModule, [typeof i1.ScProfileAccordionsContentComponent], [typeof i2.CommonModule, typeof i3.ScUserModule, typeof i4.ScAccordionModule, typeof i5.ScContragentsModule, typeof i6.ScDeliveryAddressModule, typeof i7.TuiLoaderModule, typeof i8.TuiLetModule, typeof i7.TuiLinkModule, typeof i7.TuiModeModule, typeof i7.TuiFormatPhonePipeModule, typeof i9.TuiCheckboxLabeledModule, typeof i7.TuiSvgModule, typeof i10.FormsModule, typeof i10.ReactiveFormsModule, typeof i7.TuiLoaderModule, typeof i7.TuiButtonModule, typeof i11.ScContactsModule], [typeof i1.ScProfileAccordionsContentComponent]>;
18
19
  static ɵinj: i0.ɵɵInjectorDeclaration<ScProfileModule>;
19
20
  }
package/public-api.d.ts CHANGED
@@ -6,6 +6,7 @@ export * from './catalog';
6
6
  export * from './contragents';
7
7
  export * from './contacts';
8
8
  export * from './delivery-address';
9
+ export * from './directives';
9
10
  export * from './files';
10
11
  export * from './icons';
11
12
  export * from './loader';
@@ -818,10 +818,18 @@ video {
818
818
  height: 100% !important;
819
819
  }
820
820
 
821
+ .h-10 {
822
+ height: 2.5rem;
823
+ }
824
+
821
825
  .h-11 {
822
826
  height: 2.75rem;
823
827
  }
824
828
 
829
+ .h-12 {
830
+ height: 3rem;
831
+ }
832
+
825
833
  .h-20 {
826
834
  height: 5rem;
827
835
  }
@@ -874,6 +882,10 @@ video {
874
882
  height: 100%;
875
883
  }
876
884
 
885
+ .h-px {
886
+ height: 1px;
887
+ }
888
+
877
889
  .max-h-52 {
878
890
  max-height: 13rem;
879
891
  }
@@ -1008,10 +1020,6 @@ video {
1008
1020
  grid-template-columns: repeat(auto-fill,minmax(21rem,1fr));
1009
1021
  }
1010
1022
 
1011
- .grid-rows-3 {
1012
- grid-template-rows: repeat(3, minmax(0, 1fr));
1013
- }
1014
-
1015
1023
  .flex-col {
1016
1024
  flex-direction: column;
1017
1025
  }
@@ -1072,6 +1080,10 @@ video {
1072
1080
  gap: 1rem;
1073
1081
  }
1074
1082
 
1083
+ .gap-5 {
1084
+ gap: 1.25rem;
1085
+ }
1086
+
1075
1087
  .gap-x-2 {
1076
1088
  -moz-column-gap: 0.5rem;
1077
1089
  column-gap: 0.5rem;
@@ -1179,6 +1191,10 @@ video {
1179
1191
  background-color: var(--tui-base-03);
1180
1192
  }
1181
1193
 
1194
+ .bg-tui-base-04 {
1195
+ background-color: var(--tui-base-04);
1196
+ }
1197
+
1182
1198
  .bg-tui-primary {
1183
1199
  background-color: var(--tui-primary);
1184
1200
  }
@@ -1264,6 +1280,10 @@ video {
1264
1280
  padding-bottom: 1.125rem;
1265
1281
  }
1266
1282
 
1283
+ .pb-1 {
1284
+ padding-bottom: 0.25rem;
1285
+ }
1286
+
1267
1287
  .pl-4 {
1268
1288
  padding-left: 1rem;
1269
1289
  }
@@ -1556,8 +1576,8 @@ video {
1556
1576
  }
1557
1577
 
1558
1578
  @media (min-width: 1024px) {
1559
- .lg\:mt-6 {
1560
- margin-top: 1.5rem;
1579
+ .lg\:mt-5 {
1580
+ margin-top: 1.25rem;
1561
1581
  }
1562
1582
 
1563
1583
  .lg\:\!block {
@@ -1568,6 +1588,10 @@ video {
1568
1588
  display: none !important;
1569
1589
  }
1570
1590
 
1591
+ .lg\:h-11 {
1592
+ height: 2.75rem;
1593
+ }
1594
+
1571
1595
  .lg\:flex-grow {
1572
1596
  flex-grow: 1;
1573
1597
  }
@@ -12,8 +12,8 @@ export declare class ScResetUserPasswordComponent {
12
12
  */
13
13
  form: FormGroup<{
14
14
  currentPassword: FormControl<null>;
15
- newPassword: FormControl<null>;
16
- newPasswordConfirm: FormControl<null>;
15
+ password: FormControl<null>;
16
+ passwordConfirm: FormControl<null>;
17
17
  }>;
18
18
  /**
19
19
  * {@link Subject} события отправки формы.
@@ -27,6 +27,14 @@ export declare class ScResetUserPasswordComponent {
27
27
  * {@link Observable} изменения состояния загрузки данных аутентификации по email.
28
28
  */
29
29
  readonly loading$: Observable<boolean>;
30
+ /**
31
+ * Сигнал события события смены пароля.
32
+ */
33
+ readonly successResetPassword: Observable<{
34
+ success: boolean;
35
+ } | {
36
+ success: boolean;
37
+ }>;
30
38
  /**
31
39
  * Инициализирует экземпляр класса {@link ScResetUserPasswordComponent}.
32
40
  *
@@ -34,5 +42,5 @@ export declare class ScResetUserPasswordComponent {
34
42
  */
35
43
  constructor(userService: ScUserService);
36
44
  static ɵfac: i0.ɵɵFactoryDeclaration<ScResetUserPasswordComponent, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<ScResetUserPasswordComponent, "sc-reset-user-password", never, {}, {}, never, never, false>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScResetUserPasswordComponent, "sc-reset-user-password", never, {}, { "successResetPassword": "successResetPassword"; }, never, never, false>;
38
46
  }
@@ -1,7 +0,0 @@
1
- /**
2
- * Маска поля ввода кода подтверждения телефона.
3
- */
4
- export const verificationCodeMask = {
5
- mask: /^\d{0,6}$/
6
- };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtYXBwcm92ZS1jb2RlLW1hc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvYXV0aC9jb25zdGFudHMvcGhvbmUtYXBwcm92ZS1jb2RlLW1hc2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBbUI7SUFDaEQsSUFBSSxFQUFFLFdBQVc7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFza2l0b09wdGlvbnMgfSBmcm9tICdAbWFza2l0by9jb3JlJztcblxuLyoqXG4gKiDQnNCw0YHQutCwINC/0L7Qu9GPINCy0LLQvtC00LAg0LrQvtC00LAg0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8g0YLQtdC70LXRhNC+0L3QsC5cbiAqL1xuZXhwb3J0IGNvbnN0IHZlcmlmaWNhdGlvbkNvZGVNYXNrOiBNYXNraXRvT3B0aW9ucyA9IHtcbiAgICBtYXNrOiAvXlxcZHswLDZ9JC9cbn0gYXMgTWFza2l0b09wdGlvbnM7XG4iXX0=
@@ -1,72 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
2
- import { FormGroup, FormControl, Validators } from '@angular/forms';
3
- import { Subject, catchError, filter, map, of, share, startWith, switchMap, tap } from 'rxjs';
4
- import { scBicValidator, scCorrespondentAccountValidator } from '../../validators';
5
- import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus';
6
- import { tuiIsFalsy, tuiMarkControlAsTouchedAndValidate } from '@taiga-ui/cdk';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@snabcentr/client-core";
9
- import * as i2 from "@angular/forms";
10
- import * as i3 from "@taiga-ui/core";
11
- import * as i4 from "../new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component";
12
- import * as i5 from "@angular/common";
13
- /**
14
- * Компонент формы создания нового банковского счета контрагента.
15
- */
16
- export class ScAddContragentBankAccountsDialogComponent {
17
- /**
18
- * Инициализирует экземпляр класса {@link ScAddContragentBankAccountsFormComponent}.
19
- *
20
- * @param contragentService Сервис работы с контрагентами.
21
- * @param context Контекст диалогового окна, в котором открыт компонент.
22
- */
23
- constructor(contragentService, context) {
24
- this.contragentService = contragentService;
25
- this.context = context;
26
- /**
27
- * Группа с полем банковских реквизитов.
28
- */
29
- this.form = new FormGroup({
30
- bankName: new FormControl(null, Validators.required),
31
- bic: new FormControl(null, [Validators.required, Validators.minLength(9), scBicValidator]),
32
- accountNumber: new FormControl(null, [Validators.required, Validators.minLength(20)]),
33
- correspondentAccount: new FormControl(null, [Validators.required, Validators.minLength(20), scCorrespondentAccountValidator]),
34
- currencyId: new FormControl(null, Validators.required)
35
- });
36
- /**
37
- * {@link Subject} события отправки формы.
38
- */
39
- this.onSubmit = new Subject();
40
- /**
41
- * {@link Observable} запроса данных аутентификации.
42
- */
43
- this.request$ = this.onSubmit.pipe(map(() => this.form.value), tap((i) => console.log(i)), filter((value) => this.form.valid), switchMap((value) => {
44
- console.log(this.context.data.contragentId);
45
- return this.contragentService.createContragentBankAccount$(this.context.data.contragentId, value).pipe(tap((bankAccount) => this.context?.completeWith(bankAccount)), catchError((error) => {
46
- tuiMarkControlAsTouchedAndValidate(this.form);
47
- const errorResponse = error.error;
48
- for (const key in errorResponse.errors) {
49
- this.form.get(key)?.setErrors({ serverResponse: errorResponse.errors[`${key}`] });
50
- }
51
- if (!errorResponse.errors && errorResponse.message) {
52
- this.form.setErrors({ serverResponse: [errorResponse.message] });
53
- }
54
- return of({});
55
- }), startWith(null));
56
- }), share());
57
- /**
58
- * {@link Observable} изменения состояния загрузки данных аутентификации по номеру телефона.
59
- */
60
- this.loading$ = this.request$.pipe(map(tuiIsFalsy));
61
- }
62
- }
63
- ScAddContragentBankAccountsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAddContragentBankAccountsDialogComponent, deps: [{ token: i1.ScContragentService }, { token: POLYMORPHEUS_CONTEXT }], target: i0.ɵɵFactoryTarget.Component });
64
- ScAddContragentBankAccountsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScAddContragentBankAccountsDialogComponent, selector: "sc-add-contragent-bank-account-dialog", ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit.next()\" class=\"flex flex-col gap-3\">\n <sc-new-contragent-bank-account-form [form]=\"form\"></sc-new-contragent-bank-account-form>\n <div class=\"flex gap-4 justify-center\">\n <button tuiButton (click)=\"context.$implicit.complete()\" type=\"button\" icon=\"tuiIconXLarge\" appearance=\"secondary\">\u041E\u0442\u043C\u0435\u043D\u0430</button>\n <button tuiButton tuiMode=\"onLight\" [disabled]=\"form.invalid\" [showLoader]=\"!!(loading$ | async)\" type=\"submit\" icon=\"scIconSave\">\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C</button>\n </div>\n</form>", dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "directive", type: i3.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { kind: "component", type: i4.ScNewContragentBankAccountsFormComponent, selector: "sc-new-contragent-bank-account-form", inputs: ["form"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAddContragentBankAccountsDialogComponent, decorators: [{
66
- type: Component,
67
- args: [{ selector: 'sc-add-contragent-bank-account-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit.next()\" class=\"flex flex-col gap-3\">\n <sc-new-contragent-bank-account-form [form]=\"form\"></sc-new-contragent-bank-account-form>\n <div class=\"flex gap-4 justify-center\">\n <button tuiButton (click)=\"context.$implicit.complete()\" type=\"button\" icon=\"tuiIconXLarge\" appearance=\"secondary\">\u041E\u0442\u043C\u0435\u043D\u0430</button>\n <button tuiButton tuiMode=\"onLight\" [disabled]=\"form.invalid\" [showLoader]=\"!!(loading$ | async)\" type=\"submit\" icon=\"scIconSave\">\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C</button>\n </div>\n</form>" }]
68
- }], ctorParameters: function () { return [{ type: i1.ScContragentService }, { type: undefined, decorators: [{
69
- type: Inject,
70
- args: [POLYMORPHEUS_CONTEXT]
71
- }] }]; } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWRkLWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY29udGFjdHMvYWRkLWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWRpYWxvZy9zYy1hZGQtY29udHJhZ2VudC1iYW5rLWFjY291bnQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250YWN0cy9hZGQtY29udHJhZ2VudC1iYW5rLWFjY291bnQtZGlhbG9nL3NjLWFkZC1jb250cmFnZW50LWJhbmstYWNjb3VudC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBRy9FOztHQUVHO0FBTUgsTUFBTSxPQUFPLDBDQUEwQztJQTJEbkQ7Ozs7O09BS0c7SUFDSCxZQUNxQixpQkFBc0MsRUFFdkMsT0FBbUU7UUFGbEUsc0JBQWlCLEdBQWpCLGlCQUFpQixD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LENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBWWpGLENBQUM7O3VJQXJFSywwQ0FBMEMscURBbUV2QyxvQkFBb0I7MkhBbkV2QiwwQ0FBMEMsNkVDbkJ2RCxzb0JBTU87MkZEYU0sMENBQTBDO2tCQUx0RCxTQUFTOytCQUNJLHVDQUF1QyxtQkFFaEMsdUJBQXVCLENBQUMsTUFBTTs7MEJBcUUxQyxNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNjQ29udHJhZ2VudFNlcnZpY2UsIFNjSUJhbmtBY2NvdW50T25EYXRhQ3JlYXRlLCBTY0lCYW5rQWNjb3VudCB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIG9mLCBzaGFyZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2NCaWNWYWxpZGF0b3IsIHNjQ29ycmVzcG9uZGVudEFjY291bnRWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzJztcbmltcG9ydCB7IFR1aURpYWxvZ0NvbnRleHQgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBQT0xZTU9SUEhFVVNfQ09OVEVYVCB9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHR1aUlzRmFsc3ksIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IEFwaUVycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9hdXRoJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0YTQvtGA0LzRiyDRgdC+0LfQtNCw0L3QuNGPINC90L7QstC+0LPQviDQsdCw0L3QutC+0LLRgdC60L7Qs9C+INGB0YfQtdGC0LAg0LrQvtC90YLRgNCw0LPQtdC90YLQsC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1hZGQtY29udHJhZ2VudC1iYW5rLWFjY291bnQtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtYWRkLWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2NBZGRDb250cmFnZW50QmFua0FjY291bnRzRGlhbG9nQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiDQk9GA0YPQv9C/0LAg0YEg0L/QvtC70LXQvCDQsdCw0L3QutC+0LLRgdC60LjRhSDRgNC10LrQstC40LfQuNGC0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwPHtcbiAgICAgICAgYmFua05hbWU6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xuICAgICAgICBiaWM6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xuICAgICAgICBhY2NvdW50TnVtYmVyOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICAgICAgY29ycmVzcG9uZGVudEFjY291bnQ6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xuICAgICAgICBjdXJyZW5jeUlkOiBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPjtcbiAgICB9PiA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgYmFua05hbWU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgIGJpYzogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg5KSwgc2NCaWNWYWxpZGF0b3JdKSxcbiAgICAgICAgICAgIGFjY291bnROdW1iZXI6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMjApXSksXG4gICAgICAgICAgICBjb3JyZXNwb25kZW50QWNjb3VudDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyMCksIHNjQ29ycmVzcG9uZGVudEFjY291bnRWYWxpZGF0b3JdKSxcbiAgICAgICAgICAgIGN1cnJlbmN5SWQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxuICAgICAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBTdWJqZWN0fSDRgdC+0LHRi9GC0LjRjyDQvtGC0L/RgNCw0LLQutC4INGE0L7RgNC80YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG9uU3VibWl0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQtNCw0L3QvdGL0YUg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3QkID0gdGhpcy5vblN1Ym1pdC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5mb3JtLnZhbHVlKSxcbiAgICAgICAgdGFwKChpKSA9PiBjb25zb2xlLmxvZyhpKSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBTY0lCYW5rQWNjb3VudE9uRGF0YUNyZWF0ZSA9PiB0aGlzLmZvcm0udmFsaWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNvbnRleHQuZGF0YS5jb250cmFnZW50SWQpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udHJhZ2VudFNlcnZpY2UuY3JlYXRlQ29udHJhZ2VudEJhbmtBY2NvdW50JCh0aGlzLmNvbnRleHQuZGF0YS5jb250cmFnZW50SWQsIHZhbHVlKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoYmFua0FjY291bnQpID0+IHRoaXMuY29udGV4dD8uY29tcGxldGVXaXRoKGJhbmtBY2NvdW50KSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUodGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IGVycm9yLmVycm9yIGFzIEFwaUVycm9yUmVzcG9uc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZXJyb3JSZXNwb25zZS5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoa2V5KT8uc2V0RXJyb3JzKHsgc2VydmVyUmVzcG9uc2U6IGVycm9yUmVzcG9uc2UuZXJyb3JzW2Ake2tleX1gXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghZXJyb3JSZXNwb25zZS5lcnJvcnMgJiYgZXJyb3JSZXNwb25zZS5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uc2V0RXJyb3JzKHsgc2VydmVyUmVzcG9uc2U6IFtlcnJvclJlc3BvbnNlLm1lc3NhZ2VdIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9IGFzIFNjSUJhbmtBY2NvdW50KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNGPINC30LDQs9GA0YPQt9C60Lgg0LTQsNC90L3Ri9GFINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Lgg0L/QviDQvdC+0LzQtdGA0YMg0YLQtdC70LXRhNC+0L3QsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnJlcXVlc3QkLnBpcGUobWFwKHR1aUlzRmFsc3kpKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NBZGRDb250cmFnZW50QmFua0FjY291bnRzRm9ybUNvbXBvbmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udHJhZ2VudFNlcnZpY2Ug0KHQtdGA0LLQuNGBINGA0LDQsdC+0YLRiyDRgSDQutC+0L3RgtGA0LDQs9C10L3RgtCw0LzQuC5cbiAgICAgKiBAcGFyYW0gY29udGV4dCDQmtC+0L3RgtC10LrRgdGCINC00LjQsNC70L7Qs9C+0LLQvtCz0L4g0L7QutC90LAsINCyINC60L7RgtC+0YDQvtC8INC+0YLQutGA0YvRgiDQutC+0LzQv9C+0L3QtdC90YIuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyYWdlbnRTZXJ2aWNlOiBTY0NvbnRyYWdlbnRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFBPTFlNT1JQSEVVU19DT05URVhUKVxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgY29udGV4dDogVHVpRGlhbG9nQ29udGV4dDxTY0lCYW5rQWNjb3VudCwgeyBjb250cmFnZW50SWQ6IG51bWJlciB9PlxuICAgICkge31cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdC5uZXh0KClcIiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgICA8c2MtbmV3LWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWZvcm0gW2Zvcm1dPVwiZm9ybVwiPjwvc2MtbmV3LWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWZvcm0+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTQganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPGJ1dHRvbiB0dWlCdXR0b24gKGNsaWNrKT1cImNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKClcIiB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInR1aUljb25YTGFyZ2VcIiBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCI+0J7RgtC80LXQvdCwPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHVpQnV0dG9uIHR1aU1vZGU9XCJvbkxpZ2h0XCIgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiIFtzaG93TG9hZGVyXT1cIiEhKGxvYWRpbmckIHwgYXN5bmMpXCIgdHlwZT1cInN1Ym1pdFwiIGljb249XCJzY0ljb25TYXZlXCI+0KHQvtGF0YDQsNC90LjRgtGMPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Zvcm0+Il19
@@ -1,61 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { ScISuggestionType } from '@snabcentr/client-core';
3
- import { scAccountNumberMask, scBicMask, scCorrespondentAccount } from '../../masks';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@snabcentr/client-core";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "@angular/forms";
8
- import * as i4 from "../../form-fields/suggestion-field/sc-suggestion-field.component";
9
- import * as i5 from "@maskito/angular";
10
- import * as i6 from "@taiga-ui/kit";
11
- import * as i7 from "@taiga-ui/core";
12
- /**
13
- * Компонент формы банковских реквизитов.
14
- */
15
- export class ScNewContragentBankAccountsFormComponent {
16
- /**
17
- * Инициализирует экземпляр класса {@link ScContragentBankAccountsFormComponent}.
18
- *
19
- * @param referencesService Сервис справочников.
20
- */
21
- constructor(referencesService) {
22
- this.referencesService = referencesService;
23
- /**
24
- * Перечисление типов подсказок.
25
- */
26
- this.suggestionType = ScISuggestionType;
27
- /**
28
- * Маска поля ввода БИК.
29
- */
30
- this.bicMask = scBicMask;
31
- /**
32
- * Маска поля ввода номера счета.
33
- */
34
- this.accountNumberMask = scAccountNumberMask;
35
- /**
36
- * Маска поля ввода номера корреспондентского счета.
37
- */
38
- this.correspondentAccount = scCorrespondentAccount;
39
- /**
40
- * {@link Observable} списка валют.
41
- */
42
- this.currencies$ = this.referencesService.currencies$;
43
- }
44
- /**
45
- * Возвращает {@link Observable} валюты по идентификатору.
46
- *
47
- * @param currencyId Идентификатор валюты.
48
- */
49
- getCurrencyById$(currencyId) {
50
- return this.referencesService.getCurrencyById$(currencyId);
51
- }
52
- }
53
- ScNewContragentBankAccountsFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScNewContragentBankAccountsFormComponent, deps: [{ token: i1.ScReferencesService }], target: i0.ɵɵFactoryTarget.Component });
54
- ScNewContragentBankAccountsFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScNewContragentBankAccountsFormComponent, selector: "sc-new-contragent-bank-account-form", inputs: { form: "form" }, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"flex flex-col gap-3\">\n <label tuiLabel=\"\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u0430\">\n <tui-input formControlName=\"bankName\">\n \u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u0430\n <sc-suggestion-field *tuiDataList [type]=\"suggestionType.bank\"></sc-suggestion-field>\n </tui-input>\n <tui-error formControlName=\"bankName\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u0411\u0418\u041A\">\n <tui-input formControlName=\"bic\">\n \u0411\u0418\u041A\n <input tuiTextfield [maskito]=\"bicMask\" autocomplete=\"bic\" />\n <sc-suggestion-field *tuiDataList [type]=\"suggestionType.bank\"></sc-suggestion-field>\n </tui-input>\n <tui-error formControlName=\"bic\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u041D\u043E\u043C\u0435\u0440 \u0441\u0447\u0435\u0442\u0430\">\n <tui-input formControlName=\"accountNumber\">\n \u041D\u043E\u043C\u0435\u0440 \u0441\u0447\u0435\u0442\u0430\n <input tuiTextfield [maskito]=\"accountNumberMask\" autocomplete=\"accountNumber\" />\n </tui-input>\n <tui-error formControlName=\"accountNumber\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u041A\u043E\u0440\u0440\u0435\u0441\u043F\u043E\u043D\u0434\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u0441\u0447\u0435\u0442\">\n <tui-input formControlName=\"correspondentAccount\">\n \u041A\u043E\u0440\u0440\u0435\u0441\u043F\u043E\u043D\u0434\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u0441\u0447\u0435\u0442\n <input tuiTextfield [maskito]=\"correspondentAccount\" autocomplete=\"correspondentAccount\" />\n </tui-input>\n <tui-error formControlName=\"correspondentAccount\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u0412\u0430\u043B\u044E\u0442\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u043E\u0432\">\n <tui-select formControlName=\"currencyId\" [valueContent]=\"currencyContent\">\n \u0412\u0430\u043B\u044E\u0442\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u043E\u0432\n <tui-data-list *tuiDataList>\n <button *ngFor=\"let item of currencies$ | async; let index = index\" tuiOption [value]=\"item.id\">{{ item.name }} ({{ item.symbol }})</button>\n </tui-data-list>\n </tui-select>\n <ng-template #currencyContent let-data>\n <div>{{ (getCurrencyById$(data) | async)?.name }}</div>\n </ng-template>\n <tui-error formControlName=\"currencyId\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"] }, { kind: "directive", type: i5.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i5.MaskitoCva, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: i6.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { kind: "directive", type: i6.TuiSelectDirective, selector: "tui-select" }, { kind: "component", type: i7.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { kind: "component", type: i7.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { kind: "component", type: i7.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { kind: "directive", type: i7.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i7.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { kind: "component", type: i6.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i6.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i7.TuiErrorComponent, selector: "tui-error", inputs: ["error"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScNewContragentBankAccountsFormComponent, decorators: [{
56
- type: Component,
57
- args: [{ selector: 'sc-new-contragent-bank-account-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [formGroup]=\"form\" class=\"flex flex-col gap-3\">\n <label tuiLabel=\"\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u0430\">\n <tui-input formControlName=\"bankName\">\n \u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u0430\n <sc-suggestion-field *tuiDataList [type]=\"suggestionType.bank\"></sc-suggestion-field>\n </tui-input>\n <tui-error formControlName=\"bankName\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u0411\u0418\u041A\">\n <tui-input formControlName=\"bic\">\n \u0411\u0418\u041A\n <input tuiTextfield [maskito]=\"bicMask\" autocomplete=\"bic\" />\n <sc-suggestion-field *tuiDataList [type]=\"suggestionType.bank\"></sc-suggestion-field>\n </tui-input>\n <tui-error formControlName=\"bic\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u041D\u043E\u043C\u0435\u0440 \u0441\u0447\u0435\u0442\u0430\">\n <tui-input formControlName=\"accountNumber\">\n \u041D\u043E\u043C\u0435\u0440 \u0441\u0447\u0435\u0442\u0430\n <input tuiTextfield [maskito]=\"accountNumberMask\" autocomplete=\"accountNumber\" />\n </tui-input>\n <tui-error formControlName=\"accountNumber\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u041A\u043E\u0440\u0440\u0435\u0441\u043F\u043E\u043D\u0434\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u0441\u0447\u0435\u0442\">\n <tui-input formControlName=\"correspondentAccount\">\n \u041A\u043E\u0440\u0440\u0435\u0441\u043F\u043E\u043D\u0434\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u0441\u0447\u0435\u0442\n <input tuiTextfield [maskito]=\"correspondentAccount\" autocomplete=\"correspondentAccount\" />\n </tui-input>\n <tui-error formControlName=\"correspondentAccount\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u0412\u0430\u043B\u044E\u0442\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u043E\u0432\">\n <tui-select formControlName=\"currencyId\" [valueContent]=\"currencyContent\">\n \u0412\u0430\u043B\u044E\u0442\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u043E\u0432\n <tui-data-list *tuiDataList>\n <button *ngFor=\"let item of currencies$ | async; let index = index\" tuiOption [value]=\"item.id\">{{ item.name }} ({{ item.symbol }})</button>\n </tui-data-list>\n </tui-select>\n <ng-template #currencyContent let-data>\n <div>{{ (getCurrencyById$(data) | async)?.name }}</div>\n </ng-template>\n <tui-error formControlName=\"currencyId\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n</div>\n" }]
58
- }], ctorParameters: function () { return [{ type: i1.ScReferencesService }]; }, propDecorators: { form: [{
59
- type: Input
60
- }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbmV3LWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NvbnRhY3RzL25ldy1jb250cmFnZW50LWJhbmstYWNjb3VudC1mb3JtL3NjLW5ldy1jb250cmFnZW50LWJhbmstYWNjb3VudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250YWN0cy9uZXctY29udHJhZ2VudC1iYW5rLWFjY291bnQtZm9ybS9zYy1uZXctY29udHJhZ2VudC1iYW5rLWFjY291bnQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQWUsaUJBQWlCLEVBQXVCLE1BQU0sd0JBQXdCLENBQUM7QUFFN0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7O0FBR3JGOztHQUVHO0FBTUgsTUFBTSxPQUFPLHdDQUF3QztJQXNDakQ7Ozs7T0FJRztJQUNILFlBQW9DLGlCQUFzQztRQUF0QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBMUMxRTs7V0FFRztRQUNhLG1CQUFjLEdBQTZCLGlCQUFpQixDQUFDO1FBRTdFOztXQUVHO1FBQ2EsWUFBTyxHQUFtQixTQUFTLENBQUM7UUFFcEQ7O1dBRUc7UUFDYSxzQkFBaUIsR0FBbUIsbUJBQW1CLENBQUM7UUFFeEU7O1dBRUc7UUFDYSx5QkFBb0IsR0FBbUIsc0JBQXNCLENBQUM7UUFFOUU7O1dBRUc7UUFDYSxnQkFBVyxHQUE4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDO0lBbUJmLENBQUM7SUFFOUU7Ozs7T0FJRztJQUNJLGdCQUFnQixDQUFDLFVBQWtCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7O3FJQXBEUSx3Q0FBd0M7eUhBQXhDLHdDQUF3QyxxR0NmckQsODJGQTJDQTsyRkQ1QmEsd0NBQXdDO2tCQUxwRCxTQUFTOytCQUNJLHFDQUFxQyxtQkFFOUIsdUJBQXVCLENBQUMsTUFBTTswR0FnQ3hDLElBQUk7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2NJQ3VycmVuY3ksIFNjSVN1Z2dlc3Rpb25UeXBlLCBTY1JlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzY0FjY291bnROdW1iZXJNYXNrLCBzY0JpY01hc2ssIHNjQ29ycmVzcG9uZGVudEFjY291bnQgfSBmcm9tICcuLi8uLi9tYXNrcyc7XG5pbXBvcnQgeyBNYXNraXRvT3B0aW9ucyB9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDRhNC+0YDQvNGLINCx0LDQvdC60L7QstGB0LrQuNGFINGA0LXQutCy0LjQt9C40YLQvtCyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLW5ldy1jb250cmFnZW50LWJhbmstYWNjb3VudC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtbmV3LWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNjTmV3Q29udHJhZ2VudEJhbmtBY2NvdW50c0Zvcm1Db21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCf0LXRgNC10YfQuNGB0LvQtdC90LjQtSDRgtC40L/QvtCyINC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VnZ2VzdGlvblR5cGU6IHR5cGVvZiBTY0lTdWdnZXN0aW9uVHlwZSA9IFNjSVN1Z2dlc3Rpb25UeXBlO1xuXG4gICAgLyoqXG4gICAgICog0JzQsNGB0LrQsCDQv9C+0LvRjyDQstCy0L7QtNCwINCR0JjQmi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYmljTWFzazogTWFza2l0b09wdGlvbnMgPSBzY0JpY01hc2s7XG5cbiAgICAvKipcbiAgICAgKiDQnNCw0YHQutCwINC/0L7Qu9GPINCy0LLQvtC00LAg0L3QvtC80LXRgNCwINGB0YfQtdGC0LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGFjY291bnROdW1iZXJNYXNrOiBNYXNraXRvT3B0aW9ucyA9IHNjQWNjb3VudE51bWJlck1hc2s7XG5cbiAgICAvKipcbiAgICAgKiDQnNCw0YHQutCwINC/0L7Qu9GPINCy0LLQvtC00LAg0L3QvtC80LXRgNCwINC60L7RgNGA0LXRgdC/0L7QvdC00LXQvdGC0YHQutC+0LPQviDRgdGH0LXRgtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBjb3JyZXNwb25kZW50QWNjb3VudDogTWFza2l0b09wdGlvbnMgPSBzY0NvcnJlc3BvbmRlbnRBY2NvdW50O1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INGB0L/QuNGB0LrQsCDQstCw0LvRjtGCLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBjdXJyZW5jaWVzJDogT2JzZXJ2YWJsZTxTY0lDdXJyZW5jeVtdPiA9IHRoaXMucmVmZXJlbmNlc1NlcnZpY2UuY3VycmVuY2llcyQ7XG5cbiAgICAvKipcbiAgICAgKiDQk9GA0YPQv9C/0LAg0YEg0L/QvtC70LXQvCDQsdCw0L3QutC+0LLRgdC60LjRhSDRgNC10LrQstC40LfQuNGC0L7Qsi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA8e1xuICAgICAgICBiYW5rTmFtZTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgICAgIGJpYzogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgICAgIGFjY291bnROdW1iZXI6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xuICAgICAgICBjb3JyZXNwb25kZW50QWNjb3VudDogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgICAgIGN1cnJlbmN5SWQ6IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+O1xuICAgIH0+O1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY0NvbnRyYWdlbnRCYW5rQWNjb3VudHNGb3JtQ29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWZlcmVuY2VzU2VydmljZSDQodC10YDQstC40YEg0YHQv9GA0LDQstC+0YfQvdC40LrQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlZmVyZW5jZXNTZXJ2aWNlOiBTY1JlZmVyZW5jZXNTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INCy0LDQu9GO0YLRiyDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY3VycmVuY3lJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstCw0LvRjtGC0YsuXG4gICAgICovXG4gICAgcHVibGljIGdldEN1cnJlbmN5QnlJZCQoY3VycmVuY3lJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTY0lDdXJyZW5jeSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2VzU2VydmljZS5nZXRDdXJyZW5jeUJ5SWQkKGN1cnJlbmN5SWQpO1xuICAgIH1cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgPGxhYmVsIHR1aUxhYmVsPVwi0J3QsNC40LzQtdC90L7QstCw0L3QuNC1INCx0LDQvdC60LBcIj5cbiAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJiYW5rTmFtZVwiPlxuICAgICAgICAgICAg0J3QsNC40LzQtdC90L7QstCw0L3QuNC1INCx0LDQvdC60LBcbiAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkICp0dWlEYXRhTGlzdCBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5iYW5rXCI+PC9zYy1zdWdnZXN0aW9uLWZpZWxkPlxuICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgPHR1aS1lcnJvciBmb3JtQ29udHJvbE5hbWU9XCJiYW5rTmFtZVwiIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiPjwvdHVpLWVycm9yPlxuICAgIDwvbGFiZWw+XG4gICAgPGxhYmVsIHR1aUxhYmVsPVwi0JHQmNCaXCI+XG4gICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYmljXCI+XG4gICAgICAgICAgICDQkdCY0JpcbiAgICAgICAgICAgIDxpbnB1dCB0dWlUZXh0ZmllbGQgW21hc2tpdG9dPVwiYmljTWFza1wiIGF1dG9jb21wbGV0ZT1cImJpY1wiIC8+XG4gICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZCAqdHVpRGF0YUxpc3QgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuYmFua1wiPjwvc2Mtc3VnZ2VzdGlvbi1maWVsZD5cbiAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgIDx0dWktZXJyb3IgZm9ybUNvbnRyb2xOYW1lPVwiYmljXCIgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCI+PC90dWktZXJyb3I+XG4gICAgPC9sYWJlbD5cbiAgICA8bGFiZWwgdHVpTGFiZWw9XCLQndC+0LzQtdGAINGB0YfQtdGC0LBcIj5cbiAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJhY2NvdW50TnVtYmVyXCI+XG4gICAgICAgICAgICDQndC+0LzQtdGAINGB0YfQtdGC0LBcbiAgICAgICAgICAgIDxpbnB1dCB0dWlUZXh0ZmllbGQgW21hc2tpdG9dPVwiYWNjb3VudE51bWJlck1hc2tcIiBhdXRvY29tcGxldGU9XCJhY2NvdW50TnVtYmVyXCIgLz5cbiAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgIDx0dWktZXJyb3IgZm9ybUNvbnRyb2xOYW1lPVwiYWNjb3VudE51bWJlclwiIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiPjwvdHVpLWVycm9yPlxuICAgIDwvbGFiZWw+XG4gICAgPGxhYmVsIHR1aUxhYmVsPVwi0JrQvtGA0YDQtdGB0L/QvtC90LTQtdC90YLRgdC60LjQuSDRgdGH0LXRglwiPlxuICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImNvcnJlc3BvbmRlbnRBY2NvdW50XCI+XG4gICAgICAgICAgICDQmtC+0YDRgNC10YHQv9C+0L3QtNC10L3RgtGB0LrQuNC5INGB0YfQtdGCXG4gICAgICAgICAgICA8aW5wdXQgdHVpVGV4dGZpZWxkIFttYXNraXRvXT1cImNvcnJlc3BvbmRlbnRBY2NvdW50XCIgYXV0b2NvbXBsZXRlPVwiY29ycmVzcG9uZGVudEFjY291bnRcIiAvPlxuICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgPHR1aS1lcnJvciBmb3JtQ29udHJvbE5hbWU9XCJjb3JyZXNwb25kZW50QWNjb3VudFwiIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiPjwvdHVpLWVycm9yPlxuICAgIDwvbGFiZWw+XG4gICAgPGxhYmVsIHR1aUxhYmVsPVwi0JLQsNC70Y7RgtCwINGA0LDRgdGH0ZHRgtC+0LJcIj5cbiAgICAgICAgPHR1aS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY3VycmVuY3lJZFwiIFt2YWx1ZUNvbnRlbnRdPVwiY3VycmVuY3lDb250ZW50XCI+XG4gICAgICAgICAgICDQktCw0LvRjtGC0LAg0YDQsNGB0YfRkdGC0L7QslxuICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3QgKnR1aURhdGFMaXN0PlxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgY3VycmVuY2llcyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIiB0dWlPcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRcIj57eyBpdGVtLm5hbWUgfX0gKHt7IGl0ZW0uc3ltYm9sIH19KTwvYnV0dG9uPlxuICAgICAgICAgICAgPC90dWktZGF0YS1saXN0PlxuICAgICAgICA8L3R1aS1zZWxlY3Q+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY3VycmVuY3lDb250ZW50IGxldC1kYXRhPlxuICAgICAgICAgICAgPGRpdj57eyAoZ2V0Q3VycmVuY3lCeUlkJChkYXRhKSB8IGFzeW5jKT8ubmFtZSB9fTwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8dHVpLWVycm9yIGZvcm1Db250cm9sTmFtZT1cImN1cnJlbmN5SWRcIiBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIj48L3R1aS1lcnJvcj5cbiAgICA8L2xhYmVsPlxuPC9kaXY+XG4iXX0=