@snabcentr/client-ui 4.11.7 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/auth/sc-auth.module.d.ts +2 -1
  2. package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +19 -8
  3. package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +6 -7
  4. package/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.d.ts +9 -2
  5. package/auth/sign-up-form/sc-sign-up-form.component.d.ts +14 -9
  6. package/cart/cart-item/sc-cart-item.component.d.ts +1 -1
  7. package/catalog/catalog-filters/index.d.ts +3 -0
  8. package/catalog/catalog-filters/sc-catalog-filters.component.d.ts +99 -0
  9. package/catalog/catalog-filters/tokens/sc-catalog-products-filters.d.ts +7 -0
  10. package/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.d.ts +5 -0
  11. package/catalog/index.d.ts +2 -0
  12. package/catalog/input-quantity/sc-input-quantity.component.d.ts +2 -2
  13. package/catalog/price-card/sc-price-card.component.d.ts +1 -1
  14. package/catalog/sc-catalog.module.d.ts +13 -13
  15. package/configurators/index.d.ts +2 -0
  16. package/configurators/models/index.d.ts +2 -0
  17. package/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.d.ts +22 -0
  18. package/configurators/models/sandwich/sc-i-sandwich-settings.d.ts +18 -0
  19. package/configurators/sandwich/index.d.ts +3 -0
  20. package/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.d.ts +8 -0
  21. package/configurators/sandwich/sc-i-new-cart-item-sandwich.d.ts +14 -0
  22. package/configurators/sandwich/sc-sandwich.component.d.ts +146 -0
  23. package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +21 -24
  24. package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +12 -18
  25. package/directives/index.d.ts +3 -3
  26. package/directives/links/sc-links.d.ts +1 -1
  27. package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +1 -1
  28. package/esm2022/accordion/sc-accordion-content.directive.mjs +3 -3
  29. package/esm2022/accordion/sc-accordion.component.mjs +3 -3
  30. package/esm2022/accordion/sc-accordion.module.mjs +4 -4
  31. package/esm2022/auth/sc-auth.module.mjs +15 -9
  32. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +38 -19
  33. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +21 -19
  34. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +3 -3
  35. package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +22 -7
  36. package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +38 -37
  37. package/esm2022/banner/sc-banner.component.mjs +3 -3
  38. package/esm2022/banner/sc-banner.module.mjs +4 -4
  39. package/esm2022/brands-list/sc-brands-list.component.mjs +3 -3
  40. package/esm2022/brands-list/sc-brands-list.module.mjs +4 -4
  41. package/esm2022/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.mjs +6 -6
  42. package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +3 -3
  43. package/esm2022/cart/cart-item/sc-cart-item.component.mjs +9 -12
  44. package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +3 -3
  45. package/esm2022/catalog/catalog-filters/index.mjs +4 -0
  46. package/esm2022/catalog/catalog-filters/sc-catalog-filters.component.mjs +202 -0
  47. package/esm2022/catalog/catalog-filters/tokens/sc-catalog-products-filters.mjs +10 -0
  48. package/esm2022/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.mjs +6 -0
  49. package/esm2022/catalog/category-card/sc-category-card.component.mjs +5 -5
  50. package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +6 -5
  51. package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +3 -3
  52. package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +3 -3
  53. package/esm2022/catalog/index.mjs +3 -1
  54. package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +21 -9
  55. package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +3 -3
  56. package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +3 -3
  57. package/esm2022/catalog/price-card/sc-price-card.component.mjs +34 -13
  58. package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +7 -7
  59. package/esm2022/catalog/price-history/sc-price-history.component.mjs +3 -3
  60. package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +3 -3
  61. package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +5 -5
  62. package/esm2022/catalog/sc-catalog.module.mjs +10 -7
  63. package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +3 -3
  64. package/esm2022/configurators/index.mjs +3 -0
  65. package/esm2022/configurators/models/index.mjs +3 -0
  66. package/esm2022/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.mjs +2 -0
  67. package/esm2022/configurators/models/sandwich/sc-i-sandwich-settings.mjs +2 -0
  68. package/esm2022/configurators/sandwich/index.mjs +4 -0
  69. package/esm2022/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.mjs +14 -0
  70. package/esm2022/configurators/sandwich/sc-i-new-cart-item-sandwich.mjs +2 -0
  71. package/esm2022/configurators/sandwich/sc-sandwich.component.mjs +322 -0
  72. package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +3 -3
  73. package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +3 -3
  74. package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +3 -3
  75. package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +3 -3
  76. package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +3 -3
  77. package/esm2022/contacts/sc-contacts.module.mjs +4 -4
  78. package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +3 -3
  79. package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +39 -51
  80. package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +3 -3
  81. package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +3 -3
  82. package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +3 -3
  83. package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +29 -47
  84. package/esm2022/contragents/sc-contragents.module.mjs +4 -4
  85. package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +3 -3
  86. package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +3 -3
  87. package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +3 -3
  88. package/esm2022/delivery-address/sc-delivery-address.module.mjs +4 -4
  89. package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +3 -3
  90. package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +3 -3
  91. package/esm2022/directives/index.mjs +4 -4
  92. package/esm2022/directives/links/sc-email-link.directive.mjs +3 -3
  93. package/esm2022/directives/links/sc-links.mjs +2 -2
  94. package/esm2022/directives/links/sc-tel-link.directive.mjs +3 -3
  95. package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +3 -3
  96. package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +4 -4
  97. package/esm2022/directives/sc-date-value-transformer.directive.mjs +3 -3
  98. package/esm2022/directives/sc-focus-first-invalid-field.directive.mjs +3 -3
  99. package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +5 -5
  100. package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +3 -3
  101. package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +3 -3
  102. package/esm2022/error-handler/sc-error-handler.component.mjs +3 -3
  103. package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +3 -3
  104. package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +3 -3
  105. package/esm2022/files/directives/tree-top.directive.mjs +3 -3
  106. package/esm2022/files/directives/tree.directive.mjs +3 -3
  107. package/esm2022/files/file-tree-item/file-tree-item.component.mjs +3 -3
  108. package/esm2022/files/files-and-documents/files-and-documents.component.mjs +3 -3
  109. package/esm2022/files/files-and-documents.module.mjs +4 -4
  110. package/esm2022/files/services/tree-icon.service.mjs +3 -3
  111. package/esm2022/files/services/tree-loader.service.mjs +3 -3
  112. package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +3 -3
  113. package/esm2022/form-fields/form-fields.module.mjs +4 -4
  114. package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +3 -3
  115. package/esm2022/helpers/sc-px-converter.mjs +3 -3
  116. package/esm2022/methods/index.mjs +2 -0
  117. package/esm2022/methods/sc-get-current-route.mjs +14 -0
  118. package/esm2022/news/news-card/sc-news-card.component.mjs +3 -3
  119. package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +3 -3
  120. package/esm2022/news/sc-news.module.mjs +4 -4
  121. package/esm2022/noindex-wrapper/directives/index.mjs +2 -0
  122. package/esm2022/noindex-wrapper/directives/sc-noindex.directive.mjs +58 -0
  123. package/esm2022/noindex-wrapper/index.mjs +3 -0
  124. package/esm2022/noindex-wrapper/sc-noindex-wrapper.component.mjs +18 -0
  125. package/esm2022/order/order-item-mobile/sc-order-item-mobile.component.mjs +3 -3
  126. package/esm2022/order/sc-order.module.mjs +4 -4
  127. package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +3 -3
  128. package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +3 -3
  129. package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +3 -3
  130. package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +6 -5
  131. package/esm2022/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.mjs +3 -3
  132. package/esm2022/pages/privacy-policy/sc-privacy-policy.component.mjs +3 -3
  133. package/esm2022/pages/public-offer/sc-public-offer.component.mjs +3 -3
  134. package/esm2022/pipes/sc-format-date.mjs +3 -3
  135. package/esm2022/pipes/sc-phone-format.mjs +3 -3
  136. package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +3 -3
  137. package/esm2022/profile/sc-profile.module.mjs +4 -4
  138. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +3 -3
  139. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +3 -3
  140. package/esm2022/providers/index.mjs +3 -1
  141. package/esm2022/providers/sc-category.providers.mjs +43 -0
  142. package/esm2022/providers/sc-debounce-time-default.mjs +9 -0
  143. package/esm2022/public-api.mjs +4 -1
  144. package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +3 -3
  145. package/esm2022/qrcode/sc-qrcode.module.mjs +4 -4
  146. package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +5 -5
  147. package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +3 -3
  148. package/esm2022/samples/sc-sample.module.mjs +4 -4
  149. package/esm2022/schemas/sc-json-ld-category/sc-json-ld-category.component.mjs +3 -3
  150. package/esm2022/services/sc-help-notification.service.mjs +3 -3
  151. package/esm2022/share-button/sc-share-button.component.mjs +3 -3
  152. package/esm2022/share-button/sc-share-button.module.mjs +4 -4
  153. package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +3 -3
  154. package/esm2022/user/sc-user.module.mjs +4 -4
  155. package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +3 -3
  156. package/esm2022/user/user-managers/sc-user-managers.component.mjs +23 -25
  157. package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +3 -3
  158. package/esm2022/verification/sc-verification.module.mjs +4 -4
  159. package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +16 -16
  160. package/fesm2022/snabcentr-client-ui.mjs +2574 -1896
  161. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  162. package/methods/index.d.ts +1 -0
  163. package/methods/sc-get-current-route.d.ts +8 -0
  164. package/noindex-wrapper/directives/index.d.ts +1 -0
  165. package/noindex-wrapper/directives/sc-noindex.directive.d.ts +29 -0
  166. package/noindex-wrapper/index.d.ts +2 -0
  167. package/noindex-wrapper/sc-noindex-wrapper.component.d.ts +9 -0
  168. package/package.json +19 -19
  169. package/providers/index.d.ts +2 -0
  170. package/providers/sc-category.providers.d.ts +11 -0
  171. package/providers/sc-debounce-time-default.d.ts +5 -0
  172. package/public-api.d.ts +3 -0
  173. package/styles/tailwind/tailwind.scss +77 -173
  174. package/user/user-managers/sc-user-managers.component.d.ts +7 -10
@@ -1,6 +1,6 @@
1
1
  import { AfterViewInit } from '@angular/core';
2
2
  import { FormArray, FormControl, FormGroup } from '@angular/forms';
3
- import { ScContragent, ScContragentService, ScConvertersService, ScICountry, ScICurrency, ScIReferencesTypes, ScISalesDirection, ScLocationsService, ScOpfList, ScReferencesService, ScUserMetrikaService } from '@snabcentr/client-core';
3
+ import { ScContragent, ScICountry, ScICurrency, ScIReferencesTypes, ScOpfList } from '@snabcentr/client-core';
4
4
  import { TuiDialogContext } from '@taiga-ui/core';
