@snabcentr/client-ui 0.14.3 → 0.15.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) 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/cart/cart-item-mobile/sc-cart-item-mobile.component.mjs +3 -3
  27. package/esm2020/catalog/input-quantity/sc-input-quantity.component.mjs +6 -1
  28. package/esm2020/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +71 -0
  29. package/esm2020/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +6 -6
  30. package/esm2020/contacts/index.mjs +3 -3
  31. package/esm2020/contacts/new-contact-form/sc-new-contact-form.component.mjs +28 -0
  32. package/esm2020/contacts/sc-contacts.module.mjs +7 -7
  33. package/esm2020/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +71 -0
  34. package/esm2020/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +249 -0
  35. package/esm2020/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +32 -11
  36. package/esm2020/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +24 -12
  37. package/esm2020/contragents/index.mjs +5 -1
  38. package/esm2020/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +61 -0
  39. package/esm2020/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +183 -0
  40. package/esm2020/contragents/sc-contragents.module.mjs +84 -7
  41. package/esm2020/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +79 -0
  42. package/esm2020/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +28 -8
  43. package/esm2020/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +21 -3
  44. package/esm2020/delivery-address/index.mjs +2 -1
  45. package/esm2020/delivery-address/sc-delivery-address.module.mjs +58 -7
  46. package/esm2020/directives/carousel-item-hidden/sc-carousel-item-hidden.directive.mjs +40 -0
  47. package/esm2020/directives/carousel-item-hidden/sc-carousel-item-hidden.module.mjs +21 -0
  48. package/esm2020/directives/index.mjs +3 -0
  49. package/esm2020/form-fields/index.mjs +4 -0
  50. package/esm2020/masks/index.mjs +5 -1
  51. package/esm2020/masks/sc-inn-mask.mjs +13 -0
  52. package/esm2020/masks/sc-kpp-mask.mjs +7 -0
  53. package/esm2020/masks/sc-okpo-mask.mjs +13 -0
  54. package/esm2020/masks/sc-phone-verification-code-mask.mjs +7 -0
  55. package/esm2020/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +67 -8
  56. package/esm2020/profile/sc-profile.module.mjs +8 -4
  57. package/esm2020/public-api.mjs +3 -1
  58. package/esm2020/user/reset-user-password/sc-reset-user-password.component.mjs +24 -18
  59. package/esm2020/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +3 -3
  60. package/fesm2015/snabcentr-client-ui.mjs +1177 -265
  61. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  62. package/fesm2020/snabcentr-client-ui.mjs +1156 -263
  63. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  64. package/form-fields/index.d.ts +3 -0
  65. package/masks/index.d.ts +4 -0
  66. package/masks/sc-inn-mask.d.ts +9 -0
  67. package/masks/sc-kpp-mask.d.ts +5 -0
  68. package/masks/sc-okpo-mask.d.ts +9 -0
  69. package/{auth/constants/phone-approve-code-mask.d.ts → masks/sc-phone-verification-code-mask.d.ts} +1 -1
  70. package/package.json +2 -2
  71. package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +50 -4
  72. package/profile/sc-profile.module.d.ts +2 -1
  73. package/public-api.d.ts +2 -0
  74. package/styles/tailwind/tailwind.scss +62 -36
  75. package/user/reset-user-password/sc-reset-user-password.component.d.ts +11 -3
  76. package/esm2020/auth/constants/phone-approve-code-mask.mjs +0 -7
  77. package/esm2020/contacts/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +0 -72
  78. package/esm2020/contacts/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +0 -61
  79. /package/{contacts → contragents}/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.d.ts +0 -0
@@ -0,0 +1,3 @@
1
+ export * from './addresses-selection-field/sc-addresses-selection-field.component';
2
+ export * from './suggestion-field/sc-suggestion-field.component';
3
+ export * from './form-fields.module';
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.5",
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,7 +6,9 @@ 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';
11
+ export * from './form-fields';
10
12
  export * from './icons';
11
13
  export * from './loader';
12
14
  export * from './news';
@@ -644,14 +644,6 @@ video {
644
644
  position: sticky;
645
645
  }
646
646
 
647
- .-left-2 {
648
- left: -0.5rem;
649
- }
650
-
651
- .-top-2 {
652
- top: -0.5rem;
653
- }
654
-
655
647
  .bottom-4 {
656
648
  bottom: 1rem;
657
649
  }
@@ -700,16 +692,6 @@ video {
700
692
  margin: 0px;
701
693
  }
702
694
 
