@ngutil/graphics 0.0.48 → 0.0.49
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/cover.service.d.ts
CHANGED
|
@@ -25,9 +25,9 @@ export interface RevealCoverOptions extends CoverOptions {
|
|
|
25
25
|
}
|
|
26
26
|
export declare class CoverService {
|
|
27
27
|
#private;
|
|
28
|
-
solid(options: SolidCoverOptions): Observable<
|
|
29
|
-
crop(options: CropCoverOptions): Observable<
|
|
30
|
-
reveal(options: RevealCoverOptions): Observable<
|
|
28
|
+
solid(options: SolidCoverOptions): Observable<HTMLDivElement>;
|
|
29
|
+
crop(options: CropCoverOptions): Observable<HTMLDivElement>;
|
|
30
|
+
reveal(options: RevealCoverOptions): Observable<HTMLDivElement>;
|
|
31
31
|
static ɵfac: i0.ɵɵFactoryDeclaration<CoverService, never>;
|
|
32
32
|
static ɵprov: i0.ɵɵInjectableDeclaration<CoverService>;
|
|
33
33
|
}
|
|
@@ -4,11 +4,11 @@ import { coerceElement } from "@ngutil/common";
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class CoverService {
|
|
6
6
|
solid(options) {
|
|
7
|
-
return new Observable(
|
|
7
|
+
return new Observable(dest => {
|
|
8
8
|
const container = coerceElement(options.container);
|
|
9
9
|
const cover = this.#createElement(options);
|
|
10
10
|
container.appendChild(cover);
|
|
11
|
-
dest.next();
|
|
11
|
+
dest.next(cover);
|
|
12
12
|
return () => {
|
|
13
13
|
cover.parentElement?.removeChild(cover);
|
|
14
14
|
};
|
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
39
39
|
type: Injectable,
|
|
40
40
|
args: [{ providedIn: "root" }]
|
|
41
41
|
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyYXBoaWNzL3NyYy9jb3Zlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFckMsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxnQkFBZ0IsQ0FBQTs7QUF5QjVELE1BQU0sT0FBTyxZQUFZO0lBQ3JCLEtBQUssQ0FBQyxPQUEwQjtRQUM1QixPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUMxQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFFaEIsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsS0FBSyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDM0MsQ0FBQyxDQUFBO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQXlCO1FBQzFCLE9BQU8sRUFBRSxFQUFFLENBQUE7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTJCO1FBQzlCLE9BQU8sRUFBRSxFQUFFLENBQUE7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQXFCO1FBQ2hDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDeEMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFBO1FBQzlCLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQTtRQUV2RSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDbEMsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsNkJBQTZCLENBQUE7UUFDNUQsQ0FBQzthQUFNLENBQUM7WUFDSixFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFBO1FBQzVDLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQTtJQUNiLENBQUM7OEdBbENRLFlBQVk7a0hBQVosWUFBWSxjQURDLE1BQU07OzJGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBjb2VyY2VFbGVtZW50LCBFbGVtZW50SW5wdXQgfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuaW1wb3J0IHsgUmVjdCB9IGZyb20gXCJAbmd1dGlsL3N0eWxlXCJcblxuZXhwb3J0IGludGVyZmFjZSBDb3Zlck9wdGlvbnMge1xuICAgIGNvbnRhaW5lcjogRWxlbWVudElucHV0XG4gICAgY29sb3I6IFwidHJhbnNwYXJlbnRcIiB8IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvbGlkQ292ZXJPcHRpb25zIGV4dGVuZHMgQ292ZXJPcHRpb25zIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JvcENvdmVyT3B0aW9ucyBleHRlbmRzIENvdmVyT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogRWxlbWVudCB0aGF0IHdpbGwgYmUgaW50ZXJhY3RpdmUgd2hpbGUgdGhlIGNvdmVyIGlzIHZpc2libGVcbiAgICAgKi9cbiAgICBjcm9wOiBFbGVtZW50SW5wdXQgfCBPYnNlcnZhYmxlPFJlY3Q+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV2ZWFsQ292ZXJPcHRpb25zIGV4dGVuZHMgQ292ZXJPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBMZWZ0IGFuZCByaWdodCBjb29yZGluYXRlcyBpbnNpZGUgdGhlIGNvbnRhaW5lclxuICAgICAqL1xuICAgIG9yaWdpbjogeyBsZWZ0OiBudW1iZXI7IHRvcDogbnVtYmVyIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIENvdmVyU2VydmljZSB7XG4gICAgc29saWQob3B0aW9uczogU29saWRDb3Zlck9wdGlvbnMpOiBPYnNlcnZhYmxlPEhUTUxEaXZFbGVtZW50PiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkZXN0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvZXJjZUVsZW1lbnQob3B0aW9ucy5jb250YWluZXIpXG4gICAgICAgICAgICBjb25zdCBjb3ZlciA9IHRoaXMuI2NyZWF0ZUVsZW1lbnQob3B0aW9ucylcbiAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjb3ZlcilcbiAgICAgICAgICAgIGRlc3QubmV4dChjb3ZlcilcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb3Zlci5wYXJlbnRFbGVtZW50Py5yZW1vdmVDaGlsZChjb3ZlcilcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBjcm9wKG9wdGlvbnM6IENyb3BDb3Zlck9wdGlvbnMpOiBPYnNlcnZhYmxlPEhUTUxEaXZFbGVtZW50PiB7XG4gICAgICAgIHJldHVybiBvZigpXG4gICAgfVxuXG4gICAgcmV2ZWFsKG9wdGlvbnM6IFJldmVhbENvdmVyT3B0aW9ucyk6IE9ic2VydmFibGU8SFRNTERpdkVsZW1lbnQ+IHtcbiAgICAgICAgcmV0dXJuIG9mKClcbiAgICB9XG5cbiAgICAjY3JlYXRlRWxlbWVudChvcHRpb25zOiBDb3Zlck9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpXG4gICAgICAgIGVsLnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiXG4gICAgICAgIGVsLnN0eWxlLnRvcCA9IGVsLnN0eWxlLnJpZ2h0ID0gZWwuc3R5bGUuYm90dG9tID0gZWwuc3R5bGUubGVmdCA9IFwiMHB4XCJcblxuICAgICAgICBpZiAob3B0aW9ucy5jb2xvciA9PT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgICAgICBlbC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBcInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMDAxKVwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBvcHRpb25zLmNvbG9yXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZWxcbiAgICB9XG59XG4iXX0=
|
|
@@ -4,16 +4,16 @@ export function animationObservable({ builder, animation, element, options }) {
|
|
|
4
4
|
return new Observable((dst) => {
|
|
5
5
|
const factory = builder.build(animation);
|
|
6
6
|
const player = factory.create(coerceElement(element), options);
|
|
7
|
-
|
|
7
|
+
const done = () => {
|
|
8
|
+
dst.next();
|
|
8
9
|
dst.complete();
|
|
9
|
-
}
|
|
10
|
-
player.
|
|
11
|
-
|
|
12
|
-
});
|
|
10
|
+
};
|
|
11
|
+
player.onDestroy(done);
|
|
12
|
+
player.onDone(done);
|
|
13
13
|
player.play();
|
|
14
14
|
return () => {
|
|
15
15
|
player.destroy();
|
|
16
16
|
};
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLW9ic2VydmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmFwaGljcy9zcmMvdXRpbC9hbmltYXRpb24tb2JzZXJ2YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0sZ0JBQWdCLENBQUE7QUFTNUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUE2QjtJQUNuRyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsR0FBcUIsRUFBRSxFQUFFO1FBQzVDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDeEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFFOUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ2QsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ1YsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2xCLENBQUMsQ0FBQTtRQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNuQixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7UUFFYixPQUFPLEdBQUcsRUFBRTtZQUNSLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNwQixDQUFDLENBQUE7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25NZXRhZGF0YSwgQW5pbWF0aW9uT3B0aW9ucyB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCJcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgY29lcmNlRWxlbWVudCwgRWxlbWVudElucHV0IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuZXhwb3J0IGludGVyZmFjZSBBbmltYXRpb25PYnNlcnZhYmxlUGFyYW1zIHtcbiAgICBidWlsZGVyOiBBbmltYXRpb25CdWlsZGVyXG4gICAgYW5pbWF0aW9uOiBBbmltYXRpb25NZXRhZGF0YSB8IEFuaW1hdGlvbk1ldGFkYXRhW11cbiAgICBlbGVtZW50OiBFbGVtZW50SW5wdXRcbiAgICBvcHRpb25zPzogQW5pbWF0aW9uT3B0aW9uc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYW5pbWF0aW9uT2JzZXJ2YWJsZSh7IGJ1aWxkZXIsIGFuaW1hdGlvbiwgZWxlbWVudCwgb3B0aW9ucyB9OiBBbmltYXRpb25PYnNlcnZhYmxlUGFyYW1zKSB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkc3Q6IFN1YnNjcmliZXI8dm9pZD4pID0+IHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IGJ1aWxkZXIuYnVpbGQoYW5pbWF0aW9uKVxuICAgICAgICBjb25zdCBwbGF5ZXIgPSBmYWN0b3J5LmNyZWF0ZShjb2VyY2VFbGVtZW50KGVsZW1lbnQpLCBvcHRpb25zKVxuXG4gICAgICAgIGNvbnN0IGRvbmUgPSAoKSA9PiB7XG4gICAgICAgICAgICBkc3QubmV4dCgpXG4gICAgICAgICAgICBkc3QuY29tcGxldGUoKVxuICAgICAgICB9XG5cbiAgICAgICAgcGxheWVyLm9uRGVzdHJveShkb25lKVxuICAgICAgICBwbGF5ZXIub25Eb25lKGRvbmUpXG4gICAgICAgIHBsYXllci5wbGF5KClcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgcGxheWVyLmRlc3Ryb3koKVxuICAgICAgICB9XG4gICAgfSlcbn1cbiJdfQ==
|
|
@@ -161,11 +161,11 @@ function maxPossibleRadius(x, y, w, h) {
|
|
|
161
161
|
|
|
162
162
|
class CoverService {
|
|
163
163
|
solid(options) {
|
|
164
|
-
return new Observable(
|
|
164
|
+
return new Observable(dest => {
|
|
165
165
|
const container = coerceElement(options.container);
|
|
166
166
|
const cover = this.#createElement(options);
|
|
167
167
|
container.appendChild(cover);
|
|
168
|
-
dest.next();
|
|
168
|
+
dest.next(cover);
|
|
169
169
|
return () => {
|
|
170
170
|
cover.parentElement?.removeChild(cover);
|
|
171
171
|
};
|
|
@@ -201,12 +201,12 @@ function animationObservable({ builder, animation, element, options }) {
|
|
|
201
201
|
return new Observable((dst) => {
|
|
202
202
|
const factory = builder.build(animation);
|
|
203
203
|
const player = factory.create(coerceElement(element), options);
|
|
204
|
-
|
|
204
|
+
const done = () => {
|
|
205
|
+
dst.next();
|
|
205
206
|
dst.complete();
|
|
206
|
-
}
|
|
207
|
-
player.
|
|
208
|
-
|
|
209
|
-
});
|
|
207
|
+
};
|
|
208
|
+
player.onDestroy(done);
|
|
209
|
+
player.onDone(done);
|
|
210
210
|
player.play();
|
|
211
211
|
return () => {
|
|
212
212
|
player.destroy();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngutil-graphics.mjs","sources":["../../../../packages/graphics/src/ripple/ripple.directive.ts","../../../../packages/graphics/src/cover.service.ts","../../../../packages/graphics/src/util/animation-observable.ts","../../../../packages/graphics/src/ngutil-graphics.ts"],"sourcesContent":["import { Directive, ElementRef, NgZone, TemplateRef } from \"@angular/core\"\n\nimport { Destructible, IDisposable } from \"@ngutil/common\"\n\n@Directive({\n standalone: true,\n selector: \"ng-template[nuRipple]\",\n exportAs: \"nuRipple\"\n})\nexport class RippleDirective extends Destructible {\n #current?: Ripple\n\n constructor(\n private readonly tplRef: TemplateRef<any>,\n private readonly zone: NgZone,\n private readonly el: ElementRef<Node>\n ) {\n super()\n zone.runOutsideAngular(() => {\n const target = el.nativeElement.parentElement\n if (target) {\n target.addEventListener(\"mousedown\", this.#onMouseDown)\n this.d.any(() => target.removeEventListener(\"mousedown\", this.#onMouseDown))\n }\n })\n }\n\n begin(event: MouseEvent) {\n this.#current?.autoDestroy()\n const cfg = this.#createRippleConfig(event)\n const ripple = this.#createRipple(cfg)\n this.#current = ripple\n\n const refEl = this.tplRef.elementRef.nativeElement as HTMLElement\n refEl.parentNode?.insertBefore(ripple.el, refEl)\n ripple.start()\n }\n\n end() {\n this.#current?.autoDestroy()\n }\n\n #createRipple(config: RippleConfig) {\n const ripple = new Ripple(config, this.zone, () => {\n if (this.#current === ripple) {\n this.#current = undefined\n }\n })\n this.d.disposable(ripple)\n return ripple\n }\n\n #createRippleConfig(event: MouseEvent): RippleConfig {\n const container = event.currentTarget as HTMLElement\n const bounds = container.getBoundingClientRect()\n const w = bounds.width\n const h = bounds.height\n const x = event.clientX - bounds.left\n const y = event.clientY - bounds.top\n const r = maxPossibleRadius(x, y, w, h) + Math.min(w, h)\n return { x, y, w, h, r, d: 600 }\n }\n\n #onMouseDown = (event: MouseEvent) => {\n this.begin(event)\n }\n}\n\ntype RippleConfig = { x: number; y: number; w: number; h: number; r: number; d: number }\n\nexport class Ripple implements IDisposable {\n public readonly el: HTMLDivElement\n public readonly isRunning: boolean = false\n\n #autoDestroy = false\n #hiding = false\n\n constructor(\n config: RippleConfig,\n zone: NgZone,\n public readonly onDestroy: () => void\n ) {\n const el = document.createElement(\"div\")\n el.style.position = \"absolute\"\n el.style.top = `${config.y - config.r}px`\n el.style.left = `${config.x - config.r}px`\n el.style.width = `${config.r * 2}px`\n el.style.height = `${config.r * 2}px`\n el.style.pointerEvents = \"none\"\n el.style.backgroundColor = \"var(--ripple-color)\"\n el.style.borderRadius = \"50%\"\n el.style.transition = `opacity ${config.d / 2}ms ease-out, transform ${config.d}ms ease-out`\n el.style.opacity = \"0\"\n el.style.transformOrigin = \"center\"\n el.style.transform = \"scale(0)\"\n this.el = el\n\n zone.runOutsideAngular(() => {\n el.addEventListener(\"transitionstart\", this.#transBegin)\n el.addEventListener(\"transitionend\", this.#transEnd)\n el.addEventListener(\"transitioncancel\", this.#transEnd)\n document.addEventListener(\"mouseup\", this.autoDestroy, { capture: true, passive: true })\n document.addEventListener(\"dragend\", this.autoDestroy, { capture: true, passive: true })\n })\n }\n\n start() {\n // eslint-disable-next-line no-extra-semi\n ;(this as { isRunning: boolean }).isRunning = true\n // XXX: force style apply\n const opacity = typeof window !== \"undefined\" ? Number(window.getComputedStyle(this.el).opacity) : 1\n this.el.style.opacity = opacity ? \"0.3\" : \"0.3\"\n this.el.style.transform = \"scale(1)\"\n }\n\n autoDestroy = () => {\n if (this.isRunning) {\n this.#autoDestroy = true\n } else {\n this.#fadeOut()\n }\n }\n\n dispose(): void {\n this.el.removeEventListener(\"transitionstart\", this.#transBegin)\n this.el.removeEventListener(\"transitionend\", this.#transEnd)\n this.el.removeEventListener(\"transitioncancel\", this.#transEnd)\n document.removeEventListener(\"mouseup\", this.autoDestroy, { capture: true })\n this.el.parentNode?.removeChild(this.el)\n this.onDestroy()\n }\n\n #transBegin = () => {\n // eslint-disable-next-line no-extra-semi\n ;(this as { isRunning: boolean }).isRunning = true\n }\n\n #transEnd = (event: TransitionEvent) => {\n if (event.propertyName === \"opacity\") {\n if (this.#hiding) {\n this.dispose()\n } else {\n if (this.#autoDestroy) {\n this.#fadeOut()\n }\n }\n } else if (event.propertyName === \"transform\") {\n // eslint-disable-next-line no-extra-semi\n ;(this as { isRunning: boolean }).isRunning = false\n if (this.#autoDestroy) {\n this.dispose()\n }\n }\n }\n\n #fadeOut() {\n if (this.#hiding) {\n return\n }\n this.#hiding = true\n this.el.style.opacity = \"0\"\n }\n}\n\nfunction maxPossibleRadius(x: number, y: number, w: number, h: number) {\n const distX = Math.max(x, Math.abs(w - x))\n const distY = Math.max(y, Math.abs(h - y))\n return Math.sqrt(distX * distX + distY * distY)\n}\n","import { Injectable } from \"@angular/core\"\n\nimport { Observable, of, Subscriber } from \"rxjs\"\n\nimport { coerceElement, ElementInput } from \"@ngutil/common\"\nimport { Rect } from \"@ngutil/style\"\n\nexport interface CoverOptions {\n container: ElementInput\n color: \"transparent\" | string\n}\n\nexport interface SolidCoverOptions extends CoverOptions {}\n\nexport interface CropCoverOptions extends CoverOptions {\n /**\n * Element that will be interactive while the cover is visible\n */\n crop: ElementInput | Observable<Rect>\n}\n\nexport interface RevealCoverOptions extends CoverOptions {\n /**\n * Left and right coordinates inside the container\n */\n origin: { left: number; top: number }\n}\n\n@Injectable({ providedIn: \"root\" })\nexport class CoverService {\n solid(options: SolidCoverOptions): Observable<void> {\n return new Observable((dest: Subscriber<void>) => {\n const container = coerceElement(options.container)\n const cover = this.#createElement(options)\n container.appendChild(cover)\n dest.next()\n\n return () => {\n cover.parentElement?.removeChild(cover)\n }\n })\n }\n\n crop(options: CropCoverOptions): Observable<void> {\n return of()\n }\n\n reveal(options: RevealCoverOptions): Observable<void> {\n return of()\n }\n\n #createElement(options: CoverOptions) {\n const el = document.createElement(\"div\")\n el.style.position = \"absolute\"\n el.style.top = el.style.right = el.style.bottom = el.style.left = \"0px\"\n\n if (options.color === \"transparent\") {\n el.style.backgroundColor = \"rgba(255, 255, 255, 0.0001)\"\n } else {\n el.style.backgroundColor = options.color\n }\n\n return el\n }\n}\n","import { AnimationBuilder, AnimationMetadata, AnimationOptions } from \"@angular/animations\"\n\nimport { Observable, Subscriber } from \"rxjs\"\n\nimport { coerceElement, ElementInput } from \"@ngutil/common\"\n\nexport interface AnimationObservableParams {\n builder: AnimationBuilder\n animation: AnimationMetadata | AnimationMetadata[]\n element: ElementInput\n options?: AnimationOptions\n}\n\nexport function animationObservable({ builder, animation, element, options }: AnimationObservableParams) {\n return new Observable((dst: Subscriber<void>) => {\n const factory = builder.build(animation)\n const player = factory.create(coerceElement(element), options)\n\n player.onDestroy(() => {\n dst.complete()\n })\n player.onDone(() => {\n dst.complete()\n })\n player.play()\n\n return () => {\n player.destroy()\n }\n })\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AASM,MAAO,eAAgB,SAAQ,YAAY,CAAA;AAC7C,IAAA,QAAQ,CAAS;AAEjB,IAAA,WAAA,CACqB,MAAwB,EACxB,IAAY,EACZ,EAAoB,EAAA;AAErC,QAAA,KAAK,EAAE,CAAA;QAJU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;QACxB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACZ,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;AAGrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAK;AACxB,YAAA,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,CAAA;YAC7C,IAAI,MAAM,EAAE;gBACR,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;AACvD,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;aAC/E;AACL,SAAC,CAAC,CAAA;KACL;AAED,IAAA,KAAK,CAAC,KAAiB,EAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAA;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAA4B,CAAA;QACjE,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAChD,MAAM,CAAC,KAAK,EAAE,CAAA;KACjB;IAED,GAAG,GAAA;AACC,QAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;KAC/B;AAED,IAAA,aAAa,CAAC,MAAoB,EAAA;AAC9B,QAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAK;AAC9C,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC1B,gBAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;aAC5B;AACL,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACzB,QAAA,OAAO,MAAM,CAAA;KAChB;AAED,IAAA,mBAAmB,CAAC,KAAiB,EAAA;AACjC,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,aAA4B,CAAA;AACpD,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAA;AAChD,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;AACtB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;QACvB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAA;QACrC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;QACpC,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACxD,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAA;KACnC;AAED,IAAA,YAAY,GAAG,CAAC,KAAiB,KAAI;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACrB,KAAC,CAAA;8GAxDQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,UAAU;AACvB,iBAAA,CAAA;;MA8DY,MAAM,CAAA;AAIf,IAAA,YAAY,CAAQ;AACpB,IAAA,OAAO,CAAQ;AAEf,IAAA,WAAA,CACI,MAAoB,EACpB,IAAY,EACI,SAAqB,EAAA;QAArB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAY;QARzB,IAAS,CAAA,SAAA,GAAY,KAAK,CAAA;QAE1C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAA;QACpB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;QAwCf,IAAW,CAAA,WAAA,GAAG,MAAK;AACf,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;aAC3B;iBAAM;gBACH,IAAI,CAAC,QAAQ,EAAE,CAAA;aAClB;AACL,SAAC,CAAA;QAWD,IAAW,CAAA,WAAA,GAAG,MAAK;;YAEf,CAAC;AAAC,YAAA,IAA+B,CAAC,SAAS,GAAG,IAAI,CAAA;AACtD,SAAC,CAAA;AAED,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAsB,KAAI;AACnC,YAAA,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE;AAClC,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,OAAO,EAAE,CAAA;iBACjB;qBAAM;AACH,oBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;wBACnB,IAAI,CAAC,QAAQ,EAAE,CAAA;qBAClB;iBACJ;aACJ;AAAM,iBAAA,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,EAAE;;gBAE3C,CAAC;AAAC,gBAAA,IAA+B,CAAC,SAAS,GAAG,KAAK,CAAA;AACnD,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,OAAO,EAAE,CAAA;iBACjB;aACJ;AACL,SAAC,CAAA;QAvEG,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACxC,QAAA,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;AAC9B,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAG,EAAA,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAA;AACzC,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAG,EAAA,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAA;AAC1C,QAAA,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA,EAAA,CAAI,CAAA;AACpC,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA,EAAA,CAAI,CAAA;AACrC,QAAA,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAA;AAC/B,QAAA,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,qBAAqB,CAAA;AAChD,QAAA,EAAE,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAA;AAC7B,QAAA,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,WAAW,MAAM,CAAC,CAAC,GAAG,CAAC,CAA0B,uBAAA,EAAA,MAAM,CAAC,CAAC,aAAa,CAAA;AAC5F,QAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;AACtB,QAAA,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAA;AACnC,QAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAA;AAC/B,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;AAEZ,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAK;YACxB,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YACxD,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YACpD,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;AACvD,YAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AACxF,YAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAC5F,SAAC,CAAC,CAAA;KACL;IAED,KAAK,GAAA;;QAED,CAAC;AAAC,QAAA,IAA+B,CAAC,SAAS,GAAG,IAAI,CAAA;;QAElD,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AACpG,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAA;QAC/C,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAA;KACvC;IAUD,OAAO,GAAA;QACH,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAChE,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5D,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;AAC/D,QAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5E,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,SAAS,EAAE,CAAA;KACnB;AAED,IAAA,WAAW,CAGV;AAED,IAAA,SAAS,CAgBR;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAM;SACT;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;KAC9B;AACJ,CAAA;AAED,SAAS,iBAAiB,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACjE,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC1C,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC1C,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAA;AACnD;;MC3Ia,YAAY,CAAA;AACrB,IAAA,KAAK,CAAC,OAA0B,EAAA;AAC5B,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,IAAsB,KAAI;YAC7C,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAC1C,YAAA,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YAC5B,IAAI,CAAC,IAAI,EAAE,CAAA;AAEX,YAAA,OAAO,MAAK;AACR,gBAAA,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3C,aAAC,CAAA;AACL,SAAC,CAAC,CAAA;KACL;AAED,IAAA,IAAI,CAAC,OAAyB,EAAA;QAC1B,OAAO,EAAE,EAAE,CAAA;KACd;AAED,IAAA,MAAM,CAAC,OAA2B,EAAA;QAC9B,OAAO,EAAE,EAAE,CAAA;KACd;AAED,IAAA,cAAc,CAAC,OAAqB,EAAA;QAChC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACxC,QAAA,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;QAC9B,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAA;AAEvE,QAAA,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,EAAE;AACjC,YAAA,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,6BAA6B,CAAA;SAC3D;aAAM;YACH,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,KAAK,CAAA;SAC3C;AAED,QAAA,OAAO,EAAE,CAAA;KACZ;8GAlCQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACf5B,SAAU,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAA6B,EAAA;AACnG,IAAA,OAAO,IAAI,UAAU,CAAC,CAAC,GAAqB,KAAI;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AACxC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AAE9D,QAAA,MAAM,CAAC,SAAS,CAAC,MAAK;YAClB,GAAG,CAAC,QAAQ,EAAE,CAAA;AAClB,SAAC,CAAC,CAAA;AACF,QAAA,MAAM,CAAC,MAAM,CAAC,MAAK;YACf,GAAG,CAAC,QAAQ,EAAE,CAAA;AAClB,SAAC,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,EAAE,CAAA;AAEb,QAAA,OAAO,MAAK;YACR,MAAM,CAAC,OAAO,EAAE,CAAA;AACpB,SAAC,CAAA;AACL,KAAC,CAAC,CAAA;AACN;;AC9BA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngutil-graphics.mjs","sources":["../../../../packages/graphics/src/ripple/ripple.directive.ts","../../../../packages/graphics/src/cover.service.ts","../../../../packages/graphics/src/util/animation-observable.ts","../../../../packages/graphics/src/ngutil-graphics.ts"],"sourcesContent":["import { Directive, ElementRef, NgZone, TemplateRef } from \"@angular/core\"\n\nimport { Destructible, IDisposable } from \"@ngutil/common\"\n\n@Directive({\n standalone: true,\n selector: \"ng-template[nuRipple]\",\n exportAs: \"nuRipple\"\n})\nexport class RippleDirective extends Destructible {\n #current?: Ripple\n\n constructor(\n private readonly tplRef: TemplateRef<any>,\n private readonly zone: NgZone,\n private readonly el: ElementRef<Node>\n ) {\n super()\n zone.runOutsideAngular(() => {\n const target = el.nativeElement.parentElement\n if (target) {\n target.addEventListener(\"mousedown\", this.#onMouseDown)\n this.d.any(() => target.removeEventListener(\"mousedown\", this.#onMouseDown))\n }\n })\n }\n\n begin(event: MouseEvent) {\n this.#current?.autoDestroy()\n const cfg = this.#createRippleConfig(event)\n const ripple = this.#createRipple(cfg)\n this.#current = ripple\n\n const refEl = this.tplRef.elementRef.nativeElement as HTMLElement\n refEl.parentNode?.insertBefore(ripple.el, refEl)\n ripple.start()\n }\n\n end() {\n this.#current?.autoDestroy()\n }\n\n #createRipple(config: RippleConfig) {\n const ripple = new Ripple(config, this.zone, () => {\n if (this.#current === ripple) {\n this.#current = undefined\n }\n })\n this.d.disposable(ripple)\n return ripple\n }\n\n #createRippleConfig(event: MouseEvent): RippleConfig {\n const container = event.currentTarget as HTMLElement\n const bounds = container.getBoundingClientRect()\n const w = bounds.width\n const h = bounds.height\n const x = event.clientX - bounds.left\n const y = event.clientY - bounds.top\n const r = maxPossibleRadius(x, y, w, h) + Math.min(w, h)\n return { x, y, w, h, r, d: 600 }\n }\n\n #onMouseDown = (event: MouseEvent) => {\n this.begin(event)\n }\n}\n\ntype RippleConfig = { x: number; y: number; w: number; h: number; r: number; d: number }\n\nexport class Ripple implements IDisposable {\n public readonly el: HTMLDivElement\n public readonly isRunning: boolean = false\n\n #autoDestroy = false\n #hiding = false\n\n constructor(\n config: RippleConfig,\n zone: NgZone,\n public readonly onDestroy: () => void\n ) {\n const el = document.createElement(\"div\")\n el.style.position = \"absolute\"\n el.style.top = `${config.y - config.r}px`\n el.style.left = `${config.x - config.r}px`\n el.style.width = `${config.r * 2}px`\n el.style.height = `${config.r * 2}px`\n el.style.pointerEvents = \"none\"\n el.style.backgroundColor = \"var(--ripple-color)\"\n el.style.borderRadius = \"50%\"\n el.style.transition = `opacity ${config.d / 2}ms ease-out, transform ${config.d}ms ease-out`\n el.style.opacity = \"0\"\n el.style.transformOrigin = \"center\"\n el.style.transform = \"scale(0)\"\n this.el = el\n\n zone.runOutsideAngular(() => {\n el.addEventListener(\"transitionstart\", this.#transBegin)\n el.addEventListener(\"transitionend\", this.#transEnd)\n el.addEventListener(\"transitioncancel\", this.#transEnd)\n document.addEventListener(\"mouseup\", this.autoDestroy, { capture: true, passive: true })\n document.addEventListener(\"dragend\", this.autoDestroy, { capture: true, passive: true })\n })\n }\n\n start() {\n // eslint-disable-next-line no-extra-semi\n ;(this as { isRunning: boolean }).isRunning = true\n // XXX: force style apply\n const opacity = typeof window !== \"undefined\" ? Number(window.getComputedStyle(this.el).opacity) : 1\n this.el.style.opacity = opacity ? \"0.3\" : \"0.3\"\n this.el.style.transform = \"scale(1)\"\n }\n\n autoDestroy = () => {\n if (this.isRunning) {\n this.#autoDestroy = true\n } else {\n this.#fadeOut()\n }\n }\n\n dispose(): void {\n this.el.removeEventListener(\"transitionstart\", this.#transBegin)\n this.el.removeEventListener(\"transitionend\", this.#transEnd)\n this.el.removeEventListener(\"transitioncancel\", this.#transEnd)\n document.removeEventListener(\"mouseup\", this.autoDestroy, { capture: true })\n this.el.parentNode?.removeChild(this.el)\n this.onDestroy()\n }\n\n #transBegin = () => {\n // eslint-disable-next-line no-extra-semi\n ;(this as { isRunning: boolean }).isRunning = true\n }\n\n #transEnd = (event: TransitionEvent) => {\n if (event.propertyName === \"opacity\") {\n if (this.#hiding) {\n this.dispose()\n } else {\n if (this.#autoDestroy) {\n this.#fadeOut()\n }\n }\n } else if (event.propertyName === \"transform\") {\n // eslint-disable-next-line no-extra-semi\n ;(this as { isRunning: boolean }).isRunning = false\n if (this.#autoDestroy) {\n this.dispose()\n }\n }\n }\n\n #fadeOut() {\n if (this.#hiding) {\n return\n }\n this.#hiding = true\n this.el.style.opacity = \"0\"\n }\n}\n\nfunction maxPossibleRadius(x: number, y: number, w: number, h: number) {\n const distX = Math.max(x, Math.abs(w - x))\n const distY = Math.max(y, Math.abs(h - y))\n return Math.sqrt(distX * distX + distY * distY)\n}\n","import { Injectable } from \"@angular/core\"\n\nimport { Observable, of } from \"rxjs\"\n\nimport { coerceElement, ElementInput } from \"@ngutil/common\"\nimport { Rect } from \"@ngutil/style\"\n\nexport interface CoverOptions {\n container: ElementInput\n color: \"transparent\" | string\n}\n\nexport interface SolidCoverOptions extends CoverOptions {}\n\nexport interface CropCoverOptions extends CoverOptions {\n /**\n * Element that will be interactive while the cover is visible\n */\n crop: ElementInput | Observable<Rect>\n}\n\nexport interface RevealCoverOptions extends CoverOptions {\n /**\n * Left and right coordinates inside the container\n */\n origin: { left: number; top: number }\n}\n\n@Injectable({ providedIn: \"root\" })\nexport class CoverService {\n solid(options: SolidCoverOptions): Observable<HTMLDivElement> {\n return new Observable(dest => {\n const container = coerceElement(options.container)\n const cover = this.#createElement(options)\n container.appendChild(cover)\n dest.next(cover)\n\n return () => {\n cover.parentElement?.removeChild(cover)\n }\n })\n }\n\n crop(options: CropCoverOptions): Observable<HTMLDivElement> {\n return of()\n }\n\n reveal(options: RevealCoverOptions): Observable<HTMLDivElement> {\n return of()\n }\n\n #createElement(options: CoverOptions) {\n const el = document.createElement(\"div\")\n el.style.position = \"absolute\"\n el.style.top = el.style.right = el.style.bottom = el.style.left = \"0px\"\n\n if (options.color === \"transparent\") {\n el.style.backgroundColor = \"rgba(255, 255, 255, 0.0001)\"\n } else {\n el.style.backgroundColor = options.color\n }\n\n return el\n }\n}\n","import { AnimationBuilder, AnimationMetadata, AnimationOptions } from \"@angular/animations\"\n\nimport { Observable, Subscriber } from \"rxjs\"\n\nimport { coerceElement, ElementInput } from \"@ngutil/common\"\n\nexport interface AnimationObservableParams {\n builder: AnimationBuilder\n animation: AnimationMetadata | AnimationMetadata[]\n element: ElementInput\n options?: AnimationOptions\n}\n\nexport function animationObservable({ builder, animation, element, options }: AnimationObservableParams) {\n return new Observable((dst: Subscriber<void>) => {\n const factory = builder.build(animation)\n const player = factory.create(coerceElement(element), options)\n\n const done = () => {\n dst.next()\n dst.complete()\n }\n\n player.onDestroy(done)\n player.onDone(done)\n player.play()\n\n return () => {\n player.destroy()\n }\n })\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AASM,MAAO,eAAgB,SAAQ,YAAY,CAAA;AAC7C,IAAA,QAAQ,CAAS;AAEjB,IAAA,WAAA,CACqB,MAAwB,EACxB,IAAY,EACZ,EAAoB,EAAA;AAErC,QAAA,KAAK,EAAE,CAAA;QAJU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;QACxB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACZ,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;AAGrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAK;AACxB,YAAA,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,CAAA;YAC7C,IAAI,MAAM,EAAE;gBACR,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;AACvD,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;aAC/E;AACL,SAAC,CAAC,CAAA;KACL;AAED,IAAA,KAAK,CAAC,KAAiB,EAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAA;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAA4B,CAAA;QACjE,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAChD,MAAM,CAAC,KAAK,EAAE,CAAA;KACjB;IAED,GAAG,GAAA;AACC,QAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;KAC/B;AAED,IAAA,aAAa,CAAC,MAAoB,EAAA;AAC9B,QAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAK;AAC9C,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC1B,gBAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;aAC5B;AACL,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACzB,QAAA,OAAO,MAAM,CAAA;KAChB;AAED,IAAA,mBAAmB,CAAC,KAAiB,EAAA;AACjC,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,aAA4B,CAAA;AACpD,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAA;AAChD,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;AACtB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;QACvB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAA;QACrC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;QACpC,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACxD,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAA;KACnC;AAED,IAAA,YAAY,GAAG,CAAC,KAAiB,KAAI;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACrB,KAAC,CAAA;8GAxDQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,UAAU;AACvB,iBAAA,CAAA;;MA8DY,MAAM,CAAA;AAIf,IAAA,YAAY,CAAQ;AACpB,IAAA,OAAO,CAAQ;AAEf,IAAA,WAAA,CACI,MAAoB,EACpB,IAAY,EACI,SAAqB,EAAA;QAArB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAY;QARzB,IAAS,CAAA,SAAA,GAAY,KAAK,CAAA;QAE1C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAA;QACpB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;QAwCf,IAAW,CAAA,WAAA,GAAG,MAAK;AACf,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;aAC3B;iBAAM;gBACH,IAAI,CAAC,QAAQ,EAAE,CAAA;aAClB;AACL,SAAC,CAAA;QAWD,IAAW,CAAA,WAAA,GAAG,MAAK;;YAEf,CAAC;AAAC,YAAA,IAA+B,CAAC,SAAS,GAAG,IAAI,CAAA;AACtD,SAAC,CAAA;AAED,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAsB,KAAI;AACnC,YAAA,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE;AAClC,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,OAAO,EAAE,CAAA;iBACjB;qBAAM;AACH,oBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;wBACnB,IAAI,CAAC,QAAQ,EAAE,CAAA;qBAClB;iBACJ;aACJ;AAAM,iBAAA,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,EAAE;;gBAE3C,CAAC;AAAC,gBAAA,IAA+B,CAAC,SAAS,GAAG,KAAK,CAAA;AACnD,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,OAAO,EAAE,CAAA;iBACjB;aACJ;AACL,SAAC,CAAA;QAvEG,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACxC,QAAA,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;AAC9B,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAG,EAAA,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAA;AACzC,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAG,EAAA,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAA;AAC1C,QAAA,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA,EAAA,CAAI,CAAA;AACpC,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA,EAAA,CAAI,CAAA;AACrC,QAAA,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAA;AAC/B,QAAA,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,qBAAqB,CAAA;AAChD,QAAA,EAAE,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAA;AAC7B,QAAA,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,WAAW,MAAM,CAAC,CAAC,GAAG,CAAC,CAA0B,uBAAA,EAAA,MAAM,CAAC,CAAC,aAAa,CAAA;AAC5F,QAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;AACtB,QAAA,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAA;AACnC,QAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAA;AAC/B,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;AAEZ,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAK;YACxB,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YACxD,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YACpD,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;AACvD,YAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AACxF,YAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAC5F,SAAC,CAAC,CAAA;KACL;IAED,KAAK,GAAA;;QAED,CAAC;AAAC,QAAA,IAA+B,CAAC,SAAS,GAAG,IAAI,CAAA;;QAElD,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AACpG,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAA;QAC/C,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAA;KACvC;IAUD,OAAO,GAAA;QACH,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAChE,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5D,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;AAC/D,QAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5E,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,SAAS,EAAE,CAAA;KACnB;AAED,IAAA,WAAW,CAGV;AAED,IAAA,SAAS,CAgBR;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAM;SACT;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;KAC9B;AACJ,CAAA;AAED,SAAS,iBAAiB,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACjE,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC1C,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC1C,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAA;AACnD;;MC3Ia,YAAY,CAAA;AACrB,IAAA,KAAK,CAAC,OAA0B,EAAA;AAC5B,QAAA,OAAO,IAAI,UAAU,CAAC,IAAI,IAAG;YACzB,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAC1C,YAAA,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAEhB,YAAA,OAAO,MAAK;AACR,gBAAA,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3C,aAAC,CAAA;AACL,SAAC,CAAC,CAAA;KACL;AAED,IAAA,IAAI,CAAC,OAAyB,EAAA;QAC1B,OAAO,EAAE,EAAE,CAAA;KACd;AAED,IAAA,MAAM,CAAC,OAA2B,EAAA;QAC9B,OAAO,EAAE,EAAE,CAAA;KACd;AAED,IAAA,cAAc,CAAC,OAAqB,EAAA;QAChC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACxC,QAAA,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;QAC9B,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAA;AAEvE,QAAA,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,EAAE;AACjC,YAAA,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,6BAA6B,CAAA;SAC3D;aAAM;YACH,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,KAAK,CAAA;SAC3C;AAED,QAAA,OAAO,EAAE,CAAA;KACZ;8GAlCQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACf5B,SAAU,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAA6B,EAAA;AACnG,IAAA,OAAO,IAAI,UAAU,CAAC,CAAC,GAAqB,KAAI;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AACxC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;QAE9D,MAAM,IAAI,GAAG,MAAK;YACd,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,GAAG,CAAC,QAAQ,EAAE,CAAA;AAClB,SAAC,CAAA;AAED,QAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AACtB,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACnB,MAAM,CAAC,IAAI,EAAE,CAAA;AAEb,QAAA,OAAO,MAAK;YACR,MAAM,CAAC,OAAO,EAAE,CAAA;AACpB,SAAC,CAAA;AACL,KAAC,CAAC,CAAA;AACN;;AC/BA;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngutil/graphics",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.49",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/animations": "^17.3.6",
|
|
6
6
|
"@angular/common": "^17.3.6",
|
|
7
7
|
"@angular/core": "^17.3.6",
|
|
8
8
|
"rxjs": "^7.8.1",
|
|
9
|
-
"@ngutil/
|
|
10
|
-
"@ngutil/
|
|
9
|
+
"@ngutil/style": "0.0.49",
|
|
10
|
+
"@ngutil/common": "0.0.49"
|
|
11
11
|
},
|
|
12
12
|
"publishConfig": {
|
|
13
13
|
"access": "public",
|