@snabcentr/client-ui 3.41.4 → 3.41.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/error-handler/error-block-status/error-block-status.component.d.ts +8 -0
- package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +13 -1
- package/fesm2022/snabcentr-client-ui.mjs +12 -1
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/release_notes.tmp +1 -1
|
@@ -22,6 +22,14 @@ export declare class ScErrorBlockStatusComponent {
|
|
|
22
22
|
* Создает сигнал изменения строкового представления об ошибке.
|
|
23
23
|
*/
|
|
24
24
|
protected readonly pageErrorChange: import("@angular/core").OutputEmitterRef<IBlockError>;
|
|
25
|
+
/**
|
|
26
|
+
* Признак, что текущий скрипт исполняется на сервере.
|
|
27
|
+
*/
|
|
28
|
+
private readonly isServer;
|
|
29
|
+
/**
|
|
30
|
+
* Данные об ответе на запрос.
|
|
31
|
+
*/
|
|
32
|
+
private readonly response;
|
|
25
33
|
/**
|
|
26
34
|
* Инициализирует экземпляр класса {@link ErrorPageComponent}.
|
|
27
35
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, computed, effect, inject, output } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute, RouterLink } from '@angular/router';
|
|
3
|
+
import { IS_SERVER, RESPONSE } from '@snabcentr/client-core';
|
|
3
4
|
import { TuiAppearance, TuiButton, TuiIcons, TuiWithAppearance, TuiWithIcons } from '@taiga-ui/core';
|
|
4
5
|
import { ScErrorHandlerComponent } from '../sc-error-handler.component';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
@@ -28,6 +29,14 @@ export class ScErrorBlockStatusComponent {
|
|
|
28
29
|
* Создает сигнал изменения строкового представления об ошибке.
|
|
29
30
|
*/
|
|
30
31
|
this.pageErrorChange = output();
|
|
32
|
+
/**
|
|
33
|
+
* Признак, что текущий скрипт исполняется на сервере.
|
|
34
|
+
*/
|
|
35
|
+
this.isServer = inject(IS_SERVER);
|
|
36
|
+
/**
|
|
37
|
+
* Данные об ответе на запрос.
|
|
38
|
+
*/
|
|
39
|
+
this.response = inject(RESPONSE, { optional: true });
|
|
31
40
|
// Если компонент отображён маршрутизацией из-за перехода по неизвестному маршруту, то устанавливаем код 404.
|
|
32
41
|
if (inject(ActivatedRoute).snapshot.data['routes_key'] === 'error') {
|
|
33
42
|
this.errorHandlerComponent.setErrorCode(404);
|
|
@@ -35,6 +44,9 @@ export class ScErrorBlockStatusComponent {
|
|
|
35
44
|
effect(() => {
|
|
36
45
|
if (this.code() !== null) {
|
|
37
46
|
this.pageErrorChange.emit(this.error());
|
|
47
|
+
if (this.isServer) {
|
|
48
|
+
this.response?.status(this.code() ?? 0);
|
|
49
|
+
}
|
|
38
50
|
}
|
|
39
51
|
});
|
|
40
52
|
}
|
|
@@ -73,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
73
85
|
type: Component,
|
|
74
86
|
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" }]
|
|
75
87
|
}], ctorParameters: () => [] });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItYmxvY2stc3RhdHVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9lcnJvci1oYW5kbGVyL2Vycm9yLWJsb2NrLXN0YXR1cy9lcnJvci1ibG9jay1zdGF0dXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2Vycm9yLWhhbmRsZXIvZXJyb3ItYmxvY2stc3RhdHVzL2Vycm9yLWJsb2NrLXN0YXR1cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUV4RTs7R0FFRztBQVFILE1BQU0sT0FBTywyQkFBMkI7SUFnQ3BDOztPQUVHO0lBQ0g7UUFsQ0E7O1dBRUc7UUFDZ0IsMEJBQXFCLEdBQTRCLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXhIOztXQUVHO1FBQ2dCLFNBQUksR0FBMEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTNGOztXQUVHO1FBQ0gsK0RBQStEO1FBQzVDLFVBQUssR0FBd0IsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsRzs7V0FFRztRQUNnQixvQkFBZSxHQUFHLE1BQU0sRUFBZSxDQUFDO1FBRTNEOztXQUVHO1FBQ2MsYUFBUSxHQUFZLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNjLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFNN0QsNkdBQTZHO1FBQzdHLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDakUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFeEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDNUMsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsa0RBQWtEO0lBQ3hDLGVBQWUsQ0FBQyxJQUFtQjtRQUN6QyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ1gsS0FBSyxHQUFHO2dCQUNKLE9BQU87b0JBQ0gsT0FBTyxFQUFFLGdEQUFnRDtvQkFDekQsV0FBVyxFQUFFLDhGQUE4RjtvQkFDM0csSUFBSTtpQkFDUCxDQUFDO1lBRU4sS0FBSyxHQUFHO2dCQUNKLE9BQU87b0JBQ0gsT0FBTyxFQUFFLGlDQUFpQztvQkFDMUMsV0FBVyxFQUFFLDhGQUE4RjtvQkFDM0csSUFBSTtpQkFDUCxDQUFDO1lBRU47Z0JBQ0ksT0FBTztvQkFDSCxPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixXQUFXLEVBQUUseURBQXlEO29CQUN0RSxJQUFJLEVBQUUsQ0FBQztpQkFDVixDQUFDO1FBQ1YsQ0FBQztJQUNMLENBQUM7K0dBakZRLDJCQUEyQjttR0FBM0IsMkJBQTJCLGtJQ2xCeEMsZ3pCQW1CQSw0Q0RKd0UsU0FBUyxvSUFBRSxVQUFVOzs0RkFHaEYsMkJBQTJCO2tCQVB2QyxTQUFTO2lDQUNNLElBQUksWUFDTix1QkFBdUIsV0FFeEIsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLG1CQUN6RSx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBvdXRwdXQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSVNfU0VSVkVSLCBSRVNQT05TRSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpQXBwZWFyYW5jZSwgVHVpQnV0dG9uLCBUdWlJY29ucywgVHVpV2l0aEFwcGVhcmFuY2UsIFR1aVdpdGhJY29ucyB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcblxuaW1wb3J0IHsgSUJsb2NrRXJyb3IgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ktYmxvY2stZXJyb3InO1xuaW1wb3J0IHsgU2NFcnJvckhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuLi9zYy1lcnJvci1oYW5kbGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNGPINC00LDQvdC90YvRhSDQvtCxINC+0YjQuNCx0LrQtS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3NjLWVycm9yLWJsb2NrLXN0YXR1cycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Vycm9yLWJsb2NrLXN0YXR1cy5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1R1aUFwcGVhcmFuY2UsIFR1aVdpdGhBcHBlYXJhbmNlLCBUdWlJY29ucywgVHVpV2l0aEljb25zLCBUdWlCdXR0b24sIFJvdXRlckxpbmtdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0Vycm9yQmxvY2tTdGF0dXNDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCa0L7QvNC/0L7QvdC10L3RgiDRg9C/0YDQsNCy0LvRj9GO0YnQuNC5INC60L7QtNC+0Lwg0L7RiNC40LHQutC4INC+0YLQvtCx0YDQsNC20LDQtdC80L7QuSDQvdCwINGB0YLRgNCw0L3QuNGG0LUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVycm9ySGFuZGxlckNvbXBvbmVudDogU2NFcnJvckhhbmRsZXJDb21wb25lbnQgPSBpbmplY3QoU2NFcnJvckhhbmRsZXJDb21wb25lbnQsIHsgc2tpcFNlbGY6IHRydWUgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC40LPQvdCw0Lsg0LrQvtC00LAg0L7RiNC40LHQutC4LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb2RlOiBTaWduYWw8bnVtYmVyIHwgbnVsbD4gPSB0aGlzLmVycm9ySGFuZGxlckNvbXBvbmVudC5nZXRFcnJvckNvZGUoKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQvtCxINC+0YjQuNCx0LrQtS5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9jb25zaXN0ZW50LWZ1bmN0aW9uLXNjb3BpbmdcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXJyb3I6IFNpZ25hbDxJQmxvY2tFcnJvcj4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdldEVycm9yTWVzc2FnZSh0aGlzLmNvZGUoKSkpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0YHQuNCz0L3QsNC7INC40LfQvNC10L3QtdC90LjRjyDRgdGC0YDQvtC60L7QstC+0LPQviDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRjyDQvtCxINC+0YjQuNCx0LrQtS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFnZUVycm9yQ2hhbmdlID0gb3V0cHV0PElCbG9ja0Vycm9yPigpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgtC10LrRg9GJ0LjQuSDRgdC60YDQuNC/0YIg0LjRgdC/0L7Qu9C90Y/QtdGC0YHRjyDQvdCwINGB0LXRgNCy0LXRgNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNTZXJ2ZXI6IGJvb2xlYW4gPSBpbmplY3QoSVNfU0VSVkVSKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQvtCxINC+0YLQstC10YLQtSDQvdCwINC30LDQv9GA0L7RgS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNlID0gaW5qZWN0KFJFU1BPTlNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBFcnJvclBhZ2VDb21wb25lbnR9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8g0JXRgdC70Lgg0LrQvtC80L/QvtC90LXQvdGCINC+0YLQvtCx0YDQsNC20ZHQvSDQvNCw0YDRiNGA0YPRgtC40LfQsNGG0LjQtdC5INC40Lct0LfQsCDQv9C10YDQtdGF0L7QtNCwINC/0L4g0L3QtdC40LfQstC10YHRgtC90L7QvNGDINC80LDRgNGI0YDRg9GC0YMsINGC0L4g0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0LrQvtC0IDQwNC5cbiAgICAgICAgaWYgKGluamVjdChBY3RpdmF0ZWRSb3V0ZSkuc25hcHNob3QuZGF0YVsncm91dGVzX2tleSddID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9ySGFuZGxlckNvbXBvbmVudC5zZXRFcnJvckNvZGUoNDA0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb2RlKCkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VFcnJvckNoYW5nZS5lbWl0KHRoaXMuZXJyb3IoKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1NlcnZlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlPy5zdGF0dXModGhpcy5jb2RlKCkgPz8gMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQvtC/0LjRgdCw0L3QuNC1INC+0YjQuNCx0LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2RlINCa0L7QtCDQvtGI0LjQsdC60LguXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgICBwcm90ZWN0ZWQgZ2V0RXJyb3JNZXNzYWdlKGNvZGU6IG51bWJlciB8IG51bGwpOiBJQmxvY2tFcnJvciB7XG4gICAgICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgICAgICAgY2FzZSA0MDM6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ9CaINGB0L7QttCw0LvQtdC90LjRjiwg0YMg0LLQsNGBINC90LXRgiDQtNC+0YHRgtGD0L/QsCDQuiDRjdGC0L7QvNGDINGA0LXRgdGD0YDRgdGDJyxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICfQktC+0YHQv9C+0LvRjNC30YPQudGC0LXRgdGMINC90LDQstC40LPQsNGG0LjQtdC5INCyINGI0LDQv9C60LUg0LjQu9C4INC/0L7QtNCy0LDQu9C1INGB0LDQudGC0LAsINGH0YLQvtCx0Ysg0L/QtdGA0LXQudGC0Lgg0LIg0LjQvdGC0LXRgNC10YHRg9GO0YnQuNC5INCy0LDRgSDRgNCw0LfQtNC10LsnLFxuICAgICAgICAgICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNhc2UgNDA0OlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICfQmiDRgdC+0LbQsNC70LXQvdC40Y4sINGC0LDQutC+0Lkg0YHRgtGA0LDQvdC40YbRiyDQvdC10YInLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ9CS0L7RgdC/0L7Qu9GM0LfRg9C50YLQtdGB0Ywg0L3QsNCy0LjQs9Cw0YbQuNC10Lkg0LIg0YjQsNC/0LrQtSDQuNC70Lgg0L/QvtC00LLQsNC70LUg0YHQsNC50YLQsCwg0YfRgtC+0LHRiyDQv9C10YDQtdC50YLQuCDQsiDQuNC90YLQtdGA0LXRgdGD0Y7RidC40Lkg0LLQsNGBINGA0LDQt9C00LXQuycsXG4gICAgICAgICAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn0J3QtdC40LfQstC10YHRgtC90LDRjyDQvtGI0LjQsdC60LAnLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ9Cf0L7QttCw0LvRg9C50YHRgtCwINC+0LHQvdC+0LLQuNGC0LUg0YHRgtGA0LDQvdC40YbRgyDQuNC70Lgg0L7QsdGA0LDRgtC40YLQtdGB0Ywg0Log0LzQtdC90LXQtNC20LXRgNGDJyxcbiAgICAgICAgICAgICAgICAgICAgY29kZTogMCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC04XCI+XG4gICAgPGRpdiBjbGFzcz1cImJvcmRlci0yMCBib3JkZXItc29saWQgYm9yZGVyLXR1aS1wcmltYXJ5IHRleHQtY2VudGVyIHNtOmJvcmRlci0zMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC04eGwgbGVhZGluZy0xLjE1IHRleHQtYmxhY2sgc206dGV4dC00NFwiPlxuICAgICAgICAgICAge3sgZXJyb3IoKS5jb2RlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC02eGwgbGVhZGluZy0xLjE1IHRleHQtdHVpLXByaW1hcnkgc206dGV4dC04eGxcIj5FUlJPUjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIHRleHQtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWg1IHNtOnRleHQtaDRcIj57eyBlcnJvcigpLm1lc3NhZ2UgfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYm9keS1tLWJvbGQgc206dGV4dC1oNlwiPnt7IGVycm9yKCkuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR1aUJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwicHJpbWFyeVwiXG4gICAgICAgIHJvdXRlckxpbms9XCIvXCJcbiAgICA+XG4gICAgICAgINCS0LXRgNC90YPRgtGM0YHRjyDQvdCwINCz0LvQsNCy0L3Rg9GOXG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable, Directive, ContentChildren, HostListener, NgModule, EventEmitter, signal, ChangeDetectorRef, Input, Output, Component, ChangeDetectionStrategy, Inject, HostBinding, ElementRef, Pipe, Renderer2, input, model, output, SkipSelf, DestroyRef, effect, ContentChild, ViewChild, Optional, computed, viewChild, forwardRef } from '@angular/core';
|
|
3
3
|
import * as i1 from '@snabcentr/client-core';
|
|
4
|
-
import { ScContactsService, ScUserService, ScAuthService, SEARCH_TERM, ScUnitsHelper, ScImageHelper, SC_PATH_IMAGE_NOT_FOUND, ScImage, IS_RUNNING_ON_TERMINAL, ScPhoneService, ScUserMetrikaService, ScUserMetrikaGoalsEnum, ScVCardService, ScVerificationService, ScISuggestionType, SC_MIN_LENGTH_SEARCH_TERM, ScConvertersService, ScOpfList, ScMediaImageTransformerPipe, ScLocationsService, ScWarehouseService, SEARCH_TERM_PROVIDERS, ScCartService, ScUploadedFile, ScMimeTypes, ScCatalogService, SC_URLS, ScPaginationService, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_OPTIONS, ScIconTypesEnum, ScDocumentInfoTypesEnum,
|
|
4
|
+
import { ScContactsService, ScUserService, ScAuthService, SEARCH_TERM, ScUnitsHelper, ScImageHelper, SC_PATH_IMAGE_NOT_FOUND, ScImage, IS_RUNNING_ON_TERMINAL, ScPhoneService, ScUserMetrikaService, ScUserMetrikaGoalsEnum, ScVCardService, ScVerificationService, ScISuggestionType, SC_MIN_LENGTH_SEARCH_TERM, ScConvertersService, ScOpfList, ScMediaImageTransformerPipe, ScLocationsService, ScWarehouseService, SEARCH_TERM_PROVIDERS, ScCartService, ScUploadedFile, ScMimeTypes, ScCatalogService, SC_URLS, ScPaginationService, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_OPTIONS, IS_SERVER, RESPONSE, ScIconTypesEnum, ScDocumentInfoTypesEnum, ScFrequentlyAskedQuestionsService, SC_COMPANY_INFO, ScFeedbackService, ScIdOrSlugPipe, ScJsonLdModule } from '@snabcentr/client-core';
|
|
5
5
|
import * as i6 from 'rxjs';
|
|
6
6
|
import { EMPTY, BehaviorSubject, switchMap, of, shareReplay, Subject, map, filter, tap, catchError, finalize, startWith, share, timer, scan, takeWhile, endWith, distinctUntilChanged, debounceTime, throwError, combineLatest, Observable, pairwise, noop, first, merge, skip } from 'rxjs';
|
|
7
7
|
import * as i7 from '@taiga-ui/cdk';
|
|
@@ -5823,6 +5823,14 @@ class ScErrorBlockStatusComponent {
|
|
|
5823
5823
|
* Создает сигнал изменения строкового представления об ошибке.
|
|
5824
5824
|
*/
|
|
5825
5825
|
this.pageErrorChange = output();
|
|
5826
|
+
/**
|
|
5827
|
+
* Признак, что текущий скрипт исполняется на сервере.
|
|
5828
|
+
*/
|
|
5829
|
+
this.isServer = inject(IS_SERVER);
|
|
5830
|
+
/**
|
|
5831
|
+
* Данные об ответе на запрос.
|
|
5832
|
+
*/
|
|
5833
|
+
this.response = inject(RESPONSE, { optional: true });
|
|
5826
5834
|
// Если компонент отображён маршрутизацией из-за перехода по неизвестному маршруту, то устанавливаем код 404.
|
|
5827
5835
|
if (inject(ActivatedRoute).snapshot.data['routes_key'] === 'error') {
|
|
5828
5836
|
this.errorHandlerComponent.setErrorCode(404);
|
|
@@ -5830,6 +5838,9 @@ class ScErrorBlockStatusComponent {
|
|
|
5830
5838
|
effect(() => {
|
|
5831
5839
|
if (this.code() !== null) {
|
|
5832
5840
|
this.pageErrorChange.emit(this.error());
|
|
5841
|
+
if (this.isServer) {
|
|
5842
|
+
this.response?.status(this.code() ?? 0);
|
|
5843
|
+
}
|
|
5833
5844
|
}
|
|
5834
5845
|
});
|
|
5835
5846
|
}
|