@ngutil/layout 0.0.81 → 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-layout.mjs +219 -104
- package/fesm2022/ngutil-layout.mjs.map +1 -1
- package/package.json +7 -8
- package/services/slots.service.d.ts +2 -2
- package/sliding/index.d.ts +4 -11
- package/sliding/infinite-slide.directive.d.ts +7 -0
- package/sliding/infinite-sliding.component.d.ts +48 -0
- package/sliding/slide.directive.d.ts +28 -0
- package/sliding/sliding.component.d.ts +6 -4
- package/esm2022/docking/docking-backdrop.component.mjs +0 -16
- package/esm2022/docking/docking-content.component.mjs +0 -11
- package/esm2022/docking/docking-layout.component.mjs +0 -40
- package/esm2022/docking/docking-panel.component.mjs +0 -70
- package/esm2022/docking/index.mjs +0 -20
- package/esm2022/index.mjs +0 -5
- package/esm2022/l9/index.mjs +0 -3
- package/esm2022/l9/range.mjs +0 -131
- package/esm2022/l9/state.mjs +0 -21
- package/esm2022/ngutil-layout.mjs +0 -5
- package/esm2022/services/slots.service.mjs +0 -240
- package/esm2022/sliding/index.mjs +0 -19
- package/esm2022/sliding/sliding-item.component.mjs +0 -11
- package/esm2022/sliding/sliding-item.directive.mjs +0 -25
- package/esm2022/sliding/sliding.component.mjs +0 -183
- package/sliding/sliding-item.component.d.ts +0 -13
- package/sliding/sliding-item.directive.d.ts +0 -13
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Component, computed, ElementRef, inject, input, model, viewChild } from "@angular/core";
|
|
2
|
-
import { takeUntilDestroyed, toObservable, toSignal } from "@angular/core/rxjs-interop";
|
|
3
|
-
import { switchMap } from "rxjs";
|
|
4
|
-
import { coerceBoolAttr } from "@ngutil/common";
|
|
5
|
-
import { DimensionWatcher } from "@ngutil/style";
|
|
6
|
-
import { L9Range } from "../l9/range";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
const DEFAULT_POSITION = L9Range.coerce("left");
|
|
9
|
-
export class DockingPanelComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.#dimWatcher = inject(DimensionWatcher);
|
|
12
|
-
this.el = inject(ElementRef);
|
|
13
|
-
this.position = input(DEFAULT_POSITION, { transform: L9Range.coerce });
|
|
14
|
-
// TODO: linkedSignal
|
|
15
|
-
this.opened = model(false);
|
|
16
|
-
this._opened = computed(() => coerceBoolAttr(this.opened()));
|
|
17
|
-
this.mode = input("rigid");
|
|
18
|
-
this.maxSize = input(undefined);
|
|
19
|
-
this.backdrop = input(false);
|
|
20
|
-
this.gridArea = computed(() => this.position().intoGridArea());
|
|
21
|
-
this.orient = computed(() => this.position().orient);
|
|
22
|
-
this.side = computed(() => {
|
|
23
|
-
const pos = this.position();
|
|
24
|
-
return pos.orient === "horizontal" ? pos.cells[0].v : pos.cells[0].h;
|
|
25
|
-
});
|
|
26
|
-
this.content = viewChild.required("content", { read: ElementRef });
|
|
27
|
-
this.dimension$ = toObservable(this.content).pipe(switchMap(content => this.#dimWatcher.watch(content, "border-box")), takeUntilDestroyed());
|
|
28
|
-
this.dimension = toSignal(this.dimension$);
|
|
29
|
-
this.contentSize = computed(() => {
|
|
30
|
-
const dim = this.dimension();
|
|
31
|
-
if (!dim) {
|
|
32
|
-
return 0;
|
|
33
|
-
}
|
|
34
|
-
return this.orient() === "horizontal" ? dim.height : dim.width;
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
#dimWatcher;
|
|
38
|
-
// readonly backdropSize = computed(() => {
|
|
39
|
-
// const mode = this.backdrop()
|
|
40
|
-
// if (mode === true || mode === "full") {
|
|
41
|
-
// return L9Range.coerce("top:left-bottom:right").intoGridArea()
|
|
42
|
-
// } else if (mode === "panel-size") {
|
|
43
|
-
// const pos = this.position()
|
|
44
|
-
// if (pos.orient === "horizontal") {
|
|
45
|
-
// }
|
|
46
|
-
// return ""
|
|
47
|
-
// }
|
|
48
|
-
// return null
|
|
49
|
-
// })
|
|
50
|
-
open() {
|
|
51
|
-
this.opened.set(true);
|
|
52
|
-
}
|
|
53
|
-
close() {
|
|
54
|
-
this.opened.set(false);
|
|
55
|
-
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DockingPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: DockingPanelComponent, isStandalone: true, selector: "nu-docking-panel", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, opened: { classPropertyName: "opened", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, backdrop: { classPropertyName: "backdrop", publicName: "backdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { opened: "openedChange" }, host: { properties: { "style.grid-area": "gridArea()", "style.--nudp-content-size.px": "contentSize()", "attr.state": "_opened() ? 'opened' : 'closed'", "attr.orient": "orient()", "attr.side": "side()", "attr.mode": "mode()" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, isSignal: true }], exportAs: ["nuDockingPanel"], ngImport: i0, template: `<div class="wrapper" #content><ng-content /></div>`, isInline: true, styles: [":host{--nudp-tx: 0;--nudp-ty: 0;--nudp-t: auto;--nudp-r: auto;--nudp-b: auto;--nudp-l: auto;display:block;position:relative;z-index:100}:host .wrapper{all:inherit;display:grid;grid-template-columns:auto;grid-template-rows:auto;align-items:stretch;justify-items:stretch;position:absolute;top:var(--nudp-t);right:var(--nudp-r);bottom:var(--nudp-b);left:var(--nudp-l);width:auto;height:auto;transition:transform .2s cubic-bezier(0,0,.2,1);transform:translate(var(--nudp-tx),var(--nudp-ty))}:host[mode=rigid]{overflow:clip}:host[mode=rigid][orient=horizontal]{transition:height .2s cubic-bezier(0,0,.2,1);height:var(--nudp-content-size)}:host[mode=rigid][orient=horizontal][state=closed]{height:0px}:host[mode=rigid][orient=vertical]{transition:width .2s cubic-bezier(0,0,.2,1);width:var(--nudp-content-size)}:host[mode=rigid][orient=vertical][state=closed]{width:0}:host[mode=over]{z-index:300}:host[orient=horizontal]{--nudp-l: 0px;--nudp-r: 0px}:host[orient=horizontal][side=top]{--nudp-t: 0px}:host[orient=horizontal][side=top][state=closed]{--nudp-ty: -100%}:host[orient=horizontal][side=bottom]{--nudp-b: 0px}:host[orient=horizontal][side=bottom][state=closed]{--nudp-ty: 100%}:host[orient=horizontal]:not([mode=rigid]){height:0px}:host[orient=vertical]{--nudp-t: 0px;--nudp-b: 0px}:host[orient=vertical][side=left]{--nudp-l: 0px}:host[orient=vertical][side=left][state=closed]{--nudp-tx: -100%}:host[orient=vertical][side=right]{--nudp-r: 0px}:host[orient=vertical][side=right][state=closed]{--nudp-tx: 100%}:host[orient=vertical]:not([mode=rigid]){width:0px}\n"] }); }
|
|
58
|
-
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DockingPanelComponent, decorators: [{
|
|
60
|
-
type: Component,
|
|
61
|
-
args: [{ selector: "nu-docking-panel", exportAs: "nuDockingPanel", standalone: true, host: {
|
|
62
|
-
"[style.grid-area]": "gridArea()",
|
|
63
|
-
"[style.--nudp-content-size.px]": "contentSize()",
|
|
64
|
-
"[attr.state]": "_opened() ? 'opened' : 'closed'",
|
|
65
|
-
"[attr.orient]": "orient()",
|
|
66
|
-
"[attr.side]": "side()",
|
|
67
|
-
"[attr.mode]": "mode()"
|
|
68
|
-
}, template: `<div class="wrapper" #content><ng-content /></div>`, styles: [":host{--nudp-tx: 0;--nudp-ty: 0;--nudp-t: auto;--nudp-r: auto;--nudp-b: auto;--nudp-l: auto;display:block;position:relative;z-index:100}:host .wrapper{all:inherit;display:grid;grid-template-columns:auto;grid-template-rows:auto;align-items:stretch;justify-items:stretch;position:absolute;top:var(--nudp-t);right:var(--nudp-r);bottom:var(--nudp-b);left:var(--nudp-l);width:auto;height:auto;transition:transform .2s cubic-bezier(0,0,.2,1);transform:translate(var(--nudp-tx),var(--nudp-ty))}:host[mode=rigid]{overflow:clip}:host[mode=rigid][orient=horizontal]{transition:height .2s cubic-bezier(0,0,.2,1);height:var(--nudp-content-size)}:host[mode=rigid][orient=horizontal][state=closed]{height:0px}:host[mode=rigid][orient=vertical]{transition:width .2s cubic-bezier(0,0,.2,1);width:var(--nudp-content-size)}:host[mode=rigid][orient=vertical][state=closed]{width:0}:host[mode=over]{z-index:300}:host[orient=horizontal]{--nudp-l: 0px;--nudp-r: 0px}:host[orient=horizontal][side=top]{--nudp-t: 0px}:host[orient=horizontal][side=top][state=closed]{--nudp-ty: -100%}:host[orient=horizontal][side=bottom]{--nudp-b: 0px}:host[orient=horizontal][side=bottom][state=closed]{--nudp-ty: 100%}:host[orient=horizontal]:not([mode=rigid]){height:0px}:host[orient=vertical]{--nudp-t: 0px;--nudp-b: 0px}:host[orient=vertical][side=left]{--nudp-l: 0px}:host[orient=vertical][side=left][state=closed]{--nudp-tx: -100%}:host[orient=vertical][side=right]{--nudp-r: 0px}:host[orient=vertical][side=right][state=closed]{--nudp-tx: 100%}:host[orient=vertical]:not([mode=rigid]){width:0px}\n"] }]
|
|
69
|
-
}] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2luZy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYXlvdXQvc3JjL2RvY2tpbmcvZG9ja2luZy1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRXZGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFaEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBOztBQU1yQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7QUFpQi9DLE1BQU0sT0FBTyxxQkFBcUI7SUFmbEM7UUFnQmEsZ0JBQVcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUN0QyxPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXZCLGFBQVEsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDMUUscUJBQXFCO1FBQ1osV0FBTSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQTtRQUM5QixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3ZELFNBQUksR0FBRyxLQUFLLENBQW1CLE9BQU8sQ0FBQyxDQUFBO1FBQ3ZDLFlBQU8sR0FBRyxLQUFLLENBQTRCLFNBQVMsQ0FBQyxDQUFBO1FBQ3JELGFBQVEsR0FBRyxLQUFLLENBQWUsS0FBSyxDQUFDLENBQUE7UUFFckMsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtRQUN6RCxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMvQyxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7WUFDM0IsT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3hFLENBQUMsQ0FBQyxDQUFBO1FBRU8sWUFBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFFN0QsZUFBVSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNqRCxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUMsRUFDbkUsa0JBQWtCLEVBQUUsQ0FDdkIsQ0FBQTtRQUNRLGNBQVMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXJDLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNqQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7WUFDNUIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNQLE9BQU8sQ0FBQyxDQUFBO1lBQ1osQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQTtRQUNsRSxDQUFDLENBQUMsQ0FBQTtLQXdCTDtJQXhEWSxXQUFXLENBQTJCO0lBa0MvQywyQ0FBMkM7SUFDM0MsbUNBQW1DO0lBQ25DLDhDQUE4QztJQUM5Qyx3RUFBd0U7SUFDeEUsMENBQTBDO0lBQzFDLHNDQUFzQztJQUN0Qyw2Q0FBNkM7SUFFN0MsWUFBWTtJQUVaLG9CQUFvQjtJQUNwQixRQUFRO0lBQ1Isa0JBQWtCO0lBQ2xCLEtBQUs7SUFFTCxJQUFJO1FBQ0EsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMxQixDQUFDOzhHQXhEUSxxQkFBcUI7a0dBQXJCLHFCQUFxQixraUNBbUIyQixVQUFVLDJFQXJCekQsb0RBQW9EOzsyRkFFckQscUJBQXFCO2tCQWZqQyxTQUFTOytCQUNJLGtCQUFrQixZQUNsQixnQkFBZ0IsY0FDZCxJQUFJLFFBQ1Y7d0JBQ0YsbUJBQW1CLEVBQUUsWUFBWTt3QkFDakMsZ0NBQWdDLEVBQUUsZUFBZTt3QkFDakQsY0FBYyxFQUFFLGlDQUFpQzt3QkFDakQsZUFBZSxFQUFFLFVBQVU7d0JBQzNCLGFBQWEsRUFBRSxRQUFRO3dCQUN2QixhQUFhLEVBQUUsUUFBUTtxQkFDMUIsWUFFUyxvREFBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBtb2RlbCwgdmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCJcblxuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBjb2VyY2VCb29sQXR0ciB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5pbXBvcnQgeyBEaW1lbnNpb25XYXRjaGVyIH0gZnJvbSBcIkBuZ3V0aWwvc3R5bGVcIlxuXG5pbXBvcnQgeyBMOVJhbmdlIH0gZnJvbSBcIi4uL2w5L3JhbmdlXCJcblxuZXhwb3J0IHR5cGUgRG9ja2luZ1BhbmVsU3RhdGUgPSBcImZ1bGxcIiB8IFwibWluaVwiIHwgXCJoaWRkZW5cIlxuZXhwb3J0IHR5cGUgRG9ja2luZ1BhbmVsTW9kZSA9IFwib3ZlclwiIHwgXCJwdXNoXCIgfCBcInJpZ2lkXCJcbmV4cG9ydCB0eXBlIEJhY2tkcm9wTW9kZSA9IGJvb2xlYW4gfCBcImZ1bGxcIiB8IFwicGFuZWwtc2l6ZVwiXG5cbmNvbnN0IERFRkFVTFRfUE9TSVRJT04gPSBMOVJhbmdlLmNvZXJjZShcImxlZnRcIilcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibnUtZG9ja2luZy1wYW5lbFwiLFxuICAgIGV4cG9ydEFzOiBcIm51RG9ja2luZ1BhbmVsXCIsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgIFwiW3N0eWxlLmdyaWQtYXJlYV1cIjogXCJncmlkQXJlYSgpXCIsXG4gICAgICAgIFwiW3N0eWxlLi0tbnVkcC1jb250ZW50LXNpemUucHhdXCI6IFwiY29udGVudFNpemUoKVwiLFxuICAgICAgICBcIlthdHRyLnN0YXRlXVwiOiBcIl9vcGVuZWQoKSA/ICdvcGVuZWQnIDogJ2Nsb3NlZCdcIixcbiAgICAgICAgXCJbYXR0ci5vcmllbnRdXCI6IFwib3JpZW50KClcIixcbiAgICAgICAgXCJbYXR0ci5zaWRlXVwiOiBcInNpZGUoKVwiLFxuICAgICAgICBcIlthdHRyLm1vZGVdXCI6IFwibW9kZSgpXCJcbiAgICB9LFxuICAgIHN0eWxlVXJsOiBcIi4vZG9ja2luZy1wYW5lbC5jb21wb25lbnQuc2Nzc1wiLFxuICAgIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cIndyYXBwZXJcIiAjY29udGVudD48bmctY29udGVudCAvPjwvZGl2PmBcbn0pXG5leHBvcnQgY2xhc3MgRG9ja2luZ1BhbmVsQ29tcG9uZW50IHtcbiAgICByZWFkb25seSAjZGltV2F0Y2hlciA9IGluamVjdChEaW1lbnNpb25XYXRjaGVyKVxuICAgIHJlYWRvbmx5IGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpXG5cbiAgICByZWFkb25seSBwb3NpdGlvbiA9IGlucHV0KERFRkFVTFRfUE9TSVRJT04sIHsgdHJhbnNmb3JtOiBMOVJhbmdlLmNvZXJjZSB9KVxuICAgIC8vIFRPRE86IGxpbmtlZFNpZ25hbFxuICAgIHJlYWRvbmx5IG9wZW5lZCA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKVxuICAgIHJlYWRvbmx5IF9vcGVuZWQgPSBjb21wdXRlZCgoKSA9PiBjb2VyY2VCb29sQXR0cih0aGlzLm9wZW5lZCgpKSlcbiAgICByZWFkb25seSBtb2RlID0gaW5wdXQ8RG9ja2luZ1BhbmVsTW9kZT4oXCJyaWdpZFwiKVxuICAgIHJlYWRvbmx5IG1heFNpemUgPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsPih1bmRlZmluZWQpXG4gICAgcmVhZG9ubHkgYmFja2Ryb3AgPSBpbnB1dDxCYWNrZHJvcE1vZGU+KGZhbHNlKVxuXG4gICAgcmVhZG9ubHkgZ3JpZEFyZWEgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBvc2l0aW9uKCkuaW50b0dyaWRBcmVhKCkpXG4gICAgcmVhZG9ubHkgb3JpZW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wb3NpdGlvbigpLm9yaWVudClcbiAgICByZWFkb25seSBzaWRlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBwb3MgPSB0aGlzLnBvc2l0aW9uKClcbiAgICAgICAgcmV0dXJuIHBvcy5vcmllbnQgPT09IFwiaG9yaXpvbnRhbFwiID8gcG9zLmNlbGxzWzBdLnYgOiBwb3MuY2VsbHNbMF0uaFxuICAgIH0pXG5cbiAgICByZWFkb25seSBjb250ZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkKFwiY29udGVudFwiLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcblxuICAgIHJlYWRvbmx5IGRpbWVuc2lvbiQgPSB0b09ic2VydmFibGUodGhpcy5jb250ZW50KS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoY29udGVudCA9PiB0aGlzLiNkaW1XYXRjaGVyLndhdGNoKGNvbnRlbnQsIFwiYm9yZGVyLWJveFwiKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgKVxuICAgIHJlYWRvbmx5IGRpbWVuc2lvbiA9IHRvU2lnbmFsKHRoaXMuZGltZW5zaW9uJClcblxuICAgIHJlYWRvbmx5IGNvbnRlbnRTaXplID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBkaW0gPSB0aGlzLmRpbWVuc2lvbigpXG4gICAgICAgIGlmICghZGltKSB7XG4gICAgICAgICAgICByZXR1cm4gMFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm9yaWVudCgpID09PSBcImhvcml6b250YWxcIiA/IGRpbS5oZWlnaHQgOiBkaW0ud2lkdGhcbiAgICB9KVxuXG4gICAgLy8gcmVhZG9ubHkgYmFja2Ryb3BTaXplID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIC8vICAgICBjb25zdCBtb2RlID0gdGhpcy5iYWNrZHJvcCgpXG4gICAgLy8gICAgIGlmIChtb2RlID09PSB0cnVlIHx8IG1vZGUgPT09IFwiZnVsbFwiKSB7XG4gICAgLy8gICAgICAgICByZXR1cm4gTDlSYW5nZS5jb2VyY2UoXCJ0b3A6bGVmdC1ib3R0b206cmlnaHRcIikuaW50b0dyaWRBcmVhKClcbiAgICAvLyAgICAgfSBlbHNlIGlmIChtb2RlID09PSBcInBhbmVsLXNpemVcIikge1xuICAgIC8vICAgICAgICAgY29uc3QgcG9zID0gdGhpcy5wb3NpdGlvbigpXG4gICAgLy8gICAgICAgICBpZiAocG9zLm9yaWVudCA9PT0gXCJob3Jpem9udGFsXCIpIHtcblxuICAgIC8vICAgICAgICAgfVxuXG4gICAgLy8gICAgICAgICByZXR1cm4gXCJcIlxuICAgIC8vICAgICB9XG4gICAgLy8gICAgIHJldHVybiBudWxsXG4gICAgLy8gfSlcblxuICAgIG9wZW4oKSB7XG4gICAgICAgIHRoaXMub3BlbmVkLnNldCh0cnVlKVxuICAgIH1cblxuICAgIGNsb3NlKCkge1xuICAgICAgICB0aGlzLm9wZW5lZC5zZXQoZmFsc2UpXG4gICAgfVxufVxuIl19
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { DockingContentComponent } from "./docking-content.component";
|
|
3
|
-
import { DockingLayoutComponent } from "./docking-layout.component";
|
|
4
|
-
import { DockingPanelComponent } from "./docking-panel.component";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export { DockingLayoutComponent, DockingPanelComponent, DockingContentComponent };
|
|
7
|
-
const members = [DockingLayoutComponent, DockingPanelComponent, DockingContentComponent];
|
|
8
|
-
export class NuDockingLayout {
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NuDockingLayout, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: NuDockingLayout, imports: [DockingLayoutComponent, DockingPanelComponent, DockingContentComponent], exports: [DockingLayoutComponent, DockingPanelComponent, DockingContentComponent] }); }
|
|
11
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NuDockingLayout }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NuDockingLayout, decorators: [{
|
|
14
|
-
type: NgModule,
|
|
15
|
-
args: [{
|
|
16
|
-
imports: members,
|
|
17
|
-
exports: members
|
|
18
|
-
}]
|
|
19
|
-
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYXlvdXQvc3JjL2RvY2tpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTs7QUFFakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLENBQUE7QUFFakYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsQ0FBQyxDQUFBO0FBTXhGLE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxZQU5YLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixhQUF0RSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUI7K0dBTTFFLGVBQWU7OzJGQUFmLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRSxPQUFPO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyBEb2NraW5nQ29udGVudENvbXBvbmVudCB9IGZyb20gXCIuL2RvY2tpbmctY29udGVudC5jb21wb25lbnRcIlxuaW1wb3J0IHsgRG9ja2luZ0xheW91dENvbXBvbmVudCB9IGZyb20gXCIuL2RvY2tpbmctbGF5b3V0LmNvbXBvbmVudFwiXG5pbXBvcnQgeyBEb2NraW5nUGFuZWxDb21wb25lbnQgfSBmcm9tIFwiLi9kb2NraW5nLXBhbmVsLmNvbXBvbmVudFwiXG5cbmV4cG9ydCB7IERvY2tpbmdMYXlvdXRDb21wb25lbnQsIERvY2tpbmdQYW5lbENvbXBvbmVudCwgRG9ja2luZ0NvbnRlbnRDb21wb25lbnQgfVxuXG5jb25zdCBtZW1iZXJzID0gW0RvY2tpbmdMYXlvdXRDb21wb25lbnQsIERvY2tpbmdQYW5lbENvbXBvbmVudCwgRG9ja2luZ0NvbnRlbnRDb21wb25lbnRdXG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogbWVtYmVycyxcbiAgICBleHBvcnRzOiBtZW1iZXJzXG59KVxuZXhwb3J0IGNsYXNzIE51RG9ja2luZ0xheW91dCB7fVxuIl19
|
package/esm2022/index.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from "./l9";
|
|
2
|
-
export * from "./docking";
|
|
3
|
-
export * from "./services/slots.service";
|
|
4
|
-
export * from "./sliding";
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9sYXlvdXQvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsTUFBTSxDQUFBO0FBQ3BCLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYyxXQUFXLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9sOVwiXG5leHBvcnQgKiBmcm9tIFwiLi9kb2NraW5nXCJcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2VzL3Nsb3RzLnNlcnZpY2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vc2xpZGluZ1wiXG4iXX0=
|
package/esm2022/l9/index.mjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from "./range";
|
|
2
|
-
export * from "./state";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYXlvdXQvc3JjL2w5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcmFuZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vc3RhdGVcIlxuIl19
|
package/esm2022/l9/range.mjs
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
const vertical = ["top", "middle", "bottom"];
|
|
2
|
-
const horizontal = ["left", "center", "right"];
|
|
3
|
-
export const L9GridTopLeft = { row: 1, col: 1 };
|
|
4
|
-
export class L9Cell {
|
|
5
|
-
static coerce(value) {
|
|
6
|
-
const [v1, v2] = value.split(":");
|
|
7
|
-
const v = vertical.includes(v1) ? v1 : v2;
|
|
8
|
-
const h = horizontal.includes(v1) ? v1 : v2;
|
|
9
|
-
if (v === h) {
|
|
10
|
-
throw new Error(`Invalid cell value: ${value}`);
|
|
11
|
-
}
|
|
12
|
-
return new L9Cell(v, h);
|
|
13
|
-
}
|
|
14
|
-
constructor(v, h) {
|
|
15
|
-
this.v = v;
|
|
16
|
-
this.h = h;
|
|
17
|
-
}
|
|
18
|
-
intoGridArea(gridTopLeft = L9GridTopLeft) {
|
|
19
|
-
return `${gridTopLeft.row + vertical.indexOf(this.v)}/${gridTopLeft.col + horizontal.indexOf(this.h)}`;
|
|
20
|
-
}
|
|
21
|
-
isEq(other) {
|
|
22
|
-
return this.v === other.v && this.h === other.h;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
export class L9Range {
|
|
26
|
-
static coerce(value) {
|
|
27
|
-
if (value instanceof L9Range) {
|
|
28
|
-
return value;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return new L9Range(value);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
constructor(range) {
|
|
35
|
-
this.cells = parse(range);
|
|
36
|
-
this.orient = this.#determineOrient();
|
|
37
|
-
}
|
|
38
|
-
isEq(other) {
|
|
39
|
-
if (other instanceof L9Range) {
|
|
40
|
-
const selfFirst = this.cells[0];
|
|
41
|
-
const otherFirst = other.cells[0];
|
|
42
|
-
if (selfFirst.h !== otherFirst.h || selfFirst.v !== otherFirst.v) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
const selfLast = this.cells[this.cells.length - 1];
|
|
46
|
-
const otherLast = other.cells[other.cells.length - 1];
|
|
47
|
-
if (selfLast.h === otherLast.h && selfLast.v === otherLast.v) {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
intoGridArea(gridTopLeft = L9GridTopLeft) {
|
|
54
|
-
const start = this.cells[0];
|
|
55
|
-
const end = this.cells[this.cells.length - 1];
|
|
56
|
-
const endTopLeft = { row: gridTopLeft.row + 1, col: gridTopLeft.col + 1 };
|
|
57
|
-
return `${start.intoGridArea(gridTopLeft)}/${end.intoGridArea(endTopLeft)}`;
|
|
58
|
-
}
|
|
59
|
-
intoRect() {
|
|
60
|
-
const start = this.cells[0];
|
|
61
|
-
const end = this.cells[this.cells.length - 1];
|
|
62
|
-
const x = horizontal.indexOf(start.h);
|
|
63
|
-
const y = vertical.indexOf(start.v);
|
|
64
|
-
return { x, y, width: horizontal.indexOf(end.h) - x + 1, height: vertical.indexOf(end.v) - y + 1 };
|
|
65
|
-
}
|
|
66
|
-
#determineOrient() {
|
|
67
|
-
const rect = this.intoRect();
|
|
68
|
-
if (rect.width === rect.height) {
|
|
69
|
-
// corner
|
|
70
|
-
if (rect.x === rect.y) {
|
|
71
|
-
return "vertical";
|
|
72
|
-
}
|
|
73
|
-
if (rect.x === 0 || rect.x === 2) {
|
|
74
|
-
return "vertical";
|
|
75
|
-
}
|
|
76
|
-
else if (rect.y === 0 || rect.y === 2) {
|
|
77
|
-
return "horizontal";
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else if (rect.width > rect.height) {
|
|
81
|
-
return "horizontal";
|
|
82
|
-
}
|
|
83
|
-
else if (rect.height > rect.width) {
|
|
84
|
-
return "vertical";
|
|
85
|
-
}
|
|
86
|
-
return "vertical";
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
function parse(value) {
|
|
90
|
-
const cells = [];
|
|
91
|
-
if (vertical.includes(value)) {
|
|
92
|
-
for (const h of horizontal) {
|
|
93
|
-
cells.push(new L9Cell(value, h));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else if (horizontal.includes(value)) {
|
|
97
|
-
for (const v of vertical) {
|
|
98
|
-
cells.push(new L9Cell(v, value));
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
else if (value.includes("-")) {
|
|
102
|
-
const [begin, end] = value.split("-");
|
|
103
|
-
const beginCells = parse(begin);
|
|
104
|
-
const endCells = parse(end);
|
|
105
|
-
if (beginCells.length > 1) {
|
|
106
|
-
throw new Error(`Currently not supported begin range value: ${begin}`);
|
|
107
|
-
}
|
|
108
|
-
if (endCells.length > 1) {
|
|
109
|
-
throw new Error(`Currently not supported end range value: ${end}`);
|
|
110
|
-
}
|
|
111
|
-
const { v: bv, h: bh } = beginCells[0];
|
|
112
|
-
const { v: ev, h: eh } = endCells[0];
|
|
113
|
-
const vstart = Math.min(vertical.indexOf(bv), vertical.indexOf(ev));
|
|
114
|
-
const vend = Math.max(vertical.indexOf(bv), vertical.indexOf(ev));
|
|
115
|
-
const hstart = Math.min(horizontal.indexOf(bh), horizontal.indexOf(eh));
|
|
116
|
-
const hend = Math.max(horizontal.indexOf(bh), horizontal.indexOf(eh));
|
|
117
|
-
for (let vi = vstart; vi <= vend; vi++) {
|
|
118
|
-
for (let hi = hstart; hi <= hend; hi++) {
|
|
119
|
-
cells.push(new L9Cell(vertical[vi], horizontal[hi]));
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
else if (value.includes(":")) {
|
|
124
|
-
cells.push(L9Cell.coerce(value));
|
|
125
|
-
}
|
|
126
|
-
if (cells.length === 0) {
|
|
127
|
-
throw Error(`Undefined l9cell: "${value}"`);
|
|
128
|
-
}
|
|
129
|
-
return cells;
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYXlvdXQvc3JjL2w5L3JhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQVUsQ0FBQTtBQUNyRCxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFVLENBQUE7QUFRdkQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUE7QUFFL0MsTUFBTSxPQUFPLE1BQU07SUFDZixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWlCO1FBQzNCLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNqQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNoRCxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUVsRCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDbkQsQ0FBQztRQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBUSxFQUFFLENBQVEsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxZQUNvQixDQUFhLEVBQ2IsQ0FBZTtRQURmLE1BQUMsR0FBRCxDQUFDLENBQVk7UUFDYixNQUFDLEdBQUQsQ0FBQyxDQUFjO0lBQ2hDLENBQUM7SUFFSixZQUFZLENBQUMsY0FBb0MsYUFBYTtRQUMxRCxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDMUcsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFhO1FBQ2QsT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ25ELENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxPQUFPO0lBQ2hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBNEI7UUFDdEMsSUFBSSxLQUFLLFlBQVksT0FBTyxFQUFFLENBQUM7WUFDM0IsT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBS0QsWUFBWSxLQUFrQjtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO0lBQ3pDLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYztRQUNmLElBQUksS0FBSyxZQUFZLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDL0IsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUVqQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDL0QsT0FBTyxLQUFLLENBQUE7WUFDaEIsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDbEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUVyRCxJQUFJLFFBQVEsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDM0QsT0FBTyxJQUFJLENBQUE7WUFDZixDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxZQUFZLENBQUMsY0FBb0MsYUFBYTtRQUMxRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDN0MsTUFBTSxVQUFVLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUE7UUFDekUsT0FBTyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFBO0lBQy9FLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzdDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRW5DLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUE7SUFDdEcsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVM7WUFDVCxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNwQixPQUFPLFVBQVUsQ0FBQTtZQUNyQixDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMvQixPQUFPLFVBQVUsQ0FBQTtZQUNyQixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsT0FBTyxZQUFZLENBQUE7WUFDdkIsQ0FBQztRQUNMLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLE9BQU8sWUFBWSxDQUFBO1FBQ3ZCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xDLE9BQU8sVUFBVSxDQUFBO1FBQ3JCLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQTtJQUNyQixDQUFDO0NBQ0o7QUFFRCxTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3JCLE1BQU0sS0FBSyxHQUFrQixFQUFFLENBQUE7SUFFL0IsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0IsS0FBSyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUN6QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3BDLENBQUM7SUFDTCxDQUFDO1NBQU0sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEMsS0FBSyxNQUFNLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQ3BDLENBQUM7SUFDTCxDQUFDO1NBQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFM0IsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDMUUsQ0FBQztRQUVELElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxHQUFHLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLENBQUM7UUFFRCxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3RDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQVMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBUyxDQUFDLENBQUMsQ0FBQTtRQUNqRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFTLENBQUMsQ0FBQyxDQUFBO1FBQy9FLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFTLENBQUMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQVMsQ0FBQyxDQUFDLENBQUE7UUFDckYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQVMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBUyxDQUFDLENBQUMsQ0FBQTtRQUVuRixLQUFLLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDckMsS0FBSyxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO2dCQUNyQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3hELENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztTQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckIsTUFBTSxLQUFLLENBQUMsc0JBQXNCLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFBO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiB8IFRPUDpMRUZUICAgICB8ICBUT1A6Q0VOVEVSICAgfCBUT1A6UklHSFQgICAgfFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogfCBNSURETEU6TEVGVCAgfCBNSURETEU6Q0VOVEVSIHwgTUlERExFOlJJR0hUIHxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIHwgQk9UVE9NTjpMRUZUIHwgQk9UVE9NOkNFTlRFUiB8IEJPVFRPTTpSSUdIVCB8XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5pbXBvcnQgeyBSZWN0IH0gZnJvbSBcIkBuZ3V0aWwvc3R5bGVcIlxuXG5jb25zdCB2ZXJ0aWNhbCA9IFtcInRvcFwiLCBcIm1pZGRsZVwiLCBcImJvdHRvbVwiXSBhcyBjb25zdFxuY29uc3QgaG9yaXpvbnRhbCA9IFtcImxlZnRcIiwgXCJjZW50ZXJcIiwgXCJyaWdodFwiXSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBMOVZlcnRpY2FsID0gKHR5cGVvZiB2ZXJ0aWNhbClbbnVtYmVyXVxuZXhwb3J0IHR5cGUgTDlIb3Jpem9udGFsID0gKHR5cGVvZiBob3Jpem9udGFsKVtudW1iZXJdXG5leHBvcnQgdHlwZSBMOUNlbGxOYW1lID0gYCR7TDlWZXJ0aWNhbH06JHtMOUhvcml6b250YWx9YCB8IGAke0w5SG9yaXpvbnRhbH06JHtMOVZlcnRpY2FsfWBcbmV4cG9ydCB0eXBlIEw5UmFuZ2VOYW1lID0gTDlWZXJ0aWNhbCB8IEw5SG9yaXpvbnRhbCB8IEw5Q2VsbE5hbWUgfCBgJHtMOUNlbGxOYW1lfS0ke0w5Q2VsbE5hbWV9YFxuZXhwb3J0IHR5cGUgTDlPcmllbnQgPSBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIlxuXG5leHBvcnQgY29uc3QgTDlHcmlkVG9wTGVmdCA9IHsgcm93OiAxLCBjb2w6IDEgfVxuXG5leHBvcnQgY2xhc3MgTDlDZWxsIHtcbiAgICBzdGF0aWMgY29lcmNlKHZhbHVlOiBMOUNlbGxOYW1lKSB7XG4gICAgICAgIGNvbnN0IFt2MSwgdjJdID0gdmFsdWUuc3BsaXQoXCI6XCIpXG4gICAgICAgIGNvbnN0IHYgPSB2ZXJ0aWNhbC5pbmNsdWRlcyh2MSBhcyBhbnkpID8gdjEgOiB2MlxuICAgICAgICBjb25zdCBoID0gaG9yaXpvbnRhbC5pbmNsdWRlcyh2MSBhcyBhbnkpID8gdjEgOiB2MlxuXG4gICAgICAgIGlmICh2ID09PSBoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2VsbCB2YWx1ZTogJHt2YWx1ZX1gKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBMOUNlbGwodiBhcyBhbnksIGggYXMgYW55KVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdjogTDlWZXJ0aWNhbCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGg6IEw5SG9yaXpvbnRhbFxuICAgICkge31cblxuICAgIGludG9HcmlkQXJlYShncmlkVG9wTGVmdDogdHlwZW9mIEw5R3JpZFRvcExlZnQgPSBMOUdyaWRUb3BMZWZ0KSB7XG4gICAgICAgIHJldHVybiBgJHtncmlkVG9wTGVmdC5yb3cgKyB2ZXJ0aWNhbC5pbmRleE9mKHRoaXMudil9LyR7Z3JpZFRvcExlZnQuY29sICsgaG9yaXpvbnRhbC5pbmRleE9mKHRoaXMuaCl9YFxuICAgIH1cblxuICAgIGlzRXEob3RoZXI6IEw5Q2VsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy52ID09PSBvdGhlci52ICYmIHRoaXMuaCA9PT0gb3RoZXIuaFxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEw5UmFuZ2Uge1xuICAgIHN0YXRpYyBjb2VyY2UodmFsdWU6IEw5UmFuZ2UgfCBMOVJhbmdlTmFtZSkge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMOVJhbmdlKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTDlSYW5nZSh2YWx1ZSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlYWRvbmx5IGNlbGxzOiBBcnJheTxMOUNlbGw+XG4gICAgcmVhZG9ubHkgb3JpZW50OiBMOU9yaWVudFxuXG4gICAgY29uc3RydWN0b3IocmFuZ2U6IEw5UmFuZ2VOYW1lKSB7XG4gICAgICAgIHRoaXMuY2VsbHMgPSBwYXJzZShyYW5nZSlcbiAgICAgICAgdGhpcy5vcmllbnQgPSB0aGlzLiNkZXRlcm1pbmVPcmllbnQoKVxuICAgIH1cblxuICAgIGlzRXEob3RoZXI6IEw5UmFuZ2UpIHtcbiAgICAgICAgaWYgKG90aGVyIGluc3RhbmNlb2YgTDlSYW5nZSkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZkZpcnN0ID0gdGhpcy5jZWxsc1swXVxuICAgICAgICAgICAgY29uc3Qgb3RoZXJGaXJzdCA9IG90aGVyLmNlbGxzWzBdXG5cbiAgICAgICAgICAgIGlmIChzZWxmRmlyc3QuaCAhPT0gb3RoZXJGaXJzdC5oIHx8IHNlbGZGaXJzdC52ICE9PSBvdGhlckZpcnN0LnYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2VsZkxhc3QgPSB0aGlzLmNlbGxzW3RoaXMuY2VsbHMubGVuZ3RoIC0gMV1cbiAgICAgICAgICAgIGNvbnN0IG90aGVyTGFzdCA9IG90aGVyLmNlbGxzW290aGVyLmNlbGxzLmxlbmd0aCAtIDFdXG5cbiAgICAgICAgICAgIGlmIChzZWxmTGFzdC5oID09PSBvdGhlckxhc3QuaCAmJiBzZWxmTGFzdC52ID09PSBvdGhlckxhc3Qudikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaW50b0dyaWRBcmVhKGdyaWRUb3BMZWZ0OiB0eXBlb2YgTDlHcmlkVG9wTGVmdCA9IEw5R3JpZFRvcExlZnQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmNlbGxzWzBdXG4gICAgICAgIGNvbnN0IGVuZCA9IHRoaXMuY2VsbHNbdGhpcy5jZWxscy5sZW5ndGggLSAxXVxuICAgICAgICBjb25zdCBlbmRUb3BMZWZ0ID0geyByb3c6IGdyaWRUb3BMZWZ0LnJvdyArIDEsIGNvbDogZ3JpZFRvcExlZnQuY29sICsgMSB9XG4gICAgICAgIHJldHVybiBgJHtzdGFydC5pbnRvR3JpZEFyZWEoZ3JpZFRvcExlZnQpfS8ke2VuZC5pbnRvR3JpZEFyZWEoZW5kVG9wTGVmdCl9YFxuICAgIH1cblxuICAgIGludG9SZWN0KCk6IFJlY3Qge1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMuY2VsbHNbMF1cbiAgICAgICAgY29uc3QgZW5kID0gdGhpcy5jZWxsc1t0aGlzLmNlbGxzLmxlbmd0aCAtIDFdXG4gICAgICAgIGNvbnN0IHggPSBob3Jpem9udGFsLmluZGV4T2Yoc3RhcnQuaClcbiAgICAgICAgY29uc3QgeSA9IHZlcnRpY2FsLmluZGV4T2Yoc3RhcnQudilcblxuICAgICAgICByZXR1cm4geyB4LCB5LCB3aWR0aDogaG9yaXpvbnRhbC5pbmRleE9mKGVuZC5oKSAtIHggKyAxLCBoZWlnaHQ6IHZlcnRpY2FsLmluZGV4T2YoZW5kLnYpIC0geSArIDEgfVxuICAgIH1cblxuICAgICNkZXRlcm1pbmVPcmllbnQoKTogTDlPcmllbnQge1xuICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5pbnRvUmVjdCgpXG4gICAgICAgIGlmIChyZWN0LndpZHRoID09PSByZWN0LmhlaWdodCkge1xuICAgICAgICAgICAgLy8gY29ybmVyXG4gICAgICAgICAgICBpZiAocmVjdC54ID09PSByZWN0LnkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZWN0LnggPT09IDAgfHwgcmVjdC54ID09PSAyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidmVydGljYWxcIlxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZWN0LnkgPT09IDAgfHwgcmVjdC55ID09PSAyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaG9yaXpvbnRhbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAocmVjdC53aWR0aCA+IHJlY3QuaGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4gXCJob3Jpem9udGFsXCJcbiAgICAgICAgfSBlbHNlIGlmIChyZWN0LmhlaWdodCA+IHJlY3Qud2lkdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBcInZlcnRpY2FsXCJcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBcInZlcnRpY2FsXCJcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlKHZhbHVlOiBhbnkpOiBBcnJheTxMOUNlbGw+IHtcbiAgICBjb25zdCBjZWxsczogQXJyYXk8TDlDZWxsPiA9IFtdXG5cbiAgICBpZiAodmVydGljYWwuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgIGZvciAoY29uc3QgaCBvZiBob3Jpem9udGFsKSB7XG4gICAgICAgICAgICBjZWxscy5wdXNoKG5ldyBMOUNlbGwodmFsdWUsIGgpKVxuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChob3Jpem9udGFsLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmVydGljYWwpIHtcbiAgICAgICAgICAgIGNlbGxzLnB1c2gobmV3IEw5Q2VsbCh2LCB2YWx1ZSkpXG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHZhbHVlLmluY2x1ZGVzKFwiLVwiKSkge1xuICAgICAgICBjb25zdCBbYmVnaW4sIGVuZF0gPSB2YWx1ZS5zcGxpdChcIi1cIilcbiAgICAgICAgY29uc3QgYmVnaW5DZWxscyA9IHBhcnNlKGJlZ2luKVxuICAgICAgICBjb25zdCBlbmRDZWxscyA9IHBhcnNlKGVuZClcblxuICAgICAgICBpZiAoYmVnaW5DZWxscy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGJlZ2luIHJhbmdlIHZhbHVlOiAke2JlZ2lufWApXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZW5kQ2VsbHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDdXJyZW50bHkgbm90IHN1cHBvcnRlZCBlbmQgcmFuZ2UgdmFsdWU6ICR7ZW5kfWApXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHY6IGJ2LCBoOiBiaCB9ID0gYmVnaW5DZWxsc1swXVxuICAgICAgICBjb25zdCB7IHY6IGV2LCBoOiBlaCB9ID0gZW5kQ2VsbHNbMF1cblxuICAgICAgICBjb25zdCB2c3RhcnQgPSBNYXRoLm1pbih2ZXJ0aWNhbC5pbmRleE9mKGJ2IGFzIGFueSksIHZlcnRpY2FsLmluZGV4T2YoZXYgYXMgYW55KSlcbiAgICAgICAgY29uc3QgdmVuZCA9IE1hdGgubWF4KHZlcnRpY2FsLmluZGV4T2YoYnYgYXMgYW55KSwgdmVydGljYWwuaW5kZXhPZihldiBhcyBhbnkpKVxuICAgICAgICBjb25zdCBoc3RhcnQgPSBNYXRoLm1pbihob3Jpem9udGFsLmluZGV4T2YoYmggYXMgYW55KSwgaG9yaXpvbnRhbC5pbmRleE9mKGVoIGFzIGFueSkpXG4gICAgICAgIGNvbnN0IGhlbmQgPSBNYXRoLm1heChob3Jpem9udGFsLmluZGV4T2YoYmggYXMgYW55KSwgaG9yaXpvbnRhbC5pbmRleE9mKGVoIGFzIGFueSkpXG5cbiAgICAgICAgZm9yIChsZXQgdmkgPSB2c3RhcnQ7IHZpIDw9IHZlbmQ7IHZpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGhpID0gaHN0YXJ0OyBoaSA8PSBoZW5kOyBoaSsrKSB7XG4gICAgICAgICAgICAgICAgY2VsbHMucHVzaChuZXcgTDlDZWxsKHZlcnRpY2FsW3ZpXSwgaG9yaXpvbnRhbFtoaV0pKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIGlmICh2YWx1ZS5pbmNsdWRlcyhcIjpcIikpIHtcbiAgICAgICAgY2VsbHMucHVzaChMOUNlbGwuY29lcmNlKHZhbHVlKSlcbiAgICB9XG5cbiAgICBpZiAoY2VsbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBVbmRlZmluZWQgbDljZWxsOiBcIiR7dmFsdWV9XCJgKVxuICAgIH1cblxuICAgIHJldHVybiBjZWxsc1xufVxuIl19
|
package/esm2022/l9/state.mjs
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, map, shareReplay } from "rxjs";
|
|
2
|
-
export class L9State {
|
|
3
|
-
#dims;
|
|
4
|
-
constructor(prefix) {
|
|
5
|
-
this.prefix = prefix;
|
|
6
|
-
this.#dims = new BehaviorSubject({});
|
|
7
|
-
this.style = this.#dims.pipe(map(dims => {
|
|
8
|
-
const res = {};
|
|
9
|
-
for (const [k, v] of Object.entries(dims)) {
|
|
10
|
-
if (v == null) {
|
|
11
|
-
continue;
|
|
12
|
-
}
|
|
13
|
-
const [vertical, horizontal] = k.split(":");
|
|
14
|
-
res[`--${this.prefix}-${vertical}-${horizontal}-w`] = v.width.toString();
|
|
15
|
-
res[`--${this.prefix}-${vertical}-${horizontal}-h`] = v.height.toString();
|
|
16
|
-
}
|
|
17
|
-
return res;
|
|
18
|
-
}), shareReplay(1));
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYXlvdXQvc3JjL2w5L3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQVdwRSxNQUFNLE9BQU8sT0FBTztJQUNQLEtBQUssQ0FBa0M7SUFxQmhELFlBQTRCLE1BQVM7UUFBVCxXQUFNLEdBQU4sTUFBTSxDQUFHO1FBckI1QixVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUE7UUFFdkMsVUFBSyxHQUErQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDeEQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1AsTUFBTSxHQUFHLEdBQW1CLEVBQUUsQ0FBQTtZQUU5QixLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDWixTQUFRO2dCQUNaLENBQUM7Z0JBRUQsTUFBTSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUMzQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxJQUFJLFFBQVEsSUFBSSxVQUFVLElBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO2dCQUN6RixHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxJQUFJLFFBQVEsSUFBSSxVQUFVLElBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQzlGLENBQUM7WUFFRCxPQUFPLEdBQUcsQ0FBQTtRQUNkLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQTtJQUV1QyxDQUFDO0NBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5IH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyB0eXBlIERpbWVuc2lvbiB9IGZyb20gXCJAbmd1dGlsL3N0eWxlXCJcblxuaW1wb3J0IHsgTDlDZWxsTmFtZSwgTDlIb3Jpem9udGFsLCBMOVZlcnRpY2FsIH0gZnJvbSBcIi4vcmFuZ2VcIlxuXG5leHBvcnQgdHlwZSBMOVN0YXRlVmFyPFQgZXh0ZW5kcyBzdHJpbmc+ID0gYC0tJHtUfS0ke0w5VmVydGljYWx9LSR7TDlIb3Jpem9udGFsfS0ke1wid1wiIHwgXCJoXCJ9YFxuZXhwb3J0IHR5cGUgTDlTdHlsZVZhcnM8VCBleHRlbmRzIHN0cmluZz4gPSB7IFtrZXkgaW4gTDlTdGF0ZVZhcjxUPl0/OiBzdHJpbmcgfVxuXG50eXBlIEw5RGltcyA9IHsgW2tleSBpbiBMOUNlbGxOYW1lXT86IERpbWVuc2lvbiB9XG5cbmV4cG9ydCBjbGFzcyBMOVN0YXRlPFQgZXh0ZW5kcyBzdHJpbmc+IHtcbiAgICByZWFkb25seSAjZGltcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TDlEaW1zPih7fSlcblxuICAgIHJlYWRvbmx5IHN0eWxlOiBPYnNlcnZhYmxlPEw5U3R5bGVWYXJzPFQ+PiA9IHRoaXMuI2RpbXMucGlwZShcbiAgICAgICAgbWFwKGRpbXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzOiBMOVN0eWxlVmFyczxUPiA9IHt9XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGRpbXMpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHYgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IFt2ZXJ0aWNhbCwgaG9yaXpvbnRhbF0gPSBrLnNwbGl0KFwiOlwiKVxuICAgICAgICAgICAgICAgIHJlc1tgLS0ke3RoaXMucHJlZml4fS0ke3ZlcnRpY2FsfS0ke2hvcml6b250YWx9LXdgIGFzIEw5U3RhdGVWYXI8VD5dID0gdi53aWR0aC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgcmVzW2AtLSR7dGhpcy5wcmVmaXh9LSR7dmVydGljYWx9LSR7aG9yaXpvbnRhbH0taGAgYXMgTDlTdGF0ZVZhcjxUPl0gPSB2LmhlaWdodC50b1N0cmluZygpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXNcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHByZWZpeDogVCkge31cbn1cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd1dGlsLWxheW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xheW91dC9zcmMvbmd1dGlsLWxheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
import { Directive, inject, Injectable, Injector, TemplateRef, ViewContainerRef } from "@angular/core";
|
|
2
|
-
import { BehaviorSubject, distinctUntilChanged, finalize, map, of, scan, shareReplay, Subject, switchMap, tap } from "rxjs";
|
|
3
|
-
import { Destructible } from "@ngutil/common";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
const SLOT_REGEX = /^([^:\s]+)(?::(\d+))?(?:\s+as\s+(.*?))?$/i;
|
|
6
|
-
export class SlotDef {
|
|
7
|
-
constructor(slot, tpl) {
|
|
8
|
-
this.tpl = tpl;
|
|
9
|
-
const match = slot.match(SLOT_REGEX);
|
|
10
|
-
if (!match) {
|
|
11
|
-
console.warn(`Invalid slot definition: ${slot}`);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
this.slot = match[1];
|
|
15
|
-
this.order = match[2] != null ? Number(match[2]) : Infinity;
|
|
16
|
-
this.id = match[3];
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
dispose() {
|
|
20
|
-
this.viewRef?.destroy();
|
|
21
|
-
this.viewRef = undefined;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* @Directive({selector: "ng-template[xyzSlot]", inputs: [{name: "slot", alias: "xyzSlot"}]})
|
|
26
|
-
* class XYZSlotDirective extends SlotDirective<XYZComponentSlots> { }
|
|
27
|
-
*
|
|
28
|
-
* @Directive({selector: "ng-template[xyzSlotOutlet]", inputs: [{name: "slot", alias: "xyzSlotOutlet"}]})
|
|
29
|
-
* class XYZSlotOutletDirective extends SlotOutletDirective<XYZComponentSlots> { }
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* @Component({provides: [SlotsService]})
|
|
33
|
-
* class XYZComponent {
|
|
34
|
-
* slots: inject(SlotsService<XYZComponentSlots>)
|
|
35
|
-
* }
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*/
|
|
39
|
-
export class SlotsService extends Destructible {
|
|
40
|
-
#events = new Subject();
|
|
41
|
-
#entries = this.#events.pipe(scan((entries, event) => {
|
|
42
|
-
if (event.type === "add") {
|
|
43
|
-
const index = entries.findIndex(value => value === event.def);
|
|
44
|
-
if (index > -1) {
|
|
45
|
-
entries[index] = event.def;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
entries.push(event.def);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else if (event.type === "del") {
|
|
52
|
-
const index = entries.findIndex(value => value === event.def);
|
|
53
|
-
if (index > -1) {
|
|
54
|
-
entries.splice(index, 1);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return entries;
|
|
58
|
-
}, []), tap(entries => {
|
|
59
|
-
entries.sort((a, b) => {
|
|
60
|
-
if (a.slot === b.slot) {
|
|
61
|
-
return a.order - b.order;
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
return a.slot.localeCompare(b.slot);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}), shareReplay(1));
|
|
68
|
-
constructor() {
|
|
69
|
-
super();
|
|
70
|
-
// XXX: need to collect entries from the beginning
|
|
71
|
-
this.d.sub(this.#entries).subscribe();
|
|
72
|
-
}
|
|
73
|
-
addTpl(def) {
|
|
74
|
-
this.#events.next({ type: "add", def });
|
|
75
|
-
}
|
|
76
|
-
delTpl(def) {
|
|
77
|
-
this.#events.next({ type: "del", def });
|
|
78
|
-
}
|
|
79
|
-
#watchers = {};
|
|
80
|
-
watch(slot) {
|
|
81
|
-
const existing = this.#watchers[slot];
|
|
82
|
-
if (existing == null) {
|
|
83
|
-
return (this.#watchers[slot] = this.#watch(slot));
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
return existing;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
#watch(slot) {
|
|
90
|
-
return this.#entries.pipe(map(entries => entries.filter(entry => entry.slot === slot)), distinctUntilChanged((prev, curr) => {
|
|
91
|
-
if (prev.length === curr.length) {
|
|
92
|
-
for (let i = 0; i < prev.length; i++) {
|
|
93
|
-
if (prev[i] !== curr[i]) {
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
}), finalize(() => {
|
|
103
|
-
delete this.#watchers[slot];
|
|
104
|
-
}), shareReplay(1));
|
|
105
|
-
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlotsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
107
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlotsService }); }
|
|
108
|
-
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlotsService, decorators: [{
|
|
110
|
-
type: Injectable
|
|
111
|
-
}], ctorParameters: () => [] });
|
|
112
|
-
export class SlotDirective {
|
|
113
|
-
constructor() {
|
|
114
|
-
this.tpl = inject((TemplateRef));
|
|
115
|
-
}
|
|
116
|
-
set slot(slot) {
|
|
117
|
-
if (this.#slot !== slot) {
|
|
118
|
-
this.#slot = slot;
|
|
119
|
-
if (this.#slotDef) {
|
|
120
|
-
this.slotSvc.delTpl(this.#slotDef);
|
|
121
|
-
}
|
|
122
|
-
this.#slotDef = new SlotDef(slot, this.tpl);
|
|
123
|
-
this.slotSvc.addTpl(this.#slotDef);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
get slot() {
|
|
127
|
-
return this.#slot;
|
|
128
|
-
}
|
|
129
|
-
#slot;
|
|
130
|
-
#slotDef;
|
|
131
|
-
ngOnDestroy() {
|
|
132
|
-
if (this.#slotDef) {
|
|
133
|
-
this.slotSvc.delTpl(this.#slotDef);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
137
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: SlotDirective, ngImport: i0 }); }
|
|
138
|
-
}
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlotDirective, decorators: [{
|
|
140
|
-
type: Directive
|
|
141
|
-
}] });
|
|
142
|
-
export class SlotOutletDirective extends Destructible {
|
|
143
|
-
set slot(slot) {
|
|
144
|
-
if (this.#slot.value !== slot) {
|
|
145
|
-
this.#slot.next(slot);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
get slot() {
|
|
149
|
-
return this.#slot.value;
|
|
150
|
-
}
|
|
151
|
-
#slot;
|
|
152
|
-
#watch;
|
|
153
|
-
#views;
|
|
154
|
-
constructor() {
|
|
155
|
-
super();
|
|
156
|
-
this.vcr = inject(ViewContainerRef);
|
|
157
|
-
this.injector = inject(Injector);
|
|
158
|
-
this.#slot = new BehaviorSubject(null);
|
|
159
|
-
this.#watch = this.#slot.pipe(switchMap(slot => {
|
|
160
|
-
if (slot) {
|
|
161
|
-
return this.slotSvc.watch(slot);
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
return of([]);
|
|
165
|
-
}
|
|
166
|
-
}));
|
|
167
|
-
this.#views = [];
|
|
168
|
-
this.#onEntriesChanged = (entries) => {
|
|
169
|
-
const { remove, undecided } = this.#determineActions(entries);
|
|
170
|
-
for (const r of remove) {
|
|
171
|
-
r.dispose();
|
|
172
|
-
const idx = this.#views.indexOf(r);
|
|
173
|
-
if (idx >= 0) {
|
|
174
|
-
this.#views.splice(idx, 1);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
this.#views.length = 0;
|
|
178
|
-
for (const [pos, entry] of undecided.entries()) {
|
|
179
|
-
if (entry.viewRef && !entry.viewRef.destroyed) {
|
|
180
|
-
const currentPos = this.vcr.indexOf(entry.viewRef);
|
|
181
|
-
if (currentPos !== pos) {
|
|
182
|
-
this.vcr.insert(entry.viewRef, pos);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
;
|
|
187
|
-
entry.viewRef = this.vcr.createEmbeddedView(entry.tpl, null, {
|
|
188
|
-
index: pos,
|
|
189
|
-
injector: this.injector
|
|
190
|
-
});
|
|
191
|
-
entry.viewRef.markForCheck();
|
|
192
|
-
}
|
|
193
|
-
this.#views.push(entry);
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
|
-
this.d.any(this.#clearViews.bind(this));
|
|
197
|
-
}
|
|
198
|
-
ngOnInit() {
|
|
199
|
-
this.d.sub(this.#watch).subscribe(this.#onEntriesChanged);
|
|
200
|
-
}
|
|
201
|
-
#onEntriesChanged;
|
|
202
|
-
#determineActions(entries) {
|
|
203
|
-
const byId = {};
|
|
204
|
-
let remove = [];
|
|
205
|
-
const undecided = [];
|
|
206
|
-
for (const entry of entries) {
|
|
207
|
-
if (entry.id != null) {
|
|
208
|
-
if (!byId[entry.id]) {
|
|
209
|
-
byId[entry.id] = [entry];
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
byId[entry.id].push(entry);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
else {
|
|
216
|
-
undecided.push(entry);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
for (const values of Object.values(byId)) {
|
|
220
|
-
remove = remove.concat(values.slice(0, -1));
|
|
221
|
-
undecided.push(values[values.length - 1]);
|
|
222
|
-
}
|
|
223
|
-
for (const current of this.#views) {
|
|
224
|
-
if (!undecided.includes(current)) {
|
|
225
|
-
remove.push(current);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
return { remove, undecided };
|
|
229
|
-
}
|
|
230
|
-
#clearViews() {
|
|
231
|
-
this.vcr.clear();
|
|
232
|
-
this.#views = [];
|
|
233
|
-
}
|
|
234
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlotOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
235
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: SlotOutletDirective, usesInheritance: true, ngImport: i0 }); }
|
|
236
|
-
}
|
|
237
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlotOutletDirective, decorators: [{
|
|
238
|
-
type: Directive
|
|
239
|
-
}], ctorParameters: () => [] });
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xheW91dC9zcmMvc2VydmljZXMvc2xvdHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxFQUdSLFdBQVcsRUFDWCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUE7QUFFdEIsT0FBTyxFQUNILGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLEdBQUcsRUFFSCxFQUFFLEVBQ0YsSUFBSSxFQUNKLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsRUFDTixNQUFNLE1BQU0sQ0FBQTtBQUViLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQTs7QUFRMUQsTUFBTSxVQUFVLEdBQUcsMkNBQTJDLENBQUE7QUFFOUQsTUFBTSxPQUFPLE9BQU87SUFNaEIsWUFDSSxJQUFhLEVBQ0csR0FBWTtRQUFaLFFBQUcsR0FBSCxHQUFHLENBQVM7UUFFNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNwQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLDRCQUE0QixJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ3BELENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFRLENBQUE7WUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtZQUMzRCxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUss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QVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUMvQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3hCLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7SUFDcEIsQ0FBQzs4R0FuR2lCLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUR4QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIGluamVjdCxcbiAgICBJbmplY3RhYmxlLFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7XG4gICAgQmVoYXZpb3JTdWJqZWN0LFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGZpbmFsaXplLFxuICAgIG1hcCxcbiAgICBPYnNlcnZhYmxlLFxuICAgIG9mLFxuICAgIHNjYW4sXG4gICAgc2hhcmVSZXBsYXksXG4gICAgU3ViamVjdCxcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFwXG59IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgRGVzdHJ1Y3RpYmxlLCBJRGlzcG9zYWJsZSB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5cbnR5cGUgU2xvdE9yZGVyID0gYDoke251bWJlcn1gXG50eXBlIFNsb3RJZCA9IGAgYXMgJHtzdHJpbmd9YFxuZXhwb3J0IHR5cGUgU2xvdDxUIGV4dGVuZHMgc3RyaW5nPiA9IGAke1R9JHtTbG90T3JkZXIgfCBcIlwifSR7U2xvdElkIHwgXCJcIn1gXG5leHBvcnQgdHlwZSBTbG90VHBsID0gVGVtcGxhdGVSZWY8YW55PlxuZXhwb3J0IHR5cGUgU2xvdFZpZXdSZWYgPSBFbWJlZGRlZFZpZXdSZWY8YW55PlxuXG5jb25zdCBTTE9UX1JFR0VYID0gL14oW146XFxzXSspKD86OihcXGQrKSk/KD86XFxzK2FzXFxzKyguKj8pKT8kL2lcblxuZXhwb3J0IGNsYXNzIFNsb3REZWY8VCBleHRlbmRzIHN0cmluZz4gaW1wbGVtZW50cyBJRGlzcG9zYWJsZSB7XG4gICAgcmVhZG9ubHkgc2xvdCE6IFRcbiAgICByZWFkb25seSBvcmRlciE6IG51bWJlclxuICAgIHJlYWRvbmx5IGlkPzogc3RyaW5nXG4gICAgcmVhZG9ubHkgdmlld1JlZj86IFNsb3RWaWV3UmVmXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgc2xvdDogU2xvdDxUPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHRwbDogU2xvdFRwbFxuICAgICkge1xuICAgICAgICBjb25zdCBtYXRjaCA9IHNsb3QubWF0Y2goU0xPVF9SRUdFWClcbiAgICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBJbnZhbGlkIHNsb3QgZGVmaW5pdGlvbjogJHtzbG90fWApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNsb3QgPSBtYXRjaFsxXSBhcyBhbnlcbiAgICAgICAgICAgIHRoaXMub3JkZXIgPSBtYXRjaFsyXSAhPSBudWxsID8gTnVtYmVyKG1hdGNoWzJdKSA6IEluZmluaXR5XG4gICAgICAgICAgICB0aGlzLmlkID0gbWF0Y2hbM10gYXMgc3RyaW5nXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXNwb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXdSZWY/LmRlc3Ryb3koKVxuICAgICAgICA7KHRoaXMgYXMgeyB2aWV3UmVmPzogU2xvdFZpZXdSZWYgfSkudmlld1JlZiA9IHVuZGVmaW5lZFxuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbG90RXZlbnQ8VCBleHRlbmRzIHN0cmluZz4ge1xuICAgIHR5cGU6IFwiYWRkXCIgfCBcImRlbFwiXG4gICAgZGVmOiBTbG90RGVmPFQ+XG59XG5cbi8qKlxuICogQERpcmVjdGl2ZSh7c2VsZWN0b3I6IFwibmctdGVtcGxhdGVbeHl6U2xvdF1cIiwgaW5wdXRzOiBbe25hbWU6IFwic2xvdFwiLCBhbGlhczogXCJ4eXpTbG90XCJ9XX0pXG4gKiBjbGFzcyBYWVpTbG90RGlyZWN0aXZlIGV4dGVuZHMgU2xvdERpcmVjdGl2ZTxYWVpDb21wb25lbnRTbG90cz4geyB9XG4gKlxuICogQERpcmVjdGl2ZSh7c2VsZWN0b3I6IFwibmctdGVtcGxhdGVbeHl6U2xvdE91dGxldF1cIiwgaW5wdXRzOiBbe25hbWU6IFwic2xvdFwiLCBhbGlhczogXCJ4eXpTbG90T3V0bGV0XCJ9XX0pXG4gKiBjbGFzcyBYWVpTbG90T3V0bGV0RGlyZWN0aXZlIGV4dGVuZHMgU2xvdE91dGxldERpcmVjdGl2ZTxYWVpDb21wb25lbnRTbG90cz4geyB9XG4gKlxuICpcbiAqIEBDb21wb25lbnQoe3Byb3ZpZGVzOiBbU2xvdHNTZXJ2aWNlXX0pXG4gKiBjbGFzcyBYWVpDb21wb25lbnQge1xuICogICAgICBzbG90czogaW5qZWN0KFNsb3RzU2VydmljZTxYWVpDb21wb25lbnRTbG90cz4pXG4gKiB9XG4gKlxuICpcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNsb3RzU2VydmljZTxUIGV4dGVuZHMgc3RyaW5nID0gYW55PiBleHRlbmRzIERlc3RydWN0aWJsZSB7XG4gICAgI2V2ZW50cyA9IG5ldyBTdWJqZWN0PFNsb3RFdmVudDxUPj4oKVxuXG4gICAgI2VudHJpZXMgPSB0aGlzLiNldmVudHMucGlwZShcbiAgICAgICAgc2NhbigoZW50cmllcywgZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBcImFkZFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBlbnRyaWVzLmZpbmRJbmRleCh2YWx1ZSA9PiB2YWx1ZSA9PT0gZXZlbnQuZGVmKVxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXNbaW5kZXhdID0gZXZlbnQuZGVmXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcy5wdXNoKGV2ZW50LmRlZilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09IFwiZGVsXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGVudHJpZXMuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlID09PSBldmVudC5kZWYpXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVudHJpZXNcbiAgICAgICAgfSwgW10gYXMgU2xvdERlZjxUPltdKSxcbiAgICAgICAgdGFwKGVudHJpZXMgPT4ge1xuICAgICAgICAgICAgZW50cmllcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGEuc2xvdCA9PT0gYi5zbG90KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhLm9yZGVyIC0gYi5vcmRlclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnNsb3QubG9jYWxlQ29tcGFyZShiLnNsb3QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKClcbiAgICAgICAgLy8gWFhYOiBuZWVkIHRvIGNvbGxlY3QgZW50cmllcyBmcm9tIHRoZSBiZWdpbm5pbmdcbiAgICAgICAgdGhpcy5kLnN1Yih0aGlzLiNlbnRyaWVzKS5zdWJzY3JpYmUoKVxuICAgIH1cblxuICAgIGFkZFRwbChkZWY6IFNsb3REZWY8VD4pIHtcbiAgICAgICAgdGhpcy4jZXZlbnRzLm5leHQoeyB0eXBlOiBcImFkZFwiLCBkZWYgfSlcbiAgICB9XG5cbiAgICBkZWxUcGwoZGVmOiBTbG90RGVmPFQ+KSB7XG4gICAgICAgIHRoaXMuI2V2ZW50cy5uZXh0KHsgdHlwZTogXCJkZWxcIiwgZGVmIH0pXG4gICAgfVxuXG4gICAgI3dhdGNoZXJzOiB7IFtrZXkgaW4gVF06IE9ic2VydmFibGU8QXJyYXk8U2xvdERlZjxUPj4+IH0gPSB7fSBhcyBhbnlcblxuICAgIHdhdGNoKHNsb3Q6IFQpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLiN3YXRjaGVyc1tzbG90XVxuICAgICAgICBpZiAoZXhpc3RpbmcgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLiN3YXRjaGVyc1tzbG90XSA9IHRoaXMuI3dhdGNoKHNsb3QpKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGV4aXN0aW5nXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjd2F0Y2goc2xvdDogVCkge1xuICAgICAgICByZXR1cm4gdGhpcy4jZW50cmllcy5waXBlKFxuICAgICAgICAgICAgbWFwKGVudHJpZXMgPT4gZW50cmllcy5maWx0ZXIoZW50cnkgPT4gZW50cnkuc2xvdCA9PT0gc2xvdCkpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocHJldi5sZW5ndGggPT09IGN1cnIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZbaV0gIT09IGN1cnJbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLiN3YXRjaGVyc1tzbG90XVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApXG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTbG90RGlyZWN0aXZlPFQgZXh0ZW5kcyBzdHJpbmcsIEMgPSBhbnk+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgc2xvdFN2YzogU2xvdHNTZXJ2aWNlPFQ+XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRwbCA9IGluamVjdChUZW1wbGF0ZVJlZjxDPilcblxuICAgIHNldCBzbG90KHNsb3Q6IFNsb3Q8VD4pIHtcbiAgICAgICAgaWYgKHRoaXMuI3Nsb3QgIT09IHNsb3QpIHtcbiAgICAgICAgICAgIHRoaXMuI3Nsb3QgPSBzbG90XG5cbiAgICAgICAgICAgIGlmICh0aGlzLiNzbG90RGVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zbG90U3ZjLmRlbFRwbCh0aGlzLiNzbG90RGVmKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLiNzbG90RGVmID0gbmV3IFNsb3REZWY8VD4oc2xvdCwgdGhpcy50cGwpXG4gICAgICAgICAgICB0aGlzLnNsb3RTdmMuYWRkVHBsKHRoaXMuI3Nsb3REZWYpXG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHNsb3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiNzbG90XG4gICAgfVxuICAgICNzbG90ITogU2xvdDxUPlxuICAgICNzbG90RGVmPzogU2xvdERlZjxUPlxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLiNzbG90RGVmKSB7XG4gICAgICAgICAgICB0aGlzLnNsb3RTdmMuZGVsVHBsKHRoaXMuI3Nsb3REZWYpXG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNsb3RPdXRsZXREaXJlY3RpdmU8VCBleHRlbmRzIHN0cmluZz4gZXh0ZW5kcyBEZXN0cnVjdGlibGUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBzbG90U3ZjOiBTbG90c1NlcnZpY2U8VD5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmNyOiBWaWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvciA9IGluamVjdChJbmplY3RvcilcblxuICAgIHNldCBzbG90KHNsb3Q6IFQgfCBudWxsKSB7XG4gICAgICAgIGlmICh0aGlzLiNzbG90LnZhbHVlICE9PSBzbG90KSB7XG4gICAgICAgICAgICB0aGlzLiNzbG90Lm5leHQoc2xvdClcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgc2xvdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI3Nsb3QudmFsdWVcbiAgICB9XG4gICAgI3Nsb3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQgfCBudWxsPihudWxsKVxuXG4gICAgI3dhdGNoID0gdGhpcy4jc2xvdC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoc2xvdCA9PiB7XG4gICAgICAgICAgICBpZiAoc2xvdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNsb3RTdmMud2F0Y2goc2xvdClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIClcblxuICAgICN2aWV3czogQXJyYXk8U2xvdERlZjxhbnk+PiA9IFtdXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKVxuICAgICAgICB0aGlzLmQuYW55KHRoaXMuI2NsZWFyVmlld3MuYmluZCh0aGlzKSlcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kLnN1Yih0aGlzLiN3YXRjaCkuc3Vic2NyaWJlKHRoaXMuI29uRW50cmllc0NoYW5nZWQpXG4gICAgfVxuXG4gICAgI29uRW50cmllc0NoYW5nZWQgPSAoZW50cmllczogQXJyYXk8U2xvdERlZjxUPj4pID0+IHtcbiAgICAgICAgY29uc3QgeyByZW1vdmUsIHVuZGVjaWRlZCB9ID0gdGhpcy4jZGV0ZXJtaW5lQWN0aW9ucyhlbnRyaWVzKVxuXG4gICAgICAgIGZvciAoY29uc3QgciBvZiByZW1vdmUpIHtcbiAgICAgICAgICAgIHIuZGlzcG9zZSgpXG4gICAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLiN2aWV3cy5pbmRleE9mKHIpXG4gICAgICAgICAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLiN2aWV3cy5zcGxpY2UoaWR4LCAxKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy4jdmlld3MubGVuZ3RoID0gMFxuICAgICAgICBmb3IgKGNvbnN0IFtwb3MsIGVudHJ5XSBvZiB1bmRlY2lkZWQuZW50cmllcygpKSB7XG4gICAgICAgICAgICBpZiAoZW50cnkudmlld1JlZiAmJiAhZW50cnkudmlld1JlZi5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50UG9zID0gdGhpcy52Y3IuaW5kZXhPZihlbnRyeS52aWV3UmVmKVxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UG9zICE9PSBwb3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52Y3IuaW5zZXJ0KGVudHJ5LnZpZXdSZWYsIHBvcylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIDsoZW50cnkgYXMgeyB2aWV3UmVmOiBTbG90Vmlld1JlZiB9KS52aWV3UmVmID0gdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KGVudHJ5LnRwbCwgbnVsbCwge1xuICAgICAgICAgICAgICAgICAgICBpbmRleDogcG9zLFxuICAgICAgICAgICAgICAgICAgICBpbmplY3RvcjogdGhpcy5pbmplY3RvclxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgZW50cnkudmlld1JlZiEubWFya0ZvckNoZWNrKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuI3ZpZXdzLnB1c2goZW50cnkpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjZGV0ZXJtaW5lQWN0aW9ucyhlbnRyaWVzOiBBcnJheTxTbG90RGVmPFQ+Pikge1xuICAgICAgICBjb25zdCBieUlkOiB7IFtrZXk6IHN0cmluZ106IEFycmF5PFNsb3REZWY8VD4+IH0gPSB7fVxuICAgICAgICBsZXQgcmVtb3ZlOiBBcnJheTxTbG90RGVmPFQ+PiA9IFtdXG4gICAgICAgIGNvbnN0IHVuZGVjaWRlZDogQXJyYXk8U2xvdERlZjxUPj4gPSBbXVxuXG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgaWYgKGVudHJ5LmlkICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWJ5SWRbZW50cnkuaWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ5SWRbZW50cnkuaWRdID0gW2VudHJ5XVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJ5SWRbZW50cnkuaWRdLnB1c2goZW50cnkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1bmRlY2lkZWQucHVzaChlbnRyeSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgdmFsdWVzIG9mIE9iamVjdC52YWx1ZXMoYnlJZCkpIHtcbiAgICAgICAgICAgIHJlbW92ZSA9IHJlbW92ZS5jb25jYXQodmFsdWVzLnNsaWNlKDAsIC0xKSlcbiAgICAgICAgICAgIHVuZGVjaWRlZC5wdXNoKHZhbHVlc1t2YWx1ZXMubGVuZ3RoIC0gMV0pXG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGN1cnJlbnQgb2YgdGhpcy4jdmlld3MpIHtcbiAgICAgICAgICAgIGlmICghdW5kZWNpZGVkLmluY2x1ZGVzKGN1cnJlbnQpKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlLnB1c2goY3VycmVudClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IHJlbW92ZSwgdW5kZWNpZGVkIH1cbiAgICB9XG5cbiAgICAjY2xlYXJWaWV3cygpIHtcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKVxuICAgICAgICB0aGlzLiN2aWV3cyA9IFtdXG4gICAgfVxufVxuIl19
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { SlidingItemDirective } from "./sliding-item.directive";
|
|
3
|
-
import { SlidingComponent } from "./sliding.component";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export { SlidingItemDirective, SlidingComponent };
|
|
6
|
-
const members = [SlidingItemDirective, SlidingComponent];
|
|
7
|
-
export class NuSlidingLayout {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NuSlidingLayout, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: NuSlidingLayout, imports: [SlidingItemDirective, SlidingComponent], exports: [SlidingItemDirective, SlidingComponent] }); }
|
|
10
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NuSlidingLayout, imports: [SlidingComponent] }); }
|
|
11
|
-
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NuSlidingLayout, decorators: [{
|
|
13
|
-
type: NgModule,
|
|
14
|
-
args: [{
|
|
15
|
-
imports: members,
|
|
16
|
-
exports: members
|
|
17
|
-
}]
|
|
18
|
-
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYXlvdXQvc3JjL3NsaWRpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7QUFFdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLENBQUE7QUFFakQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0FBTXhELE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxZQU5YLG9CQUFvQixFQUFFLGdCQUFnQixhQUF0QyxvQkFBb0IsRUFBRSxnQkFBZ0I7K0dBTTFDLGVBQWUsWUFOVyxnQkFBZ0I7OzJGQU0xQyxlQUFlO2tCQUozQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsT0FBTztpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgU2xpZGluZ0l0ZW1EaXJlY3RpdmUgfSBmcm9tIFwiLi9zbGlkaW5nLWl0ZW0uZGlyZWN0aXZlXCJcbmltcG9ydCB7IFNsaWRpbmdDb21wb25lbnQgfSBmcm9tIFwiLi9zbGlkaW5nLmNvbXBvbmVudFwiXG5cbmV4cG9ydCB7IFNsaWRpbmdJdGVtRGlyZWN0aXZlLCBTbGlkaW5nQ29tcG9uZW50IH1cblxuY29uc3QgbWVtYmVycyA9IFtTbGlkaW5nSXRlbURpcmVjdGl2ZSwgU2xpZGluZ0NvbXBvbmVudF1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBtZW1iZXJzLFxuICAgIGV4cG9ydHM6IG1lbWJlcnNcbn0pXG5leHBvcnQgY2xhc3MgTnVTbGlkaW5nTGF5b3V0IHt9XG4iXX0=
|