@esfaenza/core 15.2.11 → 15.2.12
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/components/base/base.component.d.ts +2 -0
- package/esm2020/components/base/base.component.mjs +13 -2
- package/esm2020/lib/app.component.mjs +2 -2
- package/fesm2015/esfaenza-core-components.mjs +12 -2
- package/fesm2015/esfaenza-core-components.mjs.map +1 -1
- package/fesm2015/esfaenza-core.mjs +2 -2
- package/fesm2015/esfaenza-core.mjs.map +1 -1
- package/fesm2020/esfaenza-core-components.mjs +12 -2
- package/fesm2020/esfaenza-core-components.mjs.map +1 -1
- package/fesm2020/esfaenza-core.mjs +2 -2
- package/fesm2020/esfaenza-core.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,9 @@ export declare abstract class BaseComponent extends ReactiveComponent {
|
|
|
10
10
|
};
|
|
11
11
|
protected InternalNavigation: boolean;
|
|
12
12
|
protected NavigationTitle: string;
|
|
13
|
+
private _router;
|
|
13
14
|
constructor(injector: Injector);
|
|
15
|
+
protected navigate(command: any[], extras: any): void;
|
|
14
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseComponent, never>;
|
|
15
17
|
static ɵcmp: i0.ɵɵComponentDeclaration<BaseComponent, "ng-component", never, {}, {}, never, never, false, never>;
|
|
16
18
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
// Angular
|
|
2
2
|
import { Component } from "@angular/core";
|
|
3
|
-
import { ActivatedRoute } from "@angular/router";
|
|
3
|
+
import { ActivatedRoute, Router } from "@angular/router";
|
|
4
4
|
// Direttive, Componenti, Librerie
|
|
5
5
|
import { takeUntil } from "rxjs/operators";
|
|
6
6
|
// Core
|
|
7
7
|
import { AppState } from "@esfaenza/core/services";
|
|
8
8
|
import { ReactiveComponent } from "./reactive.component";
|
|
9
|
+
import { EMBEDDED_ROUTE, ROUTE } from "@esfaenza/core/domain";
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
export class BaseComponent extends ReactiveComponent {
|
|
11
12
|
constructor(injector) {
|
|
@@ -13,6 +14,7 @@ export class BaseComponent extends ReactiveComponent {
|
|
|
13
14
|
this.NavigationParameters = null;
|
|
14
15
|
let _activatedRoute = injector.get(ActivatedRoute);
|
|
15
16
|
let _state = injector.get(AppState);
|
|
17
|
+
this._router = injector.get(Router);
|
|
16
18
|
_state.registerNavigationIfMeaningful(_activatedRoute.snapshot);
|
|
17
19
|
// Parametri in maniera "dinamica"
|
|
18
20
|
_activatedRoute.params.pipe(takeUntil(this.destroyed$)).subscribe(t => { this.NavigationParameters = t; });
|
|
@@ -34,6 +36,15 @@ export class BaseComponent extends ReactiveComponent {
|
|
|
34
36
|
tmpWindow = tmpWindow.parent;
|
|
35
37
|
tmpWindow.postMessage({ type: "navigation", url: this.CompletePath, internalNavigation: this.InternalNavigation, title: this.NavigationTitle }, "*");
|
|
36
38
|
}
|
|
39
|
+
navigate(command, extras) {
|
|
40
|
+
let commands = command;
|
|
41
|
+
// Fix della path esattamente come in esRouterLink
|
|
42
|
+
commands = Array.isArray(commands) ? commands : [commands];
|
|
43
|
+
let route = commands[0];
|
|
44
|
+
if (!route.startsWith("/" + EMBEDDED_ROUTE) && !route.startsWith("/" + ROUTE))
|
|
45
|
+
commands[0] = this.BasePath + commands[0];
|
|
46
|
+
this._router.navigate(command, extras);
|
|
47
|
+
}
|
|
37
48
|
}
|
|
38
49
|
BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
50
|
BaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: BaseComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
@@ -43,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
43
54
|
template: ''
|
|
44
55
|
}]
|
|
45
56
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL2Jhc2UvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQW1CLE1BQU0saUJBQWlCLENBQUM7QUFFMUUsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPO0FBQ1AsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBSzlELE1BQU0sT0FBZ0IsYUFBYyxTQUFRLGlCQUFpQjtJQXNCekQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLEVBQUUsQ0FBQztRQVRGLHlCQUFvQixHQUErQixJQUFJLENBQUM7UUFXOUQsSUFBSSxlQUFlLEdBQW1CLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkUsSUFBSSxNQUFNLEdBQWEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVoRSxrQ0FBa0M7UUFDbEMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxRyxxREFBcUQ7UUFDckQsSUFBSSxJQUFJLEdBQTJCLGVBQWUsQ0FBQyxRQUFTLENBQUMsV0FBWSxDQUFDLFFBQVEsQ0FBQztRQUNuRixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVuQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxLQUFLLENBQUM7UUFDdkYsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFcEUsMEZBQTBGO1FBQzFGLCtHQUErRztRQUMvRyxJQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQ3hDLE9BQU87UUFFWCw0RUFBNEU7UUFDNUUsSUFBSSxTQUFTLEdBQTJDLE1BQU0sQ0FBQztRQUMvRCwwRUFBMEU7UUFDMUUsT0FBTyxTQUFTLENBQUMsTUFBTSxJQUFJLFNBQVM7WUFDaEMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFFakMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekosQ0FBQztJQUVTLFFBQVEsQ0FBQyxPQUFjLEVBQUUsTUFBVztRQUMxQyxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFdkIsa0RBQWtEO1FBQ2xELFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxLQUFLLEdBQUksUUFBUSxDQUFDLENBQUMsQ0FBWSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztZQUN6RSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7OzBHQW5FaUIsYUFBYTs4RkFBYixhQUFhLDJFQUZyQixFQUFFOzJGQUVNLGFBQWE7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLEVBQUU7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBVcmxTZWdtZW50R3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLy8gQ29yZVxyXG5pbXBvcnQgeyBBcHBTdGF0ZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9zZXJ2aWNlc1wiO1xyXG5cclxuaW1wb3J0IHsgUmVhY3RpdmVDb21wb25lbnQgfSBmcm9tIFwiLi9yZWFjdGl2ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRU1CRURERURfUk9VVEUsIFJPVVRFIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21wb25lbnQgZXh0ZW5kcyBSZWFjdGl2ZUNvbXBvbmVudCB7XHJcblxyXG4gICAgLypcclxuICAgICAqIEJsb2NjbyBkaSBpbmZvcm1hemlvbmkgc3VsbGEgcm91dGUgYXR0dWFsZVxyXG4gICAgICogICAgICBSb3V0ZTogL3BhZ2VzL21vZHVsZS9jb21wb25lbnQ7aWRNb2RlbD0xMjNcclxuICAgICAqICAgICAgXHJcbiAgICAgKiAgICAgIENvbXBsZXRlUGF0aDogL3BhZ2VzL21vZHVsZS9jb21wb25lbnRcclxuICAgICAqICAgICAgQ29tcG9uZW50UGF0aDogbW9kdWxlL2NvbXBvbmVudFxyXG4gICAgICogICAgICBCYXNlUGF0aDogL3BhZ2VzIChlcXVpdmFsZW50ZSBhIFJPVVRFIG8gRU1CRURERURfUk9VVEUpXHJcbiAgICAgKiAgICAgIFBhcmFtZXRlcnM6IHsgXCJpZE1vZGVsXCIgOiBcIjEyM1wiIH1cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIENvbXBsZXRlUGF0aDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIENvbXBvbmVudFBhdGg6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBCYXNlUGF0aDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIE5hdmlnYXRpb25QYXJhbWV0ZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSA9IG51bGw7XHJcblxyXG4gICAgLy8gSW5mb3JtYXppb25pIHByZXNlIGRhaSBkYXRpIGV4dHJhIGRlbGxhIHJvdXRlXHJcbiAgICBwcm90ZWN0ZWQgSW50ZXJuYWxOYXZpZ2F0aW9uOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIE5hdmlnYXRpb25UaXRsZTogc3RyaW5nO1xyXG5cclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyO1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICBsZXQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IGluamVjdG9yLmdldChBY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgICAgICAgbGV0IF9zdGF0ZTogQXBwU3RhdGUgPSBpbmplY3Rvci5nZXQoQXBwU3RhdGUpO1xyXG4gICAgICAgIHRoaXMuX3JvdXRlciA9IGluamVjdG9yLmdldChSb3V0ZXIpO1xyXG5cclxuICAgICAgICBfc3RhdGUucmVnaXN0ZXJOYXZpZ2F0aW9uSWZNZWFuaW5nZnVsKF9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdCk7XHJcblxyXG4gICAgICAgIC8vIFBhcmFtZXRyaSBpbiBtYW5pZXJhIFwiZGluYW1pY2FcIlxyXG4gICAgICAgIF9hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHQgPT4geyB0aGlzLk5hdmlnYXRpb25QYXJhbWV0ZXJzID0gdDsgfSlcclxuXHJcbiAgICAgICAgLy8gVHV0dG8gaWwgcmVzdG8gaW4gbWFuaWVyYSBzdGF0aWNhIHRhbnRvIG5vbiBjYW1iaWFcclxuICAgICAgICBsZXQgc2VncyA9ICg8VXJsU2VnbWVudEdyb3VwPig8YW55Pl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdCkuX3VybFNlZ21lbnQpLnNlZ21lbnRzO1xyXG4gICAgICAgIHRoaXMuQ29tcGxldGVQYXRoID0gXCIvXCIgKyBzZWdzLm1hcCh0ID0+IHQucGF0aCkuam9pbignLycpO1xyXG4gICAgICAgIHRoaXMuQ29tcG9uZW50UGF0aCA9IFwiL1wiICsgc2Vncy5maWx0ZXIoKHQsIGkpID0+IGkgIT0gMCkubWFwKHQgPT4gdC5wYXRoKS5qb2luKCcvJyk7XHJcbiAgICAgICAgdGhpcy5CYXNlUGF0aCA9IFwiL1wiICsgc2Vnc1swXS5wYXRoO1xyXG5cclxuICAgICAgICB0aGlzLkludGVybmFsTmF2aWdhdGlvbiA9IF9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhW1wiaW50ZXJuYWxOYXZpZ2F0aW9uXCJdIHx8IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuTmF2aWdhdGlvblRpdGxlID0gX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSB8fCBcIlwiO1xyXG5cclxuICAgICAgICAvLyBQZXIgaSBjb21wb25lbnRpIG5hdmlnYWJpbGkgbm9uIGVtYmVkZGF0aSDDqCBpbnV0aWxlIG1hbmRhcmUgaWwgbWVzc2FnZ2lvIGRpIG5hdmlnYXppb25lXHJcbiAgICAgICAgLy8gQ29zw6wgY29tZSBwZXIgcXVlbGxpIHBlciBjdWkgbm9uIGVzaXN0ZSB1biB0aXRvbG8gKGNpb8OoIGNvbXBvZW5udGkgdmVyc28gY3VpIG5vbiBzaSDDqCBuYXZpZ2F0byBkaXJldHRhbWVudGUpXHJcbiAgICAgICAgaWYoIV9zdGF0ZS5FbWJlZGRlZCB8fCAhdGhpcy5OYXZpZ2F0aW9uVGl0bGUpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgLy8gU2Ugc29ubyBkZW50cm8gdW4gaWZyYW1lIHJpc2FsZ28gYSBxdWVsbG8gZGkgbGl2ZWxsbyBwacO5IGFsdG8gaW4gYXNzb2x1dG9cclxuICAgICAgICBsZXQgdG1wV2luZG93ID0gPHsgcGFyZW50OiBhbnksIHBvc3RNZXNzYWdlOiBGdW5jdGlvbiB9PndpbmRvdztcclxuICAgICAgICAvLyBRdWFuZG8gaWwgcGFyZW50IG5vbiBlc2lzdGUgd2luZG93LiBwYXJlbnQgw6ggdW4gcmlmZXJpbWVudG8gYSBzZSBzdGVzc29cclxuICAgICAgICB3aGlsZSAodG1wV2luZG93LnBhcmVudCAhPSB0bXBXaW5kb3cpXHJcbiAgICAgICAgICAgIHRtcFdpbmRvdyA9IHRtcFdpbmRvdy5wYXJlbnQ7XHJcblxyXG4gICAgICAgIHRtcFdpbmRvdy5wb3N0TWVzc2FnZSh7IHR5cGU6IFwibmF2aWdhdGlvblwiLCB1cmw6IHRoaXMuQ29tcGxldGVQYXRoLCBpbnRlcm5hbE5hdmlnYXRpb246IHRoaXMuSW50ZXJuYWxOYXZpZ2F0aW9uLCB0aXRsZTogdGhpcy5OYXZpZ2F0aW9uVGl0bGUgfSwgXCIqXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBuYXZpZ2F0ZShjb21tYW5kOiBhbnlbXSwgZXh0cmFzOiBhbnkpIHtcclxuICAgICAgICBsZXQgY29tbWFuZHMgPSBjb21tYW5kO1xyXG5cclxuICAgICAgICAvLyBGaXggZGVsbGEgcGF0aCBlc2F0dGFtZW50ZSBjb21lIGluIGVzUm91dGVyTGlua1xyXG4gICAgICAgIGNvbW1hbmRzID0gQXJyYXkuaXNBcnJheShjb21tYW5kcykgPyBjb21tYW5kcyA6IFtjb21tYW5kc107XHJcbiAgICAgICAgbGV0IHJvdXRlID0gKGNvbW1hbmRzWzBdIGFzIHN0cmluZyk7XHJcbiAgICAgICAgaWYgKCFyb3V0ZS5zdGFydHNXaXRoKFwiL1wiICsgRU1CRURERURfUk9VVEUpICYmICFyb3V0ZS5zdGFydHNXaXRoKFwiL1wiICsgUk9VVEUpKVxyXG4gICAgICAgICAgICBjb21tYW5kc1swXSA9IHRoaXMuQmFzZVBhdGggKyBjb21tYW5kc1swXTtcclxuXHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKGNvbW1hbmQsIGV4dHJhcyk7XHJcbiAgICB9XHJcbn0iXX0=
|