@ngutil/floating 0.0.48 → 0.0.50
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/esm2022/floating/floating-ref.mjs +25 -21
- package/esm2022/floating/traits/animation.mjs +4 -4
- package/esm2022/floating/traits/backdrop.mjs +7 -13
- package/esm2022/floating/traits/dim-contraint.mjs +3 -3
- package/esm2022/floating/traits/focus.mjs +7 -9
- package/esm2022/floating/traits/position.mjs +3 -3
- package/esm2022/layer/backdrop-ref.mjs +9 -9
- package/esm2022/layer/child-ref.mjs +24 -12
- package/esm2022/layer/container-ref.mjs +3 -3
- package/esm2022/layer/index.mjs +2 -1
- package/esm2022/layer/layer.service.mjs +23 -2
- package/fesm2022/ngutil-floating.mjs +90 -63
- package/fesm2022/ngutil-floating.mjs.map +1 -1
- package/floating/floating-ref.d.ts +8 -5
- package/layer/backdrop-ref.d.ts +1 -2
- package/layer/child-ref.d.ts +13 -5
- package/layer/container-ref.d.ts +2 -2
- package/layer/index.d.ts +1 -0
- package/package.json +4 -4
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { ElementRef } from "@angular/core";
|
|
2
|
-
import { of } from "rxjs";
|
|
3
|
-
import {
|
|
2
|
+
import { filter, of, share, take } from "rxjs";
|
|
3
|
+
import { Lifecycle } from "@ngutil/common";
|
|
4
|
+
export var AlwaysOnTop;
|
|
5
|
+
(function (AlwaysOnTop) {
|
|
6
|
+
AlwaysOnTop[AlwaysOnTop["None"] = 0] = "None";
|
|
7
|
+
AlwaysOnTop[AlwaysOnTop["Normal"] = 1] = "Normal";
|
|
8
|
+
AlwaysOnTop[AlwaysOnTop["Modal"] = 2] = "Modal";
|
|
9
|
+
AlwaysOnTop[AlwaysOnTop["Toast"] = 3] = "Toast";
|
|
10
|
+
AlwaysOnTop[AlwaysOnTop["UAC"] = 100] = "UAC";
|
|
11
|
+
})(AlwaysOnTop || (AlwaysOnTop = {}));
|
|
4
12
|
// TODO: disposing, disposed
|
|
5
13
|
export class ChildRef extends ElementRef {
|
|
6
14
|
/**
|
|
@@ -15,30 +23,34 @@ export class ChildRef extends ElementRef {
|
|
|
15
23
|
get zIndex() {
|
|
16
24
|
return this._zIndex;
|
|
17
25
|
}
|
|
18
|
-
constructor(nativeElement) {
|
|
26
|
+
constructor(nativeElement, alwaysOnTop = AlwaysOnTop.None) {
|
|
19
27
|
super(nativeElement);
|
|
20
|
-
this.
|
|
28
|
+
this.alwaysOnTop = alwaysOnTop;
|
|
29
|
+
this.state = new Lifecycle({
|
|
21
30
|
showing: {},
|
|
22
31
|
shown: {},
|
|
23
32
|
disposing: { cancellable: false },
|
|
24
33
|
disposed: { cancellable: false, order: "sequential" }
|
|
25
34
|
});
|
|
26
35
|
this._zIndex = -1;
|
|
27
|
-
this.state.
|
|
36
|
+
this.disposed$ = this.state.current$.pipe(filter(state => state === "disposed"), take(1), share());
|
|
37
|
+
this.state.on("disposed", () => {
|
|
38
|
+
this.nativeElement.parentElement?.removeChild(this.nativeElement);
|
|
39
|
+
this.state.destroy();
|
|
40
|
+
delete this.state;
|
|
41
|
+
});
|
|
28
42
|
// this.state.current$.subscribe(state => {
|
|
29
43
|
// console.log(this, state)
|
|
30
44
|
// })
|
|
45
|
+
// this.state.status$.subscribe(status => {
|
|
46
|
+
// console.log(this.nativeElement, status)
|
|
47
|
+
// })
|
|
31
48
|
}
|
|
32
49
|
dispose() {
|
|
33
50
|
if (this.state == null) {
|
|
34
|
-
return of(
|
|
51
|
+
return of();
|
|
35
52
|
}
|
|
36
53
|
return this.state.run(["disposing", "disposed"]);
|
|
37
54
|
}
|
|
38
|
-
destroy() {
|
|
39
|
-
this.nativeElement.parentElement?.removeChild(this.nativeElement);
|
|
40
|
-
this.state.destroy();
|
|
41
|
-
delete this.state;
|
|
42
|
-
}
|
|
43
55
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2xheWVyL2NoaWxkLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLE9BQU8sRUFBRSxNQUFNLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBSTFDLE1BQU0sQ0FBTixJQUFZLFdBTVg7QUFORCxXQUFZLFdBQVc7SUFDbkIsNkNBQVEsQ0FBQTtJQUNSLGlEQUFVLENBQUE7SUFDViwrQ0FBUyxDQUFBO0lBQ1QsK0NBQVMsQ0FBQTtJQUNULDZDQUFTLENBQUE7QUFDYixDQUFDLEVBTlcsV0FBVyxLQUFYLFdBQVcsUUFNdEI7QUFFRCw0QkFBNEI7QUFFNUIsTUFBTSxPQUFnQixRQUE4QyxTQUFRLFVBQWE7SUFRckY7O09BRUc7SUFDSCxJQUFJLE1BQU0sQ0FBQyxHQUFXO1FBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQTtZQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2pELENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3ZCLENBQUM7SUFTRCxZQUNJLGFBQWdCLEVBQ0EsY0FBMkIsV0FBVyxDQUFDLElBQUk7UUFFM0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBRkosZ0JBQVcsR0FBWCxXQUFXLENBQWdDO1FBN0J0RCxVQUFLLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDM0IsT0FBTyxFQUFFLEVBQUU7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFDakMsUUFBUSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO1NBQ3hELENBQUMsQ0FBQTtRQWNNLFlBQU8sR0FBVyxDQUFDLENBQUMsQ0FBQTtRQUVULGNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ25ELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsRUFDckMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEtBQUssRUFBRSxDQUNWLENBQUE7UUFPRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7WUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtZQUNwQixPQUFRLElBQVksQ0FBQyxLQUFLLENBQUE7UUFDOUIsQ0FBQyxDQUFDLENBQUE7UUFFRiwyQ0FBMkM7UUFDM0MsK0JBQStCO1FBQy9CLEtBQUs7UUFDTCwyQ0FBMkM7UUFDM0MsOENBQThDO1FBQzlDLEtBQUs7SUFDVCxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQixPQUFPLEVBQUUsRUFBRSxDQUFBO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyBmaWx0ZXIsIE9ic2VydmFibGUsIG9mLCBzaGFyZSwgdGFrZSB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgTGlmZWN5Y2xlIH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuZXhwb3J0IHR5cGUgRGlzcG9zZUhhbmRsZXI8VD4gPSAocmVmOiBUKSA9PiBPYnNlcnZhYmxlPHZvaWQ+XG5cbmV4cG9ydCBlbnVtIEFsd2F5c09uVG9wIHtcbiAgICBOb25lID0gMCxcbiAgICBOb3JtYWwgPSAxLFxuICAgIE1vZGFsID0gMixcbiAgICBUb2FzdCA9IDMsXG4gICAgVUFDID0gMTAwXG59XG5cbi8vIFRPRE86IGRpc3Bvc2luZywgZGlzcG9zZWRcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENoaWxkUmVmPFQgZXh0ZW5kcyBIVE1MRWxlbWVudCA9IEhUTUxFbGVtZW50PiBleHRlbmRzIEVsZW1lbnRSZWY8VD4ge1xuICAgIHJlYWRvbmx5IHN0YXRlID0gbmV3IExpZmVjeWNsZSh7XG4gICAgICAgIHNob3dpbmc6IHt9LFxuICAgICAgICBzaG93bjoge30sXG4gICAgICAgIGRpc3Bvc2luZzogeyBjYW5jZWxsYWJsZTogZmFsc2UgfSxcbiAgICAgICAgZGlzcG9zZWQ6IHsgY2FuY2VsbGFibGU6IGZhbHNlLCBvcmRlcjogXCJzZXF1ZW50aWFsXCIgfVxuICAgIH0pXG5cbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBzZXQgekluZGV4KHZhbDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLl96SW5kZXggIT09IHZhbCkge1xuICAgICAgICAgICAgdGhpcy5fekluZGV4ID0gdmFsXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc3R5bGUuekluZGV4ID0gU3RyaW5nKHZhbClcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgekluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl96SW5kZXhcbiAgICB9XG4gICAgcHJpdmF0ZSBfekluZGV4OiBudW1iZXIgPSAtMVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc3Bvc2VkJCA9IHRoaXMuc3RhdGUuY3VycmVudCQucGlwZShcbiAgICAgICAgZmlsdGVyKHN0YXRlID0+IHN0YXRlID09PSBcImRpc3Bvc2VkXCIpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzaGFyZSgpXG4gICAgKVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIG5hdGl2ZUVsZW1lbnQ6IFQsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBhbHdheXNPblRvcDogQWx3YXlzT25Ub3AgPSBBbHdheXNPblRvcC5Ob25lXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKG5hdGl2ZUVsZW1lbnQpXG4gICAgICAgIHRoaXMuc3RhdGUub24oXCJkaXNwb3NlZFwiLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8ucmVtb3ZlQ2hpbGQodGhpcy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5kZXN0cm95KClcbiAgICAgICAgICAgIGRlbGV0ZSAodGhpcyBhcyBhbnkpLnN0YXRlXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gdGhpcy5zdGF0ZS5jdXJyZW50JC5zdWJzY3JpYmUoc3RhdGUgPT4ge1xuICAgICAgICAvLyAgICAgY29uc29sZS5sb2codGhpcywgc3RhdGUpXG4gICAgICAgIC8vIH0pXG4gICAgICAgIC8vIHRoaXMuc3RhdGUuc3RhdHVzJC5zdWJzY3JpYmUoc3RhdHVzID0+IHtcbiAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKHRoaXMubmF0aXZlRWxlbWVudCwgc3RhdHVzKVxuICAgICAgICAvLyB9KVxuICAgIH1cblxuICAgIGRpc3Bvc2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBvZigpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUucnVuKFtcImRpc3Bvc2luZ1wiLCBcImRpc3Bvc2VkXCJdKVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Injector } from "@angular/core";
|
|
2
|
-
import { ChildRef } from "./child-ref";
|
|
2
|
+
import { AlwaysOnTop, ChildRef } from "./child-ref";
|
|
3
3
|
export class ContainerRef extends ChildRef {
|
|
4
4
|
constructor(options) {
|
|
5
|
-
super(createElement(options));
|
|
5
|
+
super(createElement(options), options.alwaysOnTop || AlwaysOnTop.None);
|
|
6
6
|
this.options = options;
|
|
7
7
|
this.injectorName = "ContainerRef";
|
|
8
8
|
const providers = options.providers || [];
|
|
@@ -38,4 +38,4 @@ function createElement(options) {
|
|
|
38
38
|
}
|
|
39
39
|
return div;
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9sYXllci9jb250YWluZXItcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQVksTUFBTSxlQUFlLENBQUE7QUFFbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFXbkQsTUFBTSxPQUFPLFlBQWEsU0FBUSxRQUFRO0lBS3RDLFlBQTRCLE9BQXlCO1FBQ2pELEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7UUFEOUMsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFGM0MsaUJBQVksR0FBRyxjQUFjLENBQUE7UUFLbkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUE7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQzVCLFNBQVMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDO1lBQ2pELE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUTtZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDMUIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUMzQixPQUFRLElBQVksQ0FBQyxPQUFPLENBQUE7WUFDNUIsT0FBUSxJQUFZLENBQUMsUUFBUSxDQUFBO1FBQ2pDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVTLFlBQVk7UUFDbEIsT0FBTztZQUNILEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQzVDLENBQUE7SUFDTCxDQUFDO0NBQ0o7QUFFRCxTQUFTLGFBQWEsQ0FBQyxPQUF5QjtJQUM1QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQTtJQUMvQixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUE7SUFDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFBO0lBQ3BCLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQTtJQUMvQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUE7SUFDakMsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFBO0lBQ2xDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtJQUNoQyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUE7SUFFcEMsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFBO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBQcm92aWRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgQWx3YXlzT25Ub3AsIENoaWxkUmVmIH0gZnJvbSBcIi4vY2hpbGQtcmVmXCJcblxuZXhwb3J0IGludGVyZmFjZSBDb250YWluZXJPcHRpb25zIHtcbiAgICBhbHdheXNPblRvcD86IEFsd2F5c09uVG9wXG4gICAgZWxldmF0aW9uPzogbnVtYmVyXG4gICAgY2xhc3Nlcz86IHN0cmluZ1tdXG4gICAgYXR0cmlidXRlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgICBpbmplY3Rvcj86IEluamVjdG9yXG4gICAgcHJvdmlkZXJzPzogUHJvdmlkZXJbXVxufVxuXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyUmVmIGV4dGVuZHMgQ2hpbGRSZWYge1xuICAgIHB1YmxpYyByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcblxuICAgIHByb3RlY3RlZCBpbmplY3Rvck5hbWUgPSBcIkNvbnRhaW5lclJlZlwiXG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogQ29udGFpbmVyT3B0aW9ucykge1xuICAgICAgICBzdXBlcihjcmVhdGVFbGVtZW50KG9wdGlvbnMpLCBvcHRpb25zLmFsd2F5c09uVG9wIHx8IEFsd2F5c09uVG9wLk5vbmUpXG5cbiAgICAgICAgY29uc3QgcHJvdmlkZXJzID0gb3B0aW9ucy5wcm92aWRlcnMgfHwgW11cbiAgICAgICAgdGhpcy5pbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgICBwcm92aWRlcnM6IFsuLi50aGlzLmdldFByb3ZpZGVycygpLCAuLi5wcm92aWRlcnNdLFxuICAgICAgICAgICAgcGFyZW50OiBvcHRpb25zLmluamVjdG9yLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5pbmplY3Rvck5hbWVcbiAgICAgICAgfSlcblxuICAgICAgICB0aGlzLnN0YXRlLm9uKFwiZGlzcG9zZWRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgZGVsZXRlICh0aGlzIGFzIGFueSkub3B0aW9uc1xuICAgICAgICAgICAgZGVsZXRlICh0aGlzIGFzIGFueSkuaW5qZWN0b3JcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0UHJvdmlkZXJzKCk6IFByb3ZpZGVyW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBwcm92aWRlOiBDaGlsZFJlZiwgdXNlVmFsdWU6IHRoaXMgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogQ29udGFpbmVyUmVmLCB1c2VWYWx1ZTogdGhpcyB9XG4gICAgICAgIF1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQob3B0aW9uczogQ29udGFpbmVyT3B0aW9ucyk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpXG4gICAgZGl2LnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiXG4gICAgZGl2LnN0eWxlLnRvcCA9IFwiMFwiXG4gICAgZGl2LnN0eWxlLmxlZnQgPSBcIjBcIlxuICAgIGRpdi5zdHlsZS53aWR0aCA9IFwibWF4LWNvbnRlbnRcIlxuICAgIGRpdi5zdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmUtZmxleFwiXG4gICAgZGl2LnN0eWxlLmZsZXhEaXJlY3Rpb24gPSBcImNvbHVtblwiXG4gICAgZGl2LnN0eWxlLmFsaWduSXRlbXMgPSBcInN0cmV0Y2hcIlxuICAgIGRpdi5zdHlsZS5qdXN0aWZ5Q29udGVudCA9IFwic3RyZXRjaFwiXG5cbiAgICBpZiAob3B0aW9ucy5jbGFzc2VzKSB7XG4gICAgICAgIGRpdi5jbGFzc0xpc3QuYWRkKC4uLm9wdGlvbnMuY2xhc3NlcylcbiAgICB9XG5cbiAgICByZXR1cm4gZGl2XG59XG4iXX0=
|
package/esm2022/layer/index.mjs
CHANGED
|
@@ -2,4 +2,5 @@ export * from "./backdrop-ref";
|
|
|
2
2
|
export * from "./child-ref";
|
|
3
3
|
export * from "./layer.service";
|
|
4
4
|
export * from "./portal-ref";
|
|
5
|
-
|
|
5
|
+
export * from "./container-ref";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvbGF5ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsaUJBQWlCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9iYWNrZHJvcC1yZWZcIlxuZXhwb3J0ICogZnJvbSBcIi4vY2hpbGQtcmVmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2xheWVyLnNlcnZpY2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vcG9ydGFsLXJlZlwiXG5leHBvcnQgKiBmcm9tIFwiLi9jb250YWluZXItcmVmXCJcbiJdfQ==
|
|
@@ -2,6 +2,7 @@ import { Directive, ElementRef, inject, Inject, InjectionToken, Injector, Option
|
|
|
2
2
|
import { toSorted } from "@ngutil/common";
|
|
3
3
|
import { CoverService } from "@ngutil/graphics";
|
|
4
4
|
import { BackdropRef } from "./backdrop-ref";
|
|
5
|
+
import { AlwaysOnTop } from "./child-ref";
|
|
5
6
|
import { ContainerRef } from "./container-ref";
|
|
6
7
|
import { ComponentPortalRef, TemplatePortalRef } from "./portal-ref";
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
@@ -66,7 +67,7 @@ export class LayerService {
|
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
#update() {
|
|
69
|
-
const children = toSorted(this.#children,
|
|
70
|
+
const children = toSorted(this.#children, sortChildren2);
|
|
70
71
|
let zIndex = this.#zIndexStart;
|
|
71
72
|
for (const child of children) {
|
|
72
73
|
child.zIndex = zIndex;
|
|
@@ -115,6 +116,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
115
116
|
providers: [{ provide: LayerService, useExisting: IndividualLayer }]
|
|
116
117
|
}]
|
|
117
118
|
}] });
|
|
119
|
+
function sortChildren2(a, b) {
|
|
120
|
+
const alwaysOnTop = sortByAlwaysOnTop(a, b);
|
|
121
|
+
if (alwaysOnTop === 0) {
|
|
122
|
+
return sortByBackdrop(a, b);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
return alwaysOnTop;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
118
128
|
function sortByBackdrop(a, b) {
|
|
119
129
|
if (a instanceof BackdropRef && a.under === b) {
|
|
120
130
|
return -1;
|
|
@@ -127,4 +137,15 @@ function sortByBackdrop(a, b) {
|
|
|
127
137
|
function sortByZIndexDesc(a, b) {
|
|
128
138
|
return b.zIndex - a.zIndex;
|
|
129
139
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9sYXllci9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUE7QUFFdEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUUvQyxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTdELE9BQU8sRUFBb0IsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEUsT0FBTyxFQUEwQixrQkFBa0IsRUFBeUIsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7O0FBRW5ILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFTLG9CQUFvQixDQUFDLENBQUE7QUFFbEYsNkNBQTZDO0FBQzdDLDhDQUE4QztBQUc5QyxNQUFNLE9BQWdCLFlBQVk7SUFDckIsTUFBTSxDQUF1QjtJQUM3QixTQUFTLENBQW1CO0lBR3JDLHlDQUF5QztJQUVoQyxTQUFTLENBQXNCO0lBQy9CLFlBQVksQ0FBUTtJQUM3Qiw0QkFBNEI7SUFFNUIsWUFBb0QsV0FBb0I7UUFWL0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM3QixjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTVCLFNBQUksR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFBO1FBQzNELHlDQUF5QztRQUVoQyxjQUFTLEdBQW9CLEVBQUUsQ0FBQTtRQUtwQyxJQUFJLFdBQVcsSUFBSSxJQUFJLEVB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QWlCLEVBQUUsQ0FBQztpQkFDdkU7O0FBR0QsU0FBUyxjQUFjLENBQUMsQ0FBVyxFQUFFLENBQVc7SUFDNUMsSUFBSSxDQUFDLFlBQVksV0FBVyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNiLENBQUM7U0FBTSxJQUFJLENBQUMsWUFBWSxXQUFXLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsQ0FBQTtJQUNaLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQTtBQUNaLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLENBQVcsRUFBRSxDQUFXO0lBQzlDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIlxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBPcHRpb25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IHRvU29ydGVkIH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcbmltcG9ydCB7IENvdmVyU2VydmljZSB9IGZyb20gXCJAbmd1dGlsL2dyYXBoaWNzXCJcblxuaW1wb3J0IHsgQmFja2Ryb3BPcHRpb25zLCBCYWNrZHJvcFJlZiB9IGZyb20gXCIuL2JhY2tkcm9wLXJlZlwiXG5pbXBvcnQgeyBDaGlsZFJlZiB9IGZyb20gXCIuL2NoaWxkLXJlZlwiXG5pbXBvcnQgeyBDb250YWluZXJPcHRpb25zLCBDb250YWluZXJSZWYgfSBmcm9tIFwiLi9jb250YWluZXItcmVmXCJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbE9wdGlvbnMsIENvbXBvbmVudFBvcnRhbFJlZiwgVGVtcGxhdGVQb3J0YWxPcHRpb25zLCBUZW1wbGF0ZVBvcnRhbFJlZiB9IGZyb20gXCIuL3BvcnRhbC1yZWZcIlxuXG5leHBvcnQgY29uc3QgTEFZRVJfWklOREVYX1NUQVJUID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oXCJMQVlFUl9aSU5ERVhfU1RBUlRcIilcblxuLy8gVE9ETzogRUxFVkFUSU9OX1NURVAgY29uZmlnIHdpdGggaW5qZWN0aW9uXG4vLyBUT0RPOiBFTEVWQVRJT05fU1RBUlQgY29uZmlnIHdpdGggaW5qZWN0aW9uXG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExheWVyU2VydmljZSB7XG4gICAgcmVhZG9ubHkgI2NvdmVyID0gaW5qZWN0KENvdmVyU2VydmljZSlcbiAgICByZWFkb25seSAjaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG5cbiAgICByZWFkb25seSByb290ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKVxuICAgIC8vIHJlYWRvbmx5ICNlbCA9IHRoaXMucm9vdC5uYXRpdmVFbGVtZW50XG5cbiAgICByZWFkb25seSAjY2hpbGRyZW46IEFycmF5PENoaWxkUmVmPiA9IFtdXG4gICAgcmVhZG9ubHkgI3pJbmRleFN0YXJ0OiBudW1iZXJcbiAgICAvLyByZWFkb25seSAjYmFja2Ryb3A6IE1hcDw+XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KExBWUVSX1pJTkRFWF9TVEFSVCkgQE9wdGlvbmFsKCkgekluZGV4U3RhcnQ/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHpJbmRleFN0YXJ0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuI3pJbmRleFN0YXJ0ID0gekluZGV4U3RhcnRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI3pJbmRleFN0YXJ0ID0gMTAwMDBcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5ld0NvbXBvbmVudFBvcnRhbDxUPihjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sIG9wdGlvbnM6IENvbXBvbmVudFBvcnRhbE9wdGlvbnM8VD4pOiBDb21wb25lbnRQb3J0YWxSZWY8VD4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuaW5qZWN0b3IpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGluamVjdG9yOiB0aGlzLiNpbmplY3RvciB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZW5kKG5ldyBDb21wb25lbnRQb3J0YWxSZWYoY29tcG9uZW50LCBvcHRpb25zKSlcbiAgICB9XG5cbiAgICBuZXdUZW1wbGF0ZVBvcnRhbDxUPih0cGw6IFRlbXBsYXRlUmVmPFQ+LCBvcHRpb25zOiBUZW1wbGF0ZVBvcnRhbE9wdGlvbnM8VD4pOiBUZW1wbGF0ZVBvcnRhbFJlZjxUPiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5pbmplY3Rvcikge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmQobmV3IFRlbXBsYXRlUG9ydGFsUmVmKHRwbCwgb3B0aW9ucykpXG4gICAgfVxuXG4gICAgbmV3Q29udGFpbmVyKG9wdGlvbnM6IENvbnRhaW5lck9wdGlvbnMpOiBDb250YWluZXJSZWYge1xuICAgICAgICBpZiAoIW9wdGlvbnMuaW5qZWN0b3IpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGluamVjdG9yOiB0aGlzLiNpbmplY3RvciB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZW5kKG5ldyBDb250YWluZXJSZWYob3B0aW9ucykpXG4gICAgfVxuXG4gICAgbmV3QmFja2Ryb3Aob3B0aW9uczogQmFja2Ryb3BPcHRpb25zKTogQmFja2Ryb3BSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmQoQmFja2Ryb3BSZWYuZnJvbSh0aGlzLiNjb3ZlciwgdGhpcy4jaW5qZWN0b3IsIG9wdGlvbnMpKVxuICAgIH1cblxuICAgIGFwcGVuZDxUIGV4dGVuZHMgQ2hpbGRSZWY+KHJlZjogVCk6IFQge1xuICAgICAgICBpZiAoIXRoaXMuI2NoaWxkcmVuLmluY2x1ZGVzKHJlZikpIHtcbiAgICAgICAgICAgIHRoaXMuI2NoaWxkcmVuLnB1c2gocmVmKVxuICAgICAgICAgICAgdGhpcy4jdXBkYXRlKClcbiAgICAgICAgICAgIHRoaXMucm9vdC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHJlZi5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgcmVmLnN0YXRlLm9uKFwiZGlzcG9zZWRcIiwgKCkgPT4gdGhpcy4jcmVtb3ZlKHJlZikpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlZlxuICAgIH1cblxuICAgICNyZW1vdmUocmVmOiBDaGlsZFJlZikge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLiNjaGlsZHJlbi5pbmRleE9mKHJlZilcbiAgICAgICAgaWYgKGlkeCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLiNjaGlsZHJlbi5zcGxpY2UoaWR4LCAxKVxuICAgICAgICAgICAgdGhpcy4jdXBkYXRlKClcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN1cGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdG9Tb3J0ZWQodGhpcy4jY2hpbGRyZW4sIHNvcnRCeUJhY2tkcm9wKVxuXG4gICAgICAgIGxldCB6SW5kZXggPSB0aGlzLiN6SW5kZXhTdGFydFxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBjaGlsZC56SW5kZXggPSB6SW5kZXhcbiAgICAgICAgICAgIHpJbmRleCArPSAxXG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZHJlbi5zb3J0KHNvcnRCeVpJbmRleERlc2MpXG5cbiAgICAgICAgbGV0IGhhc0JhY2tkcm9wID0gZmFsc2VcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgQmFja2Ryb3BSZWYgJiYgY2hpbGQub3B0aW9ucy50eXBlID09PSBcInNvbGlkXCIpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC52aXNpYmxlID0gIWhhc0JhY2tkcm9wXG4gICAgICAgICAgICAgICAgaGFzQmFja2Ryb3AgPSB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcImJvZHlcIixcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTGF5ZXJTZXJ2aWNlLCB1c2VFeGlzdGluZzogUm9vdExheWVyIH1dXG59KVxuZXhwb3J0IGNsYXNzIFJvb3RMYXllciBleHRlbmRzIExheWVyU2VydmljZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTGF5ZXJTZXJ2aWNlLCB1c2VFeGlzdGluZzogSW5kaXZpZHVhbExheWVyIH1dXG59KVxuZXhwb3J0IGNsYXNzIEluZGl2aWR1YWxMYXllciBleHRlbmRzIExheWVyU2VydmljZSB7fVxuXG5mdW5jdGlvbiBzb3J0QnlCYWNrZHJvcChhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICBpZiAoYSBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGEudW5kZXIgPT09IGIpIHtcbiAgICAgICAgcmV0dXJuIC0xXG4gICAgfSBlbHNlIGlmIChiIGluc3RhbmNlb2YgQmFja2Ryb3BSZWYgJiYgYi51bmRlciA9PT0gYSkge1xuICAgICAgICByZXR1cm4gMVxuICAgIH1cbiAgICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBzb3J0QnlaSW5kZXhEZXNjKGE6IENoaWxkUmVmLCBiOiBDaGlsZFJlZikge1xuICAgIHJldHVybiBiLnpJbmRleCAtIGEuekluZGV4XG59XG4iXX0=
|
|
140
|
+
function sortByAlwaysOnTop(a, b) {
|
|
141
|
+
return getAlwaysOnTop(a) - getAlwaysOnTop(b);
|
|
142
|
+
}
|
|
143
|
+
function getAlwaysOnTop(child) {
|
|
144
|
+
if (child instanceof BackdropRef) {
|
|
145
|
+
return child.under.alwaysOnTop || AlwaysOnTop.None;
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
return child.alwaysOnTop || AlwaysOnTop.None;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9sYXllci9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUE7QUFFdEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUUvQyxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQVksTUFBTSxhQUFhLENBQUE7QUFDbkQsT0FBTyxFQUFvQixZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRSxPQUFPLEVBQTBCLGtCQUFrQixFQUF5QixpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTs7QUFFbkgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQTtBQUVsRiw2Q0FBNkM7QUFDN0MsOENBQThDO0FBRzlDLE1BQU0sT0FBZ0IsWUFBWTtJQUNyQixNQUFNLENBQXVCO0lBQzdCLFNBQVMsQ0FBbUI7SUFHckMseUNBQXlDO0lBRWhDLFNBQVMsQ0FBc0I7SUFDL0IsWUFBWSxDQUFRO0lBQzdCLDRCQUE0QjtJQUU1QixZQUFvRCxXQUFvQjtRQVYvRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzdCLGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFNUIsU0FBSSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUE7UUFDM0QseUNBQXlDO1FBRWhDLGNBQVMsR0FB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QUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sS0FBSyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFBO0lBQ2hELENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgT3B0aW9uYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyB0b1NvcnRlZCB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5pbXBvcnQgeyBDb3ZlclNlcnZpY2UgfSBmcm9tIFwiQG5ndXRpbC9ncmFwaGljc1wiXG5cbmltcG9ydCB7IEJhY2tkcm9wT3B0aW9ucywgQmFja2Ryb3BSZWYgfSBmcm9tIFwiLi9iYWNrZHJvcC1yZWZcIlxuaW1wb3J0IHsgQWx3YXlzT25Ub3AsIENoaWxkUmVmIH0gZnJvbSBcIi4vY2hpbGQtcmVmXCJcbmltcG9ydCB7IENvbnRhaW5lck9wdGlvbnMsIENvbnRhaW5lclJlZiB9IGZyb20gXCIuL2NvbnRhaW5lci1yZWZcIlxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsT3B0aW9ucywgQ29tcG9uZW50UG9ydGFsUmVmLCBUZW1wbGF0ZVBvcnRhbE9wdGlvbnMsIFRlbXBsYXRlUG9ydGFsUmVmIH0gZnJvbSBcIi4vcG9ydGFsLXJlZlwiXG5cbmV4cG9ydCBjb25zdCBMQVlFUl9aSU5ERVhfU1RBUlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPihcIkxBWUVSX1pJTkRFWF9TVEFSVFwiKVxuXG4vLyBUT0RPOiBFTEVWQVRJT05fU1RFUCBjb25maWcgd2l0aCBpbmplY3Rpb25cbi8vIFRPRE86IEVMRVZBVElPTl9TVEFSVCBjb25maWcgd2l0aCBpbmplY3Rpb25cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXJTZXJ2aWNlIHtcbiAgICByZWFkb25seSAjY292ZXIgPSBpbmplY3QoQ292ZXJTZXJ2aWNlKVxuICAgIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3RvcilcblxuICAgIHJlYWRvbmx5IHJvb3QgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpXG4gICAgLy8gcmVhZG9ubHkgI2VsID0gdGhpcy5yb290Lm5hdGl2ZUVsZW1lbnRcblxuICAgIHJlYWRvbmx5ICNjaGlsZHJlbjogQXJyYXk8Q2hpbGRSZWY+ID0gW11cbiAgICByZWFkb25seSAjekluZGV4U3RhcnQ6IG51bWJlclxuICAgIC8vIHJlYWRvbmx5ICNiYWNrZHJvcDogTWFwPD5cblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTEFZRVJfWklOREVYX1NUQVJUKSBAT3B0aW9uYWwoKSB6SW5kZXhTdGFydD86IG51bWJlcikge1xuICAgICAgICBpZiAoekluZGV4U3RhcnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy4jekluZGV4U3RhcnQgPSB6SW5kZXhTdGFydFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4jekluZGV4U3RhcnQgPSAxMDAwMFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV3Q29tcG9uZW50UG9ydGFsPFQ+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgb3B0aW9uczogQ29tcG9uZW50UG9ydGFsT3B0aW9uczxUPik6IENvbXBvbmVudFBvcnRhbFJlZjxUPiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5pbmplY3Rvcikge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmQobmV3IENvbXBvbmVudFBvcnRhbFJlZihjb21wb25lbnQsIG9wdGlvbnMpKVxuICAgIH1cblxuICAgIG5ld1RlbXBsYXRlUG9ydGFsPFQ+KHRwbDogVGVtcGxhdGVSZWY8VD4sIG9wdGlvbnM6IFRlbXBsYXRlUG9ydGFsT3B0aW9uczxUPik6IFRlbXBsYXRlUG9ydGFsUmVmPFQ+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgVGVtcGxhdGVQb3J0YWxSZWYodHBsLCBvcHRpb25zKSlcbiAgICB9XG5cbiAgICBuZXdDb250YWluZXIob3B0aW9uczogQ29udGFpbmVyT3B0aW9ucyk6IENvbnRhaW5lclJlZiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5pbmplY3Rvcikge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmQobmV3IENvbnRhaW5lclJlZihvcHRpb25zKSlcbiAgICB9XG5cbiAgICBuZXdCYWNrZHJvcChvcHRpb25zOiBCYWNrZHJvcE9wdGlvbnMpOiBCYWNrZHJvcFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChCYWNrZHJvcFJlZi5mcm9tKHRoaXMuI2NvdmVyLCB0aGlzLiNpbmplY3Rvciwgb3B0aW9ucykpXG4gICAgfVxuXG4gICAgYXBwZW5kPFQgZXh0ZW5kcyBDaGlsZFJlZj4ocmVmOiBUKTogVCB7XG4gICAgICAgIGlmICghdGhpcy4jY2hpbGRyZW4uaW5jbHVkZXMocmVmKSkge1xuICAgICAgICAgICAgdGhpcy4jY2hpbGRyZW4ucHVzaChyZWYpXG4gICAgICAgICAgICB0aGlzLiN1cGRhdGUoKVxuICAgICAgICAgICAgdGhpcy5yb290Lm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQocmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICByZWYuc3RhdGUub24oXCJkaXNwb3NlZFwiLCAoKSA9PiB0aGlzLiNyZW1vdmUocmVmKSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVmXG4gICAgfVxuXG4gICAgI3JlbW92ZShyZWY6IENoaWxkUmVmKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuI2NoaWxkcmVuLmluZGV4T2YocmVmKVxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuI2NoaWxkcmVuLnNwbGljZShpZHgsIDEpXG4gICAgICAgICAgICB0aGlzLiN1cGRhdGUoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3VwZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0b1NvcnRlZCh0aGlzLiNjaGlsZHJlbiwgc29ydENoaWxkcmVuMilcblxuICAgICAgICBsZXQgekluZGV4ID0gdGhpcy4jekluZGV4U3RhcnRcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgY2hpbGQuekluZGV4ID0gekluZGV4XG4gICAgICAgICAgICB6SW5kZXggKz0gMVxuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGRyZW4uc29ydChzb3J0QnlaSW5kZXhEZXNjKVxuXG4gICAgICAgIGxldCBoYXNCYWNrZHJvcCA9IGZhbHNlXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGNoaWxkLm9wdGlvbnMudHlwZSA9PT0gXCJzb2xpZFwiKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQudmlzaWJsZSA9ICFoYXNCYWNrZHJvcFxuICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJib2R5XCIsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExheWVyU2VydmljZSwgdXNlRXhpc3Rpbmc6IFJvb3RMYXllciB9XVxufSlcbmV4cG9ydCBjbGFzcyBSb290TGF5ZXIgZXh0ZW5kcyBMYXllclNlcnZpY2Uge31cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExheWVyU2VydmljZSwgdXNlRXhpc3Rpbmc6IEluZGl2aWR1YWxMYXllciB9XVxufSlcbmV4cG9ydCBjbGFzcyBJbmRpdmlkdWFsTGF5ZXIgZXh0ZW5kcyBMYXllclNlcnZpY2Uge31cblxuZnVuY3Rpb24gc29ydENoaWxkcmVuMihhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICBjb25zdCBhbHdheXNPblRvcCA9IHNvcnRCeUFsd2F5c09uVG9wKGEsIGIpXG4gICAgaWYgKGFsd2F5c09uVG9wID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzb3J0QnlCYWNrZHJvcChhLCBiKVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhbHdheXNPblRvcFxuICAgIH1cbn1cblxuZnVuY3Rpb24gc29ydEJ5QmFja2Ryb3AoYTogQ2hpbGRSZWYsIGI6IENoaWxkUmVmKSB7XG4gICAgaWYgKGEgaW5zdGFuY2VvZiBCYWNrZHJvcFJlZiAmJiBhLnVuZGVyID09PSBiKSB7XG4gICAgICAgIHJldHVybiAtMVxuICAgIH0gZWxzZSBpZiAoYiBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGIudW5kZXIgPT09IGEpIHtcbiAgICAgICAgcmV0dXJuIDFcbiAgICB9XG4gICAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gc29ydEJ5WkluZGV4RGVzYyhhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICByZXR1cm4gYi56SW5kZXggLSBhLnpJbmRleFxufVxuXG5mdW5jdGlvbiBzb3J0QnlBbHdheXNPblRvcChhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICByZXR1cm4gZ2V0QWx3YXlzT25Ub3AoYSkgLSBnZXRBbHdheXNPblRvcChiKVxufVxuXG5mdW5jdGlvbiBnZXRBbHdheXNPblRvcChjaGlsZDogQ2hpbGRSZWYpOiBudW1iZXIge1xuICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmKSB7XG4gICAgICAgIHJldHVybiBjaGlsZC51bmRlci5hbHdheXNPblRvcCB8fCBBbHdheXNPblRvcC5Ob25lXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkLmFsd2F5c09uVG9wIHx8IEFsd2F5c09uVG9wLk5vbmVcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AnimationBuilder, style as style$1, animate } from '@angular/animations';
|
|
2
|
-
import { Observable, Subject, map, exhaustMap, combineLatest, distinctUntilChanged,
|
|
2
|
+
import { Observable, tap, Subject, map, exhaustMap, combineLatest, takeUntil, distinctUntilChanged, of, filter, take, share, ReplaySubject, shareReplay, takeWhile, debounceTime, EMPTY, merge } from 'rxjs';
|
|
3
3
|
import { animationObservable, CoverService } from '@ngutil/graphics';
|
|
4
4
|
import { Duration, Ease, DimensionWatcher, rectExpand, rectOrigin, rectMoveOrigin, rectContract, RectWatcher } from '@ngutil/style';
|
|
5
5
|
import { clamp } from 'lodash';
|
|
6
|
-
import { isElementInput,
|
|
6
|
+
import { isElementInput, Lifecycle, toSorted } from '@ngutil/common';
|
|
7
7
|
import { FocusService, KeystrokeService } from '@ngutil/aria';
|
|
8
8
|
import * as i0 from '@angular/core';
|
|
9
9
|
import { ElementRef, Injector, ComponentFactoryResolver, ViewContainerRef, InjectionToken, inject, Directive, Inject, Optional, Injectable, TemplateRef, NgModule } from '@angular/core';
|
|
@@ -21,7 +21,8 @@ class AnimationTrait {
|
|
|
21
21
|
const builder = floatingRef.container.injector.get(AnimationBuilder);
|
|
22
22
|
const element = floatingRef.container.nativeElement;
|
|
23
23
|
floatingRef.state.on("showing", () => animationObservable({ builder, element, animation: this.animation.show }));
|
|
24
|
-
floatingRef.state.on("disposing", () => animationObservable({ builder, element, animation: this.animation.hide }));
|
|
24
|
+
floatingRef.state.on("disposing", () => animationObservable({ builder, element, animation: this.animation.hide }).pipe(tap(() => (element.style.display = "none"))));
|
|
25
|
+
floatingRef.state.on("disposing", () => dst.complete());
|
|
25
26
|
dst.next();
|
|
26
27
|
});
|
|
27
28
|
}
|
|
@@ -29,7 +30,6 @@ class AnimationTrait {
|
|
|
29
30
|
const FallAnimation = {
|
|
30
31
|
show: [
|
|
31
32
|
style$1({
|
|
32
|
-
// "perspective:": "1300px",
|
|
33
33
|
transform: "scale(1.5)",
|
|
34
34
|
visibility: "visible",
|
|
35
35
|
opacity: "0"
|
|
@@ -84,12 +84,10 @@ class BackdropTrait {
|
|
|
84
84
|
}
|
|
85
85
|
const state = new BackdropState();
|
|
86
86
|
const backdrop = floatingRef.layerSvc.newBackdrop(options);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
? state.onClick.pipe(exhaustMap(() => floatingRef.close())).subscribe()
|
|
92
|
-
: null;
|
|
87
|
+
if (this.options.closeOnClick) {
|
|
88
|
+
dest.add(this.#installClickHandler(floatingRef, backdrop, state));
|
|
89
|
+
dest.add(state.onClick.pipe(exhaustMap(() => floatingRef.close())).subscribe());
|
|
90
|
+
}
|
|
93
91
|
backdrop.state.on("showing", () => animationObservable({
|
|
94
92
|
builder: animationBuilder,
|
|
95
93
|
element: backdrop.nativeElement,
|
|
@@ -100,14 +98,10 @@ class BackdropTrait {
|
|
|
100
98
|
element: backdrop.nativeElement,
|
|
101
99
|
animation: FadeAnimation.hide
|
|
102
100
|
}));
|
|
101
|
+
backdrop.state.on("disposed", () => dest.complete());
|
|
103
102
|
floatingRef.state.on("disposing", () => backdrop.dispose());
|
|
104
|
-
|
|
103
|
+
dest.add(backdrop.show().subscribe());
|
|
105
104
|
dest.next(state);
|
|
106
|
-
return () => {
|
|
107
|
-
removeOnClick && removeOnClick();
|
|
108
|
-
onClickSub?.unsubscribe();
|
|
109
|
-
backdropShowSub.unsubscribe();
|
|
110
|
-
};
|
|
111
105
|
});
|
|
112
106
|
}
|
|
113
107
|
#installClickHandler(floatingRef, backdrop, state) {
|
|
@@ -173,7 +167,7 @@ class DimensionConstraintTrait {
|
|
|
173
167
|
}
|
|
174
168
|
});
|
|
175
169
|
}
|
|
176
|
-
}).pipe(distinctUntilChanged(), tap(value => {
|
|
170
|
+
}).pipe(takeUntil(floatingRef.state.onExecute("disposing")), distinctUntilChanged(), tap(value => {
|
|
177
171
|
const floatingEl = floatingRef.container.nativeElement;
|
|
178
172
|
floatingEl.style[this.name] = `${value}px`;
|
|
179
173
|
}));
|
|
@@ -198,17 +192,16 @@ class FocusTrait {
|
|
|
198
192
|
this.name = "focus";
|
|
199
193
|
}
|
|
200
194
|
connect(floatingRef) {
|
|
201
|
-
return new Observable(
|
|
202
|
-
const subs = new Subscription();
|
|
195
|
+
return new Observable(dest => {
|
|
203
196
|
const originallyFocused = document.activeElement;
|
|
204
197
|
const svc = floatingRef.container.injector.get(FocusService);
|
|
205
198
|
if (this.options.connect) {
|
|
206
199
|
const tabindex = this.options.tabindex == null ? 0 : this.options.tabindex;
|
|
207
200
|
floatingRef.container.nativeElement.setAttribute("tabindex", tabindex.toString());
|
|
208
|
-
|
|
201
|
+
dest.add(this.options.connect.connect(floatingRef.container).subscribe());
|
|
209
202
|
}
|
|
210
203
|
if (this.options.trap) {
|
|
211
|
-
|
|
204
|
+
dest.add(this.#trap(floatingRef, svc).subscribe());
|
|
212
205
|
}
|
|
213
206
|
floatingRef.state.on("disposing", () => {
|
|
214
207
|
const active = document.activeElement;
|
|
@@ -216,10 +209,9 @@ class FocusTrait {
|
|
|
216
209
|
if (active === floating || floating.contains(active)) {
|
|
217
210
|
originallyFocused && document.contains(originallyFocused) && svc.focus(originallyFocused, "program");
|
|
218
211
|
}
|
|
212
|
+
dest.complete();
|
|
219
213
|
});
|
|
220
|
-
|
|
221
|
-
subs.unsubscribe();
|
|
222
|
-
};
|
|
214
|
+
dest.next();
|
|
223
215
|
});
|
|
224
216
|
}
|
|
225
217
|
#trap(floatingRef, svc) {
|
|
@@ -307,7 +299,7 @@ class PositionTrait {
|
|
|
307
299
|
res.apply(floatingRef);
|
|
308
300
|
dest.next(res);
|
|
309
301
|
});
|
|
310
|
-
});
|
|
302
|
+
}).pipe(takeUntil(floatingRef.state.onExecute("disposing")));
|
|
311
303
|
}
|
|
312
304
|
}
|
|
313
305
|
function refWatcher(rectWatcher, ref, floatingRef) {
|
|
@@ -401,6 +393,14 @@ function attribute(attrs) {
|
|
|
401
393
|
return new AttributeTrait(attrs);
|
|
402
394
|
}
|
|
403
395
|
|
|
396
|
+
var AlwaysOnTop;
|
|
397
|
+
(function (AlwaysOnTop) {
|
|
398
|
+
AlwaysOnTop[AlwaysOnTop["None"] = 0] = "None";
|
|
399
|
+
AlwaysOnTop[AlwaysOnTop["Normal"] = 1] = "Normal";
|
|
400
|
+
AlwaysOnTop[AlwaysOnTop["Modal"] = 2] = "Modal";
|
|
401
|
+
AlwaysOnTop[AlwaysOnTop["Toast"] = 3] = "Toast";
|
|
402
|
+
AlwaysOnTop[AlwaysOnTop["UAC"] = 100] = "UAC";
|
|
403
|
+
})(AlwaysOnTop || (AlwaysOnTop = {}));
|
|
404
404
|
// TODO: disposing, disposed
|
|
405
405
|
class ChildRef extends ElementRef {
|
|
406
406
|
/**
|
|
@@ -415,36 +415,40 @@ class ChildRef extends ElementRef {
|
|
|
415
415
|
get zIndex() {
|
|
416
416
|
return this._zIndex;
|
|
417
417
|
}
|
|
418
|
-
constructor(nativeElement) {
|
|
418
|
+
constructor(nativeElement, alwaysOnTop = AlwaysOnTop.None) {
|
|
419
419
|
super(nativeElement);
|
|
420
|
-
this.
|
|
420
|
+
this.alwaysOnTop = alwaysOnTop;
|
|
421
|
+
this.state = new Lifecycle({
|
|
421
422
|
showing: {},
|
|
422
423
|
shown: {},
|
|
423
424
|
disposing: { cancellable: false },
|
|
424
425
|
disposed: { cancellable: false, order: "sequential" }
|
|
425
426
|
});
|
|
426
427
|
this._zIndex = -1;
|
|
427
|
-
this.state.
|
|
428
|
+
this.disposed$ = this.state.current$.pipe(filter(state => state === "disposed"), take(1), share());
|
|
429
|
+
this.state.on("disposed", () => {
|
|
430
|
+
this.nativeElement.parentElement?.removeChild(this.nativeElement);
|
|
431
|
+
this.state.destroy();
|
|
432
|
+
delete this.state;
|
|
433
|
+
});
|
|
428
434
|
// this.state.current$.subscribe(state => {
|
|
429
435
|
// console.log(this, state)
|
|
430
436
|
// })
|
|
437
|
+
// this.state.status$.subscribe(status => {
|
|
438
|
+
// console.log(this.nativeElement, status)
|
|
439
|
+
// })
|
|
431
440
|
}
|
|
432
441
|
dispose() {
|
|
433
442
|
if (this.state == null) {
|
|
434
|
-
return of(
|
|
443
|
+
return of();
|
|
435
444
|
}
|
|
436
445
|
return this.state.run(["disposing", "disposed"]);
|
|
437
446
|
}
|
|
438
|
-
destroy() {
|
|
439
|
-
this.nativeElement.parentElement?.removeChild(this.nativeElement);
|
|
440
|
-
this.state.destroy();
|
|
441
|
-
delete this.state;
|
|
442
|
-
}
|
|
443
447
|
}
|
|
444
448
|
|
|
445
449
|
class ContainerRef extends ChildRef {
|
|
446
450
|
constructor(options) {
|
|
447
|
-
super(createElement(options));
|
|
451
|
+
super(createElement(options), options.alwaysOnTop || AlwaysOnTop.None);
|
|
448
452
|
this.options = options;
|
|
449
453
|
this.injectorName = "ContainerRef";
|
|
450
454
|
const providers = options.providers || [];
|
|
@@ -488,7 +492,6 @@ class BackdropRef extends ChildRef {
|
|
|
488
492
|
// options.under.state.control(ref.state)
|
|
489
493
|
return ref;
|
|
490
494
|
}
|
|
491
|
-
#coverSub;
|
|
492
495
|
set visible(visible) {
|
|
493
496
|
if (this.#visible !== visible) {
|
|
494
497
|
this.#visible = visible;
|
|
@@ -512,21 +515,21 @@ class BackdropRef extends ChildRef {
|
|
|
512
515
|
"0px";
|
|
513
516
|
this.under = options.under;
|
|
514
517
|
if (options.type === "solid") {
|
|
515
|
-
this
|
|
518
|
+
this.coverSvc
|
|
519
|
+
.solid({ container: nativeElement, color: options.color })
|
|
520
|
+
.pipe(takeUntil(this.disposed$))
|
|
521
|
+
.subscribe();
|
|
516
522
|
this.group = `${options.color === "transparent" ? "transparent" : "solid"}`;
|
|
517
523
|
}
|
|
518
524
|
else if (options.type === "crop") {
|
|
519
|
-
this
|
|
525
|
+
this.coverSvc
|
|
520
526
|
.crop({ container: nativeElement, color: options.color, crop: options.crop })
|
|
527
|
+
.pipe(takeUntil(this.disposed$))
|
|
521
528
|
.subscribe();
|
|
522
529
|
}
|
|
523
530
|
}
|
|
524
531
|
show() {
|
|
525
|
-
return this.state.run(
|
|
526
|
-
}
|
|
527
|
-
destroy() {
|
|
528
|
-
this.#coverSub?.unsubscribe();
|
|
529
|
-
super.destroy();
|
|
532
|
+
return this.state.run("showing", "shown");
|
|
530
533
|
}
|
|
531
534
|
}
|
|
532
535
|
|
|
@@ -640,7 +643,7 @@ class LayerService {
|
|
|
640
643
|
}
|
|
641
644
|
}
|
|
642
645
|
#update() {
|
|
643
|
-
const children = toSorted(this.#children,
|
|
646
|
+
const children = toSorted(this.#children, sortChildren2);
|
|
644
647
|
let zIndex = this.#zIndexStart;
|
|
645
648
|
for (const child of children) {
|
|
646
649
|
child.zIndex = zIndex;
|
|
@@ -689,6 +692,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
689
692
|
providers: [{ provide: LayerService, useExisting: IndividualLayer }]
|
|
690
693
|
}]
|
|
691
694
|
}] });
|
|
695
|
+
function sortChildren2(a, b) {
|
|
696
|
+
const alwaysOnTop = sortByAlwaysOnTop(a, b);
|
|
697
|
+
if (alwaysOnTop === 0) {
|
|
698
|
+
return sortByBackdrop(a, b);
|
|
699
|
+
}
|
|
700
|
+
else {
|
|
701
|
+
return alwaysOnTop;
|
|
702
|
+
}
|
|
703
|
+
}
|
|
692
704
|
function sortByBackdrop(a, b) {
|
|
693
705
|
if (a instanceof BackdropRef && a.under === b) {
|
|
694
706
|
return -1;
|
|
@@ -701,6 +713,17 @@ function sortByBackdrop(a, b) {
|
|
|
701
713
|
function sortByZIndexDesc(a, b) {
|
|
702
714
|
return b.zIndex - a.zIndex;
|
|
703
715
|
}
|
|
716
|
+
function sortByAlwaysOnTop(a, b) {
|
|
717
|
+
return getAlwaysOnTop(a) - getAlwaysOnTop(b);
|
|
718
|
+
}
|
|
719
|
+
function getAlwaysOnTop(child) {
|
|
720
|
+
if (child instanceof BackdropRef) {
|
|
721
|
+
return child.under.alwaysOnTop || AlwaysOnTop.None;
|
|
722
|
+
}
|
|
723
|
+
else {
|
|
724
|
+
return child.alwaysOnTop || AlwaysOnTop.None;
|
|
725
|
+
}
|
|
726
|
+
}
|
|
704
727
|
|
|
705
728
|
const TRAITS = new InjectionToken("TRAITS");
|
|
706
729
|
class FloatingRef {
|
|
@@ -711,7 +734,7 @@ class FloatingRef {
|
|
|
711
734
|
this.layerSvc = layerSvc;
|
|
712
735
|
this.container = container;
|
|
713
736
|
this.channel = new ReplaySubject(1);
|
|
714
|
-
this.state = new
|
|
737
|
+
this.state = new Lifecycle({
|
|
715
738
|
init: {},
|
|
716
739
|
showing: {},
|
|
717
740
|
shown: {},
|
|
@@ -721,47 +744,51 @@ class FloatingRef {
|
|
|
721
744
|
cleanup: { cancellable: false, order: "sequential" }
|
|
722
745
|
});
|
|
723
746
|
this.#traits = {};
|
|
724
|
-
this.#untilCleanup = this.state.
|
|
725
|
-
this.#untilDisposed = this.state.
|
|
747
|
+
this.#untilCleanup = this.state.onExecute("cleanup");
|
|
748
|
+
this.#untilDisposed = this.state.onExecute("disposed");
|
|
726
749
|
container.nativeElement.style.overflow = "hidden";
|
|
727
750
|
container.nativeElement.style.visibility = "hidden";
|
|
728
751
|
this.#traits = traits;
|
|
729
752
|
this.traitState$ = this.#traitState().pipe(shareReplay(1));
|
|
730
|
-
|
|
753
|
+
this.state.current$.pipe(takeWhile(state => state !== "cleanup", true)).subscribe(state => {
|
|
731
754
|
this.emit({ type: state });
|
|
732
755
|
});
|
|
733
|
-
this.state.on("init", () =>
|
|
734
|
-
// TODO: angular render is stabilized
|
|
735
|
-
this.traitState$.pipe(takeUntil(this.#untilCleanup), debounceTime(5)).subscribe(() => {
|
|
736
|
-
dst.complete();
|
|
737
|
-
});
|
|
738
|
-
}));
|
|
756
|
+
this.state.on("init", () => this.traitState$.pipe(takeUntil(this.#untilCleanup), debounceTime(5), take(1)));
|
|
739
757
|
this.state.on("showing", () => {
|
|
740
758
|
container.nativeElement.style.visibility = "visible";
|
|
741
759
|
});
|
|
742
760
|
this.state.on("disposing", () => {
|
|
743
761
|
container.nativeElement.style.pointerEvents = "none";
|
|
744
762
|
});
|
|
745
|
-
this.state.on("disposed", () => {
|
|
746
|
-
sub.unsubscribe();
|
|
747
|
-
});
|
|
748
763
|
this.state.control(container.state);
|
|
764
|
+
// TODO: remove
|
|
765
|
+
// this.state.status$.subscribe(status => {
|
|
766
|
+
// console.log("floating", status)
|
|
767
|
+
// })
|
|
749
768
|
}
|
|
750
769
|
show() {
|
|
751
|
-
return this.state.run(
|
|
770
|
+
return this.state.run("init", "showing", "shown");
|
|
752
771
|
}
|
|
772
|
+
/**
|
|
773
|
+
* @deprecated
|
|
774
|
+
*/
|
|
753
775
|
hide() {
|
|
754
|
-
return this.
|
|
776
|
+
return this.close(true);
|
|
755
777
|
}
|
|
756
|
-
close() {
|
|
757
|
-
|
|
778
|
+
close(force = false) {
|
|
779
|
+
if (force) {
|
|
780
|
+
return this.state.run("disposing", "disposed", "cleanup");
|
|
781
|
+
}
|
|
782
|
+
else {
|
|
783
|
+
return this.state.run("closing", "disposing", "disposed", "cleanup");
|
|
784
|
+
}
|
|
758
785
|
}
|
|
759
786
|
emit(event) {
|
|
760
787
|
this.channel.next({ ...event, floatingRef: this });
|
|
761
788
|
}
|
|
762
789
|
setResult(data) {
|
|
763
790
|
this.emit({ type: "result", data });
|
|
764
|
-
this.
|
|
791
|
+
this.close(true).subscribe();
|
|
765
792
|
}
|
|
766
793
|
watchTrait(name) {
|
|
767
794
|
return this.traitState$.pipe(takeUntil(this.#untilDisposed), filter(event => event.name === name), map(event => event.data), shareReplay(1));
|
|
@@ -938,5 +965,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
938
965
|
* Generated bundle index. Do not edit.
|
|
939
966
|
*/
|
|
940
967
|
|
|
941
|
-
export { AnimationTrait, AttributeTrait, BackdropRef, BackdropState, BackdropTrait, ChildRef, ComponentPortalRef, DimensionConstraintTrait, FadeAnimation, FallAnimation, FloatingAnchorRef, FloatingComponentFactory, FloatingFactory, FloatingPlacementRef, FloatingPosition, FloatingRef, FloatingService, FloatingTemplateFactory, FocusTrait, IndividualLayer, KeystrokeTrait, LAYER_ZINDEX_START, LayerService, NuFloating, PortalRef, PositionTrait, RootLayer, StyleTrait, TRAITS, TemplatePortalRef, attribute, backdrop, computePosition, fadeAnimation, fallAnimation, focus, keystroke, maxHeight, maxWidth, minHeight, minWidth, modal, position, style };
|
|
968
|
+
export { AlwaysOnTop, AnimationTrait, AttributeTrait, BackdropRef, BackdropState, BackdropTrait, ChildRef, ComponentPortalRef, ContainerRef, DimensionConstraintTrait, FadeAnimation, FallAnimation, FloatingAnchorRef, FloatingComponentFactory, FloatingFactory, FloatingPlacementRef, FloatingPosition, FloatingRef, FloatingService, FloatingTemplateFactory, FocusTrait, IndividualLayer, KeystrokeTrait, LAYER_ZINDEX_START, LayerService, NuFloating, PortalRef, PositionTrait, RootLayer, StyleTrait, TRAITS, TemplatePortalRef, attribute, backdrop, computePosition, fadeAnimation, fallAnimation, focus, keystroke, maxHeight, maxWidth, minHeight, minWidth, modal, position, style };
|
|
942
969
|
//# sourceMappingURL=ngutil-floating.mjs.map
|