@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.
- package/accordion/index.d.ts +3 -0
- package/accordion/sc-accordion-content.directive.d.ts +9 -0
- package/accordion/sc-accordion.component.d.ts +43 -0
- package/accordion/sc-accordion.module.d.ts +15 -0
- package/catalog/index.d.ts +1 -0
- package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +27 -0
- package/catalog/sc-catalog.module.d.ts +15 -13
- package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +23 -0
- package/contacts/index.d.ts +2 -0
- package/contacts/sc-contacts.module.d.ts +14 -0
- package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +45 -0
- package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +38 -0
- package/contragents/index.d.ts +3 -0
- package/contragents/sc-contragents.module.d.ts +16 -0
- package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +32 -0
- package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +26 -0
- package/delivery-address/index.d.ts +3 -0
- package/delivery-address/sc-delivery-address.module.d.ts +16 -0
- package/esm2020/accordion/index.mjs +4 -0
- package/esm2020/accordion/sc-accordion-content.directive.mjs +17 -0
- package/esm2020/accordion/sc-accordion.component.mjs +78 -0
- package/esm2020/accordion/sc-accordion.module.mjs +25 -0
- package/esm2020/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +3 -3
- package/esm2020/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +3 -3
- package/esm2020/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +3 -3
- package/esm2020/catalog/index.mjs +2 -1
- package/esm2020/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +37 -0
- package/esm2020/catalog/sc-catalog.module.mjs +38 -6
- package/esm2020/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +35 -0
- package/esm2020/contacts/index.mjs +3 -0
- package/esm2020/contacts/sc-contacts.module.mjs +24 -0
- package/esm2020/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +54 -0
- package/esm2020/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +57 -0
- package/esm2020/contragents/index.mjs +4 -0
- package/esm2020/contragents/sc-contragents.module.mjs +26 -0
- package/esm2020/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +40 -0
- package/esm2020/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +39 -0
- package/esm2020/delivery-address/index.mjs +4 -0
- package/esm2020/delivery-address/sc-delivery-address.module.mjs +26 -0
- package/esm2020/profile/index.mjs +3 -0
- package/esm2020/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +99 -0
- package/esm2020/profile/sc-profile.module.mjs +76 -0
- package/esm2020/providers/index.mjs +3 -0
- package/esm2020/providers/productsPagination.mjs +97 -0
- package/esm2020/providers/scUserProviders.mjs +30 -0
- package/esm2020/public-api.mjs +8 -1
- package/esm2020/user/index.mjs +3 -0
- package/esm2020/user/reset-user-password/sc-reset-user-password.component.mjs +61 -0
- package/esm2020/user/sc-user.module.mjs +54 -0
- package/esm2020/validators/index.mjs +2 -1
- package/esm2020/validators/scPasswordConfirmMatchingValidator.mjs +18 -0
- package/fesm2015/snabcentr-client-ui.mjs +824 -45
- package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
- package/fesm2020/snabcentr-client-ui.mjs +819 -45
- package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/profile/index.d.ts +2 -0
- package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +61 -0
- package/profile/sc-profile.module.d.ts +19 -0
- package/providers/index.d.ts +2 -0
- package/providers/productsPagination.d.ts +43 -0
- package/providers/scUserProviders.d.ts +18 -0
- package/public-api.d.ts +7 -0
- package/styles/tailwind/tailwind.scss +38 -0
- package/user/index.d.ts +2 -0
- package/user/reset-user-password/sc-reset-user-password.component.d.ts +38 -0
- package/user/sc-user.module.d.ts +15 -0
- package/validators/index.d.ts +1 -0
- 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=
|
package/esm2020/public-api.mjs
CHANGED
@@ -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
|
-
|
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,
|
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==
|