@snabcentr/client-ui 0.5.2 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. package/accordion/index.d.ts +3 -0
  2. package/accordion/sc-accordion-content.directive.d.ts +9 -0
  3. package/accordion/sc-accordion.component.d.ts +43 -0
  4. package/accordion/sc-accordion.module.d.ts +15 -0
  5. package/catalog/index.d.ts +1 -0
  6. package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +27 -0
  7. package/catalog/sc-catalog.module.d.ts +15 -13
  8. package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +23 -0
  9. package/contacts/index.d.ts +2 -0
  10. package/contacts/sc-contacts.module.d.ts +14 -0
  11. package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +45 -0
  12. package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +38 -0
  13. package/contragents/index.d.ts +3 -0
  14. package/contragents/sc-contragents.module.d.ts +16 -0
  15. package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +32 -0
  16. package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +26 -0
  17. package/delivery-address/index.d.ts +3 -0
  18. package/delivery-address/sc-delivery-address.module.d.ts +16 -0
  19. package/esm2020/accordion/index.mjs +4 -0
  20. package/esm2020/accordion/sc-accordion-content.directive.mjs +17 -0
  21. package/esm2020/accordion/sc-accordion.component.mjs +78 -0
  22. package/esm2020/accordion/sc-accordion.module.mjs +25 -0
  23. package/esm2020/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +3 -3
  24. package/esm2020/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +3 -3
  25. package/esm2020/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +3 -3
  26. package/esm2020/catalog/index.mjs +2 -1
  27. package/esm2020/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +37 -0
  28. package/esm2020/catalog/sc-catalog.module.mjs +38 -6
  29. package/esm2020/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +35 -0
  30. package/esm2020/contacts/index.mjs +3 -0
  31. package/esm2020/contacts/sc-contacts.module.mjs +24 -0
  32. package/esm2020/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +54 -0
  33. package/esm2020/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +57 -0
  34. package/esm2020/contragents/index.mjs +4 -0
  35. package/esm2020/contragents/sc-contragents.module.mjs +26 -0
  36. package/esm2020/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +40 -0
  37. package/esm2020/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +39 -0
  38. package/esm2020/delivery-address/index.mjs +4 -0
  39. package/esm2020/delivery-address/sc-delivery-address.module.mjs +26 -0
  40. package/esm2020/profile/index.mjs +3 -0
  41. package/esm2020/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +99 -0
  42. package/esm2020/profile/sc-profile.module.mjs +76 -0
  43. package/esm2020/providers/index.mjs +3 -0
  44. package/esm2020/providers/productsPagination.mjs +97 -0
  45. package/esm2020/providers/scUserProviders.mjs +30 -0
  46. package/esm2020/public-api.mjs +8 -1
  47. package/esm2020/user/index.mjs +3 -0
  48. package/esm2020/user/reset-user-password/sc-reset-user-password.component.mjs +61 -0
  49. package/esm2020/user/sc-user.module.mjs +54 -0
  50. package/esm2020/validators/index.mjs +2 -1
  51. package/esm2020/validators/scPasswordConfirmMatchingValidator.mjs +18 -0
  52. package/fesm2015/snabcentr-client-ui.mjs +824 -45
  53. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  54. package/fesm2020/snabcentr-client-ui.mjs +819 -45
  55. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  56. package/package.json +1 -1
  57. package/profile/index.d.ts +2 -0
  58. package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +61 -0
  59. package/profile/sc-profile.module.d.ts +19 -0
  60. package/providers/index.d.ts +2 -0
  61. package/providers/productsPagination.d.ts +43 -0
  62. package/providers/scUserProviders.d.ts +18 -0
  63. package/public-api.d.ts +7 -0
  64. package/styles/tailwind/tailwind.scss +38 -0
  65. package/user/index.d.ts +2 -0
  66. package/user/reset-user-password/sc-reset-user-password.component.d.ts +38 -0
  67. package/user/sc-user.module.d.ts +15 -0
  68. package/validators/index.d.ts +1 -0
  69. package/validators/scPasswordConfirmMatchingValidator.d.ts +7 -0
