@ngutil/floating 0.0.50 → 0.0.52

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.
@@ -1,12 +1,6 @@
1
1
  import { takeUntil } from "rxjs";
2
2
  import { ChildRef } from "./child-ref";
3
3
  export class BackdropRef extends ChildRef {
4
- static from(cover, injector, options) {
5
- const ref = new BackdropRef(document.createElement("div"), cover, injector, options);
6
- // TODO: kérdéses
7
- // options.under.state.control(ref.state)
8
- return ref;
9
- }
10
4
  set visible(visible) {
11
5
  if (this.#visible !== visible) {
12
6
  this.#visible = visible;
@@ -16,35 +10,24 @@ export class BackdropRef extends ChildRef {
16
10
  get visible() {
17
11
  return this.#visible;
18
12
  }
19
- #visible = true;
20
- constructor(nativeElement, coverSvc, injector, options) {
21
- super(nativeElement);
22
- this.coverSvc = coverSvc;
23
- this.injector = injector;
13
+ #visible = false;
14
+ constructor(coverRef, under, options) {
15
+ super(coverRef.nativeElement);
16
+ this.coverRef = coverRef;
17
+ this.under = under;
24
18
  this.options = options;
25
- nativeElement.style.position = "absolute";
26
- nativeElement.style.top =
27
- nativeElement.style.right =
28
- nativeElement.style.bottom =
29
- nativeElement.style.left =
30
- "0px";
31
- this.under = options.under;
32
- if (options.type === "solid") {
33
- this.coverSvc
34
- .solid({ container: nativeElement, color: options.color })
35
- .pipe(takeUntil(this.disposed$))
36
- .subscribe();
37
- this.group = `${options.color === "transparent" ? "transparent" : "solid"}`;
38
- }
39
- else if (options.type === "crop") {
40
- this.coverSvc
41
- .crop({ container: nativeElement, color: options.color, crop: options.crop })
42
- .pipe(takeUntil(this.disposed$))
43
- .subscribe();
44
- }
19
+ this.group = `${options.color === "transparent" ? "transparent" : "solid"}`;
20
+ this.state.on("showing", () => {
21
+ this.coverRef
22
+ .show()
23
+ .pipe(takeUntil(this.state.onDone("disposed")))
24
+ .subscribe(() => {
25
+ this.visible = true;
26
+ });
27
+ });
45
28
  }
46
29
  show() {
47
30
  return this.state.run("showing", "shown");
48
31
  }
49
32
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2Ryb3AtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2xheWVyL2JhY2tkcm9wLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBS2hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFrQnRDLE1BQU0sT0FBTyxXQUFZLFNBQVEsUUFBUTtJQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQW1CLEVBQUUsUUFBa0IsRUFBRSxPQUF3QjtRQUN6RSxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDcEYsaUJBQWlCO1FBQ2pCLHlDQUF5QztRQUN6QyxPQUFPLEdBQUcsQ0FBQTtJQUNkLENBQUM7SUFLRCxJQUFJLE9BQU8sQ0FBQyxPQUFnQjtRQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7UUFDeEUsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDeEIsQ0FBQztJQUNELFFBQVEsR0FBWSxJQUFJLENBQUE7SUFFeEIsWUFDSSxhQUEwQixFQUNqQixRQUFzQixFQUN0QixRQUFrQixFQUNsQixPQUF3QjtRQUVqQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7UUFKWCxhQUFRLEdBQVIsUUFBUSxDQUFjO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFHakMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFBO1FBQ3pDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRztZQUNuQixhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUs7Z0JBQ3pCLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTTtvQkFDMUIsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJO3dCQUNwQixLQUFLLENBQUE7UUFFYixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7UUFFMUIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRO2lCQUNSLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQy9CLFNBQVMsRUFBRSxDQUFBO1lBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMvRSxDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxRQUFRO2lCQUNSLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQy9CLFNBQVMsRUFBRSxDQUFBO1FBQ3BCLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzdDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IENvdmVyU2VydmljZSB9IGZyb20gXCJAbmd1dGlsL2dyYXBoaWNzXCJcbmltcG9ydCB7IENvdmVyT3B0aW9ucywgQ3JvcENvdmVyT3B0aW9ucyB9IGZyb20gXCJAbmd1dGlsL2dyYXBoaWNzXCJcblxuaW1wb3J0IHsgQ2hpbGRSZWYgfSBmcm9tIFwiLi9jaGlsZC1yZWZcIlxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljQmFja2Ryb3BPcHRpb25zIHtcbiAgICB1bmRlcjogQ2hpbGRSZWZcbiAgICBjb2xvcjogQ292ZXJPcHRpb25zW1wiY29sb3JcIl1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb2xpZEJhY2tkcm9wT3B0aW9ucyBleHRlbmRzIEJhc2ljQmFja2Ryb3BPcHRpb25zIHtcbiAgICB0eXBlOiBcInNvbGlkXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcm9wQmFja2Ryb3BPcHRpb25zIGV4dGVuZHMgQmFzaWNCYWNrZHJvcE9wdGlvbnMge1xuICAgIHR5cGU6IFwiY3JvcFwiXG4gICAgY3JvcDogQ3JvcENvdmVyT3B0aW9uc1tcImNyb3BcIl1cbn1cblxuZXhwb3J0IHR5cGUgQmFja2Ryb3BPcHRpb25zID0gU29saWRCYWNrZHJvcE9wdGlvbnMgfCBDcm9wQmFja2Ryb3BPcHRpb25zXG5cbmV4cG9ydCBjbGFzcyBCYWNrZHJvcFJlZiBleHRlbmRzIENoaWxkUmVmIHtcbiAgICBzdGF0aWMgZnJvbShjb3ZlcjogQ292ZXJTZXJ2aWNlLCBpbmplY3RvcjogSW5qZWN0b3IsIG9wdGlvbnM6IEJhY2tkcm9wT3B0aW9ucyk6IEJhY2tkcm9wUmVmIHtcbiAgICAgICAgY29uc3QgcmVmID0gbmV3IEJhY2tkcm9wUmVmKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksIGNvdmVyLCBpbmplY3Rvciwgb3B0aW9ucylcbiAgICAgICAgLy8gVE9ETzoga8OpcmTDqXNlc1xuICAgICAgICAvLyBvcHRpb25zLnVuZGVyLnN0YXRlLmNvbnRyb2wocmVmLnN0YXRlKVxuICAgICAgICByZXR1cm4gcmVmXG4gICAgfVxuXG4gICAgcmVhZG9ubHkgdW5kZXI6IENoaWxkUmVmXG4gICAgcmVhZG9ubHkgZ3JvdXA/OiBzdHJpbmdcblxuICAgIHNldCB2aXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuI3Zpc2libGUgIT09IHZpc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMuI3Zpc2libGUgPSB2aXNpYmxlXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9IHZpc2libGUgPyBcInZpc2libGVcIiA6IFwiaGlkZGVuXCJcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy4jdmlzaWJsZVxuICAgIH1cbiAgICAjdmlzaWJsZTogYm9vbGVhbiA9IHRydWVcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICAgICAgcmVhZG9ubHkgY292ZXJTdmM6IENvdmVyU2VydmljZSxcbiAgICAgICAgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBCYWNrZHJvcE9wdGlvbnNcbiAgICApIHtcbiAgICAgICAgc3VwZXIobmF0aXZlRWxlbWVudClcbiAgICAgICAgbmF0aXZlRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIlxuICAgICAgICBuYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9XG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50LnN0eWxlLnJpZ2h0ID1cbiAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuc3R5bGUuYm90dG9tID1cbiAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9XG4gICAgICAgICAgICAgICAgXCIwcHhcIlxuXG4gICAgICAgIHRoaXMudW5kZXIgPSBvcHRpb25zLnVuZGVyXG5cbiAgICAgICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJzb2xpZFwiKSB7XG4gICAgICAgICAgICB0aGlzLmNvdmVyU3ZjXG4gICAgICAgICAgICAgICAgLnNvbGlkKHsgY29udGFpbmVyOiBuYXRpdmVFbGVtZW50LCBjb2xvcjogb3B0aW9ucy5jb2xvciB9KVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRpc3Bvc2VkJCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgICAgICAgICB0aGlzLmdyb3VwID0gYCR7b3B0aW9ucy5jb2xvciA9PT0gXCJ0cmFuc3BhcmVudFwiID8gXCJ0cmFuc3BhcmVudFwiIDogXCJzb2xpZFwifWBcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnR5cGUgPT09IFwiY3JvcFwiKSB7XG4gICAgICAgICAgICB0aGlzLmNvdmVyU3ZjXG4gICAgICAgICAgICAgICAgLmNyb3AoeyBjb250YWluZXI6IG5hdGl2ZUVsZW1lbnQsIGNvbG9yOiBvcHRpb25zLmNvbG9yLCBjcm9wOiBvcHRpb25zLmNyb3AgfSlcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kaXNwb3NlZCQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvdygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUucnVuKFwic2hvd2luZ1wiLCBcInNob3duXCIpXG4gICAgfVxufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2Ryb3AtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2xheWVyL2JhY2tkcm9wLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBS2hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFJdEMsTUFBTSxPQUFPLFdBQVksU0FBUSxRQUFRO0lBR3JDLElBQUksT0FBTyxDQUFDLE9BQWdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtRQUN4RSxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUN4QixDQUFDO0lBQ0QsUUFBUSxHQUFZLEtBQUssQ0FBQTtJQUV6QixZQUNhLFFBQXVCLEVBQ3ZCLEtBQWUsRUFDZixPQUFxQjtRQUU5QixLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBSnBCLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDdkIsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFJOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRTNFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVE7aUJBQ1IsSUFBSSxFQUFFO2lCQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztpQkFDOUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtZQUN2QixDQUFDLENBQUMsQ0FBQTtRQUNWLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELElBQUk7UUFDQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IENvdmVyUmVmIH0gZnJvbSBcIkBuZ3V0aWwvZ3JhcGhpY3NcIlxuaW1wb3J0IHsgQ292ZXJPcHRpb25zIH0gZnJvbSBcIkBuZ3V0aWwvZ3JhcGhpY3NcIlxuXG5pbXBvcnQgeyBDaGlsZFJlZiB9IGZyb20gXCIuL2NoaWxkLXJlZlwiXG5cbmV4cG9ydCB0eXBlIEJhY2tkcm9wT3B0aW9ucyA9IENvdmVyT3B0aW9uc1xuXG5leHBvcnQgY2xhc3MgQmFja2Ryb3BSZWYgZXh0ZW5kcyBDaGlsZFJlZiB7XG4gICAgcmVhZG9ubHkgZ3JvdXA6IHN0cmluZ1xuXG4gICAgc2V0IHZpc2libGUodmlzaWJsZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy4jdmlzaWJsZSAhPT0gdmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy4jdmlzaWJsZSA9IHZpc2libGVcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gdmlzaWJsZSA/IFwidmlzaWJsZVwiIDogXCJoaWRkZW5cIlxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLiN2aXNpYmxlXG4gICAgfVxuICAgICN2aXNpYmxlOiBib29sZWFuID0gZmFsc2VcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBjb3ZlclJlZjogQ292ZXJSZWY8YW55PixcbiAgICAgICAgcmVhZG9ubHkgdW5kZXI6IENoaWxkUmVmLFxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBDb3Zlck9wdGlvbnNcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY292ZXJSZWYubmF0aXZlRWxlbWVudClcblxuICAgICAgICB0aGlzLmdyb3VwID0gYCR7b3B0aW9ucy5jb2xvciA9PT0gXCJ0cmFuc3BhcmVudFwiID8gXCJ0cmFuc3BhcmVudFwiIDogXCJzb2xpZFwifWBcblxuICAgICAgICB0aGlzLnN0YXRlLm9uKFwic2hvd2luZ1wiLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvdmVyUmVmXG4gICAgICAgICAgICAgICAgLnNob3coKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnN0YXRlLm9uRG9uZShcImRpc3Bvc2VkXCIpKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgc2hvdygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUucnVuKFwic2hvd2luZ1wiLCBcInNob3duXCIpXG4gICAgfVxufVxuIl19
@@ -47,8 +47,9 @@ export class LayerService {
47
47
  }
48
48
  return this.append(new ContainerRef(options));
49
49
  }
50
- newBackdrop(options) {
51
- return this.append(BackdropRef.from(this.#cover, this.#injector, options));
50
+ newBackdrop(under, options) {
51
+ const coverRef = this.#cover.create(this.root, options);
52
+ return this.append(new BackdropRef(coverRef, under, options));
52
53
  }
53
54
  append(ref) {
54
55
  if (!this.#children.includes(ref)) {
@@ -76,7 +77,7 @@ export class LayerService {
76
77
  children.sort(sortByZIndexDesc);
77
78
  let hasBackdrop = false;
78
79
  for (const child of children) {
79
- if (child instanceof BackdropRef && child.options.type === "solid") {
80
+ if (child instanceof BackdropRef && child.options.color !== "transparent") {
80
81
  child.visible = !hasBackdrop;
81
82
  hasBackdrop = true;
82
83
  }
@@ -148,4 +149,4 @@ function getAlwaysOnTop(child) {
148
149
  return child.alwaysOnTop || AlwaysOnTop.None;
149
150
  }
150
151
  }
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9sYXllci9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUE7QUFFdEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUUvQyxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQVksTUFBTSxhQUFhLENBQUE7QUFDbkQsT0FBTyxFQUFvQixZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRSxPQUFPLEVBQTBCLGtCQUFrQixFQUF5QixpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTs7QUFFbkgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQTtBQUVsRiw2Q0FBNkM7QUFDN0MsOENBQThDO0FBRzlDLE1BQU0sT0FBZ0IsWUFBWTtJQUNyQixNQUFNLENBQXVCO0lBQzdCLFNBQVMsQ0FBbUI7SUFHckMseUNBQXlDO0lBRWhDLFNBQVMsQ0FBc0I7SUFDL0IsWUFBWSxDQUFRO0lBQzdCLDRCQUE0QjtJQUU1QixZQUFvRCxXQUFvQjtRQVYvRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzdCLGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFNUIsU0FBSSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUE7UUFDM0QseUNBQXlDO1FBRWhDLGNBQVMsR0FB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QUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sS0FBSyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFBO0lBQ2hELENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgT3B0aW9uYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyB0b1NvcnRlZCB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5pbXBvcnQgeyBDb3ZlclNlcnZpY2UgfSBmcm9tIFwiQG5ndXRpbC9ncmFwaGljc1wiXG5cbmltcG9ydCB7IEJhY2tkcm9wT3B0aW9ucywgQmFja2Ryb3BSZWYgfSBmcm9tIFwiLi9iYWNrZHJvcC1yZWZcIlxuaW1wb3J0IHsgQWx3YXlzT25Ub3AsIENoaWxkUmVmIH0gZnJvbSBcIi4vY2hpbGQtcmVmXCJcbmltcG9ydCB7IENvbnRhaW5lck9wdGlvbnMsIENvbnRhaW5lclJlZiB9IGZyb20gXCIuL2NvbnRhaW5lci1yZWZcIlxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsT3B0aW9ucywgQ29tcG9uZW50UG9ydGFsUmVmLCBUZW1wbGF0ZVBvcnRhbE9wdGlvbnMsIFRlbXBsYXRlUG9ydGFsUmVmIH0gZnJvbSBcIi4vcG9ydGFsLXJlZlwiXG5cbmV4cG9ydCBjb25zdCBMQVlFUl9aSU5ERVhfU1RBUlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPihcIkxBWUVSX1pJTkRFWF9TVEFSVFwiKVxuXG4vLyBUT0RPOiBFTEVWQVRJT05fU1RFUCBjb25maWcgd2l0aCBpbmplY3Rpb25cbi8vIFRPRE86IEVMRVZBVElPTl9TVEFSVCBjb25maWcgd2l0aCBpbmplY3Rpb25cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXJTZXJ2aWNlIHtcbiAgICByZWFkb25seSAjY292ZXIgPSBpbmplY3QoQ292ZXJTZXJ2aWNlKVxuICAgIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3RvcilcblxuICAgIHJlYWRvbmx5IHJvb3QgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpXG4gICAgLy8gcmVhZG9ubHkgI2VsID0gdGhpcy5yb290Lm5hdGl2ZUVsZW1lbnRcblxuICAgIHJlYWRvbmx5ICNjaGlsZHJlbjogQXJyYXk8Q2hpbGRSZWY+ID0gW11cbiAgICByZWFkb25seSAjekluZGV4U3RhcnQ6IG51bWJlclxuICAgIC8vIHJlYWRvbmx5ICNiYWNrZHJvcDogTWFwPD5cblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTEFZRVJfWklOREVYX1NUQVJUKSBAT3B0aW9uYWwoKSB6SW5kZXhTdGFydD86IG51bWJlcikge1xuICAgICAgICBpZiAoekluZGV4U3RhcnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy4jekluZGV4U3RhcnQgPSB6SW5kZXhTdGFydFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4jekluZGV4U3RhcnQgPSAxMDAwMFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV3Q29tcG9uZW50UG9ydGFsPFQ+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgb3B0aW9uczogQ29tcG9uZW50UG9ydGFsT3B0aW9uczxUPik6IENvbXBvbmVudFBvcnRhbFJlZjxUPiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5pbmplY3Rvcikge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmQobmV3IENvbXBvbmVudFBvcnRhbFJlZihjb21wb25lbnQsIG9wdGlvbnMpKVxuICAgIH1cblxuICAgIG5ld1RlbXBsYXRlUG9ydGFsPFQ+KHRwbDogVGVtcGxhdGVSZWY8VD4sIG9wdGlvbnM6IFRlbXBsYXRlUG9ydGFsT3B0aW9uczxUPik6IFRlbXBsYXRlUG9ydGFsUmVmPFQ+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgVGVtcGxhdGVQb3J0YWxSZWYodHBsLCBvcHRpb25zKSlcbiAgICB9XG5cbiAgICBuZXdDb250YWluZXIob3B0aW9uczogQ29udGFpbmVyT3B0aW9ucyk6IENvbnRhaW5lclJlZiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5pbmplY3Rvcikge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmQobmV3IENvbnRhaW5lclJlZihvcHRpb25zKSlcbiAgICB9XG5cbiAgICBuZXdCYWNrZHJvcChvcHRpb25zOiBCYWNrZHJvcE9wdGlvbnMpOiBCYWNrZHJvcFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChCYWNrZHJvcFJlZi5mcm9tKHRoaXMuI2NvdmVyLCB0aGlzLiNpbmplY3Rvciwgb3B0aW9ucykpXG4gICAgfVxuXG4gICAgYXBwZW5kPFQgZXh0ZW5kcyBDaGlsZFJlZj4ocmVmOiBUKTogVCB7XG4gICAgICAgIGlmICghdGhpcy4jY2hpbGRyZW4uaW5jbHVkZXMocmVmKSkge1xuICAgICAgICAgICAgdGhpcy4jY2hpbGRyZW4ucHVzaChyZWYpXG4gICAgICAgICAgICB0aGlzLiN1cGRhdGUoKVxuICAgICAgICAgICAgdGhpcy5yb290Lm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQocmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICByZWYuc3RhdGUub24oXCJkaXNwb3NlZFwiLCAoKSA9PiB0aGlzLiNyZW1vdmUocmVmKSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVmXG4gICAgfVxuXG4gICAgI3JlbW92ZShyZWY6IENoaWxkUmVmKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuI2NoaWxkcmVuLmluZGV4T2YocmVmKVxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuI2NoaWxkcmVuLnNwbGljZShpZHgsIDEpXG4gICAgICAgICAgICB0aGlzLiN1cGRhdGUoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3VwZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0b1NvcnRlZCh0aGlzLiNjaGlsZHJlbiwgc29ydENoaWxkcmVuMilcblxuICAgICAgICBsZXQgekluZGV4ID0gdGhpcy4jekluZGV4U3RhcnRcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgY2hpbGQuekluZGV4ID0gekluZGV4XG4gICAgICAgICAgICB6SW5kZXggKz0gMVxuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGRyZW4uc29ydChzb3J0QnlaSW5kZXhEZXNjKVxuXG4gICAgICAgIGxldCBoYXNCYWNrZHJvcCA9IGZhbHNlXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGNoaWxkLm9wdGlvbnMudHlwZSA9PT0gXCJzb2xpZFwiKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQudmlzaWJsZSA9ICFoYXNCYWNrZHJvcFxuICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJib2R5XCIsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExheWVyU2VydmljZSwgdXNlRXhpc3Rpbmc6IFJvb3RMYXllciB9XVxufSlcbmV4cG9ydCBjbGFzcyBSb290TGF5ZXIgZXh0ZW5kcyBMYXllclNlcnZpY2Uge31cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExheWVyU2VydmljZSwgdXNlRXhpc3Rpbmc6IEluZGl2aWR1YWxMYXllciB9XVxufSlcbmV4cG9ydCBjbGFzcyBJbmRpdmlkdWFsTGF5ZXIgZXh0ZW5kcyBMYXllclNlcnZpY2Uge31cblxuZnVuY3Rpb24gc29ydENoaWxkcmVuMihhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICBjb25zdCBhbHdheXNPblRvcCA9IHNvcnRCeUFsd2F5c09uVG9wKGEsIGIpXG4gICAgaWYgKGFsd2F5c09uVG9wID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzb3J0QnlCYWNrZHJvcChhLCBiKVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhbHdheXNPblRvcFxuICAgIH1cbn1cblxuZnVuY3Rpb24gc29ydEJ5QmFja2Ryb3AoYTogQ2hpbGRSZWYsIGI6IENoaWxkUmVmKSB7XG4gICAgaWYgKGEgaW5zdGFuY2VvZiBCYWNrZHJvcFJlZiAmJiBhLnVuZGVyID09PSBiKSB7XG4gICAgICAgIHJldHVybiAtMVxuICAgIH0gZWxzZSBpZiAoYiBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGIudW5kZXIgPT09IGEpIHtcbiAgICAgICAgcmV0dXJuIDFcbiAgICB9XG4gICAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gc29ydEJ5WkluZGV4RGVzYyhhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICByZXR1cm4gYi56SW5kZXggLSBhLnpJbmRleFxufVxuXG5mdW5jdGlvbiBzb3J0QnlBbHdheXNPblRvcChhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICByZXR1cm4gZ2V0QWx3YXlzT25Ub3AoYSkgLSBnZXRBbHdheXNPblRvcChiKVxufVxuXG5mdW5jdGlvbiBnZXRBbHdheXNPblRvcChjaGlsZDogQ2hpbGRSZWYpOiBudW1iZXIge1xuICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmKSB7XG4gICAgICAgIHJldHVybiBjaGlsZC51bmRlci5hbHdheXNPblRvcCB8fCBBbHdheXNPblRvcC5Ob25lXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkLmFsd2F5c09uVG9wIHx8IEFsd2F5c09uVG9wLk5vbmVcbiAgICB9XG59XG4iXX0=
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9sYXllci9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUE7QUFFdEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUUvQyxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQVksTUFBTSxhQUFhLENBQUE7QUFDbkQsT0FBTyxFQUFvQixZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRSxPQUFPLEVBQTBCLGtCQUFrQixFQUF5QixpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTs7QUFFbkgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQTtBQUVsRiw2Q0FBNkM7QUFDN0MsOENBQThDO0FBRzlDLE1BQU0sT0FBZ0IsWUFBWTtJQUNyQixNQUFNLENBQXVCO0lBQzdCLFNBQVMsQ0FBbUI7SUFHckMseUNBQXlDO0lBRWhDLFNBQVMsQ0FBc0I7SUFDL0IsWUFBWSxDQUFRO0lBQzdCLDRCQUE0QjtJQUU1QixZQUFvRCxXQUFvQjtRQVYvRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzdCLGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFNUIsU0FBSSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUE7UUFDM0QseUNBQXlDO1FBRWhDLGNBQVMsR0FB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QUM7UUFDL0IsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFBO0lBQ3RELENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxLQUFLLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUE7SUFDaEQsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIlxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBPcHRpb25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IHRvU29ydGVkIH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcbmltcG9ydCB7IENvdmVyU2VydmljZSB9IGZyb20gXCJAbmd1dGlsL2dyYXBoaWNzXCJcblxuaW1wb3J0IHsgQmFja2Ryb3BPcHRpb25zLCBCYWNrZHJvcFJlZiB9IGZyb20gXCIuL2JhY2tkcm9wLXJlZlwiXG5pbXBvcnQgeyBBbHdheXNPblRvcCwgQ2hpbGRSZWYgfSBmcm9tIFwiLi9jaGlsZC1yZWZcIlxuaW1wb3J0IHsgQ29udGFpbmVyT3B0aW9ucywgQ29udGFpbmVyUmVmIH0gZnJvbSBcIi4vY29udGFpbmVyLXJlZlwiXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWxPcHRpb25zLCBDb21wb25lbnRQb3J0YWxSZWYsIFRlbXBsYXRlUG9ydGFsT3B0aW9ucywgVGVtcGxhdGVQb3J0YWxSZWYgfSBmcm9tIFwiLi9wb3J0YWwtcmVmXCJcblxuZXhwb3J0IGNvbnN0IExBWUVSX1pJTkRFWF9TVEFSVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KFwiTEFZRVJfWklOREVYX1NUQVJUXCIpXG5cbi8vIFRPRE86IEVMRVZBVElPTl9TVEVQIGNvbmZpZyB3aXRoIGluamVjdGlvblxuLy8gVE9ETzogRUxFVkFUSU9OX1NUQVJUIGNvbmZpZyB3aXRoIGluamVjdGlvblxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMYXllclNlcnZpY2Uge1xuICAgIHJlYWRvbmx5ICNjb3ZlciA9IGluamVjdChDb3ZlclNlcnZpY2UpXG4gICAgcmVhZG9ubHkgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKVxuXG4gICAgcmVhZG9ubHkgcm9vdCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZilcbiAgICAvLyByZWFkb25seSAjZWwgPSB0aGlzLnJvb3QubmF0aXZlRWxlbWVudFxuXG4gICAgcmVhZG9ubHkgI2NoaWxkcmVuOiBBcnJheTxDaGlsZFJlZj4gPSBbXVxuICAgIHJlYWRvbmx5ICN6SW5kZXhTdGFydDogbnVtYmVyXG4gICAgLy8gcmVhZG9ubHkgI2JhY2tkcm9wOiBNYXA8PlxuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMQVlFUl9aSU5ERVhfU1RBUlQpIEBPcHRpb25hbCgpIHpJbmRleFN0YXJ0PzogbnVtYmVyKSB7XG4gICAgICAgIGlmICh6SW5kZXhTdGFydCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLiN6SW5kZXhTdGFydCA9IHpJbmRleFN0YXJ0XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiN6SW5kZXhTdGFydCA9IDEwMDAwXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdDb21wb25lbnRQb3J0YWw8VD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBvcHRpb25zOiBDb21wb25lbnRQb3J0YWxPcHRpb25zPFQ+KTogQ29tcG9uZW50UG9ydGFsUmVmPFQ+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQ29tcG9uZW50UG9ydGFsUmVmKGNvbXBvbmVudCwgb3B0aW9ucykpXG4gICAgfVxuXG4gICAgbmV3VGVtcGxhdGVQb3J0YWw8VD4odHBsOiBUZW1wbGF0ZVJlZjxUPiwgb3B0aW9uczogVGVtcGxhdGVQb3J0YWxPcHRpb25zPFQ+KTogVGVtcGxhdGVQb3J0YWxSZWY8VD4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuaW5qZWN0b3IpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGluamVjdG9yOiB0aGlzLiNpbmplY3RvciB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZW5kKG5ldyBUZW1wbGF0ZVBvcnRhbFJlZih0cGwsIG9wdGlvbnMpKVxuICAgIH1cblxuICAgIG5ld0NvbnRhaW5lcihvcHRpb25zOiBDb250YWluZXJPcHRpb25zKTogQ29udGFpbmVyUmVmIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQ29udGFpbmVyUmVmKG9wdGlvbnMpKVxuICAgIH1cblxuICAgIG5ld0JhY2tkcm9wKHVuZGVyOiBDaGlsZFJlZiwgb3B0aW9uczogQmFja2Ryb3BPcHRpb25zKTogQmFja2Ryb3BSZWYge1xuICAgICAgICBjb25zdCBjb3ZlclJlZiA9IHRoaXMuI2NvdmVyLmNyZWF0ZSh0aGlzLnJvb3QsIG9wdGlvbnMpXG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQmFja2Ryb3BSZWYoY292ZXJSZWYsIHVuZGVyLCBvcHRpb25zKSlcbiAgICB9XG5cbiAgICBhcHBlbmQ8VCBleHRlbmRzIENoaWxkUmVmPihyZWY6IFQpOiBUIHtcbiAgICAgICAgaWYgKCF0aGlzLiNjaGlsZHJlbi5pbmNsdWRlcyhyZWYpKSB7XG4gICAgICAgICAgICB0aGlzLiNjaGlsZHJlbi5wdXNoKHJlZilcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZSgpXG4gICAgICAgICAgICB0aGlzLnJvb3QubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChyZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIHJlZi5zdGF0ZS5vbihcImRpc3Bvc2VkXCIsICgpID0+IHRoaXMuI3JlbW92ZShyZWYpKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWZcbiAgICB9XG5cbiAgICAjcmVtb3ZlKHJlZjogQ2hpbGRSZWYpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy4jY2hpbGRyZW4uaW5kZXhPZihyZWYpXG4gICAgICAgIGlmIChpZHggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy4jY2hpbGRyZW4uc3BsaWNlKGlkeCwgMSlcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZSgpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjdXBkYXRlKCkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRvU29ydGVkKHRoaXMuI2NoaWxkcmVuLCBzb3J0Q2hpbGRyZW4yKVxuXG4gICAgICAgIGxldCB6SW5kZXggPSB0aGlzLiN6SW5kZXhTdGFydFxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBjaGlsZC56SW5kZXggPSB6SW5kZXhcbiAgICAgICAgICAgIHpJbmRleCArPSAxXG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZHJlbi5zb3J0KHNvcnRCeVpJbmRleERlc2MpXG5cbiAgICAgICAgbGV0IGhhc0JhY2tkcm9wID0gZmFsc2VcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgQmFja2Ryb3BSZWYgJiYgY2hpbGQub3B0aW9ucy5jb2xvciAhPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQudmlzaWJsZSA9ICFoYXNCYWNrZHJvcFxuICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJib2R5XCIsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExheWVyU2VydmljZSwgdXNlRXhpc3Rpbmc6IFJvb3RMYXllciB9XVxufSlcbmV4cG9ydCBjbGFzcyBSb290TGF5ZXIgZXh0ZW5kcyBMYXllclNlcnZpY2Uge31cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExheWVyU2VydmljZSwgdXNlRXhpc3Rpbmc6IEluZGl2aWR1YWxMYXllciB9XVxufSlcbmV4cG9ydCBjbGFzcyBJbmRpdmlkdWFsTGF5ZXIgZXh0ZW5kcyBMYXllclNlcnZpY2Uge31cblxuZnVuY3Rpb24gc29ydENoaWxkcmVuMihhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICBjb25zdCBhbHdheXNPblRvcCA9IHNvcnRCeUFsd2F5c09uVG9wKGEsIGIpXG4gICAgaWYgKGFsd2F5c09uVG9wID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzb3J0QnlCYWNrZHJvcChhLCBiKVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhbHdheXNPblRvcFxuICAgIH1cbn1cblxuZnVuY3Rpb24gc29ydEJ5QmFja2Ryb3AoYTogQ2hpbGRSZWYsIGI6IENoaWxkUmVmKSB7XG4gICAgaWYgKGEgaW5zdGFuY2VvZiBCYWNrZHJvcFJlZiAmJiBhLnVuZGVyID09PSBiKSB7XG4gICAgICAgIHJldHVybiAtMVxuICAgIH0gZWxzZSBpZiAoYiBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGIudW5kZXIgPT09IGEpIHtcbiAgICAgICAgcmV0dXJuIDFcbiAgICB9XG4gICAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gc29ydEJ5WkluZGV4RGVzYyhhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICByZXR1cm4gYi56SW5kZXggLSBhLnpJbmRleFxufVxuXG5mdW5jdGlvbiBzb3J0QnlBbHdheXNPblRvcChhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICByZXR1cm4gZ2V0QWx3YXlzT25Ub3AoYSkgLSBnZXRBbHdheXNPblRvcChiKVxufVxuXG5mdW5jdGlvbiBnZXRBbHdheXNPblRvcChjaGlsZDogQ2hpbGRSZWYpOiBudW1iZXIge1xuICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmKSB7XG4gICAgICAgIHJldHVybiBjaGlsZC51bmRlci5hbHdheXNPblRvcCB8fCBBbHdheXNPblRvcC5Ob25lXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkLmFsd2F5c09uVG9wIHx8IEFsd2F5c09uVG9wLk5vbmVcbiAgICB9XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { AnimationBuilder, style as style$1, animate } from '@angular/animations';
2
- import { Observable, tap, Subject, map, exhaustMap, combineLatest, takeUntil, distinctUntilChanged, of, filter, take, share, ReplaySubject, shareReplay, takeWhile, debounceTime, EMPTY, merge } from 'rxjs';
2
+ import { Observable, switchMap, tap, timer, take, map, Subject, exhaustMap, combineLatest, takeUntil, distinctUntilChanged, of, filter, share, ReplaySubject, shareReplay, takeWhile, debounceTime, startWith, EMPTY } from 'rxjs';
3
3
  import { animationObservable, CoverService } from '@ngutil/graphics';
4
- import { Duration, Ease, DimensionWatcher, rectExpand, rectOrigin, rectMoveOrigin, rectContract, RectWatcher } from '@ngutil/style';
4
+ import { Duration, Ease, alignmentToTransformOrigin, DimensionWatcher, rectExpand, rectOrigin, rectMoveOrigin, rectContract, alignmentNormalize, RectWatcher } from '@ngutil/style';
5
5
  import { clamp } from 'lodash';
6
6
  import { isElementInput, Lifecycle, toSorted } from '@ngutil/common';
7
7
  import { FocusService, KeystrokeService } from '@ngutil/aria';
@@ -10,23 +10,47 @@ import { ElementRef, Injector, ComponentFactoryResolver, ViewContainerRef, Injec
10
10
  import { DomPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
11
11
 
12
12
  // https://tympanus.net/Development/ModalWindowEffects/
13
- const transitionDuration = Duration.FastMs;
13
+ const timing = `${Duration.FastMs}ms ${Ease.Deceleration}`;
14
14
  class AnimationTrait {
15
- constructor(animation) {
15
+ constructor(animation, options) {
16
16
  this.animation = animation;
17
+ this.options = options;
17
18
  this.name = "animation";
18
19
  }
19
20
  connect(floatingRef) {
20
21
  return new Observable((dst) => {
21
22
  const builder = floatingRef.container.injector.get(AnimationBuilder);
22
23
  const element = floatingRef.container.nativeElement;
23
- floatingRef.state.on("showing", () => animationObservable({ builder, element, animation: this.animation.show }));
24
- floatingRef.state.on("disposing", () => animationObservable({ builder, element, animation: this.animation.hide }).pipe(tap(() => (element.style.display = "none"))));
24
+ const options = this.options || {};
25
+ floatingRef.state.on("showing", () => animationParams(floatingRef, 0, options.params).pipe(switchMap(params => animationObservable({
26
+ builder,
27
+ element,
28
+ animation: this.animation.show,
29
+ options: { ...options, params }
30
+ }))));
31
+ floatingRef.state.on("disposing", () => animationParams(floatingRef, 0, options.params).pipe(switchMap(params => animationObservable({
32
+ builder,
33
+ element,
34
+ animation: this.animation.hide,
35
+ options: { ...options, params }
36
+ })), tap(() => (element.style.display = "none"))));
25
37
  floatingRef.state.on("disposing", () => dst.complete());
26
38
  dst.next();
27
39
  });
28
40
  }
29
41
  }
42
+ function animationParams(floatingRef, delay, overrides) {
43
+ const src = delay > 0
44
+ ? timer(delay).pipe(switchMap(() => floatingRef.watchTrait("position")))
45
+ : floatingRef.watchTrait("position");
46
+ return src.pipe(take(1), map(position => {
47
+ const origin = position.computed ? alignmentToTransformOrigin(position.computed.content.align) : "center";
48
+ return {
49
+ origin,
50
+ ...overrides
51
+ };
52
+ }));
53
+ }
30
54
  const FallAnimation = {
31
55
  show: [
32
56
  style$1({
@@ -34,28 +58,59 @@ const FallAnimation = {
34
58
  visibility: "visible",
35
59
  opacity: "0"
36
60
  }),
37
- animate(`${transitionDuration}ms ${Ease.Deceleration}`, style$1({
61
+ animate(timing, style$1({
38
62
  transform: "scale(1)",
39
63
  opacity: "1"
40
64
  }))
41
65
  ],
42
66
  hide: [
43
- animate(`${transitionDuration}ms ${Ease.Deceleration}`, style$1({
67
+ animate(timing, style$1({
44
68
  transform: "scale(1.5)",
45
69
  visibility: "visible",
46
70
  opacity: "0"
47
71
  }))
48
72
  ]
49
73
  };
50
- function fallAnimation() {
51
- return new AnimationTrait(FallAnimation);
74
+ function fallAnimation(options) {
75
+ return new AnimationTrait(FallAnimation, options);
52
76
  }
53
77
  const FadeAnimation = {
54
- show: [style$1({ opacity: 0 }), animate(`${transitionDuration}ms ${Ease.Deceleration}`, style$1({ opacity: 1 }))],
55
- hide: [animate(`${transitionDuration}ms ${Ease.Deceleration}`, style$1({ opacity: 0 }))]
78
+ show: [style$1({ opacity: 0 }), animate(timing, style$1({ opacity: 1 }))],
79
+ hide: [animate(timing, style$1({ opacity: 0 }))]
56
80
  };
57
- function fadeAnimation() {
58
- return new AnimationTrait(FadeAnimation);
81
+ function fadeAnimation(options) {
82
+ return new AnimationTrait(FadeAnimation, options);
83
+ }
84
+ const DropAnimation = {
85
+ show: [
86
+ style$1({
87
+ transform: "translate({{ translateX }}, {{ translateY }})",
88
+ opacity: "0",
89
+ transformOrigin: "{{ origin }}",
90
+ visibility: "visible"
91
+ }),
92
+ animate(timing, style$1({
93
+ opacity: "1",
94
+ transform: "scale(1, 1) translate(0px, 0px)"
95
+ }))
96
+ ],
97
+ hide: [
98
+ animate(timing, style$1({ opacity: 0, transform: "translate(calc({{ translateX }} * -1), calc({{ translateY }} * -1))" }))
99
+ ]
100
+ };
101
+ function dropAnimation(options) {
102
+ if (!options) {
103
+ options = {};
104
+ }
105
+ if (!options.params) {
106
+ options.params = {};
107
+ }
108
+ else {
109
+ options.params = { ...options.params };
110
+ }
111
+ options.params["translateX"] = "0px";
112
+ options.params["translateY"] = "-40px";
113
+ return new AnimationTrait(DropAnimation, options);
59
114
  }
60
115
 
61
116
  class BackdropState {
@@ -71,20 +126,10 @@ class BackdropTrait {
71
126
  connect(floatingRef) {
72
127
  return new Observable((dest) => {
73
128
  const animationBuilder = floatingRef.container.injector.get(AnimationBuilder);
74
- const options = {
75
- type: this.options.type,
76
- under: floatingRef.container,
77
- color: this.options.color
78
- };
79
- if (this.options.type === "crop") {
80
- ;
81
- options.crop = floatingRef
82
- .watchTrait("position")
83
- .pipe(map(position => position.anchor));
84
- }
129
+ const options = { ...this.options };
85
130
  const state = new BackdropState();
86
- const backdrop = floatingRef.layerSvc.newBackdrop(options);
87
- if (this.options.closeOnClick) {
131
+ const backdrop = floatingRef.layerSvc.newBackdrop(floatingRef.container, options);
132
+ if (options.closeOnClick) {
88
133
  dest.add(this.#installClickHandler(floatingRef, backdrop, state));
89
134
  dest.add(state.onClick.pipe(exhaustMap(() => floatingRef.close())).subscribe());
90
135
  }
@@ -146,7 +191,7 @@ class DimensionConstraintTrait {
146
191
  refDim: refDim,
147
192
  position: floatingRef.watchTrait("position")
148
193
  }).subscribe(({ refDim, position }) => {
149
- const floating = position.computed?.floating;
194
+ const floating = position.computed?.content;
150
195
  if (!floating) {
151
196
  return;
152
197
  }
@@ -155,7 +200,7 @@ class DimensionConstraintTrait {
155
200
  }
156
201
  else {
157
202
  return floatingRef.watchTrait("position").subscribe(position => {
158
- const floating = position.computed?.floating;
203
+ const floating = position.computed?.content;
159
204
  if (!floating) {
160
205
  return;
161
206
  }
@@ -163,7 +208,7 @@ class DimensionConstraintTrait {
163
208
  dst.next(floating[this.#map.computedRef][this.#map.dimension]);
164
209
  }
165
210
  else {
166
- dst.next(clamp(this.value, floating?.min[this.#map.dimension] || 0, floating?.max[this.#map.dimension] || Infinity));
211
+ dst.next(clamp(this.value, floating.min[this.#map.dimension] || 0, floating.max[this.#map.dimension] || Infinity));
167
212
  }
168
213
  });
169
214
  }
@@ -250,19 +295,37 @@ function computePosition({ floating, anchor, placement, options }) {
250
295
  anchor = rectExpand(anchor, options.anchor.margin);
251
296
  }
252
297
  const anchorPoint = rectOrigin(anchor, options.anchor.align);
253
- let content = rectMoveOrigin(floating, options.content.align, anchorPoint);
298
+ let contentRect = rectMoveOrigin(floating, options.content.align, anchorPoint);
254
299
  if (options.content.margin) {
255
- content = rectContract(content, options.content.margin);
300
+ contentRect = rectContract(contentRect, options.content.margin);
256
301
  }
257
302
  if (options.placement.padding) {
258
303
  placement = rectContract(placement, options.placement.padding);
259
304
  }
260
- const cf = {
261
- current: content,
262
- max: { width: placement.width - content.x, height: placement.height - content.y },
263
- min: { width: 0, height: 0 }
305
+ return {
306
+ content: {
307
+ ...addTLRB(contentRect, placement),
308
+ align: alignmentNormalize(options.content.align),
309
+ connect: anchorPoint,
310
+ max: { width: placement.width - contentRect.x, height: placement.height - contentRect.y },
311
+ min: { width: 0, height: 0 }
312
+ },
313
+ anchor: {
314
+ ...addTLRB(anchor, placement),
315
+ align: alignmentNormalize(options.anchor.align),
316
+ connect: anchorPoint
317
+ },
318
+ placement: addTLRB(placement, placement)
319
+ };
320
+ }
321
+ function addTLRB(rect, container) {
322
+ return {
323
+ ...rect,
324
+ top: rect.y,
325
+ left: rect.x,
326
+ right: container.width - (rect.x + rect.width),
327
+ bottom: container.height - (rect.y + rect.height)
264
328
  };
265
- return { floating: cf };
266
329
  }
267
330
 
268
331
  class FloatingAnchorRef extends ElementRef {
@@ -330,8 +393,21 @@ class FloatingPosition {
330
393
  return;
331
394
  }
332
395
  const floatingEl = floatingRef.container.nativeElement;
333
- floatingEl.style.left = `${this.computed.floating.current.x}px`;
334
- floatingEl.style.top = `${this.computed.floating.current.y}px`;
396
+ const computedContent = this.computed.content;
397
+ const style = { top: null, right: null, bottom: null, left: null };
398
+ if (computedContent.align.horizontal === "right") {
399
+ style["right"] = `${computedContent.right}px`;
400
+ }
401
+ else {
402
+ style["left"] = `${computedContent.left}px`;
403
+ }
404
+ if (computedContent.align.vertical === "bottom") {
405
+ style["bottom"] = `${computedContent.bottom}px`;
406
+ }
407
+ else {
408
+ style["top"] = `${computedContent.top}px`;
409
+ }
410
+ Object.assign(floatingEl.style, style);
335
411
  }
336
412
  }
337
413
 
@@ -486,12 +562,6 @@ function createElement(options) {
486
562
  }
487
563
 
488
564
  class BackdropRef extends ChildRef {
489
- static from(cover, injector, options) {
490
- const ref = new BackdropRef(document.createElement("div"), cover, injector, options);
491
- // TODO: kérdéses
492
- // options.under.state.control(ref.state)
493
- return ref;
494
- }
495
565
  set visible(visible) {
496
566
  if (this.#visible !== visible) {
497
567
  this.#visible = visible;
@@ -501,32 +571,21 @@ class BackdropRef extends ChildRef {
501
571
  get visible() {
502
572
  return this.#visible;
503
573
  }
504
- #visible = true;
505
- constructor(nativeElement, coverSvc, injector, options) {
506
- super(nativeElement);
507
- this.coverSvc = coverSvc;
508
- this.injector = injector;
574
+ #visible = false;
575
+ constructor(coverRef, under, options) {
576
+ super(coverRef.nativeElement);
577
+ this.coverRef = coverRef;
578
+ this.under = under;
509
579
  this.options = options;
510
- nativeElement.style.position = "absolute";
511
- nativeElement.style.top =
512
- nativeElement.style.right =
513
- nativeElement.style.bottom =
514
- nativeElement.style.left =
515
- "0px";
516
- this.under = options.under;
517
- if (options.type === "solid") {
518
- this.coverSvc
519
- .solid({ container: nativeElement, color: options.color })
520
- .pipe(takeUntil(this.disposed$))
521
- .subscribe();
522
- this.group = `${options.color === "transparent" ? "transparent" : "solid"}`;
523
- }
524
- else if (options.type === "crop") {
525
- this.coverSvc
526
- .crop({ container: nativeElement, color: options.color, crop: options.crop })
527
- .pipe(takeUntil(this.disposed$))
528
- .subscribe();
529
- }
580
+ this.group = `${options.color === "transparent" ? "transparent" : "solid"}`;
581
+ this.state.on("showing", () => {
582
+ this.coverRef
583
+ .show()
584
+ .pipe(takeUntil(this.state.onDone("disposed")))
585
+ .subscribe(() => {
586
+ this.visible = true;
587
+ });
588
+ });
530
589
  }
531
590
  show() {
532
591
  return this.state.run("showing", "shown");
@@ -623,8 +682,9 @@ class LayerService {
623
682
  }
624
683
  return this.append(new ContainerRef(options));
625
684
  }
626
- newBackdrop(options) {
627
- return this.append(BackdropRef.from(this.#cover, this.#injector, options));
685
+ newBackdrop(under, options) {
686
+ const coverRef = this.#cover.create(this.root, options);
687
+ return this.append(new BackdropRef(coverRef, under, options));
628
688
  }
629
689
  append(ref) {
630
690
  if (!this.#children.includes(ref)) {
@@ -652,7 +712,7 @@ class LayerService {
652
712
  children.sort(sortByZIndexDesc);
653
713
  let hasBackdrop = false;
654
714
  for (const child of children) {
655
- if (child instanceof BackdropRef && child.options.type === "solid") {
715
+ if (child instanceof BackdropRef && child.options.color !== "transparent") {
656
716
  child.visible = !hasBackdrop;
657
717
  hasBackdrop = true;
658
718
  }
@@ -756,6 +816,10 @@ class FloatingRef {
756
816
  this.state.on("init", () => this.traitState$.pipe(takeUntil(this.#untilCleanup), debounceTime(5), take(1)));
757
817
  this.state.on("showing", () => {
758
818
  container.nativeElement.style.visibility = "visible";
819
+ container.nativeElement.style.pointerEvents = "none";
820
+ });
821
+ this.state.on("showing", () => {
822
+ container.nativeElement.style.pointerEvents = null;
759
823
  });
760
824
  this.state.on("disposing", () => {
761
825
  container.nativeElement.style.pointerEvents = "none";
@@ -791,23 +855,18 @@ class FloatingRef {
791
855
  this.close(true).subscribe();
792
856
  }
793
857
  watchTrait(name) {
794
- return this.traitState$.pipe(takeUntil(this.#untilDisposed), filter(event => event.name === name), map(event => event.data), shareReplay(1));
858
+ return this.traitState$.pipe(takeUntil(this.#untilDisposed), map(state => state[name]), filter(value => value != null));
795
859
  }
796
860
  #traitState() {
797
- const src = [];
861
+ const src = {};
798
862
  for (const [k, v] of Object.entries(this.#traits)) {
799
- src.push(v.connect(this).pipe(takeUntil(this.#untilCleanup), map(result => {
800
- return { name: k, data: result };
801
- })));
863
+ src[k] = v.connect(this).pipe(takeUntil(this.#untilDisposed), startWith(null));
802
864
  }
803
- if (src.length === 0) {
865
+ if (Object.keys(src).length === 0) {
804
866
  return EMPTY;
805
867
  }
806
- else if (src.length === 1) {
807
- return src[0];
808
- }
809
868
  else {
810
- return merge(...src);
869
+ return combineLatest(src).pipe(shareReplay(1));
811
870
  }
812
871
  }
813
872
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FloatingRef, deps: [{ token: LayerService }, { token: ContainerRef }, { token: TRAITS }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -965,5 +1024,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
965
1024
  * Generated bundle index. Do not edit.
966
1025
  */
967
1026
 
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 };
1027
+ export { AlwaysOnTop, AnimationTrait, AttributeTrait, BackdropRef, BackdropState, BackdropTrait, ChildRef, ComponentPortalRef, ContainerRef, DimensionConstraintTrait, DropAnimation, 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, dropAnimation, fadeAnimation, fallAnimation, focus, keystroke, maxHeight, maxWidth, minHeight, minWidth, modal, position, style };
969
1028
  //# sourceMappingURL=ngutil-floating.mjs.map