@snabcentr/client-ui 3.8.1 → 3.8.3
Sign up to get free protection for your applications and to get access to all the features.
- package/error-handler/index.d.ts +1 -1
- package/esm2022/error-handler/index.mjs +2 -2
- package/esm2022/error-handler/sc-error-handler.component.mjs +3 -3
- package/fesm2022/snabcentr-client-ui.mjs +54 -54
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/release_notes.tmp +3 -7
package/error-handler/index.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
export * from './interfaces/i-block-error';
|
2
2
|
export * from './consts/error-change-handler.providers';
|
3
|
-
export * from './error-block-status/error-block-status.component';
|
4
3
|
export * from './sc-error-handler.component';
|
4
|
+
export * from './error-block-status/error-block-status.component';
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export * from './interfaces/i-block-error';
|
2
2
|
export * from './consts/error-change-handler.providers';
|
3
|
-
export * from './error-block-status/error-block-status.component';
|
4
3
|
export * from './sc-error-handler.component';
|
5
|
-
|
4
|
+
export * from './error-block-status/error-block-status.component';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZXJyb3ItaGFuZGxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1EQUFtRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2ktYmxvY2stZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdHMvZXJyb3ItY2hhbmdlLWhhbmRsZXIucHJvdmlkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtZXJyb3ItaGFuZGxlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvci1ibG9jay1zdGF0dXMvZXJyb3ItYmxvY2stc3RhdHVzLmNvbXBvbmVudCc7XG4iXX0=
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ChangeDetectionStrategy, Component, inject, input, signal } from '@angular/core';
|
2
|
-
import {
|
2
|
+
import { NavigationStart, Router } from '@angular/router';
|
3
3
|
import { filter } from 'rxjs';
|
4
4
|
import { SC_ERROR_CHANGE_HANDLER } from './consts/error-change-handler.providers';
|
5
5
|
import { ScErrorBlockStatusComponent } from './error-block-status/error-block-status.component';
|
@@ -29,7 +29,7 @@ export class ScErrorHandlerComponent {
|
|
29
29
|
* Обработчик изменения ошибки.
|
30
30
|
*/
|
31
31
|
this.errorChangeHandler = inject(SC_ERROR_CHANGE_HANDLER);
|
32
|
-
this.router.events.pipe(filter((event) => event instanceof
|
32
|
+
this.router.events.pipe(filter((event) => event instanceof NavigationStart)).subscribe(() => {
|
33
33
|
// Сбрасываем ошибку при переходе на новый маршрут.
|
34
34
|
this.code.set(this.defaultCode());
|
35
35
|
});
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
55
55
|
type: Component,
|
56
56
|
args: [{ standalone: true, selector: 'sc-error-handler', imports: [ScErrorBlockStatusComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (code() === null) {\n <ng-content />\n} @else {\n <sc-error-block-status (pageErrorChange)=\"errorChangeHandler($event)\"></sc-error-block-status>\n}\n" }]
|
57
57
|
}], ctorParameters: () => [] });
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZXJyb3ItaGFuZGxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZXJyb3ItaGFuZGxlci9zYy1lcnJvci1oYW5kbGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9lcnJvci1oYW5kbGVyL3NjLWVycm9yLWhhbmRsZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFOUIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBR2hHOztHQUVHO0FBUUgsTUFBTSxPQUFPLHVCQUF1QjtJQXNCaEM7O09BRUc7SUFDSDtRQXhCQTs7V0FFRztRQUNnQixTQUFJLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUV0RDs7V0FFRztRQUNILDJEQUEyRDtRQUNwRCxnQkFBVyxHQUFHLEtBQUssQ0FBZ0IsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFbkU7O1dBRUc7UUFDYyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpDOztXQUVHO1FBQ2dCLHVCQUFrQixHQUFpQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQU1sRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hGLG1EQUFtRDtZQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDOytHQTlDUSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwyTkNsQnBDLG1LQUtBLDRDRFVjLDJCQUEyQjs7NEZBRzVCLHVCQUF1QjtrQkFQbkMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sa0JBQWtCLFdBRW5CLENBQUMsMkJBQTJCLENBQUMsbUJBQ3JCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBTaWduYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNDX0VSUk9SX0NIQU5HRV9IQU5ETEVSIH0gZnJvbSAnLi9jb25zdHMvZXJyb3ItY2hhbmdlLWhhbmRsZXIucHJvdmlkZXJzJztcbmltcG9ydCB7IFNjRXJyb3JCbG9ja1N0YXR1c0NvbXBvbmVudCB9IGZyb20gJy4vZXJyb3ItYmxvY2stc3RhdHVzL2Vycm9yLWJsb2NrLXN0YXR1cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUJsb2NrRXJyb3IgfSBmcm9tICcuL2ludGVyZmFjZXMvaS1ibG9jay1lcnJvcic7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC00LvRjyDRg9C/0YDQsNCy0LvQtdC90LjRjyDQutC+0LTQvtC8INC+0YjQuNCx0LrQuCDQvtGC0L7QsdGA0LDQttCw0LXQvNC+0Lkg0L3QsCDRgdGC0YDQsNC90LjRhtC1LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnc2MtZXJyb3ItaGFuZGxlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWVycm9yLWhhbmRsZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtTY0Vycm9yQmxvY2tTdGF0dXNDb21wb25lbnRdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0Vycm9ySGFuZGxlckNvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICog0KHQuNCz0L3QsNC7INC00LvRjyDRhdGA0LDQvdC10L3QuNGPINC60L7QtNCwINC+0YjQuNCx0LrQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29kZSA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICAgIC8qKlxuICAgICAqINCh0LjQs9C90LDQuyDQtNC10YTQvtC70YLQvdC+0LPQviDQv9C10YDQtdC00LDQstCw0LXQvNC+0LPQviDQuNC3INCy0L3QtSDQt9C90LDRh9C10L3QuNGPINC+0YjQuNCx0LrQuC5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIHB1YmxpYyBkZWZhdWx0Q29kZSA9IGlucHV0PG51bWJlciB8IG51bGw+KG51bGwsIHsgYWxpYXM6ICdjb2RlJyB9KTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQvNCw0YDRiNGA0YPRgtC40LfQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0LjQt9C80LXQvdC10L3QuNGPINC+0YjQuNCx0LrQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXJyb3JDaGFuZ2VIYW5kbGVyOiAoZXJyb3I6IElCbG9ja0Vycm9yKSA9PiB2b2lkID0gaW5qZWN0KFNDX0VSUk9SX0NIQU5HRV9IQU5ETEVSKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIEVycm9ySGFuZGxlckNvbXBvbmVudH0uXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAvLyDQodCx0YDQsNGB0YvQstCw0LXQvCDQvtGI0LjQsdC60YMg0L/RgNC4INC/0LXRgNC10YXQvtC00LUg0L3QsCDQvdC+0LLRi9C5INC80LDRgNGI0YDRg9GCLlxuICAgICAgICAgICAgdGhpcy5jb2RlLnNldCh0aGlzLmRlZmF1bHRDb2RlKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgtC10LrRg9GJ0LjQuSDRgdC40LPQvdCw0Lsg0YEg0LrQvtC00L7QvCDQvtGI0LjQsdC60LguXG4gICAgICovXG4gICAgcHVibGljIGdldEVycm9yQ29kZSgpOiBTaWduYWw8bnVtYmVyIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC90L7QstGL0Lkg0LrQvtC0INC+0YjQuNCx0LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2RlINCd0L7QstGL0Lkg0LrQvtC0INC+0YjQuNCx0LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RXJyb3JDb2RlKGNvZGU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvZGUuc2V0KGNvZGUpO1xuICAgIH1cbn1cbiIsIkBpZiAoY29kZSgpID09PSBudWxsKSB7XG4gICAgPG5nLWNvbnRlbnQgLz5cbn0gQGVsc2Uge1xuICAgIDxzYy1lcnJvci1ibG9jay1zdGF0dXMgKHBhZ2VFcnJvckNoYW5nZSk9XCJlcnJvckNoYW5nZUhhbmRsZXIoJGV2ZW50KVwiPjwvc2MtZXJyb3ItYmxvY2stc3RhdHVzPlxufVxuIl19
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { EventEmitter, Component, ChangeDetectionStrategy, Inject, Input, Output, inject, DestroyRef, SkipSelf, Directive, HostBinding, ContentChild, ViewChild, NgModule, Pipe, ElementRef, HostListener, Renderer2, Optional, Injectable, ContentChildren, ChangeDetectorRef, signal,
|
2
|
+
import { EventEmitter, Component, ChangeDetectionStrategy, Inject, Input, Output, inject, DestroyRef, SkipSelf, Directive, HostBinding, ContentChild, ViewChild, NgModule, Pipe, ElementRef, HostListener, Renderer2, Optional, Injectable, ContentChildren, ChangeDetectorRef, signal, computed, output, effect, input, forwardRef, InjectionToken } from '@angular/core';
|
3
3
|
import * as i1 from '@snabcentr/client-core';
|
4
4
|
import { ScUserMetrikaGoalsEnum, ScISuggestionType, SC_MIN_LENGTH_SEARCH_TERM, ScOpfList, ScPhoneService, ScUserMetrikaService, ScAuthService, SC_URLS, SC_PATH_IMAGE_NOT_FOUND, SEARCH_TERM, ScUnitsHelper, ScImageHelper, IS_RUNNING_ON_TERMINAL, ScWarehouseService, SEARCH_TERM_PROVIDERS, ScPaginationService, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_OPTIONS, ScIconTypesEnum, ScDocumentInfoTypesEnum, ScSamplesService, ScUserService } from '@snabcentr/client-core';
|
5
5
|
import * as i6$1 from 'rxjs';
|
@@ -28,7 +28,7 @@ import * as i1$2 from '@taiga-ui/cdk/directives/item';
|
|
28
28
|
import * as i3$2 from '@ng-web-apis/intersection-observer';
|
29
29
|
import { IntersectionObserverService, WaIntersectionObserver } from '@ng-web-apis/intersection-observer';
|
30
30
|
import * as i2$3 from '@angular/router';
|
31
|
-
import { RouterModule, ActivatedRoute,
|
31
|
+
import { RouterModule, ActivatedRoute, RouterLink, Router, NavigationStart } from '@angular/router';
|
32
32
|
import * as i9 from '@taiga-ui/addon-commerce';
|
33
33
|
import { TuiCurrencyPipe } from '@taiga-ui/addon-commerce';
|
34
34
|
import * as i2$4 from 'angularx-qrcode';
|
@@ -4416,58 +4416,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
4416
4416
|
// eslint-disable-next-line unicorn/consistent-function-scoping
|
4417
4417
|
const SC_ERROR_CHANGE_HANDLER = tuiCreateTokenFromFactory(() => () => noop);
|
4418
4418
|
|
4419
|
-
/**
|
4420
|
-
* Компонент для управления кодом ошибки отображаемой на странице.
|
4421
|
-
*/
|
4422
|
-
class ScErrorHandlerComponent {
|
4423
|
-
/**
|
4424
|
-
* Инициирует экземпляр класса {@link ErrorHandlerComponent}.
|
4425
|
-
*/
|
4426
|
-
constructor() {
|
4427
|
-
/**
|
4428
|
-
* Сигнал для хранения кода ошибки.
|
4429
|
-
*/
|
4430
|
-
this.code = signal(null);
|
4431
|
-
/**
|
4432
|
-
* Сигнал дефолтного передаваемого из вне значения ошибки.
|
4433
|
-
*/
|
4434
|
-
// eslint-disable-next-line @angular-eslint/no-input-rename
|
4435
|
-
this.defaultCode = input(null, { alias: 'code' });
|
4436
|
-
/**
|
4437
|
-
* Сервис маршрутизации.
|
4438
|
-
*/
|
4439
|
-
this.router = inject(Router);
|
4440
|
-
/**
|
4441
|
-
* Обработчик изменения ошибки.
|
4442
|
-
*/
|
4443
|
-
this.errorChangeHandler = inject(SC_ERROR_CHANGE_HANDLER);
|
4444
|
-
this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(() => {
|
4445
|
-
// Сбрасываем ошибку при переходе на новый маршрут.
|
4446
|
-
this.code.set(this.defaultCode());
|
4447
|
-
});
|
4448
|
-
}
|
4449
|
-
/**
|
4450
|
-
* Возвращает текущий сигнал с кодом ошибки.
|
4451
|
-
*/
|
4452
|
-
getErrorCode() {
|
4453
|
-
return this.code;
|
4454
|
-
}
|
4455
|
-
/**
|
4456
|
-
* Устанавливает новый код ошибки.
|
4457
|
-
*
|
4458
|
-
* @param code Новый код ошибки.
|
4459
|
-
*/
|
4460
|
-
setErrorCode(code) {
|
4461
|
-
this.code.set(code);
|
4462
|
-
}
|
4463
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScErrorHandlerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
4464
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: ScErrorHandlerComponent, isStandalone: true, selector: "sc-error-handler", inputs: { defaultCode: { classPropertyName: "defaultCode", publicName: "code", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (code() === null) {\n <ng-content />\n} @else {\n <sc-error-block-status (pageErrorChange)=\"errorChangeHandler($event)\"></sc-error-block-status>\n}\n", dependencies: [{ kind: "component", type: ScErrorBlockStatusComponent, selector: "sc-error-block-status", outputs: ["pageErrorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
4465
|
-
}
|
4466
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScErrorHandlerComponent, decorators: [{
|
4467
|
-
type: Component,
|
4468
|
-
args: [{ standalone: true, selector: 'sc-error-handler', imports: [ScErrorBlockStatusComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (code() === null) {\n <ng-content />\n} @else {\n <sc-error-block-status (pageErrorChange)=\"errorChangeHandler($event)\"></sc-error-block-status>\n}\n" }]
|
4469
|
-
}], ctorParameters: () => [] });
|
4470
|
-
|
4471
4419
|
/**
|
4472
4420
|
* Компонент представления данных об ошибке.
|
4473
4421
|
*/
|
@@ -4539,6 +4487,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
4539
4487
|
args: [{ standalone: true, selector: 'sc-error-block-status', imports: [TuiAppearance, TuiWithAppearance, TuiIcons, TuiWithIcons, TuiButton, RouterLink], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col items-center gap-8\">\n <div class=\"border-20 border-solid border-tui-primary text-center sm:border-32\">\n <div class=\"text-8xl leading-1.15 text-black sm:text-44\">\n {{ error().code }}\n </div>\n <div class=\"text-6xl leading-1.15 text-tui-primary sm:text-8xl\">ERROR</div>\n </div>\n <div class=\"flex flex-col gap-2 text-center\">\n <div class=\"text-h5 sm:text-h4\">{{ error().message }}</div>\n <div class=\"text-body-m-bold sm:text-h6\">{{ error().description }}</div>\n </div>\n <button\n tuiButton\n appearance=\"primary\"\n routerLink=\"/\"\n >\n \u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043D\u0430 \u0433\u043B\u0430\u0432\u043D\u0443\u044E\n </button>\n</div>\n" }]
|
4540
4488
|
}], ctorParameters: () => [] });
|
4541
4489
|
|
4490
|
+
/**
|
4491
|
+
* Компонент для управления кодом ошибки отображаемой на странице.
|
4492
|
+
*/
|
4493
|
+
class ScErrorHandlerComponent {
|
4494
|
+
/**
|
4495
|
+
* Инициирует экземпляр класса {@link ErrorHandlerComponent}.
|
4496
|
+
*/
|
4497
|
+
constructor() {
|
4498
|
+
/**
|
4499
|
+
* Сигнал для хранения кода ошибки.
|
4500
|
+
*/
|
4501
|
+
this.code = signal(null);
|
4502
|
+
/**
|
4503
|
+
* Сигнал дефолтного передаваемого из вне значения ошибки.
|
4504
|
+
*/
|
4505
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
4506
|
+
this.defaultCode = input(null, { alias: 'code' });
|
4507
|
+
/**
|
4508
|
+
* Сервис маршрутизации.
|
4509
|
+
*/
|
4510
|
+
this.router = inject(Router);
|
4511
|
+
/**
|
4512
|
+
* Обработчик изменения ошибки.
|
4513
|
+
*/
|
4514
|
+
this.errorChangeHandler = inject(SC_ERROR_CHANGE_HANDLER);
|
4515
|
+
this.router.events.pipe(filter((event) => event instanceof NavigationStart)).subscribe(() => {
|
4516
|
+
// Сбрасываем ошибку при переходе на новый маршрут.
|
4517
|
+
this.code.set(this.defaultCode());
|
4518
|
+
});
|
4519
|
+
}
|
4520
|
+
/**
|
4521
|
+
* Возвращает текущий сигнал с кодом ошибки.
|
4522
|
+
*/
|
4523
|
+
getErrorCode() {
|
4524
|
+
return this.code;
|
4525
|
+
}
|
4526
|
+
/**
|
4527
|
+
* Устанавливает новый код ошибки.
|
4528
|
+
*
|
4529
|
+
* @param code Новый код ошибки.
|
4530
|
+
*/
|
4531
|
+
setErrorCode(code) {
|
4532
|
+
this.code.set(code);
|
4533
|
+
}
|
4534
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScErrorHandlerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
4535
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: ScErrorHandlerComponent, isStandalone: true, selector: "sc-error-handler", inputs: { defaultCode: { classPropertyName: "defaultCode", publicName: "code", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (code() === null) {\n <ng-content />\n} @else {\n <sc-error-block-status (pageErrorChange)=\"errorChangeHandler($event)\"></sc-error-block-status>\n}\n", dependencies: [{ kind: "component", type: ScErrorBlockStatusComponent, selector: "sc-error-block-status", outputs: ["pageErrorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
4536
|
+
}
|
4537
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScErrorHandlerComponent, decorators: [{
|
4538
|
+
type: Component,
|
4539
|
+
args: [{ standalone: true, selector: 'sc-error-handler', imports: [ScErrorBlockStatusComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (code() === null) {\n <ng-content />\n} @else {\n <sc-error-block-status (pageErrorChange)=\"errorChangeHandler($event)\"></sc-error-block-status>\n}\n" }]
|
4540
|
+
}], ctorParameters: () => [] });
|
4541
|
+
|
4542
4542
|
/* eslint-disable class-methods-use-this */
|
4543
4543
|
/**
|
4544
4544
|
* Сервис работающий с значками элементов дерева.
|