@@ -0,0 +1,76 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { TuiButtonModule, TuiFormatPhonePipeModule, TuiLinkModule, TuiLoaderModule, TuiModeModule, TuiSvgModule } from '@taiga-ui/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { TuiLetModule } from '@taiga-ui/cdk';
5
+ import { ScProfileAccordionsContentComponent } from './sc-profile-accordions-content/sc-profile-accordions-content.component';
6
+ import { ScAccordionModule } from '../accordion';
7
+ import { ScContragentsModule } from '../contragents';
8
+ import { ScDeliveryAddressModule } from '../delivery-address';
9
+ import { ScUserModule } from '../user';
10
+ import { TuiCheckboxLabeledModule } from '@taiga-ui/kit';
11
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
12
+ import * as i0 from "@angular/core";
13
+ /**
14
+ * Модуль профиля пользователя.
15
+ */
16
+ export class ScProfileModule {
17
+ }
18
+ ScProfileModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScProfileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ ScProfileModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScProfileModule, declarations: [ScProfileAccordionsContentComponent], imports: [CommonModule,
20
+ ScUserModule,
21
+ ScAccordionModule,
22
+ ScContragentsModule,
23
+ ScDeliveryAddressModule,
24
+ TuiLoaderModule,
25
+ TuiLetModule,
26
+ TuiLinkModule,
27
+ TuiModeModule,
28
+ TuiFormatPhonePipeModule,
29
+ TuiCheckboxLabeledModule,
30
+ TuiSvgModule,
31
+ FormsModule,
32
+ ReactiveFormsModule,
33
+ TuiLoaderModule,
34
+ TuiButtonModule], exports: [ScProfileAccordionsContentComponent] });
35
+ ScProfileModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScProfileModule, imports: [CommonModule,
36
+ ScUserModule,
37
+ ScAccordionModule,
38
+ ScContragentsModule,
39
+ ScDeliveryAddressModule,
40
+ TuiLoaderModule,
41
+ TuiLetModule,
42
+ TuiLinkModule,
43
+ TuiModeModule,
44
+ TuiFormatPhonePipeModule,
45
+ TuiCheckboxLabeledModule,
46
+ TuiSvgModule,
47
+ FormsModule,
48
+ ReactiveFormsModule,
49
+ TuiLoaderModule,
50
+ TuiButtonModule] });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScProfileModule, decorators: [{
52
+ type: NgModule,
53
+ args: [{
54
+ declarations: [ScProfileAccordionsContentComponent],
55
+ imports: [
56
+ CommonModule,
57
+ ScUserModule,
58
+ ScAccordionModule,
59
+ ScContragentsModule,
60
+ ScDeliveryAddressModule,
61
+ TuiLoaderModule,
62
+ TuiLetModule,
63
+ TuiLinkModule,
64
+ TuiModeModule,
65
+ TuiFormatPhonePipeModule,
66
+ TuiCheckboxLabeledModule,
67
+ TuiSvgModule,
68
+ FormsModule,
69
+ ReactiveFormsModule,
70
+ TuiLoaderModule,
71
+ TuiButtonModule,
72
+ ],
73
+ exports: [ScProfileAccordionsContentComponent],
74
+ }]
75
+ }] });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZmlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvcHJvZmlsZS9zYy1wcm9maWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDOUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbEU7O0dBRUc7QUF1QkgsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFyQlQsbUNBQW1DLGFBRTlDLFlBQVk7UUFDWixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsZUFBZTtRQUNmLFlBQVk7UUFDWixhQUFhO1FBQ2IsYUFBYTtRQUNiLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLGVBQWUsYUFFVCxtQ0FBbUM7NkdBRXBDLGVBQWUsWUFuQnBCLFlBQVk7UUFDWixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsZUFBZTtRQUNmLFlBQVk7UUFDWixhQUFhO1FBQ2IsYUFBYTtRQUNiLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLGVBQWU7MkZBSVYsZUFBZTtrQkF0QjNCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsbUNBQW1DLENBQUM7b0JBQ25ELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztpQkFDakQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHVpQnV0dG9uTW9kdWxlLCBUdWlGb3JtYXRQaG9uZVBpcGVNb2R1bGUsIFR1aUxpbmtNb2R1bGUsIFR1aUxvYWRlck1vZHVsZSwgVHVpTW9kZU1vZHVsZSwgVHVpU3ZnTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFR1aUxldE1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgU2NQcm9maWxlQWNjb3JkaW9uc0NvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL3NjLXByb2ZpbGUtYWNjb3JkaW9ucy1jb250ZW50L3NjLXByb2ZpbGUtYWNjb3JkaW9ucy1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY0FjY29yZGlvbk1vZHVsZSB9IGZyb20gJy4uL2FjY29yZGlvbic7XG5pbXBvcnQgeyBTY0NvbnRyYWdlbnRzTW9kdWxlIH0gZnJvbSAnLi4vY29udHJhZ2VudHMnO1xuaW1wb3J0IHsgU2NEZWxpdmVyeUFkZHJlc3NNb2R1bGUgfSBmcm9tICcuLi9kZWxpdmVyeS1hZGRyZXNzJztcbmltcG9ydCB7IFNjVXNlck1vZHVsZSB9IGZyb20gJy4uL3VzZXInO1xuaW1wb3J0IHsgVHVpQ2hlY2tib3hMYWJlbGVkTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqXG4gKiDQnNC+0LTRg9C70Ywg0L/RgNC+0YTQuNC70Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1NjUHJvZmlsZUFjY29yZGlvbnNDb250ZW50Q29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgU2NVc2VyTW9kdWxlLFxuICAgICAgICBTY0FjY29yZGlvbk1vZHVsZSxcbiAgICAgICAgU2NDb250cmFnZW50c01vZHVsZSxcbiAgICAgICAgU2NEZWxpdmVyeUFkZHJlc3NNb2R1bGUsXG4gICAgICAgIFR1aUxvYWRlck1vZHVsZSxcbiAgICAgICAgVHVpTGV0TW9kdWxlLFxuICAgICAgICBUdWlMaW5rTW9kdWxlLFxuICAgICAgICBUdWlNb2RlTW9kdWxlLFxuICAgICAgICBUdWlGb3JtYXRQaG9uZVBpcGVNb2R1bGUsXG4gICAgICAgIFR1aUNoZWNrYm94TGFiZWxlZE1vZHVsZSxcbiAgICAgICAgVHVpU3ZnTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVHVpTG9hZGVyTW9kdWxlLFxuICAgICAgICBUdWlCdXR0b25Nb2R1bGUsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbU2NQcm9maWxlQWNjb3JkaW9uc0NvbnRlbnRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTY1Byb2ZpbGVNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './scUserProviders';
2
+ export * from './productsPagination';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvcHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2NVc2VyUHJvdmlkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdHNQYWdpbmF0aW9uJztcbiJdfQ==
@@ -0,0 +1,97 @@
1
+ import { EventEmitter, InjectionToken } from '@angular/core';
2
+ import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
3
+ import { ScCartService, ScCatalogService } from '@snabcentr/client-core';
4
+ import { TuiDestroyService, tuiCreateToken, tuiIsPresent } from '@taiga-ui/cdk';
5
+ import { Subject, debounceTime, filter, map, merge, scan, share, startWith, switchMap, takeUntil } from 'rxjs';
6
+ /**
7
+ * Значения пагинации списка товаров категории по умолчанию.
8
+ */
9
+ export const SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS = {
10
+ perPage: 20,
11
+ page: 0,
12
+ };
13
+ /**
14
+ * Токен значений пагинации списка товаров категории по умолчанию.
15
+ */
16
+ export const SC_PRODUCT_PAGINATION_OPTIONS = tuiCreateToken(SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS);
17
+ /**
18
+ * {@link Subject} параметров пагинации списка товаров категории.
19
+ */
20
+ export const paginationParams$ = new Subject();
21
+ /**
22
+ * Токен {@link Subject} параметров пагинации списка товаров категории для получения их из вне.
23
+ */
24
+ export const SC_PRODUCT_PAGINATION_PARAMS = tuiCreateToken(paginationParams$);
25
+ /**
26
+ * Фабрика создания потока данных о товарах категории c пагинацией, включая данные о количестве этих товаров в корзине.
27
+ *
28
+ * @param catalogService Сервис для работы с каталогом.
29
+ * @param cartService Сервис для работы с корзиной.
30
+ * @param destroy$ Сервис завершения {@link Observable} через `takeUntil`.
31
+ */
32
+ function productsPaginationChangeFactory({ paramMap }, catalogService, cartService, destroy$) {
33
+ return paramMap.pipe(map((params) => params.get('categoryId')), filter(tuiIsPresent), switchMap((categoryId) => paginationParams$.pipe(debounceTime(20), switchMap((paginationParams) => catalogService.getCategoryProducts$(Number(categoryId), paginationParams)), filter(tuiIsPresent), scan((acc, value) => {
34
+ if (acc && value && value.meta.currentPage > 1)
35
+ value.data.unshift(...acc.data);
36
+ return value;
37
+ }, null), switchMap((productsPaginate) => cartService.getCartChange$().pipe(map((cart) => {
38
+ productsPaginate?.data.forEach((product) => (product.cartItem = cart.items.find((cartItem) => cartItem.product.id === product.id)));
39
+ return productsPaginate;
40
+ }))), startWith(null))), share(), takeUntil(destroy$));
41
+ }
42
+ /**
43
+ * Токен потока данных о товарах категории, включая данные о количестве этих товаров в корзине.
44
+ */
45
+ export const SC_PRODUCT_PAGINATION_CHANGE_INFO = new InjectionToken('SC_PRODUCT_PAGINATION_CHANGE_INFO');
46
+ /**
47
+ * {@link EventEmitter} событие нажатия на кнопку "Показать следующие позиции категории".
48
+ */
49
+ export const nextPageClickEvent = new EventEmitter();
50
+ /**
51
+ * Токен {@link EventEmitter} событие нажатия на кнопку "Показать следующие позиции категории".
52
+ */
53
+ export const SC_NEXT_PAGE_PAGINATION_CLICK = tuiCreateToken(nextPageClickEvent);
54
+ /**
55
+ * Фабрика создания потока данных о состоянии загрузки запроса списка товаров с пагинацией пагинации.
56
+ */
57
+ function loadingPaginationFactory(productsData$, destroy$) {
58
+ return merge(paginationParams$.pipe(map(() => true)), productsData$.pipe(map((data) => data === null))).pipe(share(), takeUntil(destroy$));
59
+ }
60
+ /**
61
+ * Токен потока данных о состоянии загрузки товаров пагинации.
62
+ */
63
+ export const SC_LOADING_PAGINATION_CHANGE_INFO = new InjectionToken('SC_LOADING_PAGINATION_CHANGE_INFO');
64
+ /**
65
+ * Фабрика создания потока данных прокрутки страницы с сигналами о необходимости пагинации товара.
66
+ */
67
+ function nextPagePaginationChangeFactory({ events }, nextPagePaginationClick, productsData$, destroy$) {
68
+ return nextPagePaginationClick
69
+ .pipe(scan((acc) => ++acc, 1), startWith(1))
70
+ .pipe(takeUntil(merge(events.pipe(filter((e) => e instanceof NavigationEnd)), productsData$.pipe(filter((paginate) => paginate !== null && paginate.meta.currentPage >= paginate.meta.lastPage)), destroy$)));
71
+ }
72
+ /**
73
+ * Токен потока данных прокрутки страницы с сигналами о необходимости пагинации товара.
74
+ */
75
+ export const SC_NEXT_PAGE_PAGINATION_CHANGE_INFO = new InjectionToken('SC_NEXT_PAGE_PAGINATION_CHANGE_INFO');
76
+ /**
77
+ * Провайдеры потока данных о товарах категории, включая данные о количестве этих товаров в корзине.
78
+ */
79
+ export const SC_PRODUCT_PAGINATION_CHANGE_PROVIDERS = [
80
+ TuiDestroyService,
81
+ {
82
+ provide: SC_PRODUCT_PAGINATION_CHANGE_INFO,
83
+ deps: [ActivatedRoute, ScCatalogService, ScCartService, TuiDestroyService],
84
+ useFactory: productsPaginationChangeFactory,
85
+ },
86
+ {
87
+ provide: SC_NEXT_PAGE_PAGINATION_CHANGE_INFO,
88
+ deps: [Router, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_CHANGE_INFO, TuiDestroyService],
89
+ useFactory: nextPagePaginationChangeFactory,
90
+ },
91
+ {
92
+ provide: SC_LOADING_PAGINATION_CHANGE_INFO,
93
+ deps: [SC_PRODUCT_PAGINATION_CHANGE_INFO, TuiDestroyService],
94
+ useFactory: loadingPaginationFactory,
95
+ },
96
+ ];
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHNQYWdpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3Byb3ZpZGVycy9wcm9kdWN0c1BhZ2luYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBOEQsTUFBTSx3QkFBd0IsQ0FBQztBQUNySSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQXVDO0lBQ3JGLE9BQU8sRUFBRSxFQUFFO0lBQ1gsSUFBSSxFQUFFLENBQUM7Q0FDVixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBdUQsY0FBYyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFFdko7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBZ0QsSUFBSSxPQUFPLEVBQXNDLENBQUM7QUFFaEk7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBZ0UsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFM0k7Ozs7OztHQU1HO0FBQ0gsU0FBUywrQkFBK0IsQ0FDcEMsRUFBRSxRQUFRLEVBQWtCLEVBQzVCLGNBQWdDLEVBQ2hD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IFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNjQ2FydFNlcnZpY2UsIFNjQ2F0YWxvZ1NlcnZpY2UsIFNjSUNhdGVnb3J5UHJvZHVjdFBhZ2luYXRpb25QYXJhbXMsIFNjSVBhZ2luYXRlLCBTY1Byb2R1Y3QgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFR1aURlc3Ryb3lTZXJ2aWNlLCB0dWlDcmVhdGVUb2tlbiwgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBtZXJnZSwgc2Nhbiwgc2hhcmUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQl9C90LDRh9C10L3QuNGPINC/0LDQs9C40L3QsNGG0LjQuCDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIg0LrQsNGC0LXQs9C+0YDQuNC4INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICovXG5leHBvcnQgY29uc3QgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX0RFRkFVTFRfT1BUSU9OUzogU2NJQ2F0ZWdvcnlQcm9kdWN0UGFnaW5hdGlvblBhcmFtcyA9IHtcbiAgICBwZXJQYWdlOiAyMCxcbiAgICBwYWdlOiAwLFxufTtcblxuLyoqXG4gKiDQotC+0LrQtdC9INC30L3QsNGH0LXQvdC40Lkg0L/QsNCz0LjQvdCw0YbQuNC4INGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDQutCw0YLQtdCz0L7RgNC40Lgg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19QUk9EVUNUX1BBR0lOQVRJT05fT1BUSU9OUzogSW5qZWN0aW9uVG9rZW48U2NJQ2F0ZWdvcnlQcm9kdWN0UGFnaW5hdGlvblBhcmFtcz4gPSB0dWlDcmVhdGVUb2tlbihTQ19QUk9EVUNUX1BBR0lOQVRJT05fREVGQVVMVF9PUFRJT05TKTtcblxuLyoqXG4gKiB7QGxpbmsgU3ViamVjdH0g0L/QsNGA0LDQvNC10YLRgNC+0LIg0L/QsNCz0LjQvdCw0YbQuNC4INGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDQutCw0YLQtdCz0L7RgNC40LguXG4gKi9cbmV4cG9ydCBjb25zdCBwYWdpbmF0aW9uUGFyYW1zJDogU3ViamVjdDxTY0lDYXRlZ29yeVByb2R1Y3RQYWdpbmF0aW9uUGFyYW1zPiA9IG5ldyBTdWJqZWN0PFNjSUNhdGVnb3J5UHJvZHVjdFBhZ2luYXRpb25QYXJhbXM+KCk7XG5cbi8qKlxuICog0KLQvtC60LXQvSB7QGxpbmsgU3ViamVjdH0g0L/QsNGA0LDQvNC10YLRgNC+0LIg0L/QsNCz0LjQvdCw0YbQuNC4INGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDQutCw0YLQtdCz0L7RgNC40Lgg0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDQuNGFINC40Lcg0LLQvdC1LlxuICovXG5leHBvcnQgY29uc3QgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX1BBUkFNUzogSW5qZWN0aW9uVG9rZW48U3ViamVjdDxTY0lDYXRlZ29yeVByb2R1Y3RQYWdpbmF0aW9uUGFyYW1zPj4gPSB0dWlDcmVhdGVUb2tlbihwYWdpbmF0aW9uUGFyYW1zJCk7XG5cbi8qKlxuICog0KTQsNCx0YDQuNC60LAg0YHQvtC30LTQsNC90LjRjyDQv9C+0YLQvtC60LAg0LTQsNC90L3Ri9GFINC+INGC0L7QstCw0YDQsNGFINC60LDRgtC10LPQvtGA0LjQuCBjINC/0LDQs9C40L3QsNGG0LjQtdC5LCDQstC60LvRjtGH0LDRjyDQtNCw0L3QvdGL0LUg0L4g0LrQvtC70LjRh9C10YHRgtCy0LUg0Y3RgtC40YUg0YLQvtCy0LDRgNC+0LIg0LIg0LrQvtGA0LfQuNC90LUuXG4gKlxuICogQHBhcmFtIGNhdGFsb2dTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC60LDRgtCw0LvQvtCz0L7QvC5cbiAqIEBwYXJhbSBjYXJ0U2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQutC+0YDQt9C40L3QvtC5LlxuICogQHBhcmFtIGRlc3Ryb3kkINCh0LXRgNCy0LjRgSDQt9Cw0LLQtdGA0YjQtdC90LjRjyB7QGxpbmsgT2JzZXJ2YWJsZX0g0YfQtdGA0LXQtyBgdGFrZVVudGlsYC5cbiAqL1xuZnVuY3Rpb24gcHJvZHVjdHNQYWdpbmF0aW9uQ2hhbmdlRmFjdG9yeShcbiAgICB7IHBhcmFtTWFwIH06IEFjdGl2YXRlZFJvdXRlLFxuICAgIGNhdGFsb2dTZXJ2aWNlOiBTY0NhdGFsb2dTZXJ2aWNlLFxuICAgIGNhcnRTZXJ2aWNlOiBTY0NhcnRTZXJ2aWNlLFxuICAgIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+XG4pOiBPYnNlcnZhYmxlPFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsPiB7XG4gICAgcmV0dXJuIHBhcmFtTWFwLnBpcGUoXG4gICAgICAgIG1hcCgocGFyYW1zKSA9PiBwYXJhbXMuZ2V0KCdjYXRlZ29yeUlkJykpLFxuICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgc3dpdGNoTWFwKChjYXRlZ29yeUlkKSA9PlxuICAgICAgICAgICAgcGFnaW5hdGlvblBhcmFtcyQucGlwZShcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMjApLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgocGFnaW5hdGlvblBhcmFtcykgPT4gY2F0YWxvZ1NlcnZpY2UuZ2V0Q2F0ZWdvcnlQcm9kdWN0cyQoTnVtYmVyKGNhdGVnb3J5SWQpLCBwYWdpbmF0aW9uUGFyYW1zKSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICAgICAgc2NhbigoYWNjOiBTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbCwgdmFsdWU6IFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY2MgJiYgdmFsdWUgJiYgdmFsdWUubWV0YS5jdXJyZW50UGFnZSA+IDEpIHZhbHVlLmRhdGEudW5zaGlmdCguLi5hY2MuZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgIH0sIG51bGwpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgocHJvZHVjdHNQYWdpbmF0ZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgY2FydFNlcnZpY2UuZ2V0Q2FydENoYW5nZSQoKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChjYXJ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHNQYWdpbmF0ZT8uZGF0YS5mb3JFYWNoKChwcm9kdWN0KSA9PiAocHJvZHVjdC5jYXJ0SXRlbSA9IGNhcnQuaXRlbXMuZmluZCgoY2FydEl0ZW0pID0+IGNhcnRJdGVtLnByb2R1Y3QuaWQgPT09IHByb2R1Y3QuaWQpKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvZHVjdHNQYWdpbmF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpLFxuICAgICAgICB0YWtlVW50aWwoZGVzdHJveSQpXG4gICAgKTtcbn1cblxuLyoqXG4gKiDQotC+0LrQtdC9INC/0L7RgtC+0LrQsCDQtNCw0L3QvdGL0YUg0L4g0YLQvtCy0LDRgNCw0YUg0LrQsNGC0LXQs9C+0YDQuNC4LCDQstC60LvRjtGH0LDRjyDQtNCw0L3QvdGL0LUg0L4g0LrQvtC70LjRh9C10YHRgtCy0LUg0Y3RgtC40YUg0YLQvtCy0LDRgNC+0LIg0LIg0LrQvtGA0LfQuNC90LUuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19QUk9EVUNUX1BBR0lOQVRJT05fQ0hBTkdFX0lORk8gPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbD4+KCdTQ19QUk9EVUNUX1BBR0lOQVRJT05fQ0hBTkdFX0lORk8nKTtcblxuLyoqXG4gKiB7QGxpbmsgRXZlbnRFbWl0dGVyfSDRgdC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBcItCf0L7QutCw0LfQsNGC0Ywg0YHQu9C10LTRg9GO0YnQuNC1INC/0L7Qt9C40YbQuNC4INC60LDRgtC10LPQvtGA0LjQuFwiLlxuICovXG5leHBvcnQgY29uc3QgbmV4dFBhZ2VDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbi8qKlxuICogINCi0L7QutC10L0ge0BsaW5rIEV2ZW50RW1pdHRlcn0g0YHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgXCLQn9C+0LrQsNC30LDRgtGMINGB0LvQtdC00YPRjtGJ0LjQtSDQv9C+0LfQuNGG0LjQuCDQutCw0YLQtdCz0L7RgNC40LhcIi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX05FWFRfUEFHRV9QQUdJTkFUSU9OX0NMSUNLOiBJbmplY3Rpb25Ub2tlbjxFdmVudEVtaXR0ZXI8dm9pZD4+ID0gdHVpQ3JlYXRlVG9rZW4obmV4dFBhZ2VDbGlja0V2ZW50KTtcblxuLyoqXG4gKiDQpNCw0LHRgNC40LrQsCDRgdC+0LfQtNCw0L3QuNGPINC/0L7RgtC+0LrQsCDQtNCw0L3QvdGL0YUg0L4g0YHQvtGB0YLQvtGP0L3QuNC4INC30LDQs9GA0YPQt9C60Lgg0LfQsNC/0YDQvtGB0LAg0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyINGBINC/0LDQs9C40L3QsNGG0LjQtdC5INC/0LDQs9C40L3QsNGG0LjQuC5cbiAqL1xuZnVuY3Rpb24gbG9hZGluZ1BhZ2luYXRpb25GYWN0b3J5KHByb2R1Y3RzRGF0YSQ6IE9ic2VydmFibGU8U2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGw+LCBkZXN0cm95JDogT2JzZXJ2YWJsZTx2b2lkPikge1xuICAgIHJldHVybiBtZXJnZShwYWdpbmF0aW9uUGFyYW1zJC5waXBlKG1hcCgoKSA9PiB0cnVlKSksIHByb2R1Y3RzRGF0YSQucGlwZShtYXAoKGRhdGEpID0+IGRhdGEgPT09IG51bGwpKSkucGlwZShzaGFyZSgpLCB0YWtlVW50aWwoZGVzdHJveSQpKTtcbn1cblxuLyoqXG4gKiAg0KLQvtC60LXQvSDQv9C+0YLQvtC60LAg0LTQsNC90L3Ri9GFINC+INGB0L7RgdGC0L7Rj9C90LjQuCDQt9Cw0LPRgNGD0LfQutC4INGC0L7QstCw0YDQvtCyINC/0LDQs9C40L3QsNGG0LjQuC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX0xPQURJTkdfUEFHSU5BVElPTl9DSEFOR0VfSU5GTzogSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxib29sZWFuPj4gPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxudW1iZXI+PignU0NfTE9BRElOR19QQUdJTkFUSU9OX0NIQU5HRV9JTkZPJyk7XG5cbi8qKlxuICog0KTQsNCx0YDQuNC60LAg0YHQvtC30LTQsNC90LjRjyDQv9C+0YLQvtC60LAg0LTQsNC90L3Ri9GFINC/0YDQvtC60YDRg9GC0LrQuCDRgdGC0YDQsNC90LjRhtGLINGBINGB0LjQs9C90LDQu9Cw0LzQuCDQviDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQv9Cw0LPQuNC90LDRhtC40Lgg0YLQvtCy0LDRgNCwLlxuICovXG5mdW5jdGlvbiBuZXh0UGFnZVBhZ2luYXRpb25DaGFuZ2VGYWN0b3J5KFxuICAgIHsgZXZlbnRzIH06IFJvdXRlcixcbiAgICBuZXh0UGFnZVBhZ2luYXRpb25DbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+LFxuICAgIHByb2R1Y3RzRGF0YSQ6IE9ic2VydmFibGU8U2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGw+LFxuICAgIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+XG4pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBuZXh0UGFnZVBhZ2luYXRpb25DbGlja1xuICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHNjYW4oKGFjYykgPT4gKythY2MsIDEpLFxuICAgICAgICAgICAgc3RhcnRXaXRoKDEpXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50cy5waXBlKGZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKSxcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHNEYXRhJC5waXBlKGZpbHRlcigocGFnaW5hdGUpID0+IHBhZ2luYXRlICE9PSBudWxsICYmIHBhZ2luYXRlLm1ldGEuY3VycmVudFBhZ2UgPj0gcGFnaW5hdGUubWV0YS5sYXN0UGFnZSkpLFxuICAgICAgICAgICAgICAgICAgICBkZXN0cm95JFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbn1cblxuLyoqXG4gKiAg0KLQvtC60LXQvSDQv9C+0YLQvtC60LAg0LTQsNC90L3Ri9GFINC/0YDQvtC60YDRg9GC0LrQuCDRgdGC0YDQsNC90LjRhtGLINGBINGB0LjQs9C90LDQu9Cw0LzQuCDQviDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQv9Cw0LPQuNC90LDRhtC40Lgg0YLQvtCy0LDRgNCwLlxuICovXG5leHBvcnQgY29uc3QgU0NfTkVYVF9QQUdFX1BBR0lOQVRJT05fQ0hBTkdFX0lORk86IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8bnVtYmVyPj4gPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxudW1iZXI+PignU0NfTkVYVF9QQUdFX1BBR0lOQVRJT05fQ0hBTkdFX0lORk8nKTtcblxuLyoqXG4gKiDQn9GA0L7QstCw0LnQtNC10YDRiyDQv9C+0YLQvtC60LAg0LTQsNC90L3Ri9GFINC+INGC0L7QstCw0YDQsNGFINC60LDRgtC10LPQvtGA0LjQuCwg0LLQutC70Y7Rh9Cw0Y8g0LTQsNC90L3Ri9C1INC+INC60L7Qu9C40YfQtdGB0YLQstC1INGN0YLQuNGFINGC0L7QstCw0YDQvtCyINCyINC60L7RgNC30LjQvdC1LlxuICovXG5leHBvcnQgY29uc3QgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX0NIQU5HRV9QUk9WSURFUlM6IFByb3ZpZGVyW10gPSBbXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAge1xuICAgICAgICBwcm92aWRlOiBTQ19QUk9EVUNUX1BBR0lOQVRJT05fQ0hBTkdFX0lORk8sXG4gICAgICAgIGRlcHM6IFtBY3RpdmF0ZWRSb3V0ZSwgU2NDYXRhbG9nU2VydmljZSwgU2NDYXJ0U2VydmljZSwgVHVpRGVzdHJveVNlcnZpY2VdLFxuICAgICAgICB1c2VGYWN0b3J5OiBwcm9kdWN0c1BhZ2luYXRpb25DaGFuZ2VGYWN0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgICBwcm92aWRlOiBTQ19ORVhUX1BBR0VfUEFHSU5BVElPTl9DSEFOR0VfSU5GTyxcbiAgICAgICAgZGVwczogW1JvdXRlciwgU0NfTkVYVF9QQUdFX1BBR0lOQVRJT05fQ0xJQ0ssIFNDX1BST0RVQ1RfUEFHSU5BVElPTl9DSEFOR0VfSU5GTywgVHVpRGVzdHJveVNlcnZpY2VdLFxuICAgICAgICB1c2VGYWN0b3J5OiBuZXh0UGFnZVBhZ2luYXRpb25DaGFuZ2VGYWN0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgICBwcm92aWRlOiBTQ19MT0FESU5HX1BBR0lOQVRJT05fQ0hBTkdFX0lORk8sXG4gICAgICAgIGRlcHM6IFtTQ19QUk9EVUNUX1BBR0lOQVRJT05fQ0hBTkdFX0lORk8sIFR1aURlc3Ryb3lTZXJ2aWNlXSxcbiAgICAgICAgdXNlRmFjdG9yeTogbG9hZGluZ1BhZ2luYXRpb25GYWN0b3J5LFxuICAgIH0sXG5dO1xuIl19
@@ -0,0 +1,30 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { ScUserService } from '@snabcentr/client-core';
3
+ import { TuiDestroyService } from '@taiga-ui/cdk';
4
+ import { takeUntil } from 'rxjs';
5
+ /**
6
+ * Токен потока данных о текущем пользователе.
7
+ */
8
+ export const SC_USER_INFO = new InjectionToken('A stream with current user information');
9
+ /**
10
+ * Фабрика создания потока данных о текущем пользователе.
11
+ *
12
+ * @param userService Сервис информации о пользователе.
13
+ * @param destroy$ Сервис завершения {@link Observable} через `takeUntil`.
14
+ */
15
+ export function scUserFactory(userService, destroy$) {
16
+ //TODO: TASK[#7615] Отслеживать выполнение запроса изменения информации о пользователе после доработки snabcentr-core-lib.
17
+ return userService.getUserChange$().pipe(takeUntil(destroy$));
18
+ }
19
+ /**
20
+ * Провайдер потока данных о текущем пользователе.
21
+ */
22
+ export const SC_USER_PROVIDERS = [
23
+ TuiDestroyService,
24
+ {
25
+ provide: SC_USER_INFO,
26
+ deps: [ScUserService, TuiDestroyService],
27
+ useFactory: scUserFactory,
28
+ },
29
+ ];
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NVc2VyUHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3Byb3ZpZGVycy9zY1VzZXJQcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQVUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWlDLHdDQUF3QyxDQUFDLENBQUM7QUFFekg7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLFdBQTBCLEVBQUUsUUFBMEI7SUFDaEYsMEhBQTBIO0lBQzFILE9BQU8sV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBZTtJQUN6QyxpQkFBaUI7SUFDakI7UUFDSSxPQUFPLEVBQUUsWUFBWTtRQUNyQixJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUM7UUFDeEMsVUFBVSxFQUFFLGFBQWE7S0FDNUI7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY1VzZXIsIFNjVXNlclNlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFR1aURlc3Ryb3lTZXJ2aWNlIH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQotC+0LrQtdC9INC/0L7RgtC+0LrQsCDQtNCw0L3QvdGL0YUg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICovXG5leHBvcnQgY29uc3QgU0NfVVNFUl9JTkZPID0gbmV3IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8U2NVc2VyIHwgdW5kZWZpbmVkPj4oJ0Egc3RyZWFtIHdpdGggY3VycmVudCB1c2VyIGluZm9ybWF0aW9uJyk7XG5cbi8qKlxuICog0KTQsNCx0YDQuNC60LAg0YHQvtC30LTQsNC90LjRjyDQv9C+0YLQvtC60LAg0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAqXG4gKiBAcGFyYW0gdXNlclNlcnZpY2Ug0KHQtdGA0LLQuNGBINC40L3RhNC+0YDQvNCw0YbQuNC4INC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAqIEBwYXJhbSBkZXN0cm95JCDQodC10YDQstC40YEg0LfQsNCy0LXRgNGI0LXQvdC40Y8ge0BsaW5rIE9ic2VydmFibGV9INGH0LXRgNC10LcgYHRha2VVbnRpbGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY1VzZXJGYWN0b3J5KHVzZXJTZXJ2aWNlOiBTY1VzZXJTZXJ2aWNlLCBkZXN0cm95JDogT2JzZXJ2YWJsZTx2b2lkPik6IE9ic2VydmFibGU8U2NVc2VyIHwgdW5kZWZpbmVkPiB7XG4gICAgLy9UT0RPOiBUQVNLWyM3NjE1XSDQntGC0YHQu9C10LbQuNCy0LDRgtGMINCy0YvQv9C+0LvQvdC10L3QuNC1INC30LDQv9GA0L7RgdCwINC40LfQvNC10L3QtdC90LjRjyDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUg0L/QvtGB0LvQtSDQtNC+0YDQsNCx0L7RgtC60Lggc25hYmNlbnRyLWNvcmUtbGliLlxuICAgIHJldHVybiB1c2VyU2VydmljZS5nZXRVc2VyQ2hhbmdlJCgpLnBpcGUodGFrZVVudGlsKGRlc3Ryb3kkKSk7XG59XG5cbi8qKlxuICog0J/RgNC+0LLQsNC50LTQtdGAINC/0L7RgtC+0LrQsCDQtNCw0L3QvdGL0YUg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICovXG5leHBvcnQgY29uc3QgU0NfVVNFUl9QUk9WSURFUlM6IFByb3ZpZGVyW10gPSBbXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAge1xuICAgICAgICBwcm92aWRlOiBTQ19VU0VSX0lORk8sXG4gICAgICAgIGRlcHM6IFtTY1VzZXJTZXJ2aWNlLCBUdWlEZXN0cm95U2VydmljZV0sXG4gICAgICAgIHVzZUZhY3Rvcnk6IHNjVXNlckZhY3RvcnksXG4gICAgfSxcbl07XG4iXX0=
@@ -2,15 +2,22 @@
2
2
  * Public API Surface of ui
