@ngutil/floating 0.0.60 → 0.0.61
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/traits/position.mjs +1 -1
- package/esm2022/layer/layer.service.mjs +15 -14
- package/fesm2022/ngutil-floating.mjs +14 -13
- package/fesm2022/ngutil-floating.mjs.map +1 -1
- package/floating/traits/position.d.ts +1 -1
- package/layer/layer.service.d.ts +3 -3
- package/package.json +4 -4
|
@@ -85,4 +85,4 @@ export class FloatingPosition {
|
|
|
85
85
|
Object.assign(floatingEl.style, style);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL3Bvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQWMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBR3ZFLE9BQU8sRUFBNkIsZ0JBQWdCLEVBQVEsV0FBVyxFQUFjLE1BQU0sZUFBZSxDQUFBO0FBSzFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDckQsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQWdCbEUsTUFBTSxPQUFPLGlCQUFrQyxTQUFRLFVBQWE7Q0FBRztBQWdCdkUsTUFBTSxPQUFPLG9CQUFzRSxTQUFRLFVBQWE7Q0FBRztBQW9CM0csTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFBWSxPQUFnQztRQUpuQyxTQUFJLEdBQUcsVUFBVSxDQUFBO1FBS3RCLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQTtRQUU3QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUE7UUFDMUMsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUE7UUFDekUsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFB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LEVBQUUsQ0FBQyxDQUFBO0lBQzdFLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBd0I7UUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hCLE9BQU07UUFDVixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUE7UUFDdEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUE7UUFDN0MsTUFBTSxLQUFLLEdBQWtDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFBO1FBRWpHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDL0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFBO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFBO1FBQy9DLENBQUM7UUFFRCxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQTtRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQTtRQUM3QyxDQUFDO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzFDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YnNjcmliZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgRWxlbWVudElucHV0IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcbmltcG9ydCB7IEFsaWdubWVudElucHV0LCBEaW1lbnNpb24sIERpbWVuc2lvbldhdGNoZXIsIFJlY3QsIFJlY3RXYXRjaGVyLCBTaWRlc0lucHV0IH0gZnJvbSBcIkBuZ3V0aWwvc3R5bGVcIlxuXG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vbGF5ZXIvbGF5ZXIuc2VydmljZVwiXG5pbXBvcnQgeyBGbG9hdGluZ1JlZiB9IGZyb20gXCIuLi9mbG9hdGluZy1yZWZcIlxuaW1wb3J0IHsgRmxvYXRpbmdUcmFpdCB9IGZyb20gXCIuL19iYXNlXCJcbmltcG9ydCB7IG1heEhlaWdodCwgbWF4V2lkdGggfSBmcm9tIFwiLi9kaW0tY29udHJhaW50XCJcbmltcG9ydCB7IENvbXB1dGVkUG9zaXRvbiwgY29tcHV0ZVBvc2l0aW9uIH0gZnJvbSBcIi4vcG9zaXRpb24tY2FsY1wiXG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nVGFyZ2V0RWxlbWVudFJlZiA9IEVsZW1lbnRJbnB1dCB8IFdpbmRvdyB8IFwibGF5ZXJcIiB8IFwidmlld3BvcnRcIlxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nQWxpZ24ge1xuICAgIGFsaWduOiBBbGlnbm1lbnRJbnB1dFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nQW5jaG9yUG9zaXRpb24gZXh0ZW5kcyBGbG9hdGluZ0FsaWduIHtcbiAgICBtYXJnaW4/OiBTaWRlc0lucHV0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdBbmNob3IgZXh0ZW5kcyBGbG9hdGluZ0FuY2hvclBvc2l0aW9uIHtcbiAgICByZWY6IEZsb2F0aW5nVGFyZ2V0RWxlbWVudFJlZlxufVxuXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdBbmNob3JSZWY8VCBleHRlbmRzIE5vZGU+IGV4dGVuZHMgRWxlbWVudFJlZjxUPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nQ29udGVudFBvc2l0aW9uIGV4dGVuZHMgRmxvYXRpbmdBbGlnbiB7XG4gICAgbWFyZ2luPzogU2lkZXNJbnB1dFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nQ29udGVudCBleHRlbmRzIEZsb2F0aW5nQ29udGVudFBvc2l0aW9uIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdQbGFjZW1lbnRQb3NpdGlvbiB7XG4gICAgcGFkZGluZz86IFNpZGVzSW5wdXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ1BsYWNlbWVudCBleHRlbmRzIEZsb2F0aW5nUGxhY2VtZW50UG9zaXRpb24ge1xuICAgIHJlZjogRmxvYXRpbmdUYXJnZXRFbGVtZW50UmVmXG59XG5cbmV4cG9ydCBjbGFzcyBGbG9hdGluZ1BsYWNlbWVudFJlZjxUIGV4dGVuZHMgTGF5ZXJTZXJ2aWNlW1wicm9vdFwiXVtcIm5hdGl2ZUVsZW1lbnRcIl0+IGV4dGVuZHMgRWxlbWVudFJlZjxUPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nUG9zaXRpb25PcHRpb25zIHtcbiAgICBhbmNob3I/OiBGbG9hdGluZ0FuY2hvclxuICAgIGNvbnRlbnQ/OiBGbG9hdGluZ0NvbnRlbnRcbiAgICBwbGFjZW1lbnQ/OiBGbG9hdGluZ1BsYWNlbWVudFxufVxuXG5leHBvcnQgdHlwZSBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9uc05vcm1hbGl6ZWQgPSBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9ucyAmIHtcbiAgICBhbmNob3I6IEZsb2F0aW5nQW5jaG9yXG4gICAgY29udGVudDogRmxvYXRpbmdDb250ZW50XG4gICAgcGxhY2VtZW50OiBGbG9hdGluZ1BsYWNlbWVudFxufVxuXG50eXBlIFdhdGNoZXMgPSB7XG4gICAgZmxvYXRpbmc6IE9ic2VydmFibGU8RGltZW5zaW9uPlxuICAgIGFuY2hvcjogT2JzZXJ2YWJsZTxSZWN0PlxuICAgIHBsYWNlbWVudDogT2JzZXJ2YWJsZTxSZWN0PlxufVxuXG5leHBvcnQgY2xhc3MgUG9zaXRpb25UcmFpdCBpbXBsZW1lbnRzIEZsb2F0aW5nVHJhaXQ8RmxvYXRpbmdQb3NpdGlvbj4ge1xuICAgIHJlYWRvbmx5IG5hbWUgPSBcInBvc2l0aW9uXCJcblxuICAgIHJlYWRvbmx5IG9wdGlvbnM6IEZsb2F0aW5nUG9zaXRpb25PcHRpb25zTm9ybWFsaXplZFxuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY2xvbmVkID0geyAuLi5vcHRpb25zIH1cblxuICAgICAgICBpZiAoIWNsb25lZC5wbGFjZW1lbnQpIHtcbiAgICAgICAgICAgIGNsb25lZC5wbGFjZW1lbnQgPSB7IHJlZjogXCJ2aWV3cG9ydFwiIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2xvbmVkLmFuY2hvcikge1xuICAgICAgICAgICAgY2xvbmVkLmFuY2hvciA9IHsgcmVmOiBjbG9uZWQucGxhY2VtZW50LnJlZiwgYWxpZ246IFwiY2VudGVyIG1pZGRsZVwiIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2xvbmVkLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIGNsb25lZC5jb250ZW50ID0geyBhbGlnbjogXCJjZW50ZXIgbWlkZGxlXCIgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcHRpb25zID0gY2xvbmVkIGFzIGFueVxuICAgIH1cblxuICAgIGNvbm5lY3QoZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmPGFueT4pOiBPYnNlcnZhYmxlPEZsb2F0aW5nUG9zaXRpb24+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkZXN0OiBTdWJzY3JpYmVyPEZsb2F0aW5nUG9zaXRpb24+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbmplY3RvciA9IGZsb2F0aW5nUmVmLmNvbnRhaW5lci5pbmplY3RvclxuICAgICAgICAgICAgY29uc3QgZGltV2F0Y2hlciA9IGluamVjdG9yLmdldChEaW1lbnNpb25XYXRjaGVyKVxuICAgICAgICAgICAgY29uc3QgcmVjdFdhdGNoZXIgPSBpbmplY3Rvci5nZXQoUmVjdFdhdGNoZXIpXG5cbiAgICAgICAgICAgIGNvbnN0IHdhdGNoZXM6IFdhdGNoZXMgPSB7XG4gICAgICAgICAgICAgICAgZmxvYXRpbmc6IGRpbVdhdGNoZXIud2F0Y2goZmxvYXRpbmdSZWYuY29udGFpbmVyLCBcImJvcmRlci1ib3hcIiksXG4gICAgICAgICAgICAgICAgYW5jaG9yOiByZWZXYXRjaGVyKHJlY3RXYXRjaGVyLCB0aGlzLm9wdGlvbnMuYW5jaG9yLnJlZiwgZmxvYXRpbmdSZWYpLFxuICAgICAgICAgICAgICAgIHBsYWNlbWVudDogcmVmV2F0Y2hlcihyZWN0V2F0Y2hlciwgdGhpcy5vcHRpb25zLnBsYWNlbWVudC5yZWYsIGZsb2F0aW5nUmVmKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdCh3YXRjaGVzKS5zdWJzY3JpYmUoKHsgZmxvYXRpbmcsIGFuY2hvciwgcGxhY2VtZW50IH0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBuZXcgRmxvYXRpbmdQb3NpdGlvbih0aGlzLm9wdGlvbnMsIGZsb2F0aW5nLCBhbmNob3IsIHBsYWNlbWVudClcbiAgICAgICAgICAgICAgICByZXMuYXBwbHkoZmxvYXRpbmdSZWYpXG4gICAgICAgICAgICAgICAgZGVzdC5uZXh0KHJlcylcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pLnBpcGUodGFrZVVudGlsKGZsb2F0aW5nUmVmLnN0YXRlLm9uRXhlY3V0ZShcImRpc3Bvc2luZ1wiKSkpXG4gICAgfVxufVxuXG5mdW5jdGlvbiByZWZXYXRjaGVyKHJlY3RXYXRjaGVyOiBSZWN0V2F0Y2hlciwgcmVmOiBGbG9hdGluZ1RhcmdldEVsZW1lbnRSZWYsIGZsb2F0aW5nUmVmOiBGbG9hdGluZ1JlZjxhbnk+KSB7XG4gICAgaWYgKHJlZiA9PT0gXCJsYXllclwiKSB7XG4gICAgICAgIHJldHVybiByZWN0V2F0Y2hlci53YXRjaChmbG9hdGluZ1JlZi5sYXllclN2Yy5yb290LCBcImJvcmRlci1ib3hcIilcbiAgICB9IGVsc2UgaWYgKHJlZiA9PT0gXCJ2aWV3cG9ydFwiIHx8IHJlZiBpbnN0YW5jZW9mIFdpbmRvdykge1xuICAgICAgICByZXR1cm4gcmVjdFdhdGNoZXIud2F0Y2god2luZG93LCBcImJvcmRlci1ib3hcIilcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVjdFdhdGNoZXIud2F0Y2gocmVmLCBcImJvcmRlci1ib3hcIilcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3NpdGlvbihvcHRpb25zOiBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9ucykge1xuICAgIHJldHVybiBbbmV3IFBvc2l0aW9uVHJhaXQob3B0aW9ucyksIG1heFdpZHRoKE5hTiksIG1heEhlaWdodChOYU4pXVxufVxuXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdQb3NpdGlvbiB7XG4gICAgcmVhZG9ubHkgY29tcHV0ZWQ/OiBDb21wdXRlZFBvc2l0b25cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcmVhZG9ubHkgb3B0aW9uczogRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnNOb3JtYWxpemVkLFxuICAgICAgICByZWFkb25seSBmbG9hdGluZzogRGltZW5zaW9uLFxuICAgICAgICByZWFkb25seSBhbmNob3I6IFJlY3QsXG4gICAgICAgIHJlYWRvbmx5IHBsYWNlbWVudDogUmVjdFxuICAgICkge1xuICAgICAgICAvLyBjb25zdCBmcmVjdDogUmVjdCA9IHsgeDogMCwgeTogMCwgLi4uZmxvYXRpbmcgfVxuICAgICAgICB0aGlzLmNvbXB1dGVkID0gY29tcHV0ZVBvc2l0aW9uKHsgZmxvYXRpbmcsIGFuY2hvciwgcGxhY2VtZW50LCBvcHRpb25zIH0pXG4gICAgfVxuXG4gICAgYXBwbHkoZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXB1dGVkID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmxvYXRpbmdFbCA9IGZsb2F0aW5nUmVmLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29udGVudCA9IHRoaXMuY29tcHV0ZWQuY29udGVudFxuICAgICAgICBjb25zdCBzdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4gPSB7IHRvcDogbnVsbCwgcmlnaHQ6IG51bGwsIGJvdHRvbTogbnVsbCwgbGVmdDogbnVsbCB9XG5cbiAgICAgICAgaWYgKGNvbXB1dGVkQ29udGVudC5hbGlnbi5ob3Jpem9udGFsID09PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgICAgIHN0eWxlW1wicmlnaHRcIl0gPSBgJHtjb21wdXRlZENvbnRlbnQucmlnaHR9cHhgXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdHlsZVtcImxlZnRcIl0gPSBgJHtjb21wdXRlZENvbnRlbnQubGVmdH1weGBcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb21wdXRlZENvbnRlbnQuYWxpZ24udmVydGljYWwgPT09IFwiYm90dG9tXCIpIHtcbiAgICAgICAgICAgIHN0eWxlW1wiYm90dG9tXCJdID0gYCR7Y29tcHV0ZWRDb250ZW50LmJvdHRvbX1weGBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlW1widG9wXCJdID0gYCR7Y29tcHV0ZWRDb250ZW50LnRvcH1weGBcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5hc3NpZ24oZmxvYXRpbmdFbC5zdHlsZSwgc3R5bGUpXG4gICAgfVxufVxuIl19
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL3Bvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQWMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBR3ZFLE9BQU8sRUFBNkIsZ0JBQWdCLEVBQVEsV0FBVyxFQUFjLE1BQU0sZUFBZSxDQUFBO0FBSzFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDckQsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQWdCbEUsTUFBTSxPQUFPLGlCQUFrQyxTQUFRLFVBQWE7Q0FBRztBQWdCdkUsTUFBTSxPQUFPLG9CQUFxRCxTQUFRLFVBQWE7Q0FBRztBQW9CMUYsTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFBWSxPQUFnQztRQUpuQyxTQUFJLEdBQUcsVUFBVSxDQUFBO1FBS3RCLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQTtRQUU3QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUE7UUFDMUMsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUE7UUFDekUsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFB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LEVBQUUsQ0FBQyxDQUFBO0lBQzdFLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBd0I7UUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hCLE9BQU07UUFDVixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUE7UUFDdEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUE7UUFDN0MsTUFBTSxLQUFLLEdBQWtDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFBO1FBRWpHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDL0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFBO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFBO1FBQy9DLENBQUM7UUFFRCxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQTtRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQTtRQUM3QyxDQUFDO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzFDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YnNjcmliZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgRWxlbWVudElucHV0IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcbmltcG9ydCB7IEFsaWdubWVudElucHV0LCBEaW1lbnNpb24sIERpbWVuc2lvbldhdGNoZXIsIFJlY3QsIFJlY3RXYXRjaGVyLCBTaWRlc0lucHV0IH0gZnJvbSBcIkBuZ3V0aWwvc3R5bGVcIlxuXG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vbGF5ZXIvbGF5ZXIuc2VydmljZVwiXG5pbXBvcnQgeyBGbG9hdGluZ1JlZiB9IGZyb20gXCIuLi9mbG9hdGluZy1yZWZcIlxuaW1wb3J0IHsgRmxvYXRpbmdUcmFpdCB9IGZyb20gXCIuL19iYXNlXCJcbmltcG9ydCB7IG1heEhlaWdodCwgbWF4V2lkdGggfSBmcm9tIFwiLi9kaW0tY29udHJhaW50XCJcbmltcG9ydCB7IENvbXB1dGVkUG9zaXRvbiwgY29tcHV0ZVBvc2l0aW9uIH0gZnJvbSBcIi4vcG9zaXRpb24tY2FsY1wiXG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nVGFyZ2V0RWxlbWVudFJlZiA9IEVsZW1lbnRJbnB1dCB8IFdpbmRvdyB8IFwibGF5ZXJcIiB8IFwidmlld3BvcnRcIlxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nQWxpZ24ge1xuICAgIGFsaWduOiBBbGlnbm1lbnRJbnB1dFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nQW5jaG9yUG9zaXRpb24gZXh0ZW5kcyBGbG9hdGluZ0FsaWduIHtcbiAgICBtYXJnaW4/OiBTaWRlc0lucHV0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdBbmNob3IgZXh0ZW5kcyBGbG9hdGluZ0FuY2hvclBvc2l0aW9uIHtcbiAgICByZWY6IEZsb2F0aW5nVGFyZ2V0RWxlbWVudFJlZlxufVxuXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdBbmNob3JSZWY8VCBleHRlbmRzIE5vZGU+IGV4dGVuZHMgRWxlbWVudFJlZjxUPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nQ29udGVudFBvc2l0aW9uIGV4dGVuZHMgRmxvYXRpbmdBbGlnbiB7XG4gICAgbWFyZ2luPzogU2lkZXNJbnB1dFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nQ29udGVudCBleHRlbmRzIEZsb2F0aW5nQ29udGVudFBvc2l0aW9uIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdQbGFjZW1lbnRQb3NpdGlvbiB7XG4gICAgcGFkZGluZz86IFNpZGVzSW5wdXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ1BsYWNlbWVudCBleHRlbmRzIEZsb2F0aW5nUGxhY2VtZW50UG9zaXRpb24ge1xuICAgIHJlZjogRmxvYXRpbmdUYXJnZXRFbGVtZW50UmVmXG59XG5cbmV4cG9ydCBjbGFzcyBGbG9hdGluZ1BsYWNlbWVudFJlZjxUIGV4dGVuZHMgTGF5ZXJTZXJ2aWNlW1wicm9vdFwiXT4gZXh0ZW5kcyBFbGVtZW50UmVmPFQ+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnMge1xuICAgIGFuY2hvcj86IEZsb2F0aW5nQW5jaG9yXG4gICAgY29udGVudD86IEZsb2F0aW5nQ29udGVudFxuICAgIHBsYWNlbWVudD86IEZsb2F0aW5nUGxhY2VtZW50XG59XG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nUG9zaXRpb25PcHRpb25zTm9ybWFsaXplZCA9IEZsb2F0aW5nUG9zaXRpb25PcHRpb25zICYge1xuICAgIGFuY2hvcjogRmxvYXRpbmdBbmNob3JcbiAgICBjb250ZW50OiBGbG9hdGluZ0NvbnRlbnRcbiAgICBwbGFjZW1lbnQ6IEZsb2F0aW5nUGxhY2VtZW50XG59XG5cbnR5cGUgV2F0Y2hlcyA9IHtcbiAgICBmbG9hdGluZzogT2JzZXJ2YWJsZTxEaW1lbnNpb24+XG4gICAgYW5jaG9yOiBPYnNlcnZhYmxlPFJlY3Q+XG4gICAgcGxhY2VtZW50OiBPYnNlcnZhYmxlPFJlY3Q+XG59XG5cbmV4cG9ydCBjbGFzcyBQb3NpdGlvblRyYWl0IGltcGxlbWVudHMgRmxvYXRpbmdUcmFpdDxGbG9hdGluZ1Bvc2l0aW9uPiB7XG4gICAgcmVhZG9ubHkgbmFtZSA9IFwicG9zaXRpb25cIlxuXG4gICAgcmVhZG9ubHkgb3B0aW9uczogRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnNOb3JtYWxpemVkXG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9ucykge1xuICAgICAgICBjb25zdCBjbG9uZWQgPSB7IC4uLm9wdGlvbnMgfVxuXG4gICAgICAgIGlmICghY2xvbmVkLnBsYWNlbWVudCkge1xuICAgICAgICAgICAgY2xvbmVkLnBsYWNlbWVudCA9IHsgcmVmOiBcInZpZXdwb3J0XCIgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjbG9uZWQuYW5jaG9yKSB7XG4gICAgICAgICAgICBjbG9uZWQuYW5jaG9yID0geyByZWY6IGNsb25lZC5wbGFjZW1lbnQucmVmLCBhbGlnbjogXCJjZW50ZXIgbWlkZGxlXCIgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjbG9uZWQuY29udGVudCkge1xuICAgICAgICAgICAgY2xvbmVkLmNvbnRlbnQgPSB7IGFsaWduOiBcImNlbnRlciBtaWRkbGVcIiB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBjbG9uZWQgYXMgYW55XG4gICAgfVxuXG4gICAgY29ubmVjdChmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWY8YW55Pik6IE9ic2VydmFibGU8RmxvYXRpbmdQb3NpdGlvbj4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGRlc3Q6IFN1YnNjcmliZXI8RmxvYXRpbmdQb3NpdGlvbj4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluamVjdG9yID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLmluamVjdG9yXG4gICAgICAgICAgICBjb25zdCBkaW1XYXRjaGVyID0gaW5qZWN0b3IuZ2V0KERpbWVuc2lvbldhdGNoZXIpXG4gICAgICAgICAgICBjb25zdCByZWN0V2F0Y2hlciA9IGluamVjdG9yLmdldChSZWN0V2F0Y2hlcilcblxuICAgICAgICAgICAgY29uc3Qgd2F0Y2hlczogV2F0Y2hlcyA9IHtcbiAgICAgICAgICAgICAgICBmbG9hdGluZzogZGltV2F0Y2hlci53YXRjaChmbG9hdGluZ1JlZi5jb250YWluZXIsIFwiYm9yZGVyLWJveFwiKSxcbiAgICAgICAgICAgICAgICBhbmNob3I6IHJlZldhdGNoZXIocmVjdFdhdGNoZXIsIHRoaXMub3B0aW9ucy5hbmNob3IucmVmLCBmbG9hdGluZ1JlZiksXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50OiByZWZXYXRjaGVyKHJlY3RXYXRjaGVyLCB0aGlzLm9wdGlvbnMucGxhY2VtZW50LnJlZiwgZmxvYXRpbmdSZWYpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHdhdGNoZXMpLnN1YnNjcmliZSgoeyBmbG9hdGluZywgYW5jaG9yLCBwbGFjZW1lbnQgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IG5ldyBGbG9hdGluZ1Bvc2l0aW9uKHRoaXMub3B0aW9ucywgZmxvYXRpbmcsIGFuY2hvciwgcGxhY2VtZW50KVxuICAgICAgICAgICAgICAgIHJlcy5hcHBseShmbG9hdGluZ1JlZilcbiAgICAgICAgICAgICAgICBkZXN0Lm5leHQocmVzKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSkucGlwZSh0YWtlVW50aWwoZmxvYXRpbmdSZWYuc3RhdGUub25FeGVjdXRlKFwiZGlzcG9zaW5nXCIpKSlcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHJlZldhdGNoZXIocmVjdFdhdGNoZXI6IFJlY3RXYXRjaGVyLCByZWY6IEZsb2F0aW5nVGFyZ2V0RWxlbWVudFJlZiwgZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmPGFueT4pIHtcbiAgICBpZiAocmVmID09PSBcImxheWVyXCIpIHtcbiAgICAgICAgcmV0dXJuIHJlY3RXYXRjaGVyLndhdGNoKGZsb2F0aW5nUmVmLmxheWVyU3ZjLnJvb3QsIFwiYm9yZGVyLWJveFwiKVxuICAgIH0gZWxzZSBpZiAocmVmID09PSBcInZpZXdwb3J0XCIgfHwgcmVmIGluc3RhbmNlb2YgV2luZG93KSB7XG4gICAgICAgIHJldHVybiByZWN0V2F0Y2hlci53YXRjaCh3aW5kb3csIFwiYm9yZGVyLWJveFwiKVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZWN0V2F0Y2hlci53YXRjaChyZWYsIFwiYm9yZGVyLWJveFwiKVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uKG9wdGlvbnM6IEZsb2F0aW5nUG9zaXRpb25PcHRpb25zKSB7XG4gICAgcmV0dXJuIFtuZXcgUG9zaXRpb25UcmFpdChvcHRpb25zKSwgbWF4V2lkdGgoTmFOKSwgbWF4SGVpZ2h0KE5hTildXG59XG5cbmV4cG9ydCBjbGFzcyBGbG9hdGluZ1Bvc2l0aW9uIHtcbiAgICByZWFkb25seSBjb21wdXRlZD86IENvbXB1dGVkUG9zaXRvblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9uc05vcm1hbGl6ZWQsXG4gICAgICAgIHJlYWRvbmx5IGZsb2F0aW5nOiBEaW1lbnNpb24sXG4gICAgICAgIHJlYWRvbmx5IGFuY2hvcjogUmVjdCxcbiAgICAgICAgcmVhZG9ubHkgcGxhY2VtZW50OiBSZWN0XG4gICAgKSB7XG4gICAgICAgIC8vIGNvbnN0IGZyZWN0OiBSZWN0ID0geyB4OiAwLCB5OiAwLCAuLi5mbG9hdGluZyB9XG4gICAgICAgIHRoaXMuY29tcHV0ZWQgPSBjb21wdXRlUG9zaXRpb24oeyBmbG9hdGluZywgYW5jaG9yLCBwbGFjZW1lbnQsIG9wdGlvbnMgfSlcbiAgICB9XG5cbiAgICBhcHBseShmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWYpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcHV0ZWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmbG9hdGluZ0VsID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgY29uc3QgY29tcHV0ZWRDb250ZW50ID0gdGhpcy5jb21wdXRlZC5jb250ZW50XG4gICAgICAgIGNvbnN0IHN0eWxlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPiA9IHsgdG9wOiBudWxsLCByaWdodDogbnVsbCwgYm90dG9tOiBudWxsLCBsZWZ0OiBudWxsIH1cblxuICAgICAgICBpZiAoY29tcHV0ZWRDb250ZW50LmFsaWduLmhvcml6b250YWwgPT09IFwicmlnaHRcIikge1xuICAgICAgICAgICAgc3R5bGVbXCJyaWdodFwiXSA9IGAke2NvbXB1dGVkQ29udGVudC5yaWdodH1weGBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlW1wibGVmdFwiXSA9IGAke2NvbXB1dGVkQ29udGVudC5sZWZ0fXB4YFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbXB1dGVkQ29udGVudC5hbGlnbi52ZXJ0aWNhbCA9PT0gXCJib3R0b21cIikge1xuICAgICAgICAgICAgc3R5bGVbXCJib3R0b21cIl0gPSBgJHtjb21wdXRlZENvbnRlbnQuYm90dG9tfXB4YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3R5bGVbXCJ0b3BcIl0gPSBgJHtjb21wdXRlZENvbnRlbnQudG9wfXB4YFxuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmFzc2lnbihmbG9hdGluZ0VsLnN0eWxlLCBzdHlsZSlcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DOCUMENT } from "@angular/common";
|
|
2
|
+
import { Directive, ElementRef, inject, Inject, Injectable, InjectionToken, Injector, Optional } from "@angular/core";
|
|
2
3
|
import { toSorted } from "@ngutil/common";
|
|
3
4
|
import { CoverService } from "@ngutil/graphics";
|
|
4
5
|
import { BackdropRef } from "./backdrop-ref";
|
|
@@ -10,18 +11,18 @@ export const LAYER_ZINDEX_START = new InjectionToken("LAYER_ZINDEX_START");
|
|
|
10
11
|
// TODO: ELEVATION_STEP config with injection
|
|
11
12
|
// TODO: ELEVATION_START config with injection
|
|
12
13
|
export class LayerService {
|
|
13
|
-
#cover;
|
|
14
|
-
#injector;
|
|
14
|
+
#cover = inject(CoverService);
|
|
15
|
+
#injector = inject(Injector);
|
|
16
|
+
#document = inject(DOCUMENT);
|
|
17
|
+
#el = inject(ElementRef, { optional: true, self: true });
|
|
18
|
+
get root() {
|
|
19
|
+
return (this.#el && this.#el.nativeElement) || this.#document.body;
|
|
20
|
+
}
|
|
15
21
|
// readonly #el = this.root.nativeElement
|
|
16
|
-
#children;
|
|
22
|
+
#children = [];
|
|
17
23
|
#zIndexStart;
|
|
18
24
|
// readonly #backdrop: Map<>
|
|
19
25
|
constructor(zIndexStart) {
|
|
20
|
-
this.#cover = inject(CoverService);
|
|
21
|
-
this.#injector = inject(Injector);
|
|
22
|
-
this.root = inject(ElementRef);
|
|
23
|
-
// readonly #el = this.root.nativeElement
|
|
24
|
-
this.#children = [];
|
|
25
26
|
if (zIndexStart != null) {
|
|
26
27
|
this.#zIndexStart = zIndexStart;
|
|
27
28
|
}
|
|
@@ -55,7 +56,7 @@ export class LayerService {
|
|
|
55
56
|
if (!this.#children.includes(ref)) {
|
|
56
57
|
this.#children.push(ref);
|
|
57
58
|
this.#update();
|
|
58
|
-
this.root.
|
|
59
|
+
this.root.appendChild(ref.nativeElement);
|
|
59
60
|
ref.state.on("disposed", () => this.#remove(ref));
|
|
60
61
|
}
|
|
61
62
|
return ref;
|
|
@@ -83,11 +84,11 @@ export class LayerService {
|
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayerService, deps: [{ token: LAYER_ZINDEX_START, optional: true }], target: i0.ɵɵFactoryTarget.
|
|
87
|
-
static { this.ɵ
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayerService, deps: [{ token: LAYER_ZINDEX_START, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
88
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayerService }); }
|
|
88
89
|
}
|
|
89
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayerService, decorators: [{
|
|
90
|
-
type:
|
|
91
|
+
type: Injectable
|
|
91
92
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
92
93
|
type: Inject,
|
|
93
94
|
args: [LAYER_ZINDEX_START]
|
|
@@ -149,4 +150,4 @@ function getAlwaysOnTop(child) {
|
|
|
149
150
|
return child.alwaysOnTop || AlwaysOnTop.None;
|
|
150
151
|
}
|
|
151
152
|
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9sYXllci9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUE7QUFFdEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUUvQyxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQVksTUFBTSxhQUFhLENBQUE7QUFDbkQsT0FBTyxFQUFvQixZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRSxPQUFPLEVBQTBCLGtCQUFrQixFQUF5QixpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTs7QUFFbkgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQTtBQUVsRiw2Q0FBNkM7QUFDN0MsOENBQThDO0FBRzlDLE1BQU0sT0FBZ0IsWUFBWTtJQUNyQixNQUFNLENBQXVCO0lBQzdCLFNBQVMsQ0FBbUI7SUFHckMseUNBQXlDO0lBRWhDLFNBQVMsQ0FBc0I7SUFDL0IsWUFBWSxDQUFRO0lBQzdCLDRCQUE0QjtJQUU1QixZQUFvRCxXQUFvQjtRQVYvRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzdCLGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFNUIsU0FBSSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUE7UUFDM0QseUNBQXlDO1FBRWhDLGNBQVMsR0FB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QUM7UUFDL0IsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFBO0lBQ3RELENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxLQUFLLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUE7SUFDaEQsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIlxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBPcHRpb25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IHRvU29ydGVkIH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcbmltcG9ydCB7IENvdmVyU2VydmljZSB9IGZyb20gXCJAbmd1dGlsL2dyYXBoaWNzXCJcblxuaW1wb3J0IHsgQmFja2Ryb3BPcHRpb25zLCBCYWNrZHJvcFJlZiB9IGZyb20gXCIuL2JhY2tkcm9wLXJlZlwiXG5pbXBvcnQgeyBBbHdheXNPblRvcCwgQ2hpbGRSZWYgfSBmcm9tIFwiLi9jaGlsZC1yZWZcIlxuaW1wb3J0IHsgQ29udGFpbmVyT3B0aW9ucywgQ29udGFpbmVyUmVmIH0gZnJvbSBcIi4vY29udGFpbmVyLXJlZlwiXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWxPcHRpb25zLCBDb21wb25lbnRQb3J0YWxSZWYsIFRlbXBsYXRlUG9ydGFsT3B0aW9ucywgVGVtcGxhdGVQb3J0YWxSZWYgfSBmcm9tIFwiLi9wb3J0YWwtcmVmXCJcblxuZXhwb3J0IGNvbnN0IExBWUVSX1pJTkRFWF9TVEFSVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KFwiTEFZRVJfWklOREVYX1NUQVJUXCIpXG5cbi8vIFRPRE86IEVMRVZBVElPTl9TVEVQIGNvbmZpZyB3aXRoIGluamVjdGlvblxuLy8gVE9ETzogRUxFVkFUSU9OX1NUQVJUIGNvbmZpZyB3aXRoIGluamVjdGlvblxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMYXllclNlcnZpY2Uge1xuICAgIHJlYWRvbmx5ICNjb3ZlciA9IGluamVjdChDb3ZlclNlcnZpY2UpXG4gICAgcmVhZG9ubHkgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKVxuXG4gICAgcmVhZG9ubHkgcm9vdCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZilcbiAgICAvLyByZWFkb25seSAjZWwgPSB0aGlzLnJvb3QubmF0aXZlRWxlbWVudFxuXG4gICAgcmVhZG9ubHkgI2NoaWxkcmVuOiBBcnJheTxDaGlsZFJlZj4gPSBbXVxuICAgIHJlYWRvbmx5ICN6SW5kZXhTdGFydDogbnVtYmVyXG4gICAgLy8gcmVhZG9ubHkgI2JhY2tkcm9wOiBNYXA8PlxuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMQVlFUl9aSU5ERVhfU1RBUlQpIEBPcHRpb25hbCgpIHpJbmRleFN0YXJ0PzogbnVtYmVyKSB7XG4gICAgICAgIGlmICh6SW5kZXhTdGFydCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLiN6SW5kZXhTdGFydCA9IHpJbmRleFN0YXJ0XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiN6SW5kZXhTdGFydCA9IDEwMDAwXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdDb21wb25lbnRQb3J0YWw8VD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBvcHRpb25zOiBDb21wb25lbnRQb3J0YWxPcHRpb25zPFQ+KTogQ29tcG9uZW50UG9ydGFsUmVmPFQ+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQ29tcG9uZW50UG9ydGFsUmVmKGNvbXBvbmVudCwgb3B0aW9ucykpXG4gICAgfVxuXG4gICAgbmV3VGVtcGxhdGVQb3J0YWw8VD4odHBsOiBUZW1wbGF0ZVJlZjxUPiwgb3B0aW9uczogVGVtcGxhdGVQb3J0YWxPcHRpb25zPFQ+KTogVGVtcGxhdGVQb3J0YWxSZWY8VD4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuaW5qZWN0b3IpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGluamVjdG9yOiB0aGlzLiNpbmplY3RvciB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZW5kKG5ldyBUZW1wbGF0ZVBvcnRhbFJlZih0cGwsIG9wdGlvbnMpKVxuICAgIH1cblxuICAgIG5ld0NvbnRhaW5lcihvcHRpb25zOiBDb250YWluZXJPcHRpb25zKTogQ29udGFpbmVyUmVmIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQ29udGFpbmVyUmVmKG9wdGlvbnMpKVxuICAgIH1cblxuICAgIG5ld0JhY2tkcm9wKHVuZGVyOiBDaGlsZFJlZiwgb3B0aW9uczogQmFja2Ryb3BPcHRpb25zKTogQmFja2Ryb3BSZWYge1xuICAgICAgICBjb25zdCBjb3ZlclJlZiA9IHRoaXMuI2NvdmVyLmNyZWF0ZSh0aGlzLnJvb3QsIG9wdGlvbnMpXG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQmFja2Ryb3BSZWYoY292ZXJSZWYsIHVuZGVyLCBvcHRpb25zKSlcbiAgICB9XG5cbiAgICBhcHBlbmQ8VCBleHRlbmRzIENoaWxkUmVmPihyZWY6IFQpOiBUIHtcbiAgICAgICAgaWYgKCF0aGlzLiNjaGlsZHJlbi5pbmNsdWRlcyhyZWYpKSB7XG4gICAgICAgICAgICB0aGlzLiNjaGlsZHJlbi5wdXNoKHJlZilcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZSgpXG4gICAgICAgICAgICB0aGlzLnJvb3QubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChyZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIHJlZi5zdGF0ZS5vbihcImRpc3Bvc2VkXCIsICgpID0+IHRoaXMuI3JlbW92ZShyZWYpKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWZcbiAgICB9XG5cbiAgICAjcmVtb3ZlKHJlZjogQ2hpbGRSZWYpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy4jY2hpbGRyZW4uaW5kZXhPZihyZWYpXG4gICAgICAgIGlmIChpZHggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy4jY2hpbGRyZW4uc3BsaWNlKGlkeCwgMSlcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZSgpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjdXBkYXRlKCkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRvU29ydGVkKHRoaXMuI2NoaWxkcmVuLCBzb3J0Q2hpbGRyZW4yKVxuXG4gICAgICAgIGxldCB6SW5kZXggPSB0aGlzLiN6SW5kZXhTdGFydFxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBjaGlsZC56SW5kZXggPSB6SW5kZXhcbiAgICAgICAgICAgIHpJbmRleCArPSAxXG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZHJlbi5zb3J0KHNvcnRCeVpJbmRleERlc2MpXG5cbiAgICAgICAgbGV0IGhhc0JhY2tkcm9wID0gZmFsc2VcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgQmFja2Ryb3BSZWYgJiYgY2hpbGQub3B0aW9ucy5jb2xvciAhPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQudmlzaWJsZSA9ICFoYXNCYWNrZHJvcFxuICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJib2R5XCIsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExheWVyU2VydmljZSwgdXNlRXhpc3Rpbmc6IFJvb3RMYXllciB9XVxufSlcbmV4cG9ydCBjbGFzcyBSb290TGF5ZXIgZXh0ZW5kcyBMYXllclNlcnZpY2Uge31cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExheWVyU2VydmljZSwgdXNlRXhpc3Rpbmc6IEluZGl2aWR1YWxMYXllciB9XVxufSlcbmV4cG9ydCBjbGFzcyBJbmRpdmlkdWFsTGF5ZXIgZXh0ZW5kcyBMYXllclNlcnZpY2Uge31cblxuZnVuY3Rpb24gc29ydENoaWxkcmVuMihhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICBjb25zdCBhbHdheXNPblRvcCA9IHNvcnRCeUFsd2F5c09uVG9wKGEsIGIpXG4gICAgaWYgKGFsd2F5c09uVG9wID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzb3J0QnlCYWNrZHJvcChhLCBiKVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhbHdheXNPblRvcFxuICAgIH1cbn1cblxuZnVuY3Rpb24gc29ydEJ5QmFja2Ryb3AoYTogQ2hpbGRSZWYsIGI6IENoaWxkUmVmKSB7XG4gICAgaWYgKGEgaW5zdGFuY2VvZiBCYWNrZHJvcFJlZiAmJiBhLnVuZGVyID09PSBiKSB7XG4gICAgICAgIHJldHVybiAtMVxuICAgIH0gZWxzZSBpZiAoYiBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGIudW5kZXIgPT09IGEpIHtcbiAgICAgICAgcmV0dXJuIDFcbiAgICB9XG4gICAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gc29ydEJ5WkluZGV4RGVzYyhhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICByZXR1cm4gYi56SW5kZXggLSBhLnpJbmRleFxufVxuXG5mdW5jdGlvbiBzb3J0QnlBbHdheXNPblRvcChhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICByZXR1cm4gZ2V0QWx3YXlzT25Ub3AoYSkgLSBnZXRBbHdheXNPblRvcChiKVxufVxuXG5mdW5jdGlvbiBnZXRBbHdheXNPblRvcChjaGlsZDogQ2hpbGRSZWYpOiBudW1iZXIge1xuICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmKSB7XG4gICAgICAgIHJldHVybiBjaGlsZC51bmRlci5hbHdheXNPblRvcCB8fCBBbHdheXNPblRvcC5Ob25lXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkLmFsd2F5c09uVG9wIHx8IEFsd2F5c09uVG9wLk5vbmVcbiAgICB9XG59XG4iXX0=
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9sYXllci9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMxQyxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUNSLFFBQVEsRUFFWCxNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRS9DLE9BQU8sRUFBbUIsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBWSxNQUFNLGFBQWEsQ0FBQTtBQUNuRCxPQUFPLEVBQW9CLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2hFLE9BQU8sRUFBMEIsa0JBQWtCLEVBQXlCLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFBOztBQUVuSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBUyxvQkFBb0IsQ0FBQyxDQUFBO0FBRWxGLDZDQUE2QztBQUM3Qyw4Q0FBOEM7QUFHOUMsTUFBTSxPQUFnQixZQUFZO0lBQ3JCLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDN0IsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM1QixTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzVCLEdBQUcsR0FBRyxNQUFNLENBQTBCLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFD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QUFDLENBQUMsTUFBTSxDQUFBO0FBQzlCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLENBQVcsRUFBRSxDQUFXO0lBQy9DLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNoRCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsS0FBZTtJQUNuQyxJQUFJLEtBQUssWUFBWSxXQUFXLEVBQUUsQ0FBQztRQUMvQixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUE7SUFDdEQsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLEtBQUssQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQTtJQUNoRCxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIlxuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdGFibGUsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5qZWN0b3IsXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyB0b1NvcnRlZCB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5pbXBvcnQgeyBDb3ZlclNlcnZpY2UgfSBmcm9tIFwiQG5ndXRpbC9ncmFwaGljc1wiXG5cbmltcG9ydCB7IEJhY2tkcm9wT3B0aW9ucywgQmFja2Ryb3BSZWYgfSBmcm9tIFwiLi9iYWNrZHJvcC1yZWZcIlxuaW1wb3J0IHsgQWx3YXlzT25Ub3AsIENoaWxkUmVmIH0gZnJvbSBcIi4vY2hpbGQtcmVmXCJcbmltcG9ydCB7IENvbnRhaW5lck9wdGlvbnMsIENvbnRhaW5lclJlZiB9IGZyb20gXCIuL2NvbnRhaW5lci1yZWZcIlxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsT3B0aW9ucywgQ29tcG9uZW50UG9ydGFsUmVmLCBUZW1wbGF0ZVBvcnRhbE9wdGlvbnMsIFRlbXBsYXRlUG9ydGFsUmVmIH0gZnJvbSBcIi4vcG9ydGFsLXJlZlwiXG5cbmV4cG9ydCBjb25zdCBMQVlFUl9aSU5ERVhfU1RBUlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPihcIkxBWUVSX1pJTkRFWF9TVEFSVFwiKVxuXG4vLyBUT0RPOiBFTEVWQVRJT05fU1RFUCBjb25maWcgd2l0aCBpbmplY3Rpb25cbi8vIFRPRE86IEVMRVZBVElPTl9TVEFSVCBjb25maWcgd2l0aCBpbmplY3Rpb25cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExheWVyU2VydmljZSB7XG4gICAgcmVhZG9ubHkgI2NvdmVyID0gaW5qZWN0KENvdmVyU2VydmljZSlcbiAgICByZWFkb25seSAjaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG4gICAgcmVhZG9ubHkgI2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKVxuICAgIHJlYWRvbmx5ICNlbCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZiwgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KVxuXG4gICAgZ2V0IHJvb3QoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy4jZWwgJiYgdGhpcy4jZWwubmF0aXZlRWxlbWVudCkgfHwgdGhpcy4jZG9jdW1lbnQuYm9keVxuICAgIH1cbiAgICAvLyByZWFkb25seSAjZWwgPSB0aGlzLnJvb3QubmF0aXZlRWxlbWVudFxuXG4gICAgcmVhZG9ubHkgI2NoaWxkcmVuOiBBcnJheTxDaGlsZFJlZj4gPSBbXVxuICAgIHJlYWRvbmx5ICN6SW5kZXhTdGFydDogbnVtYmVyXG4gICAgLy8gcmVhZG9ubHkgI2JhY2tkcm9wOiBNYXA8PlxuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMQVlFUl9aSU5ERVhfU1RBUlQpIEBPcHRpb25hbCgpIHpJbmRleFN0YXJ0PzogbnVtYmVyKSB7XG4gICAgICAgIGlmICh6SW5kZXhTdGFydCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLiN6SW5kZXhTdGFydCA9IHpJbmRleFN0YXJ0XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiN6SW5kZXhTdGFydCA9IDEwMDAwXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdDb21wb25lbnRQb3J0YWw8VD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBvcHRpb25zOiBDb21wb25lbnRQb3J0YWxPcHRpb25zPFQ+KTogQ29tcG9uZW50UG9ydGFsUmVmPFQ+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQ29tcG9uZW50UG9ydGFsUmVmKGNvbXBvbmVudCwgb3B0aW9ucykpXG4gICAgfVxuXG4gICAgbmV3VGVtcGxhdGVQb3J0YWw8VD4odHBsOiBUZW1wbGF0ZVJlZjxUPiwgb3B0aW9uczogVGVtcGxhdGVQb3J0YWxPcHRpb25zPFQ+KTogVGVtcGxhdGVQb3J0YWxSZWY8VD4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuaW5qZWN0b3IpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGluamVjdG9yOiB0aGlzLiNpbmplY3RvciB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZW5kKG5ldyBUZW1wbGF0ZVBvcnRhbFJlZih0cGwsIG9wdGlvbnMpKVxuICAgIH1cblxuICAgIG5ld0NvbnRhaW5lcihvcHRpb25zOiBDb250YWluZXJPcHRpb25zKTogQ29udGFpbmVyUmVmIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQ29udGFpbmVyUmVmKG9wdGlvbnMpKVxuICAgIH1cblxuICAgIG5ld0JhY2tkcm9wKHVuZGVyOiBDaGlsZFJlZiwgb3B0aW9uczogQmFja2Ryb3BPcHRpb25zKTogQmFja2Ryb3BSZWYge1xuICAgICAgICBjb25zdCBjb3ZlclJlZiA9IHRoaXMuI2NvdmVyLmNyZWF0ZSh0aGlzLnJvb3QsIG9wdGlvbnMpXG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQmFja2Ryb3BSZWYoY292ZXJSZWYsIHVuZGVyLCBvcHRpb25zKSlcbiAgICB9XG5cbiAgICBhcHBlbmQ8VCBleHRlbmRzIENoaWxkUmVmPihyZWY6IFQpOiBUIHtcbiAgICAgICAgaWYgKCF0aGlzLiNjaGlsZHJlbi5pbmNsdWRlcyhyZWYpKSB7XG4gICAgICAgICAgICB0aGlzLiNjaGlsZHJlbi5wdXNoKHJlZilcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZSgpXG4gICAgICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQocmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICByZWYuc3RhdGUub24oXCJkaXNwb3NlZFwiLCAoKSA9PiB0aGlzLiNyZW1vdmUocmVmKSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVmXG4gICAgfVxuXG4gICAgI3JlbW92ZShyZWY6IENoaWxkUmVmKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuI2NoaWxkcmVuLmluZGV4T2YocmVmKVxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuI2NoaWxkcmVuLnNwbGljZShpZHgsIDEpXG4gICAgICAgICAgICB0aGlzLiN1cGRhdGUoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3VwZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0b1NvcnRlZCh0aGlzLiNjaGlsZHJlbiwgc29ydENoaWxkcmVuMilcblxuICAgICAgICBsZXQgekluZGV4ID0gdGhpcy4jekluZGV4U3RhcnRcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgY2hpbGQuekluZGV4ID0gekluZGV4XG4gICAgICAgICAgICB6SW5kZXggKz0gMVxuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGRyZW4uc29ydChzb3J0QnlaSW5kZXhEZXNjKVxuXG4gICAgICAgIGxldCBoYXNCYWNrZHJvcCA9IGZhbHNlXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGNoaWxkLm9wdGlvbnMuY29sb3IgIT09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICAgICAgICAgIGNoaWxkLnZpc2libGUgPSAhaGFzQmFja2Ryb3BcbiAgICAgICAgICAgICAgICBoYXNCYWNrZHJvcCA9IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IFwiYm9keVwiLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMYXllclNlcnZpY2UsIHVzZUV4aXN0aW5nOiBSb290TGF5ZXIgfV1cbn0pXG5leHBvcnQgY2xhc3MgUm9vdExheWVyIGV4dGVuZHMgTGF5ZXJTZXJ2aWNlIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMYXllclNlcnZpY2UsIHVzZUV4aXN0aW5nOiBJbmRpdmlkdWFsTGF5ZXIgfV1cbn0pXG5leHBvcnQgY2xhc3MgSW5kaXZpZHVhbExheWVyIGV4dGVuZHMgTGF5ZXJTZXJ2aWNlIHt9XG5cbmZ1bmN0aW9uIHNvcnRDaGlsZHJlbjIoYTogQ2hpbGRSZWYsIGI6IENoaWxkUmVmKSB7XG4gICAgY29uc3QgYWx3YXlzT25Ub3AgPSBzb3J0QnlBbHdheXNPblRvcChhLCBiKVxuICAgIGlmIChhbHdheXNPblRvcCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gc29ydEJ5QmFja2Ryb3AoYSwgYilcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYWx3YXlzT25Ub3BcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHNvcnRCeUJhY2tkcm9wKGE6IENoaWxkUmVmLCBiOiBDaGlsZFJlZikge1xuICAgIGlmIChhIGluc3RhbmNlb2YgQmFja2Ryb3BSZWYgJiYgYS51bmRlciA9PT0gYikge1xuICAgICAgICByZXR1cm4gLTFcbiAgICB9IGVsc2UgaWYgKGIgaW5zdGFuY2VvZiBCYWNrZHJvcFJlZiAmJiBiLnVuZGVyID09PSBhKSB7XG4gICAgICAgIHJldHVybiAxXG4gICAgfVxuICAgIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIHNvcnRCeVpJbmRleERlc2MoYTogQ2hpbGRSZWYsIGI6IENoaWxkUmVmKSB7XG4gICAgcmV0dXJuIGIuekluZGV4IC0gYS56SW5kZXhcbn1cblxuZnVuY3Rpb24gc29ydEJ5QWx3YXlzT25Ub3AoYTogQ2hpbGRSZWYsIGI6IENoaWxkUmVmKSB7XG4gICAgcmV0dXJuIGdldEFsd2F5c09uVG9wKGEpIC0gZ2V0QWx3YXlzT25Ub3AoYilcbn1cblxuZnVuY3Rpb24gZ2V0QWx3YXlzT25Ub3AoY2hpbGQ6IENoaWxkUmVmKTogbnVtYmVyIHtcbiAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBCYWNrZHJvcFJlZikge1xuICAgICAgICByZXR1cm4gY2hpbGQudW5kZXIuYWx3YXlzT25Ub3AgfHwgQWx3YXlzT25Ub3AuTm9uZVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjaGlsZC5hbHdheXNPblRvcCB8fCBBbHdheXNPblRvcC5Ob25lXG4gICAgfVxufVxuIl19
|
|
@@ -6,7 +6,8 @@ import { KeystrokeService, FocusService } from '@ngutil/aria';
|
|
|
6
6
|
import { coerceElement, isElementInput, Lifecycle, toSorted } from '@ngutil/common';
|
|
7
7
|
import { clamp } from 'lodash';
|
|
8
8
|
import * as i0 from '@angular/core';
|
|
9
|
-
import { ElementRef, Injector, ComponentFactoryResolver, ViewContainerRef, InjectionToken, inject,
|
|
9
|
+
import { ElementRef, Injector, ComponentFactoryResolver, ViewContainerRef, InjectionToken, inject, Injectable, Inject, Optional, Directive, TemplateRef, NgModule } from '@angular/core';
|
|
10
|
+
import { DOCUMENT } from '@angular/common';
|
|
10
11
|
import { DomPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
11
12
|
|
|
12
13
|
// https://tympanus.net/Development/ModalWindowEffects/
|
|
@@ -694,18 +695,18 @@ const LAYER_ZINDEX_START = new InjectionToken("LAYER_ZINDEX_START");
|
|
|
694
695
|
// TODO: ELEVATION_STEP config with injection
|
|
695
696
|
// TODO: ELEVATION_START config with injection
|
|
696
697
|
class LayerService {
|
|
697
|
-
#cover;
|
|
698
|
-
#injector;
|
|
698
|
+
#cover = inject(CoverService);
|
|
699
|
+
#injector = inject(Injector);
|
|
700
|
+
#document = inject(DOCUMENT);
|
|
701
|
+
#el = inject(ElementRef, { optional: true, self: true });
|
|
702
|
+
get root() {
|
|
703
|
+
return (this.#el && this.#el.nativeElement) || this.#document.body;
|
|
704
|
+
}
|
|
699
705
|
// readonly #el = this.root.nativeElement
|
|
700
|
-
#children;
|
|
706
|
+
#children = [];
|
|
701
707
|
#zIndexStart;
|
|
702
708
|
// readonly #backdrop: Map<>
|
|
703
709
|
constructor(zIndexStart) {
|
|
704
|
-
this.#cover = inject(CoverService);
|
|
705
|
-
this.#injector = inject(Injector);
|
|
706
|
-
this.root = inject(ElementRef);
|
|
707
|
-
// readonly #el = this.root.nativeElement
|
|
708
|
-
this.#children = [];
|
|
709
710
|
if (zIndexStart != null) {
|
|
710
711
|
this.#zIndexStart = zIndexStart;
|
|
711
712
|
}
|
|
@@ -739,7 +740,7 @@ class LayerService {
|
|
|
739
740
|
if (!this.#children.includes(ref)) {
|
|
740
741
|
this.#children.push(ref);
|
|
741
742
|
this.#update();
|
|
742
|
-
this.root.
|
|
743
|
+
this.root.appendChild(ref.nativeElement);
|
|
743
744
|
ref.state.on("disposed", () => this.#remove(ref));
|
|
744
745
|
}
|
|
745
746
|
return ref;
|
|
@@ -767,11 +768,11 @@ class LayerService {
|
|
|
767
768
|
}
|
|
768
769
|
}
|
|
769
770
|
}
|
|
770
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayerService, deps: [{ token: LAYER_ZINDEX_START, optional: true }], target: i0.ɵɵFactoryTarget.
|
|
771
|
-
static { this.ɵ
|
|
771
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayerService, deps: [{ token: LAYER_ZINDEX_START, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
772
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayerService }); }
|
|
772
773
|
}
|
|
773
774
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayerService, decorators: [{
|
|
774
|
-
type:
|
|
775
|
+
type: Injectable
|
|
775
776
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
776
777
|
type: Inject,
|
|
777
778
|
args: [LAYER_ZINDEX_START]
|
|
@@ -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/close-trigger.ts","../../../../packages/floating/src/floating/traits/dim-contraint.ts","../../../../packages/floating/src/floating/traits/focus.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, AnimationOptions, style } from \"@angular/animations\"\n\nimport { map, Observable, Subscriber, switchMap, take, tap, timer } from \"rxjs\"\n\nimport { animationObservable } from \"@ngutil/graphics\"\nimport { alignmentToTransformOrigin, Duration, Ease } from \"@ngutil/style\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\nimport { FloatingPosition } from \"./position\"\n\nexport type AnimationSet = { show: AnimationMetadata[]; hide: AnimationMetadata[] }\n\n// https://tympanus.net/Development/ModalWindowEffects/\n\nconst timing = `${Duration.FastMs}ms ${Ease.Deceleration}`\n\nexport class AnimationTrait implements FloatingTrait<unknown> {\n readonly name = \"animation\"\n\n constructor(\n readonly animation: AnimationSet,\n readonly options?: AnimationOptions\n ) {}\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 const options = this.options || {}\n\n floatingRef.state.on(\"showing\", () =>\n animationParams(floatingRef, 0, options.params).pipe(\n switchMap(params =>\n animationObservable({\n builder,\n element,\n animation: this.animation.show,\n options: { ...options, params }\n })\n )\n )\n )\n floatingRef.state.on(\"disposing\", () =>\n animationParams(floatingRef, 0, options.params).pipe(\n switchMap(params =>\n animationObservable({\n builder,\n element,\n animation: this.animation.hide,\n options: { ...options, params }\n })\n ),\n tap(() => (element.style.display = \"none\"))\n )\n )\n floatingRef.state.on(\"disposing\", () => dst.complete())\n dst.next()\n })\n }\n}\n\nfunction animationParams(\n floatingRef: FloatingRef,\n delay: number,\n overrides: AnimationOptions[\"params\"]\n): Observable<AnimationOptions[\"params\"]> {\n const src =\n delay > 0\n ? timer(delay).pipe(switchMap(() => floatingRef.watchTrait<FloatingPosition>(\"position\")))\n : floatingRef.watchTrait<FloatingPosition>(\"position\")\n\n return src.pipe(\n take(1),\n map(position => {\n const origin = position.computed ? alignmentToTransformOrigin(position.computed!.content.align) : \"center\"\n return {\n origin,\n ...overrides\n }\n })\n )\n}\n\nexport const FallAnimation: AnimationSet = {\n show: [\n style({\n transform: \"scale(1.5)\",\n visibility: \"visible\",\n opacity: \"0\"\n }),\n animate(\n timing,\n style({\n transform: \"scale(1)\",\n opacity: \"1\"\n })\n )\n ],\n hide: [\n animate(\n timing,\n style({\n transform: \"scale(1.5)\",\n visibility: \"visible\",\n opacity: \"0\"\n })\n )\n ]\n}\n\nexport function fallAnimation(options?: AnimationOptions) {\n return new AnimationTrait(FallAnimation, options)\n}\n\nexport const FadeAnimation: AnimationSet = {\n show: [style({ opacity: 0 }), animate(timing, style({ opacity: 1 }))],\n hide: [animate(timing, style({ opacity: 0 }))]\n}\n\nexport function fadeAnimation(options?: AnimationOptions) {\n return new AnimationTrait(FadeAnimation, options)\n}\n\nexport const DropAnimation: AnimationSet = {\n show: [\n style({\n transform: \"translate({{ translateX }}, {{ translateY }})\",\n opacity: \"0\",\n transformOrigin: \"{{ origin }}\",\n visibility: \"visible\"\n }),\n animate(\n timing,\n style({\n opacity: \"1\",\n transform: \"scale(1, 1) translate(0px, 0px)\"\n })\n )\n ],\n hide: [\n animate(\n timing,\n style({ opacity: 0, transform: \"translate(calc({{ translateX }} * -1), calc({{ translateY }} * -1))\" })\n )\n ]\n}\n\nexport function dropAnimation(options?: AnimationOptions) {\n if (!options) {\n options = {}\n }\n\n if (!options.params) {\n options.params = {}\n } else {\n options.params = { ...options.params }\n }\n\n options.params[\"translateX\"] = \"0px\"\n options.params[\"translateY\"] = \"-40px\"\n\n return new AnimationTrait(DropAnimation, options)\n}\n","import { AnimationBuilder } from \"@angular/animations\"\n\nimport { Observable, Subscriber } from \"rxjs\"\n\nimport { animationObservable, CoverOptions } from \"@ngutil/graphics\"\n\nimport { BackdropRef } from \"../../layer\"\nimport { type FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\nimport { FadeAnimation } from \"./animation\"\n\ninterface CommonOptions {}\n\nexport type BackdropTraitOptions = CoverOptions & CommonOptions\n\nexport class BackdropTrait implements FloatingTrait<BackdropRef> {\n readonly name = \"backdrop\"\n\n constructor(readonly options: BackdropTraitOptions) {}\n\n connect(floatingRef: FloatingRef<any>): Observable<BackdropRef> {\n return new Observable((dest: Subscriber<BackdropRef>) => {\n const animationBuilder = floatingRef.container.injector.get(AnimationBuilder)\n const options = { ...this.options }\n const backdrop = floatingRef.layerSvc.newBackdrop(floatingRef.container, options)\n\n floatingRef.container.nativeElement.setAttribute(\"data-floating-has-backdrop\", \"true\")\n backdrop.nativeElement.setAttribute(\"data-floating-backdrop\", floatingRef.uid)\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 backdrop.state.on(\"disposed\", () => dest.complete())\n\n floatingRef.state.on(\"disposing\", () => backdrop.dispose())\n\n dest.add(backdrop.show().subscribe())\n dest.next(backdrop)\n })\n }\n}\n\nexport function backdrop(options: BackdropTraitOptions) {\n return new BackdropTrait(options)\n}\n","import {\n distinctUntilChanged,\n exhaustMap,\n filter,\n from,\n fromEvent,\n map,\n Observable,\n ObservableInput,\n of,\n race\n} from \"rxjs\"\n\nimport { KeystrokeService } from \"@ngutil/aria\"\nimport { coerceElement, ElementInput } from \"@ngutil/common\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport interface ClickOutsideOptions {\n /**\n * If clicks happened on this element, that not trigger the close event\n */\n allowedElements?: ElementInput[]\n}\n\nexport interface CloseTriggerOptions {\n /**\n * Close floating when click outside of floating element\n */\n clickOutside?: boolean | ClickOutsideOptions\n\n /**\n * Only works when the floating element is focused\n */\n keystroke?: boolean\n\n /**\n * Close when emitting any value\n */\n trigger?: ObservableInput<any>\n}\n\nexport interface CloseTriggerEvent {\n source: \"click\" | \"keystroke\" | \"backbutton\" | \"trigger\"\n}\n\nclass CloseTriggerTrait implements FloatingTrait {\n readonly name = \"close-trigger\"\n\n constructor(readonly options: CloseTriggerOptions = {}) {}\n\n connect(floatingRef: FloatingRef): Observable<CloseTriggerEvent | void> {\n const { keystroke, clickOutside, trigger } = this.options\n\n const container = floatingRef.container.nativeElement\n const triggers: Array<Observable<any>> = []\n const selfUid = Number(floatingRef.uid)\n\n if (keystroke) {\n const ks = floatingRef.container.injector.get(KeystrokeService)\n\n triggers.push(\n ks.watch(container, { key: \"Escape\", state: \"up\" }).pipe(\n map(() => {\n return { source: \"keystroke\" as const }\n })\n )\n )\n\n // TODO: angular auxiliary route\n }\n\n if (clickOutside) {\n const allowedElements =\n typeof clickOutside === \"boolean\" ? [] : clickOutside.allowedElements?.map(coerceElement) || []\n\n triggers.push(\n fromEvent(document, \"click\", { capture: true, passive: true }).pipe(\n filter(event => {\n if (!(event.target instanceof HTMLElement)) {\n return false\n }\n const target = event.target\n\n for (const allowed of allowedElements) {\n if (target === allowed || allowed.contains(target)) {\n return false\n }\n }\n\n const floatingUid = getFloatingUid(target, \"data-floating\", \"floating\")\n const backdropUid = getFloatingUid(target, \"data-floating-backdrop\", \"floatingBackdrop\")\n const otherBackdropUid =\n floatingUid != null && floatingUid !== selfUid\n ? getFloatingUid(\n document.querySelector(`[data-floating-backdrop=\"${floatingUid}\"]`),\n \"data-floating-backdrop\",\n \"floatingBackdrop\"\n )\n : undefined\n\n // console.log({ floatingUid, backdropUid, otherBackdropUid, self: selfUid })\n\n if (floatingUid == null && backdropUid == null) {\n return true\n } else {\n return (\n // click on self or erlier backdrop\n (backdropUid != null && backdropUid <= selfUid) ||\n // click on other floating element, whitout backdrop\n (floatingUid != null && otherBackdropUid == null && floatingUid < selfUid) ||\n // click on other floating element that opened erlier\n (floatingUid != null && floatingUid < selfUid)\n )\n }\n }),\n map(() => {\n return { source: \"click\" as const }\n })\n )\n )\n }\n\n if (trigger) {\n triggers.push(\n from(trigger).pipe(\n map(() => {\n return { source: \"trigger\" as const }\n })\n )\n )\n }\n\n if (triggers.length === 0) {\n return of()\n } else {\n return new Observable(dst =>\n floatingRef.state.on(\"shown\", () => {\n race(...triggers)\n .pipe(\n exhaustMap(event =>\n floatingRef.close().pipe(\n map(() => event),\n distinctUntilChanged()\n )\n )\n )\n .subscribe(dst)\n })\n )\n }\n }\n}\n\nexport function closeTrigger(options: CloseTriggerOptions = { clickOutside: true, keystroke: true }) {\n return new CloseTriggerTrait(options)\n}\n\nfunction getFloatingUid(el: HTMLElement | null, attr: string, dataset: string): number | undefined {\n if (el == null) {\n return undefined\n }\n\n if (el.matches(`[${attr}]`)) {\n return Number(el.dataset[dataset]) || undefined\n } else {\n const parent = el.closest(`[${attr}]`) as HTMLElement\n if (parent) {\n return Number(parent.dataset[dataset]) || undefined\n }\n }\n return undefined\n}\n","import { combineLatest, distinctUntilChanged, map, Observable, Subscriber, takeUntil, 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?.content\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?.content\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 takeUntil(floatingRef.state.onExecute(\"disposing\")),\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 } 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(dest => {\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 dest.add(this.options.connect.connect(floatingRef.container).subscribe())\n }\n\n if (this.options.trap) {\n dest.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 dest.complete()\n })\n dest.next()\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 {\n Alignment,\n alignmentNormalize,\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 ComputedRect extends Rect {\n top: number\n left: number\n right: number\n bottom: number\n}\n\nexport interface ComputedAlignment extends ComputedRect {\n align: Alignment\n connect: Position\n}\n\nexport interface ComputedContent extends ComputedAlignment {\n min: Dimension\n max: Dimension\n}\n\n// export interface ComputedAlignment {\n// align: Alignment\n// postion: Position\n// }\n\n// export interface ComputedOrigin {\n// content: ComputedAlignment\n// anchor: ComputedAlignment\n// }\n\nexport interface ComputedPositon {\n content: ComputedContent\n anchor: ComputedAlignment\n placement: ComputedRect\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 contentRect = rectMoveOrigin(floating, options.content.align, anchorPoint)\n if (options.content.margin) {\n contentRect = rectContract(contentRect, options.content.margin)\n }\n\n if (options.placement.padding) {\n placement = rectContract(placement, options.placement.padding)\n }\n\n return {\n content: {\n ...addTLRB(contentRect, placement),\n align: alignmentNormalize(options.content.align),\n connect: anchorPoint,\n max: { width: placement.width - contentRect.x, height: placement.height - contentRect.y },\n min: { width: 0, height: 0 }\n },\n anchor: {\n ...addTLRB(anchor, placement),\n align: alignmentNormalize(options.anchor.align),\n connect: anchorPoint\n },\n placement: addTLRB(placement, placement)\n }\n}\n\nfunction addTLRB(rect: Rect, container: Rect): ComputedRect {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: container.width - (rect.x + rect.width),\n bottom: container.height - (rect.y + rect.height)\n }\n}\n","import { ElementRef } from \"@angular/core\"\n\nimport { combineLatest, Observable, Subscriber, takeUntil } 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 }).pipe(takeUntil(floatingRef.state.onExecute(\"disposing\")))\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 const computedContent = this.computed.content\n const style: Record<string, string | null> = { top: null, right: null, bottom: null, left: null }\n\n if (computedContent.align.horizontal === \"right\") {\n style[\"right\"] = `${computedContent.right}px`\n } else {\n style[\"left\"] = `${computedContent.left}px`\n }\n\n if (computedContent.align.vertical === \"bottom\") {\n style[\"bottom\"] = `${computedContent.bottom}px`\n } else {\n style[\"top\"] = `${computedContent.top}px`\n }\n\n Object.assign(floatingEl.style, style)\n }\n}\n","import { fallAnimation } from \"./animation\"\nimport { backdrop } from \"./backdrop\"\nimport { closeTrigger } from \"./close-trigger\"\nimport { focus } from \"./focus\"\nimport { position } from \"./position\"\n\nexport function modal() {\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)\" }),\n focus({ trap: true }),\n closeTrigger(),\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 { filter, Observable, of, share, take } from \"rxjs\"\n\nimport { Lifecycle } from \"@ngutil/common\"\n\nexport type DisposeHandler<T> = (ref: T) => Observable<void>\n\nexport enum AlwaysOnTop {\n None = 0,\n Normal = 1,\n Modal = 2,\n Toast = 3,\n UAC = 100\n}\n\n// TODO: disposing, disposed\n\nexport abstract class ChildRef<T extends HTMLElement = HTMLElement> extends ElementRef<T> {\n readonly state = new Lifecycle({\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 protected readonly disposed$ = this.state.current$.pipe(\n filter(state => state === \"disposed\"),\n take(1),\n share()\n )\n\n constructor(\n nativeElement: T,\n public readonly alwaysOnTop: AlwaysOnTop = AlwaysOnTop.None\n ) {\n super(nativeElement)\n this.state.on(\"disposed\", () => {\n this.nativeElement.parentElement?.removeChild(this.nativeElement)\n this.state.destroy()\n delete (this as any).state\n })\n\n // this.state.current$.subscribe(state => {\n // console.log(this, state)\n // })\n // this.state.status$.subscribe(status => {\n // console.log(this.nativeElement, status)\n // })\n }\n\n dispose() {\n if (this.state == null) {\n return of()\n }\n return this.state.run([\"disposing\", \"disposed\"])\n }\n}\n","import { Injector, Provider } from \"@angular/core\"\n\nimport { AlwaysOnTop, ChildRef } from \"./child-ref\"\n\nexport interface ContainerOptions {\n alwaysOnTop?: AlwaysOnTop\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), options.alwaysOnTop || AlwaysOnTop.None)\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 div.style.display = \"inline-flex\"\n div.style.flexDirection = \"column\"\n div.style.alignItems = \"stretch\"\n div.style.justifyContent = \"stretch\"\n\n if (options.classes) {\n div.classList.add(...options.classes)\n }\n\n return div\n}\n","import { takeUntil } from \"rxjs\"\n\nimport { CoverRef } from \"@ngutil/graphics\"\nimport { CoverOptions } from \"@ngutil/graphics\"\n\nimport { ChildRef } from \"./child-ref\"\n\nexport type BackdropOptions = CoverOptions\n\nexport class BackdropRef extends 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 = false\n\n constructor(\n readonly coverRef: CoverRef<any>,\n readonly under: ChildRef,\n readonly options: CoverOptions\n ) {\n super(coverRef.nativeElement)\n\n this.group = `${options.color === \"transparent\" ? \"transparent\" : \"solid\"}`\n\n this.state.on(\"showing\", () => {\n this.coverRef\n .show()\n .pipe(takeUntil(this.state.onDone(\"disposed\")))\n .subscribe(() => {\n this.visible = true\n })\n })\n }\n\n show() {\n return this.state.run(\"showing\", \"shown\")\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 { AlwaysOnTop, 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(under: ChildRef, options: BackdropOptions): BackdropRef {\n const coverRef = this.#cover.create(this.root, options)\n return this.append(new BackdropRef(coverRef, under, 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, sortChildren2)\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.color !== \"transparent\") {\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 sortChildren2(a: ChildRef, b: ChildRef) {\n const alwaysOnTop = sortByAlwaysOnTop(a, b)\n if (alwaysOnTop === 0) {\n return sortByBackdrop(a, b)\n } else {\n return alwaysOnTop\n }\n}\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\nfunction sortByAlwaysOnTop(a: ChildRef, b: ChildRef) {\n return getAlwaysOnTop(a) - getAlwaysOnTop(b)\n}\n\nfunction getAlwaysOnTop(child: ChildRef): number {\n if (child instanceof BackdropRef) {\n return child.under.alwaysOnTop || AlwaysOnTop.None\n } else {\n return child.alwaysOnTop || AlwaysOnTop.None\n }\n}\n","import { Inject, Injectable, InjectionToken } from \"@angular/core\"\n\nimport {\n combineLatest,\n debounceTime,\n EMPTY,\n filter,\n map,\n Observable,\n ReplaySubject,\n shareReplay,\n startWith,\n take,\n takeUntil,\n takeWhile\n} from \"rxjs\"\n\nimport { Lifecycle } 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\ntype TraitState = { [key: string]: FloatingTraitEvent | null }\n\nlet UID_COUNTER = 0\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 Lifecycle({\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<TraitState>\n\n readonly #untilCleanup = this.state.onExecute(\"cleanup\")\n readonly #untilDisposed = this.state.onExecute(\"disposed\")\n\n readonly uid = `${++UID_COUNTER}`\n\n constructor(\n readonly layerSvc: LayerService,\n readonly container: ContainerRef,\n @Inject(TRAITS) traits: Traits\n ) {\n Object.assign(container.nativeElement.style, {\n overflow: \"hidden\",\n visibility: \"hidden\",\n pointerEvents: \"none\"\n })\n container.nativeElement.setAttribute(\"data-floating\", this.uid)\n\n this.#traits = traits\n this.traitState$ = this.#traitState().pipe(shareReplay(1))\n\n this.state.current$.pipe(takeWhile(state => state !== \"cleanup\", true)).subscribe(state => {\n this.emit({ type: state } as C)\n })\n this.state.on(\"init\", () => this.traitState$.pipe(takeUntil(this.#untilCleanup), debounceTime(5), take(1)))\n this.state.on(\"showing\", () => {\n container.nativeElement.style.visibility = \"visible\"\n })\n this.state.on(\"shown\", () => {\n container.nativeElement.style.pointerEvents = null as any\n })\n this.state.on(\"disposing\", () => {\n container.nativeElement.style.pointerEvents = \"none\"\n })\n\n this.state.control(container.state)\n\n // TODO: remove\n // this.state.status$.subscribe(status => {\n // console.log(\"floating\", status)\n // })\n }\n\n show() {\n return this.state.run(\"init\", \"showing\", \"shown\")\n }\n\n /**\n * @deprecated\n */\n hide() {\n return this.close(true)\n }\n\n close(force = false) {\n if (force) {\n return this.state.run(\"disposing\", \"disposed\", \"cleanup\")\n } else {\n return this.state.run(\"closing\", \"disposing\", \"disposed\", \"cleanup\")\n }\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.close(true).subscribe()\n }\n\n watchTrait<T>(name: string): Observable<T> {\n return this.traitState$.pipe(\n takeUntil(this.#untilDisposed),\n map(state => state[name]),\n filter(value => value != null)\n ) as Observable<T>\n }\n\n #traitState(): Observable<TraitState> {\n const src: { [key: string]: Observable<FloatingTraitEvent | null> } = {}\n\n for (const [k, v] of Object.entries(this.#traits)) {\n src[k] = v.connect(this).pipe(takeUntil(this.#untilDisposed), startWith(null))\n }\n\n if (Object.keys(src).length === 0) {\n return EMPTY\n } else {\n return combineLatest(src).pipe(shareReplay(1))\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 floatingSvc: FloatingService) {}\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.floatingSvc.layer },\n { provide: FloatingService, useValue: this.floatingSvc },\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 floatingSvc: FloatingService,\n public readonly tpl: TemplateRef<T>,\n public readonly options: TemplatePortalOptions<T>\n ) {\n super(floatingSvc)\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.floatingSvc.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 floatingSvc: FloatingService,\n public readonly component: T,\n public readonly options: ComponentPortalOptions<T>\n ) {\n super(floatingSvc)\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.floatingSvc.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, value as any, opts)\n } else {\n return new FloatingComponentFactory(this, 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/close-trigger.ts","../../../../packages/floating/src/floating/traits/dim-contraint.ts","../../../../packages/floating/src/floating/traits/focus.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, AnimationOptions, style } from \"@angular/animations\"\n\nimport { map, Observable, Subscriber, switchMap, take, tap, timer } from \"rxjs\"\n\nimport { animationObservable } from \"@ngutil/graphics\"\nimport { alignmentToTransformOrigin, Duration, Ease } from \"@ngutil/style\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\nimport { FloatingPosition } from \"./position\"\n\nexport type AnimationSet = { show: AnimationMetadata[]; hide: AnimationMetadata[] }\n\n// https://tympanus.net/Development/ModalWindowEffects/\n\nconst timing = `${Duration.FastMs}ms ${Ease.Deceleration}`\n\nexport class AnimationTrait implements FloatingTrait<unknown> {\n readonly name = \"animation\"\n\n constructor(\n readonly animation: AnimationSet,\n readonly options?: AnimationOptions\n ) {}\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 const options = this.options || {}\n\n floatingRef.state.on(\"showing\", () =>\n animationParams(floatingRef, 0, options.params).pipe(\n switchMap(params =>\n animationObservable({\n builder,\n element,\n animation: this.animation.show,\n options: { ...options, params }\n })\n )\n )\n )\n floatingRef.state.on(\"disposing\", () =>\n animationParams(floatingRef, 0, options.params).pipe(\n switchMap(params =>\n animationObservable({\n builder,\n element,\n animation: this.animation.hide,\n options: { ...options, params }\n })\n ),\n tap(() => (element.style.display = \"none\"))\n )\n )\n floatingRef.state.on(\"disposing\", () => dst.complete())\n dst.next()\n })\n }\n}\n\nfunction animationParams(\n floatingRef: FloatingRef,\n delay: number,\n overrides: AnimationOptions[\"params\"]\n): Observable<AnimationOptions[\"params\"]> {\n const src =\n delay > 0\n ? timer(delay).pipe(switchMap(() => floatingRef.watchTrait<FloatingPosition>(\"position\")))\n : floatingRef.watchTrait<FloatingPosition>(\"position\")\n\n return src.pipe(\n take(1),\n map(position => {\n const origin = position.computed ? alignmentToTransformOrigin(position.computed!.content.align) : \"center\"\n return {\n origin,\n ...overrides\n }\n })\n )\n}\n\nexport const FallAnimation: AnimationSet = {\n show: [\n style({\n transform: \"scale(1.5)\",\n visibility: \"visible\",\n opacity: \"0\"\n }),\n animate(\n timing,\n style({\n transform: \"scale(1)\",\n opacity: \"1\"\n })\n )\n ],\n hide: [\n animate(\n timing,\n style({\n transform: \"scale(1.5)\",\n visibility: \"visible\",\n opacity: \"0\"\n })\n )\n ]\n}\n\nexport function fallAnimation(options?: AnimationOptions) {\n return new AnimationTrait(FallAnimation, options)\n}\n\nexport const FadeAnimation: AnimationSet = {\n show: [style({ opacity: 0 }), animate(timing, style({ opacity: 1 }))],\n hide: [animate(timing, style({ opacity: 0 }))]\n}\n\nexport function fadeAnimation(options?: AnimationOptions) {\n return new AnimationTrait(FadeAnimation, options)\n}\n\nexport const DropAnimation: AnimationSet = {\n show: [\n style({\n transform: \"translate({{ translateX }}, {{ translateY }})\",\n opacity: \"0\",\n transformOrigin: \"{{ origin }}\",\n visibility: \"visible\"\n }),\n animate(\n timing,\n style({\n opacity: \"1\",\n transform: \"scale(1, 1) translate(0px, 0px)\"\n })\n )\n ],\n hide: [\n animate(\n timing,\n style({ opacity: 0, transform: \"translate(calc({{ translateX }} * -1), calc({{ translateY }} * -1))\" })\n )\n ]\n}\n\nexport function dropAnimation(options?: AnimationOptions) {\n if (!options) {\n options = {}\n }\n\n if (!options.params) {\n options.params = {}\n } else {\n options.params = { ...options.params }\n }\n\n options.params[\"translateX\"] = \"0px\"\n options.params[\"translateY\"] = \"-40px\"\n\n return new AnimationTrait(DropAnimation, options)\n}\n","import { AnimationBuilder } from \"@angular/animations\"\n\nimport { Observable, Subscriber } from \"rxjs\"\n\nimport { animationObservable, CoverOptions } from \"@ngutil/graphics\"\n\nimport { BackdropRef } from \"../../layer\"\nimport { type FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\nimport { FadeAnimation } from \"./animation\"\n\ninterface CommonOptions {}\n\nexport type BackdropTraitOptions = CoverOptions & CommonOptions\n\nexport class BackdropTrait implements FloatingTrait<BackdropRef> {\n readonly name = \"backdrop\"\n\n constructor(readonly options: BackdropTraitOptions) {}\n\n connect(floatingRef: FloatingRef<any>): Observable<BackdropRef> {\n return new Observable((dest: Subscriber<BackdropRef>) => {\n const animationBuilder = floatingRef.container.injector.get(AnimationBuilder)\n const options = { ...this.options }\n const backdrop = floatingRef.layerSvc.newBackdrop(floatingRef.container, options)\n\n floatingRef.container.nativeElement.setAttribute(\"data-floating-has-backdrop\", \"true\")\n backdrop.nativeElement.setAttribute(\"data-floating-backdrop\", floatingRef.uid)\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 backdrop.state.on(\"disposed\", () => dest.complete())\n\n floatingRef.state.on(\"disposing\", () => backdrop.dispose())\n\n dest.add(backdrop.show().subscribe())\n dest.next(backdrop)\n })\n }\n}\n\nexport function backdrop(options: BackdropTraitOptions) {\n return new BackdropTrait(options)\n}\n","import {\n distinctUntilChanged,\n exhaustMap,\n filter,\n from,\n fromEvent,\n map,\n Observable,\n ObservableInput,\n of,\n race\n} from \"rxjs\"\n\nimport { KeystrokeService } from \"@ngutil/aria\"\nimport { coerceElement, ElementInput } from \"@ngutil/common\"\n\nimport { FloatingRef } from \"../floating-ref\"\nimport { FloatingTrait } from \"./_base\"\n\nexport interface ClickOutsideOptions {\n /**\n * If clicks happened on this element, that not trigger the close event\n */\n allowedElements?: ElementInput[]\n}\n\nexport interface CloseTriggerOptions {\n /**\n * Close floating when click outside of floating element\n */\n clickOutside?: boolean | ClickOutsideOptions\n\n /**\n * Only works when the floating element is focused\n */\n keystroke?: boolean\n\n /**\n * Close when emitting any value\n */\n trigger?: ObservableInput<any>\n}\n\nexport interface CloseTriggerEvent {\n source: \"click\" | \"keystroke\" | \"backbutton\" | \"trigger\"\n}\n\nclass CloseTriggerTrait implements FloatingTrait {\n readonly name = \"close-trigger\"\n\n constructor(readonly options: CloseTriggerOptions = {}) {}\n\n connect(floatingRef: FloatingRef): Observable<CloseTriggerEvent | void> {\n const { keystroke, clickOutside, trigger } = this.options\n\n const container = floatingRef.container.nativeElement\n const triggers: Array<Observable<any>> = []\n const selfUid = Number(floatingRef.uid)\n\n if (keystroke) {\n const ks = floatingRef.container.injector.get(KeystrokeService)\n\n triggers.push(\n ks.watch(container, { key: \"Escape\", state: \"up\" }).pipe(\n map(() => {\n return { source: \"keystroke\" as const }\n })\n )\n )\n\n // TODO: angular auxiliary route\n }\n\n if (clickOutside) {\n const allowedElements =\n typeof clickOutside === \"boolean\" ? [] : clickOutside.allowedElements?.map(coerceElement) || []\n\n triggers.push(\n fromEvent(document, \"click\", { capture: true, passive: true }).pipe(\n filter(event => {\n if (!(event.target instanceof HTMLElement)) {\n return false\n }\n const target = event.target\n\n for (const allowed of allowedElements) {\n if (target === allowed || allowed.contains(target)) {\n return false\n }\n }\n\n const floatingUid = getFloatingUid(target, \"data-floating\", \"floating\")\n const backdropUid = getFloatingUid(target, \"data-floating-backdrop\", \"floatingBackdrop\")\n const otherBackdropUid =\n floatingUid != null && floatingUid !== selfUid\n ? getFloatingUid(\n document.querySelector(`[data-floating-backdrop=\"${floatingUid}\"]`),\n \"data-floating-backdrop\",\n \"floatingBackdrop\"\n )\n : undefined\n\n // console.log({ floatingUid, backdropUid, otherBackdropUid, self: selfUid })\n\n if (floatingUid == null && backdropUid == null) {\n return true\n } else {\n return (\n // click on self or erlier backdrop\n (backdropUid != null && backdropUid <= selfUid) ||\n // click on other floating element, whitout backdrop\n (floatingUid != null && otherBackdropUid == null && floatingUid < selfUid) ||\n // click on other floating element that opened erlier\n (floatingUid != null && floatingUid < selfUid)\n )\n }\n }),\n map(() => {\n return { source: \"click\" as const }\n })\n )\n )\n }\n\n if (trigger) {\n triggers.push(\n from(trigger).pipe(\n map(() => {\n return { source: \"trigger\" as const }\n })\n )\n )\n }\n\n if (triggers.length === 0) {\n return of()\n } else {\n return new Observable(dst =>\n floatingRef.state.on(\"shown\", () => {\n race(...triggers)\n .pipe(\n exhaustMap(event =>\n floatingRef.close().pipe(\n map(() => event),\n distinctUntilChanged()\n )\n )\n )\n .subscribe(dst)\n })\n )\n }\n }\n}\n\nexport function closeTrigger(options: CloseTriggerOptions = { clickOutside: true, keystroke: true }) {\n return new CloseTriggerTrait(options)\n}\n\nfunction getFloatingUid(el: HTMLElement | null, attr: string, dataset: string): number | undefined {\n if (el == null) {\n return undefined\n }\n\n if (el.matches(`[${attr}]`)) {\n return Number(el.dataset[dataset]) || undefined\n } else {\n const parent = el.closest(`[${attr}]`) as HTMLElement\n if (parent) {\n return Number(parent.dataset[dataset]) || undefined\n }\n }\n return undefined\n}\n","import { combineLatest, distinctUntilChanged, map, Observable, Subscriber, takeUntil, 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?.content\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?.content\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 takeUntil(floatingRef.state.onExecute(\"disposing\")),\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 } 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(dest => {\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 dest.add(this.options.connect.connect(floatingRef.container).subscribe())\n }\n\n if (this.options.trap) {\n dest.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 dest.complete()\n })\n dest.next()\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 {\n Alignment,\n alignmentNormalize,\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 ComputedRect extends Rect {\n top: number\n left: number\n right: number\n bottom: number\n}\n\nexport interface ComputedAlignment extends ComputedRect {\n align: Alignment\n connect: Position\n}\n\nexport interface ComputedContent extends ComputedAlignment {\n min: Dimension\n max: Dimension\n}\n\n// export interface ComputedAlignment {\n// align: Alignment\n// postion: Position\n// }\n\n// export interface ComputedOrigin {\n// content: ComputedAlignment\n// anchor: ComputedAlignment\n// }\n\nexport interface ComputedPositon {\n content: ComputedContent\n anchor: ComputedAlignment\n placement: ComputedRect\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 contentRect = rectMoveOrigin(floating, options.content.align, anchorPoint)\n if (options.content.margin) {\n contentRect = rectContract(contentRect, options.content.margin)\n }\n\n if (options.placement.padding) {\n placement = rectContract(placement, options.placement.padding)\n }\n\n return {\n content: {\n ...addTLRB(contentRect, placement),\n align: alignmentNormalize(options.content.align),\n connect: anchorPoint,\n max: { width: placement.width - contentRect.x, height: placement.height - contentRect.y },\n min: { width: 0, height: 0 }\n },\n anchor: {\n ...addTLRB(anchor, placement),\n align: alignmentNormalize(options.anchor.align),\n connect: anchorPoint\n },\n placement: addTLRB(placement, placement)\n }\n}\n\nfunction addTLRB(rect: Rect, container: Rect): ComputedRect {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: container.width - (rect.x + rect.width),\n bottom: container.height - (rect.y + rect.height)\n }\n}\n","import { ElementRef } from \"@angular/core\"\n\nimport { combineLatest, Observable, Subscriber, takeUntil } 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\"]> 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 }).pipe(takeUntil(floatingRef.state.onExecute(\"disposing\")))\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 const computedContent = this.computed.content\n const style: Record<string, string | null> = { top: null, right: null, bottom: null, left: null }\n\n if (computedContent.align.horizontal === \"right\") {\n style[\"right\"] = `${computedContent.right}px`\n } else {\n style[\"left\"] = `${computedContent.left}px`\n }\n\n if (computedContent.align.vertical === \"bottom\") {\n style[\"bottom\"] = `${computedContent.bottom}px`\n } else {\n style[\"top\"] = `${computedContent.top}px`\n }\n\n Object.assign(floatingEl.style, style)\n }\n}\n","import { fallAnimation } from \"./animation\"\nimport { backdrop } from \"./backdrop\"\nimport { closeTrigger } from \"./close-trigger\"\nimport { focus } from \"./focus\"\nimport { position } from \"./position\"\n\nexport function modal() {\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)\" }),\n focus({ trap: true }),\n closeTrigger(),\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 { filter, Observable, of, share, take } from \"rxjs\"\n\nimport { Lifecycle } from \"@ngutil/common\"\n\nexport type DisposeHandler<T> = (ref: T) => Observable<void>\n\nexport enum AlwaysOnTop {\n None = 0,\n Normal = 1,\n Modal = 2,\n Toast = 3,\n UAC = 100\n}\n\n// TODO: disposing, disposed\n\nexport abstract class ChildRef<T extends HTMLElement = HTMLElement> extends ElementRef<T> {\n readonly state = new Lifecycle({\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 protected readonly disposed$ = this.state.current$.pipe(\n filter(state => state === \"disposed\"),\n take(1),\n share()\n )\n\n constructor(\n nativeElement: T,\n public readonly alwaysOnTop: AlwaysOnTop = AlwaysOnTop.None\n ) {\n super(nativeElement)\n this.state.on(\"disposed\", () => {\n this.nativeElement.parentElement?.removeChild(this.nativeElement)\n this.state.destroy()\n delete (this as any).state\n })\n\n // this.state.current$.subscribe(state => {\n // console.log(this, state)\n // })\n // this.state.status$.subscribe(status => {\n // console.log(this.nativeElement, status)\n // })\n }\n\n dispose() {\n if (this.state == null) {\n return of()\n }\n return this.state.run([\"disposing\", \"disposed\"])\n }\n}\n","import { Injector, Provider } from \"@angular/core\"\n\nimport { AlwaysOnTop, ChildRef } from \"./child-ref\"\n\nexport interface ContainerOptions {\n alwaysOnTop?: AlwaysOnTop\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), options.alwaysOnTop || AlwaysOnTop.None)\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 div.style.display = \"inline-flex\"\n div.style.flexDirection = \"column\"\n div.style.alignItems = \"stretch\"\n div.style.justifyContent = \"stretch\"\n\n if (options.classes) {\n div.classList.add(...options.classes)\n }\n\n return div\n}\n","import { takeUntil } from \"rxjs\"\n\nimport { CoverRef } from \"@ngutil/graphics\"\nimport { CoverOptions } from \"@ngutil/graphics\"\n\nimport { ChildRef } from \"./child-ref\"\n\nexport type BackdropOptions = CoverOptions\n\nexport class BackdropRef extends 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 = false\n\n constructor(\n readonly coverRef: CoverRef<any>,\n readonly under: ChildRef,\n readonly options: CoverOptions\n ) {\n super(coverRef.nativeElement)\n\n this.group = `${options.color === \"transparent\" ? \"transparent\" : \"solid\"}`\n\n this.state.on(\"showing\", () => {\n this.coverRef\n .show()\n .pipe(takeUntil(this.state.onDone(\"disposed\")))\n .subscribe(() => {\n this.visible = true\n })\n })\n }\n\n show() {\n return this.state.run(\"showing\", \"shown\")\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 { DOCUMENT } from \"@angular/common\"\nimport {\n Directive,\n ElementRef,\n inject,\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n Optional,\n TemplateRef\n} from \"@angular/core\"\n\nimport { toSorted } from \"@ngutil/common\"\nimport { CoverService } from \"@ngutil/graphics\"\n\nimport { BackdropOptions, BackdropRef } from \"./backdrop-ref\"\nimport { AlwaysOnTop, 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@Injectable()\nexport abstract class LayerService {\n readonly #cover = inject(CoverService)\n readonly #injector = inject(Injector)\n readonly #document = inject(DOCUMENT)\n readonly #el = inject<ElementRef<HTMLElement>>(ElementRef, { optional: true, self: true })\n\n get root() {\n return (this.#el && this.#el.nativeElement) || this.#document.body\n }\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(under: ChildRef, options: BackdropOptions): BackdropRef {\n const coverRef = this.#cover.create(this.root, options)\n return this.append(new BackdropRef(coverRef, under, 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.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, sortChildren2)\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.color !== \"transparent\") {\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 sortChildren2(a: ChildRef, b: ChildRef) {\n const alwaysOnTop = sortByAlwaysOnTop(a, b)\n if (alwaysOnTop === 0) {\n return sortByBackdrop(a, b)\n } else {\n return alwaysOnTop\n }\n}\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\nfunction sortByAlwaysOnTop(a: ChildRef, b: ChildRef) {\n return getAlwaysOnTop(a) - getAlwaysOnTop(b)\n}\n\nfunction getAlwaysOnTop(child: ChildRef): number {\n if (child instanceof BackdropRef) {\n return child.under.alwaysOnTop || AlwaysOnTop.None\n } else {\n return child.alwaysOnTop || AlwaysOnTop.None\n }\n}\n","import { Inject, Injectable, InjectionToken } from \"@angular/core\"\n\nimport {\n combineLatest,\n debounceTime,\n EMPTY,\n filter,\n map,\n Observable,\n ReplaySubject,\n shareReplay,\n startWith,\n take,\n takeUntil,\n takeWhile\n} from \"rxjs\"\n\nimport { Lifecycle } 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\ntype TraitState = { [key: string]: FloatingTraitEvent | null }\n\nlet UID_COUNTER = 0\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 Lifecycle({\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<TraitState>\n\n readonly #untilCleanup = this.state.onExecute(\"cleanup\")\n readonly #untilDisposed = this.state.onExecute(\"disposed\")\n\n readonly uid = `${++UID_COUNTER}`\n\n constructor(\n readonly layerSvc: LayerService,\n readonly container: ContainerRef,\n @Inject(TRAITS) traits: Traits\n ) {\n Object.assign(container.nativeElement.style, {\n overflow: \"hidden\",\n visibility: \"hidden\",\n pointerEvents: \"none\"\n })\n container.nativeElement.setAttribute(\"data-floating\", this.uid)\n\n this.#traits = traits\n this.traitState$ = this.#traitState().pipe(shareReplay(1))\n\n this.state.current$.pipe(takeWhile(state => state !== \"cleanup\", true)).subscribe(state => {\n this.emit({ type: state } as C)\n })\n this.state.on(\"init\", () => this.traitState$.pipe(takeUntil(this.#untilCleanup), debounceTime(5), take(1)))\n this.state.on(\"showing\", () => {\n container.nativeElement.style.visibility = \"visible\"\n })\n this.state.on(\"shown\", () => {\n container.nativeElement.style.pointerEvents = null as any\n })\n this.state.on(\"disposing\", () => {\n container.nativeElement.style.pointerEvents = \"none\"\n })\n\n this.state.control(container.state)\n\n // TODO: remove\n // this.state.status$.subscribe(status => {\n // console.log(\"floating\", status)\n // })\n }\n\n show() {\n return this.state.run(\"init\", \"showing\", \"shown\")\n }\n\n /**\n * @deprecated\n */\n hide() {\n return this.close(true)\n }\n\n close(force = false) {\n if (force) {\n return this.state.run(\"disposing\", \"disposed\", \"cleanup\")\n } else {\n return this.state.run(\"closing\", \"disposing\", \"disposed\", \"cleanup\")\n }\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.close(true).subscribe()\n }\n\n watchTrait<T>(name: string): Observable<T> {\n return this.traitState$.pipe(\n takeUntil(this.#untilDisposed),\n map(state => state[name]),\n filter(value => value != null)\n ) as Observable<T>\n }\n\n #traitState(): Observable<TraitState> {\n const src: { [key: string]: Observable<FloatingTraitEvent | null> } = {}\n\n for (const [k, v] of Object.entries(this.#traits)) {\n src[k] = v.connect(this).pipe(takeUntil(this.#untilDisposed), startWith(null))\n }\n\n if (Object.keys(src).length === 0) {\n return EMPTY\n } else {\n return combineLatest(src).pipe(shareReplay(1))\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 floatingSvc: FloatingService) {}\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.floatingSvc.layer },\n { provide: FloatingService, useValue: this.floatingSvc },\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 floatingSvc: FloatingService,\n public readonly tpl: TemplateRef<T>,\n public readonly options: TemplatePortalOptions<T>\n ) {\n super(floatingSvc)\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.floatingSvc.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 floatingSvc: FloatingService,\n public readonly component: T,\n public readonly options: ComponentPortalOptions<T>\n ) {\n super(floatingSvc)\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.floatingSvc.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, value as any, opts)\n } else {\n return new FloatingComponentFactory(this, 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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"}
|
|
@@ -29,7 +29,7 @@ export interface FloatingPlacementPosition {
|
|
|
29
29
|
export interface FloatingPlacement extends FloatingPlacementPosition {
|
|
30
30
|
ref: FloatingTargetElementRef;
|
|
31
31
|
}
|
|
32
|
-
export declare class FloatingPlacementRef<T extends LayerService["root"]
|
|
32
|
+
export declare class FloatingPlacementRef<T extends LayerService["root"]> extends ElementRef<T> {
|
|
33
33
|
}
|
|
34
34
|
export interface FloatingPositionOptions {
|
|
35
35
|
anchor?: FloatingAnchor;
|
package/layer/layer.service.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentType } from "@angular/cdk/portal";
|
|
2
|
-
import {
|
|
2
|
+
import { InjectionToken, TemplateRef } from "@angular/core";
|
|
3
3
|
import { BackdropOptions, BackdropRef } from "./backdrop-ref";
|
|
4
4
|
import { ChildRef } from "./child-ref";
|
|
5
5
|
import { ContainerOptions, ContainerRef } from "./container-ref";
|
|
@@ -8,7 +8,7 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
export declare const LAYER_ZINDEX_START: InjectionToken<number>;
|
|
9
9
|
export declare abstract class LayerService {
|
|
10
10
|
#private;
|
|
11
|
-
|
|
11
|
+
get root(): HTMLElement;
|
|
12
12
|
constructor(zIndexStart?: number);
|
|
13
13
|
newComponentPortal<T>(component: ComponentType<T>, options: ComponentPortalOptions<T>): ComponentPortalRef<T>;
|
|
14
14
|
newTemplatePortal<T>(tpl: TemplateRef<T>, options: TemplatePortalOptions<T>): TemplatePortalRef<T>;
|
|
@@ -16,7 +16,7 @@ export declare abstract class LayerService {
|
|
|
16
16
|
newBackdrop(under: ChildRef, options: BackdropOptions): BackdropRef;
|
|
17
17
|
append<T extends ChildRef>(ref: T): T;
|
|
18
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<LayerService, [{ optional: true; }]>;
|
|
19
|
-
static
|
|
19
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<LayerService>;
|
|
20
20
|
}
|
|
21
21
|
export declare class RootLayer extends LayerService {
|
|
22
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<RootLayer, never>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngutil/floating",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.61",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"tslib": "^2.6.2"
|
|
6
6
|
},
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"@angular/cdk": "18.2.6",
|
|
9
9
|
"@angular/common": "18.2.6",
|
|
10
10
|
"@angular/core": "18.2.6",
|
|
11
|
-
"@ngutil/aria": "0.0.
|
|
12
|
-
"@ngutil/common": "0.0.
|
|
13
|
-
"@ngutil/style": "0.0.
|
|
11
|
+
"@ngutil/aria": "0.0.61",
|
|
12
|
+
"@ngutil/common": "0.0.61",
|
|
13
|
+
"@ngutil/style": "0.0.61"
|
|
14
14
|
},
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public",
|