5
5
  import { Observable, Subject } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
@@ -8,12 +8,30 @@ import * as i0 from "@angular/core";
8
8
  * Компотен добавления контрагента.
9
9
  */
10
10
  export declare class ScAddContragentDialogComponent implements AfterViewInit {
11
+ /**
12
+ * Сервис справочников.
13
+ */
11
14
  private readonly referencesService;
15
+ /**
16
+ * Сервис работы с контрагентами.
17
+ */
12
18
  private readonly contragentService;
19
+ /**
20
+ * Сервис конвертации данных.
21
+ */
13
22
  private readonly convertersService;
23
+ /**
24
+ * Сервис для сбора метрик о действиях пользователей.
25
+ */
14
26
  private readonly userMetrikaService;
27
+ /**
28
+ * Сервис для получения списков стран, регионов, городов.
29
+ */
15
30
  private readonly locationsService;
16
- readonly context: TuiDialogContext<ScContragent, void>;
31
+ /**
32
+ * Контекст диалогового окна, в котором открыт компонент.
33
+ */
34
+ protected readonly context: TuiDialogContext<ScContragent, void>;
17
35
  /**
18
36
  * Перечисление организационно-правовых форм.
19
37
  */
@@ -44,17 +62,6 @@ export declare class ScAddContragentDialogComponent implements AfterViewInit {
44
62
  * {@link Observable} изменения состояния загрузки данных аутентификации по номеру телефона.
45
63
  */
46
64
  readonly loading$: Observable<boolean>;
47
- /**
48
- * Инициализирует экземпляр класса {@link ScAddContragentDialogComponent}.
49
- *
50
- * @param referencesService Сервис справочников.
51
- * @param contragentService Сервис работы с контрагентами.
52
- * @param convertersService Сервис конвертации данных.
53
- * @param userMetrikaService Сервис для сбора метрик о действиях пользователей.
54
- * @param locationsService Сервис для получения списков стран, регионов, городов.
55
- * @param context Контекст диалогового окна, в котором открыт компонент.
56
- */
57
- constructor(referencesService: ScReferencesService, contragentService: ScContragentService, convertersService: ScConvertersService, userMetrikaService: ScUserMetrikaService, locationsService: ScLocationsService, context: TuiDialogContext<ScContragent, void>);
58
65
  /** @inheritdoc */
59
66
  ngAfterViewInit(): void;
60
67
  /**
@@ -83,16 +90,6 @@ export declare class ScAddContragentDialogComponent implements AfterViewInit {
83
90
  * @returns Выводит значение `boolean` на основании {@link index}.
84
91
  */
85
92
  canNextStep(index: number): boolean;
86
- /**
87
- * Возвращает {@link Observable} списка направлений продаж.
88
- */
89
- getSalesDirections$(): Observable<ScISalesDirection[]>;
90
- /**
91
- * Возвращает {@link Observable} списка направлений продаж.
92
- *
93
- * @param directionId Идентификатор направления продаж.
94
- */
95
- getDirectionById$(directionId: number): Observable<ScISalesDirection | undefined>;
96
93
  /**
97
94
  * Возвращает {@link Observable} список организационно-правовых форм.
98
95
  */
@@ -156,6 +153,6 @@ export declare class ScAddContragentDialogComponent implements AfterViewInit {
156
153
  * @param index Индекс контактного лица.
157
154
  */
158
155
  removeContactGroup(index: number): void;
159
- static ɵfac: i0.ɵɵFactoryDeclaration<ScAddContragentDialogComponent, [null, null, null, null, null, { optional: true; }]>;
156
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScAddContragentDialogComponent, never>;
160
157
  static ɵcmp: i0.ɵɵComponentDeclaration<ScAddContragentDialogComponent, "sc-add-contragent-dialog", never, {}, {}, never, never, false, never>;
161
158
  }
@@ -1,6 +1,6 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
- import { FormArray, FormControl, FormGroup, FormGroupDirective } from '@angular/forms';
3
- import { ScICountry, ScIReferencesTypes, ScISalesDirection, ScISuggestionType, ScLocationsService, ScOpfList, ScReferencesService } from '@snabcentr/client-core';
2
+ import { FormArray, FormControl, FormGroup } from '@angular/forms';
3
+ import { ScICountry, ScIReferencesTypes, ScISuggestionType, ScOpfList } from '@snabcentr/client-core';
4
4
  import { Observable } from 'rxjs';
5
5
  import { ScContactFormGroup } from '../../auth/interfaces';
6
6
  import * as i0 from "@angular/core";
@@ -8,8 +8,17 @@ import * as i0 from "@angular/core";
8
8
  * Форма создания нового контрагента.
9
9
  */
10
10
  export declare class ScNewContragentFormComponent implements OnInit, OnDestroy {
11
+ /**
12
+ * Сервис справочников.
13
+ */
11
14
  private readonly referencesService;
15
+ /**
16
+ * Сервис для получения списков стран, регионов, городов.
17
+ */
12
18
  private readonly locationsService;
19
+ /**
20
+ * Директива c `FormGroup` из DOM.
21
+ */
13
22
  private readonly formGroupDirective;
14
23
  /**
15
24
  * Поле выбора организационно-правовой формы.
@@ -33,7 +42,6 @@ export declare class ScNewContragentFormComponent implements OnInit, OnDestroy {
33
42
  readonly form: FormGroup<{
34
43
  name: FormControl<string | null>;
35
44
  opf: FormControl<"individual" | "entrepreneur" | "legal" | "non_resident_legal" | null>;
36
- salesDirectionId: FormControl<number | null>;
37
45
  contacts: FormArray<ScContactFormGroup>;
38
46
  }>;
39
47
  /**
@@ -82,14 +90,6 @@ export declare class ScNewContragentFormComponent implements OnInit, OnDestroy {
82
90
  * @param items Список стран.
83
91
  */
84
92
  protected readonly stringify: (items: readonly ScICountry[]) => (id: number) => string;
85
- /**
86
- * Инициализирует экземпляр класса {@link ScNewContragentFormComponent}.
87
- *
88
- * @param referencesService Сервис справочников.
89
- * @param locationsService Сервис для получения списков стран, регионов, городов.
90
- * @param formGroupDirective Директива c `FormGroup` из DOM.
91
- */
92
- constructor(referencesService: ScReferencesService, locationsService: ScLocationsService, formGroupDirective: FormGroupDirective | null);
93
93
  /**
94
94
  * Родительская `FormGroup`.
95
95
  */
@@ -98,12 +98,6 @@ export declare class ScNewContragentFormComponent implements OnInit, OnDestroy {
98
98
  ngOnInit(): void;
99
99
  /** @inheritDoc */
100
100
  ngOnDestroy(): void;
101
- /**
102
- * Возвращает {@link Observable} списка направлений продаж.
103
- *
104
- * @param directionId Идентификатор направления продаж.
105
- */
106
- protected getDirectionById$(directionId: number): Observable<ScISalesDirection | undefined>;
107
101
  /**
108
102
  * Возвращает {@link Observable} список организационно-правовых форм..
109
103
  */
@@ -120,6 +114,6 @@ export declare class ScNewContragentFormComponent implements OnInit, OnDestroy {
120
114
  * @param countryId — Идентификатор страны.
121
115
  */
122
116
  protected getCountryNameById$(countryId: number): Observable<string | undefined>;
123
- static ɵfac: i0.ɵɵFactoryDeclaration<ScNewContragentFormComponent, [null, null, { skipSelf: true; }]>;
117
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScNewContragentFormComponent, never>;
124
118
  static ɵcmp: i0.ɵɵComponentDeclaration<ScNewContragentFormComponent, "sc-new-contragent-form", never, { "opfControl": { "alias": "opfControl"; "required": false; }; }, {}, never, never, false, never>;
125
119
  }
@@ -1,8 +1,8 @@
1
- export * from './next-input-focus/sc-next-input-focus.directive';
2
- export * from './next-input-focus/sc-next-input-focus.module';
3
1
  export * from './abstract-price-card/abstract-sc-price-card.directive';
4
- export * from './terminal-link/sc-terminal-link.directive';
5
2
  export * from './links';
3
+ export * from './next-input-focus/sc-next-input-focus.directive';
4
+ export * from './next-input-focus/sc-next-input-focus.module';
6
5
  export * from './sc-date-value-transformer.directive';
7
6
  export * from './sc-focus-first-invalid-field.directive';
8
7
  export * from './select-on-focusin/sc-select-on-focusin.directive';
8
+ export * from './terminal-link/sc-terminal-link.directive';
@@ -1,4 +1,4 @@
1
- import { ScPhoneFormatPipe } from '../../pipes/sc-phone-format';
1
+ import { ScPhoneFormatPipe } from '../../pipes';
2
2
  import { ScEmailLinkDirective } from './sc-email-link.directive';
3
3
  import { ScTelLinkDirective } from './sc-tel-link.directive';
4
4
  /**
@@ -10,5 +10,5 @@ export declare class ScSelectOnFocusinDirective {
10
10
  */
11
11
  protected onFocusIn(target: HTMLElement): void;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ScSelectOnFocusinDirective, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<ScSelectOnFocusinDirective, "tui-input-number, tui-input, tui-input-phone, tui-input-date, tui-input-password, input[tuiInputNumber]", never, {}, {}, never, never, true, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ScSelectOnFocusinDirective, "tui-input-number, tui-input, tui-input-phone, tui-input-date, tui-input-password, input[tuiInputNumber], input[tuiTextfield], input[tuiInputSlider]", never, {}, {}, never, never, true, never>;
14
14
  }
@@ -5,10 +5,10 @@ import * as i0 from "@angular/core";
5
5
  * Директива содержимого компонента, позволяющего отображать и скрывать содержимое в разделах.
6
6
  */
7
7
  export class ScAccordionContentDirective extends PolymorpheusTemplate {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAccordionContentDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ScAccordionContentDirective, selector: "ng-template[scAccordionContent]", usesInheritance: true, ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAccordionContentDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ScAccordionContentDirective, selector: "ng-template[scAccordionContent]", usesInheritance: true, ngImport: i0 }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAccordionContentDirective, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAccordionContentDirective, decorators: [{
12
12
  type: Directive,
13
13
  args: [{
14
14
  selector: 'ng-template[scAccordionContent]',
@@ -50,10 +50,10 @@ export class ScAccordionComponent {
50
50
  close() {
51
51
  this.accordion?.close();
52
52
  }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ScAccordionComponent, selector: "sc-accordion", inputs: { showAddButton: { classPropertyName: "showAddButton", publicName: "showAddButton", isSignal: false, isRequired: false, transformFunction: null }, showDeleteButton: { classPropertyName: "showDeleteButton", publicName: "showDeleteButton", isSignal: false, isRequired: false, transformFunction: null }, showArrow: { classPropertyName: "showArrow", publicName: "showArrow", isSignal: false, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, disabledButtons: { classPropertyName: "disabledButtons", publicName: "disabledButtons", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addButtonClick: "addButtonClick", deleteButtonClick: "deleteButtonClick" }, host: { properties: { "class._has-add-button": "this.showAddButton", "class._has-delete-button": "this.showDeleteButton", "class._has-arrow": "this.showArrow", "attr.data-size": "this.size" } }, queries: [{ propertyName: "content", first: true, predicate: ScAccordionContentDirective, descendants: true }], viewQueries: [{ propertyName: "accordion", first: true, predicate: TuiAccordionItem, descendants: true }], ngImport: i0, template: "<tui-accordion [rounded]=\"false\">\n <tui-accordion-item\n #accordion\n [size]=\"size\"\n [borders]=\"null\"\n [showArrow]=\"showArrow\"\n [open]=\"open\"\n >\n <div class=\"flex grow justify-between\">\n <div class=\"self-center font-bold\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"showAddButton || showDeleteButton\"\n class=\"flex\"\n >\n <ng-container *ngIf=\"showDeleteButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n [disabled]=\"disabledButtons()\"\n iconStart=\"@tui.trash-2\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); deleteButtonClick.emit()\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"showAddButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n [disabled]=\"disabledButtons()\"\n iconStart=\"@tui.plus\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); addButtonClick.emit()\"\n ></button>\n </ng-container>\n </div>\n </div>\n <ng-template tuiAccordionItemContent>\n <tui-elastic-container *ngIf=\"content\">\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n </tui-elastic-container>\n </ng-template>\n </tui-accordion-item>\n</tui-accordion>\n", styles: ["::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{border-radius:.75rem;flex-direction:row-reverse;min-height:var(--tui-height-m);font:var(--tui-font-text-m);padding:0 .5rem 0 1rem;gap:.75rem;background:var(--tui-background-base-alt)}:host[data-size=s] ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{padding:0 .5rem 0 1rem;font:var(--tui-font-text-s)}:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{padding-left:.75rem}:host._has-add-button ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header,:host._has-delete-button ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{padding-right:0}::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header_hoverable:hover:not([data-mode]){background:var(--tui-background-neutral-1-hover)!important}::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}:host:hover:not([data-mode]) ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-title{white-space:normal}:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-title{margin-right:0}::ng-deep sc-accordion tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-inline:0!important;padding-block:1rem}:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content,:host[data-size=s]:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-left:1rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i3.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i4.TuiAccordionItem, selector: "tui-accordion-item", inputs: ["noPadding", "showArrow", "borders", "size", "disabled", "disableHover", "open", "async"], outputs: ["openChange"] }, { kind: "directive", type: i4.TuiAccordionDirective, selector: "tui-accordion", inputs: ["closeOthers"] }, { kind: "directive", type: i4.TuiAccordionItemContent, selector: "ng-template[tuiAccordionItemContent]" }, { kind: "component", type: i4.TuiElasticContainer, selector: "tui-elastic-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ScAccordionComponent, selector: "sc-accordion", inputs: { showAddButton: { classPropertyName: "showAddButton", publicName: "showAddButton", isSignal: false, isRequired: false, transformFunction: null }, showDeleteButton: { classPropertyName: "showDeleteButton", publicName: "showDeleteButton", isSignal: false, isRequired: false, transformFunction: null }, showArrow: { classPropertyName: "showArrow", publicName: "showArrow", isSignal: false, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, disabledButtons: { classPropertyName: "disabledButtons", publicName: "disabledButtons", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addButtonClick: "addButtonClick", deleteButtonClick: "deleteButtonClick" }, host: { properties: { "class._has-add-button": "this.showAddButton", "class._has-delete-button": "this.showDeleteButton", "class._has-arrow": "this.showArrow", "attr.data-size": "this.size" } }, queries: [{ propertyName: "content", first: true, predicate: ScAccordionContentDirective, descendants: true }], viewQueries: [{ propertyName: "accordion", first: true, predicate: TuiAccordionItem, descendants: true }], ngImport: i0, template: "<tui-accordion [rounded]=\"false\">\n <tui-accordion-item\n #accordion\n [size]=\"size\"\n [borders]=\"null\"\n [showArrow]=\"showArrow\"\n [open]=\"open\"\n >\n <div class=\"flex grow justify-between\">\n <div class=\"self-center font-bold\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"showAddButton || showDeleteButton\"\n class=\"flex\"\n >\n <ng-container *ngIf=\"showDeleteButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n [disabled]=\"disabledButtons()\"\n iconStart=\"@tui.trash-2\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); deleteButtonClick.emit()\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"showAddButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n [disabled]=\"disabledButtons()\"\n iconStart=\"@tui.plus\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); addButtonClick.emit()\"\n ></button>\n </ng-container>\n </div>\n </div>\n <ng-template tuiAccordionItemContent>\n <tui-elastic-container *ngIf=\"content\">\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n </tui-elastic-container>\n </ng-template>\n </tui-accordion-item>\n</tui-accordion>\n", styles: ["::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{border-radius:.75rem;flex-direction:row-reverse;min-height:var(--tui-height-m);font:var(--tui-font-text-m);padding:0 .5rem 0 1rem;gap:.75rem;background:var(--tui-background-base-alt)}:host[data-size=s] ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{padding:0 .5rem 0 1rem;font:var(--tui-font-text-s)}:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{padding-left:.75rem}:host._has-add-button ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header,:host._has-delete-button ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{padding-right:0}::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header_hoverable:hover:not([data-mode]){background:var(--tui-background-neutral-1-hover)!important}::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}:host:hover:not([data-mode]) ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-title{white-space:normal}:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-title{margin-right:0}::ng-deep sc-accordion tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-inline:0!important;padding-block:1rem}:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content,:host[data-size=s]:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-left:1rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i3.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i4.TuiAccordionItem, selector: "tui-accordion-item", inputs: ["noPadding", "showArrow", "borders", "size", "disabled", "disableHover", "open", "async"], outputs: ["openChange"] }, { kind: "directive", type: i4.TuiAccordionDirective, selector: "tui-accordion", inputs: ["closeOthers"] }, { kind: "directive", type: i4.TuiAccordionItemContent, selector: "ng-template[tuiAccordionItemContent]" }, { kind: "component", type: i4.TuiElasticContainer, selector: "tui-elastic-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
55
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAccordionComponent, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAccordionComponent, decorators: [{
57
57
  type: Component,
58
58
  args: [{ selector: 'sc-accordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-accordion [rounded]=\"false\">\n <tui-accordion-item\n #accordion\n [size]=\"size\"\n [borders]=\"null\"\n [showArrow]=\"showArrow\"\n [open]=\"open\"\n >\n <div class=\"flex grow justify-between\">\n <div class=\"self-center font-bold\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"showAddButton || showDeleteButton\"\n class=\"flex\"\n >\n <ng-container *ngIf=\"showDeleteButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n [disabled]=\"disabledButtons()\"\n iconStart=\"@tui.trash-2\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); deleteButtonClick.emit()\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"showAddButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n [disabled]=\"disabledButtons()\"\n iconStart=\"@tui.plus\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); addButtonClick.emit()\"\n ></button>\n </ng-container>\n </div>\n </div>\n <ng-template tuiAccordionItemContent>\n <tui-elastic-container *ngIf=\"content\">\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n </tui-elastic-container>\n </ng-template>\n </tui-accordion-item>\n</tui-accordion>\n", styles: ["::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{border-radius:.75rem;flex-direction:row-reverse;min-height:var(--tui-height-m);font:var(--tui-font-text-m);padding:0 .5rem 0 1rem;gap:.75rem;background:var(--tui-background-base-alt)}:host[data-size=s] ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{padding:0 .5rem 0 1rem;font:var(--tui-font-text-s)}:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{padding-left:.75rem}:host._has-add-button ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header,:host._has-delete-button ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header{padding-right:0}::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header_hoverable:hover:not([data-mode]){background:var(--tui-background-neutral-1-hover)!important}::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}:host:hover:not([data-mode]) ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-title{white-space:normal}:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper .t-title{margin-right:0}::ng-deep sc-accordion tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-inline:0!important;padding-block:1rem}:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content,:host[data-size=s]:host._has-arrow ::ng-deep sc-accordion tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-left:1rem!important}\n"] }]
59
59
  }], propDecorators: { showAddButton: [{
@@ -11,11 +11,11 @@ import * as i1 from "@taiga-ui/kit";
11
11
  * Модуль для отображение контента разделами, с возможностью скрывать и отображать содержимое.
12
12
  */
13
13
  export class ScAccordionModule {
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ScAccordionModule, declarations: [ScAccordionComponent, ScAccordionContentDirective], imports: [CommonModule, PolymorpheusTemplate, PolymorpheusOutlet, TuiButton, i1.TuiAccordionItem, i1.TuiAccordionDirective, i1.TuiAccordionItemContent, i1.TuiAccordionItemEagerContent, TuiElasticContainer], exports: [ScAccordionComponent, ScAccordionContentDirective] }); }
16
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAccordionModule, imports: [CommonModule, i1.TuiAccordionItem, TuiElasticContainer] }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ScAccordionModule, declarations: [ScAccordionComponent, ScAccordionContentDirective], imports: [CommonModule, PolymorpheusTemplate, PolymorpheusOutlet, TuiButton, i1.TuiAccordionItem, i1.TuiAccordionDirective, i1.TuiAccordionItemContent, i1.TuiAccordionItemEagerContent, TuiElasticContainer], exports: [ScAccordionComponent, ScAccordionContentDirective] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAccordionModule, imports: [CommonModule, i1.TuiAccordionItem, TuiElasticContainer] }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAccordionModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAccordionModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  declarations: [ScAccordionComponent, ScAccordionContentDirective],
@@ -3,9 +3,10 @@ import { NgModule } from '@angular/core';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { MaskitoDirective } from '@maskito/angular';
5
5
  import { TuiLet, TuiRepeatTimes } from '@taiga-ui/cdk';
6
- import { TuiButton, TuiDataList, TuiError, TuiLabel, TuiLink, TuiLoader } from '@taiga-ui/core';
7
- import { TuiButtonLoading, TuiCheckbox, TuiDataListWrapper, TuiElasticContainer, TuiFieldErrorPipe, TuiStepper } from '@taiga-ui/kit';
6
+ import { TuiButton, TuiDataList, TuiError, TuiIcon, TuiLabel, TuiLink, TuiLoader } from '@taiga-ui/core';
7
+ import { TuiButtonLoading, TuiCheckbox, TuiDataListWrapper, TuiElasticContainer, TuiFieldErrorPipe, TuiPush, TuiStepper } from '@taiga-ui/kit';
8
8
  import { TuiInputModule, TuiInputPasswordModule, TuiInputPhoneModule, TuiSelectModule, TuiTextfieldControllerModule } from '@taiga-ui/legacy';
9
+ import { ScManagerCardComponent } from '../contacts/manager-card/sc-manager-card.component';
9
10
  import { ScContactsModule } from '../contacts/sc-contacts.module';
10
11
  import { ScContragentsModule } from '../contragents/sc-contragents.module';
11
12
  import { ScFormFieldsModule } from '../form-fields/form-fields.module';
@@ -23,8 +24,8 @@ import * as i3 from "@taiga-ui/core/components/data-list";
23
24
  * Модуль аутентификации.
24
25
  */
25
26
  export class ScAuthModule {
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
27
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ScAuthModule, declarations: [ScSignInFormComponent, ScSignInFormByPhoneComponent, ScSignInFormByEmailComponent, ScSignUpFormComponent, ScSimpleSignUpFormComponent], imports: [CommonModule,
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
28
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ScAuthModule, declarations: [ScSignInFormComponent, ScSignInFormByPhoneComponent, ScSignInFormByEmailComponent, ScSignUpFormComponent, ScSimpleSignUpFormComponent], imports: [CommonModule,
28
29
  FormsModule,
29
30
  ReactiveFormsModule,
30
31
  TuiInputPasswordModule,
@@ -44,8 +45,9 @@ export class ScAuthModule {
44
45
  TuiElasticContainer, i2.TuiDataListWrapperComponent, i2.TuiDataListGroupWrapperComponent, i3.TuiDataListDirective, TuiSelectModule,
45
46
  ScContragentsModule,
46
47
  ScContactsModule, i2.TuiStepperComponent, i2.TuiStep, TuiRepeatTimes,
47
- TuiButtonLoading], exports: [ScSignInFormComponent, ScSignInFormByPhoneComponent, ScSignInFormByEmailComponent, ScSignUpFormComponent, ScSimpleSignUpFormComponent] }); }
48
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAuthModule, imports: [CommonModule,
48
+ TuiButtonLoading, i2.TuiPushComponent, i2.TuiPushAlert, i2.TuiPushDirective, ScManagerCardComponent,
49
+ TuiIcon], exports: [ScSignInFormComponent, ScSignInFormByPhoneComponent, ScSignInFormByEmailComponent, ScSignUpFormComponent, ScSimpleSignUpFormComponent] }); }
50
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAuthModule, imports: [CommonModule,
49
51
  FormsModule,
50
52
  ReactiveFormsModule,
51
53
  TuiInputPasswordModule,
@@ -58,9 +60,10 @@ export class ScAuthModule {
58
60
  ScFormFieldsModule, i1.TuiDataListComponent, i1.TuiOption, TuiCheckbox,
59
61
  TuiElasticContainer, i2.TuiDataListWrapperComponent, i2.TuiDataListGroupWrapperComponent, TuiSelectModule,
60
62
  ScContragentsModule,
61
- ScContactsModule, TuiStepper, TuiButtonLoading] }); }
63
+ ScContactsModule, TuiStepper, TuiButtonLoading, i2.TuiPushComponent, i2.TuiPushAlert, ScManagerCardComponent,
64
+ TuiIcon] }); }
62
65
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAuthModule, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAuthModule, decorators: [{
64
67
  type: NgModule,
65
68
  args: [{
66
69
  declarations: [ScSignInFormComponent, ScSignInFormByPhoneComponent, ScSignInFormByEmailComponent, ScSignUpFormComponent, ScSimpleSignUpFormComponent],
@@ -92,8 +95,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
92
95
  ...TuiStepper,
93
96
  TuiRepeatTimes,
94
97
  TuiButtonLoading,
98
+ ...TuiPush,
99
+ ScManagerCardComponent,
100
+ TuiIcon,
95
101
  ],
96
102
  exports: [ScSignInFormComponent, ScSignInFormByPhoneComponent, ScSignInFormByEmailComponent, ScSignUpFormComponent, ScSimpleSignUpFormComponent],
97
103
  }]
98
104
  }] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvYXV0aC9zYy1hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEksT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5SSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUM3SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUM3SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7QUFFakY7O0dBRUc7QUFrQ0gsTUFBTSxPQUFPLFlBQVk7K0dBQVosWUFBWTtnSEFBWixZQUFZLGlCQWhDTixxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsYUFFaEosWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsc0JBQXNCO1lBQ3RCLGNBQWM7WUFDZCw0QkFBNEI7WUFDNUIsT0FBTztZQUNQLFNBQVM7WUFDVCxRQUFRO1lBQ1IsaUJBQWlCO1lBQ2pCLFFBQVE7WUFDUixNQUFNO1lBQ04sU0FBUztZQUNULG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLGtCQUFrQiwwSEFFbEIsV0FBVztZQUNYLG1CQUFtQixnR0FFbkIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixnQkFBZ0Isc0NBRWhCLGNBQWM7WUFDZCxnQkFBZ0IsYUFFVixxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkI7Z0hBRXRJLFlBQVksWUE5QmpCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsNEJBQTRCO1lBSzVCLFFBQVE7WUFFUixTQUFTO1lBQ1QsbUJBQW1CO1lBRW5CLG9CQUFvQjtZQUNwQixrQkFBa0IseUNBRWxCLFdBQVc7WUFDWCxtQkFBbUIsdUVBRW5CLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsZ0JBQWdCLEVBQ2IsVUFBVSxFQUViLGdCQUFnQjs7NEZBSVgsWUFBWTtrQkFqQ3hCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMscUJBQXFCLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLENBQUM7b0JBQ3JKLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixzQkFBc0I7d0JBQ3RCLGNBQWM7d0JBQ2QsNEJBQTRCO3dCQUM1QixPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixpQkFBaUI7d0JBQ2pCLFFBQVE7d0JBQ1IsTUFBTTt3QkFDTixTQUFTO3dCQUNULG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsR0FBRyxXQUFXO3dCQUNkLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixHQUFHLGtCQUFrQjt3QkFDckIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsR0FBRyxVQUFVO3dCQUNiLGNBQWM7d0JBQ2QsZ0JBQWdCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsQ0FBQztpQkFDbkoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFza2l0b0RpcmVjdGl2ZSB9IGZyb20gJ0BtYXNraXRvL2FuZ3VsYXInO1xuaW1wb3J0IHsgVHVpTGV0LCBUdWlSZXBlYXRUaW1lcyB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQnV0dG9uLCBUdWlEYXRhTGlzdCwgVHVpRXJyb3IsIFR1aUxhYmVsLCBUdWlMaW5rLCBUdWlMb2FkZXIgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlCdXR0b25Mb2FkaW5nLCBUdWlDaGVja2JveCwgVHVpRGF0YUxpc3RXcmFwcGVyLCBUdWlFbGFzdGljQ29udGFpbmVyLCBUdWlGaWVsZEVycm9yUGlwZSwgVHVpU3RlcHBlciB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgVHVpSW5wdXRNb2R1bGUsIFR1aUlucHV0UGFzc3dvcmRNb2R1bGUsIFR1aUlucHV0UGhvbmVNb2R1bGUsIFR1aVNlbGVjdE1vZHVsZSwgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3knO1xuXG5pbXBvcnQgeyBTY0NvbnRhY3RzTW9kdWxlIH0gZnJvbSAnLi4vY29udGFjdHMvc2MtY29udGFjdHMubW9kdWxlJztcbmltcG9ydCB7IFNjQ29udHJhZ2VudHNNb2R1bGUgfSBmcm9tICcuLi9jb250cmFnZW50cy9zYy1jb250cmFnZW50cy5tb2R1bGUnO1xuaW1wb3J0IHsgU2NGb3JtRmllbGRzTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1maWVsZHMvZm9ybS1maWVsZHMubW9kdWxlJztcbmltcG9ydCB7IFNjVmVyaWZpY2F0aW9uTW9kdWxlIH0gZnJvbSAnLi4vdmVyaWZpY2F0aW9uJztcbmltcG9ydCB7IFNjU2lnbkluRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vc2Mtc2lnbi1pbi1mb3JtL3NjLXNpZ24taW4tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NTaWduSW5Gb3JtQnlFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vc2Mtc2lnbi1pbi1mb3JtL3NjLXNpZ24taW4tZm9ybS1ieS1lbWFpbC9zYy1zaWduLWluLWZvcm0tYnktZW1haWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNjU2lnbkluRm9ybUJ5UGhvbmVDb21wb25lbnQgfSBmcm9tICcuL3NjLXNpZ24taW4tZm9ybS9zYy1zaWduLWluLWZvcm0tYnktcGhvbmUvc2Mtc2lnbi1pbi1mb3JtLWJ5LXBob25lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY1NpbXBsZVNpZ25VcEZvcm1Db21wb25lbnQgfSBmcm9tICcuL3NjLXNpbXBsZS1zaWduLXVwLWZvcm0vc2Mtc2ltcGxlLXNpZ24tdXAtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NTaWduVXBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9zaWduLXVwLWZvcm0vc2Mtc2lnbi11cC1mb3JtLmNvbXBvbmVudCc7XG5cbi8qKlxuICog0JzQvtC00YPQu9GMINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbU2NTaWduSW5Gb3JtQ29tcG9uZW50LCBTY1NpZ25JbkZvcm1CeVBob25lQ29tcG9uZW50LCBTY1NpZ25JbkZvcm1CeUVtYWlsQ29tcG9uZW50LCBTY1NpZ25VcEZvcm1Db21wb25lbnQsIFNjU2ltcGxlU2lnblVwRm9ybUNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dFBhc3N3b3JkTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dE1vZHVsZSxcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICAgICAgVHVpTGluayxcbiAgICAgICAgVHVpQnV0dG9uLFxuICAgICAgICBUdWlMYWJlbCxcbiAgICAgICAgVHVpRmllbGRFcnJvclBpcGUsXG4gICAgICAgIFR1aUVycm9yLFxuICAgICAgICBUdWlMZXQsXG4gICAgICAgIFR1aUxvYWRlcixcbiAgICAgICAgVHVpSW5wdXRQaG9uZU1vZHVsZSxcbiAgICAgICAgTWFza2l0b0RpcmVjdGl2ZSxcbiAgICAgICAgU2NWZXJpZmljYXRpb25Nb2R1bGUsXG4gICAgICAgIFNjRm9ybUZpZWxkc01vZHVsZSxcbiAgICAgICAgLi4uVHVpRGF0YUxpc3QsXG4gICAgICAgIFR1aUNoZWNrYm94LFxuICAgICAgICBUdWlFbGFzdGljQ29udGFpbmVyLFxuICAgICAgICAuLi5UdWlEYXRhTGlzdFdyYXBwZXIsXG4gICAgICAgIFR1aVNlbGVjdE1vZHVsZSxcbiAgICAgICAgU2NDb250cmFnZW50c01vZHVsZSxcbiAgICAgICAgU2NDb250YWN0c01vZHVsZSxcbiAgICAgICAgLi4uVHVpU3RlcHBlcixcbiAgICAgICAgVHVpUmVwZWF0VGltZXMsXG4gICAgICAgIFR1aUJ1dHRvbkxvYWRpbmcsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbU2NTaWduSW5Gb3JtQ29tcG9uZW50LCBTY1NpZ25JbkZvcm1CeVBob25lQ29tcG9uZW50LCBTY1NpZ25JbkZvcm1CeUVtYWlsQ29tcG9uZW50LCBTY1NpZ25VcEZvcm1Db21wb25lbnQsIFNjU2ltcGxlU2lnblVwRm9ybUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjQXV0aE1vZHVsZSB7fVxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvYXV0aC9zYy1hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSSxPQUFPLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQzdILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQzdILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7OztBQUVqRjs7R0FFRztBQXFDSCxNQUFNLE9BQU8sWUFBWTsrR0FBWixZQUFZO2dIQUFaLFlBQVksaUJBbkNOLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFLDRCQUE0QixFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixhQUVoSixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsY0FBYztZQUNkLDRCQUE0QjtZQUM1QixPQUFPO1lBQ1AsU0FBUztZQUNULFFBQVE7WUFDUixpQkFBaUI7WUFDakIsUUFBUTtZQUNSLE1BQU07WUFDTixTQUFTO1lBQ1QsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsa0JBQWtCLDBIQUVsQixXQUFXO1lBQ1gsbUJBQW1CLGdHQUVuQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLGdCQUFnQixzQ0FFaEIsY0FBYztZQUNkLGdCQUFnQiw2REFFaEIsc0JBQXNCO1lBQ3RCLE9BQU8sYUFFRCxxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkI7Z0hBRXRJLFlBQVksWUFqQ2pCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsNEJBQTRCO1lBSzVCLFFBQVE7WUFFUixTQUFTO1lBQ1QsbUJBQW1CO1lBRW5CLG9CQUFvQjtZQUNwQixrQkFBa0IseUNBRWxCLFdBQVc7WUFDWCxtQkFBbUIsdUVBRW5CLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsZ0JBQWdCLEVBQ2IsVUFBVSxFQUViLGdCQUFnQix3Q0FFaEIsc0JBQXNCO1lBQ3RCLE9BQU87OzRGQUlGLFlBQVk7a0JBcEN4QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFLDRCQUE0QixFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixDQUFDO29CQUNySixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLDRCQUE0Qjt3QkFDNUIsT0FBTzt3QkFDUCxTQUFTO3dCQUNULFFBQVE7d0JBQ1IsaUJBQWlCO3dCQUNqQixRQUFRO3dCQUNSLE1BQU07d0JBQ04sU0FBUzt3QkFDVCxtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLEdBQUcsV0FBVzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsR0FBRyxrQkFBa0I7d0JBQ3JCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLEdBQUcsVUFBVTt3QkFDYixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsR0FBRyxPQUFPO3dCQUNWLHNCQUFzQjt3QkFDdEIsT0FBTztxQkFDVjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsQ0FBQztpQkFDbkoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFza2l0b0RpcmVjdGl2ZSB9IGZyb20gJ0BtYXNraXRvL2FuZ3VsYXInO1xuaW1wb3J0IHsgVHVpTGV0LCBUdWlSZXBlYXRUaW1lcyB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQnV0dG9uLCBUdWlEYXRhTGlzdCwgVHVpRXJyb3IsIFR1aUljb24sIFR1aUxhYmVsLCBUdWlMaW5rLCBUdWlMb2FkZXIgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlCdXR0b25Mb2FkaW5nLCBUdWlDaGVja2JveCwgVHVpRGF0YUxpc3RXcmFwcGVyLCBUdWlFbGFzdGljQ29udGFpbmVyLCBUdWlGaWVsZEVycm9yUGlwZSwgVHVpUHVzaCwgVHVpU3RlcHBlciB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgVHVpSW5wdXRNb2R1bGUsIFR1aUlucHV0UGFzc3dvcmRNb2R1bGUsIFR1aUlucHV0UGhvbmVNb2R1bGUsIFR1aVNlbGVjdE1vZHVsZSwgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3knO1xuXG5pbXBvcnQgeyBTY01hbmFnZXJDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vY29udGFjdHMvbWFuYWdlci1jYXJkL3NjLW1hbmFnZXItY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NDb250YWN0c01vZHVsZSB9IGZyb20gJy4uL2NvbnRhY3RzL3NjLWNvbnRhY3RzLm1vZHVsZSc7XG5pbXBvcnQgeyBTY0NvbnRyYWdlbnRzTW9kdWxlIH0gZnJvbSAnLi4vY29udHJhZ2VudHMvc2MtY29udHJhZ2VudHMubW9kdWxlJztcbmltcG9ydCB7IFNjRm9ybUZpZWxkc01vZHVsZSB9IGZyb20gJy4uL2Zvcm0tZmllbGRzL2Zvcm0tZmllbGRzLm1vZHVsZSc7XG5pbXBvcnQgeyBTY1ZlcmlmaWNhdGlvbk1vZHVsZSB9IGZyb20gJy4uL3ZlcmlmaWNhdGlvbic7XG5pbXBvcnQgeyBTY1NpZ25JbkZvcm1Db21wb25lbnQgfSBmcm9tICcuL3NjLXNpZ24taW4tZm9ybS9zYy1zaWduLWluLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNjU2lnbkluRm9ybUJ5RW1haWxDb21wb25lbnQgfSBmcm9tICcuL3NjLXNpZ24taW4tZm9ybS9zYy1zaWduLWluLWZvcm0tYnktZW1haWwvc2Mtc2lnbi1pbi1mb3JtLWJ5LWVtYWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY1NpZ25JbkZvcm1CeVBob25lQ29tcG9uZW50IH0gZnJvbSAnLi9zYy1zaWduLWluLWZvcm0vc2Mtc2lnbi1pbi1mb3JtLWJ5LXBob25lL3NjLXNpZ24taW4tZm9ybS1ieS1waG9uZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NTaW1wbGVTaWduVXBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9zYy1zaW1wbGUtc2lnbi11cC1mb3JtL3NjLXNpbXBsZS1zaWduLXVwLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNjU2lnblVwRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vc2lnbi11cC1mb3JtL3NjLXNpZ24tdXAtZm9ybS5jb21wb25lbnQnO1xuXG4vKipcbiAqINCc0L7QtNGD0LvRjCDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1NjU2lnbkluRm9ybUNvbXBvbmVudCwgU2NTaWduSW5Gb3JtQnlQaG9uZUNvbXBvbmVudCwgU2NTaWduSW5Gb3JtQnlFbWFpbENvbXBvbmVudCwgU2NTaWduVXBGb3JtQ29tcG9uZW50LCBTY1NpbXBsZVNpZ25VcEZvcm1Db21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVHVpSW5wdXRQYXNzd29yZE1vZHVsZSxcbiAgICAgICAgVHVpSW5wdXRNb2R1bGUsXG4gICAgICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgICAgIFR1aUxpbmssXG4gICAgICAgIFR1aUJ1dHRvbixcbiAgICAgICAgVHVpTGFiZWwsXG4gICAgICAgIFR1aUZpZWxkRXJyb3JQaXBlLFxuICAgICAgICBUdWlFcnJvcixcbiAgICAgICAgVHVpTGV0LFxuICAgICAgICBUdWlMb2FkZXIsXG4gICAgICAgIFR1aUlucHV0UGhvbmVNb2R1bGUsXG4gICAgICAgIE1hc2tpdG9EaXJlY3RpdmUsXG4gICAgICAgIFNjVmVyaWZpY2F0aW9uTW9kdWxlLFxuICAgICAgICBTY0Zvcm1GaWVsZHNNb2R1bGUsXG4gICAgICAgIC4uLlR1aURhdGFMaXN0LFxuICAgICAgICBUdWlDaGVja2JveCxcbiAgICAgICAgVHVpRWxhc3RpY0NvbnRhaW5lcixcbiAgICAgICAgLi4uVHVpRGF0YUxpc3RXcmFwcGVyLFxuICAgICAgICBUdWlTZWxlY3RNb2R1bGUsXG4gICAgICAgIFNjQ29udHJhZ2VudHNNb2R1bGUsXG4gICAgICAgIFNjQ29udGFjdHNNb2R1bGUsXG4gICAgICAgIC4uLlR1aVN0ZXBwZXIsXG4gICAgICAgIFR1aVJlcGVhdFRpbWVzLFxuICAgICAgICBUdWlCdXR0b25Mb2FkaW5nLFxuICAgICAgICAuLi5UdWlQdXNoLFxuICAgICAgICBTY01hbmFnZXJDYXJkQ29tcG9uZW50LFxuICAgICAgICBUdWlJY29uLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1NjU2lnbkluRm9ybUNvbXBvbmVudCwgU2NTaWduSW5Gb3JtQnlQaG9uZUNvbXBvbmVudCwgU2NTaWduSW5Gb3JtQnlFbWFpbENvbXBvbmVudCwgU2NTaWduVXBGb3JtQ29tcG9uZW50LCBTY1NpbXBsZVNpZ25VcEZvcm1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTY0F1dGhNb2R1bGUge31cbiJdfQ==
@@ -1,29 +1,26 @@
1
1
  /* eslint-disable no-restricted-syntax,@typescript-eslint/unbound-method */
2
2
  import { HttpErrorResponse } from '@angular/common/http';
3
3
  import { ChangeDetectionStrategy, Component, EventEmitter, inject, Output } from '@angular/core';
4
+ import { toSignal } from '@angular/core/rxjs-interop';
4
5
  import { FormControl, FormGroup, Validators } from '@angular/forms';
6
+ import { ScAuthService } from '@snabcentr/client-core';
5
7
  import { tuiIsFalsy } from '@taiga-ui/cdk';
6
8
  import { catchError, filter, map, of, share, startWith, Subject, switchMap } from 'rxjs';
9
+ import { SC_SHOW_HELP_NOTIFICATION_IN_PHONE_INPUT } from '../../../contacts/tokens/sc-show-help-notification-in-phone-input.token';
7
10
  import { ScHelpNotificationService } from '../../../services/sc-help-notification.service';
8
11
  import * as i0 from "@angular/core";
9
- import * as i1 from "@snabcentr/client-core";
10
- import * as i2 from "@angular/forms";
11
- import * as i3 from "@taiga-ui/legacy";
12
- import * as i4 from "@taiga-ui/legacy/components/primitive-textfield";
13
- import * as i5 from "@taiga-ui/core";
14
- import * as i6 from "@taiga-ui/kit";
12
+ import * as i1 from "@angular/forms";
13
+ import * as i2 from "@taiga-ui/legacy";
14
+ import * as i3 from "@taiga-ui/legacy/components/primitive-textfield";
15
+ import * as i4 from "@taiga-ui/core";
16
+ import * as i5 from "@taiga-ui/kit";
17
+ import * as i6 from "../../../contacts/manager-card/sc-manager-card.component";
15
18
  import * as i7 from "@angular/common";
16
19
  /**
17
20
  * Компонент аутентификации по адресу электронной почты и паролю.
18
21
  */
19
22
  export class ScSignInFormByEmailComponent {
20
- /**
21
- * Инициализирует экземпляр класса {@link ScSignInFormByEmailComponent}.
22
- *
23
- * @param authService Сервис аутентификации.
24
- */
25
- constructor(authService) {
26
- this.authService = authService;
23
+ constructor() {
27
24
  /**
28
25
  * Группа полей ввода для формы «Вход на сайт».
29
26
  */
@@ -39,6 +36,14 @@ export class ScSignInFormByEmailComponent {
39
36
  * Сервис для отображения Push-уведомлений с контактами для помощи клиенту.
40
37
  */
41
38
  this.helpNotificationService = inject(ScHelpNotificationService);
39
+ /**
40
+ * Список контактов для отправки push-уведомлений.
41
+ */
42
+ this.pushContacts = toSignal(this.helpNotificationService.getContactsShow$());
43
+ /**
44
+ * Токен показа уведомления помощи.
45
+ */
46
+ this.showHelpNotification = inject(SC_SHOW_HELP_NOTIFICATION_IN_PHONE_INPUT);
42
47
  /**
43
48
  * {@link Observable} запроса данных аутентификации.
44
49
  */
@@ -87,14 +92,28 @@ export class ScSignInFormByEmailComponent {
87
92
  * Сигнал нажатия на кнопку "Забыли пароль".
88
93
  */
89
94
  this.forgotPassword = new EventEmitter();
95
+ /**
96
+ * Сервис аутентификации.
97
+ */
98
+ this.authService = inject(ScAuthService);
99
+ }
100
+ /**
101
+ * Закрытие уведомления.
102
+ */
103
+ closeNotification() {
104
+ this.helpNotificationService.closeAllHelpNotification();
105
+ }
106
+ /** @inheritDoc */
107
+ ngOnDestroy() {
108
+ this.helpNotificationService.closeAllHelpNotification();
90
109
  }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScSignInFormByEmailComponent, deps: [{ token: i1.ScAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
92
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ScSignInFormByEmailComponent, selector: "sc-sign-in-form-by-email", outputs: { forgotPassword: "forgotPassword" }, ngImport: i0, template: "<form\n [formGroup]=\"formByEmail\"\n (ngSubmit)=\"onSubmit.next()\"\n>\n <div class=\"mb-8 flex flex-col gap-4\">\n <label tuiLabel\n >\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <tui-input formControlName=\"username\">\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <input\n tuiTextfieldLegacy\n autocomplete=\"email\"\n />\n </tui-input>\n <tui-error\n formControlName=\"username\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel\n >\u041F\u0430\u0440\u043E\u043B\u044C\n <tui-input-password formControlName=\"password\">\n \u041F\u0430\u0440\u043E\u043B\u044C\n <input\n tuiTextfieldLegacy\n autocomplete=\"current-password\"\n />\n </tui-input-password>\n <tui-error\n formControlName=\"password\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <tui-error [error]=\"[] | tuiFieldError | async\"></tui-error>\n </div>\n <div class=\"mb-4 flex flex-col items-center gap-4\">\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"forgotPassword.emit()\"\n class=\"text-base\"\n >\u0417\u0430\u0431\u044B\u043B\u0438 \u043F\u0430\u0440\u043E\u043B\u044C?</a\n >\n <button\n tuiButton\n type=\"submit\"\n [loading]=\"!!(loadingEmailAuth$ | async)\"\n [disabled]=\"formByEmail.invalid || !!(loadingEmailAuth$ | async)\"\n iconStart=\"@tui.sc.circle-arrow-in-right\"\n >\n \u0412\u043E\u0439\u0442\u0438\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.TuiInputPasswordComponent, selector: "tui-input-password" }, { kind: "directive", type: i3.TuiInputPasswordDirective, selector: "tui-input-password" }, { kind: "component", type: i4.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "component", type: i3.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i3.TuiInputDirective, selector: "tui-input" }, { kind: "directive", type: i5.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i5.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: i5.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i5.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i6.TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSignInFormByEmailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScSignInFormByEmailComponent, selector: "sc-sign-in-form-by-email", outputs: { forgotPassword: "forgotPassword" }, ngImport: i0, template: "<form\n [formGroup]=\"formByEmail\"\n (ngSubmit)=\"onSubmit.next()\"\n>\n <div class=\"mb-8 flex flex-col gap-4\">\n <label tuiLabel\n >\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <tui-input formControlName=\"username\">\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <input\n tuiTextfieldLegacy\n autocomplete=\"email\"\n />\n </tui-input>\n <tui-error\n formControlName=\"username\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041F\u0430\u0440\u043E\u043B\u044C\n <tui-input-password formControlName=\"password\">\n \u041F\u0430\u0440\u043E\u043B\u044C\n <input\n tuiTextfieldLegacy\n autocomplete=\"current-password\"\n />\n </tui-input-password>\n <tui-error\n formControlName=\"password\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <tui-error [error]=\"[] | tuiFieldError | async\" />\n </div>\n\n @if (showHelpNotification && pushContacts()) {\n <div class=\"mb-4 flex flex-col gap-3\">\n @for (manager of pushContacts(); track manager.id) {\n <tui-push\n type=\"\u0421\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u043C\u0438 \u0434\u043B\u044F \u0440\u0435\u0448\u0435\u043D\u0438\u044F \u0432\u043E\u0437\u043D\u0438\u043A\u0448\u0438\u0445 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432\"\n (close)=\"closeNotification()\"\n class=\"!w-auto\"\n >\n <tui-icon icon=\"@tui.message-square\" />\n <sc-manager-card [manager]=\"manager\" />\n </tui-push>\n }\n </div>\n }\n\n <div class=\"mb-4 flex flex-col items-center gap-4\">\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"forgotPassword.emit()\"\n class=\"text-base\"\n >\u0417\u0430\u0431\u044B\u043B\u0438 \u043F\u0430\u0440\u043E\u043B\u044C?</a\n >\n <button\n tuiButton\n type=\"submit\"\n [loading]=\"!!(loadingEmailAuth$ | async)\"\n [disabled]=\"formByEmail.invalid || !!(loadingEmailAuth$ | async)\"\n iconStart=\"@tui.sc.circle-arrow-in-right\"\n >\n \u0412\u043E\u0439\u0442\u0438\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.TuiInputPasswordComponent, selector: "tui-input-password" }, { kind: "directive", type: i2.TuiInputPasswordDirective, selector: "tui-input-password" }, { kind: "component", type: i3.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "component", type: i2.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i2.TuiInputDirective, selector: "tui-input" }, { kind: "directive", type: i4.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i4.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: i4.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i4.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i5.TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "component", type: i5.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "lines", "timestamp"], outputs: ["close"] }, { kind: "component", type: i6.ScManagerCardComponent, selector: "sc-manager-card", inputs: ["manager"] }, { kind: "component", type: i4.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
112
  }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScSignInFormByEmailComponent, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSignInFormByEmailComponent, decorators: [{
95
114
  type: Component,
96
- args: [{ selector: 'sc-sign-in-form-by-email', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n [formGroup]=\"formByEmail\"\n (ngSubmit)=\"onSubmit.next()\"\n>\n <div class=\"mb-8 flex flex-col gap-4\">\n <label tuiLabel\n >\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <tui-input formControlName=\"username\">\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <input\n tuiTextfieldLegacy\n autocomplete=\"email\"\n />\n </tui-input>\n <tui-error\n formControlName=\"username\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel\n >\u041F\u0430\u0440\u043E\u043B\u044C\n <tui-input-password formControlName=\"password\">\n \u041F\u0430\u0440\u043E\u043B\u044C\n <input\n tuiTextfieldLegacy\n autocomplete=\"current-password\"\n />\n </tui-input-password>\n <tui-error\n formControlName=\"password\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <tui-error [error]=\"[] | tuiFieldError | async\"></tui-error>\n </div>\n <div class=\"mb-4 flex flex-col items-center gap-4\">\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"forgotPassword.emit()\"\n class=\"text-base\"\n >\u0417\u0430\u0431\u044B\u043B\u0438 \u043F\u0430\u0440\u043E\u043B\u044C?</a\n >\n <button\n tuiButton\n type=\"submit\"\n [loading]=\"!!(loadingEmailAuth$ | async)\"\n [disabled]=\"formByEmail.invalid || !!(loadingEmailAuth$ | async)\"\n iconStart=\"@tui.sc.circle-arrow-in-right\"\n >\n \u0412\u043E\u0439\u0442\u0438\n </button>\n </div>\n</form>\n" }]
97
- }], ctorParameters: () => [{ type: i1.ScAuthService }], propDecorators: { forgotPassword: [{
115
+ args: [{ selector: 'sc-sign-in-form-by-email', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n [formGroup]=\"formByEmail\"\n (ngSubmit)=\"onSubmit.next()\"\n>\n <div class=\"mb-8 flex flex-col gap-4\">\n <label tuiLabel\n >\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <tui-input formControlName=\"username\">\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <input\n tuiTextfieldLegacy\n autocomplete=\"email\"\n />\n </tui-input>\n <tui-error\n formControlName=\"username\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041F\u0430\u0440\u043E\u043B\u044C\n <tui-input-password formControlName=\"password\">\n \u041F\u0430\u0440\u043E\u043B\u044C\n <input\n tuiTextfieldLegacy\n autocomplete=\"current-password\"\n />\n </tui-input-password>\n <tui-error\n formControlName=\"password\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <tui-error [error]=\"[] | tuiFieldError | async\" />\n </div>\n\n @if (showHelpNotification && pushContacts()) {\n <div class=\"mb-4 flex flex-col gap-3\">\n @for (manager of pushContacts(); track manager.id) {\n <tui-push\n type=\"\u0421\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u043C\u0438 \u0434\u043B\u044F \u0440\u0435\u0448\u0435\u043D\u0438\u044F \u0432\u043E\u0437\u043D\u0438\u043A\u0448\u0438\u0445 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432\"\n (close)=\"closeNotification()\"\n class=\"!w-auto\"\n >\n <tui-icon icon=\"@tui.message-square\" />\n <sc-manager-card [manager]=\"manager\" />\n </tui-push>\n }\n </div>\n }\n\n <div class=\"mb-4 flex flex-col items-center gap-4\">\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"forgotPassword.emit()\"\n class=\"text-base\"\n >\u0417\u0430\u0431\u044B\u043B\u0438 \u043F\u0430\u0440\u043E\u043B\u044C?</a\n >\n <button\n tuiButton\n type=\"submit\"\n [loading]=\"!!(loadingEmailAuth$ | async)\"\n [disabled]=\"formByEmail.invalid || !!(loadingEmailAuth$ | async)\"\n iconStart=\"@tui.sc.circle-arrow-in-right\"\n >\n \u0412\u043E\u0439\u0442\u0438\n </button>\n </div>\n</form>\n" }]
116
+ }], propDecorators: { forgotPassword: [{
98
117
  type: Output
99
118
  }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2lnbi1pbi1mb3JtLWJ5LWVtYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9hdXRoL3NjLXNpZ24taW4tZm9ybS9zYy1zaWduLWluLWZvcm0tYnktZW1haWwvc2Mtc2lnbi1pbi1mb3JtLWJ5LWVtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9hdXRoL3NjLXNpZ24taW4tZm9ybS9zYy1zaWduLWluLWZvcm0tYnktZW1haWwvc2Mtc2lnbi1pbi1mb3JtLWJ5LWVtYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFckcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7Ozs7OztBQUczRjs7R0FFRztBQU1ILE1BQU0sT0FBTyw0QkFBNEI7SUFtRnJDOzs7O09BSUc7SUFDSCxZQUFvQyxXQUEwQjtRQUExQixnQkFBVyxHQUFYLFdBQVcsQ0FBZTtRQXZGOUQ7O1dBRUc7UUFDYSxnQkFBVyxHQUFjLElBQUksU0FBUyxD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RSxDQUFDO3dCQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDOUQsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sRUFBRSxDQUFDLEVBQWdCLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLENBQ2xCLENBQ0osRUFDRCxLQUFLLEVBQUUsQ0FDVixDQUFDO1FBRUY7O1dBRUc7UUFDYSxzQkFBaUIsR0FBd0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFbEc7O1dBRUc7UUFDdUIsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQU92QixDQUFDOytHQXhGekQsNEJBQTRCO21HQUE1Qiw0QkFBNEIsK0dDcEJ6QywyakVBc0RBOzs0RkRsQ2EsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNJLDBCQUEwQixtQkFFbkIsdUJBQXVCLENBQUMsTUFBTTtrRkFtRnJCLGNBQWM7c0JBQXZDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCxAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2QgKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSUF1dGhUb2tlbiwgSUxvZ2luLCBTY0F1dGhTZXJ2aWNlLCBTY0lLZXljbG9ha0Vycm9yUmVzcG9uc2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IHR1aUlzRmFsc3kgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmUsIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjSGVscE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zYy1oZWxwLW5vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFwaUVycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2FwaS1lcnJvci1yZXNwb25zZSc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Lgg0L/QviDQsNC00YDQtdGB0YMg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLINC4INC/0LDRgNC+0LvRji5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1zaWduLWluLWZvcm0tYnktZW1haWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1zaWduLWluLWZvcm0tYnktZW1haWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY1NpZ25JbkZvcm1CeUVtYWlsQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiDQk9GA0YPQv9C/0LAg0L/QvtC70LXQuSDQstCy0L7QtNCwINC00LvRjyDRhNC+0YDQvNGLIMKr0JLRhdC+0LQg0L3QsCDRgdCw0LnRgsK7LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmb3JtQnlFbWFpbDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIHVzZXJuYW1lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKSxcbiAgICAgICAgcGFzc3dvcmQ6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBTdWJqZWN0fSDRgdC+0LHRi9GC0LjRjyDQvtGC0L/RgNCw0LLQutC4INGE0L7RgNC80YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG9uU3VibWl0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjyBQdXNoLdGD0LLQtdC00L7QvNC70LXQvdC40Lkg0YEg0LrQvtC90YLQsNC60YLQsNC80Lgg0LTQu9GPINC/0L7QvNC+0YnQuCDQutC70LjQtdC90YLRgy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGVscE5vdGlmaWNhdGlvblNlcnZpY2U6IFNjSGVscE5vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoU2NIZWxwTm90aWZpY2F0aW9uU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbWFpbFJlcXVlc3QkOiBPYnNlcnZhYmxlPElBdXRoVG9rZW4gfCBudWxsPiA9IHRoaXMub25TdWJtaXQucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybUJ5RW1haWwudmFsaWQpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5mb3JtQnlFbWFpbC52YWx1ZSBhcyBJTG9naW4pLFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRTaWduSW4kKHZhbHVlKS5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2NvZ25pdGl2ZS1jb21wbGV4aXR5XG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnZXJyb3InIGluIGVycm9yLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IGVycm9yLmVycm9yIGFzIFNjSUtleWNsb2FrRXJyb3JSZXNwb25zZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvclJlc3BvbnNlLmVycm9yLmluY2x1ZGVzKCdpbnZhbGlkX2dyYW50JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yUmVzcG9uc2UuZXJyb3JEZXNjcmlwdGlvbj8udG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnaW52YWxpZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1CeUVtYWlsLnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBbJ9Cd0LXQstC10YDQvdGL0Lkg0LDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0Ysg0LjQu9C4INC/0LDRgNC+0LvRjC4g0J/RgNC+0LLQtdGA0YzRgtC1INC/0YDQsNCy0LjQu9GM0L3QvtGB0YLRjCDQstCy0L7QtNCwLiddIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yUmVzcG9uc2UuZXJyb3JEZXNjcmlwdGlvbj8udG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnZGlzYWJsZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQnlFbWFpbC5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogWyfQo9GH0LXRgtC90LDRjyDQt9Cw0L/QuNGB0Ywg0LfQsNCx0LvQvtC60LjRgNC+0LLQsNC90LAsINGB0LLRj9C20LjRgtC10YHRjCDRgSDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNC+0LwuJ10gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1CeUVtYWlsLnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBbZXJyb3JSZXNwb25zZS5lcnJvckRlc2NyaXB0aW9uID8/IGVycm9yUmVzcG9uc2UuZXJyb3JdIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvcnMsIG1lc3NhZ2UgfSA9IGVycm9yLmVycm9yIGFzIEFwaUVycm9yUmVzcG9uc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oZXJyb3JzLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUJ5RW1haWwuZ2V0KGtleSk/LnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBlcnJvcnNba2V5XSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluY2x1ZGVzKCfQtNC10LDQutGC0LjQstC40YDQvtCy0LDQvScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGVscE5vdGlmaWNhdGlvblNlcnZpY2UuaGVscE5vdGlmaWNhdGlvbkJ5RW1haWwodmFsdWUudXNlcm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZXJyb3JzICYmIG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQnlFbWFpbC5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogW21lc3NhZ2VdIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7fSBhcyBJQXV0aFRva2VuKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbClcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L7RgdGC0L7Rj9C90LjRjyDQt9Cw0LPRgNGD0LfQutC4INC00LDQvdC90YvRhSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4INC/0L4gZW1haWwuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdFbWFpbEF1dGgkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5lbWFpbFJlcXVlc3QkLnBpcGUobWFwKHR1aUlzRmFsc3kpKTtcblxuICAgIC8qKlxuICAgICAqINCh0LjQs9C90LDQuyDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBcItCX0LDQsdGL0LvQuCDQv9Cw0YDQvtC70YxcIi5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZvcmdvdFBhc3N3b3JkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjU2lnbkluRm9ybUJ5RW1haWxDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGF1dGhTZXJ2aWNlINCh0LXRgNCy0LjRgSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBTY0F1dGhTZXJ2aWNlKSB7fVxufVxuIiwiPGZvcm1cbiAgICBbZm9ybUdyb3VwXT1cImZvcm1CeUVtYWlsXCJcbiAgICAobmdTdWJtaXQpPVwib25TdWJtaXQubmV4dCgpXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwibWItOCBmbGV4IGZsZXgtY29sIGdhcC00XCI+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbFxuICAgICAgICAgICAgPtCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLXG4gICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCI+XG4gICAgICAgICAgICAgICAg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YtcbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICA+PC90dWktZXJyb3I+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbFxuICAgICAgICAgICAgPtCf0LDRgNC+0LvRjFxuICAgICAgICAgICAgPHR1aS1pbnB1dC1wYXNzd29yZCBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiPlxuICAgICAgICAgICAgICAgINCf0LDRgNC+0LvRjFxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRMZWdhY3lcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvdHVpLWlucHV0LXBhc3N3b3JkPlxuICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8dHVpLWVycm9yIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiPjwvdHVpLWVycm9yPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi00IGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICBbcHNldWRvXT1cInRydWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImZvcmdvdFBhc3N3b3JkLmVtaXQoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtYmFzZVwiXG4gICAgICAgICAgICA+0JfQsNCx0YvQu9C4INC/0LDRgNC+0LvRjD88L2FcbiAgICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiISEobG9hZGluZ0VtYWlsQXV0aCQgfCBhc3luYylcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1CeUVtYWlsLmludmFsaWQgfHwgISEobG9hZGluZ0VtYWlsQXV0aCQgfCBhc3luYylcIlxuICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS5zYy5jaXJjbGUtYXJyb3ctaW4tcmlnaHRcIlxuICAgICAgICA+XG4gICAgICAgICAgICDQktC+0LnRgtC4XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2lnbi1pbi1mb3JtLWJ5LWVtYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9hdXRoL3NjLXNpZ24taW4tZm9ybS9zYy1zaWduLWluLWZvcm0tYnktZW1haWwvc2Mtc2lnbi1pbi1mb3JtLWJ5LWVtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9hdXRoL3NjLXNpZ24taW4tZm9ybS9zYy1zaWduLWluLWZvcm0tYnktZW1haWwvc2Mtc2lnbi1pbi1mb3JtLWJ5LWVtYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQXNCLGFBQWEsRUFBMkMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJHLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQ25JLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7Ozs7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dUJBQXVCLENBQUMsTUFBTTs4QkE2RnJCLGNBQWM7c0JBQXZDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCxAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2QgKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT25EZXN0cm95LCBPdXRwdXQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSUF1dGhUb2tlbiwgSUxvZ2luLCBTY0F1dGhTZXJ2aWNlLCBTY0lPcmdDb250YWN0LCBTY0lLZXljbG9ha0Vycm9yUmVzcG9uc2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IHR1aUlzRmFsc3kgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmUsIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNDX1NIT1dfSEVMUF9OT1RJRklDQVRJT05fSU5fUEhPTkVfSU5QVVQgfSBmcm9tICcuLi8uLi8uLi9jb250YWN0cy90b2tlbnMvc2Mtc2hvdy1oZWxwLW5vdGlmaWNhdGlvbi1pbi1waG9uZS1pbnB1dC50b2tlbic7XG5pbXBvcnQgeyBTY0hlbHBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2MtaGVscC1ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBcGlFcnJvclJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hcGktZXJyb3ItcmVzcG9uc2UnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4INC/0L4g0LDQtNGA0LXRgdGDINGN0LvQtdC60YLRgNC+0L3QvdC+0Lkg0L/QvtGH0YLRiyDQuCDQv9Cw0YDQvtC70Y4uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2Mtc2lnbi1pbi1mb3JtLWJ5LWVtYWlsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Mtc2lnbi1pbi1mb3JtLWJ5LWVtYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NTaWduSW5Gb3JtQnlFbWFpbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICog0JPRgNGD0L/Qv9CwINC/0L7Qu9C10Lkg0LLQstC+0LTQsCDQtNC70Y8g0YTQvtGA0LzRiyDCq9CS0YXQvtC0INC90LAg0YHQsNC50YLCuy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybUJ5RW1haWw6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICB1c2VybmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSksXG4gICAgICAgIHBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgU3ViamVjdH0g0YHQvtCx0YvRgtC40Y8g0L7RgtC/0YDQsNCy0LrQuCDRhNC+0YDQvNGLLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBvblN1Ym1pdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8gUHVzaC3Rg9Cy0LXQtNC+0LzQu9C10L3QuNC5INGBINC60L7QvdGC0LDQutGC0LDQvNC4INC00LvRjyDQv9C+0LzQvtGJ0Lgg0LrQu9C40LXQvdGC0YMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhlbHBOb3RpZmljYXRpb25TZXJ2aWNlOiBTY0hlbHBOb3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KFNjSGVscE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INC60L7QvdGC0LDQutGC0L7QsiDQtNC70Y8g0L7RgtC/0YDQsNCy0LrQuCBwdXNoLdGD0LLQtdC00L7QvNC70LXQvdC40LkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHB1c2hDb250YWN0czogU2lnbmFsPFNjSU9yZ0NvbnRhY3RbXSB8IHVuZGVmaW5lZD4gPSB0b1NpZ25hbCh0aGlzLmhlbHBOb3RpZmljYXRpb25TZXJ2aWNlLmdldENvbnRhY3RzU2hvdyQoKSk7XG5cbiAgICAvKipcbiAgICAgKiDQotC+0LrQtdC9INC/0L7QutCw0LfQsCDRg9Cy0LXQtNC+0LzQu9C10L3QuNGPINC/0L7QvNC+0YnQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd0hlbHBOb3RpZmljYXRpb24gPSBpbmplY3QoU0NfU0hPV19IRUxQX05PVElGSUNBVElPTl9JTl9QSE9ORV9JTlBVVCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbWFpbFJlcXVlc3QkOiBPYnNlcnZhYmxlPElBdXRoVG9rZW4gfCBudWxsPiA9IHRoaXMub25TdWJtaXQucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybUJ5RW1haWwudmFsaWQpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5mb3JtQnlFbWFpbC52YWx1ZSBhcyBJTG9naW4pLFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRTaWduSW4kKHZhbHVlKS5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2NvZ25pdGl2ZS1jb21wbGV4aXR5XG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnZXJyb3InIGluIGVycm9yLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IGVycm9yLmVycm9yIGFzIFNjSUtleWNsb2FrRXJyb3JSZXNwb25zZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvclJlc3BvbnNlLmVycm9yLmluY2x1ZGVzKCdpbnZhbGlkX2dyYW50JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yUmVzcG9uc2UuZXJyb3JEZXNjcmlwdGlvbj8udG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnaW52YWxpZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1CeUVtYWlsLnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBbJ9Cd0LXQstC10YDQvdGL0Lkg0LDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0Ysg0LjQu9C4INC/0LDRgNC+0LvRjC4g0J/RgNC+0LLQtdGA0YzRgtC1INC/0YDQsNCy0LjQu9GM0L3QvtGB0YLRjCDQstCy0L7QtNCwLiddIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yUmVzcG9uc2UuZXJyb3JEZXNjcmlwdGlvbj8udG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnZGlzYWJsZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQnlFbWFpbC5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogWyfQo9GH0LXRgtC90LDRjyDQt9Cw0L/QuNGB0Ywg0LfQsNCx0LvQvtC60LjRgNC+0LLQsNC90LAsINGB0LLRj9C20LjRgtC10YHRjCDRgSDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNC+0LwuJ10gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1CeUVtYWlsLnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBbZXJyb3JSZXNwb25zZS5lcnJvckRlc2NyaXB0aW9uID8/IGVycm9yUmVzcG9uc2UuZXJyb3JdIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvcnMsIG1lc3NhZ2UgfSA9IGVycm9yLmVycm9yIGFzIEFwaUVycm9yUmVzcG9uc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oZXJyb3JzLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUJ5RW1haWwuZ2V0KGtleSk/LnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBlcnJvcnNba2V5XSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluY2x1ZGVzKCfQtNC10LDQutGC0LjQstC40YDQvtCy0LDQvScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGVscE5vdGlmaWNhdGlvblNlcnZpY2UuaGVscE5vdGlmaWNhdGlvbkJ5RW1haWwodmFsdWUudXNlcm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZXJyb3JzICYmIG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQnlFbWFpbC5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogW21lc3NhZ2VdIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7fSBhcyBJQXV0aFRva2VuKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbClcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L7RgdGC0L7Rj9C90LjRjyDQt9Cw0LPRgNGD0LfQutC4INC00LDQvdC90YvRhSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4INC/0L4gZW1haWwuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdFbWFpbEF1dGgkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5lbWFpbFJlcXVlc3QkLnBpcGUobWFwKHR1aUlzRmFsc3kpKTtcblxuICAgIC8qKlxuICAgICAqINCh0LjQs9C90LDQuyDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBcItCX0LDQsdGL0LvQuCDQv9Cw0YDQvtC70YxcIi5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZvcmdvdFBhc3N3b3JkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBTY0F1dGhTZXJ2aWNlID0gaW5qZWN0KFNjQXV0aFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0JfQsNC60YDRi9GC0LjQtSDRg9Cy0LXQtNC+0LzQu9C10L3QuNGPLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjbG9zZU5vdGlmaWNhdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oZWxwTm90aWZpY2F0aW9uU2VydmljZS5jbG9zZUFsbEhlbHBOb3RpZmljYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGVscE5vdGlmaWNhdGlvblNlcnZpY2UuY2xvc2VBbGxIZWxwTm90aWZpY2F0aW9uKCk7XG4gICAgfVxufVxuIiwiPGZvcm1cbiAgICBbZm9ybUdyb3VwXT1cImZvcm1CeUVtYWlsXCJcbiAgICAobmdTdWJtaXQpPVwib25TdWJtaXQubmV4dCgpXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwibWItOCBmbGV4IGZsZXgtY29sIGdhcC00XCI+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbFxuICAgICAgICAgICAgPtCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLXG4gICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCI+XG4gICAgICAgICAgICAgICAg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YtcbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQn9Cw0YDQvtC70YxcbiAgICAgICAgICAgIDx0dWktaW5wdXQtcGFzc3dvcmQgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIj5cbiAgICAgICAgICAgICAgICDQn9Cw0YDQvtC70YxcbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImN1cnJlbnQtcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dC1wYXNzd29yZD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx0dWktZXJyb3IgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCIgLz5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoc2hvd0hlbHBOb3RpZmljYXRpb24gJiYgcHVzaENvbnRhY3RzKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgICAgICAgICAgQGZvciAobWFuYWdlciBvZiBwdXNoQ29udGFjdHMoKTsgdHJhY2sgbWFuYWdlci5pZCkge1xuICAgICAgICAgICAgICAgIDx0dWktcHVzaFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwi0KHQstGP0LbQuNGC0LXRgdGMINGBINC90LDQvNC4INC00LvRjyDRgNC10YjQtdC90LjRjyDQstC+0LfQvdC40LrRiNC40YUg0LLQvtC/0YDQvtGB0L7QslwiXG4gICAgICAgICAgICAgICAgICAgIChjbG9zZSk9XCJjbG9zZU5vdGlmaWNhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhdy1hdXRvXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx0dWktaWNvbiBpY29uPVwiQHR1aS5tZXNzYWdlLXNxdWFyZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxzYy1tYW5hZ2VyLWNhcmQgW21hbmFnZXJdPVwibWFuYWdlclwiIC8+XG4gICAgICAgICAgICAgICAgPC90dWktcHVzaD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cIm1iLTQgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgIFtwc2V1ZG9dPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZm9yZ290UGFzc3dvcmQuZW1pdCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1iYXNlXCJcbiAgICAgICAgICAgID7Ql9Cw0LHRi9C70Lgg0L/QsNGA0L7Qu9GMPzwvYVxuICAgICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBbbG9hZGluZ109XCIhIShsb2FkaW5nRW1haWxBdXRoJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybUJ5RW1haWwuaW52YWxpZCB8fCAhIShsb2FkaW5nRW1haWxBdXRoJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnNjLmNpcmNsZS1hcnJvdy1pbi1yaWdodFwiXG4gICAgICAgID5cbiAgICAgICAgICAgINCS0L7QudGC0LhcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=