3
3
  */
4
4
  export * from './auth';
5
+ export * from './accordion';
5
6
  export * from './banner';
6
7
  export * from './cart';
7
8
  export * from './catalog';
9
+ export * from './contragents';
10
+ export * from './contacts';
11
+ export * from './delivery-address';
8
12
  export * from './files';
9
13
  export * from './icons';
10
14
  export * from './loader';
11
15
  export * from './news';
12
16
  export * from './order';
17
+ export * from './providers';
13
18
  export * from './share-button';
19
+ export * from './user';
14
20
  export * from './validators';
15
21
  export * from './tokens';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdWlcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2F1dGgnO1xuZXhwb3J0ICogZnJvbSAnLi9iYW5uZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vY2F0YWxvZyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGVzJztcbmV4cG9ydCAqIGZyb20gJy4vaWNvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9uZXdzJztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZS1idXR0b24nO1xuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zJztcbiJdfQ==
22
+ export * from './profile';
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYXV0aCc7XG5leHBvcnQgKiBmcm9tICcuL2FjY29yZGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2Jhbm5lcic7XG5leHBvcnQgKiBmcm9tICcuL2NhcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vY29udHJhZ2VudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250YWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL2RlbGl2ZXJ5LWFkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlcyc7XG5leHBvcnQgKiBmcm9tICcuL2ljb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbmV3cyc7XG5leHBvcnQgKiBmcm9tICcuL29yZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmUtYnV0dG9uJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlcic7XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9maWxlJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './reset-user-password/sc-reset-user-password.component';
2
+ export * from './sc-user.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvdXNlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Jlc2V0LXVzZXItcGFzc3dvcmQvc2MtcmVzZXQtdXNlci1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy11c2VyLm1vZHVsZSc7XG4iXX0=
@@ -0,0 +1,61 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FormControl, FormGroup, Validators } from '@angular/forms';
3
+ import { tuiIsFalsy } from '@taiga-ui/cdk';
4
+ import { Subject, filter, map, switchMap, catchError, of, startWith, share } from 'rxjs';
5
+ import { scPasswordConfirmMatchingValidator } from '../../validators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@snabcentr/client-core";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@taiga-ui/kit";
10
+ import * as i4 from "@taiga-ui/core";
11
+ import * as i5 from "@taiga-ui/cdk";
12
+ import * as i6 from "@angular/common";
13
+ /**
14
+ * Компонент смены пароля пользователя.
15
+ */
16
+ export class ScResetUserPasswordComponent {
17
+ /**
18
+ * Инициализирует экземпляр класса {@link ScResetUserPasswordComponent}.
19
+ *
20
+ * @param userService Сервис информации о пользователе.
21
+ */
22
+ constructor(userService) {
23
+ this.userService = userService;
24
+ /**
25
+ * Форма для изменения пароля пользователя.
26
+ */
27
+ this.form = new FormGroup({
28
+ currentPassword: new FormControl(null, Validators.required),
29
+ newPassword: new FormControl(null, [Validators.required, Validators.minLength(8)]),
30
+ newPasswordConfirm: new FormControl(null, [Validators.required, Validators.minLength(8), scPasswordConfirmMatchingValidator('newPassword')]),
31
+ });
32
+ /**
33
+ * {@link Subject} События отправки формы.
34
+ */
35
+ this.onSubmit = new Subject();
36
+ /**
37
+ * {@link Observable} Запроса данных аутентификации.
38
+ */
39
+ this.request$ = this.onSubmit.pipe(filter(() => this.form.valid), map(() => this.form.value), switchMap((value) => this.userService.updateUserInfo$(value).pipe(catchError((error) => {
40
+ const errorResponse = error.error;
41
+ for (const key in errorResponse.errors) {
42
+ this.form.get(key)?.setErrors({ serverResponse: errorResponse.errors[`${key}`] });
43
+ }
44
+ if (!errorResponse.errors && errorResponse.message) {
45
+ this.form.setErrors({ serverResponse: [errorResponse.message] });
46
+ }
47
+ return of(void {});
48
+ }), startWith(null))), share());
49
+ /**
50
+ * {@link Observable} Изменения состояния загрузки данных аутентификации по email.
51
+ */
52
+ this.loading$ = this.request$.pipe(map(tuiIsFalsy));
53
+ }
54
+ }
55
+ ScResetUserPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScResetUserPasswordComponent, deps: [{ token: i1.ScUserService }], target: i0.ɵɵFactoryTarget.Component });
56
+ ScResetUserPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScResetUserPasswordComponent, selector: "sc-reset-user-password", ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit.next()\" class=\"flex flex-col md:flex-row gap-4 p-1\">\n <div class=\"flex flex-col items-start gap-2 md:flex-row md:gap-4 md:flex-grow justify-between\">\n <label tuiLabel=\"\u0421\u0442\u0430\u0440\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"flex w-full\">\n <tui-input-password formControlName=\"currentPassword\">\n \u0421\u0442\u0430\u0440\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input tuiTextfield autocomplete=\"current-password\" />\n </tui-input-password>\n <tui-error formControlName=\"currentPassword\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u041F\u0440\u0438\u0434\u0443\u043C\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"flex w-full\">\n <tui-input-password formControlName=\"newPassword\">\n \u041F\u0440\u0438\u0434\u0443\u043C\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input tuiTextfield autocomplete=\"new-password\" />\n </tui-input-password>\n <tui-error formControlName=\"newPassword\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"flex w-full\">\n <tui-input-password formControlName=\"newPasswordConfirm\">\n \u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input tuiTextfield autocomplete=\"new-password\" />\n </tui-input-password>\n <tui-error formControlName=\"newPasswordConfirm\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n </div>\n <button\n *tuiLet=\"!!(loading$ | async) as loading\"\n tuiButton\n [showLoader]=\"loading\"\n type=\"submit\"\n [disabled]=\"form.invalid || loading\"\n icon=\"scIconSave\"\n class=\"md:mt-6 font-medium\"\n >\n \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\n </button>\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[tuiTextfield], textarea[tuiTextfield]" }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i4.TuiErrorComponent, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i4.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { kind: "directive", type: i5.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScResetUserPasswordComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: 'sc-reset-user-password', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit.next()\" class=\"flex flex-col md:flex-row gap-4 p-1\">\n <div class=\"flex flex-col items-start gap-2 md:flex-row md:gap-4 md:flex-grow justify-between\">\n <label tuiLabel=\"\u0421\u0442\u0430\u0440\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"flex w-full\">\n <tui-input-password formControlName=\"currentPassword\">\n \u0421\u0442\u0430\u0440\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input tuiTextfield autocomplete=\"current-password\" />\n </tui-input-password>\n <tui-error formControlName=\"currentPassword\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u041F\u0440\u0438\u0434\u0443\u043C\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"flex w-full\">\n <tui-input-password formControlName=\"newPassword\">\n \u041F\u0440\u0438\u0434\u0443\u043C\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input tuiTextfield autocomplete=\"new-password\" />\n </tui-input-password>\n <tui-error formControlName=\"newPassword\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n <label tuiLabel=\"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"flex w-full\">\n <tui-input-password formControlName=\"newPasswordConfirm\">\n \u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input tuiTextfield autocomplete=\"new-password\" />\n </tui-input-password>\n <tui-error formControlName=\"newPasswordConfirm\" [error]=\"[] | tuiFieldError | async\"></tui-error>\n </label>\n </div>\n <button\n *tuiLet=\"!!(loading$ | async) as loading\"\n tuiButton\n [showLoader]=\"loading\"\n type=\"submit\"\n [disabled]=\"form.invalid || loading\"\n icon=\"scIconSave\"\n class=\"md:mt-6 font-medium\"\n >\n \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\n </button>\n</form>\n" }]
60
+ }], ctorParameters: function () { return [{ type: i1.ScUserService }]; } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcmVzZXQtdXNlci1wYXNzd29yZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvdXNlci9yZXNldC11c2VyLXBhc3N3b3JkL3NjLXJlc2V0LXVzZXItcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3VzZXIvcmVzZXQtdXNlci1wYXNzd29yZC9zYy1yZXNldC11c2VyLXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUFFdEU7O0dBRUc7QUFNSCxNQUFNLE9BQU8sNEJBQTRCO0lBK0NyQzs7OztPQUlHO0lBQ0gsWUFBb0MsV0FBMEI7UUFBMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWU7UUFuRDlEOztXQUVHO1FBQ0ksU0FBSSxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3hCLGVBQWUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMzRCxXQUFXLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEYsa0JBQWtCLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLGtDQUFrQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7U0FDL0ksQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDYSxhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFOUQ7O1dBRUc7UUFDYyxhQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUM3QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUEwQixDQUFDLEVBQy9DLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDeEMsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxLQUF5QixDQUFDO1lBRXRELEtBQUssTUFBTSxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRTtnQkFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNyRjtZQUVELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNwRTtZQUVELE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUNsQixDQUNKLEVBQ0QsS0FBSyxFQUFFLENBQ1YsQ0FBQztRQUVGOztXQUVHO1FBQ2EsYUFBUSxHQUF3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQU9uQixDQUFDOzt5SEFwRHpELDRCQUE0Qjs2R0FBNUIsNEJBQTRCLDhEQ2pCekMsa3pFQW9DQTsyRkRuQmEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNJLHdCQUF3QixtQkFFakIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFNjSUNoYW5nZVBhc3N3b3JkLCBTY1VzZXJTZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyB0dWlJc0ZhbHN5IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCBjYXRjaEVycm9yLCBvZiwgc3RhcnRXaXRoLCBzaGFyZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBpRXJyb3JSZXNwb25zZSB9IGZyb20gJy4uLy4uL2F1dGgnO1xuaW1wb3J0IHsgc2NQYXNzd29yZENvbmZpcm1NYXRjaGluZ1ZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3ZhbGlkYXRvcnMnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDRgdC80LXQvdGLINC/0LDRgNC+0LvRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtcmVzZXQtdXNlci1wYXNzd29yZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXJlc2V0LXVzZXItcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY1Jlc2V0VXNlclBhc3N3b3JkQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiDQpNC+0YDQvNCwINC00LvRjyDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBjdXJyZW50UGFzc3dvcmQ6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgbmV3UGFzc3dvcmQ6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoOCldKSxcbiAgICAgICAgbmV3UGFzc3dvcmRDb25maXJtOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpLCBzY1Bhc3N3b3JkQ29uZmlybU1hdGNoaW5nVmFsaWRhdG9yKCduZXdQYXNzd29yZCcpXSksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgU3ViamVjdH0g0KHQvtCx0YvRgtC40Y8g0L7RgtC/0YDQsNCy0LrQuCDRhNC+0YDQvNGLLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBvblN1Ym1pdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0JfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0JCA9IHRoaXMub25TdWJtaXQucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybS52YWxpZCksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm0udmFsdWUgYXMgU2NJQ2hhbmdlUGFzc3dvcmQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS51cGRhdGVVc2VySW5mbyQodmFsdWUpLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yUmVzcG9uc2UgPSBlcnJvci5lcnJvciBhcyBBcGlFcnJvclJlc3BvbnNlO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGVycm9yUmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KGtleSk/LnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBlcnJvclJlc3BvbnNlLmVycm9yc1tgJHtrZXl9YF0gfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWVycm9yUmVzcG9uc2UuZXJyb3JzICYmIGVycm9yUmVzcG9uc2UubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBbZXJyb3JSZXNwb25zZS5tZXNzYWdlXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih2b2lkIHt9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbClcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0JjQt9C80LXQvdC10L3QuNGPINGB0L7RgdGC0L7Rj9C90LjRjyDQt9Cw0LPRgNGD0LfQutC4INC00LDQvdC90YvRhSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4INC/0L4gZW1haWwuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5yZXF1ZXN0JC5waXBlKG1hcCh0dWlJc0ZhbHN5KSk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUmVzZXRVc2VyUGFzc3dvcmRDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJTZXJ2aWNlINCh0LXRgNCy0LjRgSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdXNlclNlcnZpY2U6IFNjVXNlclNlcnZpY2UpIHt9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQubmV4dCgpXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC00IHAtMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLXN0YXJ0IGdhcC0yIG1kOmZsZXgtcm93IG1kOmdhcC00IG1kOmZsZXgtZ3JvdyBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPVwi0KHRgtCw0YDRi9C5INC/0LDRgNC+0LvRjFwiIGNsYXNzPVwiZmxleCB3LWZ1bGxcIj5cbiAgICAgICAgICAgIDx0dWktaW5wdXQtcGFzc3dvcmQgZm9ybUNvbnRyb2xOYW1lPVwiY3VycmVudFBhc3N3b3JkXCI+XG4gICAgICAgICAgICAgICAg0KHRgtCw0YDRi9C5INC/0LDRgNC+0LvRjFxuICAgICAgICAgICAgICAgIDxpbnB1dCB0dWlUZXh0ZmllbGQgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiIC8+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dC1wYXNzd29yZD5cbiAgICAgICAgICAgIDx0dWktZXJyb3IgZm9ybUNvbnRyb2xOYW1lPVwiY3VycmVudFBhc3N3b3JkXCIgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCI+PC90dWktZXJyb3I+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbD1cItCf0YDQuNC00YPQvNCw0LnRgtC1INC90L7QstGL0Lkg0L/QsNGA0L7Qu9GMXCIgY2xhc3M9XCJmbGV4IHctZnVsbFwiPlxuICAgICAgICAgICAgPHR1aS1pbnB1dC1wYXNzd29yZCBmb3JtQ29udHJvbE5hbWU9XCJuZXdQYXNzd29yZFwiPlxuICAgICAgICAgICAgICAgINCf0YDQuNC00YPQvNCw0LnRgtC1INC90L7QstGL0Lkg0L/QsNGA0L7Qu9GMXG4gICAgICAgICAgICAgICAgPGlucHV0IHR1aVRleHRmaWVsZCBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIiAvPlxuICAgICAgICAgICAgPC90dWktaW5wdXQtcGFzc3dvcmQ+XG4gICAgICAgICAgICA8dHVpLWVycm9yIGZvcm1Db250cm9sTmFtZT1cIm5ld1Bhc3N3b3JkXCIgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCI+PC90dWktZXJyb3I+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbD1cItCf0L7QstGC0L7RgNC40YLQtSDQvdC+0LLRi9C5INC/0LDRgNC+0LvRjFwiIGNsYXNzPVwiZmxleCB3LWZ1bGxcIj5cbiAgICAgICAgICAgIDx0dWktaW5wdXQtcGFzc3dvcmQgZm9ybUNvbnRyb2xOYW1lPVwibmV3UGFzc3dvcmRDb25maXJtXCI+XG4gICAgICAgICAgICAgICAg0J/QvtCy0YLQvtGA0LjRgtC1INC90L7QstGL0Lkg0L/QsNGA0L7Qu9GMXG4gICAgICAgICAgICAgICAgPGlucHV0IHR1aVRleHRmaWVsZCBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIiAvPlxuICAgICAgICAgICAgPC90dWktaW5wdXQtcGFzc3dvcmQ+XG4gICAgICAgICAgICA8dHVpLWVycm9yIGZvcm1Db250cm9sTmFtZT1cIm5ld1Bhc3N3b3JkQ29uZmlybVwiIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiPjwvdHVpLWVycm9yPlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgICAgKnR1aUxldD1cIiEhKGxvYWRpbmckIHwgYXN5bmMpIGFzIGxvYWRpbmdcIlxuICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgW3Nob3dMb2FkZXJdPVwibG9hZGluZ1wiXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkIHx8IGxvYWRpbmdcIlxuICAgICAgICBpY29uPVwic2NJY29uU2F2ZVwiXG4gICAgICAgIGNsYXNzPVwibWQ6bXQtNiBmb250LW1lZGl1bVwiXG4gICAgPlxuICAgICAgICDQodC+0YXRgNCw0L3QuNGC0YxcbiAgICA8L2J1dHRvbj5cbjwvZm9ybT5cbiJdfQ==
@@ -0,0 +1,54 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { TuiFieldErrorPipeModule, TuiInputPasswordModule } from '@taiga-ui/kit';
5
+ import { TuiButtonModule, TuiErrorModule, TuiLabelModule, TuiTextfieldControllerModule } from '@taiga-ui/core';
6
+ import { TuiLetModule } from '@taiga-ui/cdk';
7
+ import { ScResetUserPasswordComponent } from './reset-user-password/sc-reset-user-password.component';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Модуль компонентов пользователя.
11
+ */
12
+ export class ScUserModule {
13
+ }
14
+ ScUserModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScUserModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ ScUserModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScUserModule, declarations: [ScResetUserPasswordComponent], imports: [CommonModule,
16
+ FormsModule,
17
+ ReactiveFormsModule,
18
+ TuiFieldErrorPipeModule,
19
+ TuiInputPasswordModule,
20
+ TuiButtonModule,
21
+ TuiErrorModule,
22
+ TuiLabelModule,
23
+ TuiTextfieldControllerModule,
24
+ TuiLetModule], exports: [ScResetUserPasswordComponent] });
25
+ ScUserModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScUserModule, imports: [CommonModule,
26
+ FormsModule,
27
+ ReactiveFormsModule,
28
+ TuiFieldErrorPipeModule,
29
+ TuiInputPasswordModule,
30
+ TuiButtonModule,
31
+ TuiErrorModule,
32
+ TuiLabelModule,
33
+ TuiTextfieldControllerModule,
34
+ TuiLetModule] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScUserModule, decorators: [{
36
+ type: NgModule,
37
+ args: [{
38
+ declarations: [ScResetUserPasswordComponent],
39
+ imports: [
40
+ CommonModule,
41
+ FormsModule,
42
+ ReactiveFormsModule,
43
+ TuiFieldErrorPipeModule,
44
+ TuiInputPasswordModule,
45
+ TuiButtonModule,
46
+ TuiErrorModule,
47
+ TuiLabelModule,
48
+ TuiTextfieldControllerModule,
49
+ TuiLetModule,
50
+ ],
51
+ exports: [ScResetUserPasswordComponent],
52
+ }]
53
+ }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvdXNlci9zYy11c2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9HLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0RBQXdELENBQUM7O0FBRXRHOztHQUVHO0FBaUJILE1BQU0sT0FBTyxZQUFZOzt5R0FBWixZQUFZOzBHQUFaLFlBQVksaUJBZk4sNEJBQTRCLGFBRXZDLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsZUFBZTtRQUNmLGNBQWM7UUFDZCxjQUFjO1FBQ2QsNEJBQTRCO1FBQzVCLFlBQVksYUFFTiw0QkFBNEI7MEdBRTdCLFlBQVksWUFiakIsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0QixlQUFlO1FBQ2YsY0FBYztRQUNkLGNBQWM7UUFDZCw0QkFBNEI7UUFDNUIsWUFBWTsyRkFJUCxZQUFZO2tCQWhCeEIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDNUMsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCw0QkFBNEI7d0JBQzVCLFlBQVk7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFR1aUZpZWxkRXJyb3JQaXBlTW9kdWxlLCBUdWlJbnB1dFBhc3N3b3JkTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQgeyBUdWlCdXR0b25Nb2R1bGUsIFR1aUVycm9yTW9kdWxlLCBUdWlMYWJlbE1vZHVsZSwgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFR1aUxldE1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgU2NSZXNldFVzZXJQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vcmVzZXQtdXNlci1wYXNzd29yZC9zYy1yZXNldC11c2VyLXBhc3N3b3JkLmNvbXBvbmVudCc7XG5cbi8qKlxuICog0JzQvtC00YPQu9GMINC60L7QvNC/0L7QvdC10L3RgtC+0LIg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1NjUmVzZXRVc2VyUGFzc3dvcmRDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVHVpRmllbGRFcnJvclBpcGVNb2R1bGUsXG4gICAgICAgIFR1aUlucHV0UGFzc3dvcmRNb2R1bGUsXG4gICAgICAgIFR1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVHVpRXJyb3JNb2R1bGUsXG4gICAgICAgIFR1aUxhYmVsTW9kdWxlLFxuICAgICAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxuICAgICAgICBUdWlMZXRNb2R1bGUsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbU2NSZXNldFVzZXJQYXNzd29yZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjVXNlck1vZHVsZSB7fVxuIl19
@@ -1,2 +1,3 @@
1
+ export * from './scPasswordConfirmMatchingValidator';
1
2
  export * from './stepValidator';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdGVwVmFsaWRhdG9yJztcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NjUGFzc3dvcmRDb25maXJtTWF0Y2hpbmdWYWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zdGVwVmFsaWRhdG9yJztcbiJdfQ==
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Проверяет повторный ввод пароля на эквивалентность паролю.
3
+ *
4
+ * @param passwordKey Ключ поля ввода пароля.
5
+ */
6
+ export function scPasswordConfirmMatchingValidator(passwordKey) {
7
+ return ({ value, parent }) => {
8
+ if (!parent || !value) {
9
+ return null;
10
+ }
11
+ const passwordInput = parent.get(passwordKey);
12
+ if (passwordInput && passwordInput.value) {
13
+ return value !== passwordInput.value ? { passwordNotEquivalent: true } : null;
14
+ }
15
+ return null;
16
+ };
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NQYXNzd29yZENvbmZpcm1NYXRjaGluZ1ZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS92YWxpZGF0b3JzL3NjUGFzc3dvcmRDb25maXJtTWF0Y2hpbmdWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxrQ0FBa0MsQ0FBQyxXQUFtQjtJQUNsRSxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFrQyxFQUEyQixFQUFFO1FBQ2xGLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sYUFBYSxHQUF3QyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5GLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDdEMsT0FBTyxLQUFLLEtBQUssYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2pGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICog0J/RgNC+0LLQtdGA0Y/QtdGCINC/0L7QstGC0L7RgNC90YvQuSDQstCy0L7QtCDQv9Cw0YDQvtC70Y8g0L3QsCDRjdC60LLQuNCy0LDQu9C10L3RgtC90L7RgdGC0Ywg0L/QsNGA0L7Qu9GOLlxuICpcbiAqIEBwYXJhbSBwYXNzd29yZEtleSDQmtC70Y7RhyDQv9C+0LvRjyDQstCy0L7QtNCwINC/0LDRgNC+0LvRjy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjUGFzc3dvcmRDb25maXJtTWF0Y2hpbmdWYWxpZGF0b3IocGFzc3dvcmRLZXk6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKHsgdmFsdWUsIHBhcmVudCB9OiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nIHwgbnVsbD4pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgIGlmICghcGFyZW50IHx8ICF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXNzd29yZElucHV0OiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nLCBhbnk+IHwgbnVsbCA9IHBhcmVudC5nZXQocGFzc3dvcmRLZXkpO1xuXG4gICAgICAgIGlmIChwYXNzd29yZElucHV0ICYmIHBhc3N3b3JkSW5wdXQudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPT0gcGFzc3dvcmRJbnB1dC52YWx1ZSA/IHsgcGFzc3dvcmROb3RFcXVpdmFsZW50OiB0cnVlIH0gOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbn1cbiJdfQ==