@ngutil/common 0.0.3-dev.7

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/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # common
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Running unit tests
6
+
7
+ Run `nx test common` to execute the unit tests.
package/bool-attr.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export type BooleanInput = string | boolean | null | undefined;
2
+ export declare function coerceBoolAttr(value: BooleanInput): boolean;
package/destruct.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ import { OnDestroy } from "@angular/core";
2
+ import { Observable } from "rxjs";
3
+ import * as i0 from "@angular/core";
4
+ export interface IDisposable {
5
+ dispose(): void;
6
+ }
7
+ export declare class Destruct {
8
+ #private;
9
+ readonly on: Observable<void>;
10
+ constructor(fn?: () => void);
11
+ get done(): boolean;
12
+ sub<T>(o: Observable<T>): Observable<T>;
13
+ disposable<T extends IDisposable>(d: T): T;
14
+ node<T extends Node>(el: T): T;
15
+ any(f: () => void): void;
16
+ run(): void;
17
+ }
18
+ export declare abstract class Destructible implements OnDestroy, IDisposable {
19
+ /** @ignore */
20
+ readonly d: Destruct;
21
+ /** @ignore */
22
+ ngOnDestroy(): void;
23
+ /** @ignore */
24
+ dispose(): void;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<Destructible, never>;
26
+ static ɵdir: i0.ɵɵDirectiveDeclaration<Destructible, never, never, {}, {}, never, never, false, never>;
27
+ }
@@ -0,0 +1,4 @@
1
+ export function coerceBoolAttr(value) {
2
+ return value != null && `${value}` !== "false";
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbC1hdHRyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9ib29sLWF0dHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFtQjtJQUM5QyxPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsS0FBSyxPQUFPLENBQUE7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEJvb2xlYW5JbnB1dCA9IHN0cmluZyB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VCb29sQXR0cih2YWx1ZTogQm9vbGVhbklucHV0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgYCR7dmFsdWV9YCAhPT0gXCJmYWxzZVwiXG59XG4iXX0=
@@ -0,0 +1,83 @@
1
+ import { Directive } from "@angular/core";
2
+ import { share, Subject, take, takeUntil } from "rxjs";
3
+ import * as i0 from "@angular/core";
4
+ export class Destruct {
5
+ #on;
6
+ constructor(fn) {
7
+ this.#on = new Subject();
8
+ this.on = this.#on.pipe(share());
9
+ if (fn != null) {
10
+ this.any(fn);
11
+ }
12
+ }
13
+ get done() {
14
+ return this.#on.closed;
15
+ }
16
+ sub(o) {
17
+ if (this.done) {
18
+ return o.pipe(take(0));
19
+ }
20
+ else {
21
+ return o.pipe(takeUntil(this.on));
22
+ }
23
+ }
24
+ disposable(d) {
25
+ if (this.done) {
26
+ d.dispose();
27
+ }
28
+ else {
29
+ this.on.subscribe(d.dispose.bind(d));
30
+ }
31
+ return d;
32
+ }
33
+ node(el) {
34
+ const remove = () => {
35
+ const parent = el.parentNode;
36
+ if (parent) {
37
+ parent.removeChild(el);
38
+ }
39
+ };
40
+ if (this.done) {
41
+ remove();
42
+ }
43
+ else {
44
+ this.on.subscribe(remove);
45
+ }
46
+ return el;
47
+ }
48
+ any(f) {
49
+ if (this.done) {
50
+ f();
51
+ }
52
+ else {
53
+ this.on.subscribe(f);
54
+ }
55
+ }
56
+ run() {
57
+ if (!this.done) {
58
+ this.#on.next();
59
+ this.#on.complete();
60
+ }
61
+ }
62
+ }
63
+ export class Destructible {
64
+ constructor() {
65
+ /** @ignore */
66
+ this.d = new Destruct();
67
+ }
68
+ /** @ignore */
69
+ ngOnDestroy() {
70
+ this.d.run();
71
+ delete this.d;
72
+ }
73
+ /** @ignore */
74
+ dispose() {
75
+ this.ngOnDestroy();
76
+ }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: Destructible, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
78
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: Destructible, ngImport: i0 }); }
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: Destructible, decorators: [{
81
+ type: Directive
82
+ }] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJ1Y3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2Rlc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUE7QUFFcEQsT0FBTyxFQUFjLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTs7QUFNbEUsTUFBTSxPQUFPLFFBQVE7SUFDUixHQUFHLENBQXNCO0lBR2xDLFlBQVksRUFBZTtRQUhsQixRQUFHLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQTtRQUN6QixPQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUdoQyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQzFCLENBQUM7SUFFRCxHQUFHLENBQUksQ0FBZ0I7UUFDbkIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3JDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUF3QixDQUFJO1FBQ2xDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3hDLENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQTtJQUNaLENBQUM7SUFFRCxJQUFJLENBQWlCLEVBQUs7UUFDdEIsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ2hCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUE7WUFDNUIsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDVCxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQzFCLENBQUM7UUFDTCxDQUFDLENBQUE7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLE1BQU0sRUFBRSxDQUFBO1FBQ1osQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM3QixDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBRUQsR0FBRyxDQUFDLENBQWE7UUFDYixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLENBQUMsRUFBRSxDQUFBO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QixDQUFDO0lBQ0wsQ0FBQztJQUVELEdBQUc7UUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDdkIsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQUdELE1BQU0sT0FBZ0IsWUFBWTtJQURsQztRQUVJLGNBQWM7UUFDTCxNQUFDLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQTtLQVk5QjtJQVZHLGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUNaLE9BQVEsSUFBWSxDQUFDLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRUQsY0FBYztJQUNkLE9BQU87UUFDSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDdEIsQ0FBQzs4R0FiaUIsWUFBWTtrR0FBWixZQUFZOzsyRkFBWixZQUFZO2tCQURqQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlLCBTdWJqZWN0LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpc3Bvc2FibGUge1xuICAgIGRpc3Bvc2UoKTogdm9pZFxufVxuXG5leHBvcnQgY2xhc3MgRGVzdHJ1Y3Qge1xuICAgIHJlYWRvbmx5ICNvbiA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcbiAgICByZWFkb25seSBvbiA9IHRoaXMuI29uLnBpcGUoc2hhcmUoKSlcblxuICAgIGNvbnN0cnVjdG9yKGZuPzogKCkgPT4gdm9pZCkge1xuICAgICAgICBpZiAoZm4gIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5hbnkoZm4pXG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGRvbmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLiNvbi5jbG9zZWRcbiAgICB9XG5cbiAgICBzdWI8VD4obzogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgICAgICByZXR1cm4gby5waXBlKHRha2UoMCkpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gby5waXBlKHRha2VVbnRpbCh0aGlzLm9uKSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRpc3Bvc2FibGU8VCBleHRlbmRzIElEaXNwb3NhYmxlPihkOiBUKTogVCB7XG4gICAgICAgIGlmICh0aGlzLmRvbmUpIHtcbiAgICAgICAgICAgIGQuZGlzcG9zZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uLnN1YnNjcmliZShkLmRpc3Bvc2UuYmluZChkKSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkXG4gICAgfVxuXG4gICAgbm9kZTxUIGV4dGVuZHMgTm9kZT4oZWw6IFQpOiBUIHtcbiAgICAgICAgY29uc3QgcmVtb3ZlID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gZWwucGFyZW50Tm9kZVxuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChlbClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgICAgICByZW1vdmUoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbi5zdWJzY3JpYmUocmVtb3ZlKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVsXG4gICAgfVxuXG4gICAgYW55KGY6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICAgICAgZigpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uLnN1YnNjcmliZShmKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcnVuKCkge1xuICAgICAgICBpZiAoIXRoaXMuZG9uZSkge1xuICAgICAgICAgICAgdGhpcy4jb24ubmV4dCgpXG4gICAgICAgICAgICB0aGlzLiNvbi5jb21wbGV0ZSgpXG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERlc3RydWN0aWJsZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgSURpc3Bvc2FibGUge1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgZCA9IG5ldyBEZXN0cnVjdCgpXG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmQucnVuKClcbiAgICAgICAgZGVsZXRlICh0aGlzIGFzIGFueSkuZFxuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgZGlzcG9zZSgpIHtcbiAgICAgICAgdGhpcy5uZ09uRGVzdHJveSgpXG4gICAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ export * from "./destruct";
2
+ export * from "./number-with-unit";
3
+ export * from "./bool-attr";
4
+ export * from "./unngzone";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxZQUFZLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9kZXN0cnVjdFwiXG5leHBvcnQgKiBmcm9tIFwiLi9udW1iZXItd2l0aC11bml0XCJcbmV4cG9ydCAqIGZyb20gXCIuL2Jvb2wtYXR0clwiXG5leHBvcnQgKiBmcm9tIFwiLi91bm5nem9uZVwiXG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd1dGlsLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbmd1dGlsLWNvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,35 @@
1
+ const specials = ["auto", "inherit"];
2
+ const regex = /^([\d.\-+]+)\s*(v[h|w|min|max]|p[c|t|x]|[re|e|c|m]m|[l|c]h|%|in|Q|ex)?$/;
3
+ export class NumberWithUnit {
4
+ static coerce(value, defaultUnit) {
5
+ if (specials.includes(value)) {
6
+ return new NumberWithUnit(NaN, value);
7
+ }
8
+ else if (typeof value === "string") {
9
+ const match = value.match(regex);
10
+ if (match) {
11
+ return new NumberWithUnit(Number(match[1]), match[2] || defaultUnit);
12
+ }
13
+ }
14
+ else if (typeof value === "number") {
15
+ return new NumberWithUnit(value, defaultUnit);
16
+ }
17
+ throw new Error(`Not implemented number with unit: ${value}`);
18
+ }
19
+ constructor(value, unit) {
20
+ this.value = value;
21
+ this.unit = unit;
22
+ }
23
+ toString() {
24
+ if (isNaN(this.value)) {
25
+ return this.unit;
26
+ }
27
+ else if (this.unit != null) {
28
+ return `${this.value}${this.unit}`;
29
+ }
30
+ else {
31
+ return `${this.value}`;
32
+ }
33
+ }
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXdpdGgtdW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbnVtYmVyLXdpdGgtdW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUNwQyxNQUFNLEtBQUssR0FBRyx5RUFBeUUsQ0FBQTtBQUV2RixNQUFNLE9BQU8sY0FBYztJQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQVUsRUFBRSxXQUFvQjtRQUMxQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUN6QyxDQUFDO2FBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2hDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1IsT0FBTyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFBO1lBQ3hFLENBQUM7UUFDTCxDQUFDO2FBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksY0FBYyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUNqRCxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsWUFDb0IsS0FBYSxFQUNiLElBQWE7UUFEYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsU0FBSSxHQUFKLElBQUksQ0FBUztJQUM5QixDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQTtRQUNwQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzNCLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDMUIsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE51bWJlcldpdGhVbml0SW5wdXQgPSBudW1iZXIgfCBzdHJpbmcgfCBOdW1iZXJXaXRoVW5pdFxuXG5jb25zdCBzcGVjaWFscyA9IFtcImF1dG9cIiwgXCJpbmhlcml0XCJdXG5jb25zdCByZWdleCA9IC9eKFtcXGQuXFwtK10rKVxccyoodltofHd8bWlufG1heF18cFtjfHR8eF18W3JlfGV8Y3xtXW18W2x8Y11ofCV8aW58UXxleCk/JC9cblxuZXhwb3J0IGNsYXNzIE51bWJlcldpdGhVbml0IHtcbiAgICBzdGF0aWMgY29lcmNlKHZhbHVlOiBhbnksIGRlZmF1bHRVbml0Pzogc3RyaW5nKSB7XG4gICAgICAgIGlmIChzcGVjaWFscy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTnVtYmVyV2l0aFVuaXQoTmFOLCB2YWx1ZSlcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gdmFsdWUubWF0Y2gocmVnZXgpXG4gICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWJlcldpdGhVbml0KE51bWJlcihtYXRjaFsxXSksIG1hdGNoWzJdIHx8IGRlZmF1bHRVbml0KVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJXaXRoVW5pdCh2YWx1ZSwgZGVmYXVsdFVuaXQpXG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBpbXBsZW1lbnRlZCBudW1iZXIgd2l0aCB1bml0OiAke3ZhbHVlfWApXG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdW5pdD86IHN0cmluZ1xuICAgICkge31cblxuICAgIHRvU3RyaW5nKCkge1xuICAgICAgICBpZiAoaXNOYU4odGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVuaXRcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVuaXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMudmFsdWV9JHt0aGlzLnVuaXR9YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMudmFsdWV9YFxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,14 @@
1
+ export const Zone = window.Zone;
2
+ export function __zone_symbol__(val) {
3
+ const symbol = typeof Zone !== "undefined" && Zone.__symbol__
4
+ ? Zone.__symbol__(val)
5
+ : `__zone_symbol__${val}`;
6
+ return typeof window[symbol] !== "undefined" ? symbol : val;
7
+ }
8
+ export const rawSetTimeout = window[__zone_symbol__("setTimeout")];
9
+ export const rawClearTimeout = window[__zone_symbol__("clearTimeout")];
10
+ export const rawSetInterval = window[__zone_symbol__("setInterval")];
11
+ export const rawClearInterval = window[__zone_symbol__("clearInterval")];
12
+ export const rawRequestAnimationFrame = window[__zone_symbol__("requestAnimationFrame")];
13
+ export const rawCancelAnimationFrame = window[__zone_symbol__("cancelAnimationFrame")];
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5uZ3pvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3Vubmd6b25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBSSxNQUFjLENBQUMsSUFBSSxDQUFBO0FBRXhDLE1BQU0sVUFBVSxlQUFlLENBQW1CLEdBQU07SUFDcEQsTUFBTSxNQUFNLEdBQ1IsT0FBTyxJQUFJLEtBQUssV0FBVyxJQUFLLElBQVksQ0FBQyxVQUFVO1FBQ25ELENBQUMsQ0FBRSxJQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUMvQixDQUFDLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFBO0lBQ2pDLE9BQU8sT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtBQUMvRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtBQUNsRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUE7QUFDcEUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFBO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFBO0FBQ3hGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFpvbmUgPSAod2luZG93IGFzIGFueSkuWm9uZVxuXG5leHBvcnQgZnVuY3Rpb24gX196b25lX3N5bWJvbF9fPFQgZXh0ZW5kcyBzdHJpbmc+KHZhbDogVCk6IFQge1xuICAgIGNvbnN0IHN5bWJvbCA9XG4gICAgICAgIHR5cGVvZiBab25lICE9PSBcInVuZGVmaW5lZFwiICYmIChab25lIGFzIGFueSkuX19zeW1ib2xfX1xuICAgICAgICAgICAgPyAoWm9uZSBhcyBhbnkpLl9fc3ltYm9sX18odmFsKVxuICAgICAgICAgICAgOiBgX196b25lX3N5bWJvbF9fJHt2YWx9YFxuICAgIHJldHVybiB0eXBlb2Ygd2luZG93W3N5bWJvbF0gIT09IFwidW5kZWZpbmVkXCIgPyBzeW1ib2wgOiB2YWxcbn1cblxuZXhwb3J0IGNvbnN0IHJhd1NldFRpbWVvdXQgPSB3aW5kb3dbX196b25lX3N5bWJvbF9fKFwic2V0VGltZW91dFwiKV1cbmV4cG9ydCBjb25zdCByYXdDbGVhclRpbWVvdXQgPSB3aW5kb3dbX196b25lX3N5bWJvbF9fKFwiY2xlYXJUaW1lb3V0XCIpXVxuZXhwb3J0IGNvbnN0IHJhd1NldEludGVydmFsID0gd2luZG93W19fem9uZV9zeW1ib2xfXyhcInNldEludGVydmFsXCIpXVxuZXhwb3J0IGNvbnN0IHJhd0NsZWFySW50ZXJ2YWwgPSB3aW5kb3dbX196b25lX3N5bWJvbF9fKFwiY2xlYXJJbnRlcnZhbFwiKV1cbmV4cG9ydCBjb25zdCByYXdSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB3aW5kb3dbX196b25lX3N5bWJvbF9fKFwicmVxdWVzdEFuaW1hdGlvbkZyYW1lXCIpXVxuZXhwb3J0IGNvbnN0IHJhd0NhbmNlbEFuaW1hdGlvbkZyYW1lID0gd2luZG93W19fem9uZV9zeW1ib2xfXyhcImNhbmNlbEFuaW1hdGlvbkZyYW1lXCIpXVxuIl19
@@ -0,0 +1,143 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive } from '@angular/core';
3
+ import { Subject, share, take, takeUntil } from 'rxjs';
4
+
5
+ class Destruct {
6
+ #on;
7
+ constructor(fn) {
8
+ this.#on = new Subject();
9
+ this.on = this.#on.pipe(share());
10
+ if (fn != null) {
11
+ this.any(fn);
12
+ }
13
+ }
14
+ get done() {
15
+ return this.#on.closed;
16
+ }
17
+ sub(o) {
18
+ if (this.done) {
19
+ return o.pipe(take(0));
20
+ }
21
+ else {
22
+ return o.pipe(takeUntil(this.on));
23
+ }
24
+ }
25
+ disposable(d) {
26
+ if (this.done) {
27
+ d.dispose();
28
+ }
29
+ else {
30
+ this.on.subscribe(d.dispose.bind(d));
31
+ }
32
+ return d;
33
+ }
34
+ node(el) {
35
+ const remove = () => {
36
+ const parent = el.parentNode;
37
+ if (parent) {
38
+ parent.removeChild(el);
39
+ }
40
+ };
41
+ if (this.done) {
42
+ remove();
43
+ }
44
+ else {
45
+ this.on.subscribe(remove);
46
+ }
47
+ return el;
48
+ }
49
+ any(f) {
50
+ if (this.done) {
51
+ f();
52
+ }
53
+ else {
54
+ this.on.subscribe(f);
55
+ }
56
+ }
57
+ run() {
58
+ if (!this.done) {
59
+ this.#on.next();
60
+ this.#on.complete();
61
+ }
62
+ }
63
+ }
64
+ class Destructible {
65
+ constructor() {
66
+ /** @ignore */
67
+ this.d = new Destruct();
68
+ }
69
+ /** @ignore */
70
+ ngOnDestroy() {
71
+ this.d.run();
72
+ delete this.d;
73
+ }
74
+ /** @ignore */
75
+ dispose() {
76
+ this.ngOnDestroy();
77
+ }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: Destructible, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
79
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: Destructible, ngImport: i0 }); }
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: Destructible, decorators: [{
82
+ type: Directive
83
+ }] });
84
+
85
+ const specials = ["auto", "inherit"];
86
+ const regex = /^([\d.\-+]+)\s*(v[h|w|min|max]|p[c|t|x]|[re|e|c|m]m|[l|c]h|%|in|Q|ex)?$/;
87
+ class NumberWithUnit {
88
+ static coerce(value, defaultUnit) {
89
+ if (specials.includes(value)) {
90
+ return new NumberWithUnit(NaN, value);
91
+ }
92
+ else if (typeof value === "string") {
93
+ const match = value.match(regex);
94
+ if (match) {
95
+ return new NumberWithUnit(Number(match[1]), match[2] || defaultUnit);
96
+ }
97
+ }
98
+ else if (typeof value === "number") {
99
+ return new NumberWithUnit(value, defaultUnit);
100
+ }
101
+ throw new Error(`Not implemented number with unit: ${value}`);
102
+ }
103
+ constructor(value, unit) {
104
+ this.value = value;
105
+ this.unit = unit;
106
+ }
107
+ toString() {
108
+ if (isNaN(this.value)) {
109
+ return this.unit;
110
+ }
111
+ else if (this.unit != null) {
112
+ return `${this.value}${this.unit}`;
113
+ }
114
+ else {
115
+ return `${this.value}`;
116
+ }
117
+ }
118
+ }
119
+
120
+ function coerceBoolAttr(value) {
121
+ return value != null && `${value}` !== "false";
122
+ }
123
+
124
+ const Zone = window.Zone;
125
+ function __zone_symbol__(val) {
126
+ const symbol = typeof Zone !== "undefined" && Zone.__symbol__
127
+ ? Zone.__symbol__(val)
128
+ : `__zone_symbol__${val}`;
129
+ return typeof window[symbol] !== "undefined" ? symbol : val;
130
+ }
131
+ const rawSetTimeout = window[__zone_symbol__("setTimeout")];
132
+ const rawClearTimeout = window[__zone_symbol__("clearTimeout")];
133
+ const rawSetInterval = window[__zone_symbol__("setInterval")];
134
+ const rawClearInterval = window[__zone_symbol__("clearInterval")];
135
+ const rawRequestAnimationFrame = window[__zone_symbol__("requestAnimationFrame")];
136
+ const rawCancelAnimationFrame = window[__zone_symbol__("cancelAnimationFrame")];
137
+
138
+ /**
139
+ * Generated bundle index. Do not edit.
140
+ */
141
+
142
+ export { Destruct, Destructible, NumberWithUnit, Zone, __zone_symbol__, coerceBoolAttr, rawCancelAnimationFrame, rawClearInterval, rawClearTimeout, rawRequestAnimationFrame, rawSetInterval, rawSetTimeout };
143
+ //# sourceMappingURL=ngutil-common.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngutil-common.mjs","sources":["../../../../packages/common/src/destruct.ts","../../../../packages/common/src/number-with-unit.ts","../../../../packages/common/src/bool-attr.ts","../../../../packages/common/src/unngzone.ts","../../../../packages/common/src/ngutil-common.ts"],"sourcesContent":["import { Directive, OnDestroy } from \"@angular/core\"\n\nimport { Observable, share, Subject, take, takeUntil } from \"rxjs\"\n\nexport interface IDisposable {\n dispose(): void\n}\n\nexport class Destruct {\n readonly #on = new Subject<void>()\n readonly on = this.#on.pipe(share())\n\n constructor(fn?: () => void) {\n if (fn != null) {\n this.any(fn)\n }\n }\n get done(): boolean {\n return this.#on.closed\n }\n\n sub<T>(o: Observable<T>): Observable<T> {\n if (this.done) {\n return o.pipe(take(0))\n } else {\n return o.pipe(takeUntil(this.on))\n }\n }\n\n disposable<T extends IDisposable>(d: T): T {\n if (this.done) {\n d.dispose()\n } else {\n this.on.subscribe(d.dispose.bind(d))\n }\n\n return d\n }\n\n node<T extends Node>(el: T): T {\n const remove = () => {\n const parent = el.parentNode\n if (parent) {\n parent.removeChild(el)\n }\n }\n if (this.done) {\n remove()\n } else {\n this.on.subscribe(remove)\n }\n\n return el\n }\n\n any(f: () => void): void {\n if (this.done) {\n f()\n } else {\n this.on.subscribe(f)\n }\n }\n\n run() {\n if (!this.done) {\n this.#on.next()\n this.#on.complete()\n }\n }\n}\n\n@Directive()\nexport abstract class Destructible implements OnDestroy, IDisposable {\n /** @ignore */\n readonly d = new Destruct()\n\n /** @ignore */\n ngOnDestroy() {\n this.d.run()\n delete (this as any).d\n }\n\n /** @ignore */\n dispose() {\n this.ngOnDestroy()\n }\n}\n","export type NumberWithUnitInput = number | string | NumberWithUnit\n\nconst specials = [\"auto\", \"inherit\"]\nconst regex = /^([\\d.\\-+]+)\\s*(v[h|w|min|max]|p[c|t|x]|[re|e|c|m]m|[l|c]h|%|in|Q|ex)?$/\n\nexport class NumberWithUnit {\n static coerce(value: any, defaultUnit?: string) {\n if (specials.includes(value)) {\n return new NumberWithUnit(NaN, value)\n } else if (typeof value === \"string\") {\n const match = value.match(regex)\n if (match) {\n return new NumberWithUnit(Number(match[1]), match[2] || defaultUnit)\n }\n } else if (typeof value === \"number\") {\n return new NumberWithUnit(value, defaultUnit)\n }\n\n throw new Error(`Not implemented number with unit: ${value}`)\n }\n\n constructor(\n public readonly value: number,\n public readonly unit?: string\n ) {}\n\n toString() {\n if (isNaN(this.value)) {\n return this.unit\n } else if (this.unit != null) {\n return `${this.value}${this.unit}`\n } else {\n return `${this.value}`\n }\n }\n}\n","export type BooleanInput = string | boolean | null | undefined\n\nexport function coerceBoolAttr(value: BooleanInput): boolean {\n return value != null && `${value}` !== \"false\"\n}\n","export const Zone = (window as any).Zone\n\nexport function __zone_symbol__<T extends string>(val: T): T {\n const symbol =\n typeof Zone !== \"undefined\" && (Zone as any).__symbol__\n ? (Zone as any).__symbol__(val)\n : `__zone_symbol__${val}`\n return typeof window[symbol] !== \"undefined\" ? symbol : val\n}\n\nexport const rawSetTimeout = window[__zone_symbol__(\"setTimeout\")]\nexport const rawClearTimeout = window[__zone_symbol__(\"clearTimeout\")]\nexport const rawSetInterval = window[__zone_symbol__(\"setInterval\")]\nexport const rawClearInterval = window[__zone_symbol__(\"clearInterval\")]\nexport const rawRequestAnimationFrame = window[__zone_symbol__(\"requestAnimationFrame\")]\nexport const rawCancelAnimationFrame = window[__zone_symbol__(\"cancelAnimationFrame\")]\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from "./destruct";
2
+ export * from "./number-with-unit";
3
+ export * from "./bool-attr";
4
+ export * from "./unngzone";
@@ -0,0 +1,8 @@
1
+ export type NumberWithUnitInput = number | string | NumberWithUnit;
2
+ export declare class NumberWithUnit {
3
+ readonly value: number;
4
+ readonly unit?: string | undefined;
5
+ static coerce(value: any, defaultUnit?: string): NumberWithUnit;
6
+ constructor(value: number, unit?: string | undefined);
7
+ toString(): string | undefined;
8
+ }
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@ngutil/common",
3
+ "version": "0.0.3-dev.7",
4
+ "publishConfig": {
5
+ "access": "public",
6
+ "directory": "../../dist/packages/common/"
7
+ },
8
+ "peerDependencies": {
9
+ "@angular/common": "^17.1.0",
10
+ "@angular/core": "^17.1.0"
11
+ },
12
+ "dependencies": {
13
+ "tslib": "^2.3.0"
14
+ },
15
+ "sideEffects": false,
16
+ "module": "fesm2022/ngutil-common.mjs",
17
+ "typings": "index.d.ts",
18
+ "exports": {
19
+ "./package.json": {
20
+ "default": "./package.json"
21
+ },
22
+ ".": {
23
+ "types": "./index.d.ts",
24
+ "esm2022": "./esm2022/ngutil-common.mjs",
25
+ "esm": "./esm2022/ngutil-common.mjs",
26
+ "default": "./fesm2022/ngutil-common.mjs"
27
+ }
28
+ }
29
+ }
package/unngzone.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ export declare const Zone: any;
2
+ export declare function __zone_symbol__<T extends string>(val: T): T;
3
+ export declare const rawSetTimeout: ((handler: TimerHandler, timeout?: number | undefined, ...arguments: any[]) => number) & typeof setTimeout;
4
+ export declare const rawClearTimeout: ((id: number | undefined) => void) & typeof clearTimeout;
5
+ export declare const rawSetInterval: ((handler: TimerHandler, timeout?: number | undefined, ...arguments: any[]) => number) & typeof setInterval;
6
+ export declare const rawClearInterval: ((id: number | undefined) => void) & typeof clearInterval;
7
+ export declare const rawRequestAnimationFrame: ((callback: FrameRequestCallback) => number) & typeof requestAnimationFrame;
8
+ export declare const rawCancelAnimationFrame: ((handle: number) => void) & typeof cancelAnimationFrame;