@ngutil/floating 0.0.35 → 0.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/floating/floating.service.mjs +1 -2
- package/esm2022/floating/traits/dim-contraint.mjs +14 -3
- package/esm2022/floating/traits/position.mjs +3 -2
- package/fesm2022/ngutil-floating.mjs +14 -4
- package/fesm2022/ngutil-floating.mjs.map +1 -1
- package/floating/floating.service.d.ts +2 -1
- package/floating/traits/modal.d.ts +1 -1
- package/floating/traits/position.d.ts +1 -1
- package/package.json +4 -4
|
@@ -4,7 +4,6 @@ import { LayerService } from "../layer/layer.service";
|
|
|
4
4
|
import { FloatingRef, TRAITS } from "./floating-ref";
|
|
5
5
|
import { position } from "./traits/position";
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
// export type FloatingTrait = (...args: any[]) => (traits: object) => Observable<object>
|
|
8
7
|
export class FloatingFactory {
|
|
9
8
|
#providers;
|
|
10
9
|
constructor(layer) {
|
|
@@ -128,4 +127,4 @@ export class FloatingService {
|
|
|
128
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FloatingService, decorators: [{
|
|
129
128
|
type: Injectable
|
|
130
129
|
}] });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9mbG9hdGluZy9mbG9hdGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFZLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUVyRCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRSxPQUFPLEVBQWdDLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBOztBQUUxRSx5RkFBeUY7QUFFekYsTUFBTSxPQUFnQixlQUFlO0lBR2pDLFVBQVUsQ0FBaUI7SUFFM0IsWUFBK0IsS0FBbUI7UUFBbkIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUovQixXQUFNLEdBQXFDLEVBQUUsQ0FBQTtRQUVoRSxlQUFVLEdBQWUsRUFBRSxDQUFBO1FBMkMzQixjQUFTLEdBQTZDLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQXpDbkQsQ0FBQztJQUV0RCxLQUFLLENBQUMsR0FBRyxNQUE4QztRQUNuRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7WUFDeEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FB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WSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3hFLENBQUM7SUFDTCxDQUFDOzhHQWRRLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFByb3ZpZGVyLCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgTGF5ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL2xheWVyL2xheWVyLnNlcnZpY2VcIlxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsT3B0aW9ucywgVGVtcGxhdGVQb3J0YWxPcHRpb25zIH0gZnJvbSBcIi4uL2xheWVyL3BvcnRhbC1yZWZcIlxuaW1wb3J0IHsgRmxvYXRpbmdDaGFubmVsLCBGbG9hdGluZ1JlZiwgVFJBSVRTIH0gZnJvbSBcIi4vZmxvYXRpbmctcmVmXCJcbmltcG9ydCB7IHR5cGUgRmxvYXRpbmdUcmFpdCB9IGZyb20gXCIuL3RyYWl0cy9fYmFzZVwiXG5pbXBvcnQgeyB0eXBlIEZsb2F0aW5nUG9zaXRpb25PcHRpb25zLCBwb3NpdGlvbiB9IGZyb20gXCIuL3RyYWl0cy9wb3NpdGlvblwiXG5cbi8vIGV4cG9ydCB0eXBlIEZsb2F0aW5nVHJhaXQgPSAoLi4uYXJnczogYW55W10pID0+ICh0cmFpdHM6IG9iamVjdCkgPT4gT2JzZXJ2YWJsZTxvYmplY3Q+XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGbG9hdGluZ0ZhY3Rvcnkge1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0cmFpdHM6IHsgW2tleTogc3RyaW5nXTogRmxvYXRpbmdUcmFpdCB9ID0ge31cblxuICAgICNwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGxheWVyOiBMYXllclNlcnZpY2UpIHt9XG5cbiAgICB0cmFpdCguLi50cmFpdHM6IEFycmF5PEZsb2F0aW5nVHJhaXQgfCBGbG9hdGluZ1RyYWl0W10+KSB7XG4gICAgICAgIGZvciAoY29uc3QgdHJhaXQgb2YgdHJhaXRzKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0cmFpdCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYWl0KC4uLnRyYWl0KVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYWl0c1t0cmFpdC5uYW1lXSA9IHRyYWl0XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIHNob3coKTogT2JzZXJ2YWJsZTxGbG9hdGluZ0NoYW5uZWw+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkZXN0OiBTdWJzY3JpYmVyPEZsb2F0aW5nQ2hhbm5lbD4pID0+IHtcbiAgICAgICAgICAgIGxldCBkaXNwb3NpbmcgPSBmYWxzZVxuXG4gICAgICAgICAgICBjb25zdCByZWYgPSB0aGlzLmNyZWF0ZSgpXG4gICAgICAgICAgICBjb25zdCBjaGFubmVsU3ViID0gcmVmLmNoYW5uZWwuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBkZXN0Lm5leHQoZXZlbnQpXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFwiZGlzcG9zaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcG9zaW5nID0gdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJjbGVhbnVwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzdC5jb21wbGV0ZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgY29uc3Qgc2hvd1N1YiA9IHJlZi5zaG93KCkuc3Vic2NyaWJlKClcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBzaG93U3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgICAgICAgICBjaGFubmVsU3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgICAgICAgICBpZiAoIWRpc3Bvc2luZykge1xuICAgICAgICAgICAgICAgICAgICByZWYuaGlkZSgpLnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHN1YnNjcmliZTogT2JzZXJ2YWJsZTxGbG9hdGluZ0NoYW5uZWw+W1wic3Vic2NyaWJlXCJdID0gKC4uLmFyZ3M6IGFueVtdKSA9PiB0aGlzLnNob3coKS5zdWJzY3JpYmUoLi4uYXJncylcblxuICAgIHByb3RlY3RlZCBwcm92aWRlcnMocHJvdmlkZXJzPzogUHJvdmlkZXJbXSk6IFByb3ZpZGVyW10ge1xuICAgICAgICBpZiAoIXByb3ZpZGVycykge1xuICAgICAgICAgICAgcHJvdmlkZXJzID0gW11cbiAgICAgICAgfVxuXG4gICAgICAgIHByb3ZpZGVycyA9IFtcbiAgICAgICAgICAgIC4uLnByb3ZpZGVycyxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogVFJBSVRTLCB1c2VWYWx1ZTogdGhpcy50cmFpdHMgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogTGF5ZXJTZXJ2aWNlLCB1c2VWYWx1ZTogdGhpcy5sYXllciB9LFxuICAgICAgICAgICAgRmxvYXRpbmdSZWYsXG4gICAgICAgICAgICAuLi50aGlzLiNwcm92aWRlcnNcbiAgICAgICAgXVxuXG4gICAgICAgIHJldHVybiBwcm92aWRlcnNcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlKCk6IEZsb2F0aW5nUmVmPEZsb2F0aW5nQ2hhbm5lbD5cblxuICAgIHBvc2l0aW9uKG9wdGlvbnM6IEZsb2F0aW5nUG9zaXRpb25PcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYWl0KHBvc2l0aW9uKG9wdGlvbnMpKVxuICAgIH1cblxuICAgIHByb3ZpZGVzKHByb3ZpZGVyczogUHJvdmlkZXIgfCBQcm92aWRlcltdKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb3ZpZGVycykpIHtcbiAgICAgICAgICAgIHRoaXMuI3Byb3ZpZGVycyA9IFsuLi50aGlzLiNwcm92aWRlcnMsIC4uLnByb3ZpZGVyc11cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI3Byb3ZpZGVycyA9IFsuLi50aGlzLiNwcm92aWRlcnMsIHByb3ZpZGVyc11cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpc1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nVGVtcGxhdGVGYWN0b3J5PFQgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgRmxvYXRpbmdGYWN0b3J5IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbGF5ZXI6IExheWVyU2VydmljZSxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHRwbDogVGVtcGxhdGVSZWY8VD4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBUZW1wbGF0ZVBvcnRhbE9wdGlvbnM8VD5cbiAgICApIHtcbiAgICAgICAgc3VwZXIobGF5ZXIpXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZSgpOiBGbG9hdGluZ1JlZjxGbG9hdGluZ0NoYW5uZWw+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogVGVtcGxhdGVQb3J0YWxPcHRpb25zPFQ+ID0geyAuLi50aGlzLm9wdGlvbnMgfVxuICAgICAgICBvcHRpb25zLnByb3ZpZGVycyA9IHRoaXMucHJvdmlkZXJzKG9wdGlvbnMucHJvdmlkZXJzKVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmxheWVyLm5ld1RlbXBsYXRlUG9ydGFsKHRoaXMudHBsLCBvcHRpb25zKVxuICAgICAgICByZXR1cm4gY29udGFpbmVyLmluamVjdG9yLmdldChGbG9hdGluZ1JlZilcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGbG9hdGluZ0NvbXBvbmVudEZhY3Rvcnk8VCBleHRlbmRzIENvbXBvbmVudFR5cGU8YW55Pj4gZXh0ZW5kcyBGbG9hdGluZ0ZhY3Rvcnkge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBsYXllcjogTGF5ZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50OiBULFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogQ29tcG9uZW50UG9ydGFsT3B0aW9uczxUPlxuICAgICkge1xuICAgICAgICBzdXBlcihsYXllcilcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlKCk6IEZsb2F0aW5nUmVmPEZsb2F0aW5nQ2hhbm5lbD4ge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBDb21wb25lbnRQb3J0YWxPcHRpb25zPFQ+ID0geyAuLi50aGlzLm9wdGlvbnMgfVxuICAgICAgICBvcHRpb25zLnByb3ZpZGVycyA9IHRoaXMucHJvdmlkZXJzKG9wdGlvbnMucHJvdmlkZXJzKVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmxheWVyLm5ld0NvbXBvbmVudFBvcnRhbCh0aGlzLmNvbXBvbmVudCwgb3B0aW9ucylcbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5pbmplY3Rvci5nZXQoRmxvYXRpbmdSZWYpXG4gICAgfVxufVxuXG4vKipcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBTb21lQ29tcG9uZW50IHt9XG4gKlxuICogY2xhc3MgU29tZUxpc3Qge1xuICogICAgICByZWFkb25seSBmbG9hdGluZyA9IGluamVjdChGbG9hdGluZ1NlcnZpY2UpXG4gKlxuICogICAgICBzaG93Q29tcG9uZW50KCkge1xuICogICAgICAgICAgdGhpcy5mbG9hdGluZy5mcm9tKFNvbWVDb21wb25lbnQpLnRyYWl0cyhwb3NpdGlvbigpLCBiYWNrZHJvcCgpKS5zdWJzY3JpYmUoKVxuICogICAgICB9XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nU2VydmljZSB7XG4gICAgcmVhZG9ubHkgI2xheWVyID0gaW5qZWN0KExheWVyU2VydmljZSlcbiAgICAvLyByZWFkb25seSBwYXJlbnQgPSBpbmplY3QoRmxvYXRpbmdSZWYsIHsgc2tpcFNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pXG5cbiAgICBmcm9tPFQgZXh0ZW5kcyBDb21wb25lbnRUeXBlPGFueT4+KGNvbXBvbmVudDogVCwgb3B0cz86IENvbXBvbmVudFBvcnRhbE9wdGlvbnM8VD4pOiBGbG9hdGluZ0NvbXBvbmVudEZhY3Rvcnk8VD5cblxuICAgIGZyb208VCBleHRlbmRzIG9iamVjdD4odHBsOiBUZW1wbGF0ZVJlZjxUPiwgb3B0cz86IFRlbXBsYXRlUG9ydGFsT3B0aW9uczxUPik6IEZsb2F0aW5nVGVtcGxhdGVGYWN0b3J5PFQ+XG5cbiAgICBmcm9tPFQ+KHZhbHVlOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sIG9wdHM6IGFueSk6IEZsb2F0aW5nRmFjdG9yeSB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZsb2F0aW5nVGVtcGxhdGVGYWN0b3J5KHRoaXMuI2xheWVyLCB2YWx1ZSBhcyBhbnksIG9wdHMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZsb2F0aW5nQ29tcG9uZW50RmFjdG9yeSh0aGlzLiNsYXllciwgdmFsdWUgYXMgYW55LCBvcHRzKVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9mbG9hdGluZy9mbG9hdGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFZLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUVyRCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRSxPQUFPLEVBQWdDLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBOztBQU0xRSxNQUFNLE9BQWdCLGVBQWU7SUFHakMsVUFBVSxDQUFpQjtJQUUzQixZQUErQixLQUFtQjtRQUFuQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBSi9CLFdBQU0sR0FBcUMsRUFBRSxDQUFBO1FBRWhFLGVBQVUsR0FBZSxFQUFFLENBQUE7UUEyQzNCLGNBQVMsR0FBNkMsQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBekNuRCxDQUFDO0lBRXRELEtBQUssQ0FBQyxHQUFHLE1BQWlDO1FBQ3RDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQTtZQUN4QixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxD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QUFDLENBQUE7UUFDeEUsQ0FBQztJQUNMLENBQUM7OEdBZFEsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUHJvdmlkZXIsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tIFwiLi4vbGF5ZXIvbGF5ZXIuc2VydmljZVwiXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWxPcHRpb25zLCBUZW1wbGF0ZVBvcnRhbE9wdGlvbnMgfSBmcm9tIFwiLi4vbGF5ZXIvcG9ydGFsLXJlZlwiXG5pbXBvcnQgeyBGbG9hdGluZ0NoYW5uZWwsIEZsb2F0aW5nUmVmLCBUUkFJVFMgfSBmcm9tIFwiLi9mbG9hdGluZy1yZWZcIlxuaW1wb3J0IHsgdHlwZSBGbG9hdGluZ1RyYWl0IH0gZnJvbSBcIi4vdHJhaXRzL19iYXNlXCJcbmltcG9ydCB7IHR5cGUgRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnMsIHBvc2l0aW9uIH0gZnJvbSBcIi4vdHJhaXRzL3Bvc2l0aW9uXCJcblxuLy8gZXhwb3J0IHR5cGUgRmxvYXRpbmdUcmFpdCA9ICguLi5hcmdzOiBhbnlbXSkgPT4gKHRyYWl0czogb2JqZWN0KSA9PiBPYnNlcnZhYmxlPG9iamVjdD5cblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdUcmFpdElucHV0ID0gRmxvYXRpbmdUcmFpdCB8IEFycmF5PEZsb2F0aW5nVHJhaXRJbnB1dD5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZsb2F0aW5nRmFjdG9yeSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYWl0czogeyBba2V5OiBzdHJpbmddOiBGbG9hdGluZ1RyYWl0IH0gPSB7fVxuXG4gICAgI3Byb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtdXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgbGF5ZXI6IExheWVyU2VydmljZSkge31cblxuICAgIHRyYWl0KC4uLnRyYWl0czogQXJyYXk8RmxvYXRpbmdUcmFpdElucHV0Pikge1xuICAgICAgICBmb3IgKGNvbnN0IHRyYWl0IG9mIHRyYWl0cykge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodHJhaXQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFpdCguLi50cmFpdClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFpdHNbdHJhaXQubmFtZV0gPSB0cmFpdFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBzaG93KCk6IE9ic2VydmFibGU8RmxvYXRpbmdDaGFubmVsPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZGVzdDogU3Vic2NyaWJlcjxGbG9hdGluZ0NoYW5uZWw+KSA9PiB7XG4gICAgICAgICAgICBsZXQgZGlzcG9zaW5nID0gZmFsc2VcblxuICAgICAgICAgICAgY29uc3QgcmVmID0gdGhpcy5jcmVhdGUoKVxuICAgICAgICAgICAgY29uc3QgY2hhbm5lbFN1YiA9IHJlZi5jaGFubmVsLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgZGVzdC5uZXh0KGV2ZW50KVxuICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBcImRpc3Bvc2luZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3Bvc2luZyA9IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFwiY2xlYW51cFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlc3QuY29tcGxldGUoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IHNob3dTdWIgPSByZWYuc2hvdygpLnN1YnNjcmliZSgpXG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2hvd1N1Yi51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgY2hhbm5lbFN1Yi51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgaWYgKCFkaXNwb3NpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmLmhpZGUoKS5zdWJzY3JpYmUoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBzdWJzY3JpYmU6IE9ic2VydmFibGU8RmxvYXRpbmdDaGFubmVsPltcInN1YnNjcmliZVwiXSA9ICguLi5hcmdzOiBhbnlbXSkgPT4gdGhpcy5zaG93KCkuc3Vic2NyaWJlKC4uLmFyZ3MpXG5cbiAgICBwcm90ZWN0ZWQgcHJvdmlkZXJzKHByb3ZpZGVycz86IFByb3ZpZGVyW10pOiBQcm92aWRlcltdIHtcbiAgICAgICAgaWYgKCFwcm92aWRlcnMpIHtcbiAgICAgICAgICAgIHByb3ZpZGVycyA9IFtdXG4gICAgICAgIH1cblxuICAgICAgICBwcm92aWRlcnMgPSBbXG4gICAgICAgICAgICAuLi5wcm92aWRlcnMsXG4gICAgICAgICAgICB7IHByb3ZpZGU6IFRSQUlUUywgdXNlVmFsdWU6IHRoaXMudHJhaXRzIH0sXG4gICAgICAgICAgICB7IHByb3ZpZGU6IExheWVyU2VydmljZSwgdXNlVmFsdWU6IHRoaXMubGF5ZXIgfSxcbiAgICAgICAgICAgIEZsb2F0aW5nUmVmLFxuICAgICAgICAgICAgLi4udGhpcy4jcHJvdmlkZXJzXG4gICAgICAgIF1cblxuICAgICAgICByZXR1cm4gcHJvdmlkZXJzXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZSgpOiBGbG9hdGluZ1JlZjxGbG9hdGluZ0NoYW5uZWw+XG5cbiAgICBwb3NpdGlvbihvcHRpb25zOiBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFpdChwb3NpdGlvbihvcHRpb25zKSlcbiAgICB9XG5cbiAgICBwcm92aWRlcyhwcm92aWRlcnM6IFByb3ZpZGVyIHwgUHJvdmlkZXJbXSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm92aWRlcnMpKSB7XG4gICAgICAgICAgICB0aGlzLiNwcm92aWRlcnMgPSBbLi4udGhpcy4jcHJvdmlkZXJzLCAuLi5wcm92aWRlcnNdXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNwcm92aWRlcnMgPSBbLi4udGhpcy4jcHJvdmlkZXJzLCBwcm92aWRlcnNdXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGbG9hdGluZ1RlbXBsYXRlRmFjdG9yeTxUIGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIEZsb2F0aW5nRmFjdG9yeSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGxheWVyOiBMYXllclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSB0cGw6IFRlbXBsYXRlUmVmPFQ+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogVGVtcGxhdGVQb3J0YWxPcHRpb25zPFQ+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGxheWVyKVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGUoKTogRmxvYXRpbmdSZWY8RmxvYXRpbmdDaGFubmVsPiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IFRlbXBsYXRlUG9ydGFsT3B0aW9uczxUPiA9IHsgLi4udGhpcy5vcHRpb25zIH1cbiAgICAgICAgb3B0aW9ucy5wcm92aWRlcnMgPSB0aGlzLnByb3ZpZGVycyhvcHRpb25zLnByb3ZpZGVycylcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5sYXllci5uZXdUZW1wbGF0ZVBvcnRhbCh0aGlzLnRwbCwgb3B0aW9ucylcbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5pbmplY3Rvci5nZXQoRmxvYXRpbmdSZWYpXG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdDb21wb25lbnRGYWN0b3J5PFQgZXh0ZW5kcyBDb21wb25lbnRUeXBlPGFueT4+IGV4dGVuZHMgRmxvYXRpbmdGYWN0b3J5IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbGF5ZXI6IExheWVyU2VydmljZSxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGNvbXBvbmVudDogVCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IG9wdGlvbnM6IENvbXBvbmVudFBvcnRhbE9wdGlvbnM8VD5cbiAgICApIHtcbiAgICAgICAgc3VwZXIobGF5ZXIpXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZSgpOiBGbG9hdGluZ1JlZjxGbG9hdGluZ0NoYW5uZWw+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogQ29tcG9uZW50UG9ydGFsT3B0aW9uczxUPiA9IHsgLi4udGhpcy5vcHRpb25zIH1cbiAgICAgICAgb3B0aW9ucy5wcm92aWRlcnMgPSB0aGlzLnByb3ZpZGVycyhvcHRpb25zLnByb3ZpZGVycylcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5sYXllci5uZXdDb21wb25lbnRQb3J0YWwodGhpcy5jb21wb25lbnQsIG9wdGlvbnMpXG4gICAgICAgIHJldHVybiBjb250YWluZXIuaW5qZWN0b3IuZ2V0KEZsb2F0aW5nUmVmKVxuICAgIH1cbn1cblxuLyoqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY2xhc3MgU29tZUNvbXBvbmVudCB7fVxuICpcbiAqIGNsYXNzIFNvbWVMaXN0IHtcbiAqICAgICAgcmVhZG9ubHkgZmxvYXRpbmcgPSBpbmplY3QoRmxvYXRpbmdTZXJ2aWNlKVxuICpcbiAqICAgICAgc2hvd0NvbXBvbmVudCgpIHtcbiAqICAgICAgICAgIHRoaXMuZmxvYXRpbmcuZnJvbShTb21lQ29tcG9uZW50KS50cmFpdHMocG9zaXRpb24oKSwgYmFja2Ryb3AoKSkuc3Vic2NyaWJlKClcbiAqICAgICAgfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG9hdGluZ1NlcnZpY2Uge1xuICAgIHJlYWRvbmx5ICNsYXllciA9IGluamVjdChMYXllclNlcnZpY2UpXG4gICAgLy8gcmVhZG9ubHkgcGFyZW50ID0gaW5qZWN0KEZsb2F0aW5nUmVmLCB7IHNraXBTZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9KVxuXG4gICAgZnJvbTxUIGV4dGVuZHMgQ29tcG9uZW50VHlwZTxhbnk+Pihjb21wb25lbnQ6IFQsIG9wdHM/OiBDb21wb25lbnRQb3J0YWxPcHRpb25zPFQ+KTogRmxvYXRpbmdDb21wb25lbnRGYWN0b3J5PFQ+XG5cbiAgICBmcm9tPFQgZXh0ZW5kcyBvYmplY3Q+KHRwbDogVGVtcGxhdGVSZWY8VD4sIG9wdHM/OiBUZW1wbGF0ZVBvcnRhbE9wdGlvbnM8VD4pOiBGbG9hdGluZ1RlbXBsYXRlRmFjdG9yeTxUPlxuXG4gICAgZnJvbTxUPih2YWx1ZTogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LCBvcHRzOiBhbnkpOiBGbG9hdGluZ0ZhY3Rvcnkge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGbG9hdGluZ1RlbXBsYXRlRmFjdG9yeSh0aGlzLiNsYXllciwgdmFsdWUgYXMgYW55LCBvcHRzKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGbG9hdGluZ0NvbXBvbmVudEZhY3RvcnkodGhpcy4jbGF5ZXIsIHZhbHVlIGFzIGFueSwgb3B0cylcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -25,13 +25,24 @@ export class DimensionConstraintTrait {
|
|
|
25
25
|
position: floatingRef.watchTrait("position")
|
|
26
26
|
}).subscribe(({ refDim, position }) => {
|
|
27
27
|
const floating = position.computed?.floating;
|
|
28
|
-
|
|
28
|
+
if (!floating) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
dst.next(clamp(refDim, floating.min[this.#map.dimension] || 0, floating.max[this.#map.dimension] || Infinity));
|
|
29
32
|
});
|
|
30
33
|
}
|
|
31
34
|
else {
|
|
32
35
|
return floatingRef.watchTrait("position").subscribe(position => {
|
|
33
36
|
const floating = position.computed?.floating;
|
|
34
|
-
|
|
37
|
+
if (!floating) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (isNaN(this.value)) {
|
|
41
|
+
dst.next(floating[this.#map.computedRef][this.#map.dimension]);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
dst.next(clamp(this.value, floating?.min[this.#map.dimension] || 0, floating?.max[this.#map.dimension] || Infinity));
|
|
45
|
+
}
|
|
35
46
|
});
|
|
36
47
|
}
|
|
37
48
|
}).pipe(distinctUntilChanged(), tap(value => {
|
|
@@ -52,4 +63,4 @@ export function minWidth(value) {
|
|
|
52
63
|
export function minHeight(value) {
|
|
53
64
|
return new DimensionConstraintTrait("minHeight", value);
|
|
54
65
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltLWNvbnRyYWludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9mbG9hdGluZy90cmFpdHMvZGltLWNvbnRyYWludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRTVGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFOUIsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM3RCxPQUFPLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFhM0QsTUFBTSxPQUFPLEdBQW1DO0lBQzVDLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRTtJQUNwRCxTQUFTLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUU7SUFDdEQsUUFBUSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0lBQ3BELFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRTtDQUN6RCxDQUFBO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtJQUV4QixJQUFJLENBQWE7SUFDMUIsWUFDSSxJQUEwQixFQUNqQixLQUErQjtRQUEvQixVQUFLLEdBQUwsS0FBSyxDQUEwQjtRQUV4QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQWMsQ0FBQTtRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM3QixDQUFDO0lBRUQsT0FBTyxDQUFDLFdBQTZCO1FBQ2pDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUF1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QyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUE7QUFDM0QsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBK0I7SUFDcEQsT0FBTyxJQUFJLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUMxRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUErQjtJQUNyRCxPQUFPLElBQUksd0JBQXdCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyLCB0YXAgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IGNsYW1wIH0gZnJvbSBcImxvZGFzaFwiXG5cbmltcG9ydCB7IEVsZW1lbnRJbnB1dCwgaXNFbGVtZW50SW5wdXQgfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuaW1wb3J0IHsgRGltZW5zaW9uLCBEaW1lbnNpb25XYXRjaGVyIH0gZnJvbSBcIkBuZ3V0aWwvc3R5bGVcIlxuXG5pbXBvcnQgeyBGbG9hdGluZ1JlZiB9IGZyb20gXCIuLi9mbG9hdGluZy1yZWZcIlxuaW1wb3J0IHsgRmxvYXRpbmdUcmFpdCB9IGZyb20gXCIuL19iYXNlXCJcbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdQb3NpdGlvbiB9IGZyb20gXCIuL3Bvc2l0aW9uXCJcblxuZXhwb3J0IHR5cGUgRGltZW5zaW9uQ29uc3RyYWludElucHV0ID0gRWxlbWVudElucHV0IHwgbnVtYmVyXG5cbmludGVyZmFjZSBEaW1NYXBFbnRyeSB7XG4gICAgY29tcHV0ZWRSZWY6IFwibWluXCIgfCBcIm1heFwiXG4gICAgZGltZW5zaW9uOiBrZXlvZiBEaW1lbnNpb25cbn1cblxuY29uc3QgRElNX01BUDogeyBba2V5OiBzdHJpbmddOiBEaW1NYXBFbnRyeSB9ID0ge1xuICAgIG1heFdpZHRoOiB7IGNvbXB1dGVkUmVmOiBcIm1heFwiLCBkaW1lbnNpb246IFwid2lkdGhcIiB9LFxuICAgIG1heEhlaWdodDogeyBjb21wdXRlZFJlZjogXCJtYXhcIiwgZGltZW5zaW9uOiBcImhlaWdodFwiIH0sXG4gICAgbWluV2lkdGg6IHsgY29tcHV0ZWRSZWY6IFwibWluXCIsIGRpbWVuc2lvbjogXCJ3aWR0aFwiIH0sXG4gICAgbWluSGVpZ2h0OiB7IGNvbXB1dGVkUmVmOiBcIm1pblwiLCBkaW1lbnNpb246IFwiaGVpZ2h0XCIgfVxufVxuXG5leHBvcnQgY2xhc3MgRGltZW5zaW9uQ29uc3RyYWludFRyYWl0IGltcGxlbWVudHMgRmxvYXRpbmdUcmFpdDxudW1iZXI+IHtcbiAgICByZWFkb25seSBuYW1lOiBzdHJpbmdcbiAgICByZWFkb25seSAjbWFwOiBEaW1NYXBFbnRyeVxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBuYW1lOiBrZXlvZiB0eXBlb2YgRElNX01BUCxcbiAgICAgICAgcmVhZG9ubHkgdmFsdWU6IERpbWVuc2lvbkNvbnN0cmFpbnRJbnB1dFxuICAgICkge1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lIGFzIHN0cmluZ1xuICAgICAgICB0aGlzLiNtYXAgPSBESU1fTUFQW25hbWVdXG4gICAgfVxuXG4gICAgY29ubmVjdChmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWY8YW55Pik6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZHN0OiBTdWJzY3JpYmVyPG51bWJlcj4pID0+IHtcbiAgICAgICAgICAgIGlmIChpc0VsZW1lbnRJbnB1dCh0aGlzLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdhdGNoZXIgPSBmbG9hdGluZ1JlZi5jb250YWluZXIuaW5qZWN0b3IuZ2V0KERpbWVuc2lvbldhdGNoZXIpXG4gICAgICAgICAgICAgICAgY29uc3QgcmVmRGltID0gd2F0Y2hlci53YXRjaCh0aGlzLnZhbHVlLCBcImJvcmRlci1ib3hcIikucGlwZShtYXAodmFsdWUgPT4gdmFsdWVbdGhpcy4jbWFwLmRpbWVuc2lvbl0pKVxuICAgICAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHtcbiAgICAgICAgICAgICAgICAgICAgcmVmRGltOiByZWZEaW0sXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmbG9hdGluZ1JlZi53YXRjaFRyYWl0PEZsb2F0aW5nUG9zaXRpb24+KFwicG9zaXRpb25cIilcbiAgICAgICAgICAgICAgICB9KS5zdWJzY3JpYmUoKHsgcmVmRGltLCBwb3NpdGlvbiB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0aW5nID0gcG9zaXRpb24uY29tcHV0ZWQ/LmZsb2F0aW5nXG4gICAgICAgICAgICAgICAgICAgIGlmICghZmxvYXRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGRzdC5uZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhbXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmRGltLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nLm1pblt0aGlzLiNtYXAuZGltZW5zaW9uXSB8fCAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nLm1heFt0aGlzLiNtYXAuZGltZW5zaW9uXSB8fCBJbmZpbml0eVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0aW5nUmVmLndhdGNoVHJhaXQ8RmxvYXRpbmdQb3NpdGlvbj4oXCJwb3NpdGlvblwiKS5zdWJzY3JpYmUocG9zaXRpb24gPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdGluZyA9IHBvc2l0aW9uLmNvbXB1dGVkPy5mbG9hdGluZ1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWZsb2F0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4odGhpcy52YWx1ZSBhcyBudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkc3QubmV4dChmbG9hdGluZ1t0aGlzLiNtYXAuY29tcHV0ZWRSZWZdW3RoaXMuI21hcC5kaW1lbnNpb25dKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZHN0Lm5leHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhbXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgYXMgbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdGluZz8ubWluW3RoaXMuI21hcC5kaW1lbnNpb25dIHx8IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nPy5tYXhbdGhpcy4jbWFwLmRpbWVuc2lvbl0gfHwgSW5maW5pdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHRhcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmxvYXRpbmdFbCA9IGZsb2F0aW5nUmVmLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgZmxvYXRpbmdFbC5zdHlsZVt0aGlzLm5hbWUgYXMgYW55XSA9IGAke3ZhbHVlfXB4YFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heFdpZHRoKHZhbHVlOiBEaW1lbnNpb25Db25zdHJhaW50SW5wdXQpIHtcbiAgICByZXR1cm4gbmV3IERpbWVuc2lvbkNvbnN0cmFpbnRUcmFpdChcIm1heFdpZHRoXCIsIHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF4SGVpZ2h0KHZhbHVlOiBEaW1lbnNpb25Db25zdHJhaW50SW5wdXQpIHtcbiAgICByZXR1cm4gbmV3IERpbWVuc2lvbkNvbnN0cmFpbnRUcmFpdChcIm1heEhlaWdodFwiLCB2YWx1ZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pbldpZHRoKHZhbHVlOiBEaW1lbnNpb25Db25zdHJhaW50SW5wdXQpIHtcbiAgICByZXR1cm4gbmV3IERpbWVuc2lvbkNvbnN0cmFpbnRUcmFpdChcIm1pbldpZHRoXCIsIHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWluSGVpZ2h0KHZhbHVlOiBEaW1lbnNpb25Db25zdHJhaW50SW5wdXQpIHtcbiAgICByZXR1cm4gbmV3IERpbWVuc2lvbkNvbnN0cmFpbnRUcmFpdChcIm1pbkhlaWdodFwiLCB2YWx1ZSlcbn1cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ElementRef } from "@angular/core";
|
|
2
2
|
import { combineLatest, Observable } from "rxjs";
|
|
3
3
|
import { DimensionWatcher, RectWatcher } from "@ngutil/style";
|
|
4
|
+
import { maxHeight, maxWidth } from "./dim-contraint";
|
|
4
5
|
import { computePosition } from "./position-calc";
|
|
5
6
|
export class FloatingAnchorRef extends ElementRef {
|
|
6
7
|
}
|
|
@@ -51,7 +52,7 @@ function refWatcher(rectWatcher, ref, floatingRef) {
|
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
export function position(options) {
|
|
54
|
-
return new PositionTrait(options);
|
|
55
|
+
return [new PositionTrait(options), maxWidth(NaN), maxHeight(NaN)];
|
|
55
56
|
}
|
|
56
57
|
export class FloatingPosition {
|
|
57
58
|
constructor(options, floating, anchor, placement) {
|
|
@@ -71,4 +72,4 @@ export class FloatingPosition {
|
|
|
71
72
|
floatingEl.style.top = `${this.computed.floating.current.y}px`;
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL3Bvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFHNUQsT0FBTyxFQUE2QixnQkFBZ0IsRUFBUSxXQUFXLEVBQWMsTUFBTSxlQUFlLENBQUE7QUFLMUcsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQWdCbEUsTUFBTSxPQUFPLGlCQUFrQyxTQUFRLFVBQWE7Q0FBRztBQWdCdkUsTUFBTSxPQUFPLG9CQUFzRSxTQUFRLFVBQWE7Q0FBRztBQW9CM0csTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFBWSxPQUFnQztRQUpuQyxTQUFJLEdBQUcsVUFBVSxDQUFBO1FBS3RCLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQTtRQUU3QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUE7UUFDMUMsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUE7UUFDekUsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQTtRQUMvQyxDQUFDO1FBRUQs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RyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUMvRCxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUNsRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBFbGVtZW50SW5wdXQgfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuaW1wb3J0IHsgQWxpZ25tZW50SW5wdXQsIERpbWVuc2lvbiwgRGltZW5zaW9uV2F0Y2hlciwgUmVjdCwgUmVjdFdhdGNoZXIsIFNpZGVzSW5wdXQgfSBmcm9tIFwiQG5ndXRpbC9zdHlsZVwiXG5cbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gXCIuLi8uLi9sYXllci9sYXllci5zZXJ2aWNlXCJcbmltcG9ydCB7IEZsb2F0aW5nUmVmIH0gZnJvbSBcIi4uL2Zsb2F0aW5nLXJlZlwiXG5pbXBvcnQgeyBGbG9hdGluZ1RyYWl0IH0gZnJvbSBcIi4vX2Jhc2VcIlxuaW1wb3J0IHsgQ29tcHV0ZWRQb3NpdG9uLCBjb21wdXRlUG9zaXRpb24gfSBmcm9tIFwiLi9wb3NpdGlvbi1jYWxjXCJcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdUYXJnZXRFbGVtZW50UmVmID0gRWxlbWVudElucHV0IHwgV2luZG93IHwgXCJsYXllclwiIHwgXCJ2aWV3cG9ydFwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdBbGlnbiB7XG4gICAgYWxpZ246IEFsaWdubWVudElucHV0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdBbmNob3JQb3NpdGlvbiBleHRlbmRzIEZsb2F0aW5nQWxpZ24ge1xuICAgIG1hcmdpbj86IFNpZGVzSW5wdXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ0FuY2hvciBleHRlbmRzIEZsb2F0aW5nQW5jaG9yUG9zaXRpb24ge1xuICAgIHJlZjogRmxvYXRpbmdUYXJnZXRFbGVtZW50UmVmXG59XG5cbmV4cG9ydCBjbGFzcyBGbG9hdGluZ0FuY2hvclJlZjxUIGV4dGVuZHMgTm9kZT4gZXh0ZW5kcyBFbGVtZW50UmVmPFQ+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdDb250ZW50UG9zaXRpb24gZXh0ZW5kcyBGbG9hdGluZ0FsaWduIHtcbiAgICBtYXJnaW4/OiBTaWRlc0lucHV0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdDb250ZW50IGV4dGVuZHMgRmxvYXRpbmdDb250ZW50UG9zaXRpb24ge31cblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ1BsYWNlbWVudFBvc2l0aW9uIHtcbiAgICBwYWRkaW5nPzogU2lkZXNJbnB1dFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nUGxhY2VtZW50IGV4dGVuZHMgRmxvYXRpbmdQbGFjZW1lbnRQb3NpdGlvbiB7XG4gICAgcmVmOiBGbG9hdGluZ1RhcmdldEVsZW1lbnRSZWZcbn1cblxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nUGxhY2VtZW50UmVmPFQgZXh0ZW5kcyBMYXllclNlcnZpY2VbXCJyb290XCJdW1wibmF0aXZlRWxlbWVudFwiXT4gZXh0ZW5kcyBFbGVtZW50UmVmPFQ+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnMge1xuICAgIGFuY2hvcj86IEZsb2F0aW5nQW5jaG9yXG4gICAgY29udGVudD86IEZsb2F0aW5nQ29udGVudFxuICAgIHBsYWNlbWVudD86IEZsb2F0aW5nUGxhY2VtZW50XG59XG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nUG9zaXRpb25PcHRpb25zTm9ybWFsaXplZCA9IEZsb2F0aW5nUG9zaXRpb25PcHRpb25zICYge1xuICAgIGFuY2hvcjogRmxvYXRpbmdBbmNob3JcbiAgICBjb250ZW50OiBGbG9hdGluZ0NvbnRlbnRcbiAgICBwbGFjZW1lbnQ6IEZsb2F0aW5nUGxhY2VtZW50XG59XG5cbnR5cGUgV2F0Y2hlcyA9IHtcbiAgICBmbG9hdGluZzogT2JzZXJ2YWJsZTxEaW1lbnNpb24+XG4gICAgYW5jaG9yOiBPYnNlcnZhYmxlPFJlY3Q+XG4gICAgcGxhY2VtZW50OiBPYnNlcnZhYmxlPFJlY3Q+XG59XG5cbmV4cG9ydCBjbGFzcyBQb3NpdGlvblRyYWl0IGltcGxlbWVudHMgRmxvYXRpbmdUcmFpdDxGbG9hdGluZ1Bvc2l0aW9uPiB7XG4gICAgcmVhZG9ubHkgbmFtZSA9IFwicG9zaXRpb25cIlxuXG4gICAgcmVhZG9ubHkgb3B0aW9uczogRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnNOb3JtYWxpemVkXG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9ucykge1xuICAgICAgICBjb25zdCBjbG9uZWQgPSB7IC4uLm9wdGlvbnMgfVxuXG4gICAgICAgIGlmICghY2xvbmVkLnBsYWNlbWVudCkge1xuICAgICAgICAgICAgY2xvbmVkLnBsYWNlbWVudCA9IHsgcmVmOiBcInZpZXdwb3J0XCIgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjbG9uZWQuYW5jaG9yKSB7XG4gICAgICAgICAgICBjbG9uZWQuYW5jaG9yID0geyByZWY6IGNsb25lZC5wbGFjZW1lbnQucmVmLCBhbGlnbjogXCJjZW50ZXIgbWlkZGxlXCIgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjbG9uZWQuY29udGVudCkge1xuICAgICAgICAgICAgY2xvbmVkLmNvbnRlbnQgPSB7IGFsaWduOiBcImNlbnRlciBtaWRkbGVcIiB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBjbG9uZWQgYXMgYW55XG4gICAgfVxuXG4gICAgY29ubmVjdChmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWY8YW55Pik6IE9ic2VydmFibGU8RmxvYXRpbmdQb3NpdGlvbj4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGRlc3Q6IFN1YnNjcmliZXI8RmxvYXRpbmdQb3NpdGlvbj4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluamVjdG9yID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLmluamVjdG9yXG4gICAgICAgICAgICBjb25zdCBkaW1XYXRjaGVyID0gaW5qZWN0b3IuZ2V0KERpbWVuc2lvbldhdGNoZXIpXG4gICAgICAgICAgICBjb25zdCByZWN0V2F0Y2hlciA9IGluamVjdG9yLmdldChSZWN0V2F0Y2hlcilcblxuICAgICAgICAgICAgY29uc3Qgd2F0Y2hlczogV2F0Y2hlcyA9IHtcbiAgICAgICAgICAgICAgICBmbG9hdGluZzogZGltV2F0Y2hlci53YXRjaChmbG9hdGluZ1JlZi5jb250YWluZXIsIFwiYm9yZGVyLWJveFwiKSxcbiAgICAgICAgICAgICAgICBhbmNob3I6IHJlZldhdGNoZXIocmVjdFdhdGNoZXIsIHRoaXMub3B0aW9ucy5hbmNob3IucmVmLCBmbG9hdGluZ1JlZiksXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50OiByZWZXYXRjaGVyKHJlY3RXYXRjaGVyLCB0aGlzLm9wdGlvbnMucGxhY2VtZW50LnJlZiwgZmxvYXRpbmdSZWYpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHdhdGNoZXMpLnN1YnNjcmliZSgoeyBmbG9hdGluZywgYW5jaG9yLCBwbGFjZW1lbnQgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IG5ldyBGbG9hdGluZ1Bvc2l0aW9uKHRoaXMub3B0aW9ucywgZmxvYXRpbmcsIGFuY2hvciwgcGxhY2VtZW50KVxuICAgICAgICAgICAgICAgIHJlcy5hcHBseShmbG9hdGluZ1JlZilcbiAgICAgICAgICAgICAgICBkZXN0Lm5leHQocmVzKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHJlZldhdGNoZXIocmVjdFdhdGNoZXI6IFJlY3RXYXRjaGVyLCByZWY6IEZsb2F0aW5nVGFyZ2V0RWxlbWVudFJlZiwgZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmPGFueT4pIHtcbiAgICBpZiAocmVmID09PSBcImxheWVyXCIpIHtcbiAgICAgICAgcmV0dXJuIHJlY3RXYXRjaGVyLndhdGNoKGZsb2F0aW5nUmVmLmxheWVyU3ZjLnJvb3QsIFwiYm9yZGVyLWJveFwiKVxuICAgIH0gZWxzZSBpZiAocmVmID09PSBcInZpZXdwb3J0XCIgfHwgcmVmIGluc3RhbmNlb2YgV2luZG93KSB7XG4gICAgICAgIHJldHVybiByZWN0V2F0Y2hlci53YXRjaCh3aW5kb3csIFwiYm9yZGVyLWJveFwiKVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZWN0V2F0Y2hlci53YXRjaChyZWYsIFwiYm9yZGVyLWJveFwiKVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uKG9wdGlvbnM6IEZsb2F0aW5nUG9zaXRpb25PcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBQb3NpdGlvblRyYWl0KG9wdGlvbnMpXG59XG5cbmV4cG9ydCBjbGFzcyBGbG9hdGluZ1Bvc2l0aW9uIHtcbiAgICByZWFkb25seSBjb21wdXRlZD86IENvbXB1dGVkUG9zaXRvblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9uc05vcm1hbGl6ZWQsXG4gICAgICAgIHJlYWRvbmx5IGZsb2F0aW5nOiBEaW1lbnNpb24sXG4gICAgICAgIHJlYWRvbmx5IGFuY2hvcjogUmVjdCxcbiAgICAgICAgcmVhZG9ubHkgcGxhY2VtZW50OiBSZWN0XG4gICAgKSB7XG4gICAgICAgIC8vIGNvbnN0IGZyZWN0OiBSZWN0ID0geyB4OiAwLCB5OiAwLCAuLi5mbG9hdGluZyB9XG4gICAgICAgIHRoaXMuY29tcHV0ZWQgPSBjb21wdXRlUG9zaXRpb24oeyBmbG9hdGluZywgYW5jaG9yLCBwbGFjZW1lbnQsIG9wdGlvbnMgfSlcbiAgICB9XG5cbiAgICBhcHBseShmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWYpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcHV0ZWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmbG9hdGluZ0VsID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgZmxvYXRpbmdFbC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5jb21wdXRlZC5mbG9hdGluZy5jdXJyZW50Lnh9cHhgXG4gICAgICAgIGZsb2F0aW5nRWwuc3R5bGUudG9wID0gYCR7dGhpcy5jb21wdXRlZC5mbG9hdGluZy5jdXJyZW50Lnl9cHhgXG4gICAgfVxufVxuIl19
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL3Bvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFHNUQsT0FBTyxFQUE2QixnQkFBZ0IsRUFBUSxXQUFXLEVBQWMsTUFBTSxlQUFlLENBQUE7QUFLMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNyRCxPQUFPLEVBQW1CLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBZ0JsRSxNQUFNLE9BQU8saUJBQWtDLFNBQVEsVUFBYTtDQUFHO0FBZ0J2RSxNQUFNLE9BQU8sb0JBQXNFLFNBQVEsVUFBYTtDQUFHO0FBb0IzRyxNQUFNLE9BQU8sYUFBYTtJQUt0QixZQUFZLE9BQWdDO1FBSm5DLFNBQUksR0FBRyxVQUFVLENBQUE7UUFLdEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFBO1FBRTdCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLFNBQVMsR0FBRyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUMxQyxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQTtRQUN6RSxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixNQUFNLENBQUMsT0FB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QUUsQ0FBQztZQUN4QixPQUFNO1FBQ1YsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFBO1FBQ3RELFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFBO1FBQy9ELFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQ2xFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YnNjcmliZXIgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IEVsZW1lbnRJbnB1dCB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5pbXBvcnQgeyBBbGlnbm1lbnRJbnB1dCwgRGltZW5zaW9uLCBEaW1lbnNpb25XYXRjaGVyLCBSZWN0LCBSZWN0V2F0Y2hlciwgU2lkZXNJbnB1dCB9IGZyb20gXCJAbmd1dGlsL3N0eWxlXCJcblxuaW1wb3J0IHsgTGF5ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2xheWVyL2xheWVyLnNlcnZpY2VcIlxuaW1wb3J0IHsgRmxvYXRpbmdSZWYgfSBmcm9tIFwiLi4vZmxvYXRpbmctcmVmXCJcbmltcG9ydCB7IEZsb2F0aW5nVHJhaXQgfSBmcm9tIFwiLi9fYmFzZVwiXG5pbXBvcnQgeyBtYXhIZWlnaHQsIG1heFdpZHRoIH0gZnJvbSBcIi4vZGltLWNvbnRyYWludFwiXG5pbXBvcnQgeyBDb21wdXRlZFBvc2l0b24sIGNvbXB1dGVQb3NpdGlvbiB9IGZyb20gXCIuL3Bvc2l0aW9uLWNhbGNcIlxuXG5leHBvcnQgdHlwZSBGbG9hdGluZ1RhcmdldEVsZW1lbnRSZWYgPSBFbGVtZW50SW5wdXQgfCBXaW5kb3cgfCBcImxheWVyXCIgfCBcInZpZXdwb3J0XCJcblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ0FsaWduIHtcbiAgICBhbGlnbjogQWxpZ25tZW50SW5wdXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ0FuY2hvclBvc2l0aW9uIGV4dGVuZHMgRmxvYXRpbmdBbGlnbiB7XG4gICAgbWFyZ2luPzogU2lkZXNJbnB1dFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nQW5jaG9yIGV4dGVuZHMgRmxvYXRpbmdBbmNob3JQb3NpdGlvbiB7XG4gICAgcmVmOiBGbG9hdGluZ1RhcmdldEVsZW1lbnRSZWZcbn1cblxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nQW5jaG9yUmVmPFQgZXh0ZW5kcyBOb2RlPiBleHRlbmRzIEVsZW1lbnRSZWY8VD4ge31cblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ0NvbnRlbnRQb3NpdGlvbiBleHRlbmRzIEZsb2F0aW5nQWxpZ24ge1xuICAgIG1hcmdpbj86IFNpZGVzSW5wdXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ0NvbnRlbnQgZXh0ZW5kcyBGbG9hdGluZ0NvbnRlbnRQb3NpdGlvbiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nUGxhY2VtZW50UG9zaXRpb24ge1xuICAgIHBhZGRpbmc/OiBTaWRlc0lucHV0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdQbGFjZW1lbnQgZXh0ZW5kcyBGbG9hdGluZ1BsYWNlbWVudFBvc2l0aW9uIHtcbiAgICByZWY6IEZsb2F0aW5nVGFyZ2V0RWxlbWVudFJlZlxufVxuXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdQbGFjZW1lbnRSZWY8VCBleHRlbmRzIExheWVyU2VydmljZVtcInJvb3RcIl1bXCJuYXRpdmVFbGVtZW50XCJdPiBleHRlbmRzIEVsZW1lbnRSZWY8VD4ge31cblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9ucyB7XG4gICAgYW5jaG9yPzogRmxvYXRpbmdBbmNob3JcbiAgICBjb250ZW50PzogRmxvYXRpbmdDb250ZW50XG4gICAgcGxhY2VtZW50PzogRmxvYXRpbmdQbGFjZW1lbnRcbn1cblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnNOb3JtYWxpemVkID0gRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnMgJiB7XG4gICAgYW5jaG9yOiBGbG9hdGluZ0FuY2hvclxuICAgIGNvbnRlbnQ6IEZsb2F0aW5nQ29udGVudFxuICAgIHBsYWNlbWVudDogRmxvYXRpbmdQbGFjZW1lbnRcbn1cblxudHlwZSBXYXRjaGVzID0ge1xuICAgIGZsb2F0aW5nOiBPYnNlcnZhYmxlPERpbWVuc2lvbj5cbiAgICBhbmNob3I6IE9ic2VydmFibGU8UmVjdD5cbiAgICBwbGFjZW1lbnQ6IE9ic2VydmFibGU8UmVjdD5cbn1cblxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uVHJhaXQgaW1wbGVtZW50cyBGbG9hdGluZ1RyYWl0PEZsb2F0aW5nUG9zaXRpb24+IHtcbiAgICByZWFkb25seSBuYW1lID0gXCJwb3NpdGlvblwiXG5cbiAgICByZWFkb25seSBvcHRpb25zOiBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9uc05vcm1hbGl6ZWRcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEZsb2F0aW5nUG9zaXRpb25PcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGNsb25lZCA9IHsgLi4ub3B0aW9ucyB9XG5cbiAgICAgICAgaWYgKCFjbG9uZWQucGxhY2VtZW50KSB7XG4gICAgICAgICAgICBjbG9uZWQucGxhY2VtZW50ID0geyByZWY6IFwidmlld3BvcnRcIiB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNsb25lZC5hbmNob3IpIHtcbiAgICAgICAgICAgIGNsb25lZC5hbmNob3IgPSB7IHJlZjogY2xvbmVkLnBsYWNlbWVudC5yZWYsIGFsaWduOiBcImNlbnRlciBtaWRkbGVcIiB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNsb25lZC5jb250ZW50KSB7XG4gICAgICAgICAgICBjbG9uZWQuY29udGVudCA9IHsgYWxpZ246IFwiY2VudGVyIG1pZGRsZVwiIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IGNsb25lZCBhcyBhbnlcbiAgICB9XG5cbiAgICBjb25uZWN0KGZsb2F0aW5nUmVmOiBGbG9hdGluZ1JlZjxhbnk+KTogT2JzZXJ2YWJsZTxGbG9hdGluZ1Bvc2l0aW9uPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZGVzdDogU3Vic2NyaWJlcjxGbG9hdGluZ1Bvc2l0aW9uPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBmbG9hdGluZ1JlZi5jb250YWluZXIuaW5qZWN0b3JcbiAgICAgICAgICAgIGNvbnN0IGRpbVdhdGNoZXIgPSBpbmplY3Rvci5nZXQoRGltZW5zaW9uV2F0Y2hlcilcbiAgICAgICAgICAgIGNvbnN0IHJlY3RXYXRjaGVyID0gaW5qZWN0b3IuZ2V0KFJlY3RXYXRjaGVyKVxuXG4gICAgICAgICAgICBjb25zdCB3YXRjaGVzOiBXYXRjaGVzID0ge1xuICAgICAgICAgICAgICAgIGZsb2F0aW5nOiBkaW1XYXRjaGVyLndhdGNoKGZsb2F0aW5nUmVmLmNvbnRhaW5lciwgXCJib3JkZXItYm94XCIpLFxuICAgICAgICAgICAgICAgIGFuY2hvcjogcmVmV2F0Y2hlcihyZWN0V2F0Y2hlciwgdGhpcy5vcHRpb25zLmFuY2hvci5yZWYsIGZsb2F0aW5nUmVmKSxcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6IHJlZldhdGNoZXIocmVjdFdhdGNoZXIsIHRoaXMub3B0aW9ucy5wbGFjZW1lbnQucmVmLCBmbG9hdGluZ1JlZilcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qod2F0Y2hlcykuc3Vic2NyaWJlKCh7IGZsb2F0aW5nLCBhbmNob3IsIHBsYWNlbWVudCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gbmV3IEZsb2F0aW5nUG9zaXRpb24odGhpcy5vcHRpb25zLCBmbG9hdGluZywgYW5jaG9yLCBwbGFjZW1lbnQpXG4gICAgICAgICAgICAgICAgcmVzLmFwcGx5KGZsb2F0aW5nUmVmKVxuICAgICAgICAgICAgICAgIGRlc3QubmV4dChyZXMpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH1cbn1cblxuZnVuY3Rpb24gcmVmV2F0Y2hlcihyZWN0V2F0Y2hlcjogUmVjdFdhdGNoZXIsIHJlZjogRmxvYXRpbmdUYXJnZXRFbGVtZW50UmVmLCBmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWY8YW55Pikge1xuICAgIGlmIChyZWYgPT09IFwibGF5ZXJcIikge1xuICAgICAgICByZXR1cm4gcmVjdFdhdGNoZXIud2F0Y2goZmxvYXRpbmdSZWYubGF5ZXJTdmMucm9vdCwgXCJib3JkZXItYm94XCIpXG4gICAgfSBlbHNlIGlmIChyZWYgPT09IFwidmlld3BvcnRcIiB8fCByZWYgaW5zdGFuY2VvZiBXaW5kb3cpIHtcbiAgICAgICAgcmV0dXJuIHJlY3RXYXRjaGVyLndhdGNoKHdpbmRvdywgXCJib3JkZXItYm94XCIpXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJlY3RXYXRjaGVyLndhdGNoKHJlZiwgXCJib3JkZXItYm94XCIpXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zaXRpb24ob3B0aW9uczogRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnMpIHtcbiAgICByZXR1cm4gW25ldyBQb3NpdGlvblRyYWl0KG9wdGlvbnMpLCBtYXhXaWR0aChOYU4pLCBtYXhIZWlnaHQoTmFOKV1cbn1cblxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nUG9zaXRpb24ge1xuICAgIHJlYWRvbmx5IGNvbXB1dGVkPzogQ29tcHV0ZWRQb3NpdG9uXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IG9wdGlvbnM6IEZsb2F0aW5nUG9zaXRpb25PcHRpb25zTm9ybWFsaXplZCxcbiAgICAgICAgcmVhZG9ubHkgZmxvYXRpbmc6IERpbWVuc2lvbixcbiAgICAgICAgcmVhZG9ubHkgYW5jaG9yOiBSZWN0LFxuICAgICAgICByZWFkb25seSBwbGFjZW1lbnQ6IFJlY3RcbiAgICApIHtcbiAgICAgICAgLy8gY29uc3QgZnJlY3Q6IFJlY3QgPSB7IHg6IDAsIHk6IDAsIC4uLmZsb2F0aW5nIH1cbiAgICAgICAgdGhpcy5jb21wdXRlZCA9IGNvbXB1dGVQb3NpdGlvbih7IGZsb2F0aW5nLCBhbmNob3IsIHBsYWNlbWVudCwgb3B0aW9ucyB9KVxuICAgIH1cblxuICAgIGFwcGx5KGZsb2F0aW5nUmVmOiBGbG9hdGluZ1JlZikge1xuICAgICAgICBpZiAodGhpcy5jb21wdXRlZCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZsb2F0aW5nRWwgPSBmbG9hdGluZ1JlZi5jb250YWluZXIubmF0aXZlRWxlbWVudFxuICAgICAgICBmbG9hdGluZ0VsLnN0eWxlLmxlZnQgPSBgJHt0aGlzLmNvbXB1dGVkLmZsb2F0aW5nLmN1cnJlbnQueH1weGBcbiAgICAgICAgZmxvYXRpbmdFbC5zdHlsZS50b3AgPSBgJHt0aGlzLmNvbXB1dGVkLmZsb2F0aW5nLmN1cnJlbnQueX1weGBcbiAgICB9XG59XG4iXX0=
|
|
@@ -153,13 +153,24 @@ class DimensionConstraintTrait {
|
|
|
153
153
|
position: floatingRef.watchTrait("position")
|
|
154
154
|
}).subscribe(({ refDim, position }) => {
|
|
155
155
|
const floating = position.computed?.floating;
|
|
156
|
-
|
|
156
|
+
if (!floating) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
dst.next(clamp(refDim, floating.min[this.#map.dimension] || 0, floating.max[this.#map.dimension] || Infinity));
|
|
157
160
|
});
|
|
158
161
|
}
|
|
159
162
|
else {
|
|
160
163
|
return floatingRef.watchTrait("position").subscribe(position => {
|
|
161
164
|
const floating = position.computed?.floating;
|
|
162
|
-
|
|
165
|
+
if (!floating) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (isNaN(this.value)) {
|
|
169
|
+
dst.next(floating[this.#map.computedRef][this.#map.dimension]);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
dst.next(clamp(this.value, floating?.min[this.#map.dimension] || 0, floating?.max[this.#map.dimension] || Infinity));
|
|
173
|
+
}
|
|
163
174
|
});
|
|
164
175
|
}
|
|
165
176
|
}).pipe(distinctUntilChanged(), tap(value => {
|
|
@@ -311,7 +322,7 @@ function refWatcher(rectWatcher, ref, floatingRef) {
|
|
|
311
322
|
}
|
|
312
323
|
}
|
|
313
324
|
function position(options) {
|
|
314
|
-
return new PositionTrait(options);
|
|
325
|
+
return [new PositionTrait(options), maxWidth(NaN), maxHeight(NaN)];
|
|
315
326
|
}
|
|
316
327
|
class FloatingPosition {
|
|
317
328
|
constructor(options, floating, anchor, placement) {
|
|
@@ -778,7 +789,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
778
789
|
args: [TRAITS]
|
|
779
790
|
}] }] });
|
|
780
791
|
|
|
781
|
-
// export type FloatingTrait = (...args: any[]) => (traits: object) => Observable<object>
|
|
782
792
|
class FloatingFactory {
|
|
783
793
|
#providers;
|
|
784
794
|
constructor(layer) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngutil-floating.mjs","sources":["../../../../packages/floating/src/floating/traits/animation.ts","../../../../packages/floating/src/floating/traits/backdrop.ts","../../../../packages/floating/src/floating/traits/dim-contraint.ts","../../../../packages/floating/src/floating/traits/focus.ts","../../../../packages/floating/src/floating/traits/keystroke.ts","../../../../packages/floating/src/floating/traits/position-calc.ts","../../../../packages/floating/src/floating/traits/position.ts","../../../../packages/floating/src/floating/traits/modal.ts","../../../../packages/floating/src/floating/traits/style.ts","../../../../packages/floating/src/floating/traits/attribute.ts","../../../../packages/floating/src/layer/child-ref.ts","../../../../packages/floating/src/layer/container-ref.ts","../../../../packages/floating/src/layer/backdrop-ref.ts","../../../../packages/floating/src/layer/portal-ref.ts","../../../../packages/floating/src/layer/layer.service.ts","../../../../packages/floating/src/floating/floating-ref.ts","../../../../packages/floating/src/floating/floating.service.ts","../../../../packages/floating/src/floating.module.ts","../../../../packages/floating/src/ngutil-floating.ts"],"sourcesContent":["import { animate, AnimationBuilder, AnimationMetadata, style } from \"@angular/animations\"\n\nimport { Observable, Subscriber } from \"rxjs\"\n\nimport { animationObservable } from \"@ngutil/graphics\"\nimport { Duration, Ease } from \"@ngutil/style\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport type AnimationSet = { show: AnimationMetadata[]; hide: AnimationMetadata[] }\n\n// https://tympanus.net/Development/ModalWindowEffects/\n\nconst transitionDuration = Duration.FastMs\n\nexport class AnimationTrait implements FloatingTrait<unknown> {\n readonly name = \"animation\"\n\n constructor(readonly animation: AnimationSet) {}\n\n connect(floatingRef: FloatingRef): Observable<unknown> {\n return new Observable((dst: Subscriber<unknown>) => {\n const builder = floatingRef.container.injector.get(AnimationBuilder)\n const element = floatingRef.container.nativeElement\n floatingRef.state.on(\"showing\", () =>\n animationObservable({ builder, element, animation: this.animation.show })\n )\n floatingRef.state.on(\"disposing\", () =>\n animationObservable({ builder, element, animation: this.animation.hide })\n )\n dst.next()\n })\n }\n}\n\nexport const FallAnimation: AnimationSet = {\n show: [\n style({\n // \"perspective:\": \"1300px\",\n transform: \"scale(1.5)\",\n visibility: \"visible\",\n opacity: \"0\"\n }),\n animate(\n `${transitionDuration}ms ${Ease.Deceleration}`,\n style({\n transform: \"scale(1)\",\n opacity: \"1\"\n })\n )\n ],\n hide: [\n animate(\n `${transitionDuration}ms ${Ease.Deceleration}`,\n style({\n transform: \"scale(1.5)\",\n visibility: \"visible\",\n opacity: \"0\"\n })\n )\n ]\n}\n\nexport function fallAnimation() {\n return new AnimationTrait(FallAnimation)\n}\n\nexport const FadeAnimation: AnimationSet = {\n show: [style({ opacity: 0 }), animate(`${transitionDuration}ms ${Ease.Deceleration}`, style({ opacity: 1 }))],\n hide: [animate(`${transitionDuration}ms ${Ease.Deceleration}`, style({ opacity: 0 }))]\n}\n\nexport function fadeAnimation() {\n return new AnimationTrait(FadeAnimation)\n}\n","import { AnimationBuilder } from \"@angular/animations\"\n\nimport { exhaustMap, map, Observable, Subject, Subscriber } from \"rxjs\"\n\nimport { animationObservable } from \"@ngutil/graphics\"\n\nimport type { BackdropOptions, BackdropRef, CropBackdropOptions } from \"../../layer/backdrop-ref\"\nimport { type FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\nimport { FadeAnimation } from \"./animation\"\nimport { FloatingPosition } from \"./position\"\n\nexport interface BackdropTraitOptions {\n type: BackdropOptions[\"type\"]\n color: BackdropOptions[\"color\"]\n closeOnClick?: boolean\n // TODO: maybe cropMargin\n}\n\nexport class BackdropState {\n onClick: Observable<void> = new Subject<void>()\n}\n\nexport class BackdropTrait implements FloatingTrait<BackdropState> {\n readonly name = \"backdrop\"\n\n constructor(readonly options: BackdropTraitOptions) {}\n\n connect(floatingRef: FloatingRef<any>): Observable<BackdropState> {\n return new Observable((dest: Subscriber<BackdropState>) => {\n const animationBuilder = floatingRef.container.injector.get(AnimationBuilder)\n const options: BackdropOptions = {\n type: this.options.type,\n under: floatingRef.container,\n color: this.options.color\n } as any\n\n if (this.options.type === \"crop\") {\n ;(options as CropBackdropOptions).crop = floatingRef\n .watchTrait<FloatingPosition>(\"position\")\n .pipe(map(position => position.anchor))\n }\n\n const state = new BackdropState()\n const backdrop = floatingRef.layerSvc.newBackdrop(options)\n const removeOnClick = this.options.closeOnClick\n ? this.#installClickHandler(floatingRef, backdrop, state)\n : null\n\n const onClickSub = this.options.closeOnClick\n ? state.onClick.pipe(exhaustMap(() => floatingRef.close())).subscribe()\n : null\n\n backdrop.state.on(\"showing\", () =>\n animationObservable({\n builder: animationBuilder,\n element: backdrop.nativeElement,\n animation: FadeAnimation.show\n })\n )\n backdrop.state.on(\"disposing\", () =>\n animationObservable({\n builder: animationBuilder,\n element: backdrop.nativeElement,\n animation: FadeAnimation.hide\n })\n )\n\n floatingRef.state.on(\"disposing\", () => backdrop.dispose())\n\n const backdropShowSub = backdrop.show().subscribe()\n dest.next(state)\n\n return () => {\n removeOnClick && removeOnClick()\n onClickSub?.unsubscribe()\n backdropShowSub.unsubscribe()\n }\n })\n }\n\n #installClickHandler(floatingRef: FloatingRef<any>, backdrop: BackdropRef, state: BackdropState) {\n const handler = (event: MouseEvent) => {\n if (event.defaultPrevented) {\n return\n }\n\n if (event.target === backdrop.nativeElement || backdrop.nativeElement.contains(event.target as Node)) {\n ;(state.onClick as Subject<void>).next()\n }\n }\n\n document.addEventListener(\"click\", handler)\n\n return () => {\n document.removeEventListener(\"click\", handler)\n }\n }\n}\n\nexport function backdrop(options: BackdropTraitOptions) {\n return new BackdropTrait(options)\n}\n","import { combineLatest, distinctUntilChanged, map, Observable, Subscriber, tap } from \"rxjs\"\n\nimport { clamp } from \"lodash\"\n\nimport { ElementInput, isElementInput } from \"@ngutil/common\"\nimport { Dimension, DimensionWatcher } from \"@ngutil/style\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\nimport { type FloatingPosition } from \"./position\"\n\nexport type DimensionConstraintInput = ElementInput | number\n\ninterface DimMapEntry {\n computedRef: \"min\" | \"max\"\n dimension: keyof Dimension\n}\n\nconst DIM_MAP: { [key: string]: DimMapEntry } = {\n maxWidth: { computedRef: \"max\", dimension: \"width\" },\n maxHeight: { computedRef: \"max\", dimension: \"height\" },\n minWidth: { computedRef: \"min\", dimension: \"width\" },\n minHeight: { computedRef: \"min\", dimension: \"height\" }\n}\n\nexport class DimensionConstraintTrait implements FloatingTrait<number> {\n readonly name: string\n readonly #map: DimMapEntry\n constructor(\n name: keyof typeof DIM_MAP,\n readonly value: DimensionConstraintInput\n ) {\n this.name = name as string\n this.#map = DIM_MAP[name]\n }\n\n connect(floatingRef: FloatingRef<any>): Observable<number> {\n return new Observable((dst: Subscriber<number>) => {\n if (isElementInput(this.value)) {\n const watcher = floatingRef.container.injector.get(DimensionWatcher)\n const refDim = watcher.watch(this.value, \"border-box\").pipe(map(value => value[this.#map.dimension]))\n return combineLatest({\n refDim: refDim,\n position: floatingRef.watchTrait<FloatingPosition>(\"position\")\n }).subscribe(({ refDim, position }) => {\n const floating = position.computed?.floating\n dst.next(\n clamp(\n refDim,\n floating?.min[this.#map.dimension] || 0,\n floating?.max[this.#map.dimension] || Infinity\n )\n )\n })\n } else {\n return floatingRef.watchTrait<FloatingPosition>(\"position\").subscribe(position => {\n const floating = position.computed?.floating\n dst.next(\n clamp(\n this.value as number,\n floating?.min[this.#map.dimension] || 0,\n floating?.max[this.#map.dimension] || Infinity\n )\n )\n })\n }\n }).pipe(\n distinctUntilChanged(),\n tap(value => {\n const floatingEl = floatingRef.container.nativeElement\n floatingEl.style[this.name as any] = `${value}px`\n })\n )\n }\n}\n\nexport function maxWidth(value: DimensionConstraintInput) {\n return new DimensionConstraintTrait(\"maxWidth\", value)\n}\n\nexport function maxHeight(value: DimensionConstraintInput) {\n return new DimensionConstraintTrait(\"maxHeight\", value)\n}\n\nexport function minWidth(value: DimensionConstraintInput) {\n return new DimensionConstraintTrait(\"minWidth\", value)\n}\n\nexport function minHeight(value: DimensionConstraintInput) {\n return new DimensionConstraintTrait(\"minHeight\", value)\n}\n","import { Observable, Subscription } from \"rxjs\"\n\nimport { Focusable, FocusService, FocusState } from \"@ngutil/aria\"\nimport { ElementInput } from \"@ngutil/common\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport interface FocusOptions {\n trap?: boolean\n connect?: Focusable | FocusState\n tabindex?: number\n focusOnClose?: ElementInput\n}\n\nexport class FocusTrait implements FloatingTrait<unknown> {\n readonly name = \"focus\"\n\n constructor(readonly options: FocusOptions) {}\n\n connect(floatingRef: FloatingRef): Observable<unknown> {\n return new Observable(() => {\n const subs = new Subscription()\n const originallyFocused = document.activeElement as HTMLElement\n const svc = floatingRef.container.injector.get(FocusService)\n\n if (this.options.connect) {\n const tabindex = this.options.tabindex == null ? 0 : this.options.tabindex\n floatingRef.container.nativeElement.setAttribute(\"tabindex\", tabindex.toString())\n subs.add(this.options.connect.connect(floatingRef.container).subscribe())\n }\n\n if (this.options.trap) {\n subs.add(this.#trap(floatingRef, svc).subscribe())\n }\n\n floatingRef.state.on(\"disposing\", () => {\n const active = document.activeElement\n const floating = floatingRef.container.nativeElement\n if (active === floating || floating.contains(active)) {\n originallyFocused && document.contains(originallyFocused) && svc.focus(originallyFocused, \"program\")\n }\n })\n\n return () => {\n subs.unsubscribe()\n }\n })\n }\n\n #trap(floatingRef: FloatingRef, svc: FocusService) {\n return new Observable(() => {\n const trap = svc.focusTrap(floatingRef.container.nativeElement)\n\n floatingRef.state.on(\"shown\", () => {\n trap.focusInitialElement()\n })\n\n return () => {\n trap.destroy()\n }\n })\n }\n}\n\nexport function focus(options: FocusOptions) {\n return new FocusTrait(options)\n}\n","import { exhaustMap, Observable } from \"rxjs\"\n\nimport { KeystrokeService } from \"@ngutil/aria\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport class KeystrokeTrait implements FloatingTrait<unknown> {\n name = \"keystroke\"\n\n connect(floatingRef: FloatingRef): Observable<unknown> {\n const ks = floatingRef.container.injector.get(KeystrokeService)\n return ks\n .watch(floatingRef.container.nativeElement, { key: \"Escape\", state: \"up\" })\n .pipe(exhaustMap(() => floatingRef.close()))\n }\n}\n\nexport function keystroke() {\n return new KeystrokeTrait()\n}\n","import {\n Alignment,\n Dimension,\n Position,\n Rect,\n rectContract,\n rectExpand,\n rectMoveOrigin,\n rectOrigin\n} from \"@ngutil/style\"\n\nimport type { FloatingPositionOptionsNormalized } from \"./position\"\n\nexport interface ComputePositionInput {\n floating: Dimension\n anchor: Rect\n placement: Rect\n options: FloatingPositionOptionsNormalized\n}\n\nexport interface ComputedFloating {\n current: Rect\n min: Dimension\n max: Dimension\n}\n\nexport interface ComputedAlignment {\n align: Alignment\n postion: Position\n}\n\nexport interface ComputedAnchor {\n floating: ComputedAlignment\n anchor: ComputedAlignment\n}\n\nexport interface ComputedPositon {\n floating: ComputedFloating\n anchor?: ComputedAnchor\n}\n\nexport function computePosition({\n floating,\n anchor,\n placement,\n options\n}: ComputePositionInput): ComputedPositon | undefined {\n if (options.anchor.margin) {\n anchor = rectExpand(anchor, options.anchor.margin)\n }\n const anchorPoint = rectOrigin(anchor, options.anchor.align)\n\n let content = rectMoveOrigin(floating, options.content.align, anchorPoint)\n if (options.content.margin) {\n content = rectContract(content, options.content.margin)\n }\n\n if (options.placement.padding) {\n placement = rectContract(placement, options.placement.padding)\n }\n\n const cf: ComputedFloating = {\n current: content,\n max: { width: placement.width - content.x, height: placement.height - content.y },\n min: { width: 0, height: 0 }\n }\n\n return { floating: cf }\n}\n","import { ElementRef } from \"@angular/core\"\n\nimport { combineLatest, Observable, Subscriber } from \"rxjs\"\n\nimport { ElementInput } from \"@ngutil/common\"\nimport { AlignmentInput, Dimension, DimensionWatcher, Rect, RectWatcher, SidesInput } from \"@ngutil/style\"\n\nimport { LayerService } from \"../../layer/layer.service\"\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\nimport { ComputedPositon, computePosition } from \"./position-calc\"\n\nexport type FloatingTargetElementRef = ElementInput | Window | \"layer\" | \"viewport\"\n\nexport interface FloatingAlign {\n align: AlignmentInput\n}\n\nexport interface FloatingAnchorPosition extends FloatingAlign {\n margin?: SidesInput\n}\n\nexport interface FloatingAnchor extends FloatingAnchorPosition {\n ref: FloatingTargetElementRef\n}\n\nexport class FloatingAnchorRef<T extends Node> extends ElementRef<T> {}\n\nexport interface FloatingContentPosition extends FloatingAlign {\n margin?: SidesInput\n}\n\nexport interface FloatingContent extends FloatingContentPosition {}\n\nexport interface FloatingPlacementPosition {\n padding?: SidesInput\n}\n\nexport interface FloatingPlacement extends FloatingPlacementPosition {\n ref: FloatingTargetElementRef\n}\n\nexport class FloatingPlacementRef<T extends LayerService[\"root\"][\"nativeElement\"]> extends ElementRef<T> {}\n\nexport interface FloatingPositionOptions {\n anchor?: FloatingAnchor\n content?: FloatingContent\n placement?: FloatingPlacement\n}\n\nexport type FloatingPositionOptionsNormalized = FloatingPositionOptions & {\n anchor: FloatingAnchor\n content: FloatingContent\n placement: FloatingPlacement\n}\n\ntype Watches = {\n floating: Observable<Dimension>\n anchor: Observable<Rect>\n placement: Observable<Rect>\n}\n\nexport class PositionTrait implements FloatingTrait<FloatingPosition> {\n readonly name = \"position\"\n\n readonly options: FloatingPositionOptionsNormalized\n\n constructor(options: FloatingPositionOptions) {\n const cloned = { ...options }\n\n if (!cloned.placement) {\n cloned.placement = { ref: \"viewport\" }\n }\n\n if (!cloned.anchor) {\n cloned.anchor = { ref: cloned.placement.ref, align: \"center middle\" }\n }\n\n if (!cloned.content) {\n cloned.content = { align: \"center middle\" }\n }\n\n this.options = cloned as any\n }\n\n connect(floatingRef: FloatingRef<any>): Observable<FloatingPosition> {\n return new Observable((dest: Subscriber<FloatingPosition>) => {\n const injector = floatingRef.container.injector\n const dimWatcher = injector.get(DimensionWatcher)\n const rectWatcher = injector.get(RectWatcher)\n\n const watches: Watches = {\n floating: dimWatcher.watch(floatingRef.container, \"border-box\"),\n anchor: refWatcher(rectWatcher, this.options.anchor.ref, floatingRef),\n placement: refWatcher(rectWatcher, this.options.placement.ref, floatingRef)\n }\n\n return combineLatest(watches).subscribe(({ floating, anchor, placement }) => {\n const res = new FloatingPosition(this.options, floating, anchor, placement)\n res.apply(floatingRef)\n dest.next(res)\n })\n })\n }\n}\n\nfunction refWatcher(rectWatcher: RectWatcher, ref: FloatingTargetElementRef, floatingRef: FloatingRef<any>) {\n if (ref === \"layer\") {\n return rectWatcher.watch(floatingRef.layerSvc.root, \"border-box\")\n } else if (ref === \"viewport\" || ref instanceof Window) {\n return rectWatcher.watch(window, \"border-box\")\n } else {\n return rectWatcher.watch(ref, \"border-box\")\n }\n}\n\nexport function position(options: FloatingPositionOptions) {\n return new PositionTrait(options)\n}\n\nexport class FloatingPosition {\n readonly computed?: ComputedPositon\n constructor(\n readonly options: FloatingPositionOptionsNormalized,\n readonly floating: Dimension,\n readonly anchor: Rect,\n readonly placement: Rect\n ) {\n // const frect: Rect = { x: 0, y: 0, ...floating }\n this.computed = computePosition({ floating, anchor, placement, options })\n }\n\n apply(floatingRef: FloatingRef) {\n if (this.computed == null) {\n return\n }\n\n const floatingEl = floatingRef.container.nativeElement\n floatingEl.style.left = `${this.computed.floating.current.x}px`\n floatingEl.style.top = `${this.computed.floating.current.y}px`\n }\n}\n","import { fallAnimation } from \"./animation\"\nimport { backdrop } from \"./backdrop\"\nimport { focus } from \"./focus\"\nimport { keystroke } from \"./keystroke\"\nimport { position } from \"./position\"\n\nexport interface ModalOptions {\n closeOnBackdropClick?: boolean\n}\n\nexport function modal(options: ModalOptions = {}) {\n return [\n position({\n anchor: {\n ref: \"viewport\",\n align: \"center middle\"\n },\n placement: {\n ref: \"viewport\",\n padding: \"16px\"\n }\n }),\n backdrop({ type: \"solid\", color: \"rgba(0, 0, 0, .3)\", closeOnClick: options.closeOnBackdropClick }),\n focus({ trap: true }),\n keystroke(),\n fallAnimation()\n ]\n}\n","import { Observable, of } from \"rxjs\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport class StyleTrait implements FloatingTrait<Partial<CSSStyleDeclaration>> {\n readonly name = \"style\"\n\n constructor(readonly styles: Partial<CSSStyleDeclaration>) {}\n\n connect(floatingRef: FloatingRef): Observable<Partial<CSSStyleDeclaration>> {\n Object.assign(floatingRef.container.nativeElement.style, this.styles)\n return of(this.styles)\n }\n}\n\nexport function style(styles: Partial<CSSStyleDeclaration>) {\n return new StyleTrait(styles)\n}\n","import { Observable, of } from \"rxjs\"\n\nimport { Primitive } from \"utility-types\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport type Attributes = { [key: string]: Primitive } | { dataset: { [key: string]: Primitive } }\n\nexport class AttributeTrait implements FloatingTrait<Attributes> {\n readonly name = \"attribute\"\n\n constructor(readonly attrs: Attributes) {}\n\n connect(floatingRef: FloatingRef): Observable<Attributes> {\n const el = floatingRef.container.nativeElement\n\n for (const [k, v] of Object.entries(this.attrs)) {\n if (k === \"dataset\") {\n v && Object.assign(el.dataset, v)\n } else if (v == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, v.toString())\n }\n }\n\n return of(this.attrs)\n }\n}\n\nexport function attribute(attrs: Attributes) {\n return new AttributeTrait(attrs)\n}\n","import { ElementRef } from \"@angular/core\"\n\nimport { Observable, of } from \"rxjs\"\n\nimport { StateChain } from \"@ngutil/common\"\n\nexport type DisposeHandler<T> = (ref: T) => Observable<void>\n\n// TODO: disposing, disposed\n\nexport abstract class ChildRef<T extends HTMLElement = HTMLElement> extends ElementRef<T> {\n readonly state = new StateChain({\n showing: {},\n shown: {},\n disposing: { cancellable: false },\n disposed: { cancellable: false, order: \"sequential\" }\n })\n\n /**\n * @internal\n */\n set zIndex(val: number) {\n if (this._zIndex !== val) {\n this._zIndex = val\n this.nativeElement.style.zIndex = String(val)\n }\n }\n get zIndex(): number {\n return this._zIndex\n }\n private _zIndex: number = -1\n\n constructor(nativeElement: T) {\n super(nativeElement)\n this.state.on(\"disposed\", () => this.destroy())\n\n // this.state.current$.subscribe(state => {\n // console.log(this, state)\n // })\n }\n\n dispose() {\n if (this.state == null) {\n return of(null)\n }\n return this.state.run([\"disposing\", \"disposed\"])\n }\n\n protected destroy() {\n this.nativeElement.parentElement?.removeChild(this.nativeElement)\n this.state.destroy()\n delete (this as any).state\n }\n}\n","import { Injector, Provider } from \"@angular/core\"\n\nimport { ChildRef } from \"./child-ref\"\n\nexport interface ContainerOptions {\n alwaysOnTop?: boolean\n elevation?: number\n classes?: string[]\n attributes?: Record<string, string>\n injector?: Injector\n providers?: Provider[]\n}\n\nexport class ContainerRef extends ChildRef {\n public readonly injector: Injector\n\n protected injectorName = \"ContainerRef\"\n\n constructor(public readonly options: ContainerOptions) {\n super(createElement(options))\n\n const providers = options.providers || []\n this.injector = Injector.create({\n providers: [...this.getProviders(), ...providers],\n parent: options.injector,\n name: this.injectorName\n })\n\n this.state.on(\"disposed\", () => {\n delete (this as any).options\n delete (this as any).injector\n })\n }\n\n protected getProviders(): Provider[] {\n return [\n { provide: ChildRef, useValue: this },\n { provide: ContainerRef, useValue: this }\n ]\n }\n}\n\nfunction createElement(options: ContainerOptions): HTMLDivElement {\n const div = document.createElement(\"div\")\n div.style.position = \"absolute\"\n div.style.top = \"0\"\n div.style.left = \"0\"\n div.style.width = \"max-content\"\n\n if (options.classes) {\n div.classList.add(...options.classes)\n }\n\n return div\n}\n","import { Injector } from \"@angular/core\"\n\nimport { Subscription } from \"rxjs\"\n\nimport { CoverService } from \"@ngutil/graphics\"\nimport { CoverOptions, CropCoverOptions } from \"@ngutil/graphics\"\n\nimport { ChildRef } from \"./child-ref\"\n\nexport interface BasicBackdropOptions {\n under: ChildRef\n color: CoverOptions[\"color\"]\n}\n\nexport interface SolidBackdropOptions extends BasicBackdropOptions {\n type: \"solid\"\n}\n\nexport interface CropBackdropOptions extends BasicBackdropOptions {\n type: \"crop\"\n crop: CropCoverOptions[\"crop\"]\n}\n\nexport type BackdropOptions = SolidBackdropOptions | CropBackdropOptions\n\nexport class BackdropRef extends ChildRef {\n static from(cover: CoverService, injector: Injector, options: BackdropOptions): BackdropRef {\n const ref = new BackdropRef(document.createElement(\"div\"), cover, injector, options)\n // TODO: kérdéses\n // options.under.state.control(ref.state)\n return ref\n }\n\n readonly #coverSub?: Subscription\n readonly under: ChildRef\n readonly group?: string\n\n set visible(visible: boolean) {\n if (this.#visible !== visible) {\n this.#visible = visible\n this.nativeElement.style.visibility = visible ? \"visible\" : \"hidden\"\n }\n }\n\n get visible(): boolean {\n return this.#visible\n }\n #visible: boolean = true\n\n constructor(\n nativeElement: HTMLElement,\n readonly coverSvc: CoverService,\n readonly injector: Injector,\n readonly options: BackdropOptions\n ) {\n super(nativeElement)\n nativeElement.style.position = \"absolute\"\n nativeElement.style.top =\n nativeElement.style.right =\n nativeElement.style.bottom =\n nativeElement.style.left =\n \"0px\"\n\n this.under = options.under\n\n if (options.type === \"solid\") {\n this.#coverSub = this.coverSvc.solid({ container: nativeElement, color: options.color }).subscribe()\n this.group = `${options.color === \"transparent\" ? \"transparent\" : \"solid\"}`\n } else if (options.type === \"crop\") {\n this.#coverSub = this.coverSvc\n .crop({ container: nativeElement, color: options.color, crop: options.crop })\n .subscribe()\n }\n }\n\n show() {\n return this.state.run([\"showing\", \"shown\"])\n }\n\n protected override destroy(): void {\n this.#coverSub?.unsubscribe()\n super.destroy()\n }\n}\n","import { ComponentPortal, ComponentType, DomPortalOutlet, PortalOutlet, TemplatePortal } from \"@angular/cdk/portal\"\nimport { ComponentFactoryResolver, Provider, TemplateRef, ViewContainerRef } from \"@angular/core\"\n\nimport { ContainerOptions, ContainerRef } from \"./container-ref\"\n\nexport interface PortalOptions extends ContainerOptions {}\n\nexport abstract class PortalRef extends ContainerRef {\n protected override injectorName = \"PortalRef\"\n protected outlet: PortalOutlet\n\n constructor(options: PortalOptions) {\n super(options)\n\n this.outlet = new DomPortalOutlet(this.nativeElement, undefined, undefined, this.injector)\n this.state.on(\"disposed\", () => {\n this.outlet.dispose()\n delete (this as any).outlet\n })\n }\n\n protected override getProviders(): Provider[] {\n return [...super.getProviders(), { provide: PortalRef, useValue: this }]\n }\n}\n\nexport interface ComponentPortalOptions<T = any> extends PortalOptions {\n viewContainerRef?: ViewContainerRef\n}\n\nexport class ComponentPortalRef<T = any> extends PortalRef {\n protected override injectorName = \"ComponentPortalRef\"\n protected readonly portal: ComponentPortal<T>\n\n constructor(\n public readonly component: ComponentType<T>,\n options: ComponentPortalOptions<T>\n ) {\n super(options)\n\n const resolver = this.injector.get(ComponentFactoryResolver)\n const vcr = this.injector.get(ViewContainerRef)\n\n this.portal = new ComponentPortal(component, options.viewContainerRef || vcr, this.injector, resolver)\n this.outlet.attach(this.portal)\n\n this.state.on(\"disposed\", () => {\n this.portal.isAttached && this.portal.detach()\n delete (this as any).portal\n })\n }\n\n protected override getProviders(): Provider[] {\n return [...super.getProviders(), { provide: ComponentPortalRef, useValue: this }]\n }\n}\n\nexport interface TemplatePortalOptions<T = any> extends PortalOptions {\n viewContainerRef: ViewContainerRef\n context?: T\n}\n\nexport class TemplatePortalRef<T = any> extends PortalRef {\n protected override injectorName = \"TemplatePortalRef\"\n protected readonly portal: TemplatePortal<T>\n\n constructor(\n public readonly template: TemplateRef<T>,\n options: TemplatePortalOptions<T>\n ) {\n super(options)\n this.portal = new TemplatePortal(template, options.viewContainerRef, options.context)\n this.outlet.attach(this.portal)\n\n this.state.on(\"disposed\", () => {\n this.portal.isAttached && this.portal.detach()\n delete (this as any).portal\n })\n }\n\n protected override getProviders(): Provider[] {\n return [...super.getProviders(), { provide: TemplatePortalRef, useValue: this }]\n }\n}\n","import { ComponentType } from \"@angular/cdk/portal\"\nimport { Directive, ElementRef, inject, Inject, InjectionToken, Injector, Optional, TemplateRef } from \"@angular/core\"\n\nimport { toSorted } from \"@ngutil/common\"\nimport { CoverService } from \"@ngutil/graphics\"\n\nimport { BackdropOptions, BackdropRef } from \"./backdrop-ref\"\nimport { ChildRef } from \"./child-ref\"\nimport { ContainerOptions, ContainerRef } from \"./container-ref\"\nimport { ComponentPortalOptions, ComponentPortalRef, TemplatePortalOptions, TemplatePortalRef } from \"./portal-ref\"\n\nexport const LAYER_ZINDEX_START = new InjectionToken<number>(\"LAYER_ZINDEX_START\")\n\n// TODO: ELEVATION_STEP config with injection\n// TODO: ELEVATION_START config with injection\n\n@Directive()\nexport abstract class LayerService {\n readonly #cover = inject(CoverService)\n readonly #injector = inject(Injector)\n\n readonly root = inject<ElementRef<HTMLElement>>(ElementRef)\n // readonly #el = this.root.nativeElement\n\n readonly #children: Array<ChildRef> = []\n readonly #zIndexStart: number\n // readonly #backdrop: Map<>\n\n constructor(@Inject(LAYER_ZINDEX_START) @Optional() zIndexStart?: number) {\n if (zIndexStart != null) {\n this.#zIndexStart = zIndexStart\n } else {\n this.#zIndexStart = 10000\n }\n }\n\n newComponentPortal<T>(component: ComponentType<T>, options: ComponentPortalOptions<T>): ComponentPortalRef<T> {\n if (!options.injector) {\n options = { ...options, injector: this.#injector }\n }\n return this.append(new ComponentPortalRef(component, options))\n }\n\n newTemplatePortal<T>(tpl: TemplateRef<T>, options: TemplatePortalOptions<T>): TemplatePortalRef<T> {\n if (!options.injector) {\n options = { ...options, injector: this.#injector }\n }\n return this.append(new TemplatePortalRef(tpl, options))\n }\n\n newContainer(options: ContainerOptions): ContainerRef {\n if (!options.injector) {\n options = { ...options, injector: this.#injector }\n }\n return this.append(new ContainerRef(options))\n }\n\n newBackdrop(options: BackdropOptions): BackdropRef {\n return this.append(BackdropRef.from(this.#cover, this.#injector, options))\n }\n\n append<T extends ChildRef>(ref: T): T {\n if (!this.#children.includes(ref)) {\n this.#children.push(ref)\n this.#update()\n this.root.nativeElement.appendChild(ref.nativeElement)\n ref.state.on(\"disposed\", () => this.#remove(ref))\n }\n return ref\n }\n\n #remove(ref: ChildRef) {\n const idx = this.#children.indexOf(ref)\n if (idx > -1) {\n this.#children.splice(idx, 1)\n this.#update()\n }\n }\n\n #update() {\n const children = toSorted(this.#children, sortByBackdrop)\n\n let zIndex = this.#zIndexStart\n for (const child of children) {\n child.zIndex = zIndex\n zIndex += 1\n }\n\n children.sort(sortByZIndexDesc)\n\n let hasBackdrop = false\n for (const child of children) {\n if (child instanceof BackdropRef && child.options.type === \"solid\") {\n child.visible = !hasBackdrop\n hasBackdrop = true\n }\n }\n }\n}\n\n@Directive({\n selector: \"body\",\n standalone: true,\n providers: [{ provide: LayerService, useExisting: RootLayer }]\n})\nexport class RootLayer extends LayerService {}\n\n@Directive({\n standalone: true,\n providers: [{ provide: LayerService, useExisting: IndividualLayer }]\n})\nexport class IndividualLayer extends LayerService {}\n\nfunction sortByBackdrop(a: ChildRef, b: ChildRef) {\n if (a instanceof BackdropRef && a.under === b) {\n return -1\n } else if (b instanceof BackdropRef && b.under === a) {\n return 1\n }\n return 0\n}\n\nfunction sortByZIndexDesc(a: ChildRef, b: ChildRef) {\n return b.zIndex - a.zIndex\n}\n","import { Inject, Injectable, InjectionToken } from \"@angular/core\"\n\nimport { debounceTime, EMPTY, filter, map, merge, Observable, ReplaySubject, shareReplay, takeUntil } from \"rxjs\"\n\nimport { StateChain } from \"@ngutil/common\"\n\nimport { ContainerRef } from \"../layer/container-ref\"\nimport { LayerService } from \"../layer/layer.service\"\nimport { FloatingTrait } from \"./traits/_base\"\n\nexport type Traits = { [key: string]: FloatingTrait }\n\nexport const TRAITS = new InjectionToken<Traits>(\"TRAITS\")\n\nexport interface FloatingChannel {\n floatingRef: FloatingRef\n type: string\n data?: any\n}\n\nexport interface FloatingTraitEvent {\n name: string\n data: object\n}\n\n@Injectable()\nexport class FloatingRef<C extends FloatingChannel = FloatingChannel, T extends HTMLElement = HTMLElement> {\n readonly channel = new ReplaySubject<FloatingChannel>(1)\n\n readonly state = new StateChain({\n init: {},\n showing: {},\n shown: {},\n closing: { cancellable: false, order: \"sequential\" },\n disposing: { cancellable: false },\n disposed: { cancellable: false, order: \"sequential\" },\n cleanup: { cancellable: false, order: \"sequential\" }\n })\n\n readonly #traits: Traits = {}\n readonly traitState$: Observable<FloatingTraitEvent>\n\n readonly #untilCleanup = this.state.current$.pipe(\n filter(state => state === \"cleanup\"),\n shareReplay(1)\n )\n\n readonly #untilDisposed = this.state.current$.pipe(\n filter(state => state === \"cleanup\"),\n shareReplay(1)\n )\n\n constructor(\n readonly layerSvc: LayerService,\n readonly container: ContainerRef,\n @Inject(TRAITS) traits: Traits\n ) {\n container.nativeElement.style.overflow = \"hidden\"\n container.nativeElement.style.visibility = \"hidden\"\n\n this.#traits = traits\n this.traitState$ = this.#traitState().pipe(shareReplay(1))\n\n const sub = this.state.current$.subscribe(state => {\n this.emit({ type: state } as C)\n })\n this.state.on(\n \"init\",\n () =>\n new Observable(dst => {\n // TODO: angular render is stabilized\n this.traitState$.pipe(takeUntil(this.#untilCleanup), debounceTime(5)).subscribe(() => {\n dst.complete()\n })\n })\n )\n this.state.on(\"showing\", () => {\n container.nativeElement.style.visibility = \"visible\"\n })\n this.state.on(\"disposing\", () => {\n container.nativeElement.style.pointerEvents = \"none\"\n })\n this.state.on(\"disposed\", () => {\n sub.unsubscribe()\n })\n this.state.control(container.state)\n }\n\n show() {\n return this.state.run([\"init\", \"showing\", \"shown\"])\n }\n\n hide() {\n return this.state.run([\"disposing\", \"disposed\", \"cleanup\"])\n }\n\n close() {\n return this.state.run([\"closing\", \"disposing\", \"disposed\", \"cleanup\"])\n }\n\n emit(event: Omit<C, \"floatingRef\">) {\n this.channel.next({ ...event, floatingRef: this } as any)\n }\n\n setResult(data: any) {\n this.emit({ type: \"result\", data } as C)\n this.hide().subscribe()\n }\n\n watchTrait<T>(name: string): Observable<T> {\n return this.traitState$.pipe(\n takeUntil(this.#untilDisposed),\n filter(event => event.name === name),\n map(event => event.data as T),\n shareReplay(1)\n )\n }\n\n #traitState(): Observable<FloatingTraitEvent> {\n const src = []\n\n for (const [k, v] of Object.entries(this.#traits)) {\n src.push(\n v.connect(this).pipe(\n takeUntil(this.#untilCleanup),\n map(result => {\n return { name: k, data: result }\n })\n )\n )\n }\n\n if (src.length === 0) {\n return EMPTY\n } else if (src.length === 1) {\n return src[0]\n } else {\n return merge(...src)\n }\n }\n}\n","import { ComponentType } from \"@angular/cdk/portal\"\nimport { inject, Injectable, Provider, TemplateRef } from \"@angular/core\"\n\nimport { Observable, Subscriber } from \"rxjs\"\n\nimport { LayerService } from \"../layer/layer.service\"\nimport { ComponentPortalOptions, TemplatePortalOptions } from \"../layer/portal-ref\"\nimport { FloatingChannel, FloatingRef, TRAITS } from \"./floating-ref\"\nimport { type FloatingTrait } from \"./traits/_base\"\nimport { type FloatingPositionOptions, position } from \"./traits/position\"\n\n// export type FloatingTrait = (...args: any[]) => (traits: object) => Observable<object>\n\nexport abstract class FloatingFactory {\n protected readonly traits: { [key: string]: FloatingTrait } = {}\n\n #providers: Provider[] = []\n\n constructor(protected readonly layer: LayerService) {}\n\n trait(...traits: Array<FloatingTrait | FloatingTrait[]>) {\n for (const trait of traits) {\n if (Array.isArray(trait)) {\n this.trait(...trait)\n } else {\n this.traits[trait.name] = trait\n }\n }\n\n return this\n }\n\n show(): Observable<FloatingChannel> {\n return new Observable((dest: Subscriber<FloatingChannel>) => {\n let disposing = false\n\n const ref = this.create()\n const channelSub = ref.channel.subscribe(event => {\n dest.next(event)\n if (event.type === \"disposing\") {\n disposing = true\n }\n if (event.type === \"cleanup\") {\n dest.complete()\n }\n })\n\n const showSub = ref.show().subscribe()\n\n return () => {\n showSub.unsubscribe()\n channelSub.unsubscribe()\n if (!disposing) {\n ref.hide().subscribe()\n }\n }\n })\n }\n\n subscribe: Observable<FloatingChannel>[\"subscribe\"] = (...args: any[]) => this.show().subscribe(...args)\n\n protected providers(providers?: Provider[]): Provider[] {\n if (!providers) {\n providers = []\n }\n\n providers = [\n ...providers,\n { provide: TRAITS, useValue: this.traits },\n { provide: LayerService, useValue: this.layer },\n FloatingRef,\n ...this.#providers\n ]\n\n return providers\n }\n\n protected abstract create(): FloatingRef<FloatingChannel>\n\n position(options: FloatingPositionOptions) {\n return this.trait(position(options))\n }\n\n provides(providers: Provider | Provider[]) {\n if (Array.isArray(providers)) {\n this.#providers = [...this.#providers, ...providers]\n } else {\n this.#providers = [...this.#providers, providers]\n }\n return this\n }\n}\n\nexport class FloatingTemplateFactory<T extends object> extends FloatingFactory {\n constructor(\n layer: LayerService,\n public readonly tpl: TemplateRef<T>,\n public readonly options: TemplatePortalOptions<T>\n ) {\n super(layer)\n }\n\n protected override create(): FloatingRef<FloatingChannel> {\n const options: TemplatePortalOptions<T> = { ...this.options }\n options.providers = this.providers(options.providers)\n const container = this.layer.newTemplatePortal(this.tpl, options)\n return container.injector.get(FloatingRef)\n }\n}\n\nexport class FloatingComponentFactory<T extends ComponentType<any>> extends FloatingFactory {\n constructor(\n layer: LayerService,\n public readonly component: T,\n public readonly options: ComponentPortalOptions<T>\n ) {\n super(layer)\n }\n\n protected override create(): FloatingRef<FloatingChannel> {\n const options: ComponentPortalOptions<T> = { ...this.options }\n options.providers = this.providers(options.providers)\n const container = this.layer.newComponentPortal(this.component, options)\n return container.injector.get(FloatingRef)\n }\n}\n\n/**\n * @example\n * ```typescript\n * class SomeComponent {}\n *\n * class SomeList {\n * readonly floating = inject(FloatingService)\n *\n * showComponent() {\n * this.floating.from(SomeComponent).traits(position(), backdrop()).subscribe()\n * }\n * ```\n */\n@Injectable()\nexport class FloatingService {\n readonly #layer = inject(LayerService)\n // readonly parent = inject(FloatingRef, { skipSelf: true, optional: true })\n\n from<T extends ComponentType<any>>(component: T, opts?: ComponentPortalOptions<T>): FloatingComponentFactory<T>\n\n from<T extends object>(tpl: TemplateRef<T>, opts?: TemplatePortalOptions<T>): FloatingTemplateFactory<T>\n\n from<T>(value: ComponentType<T> | TemplateRef<T>, opts: any): FloatingFactory {\n if (value instanceof TemplateRef) {\n return new FloatingTemplateFactory(this.#layer, value as any, opts)\n } else {\n return new FloatingComponentFactory(this.#layer, value as any, opts)\n }\n }\n}\n","import { NgModule } from \"@angular/core\"\n\nimport { FloatingService } from \"./floating/floating.service\"\nimport { RootLayer } from \"./layer/layer.service\"\n\n@NgModule({\n providers: [FloatingService],\n imports: [RootLayer],\n exports: [RootLayer]\n})\nexport class NuFloating {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["style"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngutil-floating.mjs","sources":["../../../../packages/floating/src/floating/traits/animation.ts","../../../../packages/floating/src/floating/traits/backdrop.ts","../../../../packages/floating/src/floating/traits/dim-contraint.ts","../../../../packages/floating/src/floating/traits/focus.ts","../../../../packages/floating/src/floating/traits/keystroke.ts","../../../../packages/floating/src/floating/traits/position-calc.ts","../../../../packages/floating/src/floating/traits/position.ts","../../../../packages/floating/src/floating/traits/modal.ts","../../../../packages/floating/src/floating/traits/style.ts","../../../../packages/floating/src/floating/traits/attribute.ts","../../../../packages/floating/src/layer/child-ref.ts","../../../../packages/floating/src/layer/container-ref.ts","../../../../packages/floating/src/layer/backdrop-ref.ts","../../../../packages/floating/src/layer/portal-ref.ts","../../../../packages/floating/src/layer/layer.service.ts","../../../../packages/floating/src/floating/floating-ref.ts","../../../../packages/floating/src/floating/floating.service.ts","../../../../packages/floating/src/floating.module.ts","../../../../packages/floating/src/ngutil-floating.ts"],"sourcesContent":["import { animate, AnimationBuilder, AnimationMetadata, style } from \"@angular/animations\"\n\nimport { Observable, Subscriber } from \"rxjs\"\n\nimport { animationObservable } from \"@ngutil/graphics\"\nimport { Duration, Ease } from \"@ngutil/style\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport type AnimationSet = { show: AnimationMetadata[]; hide: AnimationMetadata[] }\n\n// https://tympanus.net/Development/ModalWindowEffects/\n\nconst transitionDuration = Duration.FastMs\n\nexport class AnimationTrait implements FloatingTrait<unknown> {\n readonly name = \"animation\"\n\n constructor(readonly animation: AnimationSet) {}\n\n connect(floatingRef: FloatingRef): Observable<unknown> {\n return new Observable((dst: Subscriber<unknown>) => {\n const builder = floatingRef.container.injector.get(AnimationBuilder)\n const element = floatingRef.container.nativeElement\n floatingRef.state.on(\"showing\", () =>\n animationObservable({ builder, element, animation: this.animation.show })\n )\n floatingRef.state.on(\"disposing\", () =>\n animationObservable({ builder, element, animation: this.animation.hide })\n )\n dst.next()\n })\n }\n}\n\nexport const FallAnimation: AnimationSet = {\n show: [\n style({\n // \"perspective:\": \"1300px\",\n transform: \"scale(1.5)\",\n visibility: \"visible\",\n opacity: \"0\"\n }),\n animate(\n `${transitionDuration}ms ${Ease.Deceleration}`,\n style({\n transform: \"scale(1)\",\n opacity: \"1\"\n })\n )\n ],\n hide: [\n animate(\n `${transitionDuration}ms ${Ease.Deceleration}`,\n style({\n transform: \"scale(1.5)\",\n visibility: \"visible\",\n opacity: \"0\"\n })\n )\n ]\n}\n\nexport function fallAnimation() {\n return new AnimationTrait(FallAnimation)\n}\n\nexport const FadeAnimation: AnimationSet = {\n show: [style({ opacity: 0 }), animate(`${transitionDuration}ms ${Ease.Deceleration}`, style({ opacity: 1 }))],\n hide: [animate(`${transitionDuration}ms ${Ease.Deceleration}`, style({ opacity: 0 }))]\n}\n\nexport function fadeAnimation() {\n return new AnimationTrait(FadeAnimation)\n}\n","import { AnimationBuilder } from \"@angular/animations\"\n\nimport { exhaustMap, map, Observable, Subject, Subscriber } from \"rxjs\"\n\nimport { animationObservable } from \"@ngutil/graphics\"\n\nimport type { BackdropOptions, BackdropRef, CropBackdropOptions } from \"../../layer/backdrop-ref\"\nimport { type FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\nimport { FadeAnimation } from \"./animation\"\nimport { FloatingPosition } from \"./position\"\n\nexport interface BackdropTraitOptions {\n type: BackdropOptions[\"type\"]\n color: BackdropOptions[\"color\"]\n closeOnClick?: boolean\n // TODO: maybe cropMargin\n}\n\nexport class BackdropState {\n onClick: Observable<void> = new Subject<void>()\n}\n\nexport class BackdropTrait implements FloatingTrait<BackdropState> {\n readonly name = \"backdrop\"\n\n constructor(readonly options: BackdropTraitOptions) {}\n\n connect(floatingRef: FloatingRef<any>): Observable<BackdropState> {\n return new Observable((dest: Subscriber<BackdropState>) => {\n const animationBuilder = floatingRef.container.injector.get(AnimationBuilder)\n const options: BackdropOptions = {\n type: this.options.type,\n under: floatingRef.container,\n color: this.options.color\n } as any\n\n if (this.options.type === \"crop\") {\n ;(options as CropBackdropOptions).crop = floatingRef\n .watchTrait<FloatingPosition>(\"position\")\n .pipe(map(position => position.anchor))\n }\n\n const state = new BackdropState()\n const backdrop = floatingRef.layerSvc.newBackdrop(options)\n const removeOnClick = this.options.closeOnClick\n ? this.#installClickHandler(floatingRef, backdrop, state)\n : null\n\n const onClickSub = this.options.closeOnClick\n ? state.onClick.pipe(exhaustMap(() => floatingRef.close())).subscribe()\n : null\n\n backdrop.state.on(\"showing\", () =>\n animationObservable({\n builder: animationBuilder,\n element: backdrop.nativeElement,\n animation: FadeAnimation.show\n })\n )\n backdrop.state.on(\"disposing\", () =>\n animationObservable({\n builder: animationBuilder,\n element: backdrop.nativeElement,\n animation: FadeAnimation.hide\n })\n )\n\n floatingRef.state.on(\"disposing\", () => backdrop.dispose())\n\n const backdropShowSub = backdrop.show().subscribe()\n dest.next(state)\n\n return () => {\n removeOnClick && removeOnClick()\n onClickSub?.unsubscribe()\n backdropShowSub.unsubscribe()\n }\n })\n }\n\n #installClickHandler(floatingRef: FloatingRef<any>, backdrop: BackdropRef, state: BackdropState) {\n const handler = (event: MouseEvent) => {\n if (event.defaultPrevented) {\n return\n }\n\n if (event.target === backdrop.nativeElement || backdrop.nativeElement.contains(event.target as Node)) {\n ;(state.onClick as Subject<void>).next()\n }\n }\n\n document.addEventListener(\"click\", handler)\n\n return () => {\n document.removeEventListener(\"click\", handler)\n }\n }\n}\n\nexport function backdrop(options: BackdropTraitOptions) {\n return new BackdropTrait(options)\n}\n","import { combineLatest, distinctUntilChanged, map, Observable, Subscriber, tap } from \"rxjs\"\n\nimport { clamp } from \"lodash\"\n\nimport { ElementInput, isElementInput } from \"@ngutil/common\"\nimport { Dimension, DimensionWatcher } from \"@ngutil/style\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\nimport type { FloatingPosition } from \"./position\"\n\nexport type DimensionConstraintInput = ElementInput | number\n\ninterface DimMapEntry {\n computedRef: \"min\" | \"max\"\n dimension: keyof Dimension\n}\n\nconst DIM_MAP: { [key: string]: DimMapEntry } = {\n maxWidth: { computedRef: \"max\", dimension: \"width\" },\n maxHeight: { computedRef: \"max\", dimension: \"height\" },\n minWidth: { computedRef: \"min\", dimension: \"width\" },\n minHeight: { computedRef: \"min\", dimension: \"height\" }\n}\n\nexport class DimensionConstraintTrait implements FloatingTrait<number> {\n readonly name: string\n readonly #map: DimMapEntry\n constructor(\n name: keyof typeof DIM_MAP,\n readonly value: DimensionConstraintInput\n ) {\n this.name = name as string\n this.#map = DIM_MAP[name]\n }\n\n connect(floatingRef: FloatingRef<any>): Observable<number> {\n return new Observable((dst: Subscriber<number>) => {\n if (isElementInput(this.value)) {\n const watcher = floatingRef.container.injector.get(DimensionWatcher)\n const refDim = watcher.watch(this.value, \"border-box\").pipe(map(value => value[this.#map.dimension]))\n return combineLatest({\n refDim: refDim,\n position: floatingRef.watchTrait<FloatingPosition>(\"position\")\n }).subscribe(({ refDim, position }) => {\n const floating = position.computed?.floating\n if (!floating) {\n return\n }\n dst.next(\n clamp(\n refDim,\n floating.min[this.#map.dimension] || 0,\n floating.max[this.#map.dimension] || Infinity\n )\n )\n })\n } else {\n return floatingRef.watchTrait<FloatingPosition>(\"position\").subscribe(position => {\n const floating = position.computed?.floating\n if (!floating) {\n return\n }\n if (isNaN(this.value as number)) {\n dst.next(floating[this.#map.computedRef][this.#map.dimension])\n } else {\n dst.next(\n clamp(\n this.value as number,\n floating?.min[this.#map.dimension] || 0,\n floating?.max[this.#map.dimension] || Infinity\n )\n )\n }\n })\n }\n }).pipe(\n distinctUntilChanged(),\n tap(value => {\n const floatingEl = floatingRef.container.nativeElement\n floatingEl.style[this.name as any] = `${value}px`\n })\n )\n }\n}\n\nexport function maxWidth(value: DimensionConstraintInput) {\n return new DimensionConstraintTrait(\"maxWidth\", value)\n}\n\nexport function maxHeight(value: DimensionConstraintInput) {\n return new DimensionConstraintTrait(\"maxHeight\", value)\n}\n\nexport function minWidth(value: DimensionConstraintInput) {\n return new DimensionConstraintTrait(\"minWidth\", value)\n}\n\nexport function minHeight(value: DimensionConstraintInput) {\n return new DimensionConstraintTrait(\"minHeight\", value)\n}\n","import { Observable, Subscription } from \"rxjs\"\n\nimport { Focusable, FocusService, FocusState } from \"@ngutil/aria\"\nimport { ElementInput } from \"@ngutil/common\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport interface FocusOptions {\n trap?: boolean\n connect?: Focusable | FocusState\n tabindex?: number\n focusOnClose?: ElementInput\n}\n\nexport class FocusTrait implements FloatingTrait<unknown> {\n readonly name = \"focus\"\n\n constructor(readonly options: FocusOptions) {}\n\n connect(floatingRef: FloatingRef): Observable<unknown> {\n return new Observable(() => {\n const subs = new Subscription()\n const originallyFocused = document.activeElement as HTMLElement\n const svc = floatingRef.container.injector.get(FocusService)\n\n if (this.options.connect) {\n const tabindex = this.options.tabindex == null ? 0 : this.options.tabindex\n floatingRef.container.nativeElement.setAttribute(\"tabindex\", tabindex.toString())\n subs.add(this.options.connect.connect(floatingRef.container).subscribe())\n }\n\n if (this.options.trap) {\n subs.add(this.#trap(floatingRef, svc).subscribe())\n }\n\n floatingRef.state.on(\"disposing\", () => {\n const active = document.activeElement\n const floating = floatingRef.container.nativeElement\n if (active === floating || floating.contains(active)) {\n originallyFocused && document.contains(originallyFocused) && svc.focus(originallyFocused, \"program\")\n }\n })\n\n return () => {\n subs.unsubscribe()\n }\n })\n }\n\n #trap(floatingRef: FloatingRef, svc: FocusService) {\n return new Observable(() => {\n const trap = svc.focusTrap(floatingRef.container.nativeElement)\n\n floatingRef.state.on(\"shown\", () => {\n trap.focusInitialElement()\n })\n\n return () => {\n trap.destroy()\n }\n })\n }\n}\n\nexport function focus(options: FocusOptions) {\n return new FocusTrait(options)\n}\n","import { exhaustMap, Observable } from \"rxjs\"\n\nimport { KeystrokeService } from \"@ngutil/aria\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport class KeystrokeTrait implements FloatingTrait<unknown> {\n name = \"keystroke\"\n\n connect(floatingRef: FloatingRef): Observable<unknown> {\n const ks = floatingRef.container.injector.get(KeystrokeService)\n return ks\n .watch(floatingRef.container.nativeElement, { key: \"Escape\", state: \"up\" })\n .pipe(exhaustMap(() => floatingRef.close()))\n }\n}\n\nexport function keystroke() {\n return new KeystrokeTrait()\n}\n","import {\n Alignment,\n Dimension,\n Position,\n Rect,\n rectContract,\n rectExpand,\n rectMoveOrigin,\n rectOrigin\n} from \"@ngutil/style\"\n\nimport type { FloatingPositionOptionsNormalized } from \"./position\"\n\nexport interface ComputePositionInput {\n floating: Dimension\n anchor: Rect\n placement: Rect\n options: FloatingPositionOptionsNormalized\n}\n\nexport interface ComputedFloating {\n current: Rect\n min: Dimension\n max: Dimension\n}\n\nexport interface ComputedAlignment {\n align: Alignment\n postion: Position\n}\n\nexport interface ComputedAnchor {\n floating: ComputedAlignment\n anchor: ComputedAlignment\n}\n\nexport interface ComputedPositon {\n floating: ComputedFloating\n anchor?: ComputedAnchor\n}\n\nexport function computePosition({\n floating,\n anchor,\n placement,\n options\n}: ComputePositionInput): ComputedPositon | undefined {\n if (options.anchor.margin) {\n anchor = rectExpand(anchor, options.anchor.margin)\n }\n const anchorPoint = rectOrigin(anchor, options.anchor.align)\n\n let content = rectMoveOrigin(floating, options.content.align, anchorPoint)\n if (options.content.margin) {\n content = rectContract(content, options.content.margin)\n }\n\n if (options.placement.padding) {\n placement = rectContract(placement, options.placement.padding)\n }\n\n const cf: ComputedFloating = {\n current: content,\n max: { width: placement.width - content.x, height: placement.height - content.y },\n min: { width: 0, height: 0 }\n }\n\n return { floating: cf }\n}\n","import { ElementRef } from \"@angular/core\"\n\nimport { combineLatest, Observable, Subscriber } from \"rxjs\"\n\nimport { ElementInput } from \"@ngutil/common\"\nimport { AlignmentInput, Dimension, DimensionWatcher, Rect, RectWatcher, SidesInput } from \"@ngutil/style\"\n\nimport { LayerService } from \"../../layer/layer.service\"\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\nimport { maxHeight, maxWidth } from \"./dim-contraint\"\nimport { ComputedPositon, computePosition } from \"./position-calc\"\n\nexport type FloatingTargetElementRef = ElementInput | Window | \"layer\" | \"viewport\"\n\nexport interface FloatingAlign {\n align: AlignmentInput\n}\n\nexport interface FloatingAnchorPosition extends FloatingAlign {\n margin?: SidesInput\n}\n\nexport interface FloatingAnchor extends FloatingAnchorPosition {\n ref: FloatingTargetElementRef\n}\n\nexport class FloatingAnchorRef<T extends Node> extends ElementRef<T> {}\n\nexport interface FloatingContentPosition extends FloatingAlign {\n margin?: SidesInput\n}\n\nexport interface FloatingContent extends FloatingContentPosition {}\n\nexport interface FloatingPlacementPosition {\n padding?: SidesInput\n}\n\nexport interface FloatingPlacement extends FloatingPlacementPosition {\n ref: FloatingTargetElementRef\n}\n\nexport class FloatingPlacementRef<T extends LayerService[\"root\"][\"nativeElement\"]> extends ElementRef<T> {}\n\nexport interface FloatingPositionOptions {\n anchor?: FloatingAnchor\n content?: FloatingContent\n placement?: FloatingPlacement\n}\n\nexport type FloatingPositionOptionsNormalized = FloatingPositionOptions & {\n anchor: FloatingAnchor\n content: FloatingContent\n placement: FloatingPlacement\n}\n\ntype Watches = {\n floating: Observable<Dimension>\n anchor: Observable<Rect>\n placement: Observable<Rect>\n}\n\nexport class PositionTrait implements FloatingTrait<FloatingPosition> {\n readonly name = \"position\"\n\n readonly options: FloatingPositionOptionsNormalized\n\n constructor(options: FloatingPositionOptions) {\n const cloned = { ...options }\n\n if (!cloned.placement) {\n cloned.placement = { ref: \"viewport\" }\n }\n\n if (!cloned.anchor) {\n cloned.anchor = { ref: cloned.placement.ref, align: \"center middle\" }\n }\n\n if (!cloned.content) {\n cloned.content = { align: \"center middle\" }\n }\n\n this.options = cloned as any\n }\n\n connect(floatingRef: FloatingRef<any>): Observable<FloatingPosition> {\n return new Observable((dest: Subscriber<FloatingPosition>) => {\n const injector = floatingRef.container.injector\n const dimWatcher = injector.get(DimensionWatcher)\n const rectWatcher = injector.get(RectWatcher)\n\n const watches: Watches = {\n floating: dimWatcher.watch(floatingRef.container, \"border-box\"),\n anchor: refWatcher(rectWatcher, this.options.anchor.ref, floatingRef),\n placement: refWatcher(rectWatcher, this.options.placement.ref, floatingRef)\n }\n\n return combineLatest(watches).subscribe(({ floating, anchor, placement }) => {\n const res = new FloatingPosition(this.options, floating, anchor, placement)\n res.apply(floatingRef)\n dest.next(res)\n })\n })\n }\n}\n\nfunction refWatcher(rectWatcher: RectWatcher, ref: FloatingTargetElementRef, floatingRef: FloatingRef<any>) {\n if (ref === \"layer\") {\n return rectWatcher.watch(floatingRef.layerSvc.root, \"border-box\")\n } else if (ref === \"viewport\" || ref instanceof Window) {\n return rectWatcher.watch(window, \"border-box\")\n } else {\n return rectWatcher.watch(ref, \"border-box\")\n }\n}\n\nexport function position(options: FloatingPositionOptions) {\n return [new PositionTrait(options), maxWidth(NaN), maxHeight(NaN)]\n}\n\nexport class FloatingPosition {\n readonly computed?: ComputedPositon\n constructor(\n readonly options: FloatingPositionOptionsNormalized,\n readonly floating: Dimension,\n readonly anchor: Rect,\n readonly placement: Rect\n ) {\n // const frect: Rect = { x: 0, y: 0, ...floating }\n this.computed = computePosition({ floating, anchor, placement, options })\n }\n\n apply(floatingRef: FloatingRef) {\n if (this.computed == null) {\n return\n }\n\n const floatingEl = floatingRef.container.nativeElement\n floatingEl.style.left = `${this.computed.floating.current.x}px`\n floatingEl.style.top = `${this.computed.floating.current.y}px`\n }\n}\n","import { fallAnimation } from \"./animation\"\nimport { backdrop } from \"./backdrop\"\nimport { focus } from \"./focus\"\nimport { keystroke } from \"./keystroke\"\nimport { position } from \"./position\"\n\nexport interface ModalOptions {\n closeOnBackdropClick?: boolean\n}\n\nexport function modal(options: ModalOptions = {}) {\n return [\n position({\n anchor: {\n ref: \"viewport\",\n align: \"center middle\"\n },\n placement: {\n ref: \"viewport\",\n padding: \"16px\"\n }\n }),\n backdrop({ type: \"solid\", color: \"rgba(0, 0, 0, .3)\", closeOnClick: options.closeOnBackdropClick }),\n focus({ trap: true }),\n keystroke(),\n fallAnimation()\n ]\n}\n","import { Observable, of } from \"rxjs\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport class StyleTrait implements FloatingTrait<Partial<CSSStyleDeclaration>> {\n readonly name = \"style\"\n\n constructor(readonly styles: Partial<CSSStyleDeclaration>) {}\n\n connect(floatingRef: FloatingRef): Observable<Partial<CSSStyleDeclaration>> {\n Object.assign(floatingRef.container.nativeElement.style, this.styles)\n return of(this.styles)\n }\n}\n\nexport function style(styles: Partial<CSSStyleDeclaration>) {\n return new StyleTrait(styles)\n}\n","import { Observable, of } from \"rxjs\"\n\nimport { Primitive } from \"utility-types\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport type Attributes = { [key: string]: Primitive } | { dataset: { [key: string]: Primitive } }\n\nexport class AttributeTrait implements FloatingTrait<Attributes> {\n readonly name = \"attribute\"\n\n constructor(readonly attrs: Attributes) {}\n\n connect(floatingRef: FloatingRef): Observable<Attributes> {\n const el = floatingRef.container.nativeElement\n\n for (const [k, v] of Object.entries(this.attrs)) {\n if (k === \"dataset\") {\n v && Object.assign(el.dataset, v)\n } else if (v == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, v.toString())\n }\n }\n\n return of(this.attrs)\n }\n}\n\nexport function attribute(attrs: Attributes) {\n return new AttributeTrait(attrs)\n}\n","import { ElementRef } from \"@angular/core\"\n\nimport { Observable, of } from \"rxjs\"\n\nimport { StateChain } from \"@ngutil/common\"\n\nexport type DisposeHandler<T> = (ref: T) => Observable<void>\n\n// TODO: disposing, disposed\n\nexport abstract class ChildRef<T extends HTMLElement = HTMLElement> extends ElementRef<T> {\n readonly state = new StateChain({\n showing: {},\n shown: {},\n disposing: { cancellable: false },\n disposed: { cancellable: false, order: \"sequential\" }\n })\n\n /**\n * @internal\n */\n set zIndex(val: number) {\n if (this._zIndex !== val) {\n this._zIndex = val\n this.nativeElement.style.zIndex = String(val)\n }\n }\n get zIndex(): number {\n return this._zIndex\n }\n private _zIndex: number = -1\n\n constructor(nativeElement: T) {\n super(nativeElement)\n this.state.on(\"disposed\", () => this.destroy())\n\n // this.state.current$.subscribe(state => {\n // console.log(this, state)\n // })\n }\n\n dispose() {\n if (this.state == null) {\n return of(null)\n }\n return this.state.run([\"disposing\", \"disposed\"])\n }\n\n protected destroy() {\n this.nativeElement.parentElement?.removeChild(this.nativeElement)\n this.state.destroy()\n delete (this as any).state\n }\n}\n","import { Injector, Provider } from \"@angular/core\"\n\nimport { ChildRef } from \"./child-ref\"\n\nexport interface ContainerOptions {\n alwaysOnTop?: boolean\n elevation?: number\n classes?: string[]\n attributes?: Record<string, string>\n injector?: Injector\n providers?: Provider[]\n}\n\nexport class ContainerRef extends ChildRef {\n public readonly injector: Injector\n\n protected injectorName = \"ContainerRef\"\n\n constructor(public readonly options: ContainerOptions) {\n super(createElement(options))\n\n const providers = options.providers || []\n this.injector = Injector.create({\n providers: [...this.getProviders(), ...providers],\n parent: options.injector,\n name: this.injectorName\n })\n\n this.state.on(\"disposed\", () => {\n delete (this as any).options\n delete (this as any).injector\n })\n }\n\n protected getProviders(): Provider[] {\n return [\n { provide: ChildRef, useValue: this },\n { provide: ContainerRef, useValue: this }\n ]\n }\n}\n\nfunction createElement(options: ContainerOptions): HTMLDivElement {\n const div = document.createElement(\"div\")\n div.style.position = \"absolute\"\n div.style.top = \"0\"\n div.style.left = \"0\"\n div.style.width = \"max-content\"\n\n if (options.classes) {\n div.classList.add(...options.classes)\n }\n\n return div\n}\n","import { Injector } from \"@angular/core\"\n\nimport { Subscription } from \"rxjs\"\n\nimport { CoverService } from \"@ngutil/graphics\"\nimport { CoverOptions, CropCoverOptions } from \"@ngutil/graphics\"\n\nimport { ChildRef } from \"./child-ref\"\n\nexport interface BasicBackdropOptions {\n under: ChildRef\n color: CoverOptions[\"color\"]\n}\n\nexport interface SolidBackdropOptions extends BasicBackdropOptions {\n type: \"solid\"\n}\n\nexport interface CropBackdropOptions extends BasicBackdropOptions {\n type: \"crop\"\n crop: CropCoverOptions[\"crop\"]\n}\n\nexport type BackdropOptions = SolidBackdropOptions | CropBackdropOptions\n\nexport class BackdropRef extends ChildRef {\n static from(cover: CoverService, injector: Injector, options: BackdropOptions): BackdropRef {\n const ref = new BackdropRef(document.createElement(\"div\"), cover, injector, options)\n // TODO: kérdéses\n // options.under.state.control(ref.state)\n return ref\n }\n\n readonly #coverSub?: Subscription\n readonly under: ChildRef\n readonly group?: string\n\n set visible(visible: boolean) {\n if (this.#visible !== visible) {\n this.#visible = visible\n this.nativeElement.style.visibility = visible ? \"visible\" : \"hidden\"\n }\n }\n\n get visible(): boolean {\n return this.#visible\n }\n #visible: boolean = true\n\n constructor(\n nativeElement: HTMLElement,\n readonly coverSvc: CoverService,\n readonly injector: Injector,\n readonly options: BackdropOptions\n ) {\n super(nativeElement)\n nativeElement.style.position = \"absolute\"\n nativeElement.style.top =\n nativeElement.style.right =\n nativeElement.style.bottom =\n nativeElement.style.left =\n \"0px\"\n\n this.under = options.under\n\n if (options.type === \"solid\") {\n this.#coverSub = this.coverSvc.solid({ container: nativeElement, color: options.color }).subscribe()\n this.group = `${options.color === \"transparent\" ? \"transparent\" : \"solid\"}`\n } else if (options.type === \"crop\") {\n this.#coverSub = this.coverSvc\n .crop({ container: nativeElement, color: options.color, crop: options.crop })\n .subscribe()\n }\n }\n\n show() {\n return this.state.run([\"showing\", \"shown\"])\n }\n\n protected override destroy(): void {\n this.#coverSub?.unsubscribe()\n super.destroy()\n }\n}\n","import { ComponentPortal, ComponentType, DomPortalOutlet, PortalOutlet, TemplatePortal } from \"@angular/cdk/portal\"\nimport { ComponentFactoryResolver, Provider, TemplateRef, ViewContainerRef } from \"@angular/core\"\n\nimport { ContainerOptions, ContainerRef } from \"./container-ref\"\n\nexport interface PortalOptions extends ContainerOptions {}\n\nexport abstract class PortalRef extends ContainerRef {\n protected override injectorName = \"PortalRef\"\n protected outlet: PortalOutlet\n\n constructor(options: PortalOptions) {\n super(options)\n\n this.outlet = new DomPortalOutlet(this.nativeElement, undefined, undefined, this.injector)\n this.state.on(\"disposed\", () => {\n this.outlet.dispose()\n delete (this as any).outlet\n })\n }\n\n protected override getProviders(): Provider[] {\n return [...super.getProviders(), { provide: PortalRef, useValue: this }]\n }\n}\n\nexport interface ComponentPortalOptions<T = any> extends PortalOptions {\n viewContainerRef?: ViewContainerRef\n}\n\nexport class ComponentPortalRef<T = any> extends PortalRef {\n protected override injectorName = \"ComponentPortalRef\"\n protected readonly portal: ComponentPortal<T>\n\n constructor(\n public readonly component: ComponentType<T>,\n options: ComponentPortalOptions<T>\n ) {\n super(options)\n\n const resolver = this.injector.get(ComponentFactoryResolver)\n const vcr = this.injector.get(ViewContainerRef)\n\n this.portal = new ComponentPortal(component, options.viewContainerRef || vcr, this.injector, resolver)\n this.outlet.attach(this.portal)\n\n this.state.on(\"disposed\", () => {\n this.portal.isAttached && this.portal.detach()\n delete (this as any).portal\n })\n }\n\n protected override getProviders(): Provider[] {\n return [...super.getProviders(), { provide: ComponentPortalRef, useValue: this }]\n }\n}\n\nexport interface TemplatePortalOptions<T = any> extends PortalOptions {\n viewContainerRef: ViewContainerRef\n context?: T\n}\n\nexport class TemplatePortalRef<T = any> extends PortalRef {\n protected override injectorName = \"TemplatePortalRef\"\n protected readonly portal: TemplatePortal<T>\n\n constructor(\n public readonly template: TemplateRef<T>,\n options: TemplatePortalOptions<T>\n ) {\n super(options)\n this.portal = new TemplatePortal(template, options.viewContainerRef, options.context)\n this.outlet.attach(this.portal)\n\n this.state.on(\"disposed\", () => {\n this.portal.isAttached && this.portal.detach()\n delete (this as any).portal\n })\n }\n\n protected override getProviders(): Provider[] {\n return [...super.getProviders(), { provide: TemplatePortalRef, useValue: this }]\n }\n}\n","import { ComponentType } from \"@angular/cdk/portal\"\nimport { Directive, ElementRef, inject, Inject, InjectionToken, Injector, Optional, TemplateRef } from \"@angular/core\"\n\nimport { toSorted } from \"@ngutil/common\"\nimport { CoverService } from \"@ngutil/graphics\"\n\nimport { BackdropOptions, BackdropRef } from \"./backdrop-ref\"\nimport { ChildRef } from \"./child-ref\"\nimport { ContainerOptions, ContainerRef } from \"./container-ref\"\nimport { ComponentPortalOptions, ComponentPortalRef, TemplatePortalOptions, TemplatePortalRef } from \"./portal-ref\"\n\nexport const LAYER_ZINDEX_START = new InjectionToken<number>(\"LAYER_ZINDEX_START\")\n\n// TODO: ELEVATION_STEP config with injection\n// TODO: ELEVATION_START config with injection\n\n@Directive()\nexport abstract class LayerService {\n readonly #cover = inject(CoverService)\n readonly #injector = inject(Injector)\n\n readonly root = inject<ElementRef<HTMLElement>>(ElementRef)\n // readonly #el = this.root.nativeElement\n\n readonly #children: Array<ChildRef> = []\n readonly #zIndexStart: number\n // readonly #backdrop: Map<>\n\n constructor(@Inject(LAYER_ZINDEX_START) @Optional() zIndexStart?: number) {\n if (zIndexStart != null) {\n this.#zIndexStart = zIndexStart\n } else {\n this.#zIndexStart = 10000\n }\n }\n\n newComponentPortal<T>(component: ComponentType<T>, options: ComponentPortalOptions<T>): ComponentPortalRef<T> {\n if (!options.injector) {\n options = { ...options, injector: this.#injector }\n }\n return this.append(new ComponentPortalRef(component, options))\n }\n\n newTemplatePortal<T>(tpl: TemplateRef<T>, options: TemplatePortalOptions<T>): TemplatePortalRef<T> {\n if (!options.injector) {\n options = { ...options, injector: this.#injector }\n }\n return this.append(new TemplatePortalRef(tpl, options))\n }\n\n newContainer(options: ContainerOptions): ContainerRef {\n if (!options.injector) {\n options = { ...options, injector: this.#injector }\n }\n return this.append(new ContainerRef(options))\n }\n\n newBackdrop(options: BackdropOptions): BackdropRef {\n return this.append(BackdropRef.from(this.#cover, this.#injector, options))\n }\n\n append<T extends ChildRef>(ref: T): T {\n if (!this.#children.includes(ref)) {\n this.#children.push(ref)\n this.#update()\n this.root.nativeElement.appendChild(ref.nativeElement)\n ref.state.on(\"disposed\", () => this.#remove(ref))\n }\n return ref\n }\n\n #remove(ref: ChildRef) {\n const idx = this.#children.indexOf(ref)\n if (idx > -1) {\n this.#children.splice(idx, 1)\n this.#update()\n }\n }\n\n #update() {\n const children = toSorted(this.#children, sortByBackdrop)\n\n let zIndex = this.#zIndexStart\n for (const child of children) {\n child.zIndex = zIndex\n zIndex += 1\n }\n\n children.sort(sortByZIndexDesc)\n\n let hasBackdrop = false\n for (const child of children) {\n if (child instanceof BackdropRef && child.options.type === \"solid\") {\n child.visible = !hasBackdrop\n hasBackdrop = true\n }\n }\n }\n}\n\n@Directive({\n selector: \"body\",\n standalone: true,\n providers: [{ provide: LayerService, useExisting: RootLayer }]\n})\nexport class RootLayer extends LayerService {}\n\n@Directive({\n standalone: true,\n providers: [{ provide: LayerService, useExisting: IndividualLayer }]\n})\nexport class IndividualLayer extends LayerService {}\n\nfunction sortByBackdrop(a: ChildRef, b: ChildRef) {\n if (a instanceof BackdropRef && a.under === b) {\n return -1\n } else if (b instanceof BackdropRef && b.under === a) {\n return 1\n }\n return 0\n}\n\nfunction sortByZIndexDesc(a: ChildRef, b: ChildRef) {\n return b.zIndex - a.zIndex\n}\n","import { Inject, Injectable, InjectionToken } from \"@angular/core\"\n\nimport { debounceTime, EMPTY, filter, map, merge, Observable, ReplaySubject, shareReplay, takeUntil } from \"rxjs\"\n\nimport { StateChain } from \"@ngutil/common\"\n\nimport { ContainerRef } from \"../layer/container-ref\"\nimport { LayerService } from \"../layer/layer.service\"\nimport { FloatingTrait } from \"./traits/_base\"\n\nexport type Traits = { [key: string]: FloatingTrait }\n\nexport const TRAITS = new InjectionToken<Traits>(\"TRAITS\")\n\nexport interface FloatingChannel {\n floatingRef: FloatingRef\n type: string\n data?: any\n}\n\nexport interface FloatingTraitEvent {\n name: string\n data: object\n}\n\n@Injectable()\nexport class FloatingRef<C extends FloatingChannel = FloatingChannel, T extends HTMLElement = HTMLElement> {\n readonly channel = new ReplaySubject<FloatingChannel>(1)\n\n readonly state = new StateChain({\n init: {},\n showing: {},\n shown: {},\n closing: { cancellable: false, order: \"sequential\" },\n disposing: { cancellable: false },\n disposed: { cancellable: false, order: \"sequential\" },\n cleanup: { cancellable: false, order: \"sequential\" }\n })\n\n readonly #traits: Traits = {}\n readonly traitState$: Observable<FloatingTraitEvent>\n\n readonly #untilCleanup = this.state.current$.pipe(\n filter(state => state === \"cleanup\"),\n shareReplay(1)\n )\n\n readonly #untilDisposed = this.state.current$.pipe(\n filter(state => state === \"cleanup\"),\n shareReplay(1)\n )\n\n constructor(\n readonly layerSvc: LayerService,\n readonly container: ContainerRef,\n @Inject(TRAITS) traits: Traits\n ) {\n container.nativeElement.style.overflow = \"hidden\"\n container.nativeElement.style.visibility = \"hidden\"\n\n this.#traits = traits\n this.traitState$ = this.#traitState().pipe(shareReplay(1))\n\n const sub = this.state.current$.subscribe(state => {\n this.emit({ type: state } as C)\n })\n this.state.on(\n \"init\",\n () =>\n new Observable(dst => {\n // TODO: angular render is stabilized\n this.traitState$.pipe(takeUntil(this.#untilCleanup), debounceTime(5)).subscribe(() => {\n dst.complete()\n })\n })\n )\n this.state.on(\"showing\", () => {\n container.nativeElement.style.visibility = \"visible\"\n })\n this.state.on(\"disposing\", () => {\n container.nativeElement.style.pointerEvents = \"none\"\n })\n this.state.on(\"disposed\", () => {\n sub.unsubscribe()\n })\n this.state.control(container.state)\n }\n\n show() {\n return this.state.run([\"init\", \"showing\", \"shown\"])\n }\n\n hide() {\n return this.state.run([\"disposing\", \"disposed\", \"cleanup\"])\n }\n\n close() {\n return this.state.run([\"closing\", \"disposing\", \"disposed\", \"cleanup\"])\n }\n\n emit(event: Omit<C, \"floatingRef\">) {\n this.channel.next({ ...event, floatingRef: this } as any)\n }\n\n setResult(data: any) {\n this.emit({ type: \"result\", data } as C)\n this.hide().subscribe()\n }\n\n watchTrait<T>(name: string): Observable<T> {\n return this.traitState$.pipe(\n takeUntil(this.#untilDisposed),\n filter(event => event.name === name),\n map(event => event.data as T),\n shareReplay(1)\n )\n }\n\n #traitState(): Observable<FloatingTraitEvent> {\n const src = []\n\n for (const [k, v] of Object.entries(this.#traits)) {\n src.push(\n v.connect(this).pipe(\n takeUntil(this.#untilCleanup),\n map(result => {\n return { name: k, data: result }\n })\n )\n )\n }\n\n if (src.length === 0) {\n return EMPTY\n } else if (src.length === 1) {\n return src[0]\n } else {\n return merge(...src)\n }\n }\n}\n","import { ComponentType } from \"@angular/cdk/portal\"\nimport { inject, Injectable, Provider, TemplateRef } from \"@angular/core\"\n\nimport { Observable, Subscriber } from \"rxjs\"\n\nimport { LayerService } from \"../layer/layer.service\"\nimport { ComponentPortalOptions, TemplatePortalOptions } from \"../layer/portal-ref\"\nimport { FloatingChannel, FloatingRef, TRAITS } from \"./floating-ref\"\nimport { type FloatingTrait } from \"./traits/_base\"\nimport { type FloatingPositionOptions, position } from \"./traits/position\"\n\n// export type FloatingTrait = (...args: any[]) => (traits: object) => Observable<object>\n\nexport type FloatingTraitInput = FloatingTrait | Array<FloatingTraitInput>\n\nexport abstract class FloatingFactory {\n protected readonly traits: { [key: string]: FloatingTrait } = {}\n\n #providers: Provider[] = []\n\n constructor(protected readonly layer: LayerService) {}\n\n trait(...traits: Array<FloatingTraitInput>) {\n for (const trait of traits) {\n if (Array.isArray(trait)) {\n this.trait(...trait)\n } else {\n this.traits[trait.name] = trait\n }\n }\n\n return this\n }\n\n show(): Observable<FloatingChannel> {\n return new Observable((dest: Subscriber<FloatingChannel>) => {\n let disposing = false\n\n const ref = this.create()\n const channelSub = ref.channel.subscribe(event => {\n dest.next(event)\n if (event.type === \"disposing\") {\n disposing = true\n }\n if (event.type === \"cleanup\") {\n dest.complete()\n }\n })\n\n const showSub = ref.show().subscribe()\n\n return () => {\n showSub.unsubscribe()\n channelSub.unsubscribe()\n if (!disposing) {\n ref.hide().subscribe()\n }\n }\n })\n }\n\n subscribe: Observable<FloatingChannel>[\"subscribe\"] = (...args: any[]) => this.show().subscribe(...args)\n\n protected providers(providers?: Provider[]): Provider[] {\n if (!providers) {\n providers = []\n }\n\n providers = [\n ...providers,\n { provide: TRAITS, useValue: this.traits },\n { provide: LayerService, useValue: this.layer },\n FloatingRef,\n ...this.#providers\n ]\n\n return providers\n }\n\n protected abstract create(): FloatingRef<FloatingChannel>\n\n position(options: FloatingPositionOptions) {\n return this.trait(position(options))\n }\n\n provides(providers: Provider | Provider[]) {\n if (Array.isArray(providers)) {\n this.#providers = [...this.#providers, ...providers]\n } else {\n this.#providers = [...this.#providers, providers]\n }\n return this\n }\n}\n\nexport class FloatingTemplateFactory<T extends object> extends FloatingFactory {\n constructor(\n layer: LayerService,\n public readonly tpl: TemplateRef<T>,\n public readonly options: TemplatePortalOptions<T>\n ) {\n super(layer)\n }\n\n protected override create(): FloatingRef<FloatingChannel> {\n const options: TemplatePortalOptions<T> = { ...this.options }\n options.providers = this.providers(options.providers)\n const container = this.layer.newTemplatePortal(this.tpl, options)\n return container.injector.get(FloatingRef)\n }\n}\n\nexport class FloatingComponentFactory<T extends ComponentType<any>> extends FloatingFactory {\n constructor(\n layer: LayerService,\n public readonly component: T,\n public readonly options: ComponentPortalOptions<T>\n ) {\n super(layer)\n }\n\n protected override create(): FloatingRef<FloatingChannel> {\n const options: ComponentPortalOptions<T> = { ...this.options }\n options.providers = this.providers(options.providers)\n const container = this.layer.newComponentPortal(this.component, options)\n return container.injector.get(FloatingRef)\n }\n}\n\n/**\n * @example\n * ```typescript\n * class SomeComponent {}\n *\n * class SomeList {\n * readonly floating = inject(FloatingService)\n *\n * showComponent() {\n * this.floating.from(SomeComponent).traits(position(), backdrop()).subscribe()\n * }\n * ```\n */\n@Injectable()\nexport class FloatingService {\n readonly #layer = inject(LayerService)\n // readonly parent = inject(FloatingRef, { skipSelf: true, optional: true })\n\n from<T extends ComponentType<any>>(component: T, opts?: ComponentPortalOptions<T>): FloatingComponentFactory<T>\n\n from<T extends object>(tpl: TemplateRef<T>, opts?: TemplatePortalOptions<T>): FloatingTemplateFactory<T>\n\n from<T>(value: ComponentType<T> | TemplateRef<T>, opts: any): FloatingFactory {\n if (value instanceof TemplateRef) {\n return new FloatingTemplateFactory(this.#layer, value as any, opts)\n } else {\n return new FloatingComponentFactory(this.#layer, value as any, opts)\n }\n }\n}\n","import { NgModule } from \"@angular/core\"\n\nimport { FloatingService } from \"./floating/floating.service\"\nimport { RootLayer } from \"./layer/layer.service\"\n\n@NgModule({\n providers: [FloatingService],\n imports: [RootLayer],\n exports: [RootLayer]\n})\nexport class NuFloating {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["style"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { FloatingChannel, FloatingRef } from "./floating-ref";
|
|
|
7
7
|
import { type FloatingTrait } from "./traits/_base";
|
|
8
8
|
import { type FloatingPositionOptions } from "./traits/position";
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
|
+
export type FloatingTraitInput = FloatingTrait | Array<FloatingTraitInput>;
|
|
10
11
|
export declare abstract class FloatingFactory {
|
|
11
12
|
#private;
|
|
12
13
|
protected readonly layer: LayerService;
|
|
@@ -14,7 +15,7 @@ export declare abstract class FloatingFactory {
|
|
|
14
15
|
[key: string]: FloatingTrait;
|
|
15
16
|
};
|
|
16
17
|
constructor(layer: LayerService);
|
|
17
|
-
trait(...traits: Array<
|
|
18
|
+
trait(...traits: Array<FloatingTraitInput>): this;
|
|
18
19
|
show(): Observable<FloatingChannel>;
|
|
19
20
|
subscribe: Observable<FloatingChannel>["subscribe"];
|
|
20
21
|
protected providers(providers?: Provider[]): Provider[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export interface ModalOptions {
|
|
2
2
|
closeOnBackdropClick?: boolean;
|
|
3
3
|
}
|
|
4
|
-
export declare function modal(options?: ModalOptions): (import("./animation").AnimationTrait | import("./position").PositionTrait | import("./backdrop").BackdropTrait | import("./focus").FocusTrait | import("./keystroke").KeystrokeTrait)[];
|
|
4
|
+
export declare function modal(options?: ModalOptions): (import("./animation").AnimationTrait | (import("@ngutil/floating").DimensionConstraintTrait | import("./position").PositionTrait)[] | import("./backdrop").BackdropTrait | import("./focus").FocusTrait | import("./keystroke").KeystrokeTrait)[];
|
|
@@ -47,7 +47,7 @@ export declare class PositionTrait implements FloatingTrait<FloatingPosition> {
|
|
|
47
47
|
constructor(options: FloatingPositionOptions);
|
|
48
48
|
connect(floatingRef: FloatingRef<any>): Observable<FloatingPosition>;
|
|
49
49
|
}
|
|
50
|
-
export declare function position(options: FloatingPositionOptions): PositionTrait;
|
|
50
|
+
export declare function position(options: FloatingPositionOptions): (import("./dim-contraint").DimensionConstraintTrait | PositionTrait)[];
|
|
51
51
|
export declare class FloatingPosition {
|
|
52
52
|
readonly options: FloatingPositionOptionsNormalized;
|
|
53
53
|
readonly floating: Dimension;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngutil/floating",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.36",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"tslib": "^2.6.2"
|
|
6
6
|
},
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"@angular/cdk": "^17.3.6",
|
|
9
9
|
"@angular/common": "^17.3.6",
|
|
10
10
|
"@angular/core": "^17.3.6",
|
|
11
|
-
"@ngutil/
|
|
12
|
-
"@ngutil/
|
|
13
|
-
"@ngutil/style": "0.0.
|
|
11
|
+
"@ngutil/common": "0.0.36",
|
|
12
|
+
"@ngutil/aria": "0.0.36",
|
|
13
|
+
"@ngutil/style": "0.0.36"
|
|
14
14
|
},
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public",
|