703
- .my-0 {
704
- margin-top: 0px;
705
- margin-bottom: 0px;
706
- }
707
-
708
- .my-0\.5 {
709
- margin-top: 0.125rem;
710
- margin-bottom: 0.125rem;
711
- }
712
-
713
695
  .my-4 {
714
696
  margin-top: 1rem;
715
697
  margin-bottom: 1rem;
@@ -735,10 +717,6 @@ video {
735
717
  margin-right: 0.5rem;
736
718
  }
737
719
 
738
- .mr-5 {
739
- margin-right: 1.25rem;
740
- }
741
-
742
720
  .mr-auto {
743
721
  margin-right: auto;
744
722
  }
@@ -818,10 +796,18 @@ video {
818
796
  height: 100% !important;
819
797
  }
820
798
 
799
+ .h-10 {
800
+ height: 2.5rem;
801
+ }
802
+
821
803
  .h-11 {
822
804
  height: 2.75rem;
823
805
  }
824
806
 
807
+ .h-12 {
808
+ height: 3rem;
809
+ }
810
+
825
811
  .h-20 {
826
812
  height: 5rem;
827
813
  }
@@ -874,8 +860,8 @@ video {
874
860
  height: 100%;
875
861
  }
876
862
 
877
- .max-h-52 {
878
- max-height: 13rem;
863
+ .h-px {
864
+ height: 1px;
879
865
  }
880
866
 
881
867
  .max-h-full {
@@ -894,6 +880,10 @@ video {
894
880
  width: 5rem;
895
881
  }
896
882
 
883
+ .w-28 {
884
+ width: 7rem;
885
+ }
886
+
897
887
  .w-3\/4 {
898
888
  width: 75%;
899
889
  }
@@ -934,16 +924,12 @@ video {
934
924
  width: 100%;
935
925
  }
936
926
 
937
- .min-w-72 {
938
- min-width: 18rem;
939
- }
940
-
941
927
  .min-w-\[10rem\] {
942
928
  min-width: 10rem;
943
929
  }
944
930
 
945
- .min-w-\[30\%\] {
946
- min-width: 30%;
931
+ .min-w-\[18rem\] {
932
+ min-width: 18rem;
947
933
  }
948
934
 
949
935
  .max-w-full {
@@ -1008,10 +994,6 @@ video {
1008
994
  grid-template-columns: repeat(auto-fill,minmax(21rem,1fr));
1009
995
  }
1010
996
 
1011
- .grid-rows-3 {
1012
- grid-template-rows: repeat(3, minmax(0, 1fr));
1013
- }
1014
-
1015
997
  .flex-col {
1016
998
  flex-direction: column;
1017
999
  }
@@ -1072,6 +1054,10 @@ video {
1072
1054
  gap: 1rem;
1073
1055
  }
1074
1056
 
1057
+ .gap-5 {
1058
+ gap: 1.25rem;
1059
+ }
1060
+
1075
1061
  .gap-x-2 {
1076
1062
  -moz-column-gap: 0.5rem;
1077
1063
  column-gap: 0.5rem;
@@ -1095,10 +1081,18 @@ video {
1095
1081
  row-gap: 0.125rem;
1096
1082
  }
1097
1083
 
1084
+ .gap-y-1 {
1085
+ row-gap: 0.25rem;
1086
+ }
1087
+
1098
1088
  .gap-y-2 {
1099
1089
  row-gap: 0.5rem;
1100
1090
  }
1101
1091
 
1092
+ .self-start {
1093
+ align-self: flex-start;
1094
+ }
1095
+
1102
1096
  .\!self-center {
1103
1097
  align-self: center !important;
1104
1098
  }
@@ -1179,6 +1173,10 @@ video {
1179
1173
  background-color: var(--tui-base-03);
1180
1174
  }
1181
1175
 
1176
+ .bg-tui-base-04 {
1177
+ background-color: var(--tui-base-04);
1178
+ }
1179
+
1182
1180
  .bg-tui-primary {
1183
1181
  background-color: var(--tui-primary);
1184
1182
  }
@@ -1264,6 +1262,10 @@ video {
1264
1262
  padding-bottom: 1.125rem;
1265
1263
  }
1266
1264
 
1265
+ .pb-1 {
1266
+ padding-bottom: 0.25rem;
1267
+ }
1268
+
1267
1269
  .pl-4 {
1268
1270
  padding-left: 1rem;
1269
1271
  }
@@ -1326,6 +1328,10 @@ video {
1326
1328
  font-weight: 500;
1327
1329
  }
1328
1330
 
1331
+ .font-thin {
1332
+ font-weight: 100;
1333
+ }
1334
+
1329
1335
  .uppercase {
1330
1336
  text-transform: uppercase;
1331
1337
  }
@@ -1376,6 +1382,10 @@ video {
1376
1382
  color: rgb(185 28 28 / var(--tw-text-opacity));
1377
1383
  }
1378
1384
 
1385
+ .text-tui-base-04 {
1386
+ color: var(--tui-base-04);
1387
+ }
1388
+
1379
1389
  .text-tui-base-05 {
1380
1390
  color: var(--tui-base-05);
1381
1391
  }
@@ -1544,9 +1554,21 @@ video {
1544
1554
  }
1545
1555
 
1546
1556
  @media (min-width: 640px) {
1557
+ .sm\:mr-9 {
1558
+ margin-right: 2.25rem;
1559
+ }
1560
+
1547
1561
  .sm\:flex-row {
1548
1562
  flex-direction: row;
1549
1563
  }
1564
+
1565
+ .sm\:gap-5 {
1566
+ gap: 1.25rem;
1567
+ }
1568
+
1569
+ .sm\:self-center {
1570
+ align-self: center;
1571
+ }
1550
1572
  }
1551
1573
 
1552
1574
  @media (min-width: 768px) {
@@ -1556,8 +1578,8 @@ video {
1556
1578
  }
1557
1579
 
1558
1580
  @media (min-width: 1024px) {
1559
- .lg\:mt-6 {
1560
- margin-top: 1.5rem;
1581
+ .lg\:mt-5 {
1582
+ margin-top: 1.25rem;
1561
1583
  }
1562
1584
 
1563
1585
  .lg\:\!block {
@@ -1568,6 +1590,10 @@ video {
1568
1590
  display: none !important;
1569
1591
  }
1570
1592
 
1593
+ .lg\:h-11 {
1594
+ height: 2.75rem;
1595
+ }
1596
+
1571
1597
  .lg\:flex-grow {
1572
1598
  flex-grow: 1;
1573
1599
  }
@@ -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=