@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.
- package/fesm2022/ngutil-floating.mjs +20 -21
- package/fesm2022/ngutil-floating.mjs.map +1 -1
- package/layer/layer-container.d.ts +1 -1
- package/package.json +8 -9
- package/esm2022/floating/floating-ref.mjs +0 -103
- package/esm2022/floating/floating.service.mjs +0 -133
- package/esm2022/floating/index.mjs +0 -4
- package/esm2022/floating/traits/_base.mjs +0 -2
- package/esm2022/floating/traits/animation.mjs +0 -129
- package/esm2022/floating/traits/attribute.mjs +0 -26
- package/esm2022/floating/traits/backdrop.mjs +0 -37
- package/esm2022/floating/traits/close-trigger.mjs +0 -90
- package/esm2022/floating/traits/focus.mjs +0 -46
- package/esm2022/floating/traits/index.mjs +0 -10
- package/esm2022/floating/traits/modal.mjs +0 -24
- package/esm2022/floating/traits/position.mjs +0 -110
- package/esm2022/floating/traits/style.mjs +0 -15
- package/esm2022/index.mjs +0 -17
- package/esm2022/layer/backdrop-ref.mjs +0 -33
- package/esm2022/layer/child-ref.mjs +0 -65
- package/esm2022/layer/container-ref.mjs +0 -42
- package/esm2022/layer/external-ref.mjs +0 -4
- package/esm2022/layer/index.mjs +0 -7
- package/esm2022/layer/layer-container.mjs +0 -110
- package/esm2022/layer/layer.service.mjs +0 -65
- package/esm2022/layer/portal-ref.mjs +0 -52
- package/esm2022/ngutil-floating.mjs +0 -5
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, InjectionToken } from "@angular/core";
|
|
2
|
-
import { combineLatest, debounceTime, EMPTY, filter, map, ReplaySubject, shareReplay, startWith, take, takeUntil, takeWhile } from "rxjs";
|
|
3
|
-
import { Lifecycle } from "@ngutil/common";
|
|
4
|
-
import { ContainerRef } from "../layer/container-ref";
|
|
5
|
-
import { LayerService } from "../layer/layer.service";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../layer/layer.service";
|
|
8
|
-
import * as i2 from "../layer/container-ref";
|
|
9
|
-
export const TRAITS = new InjectionToken("TRAITS");
|
|
10
|
-
let UID_COUNTER = 0;
|
|
11
|
-
export class FloatingRef {
|
|
12
|
-
#traits;
|
|
13
|
-
#untilCleanup;
|
|
14
|
-
#untilDisposed;
|
|
15
|
-
constructor(layerSvc, container, traits) {
|
|
16
|
-
this.layerSvc = layerSvc;
|
|
17
|
-
this.container = container;
|
|
18
|
-
this.channel = new ReplaySubject(1);
|
|
19
|
-
this.state = new Lifecycle({
|
|
20
|
-
init: {},
|
|
21
|
-
showing: {},
|
|
22
|
-
shown: {},
|
|
23
|
-
closing: { cancellable: false, order: "sequential" },
|
|
24
|
-
disposing: { cancellable: false },
|
|
25
|
-
disposed: { cancellable: false, order: "sequential" },
|
|
26
|
-
cleanup: { cancellable: false, order: "sequential" }
|
|
27
|
-
});
|
|
28
|
-
this.#traits = {};
|
|
29
|
-
this.#untilCleanup = this.state.onExecute("cleanup");
|
|
30
|
-
this.#untilDisposed = this.state.onExecute("disposed");
|
|
31
|
-
this.uid = `${++UID_COUNTER}`;
|
|
32
|
-
Object.assign(container.nativeElement.style, {
|
|
33
|
-
overflow: "hidden",
|
|
34
|
-
visibility: "hidden",
|
|
35
|
-
pointerEvents: "none"
|
|
36
|
-
});
|
|
37
|
-
container.nativeElement.setAttribute("data-floating", this.uid);
|
|
38
|
-
this.#traits = traits;
|
|
39
|
-
this.traitState$ = this.#traitState().pipe(shareReplay(1));
|
|
40
|
-
this.state.current$.pipe(takeWhile(state => state !== "cleanup", true)).subscribe(state => {
|
|
41
|
-
this.emit({ type: state });
|
|
42
|
-
});
|
|
43
|
-
this.state.on("init", () => this.traitState$.pipe(takeUntil(this.#untilCleanup), debounceTime(5), take(1)));
|
|
44
|
-
this.state.on("showing", () => {
|
|
45
|
-
container.nativeElement.style.visibility = "visible";
|
|
46
|
-
});
|
|
47
|
-
this.state.on("shown", () => {
|
|
48
|
-
container.nativeElement.style.pointerEvents = null;
|
|
49
|
-
});
|
|
50
|
-
this.state.on("disposing", () => {
|
|
51
|
-
container.nativeElement.style.pointerEvents = "none";
|
|
52
|
-
});
|
|
53
|
-
this.state.control(container.state);
|
|
54
|
-
}
|
|
55
|
-
show() {
|
|
56
|
-
return this.state.run("init", "showing", "shown");
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* @deprecated
|
|
60
|
-
*/
|
|
61
|
-
hide() {
|
|
62
|
-
return this.close(true);
|
|
63
|
-
}
|
|
64
|
-
close(force = false) {
|
|
65
|
-
if (force) {
|
|
66
|
-
return this.state.run("disposing", "disposed", "cleanup");
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
return this.state.run("closing", "disposing", "disposed", "cleanup");
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
emit(event) {
|
|
73
|
-
this.channel.next({ ...event, floatingRef: this });
|
|
74
|
-
}
|
|
75
|
-
setResult(data) {
|
|
76
|
-
this.emit({ type: "result", data });
|
|
77
|
-
this.close(true).subscribe();
|
|
78
|
-
}
|
|
79
|
-
watchTrait(name) {
|
|
80
|
-
return this.traitState$.pipe(takeUntil(this.#untilDisposed), map(state => state[name]), filter(value => value != null));
|
|
81
|
-
}
|
|
82
|
-
#traitState() {
|
|
83
|
-
const src = {};
|
|
84
|
-
for (const [k, v] of Object.entries(this.#traits)) {
|
|
85
|
-
src[k] = v.connect(this).pipe(takeUntil(this.#untilDisposed), startWith(null));
|
|
86
|
-
}
|
|
87
|
-
if (Object.keys(src).length === 0) {
|
|
88
|
-
return EMPTY;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
return combineLatest(src).pipe(shareReplay(1));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FloatingRef, deps: [{ token: i1.LayerService }, { token: i2.ContainerRef }, { token: TRAITS }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
95
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FloatingRef }); }
|
|
96
|
-
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FloatingRef, decorators: [{
|
|
98
|
-
type: Injectable
|
|
99
|
-
}], ctorParameters: () => [{ type: i1.LayerService }, { type: i2.ContainerRef }, { type: undefined, decorators: [{
|
|
100
|
-
type: Inject,
|
|
101
|
-
args: [TRAITS]
|
|
102
|
-
}] }] });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2Zsb2F0aW5nL2Zsb2F0aW5nLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFbEUsT0FBTyxFQUNILGFBQWEsRUFDYixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBRUgsYUFBYSxFQUNiLFdBQVcsRUFDWCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFNBQVMsRUFDVCxTQUFTLEVBQ1osTUFBTSxNQUFNLENBQUE7QUFFYixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7OztBQUtyRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQVMsUUFBUSxDQUFDLENBQUE7QUFlMUQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFBO0FBR25CLE1BQU0sT0FBTyxXQUFXO0lBYVgsT0FBTyxDQUFhO0lBR3BCLGFBQWEsQ0FBa0M7SUFDL0MsY0FBYyxDQUFtQztJQUkxRCxZQUNhLFFBQXNCLEVBQ3RCLFNBQXVCLEVBQ2hCLE1BQWM7UUFGckIsYUFBUSxHQUFSLFFBQVEsQ0FBYztRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBdEIzQixZQUFPLEdBQUcsSUFBSSxhQUFhLENBQWtCLENBQUMsQ0FBQyxDQUFBO1FBRS9DLFVBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUMzQixJQUFJLEVBQUUsRUFBRTtZQUNSLE9BQU8sRUFBRSxFQUFFO1lBQ1gsS0FBSyxFQUFFLEVBQUU7WUFDVCxPQUFPLEVBQUUsRUFBRSxX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Q0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ2xGLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xELENBQUM7SUFDTCxDQUFDOzhHQXJHUSxXQUFXLDBFQXdCUixNQUFNO2tIQXhCVCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVOzswQkF5QkYsTUFBTTsyQkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHtcbiAgICBjb21iaW5lTGF0ZXN0LFxuICAgIGRlYm91bmNlVGltZSxcbiAgICBFTVBUWSxcbiAgICBmaWx0ZXIsXG4gICAgbWFwLFxuICAgIE9ic2VydmFibGUsXG4gICAgUmVwbGF5U3ViamVjdCxcbiAgICBzaGFyZVJlcGxheSxcbiAgICBzdGFydFdpdGgsXG4gICAgdGFrZSxcbiAgICB0YWtlVW50aWwsXG4gICAgdGFrZVdoaWxlXG59IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgTGlmZWN5Y2xlIH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHsgQ29udGFpbmVyUmVmIH0gZnJvbSBcIi4uL2xheWVyL2NvbnRhaW5lci1yZWZcIlxuaW1wb3J0IHsgTGF5ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL2xheWVyL2xheWVyLnNlcnZpY2VcIlxuaW1wb3J0IHsgRmxvYXRpbmdUcmFpdCB9IGZyb20gXCIuL3RyYWl0cy9fYmFzZVwiXG5cbmV4cG9ydCB0eXBlIFRyYWl0cyA9IHsgW2tleTogc3RyaW5nXTogRmxvYXRpbmdUcmFpdCB9XG5cbmV4cG9ydCBjb25zdCBUUkFJVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48VHJhaXRzPihcIlRSQUlUU1wiKVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nQ2hhbm5lbCB7XG4gICAgZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmXG4gICAgdHlwZTogc3RyaW5nXG4gICAgZGF0YT86IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nVHJhaXRFdmVudCB7XG4gICAgbmFtZTogc3RyaW5nXG4gICAgZGF0YTogb2JqZWN0XG59XG5cbnR5cGUgVHJhaXRTdGF0ZSA9IHsgW2tleTogc3RyaW5nXTogRmxvYXRpbmdUcmFpdEV2ZW50IHwgbnVsbCB9XG5cbmxldCBVSURfQ09VTlRFUiA9IDBcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nUmVmPEMgZXh0ZW5kcyBGbG9hdGluZ0NoYW5uZWwgPSBGbG9hdGluZ0NoYW5uZWwsIFQgZXh0ZW5kcyBIVE1MRWxlbWVudCA9IEhUTUxFbGVtZW50PiB7XG4gICAgcmVhZG9ubHkgY2hhbm5lbCA9IG5ldyBSZXBsYXlTdWJqZWN0PEZsb2F0aW5nQ2hhbm5lbD4oMSlcblxuICAgIHJlYWRvbmx5IHN0YXRlID0gbmV3IExpZmVjeWNsZSh7XG4gICAgICAgIGluaXQ6IHt9LFxuICAgICAgICBzaG93aW5nOiB7fSxcbiAgICAgICAgc2hvd246IHt9LFxuICAgICAgICBjbG9zaW5nOiB7IGNhbmNlbGxhYmxlOiBmYWxzZSwgb3JkZXI6IFwic2VxdWVudGlhbFwiIH0sXG4gICAgICAgIGRpc3Bvc2luZzogeyBjYW5jZWxsYWJsZTogZmFsc2UgfSxcbiAgICAgICAgZGlzcG9zZWQ6IHsgY2FuY2VsbGFibGU6IGZhbHNlLCBvcmRlcjogXCJzZXF1ZW50aWFsXCIgfSxcbiAgICAgICAgY2xlYW51cDogeyBjYW5jZWxsYWJsZTogZmFsc2UsIG9yZGVyOiBcInNlcXVlbnRpYWxcIiB9XG4gICAgfSlcblxuICAgIHJlYWRvbmx5ICN0cmFpdHM6IFRyYWl0cyA9IHt9XG4gICAgcmVhZG9ubHkgdHJhaXRTdGF0ZSQ6IE9ic2VydmFibGU8VHJhaXRTdGF0ZT5cblxuICAgIHJlYWRvbmx5ICN1bnRpbENsZWFudXAgPSB0aGlzLnN0YXRlLm9uRXhlY3V0ZShcImNsZWFudXBcIilcbiAgICByZWFkb25seSAjdW50aWxEaXNwb3NlZCA9IHRoaXMuc3RhdGUub25FeGVjdXRlKFwiZGlzcG9zZWRcIilcblxuICAgIHJlYWRvbmx5IHVpZCA9IGAkeysrVUlEX0NPVU5URVJ9YFxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGxheWVyU3ZjOiBMYXllclNlcnZpY2UsXG4gICAgICAgIHJlYWRvbmx5IGNvbnRhaW5lcjogQ29udGFpbmVyUmVmLFxuICAgICAgICBASW5qZWN0KFRSQUlUUykgdHJhaXRzOiBUcmFpdHNcbiAgICApIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihjb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZSwge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBcImhpZGRlblwiLFxuICAgICAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCJcbiAgICAgICAgfSlcbiAgICAgICAgY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiZGF0YS1mbG9hdGluZ1wiLCB0aGlzLnVpZClcblxuICAgICAgICB0aGlzLiN0cmFpdHMgPSB0cmFpdHNcbiAgICAgICAgdGhpcy50cmFpdFN0YXRlJCA9IHRoaXMuI3RyYWl0U3RhdGUoKS5waXBlKHNoYXJlUmVwbGF5KDEpKVxuXG4gICAgICAgIHRoaXMuc3RhdGUuY3VycmVudCQucGlwZSh0YWtlV2hpbGUoc3RhdGUgPT4gc3RhdGUgIT09IFwiY2xlYW51cFwiLCB0cnVlKSkuc3Vic2NyaWJlKHN0YXRlID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW1pdCh7IHR5cGU6IHN0YXRlIH0gYXMgQylcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5zdGF0ZS5vbihcImluaXRcIiwgKCkgPT4gdGhpcy50cmFpdFN0YXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLiN1bnRpbENsZWFudXApLCBkZWJvdW5jZVRpbWUoNSksIHRha2UoMSkpKVxuICAgICAgICB0aGlzLnN0YXRlLm9uKFwic2hvd2luZ1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBjb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gXCJ2aXNpYmxlXCJcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5zdGF0ZS5vbihcInNob3duXCIsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSBudWxsIGFzIGFueVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnN0YXRlLm9uKFwiZGlzcG9zaW5nXCIsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSBcIm5vbmVcIlxuICAgICAgICB9KVxuXG4gICAgICAgIHRoaXMuc3RhdGUuY29udHJvbChjb250YWluZXIuc3RhdGUpXG4gICAgfVxuXG4gICAgc2hvdygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUucnVuKFwiaW5pdFwiLCBcInNob3dpbmdcIiwgXCJzaG93blwiKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgaGlkZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvc2UodHJ1ZSlcbiAgICB9XG5cbiAgICBjbG9zZShmb3JjZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmIChmb3JjZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUucnVuKFwiZGlzcG9zaW5nXCIsIFwiZGlzcG9zZWRcIiwgXCJjbGVhbnVwXCIpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5ydW4oXCJjbG9zaW5nXCIsIFwiZGlzcG9zaW5nXCIsIFwiZGlzcG9zZWRcIiwgXCJjbGVhbnVwXCIpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbWl0KGV2ZW50OiBPbWl0PEMsIFwiZmxvYXRpbmdSZWZcIj4pIHtcbiAgICAgICAgdGhpcy5jaGFubmVsLm5leHQoeyAuLi5ldmVudCwgZmxvYXRpbmdSZWY6IHRoaXMgfSBhcyBhbnkpXG4gICAgfVxuXG4gICAgc2V0UmVzdWx0KGRhdGE6IGFueSkge1xuICAgICAgICB0aGlzLmVtaXQoeyB0eXBlOiBcInJlc3VsdFwiLCBkYXRhIH0gYXMgQylcbiAgICAgICAgdGhpcy5jbG9zZSh0cnVlKS5zdWJzY3JpYmUoKVxuICAgIH1cblxuICAgIHdhdGNoVHJhaXQ8VD4obmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYWl0U3RhdGUkLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy4jdW50aWxEaXNwb3NlZCksXG4gICAgICAgICAgICBtYXAoc3RhdGUgPT4gc3RhdGVbbmFtZV0pLFxuICAgICAgICAgICAgZmlsdGVyKHZhbHVlID0+IHZhbHVlICE9IG51bGwpXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxUPlxuICAgIH1cblxuICAgICN0cmFpdFN0YXRlKCk6IE9ic2VydmFibGU8VHJhaXRTdGF0ZT4ge1xuICAgICAgICBjb25zdCBzcmM6IHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxGbG9hdGluZ1RyYWl0RXZlbnQgfCBudWxsPiB9ID0ge31cblxuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLiN0cmFpdHMpKSB7XG4gICAgICAgICAgICBzcmNba10gPSB2LmNvbm5lY3QodGhpcykucGlwZSh0YWtlVW50aWwodGhpcy4jdW50aWxEaXNwb3NlZCksIHN0YXJ0V2l0aChudWxsKSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhzcmMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChzcmMpLnBpcGUoc2hhcmVSZXBsYXkoMSkpXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { inject, Injectable, TemplateRef } from "@angular/core";
|
|
2
|
-
import { Observable } from "rxjs";
|
|
3
|
-
import { LayerService } from "../layer/layer.service";
|
|
4
|
-
import { FloatingRef, TRAITS } from "./floating-ref";
|
|
5
|
-
import { position } from "./traits/position";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class FloatingFactory {
|
|
8
|
-
#providers;
|
|
9
|
-
constructor(floatingSvc) {
|
|
10
|
-
this.floatingSvc = floatingSvc;
|
|
11
|
-
this.traits = {};
|
|
12
|
-
this.#providers = [];
|
|
13
|
-
this.subscribe = (...args) => this.show().subscribe(...args);
|
|
14
|
-
}
|
|
15
|
-
trait(...traits) {
|
|
16
|
-
for (const trait of traits) {
|
|
17
|
-
if (Array.isArray(trait)) {
|
|
18
|
-
this.trait(...trait);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
this.traits[trait.name] = trait;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
show() {
|
|
27
|
-
return new Observable((dest) => {
|
|
28
|
-
let disposing = false;
|
|
29
|
-
const ref = this.create();
|
|
30
|
-
const channelSub = ref.channel.subscribe(event => {
|
|
31
|
-
dest.next(event);
|
|
32
|
-
if (event.type === "disposing") {
|
|
33
|
-
disposing = true;
|
|
34
|
-
}
|
|
35
|
-
if (event.type === "cleanup") {
|
|
36
|
-
dest.complete();
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
const showSub = ref.show().subscribe();
|
|
40
|
-
return () => {
|
|
41
|
-
showSub.unsubscribe();
|
|
42
|
-
channelSub.unsubscribe();
|
|
43
|
-
if (!disposing) {
|
|
44
|
-
ref.hide().subscribe();
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
providers(providers) {
|
|
50
|
-
if (!providers) {
|
|
51
|
-
providers = [];
|
|
52
|
-
}
|
|
53
|
-
providers = [
|
|
54
|
-
...providers,
|
|
55
|
-
{ provide: TRAITS, useValue: this.traits },
|
|
56
|
-
{ provide: LayerService, useValue: this.floatingSvc.layer },
|
|
57
|
-
{ provide: FloatingService, useValue: this.floatingSvc },
|
|
58
|
-
FloatingRef,
|
|
59
|
-
...this.#providers
|
|
60
|
-
];
|
|
61
|
-
return providers;
|
|
62
|
-
}
|
|
63
|
-
position(options) {
|
|
64
|
-
return this.trait(position(options));
|
|
65
|
-
}
|
|
66
|
-
provides(providers) {
|
|
67
|
-
if (Array.isArray(providers)) {
|
|
68
|
-
this.#providers = [...this.#providers, ...providers];
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this.#providers = [...this.#providers, providers];
|
|
72
|
-
}
|
|
73
|
-
return this;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
export class FloatingTemplateFactory extends FloatingFactory {
|
|
77
|
-
constructor(floatingSvc, tpl, options) {
|
|
78
|
-
super(floatingSvc);
|
|
79
|
-
this.tpl = tpl;
|
|
80
|
-
this.options = options;
|
|
81
|
-
}
|
|
82
|
-
create() {
|
|
83
|
-
const options = { ...this.options };
|
|
84
|
-
options.providers = this.providers(options.providers);
|
|
85
|
-
const container = this.floatingSvc.layer.newTemplatePortal(this.tpl, options);
|
|
86
|
-
return container.injector.get(FloatingRef);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
export class FloatingComponentFactory extends FloatingFactory {
|
|
90
|
-
constructor(floatingSvc, component, options) {
|
|
91
|
-
super(floatingSvc);
|
|
92
|
-
this.component = component;
|
|
93
|
-
this.options = options;
|
|
94
|
-
}
|
|
95
|
-
create() {
|
|
96
|
-
const options = { ...this.options };
|
|
97
|
-
options.providers = this.providers(options.providers);
|
|
98
|
-
const container = this.floatingSvc.layer.newComponentPortal(this.component, options);
|
|
99
|
-
return container.injector.get(FloatingRef);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* @example
|
|
104
|
-
* ```typescript
|
|
105
|
-
* class SomeComponent {}
|
|
106
|
-
*
|
|
107
|
-
* class SomeList {
|
|
108
|
-
* readonly floating = inject(FloatingService)
|
|
109
|
-
*
|
|
110
|
-
* showComponent() {
|
|
111
|
-
* this.floating.from(SomeComponent).traits(position(), backdrop()).subscribe()
|
|
112
|
-
* }
|
|
113
|
-
* ```
|
|
114
|
-
*/
|
|
115
|
-
export class FloatingService {
|
|
116
|
-
constructor() {
|
|
117
|
-
this.layer = inject(LayerService);
|
|
118
|
-
}
|
|
119
|
-
from(value, opts) {
|
|
120
|
-
if (value instanceof TemplateRef) {
|
|
121
|
-
return new FloatingTemplateFactory(this, value, opts);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
return new FloatingComponentFactory(this, value, opts);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FloatingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
128
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FloatingService }); }
|
|
129
|
-
}
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FloatingService, decorators: [{
|
|
131
|
-
type: Injectable
|
|
132
|
-
}] });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9mbG9hdGluZy9mbG9hdGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFZLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUVyRCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRSxPQUFPLEVBQUUsUUFBUSxFQUE2QixNQUFNLG1CQUFtQixDQUFBOztBQUl2RSxNQUFNLE9BQWdCLGVBQWU7SUFHakMsVUFBVSxDQUFpQjtJQUUzQixZQUErQixXQUE0QjtRQUE1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFKeEMsV0FBTSxHQUFxQyxFQUFFLENBQUE7UUFFaEUsZUFBVSxHQUFlLEVBQUUsQ0FBQTtRQTJDM0IsY0FBUyxHQUE2QyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7SUF6QzFDLENBQUM7SUFFL0QsS0FBSyxDQUFDLEdBQUcsTUFBaUM7UUFDdEMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN6QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFBO1lBQ3hCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFL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Q0FBQyxDQUFBO1FBQ2hFLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLHdCQUF3QixDQUFDLElBQUksRUFBRSxLQUFZLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDakUsQ0FBQztJQUNMLENBQUM7OEdBZFEsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUHJvdmlkZXIsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tIFwiLi4vbGF5ZXIvbGF5ZXIuc2VydmljZVwiXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWxPcHRpb25zLCBUZW1wbGF0ZVBvcnRhbE9wdGlvbnMgfSBmcm9tIFwiLi4vbGF5ZXIvcG9ydGFsLXJlZlwiXG5pbXBvcnQgeyBGbG9hdGluZ0NoYW5uZWwsIEZsb2F0aW5nUmVmLCBUUkFJVFMgfSBmcm9tIFwiLi9mbG9hdGluZy1yZWZcIlxuaW1wb3J0IHsgdHlwZSBGbG9hdGluZ1RyYWl0IH0gZnJvbSBcIi4vdHJhaXRzL19iYXNlXCJcbmltcG9ydCB7IHBvc2l0aW9uLCB0eXBlIFBvc2l0aW9uVHJhaXRPcHRpb25zIH0gZnJvbSBcIi4vdHJhaXRzL3Bvc2l0aW9uXCJcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdUcmFpdElucHV0ID0gRmxvYXRpbmdUcmFpdCB8IEFycmF5PEZsb2F0aW5nVHJhaXRJbnB1dD5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZsb2F0aW5nRmFjdG9yeSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYWl0czogeyBba2V5OiBzdHJpbmddOiBGbG9hdGluZ1RyYWl0IH0gPSB7fVxuXG4gICAgI3Byb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtdXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgZmxvYXRpbmdTdmM6IEZsb2F0aW5nU2VydmljZSkge31cblxuICAgIHRyYWl0KC4uLnRyYWl0czogQXJyYXk8RmxvYXRpbmdUcmFpdElucHV0Pikge1xuICAgICAgICBmb3IgKGNvbnN0IHRyYWl0IG9mIHRyYWl0cykge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodHJhaXQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFpdCguLi50cmFpdClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFpdHNbdHJhaXQubmFtZV0gPSB0cmFpdFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBzaG93KCk6IE9ic2VydmFibGU8RmxvYXRpbmdDaGFubmVsPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZGVzdDogU3Vic2NyaWJlcjxGbG9hdGluZ0NoYW5uZWw+KSA9PiB7XG4gICAgICAgICAgICBsZXQgZGlzcG9zaW5nID0gZmFsc2VcblxuICAgICAgICAgICAgY29uc3QgcmVmID0gdGhpcy5jcmVhdGUoKVxuICAgICAgICAgICAgY29uc3QgY2hhbm5lbFN1YiA9IHJlZi5jaGFubmVsLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgZGVzdC5uZXh0KGV2ZW50KVxuICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBcImRpc3Bvc2luZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3Bvc2luZyA9IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFwiY2xlYW51cFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlc3QuY29tcGxldGUoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IHNob3dTdWIgPSByZWYuc2hvdygpLnN1YnNjcmliZSgpXG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2hvd1N1Yi51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgY2hhbm5lbFN1Yi51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgaWYgKCFkaXNwb3NpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmLmhpZGUoKS5zdWJzY3JpYmUoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBzdWJzY3JpYmU6IE9ic2VydmFibGU8RmxvYXRpbmdDaGFubmVsPltcInN1YnNjcmliZVwiXSA9ICguLi5hcmdzOiBhbnlbXSkgPT4gdGhpcy5zaG93KCkuc3Vic2NyaWJlKC4uLmFyZ3MpXG5cbiAgICBwcm90ZWN0ZWQgcHJvdmlkZXJzKHByb3ZpZGVycz86IFByb3ZpZGVyW10pOiBQcm92aWRlcltdIHtcbiAgICAgICAgaWYgKCFwcm92aWRlcnMpIHtcbiAgICAgICAgICAgIHByb3ZpZGVycyA9IFtdXG4gICAgICAgIH1cblxuICAgICAgICBwcm92aWRlcnMgPSBbXG4gICAgICAgICAgICAuLi5wcm92aWRlcnMsXG4gICAgICAgICAgICB7IHByb3ZpZGU6IFRSQUlUUywgdXNlVmFsdWU6IHRoaXMudHJhaXRzIH0sXG4gICAgICAgICAgICB7IHByb3ZpZGU6IExheWVyU2VydmljZSwgdXNlVmFsdWU6IHRoaXMuZmxvYXRpbmdTdmMubGF5ZXIgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogRmxvYXRpbmdTZXJ2aWNlLCB1c2VWYWx1ZTogdGhpcy5mbG9hdGluZ1N2YyB9LFxuICAgICAgICAgICAgRmxvYXRpbmdSZWYsXG4gICAgICAgICAgICAuLi50aGlzLiNwcm92aWRlcnNcbiAgICAgICAgXVxuXG4gICAgICAgIHJldHVybiBwcm92aWRlcnNcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlKCk6IEZsb2F0aW5nUmVmPEZsb2F0aW5nQ2hhbm5lbD5cblxuICAgIHBvc2l0aW9uKG9wdGlvbnM6IFBvc2l0aW9uVHJhaXRPcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYWl0KHBvc2l0aW9uKG9wdGlvbnMpKVxuICAgIH1cblxuICAgIHByb3ZpZGVzKHByb3ZpZGVyczogUHJvdmlkZXIgfCBQcm92aWRlcltdKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb3ZpZGVycykpIHtcbiAgICAgICAgICAgIHRoaXMuI3Byb3ZpZGVycyA9IFsuLi50aGlzLiNwcm92aWRlcnMsIC4uLnByb3ZpZGVyc11cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI3Byb3ZpZGVycyA9IFsuLi50aGlzLiNwcm92aWRlcnMsIHByb3ZpZGVyc11cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpc1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nVGVtcGxhdGVGYWN0b3J5PFQgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgRmxvYXRpbmdGYWN0b3J5IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZmxvYXRpbmdTdmM6IEZsb2F0aW5nU2VydmljZSxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHRwbDogVGVtcGxhdGVSZWY8VD4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBUZW1wbGF0ZVBvcnRhbE9wdGlvbnM8VD5cbiAgICApIHtcbiAgICAgICAgc3VwZXIoZmxvYXRpbmdTdmMpXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZSgpOiBGbG9hdGluZ1JlZjxGbG9hdGluZ0NoYW5uZWw+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogVGVtcGxhdGVQb3J0YWxPcHRpb25zPFQ+ID0geyAuLi50aGlzLm9wdGlvbnMgfVxuICAgICAgICBvcHRpb25zLnByb3ZpZGVycyA9IHRoaXMucHJvdmlkZXJzKG9wdGlvbnMucHJvdmlkZXJzKVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmZsb2F0aW5nU3ZjLmxheWVyLm5ld1RlbXBsYXRlUG9ydGFsKHRoaXMudHBsLCBvcHRpb25zKVxuICAgICAgICByZXR1cm4gY29udGFpbmVyLmluamVjdG9yLmdldChGbG9hdGluZ1JlZilcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGbG9hdGluZ0NvbXBvbmVudEZhY3Rvcnk8VCBleHRlbmRzIENvbXBvbmVudFR5cGU8YW55Pj4gZXh0ZW5kcyBGbG9hdGluZ0ZhY3Rvcnkge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmbG9hdGluZ1N2YzogRmxvYXRpbmdTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50OiBULFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogQ29tcG9uZW50UG9ydGFsT3B0aW9uczxUPlxuICAgICkge1xuICAgICAgICBzdXBlcihmbG9hdGluZ1N2YylcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlKCk6IEZsb2F0aW5nUmVmPEZsb2F0aW5nQ2hhbm5lbD4ge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBDb21wb25lbnRQb3J0YWxPcHRpb25zPFQ+ID0geyAuLi50aGlzLm9wdGlvbnMgfVxuICAgICAgICBvcHRpb25zLnByb3ZpZGVycyA9IHRoaXMucHJvdmlkZXJzKG9wdGlvbnMucHJvdmlkZXJzKVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmZsb2F0aW5nU3ZjLmxheWVyLm5ld0NvbXBvbmVudFBvcnRhbCh0aGlzLmNvbXBvbmVudCwgb3B0aW9ucylcbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5pbmplY3Rvci5nZXQoRmxvYXRpbmdSZWYpXG4gICAgfVxufVxuXG4vKipcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBTb21lQ29tcG9uZW50IHt9XG4gKlxuICogY2xhc3MgU29tZUxpc3Qge1xuICogICAgICByZWFkb25seSBmbG9hdGluZyA9IGluamVjdChGbG9hdGluZ1NlcnZpY2UpXG4gKlxuICogICAgICBzaG93Q29tcG9uZW50KCkge1xuICogICAgICAgICAgdGhpcy5mbG9hdGluZy5mcm9tKFNvbWVDb21wb25lbnQpLnRyYWl0cyhwb3NpdGlvbigpLCBiYWNrZHJvcCgpKS5zdWJzY3JpYmUoKVxuICogICAgICB9XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nU2VydmljZSB7XG4gICAgcmVhZG9ubHkgbGF5ZXIgPSBpbmplY3QoTGF5ZXJTZXJ2aWNlKVxuICAgIC8vIHJlYWRvbmx5IHBhcmVudCA9IGluamVjdChGbG9hdGluZ1JlZiwgeyBza2lwU2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSlcblxuICAgIGZyb208VCBleHRlbmRzIENvbXBvbmVudFR5cGU8YW55Pj4oY29tcG9uZW50OiBULCBvcHRzPzogQ29tcG9uZW50UG9ydGFsT3B0aW9uczxUPik6IEZsb2F0aW5nQ29tcG9uZW50RmFjdG9yeTxUPlxuXG4gICAgZnJvbTxUIGV4dGVuZHMgb2JqZWN0Pih0cGw6IFRlbXBsYXRlUmVmPFQ+LCBvcHRzPzogVGVtcGxhdGVQb3J0YWxPcHRpb25zPFQ+KTogRmxvYXRpbmdUZW1wbGF0ZUZhY3Rvcnk8VD5cblxuICAgIGZyb208VD4odmFsdWU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPiwgb3B0czogYW55KTogRmxvYXRpbmdGYWN0b3J5IHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRmxvYXRpbmdUZW1wbGF0ZUZhY3RvcnkodGhpcywgdmFsdWUgYXMgYW55LCBvcHRzKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGbG9hdGluZ0NvbXBvbmVudEZhY3RvcnkodGhpcywgdmFsdWUgYXMgYW55LCBvcHRzKVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from "./traits";
|
|
2
|
-
export * from "./floating-ref";
|
|
3
|
-
export * from "./floating.service";
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vdHJhaXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL2Zsb2F0aW5nLXJlZlwiXG5leHBvcnQgKiBmcm9tIFwiLi9mbG9hdGluZy5zZXJ2aWNlXCJcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2Jhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL19iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgdHlwZSB7IEZsb2F0aW5nUmVmIH0gZnJvbSBcIi4uL2Zsb2F0aW5nLXJlZlwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdUcmFpdDxUID0gYW55PiB7XG4gICAgcmVhZG9ubHkgbmFtZTogc3RyaW5nXG5cbiAgICBjb25uZWN0KGZsb2F0aW5nUmVmOiBGbG9hdGluZ1JlZjxhbnk+KTogT2JzZXJ2YWJsZTxUPlxufVxuIl19
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { animate, AnimationBuilder, style } from "@angular/animations";
|
|
2
|
-
import { map, Observable, of, switchMap, take, tap } from "rxjs";
|
|
3
|
-
import { animationObservable, maxPossibleRadius } from "@ngutil/graphics";
|
|
4
|
-
import { Duration, Ease, rectContainsPoint, rectOrigin } from "@ngutil/style";
|
|
5
|
-
// https://tympanus.net/Development/ModalWindowEffects/
|
|
6
|
-
const timing = `${Duration.FastMs}ms ${Ease.Deceleration}`;
|
|
7
|
-
export class AnimationTrait {
|
|
8
|
-
constructor(animation, params) {
|
|
9
|
-
this.animation = animation;
|
|
10
|
-
this.params = params;
|
|
11
|
-
this.name = "animation";
|
|
12
|
-
}
|
|
13
|
-
connect(floatingRef) {
|
|
14
|
-
return new Observable((dst) => {
|
|
15
|
-
const builder = floatingRef.container.injector.get(AnimationBuilder);
|
|
16
|
-
const element = floatingRef.container.nativeElement;
|
|
17
|
-
floatingRef.state.on("showing", () => animationParams(floatingRef, this.params).pipe(switchMap(params => animationObservable({
|
|
18
|
-
builder,
|
|
19
|
-
element,
|
|
20
|
-
animation: this.animation.show,
|
|
21
|
-
options: { params }
|
|
22
|
-
}))));
|
|
23
|
-
floatingRef.state.on("disposing", () => animationParams(floatingRef, this.params).pipe(switchMap(params => animationObservable({
|
|
24
|
-
builder,
|
|
25
|
-
element,
|
|
26
|
-
animation: this.animation.hide,
|
|
27
|
-
options: { params }
|
|
28
|
-
})), tap(() => (element.style.display = "none"))));
|
|
29
|
-
floatingRef.state.on("disposing", () => dst.complete());
|
|
30
|
-
dst.next();
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function animationParams(floatingRef, params) {
|
|
35
|
-
if (params == null) {
|
|
36
|
-
return of({});
|
|
37
|
-
}
|
|
38
|
-
return floatingRef.watchTrait("position").pipe(take(1), map(params));
|
|
39
|
-
}
|
|
40
|
-
export const FallAnimation = {
|
|
41
|
-
show: [
|
|
42
|
-
style({
|
|
43
|
-
transform: "scale({{ scale }})",
|
|
44
|
-
visibility: "visible",
|
|
45
|
-
opacity: "0"
|
|
46
|
-
}),
|
|
47
|
-
animate(timing, style({
|
|
48
|
-
transform: "scale(1)",
|
|
49
|
-
opacity: "1"
|
|
50
|
-
}))
|
|
51
|
-
],
|
|
52
|
-
hide: [
|
|
53
|
-
animate(timing, style({
|
|
54
|
-
transform: "scale({{ scale }})",
|
|
55
|
-
visibility: "visible",
|
|
56
|
-
opacity: "0"
|
|
57
|
-
}))
|
|
58
|
-
]
|
|
59
|
-
};
|
|
60
|
-
export function fallAnimation(scale = 1.5) {
|
|
61
|
-
return new AnimationTrait(FallAnimation, () => {
|
|
62
|
-
return { scale };
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
export const FadeAnimation = {
|
|
66
|
-
show: [style({ opacity: 0 }), animate(timing, style({ opacity: 1 }))],
|
|
67
|
-
hide: [animate(timing, style({ opacity: 0 }))]
|
|
68
|
-
};
|
|
69
|
-
export function fadeAnimation() {
|
|
70
|
-
return new AnimationTrait(FadeAnimation);
|
|
71
|
-
}
|
|
72
|
-
const SlideAnimation = {
|
|
73
|
-
show: [
|
|
74
|
-
style({
|
|
75
|
-
transform: "translate({{ tx }}, {{ ty }})",
|
|
76
|
-
opacity: "0",
|
|
77
|
-
// transformOrigin: "{{ origin }}",
|
|
78
|
-
visibility: "visible"
|
|
79
|
-
}),
|
|
80
|
-
animate(timing, style({
|
|
81
|
-
opacity: "1",
|
|
82
|
-
transform: "translate(0px, 0px)"
|
|
83
|
-
}))
|
|
84
|
-
],
|
|
85
|
-
hide: [animate(timing, style({ opacity: 0, transform: "translate(calc({{ tx }} * -1), calc({{ ty }} * -1))" }))]
|
|
86
|
-
};
|
|
87
|
-
const SlideAnimationParams = {
|
|
88
|
-
center: { tx: 0, ty: 0 },
|
|
89
|
-
up: { tx: 0, ty: 1 },
|
|
90
|
-
down: { tx: 0, ty: -1 },
|
|
91
|
-
left: { tx: 1, ty: 0 },
|
|
92
|
-
right: { tx: -1, ty: 0 }
|
|
93
|
-
};
|
|
94
|
-
function slideAnimation(size) {
|
|
95
|
-
return new AnimationTrait(SlideAnimation, position => {
|
|
96
|
-
const { tx, ty } = SlideAnimationParams[position.direction];
|
|
97
|
-
return { tx: `${tx * size}px`, ty: `${ty * size}px` };
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
export function slideNearAnimation(size = 40) {
|
|
101
|
-
return slideAnimation(size * -1);
|
|
102
|
-
}
|
|
103
|
-
export function slideAwayAnimation(size = 40) {
|
|
104
|
-
return slideAnimation(size);
|
|
105
|
-
}
|
|
106
|
-
const RippleRevealAnimation = {
|
|
107
|
-
show: [
|
|
108
|
-
style({ clipPath: "circle({{ radiusStart }} at {{ origin }})" }),
|
|
109
|
-
animate(`{{ duration }}ms ${Ease.Acceleration}`, style({ clipPath: "circle({{ radiusEnd }} at {{ origin }})" }))
|
|
110
|
-
],
|
|
111
|
-
hide: [animate(timing, style({ opacity: 0 }))]
|
|
112
|
-
};
|
|
113
|
-
export function rippleRevealAnimation(options) {
|
|
114
|
-
const { origin, initialRadius = 0, duration = Duration.SlowMs } = options;
|
|
115
|
-
return new AnimationTrait(RippleRevealAnimation, position => {
|
|
116
|
-
const animOrigin = rectContainsPoint(position.content.rect, origin)
|
|
117
|
-
? origin
|
|
118
|
-
: rectOrigin(position.content.rect, "center middle");
|
|
119
|
-
const { x, y, width, height } = position.content.rect;
|
|
120
|
-
const radius = maxPossibleRadius(animOrigin.x, animOrigin.y, width, height);
|
|
121
|
-
return {
|
|
122
|
-
radiusStart: `${initialRadius}px`,
|
|
123
|
-
radiusEnd: `${radius}px`,
|
|
124
|
-
origin: `${animOrigin.x - x}px ${animOrigin.y - y}px`,
|
|
125
|
-
duration: duration
|
|
126
|
-
};
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2Zsb2F0aW5nL3RyYWl0cy9hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBcUIsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFekYsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFjLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRTVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pFLE9BQU8sRUFDSCxRQUFRLEVBQ1IsSUFBSSxFQUlKLGlCQUFpQixFQUNqQixVQUFVLEVBQ2IsTUFBTSxlQUFlLENBQUE7QUFPdEIsdURBQXVEO0FBRXZELE1BQU0sTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7QUFJMUQsTUFBTSxPQUFPLGNBQWM7SUFHdkIsWUFDYSxTQUF1QixFQUN2QixNQUE2QjtRQUQ3QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQXVCO1FBSmpDLFNBQUksR0FBRyxXQUFXLENBQUE7SUFLeEIsQ0FBQztJQUVKLE9BQU8sQ0FBQyxXQUF3QjtRQUM1QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsR0FBd0IsRUFBRSxFQUFFO1lBQy9DLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1lBQ3BFLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFBO1lBRW5ELFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFD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Q0FBQyxDQUFDLE1BQU07WUFDUixDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQ3hELE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQTtRQUNyRCxNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQzNFLE9BQU87WUFDSCxXQUFXLEVBQUUsR0FBRyxhQUFhLElBQUk7WUFDakMsU0FBUyxFQUFFLEdBQUcsTUFBTSxJQUFJO1lBQ3hCLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJO1lBQ3JELFFBQVEsRUFBRSxRQUFRO1NBQ3JCLENBQUE7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25NZXRhZGF0YSwgc3R5bGUgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiXG5cbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmliZXIsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBhbmltYXRpb25PYnNlcnZhYmxlLCBtYXhQb3NzaWJsZVJhZGl1cyB9IGZyb20gXCJAbmd1dGlsL2dyYXBoaWNzXCJcbmltcG9ydCB7XG4gICAgRHVyYXRpb24sXG4gICAgRWFzZSxcbiAgICBGbG9hdGluZ1Bvc2l0aW9uLFxuICAgIEZsb2F0aW5nUG9zaXRpb25EaXJlY3Rpb24sXG4gICAgUG9zaXRpb24sXG4gICAgcmVjdENvbnRhaW5zUG9pbnQsXG4gICAgcmVjdE9yaWdpblxufSBmcm9tIFwiQG5ndXRpbC9zdHlsZVwiXG5cbmltcG9ydCB7IEZsb2F0aW5nUmVmIH0gZnJvbSBcIi4uL2Zsb2F0aW5nLXJlZlwiXG5pbXBvcnQgeyBGbG9hdGluZ1RyYWl0IH0gZnJvbSBcIi4vX2Jhc2VcIlxuXG5leHBvcnQgdHlwZSBBbmltYXRpb25TZXQgPSB7IHNob3c6IEFuaW1hdGlvbk1ldGFkYXRhW107IGhpZGU6IEFuaW1hdGlvbk1ldGFkYXRhW10gfVxuXG4vLyBodHRwczovL3R5bXBhbnVzLm5ldC9EZXZlbG9wbWVudC9Nb2RhbFdpbmRvd0VmZmVjdHMvXG5cbmNvbnN0IHRpbWluZyA9IGAke0R1cmF0aW9uLkZhc3RNc31tcyAke0Vhc2UuRGVjZWxlcmF0aW9ufWBcblxuZXhwb3J0IHR5cGUgQW5pbWF0aW9uVHJhaXRQYXJhbXMgPSAocG9zaXRpb246IEZsb2F0aW5nUG9zaXRpb24pID0+IG9iamVjdFxuXG5leHBvcnQgY2xhc3MgQW5pbWF0aW9uVHJhaXQgaW1wbGVtZW50cyBGbG9hdGluZ1RyYWl0PHVua25vd24+IHtcbiAgICByZWFkb25seSBuYW1lID0gXCJhbmltYXRpb25cIlxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGFuaW1hdGlvbjogQW5pbWF0aW9uU2V0LFxuICAgICAgICByZWFkb25seSBwYXJhbXM/OiBBbmltYXRpb25UcmFpdFBhcmFtc1xuICAgICkge31cblxuICAgIGNvbm5lY3QoZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZHN0OiBTdWJzY3JpYmVyPHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBidWlsZGVyID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLmluamVjdG9yLmdldChBbmltYXRpb25CdWlsZGVyKVxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGZsb2F0aW5nUmVmLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50XG5cbiAgICAgICAgICAgIGZsb2F0aW5nUmVmLnN0YXRlLm9uKFwic2hvd2luZ1wiLCAoKSA9PlxuICAgICAgICAgICAgICAgIGFuaW1hdGlvblBhcmFtcyhmbG9hdGluZ1JlZiwgdGhpcy5wYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcChwYXJhbXMgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbk9ic2VydmFibGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IHRoaXMuYW5pbWF0aW9uLnNob3csXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogeyBwYXJhbXMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGZsb2F0aW5nUmVmLnN0YXRlLm9uKFwiZGlzcG9zaW5nXCIsICgpID0+XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uUGFyYW1zKGZsb2F0aW5nUmVmLCB0aGlzLnBhcmFtcykucGlwZShcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKHBhcmFtcyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uT2JzZXJ2YWJsZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogdGhpcy5hbmltYXRpb24uaGlkZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7IHBhcmFtcyB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4gKGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBmbG9hdGluZ1JlZi5zdGF0ZS5vbihcImRpc3Bvc2luZ1wiLCAoKSA9PiBkc3QuY29tcGxldGUoKSlcbiAgICAgICAgICAgIGRzdC5uZXh0KClcbiAgICAgICAgfSlcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGFuaW1hdGlvblBhcmFtcyhmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWYsIHBhcmFtcz86IEFuaW1hdGlvblRyYWl0UGFyYW1zKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICBpZiAocGFyYW1zID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG9mKHt9KVxuICAgIH1cblxuICAgIHJldHVybiBmbG9hdGluZ1JlZi53YXRjaFRyYWl0PEZsb2F0aW5nUG9zaXRpb24+KFwicG9zaXRpb25cIikucGlwZSh0YWtlKDEpLCBtYXAocGFyYW1zKSlcbn1cblxuZXhwb3J0IGNvbnN0IEZhbGxBbmltYXRpb246IEFuaW1hdGlvblNldCA9IHtcbiAgICBzaG93OiBbXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJzY2FsZSh7eyBzY2FsZSB9fSlcIixcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgb3BhY2l0eTogXCIwXCJcbiAgICAgICAgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgICB0aW1pbmcsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKDEpXCIsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogXCIxXCJcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICBdLFxuICAgIGhpZGU6IFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgIHRpbWluZyxcbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IFwic2NhbGUoe3sgc2NhbGUgfX0pXCIsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJ2aXNpYmxlXCIsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogXCIwXCJcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICBdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWxsQW5pbWF0aW9uKHNjYWxlOiBudW1iZXIgPSAxLjUpIHtcbiAgICByZXR1cm4gbmV3IEFuaW1hdGlvblRyYWl0KEZhbGxBbmltYXRpb24sICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgc2NhbGUgfVxuICAgIH0pXG59XG5cbmV4cG9ydCBjb25zdCBGYWRlQW5pbWF0aW9uOiBBbmltYXRpb25TZXQgPSB7XG4gICAgc2hvdzogW3N0eWxlKHsgb3BhY2l0eTogMCB9KSwgYW5pbWF0ZSh0aW1pbmcsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSldLFxuICAgIGhpZGU6IFthbmltYXRlKHRpbWluZywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZhZGVBbmltYXRpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBBbmltYXRpb25UcmFpdChGYWRlQW5pbWF0aW9uKVxufVxuXG5jb25zdCBTbGlkZUFuaW1hdGlvbjogQW5pbWF0aW9uU2V0ID0ge1xuICAgIHNob3c6IFtcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSh7eyB0eCB9fSwge3sgdHkgfX0pXCIsXG4gICAgICAgICAgICBvcGFjaXR5OiBcIjBcIixcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybU9yaWdpbjogXCJ7eyBvcmlnaW4gfX1cIixcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IFwidmlzaWJsZVwiXG4gICAgICAgIH0pLFxuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgdGltaW5nLFxuICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IFwiMVwiLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMHB4LCAwcHgpXCJcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICBdLFxuICAgIGhpZGU6IFthbmltYXRlKHRpbWluZywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKGNhbGMoe3sgdHggfX0gKiAtMSksIGNhbGMoe3sgdHkgfX0gKiAtMSkpXCIgfSkpXVxufVxuXG5jb25zdCBTbGlkZUFuaW1hdGlvblBhcmFtczogeyBbSyBpbiBGbG9hdGluZ1Bvc2l0aW9uRGlyZWN0aW9uXTogeyB0eDogbnVtYmVyOyB0eTogbnVtYmVyIH0gfSA9IHtcbiAgICBjZW50ZXI6IHsgdHg6IDAsIHR5OiAwIH0sXG4gICAgdXA6IHsgdHg6IDAsIHR5OiAxIH0sXG4gICAgZG93bjogeyB0eDogMCwgdHk6IC0xIH0sXG4gICAgbGVmdDogeyB0eDogMSwgdHk6IDAgfSxcbiAgICByaWdodDogeyB0eDogLTEsIHR5OiAwIH1cbn1cblxuZnVuY3Rpb24gc2xpZGVBbmltYXRpb24oc2l6ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBBbmltYXRpb25UcmFpdChTbGlkZUFuaW1hdGlvbiwgcG9zaXRpb24gPT4ge1xuICAgICAgICBjb25zdCB7IHR4LCB0eSB9ID0gU2xpZGVBbmltYXRpb25QYXJhbXNbcG9zaXRpb24uZGlyZWN0aW9uXVxuICAgICAgICByZXR1cm4geyB0eDogYCR7dHggKiBzaXplfXB4YCwgdHk6IGAke3R5ICogc2l6ZX1weGAgfVxuICAgIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzbGlkZU5lYXJBbmltYXRpb24oc2l6ZTogbnVtYmVyID0gNDApIHtcbiAgICByZXR1cm4gc2xpZGVBbmltYXRpb24oc2l6ZSAqIC0xKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2xpZGVBd2F5QW5pbWF0aW9uKHNpemU6IG51bWJlciA9IDQwKSB7XG4gICAgcmV0dXJuIHNsaWRlQW5pbWF0aW9uKHNpemUpXG59XG5cbmNvbnN0IFJpcHBsZVJldmVhbEFuaW1hdGlvbjogQW5pbWF0aW9uU2V0ID0ge1xuICAgIHNob3c6IFtcbiAgICAgICAgc3R5bGUoeyBjbGlwUGF0aDogXCJjaXJjbGUoe3sgcmFkaXVzU3RhcnQgfX0gYXQge3sgb3JpZ2luIH19KVwiIH0pLFxuICAgICAgICBhbmltYXRlKGB7eyBkdXJhdGlvbiB9fW1zICR7RWFzZS5BY2NlbGVyYXRpb259YCwgc3R5bGUoeyBjbGlwUGF0aDogXCJjaXJjbGUoe3sgcmFkaXVzRW5kIH19IGF0IHt7IG9yaWdpbiB9fSlcIiB9KSlcbiAgICBdLFxuICAgIGhpZGU6IFthbmltYXRlKHRpbWluZywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV1cbn1cblxudHlwZSBSaXBwbGVSZXZlYWxBbmltYXRpb25PcHRpb25zID0ge1xuICAgIG9yaWdpbjogUG9zaXRpb25cbiAgICBpbml0aWFsUmFkaXVzPzogbnVtYmVyXG4gICAgZHVyYXRpb24/OiBudW1iZXJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJpcHBsZVJldmVhbEFuaW1hdGlvbihvcHRpb25zOiBSaXBwbGVSZXZlYWxBbmltYXRpb25PcHRpb25zKSB7XG4gICAgY29uc3QgeyBvcmlnaW4sIGluaXRpYWxSYWRpdXMgPSAwLCBkdXJhdGlvbiA9IER1cmF0aW9uLlNsb3dNcyB9ID0gb3B0aW9uc1xuICAgIHJldHVybiBuZXcgQW5pbWF0aW9uVHJhaXQoUmlwcGxlUmV2ZWFsQW5pbWF0aW9uLCBwb3NpdGlvbiA9PiB7XG4gICAgICAgIGNvbnN0IGFuaW1PcmlnaW4gPSByZWN0Q29udGFpbnNQb2ludChwb3NpdGlvbi5jb250ZW50LnJlY3QsIG9yaWdpbilcbiAgICAgICAgICAgID8gb3JpZ2luXG4gICAgICAgICAgICA6IHJlY3RPcmlnaW4ocG9zaXRpb24uY29udGVudC5yZWN0LCBcImNlbnRlciBtaWRkbGVcIilcbiAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSBwb3NpdGlvbi5jb250ZW50LnJlY3RcbiAgICAgICAgY29uc3QgcmFkaXVzID0gbWF4UG9zc2libGVSYWRpdXMoYW5pbU9yaWdpbi54LCBhbmltT3JpZ2luLnksIHdpZHRoLCBoZWlnaHQpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByYWRpdXNTdGFydDogYCR7aW5pdGlhbFJhZGl1c31weGAsXG4gICAgICAgICAgICByYWRpdXNFbmQ6IGAke3JhZGl1c31weGAsXG4gICAgICAgICAgICBvcmlnaW46IGAke2FuaW1PcmlnaW4ueCAtIHh9cHggJHthbmltT3JpZ2luLnkgLSB5fXB4YCxcbiAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvblxuICAgICAgICB9XG4gICAgfSlcbn1cbiJdfQ==
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { of } from "rxjs";
|
|
2
|
-
export class AttributeTrait {
|
|
3
|
-
constructor(attrs) {
|
|
4
|
-
this.attrs = attrs;
|
|
5
|
-
this.name = "attribute";
|
|
6
|
-
}
|
|
7
|
-
connect(floatingRef) {
|
|
8
|
-
const el = floatingRef.container.nativeElement;
|
|
9
|
-
for (const [k, v] of Object.entries(this.attrs)) {
|
|
10
|
-
if (k === "dataset") {
|
|
11
|
-
v && Object.assign(el.dataset, v);
|
|
12
|
-
}
|
|
13
|
-
else if (v == null) {
|
|
14
|
-
el.removeAttribute(k);
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
el.setAttribute(k, v.toString());
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return of(this.attrs);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export function attribute(attrs) {
|
|
24
|
-
return new AttributeTrait(attrs);
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2Zsb2F0aW5nL3RyYWl0cy9hdHRyaWJ1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQVNyQyxNQUFNLE9BQU8sY0FBYztJQUd2QixZQUFxQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBRjdCLFNBQUksR0FBRyxXQUFXLENBQUE7SUFFYyxDQUFDO0lBRTFDLE9BQU8sQ0FBQyxXQUF3QjtRQUM1QixNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQTtRQUU5QyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNyQyxDQUFDO2lCQUFNLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNuQixFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3pCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUNwQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN6QixDQUFDO0NBQ0o7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWlCO0lBQ3ZDLE9BQU8sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwidXRpbGl0eS10eXBlc1wiXG5cbmltcG9ydCB7IEZsb2F0aW5nUmVmIH0gZnJvbSBcIi4uL2Zsb2F0aW5nLXJlZlwiXG5pbXBvcnQgeyBGbG9hdGluZ1RyYWl0IH0gZnJvbSBcIi4vX2Jhc2VcIlxuXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVzID0geyBba2V5OiBzdHJpbmddOiBQcmltaXRpdmUgfSB8IHsgZGF0YXNldDogeyBba2V5OiBzdHJpbmddOiBQcmltaXRpdmUgfSB9XG5cbmV4cG9ydCBjbGFzcyBBdHRyaWJ1dGVUcmFpdCBpbXBsZW1lbnRzIEZsb2F0aW5nVHJhaXQ8QXR0cmlidXRlcz4ge1xuICAgIHJlYWRvbmx5IG5hbWUgPSBcImF0dHJpYnV0ZVwiXG5cbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBhdHRyczogQXR0cmlidXRlcykge31cblxuICAgIGNvbm5lY3QoZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmKTogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVzPiB7XG4gICAgICAgIGNvbnN0IGVsID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnRcblxuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmF0dHJzKSkge1xuICAgICAgICAgICAgaWYgKGsgPT09IFwiZGF0YXNldFwiKSB7XG4gICAgICAgICAgICAgICAgdiAmJiBPYmplY3QuYXNzaWduKGVsLmRhdGFzZXQsIHYpXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShrKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoaywgdi50b1N0cmluZygpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuYXR0cnMpXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXR0cmlidXRlKGF0dHJzOiBBdHRyaWJ1dGVzKSB7XG4gICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVUcmFpdChhdHRycylcbn1cbiJdfQ==
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { AnimationBuilder } from "@angular/animations";
|
|
2
|
-
import { Observable } from "rxjs";
|
|
3
|
-
import { animationObservable } from "@ngutil/graphics";
|
|
4
|
-
import { FadeAnimation } from "./animation";
|
|
5
|
-
export class BackdropTrait {
|
|
6
|
-
constructor(options) {
|
|
7
|
-
this.options = options;
|
|
8
|
-
this.name = "backdrop";
|
|
9
|
-
}
|
|
10
|
-
connect(floatingRef) {
|
|
11
|
-
return new Observable((dest) => {
|
|
12
|
-
const animationBuilder = floatingRef.container.injector.get(AnimationBuilder);
|
|
13
|
-
const options = { ...this.options };
|
|
14
|
-
const backdrop = floatingRef.layerSvc.newBackdrop(floatingRef.container, options);
|
|
15
|
-
floatingRef.container.nativeElement.setAttribute("data-floating-has-backdrop", "true");
|
|
16
|
-
backdrop.nativeElement.setAttribute("data-floating-backdrop", floatingRef.uid);
|
|
17
|
-
backdrop.state.on("showing", () => animationObservable({
|
|
18
|
-
builder: animationBuilder,
|
|
19
|
-
element: backdrop.nativeElement,
|
|
20
|
-
animation: FadeAnimation.show
|
|
21
|
-
}));
|
|
22
|
-
backdrop.state.on("disposing", () => animationObservable({
|
|
23
|
-
builder: animationBuilder,
|
|
24
|
-
element: backdrop.nativeElement,
|
|
25
|
-
animation: FadeAnimation.hide
|
|
26
|
-
}));
|
|
27
|
-
backdrop.state.on("disposed", () => dest.complete());
|
|
28
|
-
floatingRef.state.on("disposing", () => backdrop.dispose());
|
|
29
|
-
dest.add(backdrop.show().subscribe());
|
|
30
|
-
dest.next(backdrop);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
export function backdrop(options) {
|
|
35
|
-
return new BackdropTrait(options);
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2Ryb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL2JhY2tkcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFFN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFnQixNQUFNLGtCQUFrQixDQUFBO0FBS3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFNM0MsTUFBTSxPQUFPLGFBQWE7SUFHdEIsWUFBcUIsT0FBNkI7UUFBN0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFGekMsU0FBSSxHQUFHLFVBQVUsQ0FBQTtJQUUyQixDQUFDO0lBRXRELE9BQU8sQ0FBQyxXQUE2QjtRQUNqQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsSUFBNkIsRUFBRSxFQUFFO1lBQ3BELE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUE7WUFDN0UsTUFBTSxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtZQUNuQyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBRWpGLFdBQVcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyw0QkFBNEIsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN0RixRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUE7WUFFOUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUM5QixtQkFBbUIsQ0FBQztnQkFDaEIsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxhQUFhO2dCQUMvQixTQUFTLEVBQUUsYUFBYSxDQUFDLElBQUk7YUFDaEMsQ0FBQyxDQUNMLENBQUE7WUFDRCxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQ2hDLG1CQUFtQixDQUFDO2dCQUNoQixPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixPQUFPLEVBQUUsUUFBUSxDQUFDLGFBQWE7Z0JBQy9CLFNBQVMsRUFBRSxhQUFhLENBQUMsSUFBSTthQUNoQyxDQUFDLENBQ0wsQ0FBQTtZQUVELFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUVwRCxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFFM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtZQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3ZCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUE2QjtJQUNsRCxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRpb25CdWlsZGVyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIlxuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBhbmltYXRpb25PYnNlcnZhYmxlLCBDb3Zlck9wdGlvbnMgfSBmcm9tIFwiQG5ndXRpbC9ncmFwaGljc1wiXG5cbmltcG9ydCB7IEJhY2tkcm9wUmVmIH0gZnJvbSBcIi4uLy4uL2xheWVyXCJcbmltcG9ydCB7IHR5cGUgRmxvYXRpbmdSZWYgfSBmcm9tIFwiLi4vZmxvYXRpbmctcmVmXCJcbmltcG9ydCB7IEZsb2F0aW5nVHJhaXQgfSBmcm9tIFwiLi9fYmFzZVwiXG5pbXBvcnQgeyBGYWRlQW5pbWF0aW9uIH0gZnJvbSBcIi4vYW5pbWF0aW9uXCJcblxuaW50ZXJmYWNlIENvbW1vbk9wdGlvbnMge31cblxuZXhwb3J0IHR5cGUgQmFja2Ryb3BUcmFpdE9wdGlvbnMgPSBDb3Zlck9wdGlvbnMgJiBDb21tb25PcHRpb25zXG5cbmV4cG9ydCBjbGFzcyBCYWNrZHJvcFRyYWl0IGltcGxlbWVudHMgRmxvYXRpbmdUcmFpdDxCYWNrZHJvcFJlZj4ge1xuICAgIHJlYWRvbmx5IG5hbWUgPSBcImJhY2tkcm9wXCJcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IG9wdGlvbnM6IEJhY2tkcm9wVHJhaXRPcHRpb25zKSB7fVxuXG4gICAgY29ubmVjdChmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWY8YW55Pik6IE9ic2VydmFibGU8QmFja2Ryb3BSZWY+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkZXN0OiBTdWJzY3JpYmVyPEJhY2tkcm9wUmVmPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgYW5pbWF0aW9uQnVpbGRlciA9IGZsb2F0aW5nUmVmLmNvbnRhaW5lci5pbmplY3Rvci5nZXQoQW5pbWF0aW9uQnVpbGRlcilcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucyB9XG4gICAgICAgICAgICBjb25zdCBiYWNrZHJvcCA9IGZsb2F0aW5nUmVmLmxheWVyU3ZjLm5ld0JhY2tkcm9wKGZsb2F0aW5nUmVmLmNvbnRhaW5lciwgb3B0aW9ucylcblxuICAgICAgICAgICAgZmxvYXRpbmdSZWYuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiZGF0YS1mbG9hdGluZy1oYXMtYmFja2Ryb3BcIiwgXCJ0cnVlXCIpXG4gICAgICAgICAgICBiYWNrZHJvcC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZShcImRhdGEtZmxvYXRpbmctYmFja2Ryb3BcIiwgZmxvYXRpbmdSZWYudWlkKVxuXG4gICAgICAgICAgICBiYWNrZHJvcC5zdGF0ZS5vbihcInNob3dpbmdcIiwgKCkgPT5cbiAgICAgICAgICAgICAgICBhbmltYXRpb25PYnNlcnZhYmxlKHtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRlcjogYW5pbWF0aW9uQnVpbGRlcixcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogYmFja2Ryb3AubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBGYWRlQW5pbWF0aW9uLnNob3dcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYmFja2Ryb3Auc3RhdGUub24oXCJkaXNwb3NpbmdcIiwgKCkgPT5cbiAgICAgICAgICAgICAgICBhbmltYXRpb25PYnNlcnZhYmxlKHtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRlcjogYW5pbWF0aW9uQnVpbGRlcixcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogYmFja2Ryb3AubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBGYWRlQW5pbWF0aW9uLmhpZGVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBiYWNrZHJvcC5zdGF0ZS5vbihcImRpc3Bvc2VkXCIsICgpID0+IGRlc3QuY29tcGxldGUoKSlcblxuICAgICAgICAgICAgZmxvYXRpbmdSZWYuc3RhdGUub24oXCJkaXNwb3NpbmdcIiwgKCkgPT4gYmFja2Ryb3AuZGlzcG9zZSgpKVxuXG4gICAgICAgICAgICBkZXN0LmFkZChiYWNrZHJvcC5zaG93KCkuc3Vic2NyaWJlKCkpXG4gICAgICAgICAgICBkZXN0Lm5leHQoYmFja2Ryb3ApXG4gICAgICAgIH0pXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja2Ryb3Aob3B0aW9uczogQmFja2Ryb3BUcmFpdE9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IEJhY2tkcm9wVHJhaXQob3B0aW9ucylcbn1cbiJdfQ==
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { distinctUntilChanged, exhaustMap, filter, from, fromEvent, map, Observable, of, race } from "rxjs";
|
|
2
|
-
import { KeystrokeService } from "@ngutil/aria";
|
|
3
|
-
import { coerceElement } from "@ngutil/common";
|
|
4
|
-
class CloseTriggerTrait {
|
|
5
|
-
constructor(options = {}) {
|
|
6
|
-
this.options = options;
|
|
7
|
-
this.name = "close-trigger";
|
|
8
|
-
}
|
|
9
|
-
connect(floatingRef) {
|
|
10
|
-
const { keystroke, clickOutside, trigger } = this.options;
|
|
11
|
-
const container = floatingRef.container.nativeElement;
|
|
12
|
-
const triggers = [];
|
|
13
|
-
const selfUid = Number(floatingRef.uid);
|
|
14
|
-
if (keystroke) {
|
|
15
|
-
const ks = floatingRef.container.injector.get(KeystrokeService);
|
|
16
|
-
triggers.push(ks.watch(container, { key: "Escape", state: "up" }).pipe(map(() => {
|
|
17
|
-
return { source: "keystroke" };
|
|
18
|
-
})));
|
|
19
|
-
// TODO: angular auxiliary route
|
|
20
|
-
}
|
|
21
|
-
if (clickOutside) {
|
|
22
|
-
const allowedElements = typeof clickOutside === "boolean" ? [] : clickOutside.allowedElements?.map(coerceElement) || [];
|
|
23
|
-
triggers.push(fromEvent(document, "click", { capture: true, passive: true }).pipe(filter(event => {
|
|
24
|
-
if (!(event.target instanceof HTMLElement)) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
const target = event.target;
|
|
28
|
-
for (const allowed of allowedElements) {
|
|
29
|
-
if (target === allowed || allowed.contains(target)) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
const floatingUid = getFloatingUid(target, "data-floating", "floating");
|
|
34
|
-
const backdropUid = getFloatingUid(target, "data-floating-backdrop", "floatingBackdrop");
|
|
35
|
-
const otherBackdropUid = floatingUid != null && floatingUid !== selfUid
|
|
36
|
-
? getFloatingUid(document.querySelector(`[data-floating-backdrop="${floatingUid}"]`), "data-floating-backdrop", "floatingBackdrop")
|
|
37
|
-
: undefined;
|
|
38
|
-
// console.log({ floatingUid, backdropUid, otherBackdropUid, self: selfUid })
|
|
39
|
-
if (floatingUid == null && backdropUid == null) {
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
return (
|
|
44
|
-
// click on self or erlier backdrop
|
|
45
|
-
(backdropUid != null && backdropUid <= selfUid) ||
|
|
46
|
-
// click on other floating element, whitout backdrop
|
|
47
|
-
(floatingUid != null && otherBackdropUid == null && floatingUid < selfUid) ||
|
|
48
|
-
// click on other floating element that opened erlier
|
|
49
|
-
(floatingUid != null && floatingUid < selfUid));
|
|
50
|
-
}
|
|
51
|
-
}), map(() => {
|
|
52
|
-
return { source: "click" };
|
|
53
|
-
})));
|
|
54
|
-
}
|
|
55
|
-
if (trigger) {
|
|
56
|
-
triggers.push(from(trigger).pipe(map(() => {
|
|
57
|
-
return { source: "trigger" };
|
|
58
|
-
})));
|
|
59
|
-
}
|
|
60
|
-
if (triggers.length === 0) {
|
|
61
|
-
return of();
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
return new Observable(dst => floatingRef.state.on("shown", () => {
|
|
65
|
-
race(...triggers)
|
|
66
|
-
.pipe(exhaustMap(event => floatingRef.close().pipe(map(() => event), distinctUntilChanged())))
|
|
67
|
-
.subscribe(dst);
|
|
68
|
-
}));
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
export function closeTrigger(options = { clickOutside: true, keystroke: true }) {
|
|
73
|
-
return new CloseTriggerTrait(options);
|
|
74
|
-
}
|
|
75
|
-
function getFloatingUid(el, attr, dataset) {
|
|
76
|
-
if (el == null) {
|
|
77
|
-
return undefined;
|
|
78
|
-
}
|
|
79
|
-
if (el.matches(`[${attr}]`)) {
|
|
80
|
-
return Number(el.dataset[dataset]) || undefined;
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
const parent = el.closest(`[${attr}]`);
|
|
84
|
-
if (parent) {
|
|
85
|
-
return Number(parent.dataset[dataset]) || undefined;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return undefined;
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2UtdHJpZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9mbG9hdGluZy90cmFpdHMvY2xvc2UtdHJpZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLFVBQVUsRUFDVixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxHQUFHLEVBQ0gsVUFBVSxFQUVWLEVBQUUsRUFDRixJQUFJLEVBQ1AsTUFBTSxNQUFNLENBQUE7QUFFYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxnQkFBZ0IsQ0FBQTtBQWlDNUQsTUFBTSxpQkFBaUI7SUFHbkIsWUFBcUIsVUFBK0IsRUFBRTtRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQUY3QyxTQUFJLEdBQUcsZUFBZSxDQUFBO0lBRTBCLENBQUM7SUFFMUQsT0FBTyxDQUFDLFdBQXdCO1FBQzVCLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUE7UUFFekQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUE7UUFDckQsTUFBTSxRQUFRLEdBQTJCLEVBQUUsQ0FBQTtRQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRXZDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDWixNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUUvRCxRQUFRLENBQUMsSUFBSSxDQUNULEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFL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TyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQTtRQUN2RCxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFBO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGV4aGF1c3RNYXAsXG4gICAgZmlsdGVyLFxuICAgIGZyb20sXG4gICAgZnJvbUV2ZW50LFxuICAgIG1hcCxcbiAgICBPYnNlcnZhYmxlLFxuICAgIE9ic2VydmFibGVJbnB1dCxcbiAgICBvZixcbiAgICByYWNlXG59IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgS2V5c3Ryb2tlU2VydmljZSB9IGZyb20gXCJAbmd1dGlsL2FyaWFcIlxuaW1wb3J0IHsgY29lcmNlRWxlbWVudCwgRWxlbWVudElucHV0IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHsgRmxvYXRpbmdSZWYgfSBmcm9tIFwiLi4vZmxvYXRpbmctcmVmXCJcbmltcG9ydCB7IEZsb2F0aW5nVHJhaXQgfSBmcm9tIFwiLi9fYmFzZVwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpY2tPdXRzaWRlT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogSWYgY2xpY2tzIGhhcHBlbmVkIG9uIHRoaXMgZWxlbWVudCwgdGhhdCBub3QgdHJpZ2dlciB0aGUgY2xvc2UgZXZlbnRcbiAgICAgKi9cbiAgICBhbGxvd2VkRWxlbWVudHM/OiBFbGVtZW50SW5wdXRbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3NlVHJpZ2dlck9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIENsb3NlIGZsb2F0aW5nIHdoZW4gY2xpY2sgb3V0c2lkZSBvZiBmbG9hdGluZyBlbGVtZW50XG4gICAgICovXG4gICAgY2xpY2tPdXRzaWRlPzogYm9vbGVhbiB8IENsaWNrT3V0c2lkZU9wdGlvbnNcblxuICAgIC8qKlxuICAgICAqIE9ubHkgd29ya3Mgd2hlbiB0aGUgZmxvYXRpbmcgZWxlbWVudCBpcyBmb2N1c2VkXG4gICAgICovXG4gICAga2V5c3Ryb2tlPzogYm9vbGVhblxuXG4gICAgLyoqXG4gICAgICogQ2xvc2Ugd2hlbiBlbWl0dGluZyBhbnkgdmFsdWVcbiAgICAgKi9cbiAgICB0cmlnZ2VyPzogT2JzZXJ2YWJsZUlucHV0PGFueT5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG9zZVRyaWdnZXJFdmVudCB7XG4gICAgc291cmNlOiBcImNsaWNrXCIgfCBcImtleXN0cm9rZVwiIHwgXCJiYWNrYnV0dG9uXCIgfCBcInRyaWdnZXJcIlxufVxuXG5jbGFzcyBDbG9zZVRyaWdnZXJUcmFpdCBpbXBsZW1lbnRzIEZsb2F0aW5nVHJhaXQge1xuICAgIHJlYWRvbmx5IG5hbWUgPSBcImNsb3NlLXRyaWdnZXJcIlxuXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgb3B0aW9uczogQ2xvc2VUcmlnZ2VyT3B0aW9ucyA9IHt9KSB7fVxuXG4gICAgY29ubmVjdChmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWYpOiBPYnNlcnZhYmxlPENsb3NlVHJpZ2dlckV2ZW50IHwgdm9pZD4ge1xuICAgICAgICBjb25zdCB7IGtleXN0cm9rZSwgY2xpY2tPdXRzaWRlLCB0cmlnZ2VyIH0gPSB0aGlzLm9wdGlvbnNcblxuICAgICAgICBjb25zdCBjb250YWluZXIgPSBmbG9hdGluZ1JlZi5jb250YWluZXIubmF0aXZlRWxlbWVudFxuICAgICAgICBjb25zdCB0cmlnZ2VyczogQXJyYXk8T2JzZXJ2YWJsZTxhbnk+PiA9IFtdXG4gICAgICAgIGNvbnN0IHNlbGZVaWQgPSBOdW1iZXIoZmxvYXRpbmdSZWYudWlkKVxuXG4gICAgICAgIGlmIChrZXlzdHJva2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGtzID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLmluamVjdG9yLmdldChLZXlzdHJva2VTZXJ2aWNlKVxuXG4gICAgICAgICAgICB0cmlnZ2Vycy5wdXNoKFxuICAgICAgICAgICAgICAgIGtzLndhdGNoKGNvbnRhaW5lciwgeyBrZXk6IFwiRXNjYXBlXCIsIHN0YXRlOiBcInVwXCIgfSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHNvdXJjZTogXCJrZXlzdHJva2VcIiBhcyBjb25zdCB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAvLyBUT0RPOiBhbmd1bGFyIGF1eGlsaWFyeSByb3V0ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsaWNrT3V0c2lkZSkge1xuICAgICAgICAgICAgY29uc3QgYWxsb3dlZEVsZW1lbnRzID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgY2xpY2tPdXRzaWRlID09PSBcImJvb2xlYW5cIiA/IFtdIDogY2xpY2tPdXRzaWRlLmFsbG93ZWRFbGVtZW50cz8ubWFwKGNvZXJjZUVsZW1lbnQpIHx8IFtdXG5cbiAgICAgICAgICAgIHRyaWdnZXJzLnB1c2goXG4gICAgICAgICAgICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCBcImNsaWNrXCIsIHsgY2FwdHVyZTogdHJ1ZSwgcGFzc2l2ZTogdHJ1ZSB9KS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXRcblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhbGxvd2VkIG9mIGFsbG93ZWRFbGVtZW50cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgPT09IGFsbG93ZWQgfHwgYWxsb3dlZC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXRpbmdVaWQgPSBnZXRGbG9hdGluZ1VpZCh0YXJnZXQsIFwiZGF0YS1mbG9hdGluZ1wiLCBcImZsb2F0aW5nXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiYWNrZHJvcFVpZCA9IGdldEZsb2F0aW5nVWlkKHRhcmdldCwgXCJkYXRhLWZsb2F0aW5nLWJhY2tkcm9wXCIsIFwiZmxvYXRpbmdCYWNrZHJvcFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3RoZXJCYWNrZHJvcFVpZCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXRpbmdVaWQgIT0gbnVsbCAmJiBmbG9hdGluZ1VpZCAhPT0gc2VsZlVpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdldEZsb2F0aW5nVWlkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1mbG9hdGluZy1iYWNrZHJvcD1cIiR7ZmxvYXRpbmdVaWR9XCJdYCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS1mbG9hdGluZy1iYWNrZHJvcFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZsb2F0aW5nQmFja2Ryb3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coeyBmbG9hdGluZ1VpZCwgYmFja2Ryb3BVaWQsIG90aGVyQmFja2Ryb3BVaWQsIHNlbGY6IHNlbGZVaWQgfSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZsb2F0aW5nVWlkID09IG51bGwgJiYgYmFja2Ryb3BVaWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsaWNrIG9uIHNlbGYgb3IgZXJsaWVyIGJhY2tkcm9wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrZHJvcFVpZCAhPSBudWxsICYmIGJhY2tkcm9wVWlkIDw9IHNlbGZVaWQpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsaWNrIG9uIG90aGVyIGZsb2F0aW5nIGVsZW1lbnQsIHdoaXRvdXQgYmFja2Ryb3BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZsb2F0aW5nVWlkICE9IG51bGwgJiYgb3RoZXJCYWNrZHJvcFVpZCA9PSBudWxsICYmIGZsb2F0aW5nVWlkIDwgc2VsZlVpZCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2sgb24gb3RoZXIgZmxvYXRpbmcgZWxlbWVudCB0aGF0IG9wZW5lZCBlcmxpZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZsb2F0aW5nVWlkICE9IG51bGwgJiYgZmxvYXRpbmdVaWQgPCBzZWxmVWlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBzb3VyY2U6IFwiY2xpY2tcIiBhcyBjb25zdCB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgICAgICAgIHRyaWdnZXJzLnB1c2goXG4gICAgICAgICAgICAgICAgZnJvbSh0cmlnZ2VyKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgc291cmNlOiBcInRyaWdnZXJcIiBhcyBjb25zdCB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRyaWdnZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkc3QgPT5cbiAgICAgICAgICAgICAgICBmbG9hdGluZ1JlZi5zdGF0ZS5vbihcInNob3duXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmFjZSguLi50cmlnZ2VycylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aGF1c3RNYXAoZXZlbnQgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXRpbmdSZWYuY2xvc2UoKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IGV2ZW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZHN0KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9zZVRyaWdnZXIob3B0aW9uczogQ2xvc2VUcmlnZ2VyT3B0aW9ucyA9IHsgY2xpY2tPdXRzaWRlOiB0cnVlLCBrZXlzdHJva2U6IHRydWUgfSkge1xuICAgIHJldHVybiBuZXcgQ2xvc2VUcmlnZ2VyVHJhaXQob3B0aW9ucylcbn1cblxuZnVuY3Rpb24gZ2V0RmxvYXRpbmdVaWQoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCwgYXR0cjogc3RyaW5nLCBkYXRhc2V0OiBzdHJpbmcpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGlmIChlbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBpZiAoZWwubWF0Y2hlcyhgWyR7YXR0cn1dYCkpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcihlbC5kYXRhc2V0W2RhdGFzZXRdKSB8fCB1bmRlZmluZWRcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBlbC5jbG9zZXN0KGBbJHthdHRyfV1gKSBhcyBIVE1MRWxlbWVudFxuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHBhcmVudC5kYXRhc2V0W2RhdGFzZXRdKSB8fCB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG59XG4iXX0=
|