@ngutil/floating 0.0.80 → 0.0.82

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,46 +0,0 @@
1
- import { Observable } from "rxjs";
2
- import { FocusService } from "@ngutil/aria";
3
- export class FocusTrait {
4
- constructor(options) {
5
- this.options = options;
6
- this.name = "focus";
7
- }
8
- connect(floatingRef) {
9
- return new Observable(dest => {
10
- const originallyFocused = document.activeElement;
11
- const svc = floatingRef.container.injector.get(FocusService);
12
- if (this.options.connect) {
13
- const tabindex = this.options.tabindex == null ? 0 : this.options.tabindex;
14
- floatingRef.container.nativeElement.setAttribute("tabindex", tabindex.toString());
15
- dest.add(this.options.connect.connect(floatingRef.container).subscribe());
16
- }
17
- if (this.options.trap) {
18
- dest.add(this.#trap(floatingRef, svc).subscribe());
19
- }
20
- floatingRef.state.on("disposing", () => {
21
- const active = document.activeElement;
22
- const floating = floatingRef.container.nativeElement;
23
- if (active === floating || floating.contains(active)) {
24
- originallyFocused && document.contains(originallyFocused) && svc.focus(originallyFocused, "program");
25
- }
26
- dest.complete();
27
- });
28
- dest.next();
29
- });
30
- }
31
- #trap(floatingRef, svc) {
32
- return new Observable(() => {
33
- const trap = svc.focusTrap(floatingRef.container.nativeElement);
34
- floatingRef.state.on("shown", () => {
35
- trap.focusInitialElement();
36
- });
37
- return () => {
38
- trap.destroy();
39
- };
40
- });
41
- }
42
- }
43
- export function focus(options) {
44
- return new FocusTrait(options);
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL2ZvY3VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFakMsT0FBTyxFQUFhLFlBQVksRUFBYyxNQUFNLGNBQWMsQ0FBQTtBQWFsRSxNQUFNLE9BQU8sVUFBVTtJQUduQixZQUFxQixPQUFxQjtRQUFyQixZQUFPLEdBQVAsT0FBTyxDQUFjO1FBRmpDLFNBQUksR0FBRyxPQUFPLENBQUE7SUFFc0IsQ0FBQztJQUU5QyxPQUFPLENBQUMsV0FBd0I7UUFDNUIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxhQUE0QixDQUFBO1lBQy9ELE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUU1RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQTtnQkFDMUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtnQkFDakYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7WUFDN0UsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1lBQ3RELENBQUM7WUFFRCxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO2dCQUNuQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFBO2dCQUNyQyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQTtnQkFDcEQsSUFBSSxNQUFNLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDbkQsaUJBQWlCLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLENBQUE7Z0JBQ3hHLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQ25CLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ2YsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQXdCLEVBQUUsR0FBaUI7UUFDN0MsT0FBTyxJQUFJLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBRS9ELFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1lBQzlCLENBQUMsQ0FBQyxDQUFBO1lBRUYsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ2xCLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFxQjtJQUN2QyxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBGb2N1c2FibGUsIEZvY3VzU2VydmljZSwgRm9jdXNTdGF0ZSB9IGZyb20gXCJAbmd1dGlsL2FyaWFcIlxuaW1wb3J0IHsgRWxlbWVudElucHV0IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHsgRmxvYXRpbmdSZWYgfSBmcm9tIFwiLi4vZmxvYXRpbmctcmVmXCJcbmltcG9ydCB7IEZsb2F0aW5nVHJhaXQgfSBmcm9tIFwiLi9fYmFzZVwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9jdXNPcHRpb25zIHtcbiAgICB0cmFwPzogYm9vbGVhblxuICAgIGNvbm5lY3Q/OiBGb2N1c2FibGUgfCBGb2N1c1N0YXRlXG4gICAgdGFiaW5kZXg/OiBudW1iZXJcbiAgICBmb2N1c09uQ2xvc2U/OiBFbGVtZW50SW5wdXRcbn1cblxuZXhwb3J0IGNsYXNzIEZvY3VzVHJhaXQgaW1wbGVtZW50cyBGbG9hdGluZ1RyYWl0PHVua25vd24+IHtcbiAgICByZWFkb25seSBuYW1lID0gXCJmb2N1c1wiXG5cbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBvcHRpb25zOiBGb2N1c09wdGlvbnMpIHt9XG5cbiAgICBjb25uZWN0KGZsb2F0aW5nUmVmOiBGbG9hdGluZ1JlZik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoZGVzdCA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbGx5Rm9jdXNlZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IHN2YyA9IGZsb2F0aW5nUmVmLmNvbnRhaW5lci5pbmplY3Rvci5nZXQoRm9jdXNTZXJ2aWNlKVxuXG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmNvbm5lY3QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWJpbmRleCA9IHRoaXMub3B0aW9ucy50YWJpbmRleCA9PSBudWxsID8gMCA6IHRoaXMub3B0aW9ucy50YWJpbmRleFxuICAgICAgICAgICAgICAgIGZsb2F0aW5nUmVmLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsIHRhYmluZGV4LnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAgICAgZGVzdC5hZGQodGhpcy5vcHRpb25zLmNvbm5lY3QuY29ubmVjdChmbG9hdGluZ1JlZi5jb250YWluZXIpLnN1YnNjcmliZSgpKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnRyYXApIHtcbiAgICAgICAgICAgICAgICBkZXN0LmFkZCh0aGlzLiN0cmFwKGZsb2F0aW5nUmVmLCBzdmMpLnN1YnNjcmliZSgpKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmbG9hdGluZ1JlZi5zdGF0ZS5vbihcImRpc3Bvc2luZ1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0aW5nID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlID09PSBmbG9hdGluZyB8fCBmbG9hdGluZy5jb250YWlucyhhY3RpdmUpKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsbHlGb2N1c2VkICYmIGRvY3VtZW50LmNvbnRhaW5zKG9yaWdpbmFsbHlGb2N1c2VkKSAmJiBzdmMuZm9jdXMob3JpZ2luYWxseUZvY3VzZWQsIFwicHJvZ3JhbVwiKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZXN0LmNvbXBsZXRlKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBkZXN0Lm5leHQoKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgICN0cmFwKGZsb2F0aW5nUmVmOiBGbG9hdGluZ1JlZiwgc3ZjOiBGb2N1c1NlcnZpY2UpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYXAgPSBzdmMuZm9jdXNUcmFwKGZsb2F0aW5nUmVmLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KVxuXG4gICAgICAgICAgICBmbG9hdGluZ1JlZi5zdGF0ZS5vbihcInNob3duXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0cmFwLmZvY3VzSW5pdGlhbEVsZW1lbnQoKVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICB0cmFwLmRlc3Ryb3koKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzKG9wdGlvbnM6IEZvY3VzT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgRm9jdXNUcmFpdChvcHRpb25zKVxufVxuIl19
@@ -1,10 +0,0 @@
1
- export * from "./_base";
2
- export * from "./animation";
3
- export * from "./backdrop";
4
- export * from "./close-trigger";
5
- export * from "./focus";
6
- export * from "./modal";
7
- export * from "./position";
8
- export * from "./style";
9
- export * from "./attribute";
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsaUJBQWlCLENBQUE7QUFDL0IsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9fYmFzZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9hbmltYXRpb25cIlxuZXhwb3J0ICogZnJvbSBcIi4vYmFja2Ryb3BcIlxuZXhwb3J0ICogZnJvbSBcIi4vY2xvc2UtdHJpZ2dlclwiXG5leHBvcnQgKiBmcm9tIFwiLi9mb2N1c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RhbFwiXG5leHBvcnQgKiBmcm9tIFwiLi9wb3NpdGlvblwiXG5leHBvcnQgKiBmcm9tIFwiLi9zdHlsZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9hdHRyaWJ1dGVcIlxuIl19
@@ -1,24 +0,0 @@
1
- import { fallAnimation } from "./animation";
2
- import { backdrop } from "./backdrop";
3
- import { closeTrigger } from "./close-trigger";
4
- import { focus } from "./focus";
5
- import { position } from "./position";
6
- export function modal() {
7
- return [
8
- position({
9
- anchor: {
10
- ref: "viewport",
11
- link: "center middle"
12
- },
13
- placement: {
14
- ref: "viewport",
15
- padding: "16px"
16
- }
17
- }),
18
- backdrop({ type: "solid", color: "rgba(0, 0, 0, .3)" }),
19
- focus({ trap: true }),
20
- closeTrigger(),
21
- fallAnimation()
22
- ];
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL21vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXJDLE1BQU0sVUFBVSxLQUFLO0lBQ2pCLE9BQU87UUFDSCxRQUFRLENBQUM7WUFDTCxNQUFNLEVBQUU7Z0JBQ0osR0FBRyxFQUFFLFVBQVU7Z0JBQ2YsSUFBSSxFQUFFLGVBQWU7YUFDeEI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1AsR0FBRyxFQUFFLFVBQVU7Z0JBQ2YsT0FBTyxFQUFFLE1BQU07YUFDbEI7U0FDSixDQUFDO1FBQ0YsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztRQUN2RCxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDckIsWUFBWSxFQUFFO1FBQ2QsYUFBYSxFQUFFO0tBQ2xCLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmFsbEFuaW1hdGlvbiB9IGZyb20gXCIuL2FuaW1hdGlvblwiXG5pbXBvcnQgeyBiYWNrZHJvcCB9IGZyb20gXCIuL2JhY2tkcm9wXCJcbmltcG9ydCB7IGNsb3NlVHJpZ2dlciB9IGZyb20gXCIuL2Nsb3NlLXRyaWdnZXJcIlxuaW1wb3J0IHsgZm9jdXMgfSBmcm9tIFwiLi9mb2N1c1wiXG5pbXBvcnQgeyBwb3NpdGlvbiB9IGZyb20gXCIuL3Bvc2l0aW9uXCJcblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGFsKCkge1xuICAgIHJldHVybiBbXG4gICAgICAgIHBvc2l0aW9uKHtcbiAgICAgICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgICAgICAgIHJlZjogXCJ2aWV3cG9ydFwiLFxuICAgICAgICAgICAgICAgIGxpbms6IFwiY2VudGVyIG1pZGRsZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGxhY2VtZW50OiB7XG4gICAgICAgICAgICAgICAgcmVmOiBcInZpZXdwb3J0XCIsXG4gICAgICAgICAgICAgICAgcGFkZGluZzogXCIxNnB4XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGJhY2tkcm9wKHsgdHlwZTogXCJzb2xpZFwiLCBjb2xvcjogXCJyZ2JhKDAsIDAsIDAsIC4zKVwiIH0pLFxuICAgICAgICBmb2N1cyh7IHRyYXA6IHRydWUgfSksXG4gICAgICAgIGNsb3NlVHJpZ2dlcigpLFxuICAgICAgICBmYWxsQW5pbWF0aW9uKClcbiAgICBdXG59XG4iXX0=
@@ -1,110 +0,0 @@
1
- import { combineLatest, distinctUntilChanged, isObservable, map, Observable, of, switchMap, takeUntil } from "rxjs";
2
- import { isEqual } from "lodash-es";
3
- import { isElementInput } from "@ngutil/common";
4
- import { DimensionWatcher, floatingPosition, floatingPositionToStyle, RectWatcher } from "@ngutil/style";
5
- export class PositionTrait {
6
- constructor(options) {
7
- this.name = "position";
8
- const cloned = { ...options };
9
- if (!cloned.placement) {
10
- cloned.placement = { ref: "viewport" };
11
- }
12
- if (!cloned.anchor) {
13
- cloned.anchor = { ref: cloned.placement.ref, link: "center middle" };
14
- }
15
- if (!cloned.content) {
16
- cloned.content = { link: "center middle" };
17
- }
18
- this.options = cloned;
19
- }
20
- connect(floatingRef) {
21
- return new Observable((dest) => {
22
- const injector = floatingRef.container.injector;
23
- const dimWatcher = injector.get(DimensionWatcher);
24
- const rectWatcher = injector.get(RectWatcher);
25
- const constraints = this.options.content.constraints || {};
26
- const constraintsWatches = {
27
- minWidth: sizeWatcher(dimWatcher, "width", constraints.minWidth),
28
- maxWidth: sizeWatcher(dimWatcher, "width", constraints.maxWidth),
29
- minHeight: sizeWatcher(dimWatcher, "height", constraints.minHeight),
30
- maxHeight: sizeWatcher(dimWatcher, "height", constraints.maxHeight)
31
- };
32
- const watches = {
33
- content: dimWatcher.watch(floatingRef.container, "border-box"),
34
- anchor: refWatcher(rectWatcher, this.options.anchor.ref, floatingRef),
35
- placement: refWatcher(rectWatcher, this.options.placement.ref, floatingRef),
36
- constraints: combineLatest(constraintsWatches)
37
- };
38
- return combineLatest(watches)
39
- .pipe(distinctUntilChanged(isEqual))
40
- .subscribe(dims => {
41
- const pos = floatingPosition({ dims, options: this.options });
42
- const floatingEl = floatingRef.container.nativeElement;
43
- Object.assign(floatingEl.style, floatingPositionToStyle(pos));
44
- Object.assign(floatingEl.style, constraintsToStyle(pos, dims.constraints, constraints));
45
- dest.next(pos);
46
- });
47
- }).pipe(takeUntil(floatingRef.state.onExecute("disposing")));
48
- }
49
- }
50
- function refWatcher(rectWatcher, ref, floatingRef) {
51
- if (ref === "layer") {
52
- return rectWatcher.watch(floatingRef.layerSvc.root, "border-box");
53
- }
54
- else if (ref === "viewport" || ref instanceof Window) {
55
- return rectWatcher.watch(window, "border-box");
56
- }
57
- else {
58
- return rectWatcher.watch(ref, "border-box");
59
- }
60
- }
61
- function sizeWatcher(dimWatcher, prop, size) {
62
- if (size === "viewport") {
63
- return dimWatcher.watch(window, "border-box").pipe(map(dim => dim[prop]));
64
- }
65
- else if (typeof size === "number") {
66
- return of(size);
67
- }
68
- else if (isElementInput(size)) {
69
- return dimWatcher.watch(size, "border-box").pipe(map(value => value[prop]));
70
- }
71
- else if (isObservable(size)) {
72
- return size.pipe(switchMap(value => sizeWatcher(dimWatcher, prop, value)));
73
- }
74
- return of(NaN);
75
- }
76
- const MINMAX_NAMES = ["minWidth", "minHeight", "maxWidth", "maxHeight"];
77
- function constraintsToStyle(pos, sizes, options) {
78
- const result = {};
79
- for (const name of MINMAX_NAMES) {
80
- result[name] = constraintValue(pos, options, name, sizes[name]);
81
- }
82
- return result;
83
- }
84
- const DIM_DIRECTIONS = {
85
- width: ["up" /* FloatingPositionDirection.Up */, "down" /* FloatingPositionDirection.Down */, "center" /* FloatingPositionDirection.Center */],
86
- height: ["left" /* FloatingPositionDirection.Left */, "right" /* FloatingPositionDirection.Right */, "center" /* FloatingPositionDirection.Center */]
87
- };
88
- function constraintValue(pos, options, name, value) {
89
- const wh = name.substring(3).toLowerCase();
90
- const maxValue = pos.placement.area[wh];
91
- // determine default or link value
92
- if (value == null || isNaN(value)) {
93
- const src = options[name];
94
- // if the given min/max value is link then test witch sides connected, and only use connected side value
95
- if (src === "link" && DIM_DIRECTIONS[wh].includes(pos.direction)) {
96
- return `${Math.min(maxValue, pos.anchor.rect[wh])}px`;
97
- }
98
- // only return maxWidth / maxHeight, becuse minWidth / minHeight is auto if not presen
99
- const minmax = name.substring(0, 3);
100
- if (minmax === "max") {
101
- return `${maxValue}px`;
102
- }
103
- return "auto";
104
- }
105
- return `${Math.min(maxValue, value)}px`;
106
- }
107
- export function position(options) {
108
- return new PositionTrait(options);
109
- }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL3Bvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixHQUFHLEVBQ0gsVUFBVSxFQUNWLEVBQUUsRUFFRixTQUFTLEVBQ1QsU0FBUyxFQUNaLE1BQU0sTUFBTSxDQUFBO0FBRWIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUVuQyxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdELE9BQU8sRUFFSCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBUWhCLHVCQUF1QixFQUV2QixXQUFXLEVBQ2QsTUFBTSxlQUFlLENBQUE7QUE2Q3RCLE1BQU0sT0FBTyxhQUFhO0lBS3RCLFlBQVksT0FBNkI7UUFKaEMsU0FBSSxHQUFHLFVBQVUsQ0FBQTtRQUt0QixNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUE7UUFFN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixNQUFNLENBQUMsU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFBO1FBQzFDLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFBO1FBQ3hFLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUE7UUFDOUMs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QUksQ0FBQTtRQUN6RCxDQUFDO1FBRUQsc0ZBQXNGO1FBQ3RGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBa0IsQ0FBQTtRQUNwRCxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNuQixPQUFPLEdBQUcsUUFBUSxJQUFJLENBQUE7UUFDMUIsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUE2QjtJQUNsRCxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGNvbWJpbmVMYXRlc3QsXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgaXNPYnNlcnZhYmxlLFxuICAgIG1hcCxcbiAgICBPYnNlcnZhYmxlLFxuICAgIG9mLFxuICAgIFN1YnNjcmliZXIsXG4gICAgc3dpdGNoTWFwLFxuICAgIHRha2VVbnRpbFxufSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tIFwibG9kYXNoLWVzXCJcblxuaW1wb3J0IHsgRWxlbWVudElucHV0LCBpc0VsZW1lbnRJbnB1dCB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5pbXBvcnQge1xuICAgIERpbWVuc2lvbixcbiAgICBEaW1lbnNpb25XYXRjaGVyLFxuICAgIGZsb2F0aW5nUG9zaXRpb24sXG4gICAgRmxvYXRpbmdQb3NpdGlvbixcbiAgICBGbG9hdGluZ1Bvc2l0aW9uQWx0SW5wdXQsXG4gICAgRmxvYXRpbmdQb3NpdGlvbkFuY2hvck9wdGlvbnMsXG4gICAgRmxvYXRpbmdQb3NpdGlvbkNvbnRlbnRPcHRpb25zLFxuICAgIEZsb2F0aW5nUG9zaXRpb25EaW1zLFxuICAgIEZsb2F0aW5nUG9zaXRpb25EaXJlY3Rpb24sXG4gICAgRmxvYXRpbmdQb3NpdGlvblBsYWNlbWVudE9wdGlvbnMsXG4gICAgZmxvYXRpbmdQb3NpdGlvblRvU3R5bGUsXG4gICAgUmVjdCxcbiAgICBSZWN0V2F0Y2hlclxufSBmcm9tIFwiQG5ndXRpbC9zdHlsZVwiXG5cbmltcG9ydCB7IEZsb2F0aW5nUmVmIH0gZnJvbSBcIi4uL2Zsb2F0aW5nLXJlZlwiXG5pbXBvcnQgeyBGbG9hdGluZ1RyYWl0IH0gZnJvbSBcIi4vX2Jhc2VcIlxuXG5leHBvcnQgdHlwZSBQb3NpdGlvblRyYWl0RWxlbWVudFJlZiA9IEVsZW1lbnRJbnB1dCB8IFdpbmRvdyB8IFwibGF5ZXJcIiB8IFwidmlld3BvcnRcIlxuXG5leHBvcnQgdHlwZSBQb3NpdGlvblRyYWl0T3B0aW9ucyA9IHtcbiAgICBjb250ZW50PzogT21pdDxGbG9hdGluZ1Bvc2l0aW9uQ29udGVudE9wdGlvbnMsIFwiY29uc3RyYWludHNcIj4gJiB7IGNvbnN0cmFpbnRzPzogU2l6ZUNvbnN0cmFpbnRzSW5wdXQgfVxuICAgIGFuY2hvcj86IEZsb2F0aW5nUG9zaXRpb25BbmNob3JPcHRpb25zICYgeyByZWY6IFBvc2l0aW9uVHJhaXRFbGVtZW50UmVmIH1cbiAgICBwbGFjZW1lbnQ/OiBGbG9hdGluZ1Bvc2l0aW9uUGxhY2VtZW50T3B0aW9ucyAmIHsgcmVmOiBQb3NpdGlvblRyYWl0RWxlbWVudFJlZiB9XG4gICAgaG9yaXpvbnRhbEFsdD86IEZsb2F0aW5nUG9zaXRpb25BbHRJbnB1dFxuICAgIHZlcnRpY2FsQWx0PzogRmxvYXRpbmdQb3NpdGlvbkFsdElucHV0XG59XG5cbi8qKlxuICogV2lkdGggb3QgaGVpZ2h0IGlucHV0IHZhbHVlc1xuICpcbiAqIC0gYG51bWJlcmA6IGV4Y2FjdCB2YWx1ZVxuICogLSBgRWxlbWVudElucHV0YDogZWxlbWVudCByZWZlcmVuY2UsIGFuZCB0YWtlIHRoZSBkaW1lbnNpb24gZnJvbSBpdFxuICogLSBgbGlua2A6IHRha2UgdGhlIGRpbWVuc2lvbiBmcm9tIHRoZSBhbmNob3IgZWxlbWVudCBhbmQgb25seSBhcHBseSBvbiBjb25uZWN0aW9uIGRpbWVuc2lvbi5cbiAqICAgIGVnLjogYGFuY2hvci5saW5rID0gXCJsZWZ0IGJvdHRvbVwiYCBhbmQgYGNvbnRlbnQubGluayA9IFwibGVmdCB0b3BcImAsIGluIHRoaXMgY2FzZSBvbmx5IHdpZHRoIHdpbGwgYmUgYXBwbGllZC5cbiAqL1xudHlwZSBTaXplSW5wdXRDb25zdCA9IG51bWJlciB8IEVsZW1lbnRJbnB1dCB8IFwibGlua1wiIHwgXCJ2aWV3cG9ydFwiXG50eXBlIFNpemVJbnB1dCA9IFNpemVJbnB1dENvbnN0IHwgT2JzZXJ2YWJsZTxTaXplSW5wdXRDb25zdD5cblxuaW50ZXJmYWNlIFNpemVDb25zdHJhaW50c0lucHV0IHtcbiAgICBtaW5XaWR0aD86IFNpemVJbnB1dFxuICAgIG1heFdpZHRoPzogU2l6ZUlucHV0XG4gICAgbWluSGVpZ2h0PzogU2l6ZUlucHV0XG4gICAgbWF4SGVpZ2h0PzogU2l6ZUlucHV0XG59XG5cbnR5cGUgU2l6ZUNvbnN0cmFpbnRzID0gTm9uTnVsbGFibGU8RmxvYXRpbmdQb3NpdGlvbkRpbXNbXCJjb25zdHJhaW50c1wiXT5cblxudHlwZSBXYXRjaGVzID0ge1xuICAgIGNvbnRlbnQ6IE9ic2VydmFibGU8RGltZW5zaW9uPlxuICAgIGFuY2hvcjogT2JzZXJ2YWJsZTxSZWN0PlxuICAgIHBsYWNlbWVudDogT2JzZXJ2YWJsZTxSZWN0PlxuICAgIGNvbnN0cmFpbnRzOiBPYnNlcnZhYmxlPENvbnN0cmFpbnRzUmVzdWx0PlxufVxuXG50eXBlIENvbnN0cmFpbnRXYXRjaGVzID0geyBbSyBpbiBrZXlvZiBTaXplQ29uc3RyYWludHNdLT86IE9ic2VydmFibGU8Tm9uTnVsbGFibGU8U2l6ZUNvbnN0cmFpbnRzW0tdPj4gfVxudHlwZSBDb25zdHJhaW50c1Jlc3VsdCA9IFJlcXVpcmVkPFNpemVDb25zdHJhaW50cz5cblxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uVHJhaXQgaW1wbGVtZW50cyBGbG9hdGluZ1RyYWl0PEZsb2F0aW5nUG9zaXRpb24+IHtcbiAgICByZWFkb25seSBuYW1lID0gXCJwb3NpdGlvblwiXG5cbiAgICByZWFkb25seSBvcHRpb25zOiBSZXF1aXJlZDxQb3NpdGlvblRyYWl0T3B0aW9ucz5cblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBvc2l0aW9uVHJhaXRPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGNsb25lZCA9IHsgLi4ub3B0aW9ucyB9XG5cbiAgICAgICAgaWYgKCFjbG9uZWQucGxhY2VtZW50KSB7XG4gICAgICAgICAgICBjbG9uZWQucGxhY2VtZW50ID0geyByZWY6IFwidmlld3BvcnRcIiB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNsb25lZC5hbmNob3IpIHtcbiAgICAgICAgICAgIGNsb25lZC5hbmNob3IgPSB7IHJlZjogY2xvbmVkLnBsYWNlbWVudC5yZWYsIGxpbms6IFwiY2VudGVyIG1pZGRsZVwiIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2xvbmVkLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIGNsb25lZC5jb250ZW50ID0geyBsaW5rOiBcImNlbnRlciBtaWRkbGVcIiB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBjbG9uZWQgYXMgYW55XG4gICAgfVxuXG4gICAgY29ubmVjdChmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWY8YW55Pik6IE9ic2VydmFibGU8RmxvYXRpbmdQb3NpdGlvbj4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGRlc3Q6IFN1YnNjcmliZXI8RmxvYXRpbmdQb3NpdGlvbj4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluamVjdG9yID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLmluamVjdG9yXG4gICAgICAgICAgICBjb25zdCBkaW1XYXRjaGVyID0gaW5qZWN0b3IuZ2V0KERpbWVuc2lvbldhdGNoZXIpXG4gICAgICAgICAgICBjb25zdCByZWN0V2F0Y2hlciA9IGluamVjdG9yLmdldChSZWN0V2F0Y2hlcilcblxuICAgICAgICAgICAgY29uc3QgY29uc3RyYWludHMgPSB0aGlzLm9wdGlvbnMuY29udGVudC5jb25zdHJhaW50cyB8fCB7fVxuICAgICAgICAgICAgY29uc3QgY29uc3RyYWludHNXYXRjaGVzOiBDb25zdHJhaW50V2F0Y2hlcyA9IHtcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogc2l6ZVdhdGNoZXIoZGltV2F0Y2hlciwgXCJ3aWR0aFwiLCBjb25zdHJhaW50cy5taW5XaWR0aCksXG4gICAgICAgICAgICAgICAgbWF4V2lkdGg6IHNpemVXYXRjaGVyKGRpbVdhdGNoZXIsIFwid2lkdGhcIiwgY29uc3RyYWludHMubWF4V2lkdGgpLFxuICAgICAgICAgICAgICAgIG1pbkhlaWdodDogc2l6ZVdhdGNoZXIoZGltV2F0Y2hlciwgXCJoZWlnaHRcIiwgY29uc3RyYWludHMubWluSGVpZ2h0KSxcbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IHNpemVXYXRjaGVyKGRpbVdhdGNoZXIsIFwiaGVpZ2h0XCIsIGNvbnN0cmFpbnRzLm1heEhlaWdodClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgd2F0Y2hlczogV2F0Y2hlcyA9IHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBkaW1XYXRjaGVyLndhdGNoKGZsb2F0aW5nUmVmLmNvbnRhaW5lciwgXCJib3JkZXItYm94XCIpLFxuICAgICAgICAgICAgICAgIGFuY2hvcjogcmVmV2F0Y2hlcihyZWN0V2F0Y2hlciwgdGhpcy5vcHRpb25zLmFuY2hvci5yZWYsIGZsb2F0aW5nUmVmKSxcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6IHJlZldhdGNoZXIocmVjdFdhdGNoZXIsIHRoaXMub3B0aW9ucy5wbGFjZW1lbnQucmVmLCBmbG9hdGluZ1JlZiksXG4gICAgICAgICAgICAgICAgY29uc3RyYWludHM6IGNvbWJpbmVMYXRlc3QoY29uc3RyYWludHNXYXRjaGVzKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdCh3YXRjaGVzKVxuICAgICAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzRXF1YWwpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZGltcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IGZsb2F0aW5nUG9zaXRpb24oeyBkaW1zLCBvcHRpb25zOiB0aGlzLm9wdGlvbnMgfSlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXRpbmdFbCA9IGZsb2F0aW5nUmVmLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZmxvYXRpbmdFbC5zdHlsZSwgZmxvYXRpbmdQb3NpdGlvblRvU3R5bGUocG9zKSlcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihmbG9hdGluZ0VsLnN0eWxlLCBjb25zdHJhaW50c1RvU3R5bGUocG9zLCBkaW1zLmNvbnN0cmFpbnRzLCBjb25zdHJhaW50cykpXG4gICAgICAgICAgICAgICAgICAgIGRlc3QubmV4dChwb3MpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgfSkucGlwZSh0YWtlVW50aWwoZmxvYXRpbmdSZWYuc3RhdGUub25FeGVjdXRlKFwiZGlzcG9zaW5nXCIpKSlcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHJlZldhdGNoZXIocmVjdFdhdGNoZXI6IFJlY3RXYXRjaGVyLCByZWY6IFBvc2l0aW9uVHJhaXRFbGVtZW50UmVmLCBmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWY8YW55Pikge1xuICAgIGlmIChyZWYgPT09IFwibGF5ZXJcIikge1xuICAgICAgICByZXR1cm4gcmVjdFdhdGNoZXIud2F0Y2goZmxvYXRpbmdSZWYubGF5ZXJTdmMucm9vdCwgXCJib3JkZXItYm94XCIpXG4gICAgfSBlbHNlIGlmIChyZWYgPT09IFwidmlld3BvcnRcIiB8fCByZWYgaW5zdGFuY2VvZiBXaW5kb3cpIHtcbiAgICAgICAgcmV0dXJuIHJlY3RXYXRjaGVyLndhdGNoKHdpbmRvdywgXCJib3JkZXItYm94XCIpXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJlY3RXYXRjaGVyLndhdGNoKHJlZiwgXCJib3JkZXItYm94XCIpXG4gICAgfVxufVxuXG5mdW5jdGlvbiBzaXplV2F0Y2hlcihkaW1XYXRjaGVyOiBEaW1lbnNpb25XYXRjaGVyLCBwcm9wOiBcIndpZHRoXCIgfCBcImhlaWdodFwiLCBzaXplPzogU2l6ZUlucHV0KTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBpZiAoc2l6ZSA9PT0gXCJ2aWV3cG9ydFwiKSB7XG4gICAgICAgIHJldHVybiBkaW1XYXRjaGVyLndhdGNoKHdpbmRvdywgXCJib3JkZXItYm94XCIpLnBpcGUobWFwKGRpbSA9PiBkaW1bcHJvcF0pKVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHNpemUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIG9mKHNpemUpXG4gICAgfSBlbHNlIGlmIChpc0VsZW1lbnRJbnB1dChzaXplKSkge1xuICAgICAgICByZXR1cm4gZGltV2F0Y2hlci53YXRjaChzaXplLCBcImJvcmRlci1ib3hcIikucGlwZShtYXAodmFsdWUgPT4gdmFsdWVbcHJvcF0pKVxuICAgIH0gZWxzZSBpZiAoaXNPYnNlcnZhYmxlKHNpemUpKSB7XG4gICAgICAgIHJldHVybiAoc2l6ZSBhcyBPYnNlcnZhYmxlPG51bWJlciB8IEVsZW1lbnRJbnB1dD4pLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAodmFsdWUgPT4gc2l6ZVdhdGNoZXIoZGltV2F0Y2hlciwgcHJvcCwgdmFsdWUpKVxuICAgICAgICApXG4gICAgfVxuICAgIHJldHVybiBvZihOYU4pXG59XG5cbnR5cGUgTWluTWF4TmFtZXMgPSBrZXlvZiBTaXplQ29uc3RyYWludHNcbmNvbnN0IE1JTk1BWF9OQU1FUzogQXJyYXk8TWluTWF4TmFtZXM+ID0gW1wibWluV2lkdGhcIiwgXCJtaW5IZWlnaHRcIiwgXCJtYXhXaWR0aFwiLCBcIm1heEhlaWdodFwiXVxuXG5mdW5jdGlvbiBjb25zdHJhaW50c1RvU3R5bGUocG9zOiBGbG9hdGluZ1Bvc2l0aW9uLCBzaXplczogQ29uc3RyYWludHNSZXN1bHQsIG9wdGlvbnM6IFNpemVDb25zdHJhaW50c0lucHV0KSB7XG4gICAgY29uc3QgcmVzdWx0OiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+ID0ge31cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgTUlOTUFYX05BTUVTKSB7XG4gICAgICAgIHJlc3VsdFtuYW1lXSA9IGNvbnN0cmFpbnRWYWx1ZShwb3MsIG9wdGlvbnMsIG5hbWUsIHNpemVzW25hbWVdKVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0XG59XG5cbmNvbnN0IERJTV9ESVJFQ1RJT05TOiBSZWNvcmQ8XCJ3aWR0aFwiIHwgXCJoZWlnaHRcIiwgQXJyYXk8RmxvYXRpbmdQb3NpdGlvbkRpcmVjdGlvbj4+ID0ge1xuICAgIHdpZHRoOiBbRmxvYXRpbmdQb3NpdGlvbkRpcmVjdGlvbi5VcCwgRmxvYXRpbmdQb3NpdGlvbkRpcmVjdGlvbi5Eb3duLCBGbG9hdGluZ1Bvc2l0aW9uRGlyZWN0aW9uLkNlbnRlcl0sXG4gICAgaGVpZ2h0OiBbRmxvYXRpbmdQb3NpdGlvbkRpcmVjdGlvbi5MZWZ0LCBGbG9hdGluZ1Bvc2l0aW9uRGlyZWN0aW9uLlJpZ2h0LCBGbG9hdGluZ1Bvc2l0aW9uRGlyZWN0aW9uLkNlbnRlcl1cbn1cblxuZnVuY3Rpb24gY29uc3RyYWludFZhbHVlKHBvczogRmxvYXRpbmdQb3NpdGlvbiwgb3B0aW9uczogU2l6ZUNvbnN0cmFpbnRzSW5wdXQsIG5hbWU6IE1pbk1heE5hbWVzLCB2YWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3Qgd2ggPSBuYW1lLnN1YnN0cmluZygzKS50b0xvd2VyQ2FzZSgpIGFzIFwid2lkdGhcIiB8IFwiaGVpZ2h0XCJcbiAgICBjb25zdCBtYXhWYWx1ZSA9IHBvcy5wbGFjZW1lbnQuYXJlYVt3aF1cblxuICAgIC8vIGRldGVybWluZSBkZWZhdWx0IG9yIGxpbmsgdmFsdWVcbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCBpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgY29uc3Qgc3JjID0gb3B0aW9uc1tuYW1lXVxuXG4gICAgICAgIC8vIGlmIHRoZSBnaXZlbiBtaW4vbWF4IHZhbHVlIGlzIGxpbmsgdGhlbiB0ZXN0IHdpdGNoIHNpZGVzIGNvbm5lY3RlZCwgYW5kIG9ubHkgdXNlIGNvbm5lY3RlZCBzaWRlIHZhbHVlXG4gICAgICAgIGlmIChzcmMgPT09IFwibGlua1wiICYmIERJTV9ESVJFQ1RJT05TW3doXS5pbmNsdWRlcyhwb3MuZGlyZWN0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke01hdGgubWluKG1heFZhbHVlLCBwb3MuYW5jaG9yLnJlY3Rbd2hdKX1weGBcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG9ubHkgcmV0dXJuIG1heFdpZHRoIC8gbWF4SGVpZ2h0LCBiZWN1c2UgbWluV2lkdGggLyBtaW5IZWlnaHQgaXMgYXV0byBpZiBub3QgcHJlc2VuXG4gICAgICAgIGNvbnN0IG1pbm1heCA9IG5hbWUuc3Vic3RyaW5nKDAsIDMpIGFzIFwibWluXCIgfCBcIm1heFwiXG4gICAgICAgIGlmIChtaW5tYXggPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHttYXhWYWx1ZX1weGBcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBcImF1dG9cIlxuICAgIH1cblxuICAgIHJldHVybiBgJHtNYXRoLm1pbihtYXhWYWx1ZSwgdmFsdWUpfXB4YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zaXRpb24ob3B0aW9uczogUG9zaXRpb25UcmFpdE9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IFBvc2l0aW9uVHJhaXQob3B0aW9ucylcbn1cbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { of } from "rxjs";
2
- export class StyleTrait {
3
- constructor(styles) {
4
- this.styles = styles;
5
- this.name = "style";
6
- }
7
- connect(floatingRef) {
8
- Object.assign(floatingRef.container.nativeElement.style, this.styles);
9
- return of(this.styles);
10
- }
11
- }
12
- export function style(styles) {
13
- return new StyleTrait(styles);
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL3N0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFLckMsTUFBTSxPQUFPLFVBQVU7SUFHbkIsWUFBcUIsTUFBb0M7UUFBcEMsV0FBTSxHQUFOLE1BQU0sQ0FBOEI7UUFGaEQsU0FBSSxHQUFHLE9BQU8sQ0FBQTtJQUVxQyxDQUFDO0lBRTdELE9BQU8sQ0FBQyxXQUF3QjtRQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDckUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzFCLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsTUFBb0M7SUFDdEQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IEZsb2F0aW5nUmVmIH0gZnJvbSBcIi4uL2Zsb2F0aW5nLXJlZlwiXG5pbXBvcnQgeyBGbG9hdGluZ1RyYWl0IH0gZnJvbSBcIi4vX2Jhc2VcIlxuXG5leHBvcnQgY2xhc3MgU3R5bGVUcmFpdCBpbXBsZW1lbnRzIEZsb2F0aW5nVHJhaXQ8UGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPj4ge1xuICAgIHJlYWRvbmx5IG5hbWUgPSBcInN0eWxlXCJcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHN0eWxlczogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPikge31cblxuICAgIGNvbm5lY3QoZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmKTogT2JzZXJ2YWJsZTxQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+PiB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oZmxvYXRpbmdSZWYuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUsIHRoaXMuc3R5bGVzKVxuICAgICAgICByZXR1cm4gb2YodGhpcy5zdHlsZXMpXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3R5bGUoc3R5bGVzOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+KSB7XG4gICAgcmV0dXJuIG5ldyBTdHlsZVRyYWl0KHN0eWxlcylcbn1cbiJdfQ==
package/esm2022/index.mjs DELETED
@@ -1,17 +0,0 @@
1
- import { FloatingService } from "./floating";
2
- import { LAYER_CONTAINER_ZINDEX_START, LayerContainer, LayerService, RootLayer } from "./layer";
3
- export * from "./floating";
4
- export * from "./layer";
5
- const DEFAULTS = {
6
- zIndexStart: 10000
7
- };
8
- export function provideFloating(options = {}) {
9
- const opts = { ...DEFAULTS, ...options };
10
- return [
11
- { provide: LAYER_CONTAINER_ZINDEX_START, useValue: opts.zIndexStart },
12
- { provide: LayerContainer, useClass: RootLayer },
13
- LayerService,
14
- FloatingService
15
- ];
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM1QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFFL0YsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxTQUFTLENBQUE7QUFNdkIsTUFBTSxRQUFRLEdBQTJCO0lBQ3JDLFdBQVcsRUFBRSxLQUFLO0NBQ3JCLENBQUE7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFVBQWtDLEVBQUU7SUFDaEUsTUFBTSxJQUFJLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFBO0lBQ3hDLE9BQU87UUFDSCxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNyRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTtRQUNoRCxZQUFZO1FBQ1osZUFBZTtLQUNsQixDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyBGbG9hdGluZ1NlcnZpY2UgfSBmcm9tIFwiLi9mbG9hdGluZ1wiXG5pbXBvcnQgeyBMQVlFUl9DT05UQUlORVJfWklOREVYX1NUQVJULCBMYXllckNvbnRhaW5lciwgTGF5ZXJTZXJ2aWNlLCBSb290TGF5ZXIgfSBmcm9tIFwiLi9sYXllclwiXG5cbmV4cG9ydCAqIGZyb20gXCIuL2Zsb2F0aW5nXCJcbmV4cG9ydCAqIGZyb20gXCIuL2xheWVyXCJcblxuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlRmxvYXRpbmdPcHRpb25zIHtcbiAgICB6SW5kZXhTdGFydD86IG51bWJlclxufVxuXG5jb25zdCBERUZBVUxUUzogUHJvdmlkZUZsb2F0aW5nT3B0aW9ucyA9IHtcbiAgICB6SW5kZXhTdGFydDogMTAwMDBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVGbG9hdGluZyhvcHRpb25zOiBQcm92aWRlRmxvYXRpbmdPcHRpb25zID0ge30pOiBQcm92aWRlcltdIHtcbiAgICBjb25zdCBvcHRzID0geyAuLi5ERUZBVUxUUywgLi4ub3B0aW9ucyB9XG4gICAgcmV0dXJuIFtcbiAgICAgICAgeyBwcm92aWRlOiBMQVlFUl9DT05UQUlORVJfWklOREVYX1NUQVJULCB1c2VWYWx1ZTogb3B0cy56SW5kZXhTdGFydCB9LFxuICAgICAgICB7IHByb3ZpZGU6IExheWVyQ29udGFpbmVyLCB1c2VDbGFzczogUm9vdExheWVyIH0sXG4gICAgICAgIExheWVyU2VydmljZSxcbiAgICAgICAgRmxvYXRpbmdTZXJ2aWNlXG4gICAgXVxufVxuIl19
@@ -1,33 +0,0 @@
1
- import { takeUntil } from "rxjs";
2
- import { ChildRef } from "./child-ref";
3
- export class BackdropRef extends ChildRef {
4
- set visible(visible) {
5
- if (this.#visible !== visible) {
6
- this.#visible = visible;
7
- this.nativeElement.style.visibility = visible ? "visible" : "hidden";
8
- }
9
- }
10
- get visible() {
11
- return this.#visible;
12
- }
13
- #visible = false;
14
- constructor(coverRef, under, options) {
15
- super(coverRef.nativeElement);
16
- this.coverRef = coverRef;
17
- this.under = under;
18
- this.options = options;
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
- });
28
- }
29
- show() {
30
- return this.state.run("showing", "shown");
31
- }
32
- }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2Ryb3AtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2xheWVyL2JhY2tkcm9wLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBS2hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFJdEMsTUFBTSxPQUFPLFdBQVksU0FBUSxRQUFRO0lBR3JDLElBQUksT0FBTyxDQUFDLE9BQWdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtRQUN4RSxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUN4QixDQUFDO0lBQ0QsUUFBUSxHQUFZLEtBQUssQ0FBQTtJQUV6QixZQUNhLFFBQXVCLEVBQ3ZCLEtBQWUsRUFDZixPQUFxQjtRQUU5QixLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBSnBCLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDdkIsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFJOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRTNFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVE7aUJBQ1IsSUFBSSxFQUFFO2lCQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztpQkFDOUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtZQUN2QixDQUFDLENBQUMsQ0FBQTtRQUNWLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELElBQUk7UUFDQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IENvdmVyUmVmIH0gZnJvbSBcIkBuZ3V0aWwvZ3JhcGhpY3NcIlxuaW1wb3J0IHsgQ292ZXJPcHRpb25zIH0gZnJvbSBcIkBuZ3V0aWwvZ3JhcGhpY3NcIlxuXG5pbXBvcnQgeyBDaGlsZFJlZiB9IGZyb20gXCIuL2NoaWxkLXJlZlwiXG5cbmV4cG9ydCB0eXBlIEJhY2tkcm9wT3B0aW9ucyA9IENvdmVyT3B0aW9uc1xuXG5leHBvcnQgY2xhc3MgQmFja2Ryb3BSZWYgZXh0ZW5kcyBDaGlsZFJlZiB7XG4gICAgcmVhZG9ubHkgZ3JvdXA6IHN0cmluZ1xuXG4gICAgc2V0IHZpc2libGUodmlzaWJsZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy4jdmlzaWJsZSAhPT0gdmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy4jdmlzaWJsZSA9IHZpc2libGVcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gdmlzaWJsZSA/IFwidmlzaWJsZVwiIDogXCJoaWRkZW5cIlxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLiN2aXNpYmxlXG4gICAgfVxuICAgICN2aXNpYmxlOiBib29sZWFuID0gZmFsc2VcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBjb3ZlclJlZjogQ292ZXJSZWY8YW55PixcbiAgICAgICAgcmVhZG9ubHkgdW5kZXI6IENoaWxkUmVmLFxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBDb3Zlck9wdGlvbnNcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY292ZXJSZWYubmF0aXZlRWxlbWVudClcblxuICAgICAgICB0aGlzLmdyb3VwID0gYCR7b3B0aW9ucy5jb2xvciA9PT0gXCJ0cmFuc3BhcmVudFwiID8gXCJ0cmFuc3BhcmVudFwiIDogXCJzb2xpZFwifWBcblxuICAgICAgICB0aGlzLnN0YXRlLm9uKFwic2hvd2luZ1wiLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvdmVyUmVmXG4gICAgICAgICAgICAgICAgLnNob3coKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnN0YXRlLm9uRG9uZShcImRpc3Bvc2VkXCIpKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgc2hvdygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUucnVuKFwic2hvd2luZ1wiLCBcInNob3duXCIpXG4gICAgfVxufVxuIl19
@@ -1,65 +0,0 @@
1
- import { ElementRef } from "@angular/core";
2
- import { filter, of, share, take } from "rxjs";
3
- import { Lifecycle } from "@ngutil/common";
4
- export var AlwaysOnTop;
5
- (function (AlwaysOnTop) {
6
- /**
7
- * Display as open order
8
- */
9
- AlwaysOnTop[AlwaysOnTop["None"] = 0] = "None";
10
- /**
11
- * Modals
12
- */
13
- AlwaysOnTop[AlwaysOnTop["Modal"] = 2] = "Modal";
14
- /**
15
- * User access control
16
- */
17
- AlwaysOnTop[AlwaysOnTop["UAC"] = 3] = "UAC";
18
- /**
19
- * Toast...
20
- */
21
- AlwaysOnTop[AlwaysOnTop["Toast"] = 4] = "Toast";
22
- /**
23
- * Like select drop down, tooltip, stb...
24
- */
25
- AlwaysOnTop[AlwaysOnTop["Control"] = 5] = "Control";
26
- })(AlwaysOnTop || (AlwaysOnTop = {}));
27
- // TODO: disposing, disposed
28
- export class ChildRef extends ElementRef {
29
- /**
30
- * @internal
31
- */
32
- set zIndex(val) {
33
- if (this._zIndex !== val) {
34
- this._zIndex = val;
35
- this.nativeElement.style.zIndex = String(val);
36
- }
37
- }
38
- get zIndex() {
39
- return this._zIndex;
40
- }
41
- constructor(nativeElement, alwaysOnTop = AlwaysOnTop.None) {
42
- super(nativeElement);
43
- this.alwaysOnTop = alwaysOnTop;
44
- this.state = new Lifecycle({
45
- showing: {},
46
- shown: {},
47
- disposing: { cancellable: false },
48
- disposed: { cancellable: false, order: "sequential" }
49
- });
50
- this._zIndex = -1;
51
- this.disposed$ = this.state.current$.pipe(filter(state => state === "disposed"), take(1), share());
52
- this.state.on("disposed", () => {
53
- this.nativeElement.parentElement?.removeChild(this.nativeElement);
54
- this.state.destroy();
55
- delete this.state;
56
- });
57
- }
58
- dispose() {
59
- if (this.state == null) {
60
- return of();
61
- }
62
- return this.state.run(["disposing", "disposed"]);
63
- }
64
- }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2xheWVyL2NoaWxkLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLE9BQU8sRUFBRSxNQUFNLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBSTFDLE1BQU0sQ0FBTixJQUFZLFdBeUJYO0FBekJELFdBQVksV0FBVztJQUNuQjs7T0FFRztJQUNILDZDQUFRLENBQUE7SUFFUjs7T0FFRztJQUNILCtDQUFTLENBQUE7SUFFVDs7T0FFRztJQUNILDJDQUFPLENBQUE7SUFFUDs7T0FFRztJQUNILCtDQUFTLENBQUE7SUFFVDs7T0FFRztJQUNILG1EQUFXLENBQUE7QUFDZixDQUFDLEVBekJXLFdBQVcsS0FBWCxXQUFXLFFBeUJ0QjtBQUVELDRCQUE0QjtBQUU1QixNQUFNLE9BQWdCLFFBQThDLFNBQVEsVUFBYTtJQVFyRjs7T0FFRztJQUNILElBQUksTUFBTSxDQUFDLEdBQVc7UUFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFBO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDakQsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDdkIsQ0FBQztJQVNELFlBQ0ksYUFBZ0IsRUFDQSxjQUEyQixXQUFXLENBQUMsSUFBSTtRQUUzRCxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7UUFGSixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0M7UUE3QnRELFVBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUMzQixPQUFPLEVBQUUsRUFBRTtZQUNYLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtZQUNqQyxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7U0FDeEQsQ0FBQyxDQUFBO1FBY00sWUFBTyxHQUFXLENBQUMsQ0FBQyxDQUFBO1FBRVQsY0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbkQsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxFQUNyQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsS0FBSyxFQUFFLENBQ1YsQ0FBQTtRQU9HLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3BCLE9BQVEsSUFBWSxDQUFDLEtBQUssQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxFQUFFLENBQUE7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBQ3BELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlLCB0YWtlIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBMaWZlY3ljbGUgfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuXG5leHBvcnQgdHlwZSBEaXNwb3NlSGFuZGxlcjxUPiA9IChyZWY6IFQpID0+IE9ic2VydmFibGU8dm9pZD5cblxuZXhwb3J0IGVudW0gQWx3YXlzT25Ub3Age1xuICAgIC8qKlxuICAgICAqIERpc3BsYXkgYXMgb3BlbiBvcmRlclxuICAgICAqL1xuICAgIE5vbmUgPSAwLFxuXG4gICAgLyoqXG4gICAgICogTW9kYWxzXG4gICAgICovXG4gICAgTW9kYWwgPSAyLFxuXG4gICAgLyoqXG4gICAgICogVXNlciBhY2Nlc3MgY29udHJvbFxuICAgICAqL1xuICAgIFVBQyA9IDMsXG5cbiAgICAvKipcbiAgICAgKiBUb2FzdC4uLlxuICAgICAqL1xuICAgIFRvYXN0ID0gNCxcblxuICAgIC8qKlxuICAgICAqIExpa2Ugc2VsZWN0IGRyb3AgZG93biwgdG9vbHRpcCwgc3RiLi4uXG4gICAgICovXG4gICAgQ29udHJvbCA9IDVcbn1cblxuLy8gVE9ETzogZGlzcG9zaW5nLCBkaXNwb3NlZFxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2hpbGRSZWY8VCBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+IGV4dGVuZHMgRWxlbWVudFJlZjxUPiB7XG4gICAgcmVhZG9ubHkgc3RhdGUgPSBuZXcgTGlmZWN5Y2xlKHtcbiAgICAgICAgc2hvd2luZzoge30sXG4gICAgICAgIHNob3duOiB7fSxcbiAgICAgICAgZGlzcG9zaW5nOiB7IGNhbmNlbGxhYmxlOiBmYWxzZSB9LFxuICAgICAgICBkaXNwb3NlZDogeyBjYW5jZWxsYWJsZTogZmFsc2UsIG9yZGVyOiBcInNlcXVlbnRpYWxcIiB9XG4gICAgfSlcblxuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHNldCB6SW5kZXgodmFsOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuX3pJbmRleCAhPT0gdmFsKSB7XG4gICAgICAgICAgICB0aGlzLl96SW5kZXggPSB2YWxcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zdHlsZS56SW5kZXggPSBTdHJpbmcodmFsKVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB6SW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3pJbmRleFxuICAgIH1cbiAgICBwcml2YXRlIF96SW5kZXg6IG51bWJlciA9IC0xXG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzcG9zZWQkID0gdGhpcy5zdGF0ZS5jdXJyZW50JC5waXBlKFxuICAgICAgICBmaWx0ZXIoc3RhdGUgPT4gc3RhdGUgPT09IFwiZGlzcG9zZWRcIiksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHNoYXJlKClcbiAgICApXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbmF0aXZlRWxlbWVudDogVCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGFsd2F5c09uVG9wOiBBbHdheXNPblRvcCA9IEFsd2F5c09uVG9wLk5vbmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIobmF0aXZlRWxlbWVudClcbiAgICAgICAgdGhpcy5zdGF0ZS5vbihcImRpc3Bvc2VkXCIsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Py5yZW1vdmVDaGlsZCh0aGlzLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICB0aGlzLnN0YXRlLmRlc3Ryb3koKVxuICAgICAgICAgICAgZGVsZXRlICh0aGlzIGFzIGFueSkuc3RhdGVcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBkaXNwb3NlKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLnJ1bihbXCJkaXNwb3NpbmdcIiwgXCJkaXNwb3NlZFwiXSlcbiAgICB9XG59XG4iXX0=
@@ -1,42 +0,0 @@
1
- import { Injector } from "@angular/core";
2
- import { AlwaysOnTop, ChildRef } from "./child-ref";
3
- export class ContainerRef extends ChildRef {
4
- constructor(options) {
5
- super(createElement(options), options.alwaysOnTop || AlwaysOnTop.None);
6
- this.options = options;
7
- this.injectorName = "ContainerRef";
8
- const providers = options.providers || [];
9
- this.injector = Injector.create({
10
- providers: [...this.getProviders(), ...providers],
11
- parent: options.injector,
12
- name: this.injectorName
13
- });
14
- this.state.on("disposed", () => {
15
- delete this.options;
16
- delete this.injector;
17
- });
18
- }
19
- getProviders() {
20
- return [
21
- { provide: ChildRef, useValue: this },
22
- { provide: ContainerRef, useValue: this }
23
- ];
24
- }
25
- }
26
- function createElement(options) {
27
- const div = document.createElement("div");
28
- div.style.position = "absolute";
29
- div.style.top = "0";
30
- div.style.left = "0";
31
- div.style.width = "max-content";
32
- div.style.display = "inline-flex";
33
- div.style.flexDirection = "column";
34
- div.style.alignItems = "stretch";
35
- div.style.justifyContent = "stretch";
36
- div.style.boxSizing = "border-box";
37
- if (options.classes) {
38
- div.classList.add(...options.classes);
39
- }
40
- return div;
41
- }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9sYXllci9jb250YWluZXItcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQVksTUFBTSxlQUFlLENBQUE7QUFFbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFXbkQsTUFBTSxPQUFPLFlBQWEsU0FBUSxRQUFRO0lBS3RDLFlBQTRCLE9BQXlCO1FBQ2pELEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7UUFEOUMsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFGM0MsaUJBQVksR0FBRyxjQUFjLENBQUE7UUFLbkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUE7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQzVCLFNBQVMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDO1lBQ2pELE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUTtZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDMUIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUMzQixPQUFRLElBQVksQ0FBQyxPQUFPLENBQUE7WUFDNUIsT0FBUSxJQUFZLENBQUMsUUFBUSxDQUFBO1FBQ2pDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVTLFlBQVk7UUFDbEIsT0FBTztZQUNILEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQzVDLENBQUE7SUFDTCxDQUFDO0NBQ0o7QUFFRCxTQUFTLGFBQWEsQ0FBQyxPQUF5QjtJQUM1QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQTtJQUMvQixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUE7SUFDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFBO0lBQ3BCLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQTtJQUMvQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUE7SUFDakMsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFBO0lBQ2xDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtJQUNoQyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUE7SUFDcEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFBO0lBRWxDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgUHJvdmlkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IEFsd2F5c09uVG9wLCBDaGlsZFJlZiB9IGZyb20gXCIuL2NoaWxkLXJlZlwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVyT3B0aW9ucyB7XG4gICAgYWx3YXlzT25Ub3A/OiBBbHdheXNPblRvcFxuICAgIGVsZXZhdGlvbj86IG51bWJlclxuICAgIGNsYXNzZXM/OiBzdHJpbmdbXVxuICAgIGF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gICAgaW5qZWN0b3I/OiBJbmplY3RvclxuICAgIHByb3ZpZGVycz86IFByb3ZpZGVyW11cbn1cblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lclJlZiBleHRlbmRzIENoaWxkUmVmIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yXG5cbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3JOYW1lID0gXCJDb250YWluZXJSZWZcIlxuXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG9wdGlvbnM6IENvbnRhaW5lck9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoY3JlYXRlRWxlbWVudChvcHRpb25zKSwgb3B0aW9ucy5hbHdheXNPblRvcCB8fCBBbHdheXNPblRvcC5Ob25lKVxuXG4gICAgICAgIGNvbnN0IHByb3ZpZGVycyA9IG9wdGlvbnMucHJvdmlkZXJzIHx8IFtdXG4gICAgICAgIHRoaXMuaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgcHJvdmlkZXJzOiBbLi4udGhpcy5nZXRQcm92aWRlcnMoKSwgLi4ucHJvdmlkZXJzXSxcbiAgICAgICAgICAgIHBhcmVudDogb3B0aW9ucy5pbmplY3RvcixcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuaW5qZWN0b3JOYW1lXG4gICAgICAgIH0pXG5cbiAgICAgICAgdGhpcy5zdGF0ZS5vbihcImRpc3Bvc2VkXCIsICgpID0+IHtcbiAgICAgICAgICAgIGRlbGV0ZSAodGhpcyBhcyBhbnkpLm9wdGlvbnNcbiAgICAgICAgICAgIGRlbGV0ZSAodGhpcyBhcyBhbnkpLmluamVjdG9yXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFByb3ZpZGVycygpOiBQcm92aWRlcltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgcHJvdmlkZTogQ2hpbGRSZWYsIHVzZVZhbHVlOiB0aGlzIH0sXG4gICAgICAgICAgICB7IHByb3ZpZGU6IENvbnRhaW5lclJlZiwgdXNlVmFsdWU6IHRoaXMgfVxuICAgICAgICBdXG4gICAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50KG9wdGlvbnM6IENvbnRhaW5lck9wdGlvbnMpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKVxuICAgIGRpdi5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIlxuICAgIGRpdi5zdHlsZS50b3AgPSBcIjBcIlxuICAgIGRpdi5zdHlsZS5sZWZ0ID0gXCIwXCJcbiAgICBkaXYuc3R5bGUud2lkdGggPSBcIm1heC1jb250ZW50XCJcbiAgICBkaXYuc3R5bGUuZGlzcGxheSA9IFwiaW5saW5lLWZsZXhcIlxuICAgIGRpdi5zdHlsZS5mbGV4RGlyZWN0aW9uID0gXCJjb2x1bW5cIlxuICAgIGRpdi5zdHlsZS5hbGlnbkl0ZW1zID0gXCJzdHJldGNoXCJcbiAgICBkaXYuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSBcInN0cmV0Y2hcIlxuICAgIGRpdi5zdHlsZS5ib3hTaXppbmcgPSBcImJvcmRlci1ib3hcIlxuXG4gICAgaWYgKG9wdGlvbnMuY2xhc3Nlcykge1xuICAgICAgICBkaXYuY2xhc3NMaXN0LmFkZCguLi5vcHRpb25zLmNsYXNzZXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGRpdlxufVxuIl19
@@ -1,4 +0,0 @@
1
- import { ChildRef } from "./child-ref";
2
- export class ExternalRef extends ChildRef {
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2xheWVyL2V4dGVybmFsLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXRDLE1BQU0sT0FBTyxXQUFZLFNBQVEsUUFBUTtDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hpbGRSZWYgfSBmcm9tIFwiLi9jaGlsZC1yZWZcIlxuXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxSZWYgZXh0ZW5kcyBDaGlsZFJlZiB7fVxuIl19
@@ -1,7 +0,0 @@
1
- export * from "./backdrop-ref";
2
- export * from "./child-ref";
3
- export * from "./layer.service";
4
- export * from "./portal-ref";
5
- export * from "./container-ref";
6
- export * from "./layer-container";
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvbGF5ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsaUJBQWlCLENBQUE7QUFDL0IsY0FBYyxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2JhY2tkcm9wLXJlZlwiXG5leHBvcnQgKiBmcm9tIFwiLi9jaGlsZC1yZWZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbGF5ZXIuc2VydmljZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9wb3J0YWwtcmVmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnRhaW5lci1yZWZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbGF5ZXItY29udGFpbmVyXCJcbiJdfQ==
@@ -1,110 +0,0 @@
1
- import { DOCUMENT } from "@angular/common";
2
- import { Directive, ElementRef, inject, Injectable, InjectionToken } from "@angular/core";
3
- import { toSorted } from "@ngutil/common";
4
- import { BackdropRef } from "./backdrop-ref";
5
- import { AlwaysOnTop } from "./child-ref";
6
- import * as i0 from "@angular/core";
7
- export const LAYER_CONTAINER_ZINDEX_START = new InjectionToken("LAYER_CONTAINER_ZINDEX_START");
8
- export class LayerContainer {
9
- constructor() {
10
- this.#children = [];
11
- this.zIndexStart = inject(LAYER_CONTAINER_ZINDEX_START);
12
- }
13
- #children;
14
- append(ref) {
15
- if (!this.#children.includes(ref)) {
16
- this.#children.push(ref);
17
- this.#update();
18
- this.root.appendChild(ref.nativeElement);
19
- ref.state.on("disposing", () => this.#remove(ref));
20
- }
21
- return ref;
22
- }
23
- #remove(ref) {
24
- const idx = this.#children.indexOf(ref);
25
- if (idx > -1) {
26
- this.#children.splice(idx, 1);
27
- this.#update();
28
- }
29
- }
30
- #update() {
31
- const children = toSorted(this.#children, sortChildren2);
32
- let zIndex = this.zIndexStart;
33
- for (const child of children) {
34
- child.zIndex = zIndex;
35
- zIndex += 1;
36
- }
37
- children.sort(sortByZIndexDesc);
38
- let hasBackdrop = false;
39
- for (const child of children) {
40
- if (child instanceof BackdropRef && child.options.color !== "transparent") {
41
- child.visible = !hasBackdrop;
42
- hasBackdrop = true;
43
- }
44
- }
45
- }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayerContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: LayerContainer, ngImport: i0 }); }
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayerContainer, decorators: [{
50
- type: Directive
51
- }] });
52
- export class RootLayer extends LayerContainer {
53
- constructor() {
54
- super(...arguments);
55
- this.root = inject(DOCUMENT).body;
56
- }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RootLayer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
58
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RootLayer }); }
59
- }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RootLayer, decorators: [{
61
- type: Injectable
62
- }] });
63
- export class IndividualLayer extends LayerContainer {
64
- constructor() {
65
- super(...arguments);
66
- this.root = inject(ElementRef).nativeElement;
67
- }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: IndividualLayer, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
69
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: IndividualLayer, isStandalone: true, providers: [{ provide: LayerContainer, useExisting: IndividualLayer }], usesInheritance: true, ngImport: i0 }); }
70
- }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: IndividualLayer, decorators: [{
72
- type: Directive,
73
- args: [{
74
- standalone: true,
75
- providers: [{ provide: LayerContainer, useExisting: IndividualLayer }]
76
- }]
77
- }] });
78
- function sortChildren2(a, b) {
79
- const alwaysOnTop = sortByAlwaysOnTop(a, b);
80
- if (alwaysOnTop === 0) {
81
- return sortByBackdrop(a, b);
82
- }
83
- else {
84
- return alwaysOnTop;
85
- }
86
- }
87
- function sortByBackdrop(a, b) {
88
- if (a instanceof BackdropRef && a.under === b) {
89
- return -1;
90
- }
91
- else if (b instanceof BackdropRef && b.under === a) {
92
- return 1;
93
- }
94
- return 0;
95
- }
96
- function sortByZIndexDesc(a, b) {
97
- return b.zIndex - a.zIndex;
98
- }
99
- function sortByAlwaysOnTop(a, b) {
100
- return getAlwaysOnTop(a) - getAlwaysOnTop(b);
101
- }
102
- function getAlwaysOnTop(child) {
103
- if (child instanceof BackdropRef) {
104
- return child.under.alwaysOnTop || AlwaysOnTop.None;
105
- }
106
- else {
107
- return child.alwaysOnTop || AlwaysOnTop.None;
108
- }
109
- }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2xheWVyL2xheWVyLWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFZLE1BQU0sYUFBYSxDQUFBOztBQUVuRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBUyw4QkFBOEIsQ0FBQyxDQUFBO0FBR3RHLE1BQU0sT0FBZ0IsY0FBYztJQURwQztRQUlhLGNBQVMsR0FBb0IsRUFBRSxDQUFBO1FBQy9CLGdCQUFXLEdBQVcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUE7S0F1Q3RFO0lBeENZLFNBQVMsQ0FBc0I7SUFHeEMsTUFBTSxDQUFxQixHQUFNO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUN4QyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8s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Q0FBQyxDQUFBO0FBQ1osQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsQ0FBVyxFQUFFLENBQVc7SUFDOUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUE7QUFDOUIsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsQ0FBVyxFQUFFLENBQVc7SUFDL0MsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2hELENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxLQUFlO0lBQ25DLElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRSxDQUFDO1FBQy9CLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQTtJQUN0RCxDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sS0FBSyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFBO0lBQ2hELENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgdG9Tb3J0ZWQgfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuXG5pbXBvcnQgeyBCYWNrZHJvcFJlZiB9IGZyb20gXCIuL2JhY2tkcm9wLXJlZlwiXG5pbXBvcnQgeyBBbHdheXNPblRvcCwgQ2hpbGRSZWYgfSBmcm9tIFwiLi9jaGlsZC1yZWZcIlxuXG5leHBvcnQgY29uc3QgTEFZRVJfQ09OVEFJTkVSX1pJTkRFWF9TVEFSVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KFwiTEFZRVJfQ09OVEFJTkVSX1pJTkRFWF9TVEFSVFwiKVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMYXllckNvbnRhaW5lciB7XG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgcm9vdDogSFRNTEVsZW1lbnRcblxuICAgIHJlYWRvbmx5ICNjaGlsZHJlbjogQXJyYXk8Q2hpbGRSZWY+ID0gW11cbiAgICByZWFkb25seSB6SW5kZXhTdGFydDogbnVtYmVyID0gaW5qZWN0KExBWUVSX0NPTlRBSU5FUl9aSU5ERVhfU1RBUlQpXG5cbiAgICBhcHBlbmQ8VCBleHRlbmRzIENoaWxkUmVmPihyZWY6IFQpOiBUIHtcbiAgICAgICAgaWYgKCF0aGlzLiNjaGlsZHJlbi5pbmNsdWRlcyhyZWYpKSB7XG4gICAgICAgICAgICB0aGlzLiNjaGlsZHJlbi5wdXNoKHJlZilcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZSgpXG4gICAgICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQocmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICByZWYuc3RhdGUub24oXCJkaXNwb3NpbmdcIiwgKCkgPT4gdGhpcy4jcmVtb3ZlKHJlZikpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlZlxuICAgIH1cblxuICAgICNyZW1vdmUocmVmOiBDaGlsZFJlZikge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLiNjaGlsZHJlbi5pbmRleE9mKHJlZilcbiAgICAgICAgaWYgKGlkeCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLiNjaGlsZHJlbi5zcGxpY2UoaWR4LCAxKVxuICAgICAgICAgICAgdGhpcy4jdXBkYXRlKClcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN1cGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdG9Tb3J0ZWQodGhpcy4jY2hpbGRyZW4sIHNvcnRDaGlsZHJlbjIpXG5cbiAgICAgICAgbGV0IHpJbmRleCA9IHRoaXMuekluZGV4U3RhcnRcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgY2hpbGQuekluZGV4ID0gekluZGV4XG4gICAgICAgICAgICB6SW5kZXggKz0gMVxuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGRyZW4uc29ydChzb3J0QnlaSW5kZXhEZXNjKVxuXG4gICAgICAgIGxldCBoYXNCYWNrZHJvcCA9IGZhbHNlXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGNoaWxkLm9wdGlvbnMuY29sb3IgIT09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICAgICAgICAgIGNoaWxkLnZpc2libGUgPSAhaGFzQmFja2Ryb3BcbiAgICAgICAgICAgICAgICBoYXNCYWNrZHJvcCA9IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJvb3RMYXllciBleHRlbmRzIExheWVyQ29udGFpbmVyIHtcbiAgICByZWFkb25seSByb290ID0gaW5qZWN0KERPQ1VNRU5UKS5ib2R5XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMYXllckNvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IEluZGl2aWR1YWxMYXllciB9XVxufSlcbmV4cG9ydCBjbGFzcyBJbmRpdmlkdWFsTGF5ZXIgZXh0ZW5kcyBMYXllckNvbnRhaW5lciB7XG4gICAgcmVhZG9ubHkgcm9vdCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50XG59XG5cbmZ1bmN0aW9uIHNvcnRDaGlsZHJlbjIoYTogQ2hpbGRSZWYsIGI6IENoaWxkUmVmKSB7XG4gICAgY29uc3QgYWx3YXlzT25Ub3AgPSBzb3J0QnlBbHdheXNPblRvcChhLCBiKVxuICAgIGlmIChhbHdheXNPblRvcCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gc29ydEJ5QmFja2Ryb3AoYSwgYilcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYWx3YXlzT25Ub3BcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHNvcnRCeUJhY2tkcm9wKGE6IENoaWxkUmVmLCBiOiBDaGlsZFJlZikge1xuICAgIGlmIChhIGluc3RhbmNlb2YgQmFja2Ryb3BSZWYgJiYgYS51bmRlciA9PT0gYikge1xuICAgICAgICByZXR1cm4gLTFcbiAgICB9IGVsc2UgaWYgKGIgaW5zdGFuY2VvZiBCYWNrZHJvcFJlZiAmJiBiLnVuZGVyID09PSBhKSB7XG4gICAgICAgIHJldHVybiAxXG4gICAgfVxuICAgIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIHNvcnRCeVpJbmRleERlc2MoYTogQ2hpbGRSZWYsIGI6IENoaWxkUmVmKSB7XG4gICAgcmV0dXJuIGIuekluZGV4IC0gYS56SW5kZXhcbn1cblxuZnVuY3Rpb24gc29ydEJ5QWx3YXlzT25Ub3AoYTogQ2hpbGRSZWYsIGI6IENoaWxkUmVmKSB7XG4gICAgcmV0dXJuIGdldEFsd2F5c09uVG9wKGEpIC0gZ2V0QWx3YXlzT25Ub3AoYilcbn1cblxuZnVuY3Rpb24gZ2V0QWx3YXlzT25Ub3AoY2hpbGQ6IENoaWxkUmVmKTogbnVtYmVyIHtcbiAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBCYWNrZHJvcFJlZikge1xuICAgICAgICByZXR1cm4gY2hpbGQudW5kZXIuYWx3YXlzT25Ub3AgfHwgQWx3YXlzT25Ub3AuTm9uZVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjaGlsZC5hbHdheXNPblRvcCB8fCBBbHdheXNPblRvcC5Ob25lXG4gICAgfVxufVxuIl19