angular-toolbox 1.2.0 → 1.2.2
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/README.md +1 -1
- package/esm2022/lib/model/service/ui/window/abstract-window.service.mjs +6 -1
- package/esm2022/lib/model/service/ui/window/window.service.mjs +15 -9
- package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +3 -3
- package/fesm2022/angular-toolbox.mjs +20 -10
- package/fesm2022/angular-toolbox.mjs.map +1 -1
- package/lib/model/service/ui/window/abstract-window.service.d.ts +5 -1
- package/lib/model/service/ui/window/window.service.d.ts +0 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A library that provides useful tools for Angular apps development.
|
|
4
4
|
|
|
5
|
-
[]()
|
|
6
6
|
|
|
7
7
|
## License
|
|
8
8
|
|
|
@@ -5,12 +5,17 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
6
|
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
7
|
*/
|
|
8
|
+
import { EventEmitter } from "@angular/core";
|
|
8
9
|
/**
|
|
9
10
|
* The abstract class that must be implemented by services that provide
|
|
10
11
|
* functionality to display Angular component within a new browser window.
|
|
11
12
|
*/
|
|
12
13
|
export class AbstractWindowService {
|
|
13
14
|
constructor() {
|
|
15
|
+
/**
|
|
16
|
+
* An event triggered each time a window is closed.
|
|
17
|
+
*/
|
|
18
|
+
this.windowClose = new EventEmitter();
|
|
14
19
|
/**
|
|
15
20
|
* @private
|
|
16
21
|
*/
|
|
@@ -41,4 +46,4 @@ export class AbstractWindowService {
|
|
|
41
46
|
this.windowRefMap.clear();
|
|
42
47
|
}
|
|
43
48
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtd2luZG93LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9zZXJ2aWNlL3VpL3dpbmRvdy9hYnN0cmFjdC13aW5kb3cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBSW5EOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IscUJBQXFCO0lBQTNDO1FBRUU7O1dBRUc7UUFDYSxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXJFOztXQUVHO1FBQ08saUJBQVksR0FBbUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQXFEckUsQ0FBQztJQW5EQzs7Ozs7O09BTUc7SUFDSSxHQUFHLENBQUMsSUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTTtRQUNYLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQTBCRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFV1aWQgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbFwiO1xyXG5pbXBvcnQgeyBEZXN0cm95YWJsZSwgV2luZG93UmVmIH0gZnJvbSBcIi4uLy4uLy4uL2J1c2luZXNzXCI7XHJcblxyXG4vKipcclxuICogVGhlIGFic3RyYWN0IGNsYXNzIHRoYXQgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzZXJ2aWNlcyB0aGF0IHByb3ZpZGVcclxuICogZnVuY3Rpb25hbGl0eSB0byBkaXNwbGF5IEFuZ3VsYXIgY29tcG9uZW50IHdpdGhpbiBhIG5ldyBicm93c2VyIHdpbmRvdy5cclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFdpbmRvd1NlcnZpY2UgaW1wbGVtZW50cyBEZXN0cm95YWJsZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuIGV2ZW50IHRyaWdnZXJlZCBlYWNoIHRpbWUgYSB3aW5kb3cgaXMgY2xvc2VkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB3aW5kb3dDbG9zZTogRXZlbnRFbWl0dGVyPFV1aWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB3aW5kb3dSZWZNYXA6IE1hcDxVdWlkLCBXaW5kb3dSZWY8YW55LCBhbnk+PiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgd2luZG93IHJlZmVyZW5jZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgYFV1aWRgIG9iamVjdC5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gdXVpZCBUaGUgYFV1aWRgIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIHdpbmRvdyByZWZlcmVuY2UgdG8gZ2V0LlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIEEgYFdpbmRvd1JlZmAgb2JqZWN0LCBvciBgdW5kZWZpbmVkYCBpZiB0aGUgcmVmZXJlbmNlIGNhbm5vdCBiZSBmb3VuZC5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0KHV1aWQ6IFV1aWQpOiBXaW5kb3dSZWY8YW55LCBhbnk+IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLndpbmRvd1JlZk1hcC5nZXQodXVpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGFsbCB0aGUgd2luZG93IHJlZmVyZW5jZSBvYmplY3RzIGNyZWF0ZWQgYnkgdGhlIHNlcnZpY2UuXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgQSBsaXN0IG9mIGBXaW5kb3dSZWZgIG9iamVjdHMgY3JlYXRlZCBieSB0aGlzIHNlcnZpY2UuXHJcbiAgICovXHJcbiAgcHVibGljIGdldEFsbCgpOiBXaW5kb3dSZWY8YW55LCBhbnk+W10ge1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy53aW5kb3dSZWZNYXAudmFsdWVzKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93UmVmTWFwLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVucyBhIG5ldyBicm93c2VyIHdpbmRvdyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcGVydGllcyBhbmQgYXR0YWNoZXMgYW4gaW5zdGFuY2Ugb2YgXHJcbiAgICogdGhlIHNwZWNpZmllZCBjb21wb25lbnQgaW50byB0aGUgd2luZG93IGNvbnRhaW5lci5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gY29tcG9uZW50IFRoZSBjb21wb25lbnQgdG8gYXR0YWNoIGluIHRoZSBuZXcgd2luZG93LlxyXG4gICAqIEBwYXJhbSBpbml0IFRoZSBjb25maWcgdXNlZCB0byBpbml0aWFsaXplIHRoZSB3aW5kb3cuXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgQSBgVXVpZGAgb2JqZWN0LlxyXG4gICAqL1xyXG4gIGFic3RyYWN0IG9wZW48VD4oY29tcG9uZW50OiBUeXBlPFQ+LCBpbml0PzogYW55KTogVXVpZDtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHRoZSB3aW5kb3cgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgYFV1aWRgIG9iamVjdC5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gdXVpZCBUaGUgYFV1aWRgIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIHdpbmRvdyB0byBjbG9zZS5cclxuICAgKiBcclxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgd2hldGhlciB0aGUgd2luZG93IGV4aXN0cyBhbmQgaXMgY2xvc2VkOyBgZmFsc2VgIG90aGVyd2lzZS5cclxuICAgKi9cclxuICBhYnN0cmFjdCBjbG9zZSh1dWlkOiBVdWlkKTogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIGFsbCBvcGVuZWQgd2luZG93cy5cclxuICAgKi9cclxuICBhYnN0cmFjdCBjbG9zZUFsbCgpOiB2b2lkO1xyXG59Il19
|
|
@@ -12,6 +12,10 @@ import { BrowserWindowFeaturesBuilder } from "../../../../util/window/window-fea
|
|
|
12
12
|
import { WindowHeaderTagUtil } from "../../../../util/window/window-header-tag-util";
|
|
13
13
|
import { AbstractWindowService } from "./abstract-window.service";
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
const EVT_TYPE = "beforeunload";
|
|
15
19
|
/**
|
|
16
20
|
* Provides functionality to display Angular component within a new browser window.
|
|
17
21
|
*/
|
|
@@ -22,7 +26,11 @@ export class WindowService extends AbstractWindowService {
|
|
|
22
26
|
constructor(_appRef) {
|
|
23
27
|
super();
|
|
24
28
|
this._appRef = _appRef;
|
|
25
|
-
|
|
29
|
+
const beforeUnloadHandler = () => {
|
|
30
|
+
this.ngOnDestroy();
|
|
31
|
+
window.removeEventListener(EVT_TYPE, beforeUnloadHandler);
|
|
32
|
+
};
|
|
33
|
+
window.addEventListener(EVT_TYPE, beforeUnloadHandler);
|
|
26
34
|
}
|
|
27
35
|
/**
|
|
28
36
|
* @inheritdoc
|
|
@@ -38,6 +46,11 @@ export class WindowService extends AbstractWindowService {
|
|
|
38
46
|
window: win,
|
|
39
47
|
componentRef: componentRef
|
|
40
48
|
};
|
|
49
|
+
const unloadListener = () => {
|
|
50
|
+
this.windowClose.emit(id);
|
|
51
|
+
win.removeEventListener(EVT_TYPE, unloadListener);
|
|
52
|
+
};
|
|
53
|
+
win.addEventListener(EVT_TYPE, unloadListener);
|
|
41
54
|
this.windowRefMap.set(id, winRef);
|
|
42
55
|
return id;
|
|
43
56
|
}
|
|
@@ -70,13 +83,6 @@ export class WindowService extends AbstractWindowService {
|
|
|
70
83
|
this.closeAll();
|
|
71
84
|
this.destroy();
|
|
72
85
|
}
|
|
73
|
-
/**
|
|
74
|
-
* @private
|
|
75
|
-
*/
|
|
76
|
-
beforUnloadHandler() {
|
|
77
|
-
this.ngOnDestroy();
|
|
78
|
-
window.removeEventListener("beforeunload", () => this.beforUnloadHandler());
|
|
79
|
-
}
|
|
80
86
|
/**
|
|
81
87
|
* @private
|
|
82
88
|
*/
|
|
@@ -94,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
94
100
|
providedIn: 'root'
|
|
95
101
|
}]
|
|
96
102
|
}], ctorParameters: () => [{ type: i0.ApplicationRef }] });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9zZXJ2aWNlL3VpL3dpbmRvdy93aW5kb3cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQWdDLFVBQVUsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBT2xFOztHQUVHO0FBQ0gsTUFBTSxRQUFRLEdBQVcsY0FBYyxDQUFDO0FBRXhDOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWMsU0FBUSxxQkFBcUI7SUFFdEQ7O09BRUc7SUFDSCxZQUFvQixPQUF1QjtRQUN6QyxLQUFLLEVBQUUsQ0FBQztRQURVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBRXpDLE1BQU0sbUJBQW1CLEdBQWdCLEdBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJLENBQUksU0FBa0IsRUFBRSxJQUFpQjtRQUNsRCxNQUFNLEVBQUUsR0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsTUFBTSxRQUFRLEdBQVcsNEJBQTRCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sR0FBRyxHQUFnQixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBZ0IsQ0FBQztRQUNsRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxZQUFZLEdBQW9CLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNGLE1BQU0sTUFBTSxHQUF5QjtZQUNuQyxNQUFNLEVBQUUsR0FBYTtZQUNyQixZQUFZLEVBQUUsWUFBWTtTQUMzQixDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQWdCLEdBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxQixHQUFHLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQztRQUNGLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQVU7UUFDckIsTUFBTSxNQUFNLEdBQXVDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixNQUFNLENBQUMsTUFBTSxHQUFHLElBQVcsQ0FBQztRQUM1QixNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxZQUFtQixDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE1BQU0sSUFBSSxHQUEyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSTtZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVMsQ0FBQyxJQUFpQjtRQUNqQyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNuRCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQzs4R0F6RVUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFV1aWQgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbFwiO1xyXG5pbXBvcnQgeyBXaW5kb3dJbml0LCBXaW5kb3dSZWYgfSBmcm9tIFwiLi4vLi4vLi4vYnVzaW5lc3NcIjtcclxuaW1wb3J0IHsgV2luZG93VGFyZ2V0IH0gZnJvbSBcIi4uLy4uLy4uL2J1c2luZXNzL3VpL3dpbmRvdy93aW5kb3ctdGFyZ2V0XCI7XHJcbmltcG9ydCB7IEJyb3dzZXJXaW5kb3dGZWF0dXJlc0J1aWxkZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbC93aW5kb3cvd2luZG93LWZlYXR1cmVzLWJ1aWxkZXJcIjtcclxuaW1wb3J0IHsgV2luZG93SGVhZGVyVGFnVXRpbCB9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlsL3dpbmRvdy93aW5kb3ctaGVhZGVyLXRhZy11dGlsXCI7XHJcbmltcG9ydCB7IEFic3RyYWN0V2luZG93U2VydmljZSB9IGZyb20gXCIuL2Fic3RyYWN0LXdpbmRvdy5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbnR5cGUgRXZ0TGlzdGVuZXIgPSAodGhpczogV2luZG93LCBldjogQmVmb3JlVW5sb2FkRXZlbnQpID0+IGFueTtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgRVZUX1RZUEU6IHN0cmluZyA9IFwiYmVmb3JldW5sb2FkXCI7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgZnVuY3Rpb25hbGl0eSB0byBkaXNwbGF5IEFuZ3VsYXIgY29tcG9uZW50IHdpdGhpbiBhIG5ldyBicm93c2VyIHdpbmRvdy5cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdpbmRvd1NlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdFdpbmRvd1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FwcFJlZjogQXBwbGljYXRpb25SZWYpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBjb25zdCBiZWZvcmVVbmxvYWRIYW5kbGVyOiBFdnRMaXN0ZW5lciA9ICgpPT4ge1xyXG4gICAgICB0aGlzLm5nT25EZXN0cm95KCk7XHJcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKEVWVF9UWVBFLCBiZWZvcmVVbmxvYWRIYW5kbGVyKTtcclxuICAgIH07XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihFVlRfVFlQRSwgYmVmb3JlVW5sb2FkSGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaW5oZXJpdGRvY1xyXG4gICAqL1xyXG4gIHB1YmxpYyBvcGVuPFQ+KGNvbXBvbmVudDogVHlwZTxUPiwgaW5pdD86IFdpbmRvd0luaXQpOiBVdWlkIHtcclxuICAgIGNvbnN0IGlkOiBVdWlkID0gVXVpZC5idWlsZCgpO1xyXG4gICAgY29uc3QgZmVhdHVyZXM6IHN0cmluZyA9IEJyb3dzZXJXaW5kb3dGZWF0dXJlc0J1aWxkZXIuYnVpbGQoaW5pdCk7XHJcbiAgICBjb25zdCB3aW46IFdpbmRvd1Byb3h5ID0gd2luZG93Lm9wZW4oRU1QVFlfU1RSSU5HLCB0aGlzLmdldFRhcmdldChpbml0KSwgZmVhdHVyZXMpIGFzIFdpbmRvd1Byb3h5O1xyXG4gICAgV2luZG93SGVhZGVyVGFnVXRpbC5zZXRUaXRsZSh3aW4sIGluaXQpO1xyXG4gICAgV2luZG93SGVhZGVyVGFnVXRpbC5zZXRJY29uKHdpbiwgaW5pdCk7XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiA9IHRoaXMuX2FwcFJlZi5ib290c3RyYXAoY29tcG9uZW50LCB3aW4uZG9jdW1lbnQuYm9keSk7XHJcbiAgICBjb25zdCB3aW5SZWY6IFdpbmRvd1JlZjxULCBXaW5kb3c+ID0ge1xyXG4gICAgICB3aW5kb3c6IHdpbiBhcyBXaW5kb3csXHJcbiAgICAgIGNvbXBvbmVudFJlZjogY29tcG9uZW50UmVmXHJcbiAgICB9O1xyXG4gICAgY29uc3QgdW5sb2FkTGlzdGVuZXI6IEV2dExpc3RlbmVyID0gKCk9PiB7XHJcbiAgICAgIHRoaXMud2luZG93Q2xvc2UuZW1pdChpZCk7XHJcbiAgICAgIHdpbi5yZW1vdmVFdmVudExpc3RlbmVyKEVWVF9UWVBFLCB1bmxvYWRMaXN0ZW5lcik7XHJcbiAgICB9O1xyXG4gICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoRVZUX1RZUEUsIHVubG9hZExpc3RlbmVyKTtcclxuICAgIHRoaXMud2luZG93UmVmTWFwLnNldChpZCwgd2luUmVmKTtcclxuICAgIHJldHVybiBpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpbmhlcml0ZG9jXHJcbiAgICovXHJcbiAgcHVibGljIGNsb3NlKHV1aWQ6IFV1aWQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHdpblJlZjogV2luZG93UmVmPGFueSwgV2luZG93PiB8IHVuZGVmaW5lZCA9IHRoaXMud2luZG93UmVmTWFwLmdldCh1dWlkKTtcclxuICAgIGlmICghd2luUmVmKSByZXR1cm4gZmFsc2U7XHJcbiAgICB0aGlzLndpbmRvd1JlZk1hcC5kZWxldGUodXVpZCk7XHJcbiAgICB3aW5SZWYud2luZG93LmNsb3NlKCk7XHJcbiAgICB3aW5SZWYud2luZG93ID0gbnVsbCBhcyBhbnk7XHJcbiAgICB3aW5SZWYuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgIHdpblJlZi5jb21wb25lbnRSZWYgYXMgYW55O1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaW5oZXJpdGRvY1xyXG4gICAqL1xyXG4gIHB1YmxpYyBjbG9zZUFsbCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGtleXM6IEl0ZXJhYmxlSXRlcmF0b3I8VXVpZD4gPSB0aGlzLndpbmRvd1JlZk1hcC5rZXlzKCk7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB0aGlzLmNsb3NlKGtleSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvc2VBbGwoKTtcclxuICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGdldFRhcmdldChpbml0PzogV2luZG93SW5pdCk6IFdpbmRvd1RhcmdldCB7XHJcbiAgICBpZiAoaW5pdCkgcmV0dXJuIGluaXQudGFyZ2V0IHx8IFdpbmRvd1RhcmdldC5CTEFOSztcclxuICAgIHJldHVybiBXaW5kb3dUYXJnZXQuQkxBTks7XHJcbiAgfVxyXG59Il19
|
|
@@ -15,8 +15,8 @@ import * as i0 from "@angular/core";
|
|
|
15
15
|
const LAYERS_VERSION_CONFIG = {
|
|
16
16
|
major: 1,
|
|
17
17
|
minor: 2,
|
|
18
|
-
patch:
|
|
19
|
-
buildTimestamp:
|
|
18
|
+
patch: 2,
|
|
19
|
+
buildTimestamp: 1725951428350
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
22
|
* The public service that exposes the current version of the Angular Toolbox library.
|
|
@@ -34,4 +34,4 @@ export class AngularToolboxVersionService extends AbstractVersionManager {
|
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxVersionService, decorators: [{
|
|
35
35
|
type: Injectable
|
|
36
36
|
}], ctorParameters: () => [] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10b29sYm94LXZlcnNpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL21vZGVsL3NlcnZpY2UvdmVyc2lvbi9hbmd1bGFyLXRvb2xib3gtdmVyc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd2RDs7O0dBR0c7QUFDSCxNQUFNLHFCQUFxQixHQUFrQjtJQUMzQyxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxDQUFDO0lBQ1IsS0FBSyxFQUFFLENBQUM7SUFDUixjQUFjLEVBQUUsYUFBYTtDQUM5QixDQUFDO0FBRUY7O0dBRUc7QUFFSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsc0JBQXNCO0lBRXRFOztPQUVHO0lBQ0g7UUFDRSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQVBVLDRCQUE0QjtrSEFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdFZlcnNpb25NYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XHJcbmltcG9ydCB7IFZlcnNpb25Db25maWcgfSBmcm9tICcuLi8uLi9idXNpbmVzcyc7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgQW5ndWxhciBUb29sYm94IGxpYnJhcnkuXHJcbiAqL1xyXG5jb25zdCBMQVlFUlNfVkVSU0lPTl9DT05GSUc6IFZlcnNpb25Db25maWcgPSB7XHJcbiAgbWFqb3I6IDEsXHJcbiAgbWlub3I6IDIsXHJcbiAgcGF0Y2g6IDIsXHJcbiAgYnVpbGRUaW1lc3RhbXA6IDE3MjU5NTE0MjgzNTBcclxufTtcclxuXHJcbi8qKlxyXG4gKiBUaGUgcHVibGljIHNlcnZpY2UgdGhhdCBleHBvc2VzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIEFuZ3VsYXIgVG9vbGJveCBsaWJyYXJ5LlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQW5ndWxhclRvb2xib3hWZXJzaW9uU2VydmljZSBleHRlbmRzIEFic3RyYWN0VmVyc2lvbk1hbmFnZXIge1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoTEFZRVJTX1ZFUlNJT05fQ09ORklHKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -544,8 +544,8 @@ class AbstractVersionManager {
|
|
|
544
544
|
const LAYERS_VERSION_CONFIG = {
|
|
545
545
|
major: 1,
|
|
546
546
|
minor: 2,
|
|
547
|
-
patch:
|
|
548
|
-
buildTimestamp:
|
|
547
|
+
patch: 2,
|
|
548
|
+
buildTimestamp: 1725951428350
|
|
549
549
|
};
|
|
550
550
|
/**
|
|
551
551
|
* The public service that exposes the current version of the Angular Toolbox library.
|
|
@@ -2175,6 +2175,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
2175
2175
|
*/
|
|
2176
2176
|
class AbstractWindowService {
|
|
2177
2177
|
constructor() {
|
|
2178
|
+
/**
|
|
2179
|
+
* An event triggered each time a window is closed.
|
|
2180
|
+
*/
|
|
2181
|
+
this.windowClose = new EventEmitter();
|
|
2178
2182
|
/**
|
|
2179
2183
|
* @private
|
|
2180
2184
|
*/
|
|
@@ -2332,6 +2336,10 @@ class WindowHeaderTagUtil {
|
|
|
2332
2336
|
* Use of this source code is governed by an MIT-style license that can be found in
|
|
2333
2337
|
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
2334
2338
|
*/
|
|
2339
|
+
/**
|
|
2340
|
+
* @private
|
|
2341
|
+
*/
|
|
2342
|
+
const EVT_TYPE = "beforeunload";
|
|
2335
2343
|
/**
|
|
2336
2344
|
* Provides functionality to display Angular component within a new browser window.
|
|
2337
2345
|
*/
|
|
@@ -2342,7 +2350,11 @@ class WindowService extends AbstractWindowService {
|
|
|
2342
2350
|
constructor(_appRef) {
|
|
2343
2351
|
super();
|
|
2344
2352
|
this._appRef = _appRef;
|
|
2345
|
-
|
|
2353
|
+
const beforeUnloadHandler = () => {
|
|
2354
|
+
this.ngOnDestroy();
|
|
2355
|
+
window.removeEventListener(EVT_TYPE, beforeUnloadHandler);
|
|
2356
|
+
};
|
|
2357
|
+
window.addEventListener(EVT_TYPE, beforeUnloadHandler);
|
|
2346
2358
|
}
|
|
2347
2359
|
/**
|
|
2348
2360
|
* @inheritdoc
|
|
@@ -2358,6 +2370,11 @@ class WindowService extends AbstractWindowService {
|
|
|
2358
2370
|
window: win,
|
|
2359
2371
|
componentRef: componentRef
|
|
2360
2372
|
};
|
|
2373
|
+
const unloadListener = () => {
|
|
2374
|
+
this.windowClose.emit(id);
|
|
2375
|
+
win.removeEventListener(EVT_TYPE, unloadListener);
|
|
2376
|
+
};
|
|
2377
|
+
win.addEventListener(EVT_TYPE, unloadListener);
|
|
2361
2378
|
this.windowRefMap.set(id, winRef);
|
|
2362
2379
|
return id;
|
|
2363
2380
|
}
|
|
@@ -2390,13 +2407,6 @@ class WindowService extends AbstractWindowService {
|
|
|
2390
2407
|
this.closeAll();
|
|
2391
2408
|
this.destroy();
|
|
2392
2409
|
}
|
|
2393
|
-
/**
|
|
2394
|
-
* @private
|
|
2395
|
-
*/
|
|
2396
|
-
beforUnloadHandler() {
|
|
2397
|
-
this.ngOnDestroy();
|
|
2398
|
-
window.removeEventListener("beforeunload", () => this.beforUnloadHandler());
|
|
2399
|
-
}
|
|
2400
2410
|
/**
|
|
2401
2411
|
* @private
|
|
2402
2412
|
*/
|